aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp8
-rw-r--r--src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp4
-rw-r--r--src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp2
-rw-r--r--src/plugins/qmldesigner/designersettings.cpp1
-rw-r--r--src/plugins/qmldesigner/designersettings.h5
-rw-r--r--src/plugins/qmldesigner/qmldesignerplugin.cpp13
-rw-r--r--src/plugins/qmldesigner/qmldesignerplugin.h2
7 files changed, 30 insertions, 5 deletions
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp
index 203798e4bf..4141f6b725 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp
@@ -366,7 +366,13 @@ QImage QuickItemNodeInstance::renderImage() const
QRectF renderBoundingRect = boundingRect();
- QImage renderImage = designerSupport()->renderImageForItem(quickItem(), renderBoundingRect, renderBoundingRect.size().toSize());
+ QSize size = renderBoundingRect.size().toSize();
+ static float devicePixelRatio = qgetenv("FORMEDITOR_DEVICE_PIXEL_RATIO").toDouble();
+ size *= devicePixelRatio;
+
+ QImage renderImage = designerSupport()->renderImageForItem(quickItem(), renderBoundingRect, size);
+
+ renderImage.setDevicePixelRatio(devicePixelRatio);
return renderImage;
}
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp
index 25885fc975..212541f077 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstance.cpp
@@ -25,10 +25,11 @@
#include "nodeinstance.h"
-#include <QPainter>
#include <modelnode.h>
+#include <qmldesignerplugin.h>
#include <QDebug>
+#include <QPainter>
QT_BEGIN_NAMESPACE
void qt_blurImage(QPainter *painter, QImage &blurImage, qreal radius, bool quality, bool alphaOnly, int transposed = 0);
@@ -397,6 +398,7 @@ QPixmap NodeInstance::blurredRenderPixmap() const
void NodeInstance::setRenderPixmap(const QImage &image)
{
d->renderPixmap = QPixmap::fromImage(image);
+ d->renderPixmap.setDevicePixelRatio(QmlDesignerPlugin::formEditorDevicePixelRatio());
d->blurredRenderPixmap = QPixmap();
}
diff --git a/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp b/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp
index 9fcab2e899..38fd35a5b0 100644
--- a/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp
@@ -414,6 +414,8 @@ QProcessEnvironment PuppetCreator::processEnvironment() const
environment.set(QLatin1String("QT_LABS_CONTROLS_STYLE"), controlsStyle);
}
+ environment.set(QLatin1String("FORMEDITOR_DEVICE_PIXEL_RATIO"), QString::number(QmlDesignerPlugin::formEditorDevicePixelRatio()));
+
const QString styleConfigFileName = getStyleConfigFileName();
/* QT_QUICK_CONTROLS_CONF is not supported for Qt Version < 5.8.1,
diff --git a/src/plugins/qmldesigner/designersettings.cpp b/src/plugins/qmldesigner/designersettings.cpp
index 54548e0913..b42e8556f8 100644
--- a/src/plugins/qmldesigner/designersettings.cpp
+++ b/src/plugins/qmldesigner/designersettings.cpp
@@ -71,6 +71,7 @@ void DesignerSettings::fromSettings(QSettings *settings)
restoreValue(settings, DesignerSettingsKey::DEBUG_PUPPET, QString());
restoreValue(settings, DesignerSettingsKey::FORWARD_PUPPET_OUTPUT, QString());
restoreValue(settings, DesignerSettingsKey::REFORMAT_UI_QML_FILES, true);
+ restoreValue(settings, DesignerSettingsKey::IGNORE_DEVICE_PIXEL_RATIO, false);
settings->endGroup();
settings->endGroup();
diff --git a/src/plugins/qmldesigner/designersettings.h b/src/plugins/qmldesigner/designersettings.h
index 37e835a41d..03e4de0398 100644
--- a/src/plugins/qmldesigner/designersettings.h
+++ b/src/plugins/qmldesigner/designersettings.h
@@ -57,10 +57,9 @@ const char ENABLE_MODEL_EXCEPTION_OUTPUT[] = "WarnException";
const char PUPPET_KILL_TIMEOUT[] = "PuppetKillTimeout";
const char DEBUG_PUPPET[] = "DebugPuppet";
const char FORWARD_PUPPET_OUTPUT[] = "ForwardPuppetOutput";
-const char REFORMAT_UI_QML_FILES[] = "ReformatUiQmlFiles"; /* This Setting is not exposed in ui.
- The setting can be used to turn off the feature,
- if there are serious issues */
const char STATESEDITOR_EXPANDED[] = "StatesEditorExpanded";
+const char REFORMAT_UI_QML_FILES[] = "ReformatUiQmlFiles"; /* These settings are not exposed in ui. */
+const char IGNORE_DEVICE_PIXEL_RATIO[] = "IgnoreDevicePixelRaio"; /* The settings can be used to turn off the feature, if there are serious issues */
}
class DesignerSettings : public QHash<QByteArray, QVariant>
diff --git a/src/plugins/qmldesigner/qmldesignerplugin.cpp b/src/plugins/qmldesigner/qmldesignerplugin.cpp
index 2c90414fa6..e5f2bc2338 100644
--- a/src/plugins/qmldesigner/qmldesignerplugin.cpp
+++ b/src/plugins/qmldesigner/qmldesignerplugin.cpp
@@ -67,6 +67,8 @@
#include <qplugin.h>
#include <QDebug>
#include <QProcessEnvironment>
+#include <QScreen>
+#include <QWindow>
Q_LOGGING_CATEGORY(qmldesignerLog, "qtc.qmldesigner")
@@ -483,6 +485,17 @@ void QmlDesignerPlugin::emitCurrentTextEditorChanged(Core::IEditor *editor)
d->blockEditorChange = false;
}
+double QmlDesignerPlugin::formEditorDevicePixelRatio()
+{
+ if (DesignerSettings::getValue(DesignerSettingsKey::IGNORE_DEVICE_PIXEL_RATIO).toBool())
+ return 1;
+
+ const QList<QWindow *> topLevelWindows = QApplication::topLevelWindows();
+ if (topLevelWindows.isEmpty())
+ return 1;
+ return topLevelWindows.first()->screen()->devicePixelRatio();
+}
+
QmlDesignerPlugin *QmlDesignerPlugin::instance()
{
return m_instance;
diff --git a/src/plugins/qmldesigner/qmldesignerplugin.h b/src/plugins/qmldesigner/qmldesignerplugin.h
index 6e4b8fb2de..1106c7d974 100644
--- a/src/plugins/qmldesigner/qmldesignerplugin.h
+++ b/src/plugins/qmldesigner/qmldesignerplugin.h
@@ -85,6 +85,8 @@ public:
void switchToTextModeDeferred();
void emitCurrentTextEditorChanged(Core::IEditor *editor);
+ static double formEditorDevicePixelRatio();
+
private: // functions
void integrateIntoQtCreator(QWidget *modeWidget);
void showDesigner();