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

Maximiliano Curia maxy at moszumanska.debian.org
Fri May 27 23:57:54 UTC 2016


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

The following commit has been merged in the master branch:
commit 45278f41411433f088bce27cd8b1afb4c211381c
Author: George Goldberg <grundleborg at googlemail.com>
Date:   Mon Aug 3 13:19:27 2009 +0000

    When the Edit button is clicked, display the EditAccountDialog.
    
    svn path=/trunk/playground/network/telepathy-accounts-kcm/; revision=1006317
---
 src/account-item.cpp           | 21 ++++++++++++++++++++-
 src/account-item.h             |  3 +++
 src/accounts-list-model.cpp    | 19 +++++++++++++++++++
 src/accounts-list-model.h      |  1 +
 src/edit-account-dialog.cpp    |  2 +-
 src/edit-account-dialog.h      |  7 +++----
 src/kcm-telepathy-accounts.cpp | 23 +++++++++++++++++++++++
 src/kcm-telepathy-accounts.h   |  1 +
 8 files changed, 71 insertions(+), 6 deletions(-)

diff --git a/src/account-item.cpp b/src/account-item.cpp
index ef382fc..eaa237a 100644
--- a/src/account-item.cpp
+++ b/src/account-item.cpp
@@ -21,7 +21,9 @@
 #include "account-item.h"
 
 #include "accounts-list-model.h"
+#include "edit-account-dialog.h"
 
+#include <KApplication>
 #include <KDebug>
 #include <KIcon>
 
@@ -34,7 +36,8 @@
 AccountItem::AccountItem(const Tp::AccountPtr &account, AccountsListModel *parent)
  : QObject(parent),
    m_account(account),
-   m_icon(new KIcon())
+   m_icon(new KIcon()),
+   m_editAccountDialog(0)
 {
     kDebug();
 
@@ -74,6 +77,22 @@ Tp::AccountPtr AccountItem::account() const
     return m_account;
 }
 
+void AccountItem::edit()
+{
+    kDebug();
+
+    // If the edit dialog already exists, focus it.
+    if (m_editAccountDialog) {
+        m_editAccountDialog->focusWidget();
+        return;
+    }
+
+    // FIXME: There should be a driving test for those who want to become parents... :'(
+    QWidget *p = qobject_cast<QWidget*>(parent()->parent());
+    m_editAccountDialog = new EditAccountDialog(this, p); // FIXME: Argh I'm going to jump off a bridge
+    m_editAccountDialog->show();
+}
+
 void AccountItem::remove()
 {
     kDebug() << "Account about to be removed";
diff --git a/src/account-item.h b/src/account-item.h
index e812e5a..4c9feec 100644
--- a/src/account-item.h
+++ b/src/account-item.h
@@ -28,6 +28,7 @@
 class KIcon;
 
 class AccountsListModel;
+class EditAccountDialog;
 
 namespace Tp {
     class PendingOperation;
@@ -42,6 +43,7 @@ public:
     explicit AccountItem(const Tp::AccountPtr &account, AccountsListModel *parent = 0);
     virtual ~AccountItem();
     Tp::AccountPtr account() const;
+    void edit();
     void remove();
     const KIcon& icon() const;
 
@@ -58,6 +60,7 @@ Q_SIGNALS:
 private:
     Tp::AccountPtr m_account;
     KIcon* m_icon;
+    EditAccountDialog *m_editAccountDialog;
 };
 
 
diff --git a/src/accounts-list-model.cpp b/src/accounts-list-model.cpp
index 1b37825..9641330 100644
--- a/src/accounts-list-model.cpp
+++ b/src/accounts-list-model.cpp
@@ -140,6 +140,25 @@ void AccountsListModel::addAccount(const Tp::AccountPtr &account)
    }
 }
 
+void AccountsListModel::editAccount(const QModelIndex &index)
+{
+    kDebug();
+
+    if(!index.isValid()) {
+        kWarning() << "Can't edit Account: Invalid index.";
+        return;
+    }
+
+    AccountItem *accountItem = m_readyAccounts.at(index.row());
+
+    if (!accountItem) {
+        kWarning() << "Account item is null.";
+        return;
+    }
+
+    accountItem->edit();
+}
+
 void AccountsListModel::removeAccount(const QModelIndex &index)
 {
     kDebug();
diff --git a/src/accounts-list-model.h b/src/accounts-list-model.h
index 6922833..6beefea 100644
--- a/src/accounts-list-model.h
+++ b/src/accounts-list-model.h
@@ -40,6 +40,7 @@ public:
     virtual Qt::ItemFlags flags(const QModelIndex &index) const;
     virtual bool setData(const QModelIndex &index, const QVariant &value, int role);
     void addAccount(const Tp::AccountPtr &account);
+    void editAccount(const QModelIndex &index);
     void removeAccount(const QModelIndex &index);
 
 private Q_SLOTS:
diff --git a/src/edit-account-dialog.cpp b/src/edit-account-dialog.cpp
index 91f2334..873eb9f 100644
--- a/src/edit-account-dialog.cpp
+++ b/src/edit-account-dialog.cpp
@@ -35,7 +35,7 @@ public:
 };
 
 EditAccountDialog::EditAccountDialog(AccountItem *item, QWidget *parent)
-        : QWidget(parent),
+        : KDialog(parent),
           d(new Private)
 {
     kDebug();
diff --git a/src/edit-account-dialog.h b/src/edit-account-dialog.h
index 5cc0466..2524322 100644
--- a/src/edit-account-dialog.h
+++ b/src/edit-account-dialog.h
@@ -25,15 +25,14 @@
 
 #include <kdemacros.h>
 
-#include <QtGui/QWidget>
+#include <KDialog>
 
-class KDE_EXPORT EditAccountDialog : public QWidget
+class KDE_EXPORT EditAccountDialog : public KDialog
 {
     Q_OBJECT
 
 public:
-    explicit EditAccountDialog(AccountItem *item,
-                               QWidget *parent = 0);
+    explicit EditAccountDialog(AccountItem *item, QWidget *parent = 0);
     virtual ~EditAccountDialog();
 
 private:
diff --git a/src/kcm-telepathy-accounts.cpp b/src/kcm-telepathy-accounts.cpp
index 1868351..ee23f3d 100644
--- a/src/kcm-telepathy-accounts.cpp
+++ b/src/kcm-telepathy-accounts.cpp
@@ -65,6 +65,9 @@ KCMTelepathyAccounts::KCMTelepathyAccounts(QWidget *parent, const QVariantList&
     connect(m_addAccountButton,
             SIGNAL(clicked()),
             SLOT(onAddAccountClicked()));
+    connect(m_editAccountButton,
+            SIGNAL(clicked()),
+            SLOT(onEditAccountClicked()));
     connect(m_removeAccountButton,
             SIGNAL(clicked()),
             SLOT(onRemoveAccountClicked()));
@@ -155,6 +158,26 @@ void KCMTelepathyAccounts::onAddAccountClicked()
     kWarning() << "Cannot create a new AddAccountAssistant. One already exists.";
 }
 
+void KCMTelepathyAccounts::onEditAccountClicked()
+{
+    kDebug();
+
+    // Editing accounts is only possible if the Account Manager is ready.
+    if (!m_accountManager->isReady()) {
+        return;
+    }
+
+    QModelIndex index = m_accountsListView->currentIndex();
+
+    // A valid account must be selected in the list to allow editing
+    if (!index.isValid()) {
+        return;
+    }
+
+    // Item is OK. Edit the item.
+    m_accountsListModel->editAccount(index);
+}
+
 void KCMTelepathyAccounts::onRemoveAccountClicked()
 {
     kDebug();
diff --git a/src/kcm-telepathy-accounts.h b/src/kcm-telepathy-accounts.h
index c192ce5..63a168a 100644
--- a/src/kcm-telepathy-accounts.h
+++ b/src/kcm-telepathy-accounts.h
@@ -53,6 +53,7 @@ private Q_SLOTS:
 
     void onSelectedItemChanged();
     void onAddAccountClicked();
+    void onEditAccountClicked();
     void onRemoveAccountClicked();
     void onAddAccountAssistantClosed();
 

-- 
ktp-accounts-kcm packaging



More information about the pkg-kde-commits mailing list