[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