From d62c8c002c51fb7c36487839eeeb4ac89f044dee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sl=C3=A1vek=20Banko?= Date: Sat, 26 Mar 2016 13:50:43 +0100 Subject: Initial import of kxmleditor 1.1.4 --- part/kxenewfilesettings.cpp | 207 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 207 insertions(+) create mode 100644 part/kxenewfilesettings.cpp (limited to 'part/kxenewfilesettings.cpp') diff --git a/part/kxenewfilesettings.cpp b/part/kxenewfilesettings.cpp new file mode 100644 index 0000000..fcd4562 --- /dev/null +++ b/part/kxenewfilesettings.cpp @@ -0,0 +1,207 @@ +/*************************************************************************** + 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( QObject * 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( KConfig * 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 KConfig * 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 ) ); +} + + +QString KXENewFileSettings::dialogPageName() const +{ + return i18n( "New Files" ); +} + +QString KXENewFileSettings::dialogPageHeader() const +{ + return i18n( "New File Settings" ); +} + +QString KXENewFileSettings::dialogPageIcon() const +{ + return "files"; +} + + +QWidget * KXENewFileSettings::dialogPage( QFrame * 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, SIGNAL(textChanged(const QString&)), this, SIGNAL(sigDialogPageChanged()) ); + connect( m_pDialogPage->m_pDfltEncoding, SIGNAL(activated(int)), this, SIGNAL(sigDialogPageChanged()) ); + connect( m_pDialogPage->m_pNewFileCreatBehav1, SIGNAL(toggled(bool)), this, SIGNAL(sigDialogPageChanged()) ); + connect( m_pDialogPage->m_pNewFileCreatBehav2, SIGNAL(toggled(bool)), this, SIGNAL(sigDialogPageChanged()) ); + connect( m_pDialogPage->m_pNewFileCreatBehav3, SIGNAL(toggled(bool)), this, 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; + } + } +} + +QStringList KXENewFileSettings::encodings() +{ + static QStringList 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, KConfig * 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(); + } +} -- cgit v1.2.1