Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "profiledialog.h"
- #include "ui_profiledialog.h"
- #include "packettypes.h"
- #include <QMessageBox>
- #include <QDebug>
- #include <QSqlQuery>
- #include <QTcpSocket>
- ProfileDialog::ProfileDialog(QWidget *parent, QSqlDatabase *db) :
- QDialog(parent),
- ui(new Ui::ProfileDialog)
- {
- ui->setupUi(this);
- this->db = db;
- socket = NULL;
- this->setFixedSize(this->size());
- this->setWindowFlags(Qt::MSWindowsFixedSizeDialogHint | Qt::WindowCloseButtonHint | Qt::Window);
- this->parent = parent;
- parent->setEnabled(false);
- this->setEnabled(true);
- connect(ui->BCancel, SIGNAL(clicked()), this, SLOT(BCancel_Clicked()));
- connect(ui->BCreateProfile, SIGNAL(clicked()), this, SLOT(BCreateProfile_Clicked()));
- connect(ui->BCreateAccount, SIGNAL(clicked()), this, SLOT(BCreateAccount_Clicked()));
- }
- void ProfileDialog::closeEvent(QCloseEvent *event)
- {
- parent->setEnabled(true);
- emit DialogClosing();
- }
- void ProfileDialog::BCancel_Clicked()
- {
- this->close();
- }
- void ProfileDialog::BCreateAccount_Clicked()
- {
- ui->BCreateAccount->setEnabled(false);
- socket = new QTcpSocket(this);
- connect(socket, SIGNAL(readyRead()), this, SLOT(ReceivedPacket()));
- connect(socket, SIGNAL(error(QAbstractSocket::SocketError)),
- this, SLOT(connectionError(QAbstractSocket::SocketError)));
- QStringList list = ui->LEServerIP->text().split(":");
- if(list.length() != 2)
- {
- ui->BCreateAccount->setEnabled(true);
- QMessageBox::warning(this, "Blad", "IP musi byc w formacie host:port");
- return;
- }
- QString ip = list.at(0);
- int port = list.at(1).toInt();
- socket->connectToHost(QHostAddress::QHostAddress(ip), port);
- QByteArray block;
- QDataStream out(&block, QIODevice::WriteOnly);
- out.setVersion(QDataStream::Qt_4_8);
- out << 0;
- out << P_Register;
- out << ui->LEServerLogin->text();
- out << ui->LEServerPassword->text();
- out.device()->seek(0);
- out << block.size()-sizeof(int);
- socket->write(block);
- }
- void ProfileDialog::ReceivedPacket()
- {
- QDataStream in(socket);
- in.setVersion(QDataStream::Qt_4_8);
- qDebug() << socket->bytesAvailable();
- int PacketID;
- in >> PacketID;
- if(PacketID == P_RegisterResponse)
- {
- int response;
- in >> response;
- qDebug() << "Response: " << response;
- if(response == 1)
- QMessageBox::warning(this, "Zakonczono", "Konto zostalo utworzone.");
- else
- QMessageBox::warning(this, "Blad", "Nie udalo sie utworzyć konta.");
- ui->BCreateAccount->setEnabled(true);
- }
- else
- {
- socket->readAll();
- }
- }
- void ProfileDialog::connectionError(QAbstractSocket::SocketError error)
- {
- //popr: trlumaczenie na polski
- qDebug() << error;
- switch (error) {
- case QAbstractSocket::RemoteHostClosedError:
- break;
- case QAbstractSocket::HostNotFoundError:
- QMessageBox::information(this, tr("KominikatorDaZe"),
- tr("Nie odnaleziono serwera. Prosze sprawdzic "
- "ip oraz port."));
- break;
- case QAbstractSocket::ConnectionRefusedError:
- QMessageBox::information(this, tr("KomunikatorDaZe"),
- tr("Polaczenie zostalo odrzucone przez hosta. "
- "Upewnij sie, ze serwer dziala oraz"
- "sprawdz poprawnosc adresu ip oraz portu "));
- break;
- default:
- QMessageBox::information(this, tr("KominukatorDaZe"),
- tr("Wystapil blad: %1.")
- .arg(socket->errorString()));
- }
- ui->BCreateAccount->setEnabled(true);
- if(socket)
- {
- delete socket;
- socket = NULL;
- }
- }
- void ProfileDialog::BCreateProfile_Clicked()
- {
- int length = ui->LEProfileName->text().length();
- if(length > 30)
- {
- QMessageBox::warning(this, tr("Niepoprawne dane"), tr("Nazwa profilu moze miec max 30 znakow."));
- return;
- }
- else if(length == 0)
- {
- QMessageBox::warning(this, tr("Niepoprawne dane"), tr("Wpisz nazwe profilu."));
- return;
- }
- QSqlQuery query(*db);
- query.prepare("SELECT profilename FROM profile WHERE profilename = :pname");
- query.bindValue(":profilename", ui->LEProfileName->text());
- query.exec();
- if(query.next())
- {
- QMessageBox::warning(this, tr("Blad"), tr("Konto o takiej nazwie juz istnieje."));
- return;
- }
- if(ui->LEProfilePassword->text().length() > 30)
- {
- QMessageBox::warning(this, tr("Niepoprawne dane"), tr("Haslo profilu moze miec max 30 znakow."));
- return;
- }
- length = ui->LEServerLogin->text().length();
- if(length > 30)
- {
- QMessageBox::warning(this, tr("Niepoprawne dane"), tr("Haslo logowania moze miec max 30 znakow."));
- return;
- }
- else if(length == 0)
- {
- QMessageBox::warning(this, tr("Niepoprawne dane"), tr("Wpisz login do serwera."));
- return;
- }
- length = ui->LEServerPassword->text().length();
- if(length > 30)
- {
- QMessageBox::warning(this, tr("Niepoprawne dane"), tr("Haslo logowania moze miec max 30 znakow."));
- return;
- }
- else if(length == 0)
- {
- QMessageBox::warning(this, tr("Niepoprawne dane"), tr("Wpisz haslo logowania."));
- return;
- }
- query.prepare("INSERT INTO profile (login, profilename, lpassword, spassword, server) "
- "VALUES (:login, :profilename, :lpassword, :spassword, :server)");
- query.bindValue(":profilename", ui->LEProfileName->text());
- query.bindValue(":lpassword", b64_enc(ui->LEProfilePassword->text()));
- query.bindValue(":login", ui->LEServerLogin->text());
- query.bindValue(":spassword", b64_enc(ui->LEServerPassword->text()));
- query.bindValue(":server", ui->LEServerIP->text());
- query.exec();
- if(query.numRowsAffected() == 0)
- QMessageBox::warning(this, tr("Blad"), tr("Tworzenie profilu nieudane."));
- else
- QMessageBox::information(this, tr("Informacja"), tr("Profil utworzony."));
- }
- QString ProfileDialog::b64_enc(QString text)
- {
- QByteArray toencode;
- toencode.append(text);
- return toencode.toBase64();
- }
- ProfileDialog::~ProfileDialog()
- {
- if(socket)
- {
- delete socket;
- socket = NULL;
- }
- delete ui;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement