From 7bcbf65ad66735fc4733f719e579421e7c470281 Mon Sep 17 00:00:00 2001
From: Lasse Holmstedt <lasse.holmstedt@nokia.com>
Date: Fri, 30 Jul 2010 11:48:05 +0200
Subject: [PATCH] QML Observer: Made toolbar and crumble path look better

Now the style is something similar to Qt Creator's default coloring.
---
 src/libs/qmljsdebugger/editor/crumblepath.cpp |  54 ++++++++++++------
 src/libs/qmljsdebugger/editor/editor.qrc      |   1 +
 .../editor/images/color-picker-hicontrast.png | Bin 0 -> 3206 bytes
 .../editor/images/color-picker.png            | Bin 3185 -> 3173 bytes
 .../qmljsdebugger/editor/images/from-qml.png  | Bin 3251 -> 3205 bytes
 .../qmljsdebugger/editor/images/pause.png     | Bin 3110 -> 3097 bytes
 src/libs/qmljsdebugger/editor/images/play.png | Bin 3367 -> 3363 bytes
 .../qmljsdebugger/editor/images/reload.png    | Bin 0 -> 3418 bytes
 .../editor/images/select-marquee.png          | Bin 2878 -> 2871 bytes
 .../qmljsdebugger/editor/images/select.png    | Bin 3359 -> 3308 bytes
 .../qmljsdebugger/editor/images/to-qml.png    | Bin 3271 -> 3227 bytes
 src/libs/qmljsdebugger/editor/images/zoom.png | Bin 3296 -> 3252 bytes
 src/libs/qmljsdebugger/editor/qmltoolbar.cpp  |   4 +-
 .../qmljsdebugger/editor/toolbarcolorbox.cpp  |   4 +-
 src/libs/qmljsdebugger/include/crumblepath.h  |   1 +
 src/tools/qml/qmlobserver/qml.pri             |   2 +
 src/tools/qml/qmlobserver/qmlruntime.cpp      |  11 +++-
 src/tools/qml/qmlobserver/qmlruntime.qrc      |   3 +-
 src/tools/qml/qmlobserver/toolbarstyle.css    |  28 +++++++++
 19 files changed, 82 insertions(+), 26 deletions(-)
 create mode 100644 src/libs/qmljsdebugger/editor/images/color-picker-hicontrast.png
 create mode 100644 src/libs/qmljsdebugger/editor/images/reload.png
 create mode 100644 src/tools/qml/qmlobserver/toolbarstyle.css

diff --git a/src/libs/qmljsdebugger/editor/crumblepath.cpp b/src/libs/qmljsdebugger/editor/crumblepath.cpp
index 4fdbfefc49d..00666cf5d2a 100644
--- a/src/libs/qmljsdebugger/editor/crumblepath.cpp
+++ b/src/libs/qmljsdebugger/editor/crumblepath.cpp
@@ -57,11 +57,10 @@ private:
 CrumblePathButton::CrumblePathButton(const QString &title, QWidget *parent)
     : QPushButton(title, parent)
 {
-    setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Fixed);
+    setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
     setToolTip(title);
     setMinimumHeight(24);
     setMaximumHeight(24);
-
     setStyleSheet(lastSegmentSheet(true));
 }
 
@@ -119,10 +118,14 @@ void CrumblePathButton::setSegmentType(int type)
 // CrumblePath
 //
 CrumblePath::CrumblePath(QWidget *parent) :
-    QWidget(parent)
+    QWidget(parent), m_background(new QWidget(this))
 {
-    setMinimumHeight(24);
-    setMaximumHeight(24);
+    setMinimumHeight(25);
+    setMaximumHeight(25);
+    setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Minimum);
+
+    m_background->setStyleSheet("QWidget { background-color:#2d2d2d;}");
+    m_background->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
 }
 
 CrumblePath::~CrumblePath()
@@ -159,12 +162,13 @@ void CrumblePath::popElement()
     last->setParent(0);
     last->deleteLater();
 
-    int segType = CrumblePathButton::MiddleSegment;
+    int segType = CrumblePathButton::MiddleSegment | CrumblePathButton::LastSegment;
     if (!m_buttons.isEmpty()) {
         if (m_buttons.length() == 1)
             segType = CrumblePathButton::FirstSegment | CrumblePathButton::LastSegment;
         m_buttons.last()->setSegmentType(segType);
     }
+    resizeButtons();
 }
 
 void CrumblePath::clear()
@@ -181,33 +185,45 @@ void CrumblePath::resizeEvent(QResizeEvent *)
 
 void CrumblePath::resizeButtons()
 {
-    int buttonWidth = 0;
-    if (m_buttons.length() > 1) {
+    int buttonMinWidth = 0;
+    int buttonMaxWidth = 0;
+    int totalWidthLeft = width();
+
+    if (m_buttons.length() >= 1) {
         QPoint nextElementPosition(0,0);
 
         m_buttons[0]->raise();
         // rearrange all items so that the first item is on top (added last).
         for(int i = 0; i < m_buttons.length() ; ++i) {
-            QWidget *button = m_buttons[i];
-            buttonWidth = (width() + ArrowBorderSize * m_buttons.length()) / m_buttons.length();
-            button->setMaximumWidth(buttonWidth);
-            button->setGeometry(QRect(nextElementPosition, QSize(buttonWidth, button->height())));
+            CrumblePathButton *button = m_buttons[i];
+
+            QFontMetrics fm(button->font());
+            buttonMinWidth = ArrowBorderSize + fm.width(button->text()) + ArrowBorderSize * 2 ;
+            buttonMaxWidth = (totalWidthLeft + ArrowBorderSize * (m_buttons.length() - i)) / (m_buttons.length() - i);
+
+            if (buttonMinWidth > buttonMaxWidth && i < m_buttons.length() - 1) {
+                buttonMinWidth = buttonMaxWidth;
+            } else if (i > 3 && (i == m_buttons.length() - 1)) {
+                buttonMinWidth = width() - nextElementPosition.x();
+                buttonMaxWidth = buttonMinWidth;
+            }
+
+            button->setMinimumWidth(buttonMinWidth);
+            button->setMaximumWidth(buttonMaxWidth);
+            button->move(nextElementPosition);
 
             nextElementPosition.rx() += button->width() - ArrowBorderSize;
+            totalWidthLeft -= button->width();
 
             button->show();
             if (i > 0)
                 button->stackUnder(m_buttons[i - 1]);
         }
 
-    } else if (m_buttons.length() == 1) {
-        QWidget *button = m_buttons[0];
-        int buttonWidth = 2 * width() / (3 * m_buttons.length());
-
-        button->setMaximumWidth(buttonWidth);
-        button->setGeometry(QRect(QPoint(0, 0), QSize(buttonWidth, button->height())));
-        button->show();
     }
+
+    m_background->setGeometry(0,0, width(), height());
+    m_background->update();
 }
 
 void CrumblePath::mapClickToIndex()
diff --git a/src/libs/qmljsdebugger/editor/editor.qrc b/src/libs/qmljsdebugger/editor/editor.qrc
index 0e72b9a0973..c3fa47c2891 100644
--- a/src/libs/qmljsdebugger/editor/editor.qrc
+++ b/src/libs/qmljsdebugger/editor/editor.qrc
@@ -16,5 +16,6 @@
         <file>images/segment-hover-end.png</file>
         <file>images/segment-hover.png</file>
         <file>images/segment-selected-end.png</file>
+        <file>images/color-picker-hicontrast.png</file>
     </qresource>
 </RCC>
diff --git a/src/libs/qmljsdebugger/editor/images/color-picker-hicontrast.png b/src/libs/qmljsdebugger/editor/images/color-picker-hicontrast.png
new file mode 100644
index 0000000000000000000000000000000000000000..95b88ac8f0a20ce091821002793d1cfc3302c0b2
GIT binary patch
literal 3206
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

literal 0
HcmV?d00001

diff --git a/src/libs/qmljsdebugger/editor/images/color-picker.png b/src/libs/qmljsdebugger/editor/images/color-picker.png
index 73d9ae3dfc40995337e3a0762831fa908e390120..026c31b3e1ddaaf4697b077ac693f3ad576b7023 100644
GIT binary patch
delta 467
zcmV;^0WALU808otiBL{Q4GJ0x0000DNk~Le0000G0000G2nGNE03Y-JVX+~f3V)DE
zL_t(|+G70w|33pIfQb~vo}Qkf+1c5;WEsHA%iHz;|NmF)?Ch87>+5?-GC)N|CHD94
z-=%NgzGZm(_ASH9moGzLaxBCcARr*%_x0;nhV$poGkp8@je(Dk?-YswjEsy}HQL(R
zPG)9iKF7z$=l%QlZw3|?7KTTU9)CUh`t@ruObz4z|NpTWz@(?Am&L@yG?|Hs>9>f8
z2<x9ee-?cD^lAP3_wV=JxpU_WTqTxhWMW`o;9jwEZ9rvJ^*LEt+5htL^55j;<!xZ<
zkukafObiSR+zS^j5Bl=;$GzWw{yq-~2sq5c!}FYnhewN$0Za@G4BT_)FMkhu|NiT}
zZ{L4Dd+_k_LTPDfNd^W6Wn>rQGJs>=g4F>pUwyjw@#D8=w{JgKBr7W`jviCE3}7}e
zG?jYz_`{XgZ$3Y}cK!Y$85vB?_zYk@e)3k{gU6pwT)cd5s+^p>IIc8;%K(;X)0Zg5
z#ivO#Ffj1oOJL{*z|sLD11JLnBLf4&e<)_aX8<x_q%=DN1^_N5|GHWeiHHCI002ov
JPDHLkV1faM<A(qM

delta 479
zcmV<50U-Y681Wb(iBL{Q4GJ0x0000DNk~Le0000O0000O2nGNE0N{5$_^~0M3V)nQ
zL_t(|+G70w|33pQ0TTm_!KekawZPNUQ#3m}TbCvl@bdC@{r~^}6+1iorTY5%UaDH4
zqM{P}`}gnCw{PDvynXwY;pNMhA-L4CkYj;>fPmlEuU{F?pFhv=?b|m7K0dxvBw4`7
z$cR<3t*z~3W@hGde0+S~zkmN`V1Hp@VR-cD(W9?lzZT=NfDv0x#$o}Jo}OM76BE;9
zCMKreA|fKJfByVg@afa1_3z)m-*@NEoi8}O`~Uxc42&h7xL2%P8&FwQeNI+Z_P@Nm
z{5N@dc^h2%QOqJ>0TTlQ1NXv(%Y(jr{c-R2pTExo0s;>6@bEn6;o;Gu)PDjd1_lQ1
zx$~C?y?_7p-nZ{RpFMc^c%ihkv?K!qgEGDlAl3qoc?(ttynOZP-p7yMp54CvV3Dk>
ztT=kYAlCwB14C1(hmSv8dHv?|vuoGyFOreLG@KF(SdX8)mG|KB=Mxt%-<v8YCohgG
zNt0^<%e3iB6yxI4q!}0(cr@^3NJ19i$_I=L3=E763=IFF7;iGi2N*}I%;9eVU;rx@
Vr!nZ&hN1uf002ovPDHLkV1h?=>s0^%

diff --git a/src/libs/qmljsdebugger/editor/images/from-qml.png b/src/libs/qmljsdebugger/editor/images/from-qml.png
index e3a6e24c1994c04a9a15513af6f94fd6ee159ee2..666382c06dde13aae6cf433729da5cb155cf095b 100644
GIT binary patch
delta 499
zcmV<P0Sx}L8HE`kiBL{Q4GJ0x0000DNk~Le0000G0000G2nGNE03Y-JVX+~f3V*Ok
zL_t(|+MJU?NEBfhhM#|TC#y9{S3&HO5J8=#po8p6La_%i@YJbO&?)FD(FPIdLADOk
zsUXljj9!#3g@Xiv<7~UM)-FMWx`J~_ciFAhndS4+ET+>SJ@8-t58nTMKmJz%y+9}a
zRDc~3`9%Pi#2?qT?RlV2MEKVU5`Pd8kxV9Y8|VQdegf)`z!$?Xs8lK~TbibkOeS$%
z*Phe$_mdM7no{cNYBsxa(0)rGDC6T)inac4Y`*wPv*F$`E$fvx3vmn<7ZwP|quiXl
z#hLDomsbV`9v*RUI0AsNw8Y13mWI=yJ#(IsjvMsWW9W}&STB4}o0fGyFn_{OJkIvm
zPeL(`(-+#gcJ3;d+b$AmhFO08mg1XFcO$LWd>lBA!=C*cRo?^PL)c`!Ym**g?1riU
zCt3oDMB<2pt#X+;U8h#7u{&BvDcCscu=TnGB_|C`2kyWlJvGI~;1AkPoh14WR8^js
zmNgC#=)hyGP++z^Pc$#k<Vc=rS<~Jua0edOhleRWE9P?5+=I`>qH)|V{6#*WPXV2N
pUpc6a2iXyk?ZcPKYt;X;KLBXvMQRH=6qW!0002ovPDHLkV1i#?;*9_R

delta 545
zcmV++0^a?F8M7H7iBL{Q4GJ0x0000DNk~Le0000O0000O2nGNE0N{5$_^~0M3V+^7
zL_t(|+U%9RYg17e#((FU+XO#~6%$G&h**Re99$|CGGq{h4E_O5odmN4$r3O^26sCg
z0xr4;S#)ubE@qHQi50R~#DE`H2=_{x5QpA;d0(fLDEYY6c2NAm8P4Ir!}D<7=O_{3
zFflk}{(gbL@J1;$56q3Z+X9**;(zW-K}7Zz5R=jL9mjbJEDYcGv-}E(h)Ahax&efN
zfL{SM{7jWnF%j7+m&>$Tt-W*8G)bjW^!t6svaBbWOlCbAja~(cTI<TBghmQXi#4Cm
zS9X?nmyES8((_id){hSK6*U@-rDlAWb1N}Iv!RFSbo%bT9Q+#5fLg7FZGYRioi^`o
zJ6xZ=MzlLm_3>+VK5egRtuucVQ8t@pZE+nrX>fG$ILl|Qa4~p+8PDY7v-fOo+Bdb<
z55~^HfN>6by&m1K9lUQI0I!Zz_<ZUM5fvt=Jb;;rgEk<UOpeY|Da@B9uH*8;+rU*&
zKP{ZtFbLE`t3c70z&Hm0xprKRLZQ(4-tmIR>H#iQ&Jt{!_q5h`rdGu?2LmFJ$kswT
zd^z^vJcei7(pndNb&($ji9~{UJici?x8542abIiw<{-N0C#uzI0hs%ps+iQK!!$+2
j_A`{~|Cjmi3;Y-WYu%loa*XW800000NkvXXu0mjfZiM^u

diff --git a/src/libs/qmljsdebugger/editor/images/pause.png b/src/libs/qmljsdebugger/editor/images/pause.png
index c5d33a2d04b7ae11b35e88e4ef8033057a809093..114d89b12bdca29a40dd90d6004b53d00d323257 100644
GIT binary patch
delta 390
zcmV;10eSwW7?~I$iBL{Q4GJ0x0000DNk~Le0000G0000G2nGNE03Y-JVX+~f3V%dN
zL_t(|+N6_BZo)7Sh2MmqRD`3D<8Xo^!Ge>p>as}fiZfK)fD6De0tganJC5gdQz~2p
zESQZwqw(kWMj9cBXQF++jPm?lM8@Zw<ot89nY<1LSM`tedV-4rNMe-dbi-k((`lu%
znHl9df5Ftn!g0B*xmx*Ap7Z>MB!7}iIkstl<B_N;jdU7AI7ig=m4z7Ky=qwo91bDs
zI-Qip0M_#63;@8^wOW9^{XT9iOQPRbbi2tzfCIEw6tRWFAt1|yX?kCQ^Ii?9FRC$M
zyA8;)1ZgVw6?jhz&;rp<-0f7dOwsAwx8PLaLV!_?0N+i6tSA(ZEZC-j5nDl5B$8@E
zK-)Q_yWM?2tqP+moqvE+(?}}>Nvi4rfD{`7TK@qdNaDSq-M&3UlJhT-F+%vu&*$5A
k8|}g+K%U*k1W(4#09at*Lxr&l`Tzg`07*qoM6N<$f)l>7FaQ7m

delta 403
zcmV;E0c`%67^WB@iBL{Q4GJ0x0000DNk~Le0000O0000O2nGNE0N{5$_^~0M3V%^a
zL_t(|+U%7vZo)tiMgJ_e9K{6<h>jz12Pz|_i3G<0C1touE&#X41q=vmXT4s}Op1tN
z6QL+rbo^$uGsWBaUz#OV#VuuUW8DFND!SBItyXWwnCyHPk@aG+m@SvfU-kKXKKnPo
z7?VA1Hf1~-5ys=*YZPSwX2zK8d4D);XfPo3`}DHiW&mbaSyZ<za5^c<Qi6uH3g;9}
z(=CJAdy%4G9FH6{s!G&apsuwWplPJ`UT`>sfTH-Gs;czrkk0@I$YY*|79Ed_G$l=v
zZUE=KSXFrt2?4tuBTWsGgt|@Oz1D!%K=4xC?}gG-5XS~-dVK~?1dbWDX=nn#XWIgK
zE;t-IhTOKW%&^RX6_y#!Ibgr<mO&!|D?%|*0I1rQddy_XvLis1YG(9)0+`8oPl%%H
xLl%+s$8;L(ob&lUnf$6>65W5aJD{_^1^^Eu&r2z@FslFn002ovPDHLkV1jUQt_1)9

diff --git a/src/libs/qmljsdebugger/editor/images/play.png b/src/libs/qmljsdebugger/editor/images/play.png
index af75fcdb6285032ce073ab90bb1648d19d372b3f..011598a746fda2fb68de10ee4233429e474b7908 100644
GIT binary patch
delta 658
zcmV;D0&V@L8lxH^iBL{Q4GJ0x0000DNk~Le0000G0000G2nGNE03Y-JVX+~f3V%*X
zL_t(|+LV(^NK|1I$ItiO@6KrI%rK5cLbMBwgl47?1;s}XgrFcOs1|{3dZ;TmZQMl=
z35imRAlewTZBdJS&?+glutkB9F}=*0=6Ua(`#sKS5lNDzp4Hi$AHQ=re?~-*>^=Yh
z5C8xPTd3KIm%sr4i0CpG%tyq&xqr!7wiO5m0ARo_whlG8yIXb+$2$|x5b?}rK>~ge
zb_Jt?n)@34{YM)PKEJ=v8i&LYG&sgB{$fJ|005;mNh(8KW5k@haY7!ubm(lTwq}Nq
zhP{$kwIRUs6qcl8JmZp2E;V)U(F0?>vh8?te|4m~L`Z|{t+fhpUDvpdXMb{j&Xkmc
z9y)|UO^467>Hb?6<i3`M>+#OS6e6Df6C{2&Kk`M50b+_YakPLC$k@hGmZHiXL3VPm
zM<w4hwLZQ(*&gpm)B(Wg8iQ=6VA9#V&SgtFRroBwIG@yVd0D6B3TD*`<}i)5dqbvY
zphIp8SB{{;?Q0COxq_0G1b?Y~CbbeuYb@#lMk}JCI#6SA$@#*=_x9U~C4mO7aEpIm
z1IQO0<8wtC4L1fsYqSUnj7GLNlL~x%l&+9Pbu;rVb2U~UQ-9r{?D~j86XT2+=fEw_
zFhvzhPctF+tA7s&M!Cgb$LeG2JQ4t)K{A?=l8Tu$31`|w^Gn59B4@h&YI^=bqAN-N
z{R1Hcx5*Zvci~#`q_SRrprQGxxpvO^_`il%4G3vGnu(mMN`=Buh7qOJH9KIZ6J5#8
sWr2vssun|t2JcwHTCfB5rqlRy015j|I=c?svj6}907*qoM6N<$g3z5RyZ`_I

delta 662
zcmV;H0%`rD8mAf|iBL{Q4GJ0x0000DNk~Le0000O0000O2nGNE0N{5$_^~0M3V%{b
zL_t(|+U(UkYg9oL0N^uoAG!O;F4-iTKnyCe45Tp;LX3)qAlN7<=r53{)w<belgiz_
zd)*=^+NBT-n15g+*oXuRNhN~Vh>*l}U-vmP=lBEk#x)N_aA2x|^Ks4@&S69Zhj}<0
z^7;1xAflfx06@K7HxDA#FEgmsYJUsBDXdnjw*i11c!@aYH(TdFd-?>{9mjcX+xGRn
zLUBD9mx++V*_|+X0jI5D^I5G{Tdh<o(+AdMAtgl=0OkWVaLI^9=Ce1F*~DAhw(EsL
zA+>M7_ap2^uJV;fA$eq-;PU8|p=e|(cW3O#Sl71gyS<bx7VunOd9JUTVSiI~g^NDA
z6zKuwW|H#w<<TfNk*PS2^Qu~{UfT_d1sbi6Y_(mr)!mlg{B6|;zpIXDQAf2=rUM*0
zmlER_2WL~mi8b4{7vkdRaSzQ#TX|qWMkcwCUoc39T3`)Q%1HBs*2fIZU|Qa!{?i)D
zm&QuDTz&xnTRj7fW?LA@A%7Afi=@znl-QAN%vm`-ZT4#xTAXjD4g6^6N~&8+OG{g&
zQmOY0S{+w$1td{%r4Xb<jgSBpG3`^*?E8?lA`c&KY`nR*zP>L0xI}>$B9J1+88Oa*
zYn<i%5$o93$&B9aTNNlDl}e@ezxze804XArNFov}74+*f?p!YKjcdL`#3#jKaSZ@^
zS|qW6rfb~NO?H-_8JKjZG9+oSP%JpT2Hq7=N<E)RoxD12p2`~1SaCh~!SeF*&R%9w
w9PoI~n8(l$pBC>IH}^A5+5esV*MT1c0HMG{t-WRwPXGV_07*qoM6N<$f|;T*?f?J)

diff --git a/src/libs/qmljsdebugger/editor/images/reload.png b/src/libs/qmljsdebugger/editor/images/reload.png
new file mode 100644
index 0000000000000000000000000000000000000000..7042bec9ae9f1076acd08e9fa72fda4f51118cfe
GIT binary patch
literal 3418
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

literal 0
HcmV?d00001

diff --git a/src/libs/qmljsdebugger/editor/images/select-marquee.png b/src/libs/qmljsdebugger/editor/images/select-marquee.png
index a28381f117653497bff3245a2712acd341b545f9..92fe40d1adc99326c9edb2c31d3dd7a042a04f0d 100644
GIT binary patch
delta 162
zcmdldwp~oIGr-TCmrII^fq{Y7)59eQNDF{42OE%-|NK93qvCw7@+40e$B>F!Zzg+l
zH5l-?#4mZCZIgAG`&jRkpjBdz4z+IPWO+7`U-_M%3+IBUT#>t>3~O$9OxwJz?wU@f
zi676M#%<i6yOuC2Rk0gb-st+{to<imL2g-H*SiJ%iA)nR=JYc%xJD`Rt$o$(2(*^L
M)78&qol`;+05ae@)&Kwi

delta 169
zcmdlkwogp4Gr-TCmrII^fq{Y7)59eQNK1e)2OE%lP;UEUqvCw7x=c?O$B>F!Nq_$T
zw`bO66lU%{xPq01k=xAiKSO=RnfyB&CJM&#a7ipQX^UzSdk}D@!&$S<m8F?uws!|Z
zkFthnVrM|of&YRcE{j)YR4i4RlPY*d+(XcB!-m6BpBINd`>-8o8^izq%nU9+m7HXc
Q<Z*!bp00i_>zopr0FXmDasU7T

diff --git a/src/libs/qmljsdebugger/editor/images/select.png b/src/libs/qmljsdebugger/editor/images/select.png
index 5b0376f6f7e0a725ff5d236a8767cf0d733eafd7..672285582b5cc30d0cfe457a20c2982e1b056a99 100644
GIT binary patch
delta 603
zcmV-h0;K()8tfS%iBL{Q4GJ0x0000DNk~Le0000G0000G2nGNE03Y-JVX+~f3V#<#
zL_t(|+KiGtXj4%bhM#M!Q6aJM53B*{Ag!d*DIEf#U{Q<EP8quC;*`OuxMVOxa4fhK
z910y`K+;-7O27_IDTQ=NjZ?V|^@ar7<c4$8T+B~Dm!yPXN?-UmoaH(1dEXBa0nh*^
z;Od+j7m$c>se759pZD(V?JfCyzJEzz7;tb=O6SGVd_JEmm&-;h7JCbf0$0y-BO+%2
zfRSV}`L)$*DG_Px?Cksq1OiWhTfpUu0B%I1(RZa%$r6zh5ouJb)ynen@_XPRaJ}D6
zKVWETYU=6!{=QYO*OiFWMdYuDG_%=kW_EV=1#q|5O+P>b#?$Ha!SV62)qifcm59_t
z#1@f;ZQHfg)zuFjH`f5I9{_Ma9*=Jpi$$x^Xebd;B4TwwH4!;64CDL4!oo-w&>v1s
z*Y(|CFc@sN+c+E!04bG9Rw9x3l1in%ZEbD+0?hsz&vNkl{m*n=uPLQ0+qRWq7)MH}
zqq(`cSHR8QApiFT4H)0v-hV!*R4P_Fo!%WA8+%<S6n^Wvp7nS<kAW-a0RX%k8ylO4
zhlhngAn+XUMk0~LX0usMrBa^&Z+A-v0fyu8_~QEddIY%BsqMkq+S=#S(^D0VM&AIQ
zK`j6bg~Q={6B84jp3a?aw|g>|%l$M>)0m!~4g$_W0Ig?w<qCyDAu!W4|70?mkAQ0s
pV30K6_R7l2%bA&(M_mX11^}`#PS96pGu{9I002ovPDHLkV1n}f7#IKm

delta 654
zcmV;90&)H98J`*<iBL{Q4GJ0x0000DNk~Le0000O0000O2nGNE0N{5$_^~0M3V%vT
zL_t(|+U%7-XcJK!$G>M<t3qSrKd=U*gQU_(r*=390gD=hX3Ee_7pDwP#U+C`6i30O
z;84hL7No63q#T&R=|Uh~65|xEp<d`=lU#V0=J1m1&%slI=4f*eT>Qdsc@N%)@ArKl
zk0T-sQ)e(_4IMDjZ;|6T4!~JwEPrQC%(7qHt`6eyc(7P3zMPqvnFTNbz~{*V5&bm)
zH~>?XN~Kh<*VUDkm1h8^0GxC7PJfmQ001U8Ha6aOyIn>^RxX$O#Pj@J0GHjO9Tad;
z5QOKNrWr(ZL_}7z*=($?uD$?p3&4dx-3$sCou8k-S1y;0cDv1ps7*xQiGQe5C=~Ls
zSnMHyYrSp;1#keSWm(><)oO-q+l+`>L}U_?WtwIyold`U+?)r%4GI8&8=@%g92^`N
zmSr&_Vnk#(pcWAwsjB*MX=!QF4KQ*-$y$n{>_#Gyh;7^O`FsFCnx+}+>+A0%N&1k<
zWWE5<2d(MvdzhP>yRRrpi+?d@n5M~8RXt>k9WE{|J_c~9_oBT-!~vMjX0v;ZM#GS0
zc{daaJ*if!Ulm0u1OkCO&TID!0D$23_V&*H{(hC``3C@ksZ?sY)9ExNNqPey`0JH>
z1x$#dxV*Ksl>%_pspZYh&CR#R$Hz<%gr@)kURwkJqse6QdN>>o^kZ~>%<uQlmP)11
zx~{9yXfy&~%qxKFnO==25{ZPa>)-PE{A&Q?UIA|609;vHTYI#yuyEVW0oU)qpWnf$
o<a1)P0oc^f{{KJup96jj07uJ|n3HQUCIA2c07*qoM6N<$f?e7zGXMYp

diff --git a/src/libs/qmljsdebugger/editor/images/to-qml.png b/src/libs/qmljsdebugger/editor/images/to-qml.png
index 84ff48fa951f40bdc013ec8eaa71a39ad7f6f0ea..2ab951fd082096b1b3838d4e2342d302ce23518d 100644
GIT binary patch
delta 521
zcmV+k0`~pK8Jig)iBL{Q4GJ0x0000DNk~Le0000G0000G2nGNE03Y-JVX+~f3V+5)
zL_t(|+LV*QYZE~fhriiuG$H8Pl!EvN2;L$|V=63&#zM%c=?a1fiXh}5+Jop(y$E`!
zAW}*N5kVqW4;55U2)TF=LIPeqxwx+2+QcSmQR~v@#fD82Bl%!pc+C9Xo8Nn*M1&wp
zshz+G{b>U$BJ!gX5s|J1?2-QXo`2^(26lCwA3{JxL`tR7F<=bPMFh3+gmfyE28xYl
z^VvJweo!u#X}8;*O2gqW`FtMV_dUmP9%ZxHdE2(%bTW@8lXs5XJuaF3`{c>elKhWK
zrE(V7t_2J_5jqefcfG*utyyj_EHDVeFycT+Pp48>fg&1s{xX@}Nlwq7VSn+`eQLED
zhbJd{E}N#=+3P^@`$^5vM#J#s8+Ozox-CNPT7k;V7s&cLQ-wm0i0ir?0oJ^qsMR$9
zUWH!sKK_9*MrmnZsaC5fO&eIjT>R;lB4D(pR#6I^9l!Z_?=467TAZ7iLE9t{tRUFN
zRx|g@*cy!xdkKfe50aUf=w54}X_~mMdnJ)b+|UE@#mHy<RIDysIDe68%Np2)E)V`P
z7psO?ZZw`xTh_zPgY+*Ch92b&>h=0%U_=f18-uKf$fq8GVfixv;C50dxvb&Y00000
LNkvXXu0mjfsQmH0

delta 566
zcmV-60?GZG8OIqRiBL{Q4GJ0x0000DNk~Le0000O0000O2nGNE0N{5$_^~0M3V-rR
zL_t(|+U%7-Xj4%X#((d%(N<!fElH6ICH|wNMaUq6n1DhYBm|*k6U5?_Jf-01P_R&3
zof4d!ge0hokVP=Wp+pB05F9cXj1TeEkQjv)HRL!&>g!AMO6Z{Y!5!}5-tX|8^WAe5
z5n(T(vd8%Q6O7sg6-C*)Jq%3rxqsgVTEJ#6u&t*evTa!q5PNh?(|iI<@5DDu0ud3(
zWHMI(U#}WgF2&BKx~`uA5<ohYN_`WNw}nE1cDw!ijLYRB8jaHFbj*6a{x}ke+^^MY
zZ^TMyry!Y3K1k$miN170;_>)xae!j6xCD5tT>V^htu?>F(Zv8WCuUaj`G5RCw`iI+
z35@LMB3;+-0tr#T?0jbQ$Ue^9yg=#UORCi>e!t(AJRA-?wrS$Usn?nuQaR9cQyZ@{
zJ~qa&#W`wEtDN?F357zoM22BFdj~((ztjEN1z>ID74IiMFs1m|uXHJw%QPB|p%kPe
z=Gg?GJ@1y-RN$jmI9O7-IDdPIg{upws=6x${cQT>+0>fm@puRtvs^wO!|iteVN<ID
z!!TBY!Qed+X$>3|z@zD(zUzT^$7!xNS7Nc)@*o#E?m@3q^R1Hr>0B<ik<Dh8tq;v<
z4~8BUJya@{JHUjaQL&3@x)m+pla){T|7HIB34RR#!7QA>1(b2A01E&B07*qoM6N<$
Ef^w(|yZ`_I

diff --git a/src/libs/qmljsdebugger/editor/images/zoom.png b/src/libs/qmljsdebugger/editor/images/zoom.png
index 4abf31444006ba1d80eb508c24e8cd0b0606d8f8..ebae877310cc1053dd2a36af352ba077ef952d6a 100644
GIT binary patch
delta 547
zcmV+;0^I%J8MGN8iBL{Q4GJ0x0000DNk~Le0000G0000G2nGNE03Y-JVX+~e3V#9L
zNkl<Zc-oYaO=}ZT6o%jF4Ab@p2o*8pqlC0kBWfdsLfkaq+MPSmjnJJ-A&G0D8$VVS
z+`8x@yMRc#Py@+gCe$(Mkd^-+nMpD;-gAx%NvM)3=>r!o=W-v;Ij<%nm{F_MisSM4
zmFIcep6B^N5VVz2uj}>tPsE_j1b@|P_4#xfyiX)<U}GbN$z%f8?ZUE7d?I?*Xf!^>
z3M!S#?sz;o+24O;CK5@A2%-oG0)cI}aeVxai0EFk*|h%`tN?)T`!6>)x6M@QDoiuP
z>S~Df^$?~RVQZ^^Z1#?>lsZ_{!3qG3Mx(pQ<aHPZL(>SF#xM-V+8V($8Gp%S4n$O3
zBrpJAI2<Ajrx0PBU#g}FbR94Z14I<XcA%7MJI)U<{}qVHKligU8${H;NKkFHzLRa+
z^Uurzr39AMfn|M-nECL+7|Z4Ifl}(t&dz;gvsr}UZ=9Yw=ybk;nST+{t!}qFj1>St
zsZ=Tw(PJXoB_f@fTg<#iM0mHE`7<*=bR36b1&b&Y3fGv~V&*H%eAw&tUR+850Qr1=
zkD0%Sh{?=PT-W`0DFFcFa=E9>{6Rz_5qU5e3|jLPmZ9J8ABo6Y5z$5D=KNun^)e@u
l$>`~Hx_G{}^ayeM835e~VH&P{OC$gQ002ovPDHLkV1f%#{2BlN

delta 592
zcmV-W0<ZnF8Q>WqiBL{Q4GJ0x0000DNk~Le0000O0000O2nGNE0N{5$_^~0L3V#9%
zNkl<Zc-rihzl+mw7{;HZxeEtwa-40U<qC>aih@umxZdC@PEHOkio>C!gSaY);2}6T
z`J-6>gj)qQwOS~|^E!191h=M1(=_k%x-_-QwO&qcQ2fG6LWbw_ectE&eq*RA4s)3}
z<n{Lhti3+g>ve=-h~aQp^?m=2=YM%+&+`Uh7&;<yPej}}jv*q`YBU=A2ZUjWAPBAw
zhvB2OwG$|p^9X_fz1~jQb>ChTkt-tdau$%vf$#gZAP62*s~gB>b08H_1QZI#vAS9~
zvc3K6xrlrgk+z6{WV#FngTbv_ZhbkQKZ>QL5o~*em6Z`}J3^^+62;=FOn)55*Z1RK
zPe8xlKby-PgJlt>Nf-uUS%hs9%gaPITY`vGlie?JV9fy_iiS`n$R7vMFaXn3WHKg5
zMu~W82XP!b-EJ4E`cnafs-oB10ZAumPwEWfIKJI(e-PLGG!-X_@mS%y9k}lMNJQ=@
z4i;TE)*L`vL^kX77Y{3y(|;%y*AYcy?Cy5a>9j!dE6HyM228APiHOr`H7_-r?`k5F
zA^C>nIg)2cz9M;ERV8)EGvnuoh?4|4X;q%&N0J+=dY9zQMGnm00H#wi^ZY{c!eokW
zsOsed17^jOUQga%tLnAM06bRJ+8;UiwI;$(RCP;LGpbrioxuX(*(KUk)u#ZQc>v@8
eFZ16Ad>;UyQ5)UX4Ne~b0000<MNUMnLSTYo_zVyL

diff --git a/src/libs/qmljsdebugger/editor/qmltoolbar.cpp b/src/libs/qmljsdebugger/editor/qmltoolbar.cpp
index 333616289c0..14c9c7c1a60 100644
--- a/src/libs/qmljsdebugger/editor/qmltoolbar.cpp
+++ b/src/libs/qmljsdebugger/editor/qmltoolbar.cpp
@@ -21,7 +21,7 @@ QmlToolbar::QmlToolbar(QWidget *parent) :
     ui->select = new QAction(QIcon(":/qml/images/select.png"), tr("Select"), this);
     ui->selectMarquee = new QAction(QIcon(":/qml/images/select-marquee.png"), tr("Select (Marquee)"), this);
     ui->zoom = new QAction(QIcon(":/qml/images/zoom.png"), tr("Zoom"), this);
-    ui->colorPicker = new QAction(QIcon(":/qml/images/color-picker.png"), tr("Color Picker"), this);
+    ui->colorPicker = new QAction(QIcon(":/qml/images/color-picker-hicontrast.png"), tr("Color Picker"), this);
     ui->toQml = new QAction(QIcon(":/qml/images/to-qml.png"), tr("Apply Changes to QML Viewer"), this);
     ui->fromQml = new QAction(QIcon(":/qml/images/from-qml.png"), tr("Apply Changes to Document"), this);
     ui->designmode->setCheckable(true);
@@ -47,7 +47,7 @@ QmlToolbar::QmlToolbar(QWidget *parent) :
     addSeparator();
     addAction(ui->zoom);
     addAction(ui->colorPicker);
-    addAction(ui->fromQml);
+    //addAction(ui->fromQml);
 
     ui->colorBox = new ToolBarColorBox(this);
     ui->colorBox->setMinimumSize(24, 24);
diff --git a/src/libs/qmljsdebugger/editor/toolbarcolorbox.cpp b/src/libs/qmljsdebugger/editor/toolbarcolorbox.cpp
index c4d4d4e0fe1..8e1b94cfdd5 100644
--- a/src/libs/qmljsdebugger/editor/toolbarcolorbox.cpp
+++ b/src/libs/qmljsdebugger/editor/toolbarcolorbox.cpp
@@ -19,7 +19,7 @@ namespace QmlViewer {
 ToolBarColorBox::ToolBarColorBox(QWidget *parent) :
     QLabel(parent)
 {
-    m_copyHexColor = new QAction(tr("Copy"), this);
+    m_copyHexColor = new QAction(QIcon(":/qml/images/color-picker-hicontrast.png"), tr("Copy"), this);
     connect(m_copyHexColor, SIGNAL(triggered()), SLOT(copyColorToClipboard()));
     setScaledContents(false);
 }
@@ -63,7 +63,7 @@ QPixmap ToolBarColorBox::createDragPixmap(int size) const
     QPainter p(&pix);
 
     QColor borderColor1 = QColor(143, 143 ,143);
-    QColor borderColor2 = Qt::white;
+    QColor borderColor2 = QColor(43, 43, 43);
 
     p.setBrush(QBrush(m_color));
     p.setPen(QPen(QBrush(borderColor2),1));
diff --git a/src/libs/qmljsdebugger/include/crumblepath.h b/src/libs/qmljsdebugger/include/crumblepath.h
index a8846fad9da..cd1f09f3b34 100644
--- a/src/libs/qmljsdebugger/include/crumblepath.h
+++ b/src/libs/qmljsdebugger/include/crumblepath.h
@@ -66,6 +66,7 @@ private:
 
 private:
     QList<CrumblePathButton*> m_buttons;
+    QWidget *m_background;
 };
 
 } // namespace QmlViewer
diff --git a/src/tools/qml/qmlobserver/qml.pri b/src/tools/qml/qmlobserver/qml.pri
index c351d58caf3..7d9a503fb69 100644
--- a/src/tools/qml/qmlobserver/qml.pri
+++ b/src/tools/qml/qmlobserver/qml.pri
@@ -21,6 +21,8 @@ SOURCES += $$PWD/qmlruntime.cpp \
 
 RESOURCES += $$PWD/qmlruntime.qrc
 
+OTHER_FILES += toolbarstyle.css
+
 maemo5 {
     QT += dbus
     HEADERS += $$PWD/texteditautoresizer_maemo5.h
diff --git a/src/tools/qml/qmlobserver/qmlruntime.cpp b/src/tools/qml/qmlobserver/qmlruntime.cpp
index 0109914f031..646f438869a 100644
--- a/src/tools/qml/qmlobserver/qmlruntime.cpp
+++ b/src/tools/qml/qmlobserver/qmlruntime.cpp
@@ -588,16 +588,23 @@ QDeclarativeViewer::QDeclarativeViewer(QWidget *parent, Qt::WindowFlags flags)
     canvas = new QmlViewer::QDeclarativeDesignView(this);
     addToolBar(Qt::TopToolBarArea, canvas->toolbar());
 
+    QFile file(":/toolbarstyle.css");
+    file.open(QFile::ReadOnly);
+    QString toolbarStylesheet = QLatin1String(file.readAll());
+
+    canvas->toolbar()->setFloatable(false);
+    canvas->toolbar()->setMovable(false);
+    canvas->toolbar()->setStyleSheet(toolbarStylesheet);
+
     m_centralWidget = new QWidget(this);
     QVBoxLayout *layout = new QVBoxLayout(m_centralWidget);
     layout->setMargin(0);
     layout->setSpacing(0);
     layout->addWidget(canvas->crumblePathWidget());
+    canvas->crumblePathWidget()->setStyleSheet("QWidget { border-bottom: 1px solid black; }");
     layout->addWidget(canvas);
-    canvas->crumblePathWidget()->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum);
     m_centralWidget->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
 
-    //canvas->setSizePolicy(Qt:);
     canvas->setAttribute(Qt::WA_OpaquePaintEvent);
     canvas->setAttribute(Qt::WA_NoSystemBackground);
 
diff --git a/src/tools/qml/qmlobserver/qmlruntime.qrc b/src/tools/qml/qmlobserver/qmlruntime.qrc
index 3a9e6080e35..e8d08c6356e 100644
--- a/src/tools/qml/qmlobserver/qmlruntime.qrc
+++ b/src/tools/qml/qmlobserver/qmlruntime.qrc
@@ -1,9 +1,10 @@
 <RCC>
-    <qresource prefix="/" >
+    <qresource prefix="/">
         <file>content/Browser.qml</file>
         <file>content/images/up.png</file>
         <file>content/images/folder.png</file>
         <file>content/images/titlebar.sci</file>
         <file>content/images/titlebar.png</file>
+        <file>toolbarstyle.css</file>
     </qresource>
 </RCC>
diff --git a/src/tools/qml/qmlobserver/toolbarstyle.css b/src/tools/qml/qmlobserver/toolbarstyle.css
new file mode 100644
index 00000000000..8fbbdf9f875
--- /dev/null
+++ b/src/tools/qml/qmlobserver/toolbarstyle.css
@@ -0,0 +1,28 @@
+QToolBar {
+    background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 85, 255), stop:0.3 rgba(79, 79, 79, 255), stop:0.301 rgba(70, 70, 70, 255), stop:1 rgba(57, 57, 57, 255));
+    color: #EEEEEE;
+}
+QToolBar::separator {
+    width: 1px;
+    border-right: 1px solid #6d6d6d;
+    background: #414141;
+}
+QToolButton {
+    border: none;
+    padding-left:4px;
+    padding-right:4px;
+    padding-top:5px;
+    padding-bottom:5px;
+}
+QToolButton:checked {
+    border: none;
+    padding-left:4px;
+    padding-right:4px;
+    padding-top:5px;
+    padding-bottom:5px;
+    background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(65, 65, 65, 255), stop:0.3 rgba(59, 59, 59, 255), stop:0.301 rgba(50, 50, 50, 255), stop:1 rgba(37, 37, 37, 255));
+}
+QToolButton:hover {
+    border: none;
+    background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(105, 105, 105, 255), stop:0.3 rgba(99, 99, 99, 255), stop:0.301 rgba(90, 90, 90, 255), stop:1 rgba(77, 77, 77, 255));
+}
-- 
GitLab