Kit: Simplify validation of kits

Change-Id: I562e6f8d5fef36eea543c208cdd855db048b7f33
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
This commit is contained in:
Tobias Hunger
2012-10-11 12:31:48 +02:00
parent eac5a6460d
commit c160433ac8
4 changed files with 12 additions and 37 deletions

View File

@@ -155,8 +155,16 @@ QList<Task> Kit::validate()
{ {
QList<Task> result; QList<Task> result;
QList<KitInformation *> infoList = KitManager::instance()->kitInformation(); QList<KitInformation *> infoList = KitManager::instance()->kitInformation();
foreach (KitInformation *i, infoList) d->m_isValid = true;
result.append(i->validate(this)); foreach (KitInformation *i, infoList) {
QList<Task> tmp = i->validate(this);
foreach (const Task &t, tmp) {
if (t.type == Task::Error)
d->m_isValid = false;
}
result.append(tmp);
}
qSort(result);
return result; return result;
} }
@@ -387,13 +395,9 @@ void Kit::setAutoDetected(bool detected)
d->m_autodetected = detected; d->m_autodetected = detected;
} }
void Kit::setValid(bool valid)
{
d->m_isValid = valid;
}
void Kit::kitUpdated() void Kit::kitUpdated()
{ {
validate();
KitManager::instance()->notifyAboutUpdate(this); KitManager::instance()->notifyAboutUpdate(this);
} }

View File

@@ -93,7 +93,6 @@ private:
void operator=(const Kit &other); void operator=(const Kit &other);
void setAutoDetected(bool detected); void setAutoDetected(bool detected);
void setValid(bool valid);
void kitUpdated(); void kitUpdated();
@@ -103,7 +102,6 @@ private:
Internal::KitPrivate *d; Internal::KitPrivate *d;
friend class KitManager; friend class KitManager;
friend class Internal::KitManagerPrivate;
}; };
} // namespace ProjectExplorer } // namespace ProjectExplorer

View File

@@ -80,7 +80,6 @@ class KitManagerPrivate
public: public:
KitManagerPrivate(); KitManagerPrivate();
~KitManagerPrivate(); ~KitManagerPrivate();
QList<Task> validateKit(Kit *k) const;
Kit *m_defaultKit; Kit *m_defaultKit;
bool m_initialized; bool m_initialized;
@@ -101,22 +100,6 @@ KitManagerPrivate::~KitManagerPrivate()
delete m_writer; delete m_writer;
} }
QList<Task> KitManagerPrivate::validateKit(Kit *k) const
{
Q_ASSERT(k);
QList<Task> result;
bool hasError = false;
foreach (KitInformation *ki, m_informationList) {
QList<Task> tmp = ki->validate(k);
foreach (const Task &t, tmp)
if (t.type == Task::Error)
hasError = true;
result << tmp;
}
k->setValid(!hasError);
return result;
}
} // namespace Internal } // namespace Internal
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@@ -388,7 +371,6 @@ void KitManager::notifyAboutUpdate(ProjectExplorer::Kit *k)
{ {
if (!k || !kits().contains(k)) if (!k || !kits().contains(k))
return; return;
d->validateKit(k);
emit kitUpdated(k); emit kitUpdated(k);
} }
@@ -432,13 +414,6 @@ void KitManager::deregisterKit(Kit *k)
delete k; delete k;
} }
QList<Task> KitManager::validateKit(Kit *k)
{
QList<Task> result = d->validateKit(k);
qSort(result);
return result;
}
void KitManager::setDefaultKit(Kit *k) void KitManager::setDefaultKit(Kit *k)
{ {
if (d->m_defaultKit == k) if (d->m_defaultKit == k)
@@ -452,7 +427,7 @@ void KitManager::setDefaultKit(Kit *k)
void KitManager::validateKits() void KitManager::validateKits()
{ {
foreach (Kit *k, kits()) foreach (Kit *k, kits())
d->validateKit(k); k->validate();
} }
void KitManager::addKit(Kit *k) void KitManager::addKit(Kit *k)
@@ -460,7 +435,6 @@ void KitManager::addKit(Kit *k)
if (!k) if (!k)
return; return;
k->setDisplayName(k->displayName()); // make name unique k->setDisplayName(k->displayName()); // make name unique
d->validateKit(k);
d->m_kitList.append(k); d->m_kitList.append(k);
if (!d->m_defaultKit || if (!d->m_defaultKit ||
(!d->m_defaultKit->isValid() && k->isValid())) (!d->m_defaultKit->isValid() && k->isValid()))

View File

@@ -115,7 +115,6 @@ public:
public slots: public slots:
bool registerKit(ProjectExplorer::Kit *k); bool registerKit(ProjectExplorer::Kit *k);
void deregisterKit(ProjectExplorer::Kit *k); void deregisterKit(ProjectExplorer::Kit *k);
QList<Task> validateKit(ProjectExplorer::Kit *k);
void setDefaultKit(ProjectExplorer::Kit *k); void setDefaultKit(ProjectExplorer::Kit *k);
void saveKits(); void saveKits();