[kde-doc-english] [trojita] src/Gui: GUI: silence QObject::connect errors when using SimplePartWidget on its own

Jan Kundrát jkt at flaska.net
Thu Oct 17 13:04:34 UTC 2013


Git commit 562867f35afb9be9da41ab586d8c5b999dae28be by Jan Kundrát.
Committed on 16/10/2013 at 20:45.
Pushed by jkt into branch 'master'.

GUI: silence QObject::connect errors when using SimplePartWidget on its own

REVIEW: 113294

M  +17   -11   src/Gui/SimplePartWidget.cpp

http://commits.kde.org/trojita/562867f35afb9be9da41ab586d8c5b999dae28be

diff --git a/src/Gui/SimplePartWidget.cpp b/src/Gui/SimplePartWidget.cpp
index 45e7e46..0edbc0f 100644
--- a/src/Gui/SimplePartWidget.cpp
+++ b/src/Gui/SimplePartWidget.cpp
@@ -44,8 +44,10 @@ SimplePartWidget::SimplePartWidget(QWidget *parent, Imap::Network::MsgPartNetAcc
 {
     Q_ASSERT(partIndex.isValid());
 
-    connect(this, SIGNAL(loadStarted()), m_messageView, SLOT(onWebViewLoadStarted()));
-    connect(this, SIGNAL(loadFinished(bool)), m_messageView, SLOT(onWebViewLoadFinished()));
+    if (m_messageView) {
+        connect(this, SIGNAL(loadStarted()), m_messageView, SLOT(onWebViewLoadStarted()));
+        connect(this, SIGNAL(loadFinished(bool)), m_messageView, SLOT(onWebViewLoadFinished()));
+    }
 
     QUrl url;
     url.setScheme(QLatin1String("trojita-imap"));
@@ -72,15 +74,19 @@ SimplePartWidget::SimplePartWidget(QWidget *parent, Imap::Network::MsgPartNetAcc
 
     setContextMenuPolicy(Qt::CustomContextMenu);
 
-    connect(this, SIGNAL(customContextMenuRequested(QPoint)), messageView, SLOT(partContextMenuRequested(QPoint)));
-    connect(this, SIGNAL(searchDialogRequested()), messageView, SLOT(triggerSearchDialog()));
-    // The targets expect the sender() of the signal to be a SimplePartWidget, not a QWebPage,
-    // which means we have to do this indirection
-    connect(page(), SIGNAL(linkHovered(QString,QString,QString)), this, SIGNAL(linkHovered(QString,QString,QString)));
-    connect(this, SIGNAL(linkHovered(QString,QString,QString)),
-            messageView, SLOT(partLinkHovered(QString,QString,QString)));
-
-    installEventFilter(messageView);
+    // It is actually OK to construct this widget without any connection to a messageView -- this is often used when
+    // displaying message source or message headers. Let's silence the QObject::connect warning.
+    if (m_messageView) {
+        connect(this, SIGNAL(customContextMenuRequested(QPoint)), m_messageView, SLOT(partContextMenuRequested(QPoint)));
+        connect(this, SIGNAL(searchDialogRequested()), m_messageView, SLOT(triggerSearchDialog()));
+        // The targets expect the sender() of the signal to be a SimplePartWidget, not a QWebPage,
+        // which means we have to do this indirection
+        connect(page(), SIGNAL(linkHovered(QString,QString,QString)), this, SIGNAL(linkHovered(QString,QString,QString)));
+        connect(this, SIGNAL(linkHovered(QString,QString,QString)),
+                m_messageView, SLOT(partLinkHovered(QString,QString,QString)));
+
+        installEventFilter(m_messageView);
+    }
 }
 
 void SimplePartWidget::slotMarkupPlainText() {



More information about the kde-doc-english mailing list