author | Michael Krelin <hacker@klever.net> | 2007-07-04 11:23:42 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2007-07-04 11:23:42 (UTC) |
commit | a08aff328d4393031d5ba7d622c2b05705a89d73 (patch) (side-by-side diff) | |
tree | 8ee90d686081c52e7c69b5ce946e9b1a7d690001 /kabc/distributionlistdialog.cpp | |
parent | 11edc920afe4f274c0964436633aa632c8288a40 (diff) | |
download | kdepimpi-p1.zip kdepimpi-p1.tar.gz kdepimpi-p1.tar.bz2 |
initial public commit of qt4 portp1
Diffstat (limited to 'kabc/distributionlistdialog.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | kabc/distributionlistdialog.cpp | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/kabc/distributionlistdialog.cpp b/kabc/distributionlistdialog.cpp index d2e1144..82883e6 100644 --- a/kabc/distributionlistdialog.cpp +++ b/kabc/distributionlistdialog.cpp @@ -1,394 +1,400 @@ /* This file is part of libkabc. Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include <qlistview.h> +#include <q3listview.h> #include <qlayout.h> #include <qlabel.h> #include <qpushbutton.h> #include <qcombobox.h> +//Added by qt3to4: +#include <Q3HBoxLayout> +#include <Q3GridLayout> +#include <Q3Frame> +#include <Q3VBoxLayout> #include <klineeditdlg.h> -#include <qbuttongroup.h> +#include <q3buttongroup.h> +#include <Q3Button> #include <qradiobutton.h> #include <klocale.h> #include <kdebug.h> #include <kmessagebox.h> #include "addressbook.h" #include "addresseedialog.h" #include "distributionlist.h" #include "distributionlistdialog.h" //US #include "distributionlistdialog.moc" using namespace KABC; DistributionListDialog::DistributionListDialog( AddressBook *addressBook, QWidget *parent) : KDialogBase( parent, "", true, i18n("Configure Distribution Lists"), Ok, Ok, true) { mEditor = new DistributionListEditorWidget( addressBook, this ); setMainWidget( mEditor ); connect( this, SIGNAL( okClicked() ), mEditor, SLOT( save() ) ); } DistributionListDialog::~DistributionListDialog() { } EmailSelector::EmailSelector( const QStringList &emails, const QString ¤t, QWidget *parent ) : KDialogBase( KDialogBase::Plain, i18n("Select Email Address"), Ok, Ok, parent ) { - QFrame *topFrame = plainPage(); - QBoxLayout *topLayout = new QVBoxLayout( topFrame ); + Q3Frame *topFrame = plainPage(); + Q3BoxLayout *topLayout = new Q3VBoxLayout( topFrame ); - mButtonGroup = new QButtonGroup( 1, Horizontal, i18n("Email Addresses"), + mButtonGroup = new Q3ButtonGroup( 1, Qt::Horizontal, i18n("Email Addresses"), topFrame ); topLayout->addWidget( mButtonGroup ); QStringList::ConstIterator it; for( it = emails.begin(); it != emails.end(); ++it ) { QRadioButton *button = new QRadioButton( *it, mButtonGroup ); if ( (*it) == current ) { button->setDown( true ); } } } QString EmailSelector::selected() { - QButton *button = mButtonGroup->selected(); + QAbstractButton *button = mButtonGroup->selected(); if ( button ) return button->text(); return QString::null; } QString EmailSelector::getEmail( const QStringList &emails, const QString ¤t, QWidget *parent ) { EmailSelector *dlg = new EmailSelector( emails, current, parent ); dlg->exec(); QString result = dlg->selected(); delete dlg; return result; } -class EntryItem : public QListViewItem +class EntryItem : public Q3ListViewItem { public: - EntryItem( QListView *parent, const Addressee &addressee, + EntryItem( Q3ListView *parent, const Addressee &addressee, const QString &email=QString::null ) : - QListViewItem( parent ), + Q3ListViewItem( parent ), mAddressee( addressee ), mEmail( email ) { setText( 0, addressee.realName() ); if( email.isEmpty() ) { setText( 1, addressee.preferredEmail() ); setText( 2, i18n("Yes") ); } else { setText( 1, email ); setText( 2, i18n("No") ); } } Addressee addressee() const { return mAddressee; } QString email() const { return mEmail; } private: Addressee mAddressee; QString mEmail; }; DistributionListEditorWidget::DistributionListEditorWidget( AddressBook *addressBook, QWidget *parent) : QWidget( parent ), mAddressBook( addressBook ) { kdDebug(5700) << "DistributionListEditor()" << endl; - QBoxLayout *topLayout = new QVBoxLayout( this ); + Q3BoxLayout *topLayout = new Q3VBoxLayout( this ); topLayout->setSpacing( KDialog::spacingHint() ); - QBoxLayout *nameLayout = new QHBoxLayout( topLayout) ; + Q3BoxLayout *nameLayout = new Q3HBoxLayout( topLayout) ; mNameCombo = new QComboBox( this ); nameLayout->addWidget( mNameCombo ); connect( mNameCombo, SIGNAL( activated( int ) ), SLOT( updateEntryView() ) ); mNewButton = new QPushButton( i18n("New List..."), this ); nameLayout->addWidget( mNewButton ); connect( mNewButton, SIGNAL( clicked() ), SLOT( newList() ) ); mEditButton = new QPushButton( i18n("Rename List..."), this ); nameLayout->addWidget( mEditButton ); connect( mEditButton, SIGNAL( clicked() ), SLOT( editList() ) ); mRemoveButton = new QPushButton( i18n("Remove List"), this ); nameLayout->addWidget( mRemoveButton ); connect( mRemoveButton, SIGNAL( clicked() ), SLOT( removeList() ) ); - QGridLayout *gridLayout = new QGridLayout( topLayout, 3, 3 ); + Q3GridLayout *gridLayout = new Q3GridLayout( topLayout, 3, 3 ); gridLayout->setColStretch(1, 1); QLabel *listLabel = new QLabel( i18n("Available addresses:"), this ); gridLayout->addWidget( listLabel, 0, 0 ); mListLabel = new QLabel( this ); gridLayout->addMultiCellWidget( mListLabel, 0, 0, 1, 2 ); - mAddresseeView = new QListView( this ); + mAddresseeView = new Q3ListView( this ); mAddresseeView->addColumn( i18n("Name") ); mAddresseeView->addColumn( i18n("Preferred Email") ); mAddresseeView->setAllColumnsShowFocus( true ); gridLayout->addWidget( mAddresseeView, 1, 0 ); connect( mAddresseeView, SIGNAL( selectionChanged() ), SLOT( slotSelectionAddresseeViewChanged() ) ); - connect( mAddresseeView, SIGNAL( doubleClicked( QListViewItem * ) ), + connect( mAddresseeView, SIGNAL( doubleClicked( Q3ListViewItem * ) ), SLOT( addEntry() ) ); mAddEntryButton = new QPushButton( i18n("Add Entry"), this ); mAddEntryButton->setEnabled(false); gridLayout->addWidget( mAddEntryButton, 2, 0 ); connect( mAddEntryButton, SIGNAL( clicked() ), SLOT( addEntry() ) ); - mEntryView = new QListView( this ); + mEntryView = new Q3ListView( this ); mEntryView->addColumn( i18n("Name") ); mEntryView->addColumn( i18n("Email") ); mEntryView->addColumn( i18n("Use Preferred") ); mEntryView->setEnabled(false); mEntryView->setAllColumnsShowFocus( true ); gridLayout->addMultiCellWidget( mEntryView, 1, 1, 1, 2 ); connect( mEntryView, SIGNAL( selectionChanged() ), SLOT( slotSelectionEntryViewChanged() ) ); mChangeEmailButton = new QPushButton( i18n("Change Email..."), this ); gridLayout->addWidget( mChangeEmailButton, 2, 1 ); connect( mChangeEmailButton, SIGNAL( clicked() ), SLOT( changeEmail() ) ); mRemoveEntryButton = new QPushButton( i18n("Remove Entry"), this ); gridLayout->addWidget( mRemoveEntryButton, 2, 2 ); connect( mRemoveEntryButton, SIGNAL( clicked() ), SLOT( removeEntry() ) ); mManager = new DistributionListManager( mAddressBook ); mManager->load(); updateAddresseeView(); updateNameCombo(); } DistributionListEditorWidget::~DistributionListEditorWidget() { kdDebug(5700) << "~DistributionListEditor()" << endl; delete mManager; } void DistributionListEditorWidget::save() { mManager->save(); } void DistributionListEditorWidget::slotSelectionEntryViewChanged() { EntryItem *entryItem = static_cast<EntryItem *>( mEntryView->selectedItem() ); bool state=entryItem; mChangeEmailButton->setEnabled(state); mRemoveEntryButton->setEnabled(state); } void DistributionListEditorWidget::newList() { KLineEditDlg dlg(i18n("Please enter name:"), QString::null, this); dlg.setCaption(i18n("New Distribution List")); if (!dlg.exec()) return; new DistributionList( mManager, dlg.text() ); mNameCombo->clear(); mNameCombo->insertStringList( mManager->listNames() ); mNameCombo->setCurrentItem( mNameCombo->count() - 1 ); updateEntryView(); slotSelectionAddresseeViewChanged(); } void DistributionListEditorWidget::editList() { QString oldName = mNameCombo->currentText(); KLineEditDlg dlg(i18n("Please change name:"), oldName, this); dlg.setCaption(i18n("Distribution List")); if (!dlg.exec()) return; DistributionList *list = mManager->list( oldName ); list->setName( dlg.text() ); mNameCombo->clear(); mNameCombo->insertStringList( mManager->listNames() ); mNameCombo->setCurrentItem( mNameCombo->count() - 1 ); updateEntryView(); slotSelectionAddresseeViewChanged(); } void DistributionListEditorWidget::removeList() { int result = KMessageBox::warningContinueCancel( this, i18n("Delete distribution list '%1'?") .arg( mNameCombo->currentText() ), QString::null, i18n("Delete") ); if ( result != KMessageBox::Continue ) return; delete mManager->list( mNameCombo->currentText() ); mNameCombo->removeItem( mNameCombo->currentItem() ); updateEntryView(); slotSelectionAddresseeViewChanged(); } void DistributionListEditorWidget::addEntry() { AddresseeItem *addresseeItem = static_cast<AddresseeItem *>( mAddresseeView->selectedItem() ); if( !addresseeItem ) { kdDebug(5700) << "DLE::addEntry(): No addressee selected." << endl; return; } DistributionList *list = mManager->list( mNameCombo->currentText() ); if ( !list ) { kdDebug(5700) << "DLE::addEntry(): No dist list '" << mNameCombo->currentText() << "'" << endl; return; } list->insertEntry( addresseeItem->addressee() ); updateEntryView(); slotSelectionAddresseeViewChanged(); } void DistributionListEditorWidget::removeEntry() { DistributionList *list = mManager->list( mNameCombo->currentText() ); if ( !list ) return; EntryItem *entryItem = static_cast<EntryItem *>( mEntryView->selectedItem() ); if ( !entryItem ) return; list->removeEntry( entryItem->addressee(), entryItem->email() ); delete entryItem; } void DistributionListEditorWidget::changeEmail() { DistributionList *list = mManager->list( mNameCombo->currentText() ); if ( !list ) return; EntryItem *entryItem = static_cast<EntryItem *>( mEntryView->selectedItem() ); if ( !entryItem ) return; QString email = EmailSelector::getEmail( entryItem->addressee().emails(), entryItem->email(), this ); list->removeEntry( entryItem->addressee(), entryItem->email() ); list->insertEntry( entryItem->addressee(), email ); updateEntryView(); } void DistributionListEditorWidget::updateEntryView() { if ( mNameCombo->currentText().isEmpty() ) { mListLabel->setText( i18n("Selected addressees:") ); } else { mListLabel->setText( i18n("Selected addresses in '%1':") .arg( mNameCombo->currentText() ) ); } mEntryView->clear(); DistributionList *list = mManager->list( mNameCombo->currentText() ); if ( !list ) { mEditButton->setEnabled(false); mRemoveButton->setEnabled(false); mChangeEmailButton->setEnabled(false); mRemoveEntryButton->setEnabled(false); mAddresseeView->setEnabled(false); mEntryView->setEnabled(false); return; } else { mEditButton->setEnabled(true); mRemoveButton->setEnabled(true); mAddresseeView->setEnabled(true); mEntryView->setEnabled(true); } DistributionList::Entry::List entries = list->entries(); DistributionList::Entry::List::ConstIterator it; for( it = entries.begin(); it != entries.end(); ++it ) { new EntryItem( mEntryView, (*it).addressee, (*it).email ); } EntryItem *entryItem = static_cast<EntryItem *>( mEntryView->selectedItem() ); bool state=entryItem; mChangeEmailButton->setEnabled(state); mRemoveEntryButton->setEnabled(state); } void DistributionListEditorWidget::updateAddresseeView() { mAddresseeView->clear(); AddressBook::Iterator it; for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { new AddresseeItem( mAddresseeView, *it ); } } void DistributionListEditorWidget::updateNameCombo() { mNameCombo->insertStringList( mManager->listNames() ); updateEntryView(); } void DistributionListEditorWidget::slotSelectionAddresseeViewChanged() { AddresseeItem *addresseeItem = static_cast<AddresseeItem *>( mAddresseeView->selectedItem() ); bool state=addresseeItem; mAddEntryButton->setEnabled( state && !mNameCombo->currentText().isEmpty()); } |