Revision
14262
Author
jmesquita
Date
2009-07-15 17:20:13 -0500 (Wed, 15 Jul 2009)

Log Message

Added the ability to store server configurations

Modified Paths

Diff

Modified: freeswitch/trunk/contrib/jmesquita/fsgui/resources/server_manager.ui (14261 => 14262)


--- freeswitch/trunk/contrib/jmesquita/fsgui/resources/server_manager.ui	2009-07-15 20:31:12 UTC (rev 14261)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/resources/server_manager.ui	2009-07-15 22:20:13 UTC (rev 14262)
@@ -19,131 +19,174 @@
   <property name="windowTitle">
    <string>Server Manager</string>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
-      <widget class="QTreeView" name="treeView"/>
-     </item>
-     <item>
-      <widget class="QGroupBox" name="groupBox">
-       <property name="title">
-        <string>Server Settings</string>
-       </property>
-       <layout class="QFormLayout" name="formLayout">
-        <item row="0" column="0">
-         <widget class="QLabel" name="label">
+  <widget class="QWidget" name="">
+   <property name="geometry">
+    <rect>
+     <x>9</x>
+     <y>9</y>
+     <width>500</width>
+     <height>232</height>
+    </rect>
+   </property>
+   <layout class="QVBoxLayout" name="verticalLayout">
+    <item>
+     <layout class="QHBoxLayout" name="horizontalLayout">
+      <item>
+       <widget class="QTreeWidget" name="serverTreeWidget">
+        <column>
+         <property name="text">
+          <string>Servers</string>
+         </property>
+        </column>
+       </widget>
+      </item>
+      <item>
+       <widget class="QGroupBox" name="groupBox">
+        <property name="title">
+         <string>Server Settings</string>
+        </property>
+        <layout class="QFormLayout" name="formLayout">
+         <item row="0" column="0">
+          <widget class="QLabel" name="label">
+           <property name="text">
+            <string>Host</string>
+           </property>
+          </widget>
+         </item>
+         <item row="0" column="1">
+          <widget class="QLineEdit" name="host">
+           <property name="text">
+            <string>localhost</string>
+           </property>
+          </widget>
+         </item>
+         <item row="1" column="0">
+          <widget class="QLabel" name="label_2">
+           <property name="text">
+            <string>Password</string>
+           </property>
+          </widget>
+         </item>
+         <item row="1" column="1">
+          <widget class="QLineEdit" name="pass">
+           <property name="text">
+            <string>ClueCon</string>
+           </property>
+          </widget>
+         </item>
+         <item row="2" column="0">
+          <widget class="QLabel" name="label_3">
+           <property name="text">
+            <string>Port</string>
+           </property>
+          </widget>
+         </item>
+         <item row="2" column="1">
+          <widget class="QLineEdit" name="port">
+           <property name="text">
+            <string>8021</string>
+           </property>
+          </widget>
+         </item>
+         <item row="3" column="0">
+          <widget class="QPushButton" name="btnSave">
+           <property name="text">
+            <string>Save</string>
+           </property>
+          </widget>
+         </item>
+         <item row="3" column="1">
+          <widget class="QPushButton" name="btnDelete">
+           <property name="text">
+            <string>Delete</string>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </widget>
+      </item>
+     </layout>
+    </item>
+    <item>
+     <layout class="QHBoxLayout" name="horizontalLayout_3">
+      <item>
+       <spacer name="horizontalSpacer">
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>308</width>
+          <height>20</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_2">
+        <item>
+         <widget class="QPushButton" name="btnConnect">
           <property name="text">
-           <string>Host</string>
+           <string>Connect</string>
           </property>
-         </widget>
-        </item>
-        <item row="0" column="1">
-         <widget class="QLineEdit" name="host">
-          <property name="text">
-           <string>localhost</string>
+          <property name="default">
+           <bool>true</bool>
           </property>
          </widget>
         </item>
-        <item row="1" column="0">
-         <widget class="QLabel" name="label_2">
+        <item>
+         <widget class="QPushButton" name="btnCancel">
           <property name="text">
-           <string>Password</string>
+           <string>Cancel</string>
           </property>
          </widget>
         </item>
-        <item row="1" column="1">
-         <widget class="QLineEdit" name="pass">
-          <property name="text">
-           <string>ClueCon</string>
-          </property>
-         </widget>
-        </item>
-        <item row="2" column="0">
-         <widget class="QLabel" name="label_3">
-          <property name="text">
-           <string>Port</string>
-          </property>
-         </widget>
-        </item>
-        <item row="2" column="1">
-         <widget class="QLineEdit" name="port">
-          <property name="text">
-           <string>8021</string>
-          </property>
-         </widget>
-        </item>
-        <item row="3" column="0">
-         <widget class="QPushButton" name="pushButton">
-          <property name="text">
-           <string>Save</string>
-          </property>
-         </widget>
-        </item>
-        <item row="3" column="1">
-         <widget class="QPushButton" name="pushButton_2">
-          <property name="text">
-           <string>Delete</string>
-          </property>
-         </widget>
-        </item>
        </layout>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
+      </item>
+     </layout>
+    </item>
+   </layout>
+  </widget>
  </widget>
  <tabstops>
   <tabstop>host</tabstop>
   <tabstop>pass</tabstop>
   <tabstop>port</tabstop>
-  <tabstop>treeView</tabstop>
-  <tabstop>pushButton</tabstop>
-  <tabstop>pushButton_2</tabstop>
-  <tabstop>buttonBox</tabstop>
+  <tabstop>serverTreeWidget</tabstop>
+  <tabstop>btnSave</tabstop>
+  <tabstop>btnDelete</tabstop>
  </tabstops>
  <resources/>
  <connections>
   <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
+   <sender>btnConnect</sender>
+   <signal>clicked(bool)</signal>
    <receiver>CserverManager</receiver>
    <slot>accept()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
+     <x>383</x>
+     <y>224</y>
     </hint>
     <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
+     <x>257</x>
+     <y>124</y>
     </hint>
    </hints>
   </connection>
   <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
+   <sender>btnCancel</sender>
+   <signal>clicked(bool)</signal>
    <receiver>CserverManager</receiver>
    <slot>reject()</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
+     <x>460</x>
+     <y>228</y>
     </hint>
     <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
+     <x>292</x>
+     <y>224</y>
     </hint>
    </hints>
   </connection>

Modified: freeswitch/trunk/contrib/jmesquita/fsgui/src/include/server_manager.h (14261 => 14262)


--- freeswitch/trunk/contrib/jmesquita/fsgui/src/include/server_manager.h	2009-07-15 20:31:12 UTC (rev 14261)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/include/server_manager.h	2009-07-15 22:20:13 UTC (rev 14262)
@@ -54,10 +54,19 @@
     QString getHost();
     QString getPass();
     QString getPort();
+    void readSettings();
+    void writeSettings();
+    void addChildSettings(QSettings &, QTreeWidgetItem *, const QString &);
 protected:
     virtual void changeEvent(QEvent *e);
 private:
     Ui::CserverManager *m_ui;
+    QString settingsApplication;
+    QString settingsOrganization;
+private slots:
+    void addNewServer();
+    void deleteServer();
+    void serverSelected(QTreeWidgetItem *, int);
 };
 
 #endif // SERVER_MANAGER_H

Modified: freeswitch/trunk/contrib/jmesquita/fsgui/src/server_manager.cpp (14261 => 14262)


--- freeswitch/trunk/contrib/jmesquita/fsgui/src/server_manager.cpp	2009-07-15 20:31:12 UTC (rev 14261)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/server_manager.cpp	2009-07-15 22:20:13 UTC (rev 14262)
@@ -44,8 +44,18 @@
     m_ui(new Ui::CserverManager)
 {
     m_ui->setupUi(this);
+
+    settingsApplication = "FsGUI";
+    settingsOrganization = "FreeSWITCH";
+    readSettings();
+    connect(m_ui->btnSave, SIGNAL(clicked()),
+            this, SLOT(addNewServer()));
+    connect(m_ui->btnDelete, SIGNAL(clicked()),
+            this, SLOT(deleteServer()));
+
+    connect(m_ui->serverTreeWidget, SIGNAL(itemClicked(QTreeWidgetItem*,int)),
+            this, SLOT(serverSelected(QTreeWidgetItem*,int)));
 }
-
 CserverManager::~CserverManager()
 {
     delete m_ui;
@@ -62,7 +72,6 @@
         break;
     }
 }
-
 QString CserverManager::getHost()
 {
     return m_ui->host->text();
@@ -75,3 +84,73 @@
 {
     return m_ui->pass->text();
 }
+void CserverManager::readSettings()
+{
+    QSettings settings(settingsOrganization, settingsApplication);
+    m_ui->serverTreeWidget->clear();
+    m_ui->serverTreeWidget->setFocus();
+    addChildSettings(settings, 0, "servers");
+}
+void CserverManager::writeSettings()
+{
+}
+void CserverManager::addChildSettings(QSettings &settings, QTreeWidgetItem *parent, const QString &group)
+{
+    if(!parent)
+        parent = m_ui->serverTreeWidget->invisibleRootItem();
+    QTreeWidgetItem *item;
+
+
+
+    settings.beginGroup(group);
+
+    foreach(QString group, settings.childGroups())
+    {
+        item = new QTreeWidgetItem(parent);
+        item->setText(0, group);
+    }
+    settings.endGroup();
+}
+void CserverManager::addNewServer()
+{
+    QSettings settings(settingsOrganization, settingsApplication);
+
+    settings.beginGroup("servers");
+    settings.beginGroup(m_ui->host->text());
+    settings.setValue("password", m_ui->pass->text());
+    settings.setValue("port", m_ui->port->text());
+    settings.endGroup();
+    settings.endGroup();
+
+    m_ui->serverTreeWidget->clear();
+    addChildSettings(settings, 0, "servers");
+}
+void CserverManager::deleteServer()
+{
+    QTreeWidgetItem *item = m_ui->serverTreeWidget->currentItem();
+    if (item)
+    {
+        QSettings settings(settingsOrganization, settingsApplication);
+        settings.beginGroup("servers");
+        settings.remove(item->text(0));
+        settings.endGroup();
+        readSettings();
+        m_ui->host->clear();
+        m_ui->pass->clear();
+        m_ui->port->clear();
+    }
+}
+void CserverManager::serverSelected(QTreeWidgetItem *item, int col)
+{
+    QSettings settings(settingsOrganization, settingsApplication);
+
+    settings.beginGroup("servers");
+    settings.beginGroup(item->text(col));
+
+    m_ui->host->setText(item->text(col));
+    m_ui->port->setText(settings.value("port").toString());
+    m_ui->pass->setText(settings.value("password").toString());
+
+    settings.endGroup();
+    settings.endGroup();
+}