From 0369eb65aa64440d34c975eea79da600abc1ee2b Mon Sep 17 00:00:00 2001 From: tpearson Date: Mon, 20 Sep 2010 06:16:11 +0000 Subject: Add ability to use old style rectangular icon text boxes git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdelibs@1177312 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kdecore/kglobalsettings.cpp | 6 ++++++ kdecore/kglobalsettings.h | 7 +++++++ kdeui/kiconview.cpp | 23 +++++++++++++++++++---- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/kdecore/kglobalsettings.cpp b/kdecore/kglobalsettings.cpp index 35b958e9e..c8884409d 100644 --- a/kdecore/kglobalsettings.cpp +++ b/kdecore/kglobalsettings.cpp @@ -118,6 +118,12 @@ bool KGlobalSettings::singleClick() return g.readBoolEntry("SingleClick", KDE_DEFAULT_SINGLECLICK); } +bool KGlobalSettings::iconUseRoundedRect() +{ + KConfigGroup g( KGlobal::config(), "KDE" ); + return g.readBoolEntry("IconUseRoundedRect", KDE_DEFAULT_SINGLECLICK); +} + KGlobalSettings::TearOffHandle KGlobalSettings::insertTearOffHandle() { int tearoff; diff --git a/kdecore/kglobalsettings.h b/kdecore/kglobalsettings.h index a26a7c174..04afe8567 100644 --- a/kdecore/kglobalsettings.h +++ b/kdecore/kglobalsettings.h @@ -24,6 +24,7 @@ #include "kdelibs_export.h" #define KDE_DEFAULT_SINGLECLICK false +#define KDE_DEFAULT_ICONTEXTROUNDED true #define KDE_DEFAULT_INSERTTEAROFFHANDLES 0 #define KDE_DEFAULT_AUTOSELECTDELAY -1 #define KDE_DEFAULT_CHANGECURSOR true @@ -100,6 +101,12 @@ class KDECORE_EXPORT KGlobalSettings **/ static bool singleClick(); + /** + * Returns whether icon text is drawn in a rounded style + * @return true if rounded, or false if rectangular. + **/ + static bool iconUseRoundedRect(); + /** * This enum describes the return type for insertTearOffHandle() whether to insert * a handle or not. Applications who independently want to use handles in their popup menus diff --git a/kdeui/kiconview.cpp b/kdeui/kiconview.cpp index 98d608fba..13b6183ad 100644 --- a/kdeui/kiconview.cpp +++ b/kdeui/kiconview.cpp @@ -247,7 +247,7 @@ void KIconView::emitExecute( TQIconViewItem *item, const TQPoint &pos ) m_pAutoSelect->stop(); - //Don´t emit executed if in SC mode and Shift or Ctrl are pressed + //Don�t emit executed if in SC mode and Shift or Ctrl are pressed if( !( m_bUseSingle && ((keybstate & ShiftButton) || (keybstate & ControlButton)) ) ) { setSelected( item, false ); viewport()->unsetCursor(); @@ -467,6 +467,8 @@ KIconViewItem::~KIconViewItem() void KIconViewItem::calcRect( const TQString& text_ ) { + bool drawRoundedRect = KGlobalSettings::iconUseRoundedRect(); + Q_ASSERT( iconView() ); if ( !iconView() ) return; @@ -548,7 +550,10 @@ void KIconViewItem::calcRect( const TQString& text_ ) r = m_wordWrap->boundingRect(); int realWidth = QMAX( QMIN( r.width() + 4, tw ), fm->width( "X" ) ); - itemTextRect.setWidth( realWidth + 2); + if (drawRoundedRect == true) + itemTextRect.setWidth( realWidth + 2); + else + itemTextRect.setWidth( realWidth ); itemTextRect.setHeight( r.height() ); int w = 0; int h = 0; int y = 0; @@ -699,13 +704,23 @@ void KIconViewItem::paintPixmap( TQPainter *p, const TQColorGroup &cg ) void KIconViewItem::paintText( TQPainter *p, const TQColorGroup &cg ) { - int textX = textRect( false ).x() + 4; + bool drawRoundedRect = KGlobalSettings::iconUseRoundedRect(); + int textX; + if (drawRoundedRect == true) + textX = textRect( false ).x() + 4; + else + textX = textRect( false ).x() + 2; int textY = textRect( false ).y(); if ( isSelected() ) { + if (drawRoundedRect == true) { p->setBrush(TQBrush(cg.highlight())); p->setPen(TQPen(cg.highlight())); - p->drawRoundRect( textRect( false ) ,1000/textRect(false).width(),1000/textRect(false).height() ); + p->drawRoundRect( textRect( false ) ,1000/textRect(false).width(),1000/textRect(false).height() ); + } + else { + p->fillRect( textRect( false ), cg.highlight() ); + } p->setPen( TQPen( cg.highlightedText() ) ); } else { if ( iconView()->itemTextBackground() != NoBrush ) -- cgit v1.2.1