Initial Qt Commit
This commit is contained in:
81
src/qt/qt_settingsports.cpp
Normal file
81
src/qt/qt_settingsports.cpp
Normal file
@@ -0,0 +1,81 @@
|
||||
#include "qt_settingsports.hpp"
|
||||
#include "ui_qt_settingsports.h"
|
||||
|
||||
extern "C" {
|
||||
#include <86box/86box.h>
|
||||
#include <86box/timer.h>
|
||||
#include <86box/device.h>
|
||||
#include <86box/machine.h>
|
||||
#include <86box/lpt.h>
|
||||
}
|
||||
|
||||
#include "qt_deviceconfig.hpp"
|
||||
#include "qt_models_common.hpp"
|
||||
|
||||
SettingsPorts::SettingsPorts(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
ui(new Ui::SettingsPorts)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
auto* cbox = findChild<QComboBox*>(QString("comboBoxLpt%1").arg(i+1));
|
||||
auto* model = cbox->model();
|
||||
int c = 0;
|
||||
int selectedRow = 0;
|
||||
while (true) {
|
||||
const char* lptName = lpt_device_get_name(c);
|
||||
if (lptName == nullptr) {
|
||||
break;
|
||||
}
|
||||
|
||||
Models::AddEntry(model, lptName, c);
|
||||
if (c == lpt_ports[i].device) {
|
||||
selectedRow = c;
|
||||
}
|
||||
c++;
|
||||
}
|
||||
cbox->setCurrentIndex(selectedRow);
|
||||
|
||||
auto* checkBox = findChild<QCheckBox*>(QString("checkBoxParallel%1").arg(i+1));
|
||||
checkBox->setChecked(lpt_ports[i].enabled > 0);
|
||||
cbox->setEnabled(lpt_ports[i].enabled > 0);
|
||||
}
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
auto* checkBox = findChild<QCheckBox*>(QString("checkBoxSerial%1").arg(i+1));
|
||||
checkBox->setChecked(serial_enabled[i] > 0);
|
||||
}
|
||||
}
|
||||
|
||||
SettingsPorts::~SettingsPorts()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void SettingsPorts::save() {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
auto* cbox = findChild<QComboBox*>(QString("comboBoxLpt%1").arg(i+1));
|
||||
auto* checkBox = findChild<QCheckBox*>(QString("checkBoxParallel%1").arg(i+1));
|
||||
lpt_ports[i].device = cbox->currentData().toInt();
|
||||
lpt_ports[i].enabled = checkBox->isChecked() ? 1 : 0;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
auto* checkBox = findChild<QCheckBox*>(QString("checkBoxSerial%1").arg(i+1));
|
||||
serial_enabled[i] = checkBox->isChecked() ? 1 : 0;
|
||||
}
|
||||
}
|
||||
|
||||
void SettingsPorts::on_checkBoxParallel1_stateChanged(int state) {
|
||||
ui->comboBoxLpt1->setEnabled(state == Qt::Checked);
|
||||
}
|
||||
|
||||
void SettingsPorts::on_checkBoxParallel2_stateChanged(int state) {
|
||||
ui->comboBoxLpt2->setEnabled(state == Qt::Checked);
|
||||
}
|
||||
|
||||
void SettingsPorts::on_checkBoxParallel3_stateChanged(int state) {
|
||||
ui->comboBoxLpt3->setEnabled(state == Qt::Checked);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user