summaryrefslogtreecommitdiffstats
path: root/konq-plugins/kuick/kimcontactmenu.cpp
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit84da08d7b7fcda12c85caeb5a10b4903770a6f69 (patch)
tree2a6aea76f2dfffb4cc04bb907c4725af94f70e72 /konq-plugins/kuick/kimcontactmenu.cpp
downloadtdeaddons-84da08d7b7fcda12c85caeb5a10b4903770a6f69.tar.gz
tdeaddons-84da08d7b7fcda12c85caeb5a10b4903770a6f69.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdeaddons@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'konq-plugins/kuick/kimcontactmenu.cpp')
-rw-r--r--konq-plugins/kuick/kimcontactmenu.cpp82
1 files changed, 82 insertions, 0 deletions
diff --git a/konq-plugins/kuick/kimcontactmenu.cpp b/konq-plugins/kuick/kimcontactmenu.cpp
new file mode 100644
index 0000000..42cf980
--- /dev/null
+++ b/konq-plugins/kuick/kimcontactmenu.cpp
@@ -0,0 +1,82 @@
+/* This file is part of the KDE project
+ Copyright (C) 2004 Will Stephenson <lists@stevello.free-online.co.uk>
+
+ kimcontactmenu.cpp - Menu allowing a choice from a list of instant
+ messaging contacts
+
+ 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; version 2
+ of the License.
+
+ 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., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+#include <qstringlist.h>
+
+// The following enables kabc for contact name lookups instead of using Kopete's idea of their name.
+//#define KIMCONTACTS_USE_KABC
+
+#include <kimproxy.h>
+
+#ifdef KIMCONTACTS_USE_KABC
+#include <kabc/addressbook.h>
+#include <kabc/stdaddressbook.h>
+#endif
+
+#include "kimcontactmenu.h"
+
+KIMContactMenu::KIMContactMenu( QWidget *parent, KIMProxy *proxy )
+ : QPopupMenu( parent), mProxy( proxy )
+{
+#ifdef KIMCONTACTS_USE_KABC
+ m_addressBook = KABC::StdAddressBook::self( false );
+#endif
+ connect( this, SIGNAL( activated( int ) ), SLOT( slotItemActivated( int ) ) );
+ connect( this, SIGNAL( aboutToShow( ) ), this, SLOT( slotAboutToShow( ) ) );
+}
+
+KIMContactMenu::~KIMContactMenu()
+{
+}
+
+void KIMContactMenu::slotAboutToHide()
+{
+}
+
+void KIMContactMenu::slotAboutToShow()
+{
+ // the pointer may be returning to the menu, if it's already populated, there's nothing to do
+ if (count() >= 1) return;
+
+ mContacts = mProxy->fileTransferContacts();
+
+ int i = 0;
+
+ for ( QStringList::Iterator it = mContacts.begin(); it != mContacts.end(); ++it, ++i )
+ {
+#ifdef KIMCONTACTS_USE_KABC
+ insertItem( mProxy->presenceIcon( *it ), m_addressBook->findByUid( *it ).realName(), i );
+#else
+ insertItem( mProxy->presenceIcon( *it ), mProxy->displayName( *it ), i );
+#endif
+ }
+}
+
+void KIMContactMenu::slotItemActivated( int item )
+{
+ // look up corresponding UID
+ QString uid = mContacts[ item ];
+ // emit signal
+ emit contactChosen( uid );
+}
+
+#include "kimcontactmenu.moc"