[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:45 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-accounts-kcm.git;a=commitdiff;h=9a82913
The following commit has been merged in the master branch:
commit 9a829134d0fe5ca5207543550b11aaa0a1587f10
Author: Dominik Schmidt <dev at dominik-schmidt.de>
Date: Thu Jan 13 18:51:20 2011 +0100
Use the QDataWidgetMapper and change plugin structure.
---
src/KCMTelepathyAccounts/CMakeLists.txt | 2 +
.../abstract-account-parameters-widget.cpp | 58 +++++++---------------
.../abstract-account-parameters-widget.h | 13 ++---
src/KCMTelepathyAccounts/abstract-account-ui.cpp | 5 +-
src/KCMTelepathyAccounts/abstract-account-ui.h | 7 ++-
src/KCMTelepathyAccounts/account-edit-widget.cpp | 21 +++++---
src/KCMTelepathyAccounts/account-edit-widget.h | 7 ++-
.../generic-advanced-options-widget.cpp | 9 +---
.../generic-advanced-options-widget.h | 3 +-
.../include/ParameterEditModel | 7 +++
src/KCMTelepathyAccounts/parameter-edit-model.cpp | 39 +++++++++++++--
src/KCMTelepathyAccounts/parameter-edit-model.h | 9 +++-
src/KCMTelepathyAccounts/parameter-edit-widget.cpp | 9 ++--
src/KCMTelepathyAccounts/parameter-edit-widget.h | 4 +-
src/add-account-assistant.cpp | 11 +++-
src/edit-account-dialog.cpp | 10 +++-
16 files changed, 125 insertions(+), 89 deletions(-)
diff --git a/src/KCMTelepathyAccounts/CMakeLists.txt b/src/KCMTelepathyAccounts/CMakeLists.txt
index 2307f4b..1e3a282 100644
--- a/src/KCMTelepathyAccounts/CMakeLists.txt
+++ b/src/KCMTelepathyAccounts/CMakeLists.txt
@@ -35,6 +35,7 @@ set (libkcmtelepathyaccounts_HDRS
protocol-select-widget.h
protocol-item.h
parameter-edit-widget.h
+ parameter-edit-model.h
protocol-parameter-value.h
)
@@ -50,6 +51,7 @@ set (libkcmtelepathyaccounts_PRETTY_HDRS
include/ProtocolSelectWidget
include/ProtocolItem
include/ParameterEditWidget
+ include/ParameterEditModel
include/ProtocolParameterValue
)
diff --git a/src/KCMTelepathyAccounts/abstract-account-parameters-widget.cpp b/src/KCMTelepathyAccounts/abstract-account-parameters-widget.cpp
index caeec8c..4466c12 100644
--- a/src/KCMTelepathyAccounts/abstract-account-parameters-widget.cpp
+++ b/src/KCMTelepathyAccounts/abstract-account-parameters-widget.cpp
@@ -3,6 +3,7 @@
*
* Copyright (C) 2009 Collabora Ltd. <http://www.collabora.co.uk/>
* Copyright (C) 2011 Dominik Schmidt <kde at dominik-schmidt.de>
+ * Copyright (C) 2011 Thomas Richard
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -45,28 +46,18 @@ public:
Tp::ProtocolParameterList parameters;
};
-AbstractAccountParametersWidget::AbstractAccountParametersWidget(Tp::ProtocolParameterList parameters,
- const QVariantMap &values,
+AbstractAccountParametersWidget::AbstractAccountParametersWidget(ParameterEditModel *model,
QWidget *parent)
: QWidget(parent),
d(new Private)
{
kDebug();
- d->parameters = parameters;
- d->model = new ParameterEditModel(this);
+ d->model = model;
+
d->mapper = new QDataWidgetMapper(this);
d->mapper->setModel(d->model);
- foreach(const QString &key, values.keys())
- {
- kDebug() << key << values[key];
- }
- // Add the parameters to the model.
- foreach (const Tp::ProtocolParameter ¶meter, parameters) {
- kDebug() << "Add Parameter:" << parameter.name() << "default:" << parameter.defaultValue() << values.value(parameter.name()) << values.value(parameter.name(), parameter.defaultValue());
- d->model->addItem(parameter, values.value(parameter.name(), parameter.defaultValue()));
- }
d->mapper->setOrientation(Qt::Vertical);
}
@@ -95,38 +86,27 @@ bool AbstractAccountParametersWidget::validateParameterValues()
return d->model->validateParameterValues();
}
-
-ParametersWidgetsMap* AbstractAccountParametersWidget::internalParametersWidgetsMap() const
-{
-
- kDebug() << "DEPRECATED";
- ParametersWidgetsMap *map = new ParametersWidgetsMap();
- return map;
-}
-
-void AbstractAccountParametersWidget::handleParameter(const Tp::ProtocolParameterList& parameters,
- const QString ¶meterName,
+void AbstractAccountParametersWidget::handleParameter(const QString ¶meterName,
QVariant::Type parameterType,
QWidget* dataWidget,
- QWidget* labelWidget)
+ QWidget* labelWidget = 0)
{
kDebug();
QList<QWidget*> labelWidgets;
labelWidgets << labelWidget;
- handleParameter(parameters, parameterName, parameterType, dataWidget, labelWidgets);
+ handleParameter(parameterName, parameterType, dataWidget, labelWidgets);
}
-void AbstractAccountParametersWidget::handleParameter(const Tp::ProtocolParameterList& parameters,
- const QString ¶meterName,
+void AbstractAccountParametersWidget::handleParameter(const QString ¶meterName,
QVariant::Type parameterType,
QWidget* dataWidget,
QList<QWidget*> labelWidgets)
{
- kDebug() << parameterName << parameterType;
+ kDebug() << parameterType << parameterName;
Tp::ProtocolParameter foundParameter;
- foreach(const Tp::ProtocolParameter ¶meter, parameters)
+ foreach(const Tp::ProtocolParameter ¶meter, model()->parameters())
{
if ((parameter.name() == parameterName) && (parameter.type() == parameterType)) {
foundParameter = parameter;
@@ -139,17 +119,20 @@ void AbstractAccountParametersWidget::handleParameter(const Tp::ProtocolParamete
dataWidget->hide();
foreach(QWidget *label, labelWidgets)
{
- label->hide();
+ if(label)
+ {
+ label->hide();
+ }
}
return;
}
- int modelRow = d->model->rowForParameter(foundParameter);
- if(modelRow != -1)
+ QModelIndex index = d->model->indexForParameter(foundParameter);
+ if(index.isValid())
{
- kDebug() << modelRow << parameterName;
+ kDebug() << index << parameterName;
// insert it to valid parameters list
- d->mapper->addMapping(dataWidget, modelRow);
+ d->mapper->addMapping(dataWidget, index.row());
d->mapper->toFirst();
}
}
@@ -160,10 +143,5 @@ ParameterEditModel* AbstractAccountParametersWidget::model() const
}
-void AbstractAccountParametersWidget::prefillUI(const QVariantMap& values)
-{
- kDebug() << "DEPRECATED";
-}
-
#include "abstract-account-parameters-widget.moc"
diff --git a/src/KCMTelepathyAccounts/abstract-account-parameters-widget.h b/src/KCMTelepathyAccounts/abstract-account-parameters-widget.h
index b93ed43..7a33ba5 100644
--- a/src/KCMTelepathyAccounts/abstract-account-parameters-widget.h
+++ b/src/KCMTelepathyAccounts/abstract-account-parameters-widget.h
@@ -3,6 +3,7 @@
*
* Copyright (C) 2009 Collabora Ltd. <http://www.collabora.co.uk/>
* Copyright (C) 2011 Dominik Schmidt <kde at dominik-schmidt.de>
+ * Copyright (C) 2011 Thomas Richard
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -41,8 +42,7 @@ class KDE_EXPORT AbstractAccountParametersWidget : public QWidget
Q_OBJECT
public:
- explicit AbstractAccountParametersWidget(Tp::ProtocolParameterList parameters,
- const QVariantMap &values = QVariantMap(),
+ explicit AbstractAccountParametersWidget(ParameterEditModel *model,
QWidget *parent = 0);
virtual ~AbstractAccountParametersWidget();
@@ -51,20 +51,15 @@ public:
virtual bool validateParameterValues();
protected:
- virtual ParametersWidgetsMap* internalParametersWidgetsMap() const;
-
- void handleParameter(const Tp::ProtocolParameterList ¶meters,
- const QString ¶meterName,
+ void handleParameter(const QString ¶meterName,
QVariant::Type parameterType,
QWidget *dataWidget,
QList<QWidget*> labelWidgets);
- void handleParameter(const Tp::ProtocolParameterList ¶meters,
- const QString ¶meterName,
+ void handleParameter(const QString ¶meterName,
QVariant::Type parameterType,
QWidget *dataWidget,
QWidget* labelWidget);
- void prefillUI(const QVariantMap &values);
ParameterEditModel *model() const;
private:
diff --git a/src/KCMTelepathyAccounts/abstract-account-ui.cpp b/src/KCMTelepathyAccounts/abstract-account-ui.cpp
index a2a09c0..7b96054 100644
--- a/src/KCMTelepathyAccounts/abstract-account-ui.cpp
+++ b/src/KCMTelepathyAccounts/abstract-account-ui.cpp
@@ -2,6 +2,8 @@
* This file is part of telepathy-accounts-kcm
*
* Copyright (C) 2009 Collabora Ltd. <http://www.collabora.co.uk/>
+ * Copyright (C) 2011 Dominik Schmidt <kde at dominik-schmidt.de>
+ * Copyright (C) 2011 Thomas Richard
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -51,8 +53,7 @@ bool AbstractAccountUi::hasAdvancedOptionsWidget() const
return false;
}
-AbstractAccountParametersWidget* AbstractAccountUi::advancedOptionsWidget(Tp::ProtocolParameterList parameters,
- const QVariantMap &values,
+AbstractAccountParametersWidget* AbstractAccountUi::advancedOptionsWidget(ParameterEditModel *model,
QWidget *parent) const
{
return 0;
diff --git a/src/KCMTelepathyAccounts/abstract-account-ui.h b/src/KCMTelepathyAccounts/abstract-account-ui.h
index a90395c..3d81a5c 100644
--- a/src/KCMTelepathyAccounts/abstract-account-ui.h
+++ b/src/KCMTelepathyAccounts/abstract-account-ui.h
@@ -31,6 +31,7 @@
#include <TelepathyQt4/ConnectionManager>
class AbstractAccountParametersWidget;
+class ParameterEditModel;
class KDE_EXPORT AbstractAccountUi : public QObject
{
@@ -43,13 +44,11 @@ public:
virtual const QMap<QString, QVariant::Type> &supportedParameters() const;
virtual AbstractAccountParametersWidget
- *mainOptionsWidget(Tp::ProtocolParameterList parameters,
- const QVariantMap &values = QVariantMap(),
+ *mainOptionsWidget(ParameterEditModel *model,
QWidget *parent = 0) const = 0;
virtual bool hasAdvancedOptionsWidget() const;
virtual AbstractAccountParametersWidget
- *advancedOptionsWidget(Tp::ProtocolParameterList parameters,
- const QVariantMap &values = QVariantMap(),
+ *advancedOptionsWidget(ParameterEditModel *model,
QWidget *parent = 0) const;
protected:
diff --git a/src/KCMTelepathyAccounts/account-edit-widget.cpp b/src/KCMTelepathyAccounts/account-edit-widget.cpp
index d78cf93..fb57dd9 100644
--- a/src/KCMTelepathyAccounts/account-edit-widget.cpp
+++ b/src/KCMTelepathyAccounts/account-edit-widget.cpp
@@ -2,6 +2,7 @@
* This file is part of telepathy-accounts-kcm
*
* Copyright (C) 2010 Collabora Ltd. <http://www.collabora.co.uk/>
+ * Copyright (C) 2011 Dominik Schmidt <kde at dominik-schmidt.de>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -46,6 +47,8 @@ public:
Tp::ProtocolParameterList parameters;
QVariantMap parameterValues;
+ ParameterEditModel *model;
+
AbstractAccountUi *accountUi;
Ui::AccountEditWidget *ui;
AbstractAccountParametersWidget *mainOptionsWidget;
@@ -53,7 +56,7 @@ public:
};
AccountEditWidget::AccountEditWidget(const Tp::ProtocolInfo &info,
- const QVariantMap ¶meterValues,
+ ParameterEditModel *model,
QWidget *parent)
: QWidget(parent),
d(new Private)
@@ -64,10 +67,10 @@ AccountEditWidget::AccountEditWidget(const Tp::ProtocolInfo &info,
d->ui = new Ui::AccountEditWidget;
d->ui->setupUi(this);
+ d->model = model;
d->connectionManager = info.cmName();
d->protocol = info.name();
d->parameters = info.parameters();
- d->parameterValues = parameterValues;
connect(d->ui->advancedButton, SIGNAL(clicked()),
this, SLOT(onAdvancedClicked()));
@@ -122,8 +125,7 @@ void AccountEditWidget::loadWidgets()
// Create the custom UI or generic UI depending on available parameters.
if (d->accountUi) {
// UI does exist, set it up.
- d->mainOptionsWidget = d->accountUi->mainOptionsWidget(d->parameters,
- d->parameterValues,
+ d->mainOptionsWidget = d->accountUi->mainOptionsWidget(d->model,
this);
//Widgets wrapped in a layout should not have double margins
d->mainOptionsWidget->layout()->setContentsMargins(0, 0, 0, 0);
@@ -162,8 +164,7 @@ void AccountEditWidget::loadWidgets()
if (!d->mainOptionsWidget) {
d->mainOptionsWidget = new ParameterEditWidget(
- d->parameters,
- d->parameterValues,
+ d->model,
this);
d->ui->advancedButton->setVisible(false);
d->ui->verticalLayout->insertWidget(1, d->mainOptionsWidget);
@@ -177,8 +178,7 @@ void AccountEditWidget::onAdvancedClicked()
dialog.setWindowTitle(i18n("Advanced Options"));
AbstractAccountParametersWidget *advancedWidget;
- advancedWidget = d->accountUi->advancedOptionsWidget(d->parameters,
- d->parameterValues,
+ advancedWidget = d->accountUi->advancedOptionsWidget(model(),
&dialog);
dialog.setMainWidget(advancedWidget);
@@ -205,5 +205,10 @@ void AccountEditWidget::onAdvancedClicked()
}
}
+ParameterEditModel* AccountEditWidget::model() const
+{
+ return d->model;
+}
+
#include "account-edit-widget.moc"
diff --git a/src/KCMTelepathyAccounts/account-edit-widget.h b/src/KCMTelepathyAccounts/account-edit-widget.h
index 9e8ac68..e5b9d0d 100644
--- a/src/KCMTelepathyAccounts/account-edit-widget.h
+++ b/src/KCMTelepathyAccounts/account-edit-widget.h
@@ -2,6 +2,7 @@
* This file is part of telepathy-accounts-kcm
*
* Copyright (C) 2010 Collabora Ltd. <http://www.collabora.co.uk/>
+ * Copyright (C) 2011 Dominik Schmidt <kde at dominik-schmidt.de>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -28,6 +29,7 @@
#include <QWidget>
#include <TelepathyQt4/ConnectionManager>
+#include "parameter-edit-model.h"
class KDE_EXPORT AccountEditWidget : public QWidget
@@ -36,13 +38,16 @@ class KDE_EXPORT AccountEditWidget : public QWidget
public:
explicit AccountEditWidget(const Tp::ProtocolInfo &info,
- const QVariantMap ¶meterValues = QVariantMap(),
+ ParameterEditModel *model,
QWidget *parent = 0);
virtual ~AccountEditWidget();
virtual bool validateParameterValues() const;
virtual QList<ProtocolParameterValue> parameterValues() const;
+protected:
+ ParameterEditModel *model() const;
+
private Q_SLOTS:
void onAdvancedClicked();
diff --git a/src/KCMTelepathyAccounts/generic-advanced-options-widget.cpp b/src/KCMTelepathyAccounts/generic-advanced-options-widget.cpp
index 4333268..e58feed 100644
--- a/src/KCMTelepathyAccounts/generic-advanced-options-widget.cpp
+++ b/src/KCMTelepathyAccounts/generic-advanced-options-widget.cpp
@@ -40,16 +40,11 @@ public:
QList<AbstractAccountParametersWidget*> widgets;
};
-GenericAdvancedOptionsWidget::GenericAdvancedOptionsWidget(Tp::ProtocolParameterList parameters,
- const QVariantMap &values,
+GenericAdvancedOptionsWidget::GenericAdvancedOptionsWidget(ParameterEditModel *model,
QWidget *parent)
- : AbstractAccountParametersWidget(parameters, values, parent),
+ : AbstractAccountParametersWidget(model, parent),
d(new Private)
{
- Q_UNUSED(parameters);
- Q_UNUSED(values);
- Q_UNUSED(parent);
-
QHBoxLayout *layout = new QHBoxLayout(this);
layout->addWidget(&(d->tabWidget));
diff --git a/src/KCMTelepathyAccounts/generic-advanced-options-widget.h b/src/KCMTelepathyAccounts/generic-advanced-options-widget.h
index 8d94204..ac5ff02 100644
--- a/src/KCMTelepathyAccounts/generic-advanced-options-widget.h
+++ b/src/KCMTelepathyAccounts/generic-advanced-options-widget.h
@@ -30,8 +30,7 @@ class KDE_EXPORT GenericAdvancedOptionsWidget : public AbstractAccountParameters
Q_OBJECT
public:
- explicit GenericAdvancedOptionsWidget(Tp::ProtocolParameterList parameters,
- const QVariantMap &values = QVariantMap(),
+ explicit GenericAdvancedOptionsWidget(ParameterEditModel* model,
QWidget *parent = 0);
virtual ~GenericAdvancedOptionsWidget();
diff --git a/src/KCMTelepathyAccounts/include/ParameterEditModel b/src/KCMTelepathyAccounts/include/ParameterEditModel
new file mode 100644
index 0000000..adfd4b8
--- /dev/null
+++ b/src/KCMTelepathyAccounts/include/ParameterEditModel
@@ -0,0 +1,7 @@
+#ifndef LIB_KCM_TELEPATHY_ACCOUNTS_PARAMETER_EDIT_MODEL_PRETTY_H
+#define LIB_KCM_TELEPATHY_ACCOUNTS_PARAMETER_EDIT_MODEL_PRETTY_H
+
+#include <KCMTelepathyAccounts/parameter-edit-model.h>
+
+#endif
+
diff --git a/src/KCMTelepathyAccounts/parameter-edit-model.cpp b/src/KCMTelepathyAccounts/parameter-edit-model.cpp
index 03b6e1c..7914ce4 100644
--- a/src/KCMTelepathyAccounts/parameter-edit-model.cpp
+++ b/src/KCMTelepathyAccounts/parameter-edit-model.cpp
@@ -2,6 +2,8 @@
* This file is part of telepathy-accounts-kcm
*
* Copyright (C) 2009 Collabora Ltd. <http://www.collabora.co.uk/>
+ * Copyright (C) 2011 Dominik Schmidt <kde at dominik-schmidt.de>
+ * Copyright (C) 2011 Thomas Richard
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -68,10 +70,10 @@ QVariant ParameterEditModel::data(const QModelIndex &index, int role) const
switch(role)
{
case Qt::DisplayRole:
- data = QVariant(m_items.at(index.row())->value());
+ data = this->data(index, ParameterEditModel::ValueRole);
break;
case Qt::EditRole:
- data = QVariant(m_items.at(index.row())->value());
+ data = this->data(index, ParameterEditModel::ValueRole);
break;
case ParameterEditModel::NameRole:
data = QVariant(m_items.at(index.row())->name());
@@ -84,6 +86,13 @@ QVariant ParameterEditModel::data(const QModelIndex &index, int role) const
break;
case ParameterEditModel::ValueRole:
data = QVariant(m_items.at(index.row())->value());
+ if(!data.isValid())
+ {
+ data = this->data(index, ParameterEditModel::DefaultValueRole);
+ }
+ break;
+ case ParameterEditModel::DefaultValueRole:
+ data = QVariant(m_items.at(index.row())->parameter().defaultValue());
break;
case ParameterEditModel::SecretRole:
data = QVariant(m_items.at(index.row())->isSecret());
@@ -143,13 +152,13 @@ bool ParameterEditModel::setData(const QModelIndex &index, const QVariant &value
}
-int ParameterEditModel::rowForParameter(const Tp::ProtocolParameter ¶meter)
+QModelIndex ParameterEditModel::indexForParameter(const Tp::ProtocolParameter ¶meter) const
{
for(int i=0; i<m_items.size(); ++i) {
if(m_items.at(i)->parameter() == parameter)
- return i;
+ return createIndex(i,0,0);
}
- return -1;
+ return QModelIndex();
}
void ParameterEditModel::addItem(const Tp::ProtocolParameter ¶meter, const QVariant &originalValue)
@@ -163,6 +172,14 @@ void ParameterEditModel::addItem(const Tp::ProtocolParameter ¶meter, const Q
endInsertRows();
}
+void ParameterEditModel::addItems(const Tp::ProtocolParameterList& parameters, const QVariantMap& parameterValues)
+{
+ foreach (const Tp::ProtocolParameter ¶meter, parameters) {
+ addItem(parameter, parameterValues[parameter.name()]);
+ }
+}
+
+
QList<ProtocolParameterValue> ParameterEditModel::parameterValues() const
{
QList<ProtocolParameterValue> values;
@@ -174,6 +191,18 @@ QList<ProtocolParameterValue> ParameterEditModel::parameterValues() const
return values;
}
+Tp::ProtocolParameterList ParameterEditModel::parameters() const
+{
+ Tp::ProtocolParameterList parameters;
+
+ foreach (ParameterItem *item, m_items) {
+ parameters.append(item->parameter());
+ }
+
+ return parameters;
+}
+
+
bool ParameterEditModel::validateParameterValues()
{
foreach (ParameterItem *item, m_items) {
diff --git a/src/KCMTelepathyAccounts/parameter-edit-model.h b/src/KCMTelepathyAccounts/parameter-edit-model.h
index 725899f..582daab 100644
--- a/src/KCMTelepathyAccounts/parameter-edit-model.h
+++ b/src/KCMTelepathyAccounts/parameter-edit-model.h
@@ -2,6 +2,8 @@
* This file is part of telepathy-accounts-kcm
*
* Copyright (C) 2009 Collabora Ltd. <http://www.collabora.co.uk/>
+ * Copyright (C) 2011 Dominik Schmidt <kde at dominik-schmidt.de>
+ * Copyright (C) 2011 Thomas Richard
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -31,7 +33,7 @@ namespace Tp {
class ProtocolParameter;
}
-class ParameterEditModel : public QAbstractListModel
+class KDE_EXPORT ParameterEditModel : public QAbstractListModel
{
Q_OBJECT
Q_DISABLE_COPY(ParameterEditModel);
@@ -42,6 +44,7 @@ public:
LocalizedNameRole,
TypeRole,
ValueRole,
+ DefaultValueRole,
SecretRole,
RequiredRole,
RequiredForRegistrationRole,
@@ -55,10 +58,12 @@ public:
virtual int rowCount(const QModelIndex &index) const;
virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
virtual bool setData(const QModelIndex &index, const QVariant &value, int role);
- int rowForParameter(const Tp::ProtocolParameter ¶meter);
+ QModelIndex indexForParameter(const Tp::ProtocolParameter ¶meter) const;
void addItem(const Tp::ProtocolParameter ¶meter, const QVariant &originalValue);
+ void addItems(const Tp::ProtocolParameterList ¶meters, const QVariantMap ¶meterValues = QVariantMap());
QList<ProtocolParameterValue> parameterValues() const;
+ Tp::ProtocolParameterList parameters() const;
bool validateParameterValues();
diff --git a/src/KCMTelepathyAccounts/parameter-edit-widget.cpp b/src/KCMTelepathyAccounts/parameter-edit-widget.cpp
index 07f0efb..b3472a9 100644
--- a/src/KCMTelepathyAccounts/parameter-edit-widget.cpp
+++ b/src/KCMTelepathyAccounts/parameter-edit-widget.cpp
@@ -2,6 +2,7 @@
* This file is part of telepathy-accounts-kcm
*
* Copyright (C) 2009 Collabora Ltd. <http://www.collabora.co.uk/>
+ * Copyright (C) 2011 Dominik Schmidt <kde at dominik-schmidt.de>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -40,10 +41,9 @@ public:
ParameterEditDelegate *delegate;
};
-ParameterEditWidget::ParameterEditWidget(Tp::ProtocolParameterList parameters,
- const QVariantMap &values,
+ParameterEditWidget::ParameterEditWidget(ParameterEditModel *model,
QWidget *parent)
- : AbstractAccountParametersWidget(parameters, values, parent),
+ : AbstractAccountParametersWidget(model, parent),
d(new Private)
{
kDebug();
@@ -52,7 +52,7 @@ ParameterEditWidget::ParameterEditWidget(Tp::ProtocolParameterList parameters,
d->ui = new Ui::ParameterEditWidget;
d->ui->setupUi(this);
- d->ui->parameterListView->setModel(model());
+ d->ui->parameterListView->setModel(this->model());
d->delegate = new ParameterEditDelegate(d->ui->parameterListView, this);
d->ui->parameterListView->setItemDelegate(d->delegate);
@@ -90,6 +90,5 @@ bool ParameterEditWidget::validateParameterValues()
return model()->validateParameterValues();
}
-
#include "parameter-edit-widget.moc"
diff --git a/src/KCMTelepathyAccounts/parameter-edit-widget.h b/src/KCMTelepathyAccounts/parameter-edit-widget.h
index 566cbe1..891becb 100644
--- a/src/KCMTelepathyAccounts/parameter-edit-widget.h
+++ b/src/KCMTelepathyAccounts/parameter-edit-widget.h
@@ -2,6 +2,7 @@
* This file is part of telepathy-accounts-kcm
*
* Copyright (C) 2009 Collabora Ltd. <http://www.collabora.co.uk/>
+ * Copyright (C) 2011 Dominik Schmidt <kde at dominik-schmidt.de>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -32,8 +33,7 @@ class KDE_EXPORT ParameterEditWidget : public AbstractAccountParametersWidget
Q_OBJECT
public:
- explicit ParameterEditWidget(Tp::ProtocolParameterList parameters,
- const QVariantMap &values = QVariantMap(),
+ explicit ParameterEditWidget(ParameterEditModel *model,
QWidget *parent = 0);
~ParameterEditWidget();
diff --git a/src/add-account-assistant.cpp b/src/add-account-assistant.cpp
index 184cf93..59b9c2a 100644
--- a/src/add-account-assistant.cpp
+++ b/src/add-account-assistant.cpp
@@ -2,6 +2,7 @@
* This file is part of telepathy-accounts-kcm
*
* Copyright (C) 2009 Collabora Ltd. <http://www.collabora.co.uk/>
+ * Copyright (C) 2011 Dominik Schmidt <kde at dominik-schmidt.de>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -127,9 +128,17 @@ void AddAccountAssistant::next()
d->accountEditWidget = 0;
}
+ // Get the protocol's parameters and values.
+ Tp::ProtocolInfo protocolInfo = item->protocolInfo();
+ Tp::ProtocolParameterList parameters = protocolInfo.parameters();
+
+ // Add the parameters to the model.
+ ParameterEditModel *model = new ParameterEditModel(this);
+ model->addItems(parameters);
+
// Set up the account edit widget
d->accountEditWidget = new AccountEditWidget(item->protocolInfo(),
- QVariantMap(),
+ model,
d->pageTwoWidget);
d->pageTwoWidget->layout()->addWidget(d->accountEditWidget);
diff --git a/src/edit-account-dialog.cpp b/src/edit-account-dialog.cpp
index 45ec840..b752f11 100644
--- a/src/edit-account-dialog.cpp
+++ b/src/edit-account-dialog.cpp
@@ -2,6 +2,7 @@
* This file is part of telepathy-accounts-kcm
*
* Copyright (C) 2009 Collabora Ltd. <http://www.collabora.co.uk/>
+ * Copyright (C) 2011 Dominik Schmidt <kde at dominik-schmidt.de>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -20,11 +21,13 @@
#include "edit-account-dialog.h"
+
#include "KCMTelepathyAccounts/dictionary.h"
#include "KCMTelepathyAccounts/abstract-account-parameters-widget.h"
#include "KCMTelepathyAccounts/abstract-account-ui.h"
#include "KCMTelepathyAccounts/account-edit-widget.h"
#include "KCMTelepathyAccounts/parameter-edit-widget.h"
+#include "KCMTelepathyAccounts/parameter-edit-model.h"
#include "KCMTelepathyAccounts/plugin-manager.h"
#include <KDebug>
@@ -59,11 +62,16 @@ EditAccountDialog::EditAccountDialog(AccountItem *item, QWidget *parent)
// Get the protocol's parameters and values.
Tp::ProtocolInfo protocolInfo = d->item->account()->protocolInfo();
+ Tp::ProtocolParameterList parameters = protocolInfo.parameters();
QVariantMap parameterValues = d->item->account()->parameters();
+ // Add the parameters to the model.
+ ParameterEditModel *model = new ParameterEditModel(this);
+ model->addItems(parameters, parameterValues);
+
// Set up the interface
d->widget = new AccountEditWidget(protocolInfo,
- parameterValues,
+ model,
this);
setMainWidget(d->widget);
setMinimumWidth(400);
--
ktp-accounts-kcm packaging
More information about the pkg-kde-commits
mailing list