* Fix fixed size window sizing
* Fix device config windows not appearing centered and modal under Wayland
This commit is contained in:
@@ -18,6 +18,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "qt_deviceconfig.hpp"
|
#include "qt_deviceconfig.hpp"
|
||||||
#include "ui_qt_deviceconfig.h"
|
#include "ui_qt_deviceconfig.h"
|
||||||
|
#include "qt_settings.hpp"
|
||||||
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QComboBox>
|
#include <QComboBox>
|
||||||
@@ -47,8 +48,8 @@ DeviceConfig::~DeviceConfig()
|
|||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DeviceConfig::ConfigureDevice(const _device_* device, int instance) {
|
void DeviceConfig::ConfigureDevice(const _device_* device, int instance, Settings* settings) {
|
||||||
DeviceConfig dc;
|
DeviceConfig dc(settings);
|
||||||
dc.setWindowTitle(QString("%1 Device Configuration").arg(device->name));
|
dc.setWindowTitle(QString("%1 Device Configuration").arg(device->name));
|
||||||
|
|
||||||
device_context_t device_context;
|
device_context_t device_context;
|
||||||
|
@@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
|
|
||||||
|
#include "qt_settings.hpp"
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
struct _device_;
|
struct _device_;
|
||||||
}
|
}
|
||||||
@@ -11,6 +13,8 @@ namespace Ui {
|
|||||||
class DeviceConfig;
|
class DeviceConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class Settings;
|
||||||
|
|
||||||
class DeviceConfig : public QDialog
|
class DeviceConfig : public QDialog
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@@ -19,7 +23,7 @@ public:
|
|||||||
explicit DeviceConfig(QWidget *parent = nullptr);
|
explicit DeviceConfig(QWidget *parent = nullptr);
|
||||||
~DeviceConfig();
|
~DeviceConfig();
|
||||||
|
|
||||||
static void ConfigureDevice(const _device_* device, int instance = 0);
|
static void ConfigureDevice(const _device_* device, int instance = 0, Settings* settings = nullptr);
|
||||||
static QString DeviceName(const _device_* device, const char* internalName, int bus);
|
static QString DeviceName(const _device_* device, const char* internalName, int bus);
|
||||||
private:
|
private:
|
||||||
Ui::DeviceConfig *ui;
|
Ui::DeviceConfig *ui;
|
||||||
|
@@ -97,6 +97,7 @@ int SettingsModel::rowCount(const QModelIndex &parent) const {
|
|||||||
return pages.size();
|
return pages.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Settings* Settings::settings = nullptr;;
|
||||||
Settings::Settings(QWidget *parent) :
|
Settings::Settings(QWidget *parent) :
|
||||||
QDialog(parent),
|
QDialog(parent),
|
||||||
ui(new Ui::Settings)
|
ui(new Ui::Settings)
|
||||||
@@ -142,6 +143,8 @@ Settings::Settings(QWidget *parent) :
|
|||||||
connect(ui->listView->selectionModel(), &QItemSelectionModel::currentChanged, this, [this](const QModelIndex ¤t, const QModelIndex &previous) {
|
connect(ui->listView->selectionModel(), &QItemSelectionModel::currentChanged, this, [this](const QModelIndex ¤t, const QModelIndex &previous) {
|
||||||
ui->stackedWidget->setCurrentIndex(current.row());
|
ui->stackedWidget->setCurrentIndex(current.row());
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Settings::settings = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
Settings::~Settings()
|
Settings::~Settings()
|
||||||
@@ -149,6 +152,7 @@ Settings::~Settings()
|
|||||||
delete ui;
|
delete ui;
|
||||||
delete Harddrives::busTrackClass;
|
delete Harddrives::busTrackClass;
|
||||||
Harddrives::busTrackClass = nullptr;
|
Harddrives::busTrackClass = nullptr;
|
||||||
|
Settings::settings = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Settings::save() {
|
void Settings::save() {
|
||||||
|
@@ -28,6 +28,7 @@ public:
|
|||||||
~Settings();
|
~Settings();
|
||||||
void save();
|
void save();
|
||||||
|
|
||||||
|
static Settings* settings;
|
||||||
protected slots:
|
protected slots:
|
||||||
void accept() override;
|
void accept() override;
|
||||||
|
|
||||||
|
@@ -93,11 +93,11 @@ void SettingsDisplay::onCurrentMachineChanged(int machineId) {
|
|||||||
|
|
||||||
void SettingsDisplay::on_pushButtonConfigure_clicked() {
|
void SettingsDisplay::on_pushButtonConfigure_clicked() {
|
||||||
auto* device = video_card_getdevice(ui->comboBoxVideo->currentData().toInt());
|
auto* device = video_card_getdevice(ui->comboBoxVideo->currentData().toInt());
|
||||||
DeviceConfig::ConfigureDevice(device);
|
DeviceConfig::ConfigureDevice(device, 0, qobject_cast<Settings*>(Settings::settings));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsDisplay::on_pushButtonConfigureVoodoo_clicked() {
|
void SettingsDisplay::on_pushButtonConfigureVoodoo_clicked() {
|
||||||
DeviceConfig::ConfigureDevice(&voodoo_device);
|
DeviceConfig::ConfigureDevice(&voodoo_device, 0, qobject_cast<Settings*>(Settings::settings));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsDisplay::on_comboBoxVideo_currentIndexChanged(int index) {
|
void SettingsDisplay::on_comboBoxVideo_currentIndexChanged(int index) {
|
||||||
|
@@ -122,7 +122,7 @@ void SettingsInput::on_comboBoxJoystick_currentIndexChanged(int index) {
|
|||||||
|
|
||||||
void SettingsInput::on_pushButtonConfigureMouse_clicked() {
|
void SettingsInput::on_pushButtonConfigureMouse_clicked() {
|
||||||
int mouseId = ui->comboBoxMouse->currentData().toInt();
|
int mouseId = ui->comboBoxMouse->currentData().toInt();
|
||||||
DeviceConfig::ConfigureDevice(mouse_get_device(mouseId));
|
DeviceConfig::ConfigureDevice(mouse_get_device(mouseId), 0, qobject_cast<Settings*>(Settings::settings));
|
||||||
}
|
}
|
||||||
|
|
||||||
static int get_axis(JoystickConfiguration& jc, int axis, int joystick_nr) {
|
static int get_axis(JoystickConfiguration& jc, int axis, int joystick_nr) {
|
||||||
|
@@ -282,5 +282,5 @@ void SettingsMachine::on_pushButtonConfigure_clicked() {
|
|||||||
// deviceconfig_inst_open
|
// deviceconfig_inst_open
|
||||||
int machineId = ui->comboBoxMachine->currentData().toInt();
|
int machineId = ui->comboBoxMachine->currentData().toInt();
|
||||||
const auto* device = machine_getdevice(machineId);
|
const auto* device = machine_getdevice(machineId);
|
||||||
DeviceConfig::ConfigureDevice(device);
|
DeviceConfig::ConfigureDevice(device, 0, qobject_cast<Settings*>(Settings::settings));
|
||||||
}
|
}
|
||||||
|
@@ -124,6 +124,6 @@ void SettingsNetwork::on_comboBoxAdapter_currentIndexChanged(int index) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void SettingsNetwork::on_pushButtonConfigure_clicked() {
|
void SettingsNetwork::on_pushButtonConfigure_clicked() {
|
||||||
DeviceConfig::ConfigureDevice(network_card_getdevice(ui->comboBoxAdapter->currentData().toInt()));
|
DeviceConfig::ConfigureDevice(network_card_getdevice(ui->comboBoxAdapter->currentData().toInt()), 0, qobject_cast<Settings*>(Settings::settings));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -127,7 +127,7 @@ void SettingsOtherPeripherals::on_comboBoxRTC_currentIndexChanged(int index) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void SettingsOtherPeripherals::on_pushButtonConfigureRTC_clicked() {
|
void SettingsOtherPeripherals::on_pushButtonConfigureRTC_clicked() {
|
||||||
DeviceConfig::ConfigureDevice(isartc_get_device(ui->comboBoxRTC->currentData().toInt()));
|
DeviceConfig::ConfigureDevice(isartc_get_device(ui->comboBoxRTC->currentData().toInt()), 0, qobject_cast<Settings*>(Settings::settings));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsOtherPeripherals::on_comboBoxCard1_currentIndexChanged(int index) {
|
void SettingsOtherPeripherals::on_comboBoxCard1_currentIndexChanged(int index) {
|
||||||
@@ -138,7 +138,7 @@ void SettingsOtherPeripherals::on_comboBoxCard1_currentIndexChanged(int index) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void SettingsOtherPeripherals::on_pushButtonConfigureCard1_clicked() {
|
void SettingsOtherPeripherals::on_pushButtonConfigureCard1_clicked() {
|
||||||
DeviceConfig::ConfigureDevice(isamem_get_device(ui->comboBoxCard1->currentData().toInt()), 1);
|
DeviceConfig::ConfigureDevice(isamem_get_device(ui->comboBoxCard1->currentData().toInt()), 1, qobject_cast<Settings*>(Settings::settings));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsOtherPeripherals::on_comboBoxCard2_currentIndexChanged(int index) {
|
void SettingsOtherPeripherals::on_comboBoxCard2_currentIndexChanged(int index) {
|
||||||
@@ -149,7 +149,7 @@ void SettingsOtherPeripherals::on_comboBoxCard2_currentIndexChanged(int index) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void SettingsOtherPeripherals::on_pushButtonConfigureCard2_clicked() {
|
void SettingsOtherPeripherals::on_pushButtonConfigureCard2_clicked() {
|
||||||
DeviceConfig::ConfigureDevice(isamem_get_device(ui->comboBoxCard2->currentData().toInt()), 2);
|
DeviceConfig::ConfigureDevice(isamem_get_device(ui->comboBoxCard2->currentData().toInt()), 2, qobject_cast<Settings*>(Settings::settings));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsOtherPeripherals::on_comboBoxCard3_currentIndexChanged(int index) {
|
void SettingsOtherPeripherals::on_comboBoxCard3_currentIndexChanged(int index) {
|
||||||
@@ -160,7 +160,7 @@ void SettingsOtherPeripherals::on_comboBoxCard3_currentIndexChanged(int index) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void SettingsOtherPeripherals::on_pushButtonConfigureCard3_clicked() {
|
void SettingsOtherPeripherals::on_pushButtonConfigureCard3_clicked() {
|
||||||
DeviceConfig::ConfigureDevice(isamem_get_device(ui->comboBoxCard3->currentData().toInt()), 3);
|
DeviceConfig::ConfigureDevice(isamem_get_device(ui->comboBoxCard3->currentData().toInt()), 3, qobject_cast<Settings*>(Settings::settings));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsOtherPeripherals::on_comboBoxCard4_currentIndexChanged(int index) {
|
void SettingsOtherPeripherals::on_comboBoxCard4_currentIndexChanged(int index) {
|
||||||
@@ -171,5 +171,5 @@ void SettingsOtherPeripherals::on_comboBoxCard4_currentIndexChanged(int index) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void SettingsOtherPeripherals::on_pushButtonConfigureCard4_clicked() {
|
void SettingsOtherPeripherals::on_pushButtonConfigureCard4_clicked() {
|
||||||
DeviceConfig::ConfigureDevice(isamem_get_device(ui->comboBoxCard4->currentData().toInt()), 4);
|
DeviceConfig::ConfigureDevice(isamem_get_device(ui->comboBoxCard4->currentData().toInt()), 4, qobject_cast<Settings*>(Settings::settings));
|
||||||
}
|
}
|
||||||
|
@@ -177,7 +177,7 @@ void SettingsSound::on_comboBoxSoundCard_currentIndexChanged(int index) {
|
|||||||
|
|
||||||
|
|
||||||
void SettingsSound::on_pushButtonConfigureSoundCard_clicked() {
|
void SettingsSound::on_pushButtonConfigureSoundCard_clicked() {
|
||||||
DeviceConfig::ConfigureDevice(sound_card_getdevice(ui->comboBoxSoundCard->currentData().toInt()));
|
DeviceConfig::ConfigureDevice(sound_card_getdevice(ui->comboBoxSoundCard->currentData().toInt()), 0, qobject_cast<Settings*>(Settings::settings));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsSound::on_comboBoxMidiOut_currentIndexChanged(int index) {
|
void SettingsSound::on_comboBoxMidiOut_currentIndexChanged(int index) {
|
||||||
@@ -190,7 +190,7 @@ void SettingsSound::on_comboBoxMidiOut_currentIndexChanged(int index) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void SettingsSound::on_pushButtonConfigureMidiOut_clicked() {
|
void SettingsSound::on_pushButtonConfigureMidiOut_clicked() {
|
||||||
DeviceConfig::ConfigureDevice(midi_device_getdevice(ui->comboBoxMidiOut->currentData().toInt()));
|
DeviceConfig::ConfigureDevice(midi_device_getdevice(ui->comboBoxMidiOut->currentData().toInt()), 0, qobject_cast<Settings*>(Settings::settings));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsSound::on_comboBoxMidiIn_currentIndexChanged(int index) {
|
void SettingsSound::on_comboBoxMidiIn_currentIndexChanged(int index) {
|
||||||
@@ -203,7 +203,7 @@ void SettingsSound::on_comboBoxMidiIn_currentIndexChanged(int index) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void SettingsSound::on_pushButtonConfigureMidiIn_clicked() {
|
void SettingsSound::on_pushButtonConfigureMidiIn_clicked() {
|
||||||
DeviceConfig::ConfigureDevice(midi_in_device_getdevice(ui->comboBoxMidiIn->currentData().toInt()));
|
DeviceConfig::ConfigureDevice(midi_in_device_getdevice(ui->comboBoxMidiIn->currentData().toInt()), 0, qobject_cast<Settings*>(Settings::settings));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsSound::on_checkBoxMPU401_stateChanged(int state) {
|
void SettingsSound::on_checkBoxMPU401_stateChanged(int state) {
|
||||||
@@ -224,20 +224,20 @@ void SettingsSound::on_checkBoxGUS_stateChanged(int state) {
|
|||||||
|
|
||||||
void SettingsSound::on_pushButtonConfigureMPU401_clicked() {
|
void SettingsSound::on_pushButtonConfigureMPU401_clicked() {
|
||||||
if (machine_has_bus(machineId, MACHINE_BUS_MCA) > 0) {
|
if (machine_has_bus(machineId, MACHINE_BUS_MCA) > 0) {
|
||||||
DeviceConfig::ConfigureDevice(&mpu401_mca_device);
|
DeviceConfig::ConfigureDevice(&mpu401_mca_device, 0, qobject_cast<Settings*>(Settings::settings));
|
||||||
} else {
|
} else {
|
||||||
DeviceConfig::ConfigureDevice(&mpu401_device);
|
DeviceConfig::ConfigureDevice(&mpu401_device, 0, qobject_cast<Settings*>(Settings::settings));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsSound::on_pushButtonConfigureSSI2001_clicked() {
|
void SettingsSound::on_pushButtonConfigureSSI2001_clicked() {
|
||||||
DeviceConfig::ConfigureDevice(&ssi2001_device);
|
DeviceConfig::ConfigureDevice(&ssi2001_device, 0, qobject_cast<Settings*>(Settings::settings));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsSound::on_pushButtonConfigureCMS_clicked() {
|
void SettingsSound::on_pushButtonConfigureCMS_clicked() {
|
||||||
DeviceConfig::ConfigureDevice(&cms_device);
|
DeviceConfig::ConfigureDevice(&cms_device, 0, qobject_cast<Settings*>(Settings::settings));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsSound::on_pushButtonConfigureGUS_clicked() {
|
void SettingsSound::on_pushButtonConfigureGUS_clicked() {
|
||||||
DeviceConfig::ConfigureDevice(&gus_device);
|
DeviceConfig::ConfigureDevice(&gus_device, 0, qobject_cast<Settings*>(Settings::settings));
|
||||||
}
|
}
|
||||||
|
@@ -188,19 +188,19 @@ void SettingsStorageControllers::on_checkBoxQuaternaryIDE_stateChanged(int arg1)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void SettingsStorageControllers::on_pushButtonHD_clicked() {
|
void SettingsStorageControllers::on_pushButtonHD_clicked() {
|
||||||
DeviceConfig::ConfigureDevice(hdc_get_device(ui->comboBoxHD->currentData().toInt()));
|
DeviceConfig::ConfigureDevice(hdc_get_device(ui->comboBoxHD->currentData().toInt()), 0, qobject_cast<Settings*>(Settings::settings));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsStorageControllers::on_pushButtonFD_clicked() {
|
void SettingsStorageControllers::on_pushButtonFD_clicked() {
|
||||||
DeviceConfig::ConfigureDevice(fdc_card_getdevice(ui->comboBoxFD->currentData().toInt()));
|
DeviceConfig::ConfigureDevice(fdc_card_getdevice(ui->comboBoxFD->currentData().toInt()), 0, qobject_cast<Settings*>(Settings::settings));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsStorageControllers::on_pushButtonTertiaryIDE_clicked() {
|
void SettingsStorageControllers::on_pushButtonTertiaryIDE_clicked() {
|
||||||
DeviceConfig::ConfigureDevice(&ide_ter_device);
|
DeviceConfig::ConfigureDevice(&ide_ter_device, 0, qobject_cast<Settings*>(Settings::settings));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsStorageControllers::on_pushButtonQuaternaryIDE_clicked() {
|
void SettingsStorageControllers::on_pushButtonQuaternaryIDE_clicked() {
|
||||||
DeviceConfig::ConfigureDevice(&ide_qua_device);
|
DeviceConfig::ConfigureDevice(&ide_qua_device, 0, qobject_cast<Settings*>(Settings::settings));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsStorageControllers::on_comboBoxSCSI1_currentIndexChanged(int index) {
|
void SettingsStorageControllers::on_comboBoxSCSI1_currentIndexChanged(int index) {
|
||||||
@@ -233,17 +233,17 @@ void SettingsStorageControllers::on_comboBoxSCSI4_currentIndexChanged(int index)
|
|||||||
|
|
||||||
|
|
||||||
void SettingsStorageControllers::on_pushButtonSCSI1_clicked() {
|
void SettingsStorageControllers::on_pushButtonSCSI1_clicked() {
|
||||||
DeviceConfig::ConfigureDevice(scsi_card_getdevice(ui->comboBoxSCSI1->currentData().toInt()), 1);
|
DeviceConfig::ConfigureDevice(scsi_card_getdevice(ui->comboBoxSCSI1->currentData().toInt()), 1, qobject_cast<Settings*>(Settings::settings));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsStorageControllers::on_pushButtonSCSI2_clicked() {
|
void SettingsStorageControllers::on_pushButtonSCSI2_clicked() {
|
||||||
DeviceConfig::ConfigureDevice(scsi_card_getdevice(ui->comboBoxSCSI2->currentData().toInt()), 2);
|
DeviceConfig::ConfigureDevice(scsi_card_getdevice(ui->comboBoxSCSI2->currentData().toInt()), 2, qobject_cast<Settings*>(Settings::settings));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsStorageControllers::on_pushButtonSCSI3_clicked() {
|
void SettingsStorageControllers::on_pushButtonSCSI3_clicked() {
|
||||||
DeviceConfig::ConfigureDevice(scsi_card_getdevice(ui->comboBoxSCSI3->currentData().toInt()), 3);
|
DeviceConfig::ConfigureDevice(scsi_card_getdevice(ui->comboBoxSCSI3->currentData().toInt()), 3, qobject_cast<Settings*>(Settings::settings));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsStorageControllers::on_pushButtonSCSI4_clicked() {
|
void SettingsStorageControllers::on_pushButtonSCSI4_clicked() {
|
||||||
DeviceConfig::ConfigureDevice(scsi_card_getdevice(ui->comboBoxSCSI4->currentData().toInt()), 4);
|
DeviceConfig::ConfigureDevice(scsi_card_getdevice(ui->comboBoxSCSI4->currentData().toInt()), 4, qobject_cast<Settings*>(Settings::settings));
|
||||||
}
|
}
|
||||||
|
@@ -33,6 +33,12 @@ void StyleOverride::polish(QWidget* widget)
|
|||||||
{
|
{
|
||||||
QProxyStyle::polish(widget);
|
QProxyStyle::polish(widget);
|
||||||
/* Disable title bar context help buttons globally as they are unused. */
|
/* Disable title bar context help buttons globally as they are unused. */
|
||||||
if (widget->isWindow())
|
if (widget->isWindow()) {
|
||||||
|
if (widget->layout() && widget->minimumSize() == widget->maximumSize()) {
|
||||||
|
widget->setFixedSize(QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX));
|
||||||
|
widget->layout()->setSizeConstraint(QLayout::SetFixedSize);
|
||||||
|
widget->setWindowFlag(Qt::MSWindowsFixedSizeDialogHint, true);
|
||||||
|
}
|
||||||
widget->setWindowFlag(Qt::WindowContextHelpButtonHint, false);
|
widget->setWindowFlag(Qt::WindowContextHelpButtonHint, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include <QProxyStyle>
|
#include <QProxyStyle>
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
#include <QLayout>
|
||||||
|
|
||||||
class StyleOverride : public QProxyStyle
|
class StyleOverride : public QProxyStyle
|
||||||
{
|
{
|
||||||
@@ -16,4 +17,4 @@ public:
|
|||||||
void polish(QWidget* widget) override;
|
void polish(QWidget* widget) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user