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: Alessandro Portale <alessandro.portale@theqtcompany.com>
This commit is contained in:
Alessandro Portale
2015-11-11 19:26:58 +01:00
parent 0f50c41d05
commit 37c1823974
61 changed files with 654 additions and 74 deletions

View File

@@ -49,6 +49,7 @@ FancyToolButtonHoverColor=hoverBackground
FancyToolButtonSelectedColor=selectedBackground FancyToolButtonSelectedColor=selectedBackground
FutureProgressBackgroundColor=shadowBackground FutureProgressBackgroundColor=shadowBackground
IconsBaseColor=ffdcdcdc IconsBaseColor=ffdcdcdc
IconsDisabledColor=textDisabled
IconsInfoColor=ff43aced IconsInfoColor=ff43aced
IconsWarningColor=fff9ce1f IconsWarningColor=fff9ce1f
IconsErrorColor=ffe8555a IconsErrorColor=ffe8555a
@@ -57,6 +58,15 @@ IconsStopColor=ffe7353b
IconsDebugColor=ffb8c6ff IconsDebugColor=ffb8c6ff
IconsInterruptColor=ff7488db IconsInterruptColor=ff7488db
IconsNavigationArrowsColor=ffebc322 IconsNavigationArrowsColor=ffebc322
IconsBuildHammerHandleColor=ffdd7710
IconsBuildHammerHeadColor=ff989898
IconsModeWelcomeActiveColor=ff80c342
IconsModeEditActiveColor=ff99aaef
IconsModeDesignActiveColor=ffbb6000
IconsModeDebugActiveColor=ff99aaef
IconsModeProjetcsActiveColor=ff80c342
IconsModeAnalyzeActiveColor=ff43adee
IconsModeHelpActiveColor=fff4be04
InfoBarBackground=ff505000 InfoBarBackground=ff505000
InfoBarText=text InfoBarText=text
MenuBarEmptyAreaBackgroundColor=shadowBackground MenuBarEmptyAreaBackgroundColor=shadowBackground
@@ -157,6 +167,7 @@ DrawProgressBarSunken=false
DrawSearchResultWidgetFrame=false DrawSearchResultWidgetFrame=false
DrawTargetSelectorBottom=false DrawTargetSelectorBottom=false
ApplyThemePaletteGlobally=true ApplyThemePaletteGlobally=true
FlatSideBarIcons=true
[Gradients] [Gradients]
DetailsWidgetHeaderGradient\1\color=0 DetailsWidgetHeaderGradient\1\color=0

View File

@@ -3,8 +3,9 @@ ThemeName=default
PreferredStyles= PreferredStyles=
[Palette] [Palette]
brightText = ffffffff brightText=ffffffff
darkText = ff000000 darkText=ff000000
textDisabled=99a0a0a0
[Colors] [Colors]
BackgroundColorAlternate=ff3d3d3d BackgroundColorAlternate=ff3d3d3d
@@ -35,14 +36,15 @@ DoubleTabWidget2ndTabBackgroundColor=ffff0000
DoubleTabWidget2ndTabInactiveTextColor=ff000000 DoubleTabWidget2ndTabInactiveTextColor=ff000000
EditorPlaceholderColor=ffe0dcd8 EditorPlaceholderColor=ffe0dcd8
FancyTabBarBackgroundColor=ffff0000 FancyTabBarBackgroundColor=ffff0000
FancyTabWidgetDisabledSelectedTextColor=ffffffff FancyTabWidgetDisabledSelectedTextColor=textDisabled
FancyTabWidgetDisabledUnselectedTextColor=78ffffff FancyTabWidgetDisabledUnselectedTextColor=textDisabled
FancyTabWidgetEnabledSelectedTextColor=ff3c3c3c FancyTabWidgetEnabledSelectedTextColor=ff3c3c3c
FancyTabWidgetEnabledUnselectedTextColor=ffffffff FancyTabWidgetEnabledUnselectedTextColor=ffffffff
FancyToolButtonHoverColor=28ffffff FancyToolButtonHoverColor=28ffffff
FancyToolButtonSelectedColor=32000000 FancyToolButtonSelectedColor=32000000
FutureProgressBackgroundColor=ffff0000 FutureProgressBackgroundColor=ffff0000
IconsBaseColor=ffdcdcdc IconsBaseColor=ffdcdcdc
IconsDisabledColor=textDisabled
IconsInfoColor=ff43aced IconsInfoColor=ff43aced
IconsWarningColor=fff9ce1f IconsWarningColor=fff9ce1f
IconsErrorColor=ffe8555a IconsErrorColor=ffe8555a
@@ -51,6 +53,15 @@ IconsStopColor=ffe7353b
IconsDebugColor=ffb8c6ff IconsDebugColor=ffb8c6ff
IconsInterruptColor=ff7488db IconsInterruptColor=ff7488db
IconsNavigationArrowsColor=ffebc322 IconsNavigationArrowsColor=ffebc322
IconsBuildHammerHandleColor=ffdd7710
IconsBuildHammerHeadColor=ff989898
IconsModeWelcomeActiveColor=ff5caa15
IconsModeEditActiveColor=ff6a6add
IconsModeDesignActiveColor=ffbb6000
IconsModeDebugActiveColor=ff6a6add
IconsModeProjetcsActiveColor=ff5caa15
IconsModeAnalyzeActiveColor=ff43adee
IconsModeHelpActiveColor=fffaa836
InfoBarBackground=ffffffe1 InfoBarBackground=ffffffe1
InfoBarText=ff000000 InfoBarText=ff000000
MenuBarEmptyAreaBackgroundColor=ffff0000 MenuBarEmptyAreaBackgroundColor=ffff0000
@@ -151,6 +162,7 @@ DrawProgressBarSunken=true
DrawSearchResultWidgetFrame=true DrawSearchResultWidgetFrame=true
DrawTargetSelectorBottom=true DrawTargetSelectorBottom=true
ApplyThemePaletteGlobally=false ApplyThemePaletteGlobally=false
FlatSideBarIcons=false
[Gradients] [Gradients]
DetailsWidgetHeaderGradient\1\color=ffffff DetailsWidgetHeaderGradient\1\color=ffffff

View File

@@ -39,6 +39,7 @@
#include <QMetaEnum> #include <QMetaEnum>
#include <QPainter> #include <QPainter>
#include <QPaintEngine> #include <QPaintEngine>
#include <QWidget>
namespace Utils { namespace Utils {
@@ -211,11 +212,40 @@ QString Icon::imageFileName() const
return first().first; return first().first;
} }
Icon& Icon::operator=(const Icon &other) QIcon Icon::sideBarIcon(const Icon &classic, const Icon &flat)
{ {
QVector::operator =(other); QIcon result;
m_style = other.m_style; if (creatorTheme()->flag(Theme::FlatSideBarIcons)) {
return *this; 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 } // namespace Utils

View File

@@ -60,6 +60,7 @@ public:
Icon(); Icon();
Icon(std::initializer_list<IconMaskAndColor> args, Style style = Style::TintedWithShadow); Icon(std::initializer_list<IconMaskAndColor> args, Style style = Style::TintedWithShadow);
Icon(const QString &imageFileName); Icon(const QString &imageFileName);
Icon(const Icon &other) = default;
QIcon icon() const; QIcon icon() const;
// Same as icon() but without disabled state. // Same as icon() but without disabled state.
@@ -69,7 +70,14 @@ public:
// where icons are still defined as filename. // where icons are still defined as filename.
QString imageFileName() const; 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: private:
Style m_style = Style::Plain; Style m_style = Style::Plain;

View File

@@ -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 // Draws a cached pixmap with shadow
void StyleHelper::drawIconWithShadow(const QIcon &icon, const QRect &rect, void StyleHelper::drawIconWithShadow(const QIcon &icon, const QRect &rect,
QPainter *p, QIcon::Mode iconMode, int dipRadius, const QColor &color, const QPoint &dipOffset) 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 // return a high-dpi pixmap, which will in that case have a devicePixelRatio
// different than 1. The shadow drawing caluculations are done in device // different than 1. The shadow drawing caluculations are done in device
// pixels. // 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 devicePixelRatio = qCeil(px.devicePixelRatio());
int radius = dipRadius * devicePixelRatio; int radius = dipRadius * devicePixelRatio;
QPoint offset = dipOffset * devicePixelRatio; QPoint offset = dipOffset * devicePixelRatio;
@@ -372,51 +388,43 @@ void StyleHelper::drawIconWithShadow(const QIcon &icon, const QRect &rect,
QPainter cachePainter(&cache); QPainter cachePainter(&cache);
if (iconMode == QIcon::Disabled) { if (iconMode == QIcon::Disabled) {
QImage im = px.toImage().convertToFormat(QImage::Format_ARGB32); const bool hasDisabledState = icon.availableSizes(QIcon::Disabled).contains(px.size());
for (int y=0; y<im.height(); ++y) { if (!hasDisabledState)
QRgb *scanLine = (QRgb*)im.scanLine(y); px = disabledSideBarIcon(icon.pixmap(window, rect.size()));
for (int x=0; x<im.width(); ++x) { } else {
QRgb pixel = *scanLine; // Draw shadow
char intensity = qGray(pixel); QImage tmp(px.size() + QSize(radius * 2, radius * 2 + 1), QImage::Format_ARGB32_Premultiplied);
*scanLine = qRgba(intensity, intensity, intensity, qAlpha(pixel)); tmp.fill(Qt::transparent);
++scanLine;
} QPainter tmpPainter(&tmp);
} tmpPainter.setCompositionMode(QPainter::CompositionMode_Source);
px = QPixmap::fromImage(im); 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... // Draw the actual pixmap...
cachePainter.drawPixmap(QRect(QPoint(radius, radius) + offset, QSize(px.width(), px.height())), px); cachePainter.drawPixmap(QRect(QPoint(radius, radius) + offset, QSize(px.width(), px.height())), px);
cache.setDevicePixelRatio(devicePixelRatio); cache.setDevicePixelRatio(devicePixelRatio);

View File

@@ -85,6 +85,7 @@ public:
static void menuGradient(QPainter *painter, const QRect &spanRect, const QRect &clipRect); static void menuGradient(QPainter *painter, const QRect &spanRect, const QRect &clipRect);
static bool usePixmapCache() { return true; } 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, 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), int dipRadius = 3, const QColor &color = QColor(0, 0, 0, 130),
const QPoint &dipOffset = QPoint(1, -2)); const QPoint &dipOffset = QPoint(1, -2));

View File

@@ -133,6 +133,7 @@ public:
/* Icons */ /* Icons */
IconsBaseColor, IconsBaseColor,
IconsDisabledColor,
IconsInfoColor, IconsInfoColor,
IconsWarningColor, IconsWarningColor,
IconsErrorColor, IconsErrorColor,
@@ -141,6 +142,15 @@ public:
IconsInterruptColor, IconsInterruptColor,
IconsDebugColor, IconsDebugColor,
IconsNavigationArrowsColor, IconsNavigationArrowsColor,
IconsBuildHammerHandleColor,
IconsBuildHammerHeadColor,
IconsModeWelcomeActiveColor,
IconsModeEditActiveColor,
IconsModeDesignActiveColor,
IconsModeDebugActiveColor,
IconsModeProjetcsActiveColor,
IconsModeAnalyzeActiveColor,
IconsModeHelpActiveColor,
/* Output panes */ /* Output panes */
@@ -249,7 +259,8 @@ public:
DrawIndicatorBranch, DrawIndicatorBranch,
ComboBoxDrawTextShadow, ComboBoxDrawTextShadow,
DerivePaletteFromTheme, DerivePaletteFromTheme,
ApplyThemePaletteGlobally ApplyThemePaletteGlobally,
FlatSideBarIcons
}; };
enum WidgetStyle { enum WidgetStyle {

View File

@@ -2,6 +2,8 @@
<qresource prefix="/"> <qresource prefix="/">
<file>images/mode_analyze.png</file> <file>images/mode_analyze.png</file>
<file>images/mode_analyze@2x.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_category.png</file>
<file>images/analyzer_overlay_small.png</file> <file>images/analyzer_overlay_small.png</file>
<file>images/analyzer_overlay_small@2x.png</file> <file>images/analyzer_overlay_small@2x.png</file>

View File

@@ -39,6 +39,12 @@ namespace Icons {
const Utils::Icon ANALYZER_CONTROL_START({ const Utils::Icon ANALYZER_CONTROL_START({
{QLatin1String(":/images/analyzer_overlay_small.png"), Utils::Theme::IconsBaseColor}, {QLatin1String(":/images/analyzer_overlay_small.png"), Utils::Theme::IconsBaseColor},
{QLatin1String(":/core/images/run_overlay_small.png"), Utils::Theme::IconsRunColor}}); {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 Icons
} // namespace Analyzer } // namespace Analyzer

View File

@@ -36,7 +36,7 @@
#include "analyzerstartparameters.h" #include "analyzerstartparameters.h"
#include "ianalyzertool.h" #include "ianalyzertool.h"
#include <coreplugin/coreconstants.h> #include <coreplugin/coreicons.h>
#include <coreplugin/findplaceholder.h> #include <coreplugin/findplaceholder.h>
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <coreplugin/imode.h> #include <coreplugin/imode.h>
@@ -106,7 +106,8 @@ public:
{ {
setContext(Context(C_ANALYZEMODE, C_NAVIGATION_PANE)); setContext(Context(C_ANALYZEMODE, C_NAVIGATION_PANE));
setDisplayName(AnalyzerManager::tr("Analyze")); 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); setPriority(P_MODE_ANALYZE);
setId(MODE_ANALYZE); setId(MODE_ANALYZE);
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

View File

@@ -148,6 +148,19 @@ const Utils::Icon ZOOM({
const Utils::Icon TOOLBAR_EXTENSION({ const Utils::Icon TOOLBAR_EXTENSION({
{QLatin1String(":/core/images/extension.png"), Utils::Theme::IconsBaseColor}}); {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 Icons
} // namespace Core } // namespace Core

View File

@@ -35,6 +35,8 @@
#include <coreplugin/modemanager.h> #include <coreplugin/modemanager.h>
#include <coreplugin/editormanager/editormanager.h> #include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/coreconstants.h> #include <coreplugin/coreconstants.h>
#include <coreplugin/coreicons.h>
#include <coreplugin/editormanager/ieditor.h> #include <coreplugin/editormanager/ieditor.h>
#include <QPointer> #include <QPointer>
@@ -90,7 +92,8 @@ DesignMode::DesignMode()
setContext(Context(Constants::C_DESIGN_MODE)); setContext(Context(Constants::C_DESIGN_MODE));
setWidget(d->m_stackWidget); setWidget(d->m_stackWidget);
setDisplayName(tr("Design")); 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); setPriority(Constants::P_MODE_DESIGN);
setId(Constants::MODE_DESIGN); setId(Constants::MODE_DESIGN);

View File

@@ -29,6 +29,7 @@
****************************************************************************/ ****************************************************************************/
#include "coreconstants.h" #include "coreconstants.h"
#include "coreicons.h"
#include "editmode.h" #include "editmode.h"
#include "icore.h" #include "icore.h"
#include "modemanager.h" #include "modemanager.h"
@@ -53,7 +54,8 @@ EditMode::EditMode() :
{ {
setObjectName(QLatin1String("EditMode")); setObjectName(QLatin1String("EditMode"));
setDisplayName(tr("Edit")); 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); setPriority(Constants::P_MODE_EDIT);
setId(Constants::MODE_EDIT); setId(Constants::MODE_EDIT);

View File

@@ -182,6 +182,8 @@ void FancyToolButton::paintEvent(QPaintEvent *event)
painter.restore(); 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); QRect iconRect(0, 0, Constants::TARGET_ICON_SIZE, Constants::TARGET_ICON_SIZE);
// draw popup texts // draw popup texts
if (isTitledAction) { if (isTitledAction) {
@@ -203,7 +205,7 @@ void FancyToolButton::paintEvent(QPaintEvent *event)
centerRect.adjust(0, 0, 0, -lineHeight*2 - 4); centerRect.adjust(0, 0, 0, -lineHeight*2 - 4);
iconRect.moveCenter(centerRect.center()); iconRect.moveCenter(centerRect.center());
StyleHelper::drawIconWithShadow(icon(), iconRect, &painter, isEnabled() ? QIcon::Normal : QIcon::Disabled); StyleHelper::drawIconWithShadow(icon(), iconRect, &painter, iconMode);
painter.setFont(normalFont); painter.setFont(normalFont);
QPoint textOffset = centerRect.center() - QPoint(iconRect.width()/2, iconRect.height()/2); QPoint textOffset = centerRect.center() - QPoint(iconRect.width()/2, iconRect.height()/2);
@@ -264,7 +266,7 @@ void FancyToolButton::paintEvent(QPaintEvent *event)
} }
} else { } else {
iconRect.moveCenter(rect().center()); iconRect.moveCenter(rect().center());
StyleHelper::drawIconWithShadow(icon(), iconRect, &painter, isEnabled() ? QIcon::Normal : QIcon::Disabled); StyleHelper::drawIconWithShadow(icon(), iconRect, &painter, iconMode);
} }
} }

View File

@@ -4,5 +4,9 @@
<file>images/mode_Edit@2x.png</file> <file>images/mode_Edit@2x.png</file>
<file>images/mode_Design.png</file> <file>images/mode_Design.png</file>
<file>images/mode_Design@2x.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> </qresource>
</RCC> </RCC>

View File

@@ -342,7 +342,9 @@ void FancyTabBar::paintTab(QPainter *painter, int tabIndex) const
if (drawIcon) { if (drawIcon) {
int textHeight = painter->fontMetrics().boundingRect(QRect(0, 0, width(), height()), Qt::TextWordWrap, tabText).height(); int textHeight = painter->fontMetrics().boundingRect(QRect(0, 0, width(), height()), Qt::TextWordWrap, tabText).height();
tabIconRect.adjust(0, 4, 0, -textHeight); 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? painter->setOpacity(1.0); //FIXME: was 0.7 before?

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 323 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 B

View File

@@ -3,8 +3,14 @@
<file>images/category_debug.png</file> <file>images/category_debug.png</file>
<file>images/debugger_breakpoints.png</file> <file>images/debugger_breakpoints.png</file>
<file>images/debugger_continue.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_empty_14.png</file>
<file>images/debugger_interrupt.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_reversemode_16.png</file>
<file>images/debugger_singleinstructionmode.png</file> <file>images/debugger_singleinstructionmode.png</file>
<file>images/debugger_singleinstructionmode@2x.png</file> <file>images/debugger_singleinstructionmode@2x.png</file>
@@ -30,6 +36,8 @@
<file>images/location_24.png</file> <file>images/location_24.png</file>
<file>images/mode_debug.png</file> <file>images/mode_debug.png</file>
<file>images/mode_debug@2x.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/pin.xpm</file>
<file>images/qml/select.png</file> <file>images/qml/select.png</file>
<file>images/qml/app-on-top.png</file> <file>images/qml/app-on-top.png</file>

View File

@@ -50,8 +50,14 @@ const Utils::Icon TRACEPOINT(
QLatin1String(":/debugger/images/tracepoint.png")); QLatin1String(":/debugger/images/tracepoint.png"));
const Utils::Icon CONTINUE( const Utils::Icon CONTINUE(
QLatin1String(":/debugger/images/debugger_continue.png")); 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( const Utils::Icon INTERRUPT(
QLatin1String(":/debugger/images/debugger_interrupt.png")); 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( const Utils::Icon LOCATION(
QLatin1String(":/debugger/images/location_16.png")); QLatin1String(":/debugger/images/location_16.png"));
const Utils::Icon SNAPSHOT( const Utils::Icon SNAPSHOT(
@@ -80,6 +86,13 @@ const Utils::Icon RESTART({
const Utils::Icon SINGLE_INSTRUCTION_MODE({ const Utils::Icon SINGLE_INSTRUCTION_MODE({
{QLatin1String(":/debugger/images/debugger_singleinstructionmode.png"), Utils::Theme::IconsBaseColor}}); {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 Icons
} // namespace Debugger } // namespace Debugger

View File

@@ -496,7 +496,8 @@ public:
setObjectName(QLatin1String("DebugMode")); setObjectName(QLatin1String("DebugMode"));
setContext(Context(C_DEBUGMODE, CC::C_NAVIGATION_PANE)); setContext(Context(C_DEBUGMODE, CC::C_NAVIGATION_PANE));
setDisplayName(DebuggerPlugin::tr("Debug")); 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); setPriority(85);
setId(MODE_DEBUG); setId(MODE_DEBUG);
} }
@@ -2349,10 +2350,12 @@ void DebuggerPluginPrivate::extensionsInitialized()
m_startIcon = Core::Icons::DEBUG_START_SMALL.icon(); m_startIcon = Core::Icons::DEBUG_START_SMALL.icon();
m_exitIcon = Core::Icons::DEBUG_EXIT_SMALL.icon(); m_exitIcon = Core::Icons::DEBUG_EXIT_SMALL.icon();
m_continueIcon = Core::Icons::DEBUG_CONTINUE_SMALL.icon(); const QIcon continueSideBarIcon =
m_continueIcon.addPixmap(Icons::CONTINUE.pixmap()); Icon::sideBarIcon(Icons::CONTINUE, Icons::CONTINUE_FLAT);
m_interruptIcon = Core::Icons::DEBUG_INTERRUPT_SMALL.icon(); m_continueIcon = Icon::combinedIcon({Core::Icons::DEBUG_CONTINUE_SMALL.icon(), continueSideBarIcon});
m_interruptIcon.addPixmap(Icons::INTERRUPT.pixmap()); 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_locationMarkIcon = Icons::LOCATION.icon();
m_resetIcon = Icons::RESTART.icon(); m_resetIcon = Icons::RESTART.icon();
@@ -2536,8 +2539,9 @@ void DebuggerPluginPrivate::extensionsInitialized()
// The main "Start Debugging" action. // The main "Start Debugging" action.
act = m_startAction = new QAction(this); act = m_startAction = new QAction(this);
QIcon debuggerIcon(Core::Icons::DEBUG_START_SMALL.icon()); const QIcon sideBarIcon =
debuggerIcon.addPixmap(ProjectExplorer::Icons::DEBUG_START.pixmap()); 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->setIcon(debuggerIcon);
act->setText(tr("Start Debugging")); act->setText(tr("Start Debugging"));
connect(act, &QAction::triggered, [] { ProjectExplorerPlugin::runStartupProject(ProjectExplorer::Constants::DEBUG_RUN_MODE); }); connect(act, &QAction::triggered, [] { ProjectExplorerPlugin::runStartupProject(ProjectExplorer::Constants::DEBUG_RUN_MODE); });

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 456 B

View File

@@ -7,6 +7,8 @@
<file>images/category_help.png</file> <file>images/category_help.png</file>
<file>images/mode_help.png</file> <file>images/mode_help.png</file>
<file>images/mode_help@2x.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>
<qresource prefix="/trolltech/assistant" > <qresource prefix="/trolltech/assistant" >
<file>images/mac/addtab.png</file> <file>images/mac/addtab.png</file>

View File

@@ -30,6 +30,7 @@
#include "helpmode.h" #include "helpmode.h"
#include "helpconstants.h" #include "helpconstants.h"
#include "helpicons.h"
#include <QCoreApplication> #include <QCoreApplication>
@@ -41,7 +42,8 @@ HelpMode::HelpMode(QObject *parent)
{ {
setObjectName(QLatin1String("HelpMode")); setObjectName(QLatin1String("HelpMode"));
setContext(Core::Context(Constants::C_MODE_HELP)); setContext(Core::Context(Constants::C_MODE_HELP));
setIcon(QIcon(QLatin1String(":/help/images/mode_help.png"))); setIcon(Utils::Icon::modeIcon(Icons::MODE_HELP_CLASSIC,
Icons::MODE_HELP_FLAT, Icons::MODE_HELP_FLAT_ACTIVE));
setDisplayName(QCoreApplication::translate("Help::Internal::HelpMode", "Help")); setDisplayName(QCoreApplication::translate("Help::Internal::HelpMode", "Help"));
setPriority(Constants::P_MODE_HELP); setPriority(Constants::P_MODE_HELP);
setId(Constants::ID_MODE_HELP); setId(Constants::ID_MODE_HELP);

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 531 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 436 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 273 B

View File

@@ -396,7 +396,8 @@ public:
setWidget(proWindow); setWidget(proWindow);
setContext(Context(Constants::C_PROJECTEXPLORER)); setContext(Context(Constants::C_PROJECTEXPLORER));
setDisplayName(QCoreApplication::translate("ProjectExplorer::ProjectsMode", "Projects")); setDisplayName(QCoreApplication::translate("ProjectExplorer::ProjectsMode", "Projects"));
setIcon(QIcon(QLatin1String(":/projectexplorer/images/mode_project.png"))); setIcon(Utils::Icon::modeIcon(Icons::MODE_PROJECT_CLASSIC,
Icons::MODE_PROJECT_FLAT, Icons::MODE_PROJECT_FLAT_ACTIVE));
setPriority(Constants::P_MODE_SESSION); setPriority(Constants::P_MODE_SESSION);
setId(Constants::MODE_SESSION); setId(Constants::MODE_SESSION);
setContextHelpId(QLatin1String("Managing Projects")); setContextHelpId(QLatin1String("Managing Projects"));
@@ -704,7 +705,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
ActionContainer *runMenu = ActionManager::createMenu(Constants::RUNMENUCONTEXTMENU); ActionContainer *runMenu = ActionManager::createMenu(Constants::RUNMENUCONTEXTMENU);
runMenu->setOnAllDisabledBehavior(ActionContainer::Hide); runMenu->setOnAllDisabledBehavior(ActionContainer::Hide);
QIcon runIcon = Icons::RUN.icon(); QIcon runIcon = Utils::Icon::sideBarIcon(Icons::RUN, Icons::RUN_FLAT);
runIcon.addPixmap(Icons::RUN_SMALL.pixmap()); runIcon.addPixmap(Icons::RUN_SMALL.pixmap());
runMenu->menu()->setIcon(runIcon); runMenu->menu()->setIcon(runIcon);
runMenu->menu()->setTitle(tr("Run")); runMenu->menu()->setTitle(tr("Run"));
@@ -839,8 +840,8 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
msessionContextMenu->addAction(cmd, Constants::G_SESSION_FILES); msessionContextMenu->addAction(cmd, Constants::G_SESSION_FILES);
// build session action // build session action
QIcon buildIcon = Icons::BUILD.icon(); const QIcon sideBarIcon = Utils::Icon::sideBarIcon(Icons::BUILD, Icons::BUILD_FLAT);
buildIcon.addPixmap(Icons::BUILD_SMALL.pixmap()); const QIcon buildIcon = Utils::Icon::combinedIcon({Icons::BUILD_SMALL.icon(), sideBarIcon});
dd->m_buildSessionAction = new QAction(buildIcon, tr("Build All"), this); dd->m_buildSessionAction = new QAction(buildIcon, tr("Build All"), this);
cmd = ActionManager::registerAction(dd->m_buildSessionAction, Constants::BUILDSESSION); cmd = ActionManager::registerAction(dd->m_buildSessionAction, Constants::BUILDSESSION);
cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+Shift+B"))); cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+Shift+B")));

View File

@@ -7,13 +7,21 @@
<file>images/closetab.png</file> <file>images/closetab.png</file>
<file>images/debugger_start.png</file> <file>images/debugger_start.png</file>
<file>images/debugger_start@2x.png</file> <file>images/debugger_start@2x.png</file>
<file>images/debugger_beetle_mask.png</file>
<file>images/debugger_beetle_mask@2x.png</file>
<file>images/debugger_run_mask.png</file>
<file>images/debugger_run_mask@2x.png</file>
<file>images/mode_project.png</file> <file>images/mode_project.png</file>
<file>images/mode_project@2x.png</file> <file>images/mode_project@2x.png</file>
<file>images/mode_project_mask.png</file>
<file>images/mode_project_mask@2x.png</file>
<file>images/projectexplorer.png</file> <file>images/projectexplorer.png</file>
<file>images/rebuild.png</file> <file>images/rebuild.png</file>
<file>images/rebuild_small.png</file> <file>images/rebuild_small.png</file>
<file>images/run.png</file> <file>images/run.png</file>
<file>images/run@2x.png</file> <file>images/run@2x.png</file>
<file>images/run_mask.png</file>
<file>images/run_mask@2x.png</file>
<file>images/run_small.png</file> <file>images/run_small.png</file>
<file>images/run_small@2x.png</file> <file>images/run_small@2x.png</file>
<file>images/session.png</file> <file>images/session.png</file>
@@ -35,6 +43,10 @@
<file>images/DeviceReadyToUse.png</file> <file>images/DeviceReadyToUse.png</file>
<file>images/build.png</file> <file>images/build.png</file>
<file>images/build@2x.png</file> <file>images/build@2x.png</file>
<file>images/build_hammerhandle_mask.png</file>
<file>images/build_hammerhandle_mask@2x.png</file>
<file>images/build_hammerhead_mask.png</file>
<file>images/build_hammerhead_mask@2x.png</file>
<file>images/targetpanel_bottom.png</file> <file>images/targetpanel_bottom.png</file>
<file>images/targetpanel_gradient.png</file> <file>images/targetpanel_gradient.png</file>
<file>images/window.png</file> <file>images/window.png</file>

View File

@@ -38,6 +38,9 @@ namespace Icons {
const Utils::Icon BUILD( const Utils::Icon BUILD(
QLatin1String(":/projectexplorer/images/build.png")); QLatin1String(":/projectexplorer/images/build.png"));
const Utils::Icon BUILD_FLAT({
{QLatin1String(":/projectexplorer/images/build_hammerhandle_mask.png"), Utils::Theme::IconsBuildHammerHandleColor},
{QLatin1String(":/projectexplorer/images/build_hammerhead_mask.png"), Utils::Theme::IconsBuildHammerHeadColor}});
const Utils::Icon BUILD_SMALL( const Utils::Icon BUILD_SMALL(
QLatin1String(":/projectexplorer/images/build_small.png")); QLatin1String(":/projectexplorer/images/build_small.png"));
const Utils::Icon CLEAN( const Utils::Icon CLEAN(
@@ -50,15 +53,26 @@ const Utils::Icon REBUILD_SMALL(
QLatin1String(":/projectexplorer/images/rebuild_small.png")); QLatin1String(":/projectexplorer/images/rebuild_small.png"));
const Utils::Icon RUN( const Utils::Icon RUN(
QLatin1String(":/projectexplorer/images/run.png")); QLatin1String(":/projectexplorer/images/run.png"));
const Utils::Icon RUN_FLAT({
{QLatin1String(":/projectexplorer/images/run_mask.png"), Utils::Theme::IconsRunColor}});
const Utils::Icon WINDOW( const Utils::Icon WINDOW(
QLatin1String(":/projectexplorer/images/window.png")); QLatin1String(":/projectexplorer/images/window.png"));
const Utils::Icon DEBUG_START( const Utils::Icon DEBUG_START(
QLatin1String(":/projectexplorer/images/debugger_start.png")); QLatin1String(":/projectexplorer/images/debugger_start.png"));
const Utils::Icon DEBUG_START_FLAT({
{QLatin1String(":/projectexplorer/images/debugger_beetle_mask.png"), Utils::Theme::IconsDebugColor},
{QLatin1String(":/projectexplorer/images/debugger_run_mask.png"), Utils::Theme::IconsRunColor}});
const Utils::Icon RUN_SMALL({ const Utils::Icon RUN_SMALL({
{QLatin1String(":/projectexplorer/images/run_small.png"), Utils::Theme::IconsRunColor}}); {QLatin1String(":/projectexplorer/images/run_small.png"), Utils::Theme::IconsRunColor}});
const Utils::Icon STOP_SMALL({ const Utils::Icon STOP_SMALL({
{QLatin1String(":/projectexplorer/images/stop_small.png"), Utils::Theme::IconsStopColor}}); {QLatin1String(":/projectexplorer/images/stop_small.png"), Utils::Theme::IconsStopColor}});
const Utils::Icon MODE_PROJECT_CLASSIC(
QLatin1String(":/projectexplorer/images/mode_project.png"));
const Utils::Icon MODE_PROJECT_FLAT({
{QLatin1String(":/projectexplorer/images/mode_project_mask.png"), Utils::Theme::IconsBaseColor}});
const Utils::Icon MODE_PROJECT_FLAT_ACTIVE({
{QLatin1String(":/projectexplorer/images/mode_project_mask.png"), Utils::Theme::IconsModeProjetcsActiveColor}});
} // namespace Icons } // namespace Icons
} // namespace ProjectExplorer } // namespace ProjectExplorer

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 B

View File

@@ -2,5 +2,7 @@
<qresource prefix="/welcome"> <qresource prefix="/welcome">
<file>images/mode_welcome.png</file> <file>images/mode_welcome.png</file>
<file>images/mode_welcome@2x.png</file> <file>images/mode_welcome@2x.png</file>
<file>images/mode_welcome_mask.png</file>
<file>images/mode_welcome_mask@2x.png</file>
</qresource> </qresource>
</RCC> </RCC>

View File

@@ -40,6 +40,7 @@
#include <coreplugin/modemanager.h> #include <coreplugin/modemanager.h>
#include <utils/algorithm.h> #include <utils/algorithm.h>
#include <utils/icon.h>
#include <utils/fileutils.h> #include <utils/fileutils.h>
#include <utils/hostosinfo.h> #include <utils/hostosinfo.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
@@ -130,7 +131,16 @@ WelcomeMode::WelcomeMode()
: m_activePlugin(0) : m_activePlugin(0)
{ {
setDisplayName(tr("Welcome")); setDisplayName(tr("Welcome"));
setIcon(QIcon(QLatin1String(":/welcome/images/mode_welcome.png")));
const Utils::Icon MODE_WELCOME_CLASSIC(
QLatin1String(":/welcome/images/mode_welcome.png"));
const Utils::Icon MODE_WELCOME_FLAT({
{QLatin1String(":/welcome/images/mode_welcome_mask.png"), Utils::Theme::IconsBaseColor}});
const Utils::Icon MODE_WELCOME_FLAT_ACTIVE({
{QLatin1String(":/welcome/images/mode_welcome_mask.png"), Utils::Theme::IconsModeWelcomeActiveColor}});
setIcon(Utils::Icon::modeIcon(MODE_WELCOME_CLASSIC,
MODE_WELCOME_FLAT, MODE_WELCOME_FLAT_ACTIVE));
setPriority(Constants::P_MODE_WELCOME); setPriority(Constants::P_MODE_WELCOME);
setId(Constants::MODE_WELCOME); setId(Constants::MODE_WELCOME);
setContextHelpId(QLatin1String("Qt Creator Manual")); setContextHelpId(QLatin1String("Qt Creator Manual"));

View File

@@ -40,6 +40,12 @@ const Utils::Icon BOOKMARK(
QLatin1String(":/help/images/bookmark.png")); QLatin1String(":/help/images/bookmark.png"));
const Utils::Icon HOME( const Utils::Icon HOME(
QLatin1String(":/help/images/home.png")); QLatin1String(":/help/images/home.png"));
const Utils::Icon MODE_HELP_CLASSIC(
QLatin1String(":/help/images/mode_help.png"));
const Utils::Icon MODE_HELP_FLAT({
{QLatin1String(":/help/images/mode_help_mask.png"), Utils::Theme::IconsBaseColor}});
const Utils::Icon MODE_HELP_FLAT_ACTIVE({
{QLatin1String(":/help/images/mode_help_mask.png"), Utils::Theme::IconsModeHelpActiveColor}});
} // namespace Icons } // namespace Icons
} // namespace Help } // namespace Help

View File

@@ -3584,4 +3584,394 @@
height="600" /> height="600" />
</g> </g>
</g> </g>
<g
inkscape:groupmode="layer"
id="g4718"
inkscape:label="Side Bar Icons">
<g
transform="translate(-34,308)"
style="display:inline"
id="src/plugins/welcome/images/mode_welcome_mask">
<rect
style="fill:#ffffff;fill-opacity:1"
x="34"
y="42"
width="48"
height="32"
id="rect5694-0" />
<path
id="rect5692-9"
style="fill:#000000"
d="m 62,62 4,0 0,4 -4,0 z m -6,0 4,0 0,4 -4,0 z m -6,0 4,0 0,4 -4,0 z m 12,-6 4,0 0,4 -4,0 z m -6,0 4,0 0,4 -4,0 z m -6,0 4,0 0,4 -4,0 z m 12,-6 4,0 0,4 -4,0 z m -6,0 4,0 0,4 -4,0 z m -6,0 4,0 0,4 -4,0 z"
inkscape:connector-curvature="0" />
</g>
<g
transform="translate(-36,308)"
style="display:inline;fill:#000000"
id="src/plugins/coreplugin/images/mode_edit_mask">
<rect
style="display:inline;fill:#ffffff;fill-opacity:1"
x="84"
y="42"
width="48"
height="32"
id="rect5706-3-8" />
<g
style="fill:#000000"
id="g5697-7">
<path
style="fill:#000000"
inkscape:connector-curvature="0"
d="m 100,50 0,16 16,0 0,-16 -16,0 z m 3,6 8,0 0,1 -8,0 0,-1 z m 8,5 -8,0 0,-1 8,0 0,1 z m 2,-2 -10,0 0,-1 10,0 0,1 z m 0,-4 -10,0 0,-1 10,0 0,1 z"
id="path5699-3" />
</g>
</g>
<g
transform="translate(-38,308)"
style="display:inline"
id="src/plugins/coreplugin/images/mode_design_mask">
<rect
style="fill:#ffffff;fill-opacity:1"
x="134"
y="42"
width="48"
height="32"
id="rect5706-2" />
<rect
style="fill:#000000"
x="161.58099"
y="50.402"
transform="matrix(-0.707,0.7072,-0.7072,-0.707,315.6181,-25.4514)"
width="3"
height="4.5"
id="rect5702-4" />
<polygon
style="fill:#000000"
points="159.511,53.04 150.884,61.667 150,65.732 154.065,64.85 162.692,56.222 "
id="polygon5704-0" />
</g>
<g
transform="translate(-40,308)"
style="display:inline"
id="src/plugins/debugger/images/mode_debug_mask">
<rect
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:none"
x="184"
y="42"
width="48"
height="32"
id="rect5706-4-6" />
<g
style="fill:#000000"
id="g5709-8"
transform="translate(0.5,0)">
<path
style="fill:#000000"
inkscape:connector-curvature="0"
d="m 208,50 c -1.016,0 -2.634,0.93 -3.106,2.18 l 3.106,1.746 3.105,-1.747 C 210.635,50.93 209.016,50 208,50 Z"
id="path5711-2" />
<path
style="fill:#000000"
inkscape:connector-curvature="0"
d="m 215.5,58.011 -1.125,0 -0.636,-2.543 1.407,-1.407 c 0.194,-0.194 0.194,-0.513 0,-0.707 -0.195,-0.194 -0.514,-0.194 -0.708,0 l -1.054,1.054 -1.629,-1.447 -3.256,1.832 0,2.458 0,7.749 1.75,-0.489 2.707,-1.806 0.963,0.963 c 0.193,0.193 0.512,0.193 0.707,0 0.193,-0.195 0.193,-0.514 0,-0.707 l -1.156,-1.156 0.873,-2.794 1.156,0 c 0.275,0 0.5,-0.226 0.5,-0.5 0,-0.274 -0.224,-0.5 -0.499,-0.5 z"
id="path5713-0" />
<path
style="fill:#000000"
inkscape:connector-curvature="0"
d="m 202.615,54.408 -1.055,-1.055 c -0.194,-0.194 -0.513,-0.194 -0.707,0 l 0,0 c -0.194,0.194 -0.194,0.513 0,0.707 l 1.407,1.407 -0.636,2.543 -1.124,0 c -0.275,0 -0.5,0.226 -0.5,0.5 0,0.274 0.225,0.5 0.5,0.5 l 1.156,0 0.873,2.794 -1.156,1.156 c -0.194,0.193 -0.194,0.512 0,0.707 0.194,0.193 0.513,0.193 0.707,0 l 0.962,-0.963 2.708,1.806 1.75,0.49 0,-7.75 0,-2.458 -3.256,-1.832 -1.629,1.448 z"
id="path5715-4" />
</g>
</g>
<g
transform="translate(-42,308)"
style="display:inline"
id="src/plugins/projectexplorer/images/mode_project_mask">
<rect
style="fill:#ffffff;fill-opacity:1"
x="234"
y="42"
width="48"
height="32"
id="rect5722-4" />
<path
style="fill:#000000"
inkscape:connector-curvature="0"
d="m 264.652,57.667 c 1.247,-1.246 1.592,-3.038 1.069,-4.604 l -2.483,2.483 c -0.389,0.389 -1.025,0.389 -1.414,0 l -1.414,-1.415 c -0.389,-0.389 -0.389,-1.025 0,-1.414 l 2.482,-2.483 c -1.565,-0.521 -3.357,-0.177 -4.604,1.069 -1.318,1.318 -1.646,3.251 -0.988,4.876 l -6.79,6.791 c -0.681,0.681 -0.681,1.794 0,2.475 0.681,0.681 1.794,0.681 2.475,0 l 6.79,-6.791 c 1.627,0.66 3.559,0.331 4.877,-0.987 z"
id="path5720-8" />
</g>
<g
transform="translate(-44,308)"
style="display:inline"
id="src/plugins/analyzerbase/images/mode_analyze_mask">
<rect
style="display:inline;fill:#ffffff;fill-opacity:1"
x="284"
y="42"
width="48"
height="32"
id="rect5706-6-2" />
<rect
style="fill:#000000"
x="300"
y="50"
width="1"
height="16"
id="rect5725-8" />
<rect
style="fill:#000000"
x="300"
y="65"
width="16"
height="1"
id="rect5727-6" />
<rect
style="fill:#000000"
x="303"
y="50"
width="13"
height="3"
id="rect5729-7" />
<rect
style="fill:#000000"
x="303"
y="55"
width="9"
height="3"
id="rect5731-4" />
<rect
style="fill:#000000"
x="303"
y="60"
width="5"
height="3"
id="rect5733-9" />
</g>
<g
transform="translate(-46,308)"
style="display:inline"
id="src/plugins/help/images/mode_help_mask">
<rect
style="display:inline;fill:#ffffff;fill-opacity:1"
x="334"
y="42"
width="48"
height="32"
id="rect5706-9-7" />
<path
d="m 358,50 c -4.418,0 -8,3.582 -8,8 0,4.418 3.582,8 8,8 4.418,0 8,-3.582 8,-8 0,-4.418 -3.582,-8 -8,-8 z m 0.91,12.846 c -0.22,0.215 -0.483,0.322 -0.791,0.322 -0.15,0 -0.292,-0.028 -0.428,-0.084 -0.135,-0.056 -0.254,-0.13 -0.356,-0.224 -0.103,-0.093 -0.185,-0.205 -0.245,-0.336 -0.061,-0.13 -0.091,-0.271 -0.091,-0.42 0,-0.299 0.109,-0.555 0.329,-0.77 0.219,-0.214 0.482,-0.322 0.791,-0.322 0.299,0 0.56,0.103 0.783,0.308 0.225,0.206 0.336,0.458 0.336,0.756 0,0.298 -0.109,0.555 -0.328,0.77 z m 2.192,-6.384 c -0.084,0.233 -0.197,0.448 -0.337,0.644 -0.14,0.196 -0.301,0.383 -0.483,0.56 -0.182,0.177 -0.375,0.364 -0.58,0.56 -0.131,0.121 -0.243,0.229 -0.336,0.322 -0.094,0.094 -0.171,0.189 -0.231,0.287 -0.06,0.098 -0.104,0.21 -0.133,0.336 -0.029,0.126 -0.042,0.278 -0.042,0.455 l 0,0.532 -1.68,0 0,-0.77 c 0,-0.206 0.012,-0.38 0.035,-0.525 0.022,-0.145 0.064,-0.275 0.125,-0.392 0.061,-0.117 0.141,-0.229 0.238,-0.336 0.098,-0.107 0.217,-0.235 0.357,-0.385 l 1.078,-1.092 c 0.232,-0.233 0.35,-0.537 0.35,-0.91 0,-0.364 -0.119,-0.66 -0.357,-0.889 -0.238,-0.229 -0.539,-0.343 -0.902,-0.343 -0.393,0 -0.715,0.133 -0.967,0.399 -0.252,0.266 -0.396,0.59 -0.434,0.973 l -1.792,-0.14 c 0.056,-0.448 0.173,-0.847 0.35,-1.197 0.177,-0.35 0.408,-0.646 0.693,-0.889 0.284,-0.243 0.614,-0.427 0.987,-0.553 0.373,-0.126 0.783,-0.189 1.232,-0.189 0.42,0 0.809,0.061 1.168,0.182 0.359,0.122 0.672,0.296 0.938,0.525 0.267,0.229 0.474,0.514 0.623,0.854 0.149,0.341 0.224,0.73 0.224,1.169 10e-4,0.308 -0.04,0.579 -0.124,0.812 z"
id="mode_x5F_help-2"
inkscape:connector-curvature="0"
style="fill:#000000"
inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
</g>
<g
transform="translate(-262,305)"
style="display:inline"
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
id="src/plugins/projectexplorer/images/run_mask">
<rect
style="fill:#ffffff;fill-opacity:1"
x="600"
y="50"
width="24"
height="24"
id="rect5751-4" />
<polygon
style="fill:#000000"
points="621,61 603,72 603,50 "
id="polygon5749-6" />
</g>
<g
transform="translate(-388,305)"
style="display:inline"
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
id="src/plugins/projectexplorer/images/debugger_beetle_mask">
<rect
style="display:inline;fill:#ffffff;fill-opacity:1"
x="750"
y="50"
width="24"
height="24"
id="rect5759-4-1" />
<path
style="fill:#000000;fill-opacity:1"
inkscape:connector-curvature="0"
d="m 758.5,52 c -1.016,0 -2.635,0.93 -3.105,2.18 l 3.105,1.746 3.105,-1.747 C 761.135,52.93 759.516,52 758.5,52 Z"
id="path6121-0" />
<path
style="fill:#000000;fill-opacity:1"
inkscape:connector-curvature="0"
d="m 753.115,56.408 -1.055,-1.055 c -0.194,-0.194 -0.513,-0.194 -0.707,0 l 0,0 c -0.194,0.194 -0.194,0.513 0,0.707 l 1.407,1.407 -0.636,2.543 -1.124,0 c -0.275,0 -0.5,0.226 -0.5,0.5 0,0.274 0.225,0.5 0.5,0.5 l 1.156,0 0.873,2.794 -1.156,1.156 c -0.193,0.193 -0.193,0.512 0,0.707 0.195,0.193 0.514,0.193 0.707,0 l 0.963,-0.963 2.707,1.806 1.75,0.49 0,-7.75 0,-2.458 -3.256,-1.832 -1.629,1.448 z"
id="path6123-6" />
<use
x="0"
y="0"
xlink:href="#path6123-6"
id="use4775"
transform="matrix(-1,0,0,1,1516.9862,0)"
width="100%"
height="100%" />
</g>
<g
style="display:inline"
transform="translate(-364,305)"
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
id="src/plugins/projectexplorer/images/debugger_run_mask">
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
id="rect6723-8"
height="24"
width="24"
y="50"
x="750"
style="display:inline;fill:#ffffff;fill-opacity:1" />
<polygon
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
id="polygon6717-3"
points="763,74 774,67 763,60 "
style="fill:#000000;fill-opacity:1"
transform="translate(-1,-1)" />
</g>
<g
id="src/plugins/debugger/images/debugger_interrupt_mask"
inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
transform="translate(-340,305)"
style="display:inline">
<rect
style="display:inline;fill:#ffffff;fill-opacity:1"
x="750"
y="50"
width="24"
height="24"
id="rect4791"
inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<rect
style="display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4608-0"
width="4"
height="12"
x="763"
y="61" />
<rect
style="display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4610-6"
width="4"
height="12"
x="769"
y="61" />
</g>
<g
style="display:inline"
transform="translate(-316,305)"
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
id="src/plugins/debugger/images/debugger_continue_mask">
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
id="rect4797"
height="24"
width="24"
y="50"
x="750"
style="display:inline;fill:#ffffff;fill-opacity:1" />
<path
style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 758.5,73 6.5,-6 0,6 z"
id="path5681-4"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<path
style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path4867"
sodipodi:type="arc"
sodipodi:cx="766"
sodipodi:cy="66.99987"
sodipodi:rx="5.5"
sodipodi:ry="5.5"
sodipodi:start="2.1642083"
sodipodi:end="0"
sodipodi:open="true"
d="m 762.92444,71.559577 a 5.5,5.5 0 0 1 -1.99963,-6.679238 5.5,5.5 0 0 1 6.15603,-3.273221 5.5,5.5 0 0 1 4.41916,5.392752" />
</g>
<g
transform="translate(-392,305)"
style="display:inline"
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
id="src/plugins/projectexplorer/images/build_hammerhandle_mask">
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
style="fill:#ffffff;fill-opacity:1"
x="850"
y="50"
width="24"
height="24"
id="rect5759-5" />
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
style="fill:#030303;fill-opacity:1"
id="build-5">
<rect
style="fill:#030303;fill-opacity:1"
x="856.98199"
y="53.081001"
transform="matrix(0.7071,0.7071,-0.7071,0.7071,296.0486,-588.562)"
width="3"
height="20"
id="rect5755-4" />
</g>
</g>
<g
transform="translate(-368,305)"
style="display:inline"
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
id="src/plugins/projectexplorer/images/build_hammerhead_mask">
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
style="fill:#ffffff;fill-opacity:1"
x="850"
y="50"
width="24"
height="24"
id="rect5759-5-9" />
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
style="fill:#030303;fill-opacity:1"
id="build-5-2">
<polygon
style="fill:#030303;fill-opacity:1"
points="866.613,50 873.684,57.071 870.148,60.606 859.542,50 "
id="polygon5757-3-4" />
</g>
</g>
</g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 116 KiB

After

Width:  |  Height:  |  Size: 132 KiB