From e0e1f800053410ecdbbb0669b67bed7d8e255c55 Mon Sep 17 00:00:00 2001
From: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Date: Wed, 14 Apr 2010 09:26:44 +0200
Subject: [PATCH] WelcomeMode: Code polishing.

---
 src/libs/utils/welcomemodetreewidget.cpp      |  9 ++-
 .../welcome/communitywelcomepagewidget.cpp    | 63 ++++++++++++-------
 2 files changed, 47 insertions(+), 25 deletions(-)

diff --git a/src/libs/utils/welcomemodetreewidget.cpp b/src/libs/utils/welcomemodetreewidget.cpp
index 2fa611646e1..f774d24a5ee 100644
--- a/src/libs/utils/welcomemodetreewidget.cpp
+++ b/src/libs/utils/welcomemodetreewidget.cpp
@@ -106,17 +106,20 @@ QTreeWidgetItem *WelcomeModeTreeWidget::addItem(const QString &label, const QStr
     if (!toolTip.isEmpty())
         wdg->setToolTip(toolTip);
     return item;
-
 }
 
 void WelcomeModeTreeWidget::slotAddNewsItem(const QString &title, const QString &description, const QString &link)
 {
-    int itemWidth = width()-header()->sectionSize(0);
+    const int itemWidth = width()-header()->sectionSize(0);
     QFont f = font();
     QString elidedText = QFontMetrics(f).elidedText(description, Qt::ElideRight, itemWidth);
     f.setBold(true);
     QString elidedTitle = QFontMetrics(f).elidedText(title, Qt::ElideRight, itemWidth);
-    QString data = QString::fromLatin1("<b>%1</b><br /><font color='gray'>%2</font>").arg(elidedTitle).arg(elidedText);
+    QString data = QLatin1String("<b>");
+    data += elidedTitle;
+    data += QLatin1String("</b><br /><font color='gray'>");
+    data += elidedText;
+    data += QLatin1String("</font>");
     addTopLevelItem(addItem(data, link, link));
 }
 
diff --git a/src/plugins/welcome/communitywelcomepagewidget.cpp b/src/plugins/welcome/communitywelcomepagewidget.cpp
index 517e48be092..a19f778d968 100644
--- a/src/plugins/welcome/communitywelcomepagewidget.cpp
+++ b/src/plugins/welcome/communitywelcomepagewidget.cpp
@@ -37,8 +37,47 @@
 #include <QtGui/QDesktopServices>
 #include <QtGui/QTreeWidgetItem>
 
+struct Site {
+    const char *description;
+    const char *url;
+};
+
+static const Site supportSites[] = {
+    { QT_TRANSLATE_NOOP("Welcome::Internal::CommunityWelcomePageWidget",
+                        "<b>Forum Nokia</b><br /><font color='gray'>Mobile Application Support</font>"),
+      "http://www.forum.nokia.com/I_Want_To/Develop_Mobile_Applications/Technical_Support/"},
+    { QT_TRANSLATE_NOOP("Welcome::Internal::CommunityWelcomePageWidget",
+                        "<b>Qt GPL Support</b><br /><font color='gray'>Buy professional Qt support</font>"),
+      "http://shop.qt.nokia.com/en/support.html"},
+    { QT_TRANSLATE_NOOP("Welcome::Internal::CommunityWelcomePageWidget",
+                        "<b>Qt Centre</b><br /><font color='gray'>Community based Qt support</font>"),
+      "http://www.qtcentre.org" }
+};
+
+static const Site sites[] = {
+    { QT_TRANSLATE_NOOP("Welcome::Internal::CommunityWelcomePageWidget",
+                        "<b>Qt Home</b><br /><font color='gray'>Qt by Nokia on the web</font>"),
+      "http://qt.nokia.com" },
+    { QT_TRANSLATE_NOOP("Welcome::Internal::CommunityWelcomePageWidget",
+                        "<b>Qt Git Hosting</b><br /><font color='gray'>Participate in Qt development</font>"),
+      "http://qt.gitorious.org"},
+    { QT_TRANSLATE_NOOP("Welcome::Internal::CommunityWelcomePageWidget",
+                        "<b>Qt Apps</b><br /><font color='gray'>Find free Qt-based apps</font>"),
+      "http://www.qt-apps.org"}
+};
+
 namespace Welcome {
 namespace Internal {
+
+static inline void populateWelcomeTreeWidget(const Site *sites, int count, Utils::WelcomeModeTreeWidget *wt)
+{
+    for (int s = 0; s < count; s++) {
+        const QString description = CommunityWelcomePageWidget::tr(sites[s].description);
+        const QString url = QLatin1String(sites[s].url);
+        wt->addItem(description, url, url);
+    }
+}
+
 CommunityWelcomePageWidget::CommunityWelcomePageWidget(QWidget *parent) :
     QWidget(parent),
     m_rssFetcher(new RSSFetcher(7)),
@@ -58,28 +97,8 @@ CommunityWelcomePageWidget::CommunityWelcomePageWidget(QWidget *parent) :
     //: Add localized feed here only if one exists
     m_rssFetcher->fetch(QUrl(tr("http://labs.trolltech.com/blogs/feed")));
 
-    QList<QPair<QString, QString> > supportSites;
-    QList<QPair<QString, QString> > sites;
-
-    supportSites << qMakePair(tr("<b>Forum Nokia</b><br /><font color='gray'>Mobile Application Support</font>"),  QString(QLatin1String("http://www.forum.nokia.com/I_Want_To/Develop_Mobile_Applications/Technical_Support/")));
-    supportSites << qMakePair(tr("<b>Qt GPL Support</b><br /><font color='gray'>Buy professional Qt support</font>"), QString(QLatin1String("http://shop.qt.nokia.com/en/support.html")));
-    supportSites << qMakePair(tr("<b>Qt Centre</b><br /><font color='gray'>Community based Qt support</font>"), QString(QLatin1String("http://www.qtcentre.org")));
-
-    sites << qMakePair(tr("<b>Qt Home</b><br /><font color='gray'>Qt by Nokia on the web</font>"), QString(QLatin1String("http://qt.nokia.com")));
-    sites << qMakePair(tr("<b>Qt Git Hosting</b><br /><font color='gray'>Participate in Qt development</font>"), QString(QLatin1String("http://qt.gitorious.org")));
-    sites << qMakePair(tr("<b>Qt Apps</b><br /><font color='gray'>Find free Qt-based apps</font>"), QString(QLatin1String("http://www.qt-apps.org")));
-
-    QListIterator<QPair<QString, QString> > supportSitesIt(supportSites);
-    while (supportSitesIt.hasNext()) {
-        QPair<QString, QString> pair = supportSitesIt.next();
-        ui->supportSitesTreeWidget->addItem(pair.first, pair.second, pair.second);
-    }
-
-    QListIterator<QPair<QString, QString> > sitesIt(sites);
-    while (sitesIt.hasNext()) {
-        QPair<QString, QString> pair = sitesIt.next();
-        ui->miscSitesTreeWidget->addItem(pair.first, pair.second, pair.second);
-    }
+    populateWelcomeTreeWidget(supportSites, sizeof(supportSites)/sizeof(Site), ui->supportSitesTreeWidget);
+    populateWelcomeTreeWidget(sites, sizeof(sites)/sizeof(Site), ui->miscSitesTreeWidget);
 }
 
 CommunityWelcomePageWidget::~CommunityWelcomePageWidget()
-- 
GitLab