aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEike Ziller <[email protected]>2024-03-20 15:01:51 +0100
committerEike Ziller <[email protected]>2024-03-20 15:05:58 +0100
commit90e1d96019e49c9c374082cdadd7da72e711e60c (patch)
tree3d572235b52c80017ec91579b5c2272ce5898f90 /src
parentaaf839bcf0e0ee5b77f47fcc47b4c18c2bbe31b3 (diff)
parentf75e26005fc6f6650393fca7c5189305f8938b2f (diff)
Merge remote-tracking branch 'origin/13.0'
Conflicts: cmake/QtCreatorIDEBranding.cmake doc/qtcreator/src/overview/creator-only/creator-keyboard-shortcuts.qdoc qbs/modules/qtc/qtc.qbs src/plugins/remotelinux/linuxdevicetester.cpp Change-Id: I8434e41dcfbb50f6ed032a3e0af1591eb19b79eb
Diffstat (limited to 'src')
-rw-r--r--src/libs/solutions/terminal/terminalview.cpp5
-rw-r--r--src/libs/utils/namevaluesdialog.cpp9
-rw-r--r--src/plugins/bazaar/bazaarplugin.cpp2
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp2
-rw-r--r--src/plugins/coreplugin/dialogs/externaltoolconfig.cpp22
-rw-r--r--src/plugins/coreplugin/systemsettings.cpp8
-rw-r--r--src/plugins/coreplugin/welcomepagehelper.cpp4
-rw-r--r--src/plugins/cvs/cvsplugin.cpp3
-rw-r--r--src/plugins/debugger/debuggerrunconfigurationaspect.cpp9
-rw-r--r--src/plugins/debugger/watchhandler.cpp4
-rw-r--r--src/plugins/fossil/fossilplugin.cpp2
-rw-r--r--src/plugins/git/gitplugin.cpp2
-rw-r--r--src/plugins/help/helpmanager.cpp4
-rw-r--r--src/plugins/languageclient/languageclientsettings.cpp2
-rw-r--r--src/plugins/mercurial/mercurialplugin.cpp5
-rw-r--r--src/plugins/projectexplorer/projectwelcomepage.cpp130
-rw-r--r--src/plugins/projectexplorer/toolchainoptionspage.cpp2
-rw-r--r--src/plugins/qtsupport/qtbuildaspects.cpp5
-rw-r--r--src/plugins/qtsupport/qtoptionspage.cpp2
-rw-r--r--src/plugins/remotelinux/linuxdevice.cpp9
-rw-r--r--src/plugins/remotelinux/linuxdevice.h2
-rw-r--r--src/plugins/remotelinux/linuxdevicetester.cpp87
-rw-r--r--src/plugins/screenrecorder/screenrecorderplugin.cpp8
-rw-r--r--src/plugins/subversion/subversionplugin.cpp5
-rw-r--r--src/plugins/terminal/terminalwidget.cpp2
-rw-r--r--src/plugins/vcsbase/vcsbaseclient.cpp12
-rw-r--r--src/plugins/vcsbase/vcsbaseclient.h3
-rw-r--r--src/plugins/vcsbase/vcscommand.h1
-rw-r--r--src/plugins/welcome/images/project.pngbin175 -> 172 bytes
-rw-r--r--src/plugins/welcome/images/[email protected]bin225 -> 212 bytes
-rw-r--r--src/plugins/welcome/images/session.pngbin192 -> 165 bytes
-rw-r--r--src/plugins/welcome/images/[email protected]bin255 -> 187 bytes
-rw-r--r--src/tools/icons/qtcreatoricons.svg42
33 files changed, 215 insertions, 178 deletions
diff --git a/src/libs/solutions/terminal/terminalview.cpp b/src/libs/solutions/terminal/terminalview.cpp
index 0cebe6d9b99..472346b3fcb 100644
--- a/src/libs/solutions/terminal/terminalview.cpp
+++ b/src/libs/solutions/terminal/terminalview.cpp
@@ -958,11 +958,14 @@ void TerminalView::applySizeChange()
};
if (newLiveSize.height() <= 0)
- newLiveSize.setHeight(1);
+ return;
if (newLiveSize.width() <= 0)
newLiveSize.setWidth(1);
+ if (d->m_surface->liveSize() == newLiveSize)
+ return;
+
resizePty(newLiveSize);
d->m_surface->resize(newLiveSize);
flushVTerm(true);
diff --git a/src/libs/utils/namevaluesdialog.cpp b/src/libs/utils/namevaluesdialog.cpp
index 43511fe57f0..35587f87919 100644
--- a/src/libs/utils/namevaluesdialog.cpp
+++ b/src/libs/utils/namevaluesdialog.cpp
@@ -21,8 +21,7 @@ namespace Internal {
static EnvironmentItems cleanUp(const EnvironmentItems &items)
{
- EnvironmentItems uniqueItems;
- QSet<QString> uniqueSet;
+ EnvironmentItems cleanedItems;
for (int i = items.count() - 1; i >= 0; i--) {
EnvironmentItem item = items.at(i);
if (HostOsInfo::isWindowsHost())
@@ -30,10 +29,10 @@ static EnvironmentItems cleanUp(const EnvironmentItems &items)
const QString &itemName = item.name;
QString emptyName = itemName;
emptyName.remove(QLatin1Char(' '));
- if (!emptyName.isEmpty() && Utils::insert(uniqueSet, itemName))
- uniqueItems.prepend(item);
+ if (!emptyName.isEmpty())
+ cleanedItems.prepend(item);
}
- return uniqueItems;
+ return cleanedItems;
}
class TextEditHelper : public QPlainTextEdit
diff --git a/src/plugins/bazaar/bazaarplugin.cpp b/src/plugins/bazaar/bazaarplugin.cpp
index 9a75fbf3b3c..590cfd23276 100644
--- a/src/plugins/bazaar/bazaarplugin.cpp
+++ b/src/plugins/bazaar/bazaarplugin.cpp
@@ -953,7 +953,7 @@ VcsCommand *BazaarPluginPrivate::createInitialCheckoutCommand(const QString &url
Environment env = m_client.processEnvironment(baseDirectory);
env.set("BZR_PROGRESS_BAR", "text");
- auto command = VcsBaseClient::createVcsCommand(baseDirectory, env);
+ auto command = VcsBaseClient::createVcsCommand(this, baseDirectory, env);
command->addJob({m_client.vcsBinary(baseDirectory), args}, -1);
return command;
}
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp
index 855a76681bf..6df1e7452d7 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectimporter.cpp
@@ -245,6 +245,8 @@ static CMakeConfig configurationFromPresetProbe(
cmakeListTxt.writeFileContents(QByteArray("cmake_minimum_required(VERSION 3.15)\n"
"\n"
"project(preset-probe)\n"
+ "set(CMAKE_C_COMPILER \"${CMAKE_C_COMPILER}\" CACHE FILEPATH \"\" FORCE)\n"
+ "set(CMAKE_CXX_COMPILER \"${CMAKE_CXX_COMPILER}\" CACHE FILEPATH \"\" FORCE)\n"
"\n"));
Process cmake;
diff --git a/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp b/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp
index dc434547de7..76ff935975d 100644
--- a/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp
+++ b/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp
@@ -174,19 +174,27 @@ bool ExternalToolModel::dropMimeData(const QMimeData *data,
return false;
QDataStream stream(&ba, QIODevice::ReadOnly);
QString category;
- int pos = -1;
+ qsizetype pos = -1;
stream >> category;
stream >> pos;
QList<ExternalTool *> &items = m_tools[category];
QTC_ASSERT(pos >= 0 && pos < items.count(), return false);
- beginRemoveRows(index(m_tools.keys().indexOf(category), 0), pos, pos);
+ const int sourceCategoryIndex = std::distance(m_tools.constBegin(), m_tools.constFind(category));
+ const int targetCategoryIndex
+ = std::distance(m_tools.constBegin(), m_tools.constFind(toCategory));
+ QTC_ASSERT(sourceCategoryIndex >= 0 && targetCategoryIndex >= 0, return false);
+ if (row < 0) // target row can be -1 when dropping onto the category itself
+ row = 0;
+ if (sourceCategoryIndex == targetCategoryIndex) {
+ if (row == pos || row == pos + 1) // would end at the same place, don't
+ return false;
+ }
+ beginMoveRows(index(sourceCategoryIndex, 0), pos, pos, index(targetCategoryIndex, 0), row);
ExternalTool *tool = items.takeAt(pos);
- endRemoveRows();
- if (row < 0)
- row = m_tools.value(toCategory).count();
- beginInsertRows(index(m_tools.keys().indexOf(toCategory), 0), row, row);
+ if (category == toCategory && pos < row) // adapt the target row for the removed item
+ --row;
m_tools[toCategory].insert(row, tool);
- endInsertRows();
+ endMoveRows();
return true;
}
diff --git a/src/plugins/coreplugin/systemsettings.cpp b/src/plugins/coreplugin/systemsettings.cpp
index a03eea24b89..d06d14f8dab 100644
--- a/src/plugins/coreplugin/systemsettings.cpp
+++ b/src/plugins/coreplugin/systemsettings.cpp
@@ -161,7 +161,7 @@ class SystemSettingsWidget : public IOptionsPageWidget
{
public:
SystemSettingsWidget()
- : m_fileSystemCaseSensitivityChooser(new QComboBox)
+ : m_fileSystemCaseSensitivityChooser(HostOsInfo::isMacHost() ? new QComboBox : nullptr)
, m_externalFileBrowserEdit(new QLineEdit)
, m_terminalComboBox(new QComboBox)
, m_terminalOpenArgs(new QLineEdit)
@@ -188,9 +188,6 @@ public:
m_terminalOpenArgs->setToolTip(
Tr::tr("Command line arguments used for \"%1\".").arg(FileUtils::msgTerminalHereAction()));
- auto fileSystemCaseSensitivityLabel = new QLabel(Tr::tr("File system case sensitivity:"));
- fileSystemCaseSensitivityLabel->setToolTip(
- Tr::tr("Influences how file names are matched to decide if they are the same."));
auto resetFileBrowserButton = new QPushButton(Tr::tr("Reset"));
resetFileBrowserButton->setToolTip(Tr::tr("Reset to default."));
auto helpExternalFileBrowserButton = new QToolButton;
@@ -223,6 +220,9 @@ public:
}
grid.addRow({Span(4, s.patchCommand)});
if (HostOsInfo::isMacHost()) {
+ auto fileSystemCaseSensitivityLabel = new QLabel(Tr::tr("File system case sensitivity:"));
+ fileSystemCaseSensitivityLabel->setToolTip(
+ Tr::tr("Influences how file names are matched to decide if they are the same."));
grid.addRow({fileSystemCaseSensitivityLabel,
m_fileSystemCaseSensitivityChooser});
}
diff --git a/src/plugins/coreplugin/welcomepagehelper.cpp b/src/plugins/coreplugin/welcomepagehelper.cpp
index 9cad69cdf17..fe01944a6f2 100644
--- a/src/plugins/coreplugin/welcomepagehelper.cpp
+++ b/src/plugins/coreplugin/welcomepagehelper.cpp
@@ -752,8 +752,8 @@ bool ListModelFilter::leaveFilterAcceptsRowBeforeFiltering(const ListItem *, boo
return false;
}
-constexpr TextFormat titleTF {Theme::Token_Text_Default, StyleHelper::UiElementIconActive};
-constexpr TextFormat descriptionTF {titleTF.themeColor, StyleHelper::UiElementCaption};
+constexpr TextFormat titleTF {Theme::Token_Text_Default, StyleHelper::UiElementH6};
+constexpr TextFormat descriptionTF {titleTF.themeColor, StyleHelper::UiElementCaptionStrong};
constexpr TextFormat tagsLabelTF {Theme::Token_Text_Muted, StyleHelper::UiElementCaptionStrong};
constexpr TextFormat tagsTF {Theme::Token_Text_Accent, tagsLabelTF.uiElement};
diff --git a/src/plugins/cvs/cvsplugin.cpp b/src/plugins/cvs/cvsplugin.cpp
index 2688def71e6..01c47b1646f 100644
--- a/src/plugins/cvs/cvsplugin.cpp
+++ b/src/plugins/cvs/cvsplugin.cpp
@@ -410,7 +410,8 @@ VcsCommand *CvsPluginPrivate::createInitialCheckoutCommand(const QString &url,
QStringList args;
args << QLatin1String("checkout") << url << extraArgs;
- auto command = VcsBaseClient::createVcsCommand(baseDirectory, Environment::systemEnvironment());
+ auto command = VcsBaseClient::createVcsCommand(this, baseDirectory,
+ Environment::systemEnvironment());
command->setDisplayName(Tr::tr("CVS Checkout"));
command->addJob({settings().binaryPath(), settings().addOptions(args)}, -1);
return command;
diff --git a/src/plugins/debugger/debuggerrunconfigurationaspect.cpp b/src/plugins/debugger/debuggerrunconfigurationaspect.cpp
index 54ac38e8ece..41bbef61bd3 100644
--- a/src/plugins/debugger/debuggerrunconfigurationaspect.cpp
+++ b/src/plugins/debugger/debuggerrunconfigurationaspect.cpp
@@ -77,10 +77,15 @@ DebuggerRunConfigurationAspect::DebuggerRunConfigurationAspect(Target *target)
const auto setSummaryText = [this, details] {
const auto describe = [](const TriStateAspect &aspect, const QString &name) {
- if (aspect() == TriState::Enabled)
+ if (aspect() == TriState::Enabled) {
+ //: %1 is C++, QML, or Python
return Tr::tr("Enable %1 debugger.").arg(name);
- if (aspect() == TriState::Disabled)
+ }
+ if (aspect() == TriState::Disabled) {
+ //: %1 is C++, QML, or Python
return Tr::tr("Disable %1 debugger.").arg(name);
+ }
+ //: %1 is C++, QML, or Python
return Tr::tr("Try to determine need for %1 debugger.").arg(name);
};
diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp
index 987122fcf24..0cc67f54161 100644
--- a/src/plugins/debugger/watchhandler.cpp
+++ b/src/plugins/debugger/watchhandler.cpp
@@ -959,8 +959,10 @@ static QString displayType(const WatchItem *item)
result += QString(":%1").arg(item->bitsize);
result.remove('\'');
result = watchModel(item)->removeNamespaces(result);
- if (item->valuelen > 0)
+ if (item->valuelen > 0) {
+ //: <type> of length <number>, e.g. for strings and byte arrays
result = Tr::tr("%1 of length %2").arg(result).arg(item->valuelen);
+ }
return result;
}
diff --git a/src/plugins/fossil/fossilplugin.cpp b/src/plugins/fossil/fossilplugin.cpp
index c4ea13b4464..ff6fa0fa3f4 100644
--- a/src/plugins/fossil/fossilplugin.cpp
+++ b/src/plugins/fossil/fossilplugin.cpp
@@ -927,7 +927,7 @@ VcsCommand *FossilPluginPrivate::createInitialCheckoutCommand(const QString &sou
checkoutPath.createDir();
// Setup the wizard page command job
- auto command = VcsBaseClient::createVcsCommand(checkoutPath,
+ auto command = VcsBaseClient::createVcsCommand(this, checkoutPath,
fossilClient().processEnvironment(checkoutPath));
if (!isLocalRepository
diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp
index 966abc40b8c..af5b267101a 100644
--- a/src/plugins/git/gitplugin.cpp
+++ b/src/plugins/git/gitplugin.cpp
@@ -1769,7 +1769,7 @@ VcsCommand *GitPluginPrivate::createInitialCheckoutCommand(const QString &url,
QStringList args = {"clone", "--progress"};
args << extraArgs << url << localName;
- auto command = VcsBaseClient::createVcsCommand(baseDirectory,
+ auto command = VcsBaseClient::createVcsCommand(this, baseDirectory,
gitClient().processEnvironment(baseDirectory));
command->addFlags(RunFlags::SuppressStdErr);
command->addJob({gitClient().vcsBinary(baseDirectory), args}, -1);
diff --git a/src/plugins/help/helpmanager.cpp b/src/plugins/help/helpmanager.cpp
index 7ec80e700d5..a117afd916a 100644
--- a/src/plugins/help/helpmanager.cpp
+++ b/src/plugins/help/helpmanager.cpp
@@ -8,6 +8,8 @@
#include <coreplugin/icore.h>
#include <coreplugin/progressmanager/progressmanager.h>
+#include <extensionsystem/pluginmanager.h>
+
#include <utils/algorithm.h>
#include <utils/async.h>
#include <utils/filesystemwatcher.h>
@@ -138,6 +140,7 @@ void HelpManager::registerDocumentation(const QStringList &files)
}
QFuture<bool> future = Utils::asyncRun(&registerDocumentationNow, collectionFilePath(), files);
+ ExtensionSystem::PluginManager::futureSynchronizer()->addFuture(future);
Utils::onResultReady(future, this, [](bool docsChanged){
if (docsChanged) {
d->m_helpEngine->setupData();
@@ -200,6 +203,7 @@ void HelpManager::unregisterDocumentation(const QStringList &files)
d->m_userRegisteredFiles.subtract(Utils::toSet(files));
QFuture<bool> future = Utils::asyncRun(&unregisterDocumentationNow, collectionFilePath(), files);
+ ExtensionSystem::PluginManager::futureSynchronizer()->addFuture(future);
Utils::onResultReady(future, this, [](bool docsChanged){
if (docsChanged) {
d->m_helpEngine->setupData();
diff --git a/src/plugins/languageclient/languageclientsettings.cpp b/src/plugins/languageclient/languageclientsettings.cpp
index 503e79e2b8b..38c5a46159c 100644
--- a/src/plugins/languageclient/languageclientsettings.cpp
+++ b/src/plugins/languageclient/languageclientsettings.cpp
@@ -184,7 +184,7 @@ LanguageClientSettingsPageWidget::LanguageClientSettingsPageWidget(LanguageClien
auto addMenu = new QMenu(this);
addMenu->clear();
for (const ClientType &type : clientTypes()) {
- auto action = new QAction(type.name);
+ auto action = new QAction(type.name, this);
connect(action, &QAction::triggered, this, [this, id = type.id]() { addItem(id); });
addMenu->addAction(action);
}
diff --git a/src/plugins/mercurial/mercurialplugin.cpp b/src/plugins/mercurial/mercurialplugin.cpp
index a9ab891c023..f87d181da41 100644
--- a/src/plugins/mercurial/mercurialplugin.cpp
+++ b/src/plugins/mercurial/mercurialplugin.cpp
@@ -736,9 +736,8 @@ VcsCommand *MercurialPluginPrivate::createInitialCheckoutCommand(const QString &
{
QStringList args;
args << QLatin1String("clone") << extraArgs << url << localName;
- auto command = VcsBaseClient::createVcsCommand(baseDirectory,
- mercurialClient().processEnvironment(
- baseDirectory));
+ auto command = VcsBaseClient::createVcsCommand(this, baseDirectory,
+ mercurialClient().processEnvironment(baseDirectory));
command->addJob({settings().binaryPath(), args}, -1);
return command;
}
diff --git a/src/plugins/projectexplorer/projectwelcomepage.cpp b/src/plugins/projectexplorer/projectwelcomepage.cpp
index e51800575d6..29742256443 100644
--- a/src/plugins/projectexplorer/projectwelcomepage.cpp
+++ b/src/plugins/projectexplorer/projectwelcomepage.cpp
@@ -47,10 +47,11 @@ const char PROJECT_BASE_ID[] = "Welcome.OpenRecentProject";
namespace ProjectExplorer {
namespace Internal {
-constexpr TextFormat projectNameTF {Theme::Token_Text_Accent, StyleHelper::UiElementH5};
-constexpr TextFormat projectPathTF {Theme::Token_Text_Muted, StyleHelper::UiElementIconActive};
-constexpr TextFormat sessionNameTF {projectNameTF.themeColor, projectNameTF.uiElement};
-constexpr TextFormat sessionProjetNameTF {Theme::Token_Text_Default, projectNameTF.uiElement};
+constexpr TextFormat projectNameTF {Theme::Token_Text_Accent, StyleHelper::UiElementH6};
+constexpr TextFormat projectPathTF {Theme::Token_Text_Muted, StyleHelper::UiElementCaptionStrong};
+constexpr TextFormat sessionNameTF = {projectNameTF.themeColor, projectNameTF.uiElement,
+ Qt::AlignVCenter | Qt::TextDontClip};
+constexpr TextFormat sessionProjectNameTF {Theme::Token_Text_Default, projectNameTF.uiElement};
constexpr TextFormat shortcutNumberTF {Theme::Token_Text_Default,
StyleHelper::UiElementCaptionStrong,
Qt::AlignCenter | Qt::TextDontClip};
@@ -315,36 +316,36 @@ public:
void paint(QPainter *painter, const QStyleOptionViewItem &option,
const QModelIndex &idx) const final
{
- // visible on withIcon() Gap + arrow visible on hover Extra margin right of project item
- // | | |
- // +----------+----------+ +--------+-------+ +----------+----------+
- // | | | | | |
+ // visible on withIcon() Gap + arrow visible on hover Extra margin right of project item
+ // | | |
+ // +-----------+----------+ +--------+-------+ +----------+----------+
+ // | | | | | |
//
- // +------------+--------+--------+------------+--------+-------------+--------+-------+------------+---------------------+ --+
- // | | | |(VPaddingXs)| |(VPaddingXs) | | | | | |
- // | | | +------------+ +-------------+ | | | | |
- // |(HPaddingXs)|<number>|(HGapXs)| <icon> |(HGapXs)|<sessionName>|(HGapXs)|<arrow>| | | +-- Header
- // | |(16x16) | +------------+ +-------------+ | | | | |
- // | | | |(VPaddingXs)| |(VPaddingXs) | | | | | |
- // |------------+--------+--------+------------+--------+-------------+--------+-------+ | | --+
- // | +-- | (VPaddingXs) | | | |
- // | | +------------------------------+(HPaddingXs)| | |
- // | | | <projectName> | | | |
- // | | +------------------------------+ | | |
- // | Per project in session --+ | (EXSPaddingGapS) | |(sessionScrollBarGap)| |
- // | | +------------------------------+ | | |
- // | | | <projectPath> | | | |
- // | | +------------------------------+ | | +-- Expansion
- // | +-- | (VPaddingXs) | | | |
- // +----------------------------------------------+------------------------------------+------------+ | |
- // | (VPaddingXs) | | |
- // +----------------------------------------+--------------+----------------------------------------+ | |
- // +-- | <cloneButton>|<renameButton>|<deleteButton> | | |
- // | +----------------------------------------+--------------+----------------------------------------+ | |
- // | | (VPaddingXs) | | |
- // | +------------------------------------------------------------------------------------------------+---------------------+ --+
- // | | (VGapL) | +-- Gap between session items
- // | +----------------------------------------------------------------------------------------------------------------------+ --+
+ // +------------+--------+---------+------------+---------+-------------+--------+-------+------------+---------------------+ --+
+ // | | | |(VPaddingXs)| |(VPaddingXs) | | | | | |
+ // | | | +------------+ +-------------+ | | | | |
+ // |(HPaddingXs)|<number>|(HGapXxs)| <icon> |(HGapXxs)|<sessionName>|(HGapXs)|<arrow>| | | +-- Header
+ // | |(16x16) | +------------+ +-------------+ | | | | |
+ // | | | |(VPaddingXs)| |(VPaddingXs) | | | | | |
+ // |------------+--------+---------+------------+---------+-------------+--------+-------+ | | --+
+ // | +-- | (VPaddingXxs) | | | |
+ // | | +------------------------------+(HPaddingXs)| | |
+ // | | | <projectName> | | | |
+ // | | +------------------------------+ | | |
+ // | Per project in session --+ | (ExPaddingGapS) | |(sessionScrollBarGap)| |
+ // | | +------------------------------+ | | |
+ // | | | <projectPath> | | | |
+ // | | +------------------------------+ | | +-- Expansion
+ // | +-- | (VPaddingXxs) | | | |
+ // +------------------------------------------------------+------------------------------+------------+ | |
+ // | (VPaddingXs) | | |
+ // +-----------------------------------------+--------------+-----------------------------------------+ | |
+ // +-- | <cloneButton>|<renameButton>|<deleteButton> | | |
+ // | +-----------------------------------------+--------------+-----------------------------------------+ | |
+ // | | (VPaddingXs) | | |
+ // | +--------------------------------------------------------------------------------------------------+---------------------+ --+
+ // | | (VGapL) | +-- Gap between session items
+ // | +------------------------------------------------------------------------------------------------------------------------+ --+
// |
// \ session action "buttons" and dividers
// +-----------------------------------------------+--------+---------+--------+
@@ -380,11 +381,11 @@ public:
const int y = bgR.y();
const int numberX = x + s(HPaddingXs);
- const int iconX = numberX + shortcutNumberWidth + s(HGapXs);
+ const int iconX = numberX + shortcutNumberWidth + s(HGapXxs);
const int arrowX = bgR.right() - s(HPaddingXs) - arrowS.width();
const QRect arrowHoverR(arrowX - s(HGapXs) + 1, y,
s(HGapXs) + arrowS.width() + s(HPaddingXs), hdR.height());
- const int textX = withIcon() ? iconX + iconS.width() + s(HGapXs) : iconX;
+ const int textX = withIcon() ? iconX + iconS.width() + s(HGapXxs) : iconX;
const int iconY = y + (hdR.height() - iconS.height()) / 2;
const int arrowY = y + (hdR.height() - arrowS.height()) / 2;
@@ -419,8 +420,7 @@ public:
fullSessionName = Tr::tr("%1 (last session)").arg(fullSessionName);
if (isActiveSession && !isDefaultVirgin)
fullSessionName = Tr::tr("%1 (current session)").arg(fullSessionName);
- const QRect switchR(x, y, hdR.width() - arrowHoverR.width(),
- hdR.height() + s(VGapL));
+ const QRect switchR(x, y, hdR.width() - arrowHoverR.width(), arrowHoverR.height());
const bool switchActive = switchR.contains(mousePos);
painter->setPen(sessionNameTF.color());
painter->setFont(sessionNameTF.font(switchActive));
@@ -432,7 +432,7 @@ public:
m_activeSwitchToRect = switchR;
}
if (arrowVisible) {
- if (arrowHoverR.adjusted(0, 0, 0, s(VGapL)).contains(mousePos)) {
+ if (arrowHoverR.adjusted(0, 0, 0, expanded ? 0 : s(VGapL)).contains(mousePos)) {
m_activeExpandRect = arrowHoverR;
} else {
painter->save();
@@ -447,9 +447,9 @@ public:
int yy = hdR.bottom();
if (expanded) {
- const QFont projectNameFont = sessionProjetNameTF.font();
+ const QFont projectNameFont = sessionProjectNameTF.font();
const QFontMetrics projectNameFm(projectNameFont);
- const int projectNameLineHeight = sessionProjetNameTF.lineHeight();
+ const int projectNameLineHeight = sessionProjectNameTF.lineHeight();
const QFont projectPathFont = projectPathTF.font();
const QFontMetrics projectPathFm(projectPathFont);
const int projectPathLineHeight = projectPathTF.lineHeight();
@@ -457,15 +457,15 @@ public:
const FilePaths projects = ProjectManager::projectsForSessionName(sessionName);
for (const FilePath &projectPath : projects) {
- yy += s(VPaddingXs);
+ yy += s(VPaddingXxs);
{
painter->setFont(projectNameFont);
- painter->setPen(sessionProjetNameTF.color());
+ painter->setPen(sessionProjectNameTF.color());
const QRect projectNameR(textX, yy, textWidth, projectNameLineHeight);
const QString projectNameElided =
projectNameFm.elidedText(projectPath.completeBaseName(), Qt::ElideMiddle,
textWidth);
- painter->drawText(projectNameR, sessionProjetNameTF.drawTextFlags,
+ painter->drawText(projectNameR, sessionProjectNameTF.drawTextFlags,
projectNameElided);
yy += projectNameLineHeight;
yy += s(ExPaddingGapS);
@@ -483,7 +483,7 @@ public:
projectPathElided);
yy += projectPathLineHeight;
}
- yy += s(VPaddingXs);
+ yy += s(VPaddingXxs);
}
yy += s(VGapXs);
@@ -551,11 +551,11 @@ public:
const QString sessionName = idx.data(Qt::DisplayRole).toString();
const FilePaths projects = ProjectManager::projectsForSessionName(sessionName);
const int projectEntryHeight =
- s(VPaddingXs)
+ s(VPaddingXxs)
+ projectNameTF.lineHeight()
+ s(ExPaddingGapS)
+ projectPathTF.lineHeight()
- + s(VPaddingXs);
+ + s(VPaddingXxs);
h += projects.size() * projectEntryHeight
+ s(VGapXs)
+ actionButtonHeight()
@@ -622,24 +622,24 @@ class ProjectDelegate : public BaseDelegate
public:
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &idx) const final
{
- // visible on withIcon() Extra margin right of project item
- // | |
- // +-------+-------+ +------+-----+
- // | | | |
+ // visible on with Icon() Extra margin right of project item
+ // | |
+ // +--------+-------+ +------+-----+
+ // | | | |
//
- // +------------+--------+--------+------+--------+-------------+------------+------------+
- // | | | | | | (VPaddingXs)| | |
- // | | | | | +-------------+ | |
- // | | | | | |<projectName>| | |
- // | | | | | +-------------+ | |
- // |(HPaddingXs)|<number>|(HGapXs)|<icon>|(HGapXs)| (VGapXs) |(HPaddingXs)|(HPaddingXs)|
- // | |(16x16) | | | +-------------+ | |
- // | | | | | |<projectPath>| | |
- // | | | | | +-------------+ | |
- // | | | | | | (VPaddingXs)| | |
- // +------------+--------+--------+------+--------+-------------+------------+------------+ --+
- // | (VGapL) | +-- Gap between project items
- // +--------------------------------------------------------------------------------------+ --+
+ // +------------+--------+---------+------+---------+-------------+------------+------------+
+ // | | | | | | (VPaddingXs)| | |
+ // | | | | | +-------------+ | |
+ // | | | | | |<projectName>| | |
+ // | | | | | +-------------+ | |
+ // |(HPaddingXs)|<number>|(HGapXxs)|<icon>|(HGapXxs)| (VGapXs) |(HPaddingXs)|(HPaddingXs)|
+ // | |(16x16) | | | +-------------+ | |
+ // | | | | | |<projectPath>| | |
+ // | | | | | +-------------+ | |
+ // | | | | | | (VPaddingXs)| | |
+ // +------------+--------+---------+------+---------+-------------+------------+------------+ --+
+ // | (VGapL) | +-- Gap between project items
+ // +----------------------------------------------------------------------------------------+ --+
const bool hovered = option.widget->isActiveWindow()
&& option.state & QStyle::State_MouseOver;
@@ -651,9 +651,9 @@ public:
const int x = bgR.x();
const int numberX = x + s(HPaddingXs);
- const int iconX = numberX + shortcutNumberWidth + s(HGapXs);
+ const int iconX = numberX + shortcutNumberWidth + s(HGapXxs);
const int iconWidth = iconS.width();
- const int textX = withIcon() ? iconX + iconWidth + s(HGapXs) : iconX;
+ const int textX = withIcon() ? iconX + iconWidth + s(HGapXxs) : iconX;
const int textWidth = bgR.width() - s(HPaddingXs) - textX;
const int y = bgR.y();
diff --git a/src/plugins/projectexplorer/toolchainoptionspage.cpp b/src/plugins/projectexplorer/toolchainoptionspage.cpp
index 470e64cf198..53b5267719a 100644
--- a/src/plugins/projectexplorer/toolchainoptionspage.cpp
+++ b/src/plugins/projectexplorer/toolchainoptionspage.cpp
@@ -193,7 +193,7 @@ public:
m_toolChainView->expandAll();
m_addButton = new QPushButton(Tr::tr("Add"), this);
- auto addMenu = new QMenu;
+ auto addMenu = new QMenu(this);
for (ToolchainFactory *factory : std::as_const(m_factories)) {
QList<Utils::Id> languages = factory->supportedLanguages();
if (languages.isEmpty())
diff --git a/src/plugins/qtsupport/qtbuildaspects.cpp b/src/plugins/qtsupport/qtbuildaspects.cpp
index e941dcb1872..2f6ee192206 100644
--- a/src/plugins/qtsupport/qtbuildaspects.cpp
+++ b/src/plugins/qtsupport/qtbuildaspects.cpp
@@ -35,7 +35,6 @@ void QmlDebuggingAspect::addToLayout(Layouting::LayoutItem &parent)
SelectionAspect::addToLayout(parent);
const auto warningLabel = createSubWidget<InfoLabel>(QString(), InfoLabel::Warning);
warningLabel->setElideMode(Qt::ElideNone);
- warningLabel->setVisible(false);
parent.addRow({{}, warningLabel});
const auto changeHandler = [this, warningLabel] {
QString warningText;
@@ -51,7 +50,9 @@ void QmlDebuggingAspect::addToLayout(Layouting::LayoutItem &parent)
warningLabel->setText(warningText);
setVisible(supported);
const bool warningLabelsVisible = supported && !warningText.isEmpty();
- if (warningLabel->parentWidget())
+ // avoid explicitly showing the widget when it doesn't have a parent, but always
+ // explicitly hide it when necessary
+ if (warningLabel->parentWidget() || !warningLabelsVisible)
warningLabel->setVisible(warningLabelsVisible);
};
connect(KitManager::instance(), &KitManager::kitsChanged, warningLabel, changeHandler);
diff --git a/src/plugins/qtsupport/qtoptionspage.cpp b/src/plugins/qtsupport/qtoptionspage.cpp
index 7eb349d1da9..7b08db2351a 100644
--- a/src/plugins/qtsupport/qtoptionspage.cpp
+++ b/src/plugins/qtsupport/qtoptionspage.cpp
@@ -309,7 +309,7 @@ QtSettingsPageWidget::QtSettingsPageWidget()
{ProjectExplorer::Constants::msgAutoDetectedToolTip()});
m_manualItem = new StaticTreeItem(ProjectExplorer::Constants::msgManual());
- m_model = new TreeModel<TreeItem, TreeItem, QtVersionItem>();
+ m_model = new TreeModel<TreeItem, TreeItem, QtVersionItem>(this);
m_model->setHeader({Tr::tr("Name"), Tr::tr("qmake Path")});
m_model->rootItem()->appendChild(m_autoItem);
m_model->rootItem()->appendChild(m_manualItem);
diff --git a/src/plugins/remotelinux/linuxdevice.cpp b/src/plugins/remotelinux/linuxdevice.cpp
index e327a4c9148..31195e8cfad 100644
--- a/src/plugins/remotelinux/linuxdevice.cpp
+++ b/src/plugins/remotelinux/linuxdevice.cpp
@@ -24,7 +24,6 @@
#include <projectexplorer/projectexplorerconstants.h>
#include <utils/algorithm.h>
-#include <utils/async.h>
#include <utils/devicefileaccess.h>
#include <utils/deviceshell.h>
#include <utils/environment.h>
@@ -1674,12 +1673,10 @@ void LinuxDevice::setDisconnected(bool disconnected)
d->setDisconnected(disconnected);
}
-QFuture<bool> LinuxDevice::tryToConnect()
+bool LinuxDevice::tryToConnect()
{
- return Utils::asyncRun([this] {
- QMutexLocker locker(&d->m_shellMutex);
- return d->setupShell(sshParameters(), false);
- });
+ QMutexLocker locker(&d->m_shellMutex);
+ return d->setupShell(sshParameters(), false);
}
namespace Internal {
diff --git a/src/plugins/remotelinux/linuxdevice.h b/src/plugins/remotelinux/linuxdevice.h
index 0bb2468eacb..06e0da3f2a8 100644
--- a/src/plugins/remotelinux/linuxdevice.h
+++ b/src/plugins/remotelinux/linuxdevice.h
@@ -50,7 +50,7 @@ public:
bool isDisconnected() const;
void setDisconnected(bool disconnected);
- QFuture<bool> tryToConnect();
+ bool tryToConnect();
protected:
LinuxDevice();
diff --git a/src/plugins/remotelinux/linuxdevicetester.cpp b/src/plugins/remotelinux/linuxdevicetester.cpp
index 7380f01868b..2f0e43dfb51 100644
--- a/src/plugins/remotelinux/linuxdevicetester.cpp
+++ b/src/plugins/remotelinux/linuxdevicetester.cpp
@@ -6,6 +6,8 @@
#include "linuxdevice.h"
#include "remotelinuxtr.h"
+#include <extensionsystem/pluginmanager.h>
+
#include <projectexplorer/devicesupport/deviceusedportsgatherer.h>
#include <projectexplorer/devicesupport/filetransfer.h>
#include <projectexplorer/projectexplorerconstants.h>
@@ -13,13 +15,12 @@
#include <solutions/tasking/tasktreerunner.h>
#include <utils/algorithm.h>
-#include <utils/qtcprocess.h>
+#include <utils/async.h>
#include <utils/processinterface.h>
#include <utils/qtcassert.h>
+#include <utils/qtcprocess.h>
#include <utils/stringutils.h>
-#include <QFutureWatcher>
-
using namespace ProjectExplorer;
using namespace Tasking;
using namespace Utils;
@@ -39,6 +40,7 @@ public:
QStringList commandsToTest() const;
+ GroupItem connectionTask() const;
GroupItem echoTask(const QString &contents) const;
GroupItem unameTask() const;
GroupItem gathererTask() const;
@@ -46,13 +48,9 @@ public:
const Storage<TransferStorage> &storage) const;
GroupItem transferTasks() const;
GroupItem commandTasks() const;
- void runCommandTests();
-
- bool isRunning() const { return m_connectionTest || m_taskTreeRunner.isRunning(); }
GenericLinuxDeviceTester *q = nullptr;
LinuxDevice::Ptr m_device;
- QFutureWatcher<bool> *m_connectionTest = nullptr;
TaskTreeRunner m_taskTreeRunner;
QStringList m_extraCommands;
QList<GroupItem> m_extraTests;
@@ -98,6 +96,27 @@ QStringList GenericLinuxDeviceTesterPrivate::commandsToTest() const
return commands;
}
+GroupItem GenericLinuxDeviceTesterPrivate::connectionTask() const
+{
+ const auto onSetup = [this](Async<bool> &task) {
+ emit q->progressMessage(Tr::tr("Connecting to device..."));
+ task.setConcurrentCallData([device = m_device] { return device->tryToConnect(); });
+ task.setFutureSynchronizer(ExtensionSystem::PluginManager::futureSynchronizer());
+ };
+ const auto onDone = [this](const Async<bool> &task) {
+ const bool success = task.isResultAvailable() && task.result();
+ if (success) {
+ // TODO: For master: move the '\n' outside of Tr().
+ emit q->progressMessage(Tr::tr("Connected. Now doing extended checks.\n"));
+ } else {
+ emit q->errorMessage(
+ Tr::tr("Basic connectivity test failed, device is considered unusable.") + '\n');
+ }
+ return toDoneResult(success);
+ };
+ return AsyncTask<bool>(onSetup, onDone);
+}
+
GroupItem GenericLinuxDeviceTesterPrivate::echoTask(const QString &contents) const
{
const auto onSetup = [this, contents](Process &process) {
@@ -283,20 +302,6 @@ GroupItem GenericLinuxDeviceTesterPrivate::commandTasks() const
return root;
}
-void GenericLinuxDeviceTesterPrivate::runCommandTests()
-{
- const Group root {
- echoTask("Hello"), // No quoting necessary
- echoTask("Hello Remote World!"), // Checks quoting, too.
- unameTask(),
- gathererTask(),
- transferTasks(),
- m_extraTests,
- commandTasks()
- };
- m_taskTreeRunner.start(root);
-}
-
} // namespace Internal
using namespace Internal;
@@ -323,39 +328,27 @@ void GenericLinuxDeviceTester::setExtraTests(const QList<GroupItem> &extraTests)
void GenericLinuxDeviceTester::testDevice(const IDevice::Ptr &deviceConfiguration)
{
- QTC_ASSERT(!d->isRunning(), return);
-
- emit progressMessage(Tr::tr("Connecting to device..."));
+ QTC_ASSERT(!d->m_taskTreeRunner.isRunning(), return);
d->m_device = std::static_pointer_cast<LinuxDevice>(deviceConfiguration);
- d->m_connectionTest = new QFutureWatcher<bool>(this);
- connect(d->m_connectionTest, &QFutureWatcher<bool>::finished, this, [this] {
- const bool success = d->m_connectionTest->result();
- d->m_connectionTest->deleteLater();
- d->m_connectionTest = nullptr;
- if (success) {
- emit progressMessage(Tr::tr("Connected. Now doing extended checks.\n"));
- d->runCommandTests();
- } else {
- emit errorMessage(
- Tr::tr("Basic connectivity test failed, device is considered unusable."));
- emit finished(TestFailure);
- }
- });
- d->m_connectionTest->setFuture(d->m_device->tryToConnect());
+ const Group root {
+ d->connectionTask(),
+ d->echoTask("Hello"), // No quoting necessary
+ d->echoTask("Hello Remote World!"), // Checks quoting, too.
+ d->unameTask(),
+ d->gathererTask(),
+ d->transferTasks(),
+ d->m_extraTests,
+ d->commandTasks()
+ };
+ d->m_taskTreeRunner.start(root);
}
void GenericLinuxDeviceTester::stopTest()
{
- QTC_ASSERT(d->isRunning(), return);
- if (d->m_connectionTest) {
- d->m_connectionTest->disconnect();
- d->m_connectionTest->cancel();
- d->m_connectionTest = nullptr;
- } else {
- d->m_taskTreeRunner.reset();
- }
+ QTC_ASSERT(d->m_taskTreeRunner.isRunning(), return);
+ d->m_taskTreeRunner.reset();
emit finished(TestFailure);
}
diff --git a/src/plugins/screenrecorder/screenrecorderplugin.cpp b/src/plugins/screenrecorder/screenrecorderplugin.cpp
index f0ad0405d33..9e42b2979f6 100644
--- a/src/plugins/screenrecorder/screenrecorderplugin.cpp
+++ b/src/plugins/screenrecorder/screenrecorderplugin.cpp
@@ -136,9 +136,11 @@ public:
private:
void showDialogOrSettings()
{
- if (!Internal::settings().toolsRegistered() &&
- !Core::ICore::showOptionsDialog(Constants::TOOLSSETTINGSPAGE_ID)) {
- return;
+ if (!Internal::settings().toolsRegistered()) {
+ // Show options if ffmpeg/ffprobe are neither autodetected nor manually set
+ Core::ICore::showOptionsDialog(Constants::TOOLSSETTINGSPAGE_ID);
+ if (!Internal::settings().toolsRegistered())
+ return; // User did not set ffmpeg/ffprobe
}
ScreenRecorderDialog::showDialog();
diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp
index 64f32a11ff2..b28224a8667 100644
--- a/src/plugins/subversion/subversionplugin.cpp
+++ b/src/plugins/subversion/subversionplugin.cpp
@@ -1135,9 +1135,8 @@ VcsCommand *SubversionPluginPrivate::createInitialCheckoutCommand(const QString
args << SubversionClient::AddAuthOptions();
args << Subversion::Constants::NON_INTERACTIVE_OPTION << extraArgs << url << localName;
- auto command = VcsBaseClient::createVcsCommand(baseDirectory,
- subversionClient().processEnvironment(
- baseDirectory));
+ auto command = VcsBaseClient::createVcsCommand(this, baseDirectory,
+ subversionClient().processEnvironment(baseDirectory));
command->addJob(args, -1);
return command;
}
diff --git a/src/plugins/terminal/terminalwidget.cpp b/src/plugins/terminal/terminalwidget.cpp
index 2bd0fa403dd..756f1a11bee 100644
--- a/src/plugins/terminal/terminalwidget.cpp
+++ b/src/plugins/terminal/terminalwidget.cpp
@@ -336,7 +336,7 @@ qint64 TerminalWidget::writeToPty(const QByteArray &data)
void TerminalWidget::resizePty(QSize newSize)
{
- if (m_process && m_process->ptyData())
+ if (m_process && m_process->ptyData() && m_process->isRunning())
m_process->ptyData()->resize(newSize);
}
diff --git a/src/plugins/vcsbase/vcsbaseclient.cpp b/src/plugins/vcsbase/vcsbaseclient.cpp
index 2327e75bc7b..6a36d628bd9 100644
--- a/src/plugins/vcsbase/vcsbaseclient.cpp
+++ b/src/plugins/vcsbase/vcsbaseclient.cpp
@@ -6,7 +6,6 @@
#include "vcsbaseclientsettings.h"
#include "vcsbaseeditor.h"
#include "vcsbaseeditorconfig.h"
-#include "vcsbaseplugin.h"
#include "vcsbasetr.h"
#include "vcscommand.h"
#include "vcsoutputwindow.h"
@@ -72,7 +71,8 @@ FilePath VcsBaseClientImpl::vcsBinary(const Utils::FilePath &forDirectory) const
VcsCommand *VcsBaseClientImpl::createCommand(const FilePath &workingDirectory,
VcsBaseEditorWidget *editor) const
{
- auto cmd = createVcsCommand(workingDirectory, processEnvironment(workingDirectory));
+ auto cmd = createVcsCommand(const_cast<VcsBaseClientImpl *>(this),
+ workingDirectory, processEnvironment(workingDirectory));
if (editor) {
editor->setCommand(cmd);
connect(cmd, &VcsCommand::done, editor, [editor, cmd] {
@@ -214,6 +214,14 @@ VcsCommand *VcsBaseClientImpl::createVcsCommand(const FilePath &defaultWorkingDi
return new VcsCommand(defaultWorkingDir, environment);
}
+VcsCommand *VcsBaseClientImpl::createVcsCommand(QObject *parent, const FilePath &defaultWorkingDir,
+ const Environment &environment)
+{
+ auto command = new VcsCommand(defaultWorkingDir, environment);
+ command->setParent(parent);
+ return command;
+}
+
VcsBaseEditorWidget *VcsBaseClientImpl::createVcsEditor(Id kind, QString title,
const FilePath &source, QTextCodec *codec,
const char *registerDynamicProperty,
diff --git a/src/plugins/vcsbase/vcsbaseclient.h b/src/plugins/vcsbase/vcsbaseclient.h
index 99b818b59b7..6c07f744865 100644
--- a/src/plugins/vcsbase/vcsbaseclient.h
+++ b/src/plugins/vcsbase/vcsbaseclient.h
@@ -44,8 +44,11 @@ public:
virtual Utils::FilePath vcsBinary(const Utils::FilePath &forDirectory) const;
int vcsTimeoutS() const;
+ // TODO: For master: remove this overload.
static VcsCommand *createVcsCommand(const Utils::FilePath &defaultWorkingDir,
const Utils::Environment &environment);
+ static VcsCommand *createVcsCommand(QObject *parent, const Utils::FilePath &defaultWorkingDir,
+ const Utils::Environment &environment);
VcsBaseEditorWidget *createVcsEditor(Utils::Id kind, QString title,
const Utils::FilePath &source, QTextCodec *codec,
diff --git a/src/plugins/vcsbase/vcscommand.h b/src/plugins/vcsbase/vcscommand.h
index 62711395445..0556f255114 100644
--- a/src/plugins/vcsbase/vcscommand.h
+++ b/src/plugins/vcsbase/vcscommand.h
@@ -65,6 +65,7 @@ class VCSBASE_EXPORT VcsCommand final : public QObject
Q_OBJECT
public:
+ // TODO: For master, make c'tor private and make it a friend to VcsBaseClientImpl.
VcsCommand(const Utils::FilePath &workingDirectory, const Utils::Environment &environment);
~VcsCommand() override;
diff --git a/src/plugins/welcome/images/project.png b/src/plugins/welcome/images/project.png
index 30862beb287..522902a48f3 100644
--- a/src/plugins/welcome/images/project.png
+++ b/src/plugins/welcome/images/project.png
Binary files differ
diff --git a/src/plugins/welcome/images/[email protected] b/src/plugins/welcome/images/[email protected]
index c5cc11155be..8be7cc7c87e 100644
--- a/src/plugins/welcome/images/[email protected]
+++ b/src/plugins/welcome/images/[email protected]
Binary files differ
diff --git a/src/plugins/welcome/images/session.png b/src/plugins/welcome/images/session.png
index aa14f11de84..ae77dc51a8e 100644
--- a/src/plugins/welcome/images/session.png
+++ b/src/plugins/welcome/images/session.png
Binary files differ
diff --git a/src/plugins/welcome/images/[email protected] b/src/plugins/welcome/images/[email protected]
index c53cf12bfa6..5f0701b7114 100644
--- a/src/plugins/welcome/images/[email protected]
+++ b/src/plugins/welcome/images/[email protected]
Binary files differ
diff --git a/src/tools/icons/qtcreatoricons.svg b/src/tools/icons/qtcreatoricons.svg
index 9ced69d3199..7d78434c75a 100644
--- a/src/tools/icons/qtcreatoricons.svg
+++ b/src/tools/icons/qtcreatoricons.svg
@@ -7030,36 +7030,42 @@
style="fill:none;stroke:#000000;stroke-width:1.42;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
<g
- transform="translate(-209,274)"
+ transform="translate(-210,274)"
id="src/plugins/welcome/images/session">
<use
x="0"
y="0"
- xlink:href="#backgroundRect_24"
+ xlink:href="#backgroundRect"
id="use9"
- transform="translate(233,-210)" />
+ transform="translate(226,-226)"
+ width="100%"
+ height="100%" />
<path
id="path8101"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linejoin:round"
- d="m 219,210 6,4 -6,4 z m -7,-5 h 18 v 18 h -18 z" />
+ d="m 216,215 5,3 -5,3 z m -4,-3 h 12 v 12 h -12 z"
+ sodipodi:nodetypes="ccccccccc" />
</g>
<g
- transform="translate(19,478)"
+ transform="translate(8,478)"
id="src/plugins/welcome/images/project">
<use
x="0"
y="0"
- xlink:href="#backgroundRect_24"
+ xlink:href="#backgroundRect"
id="use9-5"
- transform="translate(30,-414)" />
+ transform="translate(25,-430)"
+ width="100%"
+ height="100%" />
<path
- style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round"
- d="m 16,3 c 1,0 2,1 2,2 0,0 0,1 1,1 h 6 c 1,0 2,1 2,2 v 7 c 0,1 -1,2 -2,2 H 11 C 10,17 9,16 9,15 V 5 C 9,4 10,3 11,3 Z"
- id="path2761-3"
- sodipodi:nodetypes="cscccccccccc" />
+ d="m 13,9 h 2.5 c 1,0 1,2 2,2 H 21 c 1,0 2,1 2,2 v 4 c 0,1 -1,2 -2,2 h -8 c -1,0 -2,-1 -2,-2 v -6 c 0,-1 1,-2 2,-2 z"
+ stroke-width="2"
+ id="path4726"
+ sodipodi:nodetypes="sccssssssss"
+ style="fill:none;stroke:#000000;stroke-opacity:1" />
</g>
<g
- transform="translate(44,478)"
+ transform="translate(28,478)"
id="src/plugins/welcome/images/link">
<use
x="0"
@@ -7075,14 +7081,16 @@
d="m 22.5,5.5 -10,10 M 16,5 h 7 v 7" />
</g>
<g
- transform="translate(-81,276)"
+ transform="translate(-97,276)"
id="src/plugins/coreplugin/images/expandarrow">
<use
x="0"
y="0"
xlink:href="#backgroundRect"
id="use15-0"
- transform="translate(172,-228)" />
+ transform="translate(172,-228)"
+ width="100%"
+ height="100%" />
<path
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
d="m 159,214.5 5,5 5,-5"
@@ -7090,14 +7098,16 @@
sodipodi:nodetypes="ccc" />
</g>
<g
- transform="translate(86,478)"
+ transform="translate(70,478)"
id="src/plugins/coreplugin/images/search">
<use
x="0"
y="0"
xlink:href="#backgroundRect"
id="use15"
- transform="translate(22,-430)" />
+ transform="translate(22,-430)"
+ width="100%"
+ height="100%" />
<path
id="path10"
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:round"