From 7d23626f28a81007ee9df61bca1c93f108dfd08d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Sun, 9 Nov 2025 09:25:42 +0100 Subject: [PATCH] Convert FrameDumpTestScreen to use a TabbedDialog --- UI/DevScreens.cpp | 38 ++++++++++++-------------------------- UI/DevScreens.h | 7 ++++--- 2 files changed, 16 insertions(+), 29 deletions(-) diff --git a/UI/DevScreens.cpp b/UI/DevScreens.cpp index b6644f7113..2dd9131f7e 100644 --- a/UI/DevScreens.cpp +++ b/UI/DevScreens.cpp @@ -531,42 +531,28 @@ bool ShaderViewScreen::key(const KeyInput &ki) { const std::string framedumpsBaseUrl = "http://framedump.ppsspp.org/repro/"; -FrameDumpTestScreen::FrameDumpTestScreen() { - -} - FrameDumpTestScreen::~FrameDumpTestScreen() { g_DownloadManager.CancelAll(); } -void FrameDumpTestScreen::CreateViews() { +void FrameDumpTestScreen::CreateTabs() { using namespace UI; - root_ = new AnchorLayout(new LayoutParams(FILL_PARENT, FILL_PARENT)); auto di = GetI18NCategory(I18NCat::DIALOG); + auto dev = GetI18NCategory(I18NCat::DEVELOPER); - TabHolder *tabHolder; - tabHolder = new TabHolder(ORIENT_VERTICAL, 200, TabHolderFlags::Default, nullptr, new AnchorLayoutParams(10, 0, 10, 0, false)); - root_->Add(tabHolder); - tabHolder->AddBack(this); - tabHolder->SetTag("DumpTypes"); - root_->SetDefaultFocusView(tabHolder); + AddTab("General", dev->T("Dumps"), [this](UI::LinearLayout *parent) { + parent->Add(new ItemHeader("GE Frame Dumps")); - ViewGroup *dumpsScroll = new ScrollView(ORIENT_VERTICAL, new LinearLayoutParams(FILL_PARENT, FILL_PARENT)); - dumpsScroll->SetTag("GameSettingsGraphics"); - LinearLayout *dumps = new LinearLayoutList(ORIENT_VERTICAL); - dumps->SetSpacing(0); - dumpsScroll->Add(dumps); - tabHolder->AddTab("Dumps", ImageID::invalid(), dumpsScroll); + for (auto &file : files_) { + std::string url = framedumpsBaseUrl + file; + Choice *c = parent->Add(new Choice(file)); + c->SetTag(url); + c->OnClick.Handle(this, &FrameDumpTestScreen::OnLoadDump); + } + }); - dumps->Add(new ItemHeader("GE Frame Dumps")); - - for (auto &file : files_) { - std::string url = framedumpsBaseUrl + file; - Choice *c = dumps->Add(new Choice(file)); - c->SetTag(url); - c->OnClick.Handle(this, &FrameDumpTestScreen::OnLoadDump); - } + EnsureTabs(); } void FrameDumpTestScreen::OnLoadDump(UI::EventParams ¶ms) { diff --git a/UI/DevScreens.h b/UI/DevScreens.h index a3fdf6a2ff..9bc256dcad 100644 --- a/UI/DevScreens.h +++ b/UI/DevScreens.h @@ -138,18 +138,19 @@ private: DebugShaderType type_; }; -class FrameDumpTestScreen : public UIBaseDialogScreen { +class FrameDumpTestScreen : public UITabbedBaseDialogScreen { public: - FrameDumpTestScreen(); + FrameDumpTestScreen() : UITabbedBaseDialogScreen(Path()) {} ~FrameDumpTestScreen(); - void CreateViews() override; + void CreateTabs() override; void update() override; const char *tag() const override { return "FrameDumpTest"; } private: void OnLoadDump(UI::EventParams &e); + bool ShowSearchControls() const { return false; } std::vector files_; std::shared_ptr listing_;