From 577057d2a96edc48ad28a1f62285928616bf3d56 Mon Sep 17 00:00:00 2001
From: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Date: Fri, 16 Apr 2010 12:37:47 +0200
Subject: [PATCH] Welcome mode: Base on QScrollArea.

to able to scroll long lists again.
---
 src/libs/utils/welcomemodetreewidget.cpp          | 15 ++++++++++++---
 src/libs/utils/welcomemodetreewidget.h            |  4 ++--
 .../projectexplorer/projectwelcomepagewidget.ui   |  2 +-
 .../gettingstartedwelcomepagewidget.ui            |  2 +-
 src/plugins/welcome/communitywelcomepagewidget.ui |  2 +-
 5 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/src/libs/utils/welcomemodetreewidget.cpp b/src/libs/utils/welcomemodetreewidget.cpp
index a750aa0b1f1..fb0d6ee83cd 100644
--- a/src/libs/utils/welcomemodetreewidget.cpp
+++ b/src/libs/utils/welcomemodetreewidget.cpp
@@ -35,7 +35,6 @@
 #include <QtGui/QVBoxLayout>
 #include <QtGui/QMouseEvent>
 #include <QtGui/QResizeEvent>
-#include <QtGui/QImage>
 
 enum { leftContentsMargin = 2,
        topContentsMargin = 2,
@@ -241,14 +240,24 @@ WelcomeModeTreeWidgetPrivate::WelcomeModeTreeWidgetPrivate() :
     itemLayout(new QVBoxLayout)
 {
     layout->setMargin(0);
+    itemLayout->setMargin(0);
 }
 
 WelcomeModeTreeWidget::WelcomeModeTreeWidget(QWidget *parent) :
-        QWidget(parent), m_d(new WelcomeModeTreeWidgetPrivate)
+        QScrollArea(parent), m_d(new WelcomeModeTreeWidgetPrivate)
 {
-    setLayout(m_d->layout);
     m_d->layout->addLayout(m_d->itemLayout);
     m_d->layout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Ignored, QSizePolicy::MinimumExpanding));
+    QWidget *contents = new QWidget;
+    contents->setLayout(m_d->layout);
+    viewport()->setBackgroundRole(QPalette::Base); // Bright background.
+    setWidget(contents);
+    setWidgetResizable(true);
+    setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
+    setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+    setFrameStyle(QFrame::NoFrame);
+    setFrameShadow(QFrame::Plain);
+    setContentsMargins(0, 0, 0, 0);
 }
 
 WelcomeModeTreeWidget::~WelcomeModeTreeWidget()
diff --git a/src/libs/utils/welcomemodetreewidget.h b/src/libs/utils/welcomemodetreewidget.h
index eae57ade97a..b3f211bcb06 100644
--- a/src/libs/utils/welcomemodetreewidget.h
+++ b/src/libs/utils/welcomemodetreewidget.h
@@ -32,7 +32,7 @@
 
 #include "utils_global.h"
 
-#include <QtGui/QTreeWidget>
+#include <QtGui/QScrollArea>
 #include <QtGui/QLabel>
 
 namespace Utils {
@@ -53,7 +53,7 @@ private:
 };
 
 // WelcomeModeTreeWidget: Show an itemized list with arrows and emits a signal on click.
-class QTCREATOR_UTILS_EXPORT WelcomeModeTreeWidget : public QWidget
+class QTCREATOR_UTILS_EXPORT WelcomeModeTreeWidget : public QScrollArea
 {
     Q_OBJECT
 public:
diff --git a/src/plugins/projectexplorer/projectwelcomepagewidget.ui b/src/plugins/projectexplorer/projectwelcomepagewidget.ui
index 98ec7783646..a86740d541a 100644
--- a/src/plugins/projectexplorer/projectwelcomepagewidget.ui
+++ b/src/plugins/projectexplorer/projectwelcomepagewidget.ui
@@ -166,7 +166,7 @@
  <customwidgets>
   <customwidget>
    <class>Utils::WelcomeModeTreeWidget</class>
-   <extends>QWidget</extends>
+   <extends>QScrollArea</extends>
    <header location="global">utils/welcomemodetreewidget.h</header>
   </customwidget>
   <customwidget>
diff --git a/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.ui b/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.ui
index c62a653e6fe..be470d6e593 100644
--- a/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.ui
+++ b/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.ui
@@ -340,7 +340,7 @@
  <customwidgets>
   <customwidget>
    <class>Utils::WelcomeModeTreeWidget</class>
-   <extends>QWidget</extends>
+   <extends>QScrollArea</extends>
    <header location="global">utils/welcomemodetreewidget.h</header>
   </customwidget>
   <customwidget>
diff --git a/src/plugins/welcome/communitywelcomepagewidget.ui b/src/plugins/welcome/communitywelcomepagewidget.ui
index 488119ca4ab..390d16b7143 100644
--- a/src/plugins/welcome/communitywelcomepagewidget.ui
+++ b/src/plugins/welcome/communitywelcomepagewidget.ui
@@ -105,7 +105,7 @@
  <customwidgets>
   <customwidget>
    <class>Utils::WelcomeModeTreeWidget</class>
-   <extends>QWidget</extends>
+   <extends>QScrollArea</extends>
    <header location="global">utils/welcomemodetreewidget.h</header>
   </customwidget>
   <customwidget>
-- 
GitLab