aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/welcome
diff options
context:
space:
mode:
authorhjk <qtc-committer@nokia.com>2010-05-27 11:11:53 +0200
committerhjk <qtc-committer@nokia.com>2010-05-27 11:11:53 +0200
commit5805788290ee5a3ac85afe87aa6543e77d51bcdc (patch)
tree775f8aaf8c5b346ad2be67953e2962ca99fc7d64 /src/plugins/welcome
parent125aaf861505176a7d8acc8ca36ca0094862785d (diff)
parent0b52a873bda41c35ab640deadd6f30a3aa903ac7 (diff)
Merge remote branch 'origin/2.0'
Conflicts: src/plugins/projectexplorer/miniprojecttargetselector.cpp src/plugins/qmldesigner/designercore/model/modeltotextmerger.cpp src/plugins/qmldesigner/designercore/model/rewriteactioncompressor.cpp src/plugins/qt4projectmanager/qt-maemo/maemosshthread.cpp src/plugins/qt4projectmanager/qt-maemo/maemosshthread.h tests/manual/gdbdebugger/simple/app.cpp
Diffstat (limited to 'src/plugins/welcome')
-rw-r--r--src/plugins/welcome/welcomemode.cpp23
-rw-r--r--src/plugins/welcome/welcomemode.ui6
2 files changed, 21 insertions, 8 deletions
diff --git a/src/plugins/welcome/welcomemode.cpp b/src/plugins/welcome/welcomemode.cpp
index 31ffc19be2..d13ef68e7c 100644
--- a/src/plugins/welcome/welcomemode.cpp
+++ b/src/plugins/welcome/welcomemode.cpp
@@ -43,6 +43,7 @@
#include <QtGui/QScrollArea>
#include <QtGui/QDesktopServices>
#include <QtGui/QToolButton>
+#include <QtGui/QPainter>
#include <QtCore/QSettings>
#include <QtCore/QDebug>
@@ -56,6 +57,24 @@ static const char currentPageSettingsKeyC[] = "General/WelcomeTab";
namespace Welcome {
+// Helper class introduced to cache the scaled background image
+// so we avoid re-scaling for every repaint.
+class ImageWidget : public QWidget
+{
+public:
+ ImageWidget(const QPixmap &bg, QWidget *parent) : QWidget(parent), m_bg(bg) {}
+ void paintEvent(QPaintEvent *e) {
+ QPainter painter(this);
+ if (m_stretch.size() != size())
+ m_stretch = m_bg.scaled(size(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
+ painter.drawPixmap(rect(), m_stretch);
+ QWidget::paintEvent(e);
+ }
+private:
+ QPixmap m_bg;
+ QPixmap m_stretch;
+};
+
struct WelcomeModePrivate
{
typedef QMap<QToolButton*, QWidget*> ToolButtonWidgetMap;
@@ -64,7 +83,7 @@ struct WelcomeModePrivate
QScrollArea *m_scrollArea;
QWidget *m_widget;
- QWidget *m_welcomePage;
+ ImageWidget *m_welcomePage;
ToolButtonWidgetMap buttonMap;
QHBoxLayout * buttonLayout;
Ui::WelcomeMode ui;
@@ -79,7 +98,7 @@ WelcomeMode::WelcomeMode() :
l->setMargin(0);
l->setSpacing(0);
l->addWidget(new Utils::StyledBar(m_d->m_widget));
- m_d->m_welcomePage = new QWidget(m_d->m_widget);
+ m_d->m_welcomePage = new ImageWidget(QPixmap(":/welcome/images/welcomebg.png"), m_d->m_widget);
m_d->ui.setupUi(m_d->m_welcomePage);
m_d->ui.helpUsLabel->setAttribute(Qt::WA_LayoutUsesWidgetRect);
m_d->ui.feedbackButton->setAttribute(Qt::WA_LayoutUsesWidgetRect);
diff --git a/src/plugins/welcome/welcomemode.ui b/src/plugins/welcome/welcomemode.ui
index e60f8143ad..d91c4d02d7 100644
--- a/src/plugins/welcome/welcomemode.ui
+++ b/src/plugins/welcome/welcomemode.ui
@@ -75,12 +75,6 @@ QToolButton:pressed, QPushButton:pressed{
</property>
<item>
<widget class="QWidget" name="gradientWidget" native="true">
- <property name="styleSheet">
- <string notr="true">#gradientWidget {
- border-image: url(:/welcome/images/welcomebg.png) 0;
-}
-</string>
- </property>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>0</number>