From caafcf2e8d4ccb4dd359bf6fd9d4296c3fe4c955 Mon Sep 17 00:00:00 2001 From: cxl Date: Fri, 19 Feb 2021 09:45:33 +0000 Subject: [PATCH] ide: UppHub improvements git-svn-id: svn://ultimatepp.org/upp/trunk@15778 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/ide/UppHub.cpp | 50 +++++++++++++++++++++++++++++++++---------- uppsrc/ide/ide.lay | 10 ++++++++- 2 files changed, 48 insertions(+), 12 deletions(-) diff --git a/uppsrc/ide/UppHub.cpp b/uppsrc/ide/UppHub.cpp index f8b35c406..3b12a2ff7 100644 --- a/uppsrc/ide/UppHub.cpp +++ b/uppsrc/ide/UppHub.cpp @@ -20,6 +20,10 @@ struct UppHubDlg : WithUppHubLayout { bool loading_stopped; String last_package; + WithUppHubSettingsLayout settings; + + virtual bool Key(dword key, int count); + void Readme(); Value LoadJson(const String& url); void Load(int tier, const String& url); @@ -30,6 +34,7 @@ struct UppHubDlg : WithUppHubLayout { void Install(const Index& ii); void Update(); void SyncList(); + void Settings(); UppHubNest *Get(const String& name) { return upv.FindPtr(name); } UppHubNest *Current() { return Get(list.GetKey()); } @@ -40,6 +45,9 @@ struct UppHubDlg : WithUppHubLayout { UppHubDlg::UppHubDlg() { CtrlLayoutCancel(*this, "UppHub"); + + CtrlLayoutOKCancel(settings, "Settings"); + FileSelectOpen(settings.url, settings.selfile); list.EvenRowColor(); @@ -80,17 +88,37 @@ UppHubDlg::UppHubDlg() readme << [=] { Readme(); }; reinstall << [=] { Reinstall(); }; - settings.Show(IsVerbose()); - settings << [=] { - String s = LoadFile(ConfigFile("upphub_root")); - EditText(s, "UppHub root", "Root url"); - SaveFile(ConfigFile("upphub_root"), s); - Load(); + setup.Show(IsVerbose()); + setup << [=] { + Settings(); }; update << [=] { Update(); }; help << [=] { LaunchWebBrowser("https://www.ultimatepp.org/app$ide$UppHub_en-us.html"); }; + + LoadFromGlobal(settings, "UppHubDlgSettings"); +} + +INITBLOCK { + RegisterGlobalConfig("UppHubDlgSettings"); +} + +bool UppHubDlg::Key(dword key, int count) +{ + if(key == K_F12) { + Settings(); + return true; + } + return TopWindow::Key(key, count); +} + +void UppHubDlg::Settings() +{ + if(settings.Execute() == IDOK) { + StoreToGlobal(settings, "UppHubDlgSettings"); + Load(); + } } void UppHubDlg::Readme() @@ -137,7 +165,6 @@ Value UppHubDlg::LoadJson(const String& url) if(begin >= 0 && end >= 0) s = s.Mid(begin, end - begin); - Value v = ParseJSON(s); if(v.IsError()) { @@ -211,9 +238,10 @@ void UppHubDlg::Load() loading_stopped = false; loaded.Clear(); upv.Clear(); - - Load(0, Nvl(LoadFile(ConfigFile("upphub_root")), - "https://raw.githubusercontent.com/ultimatepp/UppHub/main/nests.json")); + + Load(0, Nvl(~~settings.url, + LoadFile(ConfigFile("upphub_root")), + (String)"https://raw.githubusercontent.com/ultimatepp/UppHub/main/nests.json")); SyncList(); @@ -246,7 +274,7 @@ void UppHubDlg::Install(const Index& ii_) if(!DirectoryExists(dir)) { String cmd = "git clone "; if(n->branch.GetCount()) - cmd << "-b " + n->branch << " "; + cmd << "-b " + n->branch << ' '; cmd << n->repo; cmd << ' ' << dir; console.System(cmd); diff --git a/uppsrc/ide/ide.lay b/uppsrc/ide/ide.lay index 1ce8e1b4f..c7f5f5434 100644 --- a/uppsrc/ide/ide.lay +++ b/uppsrc/ide/ide.lay @@ -921,7 +921,7 @@ END_LAYOUT LAYOUT(UppHubLayout, 992, 656) ITEM(Upp::ArrayCtrl, list, LeftPosZ(4, 984).TopPosZ(4, 616)) - ITEM(Upp::Button, settings, SetLabel(t_("Settings..")).LeftPosZ(4, 64).TopPosZ(628, 24)) + ITEM(Upp::Button, setup, SetLabel(t_("Settings..")).LeftPosZ(4, 64).TopPosZ(628, 24)) ITEM(Upp::Button, help, SetLabel(t_("?")).Tip(t_("Learn more about UppHub..")).RightPosZ(344, 20).BottomPosZ(4, 24)) ITEM(Upp::Button, update, SetLabel(t_("Update all")).RightPosZ(276, 64).BottomPosZ(4, 24)) ITEM(Upp::Button, readme, SetLabel(t_("README..")).RightPosZ(208, 64).BottomPosZ(4, 24)) @@ -930,3 +930,11 @@ LAYOUT(UppHubLayout, 992, 656) ITEM(Upp::Button, cancel, SetLabel(t_("Exit")).RightPosZ(4, 64).BottomPosZ(4, 24)) END_LAYOUT +LAYOUT(UppHubSettingsLayout, 512, 64) + ITEM(Upp::Option, override, SetLabel(t_("Override UppHub url with")).LeftPosZ(8, 152).TopPosZ(8, 16)) + ITEM(Upp::EditString, url, LeftPosZ(152, 328).TopPosZ(7, 19)) + ITEM(Upp::Button, selfile, LeftPosZ(484, 20).TopPosZ(7, 19)) + ITEM(Upp::Button, ok, SetLabel(t_("OK")).LeftPosZ(372, 64).TopPosZ(32, 24)) + ITEM(Upp::Button, cancel, SetLabel(t_("Cancel")).LeftPosZ(440, 64).TopPosZ(32, 24)) +END_LAYOUT +