[kde-doc-english] [trojita] src/Gui: GUI: Don't switch between the multipart/alternative parts by mouse wheel

Jan Kundrát jkt at flaska.net
Fri Jan 11 00:35:02 UTC 2013


Git commit a77b78c18ab3a14a024711fe2883dab1e3c2926b by Jan Kundrát, on behalf of Thomas Lübking.
Committed on 11/01/2013 at 01:30.
Pushed by jkt into branch 'master'.

GUI: Don't switch between the multipart/alternative parts by mouse wheel

This prevents me from accidentally seeing ugly html mails ;-)

Ported-by: Jan Kundrát <jkt at flaska.net>

M  +13   -0    src/Gui/PartWidget.cpp
M  +2    -0    src/Gui/PartWidget.h

http://commits.kde.org/trojita/a77b78c18ab3a14a024711fe2883dab1e3c2926b

diff --git a/src/Gui/PartWidget.cpp b/src/Gui/PartWidget.cpp
index 640a962..be7f41b 100644
--- a/src/Gui/PartWidget.cpp
+++ b/src/Gui/PartWidget.cpp
@@ -24,6 +24,7 @@
 #include <QLabel>
 #include <QModelIndex>
 #include <QVBoxLayout>
+#include <QTabBar>
 
 #include "PartWidgetFactory.h"
 #include "Rfc822HeaderView.h"
@@ -78,6 +79,9 @@ MultipartAlternativeWidget::MultipartAlternativeWidget(QWidget *parent,
         addTab(item, mimeType);
     }
     setCurrentIndex(preferredIndex);
+    Q_FOREACH(QTabBar *tb, findChildren<QTabBar*>()) {
+        tb->installEventFilter(this);
+    }
 }
 
 QString MultipartAlternativeWidget::quoteMe() const
@@ -98,6 +102,15 @@ void MultipartAlternativeWidget::reloadContents()
     }
 }
 
+bool MultipartAlternativeWidget::eventFilter(QObject *o, QEvent *e)
+{
+    if (e->type() == QEvent::Wheel && qobject_cast<QTabBar*>(o)) { // don't alter part while wheeling
+        e->ignore();
+        return true;
+    }
+    return false;
+}
+
 MultipartSignedWidget::MultipartSignedWidget(QWidget *parent,
         PartWidgetFactory *factory, const QModelIndex &partIndex,
         const int recursionDepth):
diff --git a/src/Gui/PartWidget.h b/src/Gui/PartWidget.h
index de90c2d..8d7ccee 100644
--- a/src/Gui/PartWidget.h
+++ b/src/Gui/PartWidget.h
@@ -43,6 +43,8 @@ public:
                                const int recursionDepth, const QString &preferredMimeType);
     virtual QString quoteMe() const;
     virtual void reloadContents();
+protected:
+    bool eventFilter(QObject *o, QEvent *e);
 };
 
 /** @short Message quoting support for multipart/signed MIME type */


More information about the kde-doc-english mailing list