| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  | /**************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** This file is part of Qt Creator | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2011-01-11 16:28:15 +01:00
										 |  |  | ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies). | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | ** Contact: Nokia Corporation (qt-info@nokia.com) | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2010-12-17 16:01:08 +01:00
										 |  |  | ** No Commercial Usage | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2010-12-17 16:01:08 +01:00
										 |  |  | ** This file contains pre-release code and may not be distributed. | 
					
						
							|  |  |  | ** You may use this file in accordance with the terms and conditions | 
					
						
							|  |  |  | ** contained in the Technology Preview License Agreement accompanying | 
					
						
							|  |  |  | ** this package. | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | ** 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.
 | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2010-12-17 16:01:08 +01:00
										 |  |  | ** In addition, as a special exception, Nokia gives you certain additional | 
					
						
							|  |  |  | ** rights.  These rights are described in the Nokia Qt LGPL Exception | 
					
						
							|  |  |  | ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** If you have questions regarding the use of this file, please contact | 
					
						
							|  |  |  | ** Nokia at qt-info@nokia.com. | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | **************************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | #include "qdeclarativeviewobserver.h"
 | 
					
						
							|  |  |  | #include "qdeclarativeviewobserver_p.h"
 | 
					
						
							| 
									
										
										
										
											2010-09-16 12:29:06 +02:00
										 |  |  | #include "qdeclarativeobserverservice.h"
 | 
					
						
							| 
									
										
										
										
											2011-02-09 17:34:03 +01:00
										 |  |  | #include "editor/liveselectiontool.h"
 | 
					
						
							| 
									
										
										
										
											2010-11-22 16:11:06 +01:00
										 |  |  | #include "editor/zoomtool.h"
 | 
					
						
							|  |  |  | #include "editor/colorpickertool.h"
 | 
					
						
							| 
									
										
										
										
											2011-02-09 17:34:03 +01:00
										 |  |  | #include "editor/livelayeritem.h"
 | 
					
						
							| 
									
										
										
										
											2010-11-22 16:11:06 +01:00
										 |  |  | #include "editor/boundingrecthighlighter.h"
 | 
					
						
							|  |  |  | #include "editor/subcomponenteditortool.h"
 | 
					
						
							|  |  |  | #include "editor/qmltoolbar.h"
 | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-27 10:46:08 +02:00
										 |  |  | #include "qt_private/qdeclarativedebughelper_p.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-01-24 12:30:21 +01:00
										 |  |  | #include <QtDeclarative/QDeclarativeItem>
 | 
					
						
							|  |  |  | #include <QtDeclarative/QDeclarativeEngine>
 | 
					
						
							|  |  |  | #include <QtDeclarative/QDeclarativeContext>
 | 
					
						
							|  |  |  | #include <QtDeclarative/QDeclarativeExpression>
 | 
					
						
							|  |  |  | #include <QtGui/QWidget>
 | 
					
						
							| 
									
										
										
										
											2011-02-22 14:11:39 +01:00
										 |  |  | #include <QtGui/QVBoxLayout>
 | 
					
						
							| 
									
										
										
										
											2011-01-24 12:30:21 +01:00
										 |  |  | #include <QtGui/QMouseEvent>
 | 
					
						
							|  |  |  | #include <QtGui/QGraphicsObject>
 | 
					
						
							|  |  |  | #include <QtGui/QApplication>
 | 
					
						
							| 
									
										
										
										
											2011-02-22 15:59:01 +01:00
										 |  |  | #include <QtCore/QSettings>
 | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-24 13:38:47 +01:00
										 |  |  | static inline void initEditorResource() { Q_INIT_RESOURCE(editor); } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-22 09:59:18 +02:00
										 |  |  | namespace QmlJSDebugger { | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-22 15:59:01 +01:00
										 |  |  | const char * const KEY_TOOLBOX_GEOMETRY = "toolBox/geometry"; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-06 14:03:13 +02:00
										 |  |  | const int SceneChangeUpdateInterval = 5000; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | QDeclarativeViewObserverPrivate::QDeclarativeViewObserverPrivate(QDeclarativeViewObserver *q) : | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |     q(q), | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  |     designModeBehavior(false), | 
					
						
							| 
									
										
										
										
											2010-11-23 10:07:09 +01:00
										 |  |  |     showAppOnTop(false), | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  |     executionPaused(false), | 
					
						
							|  |  |  |     slowdownFactor(1.0f), | 
					
						
							| 
									
										
										
										
											2011-02-22 15:59:01 +01:00
										 |  |  |     toolBar(0), | 
					
						
							| 
									
										
										
										
											2011-02-28 14:39:54 +01:00
										 |  |  |     toolBox(0), | 
					
						
							| 
									
										
										
										
											2011-02-22 15:59:01 +01:00
										 |  |  |     settings(0) | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | QDeclarativeViewObserverPrivate::~QDeclarativeViewObserverPrivate() | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2011-02-22 15:59:01 +01:00
										 |  |  |     if (toolBar) { | 
					
						
							|  |  |  |         settings->setValue(QLatin1String(KEY_TOOLBOX_GEOMETRY), | 
					
						
							|  |  |  |                            toolBar->window()->saveGeometry()); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | QDeclarativeViewObserver::QDeclarativeViewObserver(QDeclarativeView *view, QObject *parent) : | 
					
						
							|  |  |  |     QObject(parent), data(new QDeclarativeViewObserverPrivate(this)) | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2011-02-24 13:38:47 +01:00
										 |  |  |     initEditorResource(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |     data->view = view; | 
					
						
							| 
									
										
										
										
											2011-02-09 16:59:43 +01:00
										 |  |  |     data->manipulatorLayer = new LiveLayerItem(view->scene()); | 
					
						
							|  |  |  |     data->selectionTool = new LiveSelectionTool(this); | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  |     data->zoomTool = new ZoomTool(this); | 
					
						
							|  |  |  |     data->colorPickerTool = new ColorPickerTool(this); | 
					
						
							|  |  |  |     data->boundingRectHighlighter = new BoundingRectHighlighter(this); | 
					
						
							|  |  |  |     data->subcomponentEditorTool = new SubcomponentEditorTool(this); | 
					
						
							|  |  |  |     data->currentTool = data->selectionTool; | 
					
						
							| 
									
										
										
										
											2011-02-22 15:59:01 +01:00
										 |  |  |     data->settings = new QSettings(QLatin1String("Nokia"), | 
					
						
							|  |  |  |                                    QLatin1String("QmlObserver"), | 
					
						
							|  |  |  |                                    this); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-11 16:50:45 +01:00
										 |  |  |     // to capture ChildRemoved event when viewport changes
 | 
					
						
							|  |  |  |     data->view->installEventFilter(this); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     data->setViewport(data->view->viewport()); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-16 12:29:06 +02:00
										 |  |  |     data->debugService = QDeclarativeObserverService::instance(); | 
					
						
							| 
									
										
										
										
											2011-02-28 14:39:54 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     connect(data->debugService, SIGNAL(debuggingClientChanged(bool)), | 
					
						
							|  |  |  |             data.data(), SLOT(_q_setToolBoxVisible(bool))); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-23 10:51:02 +01:00
										 |  |  |     connect(data->debugService, SIGNAL(designModeBehaviorChanged(bool)), | 
					
						
							|  |  |  |             SLOT(setDesignModeBehavior(bool))); | 
					
						
							| 
									
										
										
										
											2010-11-23 10:07:09 +01:00
										 |  |  |     connect(data->debugService, SIGNAL(showAppOnTopChanged(bool)), | 
					
						
							|  |  |  |             SLOT(setShowAppOnTop(bool))); | 
					
						
							| 
									
										
										
										
											2011-01-12 12:27:12 +01:00
										 |  |  |     connect(data->debugService, SIGNAL(reloadRequested()), data.data(), SLOT(_q_reloadView())); | 
					
						
							| 
									
										
										
										
											2010-11-23 10:51:02 +01:00
										 |  |  |     connect(data->debugService, SIGNAL(currentObjectsChanged(QList<QObject*>)), | 
					
						
							| 
									
										
										
										
											2011-01-12 12:27:12 +01:00
										 |  |  |             data.data(), SLOT(_q_onCurrentObjectsChanged(QList<QObject*>))); | 
					
						
							| 
									
										
										
										
											2010-11-23 10:51:02 +01:00
										 |  |  |     connect(data->debugService, SIGNAL(animationSpeedChangeRequested(qreal)), | 
					
						
							|  |  |  |             SLOT(changeAnimationSpeed(qreal))); | 
					
						
							|  |  |  |     connect(data->debugService, SIGNAL(colorPickerToolRequested()), | 
					
						
							| 
									
										
										
										
											2011-01-12 12:27:12 +01:00
										 |  |  |             data.data(), SLOT(_q_changeToColorPickerTool())); | 
					
						
							| 
									
										
										
										
											2010-11-23 10:51:02 +01:00
										 |  |  |     connect(data->debugService, SIGNAL(selectMarqueeToolRequested()), | 
					
						
							| 
									
										
										
										
											2011-01-12 12:27:12 +01:00
										 |  |  |             data.data(), SLOT(_q_changeToMarqueeSelectTool())); | 
					
						
							|  |  |  |     connect(data->debugService, SIGNAL(selectToolRequested()), data.data(), SLOT(_q_changeToSingleSelectTool())); | 
					
						
							|  |  |  |     connect(data->debugService, SIGNAL(zoomToolRequested()), data.data(), SLOT(_q_changeToZoomTool())); | 
					
						
							| 
									
										
										
										
											2010-09-16 12:29:06 +02:00
										 |  |  |     connect(data->debugService, | 
					
						
							| 
									
										
										
										
											2010-07-16 09:41:56 +02:00
										 |  |  |             SIGNAL(objectCreationRequested(QString,QObject*,QStringList,QString)), | 
					
						
							| 
									
										
										
										
											2011-01-12 12:27:12 +01:00
										 |  |  |             data.data(), SLOT(_q_createQmlObject(QString,QObject*,QStringList,QString))); | 
					
						
							| 
									
										
										
										
											2010-09-16 12:29:06 +02:00
										 |  |  |     connect(data->debugService, | 
					
						
							| 
									
										
										
										
											2010-08-26 17:38:31 +02:00
										 |  |  |             SIGNAL(objectReparentRequested(QObject *, QObject *)), | 
					
						
							| 
									
										
										
										
											2011-01-12 12:27:12 +01:00
										 |  |  |             data.data(), SLOT(_q_reparentQmlObject(QObject *, QObject *))); | 
					
						
							| 
									
										
										
										
											2010-11-23 10:51:02 +01:00
										 |  |  |     connect(data->debugService, SIGNAL(contextPathIndexChanged(int)), | 
					
						
							| 
									
										
										
										
											2011-01-12 12:27:12 +01:00
										 |  |  |             data.data(), SLOT(_q_changeContextPathIndex(int))); | 
					
						
							| 
									
										
										
										
											2010-11-23 10:51:02 +01:00
										 |  |  |     connect(data->debugService, SIGNAL(clearComponentCacheRequested()), | 
					
						
							| 
									
										
										
										
											2011-01-12 12:27:12 +01:00
										 |  |  |             data.data(), SLOT(_q_clearComponentCache())); | 
					
						
							| 
									
										
										
										
											2010-11-23 10:51:02 +01:00
										 |  |  |     connect(data->view, SIGNAL(statusChanged(QDeclarativeView::Status)), | 
					
						
							| 
									
										
										
										
											2011-01-12 12:27:12 +01:00
										 |  |  |             data.data(), SLOT(_q_onStatusChanged(QDeclarativeView::Status))); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-23 10:51:02 +01:00
										 |  |  |     connect(data->colorPickerTool, SIGNAL(selectedColorChanged(QColor)), | 
					
						
							|  |  |  |             SIGNAL(selectedColorChanged(QColor))); | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  |     connect(data->colorPickerTool, SIGNAL(selectedColorChanged(QColor)), | 
					
						
							| 
									
										
										
										
											2010-09-16 12:29:06 +02:00
										 |  |  |             data->debugService, SLOT(selectedColorChanged(QColor))); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-30 16:09:17 +02:00
										 |  |  |     connect(data->subcomponentEditorTool, SIGNAL(cleared()), SIGNAL(inspectorContextCleared())); | 
					
						
							| 
									
										
										
										
											2010-11-23 10:51:02 +01:00
										 |  |  |     connect(data->subcomponentEditorTool, SIGNAL(contextPushed(QString)), | 
					
						
							|  |  |  |             SIGNAL(inspectorContextPushed(QString))); | 
					
						
							|  |  |  |     connect(data->subcomponentEditorTool, SIGNAL(contextPopped()), | 
					
						
							|  |  |  |             SIGNAL(inspectorContextPopped())); | 
					
						
							|  |  |  |     connect(data->subcomponentEditorTool, SIGNAL(contextPathChanged(QStringList)), | 
					
						
							|  |  |  |             data->debugService, SLOT(contextPathUpdated(QStringList))); | 
					
						
							| 
									
										
										
										
											2010-07-30 16:09:17 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-03 09:45:11 +02:00
										 |  |  |     data->_q_changeToSingleSelectTool(); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | QDeclarativeViewObserver::~QDeclarativeViewObserver() | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-16 16:20:12 +02:00
										 |  |  | void QDeclarativeViewObserver::setObserverContext(int contextIndex) | 
					
						
							| 
									
										
										
										
											2010-07-30 16:09:17 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-07-30 17:19:28 +02:00
										 |  |  |     if (data->subcomponentEditorTool->contextIndex() != contextIndex) { | 
					
						
							|  |  |  |         QGraphicsObject *object = data->subcomponentEditorTool->setContext(contextIndex); | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |         if (object) | 
					
						
							| 
									
										
										
										
											2010-10-22 12:41:39 +02:00
										 |  |  |             setSelectedItems(QList<QGraphicsItem*>() << object); | 
					
						
							| 
									
										
										
										
											2010-07-30 17:19:28 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-07-30 16:09:17 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-28 14:39:54 +01:00
										 |  |  | void QDeclarativeViewObserverPrivate::_q_setToolBoxVisible(bool visible) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | #if !defined(Q_OS_SYMBIAN) && !defined(Q_WS_MAEMO_5)
 | 
					
						
							|  |  |  |     if (!toolBox && visible) | 
					
						
							|  |  |  |         createToolBox(); | 
					
						
							|  |  |  |     if (toolBox) | 
					
						
							|  |  |  |         toolBox->setVisible(visible); | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | void QDeclarativeViewObserverPrivate::_q_reloadView() | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |     subcomponentEditorTool->clear(); | 
					
						
							| 
									
										
										
										
											2010-07-13 12:03:21 +02:00
										 |  |  |     clearHighlight(); | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |     emit q->reloadRequested(); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-11 16:50:45 +01:00
										 |  |  | void QDeclarativeViewObserverPrivate::setViewport(QWidget *widget) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (viewport.data() == widget) | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     if (viewport) | 
					
						
							| 
									
										
										
										
											2010-11-22 16:15:08 +01:00
										 |  |  |         viewport.data()->removeEventFilter(q); | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-11 16:50:45 +01:00
										 |  |  |     viewport = widget; | 
					
						
							|  |  |  |     if (viewport) { | 
					
						
							|  |  |  |         // make sure we get mouse move events
 | 
					
						
							| 
									
										
										
										
											2010-11-22 16:15:08 +01:00
										 |  |  |         viewport.data()->setMouseTracking(true); | 
					
						
							|  |  |  |         viewport.data()->installEventFilter(q); | 
					
						
							| 
									
										
										
										
											2010-11-11 16:50:45 +01:00
										 |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | void QDeclarativeViewObserverPrivate::clearEditorItems() | 
					
						
							| 
									
										
										
										
											2010-07-14 17:47:43 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     clearHighlight(); | 
					
						
							|  |  |  |     setSelectedItems(QList<QGraphicsItem*>()); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | bool QDeclarativeViewObserver::eventFilter(QObject *obj, QEvent *event) | 
					
						
							| 
									
										
										
										
											2010-12-01 11:46:49 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     if (obj == data->view) { | 
					
						
							|  |  |  |         // Event from view
 | 
					
						
							|  |  |  |         if (event->type() == QEvent::ChildRemoved) { | 
					
						
							|  |  |  |             // Might mean that viewport has changed
 | 
					
						
							|  |  |  |             if (data->view->viewport() != data->viewport.data()) | 
					
						
							|  |  |  |                 data->setViewport(data->view->viewport()); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         return QObject::eventFilter(obj, event); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     // Event from viewport
 | 
					
						
							| 
									
										
										
										
											2010-12-01 11:46:49 +01:00
										 |  |  |     switch (event->type()) { | 
					
						
							|  |  |  |     case QEvent::Leave: { | 
					
						
							|  |  |  |         if (leaveEvent(event)) | 
					
						
							|  |  |  |             return true; | 
					
						
							|  |  |  |         break; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     case QEvent::MouseButtonPress: { | 
					
						
							|  |  |  |         if (mousePressEvent(static_cast<QMouseEvent*>(event))) | 
					
						
							|  |  |  |             return true; | 
					
						
							|  |  |  |         break; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     case QEvent::MouseMove: { | 
					
						
							|  |  |  |         if (mouseMoveEvent(static_cast<QMouseEvent*>(event))) | 
					
						
							|  |  |  |             return true; | 
					
						
							|  |  |  |         break; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     case QEvent::MouseButtonRelease: { | 
					
						
							|  |  |  |         if (mouseReleaseEvent(static_cast<QMouseEvent*>(event))) | 
					
						
							|  |  |  |             return true; | 
					
						
							|  |  |  |         break; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     case QEvent::KeyPress: { | 
					
						
							|  |  |  |         if (keyPressEvent(static_cast<QKeyEvent*>(event))) | 
					
						
							|  |  |  |             return true; | 
					
						
							|  |  |  |         break; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     case QEvent::KeyRelease: { | 
					
						
							|  |  |  |         if (keyReleaseEvent(static_cast<QKeyEvent*>(event))) | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |             return true; | 
					
						
							| 
									
										
										
										
											2010-12-01 11:46:49 +01:00
										 |  |  |         break; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     case QEvent::MouseButtonDblClick: { | 
					
						
							|  |  |  |         if (mouseDoubleClickEvent(static_cast<QMouseEvent*>(event))) | 
					
						
							|  |  |  |             return true; | 
					
						
							|  |  |  |         break; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     case QEvent::Wheel: { | 
					
						
							|  |  |  |         if (wheelEvent(static_cast<QWheelEvent*>(event))) | 
					
						
							|  |  |  |             return true; | 
					
						
							|  |  |  |         break; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     default: { | 
					
						
							|  |  |  |         break; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     } //switch
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // standard event processing
 | 
					
						
							|  |  |  |     return QObject::eventFilter(obj, event); | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | bool QDeclarativeViewObserver::leaveEvent(QEvent * /*event*/) | 
					
						
							| 
									
										
										
										
											2010-07-09 16:33:09 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |     if (!data->designModeBehavior) | 
					
						
							|  |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |     data->clearHighlight(); | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |     return true; | 
					
						
							| 
									
										
										
										
											2010-07-09 16:33:09 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | bool QDeclarativeViewObserver::mousePressEvent(QMouseEvent *event) | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |     if (!data->designModeBehavior) | 
					
						
							|  |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  |     data->cursorPos = event->pos(); | 
					
						
							|  |  |  |     data->currentTool->mousePressEvent(event); | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |     return true; | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | bool QDeclarativeViewObserver::mouseMoveEvent(QMouseEvent *event) | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |     if (!data->designModeBehavior) { | 
					
						
							|  |  |  |         data->clearEditorItems(); | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  |     data->cursorPos = event->pos(); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |     QList<QGraphicsItem*> selItems = data->selectableItems(event->pos()); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |     if (!selItems.isEmpty()) { | 
					
						
							| 
									
										
										
										
											2011-02-09 16:59:43 +01:00
										 |  |  |         declarativeView()->setToolTip(AbstractLiveEditTool::titleForItem(selItems.first())); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |     } else { | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |         declarativeView()->setToolTip(QString()); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |     } | 
					
						
							|  |  |  |     if (event->buttons()) { | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  |         data->subcomponentEditorTool->mouseMoveEvent(event); | 
					
						
							|  |  |  |         data->currentTool->mouseMoveEvent(event); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |     } else { | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  |         data->subcomponentEditorTool->hoverMoveEvent(event); | 
					
						
							|  |  |  |         data->currentTool->hoverMoveEvent(event); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |     return true; | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | bool QDeclarativeViewObserver::mouseReleaseEvent(QMouseEvent *event) | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |     if (!data->designModeBehavior) | 
					
						
							|  |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  |     data->subcomponentEditorTool->mouseReleaseEvent(event); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  |     data->cursorPos = event->pos(); | 
					
						
							|  |  |  |     data->currentTool->mouseReleaseEvent(event); | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |     return true; | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | bool QDeclarativeViewObserver::keyPressEvent(QKeyEvent *event) | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     if (!data->designModeBehavior) | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  |     data->currentTool->keyPressEvent(event); | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |     return true; | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | bool QDeclarativeViewObserver::keyReleaseEvent(QKeyEvent *event) | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     if (!data->designModeBehavior) | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     switch(event->key()) { | 
					
						
							|  |  |  |     case Qt::Key_V: | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |         data->_q_changeToSingleSelectTool(); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |         break; | 
					
						
							| 
									
										
										
										
											2010-08-26 16:31:06 +02:00
										 |  |  | // disabled because multiselection does not do anything useful without design mode
 | 
					
						
							|  |  |  | //    case Qt::Key_M:
 | 
					
						
							|  |  |  | //        data->_q_changeToMarqueeSelectTool();
 | 
					
						
							|  |  |  | //        break;
 | 
					
						
							| 
									
										
										
										
											2010-07-09 16:33:09 +02:00
										 |  |  |     case Qt::Key_I: | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |         data->_q_changeToColorPickerTool(); | 
					
						
							| 
									
										
										
										
											2010-07-09 16:33:09 +02:00
										 |  |  |         break; | 
					
						
							|  |  |  |     case Qt::Key_Z: | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |         data->_q_changeToZoomTool(); | 
					
						
							| 
									
										
										
										
											2010-07-09 16:33:09 +02:00
										 |  |  |         break; | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |     case Qt::Key_Enter: | 
					
						
							|  |  |  |     case Qt::Key_Return: | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |         if (!data->selectedItems().isEmpty()) | 
					
						
							|  |  |  |             data->subcomponentEditorTool->setCurrentItem(data->selectedItems().first()); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |         break; | 
					
						
							|  |  |  |     case Qt::Key_Space: | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  |         if (data->executionPaused) { | 
					
						
							|  |  |  |             continueExecution(data->slowdownFactor); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |         } else { | 
					
						
							|  |  |  |             pauseExecution(); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         break; | 
					
						
							|  |  |  |     default: | 
					
						
							|  |  |  |         break; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  |     data->currentTool->keyReleaseEvent(event); | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |     return true; | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-23 10:51:02 +01:00
										 |  |  | void QDeclarativeViewObserverPrivate::_q_createQmlObject(const QString &qml, QObject *parent, | 
					
						
							|  |  |  |                                                          const QStringList &importList, | 
					
						
							|  |  |  |                                                          const QString &filename) | 
					
						
							| 
									
										
										
										
											2010-07-16 09:41:56 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     if (!parent) | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QString imports; | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     foreach (const QString &s, importList) { | 
					
						
							| 
									
										
										
										
											2010-07-16 09:41:56 +02:00
										 |  |  |         imports += s + "\n"; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |     QDeclarativeContext *parentContext = view->engine()->contextForObject(parent); | 
					
						
							|  |  |  |     QDeclarativeComponent component(view->engine(), q); | 
					
						
							| 
									
										
										
										
											2010-07-16 09:41:56 +02:00
										 |  |  |     QByteArray constructedQml = QString(imports + qml).toLatin1(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     component.setData(constructedQml, filename); | 
					
						
							|  |  |  |     QObject *newObject = component.create(parentContext); | 
					
						
							|  |  |  |     if (newObject) { | 
					
						
							|  |  |  |         newObject->setParent(parent); | 
					
						
							| 
									
										
										
										
											2010-07-20 12:35:36 +02:00
										 |  |  |         QDeclarativeItem *parentItem = qobject_cast<QDeclarativeItem*>(parent); | 
					
						
							|  |  |  |         QDeclarativeItem *newItem    = qobject_cast<QDeclarativeItem*>(newObject); | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |         if (parentItem && newItem) | 
					
						
							| 
									
										
										
										
											2010-07-16 09:41:56 +02:00
										 |  |  |             newItem->setParentItem(parentItem); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | void QDeclarativeViewObserverPrivate::_q_reparentQmlObject(QObject *object, QObject *newParent) | 
					
						
							| 
									
										
										
										
											2010-08-26 17:38:31 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     if (!newParent) | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     object->setParent(newParent); | 
					
						
							|  |  |  |     QDeclarativeItem *newParentItem = qobject_cast<QDeclarativeItem*>(newParent); | 
					
						
							|  |  |  |     QDeclarativeItem *item    = qobject_cast<QDeclarativeItem*>(object); | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     if (newParentItem && item) | 
					
						
							| 
									
										
										
										
											2010-08-26 17:38:31 +02:00
										 |  |  |         item->setParentItem(newParentItem); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | void QDeclarativeViewObserverPrivate::_q_clearComponentCache() | 
					
						
							| 
									
										
										
										
											2010-08-03 14:07:30 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |     view->engine()->clearComponentCache(); | 
					
						
							| 
									
										
										
										
											2010-08-03 14:07:30 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-10-22 12:41:39 +02:00
										 |  |  | void QDeclarativeViewObserverPrivate::_q_removeFromSelection(QObject *obj) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     QList<QGraphicsItem*> items = selectedItems(); | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     if (QGraphicsItem *item = dynamic_cast<QGraphicsItem*>(obj)) | 
					
						
							| 
									
										
										
										
											2010-10-22 12:41:39 +02:00
										 |  |  |         items.removeOne(item); | 
					
						
							|  |  |  |     setSelectedItems(items); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | QGraphicsItem *QDeclarativeViewObserverPrivate::currentRootItem() const | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |     return subcomponentEditorTool->currentRootItem(); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | bool QDeclarativeViewObserver::mouseDoubleClickEvent(QMouseEvent *event) | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |     if (!data->designModeBehavior) | 
					
						
							|  |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2010-08-03 09:45:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (data->currentToolMode != Constants::SelectionToolMode | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |             && data->currentToolMode != Constants::MarqueeSelectionToolMode) | 
					
						
							|  |  |  |         return true; | 
					
						
							| 
									
										
										
										
											2010-08-03 09:45:11 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |     QGraphicsItem *itemToEnter = 0; | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |     QList<QGraphicsItem*> itemList = data->view->items(event->pos()); | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |     data->filterForSelection(itemList); | 
					
						
							| 
									
										
										
										
											2010-07-09 16:33:09 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |     if (data->selectedItems().isEmpty() && !itemList.isEmpty()) { | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |         itemToEnter = itemList.first(); | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |     } else if (!data->selectedItems().isEmpty() && !itemList.isEmpty()) { | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |         itemToEnter = itemList.first(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-09 16:33:09 +02:00
										 |  |  |     if (itemToEnter) | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  |         itemToEnter = data->subcomponentEditorTool->firstChildOfContext(itemToEnter); | 
					
						
							| 
									
										
										
										
											2010-07-09 16:33:09 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  |     data->subcomponentEditorTool->setCurrentItem(itemToEnter); | 
					
						
							|  |  |  |     data->subcomponentEditorTool->mouseDoubleClickEvent(event); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if ((event->buttons() & Qt::LeftButton) && itemToEnter) { | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |         if (QGraphicsObject *objectToEnter = itemToEnter->toGraphicsObject()) | 
					
						
							| 
									
										
										
										
											2010-10-22 12:41:39 +02:00
										 |  |  |             setSelectedItems(QList<QGraphicsItem*>() << objectToEnter); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |     return true; | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2010-08-26 17:11:17 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | bool QDeclarativeViewObserver::wheelEvent(QWheelEvent *event) | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |     if (!data->designModeBehavior) | 
					
						
							|  |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  |     data->currentTool->wheelEvent(event); | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |     return true; | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | void QDeclarativeViewObserverPrivate::enterContext(QGraphicsItem *itemToEnter) | 
					
						
							| 
									
										
										
										
											2010-08-26 17:11:17 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     QGraphicsItem *itemUnderCurrentContext = itemToEnter; | 
					
						
							|  |  |  |     if (itemUnderCurrentContext) | 
					
						
							|  |  |  |         itemUnderCurrentContext = subcomponentEditorTool->firstChildOfContext(itemToEnter); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (itemUnderCurrentContext) | 
					
						
							|  |  |  |         subcomponentEditorTool->setCurrentItem(itemToEnter); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | void QDeclarativeViewObserver::setDesignModeBehavior(bool value) | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-07-12 12:02:35 +02:00
										 |  |  |     emit designModeBehaviorChanged(value); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-22 14:51:31 +01:00
										 |  |  |     if (data->toolBar) | 
					
						
							|  |  |  |         data->toolBar->setDesignModeBehavior(value); | 
					
						
							| 
									
										
										
										
											2010-09-16 12:29:06 +02:00
										 |  |  |     data->debugService->setDesignModeBehavior(value); | 
					
						
							| 
									
										
										
										
											2010-07-12 12:02:35 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  |     data->designModeBehavior = value; | 
					
						
							|  |  |  |     if (data->subcomponentEditorTool) { | 
					
						
							|  |  |  |         data->subcomponentEditorTool->clear(); | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |         data->clearHighlight(); | 
					
						
							|  |  |  |         data->setSelectedItems(QList<QGraphicsItem*>()); | 
					
						
							| 
									
										
										
										
											2010-07-12 14:32:54 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |         if (data->view->rootObject()) | 
					
						
							|  |  |  |             data->subcomponentEditorTool->pushContext(data->view->rootObject()); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-07-14 17:47:43 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  |     if (!data->designModeBehavior) | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |         data->clearEditorItems(); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | bool QDeclarativeViewObserver::designModeBehavior() | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  |     return data->designModeBehavior; | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-23 10:07:09 +01:00
										 |  |  | bool QDeclarativeViewObserver::showAppOnTop() const | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return data->showAppOnTop; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void QDeclarativeViewObserver::setShowAppOnTop(bool appOnTop) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (data->view) { | 
					
						
							|  |  |  |         QWidget *rootWidget = data->view; | 
					
						
							|  |  |  |         while (rootWidget->parentWidget()) | 
					
						
							|  |  |  |             rootWidget = rootWidget->parentWidget(); | 
					
						
							|  |  |  |         Qt::WindowFlags flags = rootWidget->windowFlags(); | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |         if (appOnTop) | 
					
						
							| 
									
										
										
										
											2010-11-23 10:07:09 +01:00
										 |  |  |             flags |= Qt::WindowStaysOnTopHint; | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |         else | 
					
						
							| 
									
										
										
										
											2010-11-23 10:07:09 +01:00
										 |  |  |             flags &= ~Qt::WindowStaysOnTopHint; | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-23 10:07:09 +01:00
										 |  |  |         rootWidget->setWindowFlags(flags); | 
					
						
							|  |  |  |         rootWidget->show(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     data->showAppOnTop = appOnTop; | 
					
						
							|  |  |  |     data->debugService->setShowAppOnTop(appOnTop); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     emit showAppOnTopChanged(appOnTop); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-23 10:51:02 +01:00
										 |  |  | void QDeclarativeViewObserverPrivate::changeTool(Constants::DesignTool tool, | 
					
						
							|  |  |  |                                                  Constants::ToolFlags /*flags*/) | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     switch(tool) { | 
					
						
							|  |  |  |     case Constants::SelectionToolMode: | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |         _q_changeToSingleSelectTool(); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |         break; | 
					
						
							|  |  |  |     case Constants::NoTool: | 
					
						
							|  |  |  |     default: | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |         currentTool = 0; | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |         break; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | void QDeclarativeViewObserverPrivate::setSelectedItemsForTools(QList<QGraphicsItem *> items) | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-10-22 12:41:39 +02:00
										 |  |  |     foreach (QWeakPointer<QGraphicsObject> obj, currentSelection) { | 
					
						
							|  |  |  |         if (QGraphicsItem *item = obj.data()) { | 
					
						
							|  |  |  |             if (!items.contains(item)) { | 
					
						
							|  |  |  |                 QObject::disconnect(obj.data(), SIGNAL(destroyed(QObject*)), | 
					
						
							| 
									
										
										
										
											2011-01-12 12:27:12 +01:00
										 |  |  |                                     this, SLOT(_q_removeFromSelection(QObject*))); | 
					
						
							| 
									
										
										
										
											2010-10-22 12:41:39 +02:00
										 |  |  |                 currentSelection.removeOne(obj); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     foreach (QGraphicsItem *item, items) { | 
					
						
							| 
									
										
										
										
											2010-07-15 13:38:10 +02:00
										 |  |  |         if (item) { | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |             if (QGraphicsObject *obj = item->toGraphicsObject()) { | 
					
						
							| 
									
										
										
										
											2010-10-22 12:41:39 +02:00
										 |  |  |                 QObject::connect(obj, SIGNAL(destroyed(QObject*)), | 
					
						
							| 
									
										
										
										
											2011-01-12 12:27:12 +01:00
										 |  |  |                                  this, SLOT(_q_removeFromSelection(QObject*))); | 
					
						
							| 
									
										
										
										
											2010-10-22 12:41:39 +02:00
										 |  |  |                 currentSelection.append(obj); | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2010-07-15 13:38:10 +02:00
										 |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-10-22 12:41:39 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |     currentTool->updateSelectedItems(); | 
					
						
							| 
									
										
										
										
											2010-07-30 17:43:21 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | void QDeclarativeViewObserverPrivate::setSelectedItems(QList<QGraphicsItem *> items) | 
					
						
							| 
									
										
										
										
											2010-07-30 17:43:21 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-10-22 12:41:39 +02:00
										 |  |  |     QList<QWeakPointer<QGraphicsObject> > oldList = currentSelection; | 
					
						
							| 
									
										
										
										
											2010-07-30 17:43:21 +02:00
										 |  |  |     setSelectedItemsForTools(items); | 
					
						
							| 
									
										
										
										
											2010-10-22 12:41:39 +02:00
										 |  |  |     if (oldList != currentSelection) { | 
					
						
							|  |  |  |         QList<QObject*> objectList; | 
					
						
							|  |  |  |         foreach (QWeakPointer<QGraphicsObject> graphicsObject, currentSelection) { | 
					
						
							|  |  |  |             if (graphicsObject) | 
					
						
							|  |  |  |                 objectList << graphicsObject.data(); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         debugService->setCurrentObjects(objectList); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | QList<QGraphicsItem *> QDeclarativeViewObserverPrivate::selectedItems() | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-07-15 13:38:10 +02:00
										 |  |  |     QList<QGraphicsItem *> selection; | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     foreach (const QWeakPointer<QGraphicsObject> &selectedObject, currentSelection) { | 
					
						
							| 
									
										
										
										
											2010-10-22 12:41:39 +02:00
										 |  |  |         if (selectedObject.data()) | 
					
						
							| 
									
										
										
										
											2010-07-15 13:38:10 +02:00
										 |  |  |             selection << selectedObject.data(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return selection; | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | void QDeclarativeViewObserver::setSelectedItems(QList<QGraphicsItem *> items) | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     data->setSelectedItems(items); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | QList<QGraphicsItem *> QDeclarativeViewObserver::selectedItems() | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     return data->selectedItems(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | QDeclarativeView *QDeclarativeViewObserver::declarativeView() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return data->view; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void QDeclarativeViewObserverPrivate::clearHighlight() | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |     boundingRectHighlighter->clear(); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | void QDeclarativeViewObserverPrivate::highlight(QGraphicsObject * item, ContextFlags flags) | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-08-04 18:53:01 +02:00
										 |  |  |     highlight(QList<QGraphicsObject*>() << item, flags); | 
					
						
							| 
									
										
										
										
											2010-07-13 12:03:21 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | void QDeclarativeViewObserverPrivate::highlight(QList<QGraphicsObject *> items, ContextFlags flags) | 
					
						
							| 
									
										
										
										
											2010-07-13 12:03:21 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     if (items.isEmpty()) | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |         return; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-13 12:03:21 +02:00
										 |  |  |     QList<QGraphicsObject*> objectList; | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     foreach (QGraphicsItem *item, items) { | 
					
						
							| 
									
										
										
										
											2010-07-13 16:47:22 +02:00
										 |  |  |         QGraphicsItem *child = item; | 
					
						
							|  |  |  |         if (flags & ContextSensitive) | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |             child = subcomponentEditorTool->firstChildOfContext(item); | 
					
						
							| 
									
										
										
										
											2010-07-13 16:47:22 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-13 12:03:21 +02:00
										 |  |  |         if (child) { | 
					
						
							|  |  |  |             QGraphicsObject *childObject = child->toGraphicsObject(); | 
					
						
							|  |  |  |             if (childObject) | 
					
						
							|  |  |  |                 objectList << childObject; | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2010-07-09 16:33:09 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-07-13 12:03:21 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |     boundingRectHighlighter->highlight(objectList); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | bool QDeclarativeViewObserverPrivate::mouseInsideContextItem() const | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |     return subcomponentEditorTool->containsCursor(cursorPos.toPoint()); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-23 10:51:02 +01:00
										 |  |  | QList<QGraphicsItem*> QDeclarativeViewObserverPrivate::selectableItems( | 
					
						
							|  |  |  |     const QPointF &scenePos) const | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |     QList<QGraphicsItem*> itemlist = view->scene()->items(scenePos); | 
					
						
							| 
									
										
										
										
											2010-07-09 16:33:09 +02:00
										 |  |  |     return filterForCurrentContext(itemlist); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | QList<QGraphicsItem*> QDeclarativeViewObserverPrivate::selectableItems(const QPoint &pos) const | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |     QList<QGraphicsItem*> itemlist = view->items(pos); | 
					
						
							| 
									
										
										
										
											2010-07-09 16:33:09 +02:00
										 |  |  |     return filterForCurrentContext(itemlist); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-23 10:51:02 +01:00
										 |  |  | QList<QGraphicsItem*> QDeclarativeViewObserverPrivate::selectableItems( | 
					
						
							|  |  |  |     const QRectF &sceneRect, Qt::ItemSelectionMode selectionMode) const | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |     QList<QGraphicsItem*> itemlist = view->scene()->items(sceneRect, selectionMode); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-09 16:33:09 +02:00
										 |  |  |     return filterForCurrentContext(itemlist); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | void QDeclarativeViewObserverPrivate::_q_changeToSingleSelectTool() | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |     currentToolMode = Constants::SelectionToolMode; | 
					
						
							|  |  |  |     selectionTool->setRubberbandSelectionMode(false); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     changeToSelectTool(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |     emit q->selectToolActivated(); | 
					
						
							| 
									
										
										
										
											2010-09-16 12:29:06 +02:00
										 |  |  |     debugService->setCurrentTool(Constants::SelectionToolMode); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | void QDeclarativeViewObserverPrivate::changeToSelectTool() | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |     if (currentTool == selectionTool) | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |         return; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |     currentTool->clear(); | 
					
						
							|  |  |  |     currentTool = selectionTool; | 
					
						
							|  |  |  |     currentTool->clear(); | 
					
						
							|  |  |  |     currentTool->updateSelectedItems(); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | void QDeclarativeViewObserverPrivate::_q_changeToMarqueeSelectTool() | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     changeToSelectTool(); | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |     currentToolMode = Constants::MarqueeSelectionToolMode; | 
					
						
							|  |  |  |     selectionTool->setRubberbandSelectionMode(true); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |     emit q->marqueeSelectToolActivated(); | 
					
						
							| 
									
										
										
										
											2010-09-16 12:29:06 +02:00
										 |  |  |     debugService->setCurrentTool(Constants::MarqueeSelectionToolMode); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | void QDeclarativeViewObserverPrivate::_q_changeToZoomTool() | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |     currentToolMode = Constants::ZoomMode; | 
					
						
							|  |  |  |     currentTool->clear(); | 
					
						
							|  |  |  |     currentTool = zoomTool; | 
					
						
							|  |  |  |     currentTool->clear(); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |     emit q->zoomToolActivated(); | 
					
						
							| 
									
										
										
										
											2010-09-16 12:29:06 +02:00
										 |  |  |     debugService->setCurrentTool(Constants::ZoomMode); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | void QDeclarativeViewObserverPrivate::_q_changeToColorPickerTool() | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |     if (currentTool == colorPickerTool) | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |         return; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |     currentToolMode = Constants::ColorPickerMode; | 
					
						
							|  |  |  |     currentTool->clear(); | 
					
						
							|  |  |  |     currentTool = colorPickerTool; | 
					
						
							|  |  |  |     currentTool->clear(); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |     emit q->colorPickerActivated(); | 
					
						
							| 
									
										
										
										
											2010-09-16 12:29:06 +02:00
										 |  |  |     debugService->setCurrentTool(Constants::ColorPickerMode); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | void QDeclarativeViewObserverPrivate::_q_changeContextPathIndex(int index) | 
					
						
							| 
									
										
										
										
											2010-08-03 10:17:09 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     subcomponentEditorTool->setContext(index); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | void QDeclarativeViewObserver::changeAnimationSpeed(qreal slowdownFactor) | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  |     data->slowdownFactor = slowdownFactor; | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     if (data->slowdownFactor != 0) | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  |         continueExecution(data->slowdownFactor); | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     else | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |         pauseExecution(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | void QDeclarativeViewObserver::continueExecution(qreal slowdownFactor) | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     Q_ASSERT(slowdownFactor > 0); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  |     data->slowdownFactor = slowdownFactor; | 
					
						
							| 
									
										
										
										
											2010-07-12 14:32:54 +02:00
										 |  |  |     static const qreal animSpeedSnapDelta = 0.01f; | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-27 10:46:08 +02:00
										 |  |  |     qreal slowDownFactor = data->slowdownFactor; | 
					
						
							|  |  |  |     if (qAbs(1.0f - slowDownFactor) < animSpeedSnapDelta) { | 
					
						
							|  |  |  |         slowDownFactor = 1.0f; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QDeclarativeDebugHelper::setAnimationSlowDownFactor(slowDownFactor); | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  |     data->executionPaused = false; | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  |     emit executionStarted(data->slowdownFactor); | 
					
						
							| 
									
										
										
										
											2010-09-16 12:29:06 +02:00
										 |  |  |     data->debugService->setAnimationSpeed(data->slowdownFactor); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | void QDeclarativeViewObserver::pauseExecution() | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-09-27 10:46:08 +02:00
										 |  |  |     QDeclarativeDebugHelper::setAnimationSlowDownFactor(0.0f); | 
					
						
							| 
									
										
										
										
											2010-07-29 12:15:55 +02:00
										 |  |  |     data->executionPaused = true; | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     emit executionPaused(); | 
					
						
							| 
									
										
										
										
											2010-09-16 12:29:06 +02:00
										 |  |  |     data->debugService->setAnimationSpeed(0); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | void QDeclarativeViewObserverPrivate::_q_applyChangesFromClient() | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-23 10:51:02 +01:00
										 |  |  | QList<QGraphicsItem*> QDeclarativeViewObserverPrivate::filterForSelection( | 
					
						
							|  |  |  |     QList<QGraphicsItem*> &itemlist) const | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     foreach (QGraphicsItem *item, itemlist) { | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |         if (isEditorItem(item) || !subcomponentEditorTool->isChildOfContext(item)) | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |             itemlist.removeOne(item); | 
					
						
							| 
									
										
										
										
											2010-07-09 16:33:09 +02:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return itemlist; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-23 10:51:02 +01:00
										 |  |  | QList<QGraphicsItem*> QDeclarativeViewObserverPrivate::filterForCurrentContext( | 
					
						
							|  |  |  |     QList<QGraphicsItem*> &itemlist) const | 
					
						
							| 
									
										
										
										
											2010-07-09 16:33:09 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     foreach (QGraphicsItem *item, itemlist) { | 
					
						
							| 
									
										
										
										
											2010-07-09 16:33:09 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |         if (isEditorItem(item) || !subcomponentEditorTool->isDirectChildOfContext(item)) { | 
					
						
							| 
									
										
										
										
											2010-07-09 16:33:09 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |             // if we're a child, but not directly, replace with the parent that is directly in context.
 | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |             if (QGraphicsItem *contextParent = subcomponentEditorTool->firstChildOfContext(item)) { | 
					
						
							| 
									
										
										
										
											2010-07-14 14:21:10 +02:00
										 |  |  |                 if (contextParent != item) { | 
					
						
							|  |  |  |                     if (itemlist.contains(contextParent)) { | 
					
						
							|  |  |  |                         itemlist.removeOne(item); | 
					
						
							|  |  |  |                     } else { | 
					
						
							|  |  |  |                         itemlist.replace(itemlist.indexOf(item), contextParent); | 
					
						
							|  |  |  |                     } | 
					
						
							| 
									
										
										
										
											2010-07-09 16:33:09 +02:00
										 |  |  |                 } | 
					
						
							|  |  |  |             } else { | 
					
						
							| 
									
										
										
										
											2010-07-14 14:21:10 +02:00
										 |  |  |                 itemlist.removeOne(item); | 
					
						
							| 
									
										
										
										
											2010-07-09 16:33:09 +02:00
										 |  |  |             } | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return itemlist; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | bool QDeclarativeViewObserverPrivate::isEditorItem(QGraphicsItem *item) const | 
					
						
							| 
									
										
										
										
											2010-07-09 16:33:09 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     return (item->type() == Constants::EditorItemType | 
					
						
							| 
									
										
										
										
											2010-12-01 11:46:49 +01:00
										 |  |  |             || item->type() == Constants::ResizeHandleItemType | 
					
						
							|  |  |  |             || item->data(Constants::EditorItemDataKey).toBool()); | 
					
						
							| 
									
										
										
										
											2010-07-09 16:33:09 +02:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | void QDeclarativeViewObserverPrivate::_q_onStatusChanged(QDeclarativeView::Status status) | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     if (status == QDeclarativeView::Ready) { | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |         if (view->rootObject()) { | 
					
						
							| 
									
										
										
										
											2010-07-30 17:43:21 +02:00
										 |  |  |             if (subcomponentEditorTool->contextIndex() != -1) | 
					
						
							|  |  |  |                 subcomponentEditorTool->clear(); | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |             subcomponentEditorTool->pushContext(view->rootObject()); | 
					
						
							| 
									
										
										
										
											2010-07-30 12:56:25 +02:00
										 |  |  |             emit q->executionStarted(1.0f); | 
					
						
							| 
									
										
										
										
											2010-07-30 17:25:14 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2010-09-16 12:29:06 +02:00
										 |  |  |         debugService->reloaded(); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | void QDeclarativeViewObserverPrivate::_q_onCurrentObjectsChanged(QList<QObject*> objects) | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     QList<QGraphicsItem*> items; | 
					
						
							| 
									
										
										
										
											2010-08-04 18:53:01 +02:00
										 |  |  |     QList<QGraphicsObject*> gfxObjects; | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     foreach (QObject *obj, objects) { | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |         QDeclarativeItem* declarativeItem = qobject_cast<QDeclarativeItem*>(obj); | 
					
						
							| 
									
										
										
										
											2010-08-04 18:53:01 +02:00
										 |  |  |         if (declarativeItem) { | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |             items << declarativeItem; | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |             if (QGraphicsObject *gfxObj = declarativeItem->toGraphicsObject()) | 
					
						
							| 
									
										
										
										
											2010-08-04 18:53:01 +02:00
										 |  |  |                 gfxObjects << gfxObj; | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-10-14 14:14:56 +02:00
										 |  |  |     if (designModeBehavior) { | 
					
						
							|  |  |  |         setSelectedItemsForTools(items); | 
					
						
							|  |  |  |         clearHighlight(); | 
					
						
							|  |  |  |         highlight(gfxObjects, QDeclarativeViewObserverPrivate::IgnoreContext); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | QString QDeclarativeViewObserver::idStringForObject(QObject *obj) | 
					
						
							| 
									
										
										
										
											2010-07-26 15:31:59 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-09-16 12:29:06 +02:00
										 |  |  |     return QDeclarativeObserverService::instance()->idStringForObject(obj); | 
					
						
							| 
									
										
										
										
											2010-07-26 15:31:59 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-27 13:13:12 +02:00
										 |  |  | // adjusts bounding boxes on edges of screen to be visible
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  | QRectF QDeclarativeViewObserver::adjustToScreenBoundaries(const QRectF &boundingRectInSceneSpace) | 
					
						
							| 
									
										
										
										
											2010-07-27 13:13:12 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     int marginFromEdge = 1; | 
					
						
							|  |  |  |     QRectF boundingRect(boundingRectInSceneSpace); | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     if (qAbs(boundingRect.left()) - 1 < 2) | 
					
						
							| 
									
										
										
										
											2010-07-27 13:13:12 +02:00
										 |  |  |         boundingRect.setLeft(marginFromEdge); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |     QRect rect = data->view->rect(); | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (boundingRect.right() >= rect.right()) | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |         boundingRect.setRight(rect.right() - marginFromEdge); | 
					
						
							| 
									
										
										
										
											2010-07-27 13:13:12 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     if (qAbs(boundingRect.top()) - 1 < 2) | 
					
						
							| 
									
										
										
										
											2010-07-27 13:13:12 +02:00
										 |  |  |         boundingRect.setTop(marginFromEdge); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     if (boundingRect.bottom() >= rect.bottom()) | 
					
						
							| 
									
										
										
										
											2010-09-14 13:39:32 +02:00
										 |  |  |         boundingRect.setBottom(rect.bottom() - marginFromEdge); | 
					
						
							| 
									
										
										
										
											2010-07-27 13:13:12 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     return boundingRect; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-22 14:11:39 +01:00
										 |  |  | void QDeclarativeViewObserverPrivate::createToolBox() | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     toolBar = new QmlToolBar; | 
					
						
							| 
									
										
										
										
											2010-11-23 10:51:02 +01:00
										 |  |  |     QObject::connect(q, SIGNAL(selectedColorChanged(QColor)), | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |                      toolBar, SLOT(setColorBoxColor(QColor))); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-23 10:51:02 +01:00
										 |  |  |     QObject::connect(q, SIGNAL(designModeBehaviorChanged(bool)), | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |                      toolBar, SLOT(setDesignModeBehavior(bool))); | 
					
						
							| 
									
										
										
										
											2010-07-12 12:02:35 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     QObject::connect(toolBar, SIGNAL(designModeBehaviorChanged(bool)), | 
					
						
							| 
									
										
										
										
											2010-11-23 10:51:02 +01:00
										 |  |  |                      q, SLOT(setDesignModeBehavior(bool))); | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     QObject::connect(toolBar, SIGNAL(animationSpeedChanged(qreal)), | 
					
						
							| 
									
										
										
										
											2010-11-23 10:51:02 +01:00
										 |  |  |                      q, SLOT(changeAnimationSpeed(qreal))); | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     QObject::connect(toolBar, SIGNAL(colorPickerSelected()), this, SLOT(_q_changeToColorPickerTool())); | 
					
						
							|  |  |  |     QObject::connect(toolBar, SIGNAL(zoomToolSelected()), this, SLOT(_q_changeToZoomTool())); | 
					
						
							|  |  |  |     QObject::connect(toolBar, SIGNAL(selectToolSelected()), this, SLOT(_q_changeToSingleSelectTool())); | 
					
						
							|  |  |  |     QObject::connect(toolBar, SIGNAL(marqueeSelectToolSelected()), | 
					
						
							| 
									
										
										
										
											2011-01-12 12:27:12 +01:00
										 |  |  |                      this, SLOT(_q_changeToMarqueeSelectTool())); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     QObject::connect(toolBar, SIGNAL(applyChangesFromQmlFileSelected()), | 
					
						
							| 
									
										
										
										
											2011-01-12 12:27:12 +01:00
										 |  |  |                      this, SLOT(_q_applyChangesFromClient())); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     QObject::connect(q, SIGNAL(executionStarted(qreal)), toolBar, SLOT(setAnimationSpeed(qreal))); | 
					
						
							|  |  |  |     QObject::connect(q, SIGNAL(executionPaused()), toolBar, SLOT(setAnimationSpeed())); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     QObject::connect(q, SIGNAL(selectToolActivated()), toolBar, SLOT(activateSelectTool())); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     // disabled features
 | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     //connect(d->m_toolBar, SIGNAL(applyChangesToQmlFileSelected()), SLOT(applyChangesToClient()));
 | 
					
						
							|  |  |  |     //connect(q, SIGNAL(resizeToolActivated()), d->m_toolBar, SLOT(activateSelectTool()));
 | 
					
						
							|  |  |  |     //connect(q, SIGNAL(moveToolActivated()),   d->m_toolBar, SLOT(activateSelectTool()));
 | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     QObject::connect(q, SIGNAL(colorPickerActivated()), toolBar, SLOT(activateColorPicker())); | 
					
						
							|  |  |  |     QObject::connect(q, SIGNAL(zoomToolActivated()), toolBar, SLOT(activateZoom())); | 
					
						
							| 
									
										
										
										
											2010-11-23 10:51:02 +01:00
										 |  |  |     QObject::connect(q, SIGNAL(marqueeSelectToolActivated()), | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |                      toolBar, SLOT(activateMarqueeSelectTool())); | 
					
						
							| 
									
										
										
										
											2011-02-22 14:11:39 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     QVBoxLayout *verticalLayout = new QVBoxLayout; | 
					
						
							|  |  |  |     verticalLayout->setMargin(0); | 
					
						
							| 
									
										
										
										
											2011-02-22 14:23:57 +01:00
										 |  |  |     verticalLayout->addWidget(toolBar); | 
					
						
							| 
									
										
										
										
											2011-02-22 14:11:39 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-28 14:39:54 +01:00
										 |  |  |     toolBox = new QWidget(q->declarativeView(), Qt::Tool); | 
					
						
							| 
									
										
										
										
											2011-02-28 14:38:28 +01:00
										 |  |  |     toolBox->setWindowFlags((toolBox->windowFlags() & ~Qt::WindowCloseButtonHint) | 
					
						
							|  |  |  |                             | Qt::CustomizeWindowHint); | 
					
						
							| 
									
										
										
										
											2011-02-24 14:33:47 +01:00
										 |  |  |     toolBox->setWindowTitle(tr("Qt Quick Toolbox")); | 
					
						
							| 
									
										
										
										
											2011-02-22 14:11:39 +01:00
										 |  |  |     toolBox->setLayout(verticalLayout); | 
					
						
							| 
									
										
										
										
											2011-02-22 15:59:01 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     toolBox->restoreGeometry(settings->value(QLatin1String(KEY_TOOLBOX_GEOMETRY)).toByteArray()); | 
					
						
							| 
									
										
										
										
											2010-07-08 14:00:33 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-22 09:59:18 +02:00
										 |  |  | } //namespace QmlJSDebugger
 |