[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:58:19 UTC 2016


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

The following commit has been merged in the master branch:
commit fe044db80eb61ca001770d861aa04b1b936a26cd
Author: Gustavo P. Boiko <gustavo.boiko at kdemail.net>
Date:   Thu Sep 23 13:49:59 2010 +0000

    Make the dialogs modal and use a simpler method to set the config pages' title.
    This commit also makes the editting of accounts a resposibility of the kcm
    module instead of doing that in the item itself.
    
    The sideeffect of this commit is that it also fixes the account list not being
    refreshed sometimes.
    BUG: 252053
    
    svn path=/trunk/playground/network/telepathy-accounts-kcm/; revision=1178681
---
 src/account-item.cpp           | 39 +-----------------------
 src/account-item.h             |  4 ---
 src/accounts-list-model.cpp    | 30 ++++++------------
 src/accounts-list-model.h      |  2 +-
 src/add-account-assistant.cpp  | 62 ++++++++-----------------------------
 src/add-account-assistant.h    |  5 ---
 src/edit-account-dialog.cpp    | 41 +++++++++----------------
 src/edit-account-dialog.h      |  7 +----
 src/kcm-telepathy-accounts.cpp | 69 +++++-------------------------------------
 src/kcm-telepathy-accounts.h   |  4 ---
 10 files changed, 47 insertions(+), 216 deletions(-)

diff --git a/src/account-item.cpp b/src/account-item.cpp
index 2bc43c1..50afaa5 100644
--- a/src/account-item.cpp
+++ b/src/account-item.cpp
@@ -36,8 +36,7 @@
 AccountItem::AccountItem(const Tp::AccountPtr &account, AccountsListModel *parent)
  : QObject(parent),
    m_account(account),
-   m_icon(new KIcon()),
-   m_editAccountDialog(0)
+   m_icon(new KIcon())
 {
     kDebug();
 
@@ -80,32 +79,6 @@ 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
-
-    // Connect to the dialog's signals.
-    connect(m_editAccountDialog,
-            SIGNAL(finished()),
-            SLOT(onAccountEdited()));
-	connect(m_editAccountDialog, SIGNAL(protocolSelected(QString, QString)),
-			this, SIGNAL(protocolSelected(QString, QString)));
-	connect(this, SIGNAL(setTitleForCustomPages(QString, QList<QString>)),
-			m_editAccountDialog, SLOT(onTitleForCustomPages(QString, QList<QString>)));
-
-    m_editAccountDialog->show();
-}
-
 void AccountItem::remove()
 {
     kDebug() << "Account about to be removed";
@@ -177,16 +150,6 @@ void AccountItem::onAccountRemoved(Tp::PendingOperation *op)
     Q_EMIT removed();
 }
 
-void AccountItem::onAccountEdited()
-{
-    kDebug();
-
-    m_editAccountDialog->deleteLater();
-    m_editAccountDialog = 0;
-
-    Q_EMIT updated();
-}
-
 void AccountItem::onTitleForCustomPages(QString mandatoryPage, QList<QString> optionalPage)
 {
 	kDebug();
diff --git a/src/account-item.h b/src/account-item.h
index e6c37e4..75e2411 100644
--- a/src/account-item.h
+++ b/src/account-item.h
@@ -28,7 +28,6 @@
 class KIcon;
 
 class AccountsListModel;
-class EditAccountDialog;
 
 namespace Tp {
     class PendingOperation;
@@ -43,7 +42,6 @@ public:
     explicit AccountItem(const Tp::AccountPtr &account, AccountsListModel *parent = 0);
     virtual ~AccountItem();
     Tp::AccountPtr account() const;
-    void edit();
     void remove();
     const KIcon& icon() const;
 
@@ -61,12 +59,10 @@ private Q_SLOTS:
     void generateIcon();
     void onAccountReady(Tp::PendingOperation *op);
     void onAccountRemoved(Tp::PendingOperation *op);
-    void onAccountEdited();
 
 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 165fb27..e0cf9bd 100644
--- a/src/accounts-list-model.cpp
+++ b/src/accounts-list-model.cpp
@@ -140,44 +140,32 @@ void AccountsListModel::addAccount(const Tp::AccountPtr &account)
    }
 }
 
-void AccountsListModel::editAccount(const QModelIndex &index)
+void AccountsListModel::removeAccount(const QModelIndex &index)
 {
     kDebug();
 
     if(!index.isValid()) {
-        kWarning() << "Can't edit Account: Invalid index.";
+        kDebug() << "Can't remove Account: Invalid index";
         return;
     }
-
     AccountItem *accountItem = m_readyAccounts.at(index.row());
 
-    if (!accountItem) {
-        kWarning() << "Account item is null.";
-        return;
-    }
-
-      accountItem->disconnect();
-	connect(accountItem, SIGNAL(protocolSelected(QString, QString)),
-		this, SIGNAL(protocolSelected(QString, QString)));
-	connect(this, SIGNAL(setTitleForCustomPages(QString, QList<QString>)),
-			accountItem, SLOT(onTitleForCustomPages(QString, QList<QString>)));
+    Q_ASSERT(accountItem);
 
-    accountItem->edit();
+    accountItem->remove();
 }
 
-void AccountsListModel::removeAccount(const QModelIndex &index)
+AccountItem* AccountsListModel::itemForIndex(const QModelIndex &index)
 {
     kDebug();
 
     if(!index.isValid()) {
-        kDebug() << "Can't remove Account: Invalid index";
-        return;
+        kWarning() << "Invalid index" << index;
+        return 0;
     }
-    AccountItem *accountItem = m_readyAccounts.at(index.row());
 
-    Q_ASSERT(accountItem);
-
-    accountItem->remove();
+    AccountItem *accountItem = m_readyAccounts.at(index.row());
+    return accountItem;
 }
 
 void AccountsListModel::onAccountItemReady()
diff --git a/src/accounts-list-model.h b/src/accounts-list-model.h
index 9325b5d..815719a 100644
--- a/src/accounts-list-model.h
+++ b/src/accounts-list-model.h
@@ -40,8 +40,8 @@ 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);
+    AccountItem* itemForIndex(const QModelIndex &index);
 
 Q_SIGNALS:
 	void protocolSelected(QString, QString);
diff --git a/src/add-account-assistant.cpp b/src/add-account-assistant.cpp
index b02b455..94039f6 100644
--- a/src/add-account-assistant.cpp
+++ b/src/add-account-assistant.cpp
@@ -61,8 +61,6 @@ public:
     QList<AbstractAccountParametersWidget*> optionalParametersWidgets;
     KPageWidgetItem *pageOne;
     KPageWidgetItem *pageTwo;
-	QString mandatoryPageDesc;
-	QList<QString> optionalPageDesc;
 };
 
 AddAccountAssistant::AddAccountAssistant(Tp::AccountManagerPtr accountManager, QWidget *parent)
@@ -81,10 +79,9 @@ AddAccountAssistant::AddAccountAssistant(Tp::AccountManagerPtr accountManager, Q
     connect(d->protocolSelectWidget,
             SIGNAL(protocolGotSelected(bool)),
             SLOT(onProtocolSelected(bool)));
-	connect(d->protocolSelectWidget,
-			SIGNAL(protocolDoubleClicked()),
-			SLOT(onProtocolDoubleClicked()),
-			Qt::DirectConnection);
+    connect(d->protocolSelectWidget,
+            SIGNAL(protocolDoubleClicked()),
+            SLOT(next()));
 
     d->tabWidget = new KTabWidget(this);
     d->pageTwo = new KPageWidgetItem(d->tabWidget);
@@ -206,12 +203,11 @@ void AddAccountAssistant::next()
                     item->mandatoryParameters(), QVariantMap(), d->tabWidget);
         }
 
-		if(d->mandatoryPageDesc.isEmpty())
-	        d->tabWidget->addTab(d->mandatoryParametersWidget, i18n("Mandatory Parameters"));
-		else
-			d->tabWidget->addTab(d->mandatoryParametersWidget, d->mandatoryPageDesc);
+        QString title = d->mandatoryParametersWidget->windowTitle();
+        if (title.isEmpty())
+            title = i18n("Mandatory Parameters");
 
-		int pageIndex = 0;
+        d->tabWidget->addTab(d->mandatoryParametersWidget, title);
 
         // Check if the AbstractAccountUi exists. If not then we use the autogenerated UI for
         // everything.
@@ -236,13 +232,10 @@ void AddAccountAssistant::next()
 
             foreach (AbstractAccountParametersWidget *widget, widgets) {
                 d->optionalParametersWidgets.append(widget);
-				int indexOf = widgets.indexOf(widget);
-				QString description = i18n("Optional parameter");
-				if(indexOf < d->optionalPageDesc.size())
-					description = d->optionalPageDesc.at(indexOf);
-				
-				d->tabWidget->addTab(widget, description);
-				pageIndex++;
+                title = widget->windowTitle();
+                if (title.isEmpty())
+                    title = i18n("Optional Parameters");
+                d->tabWidget->addTab(widget, title);
             }
         }
 
@@ -253,10 +246,7 @@ void AddAccountAssistant::next()
                                                     QVariantMap(),
                                                     d->tabWidget);
             d->optionalParametersWidgets.append(opew);
-			if(pageIndex < d->optionalPageDesc.size())
-				d->tabWidget->addTab(opew, d->optionalPageDesc.at(pageIndex));
-			else
-            	d->tabWidget->addTab(opew, i18n("Optional Parameters"));
+            d->tabWidget->addTab(opew, i18n("Optional Parameters"));
         }
 
         KAssistantDialog::next();
@@ -426,36 +416,10 @@ void AddAccountAssistant::onSetEnabledFinished(Tp::PendingOperation *op)
 
 void AddAccountAssistant::onProtocolSelected(bool value)
 {
-	kDebug();
+    kDebug();
     //if a protocol is selected, enable the next button on the first page
     setValid(d->pageOne, value);
-
-	if(value)
-	{
-		ProtocolItem *item = d->protocolSelectWidget->selectedProtocol();
-		emit protocolSelected(item->protocol(), item->localizedName());
-	}
-}
-
-void AddAccountAssistant::onProtocolDoubleClicked()
-{
-	kDebug();
-
-	ProtocolItem *item = d->protocolSelectWidget->selectedProtocol();
-	emit protocolSelected(item->protocol(), item->localizedName());
-	next();
-}
-
-void AddAccountAssistant::onTitleForCustomPages(QString mandatoryPage, QList<QString> optionalPage)
-{
-	kDebug();
-	d->mandatoryPageDesc.clear();
-	d->optionalPageDesc.clear();
-
-	d->mandatoryPageDesc = mandatoryPage;
-	d->optionalPageDesc = optionalPage;
 }
 
-
 #include "add-account-assistant.moc"
 
diff --git a/src/add-account-assistant.h b/src/add-account-assistant.h
index 3cd3e08..b16d76b 100644
--- a/src/add-account-assistant.h
+++ b/src/add-account-assistant.h
@@ -44,16 +44,11 @@ protected Q_SLOTS:
 
 Q_SIGNALS:
     void cancelled();
-	void protocolSelected(QString, QString);
-
-public Q_SLOTS:
-	void onTitleForCustomPages(QString mandatoryPage, QList<QString> optionalPage);
 
 private Q_SLOTS:
     void onAccountCreated(Tp::PendingOperation *op);
     void onSetEnabledFinished(Tp::PendingOperation *op);
     void onProtocolSelected(bool value);
-	void onProtocolDoubleClicked();
 
 private:
     class Private;
diff --git a/src/edit-account-dialog.cpp b/src/edit-account-dialog.cpp
index 7c55553..372d4e7 100644
--- a/src/edit-account-dialog.cpp
+++ b/src/edit-account-dialog.cpp
@@ -67,14 +67,8 @@ EditAccountDialog::EditAccountDialog(AccountItem *item, QWidget *parent)
     resize(400, 480);
 
     d->item = item;
-}
-
-void EditAccountDialog::show()
-{
-	emit protocolSelected(d->item->account()->protocol(),
-		d->item->account()->cmName());
 
-	KDialog::show();
+    loadPages();
 }
 
 EditAccountDialog::~EditAccountDialog()
@@ -213,10 +207,8 @@ void EditAccountDialog::onParametersUpdated(Tp::PendingOperation *op)
     emit finished();
 }
 
-void EditAccountDialog::onTitleForCustomPages(QString mandatoryPageDesc, QList<QString> optionalPageDesc)
+void EditAccountDialog::loadPages()
 {
-	kDebug();
-
     // Get the protocol's parameters.
     Tp::ProtocolInfo *protocolInfo = d->item->account()->protocolInfo();
     Tp::ProtocolParameterList protocolParameters = protocolInfo->parameters();
@@ -283,15 +275,15 @@ void EditAccountDialog::onTitleForCustomPages(QString mandatoryPageDesc, QList<Q
                 d->tabWidget);
     }
 
-	if(mandatoryPageDesc.isEmpty())
-	    d->tabWidget->addTab(d->mandatoryParametersWidget, i18n("Mandatory Parameters"));
-	else
-		d->tabWidget->addTab(d->mandatoryParametersWidget, mandatoryPageDesc);
+    // Get the custom title for the page, if any
+    QString title = d->mandatoryParametersWidget->windowTitle();
+    if (title.isEmpty())
+        title = i18n("Mandatory Parameters");
 
-    // Get the list of parameters
-    Tp::ProtocolParameterList optionalParametersLeft = d->optionalProtocolParameters;
+    d->tabWidget->addTab(d->mandatoryParametersWidget, title);
 
-	int pageIndex = 0;
+    // Get the list of optional parameters
+    Tp::ProtocolParameterList optionalParametersLeft = d->optionalProtocolParameters;
 
     // Check if the AbstractAccountUi exists. If not then we use the autogenerated UI for
     // everything.
@@ -318,13 +310,11 @@ void EditAccountDialog::onTitleForCustomPages(QString mandatoryPageDesc, QList<Q
 
         foreach (AbstractAccountParametersWidget *widget, widgets) {
             d->optionalParametersWidgets.append(widget);
-            int indexOf = widgets.indexOf(widget);
-            QString description = i18n("Optional parameter");
-            if(indexOf < optionalPageDesc.size())
-                description = optionalPageDesc.at(indexOf);
+            title = widget->windowTitle();
+            if (title.isEmpty())
+                title = i18n("Optional parameters");
 
-            d->tabWidget->addTab(widget, description);
-            pageIndex++;
+            d->tabWidget->addTab(widget, title);
         }
     }
 
@@ -335,10 +325,7 @@ void EditAccountDialog::onTitleForCustomPages(QString mandatoryPageDesc, QList<Q
                                                 d->item->account()->parameters(),
                                                 d->tabWidget);
         d->optionalParametersWidgets.append(opew);
-        if(pageIndex < optionalPageDesc.size())
-            d->tabWidget->addTab(opew, optionalPageDesc.at(pageIndex));
-        else
-            d->tabWidget->addTab(opew, i18n("Optional Parameters"));
+        d->tabWidget->addTab(opew, i18n("Optional Parameters"));
     }
 }
 
diff --git a/src/edit-account-dialog.h b/src/edit-account-dialog.h
index 56ce401..b6e5843 100644
--- a/src/edit-account-dialog.h
+++ b/src/edit-account-dialog.h
@@ -35,12 +35,6 @@ public:
     explicit EditAccountDialog(AccountItem *item, QWidget *parent = 0);
     virtual ~EditAccountDialog();
 
-Q_SIGNALS:
-	void protocolSelected(QString, QString);
-
-public Q_SLOTS:
-	void onTitleForCustomPages(QString, QList<QString>);
-	void show();
 
 protected Q_SLOTS:
     virtual void slotButtonClicked(int button);
@@ -51,6 +45,7 @@ private Q_SLOTS:
 private:
     Q_DISABLE_COPY(EditAccountDialog);
 
+    void loadPages();
     void accept();
 
     class Private;
diff --git a/src/kcm-telepathy-accounts.cpp b/src/kcm-telepathy-accounts.cpp
index 353f840..c2579d2 100644
--- a/src/kcm-telepathy-accounts.cpp
+++ b/src/kcm-telepathy-accounts.cpp
@@ -22,6 +22,7 @@
 
 #include "accounts-list-model.h"
 #include "add-account-assistant.h"
+#include "edit-account-dialog.h"
 
 #include <KGenericFactory>
 #include <KIcon>
@@ -78,9 +79,6 @@ KCMTelepathyAccounts::KCMTelepathyAccounts(QWidget *parent, const QVariantList&
     connect(m_accountsListView->selectionModel(),
             SIGNAL(currentChanged(QModelIndex, QModelIndex)),
             SLOT(onSelectedItemChanged()));
-      connect(this, SIGNAL(setTitleForCustomPages(QString, QList<QString>)),
-                  m_accountsListModel, SLOT(onTitleForCustomPages(QString, QList<QString>)));
-
 }
 
 KCMTelepathyAccounts::~KCMTelepathyAccounts()
@@ -144,29 +142,9 @@ void KCMTelepathyAccounts::onAddAccountClicked()
         return;
     }
 
-    // Ensure that there is not already an instance of the AddAccountAssistant before we create one.";
-    if (!m_addAccountAssistant) {
-
-        // Create an AddAccountAssistant instance
-        m_addAccountAssistant = new AddAccountAssistant(m_accountManager, this);
-
-        // Connect to its completion signals...
-        connect(m_addAccountAssistant, SIGNAL(cancelled()),
-                this, SLOT(onAddAccountAssistantClosed()));
-        connect(m_addAccountAssistant, SIGNAL(accepted()),
-                this, SLOT(onAddAccountAssistantClosed()));
-		connect(m_addAccountAssistant, SIGNAL(protocolSelected(QString, QString)),
-				this, SLOT(onProtocolSelected(QString, QString)));
-		connect(this, SIGNAL(setTitleForCustomPages(QString, QList<QString>)),
-				m_addAccountAssistant, SLOT(onTitleForCustomPages(QString, QList<QString>)));
-
-        // ...and finally show it.
-        m_addAccountAssistant->show();
-
-        return;
-    }
-
-    kWarning() << "Cannot create a new AddAccountAssistant. One already exists.";
+    // ...and finally exec it.
+    AddAccountAssistant assistant(m_accountManager, this);
+    assistant.exec();
 }
 
 void KCMTelepathyAccounts::onEditAccountClicked()
@@ -179,18 +157,14 @@ void KCMTelepathyAccounts::onEditAccountClicked()
     }
 
     QModelIndex index = m_accountsListView->currentIndex();
+    AccountItem *item = m_accountsListModel->itemForIndex(index);
 
-    // A valid account must be selected in the list to allow editing
-    if (!index.isValid()) {
+    if (!item)
         return;
-    }
 
     // Item is OK. Edit the item.
-	m_accountsListModel->disconnect();
-	connect(m_accountsListModel, SIGNAL(protocolSelected(QString, QString)),
-			this, SLOT(onProtocolSelected(QString, QString)));
-      
-    m_accountsListModel->editAccount(index);
+    EditAccountDialog dialog(item, this);
+    dialog.exec();
 }
 
 void KCMTelepathyAccounts::onRemoveAccountClicked()
@@ -206,32 +180,5 @@ void KCMTelepathyAccounts::onRemoveAccountClicked()
     }
 }
 
-void KCMTelepathyAccounts::onAddAccountAssistantClosed()
-{
-    kDebug();
-
-    // Add account assistant has been cancelled. Delete it.
-    m_addAccountAssistant->deleteLater();
-    m_addAccountAssistant = 0;
-}
-
-void KCMTelepathyAccounts::onProtocolSelected(QString protocol, QString localizedName)
-{
-	kDebug() << protocol << localizedName;
-
-	QString mandatoryPage;
-	QList<QString> optionalPage;
-
-	if(protocol == "jabber")
-	{
-		mandatoryPage = i18n("Basic setup");
-		optionalPage.push_back(i18n("Account preferences"));
-		optionalPage.push_back(i18n("Connection settings"));
-		optionalPage.push_back(i18n("Advanced options"));
-	}
-
-	emit setTitleForCustomPages(mandatoryPage, optionalPage);
-}
-
 #include "kcm-telepathy-accounts.moc"
 
diff --git a/src/kcm-telepathy-accounts.h b/src/kcm-telepathy-accounts.h
index 87e3b91..513db22 100644
--- a/src/kcm-telepathy-accounts.h
+++ b/src/kcm-telepathy-accounts.h
@@ -44,8 +44,6 @@ public:
                                   const QVariantList& args = QVariantList());
     virtual ~KCMTelepathyAccounts();
 
-Q_SIGNALS:
-	void setTitleForCustomPages(QString mandatoryPage, QList<QString> optionalPage);
 
 public Q_SLOTS:
     virtual void load();
@@ -58,8 +56,6 @@ private Q_SLOTS:
     void onAddAccountClicked();
     void onEditAccountClicked();
     void onRemoveAccountClicked();
-    void onAddAccountAssistantClosed();
-	void onProtocolSelected(QString protocol, QString localizedName);
 
 private:
     Tp::AccountManagerPtr m_accountManager;

-- 
ktp-accounts-kcm packaging



More information about the pkg-kde-commits mailing list