[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-07-23 11:26:39
Message-ID: 1248348399.247209.16968.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1001469 by gberg:

Add parameter-edit-widgets to the second page of the add account assitant.

 M  +42 -10    add-account-assistant.cpp  
 M  +22 -0     parameter-edit-delegate.cpp  
 M  +5 -0      parameter-edit-delegate.h  
 M  +9 -1      parameter-edit-widget.cpp  
 M  +44 -0     protocol-item.cpp  
 M  +5 -0      protocol-item.h  


--- trunk/playground/network/telepathy-accounts-kcm/src/add-account-assistant.cpp \
#1001468:1001469 @@ -20,6 +20,8 @@
 
 #include "add-account-assistant.h"
 
+#include "parameter-edit-widget.h"
+#include "protocol-item.h"
 #include "protocol-select-widget.h"
 
 #include <KDebug>
@@ -31,13 +33,20 @@
 {
 public:
     Private()
-     : pageOne(0)
+     : protocolSelectWidget(0),
+       tabWidget(0),
+       mandatoryParametersWidget(0),
+       optionalParametersWidget(0),
+       pageOne(0),
+       pageTwo(0)
     {
         kDebug();
     }
 
-    ProtocolSelectWidget *widgetOne;
-    KTabWidget *widgetTwo;
+    ProtocolSelectWidget *protocolSelectWidget;
+    KTabWidget *tabWidget;
+    ParameterEditWidget *mandatoryParametersWidget;
+    ParameterEditWidget *optionalParametersWidget;
     KPageWidgetItem *pageOne;
     KPageWidgetItem *pageTwo;
 };
@@ -49,11 +58,11 @@
     kDebug();
 
     // Set up the pages of the Assistant.
-    d->widgetOne = new ProtocolSelectWidget(this);
-    d->pageOne = new KPageWidgetItem(d->widgetOne);
+    d->protocolSelectWidget = new ProtocolSelectWidget(this);
+    d->pageOne = new KPageWidgetItem(d->protocolSelectWidget);
     d->pageOne->setHeader(i18n("Step 1: Select an Instant Messaging \
                Network."));
-    d->widgetTwo = new KTabWidget(this);
-    d->pageTwo = new KPageWidgetItem(d->widgetTwo);
+    d->tabWidget = new KTabWidget(this);
+    d->pageTwo = new KPageWidgetItem(d->tabWidget);
     d->pageTwo->setHeader(i18n("Step 2: Fill in the required \
Parameters."));  
     addPage(d->pageOne);
@@ -83,9 +92,32 @@
         kDebug() << "Current page: Page 1.";
         // Page 1
 
-        // Check if the protocol is selected. If it is, continue to the \
                next page.
-        if (d->widgetOne->selectedProtocol()) {
-            kDebug() << "Protocol is selected. Continue to the next \
page."; +        // Check if the protocol is selected. If it is, set up the \
next page and continue to it. +        if \
(d->protocolSelectWidget->selectedProtocol()) { +            kDebug() << \
"Protocol is selected. Set up and continue to the next page."; +
+            // Set up the next page.
+            ProtocolItem *item = \
d->protocolSelectWidget->selectedProtocol(); +
+            // Delete the widgets for the next page if they already exist
+            if (d->mandatoryParametersWidget) {
+                d->mandatoryParametersWidget->deleteLater();
+                d->mandatoryParametersWidget = 0;
+            }
+
+            if (d->optionalParametersWidget) {
+                d->optionalParametersWidget->deleteLater();
+                d->optionalParametersWidget = 0;
+            }
+
+            d->mandatoryParametersWidget = new \
ParameterEditWidget(d->tabWidget); +            \
d->mandatoryParametersWidget->setParameters(item->mandatoryParameters()); + \
d->tabWidget->addTab(d->mandatoryParametersWidget, i18n("Mandatory \
Parameters")); +
+            d->optionalParametersWidget = new \
ParameterEditWidget(d->tabWidget); +            \
d->optionalParametersWidget->setParameters(item->optionalParameters()); +   \
d->tabWidget->addTab(d->optionalParametersWidget, i18n("Optional \
Parameters")); +
             KAssistantDialog::next();
         }
     }
--- trunk/playground/network/telepathy-accounts-kcm/src/parameter-edit-delegate.cpp \
#1001468:1001469 @@ -59,6 +59,28 @@
     Q_UNUSED(index);
 }
 
+void ParameterEditDelegate::paint(QPainter *painter,
+                                  const QStyleOptionViewItem &option,
+                                  const QModelIndex &index) const
+{
+    // TODO: Implement me!
 
+    Q_UNUSED(painter);
+    Q_UNUSED(option);
+    Q_UNUSED(index);
+}
+
+QSize ParameterEditDelegate::sizeHint(const QStyleOptionViewItem &option,
+                                      const QModelIndex &index) const
+{
+    // TODO: Implement me!
+
+    Q_UNUSED(option);
+    Q_UNUSED(index);
+
+    return QSize();
+}
+
+
 #include "parameter-edit-delegate.moc"
 
--- trunk/playground/network/telepathy-accounts-kcm/src/parameter-edit-delegate.h \
#1001468:1001469 @@ -31,6 +31,11 @@
     explicit ParameterEditDelegate(QAbstractItemView *itemView, QObject \
*parent = 0);  virtual ~ParameterEditDelegate();
 
+    virtual void paint(QPainter *painter,
+                       const QStyleOptionViewItem &option,
+                       const QModelIndex &index) const;
+    virtual QSize sizeHint(const QStyleOptionViewItem &option, const \
QModelIndex &index) const; +
 protected:
     virtual QList<QWidget*> createItemWidgets() const;
     virtual void updateItemWidgets(const QList<QWidget*> widgets,
--- trunk/playground/network/telepathy-accounts-kcm/src/parameter-edit-widget.cpp \
#1001468:1001469 @@ -20,6 +20,8 @@
 
 #include "parameter-edit-widget.h"
 
+#include "parameter-edit-delegate.h"
+
 #include "ui_parameter-edit-widget.h"
 
 #include <KDebug>
@@ -28,13 +30,14 @@
 {
 public:
     Private()
-     : ui(0)
+     : ui(0), delegate(0)
     {
         kDebug();
     }
 
     Ui::ParameterEditWidget *ui;
     Tp::ProtocolParameterList parameters;
+    ParameterEditDelegate *delegate;
 };
 
 ParameterEditWidget::ParameterEditWidget(QWidget *parent)
@@ -46,6 +49,11 @@
     // Set up the UI.
     d->ui = new Ui::ParameterEditWidget;
     d->ui->setupUi(this);
+
+  //  d->delegate = new ParameterEditDelegate(d->ui->parameterListView, \
this); +  //  d->ui->parameterListView->setItemDelegate(d->delegate);
+
+    // TODO: Model
 }
 
 ParameterEditWidget::~ParameterEditWidget()
--- trunk/playground/network/telepathy-accounts-kcm/src/protocol-item.cpp \
#1001468:1001469 @@ -45,6 +45,50 @@
     return m_protocol;
 }
 
+Tp::ProtocolParameterList ProtocolItem::mandatoryParameters() const
+{
+    kDebug();
 
+    ConnectionManagerItem *item = \
qobject_cast<ConnectionManagerItem*>(parent()); +
+    Tp::ConnectionManagerPtr cm = item->connectionManager();
+
+    Tp::ProtocolParameterList mandatoryParameters;
+    foreach (Tp::ProtocolInfo *info, cm->protocols()) {
+        if (info->name() == m_protocol) {
+            foreach (Tp::ProtocolParameter *parameter, info->parameters()) \
{ +                if (parameter->isRequired()) {
+                    mandatoryParameters << parameter;
+                }
+            }
+        }
+    }
+
+    return mandatoryParameters;
+}
+
+Tp::ProtocolParameterList ProtocolItem::optionalParameters() const
+{
+    kDebug();
+
+    ConnectionManagerItem *item = \
qobject_cast<ConnectionManagerItem*>(parent()); +
+    Tp::ConnectionManagerPtr cm = item->connectionManager();
+
+    Tp::ProtocolParameterList optionalParameters;
+    foreach (Tp::ProtocolInfo *info, cm->protocols()) {
+        if (info->name() == m_protocol) {
+            foreach (Tp::ProtocolParameter *parameter, info->parameters()) \
{ +                if (!parameter->isRequired()) {
+                    optionalParameters << parameter;
+                }
+            }
+        }
+    }
+
+    return optionalParameters;
+}
+
+
 #include "protocol-item.moc"
 
--- trunk/playground/network/telepathy-accounts-kcm/src/protocol-item.h \
#1001468:1001469 @@ -23,6 +23,8 @@
 
 #include <QtCore/QObject>
 
+#include <TelepathyQt4/ConnectionManager>
+
 class ConnectionManagerItem;
 
 class ProtocolItem : public QObject
@@ -37,6 +39,9 @@
 
     QString protocol() const;
 
+    Tp::ProtocolParameterList mandatoryParameters() const;
+    Tp::ProtocolParameterList optionalParameters() const;
+
 private:
     QString m_protocol;
 };


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic