[SCM] ktp-contact-list packaging branch, master, updated. debian/15.12.1-2-1070-g6c56f91

Maximiliano Curia maxy at moszumanska.debian.org
Sat May 28 00:08:01 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-contact-list.git;a=commitdiff;h=607bfe9

The following commit has been merged in the master branch:
commit 607bfe937fbade17f6d92c29b85b9871acea502c
Author: Martin Klapetek <martin.klapetek at gmail.com>
Date:   Sat Nov 12 21:00:25 2011 +0100

    Add "Remove user from this group" menu entry and enabel back "Block user" menu entry
    
    Reviewed-by: Dario Freddi
    REVIEW: 103118
---
 main-widget.cpp | 95 +++++++++++++++++++++++++++++++++++----------------------
 main-widget.h   |  1 +
 2 files changed, 59 insertions(+), 37 deletions(-)

diff --git a/main-widget.cpp b/main-widget.cpp
index 05cf410..f938cbc 100644
--- a/main-widget.cpp
+++ b/main-widget.cpp
@@ -811,6 +811,7 @@ KMenu* MainWidget::contactContextMenu(const QModelIndex &index)
     KMenu *menu = new KMenu();
     menu->addTitle(contact->alias());
 
+    //must be a QAction because menu->addAction returns QAction, breaks compilation otherwise
     QAction* action = menu->addAction(i18n("Start Chat..."));
     action->setIcon(KIcon("mail-message-new"));
     action->setDisabled(true);
@@ -882,57 +883,59 @@ KMenu* MainWidget::contactContextMenu(const QModelIndex &index)
         menu->addMenu(subMenu);
     }
 
-
     menu->addSeparator();
 
-    // remove contact action
-    QAction *removeAction = menu->addAction(KIcon("list-remove-user"), i18n("Remove Contact"));
-    connect(removeAction, SIGNAL(triggered(bool)), this, SLOT(onDeleteContactTriggered()));
+    if (m_groupContactsAction->isChecked()) {
+        // remove contact from group action, must be QAction because menu->addAction returns QAction
+        QAction *groupRemoveAction = menu->addAction(KIcon(), i18n("Remove Contact From This Group"));
+        connect(groupRemoveAction, SIGNAL(triggered(bool)), this, SLOT(onRemoveContactFromGroupTriggered()));
+
+        if (accountConnection->actualFeatures().contains(Tp::Connection::FeatureRosterGroups)) {
+            QMenu* groupAddMenu = menu->addMenu(i18n("Move to Group"));
+
+            QStringList groupList;
+            QList<Tp::AccountPtr> accounts = m_accountManager->allAccounts();
+            foreach (const Tp::AccountPtr &account, accounts) {
+                if (!account->connection().isNull()) {
+                    groupList.append(account->connection()->contactManager()->allKnownGroups());
+                }
+            }
 
-    if (accountConnection->actualFeatures().contains(Tp::Connection::FeatureRosterGroups)) {
-        QMenu* groupAddMenu = menu->addMenu(i18n("Move to Group"));
+            groupList.removeDuplicates();
 
-        QStringList groupList;
-        QList<Tp::AccountPtr> accounts = m_accountManager->allAccounts();
-        foreach (const Tp::AccountPtr &account, accounts) {
-            if (!account->connection().isNull()) {
-                groupList.append(account->connection()->contactManager()->allKnownGroups());
+            QStringList currentGroups = contact->groups();
+
+            foreach (const QString &group, currentGroups) {
+                groupList.removeAll(group);
             }
-        }
 
-        groupList.removeDuplicates();
+            connect(groupAddMenu->addAction(i18n("Create New Group...")), SIGNAL(triggered(bool)),
+                    this, SLOT(onCreateNewGroupTriggered()));
 
-        QStringList currentGroups = contact->groups();
+            groupAddMenu->addSeparator();
 
-        foreach (const QString &group, currentGroups) {
-            groupList.removeAll(group);
+            foreach (const QString &group, groupList) {
+                connect(groupAddMenu->addAction(group), SIGNAL(triggered(bool)),
+                        SLOT(onAddContactToGroupTriggered()));
+            }
+        } else {
+            kDebug() << "Unable to support Groups";
         }
 
-        connect(groupAddMenu->addAction(i18n("Create New Group...")), SIGNAL(triggered(bool)),
-                this, SLOT(onCreateNewGroupTriggered()));
-
-        groupAddMenu->addSeparator();
+        menu->addSeparator();
+    }
 
-        foreach (const QString &group, groupList) {
-            connect(groupAddMenu->addAction(group), SIGNAL(triggered(bool)),
-                    SLOT(onAddContactToGroupTriggered()));
-        }
+    if (contact->isBlocked()) {
+        action = menu->addAction(i18n("Unblock Contact"));
+        connect(action, SIGNAL(triggered(bool)), SLOT(slotUnblockContactTriggered()));
     } else {
-        kDebug() << "Unable to support Groups";
+        action = menu->addAction(i18n("Block Conact"));
+        connect(action, SIGNAL(triggered(bool)), SLOT(slotBlockContactTriggered()));
     }
 
-    //menu->addSeparator();
-
-    // TODO: Remove when Telepathy actually supports blocking.
-    /*if (contact->isBlocked()) {
-     * action = menu->addAction(i18n("Unblock User"));
-     * connect(action, SIGNAL(triggered(bool)),
-     *         SLOT(slotUnblockContactTriggered()));
-} else {
-    action = menu->addAction(i18n("Blocked"));
-    connect(action, SIGNAL(triggered(bool)),
-    SLOT(slotBlockContactTriggered()));
-}*/
+    // remove contact action, must be QAction because that's what menu->addAction returns
+    QAction *removeAction = menu->addAction(KIcon("list-remove-user"), i18n("Remove Contact"));
+    connect(removeAction, SIGNAL(triggered(bool)), this, SLOT(onDeleteContactTriggered()));
 
     menu->addSeparator();
 
@@ -956,6 +959,7 @@ KMenu* MainWidget::groupContextMenu(const QModelIndex &index)
     KMenu *menu = new KMenu();
     menu->addTitle(groupItem->groupName());
 
+    //must be QAction, because menu->addAction returns QAction, otherwise compilation dies horribly
     QAction *action = menu->addAction(i18n("Rename Group..."));
     action->setIcon(KIcon("edit-rename"));
 
@@ -1489,4 +1493,21 @@ void MainWidget::onUsePerAccountPresenceTriggered()
     configGroup.config()->sync();
 }
 
+void MainWidget::onRemoveContactFromGroupTriggered()
+{
+    QModelIndex index = m_contactsListView->currentIndex();
+    QString groupName = index.parent().data(GroupsModel::GroupNameRole).toString();
+    ContactModelItem* contactItem = index.data(AccountsModel::ItemRole).value<ContactModelItem*>();
+
+    Q_ASSERT(contactItem);
+    Tp::ContactPtr contact =  contactItem->contact();
+
+    Tp::PendingOperation* operation = contact->removeFromGroup(groupName);
+
+    if (operation) {
+        connect(operation, SIGNAL(finished(Tp::PendingOperation*)),
+                SLOT(onGenericOperationFinished(Tp::PendingOperation*)));
+    }
+}
+
 #include "main-widget.moc"
diff --git a/main-widget.h b/main-widget.h
index f602a3a..9c36ae9 100644
--- a/main-widget.h
+++ b/main-widget.h
@@ -97,6 +97,7 @@ private Q_SLOTS:
     void onStartFileTransferTriggered();
     void onStartDesktopSharingTriggered();
     void onUnblockContactTriggered();
+    void onRemoveContactFromGroupTriggered();
     void onCreateNewGroupTriggered();
     void onRenameGroupTriggered();
     void onDeleteGroupTriggered();

-- 
ktp-contact-list packaging



More information about the pkg-kde-commits mailing list