diff --git a/launcher/CMakeLists.txt b/launcher/CMakeLists.txt index 387489db9..8a77fc06d 100644 --- a/launcher/CMakeLists.txt +++ b/launcher/CMakeLists.txt @@ -1,5 +1,6 @@ set(launcher_SRCS StdInc.cpp + aboutProject/aboutproject_moc.cpp modManager/cdownloadmanager_moc.cpp modManager/cmodlist.cpp modManager/cmodlistmodel_moc.cpp @@ -21,6 +22,7 @@ set(launcher_SRCS set(launcher_HEADERS StdInc.h + aboutProject/aboutproject_moc.h modManager/cdownloadmanager_moc.h modManager/cmodlist.h modManager/cmodlistmodel_moc.h @@ -41,6 +43,7 @@ set(launcher_HEADERS ) set(launcher_FORMS + aboutProject/aboutproject_moc.ui modManager/cmodlistview_moc.ui modManager/imageviewer_moc.ui settingsView/csettingsview_moc.ui diff --git a/launcher/aboutProject/aboutproject_moc.cpp b/launcher/aboutProject/aboutproject_moc.cpp new file mode 100644 index 000000000..f11557e4a --- /dev/null +++ b/launcher/aboutProject/aboutproject_moc.cpp @@ -0,0 +1,64 @@ +/* + * aboutproject_moc.cpp, part of VCMI engine + * + * Authors: listed in file AUTHORS in main folder + * + * License: GNU General Public License v2.0 or later + * Full text of license available in license.txt file, in main folder + * + */ +#include "StdInc.h" +#include "aboutproject_moc.h" +#include "ui_aboutproject_moc.h" + +#include "../updatedialog_moc.h" + +#include "../../lib/GameConstants.h" +#include "../../lib/VCMIDirs.h" + +AboutProjectView::AboutProjectView(QWidget * parent) + : QWidget(parent) + , ui(new Ui::AboutProjectView) +{ + ui->setupUi(this); + + ui->lineEditUserDataDir->setText(pathToQString(VCMIDirs::get().userDataPath())); + ui->lineEditGameDir->setText(pathToQString(VCMIDirs::get().binaryPath())); + ui->lineEditTempDir->setText(pathToQString(VCMIDirs::get().userLogsPath())); + ui->lineEditBuildVersion->setText(QString::fromStdString(GameConstants::VCMI_VERSION)); +} + +void AboutProjectView::on_updatesButton_clicked() +{ + UpdateDialog::showUpdateDialog(true); +} + +void AboutProjectView::on_openGameDataDir_clicked() +{ + QDesktopServices::openUrl(QUrl::fromLocalFile(QFileInfo(ui->lineEditGameDir->text()).absoluteFilePath())); +} + +void AboutProjectView::on_openUserDataDir_clicked() +{ + QDesktopServices::openUrl(QUrl::fromLocalFile(QFileInfo(ui->lineEditUserDataDir->text()).absoluteFilePath())); +} + +void AboutProjectView::on_openTempDir_clicked() +{ + QDesktopServices::openUrl(QUrl::fromLocalFile(QFileInfo(ui->lineEditTempDir->text()).absoluteFilePath())); +} + +void AboutProjectView::on_pushButtonDiscord_clicked() +{ + QDesktopServices::openUrl(QUrl("https://discord.gg/chBT42V")); +} + +void AboutProjectView::on_pushButtonSlack_clicked() +{ + QDesktopServices::openUrl(QUrl("https://slack.vcmi.eu/")); +} + +void AboutProjectView::on_pushButtonGithub_clicked() +{ + QDesktopServices::openUrl(QUrl("https://github.com/vcmi/vcmi")); +} diff --git a/launcher/aboutProject/aboutproject_moc.h b/launcher/aboutProject/aboutproject_moc.h new file mode 100644 index 000000000..8dc6a51e6 --- /dev/null +++ b/launcher/aboutProject/aboutproject_moc.h @@ -0,0 +1,49 @@ +/* + * aboutproject_moc.h, part of VCMI engine + * + * Authors: listed in file AUTHORS in main folder + * + * License: GNU General Public License v2.0 or later + * Full text of license available in license.txt file, in main folder + * + */ +#pragma once +#include "../StdInc.h" + +namespace Ui +{ +class AboutProjectView; +} + +class CModListView; + +class AboutProjectView : public QWidget +{ + Q_OBJECT + +public: + explicit AboutProjectView(QWidget * parent = 0); + +public slots: + +private slots: + + + void on_updatesButton_clicked(); + + void on_openGameDataDir_clicked(); + + void on_openUserDataDir_clicked(); + + void on_openTempDir_clicked(); + + void on_pushButtonDiscord_clicked(); + + void on_pushButtonSlack_clicked(); + + void on_pushButtonGithub_clicked(); + +private: + Ui::AboutProjectView * ui; + +}; diff --git a/launcher/aboutProject/aboutproject_moc.ui b/launcher/aboutProject/aboutproject_moc.ui new file mode 100644 index 000000000..b96205485 --- /dev/null +++ b/launcher/aboutProject/aboutproject_moc.ui @@ -0,0 +1,283 @@ + + + AboutProjectView + + + + 0 + 0 + 745 + 389 + + + + + + + + + 150 + 300 + 229 + 23 + + + + VCMI on Slack + + + + + + 160 + 270 + 229 + 23 + + + + VCMI on Discord + + + + + + 150 + 340 + 229 + 23 + + + + VCMI on Github + + + + + + 160 + 230 + 331 + 16 + + + + Have a question? Found a bug? Want to help? Join us! + + + + + + 97 + 112 + 277 + 23 + + + + Game data directory + + + + + + 597 + 170 + 92 + 23 + + + + Open + + + + + + 97 + 170 + 277 + 23 + + + + Log files directory + + + + + + 597 + 141 + 92 + 23 + + + + Open + + + + + false + + + + 380 + 141 + 211 + 23 + + + + /home/user/.vcmi + + + true + + + + + + 597 + 112 + 92 + 23 + + + + Open + + + + + false + + + + 380 + 112 + 211 + 23 + + + + /usr/share/vcmi + + + + + + 97 + 141 + 277 + 23 + + + + User data directory + + + + + false + + + + 380 + 170 + 211 + 23 + + + + /home/user/.vcmi + + + true + + + + + + 110 + 90 + 277 + 15 + + + + + 75 + true + + + + Data Directories + + + + + + 310 + 40 + 162 + 23 + + + + + + + true + + + + + + 130 + 40 + 151 + 23 + + + + Build version + + + + + + 540 + 60 + 151 + 23 + + + + Check for updates + + + + + + 180 + 210 + 277 + 15 + + + + + 75 + true + + + + Our Community + + + + + + diff --git a/launcher/mainwindow_moc.cpp b/launcher/mainwindow_moc.cpp index ccacca57e..3d74fe1e9 100644 --- a/launcher/mainwindow_moc.cpp +++ b/launcher/mainwindow_moc.cpp @@ -54,6 +54,7 @@ void MainWindow::computeSidePanelSizes() ui->modslistButton, ui->settingsButton, ui->lobbyButton, + ui->aboutButton, ui->startEditorButton, ui->startGameButton }; @@ -231,6 +232,12 @@ void MainWindow::on_lobbyButton_clicked() ui->tabListWidget->setCurrentIndex(TabRows::LOBBY); } +void MainWindow::on_aboutButton_clicked() +{ + ui->startGameButton->setEnabled(true); + ui->tabListWidget->setCurrentIndex(TabRows::ABOUT); +} + void MainWindow::updateTranslation() { #ifdef ENABLE_QT_TRANSLATIONS diff --git a/launcher/mainwindow_moc.h b/launcher/mainwindow_moc.h index bdc766046..e9ff8d075 100644 --- a/launcher/mainwindow_moc.h +++ b/launcher/mainwindow_moc.h @@ -39,7 +39,8 @@ private: MODS = 0, SETTINGS = 1, LOBBY = 2, - SETUP = 3 + SETUP = 3, + ABOUT = 4, }; void changeEvent(QEvent *event) override; @@ -66,4 +67,5 @@ private slots: void on_settingsButton_clicked(); void on_lobbyButton_clicked(); void on_startEditorButton_clicked(); + void on_aboutButton_clicked(); }; diff --git a/launcher/mainwindow_moc.ui b/launcher/mainwindow_moc.ui index 0f98adf27..e5d25fe3a 100644 --- a/launcher/mainwindow_moc.ui +++ b/launcher/mainwindow_moc.ui @@ -6,8 +6,8 @@ 0 0 - 800 - 490 + 900 + 536 @@ -196,6 +196,52 @@ + + + + + 1 + 10 + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + About + + + + 0 + 0 + + + + true + + + false + + + true + + + Qt::ToolButtonTextUnderIcon + + + true + + + @@ -322,6 +368,7 @@ + @@ -353,6 +400,12 @@
firstLaunch/firstlaunch_moc.h
1 + + AboutProjectView + QWidget +
aboutProject/aboutproject_moc.h
+ 1 +
diff --git a/launcher/settingsView/csettingsview_moc.cpp b/launcher/settingsView/csettingsview_moc.cpp index 2d5de4ca1..da071f205 100644 --- a/launcher/settingsView/csettingsview_moc.cpp +++ b/launcher/settingsView/csettingsview_moc.cpp @@ -17,13 +17,11 @@ #include "../jsonutils.h" #include "../languages.h" #include "../launcherdirs.h" -#include "../updatedialog_moc.h" #include #include #include "../../lib/CConfigHandler.h" -#include "../../lib/VCMIDirs.h" #ifndef VCMI_MOBILE #include @@ -101,10 +99,6 @@ void CSettingsView::loadSettings() ui->checkBoxRepositoryDefault->setChecked(settings["launcher"]["defaultRepositoryEnabled"].Bool()); ui->checkBoxRepositoryExtra->setChecked(settings["launcher"]["extraRepositoryEnabled"].Bool()); - ui->lineEditUserDataDir->setText(pathToQString(VCMIDirs::get().userDataPath())); - ui->lineEditGameDir->setText(pathToQString(VCMIDirs::get().binaryPath())); - ui->lineEditTempDir->setText(pathToQString(VCMIDirs::get().userLogsPath())); - ui->comboBoxAutoSave->setCurrentIndex(settings["general"]["saveFrequency"].Integer() > 0 ? 1 : 0); Languages::fillLanguages(ui->comboBoxLanguage, false); @@ -233,7 +227,6 @@ CSettingsView::CSettingsView(QWidget * parent) { ui->setupUi(this); - ui->lineEditBuildVersion->setText(QString::fromStdString(GameConstants::VCMI_VERSION)); loadSettings(); } @@ -309,21 +302,6 @@ void CSettingsView::on_spinBoxNetworkPort_valueChanged(int arg1) node->Float() = arg1; } -void CSettingsView::on_openTempDir_clicked() -{ - QDesktopServices::openUrl(QUrl::fromLocalFile(QFileInfo(ui->lineEditTempDir->text()).absoluteFilePath())); -} - -void CSettingsView::on_openUserDataDir_clicked() -{ - QDesktopServices::openUrl(QUrl::fromLocalFile(QFileInfo(ui->lineEditUserDataDir->text()).absoluteFilePath())); -} - -void CSettingsView::on_openGameDataDir_clicked() -{ - QDesktopServices::openUrl(QUrl::fromLocalFile(QFileInfo(ui->lineEditGameDir->text()).absoluteFilePath())); -} - void CSettingsView::on_comboBoxShowIntro_currentIndexChanged(int index) { Settings node = settings.write["video"]["showIntro"]; @@ -336,11 +314,6 @@ void CSettingsView::on_comboBoxAutoSave_currentIndexChanged(int index) node->Integer() = index; } -void CSettingsView::on_updatesButton_clicked() -{ - UpdateDialog::showUpdateDialog(true); -} - void CSettingsView::on_comboBoxLanguage_currentIndexChanged(int index) { Settings node = settings.write["general"]["language"]; @@ -380,7 +353,6 @@ void CSettingsView::on_listWidgetSettings_currentRowChanged(int currentRow) ui->labelGeneral, ui->labelVideo, ui->labelArtificialIntelligence, - ui->labelDataDirs, ui->labelRepositories }; diff --git a/launcher/settingsView/csettingsview_moc.h b/launcher/settingsView/csettingsview_moc.h index 476c54461..9b1e9e968 100644 --- a/launcher/settingsView/csettingsview_moc.h +++ b/launcher/settingsView/csettingsview_moc.h @@ -40,14 +40,10 @@ private slots: void on_comboBoxNeutralAI_currentTextChanged(const QString & arg1); void on_comboBoxEnemyAI_currentTextChanged(const QString & arg1); void on_spinBoxNetworkPort_valueChanged(int arg1); - void on_openTempDir_clicked(); - void on_openUserDataDir_clicked(); - void on_openGameDataDir_clicked(); void on_comboBoxShowIntro_currentIndexChanged(int index); void on_comboBoxAutoCheck_currentIndexChanged(int index); void on_comboBoxDisplayIndex_currentIndexChanged(int index); void on_comboBoxAutoSave_currentIndexChanged(int index); - void on_updatesButton_clicked(); void on_comboBoxLanguage_currentIndexChanged(int index); void on_comboBoxCursorType_currentIndexChanged(int index); void on_listWidgetSettings_currentRowChanged(int currentRow); diff --git a/launcher/settingsView/csettingsview_moc.ui b/launcher/settingsView/csettingsview_moc.ui index 168fac05c..60503de6f 100644 --- a/launcher/settingsView/csettingsview_moc.ui +++ b/launcher/settingsView/csettingsview_moc.ui @@ -79,11 +79,6 @@ Artificial Intelligence - - - Data Directories - - Mod Repositories @@ -112,37 +107,57 @@ 0 - -345 + -301 610 - 786 + 649 - - - - - - 75 - true - - + + + - Data Directories + Cursor - - + + - + Fullscreen - - - - Heroes III Data Language + + + + + + + 1024 + + 65535 + + + 3030 + + + + + + + 1 + + + + Off + + + + + On + + @@ -152,15 +167,8 @@ - - - - Log files directory - - - - - + + 75 @@ -168,35 +176,99 @@ - Artificial Intelligence + Video - - + + - User data directory + Network port - - + + - Heroes III Translation + Resolution - - + + - Build version + Check on startup - - + + + + true + - Interface Scaling + + + + true + + + + + + + BattleAI + + + + BattleAI + + + + + StupidAI + + + + + + + + + + + + + + + VCAI + + + + VCAI + + + + + Nullkiller + + + + + + + + + + + true + + + + + + + Heroes III Data Language @@ -217,237 +289,17 @@ - - - - Fullscreen - - - - - - - - 75 - true - - - - General - - - - - - - Neutral AI in battles - - - - - - - 1024 - - - 65535 - - - 3030 - - - - - - - Enemy AI in battles - - - - - - - Autosave - - - - - - - Resolution - - - - - - - - - - - - - - VCAI - - - - VCAI - - - - - Nullkiller - - - - - - + + - - true - + + + - - - BattleAI - - - - BattleAI - - - - - StupidAI - - - - - - - - Network port - - - - - - - false - - - /home/user/.vcmi - - - true - - - - - - - - - - Additional repository - - - - - - - Game data directory - - - - - - - Show intro - - - - - - - Cursor - - - - - - - Open - - - - - - - Check on startup - - - - - - - - - - false - - - /home/user/.vcmi - - - true - - - - - - - VCAI - - - - VCAI - - - - - Nullkiller - - - - - - - - Open - - - - - - - - 75 - true - - - - Video - - - - false @@ -467,14 +319,7 @@ - - - - Adventure Map Allies - - - - + 1 @@ -491,34 +336,21 @@ - - - - false + + + + Additional repository - - BattleAI - - - - BattleAI - - - - - StupidAI - - - + - Adventure Map Enemies + Adventure Map Allies - + Select display mode for game @@ -549,24 +381,123 @@ Fullscreen Exclusive Mode - game will cover entirety of your screen and will use - - - - Open + + + + false + + + BattleAI + + + + BattleAI + + + + + StupidAI + + + + + + + + 50 + + + 400 + + + 10 + + + + + 75 + true + + + + Artificial Intelligence + + + + + + + + 75 + true + + + + Mod Repositories + + + + + + + + + + + + + true + + + + + + + + 75 + true + + + + General + + + + + + - + - Friendly AI in battles + Enemy AI in battles - - + + + + Interface Scaling + + - + + + + Display index + + + + + + + + + + + @@ -580,120 +511,76 @@ Fullscreen Exclusive Mode - game will cover entirety of your screen and will use - + + + + Neutral AI in battles + + + + + + + Heroes III Translation + + + + + + + Friendly AI in battles + + + + + + + Refresh now + + + + Default repository - - - - - - - - 75 - true - - + + - Mod Repositories + Autosave - - - - Display index - - - - - - - true - - - - - - true - - - - - - - - - - - - - - 1 + + + + VCAI - Off + VCAI - On + Nullkiller - - + + - Update now + Show intro - - + + - - - - true - - - - - - - - - - true - - - - - - - false - - - /usr/share/vcmi - - - - - - - 50 - - - 400 - - - 10 + Adventure Map Enemies