Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion sandbox/web_sandbox/configs/data/shortcuts.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<autorepeat>0</autorepeat>
</SC>
<SC>
<key>multiinstances-dev-show-info</key>
<key>multiwindows-dev-show-info</key>
<seq>Ctrl+F3</seq>
<autorepeat>0</autorepeat>
</SC>
Expand Down
2 changes: 1 addition & 1 deletion sandbox/web_sandbox/configs/data/shortcuts_azerty.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<autorepeat>0</autorepeat>
</SC>
<SC>
<key>multiinstances-dev-show-info</key>
<key>multiwindows-dev-show-info</key>
<seq>Ctrl+F3</seq>
<autorepeat>0</autorepeat>
</SC>
Expand Down
2 changes: 1 addition & 1 deletion sandbox/web_sandbox/configs/data/shortcuts_mac.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<autorepeat>0</autorepeat>
</SC>
<SC>
<key>multiinstances-dev-show-info</key>
<key>multiwindows-dev-show-info</key>
<seq>Ctrl+F3</seq>
<autorepeat>0</autorepeat>
</SC>
Expand Down
2 changes: 1 addition & 1 deletion src/app/configs/data/shortcuts.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<autorepeat>0</autorepeat>
</SC>
<SC>
<key>multiinstances-dev-show-info</key>
<key>multiwindows-dev-show-info</key>
<seq>Ctrl+F3</seq>
<autorepeat>0</autorepeat>
</SC>
Expand Down
2 changes: 1 addition & 1 deletion src/app/configs/data/shortcuts_azerty.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<autorepeat>0</autorepeat>
</SC>
<SC>
<key>multiinstances-dev-show-info</key>
<key>multiwindows-dev-show-info</key>
<seq>Ctrl+F3</seq>
<autorepeat>0</autorepeat>
</SC>
Expand Down
2 changes: 1 addition & 1 deletion src/app/configs/data/shortcuts_mac.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<autorepeat>0</autorepeat>
</SC>
<SC>
<key>multiinstances-dev-show-info</key>
<key>multiwindows-dev-show-info</key>
<seq>Ctrl+F3</seq>
<autorepeat>0</autorepeat>
</SC>
Expand Down
83 changes: 66 additions & 17 deletions src/app/internal/consoleapp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -96,11 +96,26 @@ void ConsoleApp::setup()
m->registerExports();
}

#ifndef MUSE_MULTICONTEXT_WIP
modularity::ContextPtr ctx = std::make_shared<modularity::Context>();
ctx->id = 0;
std::vector<muse::modularity::IContextSetup*>& csetups = contextSetups(ctx);
for (modularity::IContextSetup* s : csetups) {
s->registerExports();
}
#endif

m_globalModule.resolveImports();
for (modularity::IModuleSetup* m : m_modules) {
m->resolveImports();
}

#ifndef MUSE_MULTICONTEXT_WIP
for (modularity::IContextSetup* s : csetups) {
s->resolveImports();
}
#endif

m_globalModule.registerApi();
for (modularity::IModuleSetup* m : m_modules) {
m->registerApi();
Expand All @@ -119,6 +134,11 @@ void ConsoleApp::setup()
m->onPreInit(runMode);
}

#ifndef MUSE_MULTICONTEXT_WIP
for (modularity::IContextSetup* s : csetups) {
s->onPreInit(runMode);
}
#endif
// ====================================================
// Setup modules: onInit
// ====================================================
Expand All @@ -127,6 +147,11 @@ void ConsoleApp::setup()
m->onInit(runMode);
}

#ifndef MUSE_MULTICONTEXT_WIP
for (modularity::IContextSetup* s : csetups) {
s->onInit(runMode);
}
#endif
// ====================================================
// Setup modules: onAllInited
// ====================================================
Expand All @@ -135,6 +160,12 @@ void ConsoleApp::setup()
m->onAllInited(runMode);
}

#ifndef MUSE_MULTICONTEXT_WIP
for (modularity::IContextSetup* s : csetups) {
s->onAllInited(runMode);
}
#endif

// ====================================================
// Setup modules: onStartApp (on next event loop)
// ====================================================
Expand Down Expand Up @@ -205,6 +236,35 @@ std::vector<muse::modularity::ContextPtr> ConsoleApp::contexts() const
return { m_context };
}

std::vector<muse::modularity::IContextSetup*>& ConsoleApp::contextSetups(
const muse::modularity::ContextPtr& ctx)
{
for (Context& c : m_contexts) {
if (c.ctx->id == ctx->id) {
return c.setups;
}
}

m_contexts.emplace_back();

Context& ref = m_contexts.back();
ref.ctx = ctx;

modularity::IContextSetup* global = m_globalModule.newContext(ctx);
if (global) {
ref.setups.push_back(global);
}

for (modularity::IModuleSetup* m : m_modules) {
modularity::IContextSetup* s = m->newContext(ctx);
if (s) {
ref.setups.push_back(s);
}
}

return ref.setups;
}

muse::modularity::ContextPtr ConsoleApp::setupNewContext()
{
//! NOTE
Expand All @@ -226,21 +286,10 @@ muse::modularity::ContextPtr ConsoleApp::setupNewContext()

LOGI() << "New context created with id: " << ctx->id;

std::vector<muse::modularity::IContextSetup*>& contexts = m_contexts[ctx->id];

modularity::IContextSetup* global = m_globalModule.newContext(ctx);
if (global) {
contexts.push_back(global);
}

for (modularity::IModuleSetup* m : m_modules) {
modularity::IContextSetup* s = m->newContext(ctx);
if (s) {
contexts.push_back(s);
}
}

// Setup
#ifdef MUSE_MULTICONTEXT_WIP
std::vector<muse::modularity::IContextSetup*>& csetups = contextSetups(ctx);

for (modularity::IContextSetup* s : contexts) {
s->registerExports();
}
Expand All @@ -261,6 +310,8 @@ muse::modularity::ContextPtr ConsoleApp::setupNewContext()
s->onAllInited(runMode);
}

#endif

return ctx;
}

Expand Down Expand Up @@ -294,9 +345,7 @@ void ConsoleApp::finish()

// Delete contexts
for (auto& c : m_contexts) {
for (modularity::IContextSetup* s : c.second) {
delete s;
}
qDeleteAll(c.setups);
}

// Delete modules
Expand Down
10 changes: 9 additions & 1 deletion src/app/internal/consoleapp.h
Original file line number Diff line number Diff line change
Expand Up @@ -89,14 +89,22 @@ class ConsoleApp : public muse::BaseApplication, public std::enable_shared_from_
int processAudioPluginRegistration(const CmdOptions::AudioPluginRegistration& task);
void processAutobot(const CmdOptions::Autobot& task);

std::vector<muse::modularity::IContextSetup*>& contextSetups(const muse::modularity::ContextPtr& ctx);

CmdOptions m_options;

//! NOTE Separately to initialize logger and profiler as early as possible
muse::GlobalModule m_globalModule;

std::vector<muse::modularity::IModuleSetup*> m_modules;
muse::modularity::ContextPtr m_context;
std::map<muse::modularity::IoCID, std::vector<muse::modularity::IContextSetup*> > m_contexts;

struct Context {
muse::modularity::ContextPtr ctx;
std::vector<muse::modularity::IContextSetup*> setups;
};

std::vector<Context> m_contexts;
};
}

Expand Down
46 changes: 28 additions & 18 deletions src/app/internal/guiapp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -82,13 +82,11 @@ void GuiApp::setup()
}

#ifndef MUSE_MULTICONTEXT_WIP
{
modularity::ContextPtr ctx = std::make_shared<modularity::Context>();
ctx->id = 0;
std::vector<muse::modularity::IContextSetup*>& csetups = contextSetups(ctx);
for (modularity::IContextSetup* s : csetups) {
s->registerExports();
}
modularity::ContextPtr ctx = std::make_shared<modularity::Context>();
ctx->id = 0;
std::vector<muse::modularity::IContextSetup*>& csetups = contextSetups(ctx);
for (modularity::IContextSetup* s : csetups) {
s->registerExports();
}
#endif

Expand All @@ -101,13 +99,8 @@ void GuiApp::setup()
}

#ifndef MUSE_MULTICONTEXT_WIP
{
modularity::ContextPtr ctx = std::make_shared<modularity::Context>();
ctx->id = 0;
std::vector<muse::modularity::IContextSetup*>& csetups = contextSetups(ctx);
for (modularity::IContextSetup* s : csetups) {
s->resolveImports();
}
for (modularity::IContextSetup* s : csetups) {
s->resolveImports();
}
#endif

Expand All @@ -124,6 +117,12 @@ void GuiApp::setup()
m->onPreInit(runMode);
}

#ifndef MUSE_MULTICONTEXT_WIP
for (modularity::IContextSetup* s : csetups) {
s->onPreInit(runMode);
}
#endif

#ifdef MUE_ENABLE_SPLASHSCREEN
if (multiwindowsProvider()->windowCount() == 1) { // first
m_splashScreen = new SplashScreen(SplashScreen::Default);
Expand Down Expand Up @@ -155,6 +154,12 @@ void GuiApp::setup()
m->onInit(runMode);
}

#ifndef MUSE_MULTICONTEXT_WIP
for (modularity::IContextSetup* s : csetups) {
s->onInit(runMode);
}
#endif

// ====================================================
// Setup modules: onAllInited
// ====================================================
Expand All @@ -163,6 +168,12 @@ void GuiApp::setup()
m->onAllInited(runMode);
}

#ifndef MUSE_MULTICONTEXT_WIP
for (modularity::IContextSetup* s : csetups) {
s->onAllInited(runMode);
}
#endif

// ====================================================
// Setup modules: onStartApp (on next event loop)
// ====================================================
Expand Down Expand Up @@ -318,10 +329,10 @@ muse::modularity::ContextPtr GuiApp::setupNewContext()

LOGI() << "New context created with id: " << ctx->id;

std::vector<muse::modularity::IContextSetup*>& csetups = contextSetups(ctx);

// Setup
#ifdef MUSE_MULTICONTEXT_WIP
std::vector<muse::modularity::IContextSetup*>& csetups = contextSetups(ctx);

for (modularity::IContextSetup* s : csetups) {
s->registerExports();
}
Expand All @@ -330,8 +341,6 @@ muse::modularity::ContextPtr GuiApp::setupNewContext()
s->resolveImports();
}

#endif

for (modularity::IContextSetup* s : csetups) {
s->onPreInit(runMode);
}
Expand All @@ -343,6 +352,7 @@ muse::modularity::ContextPtr GuiApp::setupNewContext()
for (modularity::IContextSetup* s : csetups) {
s->onAllInited(runMode);
}
#endif

// Load main window
#if defined(Q_OS_MAC)
Expand Down
Loading