forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/10.0' into 11.0
Conflicts: src/plugins/qtsupport/exampleslistmodel.cpp Change-Id: Idbe0117ce810b4ab180a7c4f9b7b35c9c4b988e5
This commit is contained in:
@@ -4,7 +4,6 @@
|
||||
#include "exampleslistmodel.h"
|
||||
|
||||
#include "examplesparser.h"
|
||||
#include "qtsupporttr.h"
|
||||
|
||||
#include <QBuffer>
|
||||
#include <QApplication>
|
||||
@@ -326,61 +325,6 @@ static bool isValidExampleOrDemo(ExampleItem *item)
|
||||
return ok || debugExamples();
|
||||
}
|
||||
|
||||
static bool sortByHighlightedAndName(ExampleItem *first, ExampleItem *second)
|
||||
{
|
||||
if (first->isHighlighted && !second->isHighlighted)
|
||||
return true;
|
||||
if (!first->isHighlighted && second->isHighlighted)
|
||||
return false;
|
||||
return first->name.compare(second->name, Qt::CaseInsensitive) < 0;
|
||||
}
|
||||
|
||||
static QList<std::pair<Section, QList<ExampleItem *>>> getCategories(
|
||||
const QList<ExampleItem *> &items, bool sortIntoCategories)
|
||||
{
|
||||
static const QString otherDisplayName = Tr::tr("Other", "Category for all other examples");
|
||||
const bool useCategories = sortIntoCategories
|
||||
|| qtcEnvironmentVariableIsSet("QTC_USE_EXAMPLE_CATEGORIES");
|
||||
QList<ExampleItem *> other;
|
||||
QMap<QString, QList<ExampleItem *>> categoryMap;
|
||||
if (useCategories) {
|
||||
for (ExampleItem *item : items) {
|
||||
const QStringList itemCategories = item->metaData.value("category");
|
||||
for (const QString &category : itemCategories)
|
||||
categoryMap[category].append(item);
|
||||
if (itemCategories.isEmpty())
|
||||
other.append(item);
|
||||
}
|
||||
}
|
||||
QList<std::pair<Section, QList<ExampleItem *>>> categories;
|
||||
if (categoryMap.isEmpty()) {
|
||||
// The example set doesn't define categories. Consider the "highlighted" ones as "featured"
|
||||
QList<ExampleItem *> featured;
|
||||
QList<ExampleItem *> allOther;
|
||||
std::tie(featured, allOther) = Utils::partition(items, [](ExampleItem *i) {
|
||||
return i->isHighlighted;
|
||||
});
|
||||
if (!featured.isEmpty())
|
||||
categories.append(
|
||||
{{Tr::tr("Featured", "Category for highlighted examples"), 0}, featured});
|
||||
if (!allOther.isEmpty())
|
||||
categories.append({{otherDisplayName, 1}, allOther});
|
||||
} else {
|
||||
int index = 0;
|
||||
const auto end = categoryMap.constKeyValueEnd();
|
||||
for (auto it = categoryMap.constKeyValueBegin(); it != end; ++it) {
|
||||
categories.append({{it->first, index, /*maxRows=*/index == 0 ? 2 : 1}, it->second});
|
||||
++index;
|
||||
}
|
||||
if (!other.isEmpty())
|
||||
categories.append({{otherDisplayName, index, /*maxRows=*/1}, other});
|
||||
}
|
||||
const auto end = categories.end();
|
||||
for (auto it = categories.begin(); it != end; ++it)
|
||||
sort(it->second, sortByHighlightedAndName);
|
||||
return categories;
|
||||
}
|
||||
|
||||
void ExamplesViewController::updateExamples()
|
||||
{
|
||||
QString examplesInstallPath;
|
||||
|
||||
Reference in New Issue
Block a user