diff options
Diffstat (limited to 'src/yuzu')
| -rw-r--r-- | src/yuzu/configuration/configure_input_player.cpp | 33 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_input_player.h | 3 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_input_player.ui | 208 | 
3 files changed, 141 insertions, 103 deletions
diff --git a/src/yuzu/configuration/configure_input_player.cpp b/src/yuzu/configuration/configure_input_player.cpp index f6942851a..7f4b794dc 100644 --- a/src/yuzu/configuration/configure_input_player.cpp +++ b/src/yuzu/configuration/configure_input_player.cpp @@ -421,9 +421,11 @@ ConfigureInputPlayer::ConfigureInputPlayer(QWidget* parent, std::size_t player_i      UpdateControllerIcon();      UpdateControllerAvailableButtons(); +    UpdateMotionButtons();      connect(ui->comboControllerType, qOverload<int>(&QComboBox::currentIndexChanged), [this](int) {          UpdateControllerIcon();          UpdateControllerAvailableButtons(); +        UpdateMotionButtons();      });      connect(ui->comboDevices, qOverload<int>(&QComboBox::currentIndexChanged), this, @@ -893,6 +895,37 @@ void ConfigureInputPlayer::UpdateControllerAvailableButtons() {      }  } +void ConfigureInputPlayer::UpdateMotionButtons() { +    if (debug) { +        // Motion isn't used with the debug controller, hide both groupboxes. +        ui->buttonMotionLeftGroup->hide(); +        ui->buttonMotionRightGroup->hide(); +        return; +    } + +    // Show/hide the "Motion 1/2" groupboxes depending on the currently selected controller. +    switch (GetControllerTypeFromIndex(ui->comboControllerType->currentIndex())) { +    case Settings::ControllerType::ProController: +    case Settings::ControllerType::LeftJoycon: +    case Settings::ControllerType::Handheld: +        // Show "Motion 1" and hide "Motion 2". +        ui->buttonMotionLeftGroup->show(); +        ui->buttonMotionRightGroup->hide(); +        break; +    case Settings::ControllerType::RightJoycon: +        // Show "Motion 2" and hide "Motion 1". +        ui->buttonMotionLeftGroup->hide(); +        ui->buttonMotionRightGroup->show(); +        break; +    case Settings::ControllerType::DualJoyconDetached: +    default: +        // Show both "Motion 1/2". +        ui->buttonMotionLeftGroup->show(); +        ui->buttonMotionRightGroup->show(); +        break; +    } +} +  void ConfigureInputPlayer::showEvent(QShowEvent* event) {      if (bottom_row == nullptr) {          return; diff --git a/src/yuzu/configuration/configure_input_player.h b/src/yuzu/configuration/configure_input_player.h index a12216c55..b343f2c1d 100644 --- a/src/yuzu/configuration/configure_input_player.h +++ b/src/yuzu/configuration/configure_input_player.h @@ -107,6 +107,9 @@ private:      /// Hides and disables controller settings based on the current controller type.      void UpdateControllerAvailableButtons(); +    /// Shows or hides motion groupboxes based on the current controller type. +    void UpdateMotionButtons(); +      /// Gets the default controller mapping for this device and auto configures the input to match.      void UpdateMappingWithDefaults(); diff --git a/src/yuzu/configuration/configure_input_player.ui b/src/yuzu/configuration/configure_input_player.ui index b0e572f37..e03461d9d 100644 --- a/src/yuzu/configuration/configure_input_player.ui +++ b/src/yuzu/configuration/configure_input_player.ui @@ -1983,6 +1983,9 @@               <property name="spacing">                <number>3</number>               </property> +             <property name="topMargin"> +              <number>0</number> +             </property>               <item>                <spacer name="horizontalSpacerMiscButtons1">                 <property name="orientation"> @@ -1990,21 +1993,119 @@                 </property>                 <property name="sizeHint" stdset="0">                  <size> -                 <width>40</width> -                 <height>0</height> +                 <width>20</width> +                 <height>20</height>                  </size>                 </property>                </spacer>               </item>               <item> +              <widget class="QGroupBox" name="buttonMotionLeftGroup"> +               <property name="title"> +                <string>Motion 1</string> +               </property> +               <property name="alignment"> +                <set>Qt::AlignCenter</set> +               </property> +               <layout class="QVBoxLayout" name="buttonDpadLeftVerticalLayout_2"> +                <property name="spacing"> +                 <number>3</number> +                </property> +                <property name="leftMargin"> +                 <number>3</number> +                </property> +                <property name="topMargin"> +                 <number>3</number> +                </property> +                <property name="rightMargin"> +                 <number>3</number> +                </property> +                <property name="bottomMargin"> +                 <number>3</number> +                </property> +                <item> +                 <widget class="QPushButton" name="buttonMotionLeft"> +                  <property name="minimumSize"> +                   <size> +                    <width>57</width> +                    <height>0</height> +                   </size> +                  </property> +                  <property name="maximumSize"> +                   <size> +                    <width>55</width> +                    <height>16777215</height> +                   </size> +                  </property> +                  <property name="styleSheet"> +                   <string notr="true">min-width: 55px;</string> +                  </property> +                  <property name="text"> +                   <string>Left</string> +                  </property> +                 </widget> +                </item> +               </layout> +              </widget> +             </item> +             <item> +              <widget class="QGroupBox" name="buttonMotionRightGroup"> +               <property name="title"> +                <string>Motion 2</string> +               </property> +               <property name="alignment"> +                <set>Qt::AlignCenter</set> +               </property> +               <layout class="QVBoxLayout" name="buttonDpadRightVerticalLayout_2"> +                <property name="spacing"> +                 <number>3</number> +                </property> +                <property name="leftMargin"> +                 <number>3</number> +                </property> +                <property name="topMargin"> +                 <number>3</number> +                </property> +                <property name="rightMargin"> +                 <number>3</number> +                </property> +                <property name="bottomMargin"> +                 <number>3</number> +                </property> +                <item> +                 <widget class="QPushButton" name="buttonMotionRight"> +                  <property name="minimumSize"> +                   <size> +                    <width>57</width> +                    <height>0</height> +                   </size> +                  </property> +                  <property name="maximumSize"> +                   <size> +                    <width>55</width> +                    <height>16777215</height> +                   </size> +                  </property> +                  <property name="styleSheet"> +                   <string notr="true">min-width: 55px;</string> +                  </property> +                  <property name="text"> +                   <string>Right</string> +                  </property> +                 </widget> +                </item> +               </layout> +              </widget> +             </item> +             <item>                <spacer name="horizontalSpacerMiscButtons4">                 <property name="orientation">                  <enum>Qt::Horizontal</enum>                 </property>                 <property name="sizeHint" stdset="0">                  <size> -                 <width>40</width> -                 <height>0</height> +                 <width>20</width> +                 <height>20</height>                  </size>                 </property>                </spacer> @@ -2264,105 +2365,6 @@                    </layout>                   </widget>                  </item> - -                 <item alignment="Qt::AlignHCenter"> -                   <widget class="QGroupBox" name="buttonMotionLeftGroup"> -                     <property name="title"> -                       <string>Motion left</string> -                     </property> -                     <property name="alignment"> -                       <set>Qt::AlignCenter</set> -                     </property> -                     <layout class="QVBoxLayout" name="buttonMotionLeftVerticalLayout"> -                       <property name="spacing"> -                         <number>3</number> -                       </property> -                       <property name="leftMargin"> -                         <number>3</number> -                       </property> -                       <property name="topMargin"> -                         <number>3</number> -                       </property> -                       <property name="rightMargin"> -                         <number>3</number> -                       </property> -                       <property name="bottomMargin"> -                         <number>3</number> -                       </property> -                       <item> -                         <widget class="QPushButton" name="buttonMotionLeft"> -                           <property name="minimumSize"> -                             <size> -                               <width>57</width> -                               <height>0</height> -                             </size> -                           </property> -                           <property name="maximumSize"> -                             <size> -                               <width>55</width> -                               <height>16777215</height> -                             </size> -                           </property> -                           <property name="styleSheet"> -                             <string notr="true">min-width: 55px;</string> -                           </property> -                           <property name="text"> -                             <string>Motion left</string> -                           </property> -                         </widget> -                       </item> -                     </layout> -                   </widget> -                 </item> -                 <item alignment="Qt::AlignHCenter"> -                   <widget class="QGroupBox" name="buttonMotionRightGroup"> -                     <property name="title"> -                       <string>Motion right</string> -                     </property> -                     <property name="alignment"> -                       <set>Qt::AlignCenter</set> -                     </property> -                     <layout class="QVBoxLayout" name="buttonMotionRightVerticalLayout"> -                       <property name="spacing"> -                         <number>3</number> -                       </property> -                       <property name="leftMargin"> -                         <number>3</number> -                       </property> -                       <property name="topMargin"> -                         <number>3</number> -                       </property> -                       <property name="rightMargin"> -                         <number>3</number> -                       </property> -                       <property name="bottomMargin"> -                         <number>3</number> -                       </property> -                       <item> -                         <widget class="QPushButton" name="buttonMotionRight"> -                           <property name="minimumSize"> -                             <size> -                               <width>57</width> -                               <height>0</height> -                             </size> -                           </property> -                           <property name="maximumSize"> -                             <size> -                               <width>55</width> -                               <height>16777215</height> -                             </size> -                           </property> -                           <property name="styleSheet"> -                             <string notr="true">min-width: 55px;</string> -                           </property> -                           <property name="text"> -                             <string>Motion right</string> -                           </property> -                         </widget> -                       </item> -                     </layout> -                   </widget> -                 </item>                 </layout>                </item>                <item>  | 
