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

List:       kde-commits
Subject:    [networkmanagement/nm09] /: Add storage type combobox for GSM password field in GsmWidget.
From:       Lamarque V. Souza <lamarque () kde ! org>
Date:       2012-09-30 23:34:43
Message-ID: 20120930233443.E06ECA605D () git ! kde ! org
[Download RAW message or body]

Git commit 8c1e050dcbf9e1ea2e79717e8a5972ce570f203e by Lamarque V. Souza.
Committed on 01/10/2012 at 01:29.
Pushed by lvsouza into branch 'nm09'.

Add storage type combobox for GSM password field in GsmWidget.

CCBUG: 306132

M  +1    -3    backends/NetworkManager/settings/gsmdbus.cpp
M  +24   -1    libs/ui/gsm.ui
M  +41   -6    libs/ui/gsmwidget.cpp
M  +1    -0    libs/ui/gsmwidget.h

http://commits.kde.org/networkmanagement/8c1e050dcbf9e1ea2e79717e8a5972ce570f203e

diff --git a/backends/NetworkManager/settings/gsmdbus.cpp \
b/backends/NetworkManager/settings/gsmdbus.cpp index 75a9173..447b877 100644
--- a/backends/NetworkManager/settings/gsmdbus.cpp
+++ b/backends/NetworkManager/settings/gsmdbus.cpp
@@ -71,9 +71,7 @@ QVariantMap GsmDbus::toMap()
   insertIfTrue(map, NM_SETTING_GSM_HOME_ONLY, setting->homeonly());
 
   map.unite(toSecretsMap());
-  if (!setting->password().isEmpty()) {
-      map.insert(QLatin1String(NM_SETTING_GSM_PASSWORD_FLAGS), \
                (int)setting->passwordflags());
-  }
+  map.insert(QLatin1String(NM_SETTING_GSM_PASSWORD_FLAGS), \
(int)setting->passwordflags());  map.insert(QLatin1String(NM_SETTING_GSM_PIN_FLAGS), \
(int)setting->pinflags());  
   //map.insert("band", setting->band());
diff --git a/libs/ui/gsm.ui b/libs/ui/gsm.ui
index 87219a4..92bbf02 100644
--- a/libs/ui/gsm.ui
+++ b/libs/ui/gsm.ui
@@ -82,7 +82,30 @@
        </widget>
       </item>
       <item row="2" column="1">
-       <widget class="KLineEdit" name="password"/>
+       <layout class="QHBoxLayout" name="horizontalLayout_3">
+        <item>
+         <widget class="KLineEdit" name="password"/>
+        </item>
+        <item>
+         <widget class="KComboBox" name="passwordStorage">
+          <item>
+           <property name="text">
+            <string>Store</string>
+           </property>
+          </item>
+          <item>
+           <property name="text">
+            <string>Always Ask</string>
+           </property>
+          </item>
+          <item>
+           <property name="text">
+            <string>Not Required</string>
+           </property>
+          </item>
+         </widget>
+        </item>
+       </layout>
       </item>
      </layout>
     </widget>
diff --git a/libs/ui/gsmwidget.cpp b/libs/ui/gsmwidget.cpp
index a848582..9d8ab2d 100644
--- a/libs/ui/gsmwidget.cpp
+++ b/libs/ui/gsmwidget.cpp
@@ -29,7 +29,7 @@ class GsmWidgetPrivate : public SettingWidgetPrivate
 public:
     Ui_Gsm ui;
     Knm::GsmSetting * setting;
-    enum PinStorage {Store = 0, AlwaysAsk, NotRequired};
+    enum StorageType {Store = 0, AlwaysAsk, NotRequired};
 };
 
 GsmWidget::GsmWidget(Knm::Connection * connection, QWidget * parent)
@@ -39,6 +39,7 @@ GsmWidget::GsmWidget(Knm::Connection * connection, QWidget * \
parent)  d->ui.setupUi(this);
     d->setting = static_cast<Knm::GsmSetting \
                *>(connection->setting(Knm::Setting::Gsm));
     connect(d->ui.chkShowPass, SIGNAL(stateChanged(int)), this, \
SLOT(chkShowPassToggled())); +    connect(d->ui.passwordStorage, \
                SIGNAL(currentIndexChanged(int)), this, \
                SLOT(passwordStorageTypeChanged(int)));
     connect(d->ui.pinStorage, SIGNAL(currentIndexChanged(int)), this, \
SLOT(pinStorageTypeChanged(int)));  d->ui.pin->setEchoMode(QLineEdit::Password);
     /* Not used yet*/
@@ -101,17 +102,36 @@ void GsmWidget::writeConfig()
             d->setting->setPinflags(Knm::Setting::NotRequired);
             break;
     }
-    if (d->setting->password().isEmpty()) {
-        d->setting->setPasswordflags(Knm::Setting::NotRequired);
-    } else {
-        d->setting->setPasswordflags(Knm::Setting::AgentOwned);
+    switch (d->ui.passwordStorage->currentIndex())
+    {
+        case GsmWidgetPrivate::Store:
+            if (!d->connection->permissions().isEmpty())
+                d->setting->setPasswordflags(Knm::Setting::AgentOwned);
+            else
+                d->setting->setPasswordflags(Knm::Setting::None);
+            break;
+        case GsmWidgetPrivate::AlwaysAsk:
+            d->setting->setPasswordflags(Knm::Setting::NotSaved);
+            break;
+        case GsmWidgetPrivate::NotRequired:
+            d->setting->setPasswordflags(Knm::Setting::NotRequired);
+            break;
     }
 }
 
 void GsmWidget::readSecrets()
 {
     Q_D(GsmWidget);
-    d->ui.password->setText(d->setting->password());
+
+    if (d->setting->passwordflags().testFlag(Knm::Setting::AgentOwned) || \
d->setting->passwordflags().testFlag(Knm::Setting::None)) { +        \
d->ui.passwordStorage->setCurrentIndex(GsmWidgetPrivate::Store); +        \
d->ui.password->setText(d->setting->password()); +    } else if \
(d->setting->passwordflags().testFlag(Knm::Setting::NotSaved)) { +        \
d->ui.passwordStorage->setCurrentIndex(GsmWidgetPrivate::AlwaysAsk); +    } else if \
(d->setting->passwordflags().testFlag(Knm::Setting::NotRequired)) { +        \
d->ui.passwordStorage->setCurrentIndex(GsmWidgetPrivate::NotRequired); +    }
+
     if (d->setting->pinflags().testFlag(Knm::Setting::AgentOwned) || \
d->setting->pinflags().testFlag(Knm::Setting::None)) {  \
d->ui.pinStorage->setCurrentIndex(GsmWidgetPrivate::Store);  \
d->ui.pin->setText(d->setting->pin()); @@ -163,6 +183,21 @@ void \
GsmWidget::setApnInfo(const QMap<QString, QVariant> apnInfo)  \
d->ui.password->setText(d->setting->password());  }
 
+void GsmWidget::passwordStorageTypeChanged(int type)
+{
+    Q_D(GsmWidget);
+    switch (type)
+    {
+        case GsmWidgetPrivate::Store:
+            d->ui.password->setEnabled(true);
+            break;
+        case GsmWidgetPrivate::AlwaysAsk:
+        case GsmWidgetPrivate::NotRequired:
+            d->ui.password->setEnabled(false);
+            break;
+    }
+}
+
 void GsmWidget::pinStorageTypeChanged(int type)
 {
     Q_D(GsmWidget);
diff --git a/libs/ui/gsmwidget.h b/libs/ui/gsmwidget.h
index 4d51f5f..cea7cc6 100644
--- a/libs/ui/gsmwidget.h
+++ b/libs/ui/gsmwidget.h
@@ -42,6 +42,7 @@ public:
 protected Q_SLOTS:
     void validate();
     void chkShowPassToggled();
+    void passwordStorageTypeChanged(int);
     void pinStorageTypeChanged(int);
 };
 


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

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