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

List:       kde-commits
Subject:    [kate] part/view: integrate fade effect as bool parameter in KateMessageWidget constructor
From:       Dominik Haumann <dhaumann () kde ! org>
Date:       2013-03-31 20:20:00
Message-ID: 20130331202000.AAB8FA605E () git ! kde ! org
[Download RAW message or body]

Git commit becac549655ce97f04031f55d69e5aa5d5c8db91 by Dominik Haumann.
Committed on 31/03/2013 at 13:32.
Pushed by dhaumann into branch 'master'.

integrate fade effect as bool parameter in KateMessageWidget constructor

M  +2    -1    part/view/katefadeeffect.cpp
M  +18   -5    part/view/katemessagewidget.cpp
M  +4    -1    part/view/katemessagewidget.h

http://commits.kde.org/kate/becac549655ce97f04031f55d69e5aa5d5c8db91

diff --git a/part/view/katefadeeffect.cpp b/part/view/katefadeeffect.cpp
index 36262e8..cd28d2b 100644
--- a/part/view/katefadeeffect.cpp
+++ b/part/view/katefadeeffect.cpp
@@ -24,6 +24,7 @@
 #include <QWidget>
 #include <QTimeLine>
 #include <QGraphicsOpacityEffect>
+#include <QDebug>
 
 static const int frameRange = 40;
 
@@ -31,7 +32,7 @@ KateFadeEffect::KateFadeEffect(QWidget* widget)
   : QObject(widget)
   , m_widget(widget)
 {
-  m_timeLine = new QTimeLine(10000, this);
+  m_timeLine = new QTimeLine(500, this);
   m_timeLine->setFrameRange(0, frameRange);
   m_effect = new QGraphicsOpacityEffect(this);
   m_effect->setOpacity(1.0);
diff --git a/part/view/katemessagewidget.cpp b/part/view/katemessagewidget.cpp
index 31a3760..b203197 100644
--- a/part/view/katemessagewidget.cpp
+++ b/part/view/katemessagewidget.cpp
@@ -20,6 +20,7 @@
 
 #include "katemessagewidget.h"
 #include "katemessagewidget.moc"
+#include "katefadeeffect.h"
 
 #include <messageinterface.h>
 #include <kmessagewidget.h>
@@ -30,8 +31,9 @@
 #include <QtCore/QTimer>
 #include <QtGui/QVBoxLayout>
 
-KateMessageWidget::KateMessageWidget(QWidget* parent)
+KateMessageWidget::KateMessageWidget(QWidget* parent, bool applyFadeEffect)
   : QWidget(parent)
+  , m_fadeEffect(0)
 {
   QVBoxLayout* l = new QVBoxLayout();
   l->setMargin(0);
@@ -51,6 +53,10 @@ KateMessageWidget::KateMessageWidget(QWidget* parent)
   // by default, hide widgets
   m_messageWidget->hide();
   hide();
+
+  if (applyFadeEffect) {
+    m_fadeEffect = new KateFadeEffect(m_messageWidget);
+  }
 }
 
 bool KateMessageWidget::eventFilter(QObject *obj, QEvent *event)
@@ -102,12 +108,15 @@ void KateMessageWidget::showMessage(KTextEditor::Message* message)
 
   // finally show us
   show();
+  if (m_fadeEffect) {
+    m_fadeEffect->fadeIn();
+  } else {
 #if KDE_VERSION >= KDE_MAKE_VERSION(4,10,0)   // work around KMessageWidget bugs
-  m_messageWidget->animatedShow();
+    m_messageWidget->animatedShow();
 #else
-  QTimer::singleShot(0, m_messageWidget, SLOT(animatedShow()));
+    QTimer::singleShot(0, m_messageWidget, SLOT(animatedShow()));
 #endif
-
+  }
   // start auto-hide timer, if requrested
   const int autoHide = message->autoHide();
   if (autoHide >= 0) {
@@ -170,7 +179,11 @@ void KateMessageWidget::messageDestroyed(KTextEditor::Message* message)
 
   // start hide animation, or show next message
   if (m_messageWidget->isVisible()) {
-    m_messageWidget->animatedHide();
+    if (m_fadeEffect) {
+      m_fadeEffect->fadeOut();
+    } else {
+      m_messageWidget->animatedHide();
+    }
   } else if (i == 0 && m_messageList.count()) {
     showMessage(m_messageList[0]);
   }
diff --git a/part/view/katemessagewidget.h b/part/view/katemessagewidget.h
index 934badb..dc17922 100644
--- a/part/view/katemessagewidget.h
+++ b/part/view/katemessagewidget.h
@@ -30,6 +30,7 @@ namespace KTextEditor
 }
 
 class KMessageWidget;
+class KateFadeEffect;
 
 /**
  * This class implements a message widget based on KMessageWidget.
@@ -43,7 +44,7 @@ class KateMessageWidget : public QWidget
     /**
      * Constructor. By default, the widget is hidden.
      */
-    KateMessageWidget(QWidget* parent = 0);
+    KateMessageWidget(QWidget* parent, bool applyFadeEffect = false);
 
     /**
      * Post a new incoming message. Show either directly, or queue
@@ -75,6 +76,8 @@ class KateMessageWidget : public QWidget
     QHash<KTextEditor::Message*, QList<QSharedPointer<QAction> > > m_messageHash;
     // the message widget, showing the actual contents
     KMessageWidget* m_messageWidget;
+    // the fade effect to show/hide the widget, if wanted
+    KateFadeEffect* m_fadeEffect;
 };
 
 #endif

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

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