You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
208 lines
7.1 KiB
208 lines
7.1 KiB
9 years ago
|
/***************************************************************************
|
||
|
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 <klocale.h>
|
||
|
#include <kconfig.h>
|
||
|
#include <kdebug.h>
|
||
|
|
||
|
#include <qframe.h>
|
||
|
#include <qlineedit.h>
|
||
|
#include <qcombobox.h>
|
||
|
#include <qbuttongroup.h>
|
||
|
#include <qradiobutton.h>
|
||
|
|
||
|
#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<NewFileCreationBehaviour> ( 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();
|
||
|
}
|
||
|
}
|