mirror of
https://github.com/azahar-emu/azahar
synced 2025-11-13 02:19:57 +01:00
Show warning that 3ds files are no longer supported
This commit is contained in:
parent
67890f59fd
commit
1a73739fd8
@ -1,4 +1,4 @@
|
|||||||
// Copyright Citra Emulator Project / Lime3DS Emulator Project
|
// Copyright Citra Emulator Project / Azahar Emulator Project
|
||||||
// Licensed under GPLv2 or any later version
|
// Licensed under GPLv2 or any later version
|
||||||
// Refer to the license.txt file included.
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
@ -6,10 +6,12 @@ package org.citra.citra_emu.fragments
|
|||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.text.method.LinkMovementMethod
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.view.ViewGroup.MarginLayoutParams
|
import android.view.ViewGroup.MarginLayoutParams
|
||||||
|
import android.widget.TextView
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.core.view.ViewCompat
|
import androidx.core.view.ViewCompat
|
||||||
import androidx.core.view.WindowInsetsCompat
|
import androidx.core.view.WindowInsetsCompat
|
||||||
@ -22,6 +24,7 @@ import androidx.lifecycle.repeatOnLifecycle
|
|||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import androidx.recyclerview.widget.GridLayoutManager
|
import androidx.recyclerview.widget.GridLayoutManager
|
||||||
import com.google.android.material.color.MaterialColors
|
import com.google.android.material.color.MaterialColors
|
||||||
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import com.google.android.material.transition.MaterialFadeThrough
|
import com.google.android.material.transition.MaterialFadeThrough
|
||||||
import kotlinx.coroutines.flow.collectLatest
|
import kotlinx.coroutines.flow.collectLatest
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
@ -33,6 +36,8 @@ import org.citra.citra_emu.features.settings.model.Settings
|
|||||||
import org.citra.citra_emu.model.Game
|
import org.citra.citra_emu.model.Game
|
||||||
import org.citra.citra_emu.viewmodel.GamesViewModel
|
import org.citra.citra_emu.viewmodel.GamesViewModel
|
||||||
import org.citra.citra_emu.viewmodel.HomeViewModel
|
import org.citra.citra_emu.viewmodel.HomeViewModel
|
||||||
|
import androidx.core.content.edit
|
||||||
|
import androidx.core.text.HtmlCompat
|
||||||
|
|
||||||
class GamesFragment : Fragment() {
|
class GamesFragment : Fragment() {
|
||||||
private var _binding: FragmentGamesBinding? = null
|
private var _binding: FragmentGamesBinding? = null
|
||||||
@ -40,6 +45,7 @@ class GamesFragment : Fragment() {
|
|||||||
|
|
||||||
private val gamesViewModel: GamesViewModel by activityViewModels()
|
private val gamesViewModel: GamesViewModel by activityViewModels()
|
||||||
private val homeViewModel: HomeViewModel by activityViewModels()
|
private val homeViewModel: HomeViewModel by activityViewModels()
|
||||||
|
private var show3DSFileWarning: Boolean = true
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
@ -143,6 +149,34 @@ class GamesFragment : Fragment() {
|
|||||||
setInsets()
|
setInsets()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onResume() {
|
||||||
|
super.onResume()
|
||||||
|
|
||||||
|
if (show3DSFileWarning &&
|
||||||
|
!PreferenceManager.getDefaultSharedPreferences(CitraApplication.appContext)
|
||||||
|
.getBoolean("show_3ds_files_warning", false)) {
|
||||||
|
val message = HtmlCompat.fromHtml(getString(R.string.warning_3ds_files),
|
||||||
|
HtmlCompat.FROM_HTML_MODE_LEGACY)
|
||||||
|
|
||||||
|
context?.let {
|
||||||
|
val alert = MaterialAlertDialogBuilder(it)
|
||||||
|
.setTitle(getString(R.string.important))
|
||||||
|
.setMessage(message)
|
||||||
|
.setPositiveButton(R.string.dont_show_again) { _, _ ->
|
||||||
|
PreferenceManager.getDefaultSharedPreferences(CitraApplication.appContext)
|
||||||
|
.edit() {
|
||||||
|
putBoolean("show_3ds_files_warning", true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.show()
|
||||||
|
|
||||||
|
val alertMessage = alert.findViewById<View>(android.R.id.message) as TextView
|
||||||
|
alertMessage.movementMethod = LinkMovementMethod.getInstance()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
show3DSFileWarning = false
|
||||||
|
}
|
||||||
|
|
||||||
override fun onDestroyView() {
|
override fun onDestroyView() {
|
||||||
super.onDestroyView()
|
super.onDestroyView()
|
||||||
_binding = null
|
_binding = null
|
||||||
|
|||||||
@ -11,6 +11,8 @@
|
|||||||
<string name="app_game_install_description">Next, you will need to select an Applications Folder. Azahar will display all of the 3DS ROMs inside of the selected folder in the app.\n\nCIA ROMs, updates and DLC will need to be installed separately by clicking on the folder icon and selecting Install CIA.</string>
|
<string name="app_game_install_description">Next, you will need to select an Applications Folder. Azahar will display all of the 3DS ROMs inside of the selected folder in the app.\n\nCIA ROMs, updates and DLC will need to be installed separately by clicking on the folder icon and selecting Install CIA.</string>
|
||||||
<string name="start">Start</string>
|
<string name="start">Start</string>
|
||||||
<string name="cancelling">Cancelling…</string>
|
<string name="cancelling">Cancelling…</string>
|
||||||
|
<string name="important">Important</string>
|
||||||
|
<string name="dont_show_again">Don\'t show again</string>
|
||||||
|
|
||||||
<!-- Home Strings -->
|
<!-- Home Strings -->
|
||||||
<string name="grid_menu_core_settings">Settings</string>
|
<string name="grid_menu_core_settings">Settings</string>
|
||||||
@ -38,6 +40,7 @@
|
|||||||
<string name="select_citra_user_folder_home_description">Changes the files that Azahar uses to load applications</string>
|
<string name="select_citra_user_folder_home_description">Changes the files that Azahar uses to load applications</string>
|
||||||
<string name="theme_and_color_description">Modify the look of the app</string>
|
<string name="theme_and_color_description">Modify the look of the app</string>
|
||||||
<string name="install_cia_title">Install CIA</string>
|
<string name="install_cia_title">Install CIA</string>
|
||||||
|
<string name="warning_3ds_files">Encrypted files and .3ds files are no longer supported. Decrypting and/or renaming to .cci may be necessary. <a href=\"https://azahar-emu.org/blog/game-loading-changes/\">Learn more.</a></string>
|
||||||
|
|
||||||
<!-- GPU driver installation -->
|
<!-- GPU driver installation -->
|
||||||
<string name="select_gpu_driver">Select GPU driver</string>
|
<string name="select_gpu_driver">Select GPU driver</string>
|
||||||
|
|||||||
@ -828,6 +828,7 @@ void QtConfig::ReadUIGameListValues() {
|
|||||||
ReadBasicSetting(UISettings::values.game_list_row_2);
|
ReadBasicSetting(UISettings::values.game_list_row_2);
|
||||||
ReadBasicSetting(UISettings::values.game_list_hide_no_icon);
|
ReadBasicSetting(UISettings::values.game_list_hide_no_icon);
|
||||||
ReadBasicSetting(UISettings::values.game_list_single_line_mode);
|
ReadBasicSetting(UISettings::values.game_list_single_line_mode);
|
||||||
|
ReadBasicSetting(UISettings::values.show_3ds_files_warning);
|
||||||
|
|
||||||
ReadBasicSetting(UISettings::values.show_compat_column);
|
ReadBasicSetting(UISettings::values.show_compat_column);
|
||||||
ReadBasicSetting(UISettings::values.show_region_column);
|
ReadBasicSetting(UISettings::values.show_region_column);
|
||||||
@ -1335,6 +1336,7 @@ void QtConfig::SaveUIGameListValues() {
|
|||||||
WriteBasicSetting(UISettings::values.game_list_row_2);
|
WriteBasicSetting(UISettings::values.game_list_row_2);
|
||||||
WriteBasicSetting(UISettings::values.game_list_hide_no_icon);
|
WriteBasicSetting(UISettings::values.game_list_hide_no_icon);
|
||||||
WriteBasicSetting(UISettings::values.game_list_single_line_mode);
|
WriteBasicSetting(UISettings::values.game_list_single_line_mode);
|
||||||
|
WriteBasicSetting(UISettings::values.show_3ds_files_warning);
|
||||||
|
|
||||||
WriteBasicSetting(UISettings::values.show_compat_column);
|
WriteBasicSetting(UISettings::values.show_compat_column);
|
||||||
WriteBasicSetting(UISettings::values.show_region_column);
|
WriteBasicSetting(UISettings::values.show_region_column);
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2015 Citra Emulator Project
|
// Copyright Citra Emulator Project / Azahar Emulator Project
|
||||||
// Licensed under GPLv2 or any later version
|
// Licensed under GPLv2 or any later version
|
||||||
// Refer to the license.txt file included.
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
@ -350,6 +350,41 @@ GameList::GameList(PlayTime::PlayTimeManager& play_time_manager_, GMainWindow* p
|
|||||||
|
|
||||||
layout->setContentsMargins(0, 0, 0, 0);
|
layout->setContentsMargins(0, 0, 0, 0);
|
||||||
layout->setSpacing(0);
|
layout->setSpacing(0);
|
||||||
|
|
||||||
|
if (UISettings::values.show_3ds_files_warning.GetValue()) {
|
||||||
|
|
||||||
|
warning_layout = new QHBoxLayout;
|
||||||
|
deprecated_3ds_warning = new QLabel;
|
||||||
|
deprecated_3ds_warning->setText(
|
||||||
|
tr("IMPORTANT: Encrypted files and .3ds files are no longer supported. Decrypting "
|
||||||
|
"and/or renaming to .cci may be necessary. <a "
|
||||||
|
"href=\"https://azahar-emu.org/blog/game-loading-changes/\">Learn more.</a>"));
|
||||||
|
deprecated_3ds_warning->setOpenExternalLinks(true);
|
||||||
|
deprecated_3ds_warning->setStyleSheet(
|
||||||
|
QString::fromStdString("color: black; font-weight: bold;"));
|
||||||
|
|
||||||
|
warning_hide = new QPushButton(tr("Don't show again"));
|
||||||
|
warning_hide->setStyleSheet(
|
||||||
|
QString::fromStdString("color: blue; text-decoration: underline;"));
|
||||||
|
warning_hide->setFlat(true);
|
||||||
|
warning_hide->setCursor(Qt::PointingHandCursor);
|
||||||
|
|
||||||
|
connect(warning_hide, &QPushButton::clicked, [this]() {
|
||||||
|
warning_widget->setVisible(false);
|
||||||
|
UISettings::values.show_3ds_files_warning.SetValue(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
warning_layout->addWidget(deprecated_3ds_warning);
|
||||||
|
warning_layout->addStretch();
|
||||||
|
warning_layout->addWidget(warning_hide);
|
||||||
|
warning_layout->setContentsMargins(3, 3, 3, 3);
|
||||||
|
warning_widget = new QWidget;
|
||||||
|
warning_widget->setStyleSheet(QString::fromStdString("background-color: khaki;"));
|
||||||
|
warning_widget->setLayout(warning_layout);
|
||||||
|
|
||||||
|
layout->addWidget(warning_widget);
|
||||||
|
}
|
||||||
|
|
||||||
layout->addWidget(tree_view);
|
layout->addWidget(tree_view);
|
||||||
layout->addWidget(search_field);
|
layout->addWidget(search_field);
|
||||||
setLayout(layout);
|
setLayout(layout);
|
||||||
|
|||||||
@ -1,10 +1,11 @@
|
|||||||
// Copyright 2015 Citra Emulator Project
|
// Copyright Citra Emulator Project / Azahar Emulator Project
|
||||||
// Licensed under GPLv2 or any later version
|
// Licensed under GPLv2 or any later version
|
||||||
// Refer to the license.txt file included.
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
|
#include <QPushButton>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QVector>
|
#include <QVector>
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
@ -133,6 +134,10 @@ private:
|
|||||||
void changeEvent(QEvent*) override;
|
void changeEvent(QEvent*) override;
|
||||||
void RetranslateUI();
|
void RetranslateUI();
|
||||||
|
|
||||||
|
QHBoxLayout* warning_layout = nullptr;
|
||||||
|
QWidget* warning_widget = nullptr;
|
||||||
|
QLabel* deprecated_3ds_warning = nullptr;
|
||||||
|
QPushButton* warning_hide = nullptr;
|
||||||
GameListSearchField* search_field;
|
GameListSearchField* search_field;
|
||||||
GMainWindow* main_window = nullptr;
|
GMainWindow* main_window = nullptr;
|
||||||
QVBoxLayout* layout = nullptr;
|
QVBoxLayout* layout = nullptr;
|
||||||
|
|||||||
@ -94,6 +94,7 @@ struct Values {
|
|||||||
Settings::Setting<GameListText> game_list_row_2{GameListText::FileName, "row2"};
|
Settings::Setting<GameListText> game_list_row_2{GameListText::FileName, "row2"};
|
||||||
Settings::Setting<bool> game_list_hide_no_icon{false, "hideNoIcon"};
|
Settings::Setting<bool> game_list_hide_no_icon{false, "hideNoIcon"};
|
||||||
Settings::Setting<bool> game_list_single_line_mode{false, "singleLineMode"};
|
Settings::Setting<bool> game_list_single_line_mode{false, "singleLineMode"};
|
||||||
|
Settings::Setting<bool> show_3ds_files_warning{true, "show_3ds_files_warning"};
|
||||||
|
|
||||||
// Compatibility List
|
// Compatibility List
|
||||||
Settings::Setting<bool> show_compat_column{true, "show_compat_column"};
|
Settings::Setting<bool> show_compat_column{true, "show_compat_column"};
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user