From d3abbae211e13c245d1239d1ebfaab055a987712 Mon Sep 17 00:00:00 2001
From: Eike Ziller <eike.ziller@nokia.com>
Date: Wed, 1 Feb 2012 21:39:05 +0100
Subject: [PATCH] New close split buttons.

This change moves the "close document" button back to the top-left and
instead changes the icon on the "close split" buttons.

Change-Id: I187c3f707f38ea8edef996cb5393654015d551ca
Reviewed-by: Virva Auvinen <virva.auvinen@nokia.com>
---
 src/plugins/coreplugin/core.qrc               |   6 ++
 src/plugins/coreplugin/coreconstants.h        |  56 ++++++++++--------
 .../coreplugin/editormanager/editorview.cpp   |  27 +++++++++
 .../coreplugin/editormanager/editorview.h     |  13 ++--
 src/plugins/coreplugin/editortoolbar.cpp      |  16 +++--
 src/plugins/coreplugin/editortoolbar.h        |   3 +
 .../coreplugin/images/button_close.png        | Bin 0 -> 1170 bytes
 src/plugins/coreplugin/images/filtericon.png  | Bin 473 -> 1079 bytes
 src/plugins/coreplugin/images/linkicon.png    | Bin 592 -> 1114 bytes
 .../images/splitbutton_closebottom.png        | Bin 0 -> 1080 bytes
 .../images/splitbutton_closeleft.png          | Bin 0 -> 1065 bytes
 .../images/splitbutton_closeright.png         | Bin 0 -> 1068 bytes
 .../images/splitbutton_closetop.png           | Bin 0 -> 1083 bytes
 .../images/splitbutton_horizontal.png         | Bin 408 -> 1060 bytes
 .../images/splitbutton_vertical.png           | Bin 0 -> 1067 bytes
 .../coreplugin/navigationsubwidget.cpp        |   2 +-
 src/plugins/coreplugin/sidebarwidget.cpp      |   2 +-
 .../projectexplorer/projecttreewidget.cpp     |   1 +
 src/plugins/texteditor/outlinefactory.cpp     |   1 +
 19 files changed, 89 insertions(+), 38 deletions(-)
 create mode 100644 src/plugins/coreplugin/images/button_close.png
 create mode 100644 src/plugins/coreplugin/images/splitbutton_closebottom.png
 create mode 100644 src/plugins/coreplugin/images/splitbutton_closeleft.png
 create mode 100644 src/plugins/coreplugin/images/splitbutton_closeright.png
 create mode 100644 src/plugins/coreplugin/images/splitbutton_closetop.png
 create mode 100644 src/plugins/coreplugin/images/splitbutton_vertical.png

diff --git a/src/plugins/coreplugin/core.qrc b/src/plugins/coreplugin/core.qrc
index 3157c4f10ef..3af6f1c15b5 100644
--- a/src/plugins/coreplugin/core.qrc
+++ b/src/plugins/coreplugin/core.qrc
@@ -65,5 +65,11 @@
         <file>images/category_qml.png</file>
         <file>images/filtericon.png</file>
         <file>images/category_buildrun.png</file>
+        <file>images/button_close.png</file>
+        <file>images/splitbutton_closebottom.png</file>
+        <file>images/splitbutton_closeleft.png</file>
+        <file>images/splitbutton_closeright.png</file>
+        <file>images/splitbutton_closetop.png</file>
+        <file>images/splitbutton_vertical.png</file>
     </qresource>
 </RCC>
diff --git a/src/plugins/coreplugin/coreconstants.h b/src/plugins/coreplugin/coreconstants.h
index 88d3af79c6a..904d6478e7c 100644
--- a/src/plugins/coreplugin/coreconstants.h
+++ b/src/plugins/coreplugin/coreconstants.h
@@ -181,31 +181,37 @@ const char G_WINDOW_OTHER[]        = "QtCreator.Group.Window.Other";
 const char G_HELP_HELP[]           = "QtCreator.Group.Help.Help";
 const char G_HELP_ABOUT[]          = "QtCreator.Group.Help.About";
 
-const char ICON_MINUS[]            = ":/core/images/minus.png";
-const char ICON_PLUS[]             = ":/core/images/plus.png";
-const char ICON_NEWFILE[]          = ":/core/images/filenew.png";
-const char ICON_OPENFILE[]         = ":/core/images/fileopen.png";
-const char ICON_SAVEFILE[]         = ":/core/images/filesave.png";
-const char ICON_UNDO[]             = ":/core/images/undo.png";
-const char ICON_REDO[]             = ":/core/images/redo.png";
-const char ICON_COPY[]             = ":/core/images/editcopy.png";
-const char ICON_PASTE[]            = ":/core/images/editpaste.png";
-const char ICON_CUT[]              = ":/core/images/editcut.png";
-const char ICON_NEXT[]             = ":/core/images/next.png";
-const char ICON_PREV[]             = ":/core/images/prev.png";
-const char ICON_DIR[]              = ":/core/images/dir.png";
-const char ICON_CLEAN_PANE[]       = ":/core/images/clean_pane_small.png";
-const char ICON_CLEAR[]            = ":/core/images/clear.png";
-const char ICON_RESET[]            = ":/core/images/reset.png";
-const char ICON_MAGNIFIER[]        = ":/core/images/magnifier.png";
-const char ICON_TOGGLE_SIDEBAR[]   = ":/core/images/sidebaricon.png";
-const char ICON_CLOSE[]            = ":/core/images/closebutton.png";
-const char ICON_CLOSE_DARK[]       = ":/core/images/darkclosebutton.png";
-const char ICON_SPLIT_HORIZONTAL[] = ":/core/images/splitbutton_horizontal.png";
-const char ICON_FILTER[]           = ":/core/images/filtericon.png";
-const char ICON_LINK[]             = ":/core/images/linkicon.png";
-const char ICON_QTLOGO_32[]        = ":/core/images/logo/32/qtcreator.png";
-const char ICON_QTLOGO_128[]       = ":/core/images/logo/128/qtcreator.png";
+const char ICON_MINUS[]              = ":/core/images/minus.png";
+const char ICON_PLUS[]               = ":/core/images/plus.png";
+const char ICON_NEWFILE[]            = ":/core/images/filenew.png";
+const char ICON_OPENFILE[]           = ":/core/images/fileopen.png";
+const char ICON_SAVEFILE[]           = ":/core/images/filesave.png";
+const char ICON_UNDO[]               = ":/core/images/undo.png";
+const char ICON_REDO[]               = ":/core/images/redo.png";
+const char ICON_COPY[]               = ":/core/images/editcopy.png";
+const char ICON_PASTE[]              = ":/core/images/editpaste.png";
+const char ICON_CUT[]                = ":/core/images/editcut.png";
+const char ICON_NEXT[]               = ":/core/images/next.png";
+const char ICON_PREV[]               = ":/core/images/prev.png";
+const char ICON_DIR[]                = ":/core/images/dir.png";
+const char ICON_CLEAN_PANE[]         = ":/core/images/clean_pane_small.png";
+const char ICON_CLEAR[]              = ":/core/images/clear.png";
+const char ICON_RESET[]              = ":/core/images/reset.png";
+const char ICON_MAGNIFIER[]          = ":/core/images/magnifier.png";
+const char ICON_TOGGLE_SIDEBAR[]     = ":/core/images/sidebaricon.png";
+const char ICON_CLOSE_DOCUMENT[]     = ":/core/images/button_close.png";
+const char ICON_CLOSE[]              = ":/core/images/closebutton.png";
+const char ICON_CLOSE_DARK[]         = ":/core/images/darkclosebutton.png";
+const char ICON_SPLIT_HORIZONTAL[]   = ":/core/images/splitbutton_horizontal.png";
+const char ICON_SPLIT_VERTICAL[]     = ":/core/images/splitbutton_vertical.png";
+const char ICON_CLOSE_SPLIT_TOP[]    = ":/core/images/splitbutton_closetop.png";
+const char ICON_CLOSE_SPLIT_BOTTOM[] = ":/core/images/splitbutton_closebottom.png";
+const char ICON_CLOSE_SPLIT_LEFT[]   = ":/core/images/splitbutton_closeleft.png";
+const char ICON_CLOSE_SPLIT_RIGHT[]  = ":/core/images/splitbutton_closeright.png";
+const char ICON_FILTER[]             = ":/core/images/filtericon.png";
+const char ICON_LINK[]               = ":/core/images/linkicon.png";
+const char ICON_QTLOGO_32[]          = ":/core/images/logo/32/qtcreator.png";
+const char ICON_QTLOGO_128[]         = ":/core/images/logo/128/qtcreator.png";
 
 const char WIZARD_CATEGORY_QT[] = "R.Qt";
 const char WIZARD_TR_CATEGORY_QT[] = QT_TRANSLATE_NOOP("Core", "Qt");
diff --git a/src/plugins/coreplugin/editormanager/editorview.cpp b/src/plugins/coreplugin/editormanager/editorview.cpp
index 0eadf2f1fa9..2ffbc9a270b 100644
--- a/src/plugins/coreplugin/editormanager/editorview.cpp
+++ b/src/plugins/coreplugin/editormanager/editorview.cpp
@@ -175,6 +175,11 @@ void EditorView::setCloseSplitEnabled(bool enable)
     m_toolBar->setCloseSplitEnabled(enable);
 }
 
+void EditorView::setCloseSplitIcon(const QIcon &icon)
+{
+    m_toolBar->setCloseSplitIcon(icon);
+}
+
 void EditorView::addEditor(IEditor *editor)
 {
     if (m_editors.contains(editor))
@@ -686,6 +691,14 @@ void SplitterOrView::split(Qt::Orientation orientation)
     otherView->view()->copyNavigationHistoryFrom(m_view);
     otherView->view()->setCurrentEditor(otherView->view()->currentEditor());
 
+    if (orientation == Qt::Horizontal) {
+        view->view()->setCloseSplitIcon(QIcon(QLatin1String(Constants::ICON_CLOSE_SPLIT_LEFT)));
+        otherView->view()->setCloseSplitIcon(QIcon(QLatin1String(Constants::ICON_CLOSE_SPLIT_RIGHT)));
+    } else {
+        view->view()->setCloseSplitIcon(QIcon(QLatin1String(Constants::ICON_CLOSE_SPLIT_TOP)));
+        otherView->view()->setCloseSplitIcon(QIcon(QLatin1String(Constants::ICON_CLOSE_SPLIT_BOTTOM)));
+    }
+
     if (m_view && !m_isRoot) {
         em->emptyView(m_view);
         delete m_view;
@@ -750,6 +763,20 @@ void SplitterOrView::unsplit()
         } else {
             m_view = childSplitterOrView->takeView();
             m_layout->addWidget(m_view);
+            QSplitter *parentSplitter = qobject_cast<QSplitter *>(parentWidget());
+            if (parentSplitter) { // not the toplevel splitterOrView
+                if (parentSplitter->orientation() == Qt::Horizontal) {
+                    if (parentSplitter->widget(0) == this)
+                        m_view->setCloseSplitIcon(QIcon(Constants::ICON_CLOSE_SPLIT_LEFT));
+                    else
+                        m_view->setCloseSplitIcon(QIcon(Constants::ICON_CLOSE_SPLIT_RIGHT));
+                } else {
+                    if (parentSplitter->widget(0) == this)
+                        m_view->setCloseSplitIcon(QIcon(Constants::ICON_CLOSE_SPLIT_TOP));
+                    else
+                        m_view->setCloseSplitIcon(QIcon(Constants::ICON_CLOSE_SPLIT_BOTTOM));
+                }
+            }
         }
         m_layout->setCurrentWidget(m_view);
     }
diff --git a/src/plugins/coreplugin/editormanager/editorview.h b/src/plugins/coreplugin/editormanager/editorview.h
index 6106002dad0..2ae6b04aafd 100644
--- a/src/plugins/coreplugin/editormanager/editorview.h
+++ b/src/plugins/coreplugin/editormanager/editorview.h
@@ -38,19 +38,21 @@
 #include <QtCore/QMap>
 #include <QtCore/QList>
 #include <QtCore/QString>
-#include <QtGui/QWidget>
 #include <QtCore/QPointer>
 #include <QtCore/QVariant>
 
+#include <QtGui/QIcon>
+#include <QtGui/QWidget>
+
 QT_BEGIN_NAMESPACE
+class QAction;
 class QComboBox;
-class QToolButton;
+class QFrame;
 class QLabel;
-class QStackedWidget;
 class QSplitter;
 class QStackedLayout;
-class QAction;
-class QFrame;
+class QStackedWidget;
+class QToolButton;
 QT_END_NAMESPACE
 
 namespace Core {
@@ -94,6 +96,7 @@ public:
                            QObject *object, const char *member);
     void hideEditorStatusBar(const QString &id);
     void setCloseSplitEnabled(bool enable);
+    void setCloseSplitIcon(const QIcon &icon);
 
 private slots:
     void closeView();
diff --git a/src/plugins/coreplugin/editortoolbar.cpp b/src/plugins/coreplugin/editortoolbar.cpp
index 1aeb7c6ad57..9c77a61305c 100644
--- a/src/plugins/coreplugin/editortoolbar.cpp
+++ b/src/plugins/coreplugin/editortoolbar.cpp
@@ -103,7 +103,7 @@ EditorToolBarPrivate::EditorToolBarPrivate(QWidget *parent, EditorToolBar *q) :
     m_goForwardAction(new QAction(QIcon(QLatin1String(Constants::ICON_NEXT)), EditorManager::tr("Go Forward"), parent)),
     m_splitButton(new QToolButton),
     m_horizontalSplitAction(new QAction(QIcon(QLatin1String(Constants::ICON_SPLIT_HORIZONTAL)), EditorManager::tr("Split"), parent)),
-    m_verticalSplitAction(new QAction(EditorManager::tr("Split Side by Side"), parent)),
+    m_verticalSplitAction(new QAction(QIcon(QLatin1String(Constants::ICON_SPLIT_VERTICAL)), EditorManager::tr("Split Side by Side"), parent)),
     m_closeSplitButton(new QToolButton),
     m_activeToolBar(0),
     m_toolBarPlaceholder(new QWidget),
@@ -141,13 +141,11 @@ EditorToolBar::EditorToolBar(QWidget *parent) :
     d->m_editorList->setModel(d->m_editorsListModel);
     d->m_editorList->setMaxVisibleItems(40);
     d->m_editorList->setContextMenuPolicy(Qt::CustomContextMenu);
-    d->m_editorList->setProperty("hideborder", true);
 
     d->m_closeEditorButton->setAutoRaise(true);
-    d->m_closeEditorButton->setIcon(QIcon(QLatin1String(Constants::ICON_CLOSE)));
+    d->m_closeEditorButton->setIcon(QIcon(QLatin1String(Constants::ICON_CLOSE_DOCUMENT)));
     d->m_closeEditorButton->setToolTip(tr("Close Document"));
     d->m_closeEditorButton->setEnabled(false);
-    d->m_closeEditorButton->setProperty("showborder", true);
 
     d->m_toolBarPlaceholder->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
 
@@ -165,13 +163,14 @@ EditorToolBar::EditorToolBar(QWidget *parent) :
     d->m_splitButton->setIcon(QIcon(QLatin1String(Constants::ICON_SPLIT_HORIZONTAL)));
     d->m_splitButton->setToolTip(tr("Split"));
     d->m_splitButton->setPopupMode(QToolButton::InstantPopup);
+    d->m_splitButton->setProperty("noArrow", true);
     QMenu *splitMenu = new QMenu(d->m_splitButton);
     splitMenu->addAction(d->m_horizontalSplitAction);
     splitMenu->addAction(d->m_verticalSplitAction);
     d->m_splitButton->setMenu(splitMenu);
 
     d->m_closeSplitButton->setAutoRaise(true);
-    d->m_closeSplitButton->setIcon(QIcon(QLatin1String(Constants::ICON_CLOSE)));
+    d->m_closeSplitButton->setIcon(QIcon(QLatin1String(Constants::ICON_CLOSE_SPLIT_BOTTOM)));
     d->m_closeSplitButton->setToolTip(tr("Remove Split"));
 
     QHBoxLayout *toplayout = new QHBoxLayout(this);
@@ -181,10 +180,10 @@ EditorToolBar::EditorToolBar(QWidget *parent) :
     toplayout->addWidget(d->m_forwardButton);
     toplayout->addWidget(d->m_lockButton);
     toplayout->addWidget(d->m_editorList);
-    toplayout->addWidget(d->m_closeEditorButton);
     toplayout->addWidget(d->m_toolBarPlaceholder, 1); // Custom toolbar stretches
     toplayout->addWidget(d->m_splitButton);
     toplayout->addWidget(d->m_closeSplitButton);
+    toplayout->addWidget(d->m_closeEditorButton);
 
     setLayout(toplayout);
 
@@ -240,6 +239,11 @@ void EditorToolBar::setCloseSplitEnabled(bool enable)
     d->m_closeSplitButton->setVisible(enable);
 }
 
+void EditorToolBar::setCloseSplitIcon(const QIcon &icon)
+{
+    d->m_closeSplitButton->setIcon(icon);
+}
+
 void EditorToolBar::closeEditor()
 {
     if (!currentEditor())
diff --git a/src/plugins/coreplugin/editortoolbar.h b/src/plugins/coreplugin/editortoolbar.h
index c432e1662bd..b0164d496a4 100644
--- a/src/plugins/coreplugin/editortoolbar.h
+++ b/src/plugins/coreplugin/editortoolbar.h
@@ -37,6 +37,8 @@
 
 #include <utils/styledbar.h>
 
+#include <QtGui/QIcon>
+
 namespace Core {
 class IEditor;
 
@@ -79,6 +81,7 @@ public:
     void setCanGoForward(bool canGoForward);
     void removeToolbarForEditor(IEditor *editor);
     void setCloseSplitEnabled(bool enable);
+    void setCloseSplitIcon(const QIcon &icon);
 
 public slots:
     void updateEditorStatus(IEditor *editor);
diff --git a/src/plugins/coreplugin/images/button_close.png b/src/plugins/coreplugin/images/button_close.png
new file mode 100644
index 0000000000000000000000000000000000000000..f6d37fd18c5350c8746c4874eabbf5cc304e4cf1
GIT binary patch
literal 1170
zcmbVMTWHi+7>;eH$aDpZXtl_iO<8^EB<GBinI_w@b4#`Zov};@9YL0+$!RCHxtN^p
zq(yM*s;sb}mco`ryg)&phQ0`19`wN%FNiOK__XMY3Zm$PE(qO|PN(`%6bvNiKj(bk
zfB$o8F#qd@U}un`s14cvOo6N${davU`R;hXq>yDBmP&ZY8pRdGK~z$+Mi8AflrdC5
ziZ*rlF6yPI=CWQa;ZkluR4s#5d<^RuHepj#Z=Yu?>Nvvm2pZGPIP>P_Er!;$IJ2M6
zft;O2WxapeK||B|qB=dU3L4Y5hwk-6qQF2{p*>^5bVV=DEbA4C>>qOsy$r$Qai;E6
zDK|)`EeFv&3qmT0LOL2@VFU;fp_>i^2sjw#Kr94-$j3wg>6M2e)*NkAEM(*rTVxk!
z${5=s$5kp7wz8YGoG}gxg1~_=7Y>IABIHh)Sn)!p+ttvJL9XiPHr6eZ_BARa)+CNI
z#M62RhMmi;DmLAfM3Izno?>&51)O2{aV?`=TtJ`QSQG6Qr)<O(kZVmkDyhe4SA$G)
z_jN-)ka#2Rb#zh`Wg=s#lLj(zHWO#a4Xf#zD5qjFgs}*Sg+a6jLLrvqQ(;-|fl?Ik
zJyJu*THJ6<5>jayM3TG!p#)P=AtlA2kmMl|deRMU)^xFAs;FUCCwA*xN&YHVOgl)y
zmQ%E>iADzumMv_#Wy_}1Lp%%VoTBQcf8rOY9&ZLY`tL}S9m}AXGc4+BcpyvPioDL%
zz9(xOafb8T<BN7_9FZRM#nt8~o7M3_CYc$B49Dz0H(WAUx3igK(R(`bX=$mi`RD4X
znG|^2x=6d{`;OLH79J+9-%EV@@t)lN_uSl()As`(s@IzS49s|&XFm>HDFtRP&9l{G
z2NK(Zci6<a*2gcJHeWbVn{O97XMU@~z}a)%>#sg;8U5u^TT65M!s4b^l{4#JzR2&|
zxn=Im6LvxF>Q4(BFPwPh96b4N@Q<5=9rKC*#xBBzfq|_LjvuNeoMfOlvGb>n<EiIM
t-LtQM=&ym+XW(MnK9wI%ylYBS*HM3M5g(kq9L)QFiL8{*)KbI8{s(|5dOiRE

literal 0
HcmV?d00001

diff --git a/src/plugins/coreplugin/images/filtericon.png b/src/plugins/coreplugin/images/filtericon.png
index 3fae2defdecc62af31371f25c2e94ff7e509163e..76a833690ba8201afb37f20b2fde4e5abeb8df9e 100644
GIT binary patch
literal 1079
zcmbVLO=#0l9M6~(oeXwx;6zx=5IxxBz1Xx(SRMU}E39>P1$z?H<ZTUW@?!F4v+c6U
z1P6**LBz`hQPhLXlLrr;9C+HUdJ(*M^8-Ot2J@vK)5DlxAbJ1y&;R%Pe=m<0PWSd4
z>R}kBH#eFo(z7pk_lD?q@Y|L~j{%Y`lL<UY>Y9s~q=74l%~{$MDk9C8z4!(VGfa2Y
zER{()Kc?u|;<dnr_brE_8D@CIcQkz(5w?P+Ogq7Se))=HO(Vgblky<%q*2uzopaH|
zT%n}TP3yA3jhteKeT5QOh-j>D)of4k6I_#5p>m)WIJRj*rW0H%sB(UsO=B0a5)Z;U
zh(b0R;b8>G5%~lw0tf^s3LqASK#^h!fNcBWs5jS`REin3?Tg+LT$K<<5rlfZ&eu=!
z*qsufEXx8A1yKxBi?BCq6U`6X-cW}jgFM|e9b#ge4H&fwo*@a2M%qfja`O3YV%uvM
zik3|9HAjFv5G*Umt7+|#BKi}?j@Djj)<HrMd3eUvX+I{1I$&D6-5mvnG#cfMYtp7@
zwG7s0EM${hCc)7^ykQ!Onu@6q#v&jlf@mB<IhK@CqN>JWHVUM8w!^U#HX^1(Q3kO{
zQj#Ie!c<gFWn)lIN{|ZibO)QWJ)+q<>i9LO-!?Y7D^^LnNF&%SVO;A>z<3oC>{YSD
zrY9sGvUyE6?LZSWsFiO9x#lHgs4lkHW`z}VhX~Z{zcO!OjsK~dK!Xv2@%U?8Ix0GY
zfw(>V^s>D^$fi5v(&f0fXLX(~7Oh#b<iD$IZf%WpA6-~pOo1<<)rG4c*H>;I=xa0@
z*N%to@Bh$!@XlhTYiT7h|9x<6?aK2fM;<TSJbbq2>%iDXG<E(#A=2powQ*PHj(xiI
pbL>Yg^P>OJzPDhlYyCRY6=Ghi?{6$UeYhE{axPoQJWE};{2PiBSRMcX

delta 447
zcmV;w0YLt@2-yRWB!2{RLP=Bz2nYy#2xN!=000SaNLh0L01ejw01ejxLMWSf0000P
zbVXQnQ*UN;cVTj60C#tHE@^ISb7Ns}WiD@WXPfRk8UO$RR!KxbR5*>Tld(&~KorJb
z;?at&1{A@e$z~@@p__w(AP&0u2Xrb~1QEf%rg124fo_IQS$_n#E)L0JE))uZK++Jp
z9Fp8~sT%bnh5F!w<Gb(s!Gk*q5n+{)S8D$UfE3P^EX$sj=)4g^jzxehilV)Kzi+v&
z8;hE)R%^H0?VdFnjV}`sKNSQ4HBIvZ05(J#jYj9w>68{b-vG94TX7r@5s?)Ag-DVl
zL(8%rO9Ab6`+tN|I%bUB{sb__t|_JCX0v%(3IG6E*Y%qyid;lIEZlWwvzgQD_3i**
ztrW0;Y#D}epCrjMB5osMZ9bpdgTded0Cs-m1-nAETHOzVz;hhu$n(5|FbsV~Q97cm
z@F6kAUODG5nM`WF@2_*t<upxSL|Gy-KSotmtzNHh{y3E>1>||2X_|H=%QB{EnwRCI
pvfn64(j@>?3YLk8d}+Y4^9}(sHK~O6IbQ$(002ovPDHLkV1jb?yx;%;

diff --git a/src/plugins/coreplugin/images/linkicon.png b/src/plugins/coreplugin/images/linkicon.png
index 4e4d4f7b7fbac77c23076501afd79910395a5fce..786c8d65ba995e2a8c8d591a3151f66b16400565 100644
GIT binary patch
literal 1114
zcmbVLTSyd97@nwPlLTKau+xYSkvlVI+>0~pDtnpHE!SjsL#Y?XnWH=C%o%5n?J7Z`
z4;5h)B|Syag&?rkN`rhXh<fb`Wfw4l9(*w<?2NkBgA_C{bN=(s|9$`cOm|m%P4%v7
zhGA+l9qAlBYyCG+MZbHNRy2Cl5v7;p@c=1lE@Bb}?nfYFX@e+-G-GV!35qey)}mSH
zCB4~BS;rQq`8HhHawwW%Vr^wd(}xfN{b<m%<LtM&M=UUnINKA>3Rx$Gie|^Si}K@L
z1$}%-mkhS86~xLiC9n|DK-n6$J-HlbS9xVB`)ZyAt0rV9&aMU3o9zZE>>?26grF`&
zAc%xG7!stA)C5EU3Op2fAsU2&9FEEY1nUn=y}8DKoJ*_gzUVE^771}=o-dV3T&bDE
z?jR2(N#X^O7sVj82zp~S(aJ&FYp5`!k*B++LriP~pHb__qa@DKNY_%ZoNRW3*!I>7
zMN7t)HHU|sz+0A|*Q&Kga_Dy$n_7E?F$eKE<l#|Qr~MdcsDNqh{_e;(q|wNST$46M
z8%|?=)Iv7Nq~k38!x^R_tI4PeVKgK}MIq7xp%hJolcK7&KqVrCTa*gNW>_(*NXe8M
z3MIl4gbGYXq@)ssQX&kg(2}ZPGqy)GTSpbYCiT0HZT>4(PPs@U*ezf@T$zCGA|}`?
zVh5!1VGe?<rkl2}@f)<3ZyLGgF=VJNw!mtIWpk4VROMfpuVIb<sTxm%;r;RWV_YgK
zI)lErG5qwhu|CMAJLA&jsK>8)x>%<(=|rLY>dnQY)$?HIwzmt74_DsD)Z?`WUlgw`
z_avGc&wZ%c%PtPY7Tq7r`S0yB(|Kjzr@;J|iI;&p7XqOzvvsFZ$s1PH5g=>t^y!hl
ztF4nt{q~=`FJ-Uq?^?dieH9<y{G9ygOx>EBIDB??p{Aqez~w9Qq{p0?>OA=@aPRqp
Y9Rl-oMqMi0Pv!k>&nR8#yUD(ZUw!Ons{jB1

delta 567
zcmV-70?7T^2+#zOB!2{RLP=Bz2nYy#2xN!=000SaNLh0L01ejw01ejxLMWSf0000P
zbVXQnQ*UN;cVTj60C#tHE@^ISb7Ns}WiD@WXPfRk8UO$R%}GQ-R5*>TlRs!$Q543%
z`=Y!^q!Bt4hae8YkWOuuw%Gy_NQk%<C&$)O2rdO<hhXVaI)8Mr9YV>Jy$#7AC{L5n
z!AL49;$HAih4<{W+`i|-cREz*i&$E)2fpQ;`~5hab1owy%o5T}?*9RBOv%jySeVF}
z0QlbkHwS~k698M2V28s2Ns@{H-UGP0Mj#>(5h|6+t7^6SAsUT_0o=38@AvO0it@s;
ztYadQ#vUU21%CkG>2|y2Mx(J}FOKA?*Xy@}!Qf`U-_H@z1`)}VfR$dacSc0FZN_yW
z#F4J+MP1iFan3JI)BI)_#%Ig2&WLD_h&<yhd@q;F7XY3Cc%UfCs;a7QbGh7?SS<E3
zkx0C$)oQh7vssj7`DrK=de`Z60stP4JDBtNeB0S<c7Km^{*iNDHw>dIgeV9h3aYA}
z=kxi4OePZ;y}uEU#~%-e!;{~`0Gt5)0M?Sp<Zip&RsgJx6ae6|&nBHtKjNGpvuUU7
zbUN>AnzrwDyR!gJ0f=iyVVcXWR_nRT<vN@SV2pVqk;q0WmAdQodhamC=4@+cnx_3I
zl}d$hI57NrDqsXz1h51^o+uH3uK=1vWc?BFuQBsy`U#m-9W~Vh6zTu~002ovPDHLk
FV1lp61lRxo

diff --git a/src/plugins/coreplugin/images/splitbutton_closebottom.png b/src/plugins/coreplugin/images/splitbutton_closebottom.png
new file mode 100644
index 0000000000000000000000000000000000000000..08a7dda4754f69ff03d7adf1ae28b1aa9077b080
GIT binary patch
literal 1080
zcmbVL+iTNM7|$4tu`y64j_t)mh7-Xi=VVRWgw@hpT+q(a71pO=nw+j-%Vo)#ZTBE^
z4$=J+0}(+G2jYt;I^2T{L4EK+L<FA%UljJ}WuEjheHarAB<DL{zTfY=-^@>)8|WM9
zV;E*Yoy-*Ic_esyd+7JX?w&@EVUjJ8X{SPJnunRB;gm5@Eo}}Lux2zCckl$mbXUz{
ziIj2|WZkhiEwJJ0mP^qLGm)sfnm&&SDC0TPj<a7MKVyMu#Mv1!2Xk&3SIx;~4^J;o
z74_wLT{76jSujzTDS?HF2I|&=?aTEz+vJt09H@B~G)>5SoNWbF%H=`Y@h}iM7}8+`
zfk>D`VJL;AGeCd{@<`xeG=!imMrDXV`(dd!&#1_SjMDZ+Z*jIth%57atybe|<DBEo
z@ko*+9tyl5gs4TxZ`eeuhiree!;rzg?wKwz9UBCUTG?45ah68fO2Kk-xqV{WZx@P|
zjIV1hk2uI%R*+ZI+9w74CyWEF{bIw#d;$B;lBd&tR7N{sTD!v?1%@;l`J!jirf3Tp
zM_;nAP1H=BrGGfXG-M?eRS=4XVN`&T7(!AsDW(KPiJ@!+im_~m;~;EUNC|=jm2gs&
z5Xz!dL`r3&NJ@%`3bAwttJ*%%Y#n#}n$&L_n>`dOr#-9@$16I{LT3W<Rfjl!)p0?3
zTI3MOX}W0#nxH|gd^6ZHFJnXT91AonESm>Jpk)7*c?)a&Pt|xD3?GcgU*pnI(HRWH
z{o$vV{q?~%-5HNA$K9uQUeLv=sF`H3{=WQUZ!gh(a%J%?bEE6^M&i`VW2&kuV?BLc
z{SVCB)wM?>oBbc3G<G+tL*UxX=ImAR*U#@muZ|B6ZhuML<CxPu=Jny#^W(Gp*7LRe
nJ9u<`?AG?mhllW+It;d$oj20@l~130gI!j$Q<?jzORK*Ds4!OE

literal 0
HcmV?d00001

diff --git a/src/plugins/coreplugin/images/splitbutton_closeleft.png b/src/plugins/coreplugin/images/splitbutton_closeleft.png
new file mode 100644
index 0000000000000000000000000000000000000000..2c3a2321eb4d3db54451a7f0f16965574125e1f1
GIT binary patch
literal 1065
zcmbVLPiWIn7|$Gt=mzfQ^kB$VL|l{ix~6HuYH6F)73`dCVI6qbYx1^+HF+_4v)Q~j
zL1Ch>qn^}*h!+t&h<I><7f(CvAb1du-W2pG%$NR|9>xR%$@|`y@Av!uZ_LhI7(ROP
zD93TbrD?sw&g0R0<S_f5{;`YLF-na(t&&CBMn2|p7HMF<<e(*7!N^*@`T<XI++fqL
z)oHzaQ8S4nqR2)J9gm?oZYmpk$Xv#hZ{Q`{%?RJ#ycKxc$_R6E8I-*OZrampKCZ6K
z)XcSIQ?-Qbd44L?7=eQ+;zOt923nXAI=mW_Bef*(9TU2o5xPOu%d>oe_?VYP5H~>z
z@~NZ<lR!<X6MO<dAi;zLlsE*MtY`r8y+>f)d}~pw=*6BdcFPD&N<B@I+U>U3o)n3{
zBtcbGC6JI3i8!-}2dgecVcZSI`V2Y_OyBmXO<X==L=Cb+GXjgWn}Xw&%X`Fb&?^)x
znG_;Vf+CO{C(5g19ncE?6UM&QL2cE;QUwQO#Wz_$7RUNvR=a~8MTRUI?UHY^rl6Ki
z%oPW_w4`SQ_D8gAODpD;B7{m3C<%~CL#Qe_IiDyN)6hr(Ic@Yg_QNVbhI)Q7oy^H9
zga*u~)V!fUH77$Rqzip)$qguSP2BfuGrv8oav)YK_!v>**9d9#Ct$WoC<&Ux;|o<;
zgnSv9wi{`p26gk*v2S0)R?#O8->I->?-N1M_*dp#to1)tlUOiPG#-DAOJBuiFcSBM
zpI!FW2fJ)%e6}2q<)2U4V$GHGTrK?6__e#69gN-BSkHr@p@o5w?T6Vj=f-2P*y#MG
z`o5Web$8>0F@9^{*=O|b$>@W7+t(+)t{>W&Zrumy*!-QHfwQ+?Y@Q0iR{G295q^ui
W@+kJPdindyXn9M<jQ%{oaPv3fJ587X

literal 0
HcmV?d00001

diff --git a/src/plugins/coreplugin/images/splitbutton_closeright.png b/src/plugins/coreplugin/images/splitbutton_closeright.png
new file mode 100644
index 0000000000000000000000000000000000000000..91e62e9358c7d3ed6a9b8b62c124c6f35e265dfc
GIT binary patch
literal 1068
zcmbVLO=#0l9M2et&JEPt6lRuLWNb~|>zbwstF>twS6OH23f2!~ugU8gw|p#lTeEqv
z3J!PGqX!Xp7Vm-%Z=S@HA9v3lybANBAJfB_U?6$__s{?L`+x707p{y9ogHErW~4Z$
zRp@ytdXFEY-}68B5j{ppp+*+n25BK5Gda_(W436cWn96?++6#BXBlR&X;o{aR+?7~
z*XB`V!-uv<(F`-24LxM6V8Yh%vgKsBA8+1qtYv1n>tYF%ygY7Nb6Y-M+*+s_TPuca
za@kAlY^YEI8xzEa_No&oVTSAQDpZct0>^et$V!Im230GS*}UsxR^&n404d0(k~~ZT
zIVn%G2>^ir69SOp5GbOg0Lb<pj(YRWhEmb=o-caKa7{uyMG#u87T=oTU4L1CvMdWA
zAtVxUY7q}M9fHER6HN3OG#nVd<q^wu*oYC;-F1@TXr$c~Y_C*0Aa;UYp=im35P1UR
zfneKFULEUzRPdiL4z&)dn;sS_IB?f}gZ85_(FfDo9qlMGq|qqXe2X>(t!l2ZZexcO
zwG2o9@TO%dx+>`qN=YCkKq?KPEagNsq3dZ_NC7cj=yM!~m4FB}bta$8i86!*sHSAK
zAVE1NLMo*5eQePQ2yzVE_iItVJ*;{pR>}Jq5!bJ}?rMJm%1xKJLDTiv{G!N1wuB7J
zi8N7zy7_9@w>Ge;`>xG)Dy&$CM4%V`m3bFy{!i5e8jKK)$6w>pSJ4@a#Dn3dmxJ}e
z4&51_F2|RXw=}v~H;Y=X8h)$)+TYI(#@ag%R4_ceG;sRk^X$c`3$a*i^v3HGXI_pr
zCO_TT`+oJwd*<2r^zL0|XZ+sNM`iZKx$QB1es^2>irP~fwZ|j&?e^MUFmbs(z#ujD
TdF=k%$!LFzg$3=Ey7cfj_qIwR

literal 0
HcmV?d00001

diff --git a/src/plugins/coreplugin/images/splitbutton_closetop.png b/src/plugins/coreplugin/images/splitbutton_closetop.png
new file mode 100644
index 0000000000000000000000000000000000000000..a76b91dcd9483224441ae4b5ff4b50a30e97cd07
GIT binary patch
literal 1083
zcmbVLPiWIn7|#$y<_7K{Y<e(c7Dd-2FE&jRR%_EVuCi{UE3CUMP2Se9CNCy$Yqrz;
zgSg>A#LEsMh&REbAPNc&#FHl#JjnDQ-gfY!sMMEsogT&n1Ihc|m+$xc{;y7qo$u{F
z(oIoRZ(&3$k@HaW9@tO5$G$cVatz>n1y7<`+%SAdWi3>Nbipy^U<n%5(#2PBn4<R8
z>~aNHild5&9M*_z*wFC^nxcj?p=X%$5YtsSXS-=;>&Y{QwyiWXB^LRjmxDEXWZ8$4
z%VTA8dES&QCUce^4i!S+Ky1*VQ+ER;OfxNBg~*YbW9XI%o=-FFpen@)I){8ni!2{E
z`6Qr|2^J)HIUx_x0uOi&2pliP0k4RX!UKByVTd>1npH}gzU_<L(o79wPvN*mqro=L
zu*jd|fGo=#FK~hoCl>Kw$;Cz(cZ0zWg9ZcBw>@klmyQ^XDq6s4hD6#<!SRa49bz}w
zE)*#l7aAT1Se|p7D6f`vfJ^XC7`s{r<s}btB^aOu-z5E*9qfQf?e=yQ8Iov}ao;9Q
zG3pvJ7aZu~f|h2;AJ(!hMOP&q04c#s0-sC)AWK<M6?8oX@=0Dy<vSd^VH1KX2r{oG
zvZ4$?9;iuK%}YSeihu~ITnAfl18le^?D(~b-)(GmPpp#jp@ETKMyTGIfQcHyD5xQi
z&P|Fepo@lSyOAbpP&;1@`t~BUbRRi%tHO%CO9XoUUzxYD*8fzEBf)Udc>Fak9Tl0u
zNZc8Ia@koQ=#riB$#Uebe00fT*##|I4&PUQHk+A!v6a<JD&NyH)7AI-Zsx@4<FQz5
zVEU$fzjkeU?cG82;pzAB#r~E0w_iV`?3N*JzIia!Twh-wnCahmdGz|1bEBg-`aXB7
s#tZG_?bS8?!o6Fcu5P3@ANSGEsYj=V4tL$@e;ciHAwQ-)RA(;#28i@n9smFU

literal 0
HcmV?d00001

diff --git a/src/plugins/coreplugin/images/splitbutton_horizontal.png b/src/plugins/coreplugin/images/splitbutton_horizontal.png
index c85a093f2c3250786c13994bef3910d19824d650..de424460c45e100245028b7654773a63442417d1 100644
GIT binary patch
literal 1060
zcmbVLJ#5oJ6n0fqA!tPrNT@6vu0R4c_MIC$vDFZg*d~!kiPA`9tYcpjtF_PASK@XG
z2!={!K`?h>t;B+a7@z|}Ofa)D022cP3sO1fr!Z7S;w1at-F@Hte_OT18&fCFpWrxd
zs#4bLY@bfP;}h(E;m5wkwi#+P=@MC?T`R;~!67XSDxTHGb!<5sci!U#jvMc|jV5hY
zZ)!I21S`P^u@^8l$1UXJz_M2{1ufim{T%=O)oUKOPL97VS79|M;f`D04Dr(DV#D5C
zwN;1DUjqxV#uRv%S|Ik;{78#)d|$7|<m6i9K_5a_bNs-mX0--NB*Z`#V9JIH0!msy
zX{e^vIUqp<MI?zZlR{9FGa5u-xOiqQbXK&wZVqj+Q;zRY8fc=}?RJIkyg<UXh*VV-
zp(ILDiXl?bhEJ_H<wvt44LXkO&<&_de2{3gT4bH(c;@LK1TUyo4;1^+Fi|XJVr&H>
z5}@dLNnCw&MC<sE8;7E!#zug}I*!PCXtR2(%#O$`cSjpafXo~1R_L;#SZg}5*FEgh
zik{=yi{QA9W)?FhLYXwoNKnZlq-F|oQ8LXeG88ChjggMSxY<%#(sg4#U656T3{+Iq
zqLD#rK}Jl-mPXu)A5qJ<@yM>r><+ookzB15VvCZnLCD&u18N;YNz@?$C@skX0#(a)
z{p2Po&>&tNhwfeMm?7~%Kf{`PhzF+eugC{n=YO&$GH1l3J^pH!(G}~#L_BDIb~qRx
z?6a8(*>Kd_AIog8>J`1vh(EP{?eFKuFZH(W72)LM^4RGQJNb7rkJ;KjHudJ&^v>S+
zxrwj4t&4A8o_#o`DCJWppDTNFoNK<=*1q+g!0SJ+e(rrSd)zozd3xp1W%A%mGPf0D
KQQs{t-~SD!5J{W>

delta 381
zcmV-@0fPRd2$%zqB!2{RLP=Bz2nYy#2xN!=000SaNLh0L01ejw01ejxLMWSf0000P
zbVXQnQ*UN;cVTj60C#tHE@^ISb7Ns}WiD@WXPfRk8UO$R6-h)vR5*>L(=kqkKoADt
ze|U%@xHL!sM}U$$cmq!25ll43#>=QJjog3>5FnvI%tjkr#(%~b7unZ9Ibpu}X9C2`
z*z;Jsx&hc5wMzh=;r(|2Z+{E4TEPeK1Yj}%rvR>wB{&(!QKV^lyY38vz^<z5KFhN6
zwrxL6fMVuD-}lcO(+^V0JI8Sx0KdTchzx)X@fm<MP5O501Pc*a04@v&gb><*e}H9K
zHZ#9$^ezC9BzDPhU|ALw$MMb9^t!Ge!!Xp=UIR=-WH=(Eln<`!Y6&#0EX#$+bVGod
zIf^24f?*i=2X#z<=jk7*1{6iXUDu65h}SJ(p68FIX_OHFz<HiuE2Yl103!PGeP3#|
by}$D}lVWA`4x$c}00000NkvXXu0mjfk+_~K

diff --git a/src/plugins/coreplugin/images/splitbutton_vertical.png b/src/plugins/coreplugin/images/splitbutton_vertical.png
new file mode 100644
index 0000000000000000000000000000000000000000..4f78506cf0d07f635c0a834204194d06110687c7
GIT binary patch
literal 1067
zcmbVLzi-n(6m~_6P}NE>p|W5(Dig8q(m0N-hLFTIjf6{;Mj}Xnda<vG)!66SSK?L-
z0j5e!Ol+{Su&{s_K%lB(p|GL;2Qa|EidxP|Qy8iuagu%S?!NE+ewz#PS0=~LjdL6~
zS)J2sY(JfRr%tl}`JelUZBx`}&_%LLyC}q5$stY5S3T6iHH@6~)em@<<4&~QdV@Bs
ztC~$b5hWNg_5#M{xY=SHAbSN<zKL6|Ul4x0ek1U%QxLAp7O;W}Zo6|EAzs{=uiG0d
zw(1DQOZ;rCF$Er`h>yLFA8Bzx=<C&(oLox+--pnZf-rEZVJ+|#5@KE!LD~j6$mg;m
z%mOv5UgR?X0tsd$prj$tWJLpzKUe~@7COsXO*ap0u~R{4QyOTJ)a`b~?u<ynmIPH*
zl|V+yWYP?gj@EsO;<O*7h8lDn*`XUym-u|55jDvgEeOohK?q)8S%-@K=pa!nWm1d+
z35r1Syd<tZI-)iF$BiS=QGGqYQVmCBEwouZmQzDA%iZyY5+L(NyB4~vD5#?od(Fc>
zt?C7Vy@-zMXl7Y4Ayl$J$$(rQLRBfr<&0_Op^*b}-WcjQimLz_>g6oRmShz|1D11Y
z*-)Tbk|7iFl_9t4M-=%s9@=%8-2r#TJeI3fLX0R0>x6WM9k9?QltgV3@RdbbguI1p
z*H3Pe0uAETap>N`ju{e<?`K$ZkMO`W{uTLv>-<mFB<75iw8vlVGQ46vn23kX&kl#<
zgMBtLAsddDpOv$0ux?cKQa#>n{@UL!o|x`!-YbKNiKUS<J5P$+Q;*ns7+c)dyBDpU
zy$9{PotuyMQ1AP#Z==Gq-1{$2xeL2oqtnZ#wkNi3FO3>w(_ee5Z==-Z-U#Q;*Itc%
RtbIzxw`$Dm&&x~qe*<W8P+|Z8

literal 0
HcmV?d00001

diff --git a/src/plugins/coreplugin/navigationsubwidget.cpp b/src/plugins/coreplugin/navigationsubwidget.cpp
index 8181190976c..88fcb65ef45 100644
--- a/src/plugins/coreplugin/navigationsubwidget.cpp
+++ b/src/plugins/coreplugin/navigationsubwidget.cpp
@@ -88,7 +88,7 @@ NavigationSubWidget::NavigationSubWidget(NavigationWidget *parentWidget, int pos
     splitAction->setIcon(QIcon(QLatin1String(Constants::ICON_SPLIT_HORIZONTAL)));
     splitAction->setToolTip(tr("Split"));
     QToolButton *close = new QToolButton();
-    close->setIcon(QIcon(QLatin1String(Constants::ICON_CLOSE)));
+    close->setIcon(QIcon(QLatin1String(Constants::ICON_CLOSE_SPLIT_TOP)));
     close->setToolTip(tr("Close"));
 
     toolBarLayout->addWidget(splitAction);
diff --git a/src/plugins/coreplugin/sidebarwidget.cpp b/src/plugins/coreplugin/sidebarwidget.cpp
index 5671a151a41..93f8b5ca471 100644
--- a/src/plugins/coreplugin/sidebarwidget.cpp
+++ b/src/plugins/coreplugin/sidebarwidget.cpp
@@ -83,7 +83,7 @@ SideBarWidget::SideBarWidget(SideBar *sideBar, const QString &id)
 
     QAction *closeAction = new QAction(tr("Close"), m_toolbar);
     closeAction->setToolTip(tr("Close"));
-    closeAction->setIcon(QIcon(QLatin1String(Constants::ICON_CLOSE)));
+    closeAction->setIcon(QIcon(QLatin1String(Constants::ICON_CLOSE_SPLIT_TOP)));
     connect(closeAction, SIGNAL(triggered()), this, SIGNAL(closeMe()));
     m_toolbar->addAction(closeAction);
 
diff --git a/src/plugins/projectexplorer/projecttreewidget.cpp b/src/plugins/projectexplorer/projecttreewidget.cpp
index 1916a0bb229..5bfd80952f5 100644
--- a/src/plugins/projectexplorer/projecttreewidget.cpp
+++ b/src/plugins/projectexplorer/projecttreewidget.cpp
@@ -427,6 +427,7 @@ Core::NavigationView ProjectTreeWidgetFactory::createWidget()
     filter->setIcon(QIcon(QLatin1String(Core::Constants::ICON_FILTER)));
     filter->setToolTip(tr("Filter Tree"));
     filter->setPopupMode(QToolButton::InstantPopup);
+    filter->setProperty("noArrow", true);
     QMenu *filterMenu = new QMenu(filter);
     filterMenu->addAction(ptw->m_filterProjectsAction);
     filterMenu->addAction(ptw->m_filterGeneratedFilesAction);
diff --git a/src/plugins/texteditor/outlinefactory.cpp b/src/plugins/texteditor/outlinefactory.cpp
index 85ef0e4aa77..1af5354e0c9 100644
--- a/src/plugins/texteditor/outlinefactory.cpp
+++ b/src/plugins/texteditor/outlinefactory.cpp
@@ -72,6 +72,7 @@ OutlineWidgetStack::OutlineWidgetStack(OutlineFactory *factory) :
     m_filterButton->setIcon(QIcon(QLatin1String(Core::Constants::ICON_FILTER)));
     m_filterButton->setToolTip(tr("Filter tree"));
     m_filterButton->setPopupMode(QToolButton::InstantPopup);
+    m_filterButton->setProperty("noArrow", true);
     m_filterMenu = new QMenu(m_filterButton);
     m_filterButton->setMenu(m_filterMenu);
 
-- 
GitLab