summaryrefslogtreecommitdiffstats
path: root/part/kxearchiveextssettings.cpp
diff options
context:
space:
mode:
authorSlávek Banko <slavek.banko@axis.cz>2016-03-26 13:50:43 +0100
committerSlávek Banko <slavek.banko@axis.cz>2016-03-26 13:50:43 +0100
commitd62c8c002c51fb7c36487839eeeb4ac89f044dee (patch)
treebb4d1f5c631ab1f22a3018ba39e6a806035f80fd /part/kxearchiveextssettings.cpp
downloadkxmleditor-d62c8c002c51fb7c36487839eeeb4ac89f044dee.tar.gz
kxmleditor-d62c8c002c51fb7c36487839eeeb4ac89f044dee.zip
Initial import of kxmleditor 1.1.4
Diffstat (limited to 'part/kxearchiveextssettings.cpp')
-rw-r--r--part/kxearchiveextssettings.cpp153
1 files changed, 153 insertions, 0 deletions
diff --git a/part/kxearchiveextssettings.cpp b/part/kxearchiveextssettings.cpp
new file mode 100644
index 0000000..ec800c6
--- /dev/null
+++ b/part/kxearchiveextssettings.cpp
@@ -0,0 +1,153 @@
+/***************************************************************************
+ kxearchiveextssettings.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 "kxearchiveextssettings.h"
+#include "kxearchiveextssettingspage.h"
+
+#include <klocale.h>
+#include <kconfig.h>
+
+#include <qframe.h>
+#include <qlistbox.h>
+#include <qlineedit.h>
+#include <qpushbutton.h>
+
+#define CONF_ENTRY_NAME_EXTS_TARGZ "Extensions"
+
+KXEArchiveExtsSettings::KXEArchiveExtsSettings( QObject * pParent, const char * pszName )
+ : KXESettings( "TarGz Extensions", pParent, pszName ),
+ m_pDialogPage(0)
+{
+}
+
+
+void KXEArchiveExtsSettings::write( KConfig * pConfig ) const
+{
+ pConfig->writeEntry( CONF_ENTRY_NAME_EXTS_TARGZ, m_lstExtensions );
+}
+
+
+void KXEArchiveExtsSettings::read( const KConfig * pConfig )
+{
+ m_lstExtensions = pConfig->readListEntry( CONF_ENTRY_NAME_EXTS_TARGZ );
+}
+
+QString KXEArchiveExtsSettings::dialogPageName() const
+{
+ return i18n( "Archive Extensions" );
+}
+
+QString KXEArchiveExtsSettings::dialogPageHeader() const
+{
+ return i18n( "Specify Archive Extensions" );
+}
+
+QString KXEArchiveExtsSettings::dialogPageIcon() const
+{
+ return "filetypes";
+}
+
+QWidget * KXEArchiveExtsSettings::dialogPage( QFrame * pParent )
+{
+ if ( ! m_pDialogPage )
+ {
+ // create the page if necessary
+ m_pDialogPage = new KXEArchiveExtsSettingsPage( pParent, "archive extensions config.dialog page" );
+
+ // and fill its widgets with the corresponding values
+ updatePage();
+
+ connect( m_pDialogPage->m_pExtensions, SIGNAL(highlighted(const QString&)), this, SLOT(slotPageEditExtension(const QString&)) );
+ connect( m_pDialogPage->m_pBtnNew, SIGNAL(clicked()), this, SLOT(slotPageAddExtension()) );
+ connect( m_pDialogPage->m_pBtnDelete, SIGNAL(clicked()), this, SLOT(slotPageDeleteExtension()) );
+ connect( m_pDialogPage->m_pExtension, SIGNAL(textChanged(const QString&)), this, SLOT(slotPageUpdateExtension(const QString&)) );
+
+ connect( m_pDialogPage->m_pBtnNew, SIGNAL(clicked()), this, SIGNAL(sigDialogPageChanged()) );
+ connect( m_pDialogPage->m_pBtnDelete, SIGNAL(clicked()), this, SIGNAL(sigDialogPageChanged()) );
+ }
+
+ return m_pDialogPage;
+}
+
+
+void KXEArchiveExtsSettings::setFromPage()
+{
+ if ( m_pDialogPage )
+ {
+ m_lstExtensions.clear();
+ QListBoxItem * pTmpItem = m_pDialogPage->m_pExtensions->firstItem();
+ while ( pTmpItem )
+ {
+ m_lstExtensions << pTmpItem->text();
+ pTmpItem = pTmpItem->next();
+ }
+ }
+}
+
+void KXEArchiveExtsSettings::updatePage() const
+{
+ if ( m_pDialogPage )
+ {
+ m_pDialogPage->m_pExtensions->clear();
+ m_pDialogPage->m_pExtensions->insertStringList( m_lstExtensions );
+ m_pDialogPage->m_pExtension->setDisabled( true );
+ }
+}
+
+
+//////////////////////////////////////////////////////////////////////
+// additional slots for the corresponding configuration dialog page //
+//////////////////////////////////////////////////////////////////////
+
+void KXEArchiveExtsSettings::slotPageEditExtension( const QString & strText )
+{
+ m_pDialogPage->m_pExtension->setText( strText );
+ m_pDialogPage->m_pExtension->setEnabled( true );
+ m_pDialogPage->m_pExtension->setFocus();
+}
+
+void KXEArchiveExtsSettings::slotPageAddExtension()
+{
+ m_pDialogPage->m_pExtensions->insertItem( "zip", 0 );
+ m_pDialogPage->m_pExtensions->setCurrentItem( 0 );
+ m_pDialogPage->m_pExtension->selectAll();
+ m_pDialogPage->m_pExtension->setFocus();
+ m_pDialogPage->m_pExtension->setEnabled( true );
+}
+
+void KXEArchiveExtsSettings::slotPageDeleteExtension()
+{
+ m_pDialogPage->m_pExtensions->removeItem( m_pDialogPage->m_pExtensions->currentItem() );
+
+ if ( m_pDialogPage->m_pExtensions->count() == 0 )
+ {
+ m_pDialogPage->m_pExtension->clear();
+ m_pDialogPage->m_pExtension->setDisabled( true );
+ }
+ else
+ m_pDialogPage->m_pExtensions->setSelected( m_pDialogPage->m_pExtensions->currentItem(), true );
+}
+
+void KXEArchiveExtsSettings::slotPageUpdateExtension( const QString & strText )
+{
+ if ( ( m_pDialogPage->m_pExtensions->count() > 0 ) &&
+ ( m_pDialogPage->m_pExtensions->currentText() != m_pDialogPage->m_pExtension->text() ) )
+ {
+ m_pDialogPage->m_pExtensions->changeItem( strText, m_pDialogPage->m_pExtensions->currentItem() );
+ emit sigDialogPageChanged();
+ }
+}