Fixed showing plugins menu on macOS
This commit is contained in:
parent
ab08c2568e
commit
10c5f73395
7 changed files with 24 additions and 10 deletions
|
@ -50,8 +50,13 @@ AppWindow {
|
||||||
menu.addItem(menuItem)
|
menu.addItem(menuItem)
|
||||||
}
|
}
|
||||||
|
|
||||||
item.subitemsChanged.connect(function(subitems) {
|
item.subitemsChanged.connect(function(subitems, menuId) {
|
||||||
menuBar.menus[i].subitems = subitems
|
for (var l in menuBar.menus) {
|
||||||
|
var menu = menuBar.menus[l]
|
||||||
|
if (menu.id === menuId) {
|
||||||
|
menuBar.menus[l].subitems = subitems
|
||||||
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
menuBar.addMenu(menu)
|
menuBar.addMenu(menu)
|
||||||
|
@ -61,6 +66,7 @@ AppWindow {
|
||||||
function makeMenu(menuInfo) {
|
function makeMenu(menuInfo) {
|
||||||
var menu = menuComponent.createObject(menuBar)
|
var menu = menuComponent.createObject(menuBar)
|
||||||
|
|
||||||
|
menu.id = menuInfo.id
|
||||||
menu.title = menuInfo.title
|
menu.title = menuInfo.title
|
||||||
menu.enabled = menuInfo.enabled
|
menu.enabled = menuInfo.enabled
|
||||||
menu.subitems = menuInfo.subitems
|
menu.subitems = menuInfo.subitems
|
||||||
|
@ -87,6 +93,7 @@ AppWindow {
|
||||||
id: menuComponent
|
id: menuComponent
|
||||||
|
|
||||||
PLATFORM.Menu {
|
PLATFORM.Menu {
|
||||||
|
property string id: ""
|
||||||
property var subitems: []
|
property var subitems: []
|
||||||
|
|
||||||
onAboutToShow: {
|
onAboutToShow: {
|
||||||
|
|
|
@ -332,11 +332,6 @@ MenuItem* AppMenuModel::makePluginsMenu()
|
||||||
|
|
||||||
MenuItemList AppMenuModel::makePluginsMenuSubitems()
|
MenuItemList AppMenuModel::makePluginsMenuSubitems()
|
||||||
{
|
{
|
||||||
MenuItem* managePlugins = makeMenuItem("manage-plugins");
|
|
||||||
if (!managePlugins) {
|
|
||||||
return {};
|
|
||||||
}
|
|
||||||
|
|
||||||
MenuItemList subitems {
|
MenuItemList subitems {
|
||||||
makeMenuItem("manage-plugins"),
|
makeMenuItem("manage-plugins"),
|
||||||
};
|
};
|
||||||
|
|
|
@ -182,7 +182,7 @@ void MenuItem::setSubitems(const QList<MenuItem*>& subitems)
|
||||||
}
|
}
|
||||||
|
|
||||||
m_subitems = subitems;
|
m_subitems = subitems;
|
||||||
emit subitemsChanged(m_subitems);
|
emit subitemsChanged(m_subitems, m_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuItem::setAction(const UiAction& action)
|
void MenuItem::setAction(const UiAction& action)
|
||||||
|
|
|
@ -111,7 +111,7 @@ signals:
|
||||||
void selectableChanged(bool selectable);
|
void selectableChanged(bool selectable);
|
||||||
void selectedChanged(bool selected);
|
void selectedChanged(bool selected);
|
||||||
void roleChanged(int role);
|
void roleChanged(int role);
|
||||||
void subitemsChanged(QList<mu::uicomponents::MenuItem*> subitems);
|
void subitemsChanged(QList<mu::uicomponents::MenuItem*> subitems, const QString& menuId);
|
||||||
void actionChanged();
|
void actionChanged();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -64,6 +64,14 @@ void PluginsModule::registerExports()
|
||||||
ioc()->registerExport<IPluginsConfiguration>(moduleName(), s_configuration);
|
ioc()->registerExport<IPluginsConfiguration>(moduleName(), s_configuration);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PluginsModule::resolveImports()
|
||||||
|
{
|
||||||
|
auto ar = ioc()->resolve<ui::IUiActionsRegister>(moduleName());
|
||||||
|
if (ar) {
|
||||||
|
ar->reg(s_pluginsUiActions);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void PluginsModule::registerResources()
|
void PluginsModule::registerResources()
|
||||||
{
|
{
|
||||||
plugins_init_qrc();
|
plugins_init_qrc();
|
||||||
|
@ -95,6 +103,7 @@ void PluginsModule::onDelayedInit()
|
||||||
|
|
||||||
auto ar = ioc()->resolve<ui::IUiActionsRegister>(moduleName());
|
auto ar = ioc()->resolve<ui::IUiActionsRegister>(moduleName());
|
||||||
if (ar) {
|
if (ar) {
|
||||||
|
//! NOTE: Re-registration of actions for new available plugins
|
||||||
ar->reg(s_pluginsUiActions);
|
ar->reg(s_pluginsUiActions);
|
||||||
|
|
||||||
//! NOTE: Notify about plugins changed for updating actions state
|
//! NOTE: Notify about plugins changed for updating actions state
|
||||||
|
|
|
@ -31,6 +31,7 @@ public:
|
||||||
std::string moduleName() const override;
|
std::string moduleName() const override;
|
||||||
|
|
||||||
void registerExports() override;
|
void registerExports() override;
|
||||||
|
void resolveImports() override;
|
||||||
void registerResources() override;
|
void registerResources() override;
|
||||||
void registerUiTypes() override;
|
void registerUiTypes() override;
|
||||||
void onInit(const framework::IApplication::RunMode& mode) override;
|
void onInit(const framework::IApplication::RunMode& mode) override;
|
||||||
|
|
|
@ -25,6 +25,8 @@
|
||||||
#include "translation.h"
|
#include "translation.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
|
|
||||||
|
#include "shortcuts/shortcutstypes.h"
|
||||||
|
|
||||||
using namespace mu::plugins;
|
using namespace mu::plugins;
|
||||||
using namespace mu::framework;
|
using namespace mu::framework;
|
||||||
using namespace mu::async;
|
using namespace mu::async;
|
||||||
|
@ -112,7 +114,7 @@ QVariant PluginsModel::data(const QModelIndex& index, int role) const
|
||||||
return plugin.version.toString();
|
return plugin.version.toString();
|
||||||
case rShortcuts:
|
case rShortcuts:
|
||||||
if (!plugin.shortcuts.empty()) {
|
if (!plugin.shortcuts.empty()) {
|
||||||
return QString::fromStdString(plugin.shortcuts);
|
return shortcuts::sequencesToNativeText(shortcuts::Shortcut::sequencesFromString(plugin.shortcuts));
|
||||||
}
|
}
|
||||||
|
|
||||||
return qtrc("plugins", "Not defined");
|
return qtrc("plugins", "Not defined");
|
||||||
|
|
Loading…
Reference in a new issue