Merge pull request #12918 from hrydgard/ui-minor

Some minor UI fixes (missing homebrew, etc).
This commit is contained in:
Unknown W. Brackets 2020-05-17 10:07:44 -04:00 committed by GitHub
commit f5d5f56044
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 20 additions and 30 deletions

View File

@ -601,7 +601,7 @@ void GameBrowser::Draw(UIContext &dc) {
}
}
static bool IsValidPBP(const std::string &path) {
static bool IsValidPBP(const std::string &path, bool allowHomebrew) {
if (!File::Exists(path))
return false;
@ -613,7 +613,7 @@ static bool IsValidPBP(const std::string &path) {
ParamSFOData sfo;
sfo.ReadSFO(sfoData);
if (sfo.GetValueString("DISC_ID").empty())
if (!allowHomebrew && sfo.GetValueString("DISC_ID").empty())
return false;
if (sfo.GetValueString("CATEGORY") == "ME")
@ -628,7 +628,6 @@ void GameBrowser::Refresh() {
lastScale_ = g_Config.fGameGridScale;
lastLayoutWasGrid_ = *gridStyle_;
homebrewStoreButton_ = nullptr;
// Kill all the contents
Clear();
@ -706,7 +705,7 @@ void GameBrowser::Refresh() {
bool isGame = !fileInfo[i].isDirectory;
bool isSaveData = false;
// Check if eboot directory
if (!isGame && path_.GetPath().size() >= 4 && IsValidPBP(path_.GetPath() + fileInfo[i].name + "/EBOOT.PBP"))
if (!isGame && path_.GetPath().size() >= 4 && IsValidPBP(path_.GetPath() + fileInfo[i].name + "/EBOOT.PBP", true))
isGame = true;
else if (!isGame && File::Exists(path_.GetPath() + fileInfo[i].name + "/PSP_GAME/SYSDIR"))
isGame = true;
@ -785,9 +784,7 @@ void GameBrowser::Refresh() {
if (browseFlags_ & BrowseFlags::HOMEBREW_STORE) {
Add(new Spacer());
homebrewStoreButton_ = Add(new Choice(mm->T("DownloadFromStore", "Download from the PPSSPP Homebrew Store"), new UI::LinearLayoutParams(UI::WRAP_CONTENT, UI::WRAP_CONTENT)));
} else {
homebrewStoreButton_ = nullptr;
Add(new Choice(mm->T("DownloadFromStore", "Download from the PPSSPP Homebrew Store"), new UI::LinearLayoutParams(UI::WRAP_CONTENT, UI::WRAP_CONTENT)))->OnClick.Handle(this, &GameBrowser::OnHomebrewStore);
}
if (!lastText_.empty() && gameButtons.empty()) {
@ -908,7 +905,12 @@ UI::EventReturn GameBrowser::OnRecentClear(UI::EventParams &e) {
return UI::EVENT_DONE;
}
MainScreen::MainScreen() : highlightProgress_(0.0f), prevHighlightProgress_(0.0f), backFromStore_(false), lockBackgroundAudio_(false) {
UI::EventReturn GameBrowser::OnHomebrewStore(UI::EventParams &e) {
screenManager_->push(new StoreScreen());
return UI::EVENT_DONE;
}
MainScreen::MainScreen() {
System_SendMessage("event", "mainscreen");
SetBackgroundAudioGame("");
lastVertical_ = UseVerticalLayout();
@ -918,7 +920,6 @@ MainScreen::~MainScreen() {
SetBackgroundAudioGame("");
}
void MainScreen::CreateViews() {
// Information in the top left.
// Back button to the bottom left.
@ -974,11 +975,6 @@ void MainScreen::CreateViews() {
mm->T("How to get homebrew & demos", "How to get homebrew && demos"), "https://www.ppsspp.org/gethomebrew.html",
new LinearLayoutParams(FILL_PARENT, FILL_PARENT));
Choice *hbStore = tabHomebrew->HomebrewStoreButton();
if (hbStore) {
hbStore->OnClick.Handle(this, &MainScreen::OnHomebrewStore);
}
scrollAllGames->Add(tabAllGames);
gameBrowsers_.push_back(tabAllGames);
scrollHomebrew->Add(tabHomebrew);
@ -1323,11 +1319,6 @@ UI::EventReturn MainScreen::OnCredits(UI::EventParams &e) {
return UI::EVENT_DONE;
}
UI::EventReturn MainScreen::OnHomebrewStore(UI::EventParams &e) {
screenManager()->push(new StoreScreen());
return UI::EVENT_DONE;
}
UI::EventReturn MainScreen::OnSupport(UI::EventParams &e) {
#ifdef __ANDROID__
LaunchBrowser("market://details?id=org.ppsspp.ppssppgold");

View File

@ -53,8 +53,6 @@ public:
UI::Event OnHoldChoice;
UI::Event OnHighlight;
UI::Choice *HomebrewStoreButton() { return homebrewStoreButton_; }
void FocusGame(const std::string &gamePath);
void SetPath(const std::string &path);
void Draw(UIContext &dc) override;
@ -81,14 +79,14 @@ private:
UI::EventReturn PinToggleClick(UI::EventParams &e);
UI::EventReturn GridSettingsClick(UI::EventParams &e);
UI::EventReturn OnRecentClear(UI::EventParams &e);
UI::EventReturn OnHomebrewStore(UI::EventParams &e);
UI::ViewGroup *gameList_ = nullptr;
PathBrowser path_;
bool *gridStyle_;
bool *gridStyle_ = nullptr;
BrowseFlags browseFlags_;
std::string lastText_;
std::string lastLink_;
UI::Choice *homebrewStoreButton_ = nullptr;
std::string focusGamePath_;
bool listingPending_ = false;
float lastScale_ = 1.0f;
@ -131,21 +129,20 @@ protected:
UI::EventReturn OnExit(UI::EventParams &e);
UI::EventReturn OnDownloadUpgrade(UI::EventParams &e);
UI::EventReturn OnDismissUpgrade(UI::EventParams &e);
UI::EventReturn OnHomebrewStore(UI::EventParams &e);
UI::EventReturn OnAllowStorage(UI::EventParams &e);
UI::LinearLayout *upgradeBar_;
UI::TabHolder *tabHolder_;
UI::LinearLayout *upgradeBar_ = nullptr;
UI::TabHolder *tabHolder_ = nullptr;
std::string restoreFocusGamePath_;
std::vector<GameBrowser *> gameBrowsers_;
std::string highlightedGamePath_;
std::string prevHighlightedGamePath_;
float highlightProgress_;
float prevHighlightProgress_;
bool backFromStore_;
bool lockBackgroundAudio_;
float highlightProgress_ = 0.0f;
float prevHighlightProgress_ = 0.0f;
bool backFromStore_ = false;
bool lockBackgroundAudio_ = false;
bool lastVertical_;
bool confirmedTemporary_ = false;

View File

@ -244,6 +244,7 @@ void ProductView::CreateViews() {
auto di = GetI18NCategory("Dialog");
wasInstalled_ = IsGameInstalled();
if (!wasInstalled_) {
launchButton_ = nullptr;
installButton_ = Add(new Button(st->T("Install")));
installButton_->OnClick.Handle(this, &ProductView::OnInstall);
} else {

View File

@ -287,6 +287,7 @@ size_t getFilesInDir(const char *directory, std::vector<FileInfo> *files, const
info.isDirectory = isDirectory(info.fullName);
info.exists = true;
info.size = 0;
info.isWritable = false; // TODO - implement some kind of check
if (!info.isDirectory) {
std::string ext = getFileExtension(info.fullName);
if (filter) {