Skip to content

Commit

Permalink
Add settings GUI and ability to set extra arguments when testing
Browse files Browse the repository at this point in the history
  • Loading branch information
BogdanW3 committed Jan 25, 2019
1 parent 2ece244 commit b9adc58
Show file tree
Hide file tree
Showing 10 changed files with 174 additions and 1 deletion.
1 change: 1 addition & 0 deletions HiveWE/HiveWE.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ HiveWE::HiveWE(QWidget* parent) : QMainWindow(parent) {
connect(ui.ribbon->save_map, &QPushButton::clicked, [&]() { map->save(map->filesystem_path); });
connect(ui.ribbon->save_map_as, &QPushButton::clicked, this, &HiveWE::save_as);
connect(ui.ribbon->test_map, &QPushButton::clicked, [&]() { map->play_test(); });
connect(ui.ribbon->settings, &QPushButton::clicked, [&]() { new SettingsEditor(this); });
connect(ui.ribbon->switch_warcraft, &QPushButton::clicked, this, &HiveWE::switch_warcraft);
connect(ui.ribbon->exit, &QPushButton::clicked, [&]() { QApplication::exit(); });

Expand Down
39 changes: 39 additions & 0 deletions HiveWE/HiveWE.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,10 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseSymbols|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_SettingsEditor.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseSymbols|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_Terrain.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseSymbols|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
Expand Down Expand Up @@ -293,6 +297,10 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseSymbols|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_SettingsEditor.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseSymbols|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_Terrain.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseSymbols|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
Expand Down Expand Up @@ -348,6 +356,7 @@
<ClCompile Include="Quadtree.cpp" />
<ClCompile Include="Regions.cpp" />
<ClCompile Include="ResourceManager.cpp" />
<ClCompile Include="SettingsEditor.cpp" />
<ClCompile Include="Shader.cpp" />
<ClCompile Include="ShadowMap.cpp" />
<ClCompile Include="SkinnedMesh.cpp" />
Expand Down Expand Up @@ -467,6 +476,7 @@
<ClInclude Include="GeneratedFiles\ui_ImportManagerEdit.h" />
<ClInclude Include="GeneratedFiles\ui_MapInfoEditor.h" />
<ClInclude Include="GeneratedFiles\ui_Minimap.h" />
<ClInclude Include="GeneratedFiles\ui_SettingsEditor.h" />
<ClInclude Include="GeneratedFiles\ui_TerrainPalette.h" />
<ClInclude Include="GeneratedFiles\ui_TilePather.h" />
<ClInclude Include="GeneratedFiles\ui_TilePicker.h" />
Expand Down Expand Up @@ -614,6 +624,20 @@
<ClInclude Include="Quadtree.h" />
<ClInclude Include="Regions.h" />
<ClInclude Include="ResourceManager.h" />
<CustomBuild Include="SettingsEditor.h">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='ReleaseSymbols|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='ReleaseSymbols|x64'">Moc%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='ReleaseSymbols|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='ReleaseSymbols|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -D_UNICODE "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\Dependencies\glm-0.9.8.5" "-I.\Dependencies\soil2\include" "-I.\Dependencies\stormlib-9.21\include" "-I.\Dependencies\libjpeg-turbo-1.5.2\include" "-I.\Dependencies\casclib-1.11\include" "-I.\Dependencies\qscintilla-2.10.7\include" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtANGLE" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-fstdafx.h" "-f../../%(Filename)%(Extension)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_CORE_LIB -DQT_GUI_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -D_UNICODE "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\Dependencies\glm-0.9.8.5" "-I.\Dependencies\soil2\include" "-I.\Dependencies\stormlib-9.21\include" "-I.\Dependencies\libjpeg-turbo-1.5.2\include" "-I.\Dependencies\casclib-1.11\include" "-I.\Dependencies\qscintilla-2.10.7\include" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtANGLE" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-fstdafx.h" "-f../../%(Filename)%(Extension)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -D_UNICODE "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\Dependencies\glm-0.9.8.5" "-I.\Dependencies\soil2\include" "-I.\Dependencies\stormlib-9.21\include" "-I.\Dependencies\libjpeg-turbo-1.5.2\include" "-I.\Dependencies\casclib-1.11\include" "-I.\Dependencies\qscintilla-2.10.7\include" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtANGLE" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-fstdafx.h" "-f../../%(Filename)%(Extension)"</Command>
</CustomBuild>
<ClInclude Include="Shader.h" />
<ClInclude Include="ShadowMap.h" />
<ClInclude Include="SkinnedMesh.h" />
Expand Down Expand Up @@ -944,6 +968,21 @@
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
</CustomBuild>
<CustomBuild Include="SettingsEditor.ui">
<FileType>Document</FileType>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Uic%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Uic%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='ReleaseSymbols|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='ReleaseSymbols|x64'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='ReleaseSymbols|x64'">Uic%27ing %(Identity)...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='ReleaseSymbols|x64'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
</CustomBuild>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
Expand Down
18 changes: 18 additions & 0 deletions HiveWE/HiveWE.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -378,6 +378,15 @@
<ClCompile Include="Sounds.cpp">
<Filter>Source Files\Base</Filter>
</ClCompile>
<ClCompile Include="SettingsEditor.cpp">
<Filter>Source Files\Menus</Filter>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_SettingsEditor.cpp">
<Filter>Generated Files</Filter>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_SettingsEditor.cpp">
<Filter>Generated Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="stdafx.h">
Expand Down Expand Up @@ -533,6 +542,9 @@
<ClInclude Include="Sounds.h">
<Filter>Header Files\Base</Filter>
</ClInclude>
<ClInclude Include="GeneratedFiles\ui_SettingsEditor.h">
<Filter>Generated Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="HiveWE.h">
Expand Down Expand Up @@ -640,6 +652,12 @@
<CustomBuild Include="Terrain.h">
<Filter>Header Files\Base</Filter>
</CustomBuild>
<CustomBuild Include="SettingsEditor.ui">
<Filter>Form Files</Filter>
</CustomBuild>
<CustomBuild Include="SettingsEditor.h">
<Filter>Header Files\Menus</Filter>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<None Include="..\.editorconfig" />
Expand Down
6 changes: 6 additions & 0 deletions HiveWE/MainRibbon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,12 @@ MainRibbon::MainRibbon(QWidget* parent) : QRibbon(parent) {
test_map->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
addMenuItem(test_map);

settings->setText("Settings");
settings->setIcon(QIcon("Data/Icons/Ribbon/options32x32.png"));
settings->setIconSize({ 32, 32 });
settings->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
addMenuItem(settings);

addMenuSeperator();

exit->setText("Exit");
Expand Down
1 change: 1 addition & 0 deletions HiveWE/MainRibbon.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ class MainRibbon : public QRibbon {
QToolButton* save_map = new QToolButton;
QToolButton* save_map_as = new QToolButton;
QToolButton* test_map = new QToolButton;
QToolButton* settings = new QToolButton;
QToolButton* exit = new QToolButton;

MainRibbon(QWidget* parent);
Expand Down
4 changes: 4 additions & 0 deletions HiveWE/Map.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,10 @@ void Map::play_test() {
QStringList arguments;
arguments << "-loadfile" << QString::fromStdString(path.string());

QSettings settings;
if (settings.value("testArgs").toString() != "")
arguments << settings.value("testArgs").toString();

warcraft->start("\"" + warcraft_path + "\"", arguments);
}

Expand Down
24 changes: 24 additions & 0 deletions HiveWE/SettingsEditor.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#include "stdafx.h"

SettingsEditor::SettingsEditor(QWidget* parent) : QDialog(parent) {
ui.setupUi(this);
QSettings settings;
ui.testArgs->setText(settings.value("testArgs").toString());

connect(ui.buttonBox, &QDialogButtonBox::accepted, [&]() {
save();
emit accept();
close();
});

connect(ui.buttonBox, &QDialogButtonBox::rejected, [&]() {
emit reject();
close();
});
show();
}

void SettingsEditor::save() const {
QSettings settings;
settings.setValue("testArgs", ui.testArgs->text());
}
13 changes: 13 additions & 0 deletions HiveWE/SettingsEditor.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#pragma once

#include "ui_SettingsEditor.h"

class SettingsEditor : public QDialog {
Q_OBJECT

public:
explicit SettingsEditor(QWidget* parent = nullptr);
private:
Ui::SettingsEditor ui;
void save() const;
};
66 changes: 66 additions & 0 deletions HiveWE/SettingsEditor.ui
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>SettingsEditor</class>
<widget class="QDialog" name="SettingsEditor">
<property name="windowModality">
<enum>Qt::ApplicationModal</enum>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>376</width>
<height>527</height>
</rect>
</property>
<property name="windowTitle">
<string>Settings</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_1">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTabWidget" name="tabs">
<property name="currentIndex">
<number>0</number>
</property>
<property name="usesScrollButtons">
<bool>false</bool>
</property>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>General</string>
</attribute>
</widget>
<widget class="QWidget" name="tab_1">
<attribute name="title">
<string>Testing</string>
</attribute>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Arguments:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="testArgs"/>
</item>
</layout>
</widget>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<layoutdefault spacing="6" margin="11"/>
</ui>
3 changes: 2 additions & 1 deletion HiveWE/stdafx.h
Original file line number Diff line number Diff line change
Expand Up @@ -123,4 +123,5 @@ namespace fs = std::filesystem;
#include "DoodadPalette.h"
#include "TilePicker.h"
#include "TileSetter.h"
#include "TilePather.h"
#include "TilePather.h"
#include "SettingsEditor.h"

0 comments on commit b9adc58

Please sign in to comment.