add Yannux version with account manager
[vlc-remote] / accountdialog.cpp
1 #include "accountdialog.h"
2 #include "ui_accountdialog.h"
3 #include "newaccountdialog.h"
4 #include <QDebug>
5 #include <QInputDialog>
6 #include <QSettings>
7 #include <QTcpSocket>
8
9 AccountDialog::AccountDialog(QWidget *parent) :
10         QDialog(parent),
11         ui(new Ui::AccountDialog)
12 {
13     ui->setupUi(this);
14
15     connect(ui->addButton,SIGNAL(clicked()),this,SLOT(add()));
16     connect(ui->editButton,SIGNAL(clicked()),this,SLOT(edit()));
17     connect(ui->remButton,SIGNAL(clicked()),this,SLOT(rem()));
18     connect(ui->useButton,SIGNAL(clicked()),this,SLOT(use()));
19     connect(ui->listWidget, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(enableUi()));
20
21     load();
22
23 }
24
25 AccountDialog::~AccountDialog()
26 {
27     delete ui;
28 }
29
30 void AccountDialog::add()
31 {
32
33     NewAccountDialog *dialog = new NewAccountDialog(this);
34     dialog->exec();
35     load();
36 }
37
38 void AccountDialog::load()
39 {
40     ui->editButton->setEnabled(false);
41     ui->remButton->setEnabled(false);
42     ui->useButton->setEnabled(false);
43     ui->listWidget->clear(); // tjr effacer , sinon on rajoute
44
45     QSettings settings;
46     settings.beginGroup("config");
47     QString useKey = settings.value("currentKey").toString();
48     settings.endGroup();
49
50     settings.beginGroup("account");
51     foreach ( QString key, settings.allKeys())
52     {
53         QListWidgetItem * item = new QListWidgetItem;
54
55         // ========> NEED TO USE QFUTUR
56         //        QString hostIp = settings.value(key).toString();
57         //        QTcpSocket * socket = new QTcpSocket(this);
58         //        socket->connectToHost(hostIp, 80);
59         //        if (socket->waitForConnected(1000))
60         //            item->setBackgroundColor(Qt::green);
61         //        else
62         //            item->setBackgroundColor(Qt::red);
63
64
65         item->setText(key);
66         item->setData(Qt::UserRole, settings.value(key));
67         if (useKey == key) {
68             QFont font = item->font();
69             font.setBold(true);
70             item->setFont(font);
71         }
72         ui->listWidget->addItem(item);
73     }
74     settings.endGroup();    
75 }
76
77 void AccountDialog::edit()
78 {
79     QString currentIp = ui->listWidget->currentItem()->data(Qt::UserRole).toString();
80     QString currentKey = ui->listWidget->currentItem()->text();
81
82     NewAccountDialog *dialog = new NewAccountDialog(this);
83     dialog->edit(currentKey, currentIp);
84     dialog->exec();
85
86     load();
87 }
88
89 void AccountDialog::rem()
90 {
91     QString key = ui->listWidget->currentItem()->text();
92
93     QSettings settings;
94     settings.beginGroup("account");
95     settings.remove(key);
96     settings.endGroup();
97
98     load(); // On recharge les compte
99 }
100
101 void AccountDialog::use()
102 {
103     QString currentKey = ui->listWidget->currentItem()->text();
104
105     QSettings settings;
106     settings.beginGroup("config");
107     settings.setValue("currentKey", currentKey);
108     settings.endGroup();
109
110     load();
111 }
112
113 void AccountDialog::enableUi()
114 {
115     ui->editButton->setEnabled(true);
116     ui->remButton->setEnabled(true);
117     ui->useButton->setEnabled(true);
118 }