From 8e2ef36e6054bd2b2c6dc247fef85f627b887893 Mon Sep 17 00:00:00 2001 From: Mahmoud Badri Date: Tue, 26 Nov 2019 11:25:12 +0200 Subject: [PATCH] Implement 3D edit view top controls UI Implement global/local, projection type, and default light controls UI. Also small tweaks: - Fixed ortho. camera near clipping - Grid color darkened a bit - Selection rect color changed to yellow Task-number: QDS-1250 Change-Id: I03cf2023ee1b8a6a0768e4dbf7d6fee621a25ce2 Reviewed-by: Miikka Heikkinen Reviewed-by: Thomas Hartmann --- .../qml/qmlpuppet/mockfiles/EditView3D.qml | 70 +++++++++--------- .../qml/qmlpuppet/mockfiles/HelperGrid.qml | 2 +- .../qml/qmlpuppet/mockfiles/SelectionBox.qml | 2 +- .../qml/qmlpuppet/mockfiles/ToggleButton.qml | 70 ++++++++++++++++++ .../mockfiles/images/edit_light_off.png | Bin 0 -> 1189 bytes .../mockfiles/images/edit_light_off@2x.png | Bin 0 -> 1430 bytes .../mockfiles/images/edit_light_on.png | Bin 0 -> 1355 bytes .../mockfiles/images/edit_light_on@2x.png | Bin 0 -> 1766 bytes .../qml/qmlpuppet/mockfiles/images/global.png | Bin 0 -> 433 bytes .../qmlpuppet/mockfiles/images/global@2x.png | Bin 0 -> 561 bytes .../qml/qmlpuppet/mockfiles/images/local.png | Bin 0 -> 1309 bytes .../qmlpuppet/mockfiles/images/local@2x.png | Bin 0 -> 1960 bytes .../qml/qmlpuppet/mockfiles/images/ortho.png | Bin 0 -> 1310 bytes .../qmlpuppet/mockfiles/images/ortho@2x.png | Bin 0 -> 1727 bytes .../qml/qmlpuppet/mockfiles/images/persp.png | Bin 0 -> 1391 bytes .../qmlpuppet/mockfiles/images/persp@2x.png | Bin 0 -> 1971 bytes share/qtcreator/qml/qmlpuppet/qmlpuppet.qrc | 13 ++++ 17 files changed, 122 insertions(+), 35 deletions(-) create mode 100644 share/qtcreator/qml/qmlpuppet/mockfiles/ToggleButton.qml create mode 100644 share/qtcreator/qml/qmlpuppet/mockfiles/images/edit_light_off.png create mode 100644 share/qtcreator/qml/qmlpuppet/mockfiles/images/edit_light_off@2x.png create mode 100644 share/qtcreator/qml/qmlpuppet/mockfiles/images/edit_light_on.png create mode 100644 share/qtcreator/qml/qmlpuppet/mockfiles/images/edit_light_on@2x.png create mode 100644 share/qtcreator/qml/qmlpuppet/mockfiles/images/global.png create mode 100644 share/qtcreator/qml/qmlpuppet/mockfiles/images/global@2x.png create mode 100644 share/qtcreator/qml/qmlpuppet/mockfiles/images/local.png create mode 100644 share/qtcreator/qml/qmlpuppet/mockfiles/images/local@2x.png create mode 100644 share/qtcreator/qml/qmlpuppet/mockfiles/images/ortho.png create mode 100644 share/qtcreator/qml/qmlpuppet/mockfiles/images/ortho@2x.png create mode 100644 share/qtcreator/qml/qmlpuppet/mockfiles/images/persp.png create mode 100644 share/qtcreator/qml/qmlpuppet/mockfiles/images/persp@2x.png diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/EditView3D.qml b/share/qtcreator/qml/qmlpuppet/mockfiles/EditView3D.qml index 837a01f4148..2200048fa5f 100644 --- a/share/qtcreator/qml/qmlpuppet/mockfiles/EditView3D.qml +++ b/share/qtcreator/qml/qmlpuppet/mockfiles/EditView3D.qml @@ -38,8 +38,8 @@ Window { flags: Qt.WindowStaysOnTopHint | Qt.Window | Qt.WindowTitleHint | Qt.WindowCloseButtonHint property alias scene: editView.importScene - property alias showEditLight: editLightCheckbox.checked - property alias usePerspective: usePerspectiveCheckbox.checked + property alias showEditLight: btnEditViewLight.toggled + property alias usePerspective: btnPerspective.toggled property Node selectedNode: null @@ -128,7 +128,7 @@ Window { targetNode: viewWindow.selectedNode position: viewWindow.selectedNode ? viewWindow.selectedNode.scenePosition : Qt.vector3d(0, 0, 0) - globalOrientation: globalControl.checked + globalOrientation: btnLocalGlobal.toggled visible: selectedNode && btnMove.selected view3D: overlayView @@ -158,7 +158,7 @@ Window { targetNode: viewWindow.selectedNode position: viewWindow.selectedNode ? viewWindow.selectedNode.scenePosition : Qt.vector3d(0, 0, 0) - globalOrientation: globalControl.checked + globalOrientation: btnLocalGlobal.toggled visible: selectedNode && btnRotate.selected view3D: overlayView @@ -241,7 +241,7 @@ Window { y: 600 rotation.x: 45 clipFar: 100000 - clipNear: 1 + clipNear: -10000 } } } @@ -399,39 +399,43 @@ Window { selectedNode : viewWindow.selectedNode ? selectionBox.model : null } - Item { - anchors.left: parent.left - anchors.bottom: parent.bottom - width: 200 - height: 120 + Rectangle { // top controls bar + color: "#aa000000" + width: 265 + height: btnPerspective.height + 10 + anchors.top: parent.top + anchors.right: parent.right + anchors.rightMargin: 100 - Rectangle { - anchors.fill: parent - color: "white" - opacity: 0.3 + ToggleButton { + id: btnPerspective + anchors.top: parent.top + anchors.topMargin: 5 + anchors.left: parent.left + anchors.leftMargin: 5 + tooltip: qsTr("Toggle Perspective / Orthographic Projection") + states: [{iconId: "ortho", text: qsTr("Orthographic")}, {iconId: "persp", text: qsTr("Perspective")}] } - Column { + ToggleButton { + id: btnLocalGlobal + anchors.top: parent.top + anchors.topMargin: 5 anchors.left: parent.left - anchors.bottom: parent.bottom - CheckBox { - id: editLightCheckbox - checked: false - text: qsTr("Use Edit View Light") - } + anchors.leftMargin: 100 + tooltip: qsTr("Toggle Global / Local Orientation") + states: [{iconId: "local", text: qsTr("Local")}, {iconId: "global", text: qsTr("Global")}] + } - CheckBox { - id: usePerspectiveCheckbox - checked: true - text: qsTr("Use Perspective Projection") - onCheckedChanged: _generalHelper.requestOverlayUpdate() - } - - CheckBox { - id: globalControl - checked: true - text: qsTr("Use Global Orientation") - } + ToggleButton { + id: btnEditViewLight + anchors.top: parent.top + anchors.topMargin: 5 + anchors.left: parent.left + anchors.leftMargin: 165 + toggleBackground: true + tooltip: qsTr("Toggle Edit Light") + states: [{iconId: "edit_light_off", text: qsTr("Edit Light Off")}, {iconId: "edit_light_on", text: qsTr("Edit Light On")}] } } diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/HelperGrid.qml b/share/qtcreator/qml/qmlpuppet/mockfiles/HelperGrid.qml index 54af572a7ba..2d70c0b95ce 100644 --- a/share/qtcreator/qml/qmlpuppet/mockfiles/HelperGrid.qml +++ b/share/qtcreator/qml/qmlpuppet/mockfiles/HelperGrid.qml @@ -45,7 +45,7 @@ Node { materials: [ DefaultMaterial { id: mainGridMaterial - emissiveColor: "#e6e6e6" + emissiveColor: "#cccccc" lighting: DefaultMaterial.NoLighting cullingMode: Material.DisableCulling } diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/SelectionBox.qml b/share/qtcreator/qml/qmlpuppet/mockfiles/SelectionBox.qml index 524f5688899..995b4badd80 100644 --- a/share/qtcreator/qml/qmlpuppet/mockfiles/SelectionBox.qml +++ b/share/qtcreator/qml/qmlpuppet/mockfiles/SelectionBox.qml @@ -57,7 +57,7 @@ Node { materials: [ DefaultMaterial { - emissiveColor: "#e5009e" + emissiveColor: "#fff600" lighting: DefaultMaterial.NoLighting cullingMode: Material.DisableCulling } diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/ToggleButton.qml b/share/qtcreator/qml/qmlpuppet/mockfiles/ToggleButton.qml new file mode 100644 index 00000000000..a0ebeabbd47 --- /dev/null +++ b/share/qtcreator/qml/qmlpuppet/mockfiles/ToggleButton.qml @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +****************************************************************************/ + +import QtQuick 2.12 +import QtQuick 2.0 +import QtQuick.Controls 2.0 + +Rectangle { + property bool toggled: false + property string tooltip + property bool toggleBackground: false // show a black background for the toggled state + property var states: [] // array of 2 state-objects, idx 0: untoggled, idx 1: toggled + + id: root + color: toggleBackground && toggled ? "#aa000000" : mouseArea.containsMouse ? "#44000000" : "#00000000" + width: img.width + txt.width + 5 + height: img.height + + Image { + id: img + anchors.verticalCenter: parent.verticalCenter + source: "qrc:///qtquickplugin/mockfiles/images/" + root.states[toggled ? 1 : 0].iconId + ".png" + } + + Text { + id: txt + color: "#b5b5b5" + anchors.verticalCenter: parent.verticalCenter + anchors.left: img.right + text: root.states[toggled ? 1 : 0].text + } + + ToolTip { + text: tooltip + visible: mouseArea.containsMouse + delay: 1000 + } + + MouseArea { + id: mouseArea + cursorShape: "PointingHandCursor" + hoverEnabled: true + anchors.fill: parent + onClicked: root.toggled = !root.toggled + } +} + + diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/images/edit_light_off.png b/share/qtcreator/qml/qmlpuppet/mockfiles/images/edit_light_off.png new file mode 100644 index 0000000000000000000000000000000000000000..73e6e92374b15f4b693ef5804309327c65a06253 GIT binary patch literal 1189 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuJoBuiW)N`mv#O3D+9QW+dm z@{>{(JaZG%Q-e|yQz{EjrrIztF!N`IM3hAM`dB6B=jtVb)aX^@7BGN-jeSKyVsdtB zi9%9pdS;%j()-=}l@u~lY?Z=IeGPmIoKrJ0J*tXQgRA^PlB=?lEmM^2?G$V(tSWK~ za#KqZ6)JLb@`|l0Y?Z*~TICg6frRyy6u?SKvTcwn`Gu2HtFf>sx zx70H)KM@pFf`UTFxEFT)-^P;GO)BVG*y5CB|8P1qLehNAQv~NT}3Hrwn`Z# zB?VUc`sL;2dgaD?`9ucqbpIn-onpfiKVyje1YYl>zP+vl9-pA3e%g3(Cds>ua$FA zYGO%#QAmD%4lMQpGV)9Ei!<^I6r7zE!ZY(y^2>`s;R+5kE0@%w%(B!Jx1#)91#rMv zWg=N_>0)GIZt7xcWM*k@Xlia@VPxoLY-wR`W?|s$Y+!7t1l5y*zXjWXkDm^&28sGc4pMq_I}YbleZpRcAi@Q*y#B{v+%Q1nW68zBR5&6%HY5gN(z}Nwo2iqz6QPp&Z!xh9#uuD!Bu`C$yM3OmMKd1b_zBXRu#Dg zxv3?I3Kh9IdBs*0wn|`gt@4VkK*IV;3ScEA*|tg$M@9GsC^+XAr7D=}nd&AR7@8=U zTk08_8k$%b>L?f)7#iyv80#Av>lzwa8CY5wnkqnnlAVH0QA(Oskc%7CuA-DQTcwPW zk^(Dz{qpj1y>er{{GxPyLrY6beFGzXBO~3Slr-Jq%Dj@q3f;V7Wta&rsl~}fnFS@8 z`FRQ;6BCp2OG|8(l%U2|bol2!OE0x2x;^|f-zPcF?(%`5SAu~n+bEznEJOtCUB zH#c=La5XhFFt#)_bak{eG_-WIa58kXG_y1{G&X_h^~@_SNz6-5h3U;i=rzHs*UGsl zHL)bWC?r2W2Nrt)8Tlpo#Toep3eL_7;hA|U`Q^o+a0LgNl}l<-W?5>ATTyF?VaXfv- zhRq)|`dd}rPq69MbnUpH^CU1V$jnU4OsplyEGOs94FO*@Gdb?0!x~~|E-bj>(~*+; zN#=j>{8`JaC(pcn#&Y|){dKjM=M+Di_y11u`JekF_a1+IF*7pIs@Gd;0^1VCOa~~{ z%9CY(AjeF5Z!Fs_2fiOnX4gb-)LPH-QQOB>GletEai!C3l^d*gA4DEey~3ZD@riqZ z%#x;(0PpezayE@(iPHo!17rhrc&Yv^Bob=~sETQK~Cju_ty} z#*>{bTpCtR64joDvzIsKcU{z4_xJGS1CmGo2pkg&-15<+z+t0#%f{L%X>SUR8}2sC z26!(Je!^g!QW=-4N@0JEmh0o{z6+UQI(99{wx2gI9%cVW@IP1GuuYcKfC|mf! zyfe9tdI3Don7(Wd_!Yo<&h@lg_yINvCQYulR~HESG%E*cZ`yBq_p$ojv{|A%muv|N zIrTldQP`#{PWXOM*W1-81q)jj{o_6IGqadG{EBwRQnuEFDcd~DZm9*_o+`$}(`?o1 z+?6{!Im+O{66apgFKePM1s{7EG`rI66vJip9hY4lJ}p1W5XHj(pw;jGh7$sA%sJMz stcDM4W5h3>w%@fB5=B>Dgf}oUJf4u1AFtuD6jV}ry85}Sb4q9e06~TX5dZ)H literal 0 HcmV?d00001 diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/images/edit_light_on.png b/share/qtcreator/qml/qmlpuppet/mockfiles/images/edit_light_on.png new file mode 100644 index 0000000000000000000000000000000000000000..7660c285460512ed0025dd1d64014fb5b661adaf GIT binary patch literal 1355 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuJoBuiW)N`mv#O3D+9QW+dm z@{>{(JaZG%Q-e|yQz{EjrrIztF!N`IM3hAM`dB6B=jtVb)aX^@7BGN-jeSKyVsdtB zi9%9pdS;%j()-=}l@u~lY?Z=IeGPmIoKrJ0J*tXQgRA^PlB=?lEmM^2?G$V(tSWK~ za#KqZ6)JLb@`|l0Y?Z*~TICg6frRyy6u?SKvTcwn`Gu2HtFf>sx zx70H)KM@pFf`UTFxEFT)-^P;GO)BVG*y5CB|8P1qLehNAQv~NT}3Hrwn`Z# zB?VUc`sL;2dgaD?`9ucqbpIn-onpfiKVyjezP+vl9-pA3e%g3&})EKua$FA zYGO%#QAmD%4lMQpGV)9Ei!<^I6r7zE!ZY(y^2>`s;R+5kE0@%w%(B!Jx1#)91#rMv zWg=N_>0)GIZt7xcWM*k@Xlia@VPxoLY-wR`W?|s$Y+!7t1l5y*2l`<&6)ovDqo6U@tD!eqQcsZl(7} zQ);%Kdy&7(`2U~a%|)+Y->H6Q`FvjW`=9Ug`;R7V%Q0)$J$?2P)5C%r+{R%wMY?Js zxuxtoXX#8`C#ZKP@4Neq#g>j)+RdarXleunL_JyfB9e3YYD_l@o z#GZBHQ*4Q9hjfJN_DO{^g;q#EWDK|2ap$t~B4M_TAD4u>N>~Z{MSgK*+IE2RueGn? zoX5r9+nKi=-5>Gph3UKrh3tn5c)~BJ?^ov5@{c*>#O&Y|eq!@d@?^H@)Ml`7DRF6-PIr7h{d$P1 zXky+WgYuRg&gN6z71y#=bM6XUSv>XP=4XOACtj@dxN&n$)w+{crk|BRw_KF{_y1on e(=XMrN-#uRHRzxA|JX-R@#g93=d#Wzp$P!*$nT2) literal 0 HcmV?d00001 diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/images/edit_light_on@2x.png b/share/qtcreator/qml/qmlpuppet/mockfiles/images/edit_light_on@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..836bd2a0d594e7a283a3f755ce6bb6817cad5562 GIT binary patch literal 1766 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?FHY5gN(z}Nwo2iqz6QPp&Z!xh9#uuD!Bu`C$yM3OmMKd1b_zBXRu#Dg zxv3?I3Kh9IdBs*0wn|`gt@4VkK*IV;3ScEA*|tg$M@9GsC^+XAr7D=}nd&AR7@8=U zTk08_8k$%b>L?f)7#iyv80#Av>lzwa8CY5wnkqnnlAVH0QA(Oskc%7CuA-DQTcwPW zk^(Dz{qpj1y>er{{GxPyLrY6beFGzXBO~3Slr-Jq%Dj@q3f;V7Wta&rsl~}fnFS@8 z`FRQ;6BCp2OG|8(l%U2|bol2!OE0x2x;^|f-zPcF?(%`5SAu~n+bEznEJOtCUB zHZ*s1b96K`Ft#)_baiwzH8pf`HE?pYbTv0Ma5aJH^~@_SNz6-5h3U;i=(WVF*UGsl zHL)bWC?r2W2Nrt)8Tlpo#Toep3eL_7;hA|U`Q^o+a0LgNl}l<-W?5>ATTyS zSEjm5xai^9z3Ju6@)zQK(?7qtTYbOwyGoe`-$>3Y9-mbC8;K`HfJhh6WNT})1T*J>eUTD0u&tcCLv?QXCA z{lR|GWt%;FHsrpuxp^^X?b#-)XX|>e^?qyB`Mb`eFe(0p@1z&Rk^K*mC`dd4j4>!{NO)*EL=qHmQ)=vM4Sz zJ3LXC$8gJPqe8hi?bVKdwJsJf3zxp-LQ$%>Yt ze|QoOonDdtBF6bMx97&UMiE^#moL6bSo3O!!~vJDK|NP)-d}cNyGLMf%yP{IE5(D3 z-3Z+mmf};uww3LhV1rhUYO04fZ%E5s&AcGdugpu{u2ht$3-vm-&SCk-+uLSbXXdG4 z*eaSeGogE-+PjGhKLng|kDYRR4o|EZ^Beczx9_Uz>;+#dmx!0W=YZo7ja|%z;`Y1&@|pJ!sdw(%=dr7wO{4sm>X-NREcSn9 s9r60R*gDnWRKpZTP3Ao(;u+Z(QtxvvdltR#G^pnBboFyt=akR{0OLWj0{{R3 literal 0 HcmV?d00001 diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/images/global.png b/share/qtcreator/qml/qmlpuppet/mockfiles/images/global.png new file mode 100644 index 0000000000000000000000000000000000000000..1bd09c680acf7f5310f22d04ef374ffef54345a4 GIT binary patch literal 433 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuJoD?D8sLp(a)PTsH2;wW<5 z-o<6nf(aKiT@+P>IISkl%>2Vq{&s3tca-z;PwW~VB8!|?PMhiZ#ATggiItV0iwT!t z%6XY;>)pjoP7f#N82#RtfA9A9r7 zNT%AW=>pHXhCSB(yY4+tuIes-ygMVg_|}bCZ!aGEw(BidP(GXDuSVtEobm(D-8q$h zHEc2~I}u!`>F6RJaO&2YS-M4j?Ot8&Gjh-UJsRlEm-J5dT-Z}q4J}PGXHg#J-?wg< ziPtbhu;(>iK2kh!NA=?`QkSlk98sOgxUEsxK~r;{@YQDxncu7Ud^9xm_D@j_T= zE8FCQ!c!U|RgdmnzGRDrpLzlBoyt?{yVvcy^5CnG%ak7$GWf@PVN@2h%!85kHCJYD@<);T3K0RZmQyXgP` literal 0 HcmV?d00001 diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/images/global@2x.png b/share/qtcreator/qml/qmlpuppet/mockfiles/images/global@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a2a857fb10cb935e127fe65d0263ed0fcb7ef423 GIT binary patch literal 561 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4rT@hhJ-tuTNxM_<_GwMxH2#>?Ag0-&>~aQ zg-00}7)(ln{DK)6nV31b1Vlt7l~r|g^$kretZW^eeEkE1^9o9;8~P?pn?7^R+TBNw zoj8B(`mNiqzy19C@8g?KS_}+~yq+$OAs)xyPVo#r6qbfg%qJToP9PQ`M&n)esHw+6ZM9gTf4y}z{R)#Uvr9Be+N-)GQ2_cMXj;oqAX z?{zgUY|lH?BYShHcikEJmkX@zPkm>(HurUhsj1an|9nwa=bsAX{lh% ztxqbw$25D*XMESbcY2S>`DuqLTGns4W;fxs9g~CD-1MCMDT*1d?KRpqHiai2*v1*k zw86%(Wy@3XDL?14C%3MRUN_G>M0nCQ>qA*QxA!xYIa_k{xz+bO$Xc50&${huDF4)- Rmw|zS!PC{xWt~$(69AmUAF==d literal 0 HcmV?d00001 diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/images/local.png b/share/qtcreator/qml/qmlpuppet/mockfiles/images/local.png new file mode 100644 index 0000000000000000000000000000000000000000..0a608f6816e62e1942a668cbe66f2745db13e623 GIT binary patch literal 1309 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuJoBuiW)N`mv#O3D+9QW+dm z@{>{(JaZG%Q-e|yQz{EjrrIztFe_$;M3hAM`dB6B=jtVb)aX^@7BGN-jeSKyVsdtB zi9%9pdS;%j()-=}l@u~lY?Z=IeGPmIoKrJ0J*tXQgRA^PlB=?lEmM^2?G$V(tSWK~ za#KqZ6)JLb@`|l0Y?Z*~TICg6frRyy6u?SKvTcwn`Gu2HtFf>sx zx70H)KM@pFf`UTFxEFT)-^P;GO)BVG*y5CB|8P1qLehNAQv~NT}3Hrwn`Z# zB?VUc`sL;2dgaD?`9ucqbpIn-onpfiKVyjezP+vl9-pA3e%g3(Cds>ua$FA zYGO%#QAmD%4lMQpGV)9Ei!<^I6r7zEG{Q6UQu51-H9;W@4mK;7)S}F?)D*X({9FZa z&{$<+vEJ0k*wNI`%)-FU!W`suM{`FQL22%>BK2jvr}%8i$qcrm;Yg&!g^C9Xi<#UNvBh7lVXI#PAt`lxUn)aqDM_< z=@joG$@{_kS6*(pC;47y&M%Ynb927iyx(ctt1iKF?C7Q=$B*tfV&jlharoiI!WFZ6 zm|`9(PjZxgwYM)Vf$jd0hNhkSTuL>LZb-Y>>|@TnCGu;H&tpdC`diFXl`7W0f2MPP zrtTrhppT2btzeq5-T&b3Uq1p{mtU|;l3D$zzoc{4gUbuvYB+BE`kQl-L7R8&d$*-= zZ>}@EeBs>MwC1r?aM*nFFRSM@M4d@E;@RNNo3nm>E{JUY_+MAC`Q*DR?21d|eX?#G zu*tf^@gR8Bw%=11hE_lEGK<~zihG5d-nP3ZmMwd;n0xoGlt9t*`~Qc3R6W43TsinZ Tf0y}6P=V#?>gTe~DWM4fMkwDG literal 0 HcmV?d00001 diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/images/local@2x.png b/share/qtcreator/qml/qmlpuppet/mockfiles/images/local@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a5c931e750fa19f3baaae1fd47679c4683d1ddd6 GIT binary patch literal 1960 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?FHY5gN(z}Nwo2iqz6QPp&Z!xh9#uuD!Bu`C$yM3OmMKd1b_zBXRu#Dg zxv3?I3Kh9IdBs*0wn|`gt@4VkK*IV;3ScEA*|tg$M@9GsC^+XAr7D=}nd&AR7@8=U zTk08_8k$%b>L?f)7#iyv80#Av>lzwa8CY5wnkqnnlAVH0QA(Oskc%7CuA-DQTcwPW zk^(Dz{qpj1y>er{{GxPyLrY6beFGzXBO~3Slr-Jq%Dj@q3f;V7Wta&rsl~}fnFS@8 z`FRQ;6BCp2OG|8(l%U2|bol2!OE0x2x;^|f-zPcF?(%`5SAu~n+bEznEJOtCVx zFn2aIH*zvGFg7(bbaiwzHg$0_H8wYJHgIw=uyBIu^~@_SNz6-5h3U;i=yk-a*UGsl zHL)bWC?r2W2Nrt)8Tlpo#Toep3eL_78sV9FDf#8anxK#c2b+~kYEfocYKmJ?ey##I zXsj}^S#MhftcVV2}+)J3W#){nwMg$RHS5YSEA}C&cMJT>*?YcQgQ3etef5;g(An( z?{pnG<#pJr>7v*Q9qn5Sx7c40oRcUl+TohZ`<8^pbPVxFH z8+0z1ZN5|_o4)LQm&24>lfPK!+({qZ?fBOATZzK7D|osNYJa$V!tSFggXYYadVR~ALpCtl zur6I7wWZyO(=&4o%g4NP(uWm39W2~%dWG9}Gv*+rZd;r0+7-N6j>a2Utr<>UtJ&c2 ze8-DVaUXb18rXFfZqKQC%2@N@ep;OH28LrR)q2XbTrWzl{CasoUt>h*bJymW35{Y4599^dGj?*VkDZ8}Mu4}if-n*-()ZUdpzMh|U zP@j9IwdRNEpB8rBJXKh%pZP$}oZsivR+S0Tv(oG~G8**H^4J)Wwc_am0crD#NB5?v z%zyCW>u#}2#)W(4EDn>})F7O06u}g>vGVx`Yhh{IW1R+j4k{*cr!c7f%Mks}z4J_0 zYv1{xx#5T1&a*_$aZw8mxRh_-6STN0?OFfnQ&t>m4azYLN3A68lzwR86Em>(T=m;S z@}6ms-|I-FZ0qo+B}~i1BzGKR*cEy`q*zOn@lWF8Z*0m8+~sMRfBx{quuhMe;%qH` zbm^4{-8=Kx{%q}{!@MaF*%P9w| z52k&X$bBhf)d|K|RoNQ*W(uqBnrf}}^lyOB{5qNHrE@3y+VQvFn!PjaR6@G&i8ZfS zZ_brvogLz=U?yUeko@+0fSQG|=K8mHBA*t%)?BrzcW)AZ8ru}z#7_3-M}seP2JAl3 zu(&za>C_(k)t|39THo%T(VEg1mc7B-Lw9EC^Q}&wYwe9gPR0e^Z&A4f5R&!!DVYzo)sFBg$8V?9{I`#{#>SlkPfq+Jy{&C36^1vwws^FNr+z|3Iw Wi<>>uV)AcL-RbG-=d#Wzp$Py!UjHrt literal 0 HcmV?d00001 diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/images/ortho.png b/share/qtcreator/qml/qmlpuppet/mockfiles/images/ortho.png new file mode 100644 index 0000000000000000000000000000000000000000..35b36203fa20ad34b5b48264723aa966b33786e9 GIT binary patch literal 1310 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuJoBuiW)N`mv#O3D+9QW+dm z@{>{(JaZG%Q-e|yQz{EjrrIztFe_$;M3hAM`dB6B=jtVb)aX^@7BGN-jeSKyVsdtB zi9%9pdS;%j()-=}l@u~lY?Z=IeGPmIoKrJ0J*tXQgRA^PlB=?lEmM^2?G$V(tSWK~ za#KqZ6)JLb@`|l0Y?Z*~TICg6frRyy6u?SKvTcwn`Gu2HtFf>sx zx70H)KM@pFf`UTFxEFT)-^P;GO)BVG*y5CB|8P1qLehNAQv~NT}3Hrwn`Z# zB?VUc`sL;2dgaD?`9ucqbpIn-onpfiKVyjegWv9>zP+vl9-pA3e%g3&})oWua$FA zYGO%#QAmD%4lMQpGV)9Ei!<^I6r7zEG{Q6UQu51-H9;W@4mK;7)S}F?)D*X({9FZa z&{$<+vEJFp$jH&i$;80T(iG%$CqpAwH#ZXt0~a?Vb5~1OC8*vMEZ&CdHN~k{-%i0s z9~7@h@eC6Ra&ZGO!ATO7Jna+^={_|t#a5|E$=)t9*6J4n1LI^*7srr_TW_v~%`l6+{QK3Ic**cs1JZtJgoe4`@Rl+9aJTdf`#mjv@>9OF` ztut674X*#cW?m}({oEYMw1qWaqwf@_pZh-d{k-aRv6oGvRg_POJ^b;TbJ1D0?c46A z9sXRfP@X+ZI4m@*WlvLu%pw;5h=UVVivDeJt*khzUUadkMrQ%%^Baz(7M!OF+FYkd z9h-01m~_Q+_p}F&bF!M`R<03@W$gNJA}eVr$MUQu$C`zVhds9bxGUkew1Zb=wb~AM zTfK{I+-pwHus6Hd&XhS(drJBO{hz##KP{O3@aPnuJ#8jS9v=zVx$KLafSroOy7Jb2 zsp=PbcR$>BH|LWB=bA^dmo-c@PkfJdZ@nkg{-HfQ>`j2LK=W;d&K_MUCpNhdVU@&l zOGN*5e!W(A;;WHcK%ezhmbDd)(Pf_N6PMeZa`CIY{8h;)RanEmx%SE;j@2)Y7^Xet zIC*HQ%Bf?eJKFE^vOP(C<)Gv?Q8{-d=j-YO!Rke_nll1_PX7CUvAoVcRtbjJt|6yA SzI_%2l~|sxelF{r5}E)fYu0}N literal 0 HcmV?d00001 diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/images/ortho@2x.png b/share/qtcreator/qml/qmlpuppet/mockfiles/images/ortho@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..443c73e444b195ca8aaf90f77707a87405bd379a GIT binary patch literal 1727 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 F1OV(@6C(fs literal 0 HcmV?d00001 diff --git a/share/qtcreator/qml/qmlpuppet/qmlpuppet.qrc b/share/qtcreator/qml/qmlpuppet/qmlpuppet.qrc index fcb510ccf08..c4a49064b60 100644 --- a/share/qtcreator/qml/qmlpuppet/qmlpuppet.qrc +++ b/share/qtcreator/qml/qmlpuppet/qmlpuppet.qrc @@ -24,6 +24,7 @@ mockfiles/ScaleRod.qml mockfiles/ScaleGizmo.qml mockfiles/ToolBarButton.qml + mockfiles/ToggleButton.qml mockfiles/RotateGizmo.qml mockfiles/RotateRing.qml mockfiles/SelectionBox.qml @@ -68,5 +69,17 @@ mockfiles/images/fit_active@2x.png mockfiles/images/fit_selected.png mockfiles/images/fit_selected@2x.png + mockfiles/images/local.png + mockfiles/images/local@2x.png + mockfiles/images/global.png + mockfiles/images/global@2x.png + mockfiles/images/ortho.png + mockfiles/images/ortho@2x.png + mockfiles/images/persp.png + mockfiles/images/persp@2x.png + mockfiles/images/edit_light_off.png + mockfiles/images/edit_light_off@2x.png + mockfiles/images/edit_light_on.png + mockfiles/images/edit_light_on@2x.png