1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
void ManagementConsoleView::ShowTreeContextMenu(const QPoint& pnt) {
pluginsDir = QDir(qApp->applicationDirPath());
#if defined(Q_OS_WIN)
if (pluginsDir.dirName().toLower() == "debug" || pluginsDir.dirName().toLower() == "release")
pluginsDir.cdUp();
#elif defined(Q_OS_MAC)
if (pluginsDir.dirName() == "MacOS") {
pluginsDir.cdUp();
pluginsDir.cdUp();
pluginsDir.cdUp();
}
#endif
pluginsDir.cd("Plugins");
QList<QAction *> actions;
foreach (QString fileName, pluginsDir.entryList(QDir::Files)) {
QPluginLoader loader(pluginsDir.absoluteFilePath(fileName));
QObject *plugin = loader.instance();
if (plugin) {
ModuleInterface *iModule = qobject_cast<ModuleInterface *> (
plugin);
iModule->FillModuleInTreeContextMenu(plugin, actions, pnt);
if (actions.count() > 0)
QMenu::exec(actions, ui.treeView->mapToGlobal(pnt));
pluginFileNames += fileName;
}
}
} |