From aef988967a176c5d09695c9776348e01f91ac961 Mon Sep 17 00:00:00 2001 From: Timon Ensel Date: Mon, 11 Nov 2024 18:07:17 +0100 Subject: [PATCH] code cleanup --- src/core/OSTreeTUI.cpp | 8 ++++++-- src/core/OSTreeTUI.hpp | 6 ++++-- src/core/commit.cpp | 10 +++++----- src/core/manager.cpp | 8 ++++++++ src/core/manager.hpp | 10 ++++++---- 5 files changed, 29 insertions(+), 13 deletions(-) diff --git a/src/core/OSTreeTUI.cpp b/src/core/OSTreeTUI.cpp index 7f621c4..89023f9 100644 --- a/src/core/OSTreeTUI.cpp +++ b/src/core/OSTreeTUI.cpp @@ -107,7 +107,7 @@ OSTreeTUI::OSTreeTUI (const std::string& repo, const std::vector st // interchangeable view (composed) manager = std::unique_ptr(new Manager(*this, infoView, filterView)); - managerRenderer = manager->managerRenderer; + managerRenderer = manager->getManagerRenderer(); // FOOTER footerRenderer = Renderer([&] { @@ -145,7 +145,7 @@ OSTreeTUI::OSTreeTUI (const std::string& repo, const std::vector st return true; } // make commit list focussable - if (event == Event::ArrowLeft && managerRenderer->Focused() && manager->tab_index == 0) { + if (event == Event::ArrowLeft && managerRenderer->Focused() && manager->getTabIndex() == 0) { commitListComponent->TakeFocus(); return true; } @@ -298,6 +298,10 @@ std::vector& OSTreeTUI::getColumnToBranchMap() { return columnToBranchMap; } +ftxui::ScreenInteractive& OSTreeTUI::getScreen() { + return screen; +} + // GETTER const cpplibostree::OSTreeRepo& OSTreeTUI::getOstreeRepo() const { return ostreeRepo; diff --git a/src/core/OSTreeTUI.hpp b/src/core/OSTreeTUI.hpp index 67711b1..0c431b7 100644 --- a/src/core/OSTreeTUI.hpp +++ b/src/core/OSTreeTUI.hpp @@ -77,10 +77,13 @@ class OSTreeTUI { void adjustScrollToSelectedCommit(); public: - // "SETTER" & non-const GETTER + // SETTER void setPromotionBranch(std::string promotionBranch); void setSelectedCommit(size_t selectedCommit); + + // non-const GETTER std::vector& getColumnToBranchMap(); + ftxui::ScreenInteractive& getScreen(); // GETTER const cpplibostree::OSTreeRepo& getOstreeRepo() const; @@ -120,7 +123,6 @@ class OSTreeTUI { Footer footer; std::unique_ptr filterManager{nullptr}; std::unique_ptr manager{nullptr}; -public: ftxui::ScreenInteractive screen; ftxui::Component mainContainer; ftxui::Components commitComponents; diff --git a/src/core/commit.cpp b/src/core/commit.cpp index 31b2737..97ec85d 100644 --- a/src/core/commit.cpp +++ b/src/core/commit.cpp @@ -119,11 +119,11 @@ class CommitComponentImpl : public ComponentBase, public WindowOptions { TakeFocus(); // manually fix focus issues // change to proper control layout if possible... - ostreetui.screen.Post(Event::ArrowDown); - ostreetui.screen.Post(Event::ArrowRight); - ostreetui.screen.Post(Event::ArrowDown); - ostreetui.screen.Post(Event::ArrowRight); - ostreetui.screen.Post(Event::ArrowUp); + ostreetui.getScreen().Post(Event::ArrowDown); + ostreetui.getScreen().Post(Event::ArrowRight); + ostreetui.getScreen().Post(Event::ArrowDown); + ostreetui.getScreen().Post(Event::ArrowRight); + ostreetui.getScreen().Post(Event::ArrowUp); } } diff --git a/src/core/manager.cpp b/src/core/manager.cpp index 8427f39..f49725b 100644 --- a/src/core/manager.cpp +++ b/src/core/manager.cpp @@ -41,6 +41,14 @@ Manager::Manager(OSTreeTUI& ostreetui, const ftxui::Component& infoView, const f }); } +ftxui::Component Manager::getManagerRenderer() { + return managerRenderer; +} + +const int& Manager::getTabIndex() const { + return tab_index; +} + // BranchBoxManager BranchBoxManager::BranchBoxManager(cpplibostree::OSTreeRepo& repo, std::unordered_map& visibleBranches) { diff --git a/src/core/manager.hpp b/src/core/manager.hpp index a3fe867..5e41dba 100644 --- a/src/core/manager.hpp +++ b/src/core/manager.hpp @@ -24,18 +24,20 @@ class Manager { private: OSTreeTUI& ostreetui; + int tab_index{0}; std::vector tab_entries = { " Info ", " Filter " }; + // because the combination of all interchangeable views is very simple, + // we can (in contrast to the other ones) render this one here + ftxui::Component managerRenderer; ftxui::Component tabSelection; ftxui::Component tabContent; public: - int tab_index{0}; - // because the combination of all interchangeable views is very simple, - // we can (in contrast to the other ones) render this one immediately - ftxui::Component managerRenderer; + ftxui::Component getManagerRenderer(); + const int& getTabIndex() const; }; class CommitInfoManager {