diff options
Diffstat (limited to 'src/plugins/vcprojectmanager/menuhandler.cpp')
-rw-r--r-- | src/plugins/vcprojectmanager/menuhandler.cpp | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/src/plugins/vcprojectmanager/menuhandler.cpp b/src/plugins/vcprojectmanager/menuhandler.cpp index 5cdc30496a..3c06522f5e 100644 --- a/src/plugins/vcprojectmanager/menuhandler.cpp +++ b/src/plugins/vcprojectmanager/menuhandler.cpp @@ -76,6 +76,8 @@ void MenuHandler::initialize() Core::ActionManager::createMenu(ProjectExplorer::Constants::M_SUBPROJECTCONTEXT); Core::ActionContainer *folderContextMenu = Core::ActionManager::createMenu(ProjectExplorer::Constants::M_FOLDERCONTEXT); + Core::ActionContainer *fileContextMenu = + Core::ActionManager::createMenu(ProjectExplorer::Constants::M_FILECONTEXT); // versions 2003 and 2005 m_addFilter = new QAction(tr("Add Filter..."), this); @@ -99,9 +101,16 @@ void MenuHandler::initialize() projectContextMenu->addAction(cmd, ProjectExplorer::Constants::G_PROJECT_FILES); subProjectContextMenu->addAction(cmd, ProjectExplorer::Constants::G_PROJECT_FILES); + m_fileProperties = new QAction(tr("Show Properties..."), this); + cmd = Core::ActionManager::registerAction(m_fileProperties, Constants::VC_FILE_SHOW_PROPERTIES_ACTION, + projectContext); + cmd->setAttribute(Core::Command::CA_Hide); + fileContextMenu->addAction(cmd, ProjectExplorer::Constants::G_FILE_OTHER); + connect(m_projectProperties, SIGNAL(triggered()), this, SLOT(onShowProjectSettings())); connect(m_addFilter, SIGNAL(triggered()), this, SLOT(onAddFilter())); connect(m_removeFilter, SIGNAL(triggered()), this, SLOT(onRemoveFilter())); + connect(m_fileProperties, SIGNAL(triggered()), this, SLOT(onShowFileSettings())); } void MenuHandler::initialize2005() @@ -114,6 +123,8 @@ void MenuHandler::initialize2005() Core::ActionManager::createMenu(ProjectExplorer::Constants::M_SUBPROJECTCONTEXT); Core::ActionContainer *folderContextMenu = Core::ActionManager::createMenu(ProjectExplorer::Constants::M_FOLDERCONTEXT); + Core::ActionContainer *fileContextMenu = + Core::ActionManager::createMenu(ProjectExplorer::Constants::M_FILECONTEXT); // version 2005 m_addFolder2005 = new QAction(tr("Add Folder..."), this); @@ -151,19 +162,29 @@ void MenuHandler::initialize2005() projectContextMenu->addAction(cmd, ProjectExplorer::Constants::G_PROJECT_FILES); subProjectContextMenu->addAction(cmd, ProjectExplorer::Constants::G_PROJECT_FILES); + m_fileProperties2005 = new QAction(tr("Show Properties..."), this); + cmd = Core::ActionManager::registerAction(m_fileProperties2005, Constants::VC_FILE_SHOW_PROPERTIES_ACTION, + project2005Context); + cmd->setAttribute(Core::Command::CA_Hide); + fileContextMenu->addAction(cmd, ProjectExplorer::Constants::G_FILE_OTHER); + connect(m_projectProperties2005, SIGNAL(triggered()), this, SLOT(onShowProjectSettings())); connect(m_addFilter2005, SIGNAL(triggered()), this, SLOT(onAddFilter())); connect(m_removeFilter2005, SIGNAL(triggered()), this, SLOT(onRemoveFilter())); connect(m_addFolder2005, SIGNAL(triggered()), this, SLOT(onAddFolder())); connect(m_removeFolder2005, SIGNAL(triggered()), this, SLOT(onRemoveFolder())); + connect(m_fileProperties2005, SIGNAL(triggered()), this, SLOT(onShowFileSettings())); } void MenuHandler::onShowProjectSettings() { - VcProject *project = dynamic_cast<VcProject *>(ProjectExplorer::ProjectExplorerPlugin::currentProject()); + ProjectExplorer::ProjectExplorerPlugin *projExplPlugin = ProjectExplorer::ProjectExplorerPlugin::instance(); + ProjectExplorer::Node *node = projExplPlugin->currentNode(); - if (project) - project->showSettingsDialog(); + if (node && node->nodeType() == ProjectExplorer::ProjectNodeType) { + VcDocProjectNode *projectNode = static_cast<VcDocProjectNode *>(node); + projectNode->showSettingsDialog(); + } } void MenuHandler::onAddFolder() @@ -254,5 +275,16 @@ void MenuHandler::onRemoveFolder() } } +void MenuHandler::onShowFileSettings() +{ + ProjectExplorer::ProjectExplorerPlugin *projExplPlugin = ProjectExplorer::ProjectExplorerPlugin::instance(); + ProjectExplorer::Node *node = projExplPlugin->currentNode(); + + if (node && node->nodeType() == ProjectExplorer::FileNodeType) { + VcFileNode *fileNode = static_cast<VcFileNode *>(node); + fileNode->showSettingsWidget(); + } +} + } // namespace Internal } // namespace VcProjectManager |