51a360a97e67149e7f5457991306379051fd9ac3
[vlc-remote] / accountdialog.cpp
1 #include "accountdialog.h"
2 #include "ui_accountdialog.h"
3 #include <QDebug>
4 #include <QInputDialog>
5 #include <QSettings>
6
7 AccountDialog::AccountDialog(QWidget *parent) :
8         QDialog(parent),
9         ui(new Ui::AccountDialog)
10 {
11     ui->setupUi(this);
12
13     connect(ui->addButton,SIGNAL(clicked()),this,SLOT(add()));
14     connect(ui->editButton,SIGNAL(clicked()),this,SLOT(edit()));
15     connect(ui->remButton,SIGNAL(clicked()),this,SLOT(rem()));
16     connect(ui->listWidget, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(enableUi()));
17
18     load();  // On charge les compte
19
20 }
21
22 AccountDialog::~AccountDialog()
23 {
24     delete ui;
25 }
26 void AccountDialog::add()
27 {
28     QString ip = QInputDialog::getText(this,"ip?","enter your ip");
29     // On peut checker si c'est une bonne forme d'ip avec QRegExp
30
31     if (!ip.isEmpty()) {
32         QString ipKey = "Label"+ip;  // La faudra l'integré dans un widget personnalisé ( entrez le label, entrez l' IP)
33
34         QSettings settings;
35         settings.beginGroup("account");
36         settings.setValue(ipKey, ip);
37         settings.endGroup();
38
39         load(); // On recharge les compte
40
41     }
42 }
43 void AccountDialog::load()
44 {
45     ui->editButton->setEnabled(false);
46     ui->remButton->setEnabled(false);
47     ui->listWidget->clear(); // tjr effacer , sinon on rajoute
48
49     QSettings settings;
50     settings.beginGroup("account");
51     foreach ( QString key, settings.allKeys())
52     {
53         QListWidgetItem * item = new QListWidgetItem;
54         item->setText(key);
55         item->setData(Qt::UserRole,settings.value(key));
56         ui->listWidget->addItem(item);
57
58     }
59     settings.endGroup();    
60 }
61
62 void AccountDialog::edit()
63 {
64     QString currentValue = ui->listWidget->currentItem()->data(Qt::UserRole).toString();
65     QString currentKey = ui->listWidget->currentItem()->text();
66
67
68     QString ip = QInputDialog::getText(this, "ip ?", "enter your ip", QLineEdit::Normal, currentValue);
69
70     if (!ip.isEmpty()) {
71         QString ipKey = "Label"+ip;  // La faudra l'integré dans un widget personnalisé ( entrez le label, entrez l' IP)
72
73         QSettings settings;
74         settings.beginGroup("account");
75         settings.remove(currentKey);
76         settings.setValue(ipKey, ip);
77         settings.endGroup();
78
79         load();
80
81     }
82 }
83
84 void AccountDialog::rem()
85 {
86     QString key = ui->listWidget->currentItem()->text();
87
88     QSettings settings;
89     settings.beginGroup("account");
90     settings.remove(key);
91     settings.endGroup();
92
93     load(); // On recharge les compte
94 }
95
96 void AccountDialog::enableUi()
97 {
98     ui->editButton->setEnabled(true);
99     ui->remButton->setEnabled(true);
100 }