ENH: group together items with no prefix and items that won't be
grouped with others.
This commit is contained in:
parent
3e909b5908
commit
2d37d2a48d
|
@ -211,23 +211,44 @@ void QCMakeCacheModel::setProperties(const QCMakePropertyList& props)
|
||||||
QString QCMakeCacheModel::prefix(const QString& s)
|
QString QCMakeCacheModel::prefix(const QString& s)
|
||||||
{
|
{
|
||||||
QString prefix = s.section('_', 0, 0);
|
QString prefix = s.section('_', 0, 0);
|
||||||
|
if(prefix == s)
|
||||||
|
{
|
||||||
|
prefix = QString();
|
||||||
|
}
|
||||||
return prefix;
|
return prefix;
|
||||||
}
|
}
|
||||||
|
|
||||||
void QCMakeCacheModel::breakProperties(const QSet<QCMakeProperty>& props,
|
void QCMakeCacheModel::breakProperties(const QSet<QCMakeProperty>& props,
|
||||||
QMap<QString, QCMakePropertyList>& result)
|
QMap<QString, QCMakePropertyList>& result)
|
||||||
{
|
{
|
||||||
|
QMap<QString, QCMakePropertyList> tmp;
|
||||||
// return a map of properties grouped by prefixes, and sorted
|
// return a map of properties grouped by prefixes, and sorted
|
||||||
foreach(QCMakeProperty p, props)
|
foreach(QCMakeProperty p, props)
|
||||||
{
|
{
|
||||||
QString prefix = QCMakeCacheModel::prefix(p.Key);
|
QString prefix = QCMakeCacheModel::prefix(p.Key);
|
||||||
result[prefix].append(p);
|
tmp[prefix].append(p);
|
||||||
}
|
}
|
||||||
|
// sort it and re-org any properties with only one sub item
|
||||||
|
QCMakePropertyList reorgProps;
|
||||||
QMap<QString, QCMakePropertyList>::iterator iter;
|
QMap<QString, QCMakePropertyList>::iterator iter;
|
||||||
for(iter = result.begin(); iter != result.end(); ++iter)
|
for(iter = tmp.begin(); iter != tmp.end();)
|
||||||
{
|
{
|
||||||
qSort(*iter);
|
if(iter->count() == 1)
|
||||||
|
{
|
||||||
|
reorgProps.append((*iter)[0]);
|
||||||
|
iter = tmp.erase(iter);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
qSort(*iter);
|
||||||
|
++iter;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
if(reorgProps.count())
|
||||||
|
{
|
||||||
|
tmp[QCMakeCacheModel::prefix("NOPREFIX")] += reorgProps;
|
||||||
|
}
|
||||||
|
result = tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
QCMakePropertyList QCMakeCacheModel::properties() const
|
QCMakePropertyList QCMakeCacheModel::properties() const
|
||||||
|
|
Loading…
Reference in New Issue