/*************************************************************************** kxenewfilesettings.cpp ---------------------- begin : Tue Dec 02 2003 copyright : (C) 2003 by The KXMLEditor Team email : hartig@users.sourceforge.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "kxenewfilesettings.h" #include "kxenewfilesettingspage.h" #include #include #include #include #include #include #include #include #define CONF_ENTRY_NAME_DFLT_VERSION "Default version" #define DFLT_VALUE_DFLT_VERSION "1.0" #define CONF_ENTRY_NAME_DFLT_ENCODING "Default encoding" #define DFLT_VALUE_DFLT_ENCODING "UTF-8" #define CONF_ENTRY_NAME_DFLT_NEWFILE_CREAT_BEHAVIOUR "Default behaviour" #define DFLT_VALUE_NEWFILE_CREAT_BEHAVIOUR UseDefaults KXENewFileSettings::KXENewFileSettings( TQObject * pParent, const char * pszName ) : KXESettings( "New File Settings", pParent, pszName ), m_strDfltVersion( DFLT_VALUE_DFLT_VERSION ), m_strDfltEncoding( DFLT_VALUE_DFLT_ENCODING ), m_enmNewFileCreaBehav( DFLT_VALUE_NEWFILE_CREAT_BEHAVIOUR ), m_pDialogPage(0) { } void KXENewFileSettings::write( TDEConfig * pConfig ) const { pConfig->writeEntry( CONF_ENTRY_NAME_DFLT_VERSION, m_strDfltVersion ); pConfig->writeEntry( CONF_ENTRY_NAME_DFLT_ENCODING, m_strDfltEncoding ); pConfig->writeEntry( CONF_ENTRY_NAME_DFLT_NEWFILE_CREAT_BEHAVIOUR, m_enmNewFileCreaBehav ); } void KXENewFileSettings::read( const TDEConfig * pConfig ) { m_strDfltVersion = pConfig->readEntry( CONF_ENTRY_NAME_DFLT_VERSION, DFLT_VALUE_DFLT_VERSION ); m_strDfltEncoding = pConfig->readEntry( CONF_ENTRY_NAME_DFLT_ENCODING, DFLT_VALUE_DFLT_ENCODING ); m_enmNewFileCreaBehav = static_cast ( pConfig->readNumEntry( CONF_ENTRY_NAME_DFLT_NEWFILE_CREAT_BEHAVIOUR, DFLT_VALUE_NEWFILE_CREAT_BEHAVIOUR ) ); } TQString KXENewFileSettings::dialogPageName() const { return i18n( "New Files" ); } TQString KXENewFileSettings::dialogPageHeader() const { return i18n( "New File Settings" ); } TQString KXENewFileSettings::dialogPageIcon() const { return "document-new"; } TQWidget * KXENewFileSettings::dialogPage( TQFrame * pParent ) { if ( ! m_pDialogPage ) { // create the page if necessary m_pDialogPage = new KXENewFileSettingsPage( pParent, "new files config.dialog page" ); // and fill its widgets with the corresponding values m_pDialogPage->m_pDfltEncoding->insertStringList( encodings() ); updatePage(); connect( m_pDialogPage->m_pDfltVersion, TQ_SIGNAL(textChanged(const TQString&)), this, TQ_SIGNAL(sigDialogPageChanged()) ); connect( m_pDialogPage->m_pDfltEncoding, TQ_SIGNAL(activated(int)), this, TQ_SIGNAL(sigDialogPageChanged()) ); connect( m_pDialogPage->m_pNewFileCreatBehav1, TQ_SIGNAL(toggled(bool)), this, TQ_SIGNAL(sigDialogPageChanged()) ); connect( m_pDialogPage->m_pNewFileCreatBehav2, TQ_SIGNAL(toggled(bool)), this, TQ_SIGNAL(sigDialogPageChanged()) ); connect( m_pDialogPage->m_pNewFileCreatBehav3, TQ_SIGNAL(toggled(bool)), this, TQ_SIGNAL(sigDialogPageChanged()) ); } return m_pDialogPage; } void KXENewFileSettings::setFromPage() { if ( m_pDialogPage ) { m_strDfltVersion = m_pDialogPage->m_pDfltVersion->text(); m_strDfltEncoding = m_pDialogPage->m_pDfltEncoding->currentText(); if ( m_pDialogPage->m_pNewFileCreatBehav1->isChecked() ) m_enmNewFileCreaBehav = CreateEmptyFile; else if ( m_pDialogPage->m_pNewFileCreatBehav2->isChecked() ) m_enmNewFileCreaBehav = CreateWithAssistance; else if ( m_pDialogPage->m_pNewFileCreatBehav3->isChecked() ) m_enmNewFileCreaBehav = UseDefaults; } } void KXENewFileSettings::updatePage() const { if ( m_pDialogPage ) { m_pDialogPage->m_pDfltVersion->setText( m_strDfltVersion ); m_pDialogPage->m_pDfltEncoding->setCurrentText( m_strDfltEncoding ); switch ( m_enmNewFileCreaBehav ) { case CreateEmptyFile: m_pDialogPage->m_pNewFileCreatBehav->setButton( m_pDialogPage->m_pNewFileCreatBehav->id( m_pDialogPage->m_pNewFileCreatBehav1 ) ); break; case CreateWithAssistance: m_pDialogPage->m_pNewFileCreatBehav->setButton( m_pDialogPage->m_pNewFileCreatBehav->id( m_pDialogPage->m_pNewFileCreatBehav2 ) ); break; case UseDefaults: m_pDialogPage->m_pNewFileCreatBehav->setButton( m_pDialogPage->m_pNewFileCreatBehav->id( m_pDialogPage->m_pNewFileCreatBehav3 ) ); break; default: kdError() << "KXENewFileSettings::updatePage: unknown creation behavior" << endl; } } } TQStringList KXENewFileSettings::encodings() { static TQStringList lstEncs; if ( lstEncs.empty() ) { lstEncs.append("UTF-8"); lstEncs.append("ISO-8859-1"); lstEncs.append("ISO-8859-2"); lstEncs.append("ISO-8859-3"); lstEncs.append("ISO-8859-4"); lstEncs.append("ISO-8859-5"); lstEncs.append("ISO-8859-6"); lstEncs.append("ISO-8859-7"); lstEncs.append("ISO-8859-8"); lstEncs.append("ISO-8859-9"); } return lstEncs; } ///////////////////////////////////////////////// // function(s) to set this settings group data // ///////////////////////////////////////////////// void KXENewFileSettings::setNewFileCreaBehav( NewFileCreationBehaviour enmNewFileCreaBehav, TDEConfig * pConfig ) { // if the data really has been changed if ( m_enmNewFileCreaBehav != enmNewFileCreaBehav ) { // set this object's data to the new one given m_enmNewFileCreaBehav = enmNewFileCreaBehav; // update the corresponding widget in the config.dialog page, if necessary if ( m_pDialogPage ) { blockSignals( true ); switch ( enmNewFileCreaBehav ) { case CreateEmptyFile: m_pDialogPage->m_pNewFileCreatBehav->setButton( m_pDialogPage->m_pNewFileCreatBehav->id( m_pDialogPage->m_pNewFileCreatBehav1 ) ); break; case CreateWithAssistance: m_pDialogPage->m_pNewFileCreatBehav->setButton( m_pDialogPage->m_pNewFileCreatBehav->id( m_pDialogPage->m_pNewFileCreatBehav2 ) ); break; case UseDefaults: m_pDialogPage->m_pNewFileCreatBehav->setButton( m_pDialogPage->m_pNewFileCreatBehav->id( m_pDialogPage->m_pNewFileCreatBehav3 ) ); break; default: kdError() << "KXENewFileSettings::dialogPage: unknown creation behavior" << endl; } blockSignals( false ); } // store the new data (only the given one) to the given config file setConfigGroup( pConfig ); pConfig->writeEntry( CONF_ENTRY_NAME_DFLT_NEWFILE_CREAT_BEHAVIOUR, m_enmNewFileCreaBehav ); // and inform everyone about the changing of our data emit sigChanged(); } }