Xinqi Bao's Git

first commit, implemented game wordscapes
[CheaterHub.git] / client / CheaterHub / mainwindow.cpp
1 #include "mainwindow.h"
2 #include "setting.h"
3 #include "ui_mainwindow.h"
4 #include <QDebug>
5 #include <thread>
6 #include <QSettings>
7 #include <QAction>
8 #include <QDialog>
9
10 MainWindow::MainWindow(Cfg& cfg, QWidget *parent)
11 : QMainWindow(parent)
12 , cfg(cfg)
13 , ui(new Ui::MainWindow)
14 {
15 ui->setupUi(this);
16 socket = new QTcpSocket();
17
18 //Disable tab switching for several controls
19 ui->tabWidget->setFocusPolicy(Qt::NoFocus);
20 ui->btn_socket->setFocusPolicy(Qt::NoFocus);
21 ui->list_result->setFocusPolicy(Qt::NoFocus);
22
23 connect(ui->actionConfig, &QAction::triggered, this, [=]()
24 {
25 Setting setting_form(this->cfg);
26 setting_form.exec();
27 });
28 connect(ui->lineEdit_given, &QLineEdit::returnPressed, this, &MainWindow::select_lineEdit_search);
29 connect(ui->lineEdit_search, &QLineEdit::returnPressed, ui->btn_socket, &QPushButton::click);
30 connect(socket, &QTcpSocket::readyRead, this, &MainWindow::on_socket_msg_receive);
31 }
32
33 MainWindow::~MainWindow()
34 {
35 delete ui;
36 delete this->socket;
37 }
38
39 void MainWindow::on_btn_socket_clicked()
40 {
41 socket->connectToHost(cfg.wordscapes_ip, cfg.wordscapes_port);
42 QString msg(ui->lineEdit_given->text() + ";" + ui->lineEdit_search->text());
43 socket->write(msg.toUtf8());
44 qDebug() << "Msg send: " << msg;
45
46 ui->list_result->clear();
47 select_lineEdit_search();
48 }
49
50 void MainWindow::on_socket_msg_receive()
51 {
52 QByteArray buffer = socket->readAll();
53 ui->list_result->addItems(QString(buffer).split(';'));
54 qDebug() << buffer;
55 }
56
57 void MainWindow::select_lineEdit_search()
58 {
59 ui->lineEdit_search->setFocus();
60 ui->lineEdit_search->selectAll();
61 }