Merge branch '86Box:master' into master

This commit is contained in:
starfrost
2025-05-07 01:14:25 +01:00
committed by GitHub
57 changed files with 2866 additions and 1114 deletions

View File

@@ -189,6 +189,53 @@ MainWindow::MainWindow(QWidget *parent)
ui->menuEGA_S_VGA_settings->menuAction()->setMenuRole(QAction::NoRole);
ui->stackedWidget->setMouseTracking(true);
statusBar()->setVisible(!hide_status_bar);
num_icon = QIcon(":/settings/qt/icons/num_lock_on.ico");
num_icon_off = QIcon(":/settings/qt/icons/num_lock_off.ico");
scroll_icon = QIcon(":/settings/qt/icons/scroll_lock_on.ico");
scroll_icon_off = QIcon(":/settings/qt/icons/scroll_lock_off.ico");
caps_icon = QIcon(":/settings/qt/icons/caps_lock_on.ico");
caps_icon_off = QIcon(":/settings/qt/icons/caps_lock_off.ico");
kana_icon = QIcon(":/settings/qt/icons/kana_lock_on.ico");
kana_icon_off = QIcon(":/settings/qt/icons/kana_lock_off.ico");
num_label = new QLabel;
num_label->setPixmap(num_icon_off.pixmap(QSize(16, 16)));
statusBar()->addPermanentWidget(num_label);
caps_label = new QLabel;
caps_label->setPixmap(caps_icon_off.pixmap(QSize(16, 16)));
statusBar()->addPermanentWidget(caps_label);
scroll_label = new QLabel;
scroll_label->setPixmap(scroll_icon_off.pixmap(QSize(16, 16)));
statusBar()->addPermanentWidget(scroll_label);
kana_label = new QLabel;
kana_label->setPixmap(kana_icon_off.pixmap(QSize(16, 16)));
statusBar()->addPermanentWidget(kana_label);
QTimer* ledKeyboardTimer = new QTimer(this);
ledKeyboardTimer->setTimerType(Qt::CoarseTimer);
ledKeyboardTimer->setInterval(1);
connect(ledKeyboardTimer, &QTimer::timeout, this, [this] () {
uint8_t caps, num, scroll, kana;
keyboard_get_states(&caps, &num, &scroll, &kana);
if (num_label->isVisible())
num_label->setPixmap(num ? this->num_icon.pixmap(QSize(16, 16)) : this->num_icon_off.pixmap(QSize(16, 16)));
if (caps_label->isVisible())
caps_label->setPixmap(caps ? this->caps_icon.pixmap(QSize(16, 16)) : this->caps_icon_off.pixmap(QSize(16, 16)));
if (scroll_label->isVisible())
scroll_label->setPixmap(scroll ? this->scroll_icon.pixmap(QSize(16, 16)) :
this->scroll_icon_off.pixmap(QSize(16, 16)));
if (kana_label->isVisible())
kana_label->setPixmap(kana ? this->kana_icon.pixmap(QSize(16, 16)) :
this->kana_icon_off.pixmap(QSize(16, 16)));
});
ledKeyboardTimer->start();
#ifdef Q_OS_WINDOWS
util::setWin11RoundedCorners(this->winId(), (hide_status_bar ? false : true));
#endif
@@ -216,6 +263,12 @@ MainWindow::MainWindow(QWidget *parent)
connect(this, &MainWindow::hardResetCompleted, this, [this]() {
ui->actionMCA_devices->setVisible(machine_has_bus(machine, MACHINE_BUS_MCA));
num_label->setVisible(machine_has_bus(machine, MACHINE_BUS_PS2_PORTS | MACHINE_BUS_AT_KBD));
scroll_label->setVisible(machine_has_bus(machine, MACHINE_BUS_PS2_PORTS | MACHINE_BUS_AT_KBD));
caps_label->setVisible(machine_has_bus(machine, MACHINE_BUS_PS2_PORTS | MACHINE_BUS_AT_KBD));
/* TODO: Base this on keyboard type instead when that's done. */
kana_label->setVisible(machine_has_bus(machine, MACHINE_BUS_PS2_PORTS | MACHINE_BUS_AT_KBD) &&
machine_has_flags(machine, MACHINE_AX));
while (QApplication::overrideCursor())
QApplication::restoreOverrideCursor();
#ifdef USE_WACOM
@@ -1458,6 +1511,12 @@ MainWindow::refreshMediaMenu()
status->refresh(ui->statusbar);
ui->actionMCA_devices->setVisible(machine_has_bus(machine, MACHINE_BUS_MCA));
ui->actionACPI_Shutdown->setEnabled(!!acpi_enabled);
num_label->setVisible(machine_has_bus(machine, MACHINE_BUS_PS2_PORTS | MACHINE_BUS_AT_KBD));
scroll_label->setVisible(machine_has_bus(machine, MACHINE_BUS_PS2_PORTS | MACHINE_BUS_AT_KBD));
caps_label->setVisible(machine_has_bus(machine, MACHINE_BUS_PS2_PORTS | MACHINE_BUS_AT_KBD));
kana_label->setVisible(machine_has_bus(machine, MACHINE_BUS_PS2_PORTS | MACHINE_BUS_AT_KBD) &&
machine_has_flags(machine, MACHINE_AX));
}
void