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


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

The following commit has been merged in the master branch:
commit ccb1e0a8c798e3d558fb5cd170d9f4e39b9d8908
Author: David Edmundson <kde at davidedmundson.co.uk>
Date:   Wed Jan 5 21:36:30 2011 +0000

    Change the parameterValues return value to a QList<ProtocolParameter>
    class
    This is a new class which effectively is a structure of parameter value
    pairs.
    The main reason for this is to revert the behaviour to not save any
    parameter which has the value the same as the default.
---
 src/KCMTelepathyAccounts/CMakeLists.txt            |  3 +
 .../abstract-account-parameters-widget.h           |  4 +-
 src/KCMTelepathyAccounts/account-edit-widget.cpp   | 13 ++--
 src/KCMTelepathyAccounts/account-edit-widget.h     |  4 +-
 src/KCMTelepathyAccounts/parameter-edit-model.cpp  |  8 +--
 src/KCMTelepathyAccounts/parameter-edit-model.h    |  3 +-
 src/KCMTelepathyAccounts/parameter-edit-widget.cpp |  2 +-
 src/KCMTelepathyAccounts/parameter-edit-widget.h   |  2 +-
 .../protocol-parameter-value.cpp                   | 84 ++++++++++++++++++++++
 .../protocol-parameter-value.h                     | 26 +++++++
 src/add-account-assistant.cpp                      | 19 +++--
 src/edit-account-dialog.cpp                        | 21 +++---
 12 files changed, 153 insertions(+), 36 deletions(-)

diff --git a/src/KCMTelepathyAccounts/CMakeLists.txt b/src/KCMTelepathyAccounts/CMakeLists.txt
index a74ae27..082f335 100644
--- a/src/KCMTelepathyAccounts/CMakeLists.txt
+++ b/src/KCMTelepathyAccounts/CMakeLists.txt
@@ -19,6 +19,7 @@ set (libkcmtelepathyaccounts_SRCS
      parameter-item.cpp
      dictionary.cpp
      plugin-manager.cpp
+     protocol-parameter-value.cpp
 )
 
 set (libkcmtelepathyaccounts_HDRS
@@ -32,6 +33,7 @@ set (libkcmtelepathyaccounts_HDRS
      protocol-select-widget.h
      protocol-item.h
      parameter-edit-widget.h
+     protocol-parameter-value.h
 )
 
 set (libkcmtelepathyaccounts_PRETTY_HDRS
@@ -45,6 +47,7 @@ set (libkcmtelepathyaccounts_PRETTY_HDRS
      include/ProtocolSelectWidget
      include/ProtocolItem
      include/ParameterEditWidget
+     include/ProtocolParameterValue
 )
 
 kde4_add_ui_files (libkcmtelepathyaccounts_SRCS
diff --git a/src/KCMTelepathyAccounts/abstract-account-parameters-widget.h b/src/KCMTelepathyAccounts/abstract-account-parameters-widget.h
index a7e7c2d..44bba67 100644
--- a/src/KCMTelepathyAccounts/abstract-account-parameters-widget.h
+++ b/src/KCMTelepathyAccounts/abstract-account-parameters-widget.h
@@ -29,6 +29,8 @@
 
 #include <TelepathyQt4/ConnectionManager>
 
+class ProtocolParameterValue;
+
 class KDE_EXPORT AbstractAccountParametersWidget : public QWidget
 {
     Q_OBJECT
@@ -39,7 +41,7 @@ public:
                                              QWidget *parent = 0);
     virtual ~AbstractAccountParametersWidget();
 
-    virtual QVariantMap parameterValues() const = 0;
+    virtual QList<ProtocolParameterValue> parameterValues() const = 0;
     virtual Tp::ProtocolParameterList parameters() const;
     virtual bool validateParameterValues();
 
diff --git a/src/KCMTelepathyAccounts/account-edit-widget.cpp b/src/KCMTelepathyAccounts/account-edit-widget.cpp
index 5e62294..3f79fec 100644
--- a/src/KCMTelepathyAccounts/account-edit-widget.cpp
+++ b/src/KCMTelepathyAccounts/account-edit-widget.cpp
@@ -48,7 +48,7 @@ public:
     AbstractAccountUi *accountUi;
     Ui::AccountEditWidget ui;
     AbstractAccountParametersWidget *mainOptionsWidget;
-    QVariantMap advancedParameterValues;
+    QList<ProtocolParameterValue> advancedParameterValues;
 };
 
 AccountEditWidget::AccountEditWidget(const QString &connectionManager,
@@ -91,13 +91,13 @@ bool AccountEditWidget::validateParameterValues() const
     return d->mainOptionsWidget->validateParameterValues();
 }
 
-QVariantMap AccountEditWidget::parameterValues() const
+QList<ProtocolParameterValue> AccountEditWidget::parameterValues() const
 {
-    QVariantMap values;
+    QList<ProtocolParameterValue> values;
     values = d->mainOptionsWidget->parameterValues();
 
     // append the advanced options, if any
-    values.unite(d->advancedParameterValues);
+    values.append(d->advancedParameterValues);
     return values;
 }
 
@@ -186,7 +186,10 @@ void AccountEditWidget::onAdvancedClicked()
             d->advancedParameterValues = advancedWidget->parameterValues();
             // update the parameter values in case the dialog is opened again
 
-            d->parameterValues.unite(d->advancedParameterValues);
+            foreach(const ProtocolParameterValue &ppv, d->advancedParameterValues)
+            {
+                d->parameterValues.insert(ppv.name(), ppv.value());
+            }
             break;
         }
         else
diff --git a/src/KCMTelepathyAccounts/account-edit-widget.h b/src/KCMTelepathyAccounts/account-edit-widget.h
index d17b43f..fbe6fac 100644
--- a/src/KCMTelepathyAccounts/account-edit-widget.h
+++ b/src/KCMTelepathyAccounts/account-edit-widget.h
@@ -27,6 +27,8 @@
 
 #include <TelepathyQt4/ConnectionManager>
 
+#include "protocol-parameter-value.h"
+
 class KDE_EXPORT AccountEditWidget : public QWidget
 {
     Q_OBJECT
@@ -40,7 +42,7 @@ public:
     virtual ~AccountEditWidget();
 
     virtual bool validateParameterValues() const;
-    virtual QVariantMap parameterValues() const;
+    virtual QList<ProtocolParameterValue> parameterValues() const;
 
 private Q_SLOTS:
     void onAdvancedClicked();
diff --git a/src/KCMTelepathyAccounts/parameter-edit-model.cpp b/src/KCMTelepathyAccounts/parameter-edit-model.cpp
index 6e33efa..a30481e 100644
--- a/src/KCMTelepathyAccounts/parameter-edit-model.cpp
+++ b/src/KCMTelepathyAccounts/parameter-edit-model.cpp
@@ -144,14 +144,12 @@ void ParameterEditModel::addItem(const Tp::ProtocolParameter &parameter, const Q
     endInsertRows();
 }
 
-QVariantMap ParameterEditModel::parameterValues() const
+QList<ProtocolParameterValue> ParameterEditModel::parameterValues() const
 {
-    QVariantMap values;
+    QList<ProtocolParameterValue> values;
 
     foreach (ParameterItem *item, m_items) {
-        QVariant value = item->value();
-        value.convert(item->type());
-        values.insert(item->parameter().name(), value);
+        values.append(ProtocolParameterValue(item->parameter(), item->value()));
     }
 
     return values;
diff --git a/src/KCMTelepathyAccounts/parameter-edit-model.h b/src/KCMTelepathyAccounts/parameter-edit-model.h
index 7a3e63e..7b497b7 100644
--- a/src/KCMTelepathyAccounts/parameter-edit-model.h
+++ b/src/KCMTelepathyAccounts/parameter-edit-model.h
@@ -22,6 +22,7 @@
 #define LIB_KCM_TELEPATHY_ACCOUNTS_PARAMETER_EDIT_MODEL_H
 
 #include <QtCore/QAbstractListModel>
+#include "protocol-parameter-value.h"
 
 class ParameterItem;
 
@@ -55,7 +56,7 @@ public:
     virtual bool setData(const QModelIndex &index, const QVariant &value, int role);
 
     void addItem(const Tp::ProtocolParameter &parameter, const QVariant &originalValue);
-    QVariantMap parameterValues() const;
+    QList<ProtocolParameterValue> parameterValues() const;
 
     bool validateParameterValues();
 
diff --git a/src/KCMTelepathyAccounts/parameter-edit-widget.cpp b/src/KCMTelepathyAccounts/parameter-edit-widget.cpp
index 3d21633..9d071e3 100644
--- a/src/KCMTelepathyAccounts/parameter-edit-widget.cpp
+++ b/src/KCMTelepathyAccounts/parameter-edit-widget.cpp
@@ -75,7 +75,7 @@ ParameterEditWidget::~ParameterEditWidget()
     delete d;
 }
 
-QVariantMap ParameterEditWidget::parameterValues() const
+QList<ProtocolParameterValue> ParameterEditWidget::parameterValues() const
 {
     return d->model->parameterValues();
 }
diff --git a/src/KCMTelepathyAccounts/parameter-edit-widget.h b/src/KCMTelepathyAccounts/parameter-edit-widget.h
index 1c63b5f..566cbe1 100644
--- a/src/KCMTelepathyAccounts/parameter-edit-widget.h
+++ b/src/KCMTelepathyAccounts/parameter-edit-widget.h
@@ -37,7 +37,7 @@ public:
                                  QWidget *parent = 0);
     ~ParameterEditWidget();
 
-    virtual QVariantMap parameterValues() const;
+    virtual QList<ProtocolParameterValue> parameterValues() const;
 
     virtual bool validateParameterValues();
 
diff --git a/src/KCMTelepathyAccounts/protocol-parameter-value.cpp b/src/KCMTelepathyAccounts/protocol-parameter-value.cpp
new file mode 100644
index 0000000..bfe9f0b
--- /dev/null
+++ b/src/KCMTelepathyAccounts/protocol-parameter-value.cpp
@@ -0,0 +1,84 @@
+#include "protocol-parameter-value.h"
+
+class ProtocolParameterValue::Private
+{
+public:
+    Tp::ProtocolParameter parameter;
+    QVariant value;
+};
+
+
+ProtocolParameterValue::ProtocolParameterValue(const Tp::ProtocolParameter &parameter, const QVariant value)
+    :d (new Private)
+{
+    d->parameter = parameter;
+    d->value = value;
+    //make sure we're storing the correct type of QVariant type for this parameter
+    d->value.convert(d->parameter.type());
+}
+
+ProtocolParameterValue::ProtocolParameterValue(const ProtocolParameterValue &other)
+    :d (new Private(*other.d))
+{
+
+}
+
+ProtocolParameterValue::~ProtocolParameterValue()
+{
+    delete d;
+}
+
+ProtocolParameterValue &ProtocolParameterValue::operator=(const ProtocolParameterValue &other)
+{
+    *d = *other.d;
+    return *this;
+}
+
+
+const Tp::ProtocolParameter ProtocolParameterValue::parameter() const
+{
+    return d->parameter;
+}
+
+const QVariant ProtocolParameterValue::value() const
+{
+    return d->value;
+}
+
+const QString ProtocolParameterValue::name() const
+{
+    QString name;
+    if(d->parameter.isValid()) {
+        name = d->parameter.name();
+    }
+    return name;
+}
+
+bool ProtocolParameterValue::shouldSave() const
+{
+    if (! d->parameter.isValid()) {
+        return false;
+    }
+
+    if (! d->value.isValid()) {
+        return false;
+    }
+
+    if (d->value.isNull()) {
+        return false;
+    }
+
+    // Don't any parameters where the default value is equal to the current value.
+    if (d->parameter.defaultValue() == d->value) {
+        return false;
+    }
+
+    // Don't save any strings where the default is empty, and the value is an empty string
+    if (d->parameter.type() == QVariant::String) {
+        if ((d->parameter.defaultValue().isNull()) && d->value.toString().isEmpty()) {
+            return false;
+        }
+    }
+
+    return true;
+}
diff --git a/src/KCMTelepathyAccounts/protocol-parameter-value.h b/src/KCMTelepathyAccounts/protocol-parameter-value.h
new file mode 100644
index 0000000..ee82c1b
--- /dev/null
+++ b/src/KCMTelepathyAccounts/protocol-parameter-value.h
@@ -0,0 +1,26 @@
+#ifndef PROTOCOLPARAMETERVALUE_H
+#define PROTOCOLPARAMETERVALUE_H
+
+#include "TelepathyQt4/ProtocolParameter"
+#include <kdemacros.h>
+
+class KDE_EXPORT ProtocolParameterValue
+{
+public:
+    ProtocolParameterValue(const Tp::ProtocolParameter &parameter, const QVariant value);
+    ProtocolParameterValue(const ProtocolParameterValue &other);
+    ~ProtocolParameterValue();
+    ProtocolParameterValue &operator=(const ProtocolParameterValue &other);
+
+    const Tp::ProtocolParameter parameter() const;
+    const QString name() const;
+    const QVariant value() const;
+    /** returns true if the value is different from the parameter default and is non-null*/
+    bool shouldSave() const ;
+
+private:
+    class Private;
+    Private *d;
+};
+
+#endif // PROTOCOLPARAMETERVALUE_H
diff --git a/src/add-account-assistant.cpp b/src/add-account-assistant.cpp
index c0ac30e..6b7647f 100644
--- a/src/add-account-assistant.cpp
+++ b/src/add-account-assistant.cpp
@@ -160,7 +160,7 @@ void AddAccountAssistant::accept()
     }
 
     // Get the parameter values.
-    QVariantMap parameterValues;
+    QList<ProtocolParameterValue> parameterValues;
     parameterValues = d->accountEditWidget->parameterValues();
 
     // Get the ProtocolItem that was selected and the corresponding ConnectionManagerItem.
@@ -172,22 +172,19 @@ void AddAccountAssistant::accept()
         return;
     }
 
-    // kDebug() << "Parameters to add with:" << parameters;
-
-    //remove any empty parameter values
-    QVariantMap::iterator i = parameterValues.begin();
-    while (i != parameterValues.end()) {
-        if (i.value().isNull()) {
-            parameterValues.erase(i);
+    QVariantMap values;
+    foreach(const ProtocolParameterValue &ppv, parameterValues)
+    {
+        if (ppv.shouldSave()) {
+            values.insert(ppv.name(), ppv.value());
         }
-        i++;
     }
 
     // FIXME: Ask the user to submit a Display Name
     Tp::PendingAccount *pa = d->accountManager->createAccount(connectionManagerItem->connectionManager()->name(),
                                                               protocolItem->protocol(),
-                                                              parameterValues["account"].toString(),
-                                                              parameterValues);
+                                                              values["account"].toString(),
+                                                              values);
 
     connect(pa,
             SIGNAL(finished(Tp::PendingOperation*)),
diff --git a/src/edit-account-dialog.cpp b/src/edit-account-dialog.cpp
index 5f4c178..27b0e73 100644
--- a/src/edit-account-dialog.cpp
+++ b/src/edit-account-dialog.cpp
@@ -87,25 +87,26 @@ void EditAccountDialog::accept()
     }
 
     // Get the mandatory parameters.
-    QVariantMap parameters;
-    parameters = d->widget->parameterValues();
+    QList<ProtocolParameterValue> parameterValues;
+    parameterValues = d->widget->parameterValues();
 
+    QVariantMap setParameters;
     QStringList unsetParameters;
 
-    //if the value is null for any parameter, don't set it, and add it to a list of parameters to remove.
-    QVariantMap::iterator i = parameters.begin();
-    while(i != parameters.end()) {
-        if (i.value().isNull()) {
-            unsetParameters.append(i.key());
-            parameters.erase(i);
+    foreach(const ProtocolParameterValue &ppv, parameterValues)
+    {
+        if (ppv.shouldSave()) {
+            setParameters.insert(ppv.name(), ppv.value());
+        }
+        else {
+            unsetParameters.append(ppv.name());
         }
-        i++;
     }
 
     // kDebug() << "Set parameters:" << parameters;
     // kDebug() << "Unset parameters:" << unsetParameters;
 
-    Tp::PendingStringList *psl = d->item->account()->updateParameters(parameters, unsetParameters);
+    Tp::PendingStringList *psl = d->item->account()->updateParameters(setParameters, unsetParameters);
 
     connect(psl,
             SIGNAL(finished(Tp::PendingOperation*)),

-- 
ktp-accounts-kcm packaging



More information about the pkg-kde-commits mailing list