From 7dddb9d111e8cf5738ba868cdc485a9c0226d51a Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Fri, 20 Dec 2019 00:54:37 -0600 Subject: [PATCH] Start work on Information page and add information fields to RGBController API --- Controllers/AuraController/AuraController.cpp | 14 +- Controllers/AuraController/AuraController.h | 6 +- .../CorsairController/CorsairController.cpp | 14 +- .../CorsairController/CorsairController.h | 6 +- .../CorsairProController.cpp | 14 +- .../CorsairProController.h | 6 +- .../HyperXController/HyperXController.cpp | 14 +- .../HyperXController/HyperXController.h | 6 +- .../RGBFusionController.cpp | 14 +- .../RGBFusionController/RGBFusionController.h | 6 +- OpenRGB.pro | 4 + RGBController/RGBController.h | 16 ++- RGBController/RGBController_Aura.cpp | 6 +- RGBController/RGBController_Corsair.cpp | 1 + RGBController/RGBController_Corsair.h | 2 +- RGBController/RGBController_CorsairPro.cpp | 1 + RGBController/RGBController_HyperX.cpp | 1 + RGBController/RGBController_RGBFusion.cpp | 2 + .../RGBController_RazerChromaSDK.cpp | 8 +- RGBController/RGBController_RazerChromaSDK.h | 6 +- qt/OpenRGBDeviceInfoPage.cpp | 49 +++++++ qt/OpenRGBDeviceInfoPage.h | 24 ++++ qt/OpenRGBDeviceInfoPage.ui | 123 ++++++++++++++++++ qt/OpenRGBDialog2.cpp | 52 ++++++++ qt/OpenRGBDialog2.ui | 12 +- 25 files changed, 363 insertions(+), 44 deletions(-) create mode 100644 qt/OpenRGBDeviceInfoPage.cpp create mode 100644 qt/OpenRGBDeviceInfoPage.h create mode 100644 qt/OpenRGBDeviceInfoPage.ui diff --git a/Controllers/AuraController/AuraController.cpp b/Controllers/AuraController/AuraController.cpp index 5c2bae6ae..b6fbc227b 100644 --- a/Controllers/AuraController/AuraController.cpp +++ b/Controllers/AuraController/AuraController.cpp @@ -82,11 +82,21 @@ AuraController::~AuraController() } -char * AuraController::GetDeviceName() +std::string AuraController::GetDeviceName() { return(device_name); } +std::string AuraController::GetDeviceLocation() +{ + std::string return_string(bus->device_name); + char addr[5]; + snprintf(addr, 5, "0x%02X", dev); + return_string.append(", address "); + return_string.append(addr); + return(return_string); +} + unsigned char AuraController::GetChannel(unsigned int led) { return(config_table[channel_cfg + led]); @@ -245,4 +255,4 @@ void AuraController::AuraRegisterWriteBlock(aura_register reg, unsigned char * d //Write Aura block data bus->i2c_smbus_write_block_data(dev, 0x03, sz, data); -} \ No newline at end of file +} diff --git a/Controllers/AuraController/AuraController.h b/Controllers/AuraController/AuraController.h index e7c72717c..09669e30f 100644 --- a/Controllers/AuraController/AuraController.h +++ b/Controllers/AuraController/AuraController.h @@ -7,6 +7,7 @@ | Adam Honse (CalcProgrammer1) 8/19/2018 | \*-----------------------------------------*/ +#include #include "i2c_smbus.h" #pragma once @@ -93,7 +94,8 @@ public: AuraController(i2c_smbus_interface* bus, aura_dev_id dev); ~AuraController(); - char* GetDeviceName(); + std::string GetDeviceName(); + std::string GetDeviceLocation(); unsigned char GetChannel(unsigned int led); const char* GetChannelName(unsigned int led); unsigned int GetLEDCount(); @@ -120,4 +122,4 @@ private: i2c_smbus_interface * bus; aura_dev_id dev; -}; \ No newline at end of file +}; diff --git a/Controllers/CorsairController/CorsairController.cpp b/Controllers/CorsairController/CorsairController.cpp index 740a9e614..9652c4410 100644 --- a/Controllers/CorsairController/CorsairController.cpp +++ b/Controllers/CorsairController/CorsairController.cpp @@ -24,11 +24,21 @@ CorsairController::~CorsairController() } -char * CorsairController::GetDeviceName() +std::string CorsairController::GetDeviceName() { return(device_name); } +std::string CorsairController::GetDeviceLocation() +{ + std::string return_string(bus->device_name); + char addr[5]; + snprintf(addr, 5, "0x%02X", dev); + return_string.append(", address "); + return_string.append(addr); + return(return_string); +} + unsigned int CorsairController::GetLEDCount() { return(led_count); @@ -55,4 +65,4 @@ void CorsairController::SetLEDColor(unsigned int led, unsigned char red, unsigne void CorsairController::SetMode(unsigned char mode) { bus->i2c_smbus_write_byte_data(dev, CORSAIR_VENGEANCE_RGB_CMD_MODE, CORSAIR_VENGEANCE_RGB_MODE_SINGLE); -} \ No newline at end of file +} diff --git a/Controllers/CorsairController/CorsairController.h b/Controllers/CorsairController/CorsairController.h index df19e4b65..87e1e9452 100644 --- a/Controllers/CorsairController/CorsairController.h +++ b/Controllers/CorsairController/CorsairController.h @@ -7,6 +7,7 @@ | Adam Honse (CalcProgrammer1) 3/8/2019 | \*-----------------------------------------*/ +#include #include "i2c_smbus.h" #pragma once @@ -38,7 +39,8 @@ public: CorsairController(i2c_smbus_interface* bus, corsair_dev_id dev); ~CorsairController(); - char* GetDeviceName(); + std::string GetDeviceName(); + std::string GetDeviceLocation(); unsigned int GetLEDCount(); void SetMode(unsigned char mode); @@ -50,4 +52,4 @@ private: unsigned int led_count; i2c_smbus_interface * bus; corsair_dev_id dev; -}; \ No newline at end of file +}; diff --git a/Controllers/CorsairProController/CorsairProController.cpp b/Controllers/CorsairProController/CorsairProController.cpp index 278324a7d..7bc10d5d3 100644 --- a/Controllers/CorsairProController/CorsairProController.cpp +++ b/Controllers/CorsairProController/CorsairProController.cpp @@ -42,11 +42,21 @@ CorsairProController::~CorsairProController() } -char* CorsairProController::GetDeviceName() +std::string CorsairProController::GetDeviceName() { return(device_name); } +std::string CorsairProController::GetDeviceLocation() +{ + std::string return_string(bus->device_name); + char addr[5]; + snprintf(addr, 5, "0x%02X", dev); + return_string.append(", address "); + return_string.append(addr); + return(return_string); +} + unsigned int CorsairProController::GetLEDCount() { return(led_count); @@ -134,4 +144,4 @@ bool CorsairProController::WaitReady() } return false; -} \ No newline at end of file +} diff --git a/Controllers/CorsairProController/CorsairProController.h b/Controllers/CorsairProController/CorsairProController.h index f15674006..9f3036431 100644 --- a/Controllers/CorsairProController/CorsairProController.h +++ b/Controllers/CorsairProController/CorsairProController.h @@ -7,6 +7,7 @@ | Adam Honse (CalcProgrammer1) 6/30/2019 | \*-----------------------------------------*/ +#include #include "i2c_smbus.h" #pragma once @@ -65,7 +66,8 @@ public: CorsairProController(i2c_smbus_interface* bus, corsair_dev_id dev); ~CorsairProController(); - char* GetDeviceName(); + std::string GetDeviceName(); + std::string GetDeviceLocation(); unsigned int GetLEDCount(); void SetEffect(unsigned char mode); void SetCustom(); @@ -85,4 +87,4 @@ private: i2c_smbus_interface* bus; corsair_dev_id dev; -}; \ No newline at end of file +}; diff --git a/Controllers/HyperXController/HyperXController.cpp b/Controllers/HyperXController/HyperXController.cpp index 2fcabb714..eb853d921 100644 --- a/Controllers/HyperXController/HyperXController.cpp +++ b/Controllers/HyperXController/HyperXController.cpp @@ -24,11 +24,21 @@ HyperXController::~HyperXController() } -char* HyperXController::GetDeviceName() +std::string HyperXController::GetDeviceName() { return(device_name); } +std::string HyperXController::GetDeviceLocation() +{ + std::string return_string(bus->device_name); + char addr[5]; + snprintf(addr, 5, "0x%02X", dev); + return_string.append(", address "); + return_string.append(addr); + return(return_string); +} + unsigned int HyperXController::GetLEDCount() { return(led_count); @@ -99,4 +109,4 @@ void HyperXController::SetMode(unsigned char mode) bus->i2c_smbus_write_byte_data(dev, HYPERX_REG_APPLY, 0x02); bus->i2c_smbus_write_byte_data(dev, HYPERX_REG_APPLY, 0x03); -} \ No newline at end of file +} diff --git a/Controllers/HyperXController/HyperXController.h b/Controllers/HyperXController/HyperXController.h index a8fc6659a..3545fdc48 100644 --- a/Controllers/HyperXController/HyperXController.h +++ b/Controllers/HyperXController/HyperXController.h @@ -7,6 +7,7 @@ | Adam Honse (CalcProgrammer1) 6/29/2019 | \*-----------------------------------------*/ +#include #include "i2c_smbus.h" #pragma once @@ -61,7 +62,8 @@ public: HyperXController(i2c_smbus_interface* bus, hyperx_dev_id dev); ~HyperXController(); - char* GetDeviceName(); + std::string GetDeviceName(); + std::string GetDeviceLocation(); unsigned int GetLEDCount(); void SetMode(unsigned char mode); @@ -73,4 +75,4 @@ private: unsigned int led_count; i2c_smbus_interface* bus; hyperx_dev_id dev; -}; \ No newline at end of file +}; diff --git a/Controllers/RGBFusionController/RGBFusionController.cpp b/Controllers/RGBFusionController/RGBFusionController.cpp index 15941cb4f..b293e6bc3 100644 --- a/Controllers/RGBFusionController/RGBFusionController.cpp +++ b/Controllers/RGBFusionController/RGBFusionController.cpp @@ -29,11 +29,21 @@ RGBFusionController::~RGBFusionController() } -char* RGBFusionController::GetDeviceName() +std::string RGBFusionController::GetDeviceName() { return(device_name); } +std::string RGBFusionController::GetDeviceLocation() +{ + std::string return_string(bus->device_name); + char addr[5]; + snprintf(addr, 5, "0x%02X", dev); + return_string.append(", address "); + return_string.append(addr); + return(return_string); +} + unsigned int RGBFusionController::GetLEDCount() { return(led_count); @@ -158,4 +168,4 @@ void RGBFusionController::set_mode_ch_1(unsigned char mode) void RGBFusionController::switch_bank(unsigned char bank) { bus->i2c_smbus_write_byte_data(dev, RGB_FUSION_BANK_SWITCH_REG, bank); -} \ No newline at end of file +} diff --git a/Controllers/RGBFusionController/RGBFusionController.h b/Controllers/RGBFusionController/RGBFusionController.h index d1db1af11..4f4b27845 100644 --- a/Controllers/RGBFusionController/RGBFusionController.h +++ b/Controllers/RGBFusionController/RGBFusionController.h @@ -7,6 +7,7 @@ | Adam Honse (CalcProgrammer1) 12/10/2019 | \*-----------------------------------------*/ +#include #include "i2c_smbus.h" #pragma once @@ -42,7 +43,8 @@ public: RGBFusionController(i2c_smbus_interface* bus, rgb_fusion_dev_id dev); ~RGBFusionController(); - char* GetDeviceName(); + std::string GetDeviceName(); + std::string GetDeviceLocation(); unsigned int GetLEDCount(); unsigned char GetMode(); void SetAllColors(unsigned char red, unsigned char green, unsigned char blue); @@ -66,4 +68,4 @@ private: i2c_smbus_interface* bus; rgb_fusion_dev_id dev; -}; \ No newline at end of file +}; diff --git a/OpenRGB.pro b/OpenRGB.pro index 055f61a61..2628971ee 100644 --- a/OpenRGB.pro +++ b/OpenRGB.pro @@ -22,6 +22,7 @@ INCLUDEPATH += \ SOURCES += \ main.cpp \ OpenAuraSDK.cpp \ + qt/OpenRGBDeviceInfoPage.cpp \ qt/OpenRGBDevicePage.cpp \ qt/OpenRGBDialog.cpp \ i2c_smbus/i2c_smbus.cpp \ @@ -52,6 +53,8 @@ SOURCES += \ RGBController/RGBController_RGBFusion.cpp HEADERS += \ + Controllers/RGBFusionController/RGBFusionController.h \ + qt/OpenRGBDeviceInfoPage.h \ qt/OpenRGBDevicePage.h \ qt/OpenRGBDialog.h \ i2c_smbus/i2c_smbus.h \ @@ -76,6 +79,7 @@ RESOURCES += \ qt/resources.qrc FORMS += \ + qt/OpenRGBDeviceInfoPage.ui \ qt/OpenRGBDevicePage.ui \ qt/OpenRGBDialog.ui \ qt/OpenRGBDialog2.ui diff --git a/RGBController/RGBController.h b/RGBController/RGBController.h index f7093862e..d240606a6 100644 --- a/RGBController/RGBController.h +++ b/RGBController/RGBController.h @@ -65,12 +65,16 @@ typedef struct class RGBController { public: - std::string name; /* controller name */ - std::vector leds; /* LEDs */ - std::vector zones; /* Zones */ - std::vector modes; /* Modes */ - std::vector colors; /* Color buffer */ - device_type type; /* device type */ + std::string name; /* controller name */ + std::string description; /* controller description */ + std::string version; /* controller version */ + std::string serial; /* controller serial number */ + std::string location; /* controller location */ + std::vector leds; /* LEDs */ + std::vector zones; /* Zones */ + std::vector modes; /* Modes */ + std::vector colors; /* Color buffer */ + device_type type; /* device type */ virtual int GetMode() = 0; virtual void SetMode(int mode) = 0; diff --git a/RGBController/RGBController_Aura.cpp b/RGBController/RGBController_Aura.cpp index dd7fd01dc..f60ab0612 100644 --- a/RGBController/RGBController_Aura.cpp +++ b/RGBController/RGBController_Aura.cpp @@ -118,15 +118,17 @@ RGBController_Aura::RGBController_Aura(AuraController * aura_ptr) aura = aura_ptr; - name = aura->GetDeviceName(); - + description = aura->GetDeviceName(); + location = aura->GetDeviceLocation(); if((name.rfind("DIMM_LED", 0) == 0) || (name.rfind("AUDA", 0) == 0) ) { type = DEVICE_TYPE_DRAM; + name = "ASUS Aura DRAM"; } else { type = DEVICE_TYPE_MOTHERBOARD; + name = "ASUS Aura Motherboard"; } mode aura_modes[AURA_NUMBER_MODES + 1]; diff --git a/RGBController/RGBController_Corsair.cpp b/RGBController/RGBController_Corsair.cpp index 026e11c00..0ccffe6fa 100644 --- a/RGBController/RGBController_Corsair.cpp +++ b/RGBController/RGBController_Corsair.cpp @@ -67,6 +67,7 @@ RGBController_Corsair::RGBController_Corsair(CorsairController* corsair_ptr) corsair = corsair_ptr; name = corsair->GetDeviceName(); + location = corsair->GetDeviceLocation(); type = DEVICE_TYPE_DRAM; diff --git a/RGBController/RGBController_Corsair.h b/RGBController/RGBController_Corsair.h index e27edc1d2..812df8c06 100644 --- a/RGBController/RGBController_Corsair.h +++ b/RGBController/RGBController_Corsair.h @@ -26,4 +26,4 @@ public: private: CorsairController* corsair; -}; \ No newline at end of file +}; diff --git a/RGBController/RGBController_CorsairPro.cpp b/RGBController/RGBController_CorsairPro.cpp index ae7782a6d..a9b97a57a 100644 --- a/RGBController/RGBController_CorsairPro.cpp +++ b/RGBController/RGBController_CorsairPro.cpp @@ -103,6 +103,7 @@ RGBController_CorsairPro::RGBController_CorsairPro(CorsairProController* corsair corsair = corsair_ptr; name = corsair->GetDeviceName(); + location = corsair->GetDeviceLocation(); type = DEVICE_TYPE_DRAM; diff --git a/RGBController/RGBController_HyperX.cpp b/RGBController/RGBController_HyperX.cpp index 13ab70074..da058f1d6 100644 --- a/RGBController/RGBController_HyperX.cpp +++ b/RGBController/RGBController_HyperX.cpp @@ -67,6 +67,7 @@ RGBController_HyperX::RGBController_HyperX(HyperXController* hyperx_ptr) hyperx = hyperx_ptr; name = hyperx->GetDeviceName(); + location = hyperx->GetDeviceLocation(); type = DEVICE_TYPE_DRAM; diff --git a/RGBController/RGBController_RGBFusion.cpp b/RGBController/RGBController_RGBFusion.cpp index 950cedb39..33ab3e3d2 100644 --- a/RGBController/RGBController_RGBFusion.cpp +++ b/RGBController/RGBController_RGBFusion.cpp @@ -74,6 +74,8 @@ RGBController_RGBFusion::RGBController_RGBFusion(RGBFusionController* rgb_fusion rgb_fusion = rgb_fusion_ptr; name = rgb_fusion->GetDeviceName(); + description = "RGB Fusion 1.0"; + location = rgb_fusion->GetDeviceLocation(); type = DEVICE_TYPE_MOTHERBOARD; diff --git a/RGBController/RGBController_RazerChromaSDK.cpp b/RGBController/RGBController_RazerChromaSDK.cpp index 5cf593a00..8ec5e4a98 100644 --- a/RGBController/RGBController_RazerChromaSDK.cpp +++ b/RGBController/RGBController_RazerChromaSDK.cpp @@ -22,9 +22,11 @@ RGBController_RazerChromaSDK::RGBController_RazerChromaSDK(unsigned int device_t for (int i = 0; i < RAZER_NUM_DEVICES; i++) { - if (device_list[i]->type == device_type) + if (device_list[i]->razer_type == device_type) { name = device_list[i]->name; + type = device_list[i]->type; + location = "Razer Chroma SDK"; for (int zone_id = 0; zone_id < RAZER_MAX_ZONES; zone_id++) { @@ -115,7 +117,7 @@ void RGBController_RazerChromaSDK::SetLED(int led, RGBColor color) void RGBController_RazerChromaSDK::UpdateLEDs() { - switch (device->type) + switch (device->razer_type) { case RAZER_GENERIC_MOUSE: { @@ -186,4 +188,4 @@ void RGBController_RazerChromaSDK::UpdateLEDs() } break; } -} \ No newline at end of file +} diff --git a/RGBController/RGBController_RazerChromaSDK.h b/RGBController/RGBController_RazerChromaSDK.h index 848d6d3fd..dd2c468ea 100644 --- a/RGBController/RGBController_RazerChromaSDK.h +++ b/RGBController/RGBController_RazerChromaSDK.h @@ -59,6 +59,7 @@ typedef struct typedef struct { std::string name; + unsigned int razer_type; unsigned int type; const razer_zone* zones[RAZER_MAX_ZONES]; } razer_device; @@ -136,6 +137,7 @@ static const razer_device mouse_device = { "Razer Generic Mouse", RAZER_GENERIC_MOUSE, + DEVICE_TYPE_MOUSE, { &mouse_left_zone, &mouse_right_zone, @@ -164,6 +166,7 @@ static const razer_device mousepad_device = { "Razer Generic Mousepad", RAZER_GENERIC_MOUSEPAD, + DEVICE_TYPE_MOUSE, { &mousepad_zone, NULL, @@ -204,6 +207,7 @@ static const razer_device chromahdk_device = { "Razer Chroma HDK", RAZER_CHROMA_HDK, + DEVICE_TYPE_LEDSTRIP, { &chromahdk_zone, &chromahdk_zone, @@ -242,4 +246,4 @@ private: static CREATEMOUSEPADEFFECT CreateMousepadEffect; static CREATEHEADSETEFFECT CreateHeadsetEffect; static CREATECHROMALINKEFFECT CreateChromaLinkEffect; -}; \ No newline at end of file +}; diff --git a/qt/OpenRGBDeviceInfoPage.cpp b/qt/OpenRGBDeviceInfoPage.cpp new file mode 100644 index 000000000..9838cc339 --- /dev/null +++ b/qt/OpenRGBDeviceInfoPage.cpp @@ -0,0 +1,49 @@ +#include "OpenRGBDeviceInfoPage.h" + +using namespace Ui; + +OpenRGBDeviceInfoPage::OpenRGBDeviceInfoPage(RGBController *dev, QWidget *parent) : + QFrame(parent), + ui(new Ui::OpenRGBDeviceInfoPageUi) +{ + ui->setupUi(this); + + switch(dev->type) + { + case DEVICE_TYPE_MOTHERBOARD: + ui->TypeValue->setText("Motherboard"); + break; + case DEVICE_TYPE_DRAM: + ui->TypeValue->setText("DRAM"); + break; + case DEVICE_TYPE_GPU: + ui->TypeValue->setText("GPU"); + break; + case DEVICE_TYPE_COOLER: + ui->TypeValue->setText("Cooler"); + break; + case DEVICE_TYPE_LEDSTRIP: + ui->TypeValue->setText("LED Strip"); + break; + case DEVICE_TYPE_KEYBOARD: + ui->TypeValue->setText("Keyboard"); + break; + case DEVICE_TYPE_MOUSE: + ui->TypeValue->setText("Mouse"); + break; + case DEVICE_TYPE_HEADSET: + ui->TypeValue->setText("Headset"); + break; + default: + ui->TypeValue->setText("Unknown"); + } + + ui->DescriptionValue->setText(QString::fromStdString(dev->description)); + ui->VersionValue->setText(QString::fromStdString(dev->version)); + ui->LocationValue->setText(QString::fromStdString(dev->location)); +} + +OpenRGBDeviceInfoPage::~OpenRGBDeviceInfoPage() +{ + delete ui; +} diff --git a/qt/OpenRGBDeviceInfoPage.h b/qt/OpenRGBDeviceInfoPage.h new file mode 100644 index 000000000..bb11951a8 --- /dev/null +++ b/qt/OpenRGBDeviceInfoPage.h @@ -0,0 +1,24 @@ +#ifndef OPENRGBDEVICEINFOPAGE_H +#define OPENRGBDEVICEINFOPAGE_H + +#include +#include "RGBController.h" +#include "ui_OpenRGBDeviceInfoPage.h" + +namespace Ui { +class OpenRGBDeviceInfoPage; +} + +class Ui::OpenRGBDeviceInfoPage : public QFrame +{ + Q_OBJECT + +public: + explicit OpenRGBDeviceInfoPage(RGBController *dev, QWidget *parent = nullptr); + ~OpenRGBDeviceInfoPage(); + +private: + Ui::OpenRGBDeviceInfoPageUi *ui; +}; + +#endif // OPENRGBDEVICEINFOPAGE_H diff --git a/qt/OpenRGBDeviceInfoPage.ui b/qt/OpenRGBDeviceInfoPage.ui new file mode 100644 index 000000000..711689a9e --- /dev/null +++ b/qt/OpenRGBDeviceInfoPage.ui @@ -0,0 +1,123 @@ + + + OpenRGBDeviceInfoPageUi + + + + 0 + 0 + 500 + 300 + + + + Frame + + + + + 100 + 80 + 60 + 14 + + + + Type: + + + + + + 180 + 80 + 240 + 14 + + + + Type Value + + + + + + 180 + 100 + 240 + 14 + + + + Description Value + + + + + + 100 + 100 + 60 + 14 + + + + Description: + + + + + + 180 + 120 + 240 + 14 + + + + Version Value + + + + + + 100 + 120 + 60 + 14 + + + + Version: + + + + + + 100 + 140 + 60 + 14 + + + + Location: + + + + + + 180 + 140 + 240 + 14 + + + + Location Value + + + + + + diff --git a/qt/OpenRGBDialog2.cpp b/qt/OpenRGBDialog2.cpp index b21621aa2..5a322fde3 100644 --- a/qt/OpenRGBDialog2.cpp +++ b/qt/OpenRGBDialog2.cpp @@ -1,5 +1,6 @@ #include "OpenRGBDialog2.h" #include "OpenRGBDevicePage.h" +#include "OpenRGBDeviceInfoPage.h" #include "OpenAuraSDK.h" #include #include @@ -65,6 +66,57 @@ OpenRGBDialog2::OpenRGBDialog2(std::vector& bus, std::vec DevicesTabBar->setTabButton(dev_idx, QTabBar::LeftSide, NewTabLabel); } + /*-----------------------------------------------------*\ + | Set up list of information | + \*-----------------------------------------------------*/ + QTabBar *InformationTabBar = ui->InformationTabBar->tabBar(); + + for(int dev_idx = 0; dev_idx < control.size(); dev_idx++) + { + OpenRGBDeviceInfoPage *NewPage = new OpenRGBDeviceInfoPage(control[dev_idx]); + ui->InformationTabBar->addTab(NewPage, ""); + + /*-----------------------------------------------------*\ + | Use Qt's HTML capabilities to display both icon and | + | text in the tab label. Choose icon based on device | + | type and append device name string. | + \*-----------------------------------------------------*/ + QString NewLabelString = "
" + QString::fromStdString(control[dev_idx]->name) + "
"; + + QLabel *NewTabLabel = new QLabel(); + NewTabLabel->setText(NewLabelString); + NewTabLabel->setIndent(20); + NewTabLabel->setGeometry(0, 0, 200, 20); + + InformationTabBar->setTabButton(dev_idx, QTabBar::LeftSide, NewTabLabel); + } } OpenRGBDialog2::~OpenRGBDialog2() diff --git a/qt/OpenRGBDialog2.ui b/qt/OpenRGBDialog2.ui index 3cdca33e6..d184587b1 100644 --- a/qt/OpenRGBDialog2.ui +++ b/qt/OpenRGBDialog2.ui @@ -101,18 +101,8 @@ QTabWidget::West - 0 + -1 - - - System - - - - - Tab 2 - -