[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