#include "projectfilesystemplugin.h" #include "projectfilesystempluginconstants.h" #include "projectfilesystemwidget.h" #include #include #include #include #include #include #include #include #include #include #include #include namespace ProjectFilesystemPlugin { namespace Internal { ProjectFilesystemPluginPlugin::ProjectFilesystemPluginPlugin() { // Create your members } ProjectFilesystemPluginPlugin::~ProjectFilesystemPluginPlugin() { // Unregister objects from the plugin manager's object pool // Delete members } Utils::Result<> ProjectFilesystemPluginPlugin::initialize(const QStringList &arguments) { // Register objects in the plugin manager's object pool // Load settings // Add actions to menus // Connect to other plugins' signals // In the initialize function, a plugin can be sure that the plugins it // depends on have initialized their members. Q_UNUSED(arguments) /*auto action = new QAction(tr("ProjectFilesystemPlugin Action"), this); Core::Command *cmd = Core::ActionManager::registerAction(action, Constants::ACTION_ID, Core::Context(Core::Constants::C_GLOBAL)); cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+Alt+Meta+A"))); connect(action, &QAction::triggered, this, &ProjectFilesystemPluginPlugin::triggerAction); Core::ActionContainer *menu = Core::ActionManager::createMenu(Constants::MENU_ID); menu->menu()->setTitle(tr("ProjectFilesystemPlugin")); menu->addAction(cmd); Core::ActionManager::actionContainer(Core::Constants::M_TOOLS)->addMenu(menu); qDebug() << Core::IContext::widget();*/ //addAutoReleasedObject(new ProjectFSWidgetFactory()); (new ProjectFSWidgetFactory())->setParent(this); return Utils::ResultOk; } void ProjectFilesystemPluginPlugin::extensionsInitialized() { Utils::globalMacroExpander()->registerPrefix("ProjectFilesystem", "ProjectFilesystem", "Project filesystem plugin", [](QString v) -> QString {return v;} ); Utils::globalMacroExpander()->registerFileVariables("ProjectFilesystem", "Selected item", []() -> Utils::FilePath { return Utils::FilePath::fromString(projectfs_menu_target.absoluteFilePath());}, true); // Retrieve objects from the plugin manager's object pool // In the extensionsInitialized function, a plugin can be sure that all // plugins that depend on it are completely initialized. } ExtensionSystem::IPlugin::ShutdownFlag ProjectFilesystemPluginPlugin::aboutToShutdown() { // Save settings // Disconnect from signals that are not needed during shutdown // Hide UI (if you add UI that is not in the main window directly) return SynchronousShutdown; } void ProjectFilesystemPluginPlugin::triggerAction() { QMessageBox::information(Core::ICore::mainWindow(), tr("Action Triggered"), tr("This is an action from ProjectFilesystemPlugin.")); } } // namespace Internal } // namespace ProjectFilesystemPlugin