From 696008b48ffe03101cdcd0269922ee87d3441bac Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Wed, 26 Nov 2025 12:49:25 -0600 Subject: [PATCH] Add manual device configuration for QMK VialRGB protocol --- .../QMKORGBSettingsEntry.cpp | 2 +- .../QMKORGBSettingsEntry.h | 2 +- .../QMKORGBSettingsEntry.ui | 4 +- .../QMKVialRGBSettingsEntry.cpp | 79 +++++++++++++++++++ .../QMKVialRGBSettingsEntry.h | 35 ++++++++ .../QMKVialRGBSettingsEntry.ui | 71 +++++++++++++++++ 6 files changed, 189 insertions(+), 4 deletions(-) create mode 100644 qt/ManualDevicesSettingsPage/QMKVialRGBSettingsEntry/QMKVialRGBSettingsEntry.cpp create mode 100644 qt/ManualDevicesSettingsPage/QMKVialRGBSettingsEntry/QMKVialRGBSettingsEntry.h create mode 100644 qt/ManualDevicesSettingsPage/QMKVialRGBSettingsEntry/QMKVialRGBSettingsEntry.ui diff --git a/qt/ManualDevicesSettingsPage/QMKORGBSettingsEntry/QMKORGBSettingsEntry.cpp b/qt/ManualDevicesSettingsPage/QMKORGBSettingsEntry/QMKORGBSettingsEntry.cpp index 1c5c22bc..79bba50f 100644 --- a/qt/ManualDevicesSettingsPage/QMKORGBSettingsEntry/QMKORGBSettingsEntry.cpp +++ b/qt/ManualDevicesSettingsPage/QMKORGBSettingsEntry/QMKORGBSettingsEntry.cpp @@ -74,6 +74,6 @@ static BaseManualDeviceEntry* SpawnQMKORGBSettingsEntry(const json& data) return entry; } -static const char* QMKDeviceName = QT_TRANSLATE_NOOP("ManualDevice", "QMK (built with ORGB support)"); +static const char* QMKDeviceName = QT_TRANSLATE_NOOP("ManualDevice", "QMK (OpenRGB Protocol)"); REGISTER_MANUAL_DEVICE_TYPE(QMKDeviceName, "QMKOpenRGBDevices", SpawnQMKORGBSettingsEntry); diff --git a/qt/ManualDevicesSettingsPage/QMKORGBSettingsEntry/QMKORGBSettingsEntry.h b/qt/ManualDevicesSettingsPage/QMKORGBSettingsEntry/QMKORGBSettingsEntry.h index 869bdd62..68d5fad1 100644 --- a/qt/ManualDevicesSettingsPage/QMKORGBSettingsEntry/QMKORGBSettingsEntry.h +++ b/qt/ManualDevicesSettingsPage/QMKORGBSettingsEntry/QMKORGBSettingsEntry.h @@ -1,5 +1,5 @@ /*---------------------------------------------------------*\ -| QMKORGBSettingsEntry.h | +| QMKORGBSettingsEntry.h | | | | User interface entry for OpenRGB QMK configuration | | | diff --git a/qt/ManualDevicesSettingsPage/QMKORGBSettingsEntry/QMKORGBSettingsEntry.ui b/qt/ManualDevicesSettingsPage/QMKORGBSettingsEntry/QMKORGBSettingsEntry.ui index df0b4c76..2a4bcc0f 100644 --- a/qt/ManualDevicesSettingsPage/QMKORGBSettingsEntry/QMKORGBSettingsEntry.ui +++ b/qt/ManualDevicesSettingsPage/QMKORGBSettingsEntry/QMKORGBSettingsEntry.ui @@ -17,13 +17,13 @@ - QMK Settings Entry + QMK OpenRGB Settings Entry - QMK Device + QMK OpenRGB Device diff --git a/qt/ManualDevicesSettingsPage/QMKVialRGBSettingsEntry/QMKVialRGBSettingsEntry.cpp b/qt/ManualDevicesSettingsPage/QMKVialRGBSettingsEntry/QMKVialRGBSettingsEntry.cpp new file mode 100644 index 00000000..5748564e --- /dev/null +++ b/qt/ManualDevicesSettingsPage/QMKVialRGBSettingsEntry/QMKVialRGBSettingsEntry.cpp @@ -0,0 +1,79 @@ +/*---------------------------------------------------------*\ +| QMKVialRGBSettingsEntry.cpp | +| | +| User interface entry for VialRGB QMK configuration | +| | +| This file is part of the OpenRGB project | +| SPDX-License-Identifier: GPL-2.0-or-later | +\*---------------------------------------------------------*/ + +#include "QMKVialRGBSettingsEntry.h" +#include "ui_QMKVialRGBSettingsEntry.h" + +QMKVialRGBSettingsEntry::QMKVialRGBSettingsEntry(QWidget *parent) : + BaseManualDeviceEntry(parent), + ui(new Ui::QMKVialRGBSettingsEntry) +{ + ui->setupUi(this); +} + +QMKVialRGBSettingsEntry::~QMKVialRGBSettingsEntry() +{ + delete ui; +} + +void QMKVialRGBSettingsEntry::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + +void QMKVialRGBSettingsEntry::loadFromSettings(const json& data) +{ + if(data.contains("name")) + { + ui->NameEdit->setText(QString::fromStdString(data["name"])); + } + + if(data.contains("usb_vid")) + { + ui->USBVIDEdit->setText(QString::fromStdString(data["usb_vid"])); + } + + if(data.contains("usb_pid")) + { + ui->USBPIDEdit->setText(QString::fromStdString(data["usb_pid"])); + } +} + +json QMKVialRGBSettingsEntry::saveSettings() +{ + json result; + /*-------------------------------------------------*\ + | Required parameters | + \*-------------------------------------------------*/ + result["name"] = ui->NameEdit->text().toStdString(); + result["usb_vid"] = ui->USBVIDEdit->text().toStdString(); + result["usb_pid"] = ui->USBPIDEdit->text().toStdString(); + + return result; +} + +bool QMKVialRGBSettingsEntry::isDataValid() +{ + // stub + return true; +} + +static BaseManualDeviceEntry* SpawnQMKVialRGBSettingsEntry(const json& data) +{ + QMKVialRGBSettingsEntry* entry = new QMKVialRGBSettingsEntry; + entry->loadFromSettings(data); + return entry; +} + +static const char* QMKDeviceName = QT_TRANSLATE_NOOP("ManualDevice", "QMK (VialRGB Protocol)"); + +REGISTER_MANUAL_DEVICE_TYPE(QMKDeviceName, "QMKVialRGBDevices", SpawnQMKVialRGBSettingsEntry); diff --git a/qt/ManualDevicesSettingsPage/QMKVialRGBSettingsEntry/QMKVialRGBSettingsEntry.h b/qt/ManualDevicesSettingsPage/QMKVialRGBSettingsEntry/QMKVialRGBSettingsEntry.h new file mode 100644 index 00000000..2fdc12eb --- /dev/null +++ b/qt/ManualDevicesSettingsPage/QMKVialRGBSettingsEntry/QMKVialRGBSettingsEntry.h @@ -0,0 +1,35 @@ +/*---------------------------------------------------------*\ +| QMKVialRGBSettingsEntry.h | +| | +| User interface entry for VialRGB QMK configuration | +| | +| This file is part of the OpenRGB project | +| SPDX-License-Identifier: GPL-2.0-or-later | +\*---------------------------------------------------------*/ + +#pragma once + +#include "BaseManualDeviceEntry.h" + +namespace Ui +{ + class QMKVialRGBSettingsEntry; +} + +class QMKVialRGBSettingsEntry : public BaseManualDeviceEntry +{ + Q_OBJECT + +private slots: + void changeEvent(QEvent *event) override; + +public: + explicit QMKVialRGBSettingsEntry(QWidget *parent = nullptr); + ~QMKVialRGBSettingsEntry(); + void loadFromSettings(const json& data); + json saveSettings() override; + bool isDataValid() override; + +private: + Ui::QMKVialRGBSettingsEntry *ui; +}; diff --git a/qt/ManualDevicesSettingsPage/QMKVialRGBSettingsEntry/QMKVialRGBSettingsEntry.ui b/qt/ManualDevicesSettingsPage/QMKVialRGBSettingsEntry/QMKVialRGBSettingsEntry.ui new file mode 100644 index 00000000..b5eba605 --- /dev/null +++ b/qt/ManualDevicesSettingsPage/QMKVialRGBSettingsEntry/QMKVialRGBSettingsEntry.ui @@ -0,0 +1,71 @@ + + + QMKVialRGBSettingsEntry + + + + 0 + 0 + 531 + 237 + + + + + 0 + 0 + + + + QMK VialRGB Settings Entry + + + + + + QMK VialRGB Device + + + + + + + + + + + + Name: + + + + + + + + + + USB PID: + + + + + + + USB VID: + + + + + + + + + + NameEdit + USBVIDEdit + USBPIDEdit + + + +