[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:42 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-accounts-kcm.git;a=commitdiff;h=5d9644c
The following commit has been merged in the master branch:
commit 5d9644c69dc827a6ca61dc5aedc497494fe1f568
Author: Dominik Schmidt <dev at dominik-schmidt.de>
Date: Tue Jan 11 20:57:04 2011 +0100
Add convenience methods for handling parameters and config widgets
---
.../abstract-account-parameters-widget.cpp | 142 +++++++++++++++++++++
.../abstract-account-parameters-widget.h | 19 ++-
2 files changed, 160 insertions(+), 1 deletion(-)
diff --git a/src/KCMTelepathyAccounts/abstract-account-parameters-widget.cpp b/src/KCMTelepathyAccounts/abstract-account-parameters-widget.cpp
index d0ad71a..b45e868 100644
--- a/src/KCMTelepathyAccounts/abstract-account-parameters-widget.cpp
+++ b/src/KCMTelepathyAccounts/abstract-account-parameters-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
@@ -19,8 +20,13 @@
*/
#include "abstract-account-parameters-widget.h"
+#include "protocol-parameter-value.h"
#include <KDebug>
+#include <QLineEdit>
+#include <QCheckBox>
+#include <QComboBox>
+
class AbstractAccountParametersWidget::Private
{
@@ -53,6 +59,39 @@ AbstractAccountParametersWidget::~AbstractAccountParametersWidget()
delete d;
}
+QList<ProtocolParameterValue> AbstractAccountParametersWidget::parameterValues() const
+{
+ kDebug();
+
+ QList<ProtocolParameterValue> parameters;
+
+ ParametersWidgetsMap::const_iterator i = internalParametersWidgetsMap()->constBegin();
+ while (i != internalParametersWidgetsMap()->constEnd()) {
+
+ QLineEdit *lineEdit = qobject_cast<QLineEdit*>(i.value());
+ if(lineEdit)
+ {
+ parameters.append(ProtocolParameterValue(i.key(), lineEdit->text()));
+ }
+
+ QCheckBox *checkBox = qobject_cast<QCheckBox*>(i.value());
+ if(checkBox)
+ {
+ parameters.append(ProtocolParameterValue(i.key(), checkBox->isChecked()));
+ }
+
+ QComboBox *comboBox = qobject_cast<QComboBox*>(i.value());
+ if(comboBox)
+ {
+ parameters.append(ProtocolParameterValue(i.key(), comboBox->currentText()));
+ }
+
+ ++i;
+ }
+
+ return parameters;
+}
+
Tp::ProtocolParameterList AbstractAccountParametersWidget::parameters() const
{
return d->parameters;
@@ -64,5 +103,108 @@ bool AbstractAccountParametersWidget::validateParameterValues()
}
+ParametersWidgetsMap* AbstractAccountParametersWidget::internalParametersWidgetsMap() const
+{
+ ParametersWidgetsMap *map = new ParametersWidgetsMap();
+ return map;
+}
+
+void AbstractAccountParametersWidget::handleParameter(const Tp::ProtocolParameterList& parameters,
+ const QString ¶meterName,
+ QVariant::Type parameterType,
+ QWidget* dataWidget,
+ QWidget* labelWidget)
+{
+ kDebug();
+
+ QList<QWidget*> labelWidgets;
+ labelWidgets << labelWidget;
+ handleParameter(parameters, parameterName, parameterType, dataWidget, labelWidgets);
+}
+
+void AbstractAccountParametersWidget::handleParameter(const Tp::ProtocolParameterList& parameters,
+ const QString ¶meterName,
+ QVariant::Type parameterType,
+ QWidget* dataWidget,
+ QList<QWidget*> labelWidgets)
+{
+ kDebug();
+
+ Tp::ProtocolParameter foundParameter;
+ foreach(const Tp::ProtocolParameter ¶meter, parameters)
+ {
+ if ((parameter.name() == parameterName) && (parameter.type() == parameterType)) {
+ foundParameter = parameter;
+ }
+ }
+
+ if(foundParameter.isValid())
+ {
+ // insert it to valid parameters list
+ internalParametersWidgetsMap()->insert(foundParameter, dataWidget);
+ }
+ else
+ {
+ // hide widgets because they are not needed
+ dataWidget->hide();
+ foreach(QWidget *label, labelWidgets)
+ {
+ label->hide();
+ }
+ }
+
+
+}
+
+void AbstractAccountParametersWidget::prefillUI(const QVariantMap& values)
+{
+ kDebug();
+
+ ParametersWidgetsMap::const_iterator i = internalParametersWidgetsMap()->constBegin();
+ while (i != internalParametersWidgetsMap()->constEnd()) {
+
+ QLineEdit* lineEdit = qobject_cast<QLineEdit*>(i.value());
+ if(lineEdit)
+ {
+ if(values.value(i.key().name()).isValid())
+ {
+ lineEdit->setText(values.value(i.key().name()).toString());
+ }
+ else
+ {
+ lineEdit->setText(i.key().defaultValue().toString());
+ }
+ }
+
+ QCheckBox* checkBox = qobject_cast<QCheckBox*>(i.value());
+ if(checkBox)
+ {
+ if(values.value(i.key().name()).isValid())
+ {
+ checkBox->setChecked(i.key().defaultValue().toBool());
+ }
+ else
+ {
+ checkBox->setChecked(values.value(i.key().name()).toBool());
+ }
+ }
+
+ QComboBox* comboBox = qobject_cast<QComboBox*>(i.value());
+ if(checkBox)
+ {
+ if(values.value(i.key().name()).isValid())
+ {
+ comboBox->setEditText(i.key().defaultValue().toString());
+ }
+ else
+ {
+ comboBox->setEditText(values.value(i.key().name()).toString());
+ }
+ }
+
+ ++i;
+ }
+}
+
#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 44bba67..b969665 100644
--- a/src/KCMTelepathyAccounts/abstract-account-parameters-widget.h
+++ b/src/KCMTelepathyAccounts/abstract-account-parameters-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
@@ -31,6 +32,8 @@
class ProtocolParameterValue;
+typedef QMap<Tp::ProtocolParameter, QWidget*> ParametersWidgetsMap;
+
class KDE_EXPORT AbstractAccountParametersWidget : public QWidget
{
Q_OBJECT
@@ -41,11 +44,25 @@ public:
QWidget *parent = 0);
virtual ~AbstractAccountParametersWidget();
- virtual QList<ProtocolParameterValue> parameterValues() const = 0;
+ virtual QList<ProtocolParameterValue> parameterValues() const;
virtual Tp::ProtocolParameterList parameters() const;
virtual bool validateParameterValues();
protected:
+ virtual ParametersWidgetsMap* internalParametersWidgetsMap() const;
+
+ void handleParameter(const Tp::ProtocolParameterList ¶meters,
+ const QString ¶meterName,
+ QVariant::Type parameterType,
+ QWidget *dataWidget,
+ QList<QWidget*> labelWidgets);
+ void handleParameter(const Tp::ProtocolParameterList ¶meters,
+ const QString ¶meterName,
+ QVariant::Type parameterType,
+ QWidget *dataWidget,
+ QWidget* labelWidget);
+
+ void prefillUI(const QVariantMap &values);
private:
Q_DISABLE_COPY(AbstractAccountParametersWidget);
--
ktp-accounts-kcm packaging
More information about the pkg-kde-commits
mailing list