author | ulf69 <ulf69> | 2004-08-19 00:38:41 (UTC) |
---|---|---|
committer | ulf69 <ulf69> | 2004-08-19 00:38:41 (UTC) |
commit | 895e3797f6437347fd73b87a3bf9d4cecfa5a5a9 (patch) (side-by-side diff) | |
tree | 514daed00896a1a902b63f2deefa745b34d51ea4 | |
parent | 00101d27c9305ac3163e1a0c8ed27408b41fa192 (diff) | |
download | kdepimpi-895e3797f6437347fd73b87a3bf9d4cecfa5a5a9.zip kdepimpi-895e3797f6437347fd73b87a3bf9d4cecfa5a5a9.tar.gz kdepimpi-895e3797f6437347fd73b87a3bf9d4cecfa5a5a9.tar.bz2 |
updated version of detailed view when called through QCop
-rw-r--r-- | kaddressbook/kabcore.cpp | 79 | ||||
-rw-r--r-- | kaddressbook/kabcore.h | 3 |
2 files changed, 77 insertions, 5 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index e7c815e..dabb8e9 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp @@ -55,48 +55,53 @@ #include <libkdepim/categoryselectdialog.h> #include "addresseeutil.h" #include "addresseeeditordialog.h" #include "extensionmanager.h" #include "kstdaction.h" #include "kaddressbookservice.h" #include "ldapsearchdialog.h" #include "printing/printingwizard.h" #else // KAB_EMBEDDED #include <kapplication.h> #include "KDGanttMinimizeSplitter.h" #include "kaddressbookmain.h" #include "kactioncollection.h" #include "addresseedialog.h" +//US +#include <libkdepim/addresseeview.h> #include <qapp.h> #include <qmenubar.h> //#include <qtoolbar.h> #include <qmessagebox.h> #include <kdebug.h> #include <kiconloader.h> // needed for SmallIcon #include <kresources/kcmkresources.h> #include <ktoolbar.h> //#include <qlabel.h> #ifndef DESKTOP_VERSION #include <qpe/ir.h> +#include <qtopia/qcopenvelope_qws.h> +#else + #endif #endif // KAB_EMBEDDED #include "kcmconfigs/kcmkabconfig.h" #include "kcmconfigs/kcmkdepimconfig.h" #include "kpimglobalprefs.h" #include "externalapphandler.h" #include <kresources/selectdialog.h> #include <kmessagebox.h> #include <picture.h> #include <resource.h> //US#include <qsplitter.h> @@ -201,33 +206,34 @@ KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) ); connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) ); connect( mXXPortManager, SIGNAL( modified() ), SLOT( setModified() ) ); connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ), SLOT( incrementalSearch( const QString& ) ) ); connect( mIncSearchWidget, SIGNAL( fieldChanged() ), mJumpButtonBar, SLOT( recreateButtons() ) ); connect( mDetails, SIGNAL( sendEmail( const QString& ) ), SLOT( sendMail( const QString& ) ) ); - connect( ExternalAppHandler::instance(), SIGNAL (requestForNameEmailUidList(const QString&, const QString&, const QString&)),this, SLOT(requestForNameEmailUidList(const QString&, const QString&, const QString&))); + connect( ExternalAppHandler::instance(), SIGNAL (requestForNameEmailUidList(const QString&, const QString&)),this, SLOT(requestForNameEmailUidList(const QString&, const QString&))); + connect( ExternalAppHandler::instance(), SIGNAL (requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&)),this, SLOT(requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&))); #ifndef KAB_EMBEDDED connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ), mXXPortManager, SLOT( importVCard( const KURL& ) ) ); connect( mDetails, SIGNAL( browse( const QString& ) ), SLOT( browse( const QString& ) ) ); mAddressBookService = new KAddressBookService( this ); #endif //KAB_EMBEDDED mEditorDialog = 0; createAddresseeEditorDialog( this ); setModified( false ); @@ -1962,43 +1968,108 @@ void KABCore::configureKeyBindings() #ifdef KAB_EMBEDDED void KABCore::configureResources() { KRES::KCMKResources dlg( this, "" , 0 ); if ( !dlg.exec() ) return; KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") ); } #endif //KAB_EMBEDDED /* this method will be called through the QCop interface from Ko/Pi to select addresses * for the attendees list of an event. */ -void KABCore::requestForNameEmailUidList(const QString& sourceChannel, const QString& uid, const QString& param1) +void KABCore::requestForNameEmailUidList(const QString& sourceChannel, const QString& uid) { - //param1 is usually empty for this kind of request - QStringList nameList; QStringList emailList; QStringList uidList; KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this); uint i=0; for (i=0; i < list.count(); i++) { nameList.append(list[i].realName()); emailList.append(list[i].preferredEmail()); uidList.append(list[i].uid()); } bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI(sourceChannel, uid, nameList, emailList, uidList); } +/* this method will be called through the QCop interface from other apps to show details of a contact. + */ +void KABCore::requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid) +{ +// qDebug("KABCore::requestForDetails %s %s %s %s %s", sourceChannel.latin1(), sessionuid.latin1(), name.latin1(), email.latin1(), uid.latin1()); + + QString foundUid = QString::null; + if (uid.isEmpty()) + { + //find the uid of the person first + Addressee::List namelist; + Addressee::List emaillist; + + if (!name.isEmpty()) + namelist = mAddressBook->findByName( name ); + + if (!email.isEmpty()) + emaillist = mAddressBook->findByEmail( email ); + + //check if we have a match in Namelist and Emaillist + if ((namelist.count() == 0) && (emaillist.count() > 0)) + foundUid == emaillist[0].uid(); + else if ((namelist.count() > 0) && (emaillist.count() == 0)) + foundUid == namelist[0].uid(); + else + { + for (int i = 0; i < namelist.count(); i++) + { + for (int j = 0; j < emaillist.count(); j++) + { + if (namelist[i] == emaillist[j]) + { + foundUid == namelist[i].uid(); + } + } + } + } + } + else + { + foundUid = uid; + } + + if (!foundUid.isEmpty()) + { + // raise Ka/Pi if it is in the background +#ifndef DESKTOP_VERSION +#ifndef KORG_NODCOP + QCopEnvelope e("QPE/Application/kapi", "raise()"); +#endif +#endif + + mMainWindow->showMaximized(); + + mViewManager->setSelected( "", false); + mViewManager->refreshView( "" ); + mViewManager->setSelected( foundUid, true ); + mViewManager->refreshView( foundUid ); + + if ( !mMultipleViewsAtOnce ) + { + setDetailsVisible( true ); + mActionDetails->setChecked(true); + } + } +} + #ifndef KAB_EMBEDDED #include "kabcore.moc" #endif //KAB_EMBEDDED diff --git a/kaddressbook/kabcore.h b/kaddressbook/kabcore.h index fe778af..040b6aa 100644 --- a/kaddressbook/kabcore.h +++ b/kaddressbook/kabcore.h @@ -315,33 +315,34 @@ class KABCore : public QWidget /** Launches the ldap search dialog. */ void openLDAPDialog(); /** Creates a KAddressBookPrinter, which will display the print dialog and do the printing. */ void print(); /** Registers a new GUI client, so plugins can register its actions. */ void addGUIClient( KXMLGUIClient *client ); - void requestForNameEmailUidList(const QString& sourceChannel, const QString& uid, const QString& param1); + void requestForNameEmailUidList(const QString& sourceChannel, const QString& sessionuid); + void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid); signals: void contactSelected( const QString &name ); void contactSelected( const QPixmap &pixmap ); public slots: void setDetailsVisible( bool visible ); void setDetailsToState(); private slots: void setJumpButtonBarVisible( bool visible ); void importFromOL(); void extensionModified( const KABC::Addressee::List &list ); void extensionChanged( int id ); void clipboardDataChanged(); void updateActionMenu(); void configureKeyBindings(); |