| @@ -40,65 +40,72 @@ struct ModuleFolderItem : ui::MenuItem { | |||
| }; | |||
| struct ModulePluginItem : ui::MenuItem { | |||
| plugin::Plugin* plugin; | |||
| struct ModuleInfoItem : ui::MenuItem { | |||
| plugin::Model* model; | |||
| ui::Menu* createChildMenu() override { | |||
| ui::Menu* menu = new ui::Menu; | |||
| ui::MenuLabel* pluginLabel = new ui::MenuLabel; | |||
| pluginLabel->text = plugin->name; | |||
| pluginLabel->text = model->plugin->name; | |||
| menu->addChild(pluginLabel); | |||
| ui::MenuLabel* versionLabel = new ui::MenuLabel; | |||
| versionLabel->text = "v" + plugin->version; | |||
| versionLabel->text = "v" + model->plugin->version; | |||
| menu->addChild(versionLabel); | |||
| if (!plugin->author.empty()) { | |||
| if (!plugin->authorUrl.empty()) { | |||
| if (!model->plugin->author.empty()) { | |||
| if (!model->plugin->authorUrl.empty()) { | |||
| ModuleUrlItem* authorItem = new ModuleUrlItem; | |||
| authorItem->text = plugin->author; | |||
| authorItem->url = plugin->authorUrl; | |||
| authorItem->text = model->plugin->author; | |||
| authorItem->url = model->plugin->authorUrl; | |||
| menu->addChild(authorItem); | |||
| } | |||
| else { | |||
| ui::MenuLabel* authorLabel = new ui::MenuLabel; | |||
| authorLabel->text = plugin->author; | |||
| authorLabel->text = model->plugin->author; | |||
| menu->addChild(authorLabel); | |||
| } | |||
| } | |||
| if (!plugin->pluginUrl.empty()) { | |||
| ModuleUrlItem* websiteItem = new ModuleUrlItem; | |||
| websiteItem->text = "Website"; | |||
| websiteItem->url = plugin->pluginUrl; | |||
| menu->addChild(websiteItem); | |||
| if (!model->manualUrl.empty()) { | |||
| ModuleUrlItem* manualItem = new ModuleUrlItem; | |||
| manualItem->text = "Module manual"; | |||
| manualItem->url = model->manualUrl; | |||
| menu->addChild(manualItem); | |||
| } | |||
| if (!plugin->manualUrl.empty()) { | |||
| if (!model->plugin->manualUrl.empty()) { | |||
| ModuleUrlItem* manualItem = new ModuleUrlItem; | |||
| manualItem->text = "Manual"; | |||
| manualItem->url = plugin->manualUrl; | |||
| manualItem->text = "Plugin manual"; | |||
| manualItem->url = model->plugin->manualUrl; | |||
| menu->addChild(manualItem); | |||
| } | |||
| if (!plugin->sourceUrl.empty()) { | |||
| if (!model->plugin->pluginUrl.empty()) { | |||
| ModuleUrlItem* websiteItem = new ModuleUrlItem; | |||
| websiteItem->text = "Plugin website"; | |||
| websiteItem->url = model->plugin->pluginUrl; | |||
| menu->addChild(websiteItem); | |||
| } | |||
| if (!model->plugin->sourceUrl.empty()) { | |||
| ModuleUrlItem* sourceItem = new ModuleUrlItem; | |||
| sourceItem->text = "Source code"; | |||
| sourceItem->url = plugin->sourceUrl; | |||
| sourceItem->url = model->plugin->sourceUrl; | |||
| menu->addChild(sourceItem); | |||
| } | |||
| if (!plugin->donateUrl.empty()) { | |||
| if (!model->plugin->donateUrl.empty()) { | |||
| ModuleUrlItem* donateItem = new ModuleUrlItem; | |||
| donateItem->text = "Donate"; | |||
| donateItem->url = plugin->donateUrl; | |||
| donateItem->url = model->plugin->donateUrl; | |||
| menu->addChild(donateItem); | |||
| } | |||
| if (!plugin->path.empty()) { | |||
| if (!model->plugin->path.empty()) { | |||
| ModuleFolderItem* pathItem = new ModuleFolderItem; | |||
| pathItem->text = "Open plugin folder"; | |||
| pathItem->path = plugin->path; | |||
| pathItem->path = model->plugin->path; | |||
| menu->addChild(pathItem); | |||
| } | |||
| @@ -817,11 +824,11 @@ void ModuleWidget::createContextMenu() { | |||
| modelLabel->text = model->plugin->brand + " " + model->name; | |||
| menu->addChild(modelLabel); | |||
| ModulePluginItem* pluginItem = new ModulePluginItem; | |||
| pluginItem->text = "Plugin"; | |||
| pluginItem->rightText = RIGHT_ARROW; | |||
| pluginItem->plugin = model->plugin; | |||
| menu->addChild(pluginItem); | |||
| ModuleInfoItem* infoItem = new ModuleInfoItem; | |||
| infoItem->text = "Info"; | |||
| infoItem->rightText = RIGHT_ARROW; | |||
| infoItem->model = model; | |||
| menu->addChild(infoItem); | |||
| ModulePresetItem* presetsItem = new ModulePresetItem; | |||
| presetsItem->text = "Preset"; | |||