[SCM] ktp-accounts-kcm packaging branch, master, updated. debian/15.12.1-1-1157-gc4589c5

Maximiliano Curia maxy at moszumanska.debian.org
Sat May 28 00:03:02 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-accounts-kcm.git;a=commitdiff;h=d3784b9

The following commit has been merged in the master branch:
commit d3784b941d385911f0bce474d56a033b49a52da3
Author: Dan Vrátil <dvratil at redhat.com>
Date:   Sun Jan 20 18:07:59 2013 +0100

    Fix 'Edit Identity' button
    
    REVIEW: 108502
    BUG: 291653
    FIXED-IN: 0.5.3
---
 src/kcm-telepathy-accounts.cpp | 40 +++++++++++++++++++++++++++-------------
 src/kcm-telepathy-accounts.h   |  2 +-
 2 files changed, 28 insertions(+), 14 deletions(-)

diff --git a/src/kcm-telepathy-accounts.cpp b/src/kcm-telepathy-accounts.cpp
index 380271a..f035c83 100644
--- a/src/kcm-telepathy-accounts.cpp
+++ b/src/kcm-telepathy-accounts.cpp
@@ -57,7 +57,9 @@ K_EXPORT_PLUGIN(KCMTelepathyAccountsFactory("telepathy_accounts", "telepathy-acc
 
 KCMTelepathyAccounts::KCMTelepathyAccounts(QWidget *parent, const QVariantList& args)
  : KCModule(KCMTelepathyAccountsFactory::componentData(), parent, args),
-   m_accountsListModel(0)
+   m_accountsListModel(0),
+   m_currentModel(0),
+   m_currentListView(0)
 {
     //set up component data.
     KAboutData *aboutData = new KAboutData(I18N_NOOP("telepathy_accounts"), 0, ki18n("Instant Messaging and VOIP Accounts"), "0.5.2", KLocalizedString(), KAboutData::License_GPL);
@@ -168,13 +170,15 @@ KCMTelepathyAccounts::KCMTelepathyAccounts(QWidget *parent, const QVariantList&
             SLOT(onSelectedItemChanged(QModelIndex,QModelIndex)));
     connect(m_accountsListModel,
             SIGNAL(rowsInserted(QModelIndex,int,int)),
-            SLOT(onModelDataChanged()));
+            SLOT(onModelDataChanged(QModelIndex)));
     connect(m_accountsListModel,
             SIGNAL(rowsRemoved(QModelIndex,int,int)),
-            SLOT(onModelDataChanged()));
+            SLOT(onModelDataChanged(QModelIndex)));
     connect(m_ui->salutEnableCheckbox,
             SIGNAL(toggled(bool)),
             SLOT(onSalutEnableButtonToggled(bool)));
+    connect(m_accountsListModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)),
+            SLOT(onModelDataChanged(QModelIndex)));
 
     // Check if salut is enabled
     Tp::ConnectionManagerPtr cm = Tp::ConnectionManager::create(QLatin1String("salut"));
@@ -249,17 +253,18 @@ void KCMTelepathyAccounts::onSelectedItemChanged(const QModelIndex &current, con
 {
     Q_UNUSED(previous);
 
-    m_ui->removeAccountButton->setEnabled(current.isValid());
-    m_ui->editAccountButton->setEnabled(current.isValid());
+    /* Only change m_currentModel and "Edit Identity" button state when
+     * "current" is a selected item, not deselected */
+    if (current.isValid()) {
+        m_currentModel = qobject_cast<const QSortFilterProxyModel*>(current.model());
 
-    if (current.isValid() && current.data(AccountsListModel::ConnectionStateRole).toInt() == Tp::ConnectionStatusConnected) {
-        m_ui->editAccountIdentityButton->setEnabled(true);
-    } else {
-        m_ui->editAccountIdentityButton->setEnabled(false);
+        if (current.data(AccountsListModel::ConnectionStateRole).toInt() == Tp::ConnectionStatusConnected) {
+            m_ui->editAccountIdentityButton->setEnabled(true);
+        } else {
+            m_ui->editAccountIdentityButton->setEnabled(false);
+        }
     }
 
-    m_currentModel = qobject_cast<const QSortFilterProxyModel*>(current.model());
-
     if (m_currentModel == m_salutFilterModel) {
         m_currentListView = m_ui->salutListView;
         m_ui->accountsListView->clearSelection();
@@ -270,7 +275,10 @@ void KCMTelepathyAccounts::onSelectedItemChanged(const QModelIndex &current, con
         m_ui->salutListView->setCurrentIndex(QModelIndex());
     }
 
-    bool isAccount = (m_currentListView->currentIndex().isValid());
+    m_ui->removeAccountButton->setEnabled(m_currentListView->currentIndex().isValid());
+    m_ui->editAccountButton->setEnabled(m_currentListView->currentIndex().isValid());
+
+    bool isAccount = (m_currentListView->currentIndex().isValid() || m_ui->salutListView->currentIndex().isValid());
     m_ui->removeAccountButton->setEnabled(isAccount);
     m_ui->editAccountButton->setEnabled(isAccount);
 }
@@ -343,11 +351,17 @@ void KCMTelepathyAccounts::onRemoveAccountClicked()
      }
 }
 
-void KCMTelepathyAccounts::onModelDataChanged()
+void KCMTelepathyAccounts::onModelDataChanged(const QModelIndex &index)
 {
     bool salutEnabled = m_salutFilterModel->rowCount() == 0;
     m_ui->salutListView->setHidden(salutEnabled);
     m_ui->salutEnableFrame->setHidden(!salutEnabled);
+
+    /* When model changes and the change is the currently selected row, update
+     * state of buttons */
+    if (m_currentListView && m_currentModel && (index == m_currentModel->mapToSource(m_currentListView->currentIndex()))) {
+        onSelectedItemChanged(m_currentListView->currentIndex(), m_currentListView->currentIndex());
+    }
 }
 
 void KCMTelepathyAccounts::onSalutEnableButtonToggled(bool checked)
diff --git a/src/kcm-telepathy-accounts.h b/src/kcm-telepathy-accounts.h
index 29629eb..7d1198b 100644
--- a/src/kcm-telepathy-accounts.h
+++ b/src/kcm-telepathy-accounts.h
@@ -67,7 +67,7 @@ private Q_SLOTS:
     void onEditAccountClicked();
     void onEditIdentityClicked();
     void onRemoveAccountClicked();
-    void onModelDataChanged();
+    void onModelDataChanged(const QModelIndex &index);
     void onSalutEnableButtonToggled(bool checked);
     void onSalutConnectionManagerReady(Tp::PendingOperation*);
     void onSalutInfoReady();

-- 
ktp-accounts-kcm packaging



More information about the pkg-kde-commits mailing list