author | ulf69 <ulf69> | 2004-08-11 19:20:53 (UTC) |
---|---|---|
committer | ulf69 <ulf69> | 2004-08-11 19:20:53 (UTC) |
commit | f79407b018b3abd9a99ccd259f1ff24f3bfee6a4 (patch) (side-by-side diff) | |
tree | 5063b159ec286ebe074e96391fd1a034aca208ae | |
parent | 4e4e196bc4fbe4e078b4fbe6b372bd643bf372f1 (diff) | |
download | kdepimpi-f79407b018b3abd9a99ccd259f1ff24f3bfee6a4.zip kdepimpi-f79407b018b3abd9a99ccd259f1ff24f3bfee6a4.tar.gz kdepimpi-f79407b018b3abd9a99ccd259f1ff24f3bfee6a4.tar.bz2 |
added a configurationsettings that aloowes the user to choose between
the display of multiple views at once or just one
-rw-r--r-- | kaddressbook/kabprefs.cpp | 2 | ||||
-rw-r--r-- | kaddressbook/kabprefs.h | 1 | ||||
-rw-r--r-- | kaddressbook/kcmconfigs/kabconfigwidget.cpp | 9 | ||||
-rw-r--r-- | kaddressbook/kcmconfigs/kabconfigwidget.h | 2 |
4 files changed, 13 insertions, 1 deletions
diff --git a/kaddressbook/kabprefs.cpp b/kaddressbook/kabprefs.cpp index 0c192dd..03c5e76 100644 --- a/kaddressbook/kabprefs.cpp +++ b/kaddressbook/kabprefs.cpp @@ -29,64 +29,66 @@ #include <kconfig.h> #include <klocale.h> #include <kstaticdeleter.h> //US#include <kdebug.h> // defines kdDebug() #include "kabprefs.h" KABPrefs *KABPrefs::sInstance = 0; static KStaticDeleter<KABPrefs> staticDeleter; KABPrefs::KABPrefs() : KPimPrefs("kaddressbookrc") { KPrefs::setCurrentGroup( "Views" ); addItemBool( "HonorSingleClick", &mHonorSingleClick, false ); KPrefs::setCurrentGroup( "General" ); addItemBool( "AutomaticNameParsing", &mAutomaticNameParsing, true ); addItemInt( "CurrentIncSearchField", &mCurrentIncSearchField, 0 ); #ifdef KAB_EMBEDDED addItemBool("AskForQuit",&mAskForQuit,false); addItemBool("ToolBarHor",&mToolBarHor, true ); addItemBool("ToolBarUp",&mToolBarUp, false ); #endif //KAB_EMBEDDED KPrefs::setCurrentGroup( "MainWindow" ); addItemBool( "JumpButtonBarVisible", &mJumpButtonBarVisible, false ); addItemBool( "DetailsPageVisible", &mDetailsPageVisible, true ); addItemIntList( "ExtensionsSplitter", &mExtensionsSplitter ); addItemIntList( "DetailsSplitter", &mDetailsSplitter ); + addItemBool( "MultipleViewsAtOnce", &mMultipleViewsAtOnce, true ); + KPrefs::setCurrentGroup( "Extensions_General" ); QStringList defaultExtensions; defaultExtensions << "merge"; defaultExtensions << "distribution_list_editor"; addItemInt( "CurrentExtension", &mCurrentExtension, 0 ); addItemStringList( "ActiveExtensions", &mActiveExtensions, defaultExtensions ); KPrefs::setCurrentGroup( "Views" ); QString defaultView = i18n( "Default Table View" ); addItemString( "CurrentView", &mCurrentView, defaultView ); addItemStringList( "ViewNames", &mViewNames, defaultView ); KPrefs::setCurrentGroup( "Filters" ); addItemInt( "CurrentFilter", &mCurrentFilter, 0 ); } KABPrefs::~KABPrefs() { } KABPrefs *KABPrefs::instance() { if ( !sInstance ) { #ifdef KAB_EMBEDDED sInstance = staticDeleter.setObject( new KABPrefs() ); #else //KAB_EMBEDDED //US the following line has changed ???. Why staticDeleter.setObject( sInstance, new KABPrefs() ); #endif //KAB_EMBEDDED sInstance->readConfig(); diff --git a/kaddressbook/kabprefs.h b/kaddressbook/kabprefs.h index 8f149ac..03e529f 100644 --- a/kaddressbook/kabprefs.h +++ b/kaddressbook/kabprefs.h @@ -36,55 +36,56 @@ class KABPrefs : public KPimPrefs virtual ~KABPrefs(); static KABPrefs *instance(); // General bool mHonorSingleClick; bool mAutomaticNameParsing; int mCurrentIncSearchField; #ifdef KAB_EMBEDDED // US introduce a nonconst way to return the config object. KConfig* getConfig(); bool mToolBarHor; bool mToolBarUp; bool mAskForQuit; /** Set preferences to default values */ // void usrSetDefaults(); /** Read preferences from config file */ // void usrReadConfig(); /** Write preferences to config file */ // void usrWriteConfig(); #endif //KAB_EMBEDDED // GUI bool mJumpButtonBarVisible; bool mDetailsPageVisible; + bool mMultipleViewsAtOnce; QValueList<int> mExtensionsSplitter; QValueList<int> mDetailsSplitter; // Extensions stuff int mCurrentExtension; QStringList mActiveExtensions; // Views stuff QString mCurrentView; QStringList mViewNames; // Filter int mCurrentFilter; void setCategoryDefaults(); private: KABPrefs(); static KABPrefs *sInstance; }; #endif diff --git a/kaddressbook/kcmconfigs/kabconfigwidget.cpp b/kaddressbook/kcmconfigs/kabconfigwidget.cpp index b5309c0..31ab7b5 100644 --- a/kaddressbook/kcmconfigs/kabconfigwidget.cpp +++ b/kaddressbook/kcmconfigs/kabconfigwidget.cpp @@ -82,145 +82,152 @@ class ExtensionItem : public QCheckListItem #endif //KAB_EMBEDDED }; KABConfigWidget::KABConfigWidget( QWidget *parent, const char *name ) : QWidget( parent, name ) { QVBoxLayout *topLayout = new QVBoxLayout( this, 0, KDialog::spacingHint() ); QTabWidget *tabWidget = new QTabWidget( this ); topLayout->addWidget( tabWidget ); // General page QWidget *generalPage = new QWidget( this ); QVBoxLayout *layout = new QVBoxLayout( generalPage, KDialog::marginHintSmall(), KDialog::spacingHintSmall() ); //general groupbox QGroupBox *groupBox = new QGroupBox( 0, Qt::Vertical, i18n( "General" ), generalPage ); QVBoxLayout *boxLayout = new QVBoxLayout( groupBox->layout() ); boxLayout->setAlignment( Qt::AlignTop ); boxLayout->setMargin(KDialog::marginHintSmall() ); groupBox->layout()->setMargin(KDialog::marginHintSmall()) ; groupBox->layout()->setSpacing(KDialog::spacingHintSmall()); boxLayout->setSpacing( KDialog::spacingHintSmall() ); mViewsSingleClickBox = new QCheckBox( i18n( "Honor KDE single click" ), groupBox, "msingle" ); boxLayout->addWidget( mViewsSingleClickBox ); mNameParsing = new QCheckBox( i18n( "Automatic name parsing for new addressees" ), groupBox, "mparse" ); boxLayout->addWidget( mNameParsing ); + mMultipleViewsAtOnce = new QCheckBox( i18n( "Display List and Details at once (restart)" ), groupBox, "mdisplay" ); + boxLayout->addWidget( mMultipleViewsAtOnce ); + layout->addWidget( groupBox ); //extensions groupbox - groupBox = new QGroupBox( 0, Qt::Vertical, i18n( "Extensions" ), generalPage ); + groupBox = new QGroupBox( 0, Qt::Vertical, i18n( "Extensions (restart)" ), generalPage ); boxLayout = new QVBoxLayout( groupBox->layout() ); boxLayout->setAlignment( Qt::AlignTop ); boxLayout->setMargin(KDialog::marginHintSmall()); boxLayout->setSpacing(KDialog::spacingHintSmall()); groupBox->layout()->setMargin(1) ; groupBox->layout()->setSpacing(0); mExtensionView = new KListView( groupBox ); mExtensionView->setAllColumnsShowFocus( true ); mExtensionView->addColumn( i18n( "Name" ) ); mExtensionView->addColumn( i18n( "Description" ) ); mExtensionView->setMaximumHeight(80); boxLayout->addWidget( mExtensionView ); mConfigureButton = new QPushButton( i18n( "Configure..." ), groupBox ); mConfigureButton->setEnabled( false ); boxLayout->addWidget( mConfigureButton ); layout->addWidget( groupBox ); connect( mNameParsing, SIGNAL( toggled( bool ) ), this, SLOT( modified() ) ); connect( mViewsSingleClickBox, SIGNAL( toggled( bool ) ), this, SLOT( modified() ) ); + connect( mMultipleViewsAtOnce, SIGNAL( toggled( bool ) ), this, SLOT( modified() ) ); connect( mExtensionView, SIGNAL( selectionChanged( QListViewItem* ) ), SLOT( selectionChanged( QListViewItem* ) ) ); connect( mExtensionView, SIGNAL( clicked( QListViewItem* ) ), SLOT( itemClicked( QListViewItem* ) ) ); connect( mConfigureButton, SIGNAL( clicked() ), SLOT( configureExtension() ) ); tabWidget->addTab( generalPage, i18n( "General" ) ); // Addressee page mAddresseeWidget = new AddresseeWidget( this ); tabWidget->addTab( mAddresseeWidget, i18n( "Contact" ) ); connect( mAddresseeWidget, SIGNAL( modified() ), SLOT( modified() ) ); } void KABConfigWidget::restoreSettings(KABPrefs* prefs) { //US prefs was KABPrefs::instance() before bool blocked = signalsBlocked(); blockSignals( true ); mNameParsing->setChecked( prefs->mAutomaticNameParsing ); mViewsSingleClickBox->setChecked( prefs->mHonorSingleClick ); + mMultipleViewsAtOnce->setChecked( prefs->mMultipleViewsAtOnce ); mAddresseeWidget->restoreSettings(); restoreExtensionSettings(); blockSignals( blocked ); emit changed( false ); } void KABConfigWidget::saveSettings(KABPrefs* prefs) { prefs->mAutomaticNameParsing = mNameParsing->isChecked(); prefs->mHonorSingleClick = mViewsSingleClickBox->isChecked(); + prefs->mMultipleViewsAtOnce = mMultipleViewsAtOnce->isChecked(); mAddresseeWidget->saveSettings(); saveExtensionSettings(); KABPrefs::instance()->writeConfig(); emit changed( false ); } void KABConfigWidget::defaults(KABPrefs* prefs) { mNameParsing->setChecked( true ); mViewsSingleClickBox->setChecked( false ); + mMultipleViewsAtOnce->setChecked( true ); emit changed( true ); } void KABConfigWidget::modified() { emit changed( true ); } void KABConfigWidget::restoreExtensionSettings() { QStringList activeExtensions = KABPrefs::instance()->mActiveExtensions; mExtensionView->clear(); #ifndef KAB_EMBEDDED KTrader::OfferList plugins = KTrader::self()->query( "KAddressBook/Extension" ); KTrader::OfferList::ConstIterator it; for ( it = plugins.begin(); it != plugins.end(); ++it ) { if ( !(*it)->hasServiceType( "KAddressBook/Extension" ) ) continue; ExtensionItem *item = new ExtensionItem( mExtensionView, (*it)->name() ); item->setService( *it ); if ( activeExtensions.contains( item->factory()->identifier() ) ) item->setOn( true ); } #else //KAB_EMBEDDED ExtensionFactory *extensionFactory = new MergeFactory(); ExtensionItem *item = new ExtensionItem( mExtensionView, "Merge", "Merge", "Merge contacts"); diff --git a/kaddressbook/kcmconfigs/kabconfigwidget.h b/kaddressbook/kcmconfigs/kabconfigwidget.h index 8c0c436..2928495 100644 --- a/kaddressbook/kcmconfigs/kabconfigwidget.h +++ b/kaddressbook/kcmconfigs/kabconfigwidget.h @@ -39,38 +39,40 @@ class AddresseeWidget; class KABConfigWidget : public QWidget { Q_OBJECT public: KABConfigWidget( QWidget *parent, const char *name = 0 ); void restoreSettings(KABPrefs* prefs); void saveSettings(KABPrefs* prefs); void defaults(KABPrefs* prefs); signals: void changed( bool ); public slots: void modified(); private slots: void configureExtension(); void selectionChanged( QListViewItem* ); void itemClicked( QListViewItem* ); private: void restoreExtensionSettings(); void saveExtensionSettings(); KListView *mExtensionView; QCheckBox *mNameParsing; QCheckBox *mViewsSingleClickBox; + QCheckBox *mMultipleViewsAtOnce; + QPushButton *mConfigureButton; AddresseeWidget *mAddresseeWidget; }; #endif |