diff --git a/src/libtomahawk/utils/StyleHelper.h b/src/libtomahawk/utils/StyleHelper.h deleted file mode 100644 index 586de8602..000000000 --- a/src/libtomahawk/utils/StyleHelper.h +++ /dev/null @@ -1,68 +0,0 @@ -/* === This file is part of Tomahawk Player - === - * - * Copyright 2011, Casey Link - * - * Tomahawk is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Tomahawk is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Tomahawk. If not, see . - */ - -#ifndef STYLEHELPER_H -#define STYLEHELPER_H - -#include -#include -#include - -class QPalette; -class QPainter; - -/** - * \class StyleHelper - * \brief A static class that contains Tomahawk's styling details (colors, etc). - */ -class StyleHelper -{ -public: - - /** - * Our header BG is a two color gradient. This is the upper color. - */ - static QColor headerUpperColor(); - /** - * Our header BG is a two color gradient. This is the lower color. - */ - static QColor headerLowerColor(); - /** - * The color of text on a Header. - */ - static QColor headerTextColor(); - /** - * The widget highlight color for headers - */ - static QColor headerHighlightColor(); - - /** - * Draws a header background on a painter with the specified rectangle - */ - static void horizontalHeader( QPainter* painter, const QRect& rect ); - - /** - * Draws a styled arrow that looks good on a Header (from qwindowstyle.cpp) - * \copyright { Licensed under the GPL v3+ - * Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). - * Contact: Nokia Corporation (qt-info@nokia.com) } - */ - static void drawArrow( QStyle::PrimitiveElement, QPainter* painter, const QStyleOption* opt ); -}; - -#endif // STYLEHELPER_H diff --git a/src/libtomahawk/utils/StyleHelper.cpp b/src/libtomahawk/utils/TomahawkStyle.cpp similarity index 86% rename from src/libtomahawk/utils/StyleHelper.cpp rename to src/libtomahawk/utils/TomahawkStyle.cpp index cde83bb2f..e5270fa1d 100644 --- a/src/libtomahawk/utils/StyleHelper.cpp +++ b/src/libtomahawk/utils/TomahawkStyle.cpp @@ -1,6 +1,7 @@ /* === This file is part of Tomahawk Player - === * * Copyright 2011, Casey Link + * Copyright 2013, Christian Muehlhaeuser * * Tomahawk is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,51 +17,52 @@ * along with Tomahawk. If not, see . */ -#include "StyleHelper.h" +#include "TomahawkStyle.h" #include #include #include +#include > QColor -StyleHelper::headerUpperColor() +TomahawkStyle::headerUpperColor() { return QColor( "#25292c" ); } QColor -StyleHelper::headerLowerColor() +TomahawkStyle::headerLowerColor() { return QColor( "#707070" ); } QColor -StyleHelper::headerHighlightColor() +TomahawkStyle::headerHighlightColor() { return QColor( "#333" ); } void -StyleHelper::horizontalHeader( QPainter* painter, const QRect& r ) +TomahawkStyle::horizontalHeader( QPainter* painter, const QRect& r ) { painter->save(); - + /* QRect upperHalf( 0, 0, r.width(), r.height() / 2 ); QRect lowerHalf( 0, upperHalf.height(), r.width(), r.height() ); - painter->fillRect( upperHalf, StyleHelper::headerUpperColor() ); - painter->fillRect( lowerHalf, StyleHelper::headerLowerColor() );*/ + painter->fillRect( upperHalf, TomahawkStyle::headerUpperColor() ); + painter->fillRect( lowerHalf, TomahawkStyle::headerLowerColor() );*/ QLinearGradient gradient( QPoint( 0, 0 ), QPoint( 0, 1 ) ); gradient.setCoordinateMode( QGradient::ObjectBoundingMode ); - gradient.setColorAt( 0.0, StyleHelper::headerLowerColor() ); - gradient.setColorAt( 1.0, StyleHelper::headerUpperColor() ); - + gradient.setColorAt( 0.0, TomahawkStyle::headerLowerColor() ); + gradient.setColorAt( 1.0, TomahawkStyle::headerUpperColor() ); + painter->setBrush( gradient ); painter->fillRect( r, gradient ); - + /* { QColor lineColor( 100, 100, 100 ); QLine line( 0, 0, r.width(), 0 ); @@ -73,13 +75,13 @@ StyleHelper::horizontalHeader( QPainter* painter, const QRect& r ) painter->setPen( lineColor ); painter->drawLine( line ); }*/ - + painter->restore(); } QColor -StyleHelper::headerTextColor() +TomahawkStyle::headerTextColor() { return QColor( "#eaeaea" ); } @@ -92,66 +94,67 @@ StyleHelper::headerTextColor() * Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). * Contact: Nokia Corporation (qt-info@nokia.com) */ -void StyleHelper::drawArrow( QStyle::PrimitiveElement element, QPainter* p, const QStyleOption* opt ) +void +TomahawkStyle::drawArrow( QStyle::PrimitiveElement element, QPainter* p, const QStyleOption* opt ) { if ( opt->rect.width() <= 1 || opt->rect.height() <= 1 ) return; - + QRect r = opt->rect; int size = qMin( r.height(), r.width() ); QPixmap pixmap; QString pixmapName; - + pixmapName.sprintf( "arrow-%s-%d-%d-%d-%lld", "$qt_ia", uint(opt->state), element, size, opt->palette.cacheKey() ); if ( !QPixmapCache::find( pixmapName, pixmap ) ) { int border = size / 5; int sqsize = 2 * ( size / 2 ); - + QImage image( sqsize, sqsize, QImage::Format_ARGB32 ); image.fill( 0 ); QPainter imagePainter( &image ); imagePainter.setRenderHint( QPainter::Antialiasing, true ); QPolygon a; - + switch ( element ) { case QStyle::PE_IndicatorArrowUp: a.setPoints( 3, border, sqsize / 2, sqsize / 2, border, sqsize - border, sqsize / 2 ); break; - + case QStyle::PE_IndicatorArrowDown: a.setPoints( 3, border, sqsize / 2, sqsize / 2, sqsize - border, sqsize - border, sqsize / 2 ); break; - + case QStyle::PE_IndicatorArrowRight: a.setPoints( 3, sqsize - border, sqsize / 2, sqsize / 2, border, sqsize / 2, sqsize - border ); break; - + case QStyle::PE_IndicatorArrowLeft: a.setPoints( 3, border, sqsize / 2, sqsize / 2, border, sqsize / 2, sqsize - border ); break; - + default: break; } - + int bsx = 0; int bsy = 0; - + if ( opt->state & QStyle::State_Sunken ) { bsx = qApp->style()->pixelMetric( QStyle::PM_ButtonShiftHorizontal ); bsy = qApp->style()->pixelMetric( QStyle::PM_ButtonShiftVertical ); } - + QRect bounds = a.boundingRect(); int sx = sqsize / 2 - bounds.center().x() - 1; int sy = sqsize / 2 - bounds.center().y() - 1; imagePainter.translate( sx + bsx, sy + bsy ); imagePainter.setPen( opt->palette.buttonText().color() ); imagePainter.setBrush( opt->palette.buttonText() ); - + if ( !( opt->state & QStyle::State_Enabled ) ) { QColor foreGround( 150, 150, 150, 150 ); @@ -170,14 +173,14 @@ void StyleHelper::drawArrow( QStyle::PrimitiveElement element, QPainter* p, cons imagePainter.setPen( foreGround ); imagePainter.setBrush( foreGround ); } - + imagePainter.drawPolygon( a ); imagePainter.end(); - + pixmap = QPixmap::fromImage( image ); QPixmapCache::insert( pixmapName, pixmap ); } - + int xOffset = r.x() + ( r.width() - size ) / 2; int yOffset = r.y() + ( r.height() - size ) / 2; p->drawPixmap( xOffset, yOffset, pixmap ); diff --git a/src/libtomahawk/utils/TomahawkStyle.h b/src/libtomahawk/utils/TomahawkStyle.h index 10fdc00cf..02d275312 100644 --- a/src/libtomahawk/utils/TomahawkStyle.h +++ b/src/libtomahawk/utils/TomahawkStyle.h @@ -23,9 +23,41 @@ #include "DllMacro.h" #include +#include +#include namespace TomahawkStyle { + /** + * Our header BG is a two color gradient. This is the upper color. + */ + DLLEXPORT QColor headerUpperColor(); + /** + * Our header BG is a two color gradient. This is the lower color. + */ + DLLEXPORT QColor headerLowerColor(); + /** + * The color of text on a Header. + */ + DLLEXPORT QColor headerTextColor(); + /** + * The widget highlight color for headers + */ + DLLEXPORT QColor headerHighlightColor(); + + /** + * Draws a header background on a painter with the specified rectangle + */ + DLLEXPORT void horizontalHeader( QPainter* painter, const QRect& rect ); + + /** + * Draws a styled arrow that looks good on a Header (from qwindowstyle.cpp) + * \copyright { Licensed under the GPL v3+ + * Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). + * Contact: Nokia Corporation (qt-info@nokia.com) } + */ + DLLEXPORT void drawArrow( QStyle::PrimitiveElement, QPainter* painter, const QStyleOption* opt ); + static const QColor BORDER_LINE = QColor( "#8c8c8c" ); static const QColor POPUP_BACKGROUND = QColor( "#ffffff" ); static const QColor GROUP_HEADER = QColor( "#637180" ); @@ -33,6 +65,7 @@ namespace TomahawkStyle static const QColor NOW_PLAYING_ITEM_TEXT = QColor( "#ffffff" ); static const QColor SELECTION_BACKGROUND = QColor( "#962c26" ); static const QColor SELECTION_FOREGROUND = QColor( "#ffffff" ); + static const QColor HEADER = QColor( "#ffffff" ); static const int POPUP_ROUNDING_RADIUS = 6; static const float POPUP_OPACITY = 0.96;