diff --git a/src/engraving/dom/engravingitem.cpp b/src/engraving/dom/engravingitem.cpp index adc4b63b7cf79..ed42be31c0d51 100644 --- a/src/engraving/dom/engravingitem.cpp +++ b/src/engraving/dom/engravingitem.cpp @@ -2598,7 +2598,7 @@ void EngravingItem::setVisible(bool f) #ifndef ENGRAVING_NO_ACCESSIBILITY void EngravingItem::initAccessibleIfNeed() { - if (!configuration()->isAccessibleEnabled()) { + if (!configuration()->isAccessibleEnabled(iocContext())) { return; } diff --git a/src/engraving/iengravingconfiguration.h b/src/engraving/iengravingconfiguration.h index 8fd99db99ab31..fa44d944d8796 100644 --- a/src/engraving/iengravingconfiguration.h +++ b/src/engraving/iengravingconfiguration.h @@ -129,7 +129,7 @@ class IEngravingConfiguration : MODULE_GLOBAL_INTERFACE virtual void setDebuggingOptions(const DebuggingOptions& options) = 0; virtual muse::async::Notification debuggingOptionsChanged() const = 0; - virtual bool isAccessibleEnabled() const = 0; + virtual bool isAccessibleEnabled(const muse::modularity::ContextPtr& ctx) const = 0; virtual bool doNotSaveEIDsForBackCompat() const = 0; virtual void setDoNotSaveEIDsForBackCompat(bool doNotSave) = 0; diff --git a/src/engraving/internal/engravingconfiguration.cpp b/src/engraving/internal/engravingconfiguration.cpp index a5fe153e6af7c..118acff7a3f2e 100644 --- a/src/engraving/internal/engravingconfiguration.cpp +++ b/src/engraving/internal/engravingconfiguration.cpp @@ -430,9 +430,9 @@ muse::async::Notification EngravingConfiguration::debuggingOptionsChanged() cons return m_debuggingOptions.notification; } -bool EngravingConfiguration::isAccessibleEnabled() const +bool EngravingConfiguration::isAccessibleEnabled(const muse::modularity::ContextPtr& ctx) const { - return accessibilityConfiguration() ? accessibilityConfiguration()->enabled() : false; + return accessibilityConfiguration() ? accessibilityConfiguration()->enabled(ctx) : false; } bool EngravingConfiguration::doNotSaveEIDsForBackCompat() const diff --git a/src/engraving/internal/engravingconfiguration.h b/src/engraving/internal/engravingconfiguration.h index 53e1433ca22a2..c5d881a2c6d44 100644 --- a/src/engraving/internal/engravingconfiguration.h +++ b/src/engraving/internal/engravingconfiguration.h @@ -107,7 +107,7 @@ class EngravingConfiguration : public IEngravingConfiguration, public muse::asyn void setDebuggingOptions(const DebuggingOptions& options) override; muse::async::Notification debuggingOptionsChanged() const override; - bool isAccessibleEnabled() const override; + bool isAccessibleEnabled(const muse::modularity::ContextPtr& ctx) const override; bool doNotSaveEIDsForBackCompat() const override; void setDoNotSaveEIDsForBackCompat(bool doNotSave) override; diff --git a/src/framework/accessibility/accessibilitymodule.cpp b/src/framework/accessibility/accessibilitymodule.cpp index f3fd62412848f..2a091f5199666 100644 --- a/src/framework/accessibility/accessibilitymodule.cpp +++ b/src/framework/accessibility/accessibilitymodule.cpp @@ -42,7 +42,7 @@ std::string AccessibilityModule::moduleName() const void AccessibilityModule::registerExports() { - m_configuration = std::make_shared(globalCtx()); + m_configuration = std::make_shared(); globalIoc()->registerExport(mname, m_configuration); globalIoc()->registerExport(mname, new QAccessibleInterfaceRegister()); diff --git a/src/framework/accessibility/iaccessibilityconfiguration.h b/src/framework/accessibility/iaccessibilityconfiguration.h index 9d2e8ac22952a..a231f322ade0e 100644 --- a/src/framework/accessibility/iaccessibilityconfiguration.h +++ b/src/framework/accessibility/iaccessibilityconfiguration.h @@ -23,6 +23,7 @@ #define MUSE_ACCESSIBILITY_IACCESSIBILITYCONFIGURATION_H #include "modularity/imoduleinterface.h" +#include "modularity/ioc.h" namespace muse::accessibility { class IAccessibilityConfiguration : MODULE_GLOBAL_INTERFACE @@ -31,7 +32,7 @@ class IAccessibilityConfiguration : MODULE_GLOBAL_INTERFACE public: virtual ~IAccessibilityConfiguration() = default; - virtual bool enabled() const = 0; + virtual bool enabled(const modularity::ContextPtr& ctx) const = 0; virtual bool active() const = 0; }; } diff --git a/src/framework/accessibility/internal/accessibilityconfiguration.cpp b/src/framework/accessibility/internal/accessibilityconfiguration.cpp index 95f42f5d0ffdb..4af49b62976c5 100644 --- a/src/framework/accessibility/internal/accessibilityconfiguration.cpp +++ b/src/framework/accessibility/internal/accessibilityconfiguration.cpp @@ -23,6 +23,9 @@ #include +#include "modularity/ioc.h" +#include "ui/inavigationcontroller.h" + using namespace muse::accessibility; class AccessibilityActivationObserver : public QAccessible::ActivationObserver @@ -64,12 +67,14 @@ void AccessibilityConfiguration::init() m_inited = true; } -bool AccessibilityConfiguration::enabled() const +bool AccessibilityConfiguration::enabled(const modularity::ContextPtr& ctx) const { if (!m_inited) { return false; } + ContextInject navigationController { ctx }; + if (!navigationController()) { return false; } diff --git a/src/framework/accessibility/internal/accessibilityconfiguration.h b/src/framework/accessibility/internal/accessibilityconfiguration.h index 6676423936d7f..1b71e380cb113 100644 --- a/src/framework/accessibility/internal/accessibilityconfiguration.h +++ b/src/framework/accessibility/internal/accessibilityconfiguration.h @@ -24,23 +24,17 @@ #include "../iaccessibilityconfiguration.h" -#include "modularity/ioc.h" -#include "ui/inavigationcontroller.h" - namespace muse::accessibility { -class AccessibilityConfiguration : public IAccessibilityConfiguration, public Contextable +class AccessibilityConfiguration : public IAccessibilityConfiguration { - ContextInject navigationController { this }; - public: - AccessibilityConfiguration(const modularity::ContextPtr& ctx) - : Contextable(ctx) {} + AccessibilityConfiguration() = default; ~AccessibilityConfiguration() override; void init(); - bool enabled() const override; + bool enabled(const modularity::ContextPtr& ctx) const override; bool active() const override; private: diff --git a/src/framework/accessibility/internal/accessibilitycontroller.cpp b/src/framework/accessibility/internal/accessibilitycontroller.cpp index ac16e3c61f11c..ba869fa7def99 100644 --- a/src/framework/accessibility/internal/accessibilitycontroller.cpp +++ b/src/framework/accessibility/internal/accessibilitycontroller.cpp @@ -417,7 +417,7 @@ void AccessibilityController::propertyChanged(IAccessible* item, IAccessible::Pr void AccessibilityController::stateChanged(IAccessible* aitem, State state, bool arg) { - if (!configuration()->enabled()) { + if (!configuration()->enabled(iocContext())) { return; } diff --git a/src/framework/global/thirdparty/kors_modularity/modularity/modulesioc.h b/src/framework/global/thirdparty/kors_modularity/modularity/modulesioc.h index 5983ef6fc74a0..749c3eb3d2b14 100644 --- a/src/framework/global/thirdparty/kors_modularity/modularity/modulesioc.h +++ b/src/framework/global/thirdparty/kors_modularity/modularity/modulesioc.h @@ -33,8 +33,7 @@ SOFTWARE. #include "imoduleinterface.h" -// Temporary disabled -//#define IOC_CHECK_INTERFACE_TYPE +#define IOC_CHECK_INTERFACE_TYPE namespace kors::modularity { template diff --git a/src/project/internal/projectconfiguration.cpp b/src/project/internal/projectconfiguration.cpp index e525e61b812bd..2e8c716191bed 100644 --- a/src/project/internal/projectconfiguration.cpp +++ b/src/project/internal/projectconfiguration.cpp @@ -621,9 +621,9 @@ muse::io::path_t ProjectConfiguration::newProjectTemporaryPath() const return globalConfiguration()->userAppDataPath() + "/new_project" + DEFAULT_FILE_SUFFIX; } -bool ProjectConfiguration::isAccessibleEnabled() const +bool ProjectConfiguration::isAccessibleEnabled(const muse::modularity::ContextPtr& ctx) const { - return accessibilityConfiguration()->enabled(); + return accessibilityConfiguration()->enabled(ctx); } bool ProjectConfiguration::shouldDestinationFolderBeOpenedOnExport() const diff --git a/src/project/internal/projectconfiguration.h b/src/project/internal/projectconfiguration.h index d93664f1ac656..938e1cebe433a 100644 --- a/src/project/internal/projectconfiguration.h +++ b/src/project/internal/projectconfiguration.h @@ -129,7 +129,7 @@ class ProjectConfiguration : public IProjectConfiguration, public muse::Contexta muse::io::path_t newProjectTemporaryPath() const override; - bool isAccessibleEnabled() const override; + bool isAccessibleEnabled(const muse::modularity::ContextPtr& ctx) const override; bool shouldDestinationFolderBeOpenedOnExport() const override; void setShouldDestinationFolderBeOpenedOnExport(bool shouldDestinationFolderBeOpenedOnExport) override; diff --git a/src/project/iprojectconfiguration.h b/src/project/iprojectconfiguration.h index 8f3b5b95bec2e..781c5c9e408da 100644 --- a/src/project/iprojectconfiguration.h +++ b/src/project/iprojectconfiguration.h @@ -132,7 +132,7 @@ class IProjectConfiguration : MODULE_GLOBAL_INTERFACE virtual muse::io::path_t newProjectTemporaryPath() const = 0; - virtual bool isAccessibleEnabled() const = 0; + virtual bool isAccessibleEnabled(const muse::modularity::ContextPtr& ctx) const = 0; virtual bool shouldDestinationFolderBeOpenedOnExport() const = 0; virtual void setShouldDestinationFolderBeOpenedOnExport(bool shouldDestinationFolderBeOpenedOnExport) = 0;