Commit 37c18239 authored by Alessandro Portale's avatar Alessandro Portale

Flat and themeable side bar icons

This patch adds flat side bar icons according to
http://blog.qt.io/blog/author/didesous/

The flat icons are supposed to be opt-in, via the theme flag
"FlatSideBarIcons=true". It is false by default for the default
theme for now.

Change-Id: I1cbe69d4e138d5d23c0172a374933ac7a4ce8a5b
Reviewed-by: default avatarAlessandro Portale <alessandro.portale@theqtcompany.com>
parent 0f50c41d
......@@ -49,6 +49,7 @@ FancyToolButtonHoverColor=hoverBackground
FancyToolButtonSelectedColor=selectedBackground
FutureProgressBackgroundColor=shadowBackground
IconsBaseColor=ffdcdcdc
IconsDisabledColor=textDisabled
IconsInfoColor=ff43aced
IconsWarningColor=fff9ce1f
IconsErrorColor=ffe8555a
......@@ -57,6 +58,15 @@ IconsStopColor=ffe7353b
IconsDebugColor=ffb8c6ff
IconsInterruptColor=ff7488db
IconsNavigationArrowsColor=ffebc322
IconsBuildHammerHandleColor=ffdd7710
IconsBuildHammerHeadColor=ff989898
IconsModeWelcomeActiveColor=ff80c342
IconsModeEditActiveColor=ff99aaef
IconsModeDesignActiveColor=ffbb6000
IconsModeDebugActiveColor=ff99aaef
IconsModeProjetcsActiveColor=ff80c342
IconsModeAnalyzeActiveColor=ff43adee
IconsModeHelpActiveColor=fff4be04
InfoBarBackground=ff505000
InfoBarText=text
MenuBarEmptyAreaBackgroundColor=shadowBackground
......@@ -157,6 +167,7 @@ DrawProgressBarSunken=false
DrawSearchResultWidgetFrame=false
DrawTargetSelectorBottom=false
ApplyThemePaletteGlobally=true
FlatSideBarIcons=true
[Gradients]
DetailsWidgetHeaderGradient\1\color=0
......
......@@ -3,8 +3,9 @@ ThemeName=default
PreferredStyles=
[Palette]
brightText = ffffffff
darkText = ff000000
brightText=ffffffff
darkText=ff000000
textDisabled=99a0a0a0
[Colors]
BackgroundColorAlternate=ff3d3d3d
......@@ -35,14 +36,15 @@ DoubleTabWidget2ndTabBackgroundColor=ffff0000
DoubleTabWidget2ndTabInactiveTextColor=ff000000
EditorPlaceholderColor=ffe0dcd8
FancyTabBarBackgroundColor=ffff0000
FancyTabWidgetDisabledSelectedTextColor=ffffffff
FancyTabWidgetDisabledUnselectedTextColor=78ffffff
FancyTabWidgetDisabledSelectedTextColor=textDisabled
FancyTabWidgetDisabledUnselectedTextColor=textDisabled
FancyTabWidgetEnabledSelectedTextColor=ff3c3c3c
FancyTabWidgetEnabledUnselectedTextColor=ffffffff
FancyToolButtonHoverColor=28ffffff
FancyToolButtonSelectedColor=32000000
FutureProgressBackgroundColor=ffff0000
IconsBaseColor=ffdcdcdc
IconsDisabledColor=textDisabled
IconsInfoColor=ff43aced
IconsWarningColor=fff9ce1f
IconsErrorColor=ffe8555a
......@@ -51,6 +53,15 @@ IconsStopColor=ffe7353b
IconsDebugColor=ffb8c6ff
IconsInterruptColor=ff7488db
IconsNavigationArrowsColor=ffebc322
IconsBuildHammerHandleColor=ffdd7710
IconsBuildHammerHeadColor=ff989898
IconsModeWelcomeActiveColor=ff5caa15
IconsModeEditActiveColor=ff6a6add
IconsModeDesignActiveColor=ffbb6000
IconsModeDebugActiveColor=ff6a6add
IconsModeProjetcsActiveColor=ff5caa15
IconsModeAnalyzeActiveColor=ff43adee
IconsModeHelpActiveColor=fffaa836
InfoBarBackground=ffffffe1
InfoBarText=ff000000
MenuBarEmptyAreaBackgroundColor=ffff0000
......@@ -151,6 +162,7 @@ DrawProgressBarSunken=true
DrawSearchResultWidgetFrame=true
DrawTargetSelectorBottom=true
ApplyThemePaletteGlobally=false
FlatSideBarIcons=false
[Gradients]
DetailsWidgetHeaderGradient\1\color=ffffff
......
......@@ -39,6 +39,7 @@
#include <QMetaEnum>
#include <QPainter>
#include <QPaintEngine>
#include <QWidget>
namespace Utils {
......@@ -211,11 +212,40 @@ QString Icon::imageFileName() const
return first().first;
}
Icon& Icon::operator=(const Icon &other)
QIcon Icon::sideBarIcon(const Icon &classic, const Icon &flat)
{
QVector::operator =(other);
m_style = other.m_style;
return *this;
QIcon result;
if (creatorTheme()->flag(Theme::FlatSideBarIcons)) {
result = flat.icon();
} else {
const QPixmap pixmap = classic.pixmap();
result.addPixmap(pixmap);
// Ensure that the icon contains a disabled state of that size, since
// Since we have icons with mixed sizes (e.g. DEBUG_START), and want to
// avoid that QIcon creates scaled versions of missing QIcon::Disabled
// sizes.
result.addPixmap(StyleHelper::disabledSideBarIcon(pixmap), QIcon::Disabled);
}
return result;
}
QIcon Icon::modeIcon(const Icon &classic, const Icon &flat, const Icon &flatActive)
{
QIcon result = sideBarIcon(classic, flat);
if (creatorTheme()->flag(Theme::FlatSideBarIcons))
result.addPixmap(flatActive.pixmap(), QIcon::Active);
return result;
}
QIcon Icon::combinedIcon(const QList<QIcon> &icons)
{
QIcon result;
QWindow *window = QApplication::allWidgets().first()->windowHandle();
for (const QIcon &icon: icons)
for (const QIcon::Mode mode: {QIcon::Disabled, QIcon::Normal})
for (const QSize &size: icon.availableSizes(mode))
result.addPixmap(icon.pixmap(window, size, mode), mode);
return result;
}
} // namespace Utils
......@@ -60,6 +60,7 @@ public:
Icon();
Icon(std::initializer_list<IconMaskAndColor> args, Style style = Style::TintedWithShadow);
Icon(const QString &imageFileName);
Icon(const Icon &other) = default;
QIcon icon() const;
// Same as icon() but without disabled state.
......@@ -69,7 +70,14 @@ public:
// where icons are still defined as filename.
QString imageFileName() const;
Icon &operator=(const Icon &other);
// Returns either the classic or a themed icon depending on
// the current Theme::FlatModeIcons flag.
static QIcon sideBarIcon(const Icon &classic, const Icon &flat);
// Like sideBarIcon plus added action mode for the flat icon
static QIcon modeIcon(const Icon &classic, const Icon &flat, const Icon &flatActive);
// Combined icon pixmaps in Normal and Disabled states from several QIcons
static QIcon combinedIcon(const QList<QIcon> &icons);
private:
Style m_style = Style::Plain;
......
......@@ -350,6 +350,21 @@ void StyleHelper::menuGradient(QPainter *painter, const QRect &spanRect, const Q
}
}
QPixmap StyleHelper::disabledSideBarIcon(const QPixmap &enabledicon)
{
QImage im = enabledicon.toImage().convertToFormat(QImage::Format_ARGB32);
for (int y=0; y<im.height(); ++y) {
QRgb *scanLine = reinterpret_cast<QRgb*>(im.scanLine(y));
for (int x=0; x<im.width(); ++x) {
QRgb pixel = *scanLine;
char intensity = char(qGray(pixel));
*scanLine = qRgba(intensity, intensity, intensity, qAlpha(pixel));
++scanLine;
}
}
return QPixmap::fromImage(im);
}
// Draws a cached pixmap with shadow
void StyleHelper::drawIconWithShadow(const QIcon &icon, const QRect &rect,
QPainter *p, QIcon::Mode iconMode, int dipRadius, const QColor &color, const QPoint &dipOffset)
......@@ -363,7 +378,8 @@ void StyleHelper::drawIconWithShadow(const QIcon &icon, const QRect &rect,
// return a high-dpi pixmap, which will in that case have a devicePixelRatio
// different than 1. The shadow drawing caluculations are done in device
// pixels.
QPixmap px = icon.pixmap(rect.size());
QWindow *window = QApplication::allWidgets().first()->windowHandle();
QPixmap px = icon.pixmap(window, rect.size(), iconMode);
int devicePixelRatio = qCeil(px.devicePixelRatio());
int radius = dipRadius * devicePixelRatio;
QPoint offset = dipOffset * devicePixelRatio;
......@@ -372,51 +388,43 @@ void StyleHelper::drawIconWithShadow(const QIcon &icon, const QRect &rect,
QPainter cachePainter(&cache);
if (iconMode == QIcon::Disabled) {
QImage im = px.toImage().convertToFormat(QImage::Format_ARGB32);
for (int y=0; y<im.height(); ++y) {
QRgb *scanLine = (QRgb*)im.scanLine(y);
for (int x=0; x<im.width(); ++x) {
QRgb pixel = *scanLine;
char intensity = qGray(pixel);
*scanLine = qRgba(intensity, intensity, intensity, qAlpha(pixel));
++scanLine;
}
}
px = QPixmap::fromImage(im);
const bool hasDisabledState = icon.availableSizes(QIcon::Disabled).contains(px.size());
if (!hasDisabledState)
px = disabledSideBarIcon(icon.pixmap(window, rect.size()));
} else {
// Draw shadow
QImage tmp(px.size() + QSize(radius * 2, radius * 2 + 1), QImage::Format_ARGB32_Premultiplied);
tmp.fill(Qt::transparent);
QPainter tmpPainter(&tmp);
tmpPainter.setCompositionMode(QPainter::CompositionMode_Source);
tmpPainter.drawPixmap(QRect(radius, radius, px.width(), px.height()), px);
tmpPainter.end();
// blur the alpha channel
QImage blurred(tmp.size(), QImage::Format_ARGB32_Premultiplied);
blurred.fill(Qt::transparent);
QPainter blurPainter(&blurred);
qt_blurImage(&blurPainter, tmp, radius, false, true);
blurPainter.end();
tmp = blurred;
// blacken the image...
tmpPainter.begin(&tmp);
tmpPainter.setCompositionMode(QPainter::CompositionMode_SourceIn);
tmpPainter.fillRect(tmp.rect(), color);
tmpPainter.end();
tmpPainter.begin(&tmp);
tmpPainter.setCompositionMode(QPainter::CompositionMode_SourceIn);
tmpPainter.fillRect(tmp.rect(), color);
tmpPainter.end();
// draw the blurred drop shadow...
cachePainter.drawImage(QRect(0, 0, cache.rect().width(), cache.rect().height()), tmp);
}
// Draw shadow
QImage tmp(px.size() + QSize(radius * 2, radius * 2 + 1), QImage::Format_ARGB32_Premultiplied);
tmp.fill(Qt::transparent);
QPainter tmpPainter(&tmp);
tmpPainter.setCompositionMode(QPainter::CompositionMode_Source);
tmpPainter.drawPixmap(QRect(radius, radius, px.width(), px.height()), px);
tmpPainter.end();
// blur the alpha channel
QImage blurred(tmp.size(), QImage::Format_ARGB32_Premultiplied);
blurred.fill(Qt::transparent);
QPainter blurPainter(&blurred);
qt_blurImage(&blurPainter, tmp, radius, false, true);
blurPainter.end();
tmp = blurred;
// blacken the image...
tmpPainter.begin(&tmp);
tmpPainter.setCompositionMode(QPainter::CompositionMode_SourceIn);
tmpPainter.fillRect(tmp.rect(), color);
tmpPainter.end();
tmpPainter.begin(&tmp);
tmpPainter.setCompositionMode(QPainter::CompositionMode_SourceIn);
tmpPainter.fillRect(tmp.rect(), color);
tmpPainter.end();
// draw the blurred drop shadow...
cachePainter.drawImage(QRect(0, 0, cache.rect().width(), cache.rect().height()), tmp);
// Draw the actual pixmap...
cachePainter.drawPixmap(QRect(QPoint(radius, radius) + offset, QSize(px.width(), px.height())), px);
cache.setDevicePixelRatio(devicePixelRatio);
......
......@@ -85,6 +85,7 @@ public:
static void menuGradient(QPainter *painter, const QRect &spanRect, const QRect &clipRect);
static bool usePixmapCache() { return true; }
static QPixmap disabledSideBarIcon(const QPixmap &enabledicon);
static void drawIconWithShadow(const QIcon &icon, const QRect &rect, QPainter *p, QIcon::Mode iconMode,
int dipRadius = 3, const QColor &color = QColor(0, 0, 0, 130),
const QPoint &dipOffset = QPoint(1, -2));
......
......@@ -133,6 +133,7 @@ public:
/* Icons */
IconsBaseColor,
IconsDisabledColor,
IconsInfoColor,
IconsWarningColor,
IconsErrorColor,
......@@ -141,6 +142,15 @@ public:
IconsInterruptColor,
IconsDebugColor,
IconsNavigationArrowsColor,
IconsBuildHammerHandleColor,
IconsBuildHammerHeadColor,
IconsModeWelcomeActiveColor,
IconsModeEditActiveColor,
IconsModeDesignActiveColor,
IconsModeDebugActiveColor,
IconsModeProjetcsActiveColor,
IconsModeAnalyzeActiveColor,
IconsModeHelpActiveColor,
/* Output panes */
......@@ -249,7 +259,8 @@ public:
DrawIndicatorBranch,
ComboBoxDrawTextShadow,
DerivePaletteFromTheme,
ApplyThemePaletteGlobally
ApplyThemePaletteGlobally,
FlatSideBarIcons
};
enum WidgetStyle {
......
......@@ -2,6 +2,8 @@
<qresource prefix="/">
<file>images/mode_analyze.png</file>
<file>images/mode_analyze@2x.png</file>
<file>images/mode_analyze_mask.png</file>
<file>images/mode_analyze_mask@2x.png</file>
<file>images/analyzer_category.png</file>
<file>images/analyzer_overlay_small.png</file>
<file>images/analyzer_overlay_small@2x.png</file>
......
......@@ -39,6 +39,12 @@ namespace Icons {
const Utils::Icon ANALYZER_CONTROL_START({
{QLatin1String(":/images/analyzer_overlay_small.png"), Utils::Theme::IconsBaseColor},
{QLatin1String(":/core/images/run_overlay_small.png"), Utils::Theme::IconsRunColor}});
const Utils::Icon MODE_ANALYZE_CLASSIC(
QLatin1String(":/images/mode_analyze.png"));
const Utils::Icon MODE_ANALYZE_FLAT({
{QLatin1String(":/images/mode_analyze_mask.png"), Utils::Theme::IconsBaseColor}});
const Utils::Icon MODE_ANALYZE_FLAT_ACTIVE({
{QLatin1String(":/images/mode_analyze_mask.png"), Utils::Theme::IconsModeAnalyzeActiveColor}});
} // namespace Icons
} // namespace Analyzer
......
......@@ -36,7 +36,7 @@
#include "analyzerstartparameters.h"
#include "ianalyzertool.h"
#include <coreplugin/coreconstants.h>
#include <coreplugin/coreicons.h>
#include <coreplugin/findplaceholder.h>
#include <coreplugin/icore.h>
#include <coreplugin/imode.h>
......@@ -106,7 +106,8 @@ public:
{
setContext(Context(C_ANALYZEMODE, C_NAVIGATION_PANE));
setDisplayName(AnalyzerManager::tr("Analyze"));
setIcon(QIcon(QLatin1String(":/images/mode_analyze.png")));
setIcon(Utils::Icon::modeIcon(Icons::MODE_ANALYZE_CLASSIC,
Icons::MODE_ANALYZE_FLAT, Icons::MODE_ANALYZE_FLAT_ACTIVE));
setPriority(P_MODE_ANALYZE);
setId(MODE_ANALYZE);
}
......
......@@ -148,6 +148,19 @@ const Utils::Icon ZOOM({
const Utils::Icon TOOLBAR_EXTENSION({
{QLatin1String(":/core/images/extension.png"), Utils::Theme::IconsBaseColor}});
const Utils::Icon MODE_EDIT_CLASSIC(
QLatin1String(":/fancyactionbar/images/mode_Edit.png"));
const Utils::Icon MODE_EDIT_FLAT({
{QLatin1String(":/fancyactionbar/images/mode_edit_mask.png"), Utils::Theme::IconsBaseColor}});
const Utils::Icon MODE_EDIT_FLAT_ACTIVE({
{QLatin1String(":/fancyactionbar/images/mode_edit_mask.png"), Utils::Theme::IconsModeEditActiveColor}});
const Utils::Icon MODE_DESIGN_CLASSIC(
QLatin1String(":/fancyactionbar/images/mode_Design.png"));
const Utils::Icon MODE_DESIGN_FLAT({
{QLatin1String(":/fancyactionbar/images/mode_design_mask.png"), Utils::Theme::IconsBaseColor}});
const Utils::Icon MODE_DESIGN_FLAT_ACTIVE({
{QLatin1String(":/fancyactionbar/images/mode_design_mask.png"), Utils::Theme::IconsModeDesignActiveColor}});
} // namespace Icons
} // namespace Core
......
......@@ -35,6 +35,8 @@
#include <coreplugin/modemanager.h>
#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/coreconstants.h>
#include <coreplugin/coreicons.h>
#include <coreplugin/editormanager/ieditor.h>
#include <QPointer>
......@@ -90,7 +92,8 @@ DesignMode::DesignMode()
setContext(Context(Constants::C_DESIGN_MODE));
setWidget(d->m_stackWidget);
setDisplayName(tr("Design"));
setIcon(QIcon(QLatin1String(":/fancyactionbar/images/mode_Design.png")));
setIcon(Utils::Icon::modeIcon(Icons::MODE_DESIGN_CLASSIC,
Icons::MODE_DESIGN_FLAT, Icons::MODE_DESIGN_FLAT_ACTIVE));
setPriority(Constants::P_MODE_DESIGN);
setId(Constants::MODE_DESIGN);
......
......@@ -29,6 +29,7 @@
****************************************************************************/
#include "coreconstants.h"
#include "coreicons.h"
#include "editmode.h"
#include "icore.h"
#include "modemanager.h"
......@@ -53,7 +54,8 @@ EditMode::EditMode() :
{
setObjectName(QLatin1String("EditMode"));
setDisplayName(tr("Edit"));
setIcon(QIcon(QLatin1String(":/fancyactionbar/images/mode_Edit.png")));
setIcon(Utils::Icon::modeIcon(Icons::MODE_EDIT_CLASSIC,
Icons::MODE_EDIT_FLAT, Icons::MODE_EDIT_FLAT_ACTIVE));
setPriority(Constants::P_MODE_EDIT);
setId(Constants::MODE_EDIT);
......
......@@ -182,6 +182,8 @@ void FancyToolButton::paintEvent(QPaintEvent *event)
painter.restore();
}
const QIcon::Mode iconMode = isEnabled() ? ((isDown() || isChecked()) ? QIcon::Active : QIcon::Normal)
: QIcon::Disabled;
QRect iconRect(0, 0, Constants::TARGET_ICON_SIZE, Constants::TARGET_ICON_SIZE);
// draw popup texts
if (isTitledAction) {
......@@ -203,7 +205,7 @@ void FancyToolButton::paintEvent(QPaintEvent *event)
centerRect.adjust(0, 0, 0, -lineHeight*2 - 4);
iconRect.moveCenter(centerRect.center());
StyleHelper::drawIconWithShadow(icon(), iconRect, &painter, isEnabled() ? QIcon::Normal : QIcon::Disabled);
StyleHelper::drawIconWithShadow(icon(), iconRect, &painter, iconMode);
painter.setFont(normalFont);
QPoint textOffset = centerRect.center() - QPoint(iconRect.width()/2, iconRect.height()/2);
......@@ -264,7 +266,7 @@ void FancyToolButton::paintEvent(QPaintEvent *event)
}
} else {
iconRect.moveCenter(rect().center());
StyleHelper::drawIconWithShadow(icon(), iconRect, &painter, isEnabled() ? QIcon::Normal : QIcon::Disabled);
StyleHelper::drawIconWithShadow(icon(), iconRect, &painter, iconMode);
}
}
......
......@@ -4,5 +4,9 @@
<file>images/mode_Edit@2x.png</file>
<file>images/mode_Design.png</file>
<file>images/mode_Design@2x.png</file>
<file>images/mode_edit_mask.png</file>
<file>images/mode_edit_mask@2x.png</file>
<file>images/mode_design_mask.png</file>
<file>images/mode_design_mask@2x.png</file>
</qresource>
</RCC>
......@@ -342,7 +342,9 @@ void FancyTabBar::paintTab(QPainter *painter, int tabIndex) const
if (drawIcon) {
int textHeight = painter->fontMetrics().boundingRect(QRect(0, 0, width(), height()), Qt::TextWordWrap, tabText).height();
tabIconRect.adjust(0, 4, 0, -textHeight);
StyleHelper::drawIconWithShadow(tabIcon(tabIndex), tabIconRect, painter, enabled ? QIcon::Normal : QIcon::Disabled);
const QIcon::Mode iconMode = enabled ? (selected ? QIcon::Active : QIcon::Normal)
: QIcon::Disabled;
StyleHelper::drawIconWithShadow(tabIcon(tabIndex), tabIconRect, painter, iconMode);
}
painter->setOpacity(1.0); //FIXME: was 0.7 before?
......
......@@ -3,8 +3,14 @@
<file>images/category_debug.png</file>
<file>images/debugger_breakpoints.png</file>
<file>images/debugger_continue.png</file>
<file>images/debugger_continue@2x.png</file>
<file>images/debugger_continue_mask.png</file>
<file>images/debugger_continue_mask@2x.png</file>
<file>images/debugger_empty_14.png</file>
<file>images/debugger_interrupt.png</file>
<file>images/debugger_interrupt@2x.png</file>
<file>images/debugger_interrupt_mask.png</file>
<file>images/debugger_interrupt_mask@2x.png</file>
<file>images/debugger_reversemode_16.png</file>
<file>images/debugger_singleinstructionmode.png</file>
<file>images/debugger_singleinstructionmode@2x.png</file>
......@@ -30,6 +36,8 @@
<file>images/location_24.png</file>
<file>images/mode_debug.png</file>
<file>images/mode_debug@2x.png</file>
<file>images/mode_debug_mask.png</file>
<file>images/mode_debug_mask@2x.png</file>
<file>images/pin.xpm</file>
<file>images/qml/select.png</file>
<file>images/qml/app-on-top.png</file>
......
......@@ -50,8 +50,14 @@ const Utils::Icon TRACEPOINT(
QLatin1String(":/debugger/images/tracepoint.png"));
const Utils::Icon CONTINUE(
QLatin1String(":/debugger/images/debugger_continue.png"));
const Utils::Icon CONTINUE_FLAT({
{QLatin1String(":/projectexplorer/images/debugger_beetle_mask.png"), Utils::Theme::IconsDebugColor},
{QLatin1String(":/debugger/images/debugger_continue_mask.png"), Utils::Theme::IconsRunColor}});
const Utils::Icon INTERRUPT(
QLatin1String(":/debugger/images/debugger_interrupt.png"));
const Utils::Icon INTERRUPT_FLAT({
{QLatin1String(":/projectexplorer/images/debugger_beetle_mask.png"), Utils::Theme::IconsDebugColor},
{QLatin1String(":/debugger/images/debugger_interrupt_mask.png"), Utils::Theme::IconsInterruptColor}});
const Utils::Icon LOCATION(
QLatin1String(":/debugger/images/location_16.png"));
const Utils::Icon SNAPSHOT(
......@@ -80,6 +86,13 @@ const Utils::Icon RESTART({
const Utils::Icon SINGLE_INSTRUCTION_MODE({
{QLatin1String(":/debugger/images/debugger_singleinstructionmode.png"), Utils::Theme::IconsBaseColor}});
const Utils::Icon MODE_DEBUGGER_CLASSIC(
QLatin1String(":/debugger/images/mode_debug.png"));
const Utils::Icon MODE_DEBUGGER_FLAT({
{QLatin1String(":/debugger/images/mode_debug_mask.png"), Utils::Theme::IconsBaseColor}});
const Utils::Icon MODE_DEBUGGER_FLAT_ACTIVE({
{QLatin1String(":/debugger/images/mode_debug_mask.png"), Utils::Theme::IconsModeDebugActiveColor}});
} // namespace Icons
} // namespace Debugger
......
......@@ -496,7 +496,8 @@ public:
setObjectName(QLatin1String("DebugMode"));
setContext(Context(C_DEBUGMODE, CC::C_NAVIGATION_PANE));
setDisplayName(DebuggerPlugin::tr("Debug"));
setIcon(QIcon(QLatin1String(":/debugger/images/mode_debug.png")));
setIcon(Utils::Icon::modeIcon(Icons::MODE_DEBUGGER_CLASSIC,
Icons::MODE_DEBUGGER_FLAT, Icons::MODE_DEBUGGER_FLAT_ACTIVE));
setPriority(85);
setId(MODE_DEBUG);
}
......@@ -2349,10 +2350,12 @@ void DebuggerPluginPrivate::extensionsInitialized()
m_startIcon = Core::Icons::DEBUG_START_SMALL.icon();
m_exitIcon = Core::Icons::DEBUG_EXIT_SMALL.icon();
m_continueIcon = Core::Icons::DEBUG_CONTINUE_SMALL.icon();
m_continueIcon.addPixmap(Icons::CONTINUE.pixmap());
m_interruptIcon = Core::Icons::DEBUG_INTERRUPT_SMALL.icon();
m_interruptIcon.addPixmap(Icons::INTERRUPT.pixmap());
const QIcon continueSideBarIcon =
Icon::sideBarIcon(Icons::CONTINUE, Icons::CONTINUE_FLAT);
m_continueIcon = Icon::combinedIcon({Core::Icons::DEBUG_CONTINUE_SMALL.icon(), continueSideBarIcon});
const QIcon interruptSideBarIcon =
Icon::sideBarIcon(Icons::INTERRUPT, Icons::INTERRUPT_FLAT);
m_interruptIcon = Icon::combinedIcon({Core::Icons::DEBUG_INTERRUPT_SMALL.icon(), interruptSideBarIcon});
m_locationMarkIcon = Icons::LOCATION.icon();
m_resetIcon = Icons::RESTART.icon();
......@@ -2536,8 +2539,9 @@ void DebuggerPluginPrivate::extensionsInitialized()
// The main "Start Debugging" action.
act = m_startAction = new QAction(this);
QIcon debuggerIcon(Core::Icons::DEBUG_START_SMALL.icon());
debuggerIcon.addPixmap(ProjectExplorer::Icons::DEBUG_START.pixmap());
const QIcon sideBarIcon =
Icon::sideBarIcon(ProjectExplorer::Icons::DEBUG_START, ProjectExplorer::Icons::DEBUG_START_FLAT);
const QIcon debuggerIcon = Icon::combinedIcon({Core::Icons::DEBUG_START_SMALL.icon(), sideBarIcon});
act->setIcon(debuggerIcon);
act->setText(tr("Start Debugging"));
connect(act, &QAction::triggered, [] { ProjectExplorerPlugin::runStartupProject(ProjectExplorer::Constants::DEBUG_RUN_MODE); });
......
......@@ -7,6 +7,8 @@
<file>images/category_help.png</file>
<file>images/mode_help.png</file>
<file>images/mode_help@2x.png</file>
<file>images/mode_help_mask.png</file>
<file>images/mode_help_mask@2x.png</file>
</qresource>
<qresource prefix="/trolltech/assistant" >
<file>images/mac/addtab.png</file>
......
......@@ -30,6 +30,7 @@
#include "helpmode.h"
#include "helpconstants.h"
#include "helpicons.h"