From: Peter Penz Date: Sat, 20 Jun 2009 15:45:18 +0000 (+0000) Subject: Tooltip interface cleanup: Don't use const-pointers as parameters if the implementati... X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/5e73577d6c3520fa3dfd63646795e628cf2a0614?ds=sidebyside Tooltip interface cleanup: Don't use const-pointers as parameters if the implementation cannot handle 0-pointers. Use a const-reference instead. svn path=/trunk/KDE/kdebase/apps/; revision=984342 --- diff --git a/src/tooltips/dolphintooltip.cpp b/src/tooltips/dolphintooltip.cpp index bc3be33aa..63e1c4041 100644 --- a/src/tooltips/dolphintooltip.cpp +++ b/src/tooltips/dolphintooltip.cpp @@ -35,16 +35,18 @@ DolphinBalloonTooltipDelegate::~DolphinBalloonTooltipDelegate() // Delegate everything to the base class, after re-setting the decorationSize // to the preview size. -QSize DolphinBalloonTooltipDelegate::sizeHint(const KStyleOptionToolTip* option, const KToolTipItem* item) const +QSize DolphinBalloonTooltipDelegate::sizeHint(const KStyleOptionToolTip& option, const KToolTipItem& item) const { - KStyleOptionToolTip updatedStyleOption = *option; + KStyleOptionToolTip updatedStyleOption = option; updatedStyleOption.decorationSize = QSize(PREVIEW_WIDTH, PREVIEW_HEIGHT); - return KFormattedBalloonTipDelegate::sizeHint(&updatedStyleOption, item); + return KFormattedBalloonTipDelegate::sizeHint(updatedStyleOption, item); } -void DolphinBalloonTooltipDelegate::paint(QPainter* painter, const KStyleOptionToolTip* option, const KToolTipItem* item) const +void DolphinBalloonTooltipDelegate::paint(QPainter* painter, + const KStyleOptionToolTip& option, + const KToolTipItem& item) const { - KStyleOptionToolTip updatedStyleOption = *option; + KStyleOptionToolTip updatedStyleOption = option; updatedStyleOption.decorationSize = QSize(PREVIEW_WIDTH, PREVIEW_HEIGHT); - return KFormattedBalloonTipDelegate::paint(painter, &updatedStyleOption, item); + return KFormattedBalloonTipDelegate::paint(painter, updatedStyleOption, item); } diff --git a/src/tooltips/dolphintooltip.h b/src/tooltips/dolphintooltip.h index 5c0682171..34b53b0f8 100644 --- a/src/tooltips/dolphintooltip.h +++ b/src/tooltips/dolphintooltip.h @@ -41,7 +41,7 @@ public: DolphinBalloonTooltipDelegate(); virtual ~DolphinBalloonTooltipDelegate(); - virtual QSize sizeHint(const KStyleOptionToolTip* option, const KToolTipItem* item) const; - virtual void paint(QPainter* painter, const KStyleOptionToolTip* option, const KToolTipItem* item) const; + virtual QSize sizeHint(const KStyleOptionToolTip& option, const KToolTipItem& item) const; + virtual void paint(QPainter* painter, const KStyleOptionToolTip& option, const KToolTipItem& item) const; }; #endif diff --git a/src/tooltips/kformattedballoontipdelegate.cpp b/src/tooltips/kformattedballoontipdelegate.cpp index a897d8312..2659ccd97 100644 --- a/src/tooltips/kformattedballoontipdelegate.cpp +++ b/src/tooltips/kformattedballoontipdelegate.cpp @@ -32,13 +32,13 @@ KFormattedBalloonTipDelegate::~KFormattedBalloonTipDelegate() { } -QSize KFormattedBalloonTipDelegate::sizeHint(const KStyleOptionToolTip *option, const KToolTipItem *item) const +QSize KFormattedBalloonTipDelegate::sizeHint(const KStyleOptionToolTip &option, const KToolTipItem &item) const { QTextDocument doc; - doc.setHtml(item->text()); - const QIcon icon = item->icon(); + doc.setHtml(item.text()); + const QIcon icon = item.icon(); - const QSize iconSize = icon.isNull() ? QSize(0, 0) : icon.actualSize(option->decorationSize); + const QSize iconSize = icon.isNull() ? QSize(0, 0) : icon.actualSize(option.decorationSize); const QSize docSize = doc.size().toSize(); QSize contentSize = iconSize + docSize; @@ -48,13 +48,13 @@ QSize KFormattedBalloonTipDelegate::sizeHint(const KStyleOptionToolTip *option, } void KFormattedBalloonTipDelegate::paint(QPainter *painter, - const KStyleOptionToolTip *option, - const KToolTipItem *item) const + const KStyleOptionToolTip &option, + const KToolTipItem &item) const { - QColor toColor = option->palette.brush(QPalette::ToolTipBase).color(); + QColor toColor = option.palette.brush(QPalette::ToolTipBase).color(); QColor fromColor = KColorScheme::shade(toColor, KColorScheme::LightShade, 0.2); - QPainterPath path = createPath(*option); + QPainterPath path = createPath(option); if (haveAlphaChannel()) { painter->setRenderHint(QPainter::Antialiasing); painter->translate(.5, .5); @@ -62,8 +62,7 @@ void KFormattedBalloonTipDelegate::paint(QPainter *painter, fromColor.setAlpha(220); } - - QLinearGradient gradient(option->rect.topLeft(), option->rect.bottomLeft()); + QLinearGradient gradient(option.rect.topLeft(), option.rect.bottomLeft()); gradient.setColorAt(0.0, fromColor); gradient.setColorAt(1.0, toColor); painter->setPen(Qt::NoPen); @@ -71,18 +70,18 @@ void KFormattedBalloonTipDelegate::paint(QPainter *painter, painter->drawPath(path); - const 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); - const QPoint pos(x + option->rect.x(), y + option->rect.y()); + const QSize iconSize = icon.actualSize(option.decorationSize); + const QPoint pos(x + option.rect.x(), y + option.rect.y()); painter->drawPixmap(pos, icon.pixmap(iconSize)); x += iconSize.width() + Border; } QTextDocument doc; - doc.setHtml(item->text()); + doc.setHtml(item.text()); QPixmap bitmap(doc.size().toSize()); bitmap.fill(Qt::transparent); QPainter p(&bitmap); @@ -92,20 +91,20 @@ void KFormattedBalloonTipDelegate::paint(QPainter *painter, painter->drawPixmap(docRect, bitmap); } -QRegion KFormattedBalloonTipDelegate::inputShape(const KStyleOptionToolTip *option) const +QRegion KFormattedBalloonTipDelegate::inputShape(const KStyleOptionToolTip &option) const { - QBitmap bitmap(option->rect.size()); + 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)); + p.drawPath(createPath(option)); return QRegion(bitmap); } -QRegion KFormattedBalloonTipDelegate::shapeMask(const KStyleOptionToolTip *option) const +QRegion KFormattedBalloonTipDelegate::shapeMask(const KStyleOptionToolTip &option) const { return inputShape(option); } diff --git a/src/tooltips/kformattedballoontipdelegate.h b/src/tooltips/kformattedballoontipdelegate.h index 117d6eec7..4dc9f8bbb 100644 --- a/src/tooltips/kformattedballoontipdelegate.h +++ b/src/tooltips/kformattedballoontipdelegate.h @@ -30,10 +30,10 @@ public: 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; - virtual QRegion inputShape(const KStyleOptionToolTip *option) const; - virtual QRegion shapeMask(const KStyleOptionToolTip *option) const; + virtual QSize sizeHint(const KStyleOptionToolTip &option, const KToolTipItem &item) const; + virtual void paint(QPainter *painter, const KStyleOptionToolTip &option, const KToolTipItem &item) const; + virtual QRegion inputShape(const KStyleOptionToolTip &option) const; + virtual QRegion shapeMask(const KStyleOptionToolTip &option) const; private: QPainterPath createPath(const KStyleOptionToolTip& option) const; diff --git a/src/tooltips/ktooltip.cpp b/src/tooltips/ktooltip.cpp index b0b044674..e33cd197c 100644 --- a/src/tooltips/ktooltip.cpp +++ b/src/tooltips/ktooltip.cpp @@ -118,15 +118,15 @@ KToolTipDelegate::~KToolTipDelegate() { } -QSize KToolTipDelegate::sizeHint(const KStyleOptionToolTip *option, const KToolTipItem *item) const +QSize KToolTipDelegate::sizeHint(const KStyleOptionToolTip &option, const KToolTipItem &item) const { QSize size; - size.rwidth() = option->fontMetrics.width(item->text()); - size.rheight() = option->fontMetrics.lineSpacing(); + size.rwidth() = option.fontMetrics.width(item.text()); + size.rheight() = option.fontMetrics.lineSpacing(); - QIcon icon = item->icon(); + QIcon icon = item.icon(); if (!icon.isNull()) { - const QSize iconSize = icon.actualSize(option->decorationSize); + const QSize iconSize = icon.actualSize(option.decorationSize); size.rwidth() += iconSize.width() + 4; size.rheight() = qMax(size.height(), iconSize.height()); } @@ -135,19 +135,20 @@ QSize KToolTipDelegate::sizeHint(const KStyleOptionToolTip *option, const KToolT } -void KToolTipDelegate::paint(QPainter *painter, const KStyleOptionToolTip *option, - const KToolTipItem *item) const +void KToolTipDelegate::paint(QPainter *painter, + const KStyleOptionToolTip &option, + const KToolTipItem &item) const { bool haveAlpha = haveAlphaChannel(); painter->setRenderHint(QPainter::Antialiasing); QPainterPath path; if (haveAlpha) - path.addRoundRect(option->rect.adjusted(0, 0, -1, -1), 25); + path.addRoundRect(option.rect.adjusted(0, 0, -1, -1), 25); else - path.addRect(option->rect.adjusted(0, 0, -1, -1)); + path.addRect(option.rect.adjusted(0, 0, -1, -1)); - QColor color = option->palette.color(QPalette::ToolTipBase); + QColor color = option.palette.color(QPalette::ToolTipBase); QColor from = color.lighter(105); QColor to = color.darker(120); @@ -168,29 +169,29 @@ void KToolTipDelegate::paint(QPainter *painter, const KStyleOptionToolTip *optio gradient.setColorAt(0, QColor(0, 0, 0, 192)); gradient.setColorAt(1, QColor(0, 0, 0, 72)); painter->setCompositionMode(QPainter::CompositionMode_DestinationIn); - painter->fillRect(option->rect, gradient); + painter->fillRect(option.rect, gradient); painter->setCompositionMode(QPainter::CompositionMode_SourceOver); } - QRect textRect = option->rect.adjusted(10, 10, -10, -10); + QRect textRect = option.rect.adjusted(10, 10, -10, -10); - QIcon icon = item->icon(); + QIcon icon = item.icon(); if (!icon.isNull()) { - const QSize iconSize = icon.actualSize(option->decorationSize); + const QSize iconSize = icon.actualSize(option.decorationSize); painter->drawPixmap(textRect.topLeft(), icon.pixmap(iconSize)); textRect.adjust(iconSize.width() + 4, 0, 0, 0); } - painter->drawText(textRect, Qt::AlignLeft | Qt::AlignVCenter, item->text()); + painter->drawText(textRect, Qt::AlignLeft | Qt::AlignVCenter, item.text()); } -QRegion KToolTipDelegate::inputShape(const KStyleOptionToolTip *option) const +QRegion KToolTipDelegate::inputShape(const KStyleOptionToolTip &option) const { - return QRegion(option->rect); + return QRegion(option.rect); } -QRegion KToolTipDelegate::shapeMask(const KStyleOptionToolTip *option) const +QRegion KToolTipDelegate::shapeMask(const KStyleOptionToolTip &option) const { - return QRegion(option->rect); + return QRegion(option.rect); } bool KToolTipDelegate::haveAlphaChannel() const @@ -223,7 +224,7 @@ private: KToolTipDelegate *delegate() const; private: - const KToolTipItem *currentItem; + const KToolTipItem *m_currentItem; }; KTipLabel::KTipLabel() : QWidget(0, Qt::ToolTip) @@ -237,7 +238,7 @@ KTipLabel::KTipLabel() : QWidget(0, Qt::ToolTip) void KTipLabel::showTip(const QPoint &pos, const KToolTipItem *item) { - currentItem = item; + m_currentItem = item; move(pos); show(); } @@ -245,7 +246,7 @@ void KTipLabel::showTip(const QPoint &pos, const KToolTipItem *item) void KTipLabel::hideTip() { hide(); - currentItem = 0; + m_currentItem = 0; } void KTipLabel::moveTip(const QPoint &pos) @@ -261,24 +262,24 @@ void KTipLabel::paintEvent(QPaintEvent*) #ifdef Q_WS_X11 if (QX11Info::isCompositingManagerRunning()) XShapeCombineRegion(x11Info().display(), winId(), ShapeInput, 0, 0, - delegate()->inputShape(&option).handle(), ShapeSet); + delegate()->inputShape(option).handle(), ShapeSet); else #endif - setMask(delegate()->shapeMask(&option)); + setMask(delegate()->shapeMask(option)); QPainter p(this); p.setFont(option.font); p.setPen(QPen(option.palette.brush(QPalette::Text), 0)); - delegate()->paint(&p, &option, currentItem); + delegate()->paint(&p, option, *m_currentItem); } QSize KTipLabel::sizeHint() const { - if (!currentItem) + if (!m_currentItem) return QSize(); KStyleOptionToolTip option = styleOption(); - return delegate()->sizeHint(&option, currentItem); + return delegate()->sizeHint(option, *m_currentItem); } KStyleOptionToolTip KTipLabel::styleOption() const @@ -304,29 +305,29 @@ KToolTipDelegate *KTipLabel::delegate() const KToolTipManager *KToolTipManager::s_instance = 0; KToolTipManager::KToolTipManager() - : label(new KTipLabel), currentItem(0), m_delegate(0) + : m_label(new KTipLabel), m_currentItem(0), m_delegate(0) { } KToolTipManager::~KToolTipManager() { - delete label; - delete currentItem; + delete m_label; + delete m_currentItem; } void KToolTipManager::showTip(const QPoint &pos, KToolTipItem *item) { hideTip(); - label->showTip(pos, item); - currentItem = item; + m_label->showTip(pos, item); + m_currentItem = item; m_tooltipPos = pos; } void KToolTipManager::hideTip() { - label->hideTip(); - delete currentItem; - currentItem = 0; + m_label->hideTip(); + delete m_currentItem; + m_currentItem = 0; } void KToolTipManager::initStyleOption(KStyleOptionToolTip *option) const @@ -348,9 +349,9 @@ void KToolTipManager::setDelegate(KToolTipDelegate *delegate) void KToolTipManager::update() { - if (currentItem == 0) + if (m_currentItem == 0) return; - label->showTip(m_tooltipPos, currentItem); + m_label->showTip(m_tooltipPos, m_currentItem); } KToolTipDelegate *KToolTipManager::delegate() const diff --git a/src/tooltips/ktooltip.h b/src/tooltips/ktooltip.h index d59f1bf17..31589c690 100644 --- a/src/tooltips/ktooltip.h +++ b/src/tooltips/ktooltip.h @@ -114,15 +114,16 @@ public: KToolTipDelegate(); virtual ~KToolTipDelegate(); - virtual QSize sizeHint(const KStyleOptionToolTip *option, const KToolTipItem *item) const; + virtual QSize sizeHint(const KStyleOptionToolTip &option, const KToolTipItem &item) const; /** * If haveAlphaChannel() returns true, the paint device will be filled with * Qt::transparent when this function is called, otherwise the content is * undefined. */ - virtual void paint(QPainter *painter, const KStyleOptionToolTip *option, - const KToolTipItem *item) const; + virtual void paint(QPainter *painter, + const KStyleOptionToolTip &option, + const KToolTipItem &item) const; /** * Reimplement this function to specify the region of the tooltip @@ -135,7 +136,7 @@ public: * This function will only be called if haveAlphaChannel() * returns true. */ - virtual QRegion inputShape(const KStyleOptionToolTip *option) const; + virtual QRegion inputShape(const KStyleOptionToolTip &option) const; /** * Reimplement this function to specify a shape mask for the tooltip. @@ -146,7 +147,7 @@ public: * This function will only be called if haveAlphaChannel() * returns false. */ - virtual QRegion shapeMask(const KStyleOptionToolTip *option) const; + virtual QRegion shapeMask(const KStyleOptionToolTip &option) const; protected: /** diff --git a/src/tooltips/ktooltip_p.h b/src/tooltips/ktooltip_p.h index 8299bf045..5aa5326cf 100644 --- a/src/tooltips/ktooltip_p.h +++ b/src/tooltips/ktooltip_p.h @@ -49,8 +49,8 @@ public: private: KToolTipManager(); - KTipLabel *label; - KToolTipItem *currentItem; + KTipLabel *m_label; + KToolTipItem *m_currentItem; KToolTipDelegate *m_delegate; QPoint m_tooltipPos; diff --git a/src/tooltips/tooltipmanager.cpp b/src/tooltips/tooltipmanager.cpp index c5558eef1..489c6c2b6 100644 --- a/src/tooltips/tooltipmanager.cpp +++ b/src/tooltips/tooltipmanager.cpp @@ -214,13 +214,11 @@ void ToolTipManager::showToolTip(KToolTipItem* tip) QSize size; if (m_previewIsLate) { QPixmap paddedImage(QSize(PREVIEW_WIDTH, PREVIEW_HEIGHT)); - KToolTipItem* maxiTip = new KToolTipItem(paddedImage, m_item.getToolTipText()); - size = g_delegate->sizeHint(&option, maxiTip); - delete maxiTip; - maxiTip = 0; + KToolTipItem maxiTip(paddedImage, m_item.getToolTipText()); + size = g_delegate->sizeHint(option, maxiTip); } - else { - size = g_delegate->sizeHint(&option, tip); + else if (tip != 0) { + size = g_delegate->sizeHint(option, *tip); } const QRect desktop = QApplication::desktop()->screenGeometry(m_itemRect.bottomRight());