| 
									
										
										
										
											2012-10-02 09:12:39 +02:00
										 |  |  | /****************************************************************************
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2014-01-07 13:27:11 +01:00
										 |  |  | ** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). | 
					
						
							| 
									
										
										
										
											2012-10-02 09:12:39 +02:00
										 |  |  | ** Contact: http://www.qt-project.org/legal
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2012-10-02 09:12:39 +02:00
										 |  |  | ** This file is part of Qt Creator. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2012-10-02 09:12:39 +02:00
										 |  |  | ** Commercial License Usage | 
					
						
							|  |  |  | ** Licensees holding valid commercial Qt licenses may use this file in | 
					
						
							|  |  |  | ** accordance with the commercial license agreement provided with the | 
					
						
							|  |  |  | ** Software or, alternatively, in accordance with the terms contained in | 
					
						
							|  |  |  | ** a written agreement between you and Digia.  For licensing terms and | 
					
						
							|  |  |  | ** conditions see http://qt.digia.com/licensing.  For further information
 | 
					
						
							|  |  |  | ** use the contact form at http://qt.digia.com/contact-us.
 | 
					
						
							| 
									
										
										
										
											2008-12-02 14:17:16 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | ** GNU Lesser General Public License Usage | 
					
						
							| 
									
										
										
										
											2012-10-02 09:12:39 +02:00
										 |  |  | ** Alternatively, this file may be used under the terms of the GNU Lesser | 
					
						
							|  |  |  | ** General Public License version 2.1 as published by the Free Software | 
					
						
							|  |  |  | ** Foundation and appearing in the file LICENSE.LGPL included in the | 
					
						
							|  |  |  | ** packaging of this file.  Please review the following information to | 
					
						
							|  |  |  | ** ensure the GNU Lesser General Public License version 2.1 requirements | 
					
						
							|  |  |  | ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** In addition, as a special exception, Digia gives you certain additional | 
					
						
							|  |  |  | ** rights.  These rights are described in the Digia Qt LGPL Exception | 
					
						
							| 
									
										
										
										
											2010-12-17 16:01:08 +01:00
										 |  |  | ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2012-10-02 09:12:39 +02:00
										 |  |  | ****************************************************************************/ | 
					
						
							| 
									
										
										
										
											2008-12-02 15:08:31 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 13:44:02 +01:00
										 |  |  | #include "cppeditorplugin.h"
 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:54:03 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-16 12:22:08 +01:00
										 |  |  | #include "cppclasswizard.h"
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | #include "cppeditor.h"
 | 
					
						
							|  |  |  | #include "cppeditorconstants.h"
 | 
					
						
							|  |  |  | #include "cppfilewizard.h"
 | 
					
						
							| 
									
										
										
										
											2008-12-16 12:22:08 +01:00
										 |  |  | #include "cpphoverhandler.h"
 | 
					
						
							| 
									
										
										
										
											2010-07-08 11:26:33 +02:00
										 |  |  | #include "cppoutline.h"
 | 
					
						
							| 
									
										
										
										
											2010-08-13 16:38:45 +02:00
										 |  |  | #include "cpptypehierarchy.h"
 | 
					
						
							| 
									
										
										
										
											2013-08-13 22:58:38 +02:00
										 |  |  | #include "cppincludehierarchy.h"
 | 
					
						
							| 
									
										
										
										
											2010-12-02 17:02:23 +01:00
										 |  |  | #include "cppsnippetprovider.h"
 | 
					
						
							| 
									
										
										
										
											2011-04-15 16:19:23 +02:00
										 |  |  | #include "cppquickfixassistant.h"
 | 
					
						
							| 
									
										
										
										
											2013-02-07 12:16:41 +01:00
										 |  |  | #include "cppquickfixes.h"
 | 
					
						
							| 
									
										
										
										
											2013-08-14 13:52:13 +02:00
										 |  |  | #include "cpphighlighterfactory.h"
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-11-03 02:02:36 +01:00
										 |  |  | #include "cppcodemodelinspectordialog.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-18 10:59:06 +01:00
										 |  |  | #include <coreplugin/actionmanager/actioncontainer.h>
 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:54:03 +01:00
										 |  |  | #include <coreplugin/actionmanager/actionmanager.h>
 | 
					
						
							|  |  |  | #include <coreplugin/coreconstants.h>
 | 
					
						
							|  |  |  | #include <coreplugin/fileiconprovider.h>
 | 
					
						
							|  |  |  | #include <coreplugin/icore.h>
 | 
					
						
							| 
									
										
										
										
											2010-08-13 16:38:45 +02:00
										 |  |  | #include <coreplugin/navigationwidget.h>
 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:54:03 +01:00
										 |  |  | #include <coreplugin/progressmanager/progressmanager.h>
 | 
					
						
							|  |  |  | #include <cpptools/cpptoolsconstants.h>
 | 
					
						
							| 
									
										
										
										
											2009-03-17 17:38:16 +01:00
										 |  |  | #include <texteditor/texteditoractionhandler.h>
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | #include <texteditor/texteditorsettings.h>
 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:54:03 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-08-23 15:53:58 +02:00
										 |  |  | #include <utils/hostosinfo.h>
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-02-15 10:42:41 +01:00
										 |  |  | #include <QCoreApplication>
 | 
					
						
							|  |  |  | #include <QStringList>
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-30 09:22:42 +02:00
										 |  |  | using namespace Core; | 
					
						
							| 
									
										
										
										
											2010-07-26 13:06:33 +02:00
										 |  |  | using namespace CppEditor; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | using namespace CppEditor::Internal; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-04-15 16:19:23 +02:00
										 |  |  | void registerQuickFixes(ExtensionSystem::IPlugin *plugIn); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-18 15:06:26 +01:00
										 |  |  | enum { QUICKFIX_INTERVAL = 20 }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-17 17:43:51 +01:00
										 |  |  | //////////////////////////// CppEditorFactory /////////////////////////////
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 13:44:02 +01:00
										 |  |  | CppEditorFactory::CppEditorFactory(CppEditorPlugin *owner) : | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     m_owner(owner) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2013-05-31 19:35:37 +02:00
										 |  |  |     setId(CppEditor::Constants::CPPEDITOR_ID); | 
					
						
							|  |  |  |     setDisplayName(qApp->translate("OpenWith::Editors", CppEditor::Constants::CPPEDITOR_DISPLAY_NAME)); | 
					
						
							|  |  |  |     addMimeType(CppEditor::Constants::C_SOURCE_MIMETYPE); | 
					
						
							|  |  |  |     addMimeType(CppEditor::Constants::C_HEADER_MIMETYPE); | 
					
						
							|  |  |  |     addMimeType(CppEditor::Constants::CPP_SOURCE_MIMETYPE); | 
					
						
							|  |  |  |     addMimeType(CppEditor::Constants::CPP_HEADER_MIMETYPE); | 
					
						
							| 
									
										
										
										
											2009-07-15 11:20:24 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-10 17:13:21 +01:00
										 |  |  |     new TextEditor::TextEditorActionHandler(this, CppEditor::Constants::C_CPPEDITOR, | 
					
						
							|  |  |  |         TextEditor::TextEditorActionHandler::Format | 
					
						
							|  |  |  |         | TextEditor::TextEditorActionHandler::UnCommentSelection | 
					
						
							|  |  |  |         | TextEditor::TextEditorActionHandler::UnCollapseAll | 
					
						
							|  |  |  |         | TextEditor::TextEditorActionHandler::FollowSymbolUnderCursor); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-08-23 15:53:58 +02:00
										 |  |  |     if (!Utils::HostOsInfo::isMacHost() && !Utils::HostOsInfo::isWindowsHost()) { | 
					
						
							| 
									
										
										
										
											2013-09-12 16:06:33 +02:00
										 |  |  |         FileIconProvider::registerIconOverlayForMimeType(":/cppeditor/images/qt_cpp.png", CppEditor::Constants::CPP_SOURCE_MIMETYPE); | 
					
						
							|  |  |  |         FileIconProvider::registerIconOverlayForMimeType(":/cppeditor/images/qt_c.png", CppEditor::Constants::C_SOURCE_MIMETYPE); | 
					
						
							|  |  |  |         FileIconProvider::registerIconOverlayForMimeType(":/cppeditor/images/qt_h.png", CppEditor::Constants::CPP_HEADER_MIMETYPE); | 
					
						
							| 
									
										
										
										
											2012-08-23 15:53:58 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-07 14:41:57 +01:00
										 |  |  | IEditor *CppEditorFactory::createEditor() | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2014-01-07 14:41:57 +01:00
										 |  |  |     CPPEditorWidget *editor = new CPPEditorWidget(); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     editor->setRevisionsVisible(true); | 
					
						
							|  |  |  |     m_owner->initializeEditor(editor); | 
					
						
							| 
									
										
										
										
											2011-02-21 16:02:26 +01:00
										 |  |  |     return editor->editor(); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 13:44:02 +01:00
										 |  |  | ///////////////////////////////// CppEditorPlugin //////////////////////////////////
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 13:44:02 +01:00
										 |  |  | CppEditorPlugin *CppEditorPlugin::m_instance = 0; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 13:44:02 +01:00
										 |  |  | CppEditorPlugin::CppEditorPlugin() : | 
					
						
							| 
									
										
										
										
											2014-01-03 11:52:00 +01:00
										 |  |  |     m_sortedOutline(true), | 
					
						
							| 
									
										
										
										
											2009-11-11 14:32:54 +01:00
										 |  |  |     m_renameSymbolUnderCursorAction(0), | 
					
						
							|  |  |  |     m_findUsagesAction(0), | 
					
						
							| 
									
										
										
										
											2013-10-04 15:54:39 +02:00
										 |  |  |     m_reparseExternallyChangedFiles(0), | 
					
						
							| 
									
										
										
										
											2011-04-15 16:19:23 +02:00
										 |  |  |     m_openTypeHierarchyAction(0), | 
					
						
							| 
									
										
										
										
											2013-08-13 22:58:38 +02:00
										 |  |  |     m_openIncludeHierarchyAction(0), | 
					
						
							| 
									
										
										
										
											2011-04-15 16:19:23 +02:00
										 |  |  |     m_quickFixProvider(0) | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     m_instance = this; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 13:44:02 +01:00
										 |  |  | CppEditorPlugin::~CppEditorPlugin() | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     m_instance = 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 13:44:02 +01:00
										 |  |  | CppEditorPlugin *CppEditorPlugin::instance() | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     return m_instance; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 13:44:02 +01:00
										 |  |  | void CppEditorPlugin::initializeEditor(CPPEditorWidget *editor) | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2012-11-21 21:47:17 +02:00
										 |  |  |     editor->setLanguageSettingsId(CppTools::Constants::CPP_SETTINGS_ID); | 
					
						
							| 
									
										
										
										
											2013-09-19 17:59:27 +02:00
										 |  |  |     TextEditor::TextEditorSettings::initializeEditor(editor); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-07 13:34:40 +02:00
										 |  |  |     // function combo box sorting
 | 
					
						
							| 
									
										
										
										
											2010-07-13 11:37:06 +02:00
										 |  |  |     connect(this, SIGNAL(outlineSortingChanged(bool)), | 
					
						
							|  |  |  |             editor, SLOT(setSortedOutline(bool))); | 
					
						
							| 
									
										
										
										
											2009-04-27 17:22:49 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 13:44:02 +01:00
										 |  |  | void CppEditorPlugin::setSortedOutline(bool sorted) | 
					
						
							| 
									
										
										
										
											2009-04-27 17:22:49 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-07-13 11:37:06 +02:00
										 |  |  |     m_sortedOutline = sorted; | 
					
						
							|  |  |  |     emit outlineSortingChanged(sorted); | 
					
						
							| 
									
										
										
										
											2009-04-27 17:22:49 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 13:44:02 +01:00
										 |  |  | bool CppEditorPlugin::sortedOutline() const | 
					
						
							| 
									
										
										
										
											2009-04-27 17:22:49 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-07-13 11:37:06 +02:00
										 |  |  |     return m_sortedOutline; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 13:44:02 +01:00
										 |  |  | CppQuickFixAssistProvider *CppEditorPlugin::quickFixProvider() const | 
					
						
							| 
									
										
										
										
											2011-04-15 16:19:23 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     return m_quickFixProvider; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2009-11-23 16:55:04 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 13:44:02 +01:00
										 |  |  | bool CppEditorPlugin::initialize(const QStringList & /*arguments*/, QString *errorMessage) | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2013-08-30 16:38:57 +02:00
										 |  |  |     if (!Core::MimeDatabase::addMimeTypes(QLatin1String(":/cppeditor/CppEditor.mimetypes.xml"), errorMessage)) | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-15 11:20:24 +02:00
										 |  |  |     addAutoReleasedObject(new CppEditorFactory(this)); | 
					
						
							| 
									
										
										
										
											2008-12-16 12:22:08 +01:00
										 |  |  |     addAutoReleasedObject(new CppHoverHandler); | 
					
						
							| 
									
										
										
										
											2010-07-08 11:26:33 +02:00
										 |  |  |     addAutoReleasedObject(new CppOutlineWidgetFactory); | 
					
						
							| 
									
										
										
										
											2010-08-13 16:38:45 +02:00
										 |  |  |     addAutoReleasedObject(new CppTypeHierarchyFactory); | 
					
						
							| 
									
										
										
										
											2013-08-13 22:58:38 +02:00
										 |  |  |     addAutoReleasedObject(new CppIncludeHierarchyFactory); | 
					
						
							| 
									
										
										
										
											2010-12-02 17:02:23 +01:00
										 |  |  |     addAutoReleasedObject(new CppSnippetProvider); | 
					
						
							| 
									
										
										
										
											2013-08-14 13:52:13 +02:00
										 |  |  |     addAutoReleasedObject(new CppHighlighterFactory); | 
					
						
							| 
									
										
										
										
											2009-11-23 16:55:04 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-04-15 16:19:23 +02:00
										 |  |  |     m_quickFixProvider = new CppQuickFixAssistProvider; | 
					
						
							|  |  |  |     addAutoReleasedObject(m_quickFixProvider); | 
					
						
							| 
									
										
										
										
											2013-02-07 12:16:41 +01:00
										 |  |  |     CppEditor::Internal::registerQuickFixes(this); | 
					
						
							| 
									
										
										
										
											2010-06-22 14:14:22 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-20 15:12:44 +02:00
										 |  |  |     QString trCat = QCoreApplication::translate(Constants::WIZARD_CATEGORY, Constants::WIZARD_TR_CATEGORY); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-05-02 17:38:42 +02:00
										 |  |  |     IWizardFactory *wizard = new CppClassWizard; | 
					
						
							|  |  |  |     wizard->setWizardKind(IWizardFactory::ClassWizard); | 
					
						
							| 
									
										
										
										
											2013-09-20 15:12:44 +02:00
										 |  |  |     wizard->setCategory(QLatin1String(Constants::WIZARD_CATEGORY)); | 
					
						
							|  |  |  |     wizard->setDisplayCategory(trCat); | 
					
						
							|  |  |  |     wizard->setDisplayName(tr("C++ Class")); | 
					
						
							|  |  |  |     wizard->setId(QLatin1String("A.Class")); | 
					
						
							|  |  |  |     wizard->setDescription(tr("Creates a C++ header and a source file for a new class that you can add to a C++ project.")); | 
					
						
							|  |  |  |     addAutoReleasedObject(wizard); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     wizard = new CppFileWizard(Source); | 
					
						
							| 
									
										
										
										
											2014-05-02 17:38:42 +02:00
										 |  |  |     wizard->setWizardKind(IWizardFactory::FileWizard); | 
					
						
							| 
									
										
										
										
											2013-09-20 15:12:44 +02:00
										 |  |  |     wizard->setCategory(QLatin1String(Constants::WIZARD_CATEGORY)); | 
					
						
							|  |  |  |     wizard->setDisplayCategory(trCat); | 
					
						
							|  |  |  |     wizard->setDisplayName(tr("C++ Class")); | 
					
						
							|  |  |  |     wizard->setDescription(tr("Creates a C++ source file that you can add to a C++ project.")); | 
					
						
							|  |  |  |     wizard->setDisplayName(tr("C++ Source File")); | 
					
						
							|  |  |  |     wizard->setId(QLatin1String("B.Source")); | 
					
						
							|  |  |  |     addAutoReleasedObject(wizard); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     wizard = new CppFileWizard(Header); | 
					
						
							| 
									
										
										
										
											2014-05-02 17:38:42 +02:00
										 |  |  |     wizard->setWizardKind(IWizardFactory::FileWizard); | 
					
						
							| 
									
										
										
										
											2013-09-20 15:12:44 +02:00
										 |  |  |     wizard->setCategory(QLatin1String(Constants::WIZARD_CATEGORY)); | 
					
						
							|  |  |  |     wizard->setDisplayCategory(trCat); | 
					
						
							|  |  |  |     wizard->setDescription(tr("Creates a C++ header file that you can add to a C++ project.")); | 
					
						
							|  |  |  |     wizard->setDisplayName(tr("C++ Header File")); | 
					
						
							|  |  |  |     wizard->setId(QLatin1String("C.Header")); | 
					
						
							|  |  |  |     addAutoReleasedObject(wizard); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-30 09:22:42 +02:00
										 |  |  |     Context context(CppEditor::Constants::C_CPPEDITOR); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-30 09:22:42 +02:00
										 |  |  |     ActionContainer *contextMenu = ActionManager::createMenu(CppEditor::Constants::M_CONTEXT); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-30 09:22:42 +02:00
										 |  |  |     Command *cmd; | 
					
						
							|  |  |  |     ActionContainer *cppToolsMenu = ActionManager::actionContainer(CppTools::Constants::M_TOOLS_CPP); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-30 09:22:42 +02:00
										 |  |  |     cmd = ActionManager::command(CppTools::Constants::SWITCH_HEADER_SOURCE); | 
					
						
							| 
									
										
										
										
											2011-08-05 13:13:17 +02:00
										 |  |  |     contextMenu->addAction(cmd); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-30 09:22:42 +02:00
										 |  |  |     cmd = ActionManager::command(TextEditor::Constants::FOLLOW_SYMBOL_UNDER_CURSOR); | 
					
						
							| 
									
										
										
										
											2009-09-24 14:50:22 +02:00
										 |  |  |     contextMenu->addAction(cmd); | 
					
						
							| 
									
										
										
										
											2009-11-11 14:32:54 +01:00
										 |  |  |     cppToolsMenu->addAction(cmd); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-23 14:13:06 +02:00
										 |  |  |     QAction *openPreprocessorDialog = new QAction(tr("Additional Preprocessor Directives..."), this); | 
					
						
							| 
									
										
										
										
											2013-10-17 14:52:16 +02:00
										 |  |  |     cmd = ActionManager::registerAction(openPreprocessorDialog, | 
					
						
							|  |  |  |                                         Constants::OPEN_PREPROCESSOR_DIALOG, context); | 
					
						
							|  |  |  |     cmd->setDefaultKeySequence(QKeySequence()); | 
					
						
							|  |  |  |     connect(openPreprocessorDialog, SIGNAL(triggered()), this, SLOT(showPreProcessorDialog())); | 
					
						
							|  |  |  |     cppToolsMenu->addAction(cmd); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-07 13:34:40 +02:00
										 |  |  |     QAction *switchDeclarationDefinition = new QAction(tr("Switch Between Function Declaration/Definition"), this); | 
					
						
							| 
									
										
										
										
											2013-08-30 09:22:42 +02:00
										 |  |  |     cmd = ActionManager::registerAction(switchDeclarationDefinition, | 
					
						
							| 
									
										
										
										
											2010-12-20 10:35:30 +01:00
										 |  |  |         Constants::SWITCH_DECLARATION_DEFINITION, context, true); | 
					
						
							| 
									
										
										
										
											2012-01-11 14:26:09 +01:00
										 |  |  |     cmd->setDefaultKeySequence(QKeySequence(tr("Shift+F2"))); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     connect(switchDeclarationDefinition, SIGNAL(triggered()), | 
					
						
							|  |  |  |             this, SLOT(switchDeclarationDefinition())); | 
					
						
							| 
									
										
										
										
											2009-09-24 14:50:22 +02:00
										 |  |  |     contextMenu->addAction(cmd); | 
					
						
							| 
									
										
										
										
											2009-11-11 14:32:54 +01:00
										 |  |  |     cppToolsMenu->addAction(cmd); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-30 09:22:42 +02:00
										 |  |  |     cmd = ActionManager::command(TextEditor::Constants::FOLLOW_SYMBOL_UNDER_CURSOR_IN_NEXT_SPLIT); | 
					
						
							| 
									
										
										
										
											2013-02-05 14:14:33 +01:00
										 |  |  |     cppToolsMenu->addAction(cmd); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QAction *openDeclarationDefinitionInNextSplit = | 
					
						
							| 
									
										
										
										
											2013-10-07 13:34:40 +02:00
										 |  |  |             new QAction(tr("Open Function Declaration/Definition in Next Split"), this); | 
					
						
							| 
									
										
										
										
											2013-08-30 09:22:42 +02:00
										 |  |  |     cmd = ActionManager::registerAction(openDeclarationDefinitionInNextSplit, | 
					
						
							| 
									
										
										
										
											2013-02-05 14:14:33 +01:00
										 |  |  |         Constants::OPEN_DECLARATION_DEFINITION_IN_NEXT_SPLIT, context, true); | 
					
						
							| 
									
										
										
										
											2013-04-25 20:24:06 +02:00
										 |  |  |     cmd->setDefaultKeySequence(QKeySequence(Utils::HostOsInfo::isMacHost() | 
					
						
							|  |  |  |                                             ? tr("Meta+E, Shift+F2") | 
					
						
							|  |  |  |                                             : tr("Ctrl+E, Shift+F2"))); | 
					
						
							| 
									
										
										
										
											2013-02-05 14:14:33 +01:00
										 |  |  |     connect(openDeclarationDefinitionInNextSplit, SIGNAL(triggered()), | 
					
						
							|  |  |  |             this, SLOT(openDeclarationDefinitionInNextSplit())); | 
					
						
							|  |  |  |     cppToolsMenu->addAction(cmd); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-04 16:07:42 +01:00
										 |  |  |     m_findUsagesAction = new QAction(tr("Find Usages"), this); | 
					
						
							| 
									
										
										
										
											2013-08-30 09:22:42 +02:00
										 |  |  |     cmd = ActionManager::registerAction(m_findUsagesAction, Constants::FIND_USAGES, context); | 
					
						
							| 
									
										
										
										
											2009-10-07 11:11:48 +02:00
										 |  |  |     cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+Shift+U"))); | 
					
						
							| 
									
										
										
										
											2009-11-04 16:07:42 +01:00
										 |  |  |     connect(m_findUsagesAction, SIGNAL(triggered()), this, SLOT(findUsages())); | 
					
						
							| 
									
										
										
										
											2009-10-05 15:17:25 +02:00
										 |  |  |     contextMenu->addAction(cmd); | 
					
						
							| 
									
										
										
										
											2009-11-11 14:32:54 +01:00
										 |  |  |     cppToolsMenu->addAction(cmd); | 
					
						
							| 
									
										
										
										
											2009-10-05 15:17:25 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-13 16:38:45 +02:00
										 |  |  |     m_openTypeHierarchyAction = new QAction(tr("Open Type Hierarchy"), this); | 
					
						
							| 
									
										
										
										
											2013-08-30 09:22:42 +02:00
										 |  |  |     cmd = ActionManager::registerAction(m_openTypeHierarchyAction, Constants::OPEN_TYPE_HIERARCHY, context); | 
					
						
							|  |  |  |     cmd->setDefaultKeySequence(QKeySequence(UseMacShortcuts ? tr("Meta+Shift+T") : tr("Ctrl+Shift+T"))); | 
					
						
							| 
									
										
										
										
											2010-08-13 16:38:45 +02:00
										 |  |  |     connect(m_openTypeHierarchyAction, SIGNAL(triggered()), this, SLOT(openTypeHierarchy())); | 
					
						
							|  |  |  |     contextMenu->addAction(cmd); | 
					
						
							|  |  |  |     cppToolsMenu->addAction(cmd); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-13 22:58:38 +02:00
										 |  |  |     m_openIncludeHierarchyAction = new QAction(tr("Open Include Hierarchy"), this); | 
					
						
							|  |  |  |     cmd = Core::ActionManager::registerAction(m_openIncludeHierarchyAction, Constants::OPEN_INCLUDE_HIERARCHY, context); | 
					
						
							|  |  |  |     cmd->setDefaultKeySequence(QKeySequence(Core::UseMacShortcuts ? tr("Meta+Shift+I") : tr("Ctrl+Shift+I"))); | 
					
						
							|  |  |  |     connect(m_openIncludeHierarchyAction, SIGNAL(triggered()), this, SLOT(openIncludeHierarchy())); | 
					
						
							|  |  |  |     contextMenu->addAction(cmd); | 
					
						
							|  |  |  |     cppToolsMenu->addAction(cmd); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-15 14:33:44 +02:00
										 |  |  |     // Refactoring sub-menu
 | 
					
						
							| 
									
										
										
										
											2013-08-30 09:22:42 +02:00
										 |  |  |     Context globalContext(Core::Constants::C_GLOBAL); | 
					
						
							|  |  |  |     Command *sep = contextMenu->addSeparator(globalContext); | 
					
						
							| 
									
										
										
										
											2012-01-11 14:26:09 +01:00
										 |  |  |     sep->action()->setObjectName(QLatin1String(Constants::M_REFACTORING_MENU_INSERTION_POINT)); | 
					
						
							| 
									
										
										
										
											2012-06-05 14:22:20 +02:00
										 |  |  |     contextMenu->addSeparator(globalContext); | 
					
						
							| 
									
										
										
										
											2010-09-15 14:33:44 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     m_renameSymbolUnderCursorAction = new QAction(tr("Rename Symbol Under Cursor"), | 
					
						
							|  |  |  |                                                   this); | 
					
						
							| 
									
										
										
										
											2013-08-30 09:22:42 +02:00
										 |  |  |     cmd = ActionManager::registerAction(m_renameSymbolUnderCursorAction, | 
					
						
							| 
									
										
										
										
											2010-09-15 14:33:44 +02:00
										 |  |  |                              Constants::RENAME_SYMBOL_UNDER_CURSOR, | 
					
						
							|  |  |  |                              context); | 
					
						
							| 
									
										
										
										
											2012-01-11 14:26:09 +01:00
										 |  |  |     cmd->setDefaultKeySequence(QKeySequence(tr("CTRL+SHIFT+R"))); | 
					
						
							| 
									
										
										
										
											2010-09-15 14:33:44 +02:00
										 |  |  |     connect(m_renameSymbolUnderCursorAction, SIGNAL(triggered()), | 
					
						
							|  |  |  |             this, SLOT(renameSymbolUnderCursor())); | 
					
						
							|  |  |  |     cppToolsMenu->addAction(cmd); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Update context in global context
 | 
					
						
							| 
									
										
										
										
											2012-06-05 14:22:20 +02:00
										 |  |  |     cppToolsMenu->addSeparator(globalContext); | 
					
						
							| 
									
										
										
										
											2013-10-04 15:54:39 +02:00
										 |  |  |     m_reparseExternallyChangedFiles = new QAction(tr("Reparse Externally Changed Files"), this); | 
					
						
							|  |  |  |     cmd = ActionManager::registerAction(m_reparseExternallyChangedFiles, Constants::UPDATE_CODEMODEL, globalContext); | 
					
						
							| 
									
										
										
										
											2013-04-02 11:28:11 +02:00
										 |  |  |     CppTools::CppModelManagerInterface *cppModelManager = CppTools::CppModelManagerInterface::instance(); | 
					
						
							| 
									
										
										
										
											2013-10-04 15:54:39 +02:00
										 |  |  |     connect(m_reparseExternallyChangedFiles, SIGNAL(triggered()), cppModelManager, SLOT(updateModifiedSourceFiles())); | 
					
						
							| 
									
										
										
										
											2009-11-11 14:32:54 +01:00
										 |  |  |     cppToolsMenu->addAction(cmd); | 
					
						
							| 
									
										
										
										
											2009-08-04 13:44:54 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-03-05 09:22:02 -03:00
										 |  |  |     cppToolsMenu->addSeparator(globalContext); | 
					
						
							|  |  |  |     QAction *inspectCppCodeModel = new QAction(tr("Inspect C++ Code Model..."), this); | 
					
						
							| 
									
										
										
										
											2013-11-03 02:02:36 +01:00
										 |  |  |     cmd = ActionManager::registerAction(inspectCppCodeModel, Constants::INSPECT_CPP_CODEMODEL, globalContext); | 
					
						
							|  |  |  |     cmd->setDefaultKeySequence(QKeySequence(Core::UseMacShortcuts ? tr("Meta+Shift+F12") : tr("Ctrl+Shift+F12"))); | 
					
						
							|  |  |  |     connect(inspectCppCodeModel, SIGNAL(triggered()), this, SLOT(inspectCppCodeModel())); | 
					
						
							| 
									
										
										
										
											2014-03-05 09:22:02 -03:00
										 |  |  |     cppToolsMenu->addAction(cmd); | 
					
						
							| 
									
										
										
										
											2013-11-03 02:02:36 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-05 14:22:20 +02:00
										 |  |  |     contextMenu->addSeparator(context); | 
					
						
							| 
									
										
										
										
											2009-07-22 15:32:52 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-30 09:22:42 +02:00
										 |  |  |     cmd = ActionManager::command(TextEditor::Constants::AUTO_INDENT_SELECTION); | 
					
						
							| 
									
										
										
										
											2009-09-24 14:50:22 +02:00
										 |  |  |     contextMenu->addAction(cmd); | 
					
						
							| 
									
										
										
										
											2009-07-22 15:32:52 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-30 09:22:42 +02:00
										 |  |  |     cmd = ActionManager::command(TextEditor::Constants::UN_COMMENT_SELECTION); | 
					
						
							| 
									
										
										
										
											2009-09-24 14:50:22 +02:00
										 |  |  |     contextMenu->addAction(cmd); | 
					
						
							| 
									
										
										
										
											2009-07-22 15:32:52 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-03 15:18:37 +02:00
										 |  |  |     connect(ProgressManager::instance(), SIGNAL(taskStarted(Core::Id)), | 
					
						
							|  |  |  |             this, SLOT(onTaskStarted(Core::Id))); | 
					
						
							|  |  |  |     connect(ProgressManager::instance(), SIGNAL(allTasksFinished(Core::Id)), | 
					
						
							|  |  |  |             this, SLOT(onAllTasksFinished(Core::Id))); | 
					
						
							| 
									
										
										
										
											2010-08-03 11:53:01 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-27 17:22:49 +02:00
										 |  |  |     readSettings(); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 13:44:02 +01:00
										 |  |  | void CppEditorPlugin::readSettings() | 
					
						
							| 
									
										
										
										
											2009-04-27 17:22:49 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2014-01-03 11:52:00 +01:00
										 |  |  |     m_sortedOutline = ICore::settings()->value(QLatin1String("CppTools/SortedMethodOverview"), true).toBool(); | 
					
						
							| 
									
										
										
										
											2009-04-27 17:22:49 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 13:44:02 +01:00
										 |  |  | void CppEditorPlugin::writeSettings() | 
					
						
							| 
									
										
										
										
											2009-04-27 17:22:49 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2013-08-30 09:22:42 +02:00
										 |  |  |     ICore::settings()->setValue(QLatin1String("CppTools/SortedMethodOverview"), m_sortedOutline); | 
					
						
							| 
									
										
										
										
											2009-04-27 17:22:49 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 13:44:02 +01:00
										 |  |  | void CppEditorPlugin::extensionsInitialized() | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 13:44:02 +01:00
										 |  |  | ExtensionSystem::IPlugin::ShutdownFlag CppEditorPlugin::aboutToShutdown() | 
					
						
							| 
									
										
										
										
											2009-04-27 17:22:49 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     writeSettings(); | 
					
						
							| 
									
										
										
										
											2010-07-13 13:36:47 +02:00
										 |  |  |     return SynchronousShutdown; | 
					
						
							| 
									
										
										
										
											2009-04-27 17:22:49 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-18 16:50:09 +02:00
										 |  |  | static CPPEditorWidget *currentCppEditorWidget() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return qobject_cast<CPPEditorWidget*>(EditorManager::currentEditor()->widget()); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 13:44:02 +01:00
										 |  |  | void CppEditorPlugin::switchDeclarationDefinition() | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2013-10-18 16:50:09 +02:00
										 |  |  |     if (CPPEditorWidget *editorWidget = currentCppEditorWidget()) | 
					
						
							|  |  |  |         editorWidget->switchDeclarationDefinition(/*inNextSplit*/ false); | 
					
						
							| 
									
										
										
										
											2013-02-05 14:14:33 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 13:44:02 +01:00
										 |  |  | void CppEditorPlugin::openDeclarationDefinitionInNextSplit() | 
					
						
							| 
									
										
										
										
											2013-02-05 14:14:33 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2013-10-18 16:50:09 +02:00
										 |  |  |     if (CPPEditorWidget *editorWidget = currentCppEditorWidget()) | 
					
						
							|  |  |  |         editorWidget->switchDeclarationDefinition(/*inNextSplit*/ true); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 13:44:02 +01:00
										 |  |  | void CppEditorPlugin::renameSymbolUnderCursor() | 
					
						
							| 
									
										
										
										
											2009-08-04 13:44:54 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2013-10-18 16:50:09 +02:00
										 |  |  |     if (CPPEditorWidget *editorWidget = currentCppEditorWidget()) | 
					
						
							|  |  |  |         editorWidget->renameSymbolUnderCursor(); | 
					
						
							| 
									
										
										
										
											2009-08-04 13:44:54 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 13:44:02 +01:00
										 |  |  | void CppEditorPlugin::findUsages() | 
					
						
							| 
									
										
										
										
											2009-10-05 15:17:25 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2013-10-18 16:50:09 +02:00
										 |  |  |     if (CPPEditorWidget *editorWidget = currentCppEditorWidget()) | 
					
						
							|  |  |  |         editorWidget->findUsages(); | 
					
						
							| 
									
										
										
										
											2009-10-05 15:17:25 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-17 14:52:16 +02:00
										 |  |  | void CppEditorPlugin::showPreProcessorDialog() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2013-10-18 16:50:09 +02:00
										 |  |  |     if (CPPEditorWidget *editorWidget = currentCppEditorWidget()) | 
					
						
							|  |  |  |         editorWidget->showPreProcessorWidget(); | 
					
						
							| 
									
										
										
										
											2013-10-17 14:52:16 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-03 15:18:37 +02:00
										 |  |  | void CppEditorPlugin::onTaskStarted(Core::Id type) | 
					
						
							| 
									
										
										
										
											2009-11-04 16:07:42 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2013-09-03 15:18:37 +02:00
										 |  |  |     if (type == CppTools::Constants::TASK_INDEX) { | 
					
						
							| 
									
										
										
										
											2009-11-10 18:02:42 +01:00
										 |  |  |         m_renameSymbolUnderCursorAction->setEnabled(false); | 
					
						
							|  |  |  |         m_findUsagesAction->setEnabled(false); | 
					
						
							| 
									
										
										
										
											2013-10-04 15:54:39 +02:00
										 |  |  |         m_reparseExternallyChangedFiles->setEnabled(false); | 
					
						
							| 
									
										
										
										
											2010-08-13 16:38:45 +02:00
										 |  |  |         m_openTypeHierarchyAction->setEnabled(false); | 
					
						
							| 
									
										
										
										
											2013-08-13 22:58:38 +02:00
										 |  |  |         m_openIncludeHierarchyAction->setEnabled(false); | 
					
						
							| 
									
										
										
										
											2009-11-10 18:02:42 +01:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2009-11-04 16:07:42 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-03 15:18:37 +02:00
										 |  |  | void CppEditorPlugin::onAllTasksFinished(Core::Id type) | 
					
						
							| 
									
										
										
										
											2009-11-04 16:07:42 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2013-09-03 15:18:37 +02:00
										 |  |  |     if (type == CppTools::Constants::TASK_INDEX) { | 
					
						
							| 
									
										
										
										
											2009-11-10 18:02:42 +01:00
										 |  |  |         m_renameSymbolUnderCursorAction->setEnabled(true); | 
					
						
							|  |  |  |         m_findUsagesAction->setEnabled(true); | 
					
						
							| 
									
										
										
										
											2013-10-04 15:54:39 +02:00
										 |  |  |         m_reparseExternallyChangedFiles->setEnabled(true); | 
					
						
							| 
									
										
										
										
											2010-08-13 16:38:45 +02:00
										 |  |  |         m_openTypeHierarchyAction->setEnabled(true); | 
					
						
							| 
									
										
										
										
											2013-08-13 22:58:38 +02:00
										 |  |  |         m_openIncludeHierarchyAction->setEnabled(true); | 
					
						
							| 
									
										
										
										
											2009-11-10 18:02:42 +01:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2009-11-04 16:07:42 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-11-03 02:02:36 +01:00
										 |  |  | void CppEditorPlugin::inspectCppCodeModel() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (m_cppCodeModelInspectorDialog) { | 
					
						
							|  |  |  |         ICore::raiseWindow(m_cppCodeModelInspectorDialog); | 
					
						
							|  |  |  |     } else { | 
					
						
							|  |  |  |         m_cppCodeModelInspectorDialog = new CppCodeModelInspectorDialog(ICore::mainWindow()); | 
					
						
							|  |  |  |         m_cppCodeModelInspectorDialog->show(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 13:44:02 +01:00
										 |  |  | void CppEditorPlugin::openTypeHierarchy() | 
					
						
							| 
									
										
										
										
											2010-08-13 16:38:45 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2013-10-18 16:50:09 +02:00
										 |  |  |     if (currentCppEditorWidget()) { | 
					
						
							| 
									
										
										
										
											2013-08-30 09:22:42 +02:00
										 |  |  |         NavigationWidget *navigation = NavigationWidget::instance(); | 
					
						
							|  |  |  |         navigation->activateSubWidget(Constants::TYPE_HIERARCHY_ID); | 
					
						
							| 
									
										
										
										
											2010-08-13 16:38:45 +02:00
										 |  |  |         emit typeHierarchyRequested(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-13 22:58:38 +02:00
										 |  |  | void CppEditorPlugin::openIncludeHierarchy() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2013-10-18 16:50:09 +02:00
										 |  |  |     if (currentCppEditorWidget()) { | 
					
						
							| 
									
										
										
										
											2013-08-13 22:58:38 +02:00
										 |  |  |         Core::NavigationWidget *navigation = Core::NavigationWidget::instance(); | 
					
						
							|  |  |  |         navigation->activateSubWidget(Core::Id(Constants::INCLUDE_HIERARCHY_ID)); | 
					
						
							|  |  |  |         emit includeHierarchyRequested(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 13:44:02 +01:00
										 |  |  | Q_EXPORT_PLUGIN(CppEditorPlugin) |