From a91bdfd13523fc63e6379c8d2d2cb522f08ba295 Mon Sep 17 00:00:00 2001 From: "craig.p.drummond@gmail.com" Date: Mon, 3 Dec 2012 12:18:47 +0000 Subject: [PATCH] - Rename KMessageWidget to MsgWidget, so that if KDElibs are linked (via file dialog, etc) that we know which is which! - In KMsgWidget::resizeEvent, only action if we are visible - was getting recursive calls with oxygen --- support/kmessagewidget.cpp | 77 +++++++++++++++++++------------------- support/kmessagewidget.h | 44 +++++++++++----------- support/messagewidget.cpp | 4 +- support/messagewidget.h | 3 +- 4 files changed, 65 insertions(+), 63 deletions(-) diff --git a/support/kmessagewidget.cpp b/support/kmessagewidget.cpp index f91bd3515..92cba373e 100644 --- a/support/kmessagewidget.cpp +++ b/support/kmessagewidget.cpp @@ -42,22 +42,22 @@ #include //--------------------------------------------------------------------- -// KMessageWidgetPrivate +// KMsgWidgetPrivate //--------------------------------------------------------------------- #if 0 -class KMessageWidgetPrivate +class KMsgWidgetPrivate { public: - void init(KMessageWidget*); + void init(KMsgWidget*); - KMessageWidget* q; + KMsgWidget* q; QFrame* content; QLabel* iconLabel; QLabel* textLabel; QToolButton* closeButton; QTimeLine* timeLine; - KMessageWidget::MessageType messageType; + KMsgWidget::MessageType messageType; bool wordWrap; QList buttons; QPixmap contentSnapShot; @@ -70,7 +70,7 @@ public: }; #endif -void KMessageWidgetPrivate::init(KMessageWidget *q_ptr) +void KMsgWidgetPrivate::init(KMsgWidget *q_ptr) { q = q_ptr; @@ -104,10 +104,10 @@ void KMessageWidgetPrivate::init(KMessageWidget *q_ptr) closeButton->setAutoRaise(true); closeButton->setDefaultAction(closeAction); - q->setMessageType(KMessageWidget::Information); + q->setMessageType(KMsgWidget::Information); } -void KMessageWidgetPrivate::createLayout() +void KMsgWidgetPrivate::createLayout() { delete content->layout(); @@ -163,27 +163,27 @@ void KMessageWidgetPrivate::createLayout() q->updateGeometry(); } -void KMessageWidgetPrivate::updateLayout() +void KMsgWidgetPrivate::updateLayout() { if (content->layout()) { createLayout(); } } -void KMessageWidgetPrivate::updateSnapShot() +void KMsgWidgetPrivate::updateSnapShot() { contentSnapShot = QPixmap(content->size()); contentSnapShot.fill(Qt::transparent); content->render(&contentSnapShot, QPoint(), QRegion(), QWidget::DrawChildren); } -void KMessageWidgetPrivate::slotTimeLineChanged(qreal value) +void KMsgWidgetPrivate::slotTimeLineChanged(qreal value) { q->setFixedHeight(qMin(value * 2, qreal(1.0)) * content->height()); q->update(); } -void KMessageWidgetPrivate::slotTimeLineFinished() +void KMsgWidgetPrivate::slotTimeLineFinished() { if (timeLine->direction() == QTimeLine::Forward) { // Show @@ -194,7 +194,7 @@ void KMessageWidgetPrivate::slotTimeLineFinished() } } -int KMessageWidgetPrivate::bestContentHeight() const +int KMsgWidgetPrivate::bestContentHeight() const { int height = content->heightForWidth(q->width()); if (height == -1) { @@ -204,40 +204,40 @@ int KMessageWidgetPrivate::bestContentHeight() const } //--------------------------------------------------------------------- -// KMessageWidget +// KMsgWidget //--------------------------------------------------------------------- -KMessageWidget::KMessageWidget(QWidget* parent) +KMsgWidget::KMsgWidget(QWidget* parent) : QFrame(parent) - , d(new KMessageWidgetPrivate) + , d(new KMsgWidgetPrivate) { d->init(this); } -KMessageWidget::KMessageWidget(const QString& text, QWidget* parent) +KMsgWidget::KMsgWidget(const QString& text, QWidget* parent) : QFrame(parent) - , d(new KMessageWidgetPrivate) + , d(new KMsgWidgetPrivate) { d->init(this); setText(text); } -KMessageWidget::~KMessageWidget() +KMsgWidget::~KMsgWidget() { delete d; } -QString KMessageWidget::text() const +QString KMsgWidget::text() const { return d->textLabel->text(); } -void KMessageWidget::setText(const QString& text) +void KMsgWidget::setText(const QString& text) { d->textLabel->setText(text); updateGeometry(); } -KMessageWidget::MessageType KMessageWidget::messageType() const +KMsgWidget::MessageType KMsgWidget::messageType() const { return d->messageType; } @@ -251,7 +251,7 @@ static void getColorsFromColorScheme(KColorScheme::BackgroundRole bgRole, QColor } #endif -void KMessageWidget::setMessageType(KMessageWidget::MessageType type) +void KMsgWidget::setMessageType(KMsgWidget::MessageType type) { d->messageType = type; QIcon icon; @@ -336,19 +336,19 @@ void KMessageWidget::setMessageType(KMessageWidget::MessageType type) d->iconLabel->setPixmap(icon.pixmap(size)); } -QSize KMessageWidget::sizeHint() const +QSize KMsgWidget::sizeHint() const { ensurePolished(); return d->content->sizeHint(); } -QSize KMessageWidget::minimumSizeHint() const +QSize KMsgWidget::minimumSizeHint() const { ensurePolished(); return d->content->minimumSizeHint(); } -bool KMessageWidget::event(QEvent* event) +bool KMsgWidget::event(QEvent* event) { if (event->type() == QEvent::Polish && !d->content->layout()) { d->createLayout(); @@ -356,9 +356,10 @@ bool KMessageWidget::event(QEvent* event) return QFrame::event(event); } -void KMessageWidget::resizeEvent(QResizeEvent* event) +void KMsgWidget::resizeEvent(QResizeEvent* event) { QFrame::resizeEvent(event); + if (!isVisible()) return; int contentHeight = d->bestContentHeight(); if (d->timeLine->state() == QTimeLine::NotRunning) { @@ -369,13 +370,13 @@ void KMessageWidget::resizeEvent(QResizeEvent* event) } } -int KMessageWidget::heightForWidth(int width) const +int KMsgWidget::heightForWidth(int width) const { ensurePolished(); return d->content->heightForWidth(width); } -void KMessageWidget::paintEvent(QPaintEvent* event) +void KMsgWidget::paintEvent(QPaintEvent* event) { QFrame::paintEvent(event); if (d->timeLine->state() == QTimeLine::Running) { @@ -385,48 +386,48 @@ void KMessageWidget::paintEvent(QPaintEvent* event) } } -void KMessageWidget::showEvent(QShowEvent* event) +void KMsgWidget::showEvent(QShowEvent* event) { // Keep this method here to avoid breaking binary compatibility: // QFrame::showEvent() used to be reimplemented. QFrame::showEvent(event); } -bool KMessageWidget::wordWrap() const +bool KMsgWidget::wordWrap() const { return d->wordWrap; } -void KMessageWidget::setWordWrap(bool wordWrap) +void KMsgWidget::setWordWrap(bool wordWrap) { d->wordWrap = wordWrap; d->textLabel->setWordWrap(wordWrap); d->updateLayout(); } -bool KMessageWidget::isCloseButtonVisible() const +bool KMsgWidget::isCloseButtonVisible() const { return d->closeButton->isVisible(); } -void KMessageWidget::setCloseButtonVisible(bool show) +void KMsgWidget::setCloseButtonVisible(bool show) { d->closeButton->setVisible(show); } -void KMessageWidget::addAction(QAction* action) +void KMsgWidget::addAction(QAction* action) { QFrame::addAction(action); d->updateLayout(); } -void KMessageWidget::removeAction(QAction* action) +void KMsgWidget::removeAction(QAction* action) { QFrame::removeAction(action); d->updateLayout(); } -void KMessageWidget::animatedShow() +void KMsgWidget::animatedShow() { #ifdef ENABLE_KDE_SUPPORT if (!(KGlobalSettings::graphicEffectsLevel() & KGlobalSettings::SimpleAnimationEffects)) { @@ -452,7 +453,7 @@ void KMessageWidget::animatedShow() } } -void KMessageWidget::animatedHide() +void KMsgWidget::animatedHide() { #ifdef ENABLE_KDE_SUPPORT if (!(KGlobalSettings::graphicEffectsLevel() & KGlobalSettings::SimpleAnimationEffects)) { diff --git a/support/kmessagewidget.h b/support/kmessagewidget.h index 7e8fc1382..bb9e8d90e 100644 --- a/support/kmessagewidget.h +++ b/support/kmessagewidget.h @@ -22,21 +22,21 @@ #include -class KMessageWidgetPrivate; +class KMsgWidgetPrivate; /** * @short A widget to provide feedback or propose opportunistic interactions. * - * KMessageWidget can be used to provide inline positive or negative + * KMsgWidget can be used to provide inline positive or negative * feedback, or to implement opportunistic interactions. * - * As a feedback widget, KMessageWidget provides a less intrusive alternative + * As a feedback widget, KMsgWidget provides a less intrusive alternative * to "OK Only" message boxes. If you do not need the modalness of KMessageBox, - * consider using KMessageWidget instead. + * consider using KMsgWidget instead. * * Negative feedback * - * The KMessageWidget can be used as a secondary indicator of failure: the + * The KMsgWidget can be used as a secondary indicator of failure: the * first indicator is usually the fact the action the user expected to happen * did not happen. * @@ -44,21 +44,21 @@ class KMessageWidgetPrivate; * * @li Expected feedback: form closes * @li First indicator of failure: form stays there - * @li Second indicator of failure: a KMessageWidget appears on top of the + * @li Second indicator of failure: a KMsgWidget appears on top of the * form, explaining the error condition * - * When used to provide negative feedback, KMessageWidget should be placed + * When used to provide negative feedback, KMsgWidget should be placed * close to its context. In the case of a form, it should appear on top of the * form entries. * - * KMessageWidget should get inserted in the existing layout. Space should not + * KMsgWidget should get inserted in the existing layout. Space should not * be reserved for it, otherwise it becomes "dead space", ignored by the user. - * KMessageWidget should also not appear as an overlay to prevent blocking + * KMsgWidget should also not appear as an overlay to prevent blocking * access to elements the user needs to interact with to fix the failure. * * Positive feedback * - * KMessageWidget can be used for positive feedback but it shouldn't be + * KMsgWidget can be used for positive feedback but it shouldn't be * overused. It is often enough to provide feedback by simply showing the * results of an action. * @@ -87,7 +87,7 @@ class KMessageWidgetPrivate; * @author Aurélien Gâteau * @since 4.7 */ -class KMessageWidget : public QFrame +class KMsgWidget : public QFrame { Q_OBJECT Q_ENUMS(MessageType) @@ -105,13 +105,13 @@ public: }; /** - * Constructs a KMessageWidget with the specified parent. + * Constructs a KMsgWidget with the specified parent. */ - explicit KMessageWidget(QWidget *parent = 0); + explicit KMsgWidget(QWidget *parent = 0); - explicit KMessageWidget(const QString &text, QWidget *parent = 0); + explicit KMsgWidget(const QString &text, QWidget *parent = 0); - ~KMessageWidget(); + ~KMsgWidget(); QString text() const; @@ -138,7 +138,7 @@ public Q_SLOTS: void setCloseButtonVisible(bool visible); - void setMessageType(KMessageWidget::MessageType type); + void setMessageType(KMsgWidget::MessageType type); /** * Show the widget using an animation, unless @@ -162,8 +162,8 @@ protected: void showEvent(QShowEvent *event); private: - KMessageWidgetPrivate *const d; - friend class KMessageWidgetPrivate; + KMsgWidgetPrivate *const d; + friend class KMsgWidgetPrivate; Q_PRIVATE_SLOT(d, void slotTimeLineChanged(qreal)) Q_PRIVATE_SLOT(d, void slotTimeLineFinished()) @@ -172,19 +172,19 @@ private: class QTimeLine; class QLabel; class QToolButton; -class KMessageWidgetPrivate +class KMsgWidgetPrivate { public: - void init(KMessageWidget*); + void init(KMsgWidget*); - KMessageWidget* q; + KMsgWidget* q; QFrame* content; QLabel* iconLabel; QLabel* textLabel; QToolButton* closeButton; QTimeLine* timeLine; - KMessageWidget::MessageType messageType; + KMsgWidget::MessageType messageType; bool wordWrap; QList buttons; QPixmap contentSnapShot; diff --git a/support/messagewidget.cpp b/support/messagewidget.cpp index 569109f8c..0334f6d82 100644 --- a/support/messagewidget.cpp +++ b/support/messagewidget.cpp @@ -24,7 +24,7 @@ #include "messagewidget.h" MessageWidget::MessageWidget(QWidget *parent) - : KMessageWidget(parent) + : KMsgWidget(parent) , active(false) { } @@ -61,6 +61,6 @@ void MessageWidget::setMessage(const QString &msg, bool isError) void MessageWidget::setVisible(bool v) { active=v; - KMessageWidget::setVisible(v); + KMsgWidget::setVisible(v); emit visible(v); } diff --git a/support/messagewidget.h b/support/messagewidget.h index 3a7419953..bfe6490e2 100644 --- a/support/messagewidget.h +++ b/support/messagewidget.h @@ -28,6 +28,7 @@ #include #if KDE_IS_VERSION(4, 7, 0) #include +typedef KMessageWidget KMsgWidget; #else // KDE_IS_VERSION(4, 7, 0) #include "kmessagewidget.h" #endif // KDE_IS_VERSION(4, 7, 0) @@ -35,7 +36,7 @@ #include "kmessagewidget.h" #endif // ENABLE_KDE_SUPPORT -class MessageWidget : public KMessageWidget +class MessageWidget : public KMsgWidget { Q_OBJECT public: