configure_graphics: Implement highlighted overrides
This commit is contained in:
		
							parent
							
								
									bf25d583c6
								
							
						
					
					
						commit
						c4246b80f8
					
				@ -32,7 +32,12 @@ ConfigureGraphics::ConfigureGraphics(QWidget* parent)
 | 
			
		||||
    SetConfiguration();
 | 
			
		||||
 | 
			
		||||
    connect(ui->api, qOverload<int>(&QComboBox::currentIndexChanged), this,
 | 
			
		||||
            [this] { UpdateDeviceComboBox(); });
 | 
			
		||||
            [this] {
 | 
			
		||||
                UpdateDeviceComboBox();
 | 
			
		||||
                if (!Settings::configuring_global) {
 | 
			
		||||
                    ConfigurationShared::SetHighlight(ui->api_layout, "api_layout", ui->api->currentIndex() != ConfigurationShared::USE_GLOBAL_INDEX);
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
    connect(ui->device, qOverload<int>(&QComboBox::activated), this,
 | 
			
		||||
            [this](int device) { UpdateDeviceSelection(device); });
 | 
			
		||||
 | 
			
		||||
@ -65,25 +70,23 @@ void ConfigureGraphics::SetConfiguration() {
 | 
			
		||||
    ui->api->setEnabled(runtime_lock);
 | 
			
		||||
    ui->use_asynchronous_gpu_emulation->setEnabled(runtime_lock);
 | 
			
		||||
    ui->use_disk_shader_cache->setEnabled(runtime_lock);
 | 
			
		||||
    ui->use_disk_shader_cache->setChecked(Settings::values.use_disk_shader_cache.GetValue());
 | 
			
		||||
    ui->use_asynchronous_gpu_emulation->setChecked(
 | 
			
		||||
        Settings::values.use_asynchronous_gpu_emulation.GetValue());
 | 
			
		||||
 | 
			
		||||
    if (Settings::configuring_global) {
 | 
			
		||||
        ui->api->setCurrentIndex(static_cast<int>(Settings::values.renderer_backend.GetValue()));
 | 
			
		||||
        ui->aspect_ratio_combobox->setCurrentIndex(Settings::values.aspect_ratio.GetValue());
 | 
			
		||||
        ui->use_disk_shader_cache->setChecked(Settings::values.use_disk_shader_cache.GetValue());
 | 
			
		||||
        ui->use_asynchronous_gpu_emulation->setChecked(
 | 
			
		||||
            Settings::values.use_asynchronous_gpu_emulation.GetValue());
 | 
			
		||||
    } else {
 | 
			
		||||
        ConfigurationShared::SetPerGameSetting(ui->use_disk_shader_cache,
 | 
			
		||||
                                               &Settings::values.use_disk_shader_cache);
 | 
			
		||||
        ConfigurationShared::SetPerGameSetting(ui->use_asynchronous_gpu_emulation,
 | 
			
		||||
                                               &Settings::values.use_asynchronous_gpu_emulation);
 | 
			
		||||
 | 
			
		||||
        ConfigurationShared::SetPerGameSetting(ui->api, &Settings::values.renderer_backend);
 | 
			
		||||
        ConfigurationShared::SetPerGameSetting(ui->aspect_ratio_combobox,
 | 
			
		||||
                                               &Settings::values.aspect_ratio);
 | 
			
		||||
 | 
			
		||||
        ui->bg_combobox->setCurrentIndex(Settings::values.bg_red.UsingGlobal() ? 0 : 1);
 | 
			
		||||
        ui->bg_button->setEnabled(!Settings::values.bg_red.UsingGlobal());
 | 
			
		||||
        ConfigurationShared::SetHighlight(ui->aspect_ratio_layout, "aspect_ratio_layout", !Settings::values.aspect_ratio.UsingGlobal());
 | 
			
		||||
        ConfigurationShared::SetHighlight(ui->bg_layout, "bg_layout", !Settings::values.bg_red.UsingGlobal());
 | 
			
		||||
        // FIXME: ConfigurationShared::SetHighlight(ui->api_layout, "api_layout", !Settings::values.renderer_backend.UsingGlobal());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    UpdateBackgroundColorButton(QColor::fromRgbF(Settings::values.bg_red.GetValue(),
 | 
			
		||||
@ -240,11 +243,23 @@ void ConfigureGraphics::SetupPerGameUI() {
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    connect(ui->aspect_ratio_combobox, static_cast<void (QComboBox::*)(int)>(&QComboBox::activated), this, [this](int index) {
 | 
			
		||||
        ConfigurationShared::SetHighlight(ui->aspect_ratio_layout, "aspect_ratio_layout", index != 0);
 | 
			
		||||
    });
 | 
			
		||||
    connect(ui->bg_combobox, static_cast<void (QComboBox::*)(int)>(&QComboBox::activated), this,
 | 
			
		||||
            [this](int index) { ui->bg_button->setEnabled(index == 1); });
 | 
			
		||||
            [this](int index) {
 | 
			
		||||
                ui->bg_button->setEnabled(index == 1);
 | 
			
		||||
                ConfigurationShared::SetHighlight(ui->bg_layout, "bg_layout", index == 1);
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
    ui->use_disk_shader_cache->setTristate(true);
 | 
			
		||||
    ui->use_asynchronous_gpu_emulation->setTristate(true);
 | 
			
		||||
    ConfigurationShared::InsertGlobalItem(ui->aspect_ratio_combobox);
 | 
			
		||||
    ConfigurationShared::InsertGlobalItem(ui->api);
 | 
			
		||||
    ConfigurationShared::SetColoredTristate(ui->use_disk_shader_cache, "use_disk_shader_cache",
 | 
			
		||||
                                            Settings::values.use_disk_shader_cache,
 | 
			
		||||
                                            ConfigurationShared::trackers.use_disk_shader_cache);
 | 
			
		||||
    ConfigurationShared::SetColoredTristate(
 | 
			
		||||
        ui->use_asynchronous_gpu_emulation, "use_asynchronous_gpu_emulation",
 | 
			
		||||
        Settings::values.use_asynchronous_gpu_emulation,
 | 
			
		||||
        ConfigurationShared::trackers.use_asynchronous_gpu_emulation);
 | 
			
		||||
 | 
			
		||||
    ConfigurationShared::InsertGlobalItem(ui->aspect_ratio_combobox, ui->aspect_ratio_combobox->itemText(Settings::values.aspect_ratio.GetValue(true)));
 | 
			
		||||
    ConfigurationShared::InsertGlobalItem(ui->api, ui->api->itemText(static_cast<int>(Settings::values.renderer_backend.GetValue(true))));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -23,43 +23,57 @@
 | 
			
		||||
       </property>
 | 
			
		||||
       <layout class="QVBoxLayout" name="verticalLayout_3">
 | 
			
		||||
        <item>
 | 
			
		||||
         <layout class="QHBoxLayout" name="horizontalLayout_4">
 | 
			
		||||
          <item>
 | 
			
		||||
           <widget class="QLabel" name="label_2">
 | 
			
		||||
            <property name="text">
 | 
			
		||||
             <string>API:</string>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <widget class="QComboBox" name="api">
 | 
			
		||||
            <item>
 | 
			
		||||
             <property name="text">
 | 
			
		||||
              <string notr="true">OpenGL</string>
 | 
			
		||||
             </property>
 | 
			
		||||
            </item>
 | 
			
		||||
            <item>
 | 
			
		||||
             <property name="text">
 | 
			
		||||
              <string notr="true">Vulkan</string>
 | 
			
		||||
             </property>
 | 
			
		||||
            </item>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
         </layout>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item>
 | 
			
		||||
         <layout class="QHBoxLayout" name="horizontalLayout_5">
 | 
			
		||||
          <item>
 | 
			
		||||
           <widget class="QLabel" name="label_3">
 | 
			
		||||
            <property name="text">
 | 
			
		||||
             <string>Device:</string>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <widget class="QComboBox" name="device"/>
 | 
			
		||||
          </item>
 | 
			
		||||
         </layout>
 | 
			
		||||
         <widget class="QWidget" name="api_layout" native="true">
 | 
			
		||||
          <layout class="QVBoxLayout" name="verticalLayout_5">
 | 
			
		||||
           <property name="leftMargin">
 | 
			
		||||
            <number>0</number>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="topMargin">
 | 
			
		||||
            <number>0</number>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="rightMargin">
 | 
			
		||||
            <number>0</number>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="bottomMargin">
 | 
			
		||||
            <number>0</number>
 | 
			
		||||
           </property>
 | 
			
		||||
           <item>
 | 
			
		||||
            <layout class="QGridLayout" name="gridLayout">
 | 
			
		||||
             <item row="0" column="1">
 | 
			
		||||
              <widget class="QComboBox" name="api">
 | 
			
		||||
               <item>
 | 
			
		||||
                <property name="text">
 | 
			
		||||
                 <string notr="true">OpenGL</string>
 | 
			
		||||
                </property>
 | 
			
		||||
               </item>
 | 
			
		||||
               <item>
 | 
			
		||||
                <property name="text">
 | 
			
		||||
                 <string notr="true">Vulkan</string>
 | 
			
		||||
                </property>
 | 
			
		||||
               </item>
 | 
			
		||||
              </widget>
 | 
			
		||||
             </item>
 | 
			
		||||
             <item row="0" column="0">
 | 
			
		||||
              <widget class="QLabel" name="label_2">
 | 
			
		||||
               <property name="text">
 | 
			
		||||
                <string>API:</string>
 | 
			
		||||
               </property>
 | 
			
		||||
              </widget>
 | 
			
		||||
             </item>
 | 
			
		||||
             <item row="1" column="1">
 | 
			
		||||
              <widget class="QComboBox" name="device"/>
 | 
			
		||||
             </item>
 | 
			
		||||
             <item row="1" column="0">
 | 
			
		||||
              <widget class="QLabel" name="label_3">
 | 
			
		||||
               <property name="text">
 | 
			
		||||
                <string>Device:</string>
 | 
			
		||||
               </property>
 | 
			
		||||
              </widget>
 | 
			
		||||
             </item>
 | 
			
		||||
            </layout>
 | 
			
		||||
           </item>
 | 
			
		||||
          </layout>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
       </layout>
 | 
			
		||||
      </widget>
 | 
			
		||||
@ -85,96 +99,133 @@
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item>
 | 
			
		||||
         <layout class="QHBoxLayout" name="horizontalLayout_6">
 | 
			
		||||
          <item>
 | 
			
		||||
           <widget class="QLabel" name="ar_label">
 | 
			
		||||
            <property name="text">
 | 
			
		||||
             <string>Aspect Ratio:</string>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <widget class="QComboBox" name="aspect_ratio_combobox">
 | 
			
		||||
            <item>
 | 
			
		||||
         <widget class="QWidget" name="aspect_ratio_layout" native="true">
 | 
			
		||||
          <layout class="QHBoxLayout" name="horizontalLayout_6">
 | 
			
		||||
           <property name="leftMargin">
 | 
			
		||||
            <number>0</number>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="topMargin">
 | 
			
		||||
            <number>0</number>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="rightMargin">
 | 
			
		||||
            <number>0</number>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="bottomMargin">
 | 
			
		||||
            <number>0</number>
 | 
			
		||||
           </property>
 | 
			
		||||
           <item>
 | 
			
		||||
            <widget class="QLabel" name="ar_label">
 | 
			
		||||
             <property name="text">
 | 
			
		||||
              <string>Default (16:9)</string>
 | 
			
		||||
              <string>Aspect Ratio:</string>
 | 
			
		||||
             </property>
 | 
			
		||||
            </item>
 | 
			
		||||
            <item>
 | 
			
		||||
             <property name="text">
 | 
			
		||||
              <string>Force 4:3</string>
 | 
			
		||||
             </property>
 | 
			
		||||
            </item>
 | 
			
		||||
            <item>
 | 
			
		||||
             <property name="text">
 | 
			
		||||
              <string>Force 21:9</string>
 | 
			
		||||
             </property>
 | 
			
		||||
            </item>
 | 
			
		||||
            <item>
 | 
			
		||||
             <property name="text">
 | 
			
		||||
              <string>Stretch to Window</string>
 | 
			
		||||
             </property>
 | 
			
		||||
            </item>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
         </layout>
 | 
			
		||||
            </widget>
 | 
			
		||||
           </item>
 | 
			
		||||
           <item>
 | 
			
		||||
            <widget class="QComboBox" name="aspect_ratio_combobox">
 | 
			
		||||
             <item>
 | 
			
		||||
              <property name="text">
 | 
			
		||||
               <string>Default (16:9)</string>
 | 
			
		||||
              </property>
 | 
			
		||||
             </item>
 | 
			
		||||
             <item>
 | 
			
		||||
              <property name="text">
 | 
			
		||||
               <string>Force 4:3</string>
 | 
			
		||||
              </property>
 | 
			
		||||
             </item>
 | 
			
		||||
             <item>
 | 
			
		||||
              <property name="text">
 | 
			
		||||
               <string>Force 21:9</string>
 | 
			
		||||
              </property>
 | 
			
		||||
             </item>
 | 
			
		||||
             <item>
 | 
			
		||||
              <property name="text">
 | 
			
		||||
               <string>Stretch to Window</string>
 | 
			
		||||
              </property>
 | 
			
		||||
             </item>
 | 
			
		||||
            </widget>
 | 
			
		||||
           </item>
 | 
			
		||||
          </layout>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item>
 | 
			
		||||
         <layout class="QHBoxLayout" name="horizontalLayout_3">
 | 
			
		||||
          <item>
 | 
			
		||||
           <widget class="QComboBox" name="bg_combobox">
 | 
			
		||||
            <property name="currentText">
 | 
			
		||||
             <string>Use global background color</string>
 | 
			
		||||
            </property>
 | 
			
		||||
            <property name="currentIndex">
 | 
			
		||||
             <number>0</number>
 | 
			
		||||
            </property>
 | 
			
		||||
            <property name="maxVisibleItems">
 | 
			
		||||
             <number>10</number>
 | 
			
		||||
            </property>
 | 
			
		||||
            <item>
 | 
			
		||||
             <property name="text">
 | 
			
		||||
         <widget class="QWidget" name="bg_layout" native="true">
 | 
			
		||||
          <property name="sizePolicy">
 | 
			
		||||
           <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
 | 
			
		||||
            <horstretch>0</horstretch>
 | 
			
		||||
            <verstretch>0</verstretch>
 | 
			
		||||
           </sizepolicy>
 | 
			
		||||
          </property>
 | 
			
		||||
          <layout class="QHBoxLayout" name="horizontalLayout_3">
 | 
			
		||||
           <property name="spacing">
 | 
			
		||||
            <number>6</number>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="leftMargin">
 | 
			
		||||
            <number>0</number>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="topMargin">
 | 
			
		||||
            <number>0</number>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="rightMargin">
 | 
			
		||||
            <number>0</number>
 | 
			
		||||
           </property>
 | 
			
		||||
           <property name="bottomMargin">
 | 
			
		||||
            <number>0</number>
 | 
			
		||||
           </property>
 | 
			
		||||
           <item>
 | 
			
		||||
            <widget class="QComboBox" name="bg_combobox">
 | 
			
		||||
             <property name="currentText">
 | 
			
		||||
              <string>Use global background color</string>
 | 
			
		||||
             </property>
 | 
			
		||||
            </item>
 | 
			
		||||
            <item>
 | 
			
		||||
             <property name="text">
 | 
			
		||||
              <string>Set background color:</string>
 | 
			
		||||
             <property name="currentIndex">
 | 
			
		||||
              <number>0</number>
 | 
			
		||||
             </property>
 | 
			
		||||
            </item>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <widget class="QLabel" name="bg_label">
 | 
			
		||||
            <property name="text">
 | 
			
		||||
             <string>Background Color:</string>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <spacer name="horizontalSpacer">
 | 
			
		||||
            <property name="orientation">
 | 
			
		||||
             <enum>Qt::Horizontal</enum>
 | 
			
		||||
            </property>
 | 
			
		||||
            <property name="sizeHint" stdset="0">
 | 
			
		||||
             <size>
 | 
			
		||||
              <width>40</width>
 | 
			
		||||
              <height>20</height>
 | 
			
		||||
             </size>
 | 
			
		||||
            </property>
 | 
			
		||||
           </spacer>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <widget class="QPushButton" name="bg_button">
 | 
			
		||||
            <property name="maximumSize">
 | 
			
		||||
             <size>
 | 
			
		||||
              <width>40</width>
 | 
			
		||||
              <height>16777215</height>
 | 
			
		||||
             </size>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
         </layout>
 | 
			
		||||
             <property name="maxVisibleItems">
 | 
			
		||||
              <number>10</number>
 | 
			
		||||
             </property>
 | 
			
		||||
             <item>
 | 
			
		||||
              <property name="text">
 | 
			
		||||
               <string>Use global background color</string>
 | 
			
		||||
              </property>
 | 
			
		||||
             </item>
 | 
			
		||||
             <item>
 | 
			
		||||
              <property name="text">
 | 
			
		||||
               <string>Set background color:</string>
 | 
			
		||||
              </property>
 | 
			
		||||
             </item>
 | 
			
		||||
            </widget>
 | 
			
		||||
           </item>
 | 
			
		||||
           <item>
 | 
			
		||||
            <widget class="QLabel" name="bg_label">
 | 
			
		||||
             <property name="text">
 | 
			
		||||
              <string>Background Color:</string>
 | 
			
		||||
             </property>
 | 
			
		||||
            </widget>
 | 
			
		||||
           </item>
 | 
			
		||||
           <item>
 | 
			
		||||
            <spacer name="horizontalSpacer">
 | 
			
		||||
             <property name="orientation">
 | 
			
		||||
              <enum>Qt::Horizontal</enum>
 | 
			
		||||
             </property>
 | 
			
		||||
             <property name="sizeHint" stdset="0">
 | 
			
		||||
              <size>
 | 
			
		||||
               <width>40</width>
 | 
			
		||||
               <height>20</height>
 | 
			
		||||
              </size>
 | 
			
		||||
             </property>
 | 
			
		||||
            </spacer>
 | 
			
		||||
           </item>
 | 
			
		||||
           <item>
 | 
			
		||||
            <widget class="QPushButton" name="bg_button">
 | 
			
		||||
             <property name="maximumSize">
 | 
			
		||||
              <size>
 | 
			
		||||
               <width>40</width>
 | 
			
		||||
               <height>16777215</height>
 | 
			
		||||
              </size>
 | 
			
		||||
             </property>
 | 
			
		||||
            </widget>
 | 
			
		||||
           </item>
 | 
			
		||||
          </layout>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
       </layout>
 | 
			
		||||
      </widget>
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user