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>
This commit is contained in:
Eike Ziller
2012-02-01 21:39:05 +01:00
committed by Virva Auvinen
parent af6b2dc6ae
commit d3abbae211
19 changed files with 89 additions and 38 deletions

View File

@@ -65,5 +65,11 @@
<file>images/category_qml.png</file> <file>images/category_qml.png</file>
<file>images/filtericon.png</file> <file>images/filtericon.png</file>
<file>images/category_buildrun.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> </qresource>
</RCC> </RCC>

View File

@@ -199,9 +199,15 @@ const char ICON_CLEAR[] = ":/core/images/clear.png";
const char ICON_RESET[] = ":/core/images/reset.png"; const char ICON_RESET[] = ":/core/images/reset.png";
const char ICON_MAGNIFIER[] = ":/core/images/magnifier.png"; const char ICON_MAGNIFIER[] = ":/core/images/magnifier.png";
const char ICON_TOGGLE_SIDEBAR[] = ":/core/images/sidebaricon.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[] = ":/core/images/closebutton.png";
const char ICON_CLOSE_DARK[] = ":/core/images/darkclosebutton.png"; const char ICON_CLOSE_DARK[] = ":/core/images/darkclosebutton.png";
const char ICON_SPLIT_HORIZONTAL[] = ":/core/images/splitbutton_horizontal.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_FILTER[] = ":/core/images/filtericon.png";
const char ICON_LINK[] = ":/core/images/linkicon.png"; const char ICON_LINK[] = ":/core/images/linkicon.png";
const char ICON_QTLOGO_32[] = ":/core/images/logo/32/qtcreator.png"; const char ICON_QTLOGO_32[] = ":/core/images/logo/32/qtcreator.png";

View File

@@ -175,6 +175,11 @@ void EditorView::setCloseSplitEnabled(bool enable)
m_toolBar->setCloseSplitEnabled(enable); m_toolBar->setCloseSplitEnabled(enable);
} }
void EditorView::setCloseSplitIcon(const QIcon &icon)
{
m_toolBar->setCloseSplitIcon(icon);
}
void EditorView::addEditor(IEditor *editor) void EditorView::addEditor(IEditor *editor)
{ {
if (m_editors.contains(editor)) if (m_editors.contains(editor))
@@ -686,6 +691,14 @@ void SplitterOrView::split(Qt::Orientation orientation)
otherView->view()->copyNavigationHistoryFrom(m_view); otherView->view()->copyNavigationHistoryFrom(m_view);
otherView->view()->setCurrentEditor(otherView->view()->currentEditor()); 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) { if (m_view && !m_isRoot) {
em->emptyView(m_view); em->emptyView(m_view);
delete m_view; delete m_view;
@@ -750,6 +763,20 @@ void SplitterOrView::unsplit()
} else { } else {
m_view = childSplitterOrView->takeView(); m_view = childSplitterOrView->takeView();
m_layout->addWidget(m_view); 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); m_layout->setCurrentWidget(m_view);
} }

View File

@@ -38,19 +38,21 @@
#include <QtCore/QMap> #include <QtCore/QMap>
#include <QtCore/QList> #include <QtCore/QList>
#include <QtCore/QString> #include <QtCore/QString>
#include <QtGui/QWidget>
#include <QtCore/QPointer> #include <QtCore/QPointer>
#include <QtCore/QVariant> #include <QtCore/QVariant>
#include <QtGui/QIcon>
#include <QtGui/QWidget>
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
class QAction;
class QComboBox; class QComboBox;
class QToolButton; class QFrame;
class QLabel; class QLabel;
class QStackedWidget;
class QSplitter; class QSplitter;
class QStackedLayout; class QStackedLayout;
class QAction; class QStackedWidget;
class QFrame; class QToolButton;
QT_END_NAMESPACE QT_END_NAMESPACE
namespace Core { namespace Core {
@@ -94,6 +96,7 @@ public:
QObject *object, const char *member); QObject *object, const char *member);
void hideEditorStatusBar(const QString &id); void hideEditorStatusBar(const QString &id);
void setCloseSplitEnabled(bool enable); void setCloseSplitEnabled(bool enable);
void setCloseSplitIcon(const QIcon &icon);
private slots: private slots:
void closeView(); void closeView();

View File

@@ -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_goForwardAction(new QAction(QIcon(QLatin1String(Constants::ICON_NEXT)), EditorManager::tr("Go Forward"), parent)),
m_splitButton(new QToolButton), m_splitButton(new QToolButton),
m_horizontalSplitAction(new QAction(QIcon(QLatin1String(Constants::ICON_SPLIT_HORIZONTAL)), EditorManager::tr("Split"), parent)), 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_closeSplitButton(new QToolButton),
m_activeToolBar(0), m_activeToolBar(0),
m_toolBarPlaceholder(new QWidget), m_toolBarPlaceholder(new QWidget),
@@ -141,13 +141,11 @@ EditorToolBar::EditorToolBar(QWidget *parent) :
d->m_editorList->setModel(d->m_editorsListModel); d->m_editorList->setModel(d->m_editorsListModel);
d->m_editorList->setMaxVisibleItems(40); d->m_editorList->setMaxVisibleItems(40);
d->m_editorList->setContextMenuPolicy(Qt::CustomContextMenu); d->m_editorList->setContextMenuPolicy(Qt::CustomContextMenu);
d->m_editorList->setProperty("hideborder", true);
d->m_closeEditorButton->setAutoRaise(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->setToolTip(tr("Close Document"));
d->m_closeEditorButton->setEnabled(false); d->m_closeEditorButton->setEnabled(false);
d->m_closeEditorButton->setProperty("showborder", true);
d->m_toolBarPlaceholder->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); 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->setIcon(QIcon(QLatin1String(Constants::ICON_SPLIT_HORIZONTAL)));
d->m_splitButton->setToolTip(tr("Split")); d->m_splitButton->setToolTip(tr("Split"));
d->m_splitButton->setPopupMode(QToolButton::InstantPopup); d->m_splitButton->setPopupMode(QToolButton::InstantPopup);
d->m_splitButton->setProperty("noArrow", true);
QMenu *splitMenu = new QMenu(d->m_splitButton); QMenu *splitMenu = new QMenu(d->m_splitButton);
splitMenu->addAction(d->m_horizontalSplitAction); splitMenu->addAction(d->m_horizontalSplitAction);
splitMenu->addAction(d->m_verticalSplitAction); splitMenu->addAction(d->m_verticalSplitAction);
d->m_splitButton->setMenu(splitMenu); d->m_splitButton->setMenu(splitMenu);
d->m_closeSplitButton->setAutoRaise(true); 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")); d->m_closeSplitButton->setToolTip(tr("Remove Split"));
QHBoxLayout *toplayout = new QHBoxLayout(this); QHBoxLayout *toplayout = new QHBoxLayout(this);
@@ -181,10 +180,10 @@ EditorToolBar::EditorToolBar(QWidget *parent) :
toplayout->addWidget(d->m_forwardButton); toplayout->addWidget(d->m_forwardButton);
toplayout->addWidget(d->m_lockButton); toplayout->addWidget(d->m_lockButton);
toplayout->addWidget(d->m_editorList); toplayout->addWidget(d->m_editorList);
toplayout->addWidget(d->m_closeEditorButton);
toplayout->addWidget(d->m_toolBarPlaceholder, 1); // Custom toolbar stretches toplayout->addWidget(d->m_toolBarPlaceholder, 1); // Custom toolbar stretches
toplayout->addWidget(d->m_splitButton); toplayout->addWidget(d->m_splitButton);
toplayout->addWidget(d->m_closeSplitButton); toplayout->addWidget(d->m_closeSplitButton);
toplayout->addWidget(d->m_closeEditorButton);
setLayout(toplayout); setLayout(toplayout);
@@ -240,6 +239,11 @@ void EditorToolBar::setCloseSplitEnabled(bool enable)
d->m_closeSplitButton->setVisible(enable); d->m_closeSplitButton->setVisible(enable);
} }
void EditorToolBar::setCloseSplitIcon(const QIcon &icon)
{
d->m_closeSplitButton->setIcon(icon);
}
void EditorToolBar::closeEditor() void EditorToolBar::closeEditor()
{ {
if (!currentEditor()) if (!currentEditor())

View File

@@ -37,6 +37,8 @@
#include <utils/styledbar.h> #include <utils/styledbar.h>
#include <QtGui/QIcon>
namespace Core { namespace Core {
class IEditor; class IEditor;
@@ -79,6 +81,7 @@ public:
void setCanGoForward(bool canGoForward); void setCanGoForward(bool canGoForward);
void removeToolbarForEditor(IEditor *editor); void removeToolbarForEditor(IEditor *editor);
void setCloseSplitEnabled(bool enable); void setCloseSplitEnabled(bool enable);
void setCloseSplitIcon(const QIcon &icon);
public slots: public slots:
void updateEditorStatus(IEditor *editor); void updateEditorStatus(IEditor *editor);

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 473 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 592 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 408 B

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -88,7 +88,7 @@ NavigationSubWidget::NavigationSubWidget(NavigationWidget *parentWidget, int pos
splitAction->setIcon(QIcon(QLatin1String(Constants::ICON_SPLIT_HORIZONTAL))); splitAction->setIcon(QIcon(QLatin1String(Constants::ICON_SPLIT_HORIZONTAL)));
splitAction->setToolTip(tr("Split")); splitAction->setToolTip(tr("Split"));
QToolButton *close = new QToolButton(); QToolButton *close = new QToolButton();
close->setIcon(QIcon(QLatin1String(Constants::ICON_CLOSE))); close->setIcon(QIcon(QLatin1String(Constants::ICON_CLOSE_SPLIT_TOP)));
close->setToolTip(tr("Close")); close->setToolTip(tr("Close"));
toolBarLayout->addWidget(splitAction); toolBarLayout->addWidget(splitAction);

View File

@@ -83,7 +83,7 @@ SideBarWidget::SideBarWidget(SideBar *sideBar, const QString &id)
QAction *closeAction = new QAction(tr("Close"), m_toolbar); QAction *closeAction = new QAction(tr("Close"), m_toolbar);
closeAction->setToolTip(tr("Close")); 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())); connect(closeAction, SIGNAL(triggered()), this, SIGNAL(closeMe()));
m_toolbar->addAction(closeAction); m_toolbar->addAction(closeAction);

View File

@@ -427,6 +427,7 @@ Core::NavigationView ProjectTreeWidgetFactory::createWidget()
filter->setIcon(QIcon(QLatin1String(Core::Constants::ICON_FILTER))); filter->setIcon(QIcon(QLatin1String(Core::Constants::ICON_FILTER)));
filter->setToolTip(tr("Filter Tree")); filter->setToolTip(tr("Filter Tree"));
filter->setPopupMode(QToolButton::InstantPopup); filter->setPopupMode(QToolButton::InstantPopup);
filter->setProperty("noArrow", true);
QMenu *filterMenu = new QMenu(filter); QMenu *filterMenu = new QMenu(filter);
filterMenu->addAction(ptw->m_filterProjectsAction); filterMenu->addAction(ptw->m_filterProjectsAction);
filterMenu->addAction(ptw->m_filterGeneratedFilesAction); filterMenu->addAction(ptw->m_filterGeneratedFilesAction);

View File

@@ -72,6 +72,7 @@ OutlineWidgetStack::OutlineWidgetStack(OutlineFactory *factory) :
m_filterButton->setIcon(QIcon(QLatin1String(Core::Constants::ICON_FILTER))); m_filterButton->setIcon(QIcon(QLatin1String(Core::Constants::ICON_FILTER)));
m_filterButton->setToolTip(tr("Filter tree")); m_filterButton->setToolTip(tr("Filter tree"));
m_filterButton->setPopupMode(QToolButton::InstantPopup); m_filterButton->setPopupMode(QToolButton::InstantPopup);
m_filterButton->setProperty("noArrow", true);
m_filterMenu = new QMenu(m_filterButton); m_filterMenu = new QMenu(m_filterButton);
m_filterButton->setMenu(m_filterMenu); m_filterButton->setMenu(m_filterMenu);