[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace/kstyles/oxygen
From: Hugo Pereira Da Costa <hugo.pereira () free ! fr>
Date: 2010-11-09 10:57:45
Message-ID: 20101109105745.A3C8DAC8A0 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1194602 by hpereiradacosta:
added 'arrow' toolbuttons to oxygen-demo
fixed centering and highlight of arrows in 'arrow' toolbuttons.
M +5 -1 demo/oxygenbuttondemowidget.cpp
M +54 -2 demo/ui/oxygenbuttondemowidget.ui
M +24 -6 oxygenstyle.cpp
--- trunk/KDE/kdebase/workspace/kstyles/oxygen/demo/oxygenbuttondemowidget.cpp \
#1194601:1194602 @@ -93,7 +93,11 @@
<< ui.toolButton_5
<< ui.toolButton_6
<< ui.toolButton_7
- << ui.toolButton_8;
+ << ui.toolButton_8
+ << ui.toolButton_9
+ << ui.toolButton_10
+ << ui.toolButton_11
+ << ui.toolButton_12;
connect( ui.textPosition, SIGNAL( currentIndexChanged( int ) ), SLOT( \
textPosition( int ) ) );
connect( ui.iconSize, SIGNAL( currentIndexChanged( int ) ), SLOT( iconSize( \
int ) ) );
--- trunk/KDE/kdebase/workspace/kstyles/oxygen/demo/ui/oxygenbuttondemowidget.ui \
#1194601:1194602 @@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>395</width>
- <height>366</height>
+ <height>370</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
@@ -245,6 +245,15 @@
<item row="0" column="0" colspan="4">
<widget class="QWidget" name="widget" native="true">
<layout class="QGridLayout" name="gridLayout_2">
+ <property name="sizeConstraint">
+ <enum>QLayout::SetDefaultConstraint</enum>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>0</number>
+ </property>
<item row="0" column="0">
<widget class="QToolButton" name="toolButton_3">
<property name="text">
@@ -285,7 +294,7 @@
</property>
</widget>
</item>
- <item row="0" column="4" colspan="2">
+ <item row="0" column="4" colspan="4">
<widget class="QWidget" name="toolBarContainer" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
@@ -334,6 +343,49 @@
</property>
</widget>
</item>
+ <item row="1" column="4">
+ <widget class="QToolButton" name="toolButton_9">
+ <property name="text">
+ <string>Up Arrow</string>
+ </property>
+ <property name="arrowType">
+ <enum>Qt::UpArrow</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="5">
+ <widget class="QToolButton" name="toolButton_10">
+ <property name="text">
+ <string>Down Arrow</string>
+ </property>
+ <property name="checkable">
+ <bool>false</bool>
+ </property>
+ <property name="arrowType">
+ <enum>Qt::DownArrow</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="6">
+ <widget class="QToolButton" name="toolButton_11">
+ <property name="text">
+ <string>Left Arrow</string>
+ </property>
+ <property name="arrowType">
+ <enum>Qt::LeftArrow</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="7">
+ <widget class="QToolButton" name="toolButton_12">
+ <property name="text">
+ <string>Right Arrow</string>
+ </property>
+ <property name="arrowType">
+ <enum>Qt::RightArrow</enum>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
</item>
--- trunk/KDE/kdebase/workspace/kstyles/oxygen/oxygenstyle.cpp #1194601:1194602
@@ -2901,9 +2901,9 @@
}
//___________________________________________________________________________________
- bool Style::drawIndicatorArrowPrimitive( ArrowOrientation orientation, const \
QStyleOption* option, QPainter* painter, const QWidget* ) const + bool \
Style::drawIndicatorArrowPrimitive( ArrowOrientation orientation, const QStyleOption* \
option, QPainter* painter, const QWidget* widget ) const {
- const QRect& r( option->rect );
+ QRect r( option->rect );
const QPalette& palette( option->palette );
const State& flags( option->state );
const bool enabled( flags & State_Enabled );
@@ -2912,18 +2912,36 @@
// define gradient and polygon for drawing arrow
const QPolygonF a = genericArrow( orientation, ArrowNormal );
- QColor color = palette.color( QPalette::WindowText );
- const QColor background = palette.color( QPalette::Window );
- const QColor highlight( _helper.viewHoverBrush().brush( palette ).color() );
const qreal penThickness = 1.6;
const qreal offset( qMin( penThickness, qreal( 1.0 ) ) );
- if( mouseOver ) color = highlight;
+ QColor color;
+ const QToolButton* toolButton( qobject_cast<const QToolButton*>( widget ) );
+ if( toolButton && toolButton->arrowType() != Qt::NoArrow )
+ {
+ /*
+ arrows painted in toolbutton need a re-centered rect,
+ and have no highlight
+ */
+
+ r.translate( 1, 0 );
+
+ } else if( mouseOver ) {
+
+ color = _helper.viewHoverBrush().brush( palette ).color();
+
+ } else {
+
+ color = palette.color( QPalette::WindowText );
+
+ }
+
painter->translate( r.center() );
painter->setRenderHint( QPainter::Antialiasing );
painter->translate( 0,offset );
+ const QColor background = palette.color( QPalette::Window );
painter->setPen( QPen( _helper.calcLightColor( background ), penThickness, \
Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin ) ); painter->drawPolyline( a );
painter->translate( 0,-offset );
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic