[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 &parameterName,
+                                           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 &parameterName,
+                                           QVariant::Type parameterType,
+                                           QWidget* dataWidget,
+                                           QList<QWidget*> labelWidgets)
+{
+    kDebug();
+
+    Tp::ProtocolParameter foundParameter;
+    foreach(const Tp::ProtocolParameter &parameter, 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 &parameters,
+                         const QString &parameterName,
+                         QVariant::Type parameterType,
+                         QWidget *dataWidget,
+                         QList<QWidget*> labelWidgets);
+    void handleParameter(const Tp::ProtocolParameterList &parameters,
+                         const QString &parameterName,
+                         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