Gestionnaire de compte.
authorYann Nave <ynave@ynave-laptop.(none)>
Wed, 11 Aug 2010 11:41:34 +0000 (13:41 +0200)
committerYann Nave <ynave@ynave-laptop.(none)>
Wed, 11 Aug 2010 11:41:34 +0000 (13:41 +0200)
Ajouter supprimer éditer une ip dans la liste des comptes.
Boutons désactivés si pas d'ip sélectionée dans la liste.

accountdialog.cpp
accountdialog.h
accountdialog.ui
accountnewdialog.ui [new file with mode: 0644]
configdialog.cpp
playlistmainwindow.cpp
playlistmainwindow.h
vlcRemote.pro

index 71cfc93..51a360a 100644 (file)
@@ -3,6 +3,7 @@
 #include <QDebug>
 #include <QInputDialog>
 #include <QSettings>
+
 AccountDialog::AccountDialog(QWidget *parent) :
         QDialog(parent),
         ui(new Ui::AccountDialog)
@@ -10,6 +11,9 @@ AccountDialog::AccountDialog(QWidget *parent) :
     ui->setupUi(this);
 
     connect(ui->addButton,SIGNAL(clicked()),this,SLOT(add()));
+    connect(ui->editButton,SIGNAL(clicked()),this,SLOT(edit()));
+    connect(ui->remButton,SIGNAL(clicked()),this,SLOT(rem()));
+    connect(ui->listWidget, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(enableUi()));
 
     load();  // On charge les compte
 
@@ -21,24 +25,27 @@ AccountDialog::~AccountDialog()
 }
 void AccountDialog::add()
 {
-    qDebug()<<"add";
-
-    QString Ip = QInputDialog::getText(this,"ip?","enter your ip");
+    QString ip = QInputDialog::getText(this,"ip?","enter your ip");
     // On peut checker si c'est une bonne forme d'ip avec QRegExp
 
-    QString ipKey = "Label"+Ip;  // La faudra l'integré dans un widget personnalisé ( entrez le label, entrez l' IP)
+    if (!ip.isEmpty()) {
+        QString ipKey = "Label"+ip;  // La faudra l'integré dans un widget personnalisé ( entrez le label, entrez l' IP)
 
-    QSettings settings;
-    settings.beginGroup("account");
-    settings.setValue(ipKey, Ip);
-    settings.endGroup();
+        QSettings settings;
+        settings.beginGroup("account");
+        settings.setValue(ipKey, ip);
+        settings.endGroup();
 
-    load(); // On recharge les compte
+        load(); // On recharge les compte
 
+    }
 }
 void AccountDialog::load()
 {
+    ui->editButton->setEnabled(false);
+    ui->remButton->setEnabled(false);
     ui->listWidget->clear(); // tjr effacer , sinon on rajoute
+
     QSettings settings;
     settings.beginGroup("account");
     foreach ( QString key, settings.allKeys())
@@ -49,16 +56,45 @@ void AccountDialog::load()
         ui->listWidget->addItem(item);
 
     }
-    settings.endGroup();
+    settings.endGroup();    
 }
 
 void AccountDialog::edit()
 {
+    QString currentValue = ui->listWidget->currentItem()->data(Qt::UserRole).toString();
+    QString currentKey = ui->listWidget->currentItem()->text();
+
+
+    QString ip = QInputDialog::getText(this, "ip ?", "enter your ip", QLineEdit::Normal, currentValue);
 
+    if (!ip.isEmpty()) {
+        QString ipKey = "Label"+ip;  // La faudra l'integré dans un widget personnalisé ( entrez le label, entrez l' IP)
+
+        QSettings settings;
+        settings.beginGroup("account");
+        settings.remove(currentKey);
+        settings.setValue(ipKey, ip);
+        settings.endGroup();
+
+        load();
+
+    }
 }
 
 void AccountDialog::rem()
 {
+    QString key = ui->listWidget->currentItem()->text();
 
+    QSettings settings;
+    settings.beginGroup("account");
+    settings.remove(key);
+    settings.endGroup();
 
+    load(); // On recharge les compte
+}
+
+void AccountDialog::enableUi()
+{
+    ui->editButton->setEnabled(true);
+    ui->remButton->setEnabled(true);
 }
index dd76f26..ecdde58 100644 (file)
@@ -20,6 +20,7 @@ public slots:
     void edit();
     void rem();
     void load();
+    void enableUi();
 
 private:
     Ui::AccountDialog *ui;
index 87071a5..3a7addd 100644 (file)
   </property>
   <layout class="QHBoxLayout" name="horizontalLayout">
    <item>
-    <widget class="QListWidget" name="listWidget"/>
+    <widget class="QListWidget" name="listWidget">
+     <item>
+      <property name="text">
+       <string>test</string>
+      </property>
+     </item>
+    </widget>
    </item>
    <item>
     <layout class="QVBoxLayout" name="verticalLayout">
@@ -28,6 +34,9 @@
      </item>
      <item>
       <widget class="QPushButton" name="editButton">
+       <property name="enabled">
+        <bool>false</bool>
+       </property>
        <property name="text">
         <string>Edit</string>
        </property>
@@ -35,6 +44,9 @@
      </item>
      <item>
       <widget class="QPushButton" name="remButton">
+       <property name="enabled">
+        <bool>false</bool>
+       </property>
        <property name="text">
         <string>Remove</string>
        </property>
diff --git a/accountnewdialog.ui b/accountnewdialog.ui
new file mode 100644 (file)
index 0000000..0ac856e
--- /dev/null
@@ -0,0 +1,67 @@
+<ui version="4.0" >
+ <class>Dialog</class>
+ <widget class="QDialog" name="Dialog" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>320</width>
+    <height>240</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string>Dialog</string>
+  </property>
+  <widget class="QDialogButtonBox" name="buttonBox" >
+   <property name="geometry" >
+    <rect>
+     <x>10</x>
+     <y>200</y>
+     <width>301</width>
+     <height>32</height>
+    </rect>
+   </property>
+   <property name="orientation" >
+    <enum>Qt::Horizontal</enum>
+   </property>
+   <property name="standardButtons" >
+    <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+   </property>
+  </widget>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>Dialog</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel" >
+     <x>248</x>
+     <y>254</y>
+    </hint>
+    <hint type="destinationlabel" >
+     <x>157</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>Dialog</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel" >
+     <x>316</x>
+     <y>260</y>
+    </hint>
+    <hint type="destinationlabel" >
+     <x>286</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
index 61f6531..788319a 100644 (file)
@@ -18,6 +18,7 @@
 #include "configdialog.h"
 #include "ui_configdialog.h"
 #include <QSettings>
+
 ConfigDialog::ConfigDialog(QWidget *parent) :
         QDialog(parent),
         ui(new Ui::ConfigDialog)
index e1ec534..279a51a 100644 (file)
@@ -18,7 +18,9 @@
 #include "playlistmainwindow.h"
 #include "ui_playlistmainwindow.h"
 #include <QPushButton>
+#include <QSettings>
 #include "configdialog.h"
+#include "aboutdialog.h"
 
 
 PlayListMainWindow::PlayListMainWindow(QWidget *parent) :
@@ -30,6 +32,8 @@ PlayListMainWindow::PlayListMainWindow(QWidget *parent) :
     mTimer = new QTimer(this);
     setWindowTitle("Vlc remote");
 
+    QSettings settings;
+    mIp = settings.value("ip").toString();
 }
 
 PlayListMainWindow::~PlayListMainWindow()
index 3f3ef72..d7a65d2 100644 (file)
@@ -37,6 +37,7 @@ protected:
 private:
     Ui::PlayListMainWindow *ui;
     QTimer * mTimer;
+    QString mIp;
 };
 
 #endif // PLAYLISTMAINWINDOW_H
index 8a2cf8a..236f92d 100644 (file)
@@ -31,7 +31,8 @@ FORMS += \
     playermainwindow.ui \
     configdialog.ui \
     aboutdialog.ui \
-    accountdialog.ui
+    accountdialog.ui \
+    accountnewdialog.ui
   
 
 OTHER_FILES += \