From ad65077adc42b2087512526e122c97bdc4b26b20 Mon Sep 17 00:00:00 2001 From: Daniel Molkentin <daniel.molkentin@nokia.com> Date: Mon, 26 Oct 2009 17:26:04 +0100 Subject: [PATCH] Some refactoring on the Welcome Widget. Generalize tooltips. --- src/libs/utils/welcomemodetreewidget.cpp | 8 +++++-- src/libs/utils/welcomemodetreewidget.h | 2 +- .../projectwelcomepagewidget.cpp | 3 +-- .../welcome/communitywelcomepagewidget.cpp | 22 ++++++++++++++----- 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/src/libs/utils/welcomemodetreewidget.cpp b/src/libs/utils/welcomemodetreewidget.cpp index 1fd3b52a432..b5cd3489515 100644 --- a/src/libs/utils/welcomemodetreewidget.cpp +++ b/src/libs/utils/welcomemodetreewidget.cpp @@ -30,6 +30,7 @@ #include "welcomemodetreewidget.h" #include <QtGui/QLabel> +#include <QtGui/QAction> #include <QtGui/QBoxLayout> #include <QtGui/QHeaderView> @@ -78,7 +79,7 @@ QSize WelcomeModeTreeWidget::sizeHint() const return QSize(QTreeWidget::sizeHint().width(), 30 * topLevelItemCount()); } -QTreeWidgetItem *WelcomeModeTreeWidget::addItem(const QString &label, const QString &data) +QTreeWidgetItem *WelcomeModeTreeWidget::addItem(const QString &label, const QString &data, const QString &toolTip) { QTreeWidgetItem *item = new QTreeWidgetItem(this); item->setIcon(0, m_d->bullet); @@ -94,7 +95,10 @@ QTreeWidgetItem *WelcomeModeTreeWidget::addItem(const QString &label, const QStr wdg->setLayout(lay); setItemWidget(item, 1, wdg); item->setData(0, Qt::UserRole, data); + if (!toolTip.isEmpty()) + wdg->setToolTip(toolTip); return item; + } void WelcomeModeTreeWidget::slotAddNewsItem(const QString &title, const QString &description, const QString &link) @@ -105,7 +109,7 @@ void WelcomeModeTreeWidget::slotAddNewsItem(const QString &title, const QString f.setBold(true); QString elidedTitle = QFontMetrics(f).elidedText(title, Qt::ElideRight, itemWidth); QString data = QString::fromLatin1("<b>%1</b><br />%2").arg(elidedTitle).arg(elidedText); - addTopLevelItem(addItem(data,link)); + addTopLevelItem(addItem(data, link, link)); } void WelcomeModeTreeWidget::slotItemClicked(QTreeWidgetItem *item) diff --git a/src/libs/utils/welcomemodetreewidget.h b/src/libs/utils/welcomemodetreewidget.h index 61ae5b6de8c..2dc4cc2f928 100644 --- a/src/libs/utils/welcomemodetreewidget.h +++ b/src/libs/utils/welcomemodetreewidget.h @@ -56,7 +56,7 @@ class QTCREATOR_UTILS_EXPORT WelcomeModeTreeWidget : public QTreeWidget public: WelcomeModeTreeWidget(QWidget *parent = 0); ~WelcomeModeTreeWidget(); - QTreeWidgetItem *addItem(const QString &label, const QString &data); + QTreeWidgetItem *addItem(const QString &label, const QString &data,const QString &toolTip = QString::null); public slots: void slotAddNewsItem(const QString &title, const QString &description, const QString &link); diff --git a/src/plugins/projectexplorer/projectwelcomepagewidget.cpp b/src/plugins/projectexplorer/projectwelcomepagewidget.cpp index df576678443..4df5f9c9a57 100644 --- a/src/plugins/projectexplorer/projectwelcomepagewidget.cpp +++ b/src/plugins/projectexplorer/projectwelcomepagewidget.cpp @@ -119,9 +119,8 @@ void ProjectWelcomePageWidget::updateWelcomePage(const WelcomePageData &welcomeP typedef QPair<QString, QString> QStringPair; if (welcomePageData.projectList.count() > 0) { foreach (const QStringPair &it, welcomePageData.projectList) { - QTreeWidgetItem *item = ui->projTreeWidget->addItem(it.second, it.first); const QFileInfo fi(it.first); - item->setToolTip(1, QDir::toNativeSeparators(fi.absolutePath())); + QTreeWidgetItem *item = ui->projTreeWidget->addItem(it.second, it.first, fi.absolutePath()); } } else { ui->projTreeWidget->hide(); diff --git a/src/plugins/welcome/communitywelcomepagewidget.cpp b/src/plugins/welcome/communitywelcomepagewidget.cpp index 5b54f23cb7d..f3048f3b608 100644 --- a/src/plugins/welcome/communitywelcomepagewidget.cpp +++ b/src/plugins/welcome/communitywelcomepagewidget.cpp @@ -32,11 +32,12 @@ #include "rssfetcher.h" +#include <QtCore/QMap> #include <QtGui/QDesktopServices> +#include <QtGui/QTreeWidgetItem> namespace Welcome { namespace Internal { - CommunityWelcomePageWidget::CommunityWelcomePageWidget(QWidget *parent) : QWidget(parent), m_rssFetcher(new RSSFetcher(7)), @@ -54,13 +55,22 @@ CommunityWelcomePageWidget::CommunityWelcomePageWidget(QWidget *parent) : //: Add localized feed here only if one exists m_rssFetcher->fetch(QUrl(tr("http://labs.trolltech.com/blogs/feed"))); - ui->sitesTreeWidget->addItem(tr("Qt Home"), QLatin1String("http://qt.nokia.com")); - ui->sitesTreeWidget->addItem(tr("Qt Labs"), QLatin1String("http://labs.trolltech.com")); - ui->sitesTreeWidget->addItem(tr("Qt Git Hosting"), QLatin1String("http://qt.gitorious.org")); - ui->sitesTreeWidget->addItem(tr("Qt Centre"), QLatin1String("http://www.qtcentre.org")); - ui->sitesTreeWidget->addItem(tr("Qt for Symbian at Forum Nokia"), QLatin1String("http://discussion.forum.nokia.com/forum/forumdisplay.php?f=196")); + QMap<QString, QString> sites; + sites[tr("Qt Home")] = QLatin1String("http://qt.nokia.com"); + sites[tr("Qt Labs")] = QLatin1String("http://labs.qt.nokia.com"); + sites[tr("Qt Git Hosting")] = QLatin1String("http://qt.gitorious.org"); + sites[tr("Qt Centre")] = QLatin1String("http://www.qtcentre.org"); + sites[tr("Qt for Symbian at Forum Nokia")] = QLatin1String("http://discussion.forum.nokia.com/forum/forumdisplay.php?f=196"); + + QMapIterator<QString, QString> it(sites); + while (it.hasNext()) { + it.next(); + ui->sitesTreeWidget->addItem(it.key(), it.value(), it.value()); + } + } + CommunityWelcomePageWidget::~CommunityWelcomePageWidget() { delete m_rssFetcher; -- GitLab