mirror of
https://github.com/CalcProgrammer1/OpenRGB.git
synced 2026-05-24 14:35:01 -04:00
* Add JSON string configuration field to RGBController to store device-specific configurations
* This JSON string holds both configuration and schema
* Add settings schema tracking to SettingsManager
* Implement dynamic settings widget that generates a settings UI based on a JSON schema
* Implement SettingsManager callback for notifying of settings changes and settings schema updates
* Always enable Entire Device zone option and use it to enable Edit Device
* Rename SaveSizes to SaveConfiguration in ProfileManager and Sizes.json to Configuration.json
* Add zone flag for indicating that a zone's geometry may change, informing profile manager to ignore this check
* Remove Theme setting and Theme Manager, as this didn't work on most setups anyways and Qt6 has proper Windows dark theming
270 lines
7.8 KiB
XML
270 lines
7.8 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<ui version="4.0">
|
|
<class>OpenRGBZoneEditorDialog</class>
|
|
<widget class="QDialog" name="OpenRGBZoneEditorDialog">
|
|
<property name="geometry">
|
|
<rect>
|
|
<x>0</x>
|
|
<y>0</y>
|
|
<width>750</width>
|
|
<height>496</height>
|
|
</rect>
|
|
</property>
|
|
<property name="windowTitle">
|
|
<string>Zone Editor</string>
|
|
</property>
|
|
<layout class="QGridLayout" name="gridLayout" columnstretch="1,0,0">
|
|
<item row="2" column="0" colspan="3">
|
|
<widget class="QGroupBox" name="GroupBoxSegments">
|
|
<property name="title">
|
|
<string>Segments Configuration</string>
|
|
</property>
|
|
<layout class="QGridLayout" name="gridLayout_2">
|
|
<item row="1" column="2">
|
|
<widget class="QPushButton" name="RemoveSegmentButton">
|
|
<property name="text">
|
|
<string>Remove Segment</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="4">
|
|
<widget class="QPushButton" name="ExportConfigurationButton">
|
|
<property name="text">
|
|
<string>Export Configuration</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="0">
|
|
<widget class="QPushButton" name="AddSegmentButton">
|
|
<property name="text">
|
|
<string>Add Segment</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="0" column="0" colspan="5">
|
|
<widget class="QTreeWidget" name="SegmentsTreeWidget">
|
|
<property name="itemsExpandable">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="columnCount">
|
|
<number>4</number>
|
|
</property>
|
|
<attribute name="headerStretchLastSection">
|
|
<bool>true</bool>
|
|
</attribute>
|
|
<column>
|
|
<property name="text">
|
|
<string notr="true">Name</string>
|
|
</property>
|
|
</column>
|
|
<column>
|
|
<property name="text">
|
|
<string>Type</string>
|
|
</property>
|
|
</column>
|
|
<column>
|
|
<property name="text">
|
|
<string>Length</string>
|
|
</property>
|
|
</column>
|
|
<column>
|
|
<property name="text">
|
|
<string/>
|
|
</property>
|
|
</column>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="3">
|
|
<widget class="QPushButton" name="ImportConfigurationButton">
|
|
<property name="text">
|
|
<string>Import Configuration</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="1">
|
|
<widget class="QPushButton" name="AddSegmentGroupButton">
|
|
<property name="text">
|
|
<string>Add Segment Group</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
</item>
|
|
<item row="5" column="0" colspan="2">
|
|
<layout class="QHBoxLayout" name="HorizontalLayoutButtonBox">
|
|
<item>
|
|
<widget class="QPushButton" name="ButtonResetZoneConfiguration">
|
|
<property name="text">
|
|
<string>Reset Zone Configuration</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QDialogButtonBox" name="ButtonBox">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
|
<horstretch>0</horstretch>
|
|
<verstretch>0</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
<property name="orientation">
|
|
<enum>Qt::Orientation::Horizontal</enum>
|
|
</property>
|
|
<property name="standardButtons">
|
|
<set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok</set>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
<item row="3" column="0" colspan="2">
|
|
<widget class="QGroupBox" name="GroupBoxDeviceSpecificZoneConfiguration">
|
|
<property name="title">
|
|
<string>Device-Specific Zone Configuration</string>
|
|
</property>
|
|
<layout class="QGridLayout" name="gridLayout_4">
|
|
<item row="0" column="0">
|
|
<widget class="QScrollArea" name="ScrollAreaDeviceSpecificZoneConfiguration">
|
|
<property name="widgetResizable">
|
|
<bool>true</bool>
|
|
</property>
|
|
<widget class="QWidget" name="ScrollAreaDeviceSpecificZoneConfigurationWidget">
|
|
<property name="geometry">
|
|
<rect>
|
|
<x>0</x>
|
|
<y>0</y>
|
|
<width>714</width>
|
|
<height>65</height>
|
|
</rect>
|
|
</property>
|
|
<layout class="QVBoxLayout" name="ScrollAreaDeviceSpecificZoneConfigurationLayout"/>
|
|
</widget>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
</item>
|
|
<item row="0" column="0" colspan="3">
|
|
<widget class="QGroupBox" name="GroupBoxZoneConfiguration">
|
|
<property name="title">
|
|
<string>Zone Configuration</string>
|
|
</property>
|
|
<layout class="QGridLayout" name="gridLayout_3">
|
|
<item row="3" column="0" colspan="3">
|
|
<layout class="QGridLayout" name="GroupBoxZoneSettings">
|
|
<item row="0" column="0">
|
|
<widget class="QLabel" name="LabelZoneType">
|
|
<property name="text">
|
|
<string>Zone Type:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="0" column="1">
|
|
<widget class="QComboBox" name="ComboBoxZoneType"/>
|
|
</item>
|
|
<item row="0" column="3">
|
|
<widget class="QPushButton" name="ButtonZoneMatrixMap">
|
|
<property name="text">
|
|
<string/>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="0" column="2">
|
|
<widget class="QLabel" name="LabelZoneMatrixMap">
|
|
<property name="text">
|
|
<string>Zone Matrix Map:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
<item row="0" column="0">
|
|
<widget class="QLabel" name="LabelZoneName">
|
|
<property name="text">
|
|
<string>Zone Name:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="0">
|
|
<widget class="QLabel" name="LabelZoneSize">
|
|
<property name="text">
|
|
<string>Zone Size:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="2">
|
|
<widget class="QSpinBox" name="SpinBoxZoneSize">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
|
<horstretch>0</horstretch>
|
|
<verstretch>0</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="1">
|
|
<widget class="QTooltipedSlider" name="SliderZoneSize">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
|
<horstretch>0</horstretch>
|
|
<verstretch>0</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
<property name="orientation">
|
|
<enum>Qt::Orientation::Horizontal</enum>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="0" column="1" colspan="2">
|
|
<widget class="QLineEdit" name="LineEditZoneName"/>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
<customwidgets>
|
|
<customwidget>
|
|
<class>QTooltipedSlider</class>
|
|
<extends>QSlider</extends>
|
|
<header location="global">QTooltipedSlider.h</header>
|
|
</customwidget>
|
|
</customwidgets>
|
|
<resources/>
|
|
<connections>
|
|
<connection>
|
|
<sender>ButtonBox</sender>
|
|
<signal>accepted()</signal>
|
|
<receiver>OpenRGBZoneEditorDialog</receiver>
|
|
<slot>accept()</slot>
|
|
<hints>
|
|
<hint type="sourcelabel">
|
|
<x>20</x>
|
|
<y>20</y>
|
|
</hint>
|
|
<hint type="destinationlabel">
|
|
<x>20</x>
|
|
<y>20</y>
|
|
</hint>
|
|
</hints>
|
|
</connection>
|
|
<connection>
|
|
<sender>ButtonBox</sender>
|
|
<signal>rejected()</signal>
|
|
<receiver>OpenRGBZoneEditorDialog</receiver>
|
|
<slot>reject()</slot>
|
|
<hints>
|
|
<hint type="sourcelabel">
|
|
<x>20</x>
|
|
<y>20</y>
|
|
</hint>
|
|
<hint type="destinationlabel">
|
|
<x>20</x>
|
|
<y>20</y>
|
|
</hint>
|
|
</hints>
|
|
</connection>
|
|
</connections>
|
|
</ui>
|