From ebf0bf394af46b8a42e34cf1b38810d8a994725c Mon Sep 17 00:00:00 2001 From: Bradley Austin Davis Date: Fri, 5 Feb 2016 11:43:31 -0800 Subject: [PATCH] Fix native text rendering by forcing positions to integer values --- .../qml/{ => hifi}/dialogs/RunningScripts.qml | 37 ++++++++++++++----- interface/resources/qml/windows/Window.qml | 24 ++++++++++++ interface/src/Application.cpp | 4 +- libraries/gl/src/gl/OffscreenQmlSurface.h | 4 +- 4 files changed, 55 insertions(+), 14 deletions(-) rename interface/resources/qml/{ => hifi}/dialogs/RunningScripts.qml (90%) diff --git a/interface/resources/qml/dialogs/RunningScripts.qml b/interface/resources/qml/hifi/dialogs/RunningScripts.qml similarity index 90% rename from interface/resources/qml/dialogs/RunningScripts.qml rename to interface/resources/qml/hifi/dialogs/RunningScripts.qml index c9c9062bbd..f61bf3f96d 100644 --- a/interface/resources/qml/dialogs/RunningScripts.qml +++ b/interface/resources/qml/hifi/dialogs/RunningScripts.qml @@ -3,9 +3,9 @@ import QtQuick.Controls 1.4 import QtQuick.Dialogs 1.2 as OriginalDialogs import Qt.labs.settings 1.0 -import "../styles" as Hifi -import "../controls" as HifiControls -import "../windows" +import "../../styles" as Hifi +import "../../controls" as HifiControls +import "../../windows" Window { id: root @@ -19,12 +19,6 @@ Window { property var scripts: ScriptDiscoveryService; property var scriptsModel: scripts.scriptsModelFilter property var runningScriptsModel: ListModel { } - property var fileFilters: ListModel { - id: jsFilters - ListElement { text: "Javascript Files (*.js)"; filter: "*.js" } - ListElement { text: "All Files (*.*)"; filter: "*.*" } - } - Settings { category: "Overlay.RunningScripts" @@ -249,7 +243,30 @@ Window { } } model: scriptsModel - TableViewColumn { title: "Name"; role: "display"; } + + MouseArea { + anchors.fill: parent + acceptedButtons: Qt.RightButton + onClicked: treeView.foo(); + } + + function foo() { + var localRect = Qt.rect(0, 0, width, height); + var rect = desktop.mapFromItem(treeView, 0, 0, width, height) + console.log("Local Rect " + localRect) + console.log("Rect " + rect) + console.log("Desktop size " + Qt.size(desktop.width, desktop.height)); + } + + TableViewColumn { + title: "Name"; + role: "display"; +// delegate: Text { +// text: styleData.value +// renderType: Text.QtRendering +// elite: styleData.elideMode +// } + } } HifiControls.TextField { diff --git a/interface/resources/qml/windows/Window.qml b/interface/resources/qml/windows/Window.qml index ce1834d464..d7891da2ea 100644 --- a/interface/resources/qml/windows/Window.qml +++ b/interface/resources/qml/windows/Window.qml @@ -45,6 +45,30 @@ Fadable { // The content to place inside the window, determined by the client default property var content + property var rectifier: Timer { + property bool executing: false; + interval: 100 + repeat: false + running: false + + onTriggered: { + executing = true; + x = Math.floor(x); + y = Math.floor(y); + executing = false; + } + + function begin() { + if (!executing) { + restart(); + } + } + } + + + onXChanged: rectifier.begin(); + onYChanged: rectifier.begin(); + // This mouse area serves to raise the window. To function, it must live // in the window and have a higher Z-order than the content, but follow // the position and size of frame decoration diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index bf145d0e29..6db1b26db7 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -1260,7 +1260,7 @@ void Application::initializeUi() { auto resultVec = _compositor.screenToOverlay(toGlm(pt)); result = QPointF(resultVec.x, resultVec.y); } - return result; + return result.toPoint(); }); offscreenUi->resume(); connect(_window, &MainWindow::windowGeometryChanged, [this](const QRect& r){ @@ -4418,7 +4418,7 @@ bool Application::displayAvatarAttachmentConfirmationDialog(const QString& name) } void Application::toggleRunningScriptsWidget() { - static const QUrl url("dialogs/RunningScripts.qml"); + static const QUrl url("hifi/dialogs/RunningScripts.qml"); DependencyManager::get()->show(url, "RunningScripts"); //if (_runningScriptsWidget->isVisible()) { // if (_runningScriptsWidget->hasFocus()) { diff --git a/libraries/gl/src/gl/OffscreenQmlSurface.h b/libraries/gl/src/gl/OffscreenQmlSurface.h index fb916178ad..9e3ee06f92 100644 --- a/libraries/gl/src/gl/OffscreenQmlSurface.h +++ b/libraries/gl/src/gl/OffscreenQmlSurface.h @@ -35,7 +35,7 @@ public: OffscreenQmlSurface(); virtual ~OffscreenQmlSurface(); - using MouseTranslator = std::function; + using MouseTranslator = std::function; virtual void create(QOpenGLContext* context); void resize(const QSize& size); @@ -94,7 +94,7 @@ private: bool _polish{ true }; bool _paused{ true }; uint8_t _maxFps{ 60 }; - MouseTranslator _mouseTranslator{ [](const QPointF& p) { return p; } }; + MouseTranslator _mouseTranslator{ [](const QPointF& p) { return p.toPoint(); } }; };