[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kwin
Subject:    Re: [PATCH] tabstrip deco: make outline color configurable
From:       Martin =?ISO-8859-1?Q?Gr=E4=DFlin?= <mgraesslin () kde ! org>
Date:       2011-08-25 19:20:19
Message-ID: 1699623.2P2kgTWv6s () martin-desktop
[Download RAW message or body]

[Attachment #2 (multipart/signed)]


Hi,

thanks for the patch, but could you please post it on http://reviewboard.kde.org so that we 
can easilier track the state of it? Patches to the mailinglist get easily lost...

Cheers
Martin

On Thursday 25 August 2011 17:37:55 Melchior FRANZ wrote:
> From 43c2607cd7bbf91b5a920bf5708b42d5c5e5e007 Mon Sep 17 00:00:00 2001
> From: Melchior FRANZ <mfranz@aon.at>
> Date: Thu, 25 Aug 2011 16:30:45 +0200
> Subject: [PATCH 1/1] tabstrip: make outline color configurable
> 
> In addition to the foreground and background color the tabstrip window
> decoration also has an outline color, which is currently hardcoded as
> white. This doesn't fit very well in certain color combinations, so it
> is desirable to make this color configurable.
> 
> Signed-off-by: Melchior FRANZ <mfranz@aon.at>
> ---
> The config dialog (attached screenshot) isn't particularly pleasing,
> but I found it hard to align the three different widgets in a meaningful
> way. The first screenshot shows the deco with grouped windows and black
> as outline color. You see that the widget composition doesn't become
> unclear. The second screenshot shows windows with different combinations
> copied together as an illustration. The top row corresponds to the
> currently hardcoded outline color white.
> 
> 
>  kwin/clients/tabstrip/config/tabstripconfig.cpp |    4 ++++
>  kwin/clients/tabstrip/config/tabstripconfig.ui  |   20 ++++++++++++++++++++
>  kwin/clients/tabstrip/tabstripdecoration.cpp    |    8 ++++----
>  kwin/clients/tabstrip/tabstripfactory.cpp       |    2 ++
>  kwin/clients/tabstrip/tabstripfactory.h         |    6 ++++++
>  5 files changed, 36 insertions(+), 4 deletions(-)
> 
> diff --git a/kwin/clients/tabstrip/config/tabstripconfig.cpp 
b/kwin/clients/tabstrip/config/tabstripconfig.cpp
> index 4174cba..4ddd8fd 100644
> --- a/kwin/clients/tabstrip/config/tabstripconfig.cpp
> +++ b/kwin/clients/tabstrip/config/tabstripconfig.cpp
> @@ -49,6 +49,7 @@ TabstripConfig::TabstripConfig( KConfig *c, QWidget *parent )
>      connect( ui->center, SIGNAL(clicked()), SIGNAL(changed()) );
>      connect( ui->right, SIGNAL(clicked()), SIGNAL(changed()) );
>      connect( ui->showIcon, SIGNAL(clicked()), SIGNAL(changed()) );
> +    connect( ui->outlineColor, SIGNAL(clicked()), SIGNAL(changed()) );
>      load( cg );
>      ui->show();
>      }
> @@ -67,6 +68,7 @@ void TabstripConfig::load( KConfigGroup &c )
>      ui->center->setChecked( align == "Center" );
>      ui->right->setChecked( align == "Right" );
>      ui->showIcon->setChecked( c.readEntry( "ShowIcon", true ) );
> +    ui->outlineColor->setColor( c.readEntry( "OutlineColor", QColor( Qt::white ) ) );
>      }
>  
>  void TabstripConfig::save( KConfigGroup &c )
> @@ -79,6 +81,7 @@ void TabstripConfig::save( KConfigGroup &c )
>      else
>          c.writeEntry( "TitleAlignment", "Right" );
>      c.writeEntry( "ShowIcon", ui->showIcon->isChecked() );
> +    c.writeEntry( "OutlineColor", ui->outlineColor->color() );
>      config->sync();
>      }
>  
> @@ -88,5 +91,6 @@ void TabstripConfig::defaults()
>      ui->center->setChecked( true );
>      ui->right->setChecked( false );
>      ui->showIcon->setChecked( true );
> +    ui->outlineColor->setColor( Qt::white );
>      emit changed();
>      }
> diff --git a/kwin/clients/tabstrip/config/tabstripconfig.ui 
b/kwin/clients/tabstrip/config/tabstripconfig.ui
> index 1a21e05..8927f9d 100644
> --- a/kwin/clients/tabstrip/config/tabstripconfig.ui
> +++ b/kwin/clients/tabstrip/config/tabstripconfig.ui
> @@ -51,6 +51,26 @@
>       </property>
>      </widget>
>     </item>
> +   <item>
> +    <layout class="QHBoxLayout" name="outlineColorLayout">
> +     <item>
> +      <widget class="QLabel" name="outline">
> +       <property name="text">
> +        <string>O&amp;utline Color:</string>
> +       </property>
> +       <property name="alignment">
> +        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
> +       </property>
> +       <property name="buddy">
> +        <cstring>outlineColor</cstring>
> +       </property>
> +      </widget>
> +     </item>
> +     <item>
> +      <widget class="KColorButton" name="outlineColor"/>
> +     </item>
> +    </layout>
> +   </item>
>    </layout>
>   </widget>
>   <resources/>
> diff --git a/kwin/clients/tabstrip/tabstripdecoration.cpp 
b/kwin/clients/tabstrip/tabstripdecoration.cpp
> index ae46872..a159a96 100644
> --- a/kwin/clients/tabstrip/tabstripdecoration.cpp
> +++ b/kwin/clients/tabstrip/tabstripdecoration.cpp
> @@ -81,7 +81,7 @@ void TabstripDecoration::paintTab( QPainter &painter, const QRect 
&geom, ClientG
>      // Draw border around the tab
>      painter.setPen( Qt::black );
>      painter.drawRect( geom.adjusted( 0, 0, -1, -1 ));
> -    painter.setPen( Qt::white );
> +    painter.setPen( TabstripFactory::outlineColor() );
>      painter.drawRect( geom.adjusted( 1, 1, -2, -2 ));
>  
>      // Background
> @@ -132,7 +132,7 @@ void TabstripDecoration::paintEvent( QPaintEvent * )
>      // Draw black/white border around the main window
>      painter.setPen( Qt::black );
>      painter.drawRect( 0, titlebar.height() - 1, frame.width() - 1, frame.height() - 
titlebar.height() );
> -    painter.setPen( Qt::white );
> +    painter.setPen( TabstripFactory::outlineColor() );
>      painter.drawRect( 1, titlebar.height(), frame.width() - 3, frame.height() - titlebar.height() - 
2 );
>  
>      QList< ClientGroupItem > tabList = clientGroupItems();
> @@ -176,7 +176,7 @@ void TabstripDecoration::paintEvent( QPaintEvent * )
>          painter.setPen( Qt::black );
>          painter.drawRect( 0, 0, allTabGeom.left(), allTabGeom.height() - 1 );
>          painter.drawRect( allTabGeom.right() - 1, 0, frame.width() - allTabGeom.right(), 
allTabGeom.height() - 1 );
> -        painter.setPen( Qt::white );
> +        painter.setPen( TabstripFactory::outlineColor() );
>          painter.drawRect( 1, 1, allTabGeom.left() - 2, allTabGeom.height() - 3 );
>          painter.drawRect( allTabGeom.right(), 1, frame.width() - allTabGeom.right() - 2, 
allTabGeom.height() - 3 );
>  
> @@ -189,7 +189,7 @@ void TabstripDecoration::paintEvent( QPaintEvent * )
>          // Draw border around the titlebar
>          painter.setPen( Qt::black );
>          painter.drawRect( titlebar.adjusted( 0, 0, -1, -1 ));
> -        painter.setPen( Qt::white );
> +        painter.setPen( TabstripFactory::outlineColor() );
>          painter.drawRect( titlebar.adjusted( 1, 1, -2, -2 ));
>  
>          // Background
> diff --git a/kwin/clients/tabstrip/tabstripfactory.cpp 
b/kwin/clients/tabstrip/tabstripfactory.cpp
> index 591a148..6b34c01 100644
> --- a/kwin/clients/tabstrip/tabstripfactory.cpp
> +++ b/kwin/clients/tabstrip/tabstripfactory.cpp
> @@ -36,6 +36,7 @@ extern "C"
>  
>  Qt::AlignmentFlag TabstripFactory::titlealign = Qt::AlignCenter;
>  bool TabstripFactory::show_icon = true;
> +QColor TabstripFactory::outline_color = Qt::white;
>  
>  TabstripFactory::TabstripFactory()
>      {
> @@ -88,6 +89,7 @@ bool TabstripFactory::readConfig()
>      else if( align == "Right" )
>          titlealign = Qt::AlignRight;
>      show_icon = cg.readEntry( "ShowIcon", true );
> +    outline_color = cg.readEntry( "OutlineColor", QColor( Qt::white ) );
>      return ( titlealign != oldalign );
>      }
>  
> diff --git a/kwin/clients/tabstrip/tabstripfactory.h b/kwin/clients/tabstrip/tabstripfactory.h
> index 2b667f0..0b610c2 100644
> --- a/kwin/clients/tabstrip/tabstripfactory.h
> +++ b/kwin/clients/tabstrip/tabstripfactory.h
> @@ -37,11 +37,13 @@ class TabstripFactory : public KDecorationFactoryUnstable
>          QList< KDecorationDefines::BorderSize > borderSizes() const;
>          static Qt::AlignmentFlag titleAlign();
>          static bool showIcon();
> +        static QColor &outlineColor();
>      private:
>          bool readConfig();
>          bool initialized;
>          static Qt::AlignmentFlag titlealign;
>          static bool show_icon;
> +        static QColor outline_color;
>      };
>  
>  inline Qt::AlignmentFlag TabstripFactory::titleAlign()
> @@ -53,5 +55,9 @@ inline bool TabstripFactory::showIcon()
>      {
>      return show_icon;
>      }
> +inline QColor &TabstripFactory::outlineColor()
> +    {
> +    return outline_color;
> +    }
>  
>  #endif
> -- 
> 1.7.6.GIT
> 
["signature.asc" (application/pgp-signature)]

_______________________________________________
kwin mailing list
kwin@kde.org
https://mail.kde.org/mailman/listinfo/kwin


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic