author | zautrix <zautrix> | 2004-07-03 22:32:36 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-07-03 22:32:36 (UTC) |
commit | 00fe3539778c859d22f595e516733b3cc792e167 (patch) (side-by-side diff) | |
tree | 0970b0a64c63395a0d66f1debe8226501b08e7ea | |
parent | 5e59162e6eb6603610d1ca4c96d5d97acae0f60b (diff) | |
download | kdepimpi-00fe3539778c859d22f595e516733b3cc792e167.zip kdepimpi-00fe3539778c859d22f595e516733b3cc792e167.tar.gz kdepimpi-00fe3539778c859d22f595e516733b3cc792e167.tar.bz2 |
Made configure kaddressbook dialog fitting on 5500 display
-rw-r--r-- | kaddressbook/kabcore.cpp | 1 | ||||
-rw-r--r-- | kaddressbook/kcmconfigs/addresseewidget.cpp | 14 | ||||
-rw-r--r-- | kaddressbook/kcmconfigs/kabconfigwidget.cpp | 14 | ||||
-rw-r--r-- | kaddressbook/kcmconfigs/kcmkabconfig.cpp | 6 |
4 files changed, 26 insertions, 9 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index 7bf1a2f..a6d722d 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp @@ -819,384 +819,385 @@ void KABCore::addEmail( QString aStr ) found = true; (*it).setNameFromString( fullName ); editContact( (*it).uid() ); } } if ( !found ) { KABC::Addressee addr; addr.setNameFromString( fullName ); addr.insertEmail( email, true ); mAddressBook->insertAddressee( addr ); mViewManager->refreshView( addr.uid() ); editContact( addr.uid() ); } #else //KAB_EMBEDDED qDebug("KABCore::addEmail finsih method"); #endif //KAB_EMBEDDED } void KABCore::importVCard( const KURL &url, bool showPreview ) { mXXPortManager->importVCard( url, showPreview ); } void KABCore::importVCard( const QString &vCard, bool showPreview ) { mXXPortManager->importVCard( vCard, showPreview ); } //US added a second method without defaultparameter void KABCore::editContact2() { editContact( QString::null ); } void KABCore::editContact( const QString &uid ) { if ( mExtensionManager->isQuickEditVisible() ) return; // First, locate the contact entry QString localUID = uid; if ( localUID.isNull() ) { QStringList uidList = mViewManager->selectedUids(); if ( uidList.count() > 0 ) localUID = *( uidList.at( 0 ) ); } KABC::Addressee addr = mAddressBook->findByUid( localUID ); if ( !addr.isEmpty() ) { AddresseeEditorDialog *dialog = mEditorDict.find( addr.uid() ); if ( !dialog ) { dialog = createAddresseeEditorDialog( this ); mEditorDict.insert( addr.uid(), dialog ); dialog->setAddressee( addr ); } dialog->raise(); dialog->show(); } } void KABCore::save() { if ( !mModified ) return; QString text = i18n( "There was an error while attempting to save\n the " "address book. Please check that some \nother application is " "not using it. " ); statusMessage(i18n("Saving addressbook ... ")); #ifndef KAB_EMBEDDED KABC::StdAddressBook *b = dynamic_cast<KABC::StdAddressBook*>( mAddressBook ); if ( !b || !b->save() ) { KMessageBox::error( this, text, i18n( "Unable to Save" ) ); } #else //KAB_EMBEDDED KABC::StdAddressBook *b = (KABC::StdAddressBook*)( mAddressBook ); if ( !b || !b->save() ) { QMessageBox::critical( this, i18n( "Unable to Save" ), text, i18n("Ok")); } #endif //KAB_EMBEDDED statusMessage(i18n("Addressbook saved!")); setModified( false ); } void KABCore::statusMessage(QString mess , int time ) { //topLevelWidget()->setCaption( mess ); // pending setting timer to revome message } void KABCore::undo() { UndoStack::instance()->undo(); // Refresh the view mViewManager->refreshView(); } void KABCore::redo() { RedoStack::instance()->redo(); // Refresh the view mViewManager->refreshView(); } void KABCore::setJumpButtonBarVisible( bool visible ) { if ( visible ) mJumpButtonBar->show(); else mJumpButtonBar->hide(); } void KABCore::setDetailsToState() { setDetailsVisible( mActionDetails->isChecked() ); } void KABCore::setDetailsVisible( bool visible ) { if ( visible ) mDetails->show(); else mDetails->hide(); } void KABCore::extensionModified( const KABC::Addressee::List &list ) { if ( list.count() != 0 ) { KABC::Addressee::List::ConstIterator it; for ( it = list.begin(); it != list.end(); ++it ) mAddressBook->insertAddressee( *it ); if ( list.count() > 1 ) setModified(); else setModifiedWOrefresh(); } if ( list.count() == 0 ) mViewManager->refreshView(); else mViewManager->refreshView( list[ 0 ].uid() ); } QString KABCore::getNameByPhone( const QString &phone ) { #ifndef KAB_EMBEDDED QRegExp r( "[/*/-/ ]" ); QString localPhone( phone ); bool found = false; QString ownerName = ""; KABC::AddressBook::Iterator iter; KABC::PhoneNumber::List::Iterator phoneIter; KABC::PhoneNumber::List phoneList; for ( iter = mAddressBook->begin(); !found && ( iter != mAddressBook->end() ); ++iter ) { phoneList = (*iter).phoneNumbers(); for ( phoneIter = phoneList.begin(); !found && ( phoneIter != phoneList.end() ); ++phoneIter) { // Get rid of separator chars so just the numbers are compared. if ( (*phoneIter).number().replace( r, "" ) == localPhone.replace( r, "" ) ) { ownerName = (*iter).formattedName(); found = true; } } } return ownerName; #else //KAB_EMBEDDED qDebug("KABCore::getNameByPhone finsih method"); return ""; #endif //KAB_EMBEDDED } void KABCore::openConfigDialog() { KCMultiDialog* ConfigureDialog = new KCMultiDialog( "PIM", this ,"kabconfigdialog", true ); KCMKabConfig* kabcfg = new KCMKabConfig( ConfigureDialog->getNewVBoxPage(i18n( "Addressbook")) , "KCMKabConfig" ); ConfigureDialog->addModule(kabcfg ); connect( ConfigureDialog, SIGNAL( applyClicked() ), this, SLOT( configurationChanged() ) ); connect( ConfigureDialog, SIGNAL( okClicked() ), this, SLOT( configurationChanged() ) ); saveSettings(); + ConfigureDialog->showMaximized(); ConfigureDialog->exec(); delete ConfigureDialog; } void KABCore::openLDAPDialog() { #ifndef KAB_EMBEDDED if ( !mLdapSearchDialog ) { mLdapSearchDialog = new LDAPSearchDialog( mAddressBook, this ); connect( mLdapSearchDialog, SIGNAL( addresseesAdded() ), mViewManager, SLOT( refreshView() ) ); connect( mLdapSearchDialog, SIGNAL( addresseesAdded() ), this, SLOT( setModified() ) ); } else mLdapSearchDialog->restoreSettings(); if ( mLdapSearchDialog->isOK() ) mLdapSearchDialog->exec(); #else //KAB_EMBEDDED qDebug("KABCore::openLDAPDialog() finsih method"); #endif //KAB_EMBEDDED } void KABCore::print() { #ifndef KAB_EMBEDDED KPrinter printer; if ( !printer.setup( this ) ) return; KABPrinting::PrintingWizard wizard( &printer, mAddressBook, mViewManager->selectedUids(), this ); wizard.exec(); #else //KAB_EMBEDDED qDebug("KABCore::print() finsih method"); #endif //KAB_EMBEDDED } void KABCore::addGUIClient( KXMLGUIClient *client ) { if ( mGUIClient ) mGUIClient->insertChildClient( client ); else KMessageBox::error( this, "no KXMLGUICLient"); } void KABCore::configurationChanged() { mExtensionManager->reconfigure(); } void KABCore::addressBookChanged() { #ifndef KAB_EMBEDDED QDictIterator<AddresseeEditorDialog> it( mEditorDict ); while ( it.current() ) { if ( it.current()->dirty() ) { QString text = i18n( "Data has been changed externally. Unsaved " "changes will be lost." ); KMessageBox::information( this, text ); } it.current()->setAddressee( mAddressBook->findByUid( it.currentKey() ) ); ++it; } mViewManager->refreshView(); #else //KAB_EMBEDDED qDebug("KABCore::addressBookChanged() finsih method"); #endif //KAB_EMBEDDED } AddresseeEditorDialog *KABCore::createAddresseeEditorDialog( QWidget *parent, const char *name ) { AddresseeEditorDialog *dialog = new AddresseeEditorDialog( this, parent, name ? name : "editorDialog" ); //US dialog->setMaximumSize( 640, 480 ); dialog->showMaximized(); connect( dialog, SIGNAL( contactModified( const KABC::Addressee& ) ), SLOT( contactModified( const KABC::Addressee& ) ) ); connect( dialog, SIGNAL( editorDestroyed( const QString& ) ), SLOT( slotEditorDestroyed( const QString& ) ) ); return dialog; } void KABCore::slotEditorDestroyed( const QString &uid ) { mEditorDict.remove( uid ); } void KABCore::initGUI() { #ifndef KAB_EMBEDDED QHBoxLayout *topLayout = new QHBoxLayout( this ); topLayout->setSpacing( KDialogBase::spacingHint() ); mExtensionBarSplitter = new QSplitter( this ); mExtensionBarSplitter->setOrientation( Qt::Vertical ); mDetailsSplitter = new QSplitter( mExtensionBarSplitter ); QVBox *viewSpace = new QVBox( mDetailsSplitter ); mIncSearchWidget = new IncSearchWidget( viewSpace ); connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), SLOT( incrementalSearch( const QString& ) ) ); mViewManager = new ViewManager( this, viewSpace ); viewSpace->setStretchFactor( mViewManager, 1 ); mDetails = new ViewContainer( mDetailsSplitter ); mJumpButtonBar = new JumpButtonBar( this, this ); mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter ); topLayout->addWidget( mExtensionBarSplitter ); topLayout->setStretchFactor( mExtensionBarSplitter, 100 ); topLayout->addWidget( mJumpButtonBar ); topLayout->setStretchFactor( mJumpButtonBar, 1 ); mXXPortManager = new XXPortManager( this, this ); #else //KAB_EMBEDDED //US initialize viewMenu before settingup viewmanager. // Viewmanager needs this menu to plugin submenues. viewMenu = new QPopupMenu( this ); settingsMenu = new QPopupMenu( this ); //filterMenu = new QPopupMenu( this ); ImportMenu = new QPopupMenu( this ); ExportMenu = new QPopupMenu( this ); //US since we have no splitter for the embedded system, setup // a layout with two frames. One left and one right. QBoxLayout *topLayout; // = new QHBoxLayout( this ); // QBoxLayout *topLayout = (QBoxLayout*)layout(); // QWidget *mainBox = new QWidget( this ); // QBoxLayout * mainBoxLayout = new QHBoxLayout(mainBox); #ifdef DESKTOP_VERSION topLayout = new QHBoxLayout( this ); mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this); mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right ); topLayout->addWidget(mMiniSplitter ); mExtensionBarSplitter = new KDGanttMinimizeSplitter( Qt::Vertical,mMiniSplitter ); mExtensionBarSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down ); mViewManager = new ViewManager( this, mExtensionBarSplitter ); mDetails = new ViewContainer( mMiniSplitter ); mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter ); #else if ( QApplication::desktop()->width() > 480 ) { topLayout = new QHBoxLayout( this ); mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this); mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right ); } else { topLayout = new QVBoxLayout( this ); mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Vertical, this); mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down ); } topLayout->addWidget(mMiniSplitter ); mViewManager = new ViewManager( this, mMiniSplitter ); mDetails = new ViewContainer( mMiniSplitter ); mExtensionManager = new ExtensionManager( this, mMiniSplitter ); #endif //eh->hide(); // topLayout->addWidget(mExtensionManager ); /*US #ifndef KAB_NOSPLITTER QHBoxLayout *topLayout = new QHBoxLayout( this ); //US topLayout->setSpacing( KDialogBase::spacingHint() ); diff --git a/kaddressbook/kcmconfigs/addresseewidget.cpp b/kaddressbook/kcmconfigs/addresseewidget.cpp index 0f3c353..f84b2ba 100644 --- a/kaddressbook/kcmconfigs/addresseewidget.cpp +++ b/kaddressbook/kcmconfigs/addresseewidget.cpp @@ -1,236 +1,242 @@ /* This file is part of KAddressBook. Copyright (c) 2003 Tobias Koenig <tokoe@kde.org> 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. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. As a special exception, permission is given to link this program with any edition of Qt, and distribute the resulting executable, without including the source code for Qt in the source distribution. */ #include <qgroupbox.h> #include <qlabel.h> #include <qlayout.h> #include <qlistbox.h> #include <qpushbutton.h> #include <kbuttonbox.h> #include <kcombobox.h> #include <kconfig.h> #include <kdialog.h> #include <klocale.h> #include <kglobal.h> #include <klineedit.h> #include <kstandarddirs.h> #include "addresseewidget.h" NamePartWidget::NamePartWidget( const QString &title, QWidget *parent, const char *name ) : QWidget( parent, name ) { if (KGlobal::getOrientation() == KGlobal::Portrait) { QGridLayout* layout = new QGridLayout( this, 1, 1, KDialog::marginHintSmall(), KDialog::spacingHintSmall() ); QLabel *label = new QLabel( i18n( title ), this ); layout->addWidget( label, 0, 1 ); mBox = new QListBox( this ); mBox->setMaximumSize(70, 70); layout->addMultiCellWidget( mBox, 0, 1, 0, 0 ); KButtonBox *bbox = new KButtonBox( this, Qt::Vertical ); mAddButton = bbox->addButton( i18n( "Add" ), this, SLOT( add() ) ); mRemoveButton = bbox->addButton( i18n( "Rem" ), this, SLOT( remove() ) ); bbox->layout(); - layout->addMultiCellWidget( bbox, 0, 2, 2,2); + layout->addMultiCellWidget( bbox, 0, 1, 2,2); mEdit = new KLineEdit( this ); layout->addWidget( mEdit, 1, 1 ); //mEdit->setMinimumWidth(50); // layout->addWidget( group ); } else { QHBoxLayout *layout = new QHBoxLayout( this ); QGroupBox *group = new QGroupBox( 0, Qt::Vertical, title, this ); QGridLayout *groupLayout = new QGridLayout( group->layout(), 2, 2, KDialog::spacingHint() ); mBox = new QListBox( group ); groupLayout->addWidget( mBox, 0, 0 ); KButtonBox *bbox = new KButtonBox( group, Qt::Vertical ); mAddButton = bbox->addButton( i18n( "Add" ), this, SLOT( add() ) ); mRemoveButton = bbox->addButton( i18n( "Remove" ), this, SLOT( remove() ) ); bbox->layout(); groupLayout->addWidget( bbox, 0, 1 ); mEdit = new KLineEdit( group ); groupLayout->addMultiCellWidget( mEdit, 1, 1, 0, 1 ); layout->addWidget( group ); } mAddButton->setEnabled( false ); mRemoveButton->setEnabled( false ); connect( mBox, SIGNAL( selectionChanged( QListBoxItem* ) ), SLOT( selectionChanged( QListBoxItem* ) ) ); connect( mEdit, SIGNAL( textChanged( const QString& ) ), SLOT( textChanged( const QString& ) ) ); connect( mEdit, SIGNAL( returnPressed() ), SLOT( add() ) ); } NamePartWidget::~NamePartWidget() { } void NamePartWidget::setNameParts( const QStringList &list ) { mBox->clear(); mBox->insertStringList( list ); } QStringList NamePartWidget::nameParts() const { QStringList parts; for ( uint i = 0; i < mBox->count(); ++i ) parts.append( mBox->text( i ) ); return parts; } void NamePartWidget::add() { if ( !mEdit->text().isEmpty() ) { mBox->insertItem( mEdit->text() ); emit modified(); } mEdit->setText( "" ); } void NamePartWidget::remove() { mBox->removeItem( mBox->currentItem() ); if ( mBox->count() == 0 ) selectionChanged( 0 ); emit modified(); } void NamePartWidget::selectionChanged( QListBoxItem *item ) { mRemoveButton->setEnabled( item != 0 ); } void NamePartWidget::textChanged( const QString& text ) { mAddButton->setEnabled( !text.isEmpty() ); } AddresseeWidget::AddresseeWidget( QWidget *parent, const char *name ) : QWidget( parent, name ) { QGridLayout *layout; mPrefix = new NamePartWidget( i18n( "Prefixes" ), this ); mInclusion = new NamePartWidget( i18n( "Inclusions" ), this ); mSuffix = new NamePartWidget( i18n( "Suffixes" ), this ); - QLabel *label = new QLabel( i18n( "Default formatted name:" ), this ); + QString dfn; + if (QApplication::desktop()->width() > 320 ) + dfn = i18n( "Default formatted name:" ); + else + dfn = i18n( "Def. formatted name:" ); + + QLabel *label = new QLabel( dfn, this ); mFormattedNameCombo = new KComboBox( this ); mFormattedNameCombo->insertItem( i18n( "Empty" ) ); mFormattedNameCombo->insertItem( i18n( "Simple Name" ) ); mFormattedNameCombo->insertItem( i18n( "Full Name" ) ); mFormattedNameCombo->insertItem( i18n( "Reverse Name" ) ); if (KGlobal::getOrientation() == KGlobal::Portrait) { - layout = new QGridLayout( this, 4, 2, KDialog::marginHint(), - KDialog::spacingHint() ); + layout = new QGridLayout( this, 4, 2, KDialog::marginHintSmall(), + KDialog::spacingHintSmall() ); layout->addMultiCellWidget( mPrefix, 0, 0, 0, 1 ); layout->addMultiCellWidget( mInclusion, 1, 1, 0, 1 ); layout->addMultiCellWidget( mSuffix, 2, 2, 0, 1 ); layout->addWidget( label, 3, 0 ); layout->addWidget( mFormattedNameCombo, 3, 1 ); } else { layout = new QGridLayout( this, 2, 3, KDialog::marginHint(), KDialog::spacingHint() ); layout->addWidget( mPrefix, 0, 0 ); layout->addWidget( mInclusion, 0, 1 ); layout->addWidget( mSuffix, 0, 2 ); layout->addWidget( label, 1, 0 ); layout->addMultiCellWidget( mFormattedNameCombo, 1, 1, 1, 2 ); } connect( mPrefix, SIGNAL( modified() ), SIGNAL( modified() ) ); connect( mInclusion, SIGNAL( modified() ), SIGNAL( modified() ) ); connect( mSuffix, SIGNAL( modified() ), SIGNAL( modified() ) ); connect( mFormattedNameCombo, SIGNAL( activated( int ) ), SIGNAL( modified() ) ); } AddresseeWidget::~AddresseeWidget() { } void AddresseeWidget::restoreSettings() { KConfig config( locateLocal("config", "kabcrc") ); config.setGroup( "General" ); mPrefix->setNameParts( config.readListEntry( "Prefixes" ) ); mInclusion->setNameParts( config.readListEntry( "Inclusions" ) ); mSuffix->setNameParts( config.readListEntry( "Suffixes" ) ); KConfig cfg( locateLocal("config","kaddressbookrc") ); cfg.setGroup( "General" ); mFormattedNameCombo->setCurrentItem( cfg.readNumEntry( "FormattedNameType", 1 ) ); } void AddresseeWidget::saveSettings() { KConfig config( locateLocal("config","kabcrc") ); config.setGroup( "General" ); config.writeEntry( "Prefixes", mPrefix->nameParts() ); config.writeEntry( "Inclusions", mInclusion->nameParts() ); config.writeEntry( "Suffixes", mSuffix->nameParts() ); KConfig cfg( locateLocal("config","kaddressbookrc") ); cfg.setGroup( "General" ); cfg.writeEntry( "FormattedNameType", mFormattedNameCombo->currentItem() ); } #ifndef KAB_EMBEDDED #include "addresseewidget.moc" #endif //KAB_EMBEDDED diff --git a/kaddressbook/kcmconfigs/kabconfigwidget.cpp b/kaddressbook/kcmconfigs/kabconfigwidget.cpp index 7b3e5c6..38c7946 100644 --- a/kaddressbook/kcmconfigs/kabconfigwidget.cpp +++ b/kaddressbook/kcmconfigs/kabconfigwidget.cpp @@ -1,304 +1,310 @@ /* This file is part of KAddressBook. Copyright (c) 2003 Tobias Koenig <tokoe@kde.org> 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. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. As a special exception, permission is given to link this program with any edition of Qt, and distribute the resulting executable, without including the source code for Qt in the source distribution. */ #include <qcheckbox.h> #include <qframe.h> #include <qgroupbox.h> #include <qlayout.h> #include <qpushbutton.h> #include <qtabwidget.h> #include <kconfig.h> #include <kdebug.h> #include <kdialog.h> #include <klistview.h> #include <klocale.h> #include <kglobal.h> #include <kmessagebox.h> #include <kstandarddirs.h> #ifndef KAB_EMBEDDED #include <ktrader.h> #else // KAB_EMBEDDED #include <mergewidget.h> #include <distributionlistwidget.h> #endif // KAB_EMBEDDED #include "addresseewidget.h" #include "extensionconfigdialog.h" #include "extensionwidget.h" #include "kabprefs.h" #include "kabconfigwidget.h" class ExtensionItem : public QCheckListItem { public: #ifndef KAB_EMBEDDED ExtensionItem( QListView *parent, const QString &text ); void setService( const KService::Ptr &ptr ); #else //KAB_EMBEDDED ExtensionItem( QListView *parent, const QString &text, const QString &name, const QString &comment ); void setFactory( ExtensionFactory* fac ); #endif //KAB_EMBEDDED bool configWidgetAvailable() const; ExtensionFactory *factory() const; virtual QString text( int column ) const; private: #ifndef KAB_EMBEDDED KService::Ptr mPtr; #else //KAB_EMBEDDED ExtensionFactory* mFactory; QString mName; QString mComment; #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::marginHint(), - KDialog::spacingHint() ); + QVBoxLayout *layout = new QVBoxLayout( generalPage, KDialog::marginHintSmall(), + KDialog::spacingHintSmall() ); 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 ); layout->addWidget( groupBox ); groupBox = new QGroupBox( 0, Qt::Vertical, i18n( "Extensions" ), 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( 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() { bool blocked = signalsBlocked(); blockSignals( true ); mNameParsing->setChecked( KABPrefs::instance()->mAutomaticNameParsing ); mViewsSingleClickBox->setChecked( KABPrefs::instance()->mHonorSingleClick ); mAddresseeWidget->restoreSettings(); restoreExtensionSettings(); blockSignals( blocked ); emit changed( false ); } void KABConfigWidget::saveSettings() { KABPrefs::instance()->mAutomaticNameParsing = mNameParsing->isChecked(); KABPrefs::instance()->mHonorSingleClick = mViewsSingleClickBox->isChecked(); mAddresseeWidget->saveSettings(); saveExtensionSettings(); KABPrefs::instance()->writeConfig(); emit changed( false ); } void KABConfigWidget::defaults() { mNameParsing->setChecked( true ); mViewsSingleClickBox->setChecked( false ); 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"); item->setFactory( extensionFactory ); if ( activeExtensions.contains( extensionFactory->identifier() ) ) item->setOn( true ); extensionFactory = new DistributionListFactory(); item = new ExtensionItem( mExtensionView, "Distribution List", "Distribution List", "Manage Distribution Lists"); item->setFactory( extensionFactory ); if ( activeExtensions.contains( extensionFactory->identifier() ) ) item->setOn( true ); #endif //KAB_EMBEDDED } void KABConfigWidget::saveExtensionSettings() { QStringList activeExtensions; QPtrList<QListViewItem> list; QListViewItemIterator it( mExtensionView ); while ( it.current() ) { ExtensionItem *item = static_cast<ExtensionItem*>( it.current() ); if ( item ) { if ( item->isOn() ) activeExtensions.append( item->factory()->identifier() ); } ++it; } KABPrefs::instance()->mActiveExtensions = activeExtensions; } void KABConfigWidget::configureExtension() { ExtensionItem *item = static_cast<ExtensionItem*>( mExtensionView->currentItem() ); if ( !item ) return; #ifndef KAB_EMBEDDED KConfig config( "kaddressbookrc" ); #else //KAB_EMBEDDED KConfig config( locateLocal("config", "kaddressbookrc") ); #endif //KAB_EMBEDDED config.setGroup( QString( "Extensions_%1" ).arg( item->factory()->identifier() ) ); ExtensionConfigDialog dlg( item->factory(), &config, this ); dlg.exec(); config.sync(); } void KABConfigWidget::selectionChanged( QListViewItem *i ) { ExtensionItem *item = static_cast<ExtensionItem*>( i ); if ( !item ) return; mConfigureButton->setEnabled( item->configWidgetAvailable() ); } void KABConfigWidget::itemClicked( QListViewItem *item ) { if ( item != 0 ) modified(); } #ifndef KAB_EMBEDDED ExtensionItem::ExtensionItem( QListView *parent, const QString &text ) : QCheckListItem( parent, text, CheckBox ) { } void ExtensionItem::setService( const KService::Ptr &ptr ) { mPtr = ptr; } #else //KAB_EMBEDDED ExtensionItem::ExtensionItem( QListView *parent, const QString &text, const QString &name, const QString &comment ) : QCheckListItem( parent, text, CheckBox ) { mName = name; mComment = comment; } void ExtensionItem::setFactory( ExtensionFactory* fac ) { mFactory = fac; } #endif //KAB_EMBEDDED bool ExtensionItem::configWidgetAvailable() const diff --git a/kaddressbook/kcmconfigs/kcmkabconfig.cpp b/kaddressbook/kcmconfigs/kcmkabconfig.cpp index 791a940..a278042 100644 --- a/kaddressbook/kcmconfigs/kcmkabconfig.cpp +++ b/kaddressbook/kcmconfigs/kcmkabconfig.cpp @@ -1,86 +1,90 @@ /* This file is part of KAddressBook. Copyright (c) 2003 Tobias Koenig <tokoe@kde.org> 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. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. As a special exception, permission is given to link this program with any edition of Qt, and distribute the resulting executable, without including the source code for Qt in the source distribution. */ #include <qlayout.h> #ifndef KAB_EMBEDDED #include <kaboutdata.h> #endif //KAB_EMBEDDED #include <kdebug.h> #include <klocale.h> +#include <stdlib.h> #include "kabconfigwidget.h" #include "kcmkabconfig.h" extern "C" { KCModule *create_kabconfig( QWidget *parent, const char * ) { return new KCMKabConfig( parent, "kcmkabconfig" ); } } KCMKabConfig::KCMKabConfig( QWidget *parent, const char *name ) : KCModule( parent, name ) { + //abort(); QVBoxLayout *layout = new QVBoxLayout( this ); mConfigWidget = new KABConfigWidget( this, "mConfigWidget" ); layout->addWidget( mConfigWidget ); - + layout->setSpacing( 0 ); + layout->setMargin( 0 ); + connect( mConfigWidget, SIGNAL( changed( bool ) ), SIGNAL( changed( bool ) ) ); load(); } void KCMKabConfig::load() { mConfigWidget->restoreSettings(); } void KCMKabConfig::save() { mConfigWidget->saveSettings(); } void KCMKabConfig::defaults() { mConfigWidget->defaults(); } #ifndef KAB_EMBEDDED const KAboutData* KCMKabConfig::aboutData() const { KAboutData *about = new KAboutData( I18N_NOOP( "kcmkabconfig" ), I18N_NOOP( "KAddressBook Configure Dialog" ), 0, 0, KAboutData::License_GPL, I18N_NOOP( "(c), 2003 Tobias Koenig" ) ); about->addAuthor( "Tobias Koenig", 0, "tokoe@kde.org" ); return about; } #endif //KAB_EMBEDDED #ifndef KAB_EMBEDDED #include "kcmkabconfig.moc" #endif //KAB_EMBEDDED |