modified: browsemainwindow.cpp
[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 #include <QFuture>
9 #include <QtConcurrentRun>
10 AccountDialog::AccountDialog(QWidget *parent) :
11         QDialog(parent),
12         ui(new Ui::AccountDialog)
13 {
14     ui->setupUi(this);
15
16     connect(ui->addButton,SIGNAL(clicked()),this,SLOT(add()));
17     connect(ui->editButton,SIGNAL(clicked()),this,SLOT(edit()));
18     connect(ui->remButton,SIGNAL(clicked()),this,SLOT(rem()));
19     connect(ui->useButton,SIGNAL(clicked()),this,SLOT(use()));
20     connect(ui->listWidget, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(enableUi()));
21
22     load();
23
24 }
25
26 AccountDialog::~AccountDialog()
27 {
28     delete ui;
29 }
30
31 void AccountDialog::add()
32 {
33
34     NewAccountDialog *dialog = new NewAccountDialog(this);
35     dialog->exec();
36     load();
37 }
38
39 void AccountDialog::load()
40 {
41     ui->editButton->setEnabled(false);
42     ui->remButton->setEnabled(false);
43     ui->useButton->setEnabled(false);
44     ui->listWidget->clear(); // tjr effacer , sinon on rajoute
45
46     QSettings settings;
47     settings.beginGroup("config");
48     QString useKey = settings.value("currentKey").toString();
49     settings.endGroup();
50
51     settings.beginGroup("account");
52     foreach ( QString key, settings.allKeys())
53     {
54         QListWidgetItem * item = new QListWidgetItem;
55
56         item->setText(key);
57         item->setData(Qt::UserRole, settings.value(key));
58         if (useKey == key) {
59             QFont font = item->font();
60             font.setBold(true);
61             item->setFont(font);
62         }
63         ui->listWidget->addItem(item);
64     }
65     settings.endGroup();    
66
67
68
69 }
70
71
72 void AccountDialog::asyncTestConnection()
73 {
74     QSettings settings;
75     settings.beginGroup("account");
76
77     for ( int i=0; i<ui->listWidget->count(); ++i)
78     {
79
80         QListWidgetItem * item = ui->listWidget->item(i);
81         QString key = item->text();
82         QString hostIp = settings.value(key).toString();
83         qDebug()<<hostIp;
84         QTcpSocket * socket = new QTcpSocket(this);
85         socket->connectToHost(hostIp, 80);
86
87         if (socket->waitForConnected(1000))
88             item->setBackgroundColor(Qt::green);
89         else
90             item->setBackgroundColor(Qt::red);
91
92
93     }
94
95     settings.endGroup();
96
97 }
98
99
100 void AccountDialog::edit()
101 {
102     QString currentIp = ui->listWidget->currentItem()->data(Qt::UserRole).toString();
103     QString currentKey = ui->listWidget->currentItem()->text();
104
105     NewAccountDialog *dialog = new NewAccountDialog(this);
106     dialog->edit(currentKey, currentIp);
107     dialog->exec();
108
109     load();
110 }
111
112 void AccountDialog::rem()
113 {
114     QString key = ui->listWidget->currentItem()->text();
115
116     QSettings settings;
117     settings.beginGroup("account");
118     settings.remove(key);
119     settings.endGroup();
120
121     load(); // On recharge les compte
122 }
123
124 void AccountDialog::use()
125 {
126     QString currentKey = ui->listWidget->currentItem()->text();
127
128     QSettings settings;
129     settings.beginGroup("config");
130     settings.setValue("currentKey", currentKey);
131     settings.endGroup();
132
133     load();
134 }
135
136 void AccountDialog::enableUi()
137 {
138     ui->editButton->setEnabled(true);
139     ui->remButton->setEnabled(true);
140     ui->useButton->setEnabled(true);
141 }