#include "accountdialog.h"
#include "ui_accountdialog.h"
+#include "newaccountdialog.h"
#include <QDebug>
#include <QInputDialog>
#include <QSettings>
-
+#include <QTcpSocket>
+#include <QFuture>
+#include <QtConcurrentRun>
AccountDialog::AccountDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::AccountDialog)
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->useButton,SIGNAL(clicked()),this,SLOT(use()));
connect(ui->listWidget, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(enableUi()));
- load(); // On charge les compte
+ load();
}
{
delete ui;
}
+
void AccountDialog::add()
{
- 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
- }
+ NewAccountDialog *dialog = new NewAccountDialog(this);
+ dialog->exec();
+ load();
}
+
void AccountDialog::load()
{
ui->editButton->setEnabled(false);
ui->remButton->setEnabled(false);
+ ui->useButton->setEnabled(false);
ui->listWidget->clear(); // tjr effacer , sinon on rajoute
QSettings settings;
+ settings.beginGroup("config");
+ QString useKey = settings.value("currentKey").toString();
+ settings.endGroup();
+
settings.beginGroup("account");
foreach ( QString key, settings.allKeys())
{
QListWidgetItem * item = new QListWidgetItem;
+
item->setText(key);
- item->setData(Qt::UserRole,settings.value(key));
+ item->setData(Qt::UserRole, settings.value(key));
+ if (useKey == key) {
+ QFont font = item->font();
+ font.setBold(true);
+ item->setFont(font);
+ }
ui->listWidget->addItem(item);
-
}
settings.endGroup();
+
+
+
}
-void AccountDialog::edit()
-{
- QString currentValue = ui->listWidget->currentItem()->data(Qt::UserRole).toString();
- QString currentKey = ui->listWidget->currentItem()->text();
+void AccountDialog::asyncTestConnection()
+{
+ QSettings settings;
+ settings.beginGroup("account");
- QString ip = QInputDialog::getText(this, "ip ?", "enter your ip", QLineEdit::Normal, currentValue);
+ for ( int i=0; i<ui->listWidget->count(); ++i)
+ {
- if (!ip.isEmpty()) {
- QString ipKey = "Label"+ip; // La faudra l'integré dans un widget personnalisé ( entrez le label, entrez l' IP)
+ QListWidgetItem * item = ui->listWidget->item(i);
+ QString key = item->text();
+ QString hostIp = settings.value(key).toString();
+ qDebug()<<hostIp;
+ QTcpSocket * socket = new QTcpSocket(this);
+ socket->connectToHost(hostIp, 80);
- QSettings settings;
- settings.beginGroup("account");
- settings.remove(currentKey);
- settings.setValue(ipKey, ip);
- settings.endGroup();
+ if (socket->waitForConnected(1000))
+ item->setBackgroundColor(Qt::green);
+ else
+ item->setBackgroundColor(Qt::red);
- load();
}
+
+ settings.endGroup();
+
+}
+
+
+void AccountDialog::edit()
+{
+ QString currentIp = ui->listWidget->currentItem()->data(Qt::UserRole).toString();
+ QString currentKey = ui->listWidget->currentItem()->text();
+
+ NewAccountDialog *dialog = new NewAccountDialog(this);
+ dialog->edit(currentKey, currentIp);
+ dialog->exec();
+
+ load();
}
void AccountDialog::rem()
load(); // On recharge les compte
}
+void AccountDialog::use()
+{
+ QString currentKey = ui->listWidget->currentItem()->text();
+
+ QSettings settings;
+ settings.beginGroup("config");
+ settings.setValue("currentKey", currentKey);
+ settings.endGroup();
+
+ load();
+}
+
void AccountDialog::enableUi()
{
ui->editButton->setEnabled(true);
ui->remButton->setEnabled(true);
+ ui->useButton->setEnabled(true);
}