[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 ¶meter, 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 ¶meter, 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 ¶meter, 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 ¶meter, 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