From 2b8625fd0605339f4ea72801217395ca1927f6ef Mon Sep 17 00:00:00 2001 From: Ruslan Kabatsayev Date: Wed, 22 Nov 2023 20:43:22 +0400 Subject: [PATCH] Don't manipulate StelSkyCultureMgr's signals outside of the class Although technically this works, architecturally it's unclean since it breaks incapsulation (which technically doesn't exist since the signals are public since Qt5, but this is only because of language limitations). --- src/core/StelSkyCultureMgr.cpp | 5 +++++ src/core/StelSkyCultureMgr.hpp | 2 ++ src/core/modules/ConstellationMgr.cpp | 3 +-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/core/StelSkyCultureMgr.cpp b/src/core/StelSkyCultureMgr.cpp index 348bd5a521da5..dfd1529bf4337 100644 --- a/src/core/StelSkyCultureMgr.cpp +++ b/src/core/StelSkyCultureMgr.cpp @@ -106,6 +106,11 @@ void StelSkyCultureMgr::init() setCurrentSkyCultureID(defaultSkyCultureID); } +void StelSkyCultureMgr::reloadSkyCulture() +{ + emit currentSkyCultureChanged(currentSkyCultureDir); +} + //! Set the current sky culture from the passed directory bool StelSkyCultureMgr::setCurrentSkyCultureID(const QString& cultureDir) { diff --git a/src/core/StelSkyCultureMgr.hpp b/src/core/StelSkyCultureMgr.hpp index 6524a3f855900..c9549d412ab92 100644 --- a/src/core/StelSkyCultureMgr.hpp +++ b/src/core/StelSkyCultureMgr.hpp @@ -147,6 +147,8 @@ public slots: //! @param id the sky culture ID. //! @return true on success; else false. bool setCurrentSkyCultureID(const QString& id); + //! Reload the current sky culture + void reloadSkyCulture(); //! Get the type of boundaries of the current sky culture //! Config option: info/boundaries diff --git a/src/core/modules/ConstellationMgr.cpp b/src/core/modules/ConstellationMgr.cpp index 68ae40c3bc514..6c2b376c1862c 100644 --- a/src/core/modules/ConstellationMgr.cpp +++ b/src/core/modules/ConstellationMgr.cpp @@ -152,8 +152,7 @@ double ConstellationMgr::getCallOrder(StelModuleActionName actionName) const void ConstellationMgr::reloadSkyCulture() { - StelSkyCultureMgr* skyCulMgr = &StelApp::getInstance().getSkyCultureMgr(); - emit skyCulMgr->currentSkyCultureChanged(skyCulMgr->getCurrentSkyCultureID()); + StelApp::getInstance().getSkyCultureMgr().reloadSkyCulture(); } void ConstellationMgr::updateSkyCulture(const QString& skyCultureDir)