diff --git a/src/plugins/coreplugin/core.qrc b/src/plugins/coreplugin/core.qrc index 3157c4f10ef463b4711828e75ef67b30b7051ae8..3af6f1c15b5fb0d0cbbba656fff74b103eaa93f0 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 88d3af79c6a19df97feddcb043398af63048e056..904d6478e7cdc09079f8c1aa85d4fe918e21662c 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 0eadf2f1fa96881871b9787561e60f3598a4e83c..2ffbc9a270b79856ace51907b649128a76b80238 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 6106002dad00351f08859ab1f55941908abef3c5..2ae6b04aafdc886fa9e8698715b9ae4515ec1976 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 1aeb7c6ad5726021df028673fead313f59a2ada7..9c77a61305c1a3808cc37cd999eab12a6e95d872 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 c432e1662bdad0fa2fdf0383d46a96151d3baebc..b0164d496a41bd4971de56de25f7324f02f60fc1 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 Binary files /dev/null and b/src/plugins/coreplugin/images/button_close.png differ diff --git a/src/plugins/coreplugin/images/filtericon.png b/src/plugins/coreplugin/images/filtericon.png index 3fae2defdecc62af31371f25c2e94ff7e509163e..76a833690ba8201afb37f20b2fde4e5abeb8df9e 100644 Binary files a/src/plugins/coreplugin/images/filtericon.png and b/src/plugins/coreplugin/images/filtericon.png differ diff --git a/src/plugins/coreplugin/images/linkicon.png b/src/plugins/coreplugin/images/linkicon.png index 4e4d4f7b7fbac77c23076501afd79910395a5fce..786c8d65ba995e2a8c8d591a3151f66b16400565 100644 Binary files a/src/plugins/coreplugin/images/linkicon.png and b/src/plugins/coreplugin/images/linkicon.png differ 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 Binary files /dev/null and b/src/plugins/coreplugin/images/splitbutton_closebottom.png differ 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 Binary files /dev/null and b/src/plugins/coreplugin/images/splitbutton_closeleft.png differ 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 Binary files /dev/null and b/src/plugins/coreplugin/images/splitbutton_closeright.png differ 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 Binary files /dev/null and b/src/plugins/coreplugin/images/splitbutton_closetop.png differ diff --git a/src/plugins/coreplugin/images/splitbutton_horizontal.png b/src/plugins/coreplugin/images/splitbutton_horizontal.png index c85a093f2c3250786c13994bef3910d19824d650..de424460c45e100245028b7654773a63442417d1 100644 Binary files a/src/plugins/coreplugin/images/splitbutton_horizontal.png and b/src/plugins/coreplugin/images/splitbutton_horizontal.png differ 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 Binary files /dev/null and b/src/plugins/coreplugin/images/splitbutton_vertical.png differ diff --git a/src/plugins/coreplugin/navigationsubwidget.cpp b/src/plugins/coreplugin/navigationsubwidget.cpp index 8181190976cab67171c84f5cc2f7b7b07cd977d8..88fcb65ef4500d58435e389af3a7fff18922e26e 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 5671a151a41b71726f057245d54921f6b68762f4..93f8b5ca47111ba05aaadb9d02ee78eaf4e27a06 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 1916a0bb2295fa6655136572001078b3a9242780..5bfd80952f54c2c5838932005a3127fee18d8cad 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 85ef0e4aa779ab303c4eeeb95c330b44e19f8893..1af5354e0c96de362f073e87e268b4c8ffb15aee 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);