|
@@ -74,33 +74,49 @@ MainWindow::MainWindow( double scale_factor, QMainWindow* parent) :
|
|
connect(std::addressof(LotroManager::getInstance()),
|
|
connect(std::addressof(LotroManager::getInstance()),
|
|
SIGNAL(dat_operation_finished(QString, QString, QString, QString)),
|
|
SIGNAL(dat_operation_finished(QString, QString, QString, QString)),
|
|
this,
|
|
this,
|
|
- SLOT(on_lotro_manager_finished(QString, QString, QString, QString))
|
|
|
|
- );
|
|
|
|
|
|
+ SLOT(on_lotro_manager_finished(QString, QString, QString, QString)));
|
|
|
|
|
|
connect(std::addressof(LotroManager::getInstance()),
|
|
connect(std::addressof(LotroManager::getInstance()),
|
|
SIGNAL(dat_operation_started(QString, QString, QString)),
|
|
SIGNAL(dat_operation_started(QString, QString, QString)),
|
|
this,
|
|
this,
|
|
- SLOT(on_lotro_manager_started(QString, QString, QString))
|
|
|
|
- );
|
|
|
|
|
|
+ SLOT(on_lotro_manager_started(QString, QString, QString)));
|
|
|
|
|
|
|
|
|
|
connect(std::addressof(LotroManager::getInstance()),
|
|
connect(std::addressof(LotroManager::getInstance()),
|
|
SIGNAL(changePatchStatus(QString, QString)),
|
|
SIGNAL(changePatchStatus(QString, QString)),
|
|
this,
|
|
this,
|
|
- SLOT(on_change_patch_status(QString, QString))
|
|
|
|
- );
|
|
|
|
|
|
+ SLOT(on_change_patch_status(QString, QString)));
|
|
|
|
|
|
connect(std::addressof(LotroManager::getInstance()),
|
|
connect(std::addressof(LotroManager::getInstance()),
|
|
SIGNAL(changeHint(QString, QString)),
|
|
SIGNAL(changeHint(QString, QString)),
|
|
this,
|
|
this,
|
|
- SLOT(on_change_hint(QString, QString))
|
|
|
|
- );
|
|
|
|
|
|
+ SLOT(on_change_hint(QString, QString)));
|
|
|
|
|
|
connect(app->network,
|
|
connect(app->network,
|
|
SIGNAL(changePatchStatus(QString, QString)),
|
|
SIGNAL(changePatchStatus(QString, QString)),
|
|
this,
|
|
this,
|
|
- SLOT(on_change_patch_status(QString, QString))
|
|
|
|
- );
|
|
|
|
|
|
+ SLOT(on_change_patch_status(QString, QString)));
|
|
|
|
+
|
|
|
|
+ connect(app->network,
|
|
|
|
+ SIGNAL(changeHint(QString,QString)),
|
|
|
|
+ this,
|
|
|
|
+ SLOT(on_change_hint(QString,QString)));
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ connect(app->downloader,
|
|
|
|
+ SIGNAL(changePatchStatus(QString, QString)),
|
|
|
|
+ this,
|
|
|
|
+ SLOT(on_change_patch_status(QString, QString)));
|
|
|
|
+
|
|
|
|
+ connect(app->downloader,
|
|
|
|
+ SIGNAL(changeHint(QString,QString)),
|
|
|
|
+ this,
|
|
|
|
+ SLOT(on_change_hint(QString,QString)));
|
|
|
|
+
|
|
|
|
+ connect(app->downloader,
|
|
|
|
+ SIGNAL(allDownloadsFinished(QStringList)),
|
|
|
|
+ this,
|
|
|
|
+ SLOT(on_patches_updated(QStringList)));
|
|
|
|
|
|
app->helper->loadNews();
|
|
app->helper->loadNews();
|
|
app->network->getFootMessage();
|
|
app->network->getFootMessage();
|
|
@@ -153,6 +169,13 @@ void MainWindow::on_lotro_manager_finished(QString command, QString args, QStrin
|
|
app->helper->setState("free");
|
|
app->helper->setState("free");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+void MainWindow::on_patches_updated(QStringList patches) {
|
|
|
|
+ App* app = &App::getInstance();
|
|
|
|
+ if (app->downloader->getDownloadedCount() == 0)
|
|
|
|
+ return;
|
|
|
|
+ LotroManager::getInstance().execute("ApplyPatchList", QString(patches.join('|')), "");
|
|
|
|
+}
|
|
|
|
+
|
|
void MainWindow::on_change_patch_status(QString patch_name, QString new_status) {
|
|
void MainWindow::on_change_patch_status(QString patch_name, QString new_status) {
|
|
QLabel* obj = ui->mainbox->findChild<QLabel*>(patch_name + "Status");
|
|
QLabel* obj = ui->mainbox->findChild<QLabel*>(patch_name + "Status");
|
|
if (obj != nullptr){
|
|
if (obj != nullptr){
|
|
@@ -170,7 +193,7 @@ void MainWindow::PostDatFileCheckTransactions(int check_result) {
|
|
ui->exthintLabel->setText("Успешно!");
|
|
ui->exthintLabel->setText("Успешно!");
|
|
|
|
|
|
App *app = &App::getInstance();
|
|
App *app = &App::getInstance();
|
|
- app->helper->setState("free");
|
|
|
|
|
|
+ //app->helper->setState("free");
|
|
|
|
|
|
if (check_result == 1) {
|
|
if (check_result == 1) {
|
|
app->ready = false;
|
|
app->ready = false;
|
|
@@ -193,7 +216,7 @@ void MainWindow::PostDatFileCheckTransactions(int check_result) {
|
|
}
|
|
}
|
|
|
|
|
|
// Если это первый запуск то показываем мастер
|
|
// Если это первый запуск то показываем мастер
|
|
- if(app->config->getValue("Local", "runfirst") == "-1"){
|
|
|
|
|
|
+ if(app->config->getValue("Local", "runfirst") == "-1") {
|
|
qInfo("%s:%i: %s", __FILE__, __LINE__, "Показываем мастер начальных настроек.");
|
|
qInfo("%s:%i: %s", __FILE__, __LINE__, "Показываем мастер начальных настроек.");
|
|
app->helper->setState("runfirst");
|
|
app->helper->setState("runfirst");
|
|
} else {
|
|
} else {
|
|
@@ -204,7 +227,7 @@ void MainWindow::PostDatFileCheckTransactions(int check_result) {
|
|
|
|
|
|
|
|
|
|
// Если приготовления выполнены загружаем патчи
|
|
// Если приготовления выполнены загружаем патчи
|
|
- if(app->state == "free" && app->ready == true){
|
|
|
|
|
|
+ if(app->state == "free" && app->ready == true) {
|
|
app->logSectionStart("Загрузка патчей");
|
|
app->logSectionStart("Загрузка патчей");
|
|
app->network->UpdatePatches();
|
|
app->network->UpdatePatches();
|
|
qInfo("%s:%i: %s", __FILE__, __LINE__, "Выполнено.");
|
|
qInfo("%s:%i: %s", __FILE__, __LINE__, "Выполнено.");
|
|
@@ -241,19 +264,28 @@ void MainWindow::mouseMoveEvent( QMouseEvent* e ) {
|
|
}
|
|
}
|
|
|
|
|
|
void MainWindow::mousePressEvent( QMouseEvent* e ) {
|
|
void MainWindow::mousePressEvent( QMouseEvent* e ) {
|
|
- if( e->button() == Qt::LeftButton ) {
|
|
|
|
|
|
+ QPoint pt=mapFromGlobal(QCursor::pos());
|
|
|
|
+ QWidget* child=childAt(pt);
|
|
|
|
+
|
|
|
|
+ QString cname = child->metaObject()->className();
|
|
|
|
+ if(e->button() == Qt::LeftButton || (cname != "QPushButton" && cname != "QComboBox" && cname != "QLabel")) {
|
|
dx = e->x();
|
|
dx = e->x();
|
|
dy = e->y();
|
|
dy = e->y();
|
|
- setCursor( Qt::OpenHandCursor );
|
|
|
|
|
|
+ setCursor(Qt::OpenHandCursor);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
void MainWindow::mouseReleaseEvent( QMouseEvent* e ) {
|
|
void MainWindow::mouseReleaseEvent( QMouseEvent* e ) {
|
|
- if( e->button() == Qt::LeftButton ) {
|
|
|
|
- setCursor( Qt::ArrowCursor );
|
|
|
|
|
|
+ QPoint pt=mapFromGlobal(QCursor::pos());
|
|
|
|
+ QWidget* child=childAt(pt);
|
|
|
|
+
|
|
|
|
+ QString cname = child->metaObject()->className();
|
|
|
|
+ if(e->button() == Qt::LeftButton || (cname != "QPushButton" && cname != "QComboBox" && cname != "QLabel")) {
|
|
dx = e->x();
|
|
dx = e->x();
|
|
dy = e->y();
|
|
dy = e->y();
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ setCursor( Qt::ArrowCursor);
|
|
}
|
|
}
|
|
|
|
|
|
void MainWindow::minimize() {
|
|
void MainWindow::minimize() {
|
|
@@ -299,7 +331,10 @@ void MainWindow::on_mainButton_clicked(){
|
|
App *app = &App::getInstance();
|
|
App *app = &App::getInstance();
|
|
app->helper->checkTab("mainbox");
|
|
app->helper->checkTab("mainbox");
|
|
app->window->ui->titleLabel->setText("Патчи");
|
|
app->window->ui->titleLabel->setText("Патчи");
|
|
- if (app->state != "busy") app->network->UpdatePatches();
|
|
|
|
|
|
+
|
|
|
|
+ if (app->state != "busy") {
|
|
|
|
+ QtConcurrent::run(app->network, &app->network->UpdatePatches);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
void MainWindow::on_optButton_clicked(){
|
|
void MainWindow::on_optButton_clicked(){
|
|
@@ -444,26 +479,43 @@ void MainWindow::saveSkin(){
|
|
void MainWindow::on_checkFonts_stateChanged(int arg1){
|
|
void MainWindow::on_checkFonts_stateChanged(int arg1){
|
|
App *app = &App::getInstance();
|
|
App *app = &App::getInstance();
|
|
app->config->setValue("Editor", "fonts", arg1 ? "true" : "false");
|
|
app->config->setValue("Editor", "fonts", arg1 ? "true" : "false");
|
|
|
|
+ if (!arg1) {
|
|
|
|
+ app->downloader->abortDownload("fonts");
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
void MainWindow::on_checkTexts_stateChanged(int arg1){
|
|
void MainWindow::on_checkTexts_stateChanged(int arg1){
|
|
App *app = &App::getInstance();
|
|
App *app = &App::getInstance();
|
|
- app->config->setValue("Editor", "texts", arg1 ? "true" : "false");;
|
|
|
|
|
|
+ app->config->setValue("Editor", "texts", arg1 ? "true" : "false");
|
|
|
|
+ if (!arg1) {
|
|
|
|
+ app->downloader->abortDownload("texts");
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
void MainWindow::on_checkSounds_stateChanged(int arg1){
|
|
void MainWindow::on_checkSounds_stateChanged(int arg1){
|
|
App *app = &App::getInstance();
|
|
App *app = &App::getInstance();
|
|
app->config->setValue("Editor", "sounds", arg1 ? "true" : "false");
|
|
app->config->setValue("Editor", "sounds", arg1 ? "true" : "false");
|
|
|
|
+ if (!arg1) {
|
|
|
|
+ app->downloader->abortDownload("sounds");
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
void MainWindow::on_checkMaps_stateChanged(int arg1){
|
|
void MainWindow::on_checkMaps_stateChanged(int arg1){
|
|
App *app = &App::getInstance();
|
|
App *app = &App::getInstance();
|
|
app->config->setValue("Editor", "images", arg1 ? "true" : "false");
|
|
app->config->setValue("Editor", "images", arg1 ? "true" : "false");
|
|
|
|
+ app->config->setValue("Editor", "textures", arg1 ? "true" : "false");
|
|
|
|
+ if (!arg1) {
|
|
|
|
+ app->downloader->abortDownload("images");
|
|
|
|
+ app->downloader->abortDownload("textures");
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
void MainWindow::on_checkScreens_stateChanged(int arg1){
|
|
void MainWindow::on_checkScreens_stateChanged(int arg1){
|
|
App *app = &App::getInstance();
|
|
App *app = &App::getInstance();
|
|
- app->config->setValue("Editor", "screens", arg1 ? "true" : "false");
|
|
|
|
|
|
+ app->config->setValue("Editor", "loadscreens", arg1 ? "true" : "false");
|
|
|
|
+ if (!arg1) {
|
|
|
|
+ app->downloader->abortDownload("loadscreens");
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
void MainWindow::on_checkVideos_stateChanged(int arg1){
|
|
void MainWindow::on_checkVideos_stateChanged(int arg1){
|
|
@@ -510,9 +562,9 @@ void MainWindow::on_okButton_clicked(){
|
|
this->ui->dialogbox->hide();
|
|
this->ui->dialogbox->hide();
|
|
}
|
|
}
|
|
|
|
|
|
- if(command == "gamefind"){
|
|
|
|
|
|
+ if(command == "gamefind") {
|
|
QStringList folders = app->config->getLotroPath();
|
|
QStringList folders = app->config->getLotroPath();
|
|
- if(folders.count() > 1){
|
|
|
|
|
|
+ if(folders.count() > 1) {
|
|
QString text = "Результаты поиска";
|
|
QString text = "Результаты поиска";
|
|
QString info = "Найдены следующие папки в которых установлена игра:<br/><br/><br/><br/><br/>Выберите нужную папку и нажмите «Далее»<br/>";
|
|
QString info = "Найдены следующие папки в которых установлена игра:<br/><br/><br/><br/><br/>Выберите нужную папку и нажмите «Далее»<br/>";
|
|
app->helper->myDialogBox(text, info, "Далее", "Отмена", "gandalf.png", "writefolder", "", 530, 200, true, false);
|
|
app->helper->myDialogBox(text, info, "Далее", "Отмена", "gandalf.png", "writefolder", "", 530, 200, true, false);
|
|
@@ -522,7 +574,6 @@ void MainWindow::on_okButton_clicked(){
|
|
|
|
|
|
foreach(QString f, folders) new QListWidgetItem(f, app->window->ui->dialogList);
|
|
foreach(QString f, folders) new QListWidgetItem(f, app->window->ui->dialogList);
|
|
app->window->ui->dialogList->show();
|
|
app->window->ui->dialogList->show();
|
|
-
|
|
|
|
} else {
|
|
} else {
|
|
if(folders.count() == 1){
|
|
if(folders.count() == 1){
|
|
app->window->ui->lotropathLabel->setText(folders.first());
|
|
app->window->ui->lotropathLabel->setText(folders.first());
|
|
@@ -567,13 +618,12 @@ void MainWindow::on_okButton_clicked(){
|
|
if(command == "gotooptions"){
|
|
if(command == "gotooptions"){
|
|
app->helper->checkTab("optbox");
|
|
app->helper->checkTab("optbox");
|
|
app->config->setValue("Local", "runfirst", "1");
|
|
app->config->setValue("Local", "runfirst", "1");
|
|
- app->helper->setState("free");
|
|
|
|
}
|
|
}
|
|
|
|
|
|
if(command == "applypaths"){
|
|
if(command == "applypaths"){
|
|
app->ready = true;
|
|
app->ready = true;
|
|
app->config->deleteSection("Applied");
|
|
app->config->deleteSection("Applied");
|
|
- app->network->UpdatePatches();
|
|
|
|
|
|
+ LotroManager::getInstance().execute("ApplyGlobal", "", "");
|
|
app->helper->checkTab("mainbox");
|
|
app->helper->checkTab("mainbox");
|
|
}
|
|
}
|
|
|
|
|