| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | /**************************************************************************
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | ** | 
					
						
							|  |  |  | ** This file is part of Qt Creator | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2012-01-26 18:33:46 +01:00
										 |  |  | ** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies). | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2011-11-02 15:59:12 +01:00
										 |  |  | ** Contact: Nokia Corporation (qt-info@nokia.com) | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2008-12-02 14:17:16 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | ** GNU Lesser General Public License Usage | 
					
						
							| 
									
										
										
										
											2008-12-02 14:17:16 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2011-04-13 08:42:33 +02:00
										 |  |  | ** 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.
 | 
					
						
							| 
									
										
										
										
											2008-12-02 14:17:16 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2010-12-17 16:01:08 +01:00
										 |  |  | ** In addition, as a special exception, Nokia gives you certain additional | 
					
						
							| 
									
										
										
										
											2011-04-13 08:42:33 +02:00
										 |  |  | ** rights. These rights are described in the Nokia Qt LGPL Exception | 
					
						
							| 
									
										
										
										
											2010-12-17 16:01:08 +01:00
										 |  |  | ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2011-04-13 08:42:33 +02:00
										 |  |  | ** Other Usage | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Alternatively, this file may be used in accordance with the terms and | 
					
						
							|  |  |  | ** conditions contained in a signed written agreement between you and Nokia. | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2010-12-17 16:01:08 +01:00
										 |  |  | ** If you have questions regarding the use of this file, please contact | 
					
						
							| 
									
										
										
										
											2011-11-02 15:59:12 +01:00
										 |  |  | ** Nokia at qt-info@nokia.com. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | **************************************************************************/ | 
					
						
							| 
									
										
										
										
											2008-12-02 15:08:31 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | #include "cppplugin.h"
 | 
					
						
							| 
									
										
										
										
											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 "cppeditorenums.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"
 | 
					
						
							| 
									
										
										
										
											2010-12-02 17:02:23 +01:00
										 |  |  | #include "cppsnippetprovider.h"
 | 
					
						
							| 
									
										
										
										
											2011-04-15 16:19:23 +02:00
										 |  |  | #include "cppquickfixassistant.h"
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-20 15:31:33 +01:00
										 |  |  | #include <coreplugin/icore.h>
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | #include <coreplugin/coreconstants.h>
 | 
					
						
							|  |  |  | #include <coreplugin/mimedatabase.h>
 | 
					
						
							|  |  |  | #include <coreplugin/fileiconprovider.h>
 | 
					
						
							| 
									
										
										
										
											2009-01-13 13:39:31 +01:00
										 |  |  | #include <coreplugin/actionmanager/actionmanager.h>
 | 
					
						
							| 
									
										
										
										
											2010-03-18 10:59:06 +01:00
										 |  |  | #include <coreplugin/actionmanager/actioncontainer.h>
 | 
					
						
							| 
									
										
										
										
											2009-01-14 13:17:53 +01:00
										 |  |  | #include <coreplugin/actionmanager/command.h>
 | 
					
						
							| 
									
										
										
										
											2011-09-05 16:10:37 +02:00
										 |  |  | #include <coreplugin/id.h>
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | #include <coreplugin/editormanager/editormanager.h>
 | 
					
						
							| 
									
										
										
										
											2009-11-10 18:02:42 +01:00
										 |  |  | #include <coreplugin/progressmanager/progressmanager.h>
 | 
					
						
							| 
									
										
										
										
											2010-08-13 16:38:45 +02:00
										 |  |  | #include <coreplugin/navigationwidget.h>
 | 
					
						
							| 
									
										
										
										
											2009-03-17 17:38:16 +01:00
										 |  |  | #include <texteditor/texteditoractionhandler.h>
 | 
					
						
							| 
									
										
										
										
											2009-03-17 18:17:51 +01:00
										 |  |  | #include <texteditor/texteditorplugin.h>
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | #include <texteditor/texteditorsettings.h>
 | 
					
						
							| 
									
										
										
										
											2009-07-22 15:32:52 +02:00
										 |  |  | #include <texteditor/texteditorconstants.h>
 | 
					
						
							| 
									
										
										
										
											2012-03-14 10:25:55 +01:00
										 |  |  | #include <cpptools/ModelManagerInterface.h>
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | #include <cpptools/cpptoolsconstants.h>
 | 
					
						
							| 
									
										
										
										
											2011-02-03 15:48:14 +01:00
										 |  |  | #include <cpptools/cpptoolssettings.h>
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-02-15 10:42:41 +01:00
										 |  |  | #include <QFileInfo>
 | 
					
						
							|  |  |  | #include <QSettings>
 | 
					
						
							|  |  |  | #include <QTimer>
 | 
					
						
							|  |  |  | #include <QCoreApplication>
 | 
					
						
							|  |  |  | #include <QStringList>
 | 
					
						
							| 
									
										
										
										
											2009-11-18 15:06:26 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-02-15 10:42:41 +01:00
										 |  |  | #include <QMenu>
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											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
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-17 17:43:51 +01:00
										 |  |  | CppEditorFactory::CppEditorFactory(CppPlugin *owner) : | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     m_owner(owner) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     m_mimeTypes << QLatin1String(CppEditor::Constants::C_SOURCE_MIMETYPE) | 
					
						
							| 
									
										
										
										
											2009-07-15 11:20:24 +02:00
										 |  |  |             << QLatin1String(CppEditor::Constants::C_HEADER_MIMETYPE) | 
					
						
							|  |  |  |             << QLatin1String(CppEditor::Constants::CPP_SOURCE_MIMETYPE) | 
					
						
							|  |  |  |             << QLatin1String(CppEditor::Constants::CPP_HEADER_MIMETYPE); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-01-25 10:25:05 +01:00
										 |  |  | #if !defined(Q_OS_MAC) && !defined(Q_WS_WIN)
 | 
					
						
							| 
									
										
										
										
											2009-07-15 11:20:24 +02:00
										 |  |  |     Core::FileIconProvider *iconProvider = Core::FileIconProvider::instance(); | 
					
						
							| 
									
										
										
										
											2012-01-24 15:36:40 +01:00
										 |  |  |     Core::MimeDatabase *mimeDatabase = Core::ICore::mimeDatabase(); | 
					
						
							| 
									
										
										
										
											2010-07-30 22:16:59 +02:00
										 |  |  |     iconProvider->registerIconOverlayForMimeType(QIcon(QLatin1String(":/cppeditor/images/qt_cpp.png")), | 
					
						
							| 
									
										
										
										
											2009-07-15 11:20:24 +02:00
										 |  |  |                                                  mimeDatabase->findByType(QLatin1String(CppEditor::Constants::CPP_SOURCE_MIMETYPE))); | 
					
						
							| 
									
										
										
										
											2010-07-30 22:16:59 +02:00
										 |  |  |     iconProvider->registerIconOverlayForMimeType(QIcon(QLatin1String(":/cppeditor/images/qt_c.png")), | 
					
						
							| 
									
										
										
										
											2009-07-15 11:20:24 +02:00
										 |  |  |                                                  mimeDatabase->findByType(QLatin1String(CppEditor::Constants::C_SOURCE_MIMETYPE))); | 
					
						
							| 
									
										
										
										
											2010-07-30 22:16:59 +02:00
										 |  |  |     iconProvider->registerIconOverlayForMimeType(QIcon(QLatin1String(":/cppeditor/images/qt_h.png")), | 
					
						
							| 
									
										
										
										
											2009-07-15 11:20:24 +02:00
										 |  |  |                                                  mimeDatabase->findByType(QLatin1String(CppEditor::Constants::CPP_HEADER_MIMETYPE))); | 
					
						
							| 
									
										
										
										
											2009-07-14 16:37:26 +02:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-07 09:26:29 +02:00
										 |  |  | Core::Id CppEditorFactory::id() const | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2011-09-07 09:26:29 +02:00
										 |  |  |     return CppEditor::Constants::CPPEDITOR_ID; | 
					
						
							| 
									
										
										
										
											2010-01-07 18:17:24 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | QString CppEditorFactory::displayName() const | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return tr(CppEditor::Constants::CPPEDITOR_DISPLAY_NAME); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-02-14 16:43:51 +01:00
										 |  |  | Core::IDocument *CppEditorFactory::open(const QString &fileName) | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-01-07 18:17:24 +01:00
										 |  |  |     Core::IEditor *iface = Core::EditorManager::instance()->openEditor(fileName, id()); | 
					
						
							| 
									
										
										
										
											2012-02-14 16:43:51 +01:00
										 |  |  |     return iface ? iface->document() : 0; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-17 17:43:51 +01:00
										 |  |  | Core::IEditor *CppEditorFactory::createEditor(QWidget *parent) | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2011-02-21 16:02:26 +01:00
										 |  |  |     CPPEditorWidget *editor = new CPPEditorWidget(parent); | 
					
						
							| 
									
										
										
										
											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
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-17 17:43:51 +01:00
										 |  |  | QStringList CppEditorFactory::mimeTypes() const | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     return m_mimeTypes; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ///////////////////////////////// CppPlugin //////////////////////////////////
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-11 14:32:54 +01:00
										 |  |  | static inline | 
					
						
							| 
									
										
										
										
											2010-06-25 12:56:16 +02:00
										 |  |  | Core::Command *createSeparator(Core::ActionManager *am, | 
					
						
							|  |  |  |                                QObject *parent, | 
					
						
							|  |  |  |                                Core::Context &context, | 
					
						
							|  |  |  |                                const char *id) | 
					
						
							| 
									
										
										
										
											2009-11-11 14:32:54 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     QAction *separator = new QAction(parent); | 
					
						
							|  |  |  |     separator->setSeparator(true); | 
					
						
							| 
									
										
										
										
											2010-09-10 14:13:19 +02:00
										 |  |  |     return am->registerAction(separator, Core::Id(id), context); | 
					
						
							| 
									
										
										
										
											2009-11-11 14:32:54 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | CppPlugin *CppPlugin::m_instance = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CppPlugin::CppPlugin() : | 
					
						
							|  |  |  |     m_actionHandler(0), | 
					
						
							| 
									
										
										
										
											2010-07-13 11:37:06 +02:00
										 |  |  |     m_sortedOutline(false), | 
					
						
							| 
									
										
										
										
											2009-11-11 14:32:54 +01:00
										 |  |  |     m_renameSymbolUnderCursorAction(0), | 
					
						
							|  |  |  |     m_findUsagesAction(0), | 
					
						
							| 
									
										
										
										
											2010-08-13 16:38:45 +02:00
										 |  |  |     m_updateCodeModelAction(0), | 
					
						
							| 
									
										
										
										
											2011-04-15 16:19:23 +02:00
										 |  |  |     m_openTypeHierarchyAction(0), | 
					
						
							|  |  |  |     m_quickFixProvider(0) | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     m_instance = this; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CppPlugin::~CppPlugin() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     delete m_actionHandler; | 
					
						
							|  |  |  |     m_instance = 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CppPlugin *CppPlugin::instance() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return m_instance; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-21 16:02:26 +01:00
										 |  |  | void CppPlugin::initializeEditor(CPPEditorWidget *editor) | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     m_actionHandler->setupActions(editor); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-01-11 14:26:09 +01:00
										 |  |  |     editor->setLanguageSettingsId(QLatin1String(CppTools::Constants::CPP_SETTINGS_ID)); | 
					
						
							| 
									
										
										
										
											2009-03-17 18:17:51 +01:00
										 |  |  |     TextEditor::TextEditorSettings::instance()->initializeEditor(editor); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-27 17:22:49 +02:00
										 |  |  |     // method 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
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-13 11:37:06 +02:00
										 |  |  | void CppPlugin::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
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-13 11:37:06 +02:00
										 |  |  | bool CppPlugin::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
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-04-15 16:19:23 +02:00
										 |  |  | CppQuickFixAssistProvider *CppPlugin::quickFixProvider() const | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return m_quickFixProvider; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2009-11-23 16:55:04 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | bool CppPlugin::initialize(const QStringList & /*arguments*/, QString *errorMessage) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-01-24 15:36:40 +01:00
										 |  |  |     if (!Core::ICore::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); | 
					
						
							| 
									
										
										
										
											2010-12-02 17:02:23 +01:00
										 |  |  |     addAutoReleasedObject(new CppSnippetProvider); | 
					
						
							| 
									
										
										
										
											2009-11-23 16:55:04 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-04-15 16:19:23 +02:00
										 |  |  |     m_quickFixProvider = new CppQuickFixAssistProvider; | 
					
						
							|  |  |  |     addAutoReleasedObject(m_quickFixProvider); | 
					
						
							|  |  |  |     registerQuickFixes(this); | 
					
						
							| 
									
										
										
										
											2010-06-22 14:14:22 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-01-24 15:36:40 +01:00
										 |  |  |     QObject *core = Core::ICore::instance(); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     CppFileWizard::BaseFileWizardParameters wizardParameters(Core::IWizard::FileWizard); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-09 17:06:24 +02:00
										 |  |  |     wizardParameters.setCategory(QLatin1String(Constants::WIZARD_CATEGORY)); | 
					
						
							| 
									
										
										
										
											2010-04-09 17:28:02 +02:00
										 |  |  |     wizardParameters.setDisplayCategory(QCoreApplication::translate(Constants::WIZARD_CATEGORY, | 
					
						
							|  |  |  |                                                                     Constants::WIZARD_TR_CATEGORY)); | 
					
						
							| 
									
										
										
										
											2010-01-07 18:17:24 +01:00
										 |  |  |     wizardParameters.setDisplayName(tr("C++ Class")); | 
					
						
							| 
									
										
										
										
											2009-11-27 10:33:24 +01:00
										 |  |  |     wizardParameters.setId(QLatin1String("A.Class")); | 
					
						
							|  |  |  |     wizardParameters.setKind(Core::IWizard::ClassWizard); | 
					
						
							| 
									
										
										
										
											2010-05-12 10:39:49 +02:00
										 |  |  |     wizardParameters.setDescription(tr("Creates a C++ header and a source file for a new class that you can add to a C++ project.")); | 
					
						
							| 
									
										
										
										
											2009-11-27 10:33:24 +01:00
										 |  |  |     addAutoReleasedObject(new CppClassWizard(wizardParameters, core)); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-27 10:33:24 +01:00
										 |  |  |     wizardParameters.setKind(Core::IWizard::FileWizard); | 
					
						
							| 
									
										
										
										
											2010-05-12 10:39:49 +02:00
										 |  |  |     wizardParameters.setDescription(tr("Creates a C++ source file that you can add to a C++ project.")); | 
					
						
							| 
									
										
										
										
											2010-01-07 18:17:24 +01:00
										 |  |  |     wizardParameters.setDisplayName(tr("C++ Source File")); | 
					
						
							| 
									
										
										
										
											2009-11-27 10:33:24 +01:00
										 |  |  |     wizardParameters.setId(QLatin1String("B.Source")); | 
					
						
							| 
									
										
										
										
											2009-01-20 11:52:04 +01:00
										 |  |  |     addAutoReleasedObject(new CppFileWizard(wizardParameters, Source, core)); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-12 10:39:49 +02:00
										 |  |  |     wizardParameters.setDescription(tr("Creates a C++ header file that you can add to a C++ project.")); | 
					
						
							| 
									
										
										
										
											2010-01-07 18:17:24 +01:00
										 |  |  |     wizardParameters.setDisplayName(tr("C++ Header File")); | 
					
						
							| 
									
										
										
										
											2009-11-27 10:33:24 +01:00
										 |  |  |     wizardParameters.setId(QLatin1String("C.Header")); | 
					
						
							|  |  |  |     addAutoReleasedObject(new CppFileWizard(wizardParameters, Header, core)); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-25 17:37:59 +02:00
										 |  |  |     Core::Context context(CppEditor::Constants::C_CPPEDITOR); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-01-24 15:36:40 +01:00
										 |  |  |     Core::ActionManager *am = Core::ICore::actionManager(); | 
					
						
							| 
									
										
										
										
											2009-09-24 14:50:22 +02:00
										 |  |  |     Core::ActionContainer *contextMenu= am->createMenu(CppEditor::Constants::M_CONTEXT); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-14 13:17:53 +01:00
										 |  |  |     Core::Command *cmd; | 
					
						
							| 
									
										
										
										
											2010-09-10 14:13:19 +02:00
										 |  |  |     Core::ActionContainer *cppToolsMenu = am->actionContainer(Core::Id(CppTools::Constants::M_TOOLS_CPP)); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-08-05 13:13:17 +02:00
										 |  |  |     cmd = am->command(Core::Id(CppTools::Constants::SWITCH_HEADER_SOURCE)); | 
					
						
							|  |  |  |     contextMenu->addAction(cmd); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-25 10:58:40 +01:00
										 |  |  |     QAction *jumpToDefinition = new QAction(tr("Follow Symbol Under Cursor"), this); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     cmd = am->registerAction(jumpToDefinition, | 
					
						
							| 
									
										
										
										
											2010-12-20 10:35:30 +01:00
										 |  |  |         Constants::JUMP_TO_DEFINITION, context, true); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     cmd->setDefaultKeySequence(QKeySequence(Qt::Key_F2)); | 
					
						
							|  |  |  |     connect(jumpToDefinition, SIGNAL(triggered()), | 
					
						
							|  |  |  |             this, SLOT(jumpToDefinition())); | 
					
						
							| 
									
										
										
										
											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
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-25 10:58:40 +01:00
										 |  |  |     QAction *switchDeclarationDefinition = new QAction(tr("Switch Between Method Declaration/Definition"), this); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     cmd = am->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
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-04 16:07:42 +01:00
										 |  |  |     m_findUsagesAction = new QAction(tr("Find Usages"), this); | 
					
						
							|  |  |  |     cmd = am->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); | 
					
						
							|  |  |  |     cmd = am->registerAction(m_openTypeHierarchyAction, Constants::OPEN_TYPE_HIERARCHY, context); | 
					
						
							|  |  |  |     cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+Shift+T"))); | 
					
						
							|  |  |  |     connect(m_openTypeHierarchyAction, SIGNAL(triggered()), this, SLOT(openTypeHierarchy())); | 
					
						
							|  |  |  |     contextMenu->addAction(cmd); | 
					
						
							|  |  |  |     cppToolsMenu->addAction(cmd); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-15 14:33:44 +02:00
										 |  |  |     // Refactoring sub-menu
 | 
					
						
							| 
									
										
										
										
											2010-06-28 14:30:03 +02:00
										 |  |  |     Core::Context globalContext(Core::Constants::C_GLOBAL); | 
					
						
							| 
									
										
										
										
											2010-09-15 14:33:44 +02:00
										 |  |  |     Core::Command *sep = createSeparator(am, this, globalContext, | 
					
						
							|  |  |  |                                          Constants::SEPARATOR2); | 
					
						
							| 
									
										
										
										
											2012-01-11 14:26:09 +01:00
										 |  |  |     sep->action()->setObjectName(QLatin1String(Constants::M_REFACTORING_MENU_INSERTION_POINT)); | 
					
						
							| 
									
										
										
										
											2010-09-15 14:33:44 +02:00
										 |  |  |     contextMenu->addAction(sep); | 
					
						
							|  |  |  |     contextMenu->addAction(createSeparator(am, this, globalContext, | 
					
						
							|  |  |  |                                            Constants::SEPARATOR3)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_renameSymbolUnderCursorAction = new QAction(tr("Rename Symbol Under Cursor"), | 
					
						
							|  |  |  |                                                   this); | 
					
						
							|  |  |  |     cmd = am->registerAction(m_renameSymbolUnderCursorAction, | 
					
						
							|  |  |  |                              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
 | 
					
						
							|  |  |  |     cppToolsMenu->addAction(createSeparator(am, this, globalContext, CppEditor::Constants::SEPARATOR4)); | 
					
						
							| 
									
										
										
										
											2010-05-14 15:45:43 +02:00
										 |  |  |     m_updateCodeModelAction = new QAction(tr("Update Code Model"), this); | 
					
						
							| 
									
										
										
										
											2010-09-10 14:13:19 +02:00
										 |  |  |     cmd = am->registerAction(m_updateCodeModelAction, Core::Id(Constants::UPDATE_CODEMODEL), globalContext); | 
					
						
							| 
									
										
										
										
											2010-12-03 13:49:35 +01:00
										 |  |  |     CPlusPlus::CppModelManagerInterface *cppModelManager = CPlusPlus::CppModelManagerInterface::instance(); | 
					
						
							| 
									
										
										
										
											2009-11-11 14:32:54 +01:00
										 |  |  |     connect(m_updateCodeModelAction, SIGNAL(triggered()), cppModelManager, SLOT(updateModifiedSourceFiles())); | 
					
						
							|  |  |  |     cppToolsMenu->addAction(cmd); | 
					
						
							| 
									
										
										
										
											2009-08-04 13:44:54 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-11 16:52:38 +01:00
										 |  |  |     m_actionHandler = new TextEditor::TextEditorActionHandler(CppEditor::Constants::C_CPPEDITOR, | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         TextEditor::TextEditorActionHandler::Format | 
					
						
							|  |  |  |         | TextEditor::TextEditorActionHandler::UnCommentSelection | 
					
						
							|  |  |  |         | TextEditor::TextEditorActionHandler::UnCollapseAll); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-22 15:32:52 +02:00
										 |  |  |     m_actionHandler->initializeActions(); | 
					
						
							| 
									
										
										
										
											2010-01-29 21:33:57 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-11 14:32:54 +01:00
										 |  |  |     contextMenu->addAction(createSeparator(am, this, context, CppEditor::Constants::SEPARATOR)); | 
					
						
							| 
									
										
										
										
											2009-07-22 15:32:52 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     cmd = am->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
										 |  |  | 
 | 
					
						
							|  |  |  |     cmd = am->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
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-01-24 15:36:40 +01:00
										 |  |  |     connect(Core::ICore::progressManager(), SIGNAL(taskStarted(QString)), | 
					
						
							| 
									
										
										
										
											2009-11-10 18:02:42 +01:00
										 |  |  |             this, SLOT(onTaskStarted(QString))); | 
					
						
							| 
									
										
										
										
											2012-01-24 15:36:40 +01:00
										 |  |  |     connect(Core::ICore::progressManager(), SIGNAL(allTasksFinished(QString)), | 
					
						
							| 
									
										
										
										
											2009-11-10 18:02:42 +01:00
										 |  |  |             this, SLOT(onAllTasksFinished(QString))); | 
					
						
							| 
									
										
										
										
											2010-08-03 11:53:01 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-01-24 15:36:40 +01:00
										 |  |  |     connect(Core::ICore::editorManager(), SIGNAL(currentEditorChanged(Core::IEditor*)), SLOT(currentEditorChanged(Core::IEditor*))); | 
					
						
							| 
									
										
										
										
											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; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-27 17:22:49 +02:00
										 |  |  | void CppPlugin::readSettings() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-01-24 15:36:40 +01:00
										 |  |  |     m_sortedOutline = Core::ICore::settings()->value(QLatin1String("CppTools/SortedMethodOverview"), false).toBool(); | 
					
						
							| 
									
										
										
										
											2009-04-27 17:22:49 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void CppPlugin::writeSettings() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-01-24 15:36:40 +01:00
										 |  |  |     Core::ICore::settings()->setValue(QLatin1String("CppTools/SortedMethodOverview"), m_sortedOutline); | 
					
						
							| 
									
										
										
										
											2009-04-27 17:22:49 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | void CppPlugin::extensionsInitialized() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-13 13:36:47 +02:00
										 |  |  | ExtensionSystem::IPlugin::ShutdownFlag CppPlugin::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
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | void CppPlugin::switchDeclarationDefinition() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2009-01-21 15:52:34 +01:00
										 |  |  |     Core::EditorManager *em = Core::EditorManager::instance(); | 
					
						
							| 
									
										
										
										
											2011-02-21 16:02:26 +01:00
										 |  |  |     CPPEditorWidget *editor = qobject_cast<CPPEditorWidget*>(em->currentEditor()->widget()); | 
					
						
							| 
									
										
										
										
											2009-01-21 15:52:34 +01:00
										 |  |  |     if (editor) | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         editor->switchDeclarationDefinition(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void CppPlugin::jumpToDefinition() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2009-01-21 15:52:34 +01:00
										 |  |  |     Core::EditorManager *em = Core::EditorManager::instance(); | 
					
						
							| 
									
										
										
										
											2011-02-21 16:02:26 +01:00
										 |  |  |     CPPEditorWidget *editor = qobject_cast<CPPEditorWidget*>(em->currentEditor()->widget()); | 
					
						
							| 
									
										
										
										
											2009-01-21 15:52:34 +01:00
										 |  |  |     if (editor) | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         editor->jumpToDefinition(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-04 13:44:54 +02:00
										 |  |  | void CppPlugin::renameSymbolUnderCursor() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     Core::EditorManager *em = Core::EditorManager::instance(); | 
					
						
							| 
									
										
										
										
											2011-02-21 16:02:26 +01:00
										 |  |  |     CPPEditorWidget *editor = qobject_cast<CPPEditorWidget*>(em->currentEditor()->widget()); | 
					
						
							| 
									
										
										
										
											2009-08-04 13:44:54 +02:00
										 |  |  |     if (editor) | 
					
						
							|  |  |  |         editor->renameSymbolUnderCursor(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-05 15:17:25 +02:00
										 |  |  | void CppPlugin::findUsages() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     Core::EditorManager *em = Core::EditorManager::instance(); | 
					
						
							| 
									
										
										
										
											2011-02-21 16:02:26 +01:00
										 |  |  |     CPPEditorWidget *editor = qobject_cast<CPPEditorWidget*>(em->currentEditor()->widget()); | 
					
						
							| 
									
										
										
										
											2009-10-05 15:17:25 +02:00
										 |  |  |     if (editor) | 
					
						
							|  |  |  |         editor->findUsages(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-10 18:02:42 +01:00
										 |  |  | void CppPlugin::onTaskStarted(const QString &type) | 
					
						
							| 
									
										
										
										
											2009-11-04 16:07:42 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2012-01-11 14:26:09 +01:00
										 |  |  |     if (type == QLatin1String(CppTools::Constants::TASK_INDEX)) { | 
					
						
							| 
									
										
										
										
											2009-11-10 18:02:42 +01:00
										 |  |  |         m_renameSymbolUnderCursorAction->setEnabled(false); | 
					
						
							|  |  |  |         m_findUsagesAction->setEnabled(false); | 
					
						
							| 
									
										
										
										
											2009-11-11 14:32:54 +01:00
										 |  |  |         m_updateCodeModelAction->setEnabled(false); | 
					
						
							| 
									
										
										
										
											2010-08-13 16:38:45 +02:00
										 |  |  |         m_openTypeHierarchyAction->setEnabled(false); | 
					
						
							| 
									
										
										
										
											2009-11-10 18:02:42 +01:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2009-11-04 16:07:42 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-10 18:02:42 +01:00
										 |  |  | void CppPlugin::onAllTasksFinished(const QString &type) | 
					
						
							| 
									
										
										
										
											2009-11-04 16:07:42 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2012-01-11 14:26:09 +01:00
										 |  |  |     if (type == QLatin1String(CppTools::Constants::TASK_INDEX)) { | 
					
						
							| 
									
										
										
										
											2009-11-10 18:02:42 +01:00
										 |  |  |         m_renameSymbolUnderCursorAction->setEnabled(true); | 
					
						
							|  |  |  |         m_findUsagesAction->setEnabled(true); | 
					
						
							| 
									
										
										
										
											2009-11-11 14:32:54 +01:00
										 |  |  |         m_updateCodeModelAction->setEnabled(true); | 
					
						
							| 
									
										
										
										
											2010-08-13 16:38:45 +02:00
										 |  |  |         m_openTypeHierarchyAction->setEnabled(true); | 
					
						
							| 
									
										
										
										
											2009-11-10 18:02:42 +01:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2009-11-04 16:07:42 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-03 11:53:01 +02:00
										 |  |  | void CppPlugin::currentEditorChanged(Core::IEditor *editor) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (! editor) | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-21 16:02:26 +01:00
										 |  |  |     else if (CPPEditorWidget *textEditor = qobject_cast<CPPEditorWidget *>(editor->widget())) { | 
					
						
							| 
									
										
										
										
											2011-11-14 13:34:41 +01:00
										 |  |  |         textEditor->semanticRehighlight(/*force = */ true); | 
					
						
							| 
									
										
										
										
											2010-08-03 11:53:01 +02:00
										 |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-13 16:38:45 +02:00
										 |  |  | void CppPlugin::openTypeHierarchy() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     Core::EditorManager *em = Core::EditorManager::instance(); | 
					
						
							| 
									
										
										
										
											2011-02-21 16:02:26 +01:00
										 |  |  |     CPPEditorWidget *editor = qobject_cast<CPPEditorWidget*>(em->currentEditor()->widget()); | 
					
						
							| 
									
										
										
										
											2010-08-13 16:38:45 +02:00
										 |  |  |     if (editor) { | 
					
						
							|  |  |  |         Core::NavigationWidget *navigation = Core::NavigationWidget::instance(); | 
					
						
							| 
									
										
										
										
											2011-11-09 12:07:41 +01:00
										 |  |  |         navigation->activateSubWidget(Core::Id(Constants::TYPE_HIERARCHY_ID)); | 
					
						
							| 
									
										
										
										
											2010-08-13 16:38:45 +02:00
										 |  |  |         emit typeHierarchyRequested(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | Q_EXPORT_PLUGIN(CppPlugin) |