summaryrefslogtreecommitdiffstats
path: root/src/gui/styles/qs60style.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/styles/qs60style.cpp')
-rw-r--r--src/gui/styles/qs60style.cpp83
1 files changed, 49 insertions, 34 deletions
diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp
index ae639d7..581ada0 100644
--- a/src/gui/styles/qs60style.cpp
+++ b/src/gui/styles/qs60style.cpp
@@ -24,6 +24,7 @@
#include "qmenubar.h"
#include "qtablewidget.h"
#include "qtoolbar.h"
+#include "qgroupbox.h"
#include "qtoolbutton.h"
#include "private/qtoolbarextension_p.h"
#include "private/qcombobox_p.h"
@@ -481,6 +482,9 @@ int QS60StylePrivate::focusRectPenWidth()
void QS60StylePrivate::setThemePalette(QApplication *app) const
{
+ if (!app)
+ return;
+
QPalette widgetPalette = QPalette(Qt::white);
// basic colors
@@ -518,6 +522,15 @@ void QS60StylePrivate::setThemePalette(QApplication *app) const
app->setPalette(widgetPalette);
}
+void QS60StylePrivate::setBackgroundTexture(QApplication *app) const
+{
+ if (!app)
+ return;
+ QPalette applicationPalette = app->palette();
+ applicationPalette.setBrush(QPalette::Window, QS60StylePrivate::backgroundTexture());
+ app->setPalette(applicationPalette);
+}
+
void QS60Style::polish(QApplication *application)
{
Q_D(const QS60Style);
@@ -530,6 +543,9 @@ void QS60Style::polish(QWidget *widget)
Q_D(const QS60Style);
QCommonStyle::polish(widget);
+ if (!widget)
+ return;
+
if (QS60StylePrivate::isSkinnableDialog(widget)) {
widget->setAttribute(Qt::WA_StyledBackground);
} else if (false
@@ -548,33 +564,56 @@ void QS60Style::polish(QWidget *widget)
QPalette widgetPalette = widget->palette();
- // widget specific colors
- if (QSlider *slider = qobject_cast<QSlider *>(widget)){
+ // widget specific colors and fonts
+ if (qobject_cast<QSlider *>(widget)){
widgetPalette.setColor(QPalette::All, QPalette::WindowText,
QS60StylePrivate::s60Color(QS60StyleEnums::CL_QsnLineColors, 8, 0));
QApplication::setPalette(widgetPalette, "QSlider");
- } else if (QPushButton *button = qobject_cast<QPushButton *>(widget)){
+ } else if (qobject_cast<QPushButton *>(widget)){
+ const QFont suggestedFont = d->s60Font(
+ QS60StyleEnums::FC_Primary, widget->font().pointSizeF());
+ widget->setFont(suggestedFont);
widgetPalette.setColor(QPalette::Active, QPalette::ButtonText,
QS60StylePrivate::s60Color(QS60StyleEnums::CL_QsnTextColors, 6, 0));
widgetPalette.setColor(QPalette::Inactive, QPalette::ButtonText,
QS60StylePrivate::s60Color(QS60StyleEnums::CL_QsnTextColors, 6, 0));
QApplication::setPalette(widgetPalette, "QPushButton");
- } else if (QHeaderView *table = qobject_cast<QHeaderView *>(widget)){
+ } else if (qobject_cast<QToolButton *>(widget)){
+ const QFont suggestedFont = d->s60Font(
+ QS60StyleEnums::FC_Primary, widget->font().pointSizeF());
+ widget->setFont(suggestedFont);
+ widgetPalette.setColor(QPalette::Active, QPalette::ButtonText,
+ QS60StylePrivate::s60Color(QS60StyleEnums::CL_QsnTextColors, 6, 0));
+ widgetPalette.setColor(QPalette::Inactive, QPalette::ButtonText,
+ QS60StylePrivate::s60Color(QS60StyleEnums::CL_QsnTextColors, 6, 0));
+ QApplication::setPalette(widgetPalette, "QToolButton");
+ } else if (qobject_cast<QHeaderView *>(widget)){
+ const QFont suggestedFont = d->s60Font(
+ QS60StyleEnums::FC_Secondary, widget->font().pointSizeF());
+ widget->setFont(suggestedFont);
widgetPalette.setColor(QPalette::Active, QPalette::ButtonText,
QS60StylePrivate::s60Color(QS60StyleEnums::CL_QsnTextColors, 23, 0));
+ QHeaderView* header = qobject_cast<QHeaderView *>(widget);
+ widgetPalette.setColor(QPalette::Button, Qt::transparent );
+ if ( header->viewport() )
+ header->viewport()->setPalette(widgetPalette);
QApplication::setPalette(widgetPalette, "QHeaderView");
- } else if (QMenuBar *menuBar = qobject_cast<QMenuBar *>(widget)){
+ } else if (qobject_cast<QMenuBar *>(widget)){
widgetPalette.setColor(QPalette::All, QPalette::ButtonText,
QS60StylePrivate::s60Color(QS60StyleEnums::CL_QsnTextColors, 8, 0));
QApplication::setPalette(widgetPalette, "QMenuBar");
- } else if (QTabBar *tabBar = qobject_cast<QTabBar *>(widget)){
+ } else if (qobject_cast<QTabBar *>(widget)){
widgetPalette.setColor(QPalette::Active, QPalette::WindowText,
QS60StylePrivate::s60Color(QS60StyleEnums::CL_QsnTextColors, 4, 0));
QApplication::setPalette(widgetPalette, "QTabBar");
- } else if (QTableView *table = qobject_cast<QTableView *>(widget)){
+ } else if (qobject_cast<QTableView *>(widget)){
widgetPalette.setColor(QPalette::All, QPalette::Text,
QS60StylePrivate::s60Color(QS60StyleEnums::CL_QsnTextColors, 22, 0));
QApplication::setPalette(widgetPalette, "QTableView");
+ } else if (qobject_cast<QGroupBox *>(widget)){
+ const QFont suggestedFont = d->s60Font(
+ QS60StyleEnums::FC_Title, widget->font().pointSizeF());
+ widget->setFont(suggestedFont);
}
}
@@ -956,11 +995,6 @@ void QS60Style::drawComplexControl(ComplexControl control, const QStyleOptionCom
QStyleOptionSpinBox copy = *spinBox;
PrimitiveElement pe;
- /*if (spinBox->frame && (spinBox->subControls & SC_SpinBoxFrame)) {
- QRect r = subControlRect(CC_SpinBox, spinBox, SC_SpinBoxFrame, widget);
- qDrawWinPanel(painter, r, spinBox->palette, true);
- }*/
-
if (spinBox->subControls & SC_SpinBoxUp) {
copy.subControls = SC_SpinBoxUp;
QPalette pal2 = spinBox->palette;
@@ -1036,10 +1070,6 @@ void QS60Style::drawComplexControl(ComplexControl control, const QStyleOptionCom
const QColor textColor = groupBox->textColor;
painter->save();
- const QFont suggestedFont = d->s60Font(
- QS60StyleEnums::FC_Title, painter->font().pointSizeF());
- painter->setFont(suggestedFont);
-
if (textColor.isValid())
painter->setPen(textColor);
int alignment = int(groupBox->textAlignment);
@@ -1106,16 +1136,7 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
case CE_PushButtonLabel:
if (const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton *>(option)) {
QStyleOptionButton optionButton = *button;
- int margins = 2*QS60StylePrivate::pixelMetric(QStyle::PM_ButtonMargin);
- // make sure that margins do not take too much space from button
- if (margins > optionButton.rect.height()/3) // TODO: (?) Remove this when s60Fonts are set by polish(QWidget*)
- margins = optionButton.rect.height()/3;
- const QFont suggestedFont = d->s60Font(
- QS60StyleEnums::FC_Primary, painter->font().pointSizeF());
- painter->save();
- painter->setFont(suggestedFont);
QCommonStyle::drawControl(element, &optionButton, painter, widget);
- painter->restore();
}
break;
case CE_CheckBoxLabel:
@@ -1141,13 +1162,7 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
case CE_HeaderLabel:
if (const QStyleOptionHeader *headerLabel = qstyleoption_cast<const QStyleOptionHeader *>(option)) {
QStyleOptionHeader optionHeaderLabel = *headerLabel;
- // Adjust font according S60 Look-and-Feel
- const QFont suggestedFont = d->s60Font(
- QS60StyleEnums::FC_Secondary, painter->font().pointSizeF());
- painter->save();
- painter->setFont(suggestedFont);
QCommonStyle::drawControl(element, &optionHeaderLabel, painter, widget);
- painter->restore();
}
break;
#ifndef QT_NO_COMBOBOX
@@ -1232,7 +1247,7 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
const QModelIndex indexLast = table->model()->index(
table->model()->rowCount()-1,table->model()->columnCount()-1);
if (table->viewport())
- voptAdj2.rect = QRect( table->visualRect(indexFirst).topLeft(),
+ voptAdj2.rect = QRect( table->visualRect(indexFirst).topLeft(),
table->visualRect(indexLast).bottomRight()).intersect(table->viewport()->rect());
drawPrimitive(PE_PanelItemViewItem, &voptAdj2, painter, widget);
}
@@ -1475,7 +1490,7 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
if (optionProgressBar->minimum == optionProgressBar->maximum && optionProgressBar->minimum == 0) {
// busy indicator
- QS60StylePrivate::drawSkinPart(QS60StyleEnums::SP_QgnGrafBarWait, painter, progressRect,flags);
+ QS60StylePrivate::drawSkinPart(QS60StyleEnums::SP_QgnGrafBarWait, painter, progressRect,flags);
} else {
const qreal progressFactor = (optionProgressBar->minimum == optionProgressBar->maximum) ? 1.0
: (qreal)optionProgressBar->progress / optionProgressBar->maximum;
@@ -1488,7 +1503,7 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
progressRect.adjust(0, 1, 0, -1);
progressRect.setTop(progressRect.bottom() - int(progressRect.height() * progressFactor));
}
-
+
const QS60StylePrivate::SkinElements skinElement = optionProgressBar->orientation == Qt::Horizontal ?
QS60StylePrivate::SE_ProgressBarIndicatorHorizontal : QS60StylePrivate::SE_ProgressBarIndicatorVertical;
QS60StylePrivate::drawSkinElement(skinElement, painter, progressRect, flags);