Share "auto-detected" UI string and add tool tip

No need to have the same translatable string repeated at all these
places.
Also add tooltip to expand a bit on what "auto-detected" actually means.

Task-number: QTCREATORBUG-25291
Change-Id: I25d43486758ba17256cf7e1ea2eea0ec3d567b62
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
Eike Ziller
2021-01-29 10:01:03 +01:00
parent aae3ce15aa
commit c245a642f2
15 changed files with 102 additions and 13 deletions

View File

@@ -1186,10 +1186,17 @@ StaticTreeItem::StaticTreeItem(const QString &display)
{
}
StaticTreeItem::StaticTreeItem(const QStringList &displays, const QStringList &toolTips)
: m_displays(displays)
, m_toolTips(toolTips)
{}
QVariant StaticTreeItem::data(int column, int role) const
{
if (role == Qt::DisplayRole && column >= 0 && column < m_displays.size())
return m_displays.at(column);
if (role == Qt::ToolTipRole && column >= 0 && column < m_toolTips.size())
return m_toolTips.at(column);
return QVariant();
}

View File

@@ -165,12 +165,14 @@ class QTCREATOR_UTILS_EXPORT StaticTreeItem : public TreeItem
public:
StaticTreeItem(const QStringList &displays);
StaticTreeItem(const QString &display);
StaticTreeItem(const QStringList &displays, const QStringList &toolTips);
QVariant data(int column, int role) const override;
Qt::ItemFlags flags(int column) const override;
private:
QStringList m_displays;
QStringList m_toolTips;
};
// A general purpose multi-level model where each item can have its

View File

@@ -232,7 +232,9 @@ public:
CMakeToolItemModel::CMakeToolItemModel()
{
setHeader({tr("Name"), tr("Location")});
rootItem()->appendChild(new StaticTreeItem(tr("Auto-detected")));
rootItem()->appendChild(
new StaticTreeItem({ProjectExplorer::Constants::msgAutoDetected()},
{ProjectExplorer::Constants::msgAutoDetectedToolTip()}));
rootItem()->appendChild(new StaticTreeItem(tr("Manual")));
foreach (const CMakeTool *item, CMakeToolManager::cmakeTools())

View File

@@ -490,6 +490,11 @@ QString ICore::crashReportsPath()
return libexecPath() + "/crashpad_reports/reports";
}
QString ICore::ideDisplayName()
{
return Constants::IDE_DISPLAY_NAME;
}
static QString clangIncludePath(const QString &clangVersion)
{
return "/lib/clang/" + clangVersion + "/include";

View File

@@ -101,6 +101,8 @@ public:
static QString libexecPath();
static QString crashReportsPath();
static QString ideDisplayName();
static QString versionString();
static QMainWindow *mainWindow();

View File

@@ -223,8 +223,10 @@ const DebuggerItem *findDebugger(const Predicate &pred)
DebuggerItemModel::DebuggerItemModel()
{
setHeader({tr("Name"), tr("Location"), tr("Type")});
rootItem()->appendChild(new StaticTreeItem(tr("Auto-detected")));
rootItem()->appendChild(new StaticTreeItem(tr("Manual")));
rootItem()->appendChild(
new StaticTreeItem({ProjectExplorer::Constants::msgAutoDetected()},
{ProjectExplorer::Constants::msgAutoDetectedToolTip()}));
rootItem()->appendChild(new StaticTreeItem(ProjectExplorer::Constants::msgManual()));
}
void DebuggerItemModel::addDebugger(const DebuggerItem &item, bool changed)

View File

@@ -28,6 +28,7 @@
#include "tooltreeitem.h"
#include "exewrappers/mesontools.h"
#include <projectexplorer/projectexplorerconstants.h>
#include <utils/qtcassert.h>
#include <utils/stringutils.h>
@@ -37,8 +38,10 @@ namespace Internal {
ToolsModel::ToolsModel()
{
setHeader({tr("Name"), tr("Location")});
rootItem()->appendChild(new Utils::StaticTreeItem(tr("Auto-detected")));
rootItem()->appendChild(new Utils::StaticTreeItem(tr("Manual")));
rootItem()->appendChild(
new Utils::StaticTreeItem({ProjectExplorer::Constants::msgAutoDetected()},
{ProjectExplorer::Constants::msgAutoDetectedToolTip()}));
rootItem()->appendChild(new Utils::StaticTreeItem(ProjectExplorer::Constants::msgManual()));
for (const auto &tool : MesonTools::tools()) {
addMesonTool(tool);
}

View File

@@ -131,6 +131,7 @@ add_qtc_plugin(ProjectExplorer
projectexplorer.cpp projectexplorer.h
projectexplorer.qrc
projectexplorer_export.h
projectexplorerconstants.cpp
projectexplorerconstants.h
projectexplorericons.cpp projectexplorericons.h
projectexplorersettings.h

View File

@@ -29,9 +29,10 @@
#include "kitmanagerconfigwidget.h"
#include "kitmanager.h"
#include <utils/utilsicons.h>
#include <projectexplorer/projectexplorerconstants.h>
#include <utils/algorithm.h>
#include <utils/qtcassert.h>
#include <utils/utilsicons.h>
#include <QApplication>
#include <QLayout>
@@ -106,8 +107,9 @@ KitModel::KitModel(QBoxLayout *parentLayout, QObject *parent)
m_parentLayout(parentLayout)
{
setHeader(QStringList(tr("Name")));
m_autoRoot = new StaticTreeItem(tr("Auto-detected"));
m_manualRoot = new StaticTreeItem(tr("Manual"));
m_autoRoot = new StaticTreeItem({ProjectExplorer::Constants::msgAutoDetected()},
{ProjectExplorer::Constants::msgAutoDetectedToolTip()});
m_manualRoot = new StaticTreeItem(ProjectExplorer::Constants::msgManual());
rootItem()->appendChild(m_autoRoot);
rootItem()->appendChild(m_manualRoot);

View File

@@ -212,6 +212,7 @@ SOURCES += projectexplorer.cpp \
ioutputparser.cpp \
projectconfiguration.cpp \
gnumakeparser.cpp \
projectexplorerconstants.cpp \
task.cpp \
copytaskhandler.cpp \
showineditortaskhandler.cpp \

View File

@@ -111,6 +111,7 @@ Project {
"projectexplorer.cpp", "projectexplorer.h",
"projectexplorer.qrc",
"projectexplorer_export.h",
"projectexplorerconstants.cpp",
"projectexplorerconstants.h",
"projectexplorericons.h", "projectexplorericons.cpp",
"projectexplorersettings.h",

View File

@@ -0,0 +1,54 @@
/****************************************************************************
**
** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qt Creator.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 as published by the Free Software
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
****************************************************************************/
#include "projectexplorerconstants.h"
#include <coreplugin/icore.h>
#include <QCoreApplication>
#include <QString>
namespace ProjectExplorer {
namespace Constants {
QString msgAutoDetected()
{
return QCoreApplication::translate("ProjectExplorer", "Auto-detected");
}
QString msgAutoDetectedToolTip()
{
return QCoreApplication::translate("ProjectExplorer",
"Automatically managed by %1 or the installer.")
.arg(Core::ICore::ideDisplayName());
}
QString msgManual()
{
return QCoreApplication::translate("ProjectExplorer", "Manual");
}
} // namespace Constants
} // namespace ProjectExplorer

View File

@@ -25,7 +25,7 @@
#pragma once
#include <QtGlobal>
#include "projectexplorer_export.h"
namespace ProjectExplorer {
namespace Constants {
@@ -230,5 +230,10 @@ const char PROJECT_ROOT_PATH_KEY[] = "ProjectExplorer.Project.RootPath";
const char STARTUPSESSION_KEY[] = "ProjectExplorer/SessionToRestore";
const char LASTSESSION_KEY[] = "ProjectExplorer/StartupSession";
// UI texts
PROJECTEXPLORER_EXPORT QString msgAutoDetected();
PROJECTEXPLORER_EXPORT QString msgAutoDetectedToolTip();
PROJECTEXPLORER_EXPORT QString msgManual();
} // namespace Constants
} // namespace ProjectExplorer

View File

@@ -161,8 +161,9 @@ public:
[](ToolChainFactory *factory) { return factory->canCreate();});
m_model.setHeader({ToolChainOptionsPage::tr("Name"), ToolChainOptionsPage::tr("Type")});
auto autoRoot = new StaticTreeItem(ToolChainOptionsPage::tr("Auto-detected"));
auto manualRoot = new StaticTreeItem(ToolChainOptionsPage::tr("Manual"));
auto autoRoot = new StaticTreeItem({ProjectExplorer::Constants::msgAutoDetected()},
{ProjectExplorer::Constants::msgAutoDetectedToolTip()});
auto manualRoot = new StaticTreeItem(ProjectExplorer::Constants::msgManual());
foreach (const Utils::Id &l, ToolChainManager::allLanguages()) {
const QString dn = ToolChainManager::displayNameOfLanguageId(l);

View File

@@ -261,8 +261,9 @@ QtOptionsPageWidget::QtOptionsPageWidget()
m_ui.versionInfoWidget->setWidget(versionInfoWidget);
m_ui.versionInfoWidget->setState(DetailsWidget::NoSummary);
m_autoItem = new StaticTreeItem(tr("Auto-detected"));
m_manualItem = new StaticTreeItem(tr("Manual"));
m_autoItem = new StaticTreeItem({ProjectExplorer::Constants::msgAutoDetected()},
{ProjectExplorer::Constants::msgAutoDetectedToolTip()});
m_manualItem = new StaticTreeItem(ProjectExplorer::Constants::msgManual());
m_model = new TreeModel<TreeItem, TreeItem, QtVersionItem>();
m_model->setHeader({tr("Name"), tr("qmake Location")});