From d0587c951f95b07125e9e1b9c604e7774ac4483e Mon Sep 17 00:00:00 2001 From: Tobias Hunger <tobias.hunger@digia.com> Date: Wed, 6 Feb 2013 18:20:47 +0100 Subject: [PATCH] Kit: Display warning and error icons Display warning and error icons in the kit options page. This is more consistent with what we do elsewhere. Change-Id: I31786054da3ad8c55931156f0124740eea2d68d3 Reviewed-by: Daniel Teske <daniel.teske@digia.com> --- src/plugins/projectexplorer/kit.cpp | 12 +++++++++++- src/plugins/projectexplorer/kit.h | 1 + .../projectexplorer/kitmanagerconfigwidget.cpp | 5 +++++ src/plugins/projectexplorer/kitmanagerconfigwidget.h | 1 + src/plugins/projectexplorer/kitmodel.cpp | 7 ++++++- 5 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/plugins/projectexplorer/kit.cpp b/src/plugins/projectexplorer/kit.cpp index 9929e8427ed..0ab29c274ff 100644 --- a/src/plugins/projectexplorer/kit.cpp +++ b/src/plugins/projectexplorer/kit.cpp @@ -87,6 +87,7 @@ public: m_id(id), m_autodetected(false), m_isValid(true), + m_hasWarning(false), m_nestedBlockingLevel(0), m_mustNotify(false) { @@ -98,6 +99,7 @@ public: Id m_id; bool m_autodetected; bool m_isValid; + bool m_hasWarning; QIcon m_icon; QString m_iconPath; int m_nestedBlockingLevel; @@ -176,16 +178,24 @@ bool Kit::isValid() const return d->m_id.isValid() && d->m_isValid; } +bool Kit::hasWarning() const +{ + return d->m_hasWarning; +} + QList<Task> Kit::validate() const { QList<Task> result; QList<KitInformation *> infoList = KitManager::instance()->kitInformation(); d->m_isValid = true; + d->m_hasWarning = false; foreach (KitInformation *i, infoList) { QList<Task> tmp = i->validate(this); foreach (const Task &t, tmp) { if (t.type == Task::Error) d->m_isValid = false; + if (t.type == Task::Warning) + d->m_hasWarning = true; } result.append(tmp); } @@ -411,7 +421,7 @@ QString Kit::toHtml() str << "<h3>" << displayName() << "</h3>"; str << "<table>"; - if (!isValid()) { + if (!isValid() || hasWarning()) { QList<Task> issues = validate(); str << "<p>"; foreach (const Task &t, issues) { diff --git a/src/plugins/projectexplorer/kit.h b/src/plugins/projectexplorer/kit.h index 78a1ba49919..c4b9a2dcb75 100644 --- a/src/plugins/projectexplorer/kit.h +++ b/src/plugins/projectexplorer/kit.h @@ -64,6 +64,7 @@ public: void unblockNotification(); bool isValid() const; + bool hasWarning() const; QList<Task> validate() const; void fix(); // Fix the individual kit information. void setup(); // Apply advanced magic(TM). Used only once on each kit during initial setup. diff --git a/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp b/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp index 6fa48cf7d82..750b3fc479f 100644 --- a/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp +++ b/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp @@ -157,6 +157,11 @@ bool KitManagerConfigWidget::isValid() const return m_modifiedKit->isValid(); } +bool KitManagerConfigWidget::hasWarning() const +{ + return m_modifiedKit->hasWarning(); +} + QString KitManagerConfigWidget::validityMessage() const { return m_modifiedKit->toHtml(); diff --git a/src/plugins/projectexplorer/kitmanagerconfigwidget.h b/src/plugins/projectexplorer/kitmanagerconfigwidget.h index 9267034e026..9ea72406c51 100644 --- a/src/plugins/projectexplorer/kitmanagerconfigwidget.h +++ b/src/plugins/projectexplorer/kitmanagerconfigwidget.h @@ -60,6 +60,7 @@ public: void discard(); bool isDirty() const; bool isValid() const; + bool hasWarning() const; QString validityMessage() const; void addConfigWidget(ProjectExplorer::KitConfigWidget *widget); void makeReadOnly(); diff --git a/src/plugins/projectexplorer/kitmodel.cpp b/src/plugins/projectexplorer/kitmodel.cpp index 3c6732f91f3..061ae49869c 100644 --- a/src/plugins/projectexplorer/kitmodel.cpp +++ b/src/plugins/projectexplorer/kitmodel.cpp @@ -154,6 +154,7 @@ int KitModel::columnCount(const QModelIndex &parent) const QVariant KitModel::data(const QModelIndex &index, int role) const { static QIcon warningIcon(QLatin1String(":/projectexplorer/images/compile_warning.png")); + static QIcon errorIcon(QLatin1String(":/projectexplorer/images/compile_error.png")); if (!index.isValid() || index.column() != 0) return QVariant(); @@ -179,7 +180,11 @@ QVariant KitModel::data(const QModelIndex &index, int role) const baseName = tr("%1 (default)").arg(baseName); return baseName; } else if (role == Qt::DecorationRole) { - return node->widget->isValid() ? QIcon() : warningIcon; + if (!node->widget->isValid()) + return errorIcon; + if (node->widget->hasWarning()) + return warningIcon; + return QIcon(); } else if (role == Qt::ToolTipRole) { return node->widget->validityMessage(); } -- GitLab