diff --git a/OpenRGB.pro b/OpenRGB.pro index 3ed8fa2a..829b00f4 100644 --- a/OpenRGB.pro +++ b/OpenRGB.pro @@ -154,6 +154,7 @@ HEADERS += DeviceDetector.h \ filesystem.h \ qt/DetectorTableModel.h \ + qt/DeviceTabHeader.h \ qt/OpenRGBClientInfoPage.h \ qt/OpenRGBDeviceInfoPage.h \ qt/OpenRGBDevicePage.h \ @@ -462,6 +463,7 @@ SOURCES += ResourceManager.cpp \ SettingsManager.cpp \ qt/DetectorTableModel.cpp \ + qt/DeviceTabHeader.cpp \ qt/OpenRGBClientInfoPage.cpp \ qt/OpenRGBDeviceInfoPage.cpp \ qt/OpenRGBDevicePage.cpp \ @@ -795,6 +797,7 @@ RESOURCES += qt/resources.qrc FORMS += \ + qt/DeviceTabHeader.ui \ qt/OpenRGBClientInfoPage.ui \ qt/OpenRGBDeviceInfoPage.ui \ qt/OpenRGBDevicePage.ui \ diff --git a/qt/DeviceTabHeader.cpp b/qt/DeviceTabHeader.cpp new file mode 100644 index 00000000..5047fd91 --- /dev/null +++ b/qt/DeviceTabHeader.cpp @@ -0,0 +1,15 @@ +#include "DeviceTabHeader.h" + +Ui::DeviceTabHeader::DeviceTabHeader(QString icon, QString device_name) : + QWidget(nullptr), + ui(new Ui::DeviceTabHeaderUi) +{ + ui->setupUi(this); + ui->device_icon->setText(""); + ui->device_name->setText(device_name); +} + +Ui::DeviceTabHeader::~DeviceTabHeader() +{ + delete ui; +} diff --git a/qt/DeviceTabHeader.h b/qt/DeviceTabHeader.h new file mode 100644 index 00000000..9833d038 --- /dev/null +++ b/qt/DeviceTabHeader.h @@ -0,0 +1,23 @@ +#ifndef DEVICETABHEADER_H +#define DEVICETABHEADER_H + +#include +#include "ui_DeviceTabHeader.h" + +namespace Ui { +class DeviceTabHeader; +} + +class Ui::DeviceTabHeader : public QWidget +{ + Q_OBJECT + +public: + DeviceTabHeader(QString, QString); + ~DeviceTabHeader(); + +private: + Ui::DeviceTabHeaderUi *ui; +}; + +#endif // DEVICETABHEADER_H diff --git a/qt/DeviceTabHeader.ui b/qt/DeviceTabHeader.ui new file mode 100644 index 00000000..dc3de4d3 --- /dev/null +++ b/qt/DeviceTabHeader.ui @@ -0,0 +1,50 @@ + + + DeviceTabHeaderUi + + + + 0 + 0 + 224 + 43 + + + + Form + + + + + + + 16 + 16 + + + + + 16 + 16 + + + + + + + + + + + device name + + + true + + + + + + + + diff --git a/qt/OpenRGBDialog2.cpp b/qt/OpenRGBDialog2.cpp index 04cde1ea..d747a9bf 100644 --- a/qt/OpenRGBDialog2.cpp +++ b/qt/OpenRGBDialog2.cpp @@ -5,6 +5,7 @@ #include "OpenRGBServerInfoPage.h" #include "OpenRGBPluginContainer.h" #include "OpenRGBProfileSaveDialog.h" +#include "DeviceTabHeader.h" #include "ResourceManager.h" #include #include @@ -883,23 +884,12 @@ void OpenRGBDialog2::UpdateDevicesList() | text in the tab label. Choose icon based on device | | type and append device name string. | \*-----------------------------------------------------*/ - QString NewLabelString = "
" + QString::fromStdString(controllers[controller_idx]->name) + "
"; + DeviceTabHeader* device_tab_header = new DeviceTabHeader( + GetIconString(controllers[controller_idx]->type, IsDarkTheme()), + QString::fromStdString(controllers[controller_idx]->name) + ); - QLabel *NewTabLabel = new QLabel(); - NewTabLabel->setText(NewLabelString); - NewTabLabel->setIndent(20); - if(IsDarkTheme()) - { - NewTabLabel->setGeometry(0, 25, 200, 50); - } - else - { - NewTabLabel->setGeometry(0, 0, 200, 25); - } - - ui->DevicesTabBar->tabBar()->setTabButton(ui->DevicesTabBar->count() - 1, QTabBar::LeftSide, NewTabLabel); + ui->DevicesTabBar->tabBar()->setTabButton(ui->DevicesTabBar->count() - 1, QTabBar::LeftSide, device_tab_header); ui->DevicesTabBar->tabBar()->setTabToolTip(ui->DevicesTabBar->count() - 1, QString::fromStdString(controllers[controller_idx]->name)); /*-----------------------------------------------------*\