| 
									
										
										
										
											2009-04-22 15:21:04 +02:00
										 |  |  | /**************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** This file is part of Qt Creator | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2010-03-05 11:25:49 +01:00
										 |  |  | ** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). | 
					
						
							| 
									
										
										
										
											2009-04-22 15:21:04 +02:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-06-17 00:01:27 +10:00
										 |  |  | ** Contact: Nokia Corporation (qt-info@nokia.com) | 
					
						
							| 
									
										
										
										
											2009-04-22 15:21:04 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | ** Commercial Usage | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Licensees holding valid Qt Commercial licenses may use this file in | 
					
						
							|  |  |  | ** accordance with the Qt Commercial License Agreement provided with the | 
					
						
							|  |  |  | ** Software or, alternatively, in accordance with the terms contained in | 
					
						
							|  |  |  | ** a written agreement between you and Nokia. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** GNU Lesser General Public License Usage | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** 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.
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** If you are unsure which license is appropriate for your use, please | 
					
						
							| 
									
										
										
										
											2009-08-14 09:30:56 +02:00
										 |  |  | ** contact the sales department at http://qt.nokia.com/contact.
 | 
					
						
							| 
									
										
										
										
											2009-04-22 15:21:04 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | **************************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-15 17:20:03 +01:00
										 |  |  | #ifndef QMLJSEDITORPLUGIN_H
 | 
					
						
							|  |  |  | #define QMLJSEDITORPLUGIN_H
 | 
					
						
							| 
									
										
										
										
											2009-04-22 15:21:04 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | #include <extensionsystem/iplugin.h>
 | 
					
						
							| 
									
										
										
										
											2010-06-25 12:56:16 +02:00
										 |  |  | #include <coreplugin/icontext.h>
 | 
					
						
							| 
									
										
										
										
											2010-06-03 15:49:29 +02:00
										 |  |  | #include <QtCore/QPointer>
 | 
					
						
							| 
									
										
										
										
											2009-04-22 15:21:04 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-23 13:19:28 +02:00
										 |  |  | QT_FORWARD_DECLARE_CLASS(QAction) | 
					
						
							| 
									
										
										
										
											2010-06-03 15:49:29 +02:00
										 |  |  | QT_FORWARD_DECLARE_CLASS(QTimer) | 
					
						
							| 
									
										
										
										
											2010-04-23 13:19:28 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-22 15:21:04 +02:00
										 |  |  | namespace TextEditor { | 
					
						
							|  |  |  | class TextEditorActionHandler; | 
					
						
							|  |  |  | } // namespace TextEditor
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-23 13:19:28 +02:00
										 |  |  | namespace Core { | 
					
						
							|  |  |  | class Command; | 
					
						
							|  |  |  | class ActionContainer; | 
					
						
							|  |  |  | class ActionManager; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-03 15:49:29 +02:00
										 |  |  | namespace TextEditor { | 
					
						
							|  |  |  | class ITextEditable; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-09 15:56:03 +02:00
										 |  |  | namespace QmlJS { | 
					
						
							|  |  |  |     class ModelManagerInterface; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-15 17:20:03 +01:00
										 |  |  | namespace QmlJSEditor { | 
					
						
							| 
									
										
										
										
											2009-09-04 16:51:11 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-09-24 12:54:53 +02:00
										 |  |  | class QmlFileWizard; | 
					
						
							| 
									
										
										
										
											2009-09-04 16:51:11 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-22 15:21:04 +02:00
										 |  |  | namespace Internal { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-15 17:20:03 +01:00
										 |  |  | class QmlJSEditorFactory; | 
					
						
							|  |  |  | class QmlJSTextEditor; | 
					
						
							| 
									
										
										
										
											2010-04-23 13:19:28 +02:00
										 |  |  | class QmlJSPreviewRunner; | 
					
						
							| 
									
										
										
										
											2010-06-03 15:49:29 +02:00
										 |  |  | class QmlJSQuickFixCollector; | 
					
						
							| 
									
										
										
										
											2009-04-22 15:21:04 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-15 17:20:03 +01:00
										 |  |  | class QmlJSEditorPlugin : public ExtensionSystem::IPlugin | 
					
						
							| 
									
										
										
										
											2009-04-22 15:21:04 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     Q_OBJECT | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2010-01-15 17:20:03 +01:00
										 |  |  |     QmlJSEditorPlugin(); | 
					
						
							|  |  |  |     virtual ~QmlJSEditorPlugin(); | 
					
						
							| 
									
										
										
										
											2009-04-22 15:21:04 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     // IPlugin
 | 
					
						
							|  |  |  |     bool initialize(const QStringList &arguments, QString *errorMessage = 0); | 
					
						
							|  |  |  |     void extensionsInitialized(); | 
					
						
							| 
									
										
										
										
											2010-07-13 17:05:47 +02:00
										 |  |  |     ShutdownFlag aboutToShutdown(); | 
					
						
							| 
									
										
										
										
											2009-04-22 15:21:04 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-15 17:20:03 +01:00
										 |  |  |     static QmlJSEditorPlugin *instance() | 
					
						
							| 
									
										
										
										
											2009-04-22 15:21:04 +02:00
										 |  |  |     { return m_instance; } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-03 15:49:29 +02:00
										 |  |  |     QmlJSQuickFixCollector *quickFixCollector() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-15 17:20:03 +01:00
										 |  |  |     void initializeEditor(QmlJSTextEditor *editor); | 
					
						
							| 
									
										
										
										
											2009-04-22 15:21:04 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-08 12:50:10 +01:00
										 |  |  | public Q_SLOTS: | 
					
						
							|  |  |  |     void followSymbolUnderCursor(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-23 13:19:28 +02:00
										 |  |  | private Q_SLOTS: | 
					
						
							|  |  |  |     void openPreview(); | 
					
						
							| 
									
										
										
										
											2010-06-03 15:49:29 +02:00
										 |  |  |     void quickFix(TextEditor::ITextEditable *editable); | 
					
						
							|  |  |  |     void quickFixNow(); | 
					
						
							| 
									
										
										
										
											2010-04-23 13:19:28 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-22 15:21:04 +02:00
										 |  |  | private: | 
					
						
							| 
									
										
										
										
											2010-06-25 12:56:16 +02:00
										 |  |  |     Core::Command *addToolAction(QAction *a, Core::ActionManager *am, Core::Context &context, const QString &name, | 
					
						
							| 
									
										
										
										
											2010-04-23 13:19:28 +02:00
										 |  |  |                                  Core::ActionContainer *c1, const QString &keySequence); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-15 17:20:03 +01:00
										 |  |  |     static QmlJSEditorPlugin *m_instance; | 
					
						
							| 
									
										
										
										
											2009-04-22 15:21:04 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-23 13:19:28 +02:00
										 |  |  |     QAction *m_actionPreview; | 
					
						
							|  |  |  |     QmlJSPreviewRunner *m_previewRunner; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-09 15:56:03 +02:00
										 |  |  |     QmlJS::ModelManagerInterface *m_modelManager; | 
					
						
							| 
									
										
										
										
											2009-09-24 12:54:53 +02:00
										 |  |  |     QmlFileWizard *m_wizard; | 
					
						
							| 
									
										
										
										
											2010-01-15 17:20:03 +01:00
										 |  |  |     QmlJSEditorFactory *m_editor; | 
					
						
							| 
									
										
										
										
											2009-04-22 15:21:04 +02:00
										 |  |  |     TextEditor::TextEditorActionHandler *m_actionHandler; | 
					
						
							| 
									
										
										
										
											2010-06-03 15:49:29 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     QmlJSQuickFixCollector *m_quickFixCollector; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QTimer *m_quickFixTimer; | 
					
						
							|  |  |  |     QPointer<TextEditor::ITextEditable> m_currentTextEditable; | 
					
						
							| 
									
										
										
										
											2009-04-22 15:21:04 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } // namespace Internal
 | 
					
						
							| 
									
										
										
										
											2010-01-15 17:20:03 +01:00
										 |  |  | } // namespace QmlJSEditor
 | 
					
						
							| 
									
										
										
										
											2009-04-22 15:21:04 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-15 17:20:03 +01:00
										 |  |  | #endif // QMLJSEDITORPLUGIN_H
 |