From 730367557f7719a3072aad383ebbb01cdf3dfb07 Mon Sep 17 00:00:00 2001 From: Jonathan White Date: Sun, 15 Mar 2020 09:44:28 -0400 Subject: [PATCH] Ability to disable animation of message widget * Allows for persistent messages that can change text without disturbing the user interface * Immediate improvement to KeeShare group edit window --- src/gui/MessageWidget.cpp | 23 +++++++++++++++++-- src/gui/MessageWidget.h | 4 ++++ .../group/EditGroupWidgetKeeShare.cpp | 1 + 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/gui/MessageWidget.cpp b/src/gui/MessageWidget.cpp index 4b7e67a22..494a81542 100644 --- a/src/gui/MessageWidget.cpp +++ b/src/gui/MessageWidget.cpp @@ -36,6 +36,11 @@ MessageWidget::MessageWidget(QWidget* parent) connect(this, SIGNAL(hideAnimationFinished()), m_autoHideTimer, SLOT(stop())); } +void MessageWidget::setAnimate(bool state) +{ + m_animate = state; +} + int MessageWidget::autoHideTimeout() const { return m_autoHideTimeout; @@ -50,8 +55,15 @@ void MessageWidget::showMessage(const QString& text, KMessageWidget::MessageType { setMessageType(type); setText(text); + emit showAnimationStarted(); - animatedShow(); + if (m_animate) { + animatedShow(); + } else { + show(); + emit showAnimationFinished(); + } + if (autoHideTimeout > 0) { m_autoHideTimer->start(autoHideTimeout); } else { @@ -61,7 +73,14 @@ void MessageWidget::showMessage(const QString& text, KMessageWidget::MessageType void MessageWidget::hideMessage() { - animatedHide(); + emit hideAnimationStarted(); + if (m_animate) { + animatedHide(); + } else { + hide(); + emit hideAnimationFinished(); + } + m_autoHideTimer->stop(); } diff --git a/src/gui/MessageWidget.h b/src/gui/MessageWidget.h index fe4baec4a..2c8c9a217 100644 --- a/src/gui/MessageWidget.h +++ b/src/gui/MessageWidget.h @@ -36,8 +36,11 @@ public: static const int LongAutoHideTimeout; static const int DisableAutoHide; + void setAnimate(bool state); + signals: void showAnimationStarted(); + void hideAnimationStarted(); public slots: void showMessage(const QString& text, MessageWidget::MessageType type); @@ -49,6 +52,7 @@ public slots: private: QTimer* m_autoHideTimer; int m_autoHideTimeout; + bool m_animate; }; #endif // MESSAGEWIDGET_H diff --git a/src/keeshare/group/EditGroupWidgetKeeShare.cpp b/src/keeshare/group/EditGroupWidgetKeeShare.cpp index 0ae732df4..806d75c1a 100644 --- a/src/keeshare/group/EditGroupWidgetKeeShare.cpp +++ b/src/keeshare/group/EditGroupWidgetKeeShare.cpp @@ -39,6 +39,7 @@ EditGroupWidgetKeeShare::EditGroupWidgetKeeShare(QWidget* parent) m_ui->messageWidget->hide(); m_ui->messageWidget->setCloseButtonVisible(false); m_ui->messageWidget->setAutoHideTimeout(-1); + m_ui->messageWidget->setAnimate(false); m_ui->passwordEdit->enablePasswordGenerator();