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

List:       kde-commits
Subject:    KDE/kdebase/apps/dolphin/src
From:       Peter Penz <peter.penz () gmx ! at>
Date:       2008-11-13 22:37:09
Message-ID: 1226615829.200569.16992.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 883974 by ppenz:

* get rid of magic values like QSize(20 + 5, 5)
* coding style cleanups

 M  +36 -31    kformattedballoontipdelegate.cpp  
 M  +9 -5      kformattedballoontipdelegate.h  


--- trunk/KDE/kdebase/apps/dolphin/src/kformattedballoontipdelegate.cpp \
#883973:883974 @@ -23,28 +23,35 @@
 #include <QLinearGradient>
 #include <QTextDocument>
 #include <kcolorscheme.h>
-#include <kdebug.h>
 
+KFormattedBalloonTipDelegate::KFormattedBalloonTipDelegate()
+{
+}
+
+KFormattedBalloonTipDelegate::~KFormattedBalloonTipDelegate()
+{
+}
+
 QSize KFormattedBalloonTipDelegate::sizeHint(const KStyleOptionToolTip *option, \
const KToolTipItem *item) const  {
     QTextDocument doc;
     doc.setHtml(item->text());
-    QIcon icon = item->icon();
+    const QIcon icon = item->icon();
         
-    QSize iconSize = (icon.isNull()) ? QSize(0,0) : \
                icon.actualSize(option->decorationSize);
-    QSize docSize = doc.size().toSize();
+    const QSize iconSize = icon.isNull() ? QSize(0, 0) : \
icon.actualSize(option->decorationSize); +    const QSize docSize = \
doc.size().toSize();  QSize contentSize = iconSize + docSize;
     
-    // Re-adjust contentSize's height so that it is the maximum of the icon
-    // and doc sizes.
-    contentSize.setHeight( iconSize.height() > doc.size().height() ? \
                iconSize.height() : doc.size().height());
-    return contentSize + QSize(20+5,20+1);
+    // assure that the content height is large enough for the icon and the document
+    contentSize.setHeight(iconSize.height() > doc.size().height() ? \
iconSize.height() : doc.size().height()); +    return contentSize + QSize(Border * 3, \
Border * 2);  }
 
-void KFormattedBalloonTipDelegate::paint(QPainter *painter, const \
KStyleOptionToolTip *option, const KToolTipItem *item) const +void \
KFormattedBalloonTipDelegate::paint(QPainter *painter, +                              \
const KStyleOptionToolTip *option, +                                         const \
KToolTipItem *item) const  {
-    QRect contents;
-    QPainterPath path = createPath(option, &contents);
+    QPainterPath path = createPath(*option);
     if (haveAlphaChannel()) {
         painter->setRenderHint(QPainter::Antialiasing);
         painter->translate(.5, .5);
@@ -65,11 +72,14 @@
 
     painter->drawPath(path);
 
-    QIcon icon = item->icon();
+    const QIcon icon = item->icon();
+    int x = Border;
+    const int y = Border;
     if (!icon.isNull()) {
         const QSize iconSize = icon.actualSize(option->decorationSize);
-        painter->drawPixmap(contents.topLeft(), icon.pixmap(iconSize));
-        contents.adjust(iconSize.width() + 4, 0, 0, 0);
+        const QPoint pos(x + option->rect.x(), y + option->rect.y());
+        painter->drawPixmap(pos, icon.pixmap(iconSize));
+        x += iconSize.width() + Border;
     }
 
     QTextDocument doc;
@@ -78,22 +88,20 @@
     bitmap.fill(Qt::transparent);
     QPainter p(&bitmap);
     doc.drawContents(&p);
-    
-    // Ensure doc text is not stretched when icon is larger.
-    contents.setSize(doc.size().toSize());
-
-    painter->drawPixmap(contents, bitmap);
+ 
+    const QRect docRect(QPoint(x, y), doc.size().toSize());
+    painter->drawPixmap(docRect, bitmap);
 }
 
 QRegion KFormattedBalloonTipDelegate::inputShape(const KStyleOptionToolTip *option) \
const  {
-    QBitmap bitmap(option->rect.size()+QSize(20,20));
+    QBitmap bitmap(option->rect.size());
     bitmap.fill(Qt::color0);
 
     QPainter p(&bitmap);
     p.setPen(QPen(Qt::color1, 1));
     p.setBrush(Qt::color1);
-    p.drawPath(createPath(option, 0));
+    p.drawPath(createPath(*option));
 
     return QRegion(bitmap);
 }
@@ -108,21 +116,18 @@
     path.arcTo(cx-radius, cy-radius, radius * 2, radius * 2, angle, sweeplength);
 }
 
-QPainterPath KFormattedBalloonTipDelegate::createPath(const KStyleOptionToolTip \
*option, QRect *contents) const +QPainterPath \
KFormattedBalloonTipDelegate::createPath(const KStyleOptionToolTip& option) const  {
-    QPainterPath path;
-    QRect rect = option->rect;
+    const QRect rect = option.rect;
     const qreal radius = 5;
 
+    QPainterPath path;
     path.moveTo(rect.left(), rect.top() + radius);
-    arc(path, rect.left() + radius, rect.top() + radius, radius, 180, -90);
-    arc(path, rect.right() - radius, rect.top() + radius, radius, 90, -90);
-    arc(path, rect.right() - radius, rect.bottom() - radius, radius, 0, -90);
-    arc(path, rect.left() + radius, rect.bottom() - radius, radius, 270, -90);
+    arc(path, rect.left()  + radius, rect.top()    + radius, radius, 180, -90);
+    arc(path, rect.right() - radius, rect.top()    + radius, radius,  90, -90);
+    arc(path, rect.right() - radius, rect.bottom() - radius, radius,   0, -90);
+    arc(path, rect.left()  + radius, rect.bottom() - radius, radius, 270, -90);
     path.closeSubpath();
 
-    if (contents)
-        *contents = rect.adjusted(radius, radius, -radius, -radius);
-
     return path;
 }
--- trunk/KDE/kdebase/apps/dolphin/src/kformattedballoontipdelegate.h #883973:883974
@@ -27,15 +27,19 @@
 class KFormattedBalloonTipDelegate : public KToolTipDelegate
 {
 public:
-    KFormattedBalloonTipDelegate() {}
-    virtual ~KFormattedBalloonTipDelegate() {}
+    KFormattedBalloonTipDelegate();
+    virtual ~KFormattedBalloonTipDelegate();
 
     virtual QSize sizeHint(const KStyleOptionToolTip *option, const KToolTipItem \
                *item) const;
     virtual void paint(QPainter *painter, const KStyleOptionToolTip *option, const \
                KToolTipItem *item) const;
-    QRegion inputShape(const KStyleOptionToolTip *option) const;
-    QRegion shapeMask(const KStyleOptionToolTip *option) const;
+    virtual QRegion inputShape(const KStyleOptionToolTip *option) const;
+    virtual QRegion shapeMask(const KStyleOptionToolTip *option) const;
 
-    QPainterPath createPath(const KStyleOptionToolTip *option, QRect *contents) \
const; +private:
+    QPainterPath createPath(const KStyleOptionToolTip& option) const;
+    
+private:
+    enum { Border = 8 };
 };
 
 #endif


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

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