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