From 79835a7b1994ba84a595484f19902b64cd749f8b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thomas=20L=C3=BCbking?= <thomas.luebking@gmail.com>
Date: Mon, 23 Jul 2012 23:30:52 +0200
Subject: [PATCH] header scrollers

---
 src/Gui/EmbeddedWebView.cpp | 12 +++++++++---
 src/Gui/Window.cpp          | 11 +++--------
 2 Dateien geändert, 12 Zeilen hinzugefügt(+), 11 Zeilen entfernt(-)

diff --git a/src/Gui/EmbeddedWebView.cpp b/src/Gui/EmbeddedWebView.cpp
index 43a19b5..fbaca43 100644
--- a/src/Gui/EmbeddedWebView.cpp
+++ b/src/Gui/EmbeddedWebView.cpp
@@ -123,8 +123,9 @@ void EmbeddedWebView::handlePageLoadFinished(bool ok)
 
     // We've already set in in our constructor, but apparently it isn't enough (Qt 4.8.0 on X11).
     // Let's do it again here, it works.
-    page()->mainFrame()->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff);
-    page()->mainFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff);
+    Qt::ScrollBarPolicy policy = isWindow() ? Qt::ScrollBarAsNeeded : Qt::ScrollBarAlwaysOff;
+    page()->mainFrame()->setScrollBarPolicy(Qt::Horizontal, policy);
+    page()->mainFrame()->setScrollBarPolicy(Qt::Vertical, policy);
     page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
 }
 
@@ -180,7 +181,12 @@ void EmbeddedWebView::findScrollParent() {
 void EmbeddedWebView::showEvent(QShowEvent *se)
 {
     QWebView::showEvent(se);
-    if (!m_scrollParent) // it would be much easier if the parents were just passed with the constructor ;-)
+    Qt::ScrollBarPolicy policy = isWindow() ? Qt::ScrollBarAsNeeded : Qt::ScrollBarAlwaysOff;
+    page()->mainFrame()->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAsNeeded);
+    page()->mainFrame()->setScrollBarPolicy(Qt::Vertical, policy);
+    if (isWindow()) {
+        resize(640,480);
+    } else if (!m_scrollParent) // it would be much easier if the parents were just passed with the constructor ;-)
         findScrollParent();
 }
 
diff --git a/src/Gui/Window.cpp b/src/Gui/Window.cpp
index d1dffa5..1253092 100644
--- a/src/Gui/Window.cpp
+++ b/src/Gui/Window.cpp
@@ -1268,15 +1268,10 @@ void MainWindow::slotViewMsgHeaders()
         Imap::Network::MsgPartNetAccessManager *netAccess = new Imap::Network::MsgPartNetAccessManager(this);
         netAccess->setModelMessage(messageIndex);
 
-        QScrollArea *area = new QScrollArea();
-        area->setWidgetResizable(true);
         SimplePartWidget *headers = new SimplePartWidget(0, netAccess, messageIndex.model()->index(0, Imap::Mailbox::TreeItem::OFFSET_HEADER, messageIndex));
-        area->setWidget(headers);
-        area->setAttribute(Qt::WA_DeleteOnClose);
-        connect(area, SIGNAL(destroyed()), headers, SLOT(deleteLater()));
-        connect(area, SIGNAL(destroyed()), netAccess, SLOT(deleteLater()));
-        area->show();
-        // FIXME: add an event filter for scrolling...
+        headers->setAttribute(Qt::WA_DeleteOnClose);
+        connect(headers, SIGNAL(destroyed()), netAccess, SLOT(deleteLater()));
+        headers->show();
     }
 }
 
-- 
1.7.11.1

