1 #include "accountdialog.h"
2 #include "ui_accountdialog.h"
3 #include "newaccountdialog.h"
5 #include <QInputDialog>
9 #include <QtConcurrentRun>
10 AccountDialog::AccountDialog(QWidget *parent) :
12 ui(new Ui::AccountDialog)
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()));
26 AccountDialog::~AccountDialog()
31 void AccountDialog::add()
34 NewAccountDialog *dialog = new NewAccountDialog(this);
38 QString AccountDialog::currentIp()
42 QString useKey = settings.value("config/currentKey").toString();
44 if ( !useKey.isEmpty())
45 useIp = settings.value("account/"+useKey).toString();
47 else return QString();
52 void AccountDialog::load()
54 ui->editButton->setEnabled(false);
55 ui->remButton->setEnabled(false);
56 ui->useButton->setEnabled(false);
57 ui->listWidget->clear(); // tjr effacer , sinon on rajoute
61 QString useKey = settings.value("config/currentKey").toString();
64 settings.beginGroup("account");
65 foreach ( QString key, settings.allKeys())
67 QListWidgetItem * item = new QListWidgetItem;
70 item->setData(Qt::UserRole, settings.value(key));
72 QFont font = item->font();
76 ui->listWidget->addItem(item);
85 void AccountDialog::asyncTestConnection()
88 settings.beginGroup("account");
90 for ( int i=0; i<ui->listWidget->count(); ++i)
93 QListWidgetItem * item = ui->listWidget->item(i);
94 QString key = item->text();
95 QString hostIp = settings.value(key).toString();
97 QTcpSocket * socket = new QTcpSocket(this);
98 socket->connectToHost(hostIp, 80);
100 if (socket->waitForConnected(1000))
101 item->setBackgroundColor(Qt::green);
103 item->setBackgroundColor(Qt::red);
113 void AccountDialog::edit()
115 QString currentIp = ui->listWidget->currentItem()->data(Qt::UserRole).toString();
116 QString currentKey = ui->listWidget->currentItem()->text();
118 NewAccountDialog *dialog = new NewAccountDialog(this);
119 dialog->edit(currentKey, currentIp);
125 void AccountDialog::rem()
127 QString key = ui->listWidget->currentItem()->text();
130 settings.beginGroup("account");
131 settings.remove(key);
134 load(); // On recharge les compte
137 void AccountDialog::use()
139 QString currentKey = ui->listWidget->currentItem()->text();
141 settings.setValue("config/currentKey", currentKey);
145 void AccountDialog::enableUi()
147 ui->editButton->setEnabled(true);
148 ui->remButton->setEnabled(true);
149 ui->useButton->setEnabled(true);