diff --git a/src/libs/utils/fileutils.cpp b/src/libs/utils/fileutils.cpp index 03c912e01f7..cea4d1ec862 100644 --- a/src/libs/utils/fileutils.cpp +++ b/src/libs/utils/fileutils.cpp @@ -603,7 +603,7 @@ FileSaver::FileSaver(const FilePath &filePath, QIODevice::OpenMode mode) = {"CON", "PRN", "AUX", "NUL", "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", "LPT8", "LPT9"}; - const QString fn = filePath.toFileInfo().baseName().toUpper(); + const QString fn = filePath.baseName().toUpper(); if (reservedNames.contains(fn)) { m_errorString = tr("%1: Is a reserved filename on Windows. Cannot save.") .arg(filePath.toString()); @@ -761,6 +761,12 @@ QString FilePath::fileNameWithPathComponents(int pathComponents) const return m_data; } +QString FilePath::baseName() const +{ + const QString &name = fileName(); + return name.left(name.indexOf('.')); +} + void FilePath::setScheme(const QString &scheme) { QTC_CHECK(!scheme.contains('/')); diff --git a/src/libs/utils/fileutils.h b/src/libs/utils/fileutils.h index 026728bd0b3..d6cbae74758 100644 --- a/src/libs/utils/fileutils.h +++ b/src/libs/utils/fileutils.h @@ -103,6 +103,7 @@ public: QString fileName() const; QString fileNameWithPathComponents(int pathComponents) const; + QString baseName() const; QString scheme() const { return m_scheme; } void setScheme(const QString &scheme); diff --git a/src/libs/utils/shellcommand.cpp b/src/libs/utils/shellcommand.cpp index 2d83fb2df8d..9bdd878765f 100644 --- a/src/libs/utils/shellcommand.cpp +++ b/src/libs/utils/shellcommand.cpp @@ -138,7 +138,7 @@ QString ShellCommand::displayName() const return d->m_displayName; if (!d->m_jobs.isEmpty()) { const Internal::ShellCommandPrivate::Job &job = d->m_jobs.at(0); - QString result = job.command.executable().toFileInfo().baseName(); + QString result = job.command.executable().baseName(); if (!result.isEmpty()) result[0] = result.at(0).toTitleCase(); else diff --git a/src/plugins/baremetal/debugservers/gdb/eblinkgdbserverprovider.cpp b/src/plugins/baremetal/debugservers/gdb/eblinkgdbserverprovider.cpp index 8503bbf6c7f..e098c5e6191 100644 --- a/src/plugins/baremetal/debugservers/gdb/eblinkgdbserverprovider.cpp +++ b/src/plugins/baremetal/debugservers/gdb/eblinkgdbserverprovider.cpp @@ -86,8 +86,7 @@ QString EBlinkGdbServerProvider::defaultResetCommands() QString EBlinkGdbServerProvider::scriptFileWoExt() const { // Server starts only without extension in scriptname - return m_deviceScript.toFileInfo().absolutePath() + - QDir::separator() + m_deviceScript.toFileInfo().baseName(); + return m_deviceScript.absolutePath().pathAppended(m_deviceScript.baseName()).toString(); } QString EBlinkGdbServerProvider::channelString() const diff --git a/src/plugins/baremetal/iarewtoolchain.cpp b/src/plugins/baremetal/iarewtoolchain.cpp index 36ea2865802..e8021a81b51 100644 --- a/src/plugins/baremetal/iarewtoolchain.cpp +++ b/src/plugins/baremetal/iarewtoolchain.cpp @@ -67,7 +67,7 @@ static bool compilerExists(const FilePath &compilerPath) static QString cppLanguageOption(const FilePath &compiler) { - const QString baseName = compiler.toFileInfo().baseName(); + const QString baseName = compiler.baseName(); if (baseName == "iccarm" || baseName == "iccrl78" || baseName == "iccrh850" || baseName == "iccrx" || baseName == "iccriscv") { diff --git a/src/plugins/clangcodemodel/clangdclient.cpp b/src/plugins/clangcodemodel/clangdclient.cpp index 6e42f4375ef..2e329a2f6f2 100644 --- a/src/plugins/clangcodemodel/clangdclient.cpp +++ b/src/plugins/clangcodemodel/clangdclient.cpp @@ -792,7 +792,7 @@ void ClangdClient::Private::addSearchResultsForFile(ReferencesData &refData, if (refData.search->supportsReplace()) { const bool fileInSession = SessionManager::projectForFile(file); item.setSelectForReplacement(fileInSession); - if (fileInSession && file.toFileInfo().baseName().compare( + if (fileInSession && file.baseName().compare( refData.replacementData->oldSymbolName, Qt::CaseInsensitive) == 0) { refData.replacementData->fileRenameCandidates << file; // TODO: We want to do this only for types. Use SymbolInformation once we have it. diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdbparser.cpp b/src/plugins/compilationdatabaseprojectmanager/compilationdbparser.cpp index f99498f3a76..23c65a014af 100644 --- a/src/plugins/compilationdatabaseprojectmanager/compilationdbparser.cpp +++ b/src/plugins/compilationdatabaseprojectmanager/compilationdbparser.cpp @@ -194,7 +194,7 @@ std::vector CompilationDbParser::readJsonObjects() const const QJsonObject object = document.object(); const Utils::FilePath fileName = jsonObjectFilename(object); const QStringList flags = filterFromFileName(jsonObjectFlags(object, flagsCache), - fileName.toFileInfo().baseName()); + fileName.baseName()); result.push_back({flags, fileName, object["directory"].toString()}); objectStart = m_projectFileContents.indexOf('{', objectEnd + 1); diff --git a/src/plugins/debugger/uvsc/uvscengine.cpp b/src/plugins/debugger/uvsc/uvscengine.cpp index a2411337486..8e3a8b6041d 100644 --- a/src/plugins/debugger/uvsc/uvscengine.cpp +++ b/src/plugins/debugger/uvsc/uvscengine.cpp @@ -375,7 +375,7 @@ void UvscEngine::insertBreakpoint(const Breakpoint &bp) if (requested.type == BreakpointByFileAndLine) { // Add target executable name. const DebuggerRunParameters &rp = runParameters(); - QString exe = rp.inferior.executable.toFileInfo().baseName(); + QString exe = rp.inferior.executable.baseName(); exe.replace('-', '_'); expression += "\\\\" + exe; // Add file name. diff --git a/src/plugins/nim/project/nimcompilerbuildstep.cpp b/src/plugins/nim/project/nimcompilerbuildstep.cpp index 8a02833a7f7..f12e7cc326d 100644 --- a/src/plugins/nim/project/nimcompilerbuildstep.cpp +++ b/src/plugins/nim/project/nimcompilerbuildstep.cpp @@ -212,7 +212,7 @@ CommandLine NimCompilerBuildStep::commandLine() FilePath NimCompilerBuildStep::outFilePath() const { - const QString targetName = m_targetNimFile.toFileInfo().baseName(); + const QString targetName = m_targetNimFile.baseName(); return buildDirectory().pathAppended(HostOsInfo::withExecutableSuffix(targetName)); } diff --git a/src/plugins/qmakeprojectmanager/qmakemakestep.cpp b/src/plugins/qmakeprojectmanager/qmakemakestep.cpp index 418587b36c5..1aeca0226b4 100644 --- a/src/plugins/qmakeprojectmanager/qmakemakestep.cpp +++ b/src/plugins/qmakeprojectmanager/qmakemakestep.cpp @@ -176,9 +176,8 @@ bool QmakeMakeStep::init() relObjectsDir.clear(); if (!relObjectsDir.isEmpty()) relObjectsDir += '/'; - QString objectFile = relObjectsDir + - bc->fileNodeBuild()->filePath().toFileInfo().baseName() + - subProFile->objectExtension(); + QString objectFile = relObjectsDir + bc->fileNodeBuild()->filePath().baseName() + + subProFile->objectExtension(); makeCmd.addArg(objectFile); } diff --git a/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp b/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp index 8d7866dd93f..8339ae6b75e 100644 --- a/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp @@ -1968,7 +1968,7 @@ TargetInformation QmakeProFile::targetInformation(QtSupport::ProFileReader *read // Target result.target = readerBuildPass->value(QLatin1String("TARGET")); if (result.target.isEmpty()) - result.target = projectFilePath.toFileInfo().baseName(); + result.target = projectFilePath.baseName(); result.valid = true; diff --git a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp index 34c519e1bbe..3b02f268816 100644 --- a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp +++ b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp @@ -649,7 +649,7 @@ void addSignalHandlerOrGotoImplementation(const SelectionContext &selectionState const Utils::FilePath currentDesignDocument = QmlDesignerPlugin::instance()->documentManager().currentDesignDocument()->fileName(); const QString fileName = currentDesignDocument.toString(); - const QString typeName = currentDesignDocument.toFileInfo().baseName(); + const QString typeName = currentDesignDocument.baseName(); QStringList signalNames = cleanSignalNames(getSortedSignalNameList(selectionState.selectedModelNodes().constFirst())); diff --git a/src/plugins/vcsbase/vcsbaseclient.cpp b/src/plugins/vcsbase/vcsbaseclient.cpp index 26816bd652c..48351f508b8 100644 --- a/src/plugins/vcsbase/vcsbaseclient.cpp +++ b/src/plugins/vcsbase/vcsbaseclient.cpp @@ -604,9 +604,8 @@ void VcsBaseClient::commit(const QString &repositoryRoot, QString VcsBaseClient::vcsEditorTitle(const QString &vcsCmd, const QString &sourceId) const { - return vcsBinary().toFileInfo().baseName() + - QLatin1Char(' ') + vcsCmd + QLatin1Char(' ') + - FilePath::fromString(sourceId).fileName(); + return vcsBinary().baseName() + QLatin1Char(' ') + vcsCmd + QLatin1Char(' ') + + FilePath::fromString(sourceId).fileName(); } void VcsBaseClient::statusParser(const QString &text)