summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2019-11-07 15:11:42 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2019-11-07 14:29:46 +0000
commite0c073a1bfe94aa2a645fe76bfb38220025670cc (patch)
treeb3ff23683aa18b84dde5395dffd1e437b589453b
parentefa98329129317068909bee1c91a4dd6b26bd621 (diff)
downloadqt-creator-e0c073a1bfe94aa2a645fe76bfb38220025670cc.tar.gz
ProjectExplorer: Simplify FlatModel::data()
Get rid of unneeded variables, else branches, nesting. Change-Id: I8b4b1a8a32482d4017c57134da20f7b169a5ec82 Reviewed-by: hjk <hjk@qt.io>
-rw-r--r--src/plugins/projectexplorer/projectmodels.cpp127
1 files changed, 54 insertions, 73 deletions
diff --git a/src/plugins/projectexplorer/projectmodels.cpp b/src/plugins/projectexplorer/projectmodels.cpp
index ce39300600..76fe5ed9dc 100644
--- a/src/plugins/projectexplorer/projectmodels.cpp
+++ b/src/plugins/projectexplorer/projectmodels.cpp
@@ -112,84 +112,65 @@ FlatModel::FlatModel(QObject *parent)
QVariant FlatModel::data(const QModelIndex &index, int role) const
{
- QVariant result;
-
- if (const Node *node = nodeForIndex(index)) {
- const FolderNode *folderNode = node->asFolderNode();
- const ContainerNode *containerNode = node->asContainerNode();
- const Project *project = containerNode ? containerNode->project() : nullptr;
-
- switch (role) {
- case Qt::DisplayRole: {
- result = node->displayName();
- break;
- }
- case Qt::EditRole: {
- result = node->filePath().fileName();
- break;
- }
- case Qt::ToolTipRole: {
- QString tooltip = node->tooltip();
-
- if (project) {
- if (project->activeTarget()) {
- QString projectIssues = toHtml(project->projectIssues(project->activeTarget()->kit()));
- if (!projectIssues.isEmpty())
- tooltip += "<p>" + projectIssues;
- } else {
- tooltip += "<p>" + tr("No kits are enabled for this project. "
- "Enable kits in the \"Projects\" mode.");
- }
- }
- result = tooltip;
- break;
- }
- case Qt::DecorationRole: {
- if (folderNode) {
- static QIcon warnIcon = Utils::Icons::WARNING.icon();
- static QIcon emptyIcon = Utils::Icons::EMPTY16.icon();
- if (project) {
- if (project->needsConfiguration())
- result = warnIcon;
- else if (project->isParsing())
- result = emptyIcon;
- else if (!project->activeTarget()
- || !project->projectIssues(project->activeTarget()->kit()).isEmpty())
- result = warnIcon;
- else
- result = containerNode->rootProjectNode() ? containerNode->rootProjectNode()->icon() :
- folderNode->icon();
- } else {
- result = folderNode->icon();
- }
+ const Node * const node = nodeForIndex(index);
+ if (!node)
+ return QVariant();
+
+ const FolderNode * const folderNode = node->asFolderNode();
+ const ContainerNode * const containerNode = node->asContainerNode();
+ const Project * const project = containerNode ? containerNode->project() : nullptr;
+
+ switch (role) {
+ case Qt::DisplayRole:
+ return node->displayName();
+ case Qt::EditRole:
+ return node->filePath().fileName();
+ case Qt::ToolTipRole: {
+ QString tooltip = node->tooltip();
+ if (project) {
+ if (project->activeTarget()) {
+ QString projectIssues = toHtml(project->projectIssues(project->activeTarget()->kit()));
+ if (!projectIssues.isEmpty())
+ tooltip += "<p>" + projectIssues;
} else {
- result = Core::FileIconProvider::icon(node->filePath().toString());
+ tooltip += "<p>" + tr("No kits are enabled for this project. "
+ "Enable kits in the \"Projects\" mode.");
}
- break;
- }
- case Qt::FontRole: {
- QFont font;
- if (project == SessionManager::startupProject())
- font.setBold(true);
- result = font;
- break;
- }
- case Qt::ForegroundRole: {
- result = node->isEnabled() ? m_enabledTextColor : m_disabledTextColor;
- break;
- }
- case Project::FilePathRole: {
- result = node->filePath().toString();
- break;
- }
- case Project::isParsingRole: {
- result = project ? project->isParsing() && !project->needsConfiguration() : false;
- break;
- }
}
+ return tooltip;
+ }
+ case Qt::DecorationRole: {
+ if (!folderNode)
+ return Core::FileIconProvider::icon(node->filePath().toString());
+ if (!project)
+ return folderNode->icon();
+ static QIcon warnIcon = Utils::Icons::WARNING.icon();
+ static QIcon emptyIcon = Utils::Icons::EMPTY16.icon();
+ if (project->needsConfiguration())
+ return warnIcon;
+ if (project->isParsing())
+ return emptyIcon;
+ if (!project->activeTarget()
+ || !project->projectIssues(project->activeTarget()->kit()).isEmpty())
+ return warnIcon;
+ return containerNode->rootProjectNode() ? containerNode->rootProjectNode()->icon()
+ : folderNode->icon();
+ }
+ case Qt::FontRole: {
+ QFont font;
+ if (project == SessionManager::startupProject())
+ font.setBold(true);
+ return font;
+ }
+ case Qt::ForegroundRole:
+ return node->isEnabled() ? m_enabledTextColor : m_disabledTextColor;
+ case Project::FilePathRole:
+ return node->filePath().toString();
+ case Project::isParsingRole:
+ return project ? project->isParsing() && !project->needsConfiguration() : false;
}
- return result;
+ return QVariant();
}
Qt::ItemFlags FlatModel::flags(const QModelIndex &index) const