qt: Allow toggling whether to enter system setup on home menu boot. (#6574)
This commit is contained in:
		@@ -337,6 +337,10 @@ void ConfigureSystem::ReadSystemSettings() {
 | 
			
		||||
    country_code = cfg->GetCountryCode();
 | 
			
		||||
    ui->combo_country->setCurrentIndex(ui->combo_country->findData(country_code));
 | 
			
		||||
 | 
			
		||||
    // set whether system setup is needed
 | 
			
		||||
    system_setup = cfg->IsSystemSetupNeeded();
 | 
			
		||||
    ui->toggle_system_setup->setChecked(system_setup);
 | 
			
		||||
 | 
			
		||||
    // set the console id
 | 
			
		||||
    u64 console_id = cfg->GetConsoleUniqueId();
 | 
			
		||||
    ui->label_console_id->setText(
 | 
			
		||||
@@ -390,6 +394,13 @@ void ConfigureSystem::ApplyConfiguration() {
 | 
			
		||||
            modified = true;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // apply whether system setup is needed
 | 
			
		||||
        bool new_system_setup = static_cast<u8>(ui->toggle_system_setup->isChecked());
 | 
			
		||||
        if (system_setup != new_system_setup) {
 | 
			
		||||
            cfg->SetSystemSetupNeeded(new_system_setup);
 | 
			
		||||
            modified = true;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // apply play coin
 | 
			
		||||
        u16 new_play_coin = static_cast<u16>(ui->spinBox_play_coins->value());
 | 
			
		||||
        if (play_coin != new_play_coin) {
 | 
			
		||||
@@ -523,6 +534,7 @@ void ConfigureSystem::SetupPerGameUI() {
 | 
			
		||||
    ui->label_init_time_offset->setVisible(false);
 | 
			
		||||
    ui->edit_init_time_offset_days->setVisible(false);
 | 
			
		||||
    ui->edit_init_time_offset_time->setVisible(false);
 | 
			
		||||
    ui->toggle_system_setup->setVisible(false);
 | 
			
		||||
    ui->button_regenerate_console_id->setVisible(false);
 | 
			
		||||
    // Apps can change the state of the plugin loader, so plugins load
 | 
			
		||||
    // to a chainloaded app with specific parameters. Don't allow
 | 
			
		||||
 
 | 
			
		||||
@@ -57,4 +57,5 @@ private:
 | 
			
		||||
    int sound_index = 0;
 | 
			
		||||
    u8 country_code;
 | 
			
		||||
    u16 play_coin;
 | 
			
		||||
    bool system_setup;
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -22,71 +22,11 @@
 | 
			
		||||
        <string>System Settings</string>
 | 
			
		||||
       </property>
 | 
			
		||||
       <layout class="QGridLayout" name="gridLayout">
 | 
			
		||||
        <item row="4" column="1">
 | 
			
		||||
         <widget class="QComboBox" name="combo_language">
 | 
			
		||||
          <property name="toolTip">
 | 
			
		||||
           <string>Note: this can be overridden when region setting is auto-select</string>
 | 
			
		||||
        <item row="1" column="0">
 | 
			
		||||
         <widget class="QCheckBox" name="toggle_new_3ds">
 | 
			
		||||
          <property name="text">
 | 
			
		||||
           <string>Enable New 3DS mode</string>
 | 
			
		||||
          </property>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>Japanese (日本語)</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>English</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>French (français)</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>German (Deutsch)</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>Italian (italiano)</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>Spanish (español)</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>Simplified Chinese (简体中文)</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>Korean (한국어)</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>Dutch (Nederlands)</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>Portuguese (português)</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>Russian (Русский)</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>Traditional Chinese (正體中文)</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="2" column="1">
 | 
			
		||||
@@ -109,23 +49,11 @@
 | 
			
		||||
          </property>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="5" column="1">
 | 
			
		||||
         <widget class="QComboBox" name="combo_sound">
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>Mono</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>Stereo</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>Surround</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
        <item row="3" column="0">
 | 
			
		||||
         <widget class="QLabel" name="label_birthday">
 | 
			
		||||
          <property name="text">
 | 
			
		||||
           <string>Birthday</string>
 | 
			
		||||
          </property>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="3" column="1">
 | 
			
		||||
@@ -206,11 +134,71 @@
 | 
			
		||||
          </property>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="3" column="0">
 | 
			
		||||
         <widget class="QLabel" name="label_birthday">
 | 
			
		||||
          <property name="text">
 | 
			
		||||
           <string>Birthday</string>
 | 
			
		||||
        <item row="4" column="1">
 | 
			
		||||
         <widget class="QComboBox" name="combo_language">
 | 
			
		||||
          <property name="toolTip">
 | 
			
		||||
           <string>Note: this can be overridden when region setting is auto-select</string>
 | 
			
		||||
          </property>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>Japanese (日本語)</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>English</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>French (français)</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>German (Deutsch)</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>Italian (italiano)</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>Spanish (español)</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>Simplified Chinese (简体中文)</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>Korean (한국어)</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>Dutch (Nederlands)</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>Portuguese (português)</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>Russian (Русский)</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>Traditional Chinese (正體中文)</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="5" column="0">
 | 
			
		||||
@@ -220,8 +208,24 @@
 | 
			
		||||
          </property>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="6" column="1">
 | 
			
		||||
         <widget class="QComboBox" name="combo_country"/>
 | 
			
		||||
        <item row="5" column="1">
 | 
			
		||||
         <widget class="QComboBox" name="combo_sound">
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>Mono</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>Stereo</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item>
 | 
			
		||||
           <property name="text">
 | 
			
		||||
            <string>Surround</string>
 | 
			
		||||
           </property>
 | 
			
		||||
          </item>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="6" column="0">
 | 
			
		||||
         <widget class="QLabel" name="label_country">
 | 
			
		||||
@@ -230,6 +234,16 @@
 | 
			
		||||
          </property>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="6" column="1">
 | 
			
		||||
         <widget class="QComboBox" name="combo_country"/>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="7" column="0">
 | 
			
		||||
         <widget class="QLabel" name="label_init_clock">
 | 
			
		||||
          <property name="text">
 | 
			
		||||
           <string>Clock</string>
 | 
			
		||||
          </property>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="7" column="1">
 | 
			
		||||
         <widget class="QComboBox" name="combo_init_clock">
 | 
			
		||||
          <item>
 | 
			
		||||
@@ -244,13 +258,6 @@
 | 
			
		||||
          </item>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="7" column="0">
 | 
			
		||||
         <widget class="QLabel" name="label_init_clock">
 | 
			
		||||
          <property name="text">
 | 
			
		||||
           <string>Clock</string>
 | 
			
		||||
          </property>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="8" column="0">
 | 
			
		||||
         <widget class="QLabel" name="label_init_time">
 | 
			
		||||
          <property name="text">
 | 
			
		||||
@@ -296,13 +303,6 @@
 | 
			
		||||
          </item>
 | 
			
		||||
         </layout>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="9" column="1">
 | 
			
		||||
         <widget class="QSpinBox" name="spinBox_play_coins">
 | 
			
		||||
          <property name="maximum">
 | 
			
		||||
           <number>300</number>
 | 
			
		||||
          </property>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="9" column="0">
 | 
			
		||||
         <widget class="QLabel" name="label_play_coins">
 | 
			
		||||
          <property name="text">
 | 
			
		||||
@@ -310,7 +310,28 @@
 | 
			
		||||
          </property>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="12" column="1">
 | 
			
		||||
        <item row="9" column="1">
 | 
			
		||||
         <widget class="QSpinBox" name="spinBox_play_coins">
 | 
			
		||||
          <property name="maximum">
 | 
			
		||||
           <number>300</number>
 | 
			
		||||
          </property>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="10" column="1">
 | 
			
		||||
         <widget class="QCheckBox" name="toggle_system_setup">
 | 
			
		||||
          <property name="text">
 | 
			
		||||
           <string>Run System Setup when Home Menu is launched</string>
 | 
			
		||||
          </property>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="11" column="0">
 | 
			
		||||
         <widget class="QLabel" name="label_console_id">
 | 
			
		||||
          <property name="text">
 | 
			
		||||
           <string>Console ID:</string>
 | 
			
		||||
          </property>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="11" column="1">
 | 
			
		||||
         <widget class="QPushButton" name="button_regenerate_console_id">
 | 
			
		||||
          <property name="sizePolicy">
 | 
			
		||||
           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
 | 
			
		||||
@@ -327,48 +348,34 @@
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="12" column="0">
 | 
			
		||||
         <widget class="QLabel" name="label_console_id">
 | 
			
		||||
          <property name="text">
 | 
			
		||||
           <string>Console ID:</string>
 | 
			
		||||
          </property>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="1" column="0">
 | 
			
		||||
         <widget class="QCheckBox" name="toggle_new_3ds">
 | 
			
		||||
          <property name="text">
 | 
			
		||||
           <string>Enable New 3DS mode</string>
 | 
			
		||||
          </property>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="13" column="0">
 | 
			
		||||
         <widget class="QLabel" name="label_plugin_loader">
 | 
			
		||||
          <property name="text">
 | 
			
		||||
           <string>3GX Plugin Loader:</string>
 | 
			
		||||
          </property>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="13" column="1">
 | 
			
		||||
        <item row="12" column="1">
 | 
			
		||||
         <widget class="QCheckBox" name="plugin_loader">
 | 
			
		||||
          <property name="text">
 | 
			
		||||
           <string>Enable 3GX plugin loader</string>
 | 
			
		||||
          </property>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="14" column="1">
 | 
			
		||||
        <item row="13" column="1">
 | 
			
		||||
         <widget class="QCheckBox" name="allow_plugin_loader">
 | 
			
		||||
          <property name="text">
 | 
			
		||||
           <string>Allow games to change plugin loader state</string>
 | 
			
		||||
          </property>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="15" column="0">
 | 
			
		||||
        <item row="14" column="0">
 | 
			
		||||
         <widget class="QLabel" name="label_nus_download">
 | 
			
		||||
          <property name="text">
 | 
			
		||||
           <string>Download System Files from Nitendo servers</string>
 | 
			
		||||
          </property>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item row="15" column="1">
 | 
			
		||||
        <item row="14" column="1">
 | 
			
		||||
         <widget class="QWidget" name="body_nus_download">
 | 
			
		||||
          <layout class="QHBoxLayout" name="horizontalLayout_nus_download">
 | 
			
		||||
           <item>
 | 
			
		||||
 
 | 
			
		||||
@@ -898,6 +898,17 @@ void Module::SetEULAVersion(const EULAVersion& version) {
 | 
			
		||||
    SetConfigInfoBlock(EULAVersionBlockID, sizeof(data), 0xE, &data);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Module::SetSystemSetupNeeded(bool setup_needed) {
 | 
			
		||||
    u32 block = setup_needed ? 0 : 1;
 | 
			
		||||
    SetConfigInfoBlock(SystemSetupRequiredBlockID, sizeof(block), 0xC, &block);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool Module::IsSystemSetupNeeded() {
 | 
			
		||||
    u32 block;
 | 
			
		||||
    GetConfigInfoBlock(SystemSetupRequiredBlockID, sizeof(block), 0xC, &block);
 | 
			
		||||
    return (block & 0xFFFF) == 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
std::shared_ptr<Module> GetModule(Core::System& system) {
 | 
			
		||||
    auto cfg = system.ServiceManager().GetService<Service::CFG::Module::Interface>("cfg:u");
 | 
			
		||||
    if (!cfg)
 | 
			
		||||
 
 | 
			
		||||
@@ -460,6 +460,18 @@ public:
 | 
			
		||||
     */
 | 
			
		||||
    EULAVersion GetEULAVersion();
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Sets whether system initial setup is needed in config savegame.
 | 
			
		||||
     * @param setup_needed Whether system initial setup is needed.
 | 
			
		||||
     */
 | 
			
		||||
    void SetSystemSetupNeeded(bool setup_needed);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Gets whether system initial setup is needed from config savegame.
 | 
			
		||||
     * @returns Whether system initial setup is needed.
 | 
			
		||||
     */
 | 
			
		||||
    bool IsSystemSetupNeeded();
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Writes the config savegame memory buffer to the config savegame file in the filesystem
 | 
			
		||||
     * @returns ResultCode indicating the result of the operation, 0 on success
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user