forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/13.0' into qds/dev
Change-Id: Ief07ead0b4cf513c70bd74d4f5e28e4642edc78e
This commit is contained in:
@@ -50,8 +50,9 @@
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn void ExtensionSystem::PluginView::pluginSettingsChanged(ExtensionSystem::PluginSpec *spec)
|
||||
The settings for the plugin list entry corresponding to \a spec changed.
|
||||
\fn void ExtensionSystem::PluginView::pluginsChanged(const QSet<ExtensionSystem::PluginSpec *> &spec, bool enabled)
|
||||
The value of \a enabled for the plugin list entry corresponding to \a spec
|
||||
changed.
|
||||
*/
|
||||
|
||||
using namespace Utils;
|
||||
|
||||
@@ -115,6 +115,17 @@ public:
|
||||
their data, or use an ID, neither of these is mandatory.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\enum Utils::BaseAspect::Announcement
|
||||
|
||||
Whether to emit a signal when a value changes.
|
||||
|
||||
\value DoEmit
|
||||
Emit a signal.
|
||||
\value BeQuiet
|
||||
Don't emit a signal.
|
||||
*/
|
||||
|
||||
/*!
|
||||
Constructs a base aspect.
|
||||
|
||||
@@ -159,7 +170,9 @@ QVariant BaseAspect::variantValue() const
|
||||
/*!
|
||||
Sets \a value.
|
||||
|
||||
Prefer the typed setValue() of derived classes.
|
||||
If \a howToAnnounce is set to \c DoEmit, emits the \c valueChanged signal.
|
||||
|
||||
Prefer the typed \c setValue() of the derived classes.
|
||||
*/
|
||||
void BaseAspect::setVariantValue(const QVariant &value, Announcement howToAnnounce)
|
||||
{
|
||||
@@ -939,9 +952,6 @@ public:
|
||||
Based on QTextEdit, used for user-editable strings that often
|
||||
do not fit on a line.
|
||||
|
||||
\value PathChooserDisplay
|
||||
Based on Utils::PathChooser.
|
||||
|
||||
\value PasswordLineEditDisplay
|
||||
Based on QLineEdit, used for password strings
|
||||
|
||||
@@ -1416,7 +1426,10 @@ FilePath FilePathAspect::operator()() const
|
||||
|
||||
FilePath FilePathAspect::expandedValue() const
|
||||
{
|
||||
return FilePath::fromUserInput(TypedAspect::value());
|
||||
const auto value = TypedAspect::value();
|
||||
if (!value.isEmpty() && d->m_expanderProvider)
|
||||
return FilePath::fromUserInput(d->m_expanderProvider()->expand(value));
|
||||
return FilePath::fromUserInput(value);
|
||||
}
|
||||
|
||||
QString FilePathAspect::value() const
|
||||
@@ -1425,7 +1438,9 @@ QString FilePathAspect::value() const
|
||||
}
|
||||
|
||||
/*!
|
||||
Sets the value of this file path aspect to \a value.
|
||||
Sets the value of this file path aspect to \a filePath.
|
||||
|
||||
If \a howToAnnounce is set to \c DoEmit, emits the \c valueChanged signal.
|
||||
|
||||
\note This does not use any check that the value is actually
|
||||
a file path.
|
||||
@@ -2781,8 +2796,8 @@ void IntegersAspect::addToLayout(Layouting::LayoutItem &parent)
|
||||
*/
|
||||
|
||||
/*!
|
||||
Constructs a text display showing the \a message with an icon representing
|
||||
type \a type.
|
||||
Constructs a text display with the parent \a container. The display shows
|
||||
\a message and an icon representing the type \a type.
|
||||
*/
|
||||
TextDisplay::TextDisplay(AspectContainer *container, const QString &message, InfoLabel::InfoType type)
|
||||
: BaseAspect(container), d(new Internal::TextDisplayPrivate)
|
||||
|
||||
@@ -190,8 +190,6 @@ expected_str<qint64> ProcessStubCreator::startStubProcess(const ProcessSetupData
|
||||
process->setEnvironment(
|
||||
setupData.m_environment.appliedToEnvironment(Environment::systemEnvironment()));
|
||||
|
||||
process->setEnvironment(setupData.m_environment);
|
||||
|
||||
process->start();
|
||||
process->waitForStarted();
|
||||
if (process->error() != QProcess::UnknownError) {
|
||||
|
||||
@@ -1002,7 +1002,7 @@ QAbstractItemModel *AndroidBuildApkStep::keystoreCertificates()
|
||||
Process keytoolProc;
|
||||
keytoolProc.setCommand({androidConfig().keytoolPath(), params});
|
||||
using namespace std::chrono_literals;
|
||||
keytoolProc.runBlocking(30s, EventLoopMode::On);
|
||||
keytoolProc.runBlocking(30s);
|
||||
if (keytoolProc.result() > ProcessResult::FinishedWithError)
|
||||
QMessageBox::critical(nullptr, Tr::tr("Error"), Tr::tr("Failed to run keytool."));
|
||||
else
|
||||
|
||||
@@ -275,7 +275,7 @@ void AndroidCreateKeystoreCertificate::buttonBoxAccepted()
|
||||
Process genKeyCertProc;
|
||||
genKeyCertProc.setCommand(command);
|
||||
using namespace std::chrono_literals;
|
||||
genKeyCertProc.runBlocking(15s, EventLoopMode::On);
|
||||
genKeyCertProc.runBlocking(15s);
|
||||
|
||||
if (genKeyCertProc.result() != ProcessResult::FinishedWithSuccess) {
|
||||
QMessageBox::critical(this, Tr::tr("Error"),
|
||||
|
||||
@@ -614,7 +614,7 @@ bool checkKeystorePassword(const FilePath &keystorePath, const QString &keystore
|
||||
"--storepass", keystorePasswd});
|
||||
Process proc;
|
||||
proc.setCommand(cmd);
|
||||
proc.runBlocking(10s, EventLoopMode::On);
|
||||
proc.runBlocking(10s);
|
||||
return proc.result() == ProcessResult::FinishedWithSuccess;
|
||||
}
|
||||
|
||||
@@ -631,7 +631,7 @@ bool checkCertificatePassword(const FilePath &keystorePath, const QString &keyst
|
||||
|
||||
Process proc;
|
||||
proc.setCommand({androidConfig().keytoolPath(), arguments});
|
||||
proc.runBlocking(10s, EventLoopMode::On);
|
||||
proc.runBlocking(10s);
|
||||
return proc.result() == ProcessResult::FinishedWithSuccess;
|
||||
}
|
||||
|
||||
@@ -644,7 +644,7 @@ bool checkCertificateExists(const FilePath &keystorePath, const QString &keystor
|
||||
|
||||
Process proc;
|
||||
proc.setCommand({androidConfig().keytoolPath(), arguments});
|
||||
proc.runBlocking(10s, EventLoopMode::On);
|
||||
proc.runBlocking(10s);
|
||||
return proc.result() == ProcessResult::FinishedWithSuccess;
|
||||
}
|
||||
|
||||
|
||||
@@ -308,7 +308,8 @@ static CMakeBuildTarget toBuildTarget(const TargetDetails &t,
|
||||
|
||||
std::optional<QString> dllName;
|
||||
if (buildDir.osType() == OsTypeWindows && (f.role == "libraries")) {
|
||||
part = FilePath::fromUserInput(part).fileName();
|
||||
const auto partAsFilePath = FilePath::fromUserInput(part);
|
||||
part = partAsFilePath.fileName();
|
||||
|
||||
// Skip object libraries on Windows. This case can happen with static qml plugins
|
||||
if (part.endsWith(".obj") || part.endsWith(".o"))
|
||||
@@ -322,12 +323,15 @@ static CMakeBuildTarget toBuildTarget(const TargetDetails &t,
|
||||
}
|
||||
|
||||
// MinGW has libQt6Core.a -> Qt6Core.dll
|
||||
// but libFoo.dll.a was already handled above
|
||||
const QString mingwPrefix("lib");
|
||||
const QString mingwSuffix(".a");
|
||||
if (part.startsWith(mingwPrefix) && part.endsWith(mingwSuffix))
|
||||
dllName = part.chopped(mingwSuffix.length())
|
||||
const QString mingwSuffix("a");
|
||||
const QString completeSuffix = partAsFilePath.completeSuffix();
|
||||
if (part.startsWith(mingwPrefix) && completeSuffix == mingwSuffix) {
|
||||
dllName = part.chopped(mingwSuffix.length() + 1/*the '.'*/)
|
||||
.sliced(mingwPrefix.length())
|
||||
.append(".dll");
|
||||
}
|
||||
}
|
||||
|
||||
if (!tmp.isEmpty() && tmp.isDir()) {
|
||||
|
||||
@@ -30,7 +30,7 @@ using namespace Utils;
|
||||
and \uicontrol {Files in File System} where the user provides a directory and file
|
||||
patterns to search.
|
||||
|
||||
\image qtcreator-search-filesystem.png
|
||||
\image qtcreator-search-reg-exp.webp {Search Results view with search criteria}
|
||||
|
||||
To make your find scope available to the user, you need to implement this
|
||||
class, and register an instance of your subclass in the plugin manager.
|
||||
@@ -38,7 +38,7 @@ using namespace Utils;
|
||||
A common way to present the search results to the user, is to use the
|
||||
shared \uicontrol{Search Results} pane.
|
||||
|
||||
\image qtcreator-search-results.webp {Search Results view}
|
||||
\image qtcreator-search-results-reg-exp.webp {Search Results view with search results}
|
||||
|
||||
If you want to implement a find filter that is doing a file based text
|
||||
search, you should use \l Core::BaseTextFind, which already implements all
|
||||
@@ -178,13 +178,13 @@ using namespace Utils;
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn void Core::IFindFilter::writeSettings(QSettings *settings)
|
||||
\fn void Core::IFindFilter::writeSettings(Utils::QtcSettings *settings)
|
||||
Called at shutdown to write the state of the additional options
|
||||
for this find filter to the \a settings.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn void Core::IFindFilter::readSettings(QSettings *settings)
|
||||
\fn void Core::IFindFilter::readSettings(Utils::QtcSettings *settings)
|
||||
Called at startup to read the state of the additional options
|
||||
for this find filter from the \a settings.
|
||||
*/
|
||||
|
||||
@@ -288,10 +288,13 @@ using namespace Core::Internal;
|
||||
This enum type specifies whether the search results should be sorted or
|
||||
ordered:
|
||||
|
||||
\value AddSorted
|
||||
The search results are sorted.
|
||||
\value AddSortedByContent
|
||||
The search results are sorted alphabetically.
|
||||
\value AddSortedByPosition
|
||||
The search results are sorted by the search results' reported line
|
||||
numbers.
|
||||
\value AddOrdered
|
||||
The search results are ordered.
|
||||
The search results are ordered as they are reported.
|
||||
*/
|
||||
|
||||
/*!
|
||||
@@ -331,7 +334,7 @@ using namespace Core::Internal;
|
||||
\brief The SearchResultWindow class is the implementation of a commonly
|
||||
shared \uicontrol{Search Results} output pane.
|
||||
|
||||
\image qtcreator-search-results.webp {Search Results view}
|
||||
\image qtcreator-search-results-reg-exp.webp {Search Results view with search results}
|
||||
|
||||
Whenever you want to show the user a list of search results, or want
|
||||
to present UI for a global search and replace, use the single instance
|
||||
|
||||
@@ -103,7 +103,7 @@ bool QtDesignerFormClassCodeGenerator::generateCpp(const FormClassWizardParamete
|
||||
Utils::writeIncludeFileDirective("QtGui/" + formBaseClass, true, headerStr);
|
||||
headerStr << "#endif\n";
|
||||
} else {
|
||||
Utils::writeIncludeFileDirective("QtGui/" + formBaseClass, true, headerStr);
|
||||
Utils::writeIncludeFileDirective("QtWidgets/" + formBaseClass, true, headerStr);
|
||||
}
|
||||
} else {
|
||||
Utils::writeIncludeFileDirective(formBaseClass, true, headerStr);
|
||||
|
||||
@@ -1512,7 +1512,8 @@ private:
|
||||
const QString sshCmdLine = ProcessArgs::joinArgs(
|
||||
QStringList{SshSettings::sshFilePath().toUserOutput()}
|
||||
<< fullConnectionOptions(), OsTypeLinux);
|
||||
QStringList options{"-e", sshCmdLine, m_setup.m_rsyncFlags};
|
||||
QStringList options{"-e", sshCmdLine};
|
||||
options << ProcessArgs::splitArgs(m_setup.m_rsyncFlags, HostOsInfo::hostOs());
|
||||
|
||||
if (!m_batches.isEmpty()) { // NormalRun
|
||||
const auto batchIt = m_batches.begin();
|
||||
|
||||
Submodule src/shared/qbs updated: 488fbe40e8...1ee1e51fa9
Reference in New Issue
Block a user