aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKai Koehne <kai.koehne@nokia.com>2010-11-23 10:07:09 +0100
committerKai Koehne <kai.koehne@nokia.com>2010-11-23 16:24:23 +0100
commitd2ed221b1bb483025064743777dda88338525eb8 (patch)
tree9e21174d3967685afb2937fc3f3d2eb9f1421ace
parente0811beef353ebfd10208e71c8c267c38738cbeb (diff)
QmlObserver: Add 'show app on top' switch to creator + qmlobserver
This is convenient especially in the observer mode. Reviewed-by: Christiaan Janssen
-rw-r--r--share/qtcreator/qml/qmljsdebugger/include/qdeclarativeobserverservice.h3
-rw-r--r--share/qtcreator/qml/qmljsdebugger/include/qdeclarativeviewobserver.h5
-rw-r--r--share/qtcreator/qml/qmljsdebugger/qdeclarativeobserverservice.cpp14
-rw-r--r--share/qtcreator/qml/qmljsdebugger/qdeclarativeviewobserver.cpp30
-rw-r--r--share/qtcreator/qml/qmljsdebugger/qdeclarativeviewobserver_p.h1
-rw-r--r--share/qtcreator/qml/qmlobserver/main.cpp1
-rw-r--r--share/qtcreator/qml/qmlobserver/qmlruntime.cpp13
-rw-r--r--share/qtcreator/qml/qmlobserver/qmlruntime.h2
-rw-r--r--src/plugins/qmljsinspector/images/app-on-top.pngbin0 -> 2902 bytes
-rw-r--r--src/plugins/qmljsinspector/qmlinspectortoolbar.cpp26
-rw-r--r--src/plugins/qmljsinspector/qmlinspectortoolbar.h6
-rw-r--r--src/plugins/qmljsinspector/qmljsclientproxy.cpp8
-rw-r--r--src/plugins/qmljsinspector/qmljsclientproxy.h2
-rw-r--r--src/plugins/qmljsinspector/qmljsinspector.cpp12
-rw-r--r--src/plugins/qmljsinspector/qmljsinspector.qrc1
-rw-r--r--src/plugins/qmljsinspector/qmljsinspectorconstants.h1
-rw-r--r--src/plugins/qmljsinspector/qmljsobserverclient.cpp21
-rw-r--r--src/plugins/qmljsinspector/qmljsobserverclient.h2
18 files changed, 144 insertions, 4 deletions
diff --git a/share/qtcreator/qml/qmljsdebugger/include/qdeclarativeobserverservice.h b/share/qtcreator/qml/qmljsdebugger/include/qdeclarativeobserverservice.h
index 66084cd92c..df4704fa83 100644
--- a/share/qtcreator/qml/qmljsdebugger/include/qdeclarativeobserverservice.h
+++ b/share/qtcreator/qml/qmljsdebugger/include/qdeclarativeobserverservice.h
@@ -68,6 +68,8 @@ public:
void setAnimationSpeed(qreal slowdownFactor);
void setCurrentTool(QmlJSDebugger::Constants::DesignTool toolId);
void reloaded();
+ void setShowAppOnTop(bool showAppOnTop);
+
QString idStringForObject(QObject *obj) const;
void sendMessage(const QByteArray &message);
@@ -81,6 +83,7 @@ Q_SIGNALS:
void currentObjectsChanged(const QList<QObject*> &objects);
void designModeBehaviorChanged(bool inDesignMode);
+ void showAppOnTopChanged(bool showAppOnTop);
void reloadRequested();
void selectToolRequested();
void selectMarqueeToolRequested();
diff --git a/share/qtcreator/qml/qmljsdebugger/include/qdeclarativeviewobserver.h b/share/qtcreator/qml/qmljsdebugger/include/qdeclarativeviewobserver.h
index e8f3194a81..3a81119e34 100644
--- a/share/qtcreator/qml/qmljsdebugger/include/qdeclarativeviewobserver.h
+++ b/share/qtcreator/qml/qmljsdebugger/include/qdeclarativeviewobserver.h
@@ -61,10 +61,14 @@ public:
static QString idStringForObject(QObject *obj);
QRectF adjustToScreenBoundaries(const QRectF &boundingRectInSceneSpace);
+ bool showAppOnTop() const;
+
public Q_SLOTS:
void setDesignModeBehavior(bool value);
bool designModeBehavior();
+ void setShowAppOnTop(bool appOnTop);
+
void changeAnimationSpeed(qreal slowdownFactor);
void continueExecution(qreal slowdownFactor = 1.0f);
void pauseExecution();
@@ -73,6 +77,7 @@ public Q_SLOTS:
Q_SIGNALS:
void designModeBehaviorChanged(bool inDesignMode);
+ void showAppOnTopChanged(bool showAppOnTop);
void reloadRequested();
void marqueeSelectToolActivated();
void selectToolActivated();
diff --git a/share/qtcreator/qml/qmljsdebugger/qdeclarativeobserverservice.cpp b/share/qtcreator/qml/qmljsdebugger/qdeclarativeobserverservice.cpp
index 114cd15cf6..5b052119f9 100644
--- a/share/qtcreator/qml/qmljsdebugger/qdeclarativeobserverservice.cpp
+++ b/share/qtcreator/qml/qmljsdebugger/qdeclarativeobserverservice.cpp
@@ -110,6 +110,10 @@ void QDeclarativeObserverService::messageReceived(const QByteArray &message)
bool inDesignMode;
ds >> inDesignMode;
emit designModeBehaviorChanged(inDesignMode);
+ } else if (type == "SHOW_APP_ON_TOP") {
+ bool showOnTop;
+ ds >> showOnTop;
+ emit showAppOnTopChanged(showOnTop);
} else if (type == "CREATE_OBJECT") {
QString qml;
int parentId;
@@ -207,6 +211,16 @@ void QDeclarativeObserverService::reloaded()
sendMessage(message);
}
+void QDeclarativeObserverService::setShowAppOnTop(bool showAppOnTop)
+{
+ QByteArray message;
+ QDataStream ds(&message, QIODevice::WriteOnly);
+
+ ds << QByteArray("SHOW_APP_ON_TOP") << showAppOnTop;
+
+ sendMessage(message);
+}
+
void QDeclarativeObserverService::selectedColorChanged(const QColor &color)
{
QByteArray message;
diff --git a/share/qtcreator/qml/qmljsdebugger/qdeclarativeviewobserver.cpp b/share/qtcreator/qml/qmljsdebugger/qdeclarativeviewobserver.cpp
index 3949bf7137..7063bec07a 100644
--- a/share/qtcreator/qml/qmljsdebugger/qdeclarativeviewobserver.cpp
+++ b/share/qtcreator/qml/qmljsdebugger/qdeclarativeviewobserver.cpp
@@ -57,6 +57,7 @@ const int SceneChangeUpdateInterval = 5000;
QDeclarativeViewObserverPrivate::QDeclarativeViewObserverPrivate(QDeclarativeViewObserver *q) :
q(q),
designModeBehavior(false),
+ showAppOnTop(false),
executionPaused(false),
slowdownFactor(1.0f),
toolbar(0)
@@ -87,6 +88,8 @@ QDeclarativeViewObserver::QDeclarativeViewObserver(QDeclarativeView *view, QObje
data->debugService = QDeclarativeObserverService::instance();
connect(data->debugService, SIGNAL(designModeBehaviorChanged(bool)),
SLOT(setDesignModeBehavior(bool)));
+ connect(data->debugService, SIGNAL(showAppOnTopChanged(bool)),
+ SLOT(setShowAppOnTop(bool)));
connect(data->debugService, SIGNAL(reloadRequested()), SLOT(_q_reloadView()));
connect(data->debugService, SIGNAL(currentObjectsChanged(QList<QObject*>)),
SLOT(_q_onCurrentObjectsChanged(QList<QObject*>)));
@@ -475,6 +478,33 @@ bool QDeclarativeViewObserver::designModeBehavior()
return data->designModeBehavior;
}
+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();
+ if (appOnTop) {
+ flags |= Qt::WindowStaysOnTopHint;
+ } else {
+ flags &= ~Qt::WindowStaysOnTopHint;
+ }
+ rootWidget->setWindowFlags(flags);
+ rootWidget->show();
+ }
+
+ data->showAppOnTop = appOnTop;
+ data->debugService->setShowAppOnTop(appOnTop);
+
+ emit showAppOnTopChanged(appOnTop);
+}
+
void QDeclarativeViewObserverPrivate::changeTool(Constants::DesignTool tool,
Constants::ToolFlags /*flags*/)
{
diff --git a/share/qtcreator/qml/qmljsdebugger/qdeclarativeviewobserver_p.h b/share/qtcreator/qml/qmljsdebugger/qdeclarativeviewobserver_p.h
index 7236e86298..fafa3794b7 100644
--- a/share/qtcreator/qml/qmljsdebugger/qdeclarativeviewobserver_p.h
+++ b/share/qtcreator/qml/qmljsdebugger/qdeclarativeviewobserver_p.h
@@ -83,6 +83,7 @@ public:
BoundingRectHighlighter *boundingRectHighlighter;
bool designModeBehavior;
+ bool showAppOnTop;
bool executionPaused;
qreal slowdownFactor;
diff --git a/share/qtcreator/qml/qmlobserver/main.cpp b/share/qtcreator/qml/qmlobserver/main.cpp
index baa0fb948e..86a8085cd0 100644
--- a/share/qtcreator/qml/qmlobserver/main.cpp
+++ b/share/qtcreator/qml/qmlobserver/main.cpp
@@ -422,6 +422,7 @@ int main(int argc, char ** argv)
viewer->enableExperimentalGestures();
viewer->setDesignModeBehavior(designModeBehavior);
+ viewer->setStayOnTop(stayOnTop);
foreach (QString lib, imports)
viewer->addLibraryPath(lib);
diff --git a/share/qtcreator/qml/qmlobserver/qmlruntime.cpp b/share/qtcreator/qml/qmlobserver/qmlruntime.cpp
index d35c18d4a9..03276350ae 100644
--- a/share/qtcreator/qml/qmlobserver/qmlruntime.cpp
+++ b/share/qtcreator/qml/qmlobserver/qmlruntime.cpp
@@ -755,6 +755,13 @@ void QDeclarativeViewer::createMenu()
connect(observer, SIGNAL(designModeBehaviorChanged(bool)), designModeBehaviorAction, SLOT(setChecked(bool)));
connect(QmlJSDebugger::QDeclarativeObserverService::instance(), SIGNAL(debuggingClientChanged(bool)), designModeBehaviorAction, SLOT(setEnabled(bool)));
+ appOnTopAction = new QAction(tr("Keep Window on Top"), this);
+ appOnTopAction->setCheckable(true);
+ appOnTopAction->setChecked(observer->showAppOnTop());
+
+ connect(appOnTopAction, SIGNAL(triggered(bool)), observer, SLOT(setShowAppOnTop(bool)));
+ connect(observer, SIGNAL(showAppOnTopChanged(bool)), appOnTopAction, SLOT(setChecked(bool)));
+
QAction *proxyAction = new QAction(tr("HTTP &Proxy..."), this);
connect(proxyAction, SIGNAL(triggered()), this, SLOT(showProxySettings()));
@@ -825,6 +832,7 @@ void QDeclarativeViewer::createMenu()
debugMenu->addAction(playSpeedAction);
debugMenu->addAction(showWarningsWindow);
debugMenu->addAction(designModeBehaviorAction);
+ debugMenu->addAction(appOnTopAction);
#endif // ! Q_OS_SYMBIAN
QMenu *settingsMenu = menu->addMenu(tr("S&ettings"));
@@ -1487,6 +1495,11 @@ void QDeclarativeViewer::setSizeToView(bool sizeToView)
}
}
+void QDeclarativeViewer::setStayOnTop(bool stayOnTop)
+{
+ appOnTopAction->setChecked(stayOnTop);
+}
+
void QDeclarativeViewer::setAnimationSpeed(float f)
{
QDeclarativeDebugHelper::setAnimationSlowDownFactor(f);
diff --git a/share/qtcreator/qml/qmlobserver/qmlruntime.h b/share/qtcreator/qml/qmlobserver/qmlruntime.h
index 7c30998dfc..b09d1b879b 100644
--- a/share/qtcreator/qml/qmlobserver/qmlruntime.h
+++ b/share/qtcreator/qml/qmlobserver/qmlruntime.h
@@ -107,6 +107,7 @@ public:
void setUseGL(bool use);
void setUseNativeFileBrowser(bool);
void setSizeToView(bool sizeToView);
+ void setStayOnTop(bool stayOnTop);
QDeclarativeView *view() const;
LoggerWidget *warningsWidget() const;
@@ -201,6 +202,7 @@ private:
QActionGroup *orientation;
QAction *showWarningsWindow;
QAction *designModeBehaviorAction;
+ QAction *appOnTopAction;
QString m_script;
ScriptOptions m_scriptOptions;
diff --git a/src/plugins/qmljsinspector/images/app-on-top.png b/src/plugins/qmljsinspector/images/app-on-top.png
new file mode 100644
index 0000000000..ddec5400c6
--- /dev/null
+++ b/src/plugins/qmljsinspector/images/app-on-top.png
Binary files differ
diff --git a/src/plugins/qmljsinspector/qmlinspectortoolbar.cpp b/src/plugins/qmljsinspector/qmlinspectortoolbar.cpp
index 6d828d82e8..0f91422577 100644
--- a/src/plugins/qmljsinspector/qmlinspectortoolbar.cpp
+++ b/src/plugins/qmljsinspector/qmlinspectortoolbar.cpp
@@ -65,6 +65,7 @@ QmlInspectorToolbar::QmlInspectorToolbar(QObject *parent) :
m_selectAction(0),
m_zoomAction(0),
m_colorPickerAction(0),
+ m_showAppOnTopAction(0),
m_defaultAnimSpeedAction(0),
m_halfAnimSpeedAction(0),
m_fourthAnimSpeedAction(0),
@@ -86,6 +87,7 @@ QmlInspectorToolbar::QmlInspectorToolbar(QObject *parent) :
void QmlInspectorToolbar::setEnabled(bool value)
{
m_fromQmlAction->setEnabled(value);
+ m_showAppOnTopAction->setEnabled(value);
m_observerModeAction->setEnabled(value);
m_playAction->setEnabled(value);
m_selectAction->setEnabled(value);
@@ -166,6 +168,13 @@ void QmlInspectorToolbar::setDesignModeBehavior(bool inDesignMode)
m_emitSignals = true;
}
+void QmlInspectorToolbar::setShowAppOnTop(bool showAppOnTop)
+{
+ m_emitSignals = false;
+ m_showAppOnTopAction->setChecked(showAppOnTop);
+ m_emitSignals = true;
+}
+
void QmlInspectorToolbar::createActions(const Core::Context &context)
{
Core::ICore *core = Core::ICore::instance();
@@ -174,6 +183,9 @@ void QmlInspectorToolbar::createActions(const Core::Context &context)
m_fromQmlAction =
new QAction(QIcon(QLatin1String(":/qml/images/from-qml-small.png")),
tr("Apply Changes on Save"), this);
+ m_showAppOnTopAction =
+ new QAction(QIcon(QLatin1String(":/qml/images/app-on-top.png")),
+ tr("Show application on top"), this);
m_observerModeAction =
new QAction(QIcon(QLatin1String(":/qml/images/observermode.png")),
tr("Observer Mode"), this);
@@ -191,6 +203,8 @@ void QmlInspectorToolbar::createActions(const Core::Context &context)
m_fromQmlAction->setCheckable(true);
m_fromQmlAction->setChecked(true);
+ m_showAppOnTopAction->setCheckable(true);
+ m_showAppOnTopAction->setChecked(false);
m_observerModeAction->setCheckable(true);
m_observerModeAction->setChecked(false);
m_selectAction->setCheckable(true);
@@ -203,6 +217,8 @@ void QmlInspectorToolbar::createActions(const Core::Context &context)
am->registerAction(m_zoomAction, QmlJSInspector::Constants::ZOOM_ACTION, context);
am->registerAction(m_colorPickerAction, QmlJSInspector::Constants::COLOR_PICKER_ACTION, context);
am->registerAction(m_fromQmlAction, QmlJSInspector::Constants::FROM_QML_ACTION, context);
+ am->registerAction(m_showAppOnTopAction,
+ QmlJSInspector::Constants::SHOW_APP_ON_TOP_ACTION, context);
m_barWidget = new Utils::StyledBar;
m_barWidget->setSingleRow(true);
@@ -250,6 +266,9 @@ void QmlInspectorToolbar::createActions(const Core::Context &context)
configBarLayout->addWidget(
createToolButton(am->command(QmlJSInspector::Constants::FROM_QML_ACTION)->action()));
+ configBarLayout->addWidget(
+ createToolButton(
+ am->command(QmlJSInspector::Constants::SHOW_APP_ON_TOP_ACTION)->action()));
configBarLayout->addSpacing(10);
configBarLayout->addWidget(
@@ -277,6 +296,7 @@ void QmlInspectorToolbar::createActions(const Core::Context &context)
setEnabled(false);
connect(m_fromQmlAction, SIGNAL(triggered()), SLOT(activateFromQml()));
+ connect(m_showAppOnTopAction, SIGNAL(triggered()), SLOT(showAppOnTopClick()));
connect(m_observerModeAction, SIGNAL(triggered()), SLOT(activateDesignModeOnClick()));
connect(m_playAction, SIGNAL(triggered()), SLOT(activatePlayOnClick()));
connect(m_colorPickerAction, SIGNAL(triggered()), SLOT(activateColorPickerOnClick()));
@@ -404,6 +424,12 @@ void QmlInspectorToolbar::activateZoomOnClick()
}
}
+void QmlInspectorToolbar::showAppOnTopClick()
+{
+ if (m_emitSignals)
+ emit showAppOnTopSelected(m_showAppOnTopAction->isChecked());
+}
+
void QmlInspectorToolbar::setSelectedColor(const QColor &color)
{
m_colorBox->setColor(color);
diff --git a/src/plugins/qmljsinspector/qmlinspectortoolbar.h b/src/plugins/qmljsinspector/qmlinspectortoolbar.h
index f643b45107..8252b11eae 100644
--- a/src/plugins/qmljsinspector/qmlinspectortoolbar.h
+++ b/src/plugins/qmljsinspector/qmlinspectortoolbar.h
@@ -80,6 +80,7 @@ public slots:
void activateZoomTool();
void setAnimationSpeed(qreal slowdownFactor);
void setDesignModeBehavior(bool inDesignMode);
+ void setShowAppOnTop(bool showAppOnTop);
void setSelectedColor(const QColor &color);
signals:
@@ -91,6 +92,7 @@ signals:
void selectToolSelected();
void zoomToolSelected();
+ void showAppOnTopSelected(bool isChecked);
void animationSpeedChanged(qreal slowdownFactor = 1.0f);
private slots:
@@ -100,6 +102,8 @@ private slots:
void activateSelectToolOnClick();
void activateZoomOnClick();
+ void showAppOnTopClick();
+
void changeToDefaultAnimSpeed();
void changeToHalfAnimSpeed();
void changeToFourthAnimSpeed();
@@ -119,6 +123,8 @@ private:
QAction *m_zoomAction;
QAction *m_colorPickerAction;
+ QAction *m_showAppOnTopAction;
+
QAction *m_defaultAnimSpeedAction;
QAction *m_halfAnimSpeedAction;
QAction *m_fourthAnimSpeedAction;
diff --git a/src/plugins/qmljsinspector/qmljsclientproxy.cpp b/src/plugins/qmljsinspector/qmljsclientproxy.cpp
index a26e15b8a6..26a5e46fdf 100644
--- a/src/plugins/qmljsinspector/qmljsclientproxy.cpp
+++ b/src/plugins/qmljsinspector/qmljsclientproxy.cpp
@@ -89,6 +89,8 @@ void ClientProxy::connectToServer()
SIGNAL(animationSpeedChanged(qreal)));
connect(m_observerClient, SIGNAL(designModeBehaviorChanged(bool)),
SIGNAL(designModeBehaviorChanged(bool)));
+ connect(m_observerClient, SIGNAL(showAppOnTopChanged(bool)),
+ SIGNAL(showAppOnTopChanged(bool)));
connect(m_observerClient, SIGNAL(reloaded()), this,
SIGNAL(serverReloaded()));
connect(m_observerClient, SIGNAL(selectedColorChanged(QColor)),
@@ -484,6 +486,12 @@ void ClientProxy::changeToSelectMarqueeTool()
m_observerClient->changeToSelectMarqueeTool();
}
+void ClientProxy::showAppOnTop(bool showOnTop)
+{
+ if (isConnected())
+ m_observerClient->showAppOnTop(showOnTop);
+}
+
void ClientProxy::createQmlObject(const QString &qmlText, int parentDebugId,
const QStringList &imports, const QString &filename)
{
diff --git a/src/plugins/qmljsinspector/qmljsclientproxy.h b/src/plugins/qmljsinspector/qmljsclientproxy.h
index 47e867863a..50f9e4ad21 100644
--- a/src/plugins/qmljsinspector/qmljsclientproxy.h
+++ b/src/plugins/qmljsinspector/qmljsclientproxy.h
@@ -100,6 +100,7 @@ signals:
void zoomToolActivated();
void animationSpeedChanged(qreal slowdownFactor);
void designModeBehaviorChanged(bool inDesignMode);
+ void showAppOnTopChanged(bool showAppOnTop);
void serverReloaded();
void selectedColorChanged(const QColor &color);
void contextPathUpdated(const QStringList &contextPath);
@@ -115,6 +116,7 @@ public slots:
void changeToZoomTool();
void changeToSelectTool();
void changeToSelectMarqueeTool();
+ void showAppOnTop(bool showOnTop);
void createQmlObject(const QString &qmlText, int parentDebugId,
const QStringList &imports, const QString &filename = QString());
void destroyQmlObject(int debugId);
diff --git a/src/plugins/qmljsinspector/qmljsinspector.cpp b/src/plugins/qmljsinspector/qmljsinspector.cpp
index a8690280dc..a9bd4ea35a 100644
--- a/src/plugins/qmljsinspector/qmljsinspector.cpp
+++ b/src/plugins/qmljsinspector/qmljsinspector.cpp
@@ -768,9 +768,9 @@ void InspectorUi::setupToolbar(bool doConnect)
m_clientProxy, SLOT(changeToSelectTool()));
connect(m_toolbar, SIGNAL(applyChangesFromQmlFileTriggered(bool)),
this, SLOT(setApplyChangesToQmlObserver(bool)));
+ connect(m_toolbar, SIGNAL(showAppOnTopSelected(bool)),
+ m_clientProxy, SLOT(showAppOnTop(bool)));
- connect(this, SIGNAL(livePreviewActivated(bool)),
- m_toolbar, SLOT(setLivePreviewChecked(bool)));
connect(m_clientProxy, SIGNAL(colorPickerActivated()),
m_toolbar, SLOT(activateColorPicker()));
connect(m_clientProxy, SIGNAL(selectToolActivated()),
@@ -779,6 +779,8 @@ void InspectorUi::setupToolbar(bool doConnect)
m_toolbar, SLOT(activateZoomTool()));
connect(m_clientProxy, SIGNAL(designModeBehaviorChanged(bool)),
m_toolbar, SLOT(setDesignModeBehavior(bool)));
+ connect(m_clientProxy, SIGNAL(showAppOnTopChanged(bool)),
+ m_toolbar, SLOT(setShowAppOnTop(bool)));
connect(m_clientProxy, SIGNAL(selectedColorChanged(QColor)),
m_toolbar, SLOT(setSelectedColor(QColor)));
@@ -804,9 +806,9 @@ void InspectorUi::setupToolbar(bool doConnect)
m_clientProxy, SLOT(changeToSelectTool()));
disconnect(m_toolbar, SIGNAL(applyChangesFromQmlFileTriggered(bool)),
this, SLOT(setApplyChangesToQmlObserver(bool)));
+ disconnect(m_toolbar, SIGNAL(showAppOnTopSelected(bool)),
+ m_clientProxy, SLOT(showAppOnTop(bool)));
- disconnect(this, SIGNAL(livePreviewActivated(bool)),
- m_toolbar, SLOT(setLivePreviewChecked(bool)));
disconnect(m_clientProxy, SIGNAL(colorPickerActivated()),
m_toolbar, SLOT(activateColorPicker()));
disconnect(m_clientProxy, SIGNAL(selectToolActivated()),
@@ -815,6 +817,8 @@ void InspectorUi::setupToolbar(bool doConnect)
m_toolbar, SLOT(activateZoomTool()));
disconnect(m_clientProxy, SIGNAL(designModeBehaviorChanged(bool)),
m_toolbar, SLOT(setDesignModeBehavior(bool)));
+ disconnect(m_clientProxy, SIGNAL(showAppOnTopChanged(bool)),
+ m_toolbar, SLOT(setShowAppOnTop(bool)));
disconnect(m_clientProxy, SIGNAL(selectedColorChanged(QColor)),
m_toolbar, SLOT(setSelectedColor(QColor)));
diff --git a/src/plugins/qmljsinspector/qmljsinspector.qrc b/src/plugins/qmljsinspector/qmljsinspector.qrc
index 9881cc0498..f1e4ceb212 100644
--- a/src/plugins/qmljsinspector/qmljsinspector.qrc
+++ b/src/plugins/qmljsinspector/qmljsinspector.qrc
@@ -19,5 +19,6 @@
<file>images/select-marquee-small.png</file>
<file>images/color-picker-small-hicontrast.png</file>
<file>images/observermode.png</file>
+ <file>images/app-on-top.png</file>
</qresource>
</RCC>
diff --git a/src/plugins/qmljsinspector/qmljsinspectorconstants.h b/src/plugins/qmljsinspector/qmljsinspectorconstants.h
index b5741b5474..ace17f0908 100644
--- a/src/plugins/qmljsinspector/qmljsinspectorconstants.h
+++ b/src/plugins/qmljsinspector/qmljsinspectorconstants.h
@@ -50,6 +50,7 @@ const char * const ZOOM_ACTION = "QmlInspector.Zoom";
const char * const COLOR_PICKER_ACTION = "QmlInspector.ColorPicker";
const char * const TO_QML_ACTION = "QmlInspector.ToQml";
const char * const FROM_QML_ACTION = "QmlInspector.FromQml";
+const char * const SHOW_APP_ON_TOP_ACTION = "QmlInspector.ShowAppOnTop";
// settings
const char * const S_QML_INSPECTOR = "QML.Inspector";
diff --git a/src/plugins/qmljsinspector/qmljsobserverclient.cpp b/src/plugins/qmljsinspector/qmljsobserverclient.cpp
index 2c63c719ce..cb0a53a8f7 100644
--- a/src/plugins/qmljsinspector/qmljsobserverclient.cpp
+++ b/src/plugins/qmljsinspector/qmljsobserverclient.cpp
@@ -107,6 +107,10 @@ void QmlJSObserverClient::messageReceived(const QByteArray &message)
bool inDesignMode;
ds >> inDesignMode;
emit designModeBehaviorChanged(inDesignMode);
+ } else if (type == "SHOW_APP_ON_TOP") {
+ bool showAppOnTop;
+ ds >> showAppOnTop;
+ emit showAppOnTopChanged(showAppOnTop);
} else if (type == "RELOADED") {
emit reloaded();
} else if (type == "COLOR_CHANGED") {
@@ -337,6 +341,23 @@ void QmlJSObserverClient::changeToZoomTool()
sendMessage(message);
}
+void QmlJSObserverClient::showAppOnTop(bool showOnTop)
+{
+ if (!m_connection || !m_connection->isConnected())
+ return;
+
+ QByteArray message;
+ QDataStream ds(&message, QIODevice::WriteOnly);
+
+ ds << QByteArray("SHOW_APP_ON_TOP")
+ << showOnTop;
+
+ if (debug)
+ qDebug() << "QmlJSObserverClient: Sending" <<"SHOWONTOP" << showOnTop;
+
+ sendMessage(message);
+}
+
void QmlJSObserverClient::createQmlObject(const QString &qmlText, int parentDebugId,
const QStringList &imports, const QString &filename)
{
diff --git a/src/plugins/qmljsinspector/qmljsobserverclient.h b/src/plugins/qmljsinspector/qmljsobserverclient.h
index 1e87bf94d3..318ad8c50b 100644
--- a/src/plugins/qmljsinspector/qmljsobserverclient.h
+++ b/src/plugins/qmljsinspector/qmljsobserverclient.h
@@ -62,6 +62,7 @@ public:
void changeToSelectTool();
void changeToSelectMarqueeTool();
void changeToZoomTool();
+ void showAppOnTop(bool showOnTop);
void createQmlObject(const QString &qmlText, int parentDebugId,
const QStringList &imports, const QString &filename);
@@ -90,6 +91,7 @@ signals:
void zoomToolActivated();
void animationSpeedChanged(qreal slowdownFactor);
void designModeBehaviorChanged(bool inDesignMode);
+ void showAppOnTopChanged(bool showAppOnTop);
void reloaded(); // the server has reloaded the document
void contextPathUpdated(const QStringList &path);