ref: add entry widget and list of changes

This commit is contained in:
semenov
2024-12-12 12:56:20 +03:00
parent 7f4205ea09
commit 31e42a97e4
34 changed files with 2634 additions and 785 deletions

View File

@@ -1,7 +1,6 @@
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "updatenotifywidget.h"
#include "updatenotifywidget.h"
#include <QFontDatabase>
#include <QMessageBox>
@@ -20,35 +19,25 @@ MainWindow::MainWindow(QWidget *parent)
painting();
}
void MainWindow::bindWidgets(UpdateNotifyWidget *widget,CommonButtonGroupWidget *commonButtonGroup,
InstructorButtonGroupWidget *instructorButtonGroup)
{
updateWidget = widget;
this->commonButtonGroupWidget = commonButtonGroup;
this->instructorButtonGroupWidget = instructorButtonGroup;
}
void MainWindow::initialize()
{
createObjects();
updateTextWidget->initialize();
entryWidget->initialize(this);
commonButtonGroupWidget->initialize(externalExecuter,sendSystem,client);
commonButtonGroupWidget->show();
instructorButtonGroupWidget->initialize(this);
ui->settingsWidget->hide();
ui->notificationLabel->hide();
ui->offlineWidget->hide();
ui->offlineStartButton->show();
ui->offlineStartButton->setEnabled(false);
ui->offlineStartButton->setGeometry(540,549,250,40);
ui->displayGroupWidget->show();
ui->autostartCheckBox->hide();
ui->loginWidget->hide();
ui->updateWidget->hide();
bindConnection();
emit sigCalculateHash();
@@ -71,10 +60,15 @@ void MainWindow::createObjects()
updateWidget = new UpdateNotifyWidget;
commonButtonGroupWidget = new CommonButtonGroupWidget;
instructorButtonGroupWidget = new InstructorButtonGroupWidget;
updateTextWidget = new UpdateWidget;
entryWidget = new EntryWidget;
ui->changButtonGroup->addWidget(commonButtonGroupWidget);
ui->changButtonGroup->addWidget(instructorButtonGroupWidget);
ui->interactiveGroup->addWidget(entryWidget);
ui->interactiveGroup->addWidget(updateTextWidget);
connectionThread = new QThread;
animationThread = new QThread;
@@ -206,7 +200,7 @@ void MainWindow::checkLoginResult(ServerAuthorization *serverAuth)
}
dataParser->createAuthData(serverAuth);
ui->loginWidget->hide();
entryWidget->loginIsActive(false);
ui->LanguageWidget->hide();
ui->settingsButton->hide();
ui->offlineStartButton->show();
@@ -260,8 +254,7 @@ void MainWindow::loadStaticData()
{
ServerSettings *currentSettings = dataParser->getServerSettings();
ui->serverInputField->setText(currentSettings->Address);
ui->portInputField->setText(currentSettings->Port);
entryWidget->fillSettings(currentSettings);
ui->languageComboBox->setCurrentText(currentSettings->Language);
ui->autostartCheckBox->setChecked(currentSettings->isAutoStart);
@@ -273,12 +266,11 @@ void MainWindow::showConnectionEmpty()
QPalette palette = ui->notificationLabel->palette();
palette.setColor(ui->notificationLabel->foregroundRole(),Qt::red);
ui->notificationLabel->setText(tr("Соединение отсутсвует"));
ui->offlineWidget->show();
entryWidget->connectionEmptyState();
updateTextWidget->hide();
ui->offlineStartButton->show();
ui->offlineStartButton->setGeometry(280,340,250,40);
ui->settingsButton->show();
ui->loginWidget->hide();
ui->updateWidget->hide();
instructorButtonGroupWidget->hide();
}
@@ -293,7 +285,7 @@ void MainWindow::slotConnectionState(bool flag)
{
palette.setColor(ui->notificationLabel->foregroundRole(),Qt::green);
ui->notificationLabel->setText(tr("Соединение установлено"));
ui->loginWidget->show();
entryWidget->loginIsActive(true);
ui->offlineStartButton->show();
ui->offlineStartButton->setGeometry(540,549,250,40);
@@ -337,7 +329,7 @@ void MainWindow::callUpdateList()
}
void MainWindow::on_loginButton_clicked()
void MainWindow::login()
{
if (!client->getIsConnected())
{
@@ -345,44 +337,35 @@ void MainWindow::on_loginButton_clicked()
return;
}
QString username = ui->loginInputField->text();
QString password = ui->passwordInputField->text();
ClientAutorization *autorization = new ClientAutorization;
autorization->Login = username;
autorization->Password = password;
entryWidget->loginIsActive(false);
ClientAutorization *autorization = entryWidget->getAuthData();
dataParser->createAuthMessage(autorization);
emit sigSendAutorization();
}
void MainWindow::on_saveServerButton_clicked()
void MainWindow::saveServerSettingsWithConnect()
{
startLoadingAnim();
ui->settingsWidget->hide();
entryWidget->settingsWidgetIsActive(false);
if(client->getIsConnected())
{
ui->loginWidget->show();
entryWidget->loginIsActive(true);
ui->offlineStartButton->show();
stopLoadingMovie();
return;
}
//TODO: не заполняется 2 поля (автостарт и язык)
ServerSettings *settings = entryWidget->getServerSettings();
dataParser->createServerSettings(settings);
QString server = ui->serverInputField->text();
QString port = ui->portInputField->text();
dataParser->createServerSettings(server,port);
emit sigSetConnect(dataParser->getServerSettings(),connectionThread);
emit sigSetConnect(settings,connectionThread);
}
void MainWindow::on_settingsButton_clicked()
{
ui->settingsWidget->show();
ui->loginWidget->hide();
ui->offlineWidget->hide();
entryWidget->settingsState();
ui->offlineStartButton->hide();
}
@@ -400,7 +383,7 @@ void MainWindow::loadToServer()
commonButtonGroupWidget->showProgressBar(true);
instructorButtonGroupWidget->hide();
ui->offlineStartButton->setEnabled(false);
ui->updateWidget->hide();
updateTextWidget->hide();
emit sigUpdateFilesOnServer(hashComparer->getFilesForUpdate());
}
@@ -412,7 +395,7 @@ void MainWindow::undoCurrentChanges()
commonButtonGroupWidget->showProgressBar(true);
ui->offlineStartButton->setEnabled(false);
instructorButtonGroupWidget->hide();
ui->updateWidget->hide();
updateTextWidget->hide();
startLoadingAnim();
@@ -459,18 +442,8 @@ void MainWindow::checkUpdate()
void MainWindow::showUpdateInfo()
{
stopLoadingMovie();
QString text = tr("Есть изменения в локальных файлах <A HREF=\"LINK\" style=color:rgb(45,84,130)>(список)</A> ");
QString list = tr("Возможные действия:\n"
" 1. Выгрузить изменения на сервер\n"
" 2. Отменить изменения с загрузкой версии с сервера \n"
" 3. Запустить без отправки файлов, но с текущими изменениями");
ui->updateListGuideLabel->setText(text);
ui->updateActionListLabel->setText(list);
ui->updateWidget->show();
updateTextWidget->showWithFill();
entryWidget->hide();
commonButtonGroupWidget->hide();
instructorButtonGroupWidget->show();
ui->offlineStartButton->setGeometry(540,549,250,40);
@@ -500,12 +473,10 @@ void MainWindow::startUnityClient()
void MainWindow::keyPressEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return)
{
if (ui->loginInputField->text().length() <= 0 || ui->passwordInputField->text() <= 0) return;
on_loginButton_clicked();
if (entryWidget->isLoginFieldsFill()) return;
login();
}
}