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


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

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

    Save changes when editing accounts. Editing accounts now works.
    
    svn path=/trunk/playground/network/telepathy-accounts-kcm/; revision=1006345
---
 src/edit-account-dialog.cpp | 100 ++++++++++++++++++++++++++++++++++++++++++++
 src/edit-account-dialog.h   |   8 ++++
 2 files changed, 108 insertions(+)

diff --git a/src/edit-account-dialog.cpp b/src/edit-account-dialog.cpp
index 4d84988..83bbaaf 100644
--- a/src/edit-account-dialog.cpp
+++ b/src/edit-account-dialog.cpp
@@ -34,6 +34,7 @@
 #include <QtCore/QList>
 
 #include <TelepathyQt4/ConnectionManager>
+#include <TelepathyQt4/PendingStringList>
 
 class EditAccountDialog::Private
 {
@@ -181,6 +182,105 @@ EditAccountDialog::~EditAccountDialog()
     kDebug();
 }
 
+void EditAccountDialog::slotButtonClicked(int button)
+{
+    kDebug() << "Button clicked:" << button;
+
+    if (button == KDialog::Ok) {
+        accept();
+    } else{
+        KDialog::slotButtonClicked(button);
+    }
+}
+
+void EditAccountDialog::accept()
+{
+    kDebug();
+
+    // Check all pages of parameters pass validation.
+    if (!d->mandatoryParametersWidget->validateParameterValues()) {
+        kDebug() << "A widget failed parameter validation. Not accepting wizard.";
+        return;
+    }
+
+    foreach (AbstractAccountParametersWidget *w, d->optionalParametersWidgets) {
+        if (!w->validateParameterValues()) {
+            kDebug() << "A widget failed parameter validation. Not accepting wizard.";
+            return;
+        }
+    }
+
+    // Get the mandatory parameters.
+    QMap<Tp::ProtocolParameter*, QVariant> mandatoryParameterValues;
+    mandatoryParameterValues = d->mandatoryParametersWidget->parameterValues();
+
+    // Get the optional parameters.
+    QMap<Tp::ProtocolParameter*, QVariant> optionalParameterValues;
+
+    foreach (AbstractAccountParametersWidget *w, d->optionalParametersWidgets) {
+        QMap<Tp::ProtocolParameter*, QVariant> parameters = w->parameterValues();
+        QMap<Tp::ProtocolParameter*, QVariant>::const_iterator i = parameters.constBegin();
+        while (i != parameters.constEnd()) {
+            if (!optionalParameterValues.contains(i.key())) {
+                optionalParameterValues.insert(i.key(), i.value());
+            } else {
+                kWarning() << "Parameter:" << i.key()->name() << "is already in the map.";
+            }
+
+            ++i;
+        }
+        continue;
+    }
+
+    // Merge the parameters into a QVariantMap for submitting to the Telepathy AM.
+    QVariantMap parameters;
+    QStringList unsetParameters;
+
+    foreach (Tp::ProtocolParameter *pp, mandatoryParameterValues.keys()) {
+        QVariant value = mandatoryParameterValues.value(pp);
+
+        // Unset empty parameters.
+        if (!value.isNull()) {
+            parameters.insert(pp->name(), value);
+            continue;
+        }
+
+        unsetParameters.append(pp->name());
+    }
+
+    foreach (Tp::ProtocolParameter *pp, optionalParameterValues.keys()) {
+        QVariant value = optionalParameterValues.value(pp);
+
+        // Unset empty parameters.
+        if (!value.isNull()) {
+            parameters.insert(pp->name(), value);
+            continue;
+        }
+
+        unsetParameters.append(pp->name());
+    }
+
+    // FIXME: Ask the user to submit a Display Name
+    Tp::PendingStringList *psl = d->item->account()->updateParameters(parameters, unsetParameters);
+
+    connect(psl,
+            SIGNAL(finished(Tp::PendingOperation*)),
+            SLOT(onParametersUpdated(Tp::PendingOperation*)));
+}
+
+void EditAccountDialog::onParametersUpdated(Tp::PendingOperation *op)
+{
+    kDebug();
+
+    if (op->isError()) {
+        // FIXME: Visual feedback in GUI to user.
+        kWarning() << "Could not update parameters:" << op->errorName() << op->errorMessage();
+        return;
+    }
+
+    emit finished();
+}
+
 
 #include "edit-account-dialog.moc"
 
diff --git a/src/edit-account-dialog.h b/src/edit-account-dialog.h
index 2524322..6d44df4 100644
--- a/src/edit-account-dialog.h
+++ b/src/edit-account-dialog.h
@@ -35,9 +35,17 @@ public:
     explicit EditAccountDialog(AccountItem *item, QWidget *parent = 0);
     virtual ~EditAccountDialog();
 
+protected Q_SLOTS:
+    virtual void slotButtonClicked(int button);
+
+private Q_SLOTS:
+    void onParametersUpdated(Tp::PendingOperation *op);
+
 private:
     Q_DISABLE_COPY(EditAccountDialog);
 
+    void accept();
+
     class Private;
     Private * const d;
 };

-- 
ktp-accounts-kcm packaging



More information about the pkg-kde-commits mailing list