add todo test
[vlc-remote] / accountdialog.cpp
index 79ad4fb..51a360a 100644 (file)
 #include "accountdialog.h"
 #include "ui_accountdialog.h"
-#include "scanipdialog.h"
+#include <QDebug>
+#include <QInputDialog>
+#include <QSettings>
+
 AccountDialog::AccountDialog(QWidget *parent) :
-    QDialog(parent),
-    ui(new Ui::AccountDialog)
+        QDialog(parent),
+        ui(new Ui::AccountDialog)
 {
     ui->setupUi(this);
-    connect(ui->addButton,SIGNAL(clicked()),this,SLOT(addAccount()));
+
+    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
+
 }
 
 AccountDialog::~AccountDialog()
 {
     delete ui;
 }
-
-void AccountDialog::changeEvent(QEvent *e)
+void AccountDialog::add()
 {
-    QDialog::changeEvent(e);
-    switch (e->type()) {
-    case QEvent::LanguageChange:
-        ui->retranslateUi(this);
-        break;
-    default:
-        break;
+    QString ip = QInputDialog::getText(this,"ip?","enter your ip");
+    // On peut checker si c'est une bonne forme d'ip avec QRegExp
+
+    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();
+
+        load(); // On recharge les compte
+
     }
 }
-    void AccountDialog::addAccount()
+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())
     {
+        QListWidgetItem * item = new QListWidgetItem;
+        item->setText(key);
+        item->setData(Qt::UserRole,settings.value(key));
+        ui->listWidget->addItem(item);
 
-ScanIPDialog * dialog = new ScanIPDialog(this);
-dialog->show();
+    }
+    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);
+}