-rw-r--r-- | kabc/addresseedialog.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/kabc/addresseedialog.cpp b/kabc/addresseedialog.cpp index 9197850..0cf75a0 100644 --- a/kabc/addresseedialog.cpp +++ b/kabc/addresseedialog.cpp @@ -18,96 +18,97 @@ Boston, MA 02111-1307, USA. */ #include <qlayout.h> #include <qpushbutton.h> #include <qgroupbox.h> #include <qapplication.h> #include <qregexp.h> #include <qvbox.h> #include <qlabel.h> #include <klocale.h> #include <kdebug.h> #include <kglobalsettings.h> #include "stdaddressbook.h" #include "addresseedialog.h" #include "KDGanttMinimizeSplitter.h" //#include "addresseedialog.moc" using namespace KABC; AddresseeItem::AddresseeItem( QListView *parent, const Addressee &addressee ) : QListViewItem( parent ), mAddressee( addressee ) { setText( Name,addressee.realName()); setText( Email, addressee.preferredEmail() ); setText( Category, addressee.categories().join(";") ); } QString AddresseeItem::key( int column, bool ) const { if (column == Email) { QString value = text(Email); int val = value.findRev("@"); return value.mid( val) + value.left( val ); } return text(column).lower(); } AddresseeDialog::AddresseeDialog( QWidget *parent, bool multiple ) : KDialogBase( KDialogBase::Plain, i18n("Select Addressee"), Ok|Cancel, No, parent ), mMultiple( multiple ) { qDebug("NEW AddresseeDialog "); + QWidget *topWidget = plainPage(); QBoxLayout *topLayout = new QHBoxLayout( topWidget ); KDGanttMinimizeSplitter* mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, topWidget); mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right ); topLayout->addWidget(mMiniSplitter ); QWidget *listWidget = new QWidget( mMiniSplitter ); QVBoxLayout *listLayout = new QVBoxLayout (listWidget) ; //topLayout->addLayout( listLayout ); mAddresseeList = new KListView( listWidget ); mAddresseeList->addColumn( i18n("Name") ); mAddresseeList->addColumn( i18n("Email") ); mAddresseeList->addColumn( i18n("Category") ); mAddresseeList->setAllColumnsShowFocus( true ); mAddresseeList->setFullWidth( true ); listLayout->addWidget( mAddresseeList ); connect( mAddresseeList, SIGNAL( doubleClicked( QListViewItem * ) ), SLOT( slotOk() ) ); //QHBox* searchBox = new QHBox ( listWidget ); mAddresseeEdit = new QLineEdit( listWidget ); connect( mAddresseeEdit, SIGNAL( returnPressed() ), SLOT( loadAddressBook() ) ); mAddresseeEdit->setFocus(); QPushButton *searchButton = new QPushButton( i18n("Search!"), listWidget ); connect ( searchButton, SIGNAL( clicked() ), SLOT( loadAddressBook() ) ); QHBoxLayout *searchLayout = new QHBoxLayout (listLayout) ; searchLayout->addWidget( mAddresseeEdit ); searchLayout->addWidget( searchButton ); //listLayout->addWidget( searchBox ); if ( mMultiple ) { //QBoxLayout *selectedLayout = new QVBoxLayout; //topLayout->addLayout( selectedLayout ); //topLayout->setSpacing( spacingHint() ); QVBox *selectedGroup = new QVBox( mMiniSplitter ); new QLabel ( i18n("Selected:"), selectedGroup ); //selectedLayout->addWidget( selectedGroup ); mSelectedList = new KListView( selectedGroup ); @@ -279,85 +280,89 @@ Addressee::List AddresseeDialog::addressees() } } else { aItem = (AddresseeItem *)( mAddresseeList->selectedItem() ); if (aItem) al.append( aItem->addressee() ); } return al; } Addressee AddresseeDialog::getAddressee( QWidget *parent ) { AddresseeDialog *dlg = new AddresseeDialog( parent ); Addressee addressee; #ifdef DESKTOP_VERSION static int geoX = 0; static int geoY = 0; static int geoW = 0; static int geoH = 0; if ( !geoX && ! geoY && !geoW &&!geoH ) { geoX = dlg->geometry().x(); geoY = dlg->geometry().y(); geoW = dlg->width(); geoH = dlg->height(); } else { dlg->show(); dlg->setGeometry(geoX , geoY,geoW , geoH ); } #endif int result = dlg->exec(); #ifdef DESKTOP_VERSION geoX = dlg->geometry().x(); geoY = dlg->geometry().y(); geoW = dlg->width(); geoH = dlg->height(); #endif if ( result == QDialog::Accepted ) { addressee = dlg->addressee(); } delete dlg; return addressee; } Addressee::List AddresseeDialog::getAddressees( QWidget *parent ) { - AddresseeDialog *dlg = new AddresseeDialog( parent, true ); Addressee::List addressees; + static bool running = false; + if ( running ) return addressees; + running = true; + AddresseeDialog *dlg = new AddresseeDialog( parent, true ); static int geoX = 0; static int geoY = 0; static int geoW = 0; static int geoH = 0; if ( QApplication::desktop()->width() <= 640 ) dlg->showMaximized(); else { if ( !geoX && ! geoY && !geoW &&!geoH ) { geoX = dlg->geometry().x(); geoY = dlg->geometry().y(); geoW = dlg->width(); geoH = dlg->height(); } else { dlg->show(); dlg->setGeometry(geoX , geoY,geoW , geoH ); } } int result = dlg->exec(); geoX = dlg->geometry().x(); geoY = dlg->geometry().y(); geoW = dlg->width(); geoH = dlg->height(); if ( result == QDialog::Accepted ) { addressees = dlg->addressees(); } delete dlg; + running = false; return addressees; } void AddresseeDialog::addressBookChanged() { loadAddressBook(); } |