mirror of
https://github.com/isledecomp/isle-portable.git
synced 2026-01-20 22:21:15 +00:00
Add Launch Game button to config tool, rename executable to isle-config (#435)
* Add Launch Game option to config tool * Rename executable from "config" to "isle-config" * Add error popup if unable to find game executable * Use one QMessageBox for both Win and *nix Create one QMessageBox object to use for both Windows and non-Windows platforms. Additionally, set all relevant text during creation of QMessageBox, and show Warning icon as part of message box. * Add tooltips to save, launch, and exit buttons * Change "Launch Game" to "Save and Launch" * Remove unnecessary Windows-specific code
This commit is contained in:
parent
7797729a3f
commit
73bab24721
@ -525,7 +525,7 @@ endif()
|
|||||||
if (ISLE_BUILD_CONFIG)
|
if (ISLE_BUILD_CONFIG)
|
||||||
find_package(Qt6 REQUIRED COMPONENTS Core Widgets)
|
find_package(Qt6 REQUIRED COMPONENTS Core Widgets)
|
||||||
qt_standard_project_setup()
|
qt_standard_project_setup()
|
||||||
qt_add_executable(config WIN32
|
qt_add_executable(isle-config WIN32
|
||||||
LEGO1/mxdirectx/mxdirectxinfo.cpp
|
LEGO1/mxdirectx/mxdirectxinfo.cpp
|
||||||
LEGO1/mxdirectx/legodxinfo.cpp
|
LEGO1/mxdirectx/legodxinfo.cpp
|
||||||
CONFIG/config.cpp
|
CONFIG/config.cpp
|
||||||
@ -535,22 +535,22 @@ if (ISLE_BUILD_CONFIG)
|
|||||||
CONFIG/res/config.rc
|
CONFIG/res/config.rc
|
||||||
CONFIG/res/config.qrc
|
CONFIG/res/config.qrc
|
||||||
)
|
)
|
||||||
target_link_libraries(config PRIVATE Qt6::Core Qt6::Widgets)
|
target_link_libraries(isle-config PRIVATE Qt6::Core Qt6::Widgets)
|
||||||
set_property(TARGET config PROPERTY AUTOMOC ON)
|
set_property(TARGET isle-config PROPERTY AUTOMOC ON)
|
||||||
set_property(TARGET config PROPERTY AUTORCC ON)
|
set_property(TARGET isle-config PROPERTY AUTORCC ON)
|
||||||
set_property(TARGET config PROPERTY AUTOUIC ON)
|
set_property(TARGET isle-config PROPERTY AUTOUIC ON)
|
||||||
set_property(TARGET config PROPERTY AUTOUIC_SEARCH_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/CONFIG/res")
|
set_property(TARGET isle-config PROPERTY AUTOUIC_SEARCH_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/CONFIG/res")
|
||||||
list(APPEND isle_targets config)
|
list(APPEND isle_targets isle-config)
|
||||||
target_compile_definitions(config PRIVATE _AFXDLL MXDIRECTX_FOR_CONFIG)
|
target_compile_definitions(isle-config PRIVATE _AFXDLL MXDIRECTX_FOR_CONFIG)
|
||||||
target_include_directories(config PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/LEGO1")
|
target_include_directories(isle-config PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/LEGO1")
|
||||||
target_include_directories(config PUBLIC "$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/util>")
|
target_include_directories(isle-config PUBLIC "$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/util>")
|
||||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 14)
|
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 14)
|
||||||
target_link_libraries(config PRIVATE DirectX5::DirectX5)
|
target_link_libraries(isle-config PRIVATE DirectX5::DirectX5)
|
||||||
endif()
|
endif()
|
||||||
target_compile_definitions(config PRIVATE DIRECT3D_VERSION=0x500)
|
target_compile_definitions(isle-config PRIVATE DIRECT3D_VERSION=0x500)
|
||||||
target_link_libraries(config PRIVATE SDL3::SDL3 Isle::iniparser)
|
target_link_libraries(isle-config PRIVATE SDL3::SDL3 Isle::iniparser)
|
||||||
if (NOT ISLE_MINIWIN)
|
if (NOT ISLE_MINIWIN)
|
||||||
target_link_libraries(config PRIVATE ddraw dxguid)
|
target_link_libraries(isle-config PRIVATE ddraw dxguid)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -564,8 +564,8 @@ if (MSVC)
|
|||||||
if (TARGET isle)
|
if (TARGET isle)
|
||||||
target_compile_definitions(isle PRIVATE "_CRT_SECURE_NO_WARNINGS")
|
target_compile_definitions(isle PRIVATE "_CRT_SECURE_NO_WARNINGS")
|
||||||
endif()
|
endif()
|
||||||
if (TARGET config)
|
if (TARGET isle-config)
|
||||||
target_compile_definitions(config PRIVATE "_CRT_SECURE_NO_WARNINGS")
|
target_compile_definitions(isle-config PRIVATE "_CRT_SECURE_NO_WARNINGS")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
# Visual Studio 2017 version 15.7 needs "/Zc:__cplusplus" for __cplusplus
|
# Visual Studio 2017 version 15.7 needs "/Zc:__cplusplus" for __cplusplus
|
||||||
@ -574,8 +574,8 @@ if (MSVC)
|
|||||||
if (TARGET isle)
|
if (TARGET isle)
|
||||||
target_compile_options(isle PRIVATE "-Zc:__cplusplus")
|
target_compile_options(isle PRIVATE "-Zc:__cplusplus")
|
||||||
endif()
|
endif()
|
||||||
if (TARGET config)
|
if (TARGET isle-config)
|
||||||
target_compile_options(config PRIVATE "-Zc:__cplusplus")
|
target_compile_options(isle-config PRIVATE "-Zc:__cplusplus")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
@ -633,7 +633,7 @@ install(TARGETS isle ${install_extra_targets}
|
|||||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
)
|
)
|
||||||
if (ISLE_BUILD_CONFIG)
|
if (ISLE_BUILD_CONFIG)
|
||||||
install(TARGETS config
|
install(TARGETS isle-config
|
||||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@ -11,6 +11,8 @@
|
|||||||
#include "res/resource.h"
|
#include "res/resource.h"
|
||||||
|
|
||||||
#include <QKeyEvent>
|
#include <QKeyEvent>
|
||||||
|
#include <QMessageBox>
|
||||||
|
#include <QProcess>
|
||||||
#include <mxdirectx/legodxinfo.h>
|
#include <mxdirectx/legodxinfo.h>
|
||||||
#include <ui_maindialog.h>
|
#include <ui_maindialog.h>
|
||||||
|
|
||||||
@ -59,6 +61,7 @@ CMainDialog::CMainDialog(QWidget* pParent) : QDialog(pParent)
|
|||||||
connect(m_ui->fullscreenCheckBox, &QCheckBox::toggled, this, &CMainDialog::OnCheckboxFullscreen);
|
connect(m_ui->fullscreenCheckBox, &QCheckBox::toggled, this, &CMainDialog::OnCheckboxFullscreen);
|
||||||
connect(m_ui->okButton, &QPushButton::clicked, this, &CMainDialog::accept);
|
connect(m_ui->okButton, &QPushButton::clicked, this, &CMainDialog::accept);
|
||||||
connect(m_ui->cancelButton, &QPushButton::clicked, this, &CMainDialog::reject);
|
connect(m_ui->cancelButton, &QPushButton::clicked, this, &CMainDialog::reject);
|
||||||
|
connect(m_ui->launchButton, &QPushButton::clicked, this, &CMainDialog::launch);
|
||||||
|
|
||||||
connect(m_ui->dataPathOpen, &QPushButton::clicked, this, &CMainDialog::SelectDataPathDialog);
|
connect(m_ui->dataPathOpen, &QPushButton::clicked, this, &CMainDialog::SelectDataPathDialog);
|
||||||
connect(m_ui->savePathOpen, &QPushButton::clicked, this, &CMainDialog::SelectSavePathDialog);
|
connect(m_ui->savePathOpen, &QPushButton::clicked, this, &CMainDialog::SelectSavePathDialog);
|
||||||
@ -155,6 +158,30 @@ void CMainDialog::accept()
|
|||||||
QDialog::accept();
|
QDialog::accept();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CMainDialog::launch()
|
||||||
|
{
|
||||||
|
if (m_modified) {
|
||||||
|
currentConfigApp->WriteRegisterSettings();
|
||||||
|
}
|
||||||
|
|
||||||
|
QDir::setCurrent(QCoreApplication::applicationDirPath());
|
||||||
|
|
||||||
|
QMessageBox msgBox = QMessageBox(
|
||||||
|
QMessageBox::Warning,
|
||||||
|
QString("Error!"),
|
||||||
|
QString("Unable to locate isle executable!"),
|
||||||
|
QMessageBox::Close
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!QProcess::startDetached("./isle")) { // Check in isle-config directory
|
||||||
|
if (!QProcess::startDetached("isle")) { // Check in $PATH
|
||||||
|
msgBox.exec();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QDialog::accept();
|
||||||
|
}
|
||||||
|
|
||||||
// FUNCTION: CONFIG 0x00404360
|
// FUNCTION: CONFIG 0x00404360
|
||||||
void CMainDialog::UpdateInterface()
|
void CMainDialog::UpdateInterface()
|
||||||
{
|
{
|
||||||
|
|||||||
@ -45,6 +45,7 @@ private slots:
|
|||||||
void OnCheckboxFullscreen(bool checked);
|
void OnCheckboxFullscreen(bool checked);
|
||||||
void accept() override;
|
void accept() override;
|
||||||
void reject() override;
|
void reject() override;
|
||||||
|
void launch();
|
||||||
void SelectDataPathDialog();
|
void SelectDataPathDialog();
|
||||||
void SelectSavePathDialog();
|
void SelectSavePathDialog();
|
||||||
void DataPathEdited();
|
void DataPathEdited();
|
||||||
|
|||||||
@ -508,8 +508,11 @@
|
|||||||
</property>
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="okButton">
|
<widget class="QPushButton" name="okButton">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Save configuration and close the config tool.</string>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>OK</string>
|
<string>Save and Exit</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="default">
|
<property name="default">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
@ -517,9 +520,22 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="cancelButton">
|
<widget class="QPushButton" name="launchButton">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Save configuration and launch LEGO Island.</string>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Cancel</string>
|
<string>Save and Launch</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="cancelButton">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Discard changed settings and close the config tool.</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Exit without saving</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user