[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: playground/network/telepathy-accounts-kcm/src
From: George Goldberg <grundleborg () googlemail ! com>
Date: 2009-08-11 12:38:52
Message-ID: 1249994332.349332.5009.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1010016 by gberg:
Fix bug where parameters with the default value were not unset when editing the account.
M +41 -8 edit-account-dialog.cpp
--- trunk/playground/network/telepathy-accounts-kcm/src/edit-account-dialog.cpp #1010015:1010016
@@ -238,27 +238,60 @@
foreach (Tp::ProtocolParameter *pp, mandatoryParameterValues.keys()) {
QVariant value = mandatoryParameterValues.value(pp);
- // Unset empty parameters.
- if (!value.isNull()) {
- parameters.insert(pp->name(), value);
+ // Unset null parameters.
+ if (value.isNull()) {
+ unsetParameters.append(pp->name());
continue;
}
- unsetParameters.append(pp->name());
+ // Unset any parameters where the default value is equal to the current value.
+ if (pp->defaultValue() == value) {
+ unsetParameters.append(pp->name());
+ continue;
+ }
+
+ // Unset any strings where the default is empty, and the value is an empty string
+ if (pp->type() == QVariant::String) {
+ if ((pp->defaultValue().isNull()) && value.toString().isEmpty()) {
+ unsetParameters.append(pp->name());
+ continue;
+ }
+ }
+
+ // Parameter has a valid value, so set it.
+ parameters.insert(pp->name(), value);
}
foreach (Tp::ProtocolParameter *pp, optionalParameterValues.keys()) {
QVariant value = optionalParameterValues.value(pp);
- // Unset empty parameters.
- if (!value.isNull()) {
- parameters.insert(pp->name(), value);
+ // Unset null parameters.
+ if (value.isNull()) {
+ unsetParameters.append(pp->name());
continue;
}
- unsetParameters.append(pp->name());
+ // Unset any parameters where the default value is equal to the current value.
+ if (pp->defaultValue() == value) {
+ unsetParameters.append(pp->name());
+ continue;
+ }
+
+ // Unset any strings where the default is empty, and the value is an empty string
+ if (pp->type() == QVariant::String) {
+ if ((pp->defaultValue().isNull()) && value.toString().isEmpty()) {
+ unsetParameters.append(pp->name());
+ continue;
+ }
+ }
+
+ // Parameter has a valid value, so set it.
+ parameters.insert(pp->name(), value);
}
+ // kDebug() << "Set parameters:" << parameters;
+ // kDebug() << "Unset parameters:" << unsetParameters;
+
Tp::PendingStringList *psl = d->item->account()->updateParameters(parameters, unsetParameters);
connect(psl,
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic