aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2022-08-26 10:30:00 +0200
committerEike Ziller <eike.ziller@qt.io>2022-09-01 06:58:04 +0000
commit04e50438eb85c1b2be6d4dcdfd5319cdb55ae576 (patch)
tree4a3e9f078730bb538e2ca2751d189ff14a89901e /src/plugins
parent34a9491a08639f8df0b55d74d51f4dadaa1cc2fd (diff)
Utils: Remove Utils::optional
Since we are now requiring macOS 10.14 we can remove our local implementation of optional and use std::optional for macOS too. Change-Id: I2bd018261b68da64f7f031a812045dd7784697e1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/android/avdmanageroutputparser.cpp6
-rw-r--r--src/plugins/autotest/itemdatacache.h10
-rw-r--r--src/plugins/autotest/qtest/qttestparser.cpp6
-rw-r--r--src/plugins/autotest/qtest/qttestparser.h4
-rw-r--r--src/plugins/autotest/testnavigationwidget.cpp3
-rw-r--r--src/plugins/autotest/testresultmodel.cpp4
-rw-r--r--src/plugins/autotest/testresultmodel.h9
-rw-r--r--src/plugins/autotest/testtreemodel.cpp12
-rw-r--r--src/plugins/bineditor/bineditorwidget.cpp10
-rw-r--r--src/plugins/bineditor/bineditorwidget.h5
-rw-r--r--src/plugins/clangcodemodel/clangdast.cpp24
-rw-r--r--src/plugins/clangcodemodel/clangdast.h6
-rw-r--r--src/plugins/clangcodemodel/clangdclient.cpp34
-rw-r--r--src/plugins/clangcodemodel/clangdclient.h9
-rw-r--r--src/plugins/clangcodemodel/clangdcompletion.cpp4
-rw-r--r--src/plugins/clangcodemodel/clangdfindreferences.cpp12
-rw-r--r--src/plugins/clangcodemodel/clangdfindreferences.h5
-rw-r--r--src/plugins/clangcodemodel/clangdfollowsymbol.cpp6
-rw-r--r--src/plugins/clangcodemodel/clangdmemoryusagewidget.cpp2
-rw-r--r--src/plugins/clangcodemodel/clangdquickfixes.cpp2
-rw-r--r--src/plugins/clangcodemodel/clangdswitchdecldef.cpp13
-rw-r--r--src/plugins/clangcodemodel/clangtextmark.cpp4
-rw-r--r--src/plugins/clangformat/clangformatbaseindenter.cpp2
-rw-r--r--src/plugins/clangformat/clangformatbaseindenter.h2
-rw-r--r--src/plugins/clangformat/clangformatindenter.cpp2
-rw-r--r--src/plugins/clangformat/clangformatindenter.h2
-rw-r--r--src/plugins/clangformat/tests/clangformat-test.cpp5
-rw-r--r--src/plugins/clangtools/clangtoolsdiagnosticmodel.h4
-rw-r--r--src/plugins/clangtools/clangtoolslogfilereader.cpp2
-rw-r--r--src/plugins/clangtools/clangtoolslogfilereader.h5
-rw-r--r--src/plugins/clangtools/clangtoolsutils.cpp2
-rw-r--r--src/plugins/clangtools/clangtoolsutils.h10
-rw-r--r--src/plugins/clangtools/diagnosticmark.cpp2
-rw-r--r--src/plugins/clangtools/settingswidget.cpp2
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp4
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp2
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeconfigitem.h5
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeparser.h6
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeprojectnodes.cpp4
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeprojectnodes.h4
-rw-r--r--src/plugins/cmakeprojectmanager/cmaketool.cpp4
-rw-r--r--src/plugins/cmakeprojectmanager/cmaketool.h7
-rw-r--r--src/plugins/cmakeprojectmanager/fileapidataextractor.h2
-rw-r--r--src/plugins/cmakeprojectmanager/fileapiparser.h4
-rw-r--r--src/plugins/cmakeprojectmanager/fileapireader.h4
-rw-r--r--src/plugins/coco/cocolanguageclient.cpp15
-rw-r--r--src/plugins/compilationdatabaseprojectmanager/compilationdatabaseutils.cpp7
-rw-r--r--src/plugins/coreplugin/documentmanager.cpp5
-rw-r--r--src/plugins/coreplugin/editormanager/documentmodel.cpp22
-rw-r--r--src/plugins/coreplugin/editormanager/documentmodel.h9
-rw-r--r--src/plugins/coreplugin/editormanager/documentmodel_p.h4
-rw-r--r--src/plugins/coreplugin/editormanager/openeditorsview.cpp2
-rw-r--r--src/plugins/coreplugin/editortoolbar.cpp2
-rw-r--r--src/plugins/coreplugin/externaltool.cpp2
-rw-r--r--src/plugins/coreplugin/find/searchresultitem.h9
-rw-r--r--src/plugins/coreplugin/helpitem.h7
-rw-r--r--src/plugins/coreplugin/idocument.cpp4
-rw-r--r--src/plugins/coreplugin/locator/ilocatorfilter.h11
-rw-r--r--src/plugins/coreplugin/locator/locatorwidget.h4
-rw-r--r--src/plugins/coreplugin/loggingmanager.cpp4
-rw-r--r--src/plugins/coreplugin/loggingmanager.h6
-rw-r--r--src/plugins/coreplugin/systemsettings.cpp2
-rw-r--r--src/plugins/coreplugin/vcsmanager.cpp13
-rw-r--r--src/plugins/coreplugin/welcomepagehelper.h6
-rw-r--r--src/plugins/cppeditor/compileroptionsbuilder_test.cpp2
-rw-r--r--src/plugins/cppeditor/cppcodemodelsettings.cpp2
-rw-r--r--src/plugins/cppeditor/cppcodestylesettings.cpp2
-rw-r--r--src/plugins/cppeditor/cppcodestylesettings.h4
-rw-r--r--src/plugins/cppeditor/cppquickfixes.cpp8
-rw-r--r--src/plugins/cppeditor/cppquickfixsettings.h5
-rw-r--r--src/plugins/cppeditor/projectinfo_test.cpp2
-rw-r--r--src/plugins/debugger/debuggerengine.h2
-rw-r--r--src/plugins/debugger/peripheralregisterhandler.cpp4
-rw-r--r--src/plugins/docker/dockerapi.cpp8
-rw-r--r--src/plugins/docker/dockerapi.h9
-rw-r--r--src/plugins/docker/dockerdevicewidget.cpp2
-rw-r--r--src/plugins/docker/dockerplugin.h2
-rw-r--r--src/plugins/fakevim/fakevimhandler.cpp4
-rw-r--r--src/plugins/fakevim/fakevimplugin.cpp2
-rw-r--r--src/plugins/git/branchmodel.cpp6
-rw-r--r--src/plugins/git/branchmodel.h5
-rw-r--r--src/plugins/git/branchview.cpp2
-rw-r--r--src/plugins/help/litehtmlhelpviewer.cpp2
-rw-r--r--src/plugins/help/litehtmlhelpviewer.h6
-rw-r--r--src/plugins/help/localhelpmanager.cpp7
-rw-r--r--src/plugins/languageclient/client.cpp50
-rw-r--r--src/plugins/languageclient/diagnosticmanager.cpp2
-rw-r--r--src/plugins/languageclient/diagnosticmanager.h4
-rw-r--r--src/plugins/languageclient/documentsymbolcache.cpp2
-rw-r--r--src/plugins/languageclient/documentsymbolcache.h4
-rw-r--r--src/plugins/languageclient/dynamiccapabilities.cpp4
-rw-r--r--src/plugins/languageclient/dynamiccapabilities.h2
-rw-r--r--src/plugins/languageclient/languageclientcompletionassist.cpp4
-rw-r--r--src/plugins/languageclient/languageclientcompletionassist.h7
-rw-r--r--src/plugins/languageclient/languageclientformatter.cpp13
-rw-r--r--src/plugins/languageclient/languageclientformatter.h2
-rw-r--r--src/plugins/languageclient/languageclientfunctionhint.cpp2
-rw-r--r--src/plugins/languageclient/languageclientfunctionhint.h7
-rw-r--r--src/plugins/languageclient/languageclienthoverhandler.cpp10
-rw-r--r--src/plugins/languageclient/languageclienthoverhandler.h2
-rw-r--r--src/plugins/languageclient/languageclientquickfix.cpp8
-rw-r--r--src/plugins/languageclient/languageclientquickfix.h2
-rw-r--r--src/plugins/languageclient/languageclientsymbolsupport.cpp18
-rw-r--r--src/plugins/languageclient/languageclientsymbolsupport.h2
-rw-r--r--src/plugins/languageclient/languageclientutils.cpp6
-rw-r--r--src/plugins/languageclient/locatorfilter.cpp6
-rw-r--r--src/plugins/languageclient/locatorfilter.h2
-rw-r--r--src/plugins/languageclient/lspinspector.h4
-rw-r--r--src/plugins/languageclient/progressmanager.cpp4
-rw-r--r--src/plugins/languageclient/semantichighlightsupport.cpp4
-rw-r--r--src/plugins/languageclient/snippet.cpp2
-rw-r--r--src/plugins/mesonprojectmanager/exewrappers/mesonwrapper.h4
-rw-r--r--src/plugins/mesonprojectmanager/exewrappers/ninjawrapper.h2
-rw-r--r--src/plugins/mesonprojectmanager/exewrappers/toolwrapper.cpp4
-rw-r--r--src/plugins/mesonprojectmanager/exewrappers/toolwrapper.h4
-rw-r--r--src/plugins/mesonprojectmanager/machinefiles/machinefilemanager.cpp3
-rw-r--r--src/plugins/mesonprojectmanager/mesoninfoparser/buildoptions.h9
-rw-r--r--src/plugins/mesonprojectmanager/mesoninfoparser/mesoninfoparser.h9
-rw-r--r--src/plugins/mesonprojectmanager/mesoninfoparser/parsers/buildsystemfilesparser.h2
-rw-r--r--src/plugins/mesonprojectmanager/mesoninfoparser/parsers/common.h22
-rw-r--r--src/plugins/mesonprojectmanager/mesoninfoparser/target.h9
-rw-r--r--src/plugins/mesonprojectmanager/project/buildoptions/optionsmodel/buildoptionsmodel.h2
-rw-r--r--src/plugins/mesonprojectmanager/project/mesonprojectparser.cpp13
-rw-r--r--src/plugins/mesonprojectmanager/project/outputparsers/ninjaparser.cpp4
-rw-r--r--src/plugins/mesonprojectmanager/project/outputparsers/ninjaparser.h6
-rw-r--r--src/plugins/mesonprojectmanager/project/projecttree/mesonprojectnodes.h2
-rw-r--r--src/plugins/mesonprojectmanager/settings/tools/toolitemsettings.cpp4
-rw-r--r--src/plugins/mesonprojectmanager/settings/tools/toolitemsettings.h5
-rw-r--r--src/plugins/mesonprojectmanager/settings/tools/tooltreeitem.h3
-rw-r--r--src/plugins/projectexplorer/buildstep.h4
-rw-r--r--src/plugins/projectexplorer/gcctoolchain.cpp4
-rw-r--r--src/plugins/projectexplorer/gcctoolchain.h4
-rw-r--r--src/plugins/projectexplorer/jsonwizard/jsonwizard.cpp2
-rw-r--r--src/plugins/projectexplorer/kit.cpp4
-rw-r--r--src/plugins/projectexplorer/makestep.cpp13
-rw-r--r--src/plugins/projectexplorer/msvctoolchain.cpp23
-rw-r--r--src/plugins/projectexplorer/msvctoolchain.h7
-rw-r--r--src/plugins/projectexplorer/projectexplorer.cpp6
-rw-r--r--src/plugins/projectexplorer/projectnodes.h6
-rw-r--r--src/plugins/projectexplorer/toolchaincache.h6
-rw-r--r--src/plugins/projectexplorer/userfileaccessor.cpp16
-rw-r--r--src/plugins/qbsprojectmanager/qbssession.cpp4
-rw-r--r--src/plugins/qbsprojectmanager/qbssession.h4
-rw-r--r--src/plugins/qmldesigner/components/curveeditor/detail/keyframeitem.cpp4
-rw-r--r--src/plugins/qmldesigner/components/curveeditor/detail/keyframeitem.h8
-rw-r--r--src/plugins/qmldesigner/components/timelineeditor/timelinesettingsmodel.cpp7
-rw-r--r--src/plugins/qmldesigner/designercore/imagecache/asynchronousexplicitimagecache.cpp2
-rw-r--r--src/plugins/qmldesigner/designercore/imagecache/asynchronousimagecache.cpp2
-rw-r--r--src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.cpp2
-rw-r--r--src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.h4
-rw-r--r--src/plugins/qmldesigner/designercore/imagecache/imagecachestorageinterface.h7
-rw-r--r--src/plugins/qmldesigner/designercore/include/asynchronousexplicitimagecache.h5
-rw-r--r--src/plugins/qmldesigner/designercore/include/asynchronousimagecache.h5
-rw-r--r--src/plugins/qmldesigner/designercore/include/modelcache.h6
-rw-r--r--src/plugins/qmldesigner/designercore/include/modelnode.h7
-rw-r--r--src/plugins/qmldesigner/designercore/include/nodemetainfo.h5
-rw-r--r--src/plugins/qmldesigner/designercore/include/propertymetainfo.h5
-rw-r--r--src/plugins/qmldesigner/designercore/include/textmodifier.h3
-rw-r--r--src/plugins/qmldesigner/designercore/model/internalnode.cpp2
-rw-r--r--src/plugins/qmldesigner/designercore/model/internalnode_p.h7
-rw-r--r--src/plugins/qmldesigner/designercore/model/modelnode.cpp4
-rw-r--r--src/plugins/qmldesigner/designercore/projectstorage/projectstorage.h8
-rw-r--r--src/plugins/qmldesigner/designercore/projectstorage/storagecache.h2
-rw-r--r--src/plugins/qmljstools/qmljscodestylesettings.h4
-rw-r--r--src/plugins/qtsupport/qtoptionspage.cpp10
-rw-r--r--src/plugins/studiowelcome/algorithm.h4
-rw-r--r--src/plugins/studiowelcome/presetmodel.cpp3
-rw-r--r--src/plugins/studiowelcome/presetmodel.h3
-rw-r--r--src/plugins/texteditor/indenter.h7
-rw-r--r--src/plugins/texteditor/texteditor.cpp6
-rw-r--r--src/plugins/texteditor/textindenter.cpp4
-rw-r--r--src/plugins/texteditor/textindenter.h2
-rw-r--r--src/plugins/texteditor/textmark.cpp2
-rw-r--r--src/plugins/texteditor/textmark.h7
-rw-r--r--src/plugins/updateinfo/updateinfoplugin.cpp2
-rw-r--r--src/plugins/updateinfo/updateinfotools.h9
176 files changed, 539 insertions, 498 deletions
diff --git a/src/plugins/android/avdmanageroutputparser.cpp b/src/plugins/android/avdmanageroutputparser.cpp
index 7da4c3cdd8..dbe6d9faa0 100644
--- a/src/plugins/android/avdmanageroutputparser.cpp
+++ b/src/plugins/android/avdmanageroutputparser.cpp
@@ -6,13 +6,13 @@
#include <projectexplorer/projectexplorerconstants.h>
#include <utils/algorithm.h>
#include <utils/fileutils.h>
-#include <utils/optional.h>
#include <utils/qtcassert.h>
#include <QLoggingCategory>
#include <QRegularExpression>
#include <QSettings>
+#include <optional>
#include <variant>
namespace {
@@ -44,7 +44,7 @@ static bool valueForKey(QString key, const QString &line, QString *value = nullp
return false;
}
-static Utils::optional<AndroidDeviceInfo> parseAvd(const QStringList &deviceInfo)
+static std::optional<AndroidDeviceInfo> parseAvd(const QStringList &deviceInfo)
{
AndroidDeviceInfo avd;
for (const QString &line : deviceInfo) {
@@ -100,7 +100,7 @@ AndroidDeviceInfoList parseAvdList(const QString &output, QStringList *avdErrorP
if (valueForKey(avdInfoPathKey, line, &value))
return AvdResult(value); // error path
}
- } else if (Utils::optional<AndroidDeviceInfo> avd = parseAvd(avdInfo)) {
+ } else if (std::optional<AndroidDeviceInfo> avd = parseAvd(avdInfo)) {
// armeabi-v7a devices can also run armeabi code
if (avd->cpuAbi.contains(Constants::ANDROID_ABI_ARMEABI_V7A))
avd->cpuAbi << Constants::ANDROID_ABI_ARMEABI;
diff --git a/src/plugins/autotest/itemdatacache.h b/src/plugins/autotest/itemdatacache.h
index 47ee2fb617..f01a2e9316 100644
--- a/src/plugins/autotest/itemdatacache.h
+++ b/src/plugins/autotest/itemdatacache.h
@@ -6,11 +6,11 @@
#include "itestframework.h"
#include "testtreeitem.h"
-#include <utils/optional.h>
-
#include <QRegularExpression>
#include <QVariantHash>
+#include <optional>
+
namespace Autotest {
namespace Internal {
@@ -35,13 +35,13 @@ public:
}
}
- Utils::optional<T> get(ITestTreeItem *item)
+ std::optional<T> get(ITestTreeItem *item)
{
auto entry = m_cache.find(item->cacheName());
if (entry == m_cache.end())
- return Utils::nullopt;
+ return std::nullopt;
entry->generation = 0;
- return Utils::make_optional(entry->value);
+ return std::make_optional(entry->value);
};
void clear() { m_cache.clear(); }
diff --git a/src/plugins/autotest/qtest/qttestparser.cpp b/src/plugins/autotest/qtest/qttestparser.cpp
index 9d09960b6a..492e584359 100644
--- a/src/plugins/autotest/qtest/qttestparser.cpp
+++ b/src/plugins/autotest/qtest/qttestparser.cpp
@@ -314,7 +314,7 @@ bool QtTestParser::processDocument(QFutureInterface<TestParseResultPtr> &futureI
for (const TestCase &testCase : testCaseList) {
if (!testCase.name.isEmpty()) {
TestCaseData data;
- Utils::optional<bool> earlyReturn = fillTestCaseData(testCase.name, doc, data);
+ std::optional<bool> earlyReturn = fillTestCaseData(testCase.name, doc, data);
if (earlyReturn.has_value() || !data.valid)
continue;
@@ -333,7 +333,7 @@ bool QtTestParser::processDocument(QFutureInterface<TestParseResultPtr> &futureI
return reported;
}
-Utils::optional<bool> QtTestParser::fillTestCaseData(
+std::optional<bool> QtTestParser::fillTestCaseData(
const QString &testCaseName, const CPlusPlus::Document::Ptr &doc,
TestCaseData &data) const
{
@@ -366,7 +366,7 @@ Utils::optional<bool> QtTestParser::fillTestCaseData(
data.fileName = Utils::FilePath::fromString(declaringDoc->fileName());
data.valid = true;
- return Utils::optional<bool>();
+ return std::optional<bool>();
}
QtTestParseResult *QtTestParser::createParseResult(
diff --git a/src/plugins/autotest/qtest/qttestparser.h b/src/plugins/autotest/qtest/qttestparser.h
index ba6f8856a8..c64e2e159f 100644
--- a/src/plugins/autotest/qtest/qttestparser.h
+++ b/src/plugins/autotest/qtest/qttestparser.h
@@ -8,7 +8,7 @@
#include "qttest_utils.h"
#include "qttesttreeitem.h"
-#include <utils/optional.h>
+#include <optional>
namespace CppEditor { class CppModelManager; }
@@ -53,7 +53,7 @@ private:
bool valid = false;
};
- Utils::optional<bool> fillTestCaseData(const QString &testCaseName,
+ std::optional<bool> fillTestCaseData(const QString &testCaseName,
const CPlusPlus::Document::Ptr &doc,
TestCaseData &data) const;
QtTestParseResult *createParseResult(const QString &testCaseName, const TestCaseData &data,
diff --git a/src/plugins/autotest/testnavigationwidget.cpp b/src/plugins/autotest/testnavigationwidget.cpp
index 48720a06c8..c6cb1ae4ee 100644
--- a/src/plugins/autotest/testnavigationwidget.cpp
+++ b/src/plugins/autotest/testnavigationwidget.cpp
@@ -318,7 +318,8 @@ void TestNavigationWidget::reapplyCachedExpandedState()
using namespace Utils;
for (TreeItem *rootNode : *m_model->rootItem()) {
rootNode->forAllChildren([this](TreeItem *child) {
- optional<bool> cached = m_expandedStateCache.get(static_cast<ITestTreeItem *>(child));
+ std::optional<bool> cached = m_expandedStateCache.get(
+ static_cast<ITestTreeItem *>(child));
if (cached.has_value()) {
QModelIndex index = child->index();
if (m_view->isExpanded(index) != cached.value())
diff --git a/src/plugins/autotest/testresultmodel.cpp b/src/plugins/autotest/testresultmodel.cpp
index 66b69bc2c0..b76a5b3f03 100644
--- a/src/plugins/autotest/testresultmodel.cpp
+++ b/src/plugins/autotest/testresultmodel.cpp
@@ -58,7 +58,7 @@ static QIcon testResultIcon(ResultType result) {
return icons[int(result)];
}
-static QIcon testSummaryIcon(const Utils::optional<TestResultItem::SummaryEvaluation> &summary)
+static QIcon testSummaryIcon(const std::optional<TestResultItem::SummaryEvaluation> &summary)
{
if (!summary)
return QIcon();
@@ -114,7 +114,7 @@ static bool isSignificant(ResultType type)
}
void TestResultItem::updateResult(bool &changed, ResultType addedChildType,
- const Utils::optional<SummaryEvaluation> &summary)
+ const std::optional<SummaryEvaluation> &summary)
{
changed = false;
if (m_testResult->result() != ResultType::TestStart)
diff --git a/src/plugins/autotest/testresultmodel.h b/src/plugins/autotest/testresultmodel.h
index 7ea51a1a26..3749abe101 100644
--- a/src/plugins/autotest/testresultmodel.h
+++ b/src/plugins/autotest/testresultmodel.h
@@ -10,9 +10,10 @@
#include <QSet>
#include <QSortFilterProxyModel>
-#include <utils/optional.h>
#include <utils/treemodel.h>
+#include <optional>
+
namespace Autotest {
namespace Internal {
@@ -36,16 +37,16 @@ public:
};
void updateResult(bool &changed, ResultType addedChildType,
- const Utils::optional<SummaryEvaluation> &summary);
+ const std::optional<SummaryEvaluation> &summary);
TestResultItem *intermediateFor(const TestResultItem *item) const;
TestResultItem *createAndAddIntermediateFor(const TestResultItem *child);
QString resultString() const;
- Utils::optional<SummaryEvaluation> summaryResult() const { return m_summaryResult; }
+ std::optional<SummaryEvaluation> summaryResult() const { return m_summaryResult; }
private:
TestResultPtr m_testResult;
- Utils::optional<SummaryEvaluation> m_summaryResult;
+ std::optional<SummaryEvaluation> m_summaryResult;
};
class TestResultModel : public Utils::TreeModel<TestResultItem>
diff --git a/src/plugins/autotest/testtreemodel.cpp b/src/plugins/autotest/testtreemodel.cpp
index c1db6af365..d50d801858 100644
--- a/src/plugins/autotest/testtreemodel.cpp
+++ b/src/plugins/autotest/testtreemodel.cpp
@@ -259,7 +259,7 @@ void TestTreeModel::onBuildSystemTestsUpdated()
for (const auto &tci : bs->testcasesInfo()) {
ITestTreeItem *item = testTool->createItemFromTestCaseInfo(tci);
QTC_ASSERT(item, continue);
- if (Utils::optional<Qt::CheckState> cached = m_checkStateCache->get(item))
+ if (std::optional<Qt::CheckState> cached = m_checkStateCache->get(item))
item->setData(0, cached.value(), Qt::CheckStateRole);
m_checkStateCache->insert(item, item->checked());
rootNode->appendChild(item);
@@ -393,7 +393,7 @@ void TestTreeModel::synchronizeTestTools()
for (const auto &tci : bs->testcasesInfo()) {
ITestTreeItem *item = testTool->createItemFromTestCaseInfo(tci);
QTC_ASSERT(item, continue);
- if (Utils::optional<Qt::CheckState> cached = m_checkStateCache->get(item))
+ if (std::optional<Qt::CheckState> cached = m_checkStateCache->get(item))
item->setData(0, cached.value(), Qt::CheckStateRole);
m_checkStateCache->insert(item, item->checked());
rootNode->appendChild(item);
@@ -592,13 +592,13 @@ void TestTreeModel::insertItemInParent(TestTreeItem *item, TestTreeItem *root, b
delete item;
} else {
// restore former check state if available
- Utils::optional<Qt::CheckState> cached = m_checkStateCache->get(item);
+ std::optional<Qt::CheckState> cached = m_checkStateCache->get(item);
if (cached.has_value())
item->setData(0, cached.value(), Qt::CheckStateRole);
else
applyParentCheckState(parentNode, item);
// ..and the failed state if available
- Utils::optional<bool> failed = m_failedStateCache.get(item);
+ std::optional<bool> failed = m_failedStateCache.get(item);
if (failed.has_value())
item->setData(0, *failed, FailedRole);
parentNode->appendChild(item);
@@ -717,10 +717,10 @@ void TestTreeModel::handleParseResult(const TestParseResult *result, TestTreeIte
newItem->forAllChildItems([this](TestTreeItem *childItem) {
if (!m_checkStateCache) // parse results may arrive after session switch / project close
return;
- Utils::optional<Qt::CheckState> cached = m_checkStateCache->get(childItem);
+ std::optional<Qt::CheckState> cached = m_checkStateCache->get(childItem);
if (cached.has_value())
childItem->setData(0, cached.value(), Qt::CheckStateRole);
- Utils::optional<bool> failed = m_failedStateCache.get(childItem);
+ std::optional<bool> failed = m_failedStateCache.get(childItem);
if (failed.has_value())
childItem->setData(0, *failed, FailedRole);
});
diff --git a/src/plugins/bineditor/bineditorwidget.cpp b/src/plugins/bineditor/bineditorwidget.cpp
index 79f38cf67d..a6f77425ca 100644
--- a/src/plugins/bineditor/bineditorwidget.cpp
+++ b/src/plugins/bineditor/bineditorwidget.cpp
@@ -536,12 +536,12 @@ QChar BinEditorWidget::displayChar(char ch) const
return uc.at(0);
}
-Utils::optional<qint64> BinEditorWidget::posAt(const QPoint &pos, bool includeEmptyArea) const
+std::optional<qint64> BinEditorWidget::posAt(const QPoint &pos, bool includeEmptyArea) const
{
const int xoffset = horizontalScrollBar()->value();
int x = xoffset + pos.x() - m_margin - m_labelWidth;
if (!includeEmptyArea && x < 0)
- return Utils::nullopt;
+ return std::nullopt;
int column = qMin(15, qMax(0,x) / m_columnWidth);
const qint64 topLine = verticalScrollBar()->value();
const qint64 line = topLine + pos.y() / m_lineHeight;
@@ -559,12 +559,12 @@ Utils::optional<qint64> BinEditorWidget::posAt(const QPoint &pos, bool includeEm
break;
}
if (!includeEmptyArea && x > 0) // right of the text area
- return Utils::nullopt;
+ return std::nullopt;
}
const qint64 bytePos = line * m_bytesPerLine + column;
if (!includeEmptyArea && bytePos >= m_size)
- return Utils::nullopt;
+ return std::nullopt;
return qMin(m_size - 1, bytePos);
}
@@ -1163,7 +1163,7 @@ QString BinEditorWidget::toolTip(const QHelpEvent *helpEvent) const
} while (startInLine <= selEnd);
if (!insideSelection) {
// show popup for byte under cursor
- Utils::optional<qint64> pos = posAt(helpEvent->pos(), /*includeEmptyArea*/false);
+ std::optional<qint64> pos = posAt(helpEvent->pos(), /*includeEmptyArea*/false);
if (!pos)
return QString();
selStart = pos.value();
diff --git a/src/plugins/bineditor/bineditorwidget.h b/src/plugins/bineditor/bineditorwidget.h
index ffafcbd32e..596f98b3c3 100644
--- a/src/plugins/bineditor/bineditorwidget.h
+++ b/src/plugins/bineditor/bineditorwidget.h
@@ -8,7 +8,6 @@
#include "bineditorservice.h"
#include <utils/filepath.h>
-#include <utils/optional.h>
#include <QAbstractScrollArea>
#include <QBasicTimer>
@@ -19,6 +18,8 @@
#include <QTextDocument>
#include <QTextFormat>
+#include <optional>
+
QT_BEGIN_NAMESPACE
class QHelpEvent;
class QMenu;
@@ -194,7 +195,7 @@ private:
QBasicTimer m_cursorBlinkTimer;
void init();
- Utils::optional<qint64> posAt(const QPoint &pos, bool includeEmptyArea = true) const;
+ std::optional<qint64> posAt(const QPoint &pos, bool includeEmptyArea = true) const;
bool inTextArea(const QPoint &pos) const;
QRect cursorRect() const;
void updateLines();
diff --git a/src/plugins/clangcodemodel/clangdast.cpp b/src/plugins/clangcodemodel/clangdast.cpp
index da2d68ae24..4e1ce3f780 100644
--- a/src/plugins/clangcodemodel/clangdast.cpp
+++ b/src/plugins/clangcodemodel/clangdast.cpp
@@ -23,20 +23,26 @@ static constexpr char16_t arcanaKey[] = u"arcana";
QString ClangdAstNode::role() const { return typedValue<QString>(roleKey); }
QString ClangdAstNode::kind() const { return typedValue<QString>(kindKey); }
-optional<QString> ClangdAstNode::detail() const { return optionalValue<QString>(detailKey); }
-optional<QString> ClangdAstNode::arcana() const { return optionalValue<QString>(arcanaKey); }
+std::optional<QString> ClangdAstNode::detail() const
+{
+ return optionalValue<QString>(detailKey);
+}
+std::optional<QString> ClangdAstNode::arcana() const
+{
+ return optionalValue<QString>(arcanaKey);
+}
Range ClangdAstNode::range() const { return typedValue<Range>(rangeKey); }
bool ClangdAstNode::hasRange() const { return contains(rangeKey); }
bool ClangdAstNode::isValid() const { return contains(roleKey) && contains(kindKey); }
-optional<QList<ClangdAstNode> > ClangdAstNode::children() const
+std::optional<QList<ClangdAstNode>> ClangdAstNode::children() const
{
return optionalArray<ClangdAstNode>(childrenKey);
}
bool ClangdAstNode::arcanaContains(const QString &s) const
{
- const optional<QString> arcanaString = arcana();
+ const std::optional<QString> arcanaString = arcana();
return arcanaString && arcanaString->contains(s);
}
@@ -88,7 +94,7 @@ bool ClangdAstNode::isTemplateParameterDeclaration() const
QString ClangCodeModel::Internal::ClangdAstNode::type() const
{
- const optional<QString> arcanaString = arcana();
+ const std::optional<QString> arcanaString = arcana();
if (!arcanaString)
return {};
return typeFromPos(*arcanaString, 0);
@@ -156,7 +162,7 @@ bool ClangdAstNode::hasConstType() const
bool ClangdAstNode::childContainsRange(int index, const LanguageServerProtocol::Range &range) const
{
- const optional<QList<ClangdAstNode>> childList = children();
+ const std::optional<QList<ClangdAstNode>> childList = children();
return childList && childList->size() > index && childList->at(index).range().contains(range);
}
@@ -171,7 +177,7 @@ QString ClangdAstNode::operatorString() const
if (kind() == "BinaryOperator")
return detail().value_or(QString());
QTC_ASSERT(kind() == "CXXOperatorCall", return {});
- const optional<QString> arcanaString = arcana();
+ const std::optional<QString> arcanaString = arcana();
if (!arcanaString)
return {};
const int closingQuoteOffset = arcanaString->lastIndexOf('\'');
@@ -186,7 +192,7 @@ QString ClangdAstNode::operatorString() const
ClangdAstNode::FileStatus ClangdAstNode::fileStatus(const FilePath &thisFile) const
{
- const optional<QString> arcanaString = arcana();
+ const std::optional<QString> arcanaString = arcana();
if (!arcanaString)
return FileStatus::Unknown;
@@ -368,7 +374,7 @@ MessageId requestAst(Client *client, const FilePath &filePath, const Range range
// The region of the source code whose AST is fetched. The highest-level node that entirely
// contains the range is returned.
- optional<Range> range() const { return optionalValue<Range>(rangeKey); }
+ std::optional<Range> range() const { return optionalValue<Range>(rangeKey); }
void setRange(const Range &range) { insert(rangeKey, range); }
bool isValid() const override { return contains(textDocumentKey); }
diff --git a/src/plugins/clangcodemodel/clangdast.h b/src/plugins/clangcodemodel/clangdast.h
index 9709de1fd4..7419d4f89e 100644
--- a/src/plugins/clangcodemodel/clangdast.h
+++ b/src/plugins/clangcodemodel/clangdast.h
@@ -40,11 +40,11 @@ public:
QString kind() const;
// Brief additional details, such as ‘||’. Information present here depends on the node kind.
- Utils::optional<QString> detail() const;
+ std::optional<QString> detail() const;
// One line dump of information, similar to that printed by clang -Xclang -ast-dump.
// Only available for certain types of nodes.
- Utils::optional<QString> arcana() const;
+ std::optional<QString> arcana() const;
// The part of the code that produced this node. Missing for implicit nodes, nodes produced
// by macro expansion, etc.
@@ -52,7 +52,7 @@ public:
// Descendants describing the internal structure. The tree of nodes is similar to that printed
// by clang -Xclang -ast-dump, or that traversed by clang::RecursiveASTVisitor.
- Utils::optional<QList<ClangdAstNode>> children() const;
+ std::optional<QList<ClangdAstNode>> children() const;
bool hasRange() const;
bool arcanaContains(const QString &s) const;
diff --git a/src/plugins/clangcodemodel/clangdclient.cpp b/src/plugins/clangcodemodel/clangdclient.cpp
index 34de081eb3..e7e34251f5 100644
--- a/src/plugins/clangcodemodel/clangdclient.cpp
+++ b/src/plugins/clangcodemodel/clangdclient.cpp
@@ -99,7 +99,7 @@ public:
QString usr() const { return typedValue<QString>(usrKey); }
// the clangd-specific opaque symbol ID
- Utils::optional<QString> id() const { return optionalValue<QString>(idKey); }
+ std::optional<QString> id() const { return optionalValue<QString>(idKey); }
bool isValid() const override
{
@@ -206,7 +206,7 @@ public:
m_data.emplace(std::make_pair(doc, VersionedDocData(doc, data)));
}
void remove(const DocType &doc) { m_data.erase(doc); }
- Utils::optional<VersionedDocData<DocType, DataType>> take(const DocType &doc)
+ std::optional<VersionedDocData<DocType, DataType>> take(const DocType &doc)
{
const auto it = m_data.find(doc);
if (it == m_data.end())
@@ -215,7 +215,7 @@ public:
m_data.erase(it);
return data;
}
- Utils::optional<DataType> get(const DocType &doc)
+ std::optional<DataType> get(const DocType &doc)
{
const auto it = m_data.find(doc);
if (it == m_data.end())
@@ -251,7 +251,7 @@ public:
: q(q), settings(CppEditor::ClangdProjectSettings(project).settings()) {}
void findUsages(TextDocument *document, const QTextCursor &cursor,
- const QString &searchTerm, const Utils::optional<QString> &replacement,
+ const QString &searchTerm, const std::optional<QString> &replacement,
bool categorize);
void handleDeclDefSwitchReplies();
@@ -275,7 +275,7 @@ public:
ClangdFollowSymbol *followSymbol = nullptr;
ClangdSwitchDeclDef *switchDeclDef = nullptr;
ClangdFindLocalReferences *findLocalRefs = nullptr;
- Utils::optional<QVersionNumber> versionNumber;
+ std::optional<QVersionNumber> versionNumber;
QHash<TextDocument *, HighlightingData> highlightingData;
QHash<Utils::FilePath, CppEditor::BaseEditorDocumentParser::Configuration> parserConfigs;
@@ -354,7 +354,7 @@ ClangdClient::ClangdClient(Project *project, const Utils::FilePath &jsonDbDir)
for (const Client *client : clients)
qCWarning(clangdLog) << client->name() << client->stateString();
ClientCapabilities caps = Client::defaultClientCapabilities();
- Utils::optional<TextDocumentClientCapabilities> textCaps = caps.textDocument();
+ std::optional<TextDocumentClientCapabilities> textCaps = caps.textDocument();
if (textCaps) {
ClangdTextDocumentClientCapabilities clangdTextCaps(*textCaps);
clangdTextCaps.clearDocumentHighlight();
@@ -362,7 +362,7 @@ ClangdClient::ClangdClient(Project *project, const Utils::FilePath &jsonDbDir)
diagnostics.enableCategorySupport();
diagnostics.enableCodeActionsInline();
clangdTextCaps.setPublishDiagnostics(diagnostics);
- Utils::optional<TextDocumentClientCapabilities::CompletionCapabilities> completionCaps
+ std::optional<TextDocumentClientCapabilities::CompletionCapabilities> completionCaps
= textCaps->completion();
if (completionCaps)
clangdTextCaps.setCompletion(ClangdCompletionCapabilities(*completionCaps));
@@ -441,7 +441,7 @@ void ClangdClient::closeExtraFile(const Utils::FilePath &filePath)
}
void ClangdClient::findUsages(TextDocument *document, const QTextCursor &cursor,
- const Utils::optional<QString> &replacement)
+ const std::optional<QString> &replacement)
{
// Quick check: Are we even on anything searchable?
const QTextCursor adjustedCursor = d->adjustedCursor(cursor, document);
@@ -615,7 +615,7 @@ CppEditor::ClangdSettings::Data ClangdClient::settingsData() const { return d->s
void ClangdClient::Private::findUsages(TextDocument *document,
const QTextCursor &cursor, const QString &searchTerm,
- const Utils::optional<QString> &replacement, bool categorize)
+ const std::optional<QString> &replacement, bool categorize)
{
const auto findRefs = new ClangdFindReferences(q, document, cursor, searchTerm, replacement,
categorize);
@@ -753,7 +753,7 @@ void ClangdClient::clearTasks(const Utils::FilePath &filePath)
d->issuePaneEntries[filePath].clear();
}
-Utils::optional<bool> ClangdClient::hasVirtualFunctionAt(TextDocument *doc, int revision,
+std::optional<bool> ClangdClient::hasVirtualFunctionAt(TextDocument *doc, int revision,
const Range &range)
{
const auto highlightingData = d->highlightingData.constFind(doc);
@@ -860,7 +860,7 @@ void ClangdClient::switchHeaderSource(const Utils::FilePath &filePath, bool inNe
};
SwitchSourceHeaderRequest req(filePath);
req.setResponseCallback([inNextSplit](const SwitchSourceHeaderRequest::Response &response) {
- if (const Utils::optional<QJsonValue> result = response.result()) {
+ if (const std::optional<QJsonValue> result = response.result()) {
const DocumentUri uri = DocumentUri::fromProtocol(result->toString());
const Utils::FilePath filePath = uri.toFilePath();
if (!filePath.isEmpty())
@@ -900,7 +900,7 @@ void ClangdClient::findLocalUsages(TextDocument *document, const QTextCursor &cu
void ClangdClient::gatherHelpItemForTooltip(const HoverRequest::Response &hoverResponse,
const DocumentUri &uri)
{
- if (const Utils::optional<HoverResult> result = hoverResponse.result()) {
+ if (const std::optional<HoverResult> result = hoverResponse.result()) {
if (auto hover = std::get_if<Hover>(&(*result))) {
const HoverContent content = hover->content();
const MarkupContent *const markup = std::get_if<MarkupContent>(&content);
@@ -942,7 +942,7 @@ void ClangdClient::gatherHelpItemForTooltip(const HoverRequest::Response &hoverR
const auto astHandler = [this, uri, hoverResponse](const ClangdAstNode &ast, const MessageId &) {
const MessageId id = hoverResponse.id();
Range range;
- if (const Utils::optional<HoverResult> result = hoverResponse.result()) {
+ if (const std::optional<HoverResult> result = hoverResponse.result()) {
if (auto hover = std::get_if<Hover>(&(*result)))
range = hover->range().value_or(Range());
}
@@ -953,12 +953,12 @@ void ClangdClient::gatherHelpItemForTooltip(const HoverRequest::Response &hoverR
}
ClangdAstNode node = path.last();
if (node.role() == "expression" && node.kind() == "ImplicitCast") {
- const Utils::optional<QList<ClangdAstNode>> children = node.children();
+ const std::optional<QList<ClangdAstNode>> children = node.children();
if (children && !children->isEmpty())
node = children->first();
}
while (node.kind() == "Qualified") {
- const Utils::optional<QList<ClangdAstNode>> children = node.children();
+ const std::optional<QList<ClangdAstNode>> children = node.children();
if (children && !children->isEmpty())
node = children->first();
}
@@ -1120,7 +1120,7 @@ QTextCursor ClangdClient::Private::adjustedCursor(const QTextCursor &cursor,
case T_DOT:
break;
case T_ARROW: {
- const Utils::optional<ClangdAstNode> clangdAst = astCache.get(doc);
+ const std::optional<ClangdAstNode> clangdAst = astCache.get(doc);
if (!clangdAst)
return cursor;
const ClangdAstPath clangdAstPath = getAstPath(*clangdAst, Range(cursor));
@@ -1289,7 +1289,7 @@ void ClangdClient::Private::handleSemanticTokens(TextDocument *doc,
getAndHandleAst(doc, astHandler, AstCallbackMode::SyncIfPossible);
}
-Utils::optional<QList<CodeAction> > ClangdDiagnostic::codeActions() const
+std::optional<QList<CodeAction> > ClangdDiagnostic::codeActions() const
{
auto actions = optionalArray<LanguageServerProtocol::CodeAction>(u"codeActions");
if (!actions)
diff --git a/src/plugins/clangcodemodel/clangdclient.h b/src/plugins/clangcodemodel/clangdclient.h
index 5b6c22bf1a..fe18af4087 100644
--- a/src/plugins/clangcodemodel/clangdclient.h
+++ b/src/plugins/clangcodemodel/clangdclient.h
@@ -9,10 +9,11 @@
#include <cppeditor/cursorineditor.h>
#include <languageclient/client.h>
#include <utils/link.h>
-#include <utils/optional.h>
#include <QVersionNumber>
+#include <optional>
+
namespace CppEditor { class CppEditorWidget; }
namespace LanguageServerProtocol { class Range; }
namespace ProjectExplorer {
@@ -48,7 +49,7 @@ public:
void closeExtraFile(const Utils::FilePath &filePath);
void findUsages(TextEditor::TextDocument *document, const QTextCursor &cursor,
- const Utils::optional<QString> &replacement);
+ const std::optional<QString> &replacement);
void followSymbol(TextEditor::TextDocument *document,
const QTextCursor &cursor,
CppEditor::CppEditorWidget *editorWidget,
@@ -85,7 +86,7 @@ public:
void switchIssuePaneEntries(const Utils::FilePath &filePath);
void addTask(const ProjectExplorer::Task &task);
void clearTasks(const Utils::FilePath &filePath);
- Utils::optional<bool> hasVirtualFunctionAt(TextEditor::TextDocument *doc, int revision,
+ std::optional<bool> hasVirtualFunctionAt(TextEditor::TextDocument *doc, int revision,
const LanguageServerProtocol::Range &range);
using TextDocOrFile = std::variant<const TextEditor::TextDocument *, Utils::FilePath>;
@@ -136,7 +137,7 @@ class ClangdDiagnostic : public LanguageServerProtocol::Diagnostic
{
public:
using Diagnostic::Diagnostic;
- Utils::optional<QList<LanguageServerProtocol::CodeAction>> codeActions() const;
+ std::optional<QList<LanguageServerProtocol::CodeAction>> codeActions() const;
QString category() const;
};
diff --git a/src/plugins/clangcodemodel/clangdcompletion.cpp b/src/plugins/clangcodemodel/clangdcompletion.cpp
index b82a046821..d99e9ae92f 100644
--- a/src/plugins/clangcodemodel/clangdcompletion.cpp
+++ b/src/plugins/clangcodemodel/clangdcompletion.cpp
@@ -336,7 +336,7 @@ void ClangdCompletionItem::apply(TextDocumentManipulatorInterface &manipulator,
ClangdCompletionItem::SpecialQtType ClangdCompletionItem::getQtType(const CompletionItem &item)
{
- const Utils::optional<MarkupOrString> doc = item.documentation();
+ const std::optional<MarkupOrString> doc = item.documentation();
if (!doc)
return SpecialQtType::None;
QString docText;
@@ -612,7 +612,7 @@ ClangdCompletionCapabilities::ClangdCompletionCapabilities(const JsonObject &obj
: TextDocumentClientCapabilities::CompletionCapabilities(object)
{
insert(u"editsNearCursor", true); // For dot-to-arrow correction.
- if (Utils::optional<CompletionItemCapbilities> completionItemCaps = completionItem()) {
+ if (std::optional<CompletionItemCapbilities> completionItemCaps = completionItem()) {
completionItemCaps->setSnippetSupport(false);
setCompletionItem(*completionItemCaps);
}
diff --git a/src/plugins/clangcodemodel/clangdfindreferences.cpp b/src/plugins/clangcodemodel/clangdfindreferences.cpp
index de4d79c85c..932b50fefa 100644
--- a/src/plugins/clangcodemodel/clangdfindreferences.cpp
+++ b/src/plugins/clangcodemodel/clangdfindreferences.cpp
@@ -65,21 +65,21 @@ public:
void finishSearch();
void reportAllSearchResultsAndFinish();
void addSearchResultsForFile(const FilePath &file, const ReferencesFileData &fileData);
- Utils::optional<QString> getContainingFunctionName(const ClangdAstPath &astPath,
+ std::optional<QString> getContainingFunctionName(const ClangdAstPath &astPath,
const Range& range);
ClangdFindReferences * const q;
QMap<DocumentUri, ReferencesFileData> fileData;
QList<MessageId> pendingAstRequests;
QPointer<SearchResult> search;
- Utils::optional<ReplacementData> replacementData;
+ std::optional<ReplacementData> replacementData;
bool canceled = false;
bool categorize = false;
};
ClangdFindReferences::ClangdFindReferences(ClangdClient *client, TextDocument *document,
const QTextCursor &cursor, const QString &searchTerm,
- const Utils::optional<QString> &replacement, bool categorize)
+ const std::optional<QString> &replacement, bool categorize)
: QObject(client), d(new ClangdFindReferences::Private(this))
{
d->categorize = categorize;
@@ -121,7 +121,7 @@ ClangdFindReferences::ClangdFindReferences(ClangdClient *client, TextDocument *d
});
SearchResultWindow::instance()->popup(IOutputPane::ModeSwitch | IOutputPane::WithFocus);
- const Utils::optional<MessageId> requestId = client->symbolSupport().findUsages(
+ const std::optional<MessageId> requestId = client->symbolSupport().findUsages(
document, cursor, [self = QPointer(this)](const QList<Location> &locations) {
if (self)
self->d->handleFindUsagesResult(locations);
@@ -324,7 +324,7 @@ void ClangdFindReferences::Private::addSearchResultsForFile(const FilePath &file
search->addResults(items, SearchResult::AddOrdered);
}
-Utils::optional<QString> ClangdFindReferences::Private::getContainingFunctionName(
+std::optional<QString> ClangdFindReferences::Private::getContainingFunctionName(
const ClangdAstPath &astPath, const Range& range)
{
const ClangdAstNode* containingFuncNode{nullptr};
@@ -344,7 +344,7 @@ Utils::optional<QString> ClangdFindReferences::Private::getContainingFunctionNam
}
if (!containingFuncNode || !containingFuncNode->isValid())
- return Utils::nullopt;
+ return std::nullopt;
return containingFuncNode->detail();
}
diff --git a/src/plugins/clangcodemodel/clangdfindreferences.h b/src/plugins/clangcodemodel/clangdfindreferences.h
index 8d99edaa84..f45a61b25e 100644
--- a/src/plugins/clangcodemodel/clangdfindreferences.h
+++ b/src/plugins/clangcodemodel/clangdfindreferences.h
@@ -5,10 +5,11 @@
#include <coreplugin/find/searchresultitem.h>
#include <cppeditor/cursorineditor.h>
-#include <utils/optional.h>
#include <QObject>
+#include <optional>
+
QT_BEGIN_NAMESPACE
class QTextCursor;
QT_END_NAMESPACE
@@ -24,7 +25,7 @@ class ClangdFindReferences : public QObject
public:
explicit ClangdFindReferences(ClangdClient *client, TextEditor::TextDocument *document,
const QTextCursor &cursor, const QString &searchTerm,
- const Utils::optional<QString> &replacement, bool categorize);
+ const std::optional<QString> &replacement, bool categorize);
~ClangdFindReferences();
signals:
diff --git a/src/plugins/clangcodemodel/clangdfollowsymbol.cpp b/src/plugins/clangcodemodel/clangdfollowsymbol.cpp
index a2b2916d38..49cbef3682 100644
--- a/src/plugins/clangcodemodel/clangdfollowsymbol.cpp
+++ b/src/plugins/clangcodemodel/clangdfollowsymbol.cpp
@@ -107,7 +107,7 @@ public:
Link defLink;
Links allLinks;
QHash<Link, Link> declDefMap;
- optional<ClangdAstNode> cursorNode;
+ std::optional<ClangdAstNode> cursorNode;
ClangdAstNode defLinkNode;
SymbolDataList symbolsToDisplay;
std::set<FilePath> openedFiles;
@@ -375,7 +375,7 @@ void ClangdFollowSymbol::Private::handleGotoDefinitionResult()
void ClangdFollowSymbol::Private::handleGotoImplementationResult(
const GotoImplementationRequest::Response &response)
{
- if (const optional<GotoResult> &result = response.result()) {
+ if (const std::optional<GotoResult> &result = response.result()) {
QList<Link> newLinks;
if (const auto ploc = std::get_if<Location>(&*result))
newLinks = {ploc->toLink()};
@@ -451,7 +451,7 @@ void ClangdFollowSymbol::Private::handleGotoImplementationResult(
if (!sentinel)
return;
Link newLink;
- if (optional<GotoResult> _result = response.result()) {
+ if (std::optional<GotoResult> _result = response.result()) {
const GotoResult result = _result.value();
if (const auto ploc = std::get_if<Location>(&result)) {
newLink = ploc->toLink();
diff --git a/src/plugins/clangcodemodel/clangdmemoryusagewidget.cpp b/src/plugins/clangcodemodel/clangdmemoryusagewidget.cpp
index 429ebfe791..06ec53d621 100644
--- a/src/plugins/clangcodemodel/clangdmemoryusagewidget.cpp
+++ b/src/plugins/clangcodemodel/clangdmemoryusagewidget.cpp
@@ -131,7 +131,7 @@ public:
const QPointer<ClangdClient> client;
MemoryTreeModel model;
TreeView view;
- Utils::optional<MessageId> currentRequest;
+ std::optional<MessageId> currentRequest;
};
ClangdMemoryUsageWidget::ClangdMemoryUsageWidget(ClangdClient *client)
diff --git a/src/plugins/clangcodemodel/clangdquickfixes.cpp b/src/plugins/clangcodemodel/clangdquickfixes.cpp
index 6b6f7676ce..83ad6a0d80 100644
--- a/src/plugins/clangcodemodel/clangdquickfixes.cpp
+++ b/src/plugins/clangcodemodel/clangdquickfixes.cpp
@@ -65,7 +65,7 @@ private:
auto toOperation =
[=](const std::variant<Command, CodeAction> &item) -> QuickFixOperation * {
if (auto action = std::get_if<CodeAction>(&item)) {
- const Utils::optional<QList<Diagnostic>> diagnostics = action->diagnostics();
+ const std::optional<QList<Diagnostic>> diagnostics = action->diagnostics();
if (!diagnostics.has_value() || diagnostics->isEmpty())
return new CodeActionQuickFixOperation(*action, client());
}
diff --git a/src/plugins/clangcodemodel/clangdswitchdecldef.cpp b/src/plugins/clangcodemodel/clangdswitchdecldef.cpp
index c39553259c..7773e7fa0e 100644
--- a/src/plugins/clangcodemodel/clangdswitchdecldef.cpp
+++ b/src/plugins/clangcodemodel/clangdswitchdecldef.cpp
@@ -10,12 +10,13 @@
#include <languageclient/documentsymbolcache.h>
#include <languageserverprotocol/lsptypes.h>
#include <texteditor/textdocument.h>
-#include <utils/optional.h>
#include <utils/qtcassert.h>
#include <QApplication>
#include <QTextCursor>
+#include <optional>
+
using namespace CppEditor;
using namespace LanguageClient;
using namespace LanguageServerProtocol;
@@ -33,7 +34,7 @@ public:
cursor(cursor), editorWidget(editorWidget), callback(callback)
{}
- optional<ClangdAstNode> getFunctionNode() const;
+ std::optional<ClangdAstNode> getFunctionNode() const;
QTextCursor cursorForFunctionName(const ClangdAstNode &functionNode) const;
void handleDeclDefSwitchReplies();
@@ -44,8 +45,8 @@ public:
const QTextCursor cursor;
const QPointer<CppEditorWidget> editorWidget;
const LinkHandler callback;
- optional<ClangdAstNode> ast;
- optional<DocumentSymbolsResult> docSymbols;
+ std::optional<ClangdAstNode> ast;
+ std::optional<DocumentSymbolsResult> docSymbols;
bool done = false;
};
@@ -110,7 +111,7 @@ void ClangdSwitchDeclDef::emitDone()
emit done();
}
-optional<ClangdAstNode> ClangdSwitchDeclDef::Private::getFunctionNode() const
+std::optional<ClangdAstNode> ClangdSwitchDeclDef::Private::getFunctionNode() const
{
QTC_ASSERT(ast, return {});
@@ -157,7 +158,7 @@ void ClangdSwitchDeclDef::Private::handleDeclDefSwitchReplies()
// on a function return type, or ...
if (clangdLogAst().isDebugEnabled())
ast->print(0);
- const Utils::optional<ClangdAstNode> functionNode = getFunctionNode();
+ const std::optional<ClangdAstNode> functionNode = getFunctionNode();
if (!functionNode) {
q->emitDone();
return;
diff --git a/src/plugins/clangcodemodel/clangtextmark.cpp b/src/plugins/clangcodemodel/clangtextmark.cpp
index 47028c37c6..e5ef9f4d81 100644
--- a/src/plugins/clangcodemodel/clangtextmark.cpp
+++ b/src/plugins/clangcodemodel/clangtextmark.cpp
@@ -215,10 +215,10 @@ ClangDiagnostic convertDiagnostic(const ClangdDiagnostic &src, const FilePath &f
if (codeString && codeString->startsWith("-W"))
target.enableOption = *codeString;
for (const CodeAction &codeAction : src.codeActions().value_or(QList<CodeAction>())) {
- const Utils::optional<WorkspaceEdit> edit = codeAction.edit();
+ const std::optional<WorkspaceEdit> edit = codeAction.edit();
if (!edit)
continue;
- const Utils::optional<WorkspaceEdit::Changes> changes = edit->changes();
+ const std::optional<WorkspaceEdit::Changes> changes = edit->changes();
if (!changes)
continue;
ClangDiagnostic fixItDiag;
diff --git a/src/plugins/clangformat/clangformatbaseindenter.cpp b/src/plugins/clangformat/clangformatbaseindenter.cpp
index 7fa4ac9cb1..34039583ed 100644
--- a/src/plugins/clangformat/clangformatbaseindenter.cpp
+++ b/src/plugins/clangformat/clangformatbaseindenter.cpp
@@ -706,7 +706,7 @@ bool ClangFormatBaseIndenter::isElectricCharacter(const QChar &ch) const
return false;
}
-Utils::optional<int> ClangFormat::ClangFormatBaseIndenter::margin() const
+std::optional<int> ClangFormat::ClangFormatBaseIndenter::margin() const
{
return styleForFile().ColumnLimit;
}
diff --git a/src/plugins/clangformat/clangformatbaseindenter.h b/src/plugins/clangformat/clangformatbaseindenter.h
index 7174a0b4af..aa5290f4ff 100644
--- a/src/plugins/clangformat/clangformatbaseindenter.h
+++ b/src/plugins/clangformat/clangformatbaseindenter.h
@@ -44,7 +44,7 @@ public:
bool isElectricCharacter(const QChar &ch) const override;
- Utils::optional<int> margin() const override;
+ std::optional<int> margin() const override;
clang::format::FormatStyle styleForFile() const;
diff --git a/src/plugins/clangformat/clangformatindenter.cpp b/src/plugins/clangformat/clangformatindenter.cpp
index 75383a1bc7..8328d3fdfb 100644
--- a/src/plugins/clangformat/clangformatindenter.cpp
+++ b/src/plugins/clangformat/clangformatindenter.cpp
@@ -55,7 +55,7 @@ bool ClangFormatIndenter::formatCodeInsteadOfIndent() const
return ClangFormatSettings::instance().mode() == ClangFormatSettings::Mode::Formatting;
}
-Utils::optional<TabSettings> ClangFormatIndenter::tabSettings() const
+std::optional<TabSettings> ClangFormatIndenter::tabSettings() const
{
FormatStyle style = styleForFile();
TabSettings tabSettings;
diff --git a/src/plugins/clangformat/clangformatindenter.h b/src/plugins/clangformat/clangformatindenter.h
index 438ab2a0bd..0303b3c066 100644
--- a/src/plugins/clangformat/clangformatindenter.h
+++ b/src/plugins/clangformat/clangformatindenter.h
@@ -13,7 +13,7 @@ class ClangFormatIndenter final : public ClangFormatBaseIndenter
{
public:
ClangFormatIndenter(QTextDocument *doc);
- Utils::optional<TextEditor::TabSettings> tabSettings() const override;
+ std::optional<TextEditor::TabSettings> tabSettings() const override;
bool formatOnSave() const override;
private:
diff --git a/src/plugins/clangformat/tests/clangformat-test.cpp b/src/plugins/clangformat/tests/clangformat-test.cpp
index ede1768783..74107a40e7 100644
--- a/src/plugins/clangformat/tests/clangformat-test.cpp
+++ b/src/plugins/clangformat/tests/clangformat-test.cpp
@@ -7,12 +7,13 @@
#include <texteditor/tabsettings.h>
#include <utils/fileutils.h>
-#include <utils/optional.h>
#include <QTextCursor>
#include <QTextDocument>
#include <QtTest>
+#include <optional>
+
namespace ClangFormat::Internal {
class ClangFormatTestIndenter : public ClangFormatBaseIndenter
@@ -21,7 +22,7 @@ public:
ClangFormatTestIndenter(QTextDocument *doc) : ClangFormatBaseIndenter(doc) {}
private:
- Utils::optional<TextEditor::TabSettings> tabSettings() const override { return {}; }
+ std::optional<TextEditor::TabSettings> tabSettings() const override { return {}; }
};
class ClangFormatExtendedTestIndenter : public ClangFormatTestIndenter
diff --git a/src/plugins/clangtools/clangtoolsdiagnosticmodel.h b/src/plugins/clangtools/clangtoolsdiagnosticmodel.h
index 5eb7740e50..0fa4c97bda 100644
--- a/src/plugins/clangtools/clangtoolsdiagnosticmodel.h
+++ b/src/plugins/clangtools/clangtoolsdiagnosticmodel.h
@@ -10,7 +10,6 @@
#include <debugger/analyzer/detailederrorview.h>
#include <utils/fileutils.h>
-#include <utils/optional.h>
#include <utils/treemodel.h>
#include <QFileSystemWatcher>
@@ -21,6 +20,7 @@
#include <functional>
#include <map>
#include <memory>
+#include <optional>
namespace ProjectExplorer { class Project; }
@@ -127,7 +127,7 @@ class FilterOptions {
public:
QSet<QString> checks;
};
-using OptionalFilterOptions = Utils::optional<FilterOptions>;
+using OptionalFilterOptions = std::optional<FilterOptions>;
class DiagnosticFilterModel : public QSortFilterProxyModel
{
diff --git a/src/plugins/clangtools/clangtoolslogfilereader.cpp b/src/plugins/clangtools/clangtoolslogfilereader.cpp
index debba17ba8..5ab8755bfc 100644
--- a/src/plugins/clangtools/clangtoolslogfilereader.cpp
+++ b/src/plugins/clangtools/clangtoolslogfilereader.cpp
@@ -31,7 +31,7 @@ static bool checkFilePath(const Utils::FilePath &filePath, QString *errorMessage
return true;
}
-Utils::optional<LineColumnInfo> byteOffsetInUtf8TextToLineColumn(const char *text,
+std::optional<LineColumnInfo> byteOffsetInUtf8TextToLineColumn(const char *text,
int offset,
int startLine)
{
diff --git a/src/plugins/clangtools/clangtoolslogfilereader.h b/src/plugins/clangtools/clangtoolslogfilereader.h
index 4a069381c2..fb062f3b8e 100644
--- a/src/plugins/clangtools/clangtoolslogfilereader.h
+++ b/src/plugins/clangtools/clangtoolslogfilereader.h
@@ -3,10 +3,11 @@
#pragma once
-#include <utils/optional.h>
#include "clangtoolsdiagnostic.h"
+#include <optional>
+
namespace Utils { class FilePath; }
namespace ClangTools {
@@ -27,7 +28,7 @@ struct LineColumnInfo {
int column = 1; // 1-based
int lineStartOffset = 0; // for optimiation/caching purposes
};
-using OptionalLineColumnInfo = Utils::optional<LineColumnInfo>;
+using OptionalLineColumnInfo = std::optional<LineColumnInfo>;
OptionalLineColumnInfo byteOffsetInUtf8TextToLineColumn(const char *text,
int offset,
int startLine = 1);
diff --git a/src/plugins/clangtools/clangtoolsutils.cpp b/src/plugins/clangtools/clangtoolsutils.cpp
index 5b30f7fc76..741e5de9f9 100644
--- a/src/plugins/clangtools/clangtoolsutils.cpp
+++ b/src/plugins/clangtools/clangtoolsutils.cpp
@@ -54,7 +54,7 @@ static QString fixitStatus(FixitStatus status)
QString createDiagnosticToolTipString(
const Diagnostic &diagnostic,
- Utils::optional<FixitStatus> status,
+ std::optional<FixitStatus> status,
bool showSteps)
{
using StringPair = QPair<QString, QString>;
diff --git a/src/plugins/clangtools/clangtoolsutils.h b/src/plugins/clangtools/clangtoolsutils.h
index 176bbd5ea1..ed6c60603b 100644
--- a/src/plugins/clangtools/clangtoolsutils.h
+++ b/src/plugins/clangtools/clangtoolsutils.h
@@ -6,10 +6,11 @@
#include <cppeditor/clangdiagnosticconfig.h>
#include <utils/id.h>
-#include <utils/optional.h>
#include <QtGlobal>
+#include <optional>
+
namespace CppEditor { class ClangDiagnosticConfigsModel; }
namespace Debugger { class DiagnosticLocation; }
namespace Utils { class FilePath; }
@@ -31,10 +32,9 @@ enum class FixitStatus {
Invalidated,
};
-QString createDiagnosticToolTipString(
- const Diagnostic &diagnostic,
- Utils::optional<FixitStatus> status = Utils::nullopt,
- bool showSteps = true);
+QString createDiagnosticToolTipString(const Diagnostic &diagnostic,
+ std::optional<FixitStatus> status = std::nullopt,
+ bool showSteps = true);
CppEditor::ClangDiagnosticConfig builtinConfig();
diff --git a/src/plugins/clangtools/diagnosticmark.cpp b/src/plugins/clangtools/diagnosticmark.cpp
index 3fe52d4762..2b8cd472db 100644
--- a/src/plugins/clangtools/diagnosticmark.cpp
+++ b/src/plugins/clangtools/diagnosticmark.cpp
@@ -30,7 +30,7 @@ DiagnosticMark::DiagnosticMark(const Diagnostic &diagnostic)
setPriority(TextEditor::TextMark::HighPriority);
QIcon markIcon = diagnostic.icon();
setIcon(markIcon.isNull() ? Utils::Icons::CODEMODEL_WARNING.icon() : markIcon);
- setToolTip(createDiagnosticToolTipString(diagnostic, Utils::nullopt, true));
+ setToolTip(createDiagnosticToolTipString(diagnostic, std::nullopt, true));
setLineAnnotation(diagnostic.description);
setActionsProvider([diagnostic] {
// Copy to clipboard action
diff --git a/src/plugins/clangtools/settingswidget.cpp b/src/plugins/clangtools/settingswidget.cpp
index 738e600a97..7c667d6ee6 100644
--- a/src/plugins/clangtools/settingswidget.cpp
+++ b/src/plugins/clangtools/settingswidget.cpp
@@ -13,7 +13,7 @@
#include <debugger/analyzer/analyzericons.h>
-#include <utils/optional.h>
+#include <optional>
using namespace Utils;
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
index 0e7924efaf..36736b6f9d 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
@@ -1188,7 +1188,7 @@ CMakeBuildConfiguration::CMakeBuildConfiguration(Target *target, Id id)
const auto buildDirAspect = aspect<BuildDirectoryAspect>();
buildDirAspect->setValueAcceptor(
- [](const QString &oldDir, const QString &newDir) -> Utils::optional<QString> {
+ [](const QString &oldDir, const QString &newDir) -> std::optional<QString> {
if (oldDir.isEmpty())
return newDir;
@@ -1204,7 +1204,7 @@ CMakeBuildConfiguration::CMakeBuildConfiguration(Target *target, Id id)
== QMessageBox::Ok) {
return newDir;
}
- return Utils::nullopt;
+ return std::nullopt;
}
return newDir;
});
diff --git a/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp b/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp
index dbf5f6f3d5..28dadbcd99 100644
--- a/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp
@@ -166,7 +166,7 @@ QString CMakeConfigItem::typeToTypeString(const CMakeConfigItem::Type t)
return {};
}
-Utils::optional<bool> CMakeConfigItem::toBool(const QString &value)
+std::optional<bool> CMakeConfigItem::toBool(const QString &value)
{
// Taken from CMakes if(<constant>) documentation:
// "Named boolean constants are case-insensitive."
diff --git a/src/plugins/cmakeprojectmanager/cmakeconfigitem.h b/src/plugins/cmakeprojectmanager/cmakeconfigitem.h
index f808b55de6..afec217cd1 100644
--- a/src/plugins/cmakeprojectmanager/cmakeconfigitem.h
+++ b/src/plugins/cmakeprojectmanager/cmakeconfigitem.h
@@ -5,11 +5,12 @@
#include "cmake_global.h"
-#include <utils/optional.h>
#include <QByteArray>
#include <QStringList>
+#include <optional>
+
namespace Utils {
class FilePath;
class MacroExpander;
@@ -33,7 +34,7 @@ public:
static QStringList cmakeSplitValue(const QString &in, bool keepEmpty = false);
static Type typeStringToType(const QByteArray &typeString);
static QString typeToTypeString(const Type t);
- static Utils::optional<bool> toBool(const QString &value);
+ static std::optional<bool> toBool(const QString &value);
bool isNull() const { return key.isEmpty(); }
QString expandedValue(const ProjectExplorer::Kit *k) const;
diff --git a/src/plugins/cmakeprojectmanager/cmakeparser.h b/src/plugins/cmakeprojectmanager/cmakeparser.h
index 3cb349d2ca..686840575e 100644
--- a/src/plugins/cmakeprojectmanager/cmakeparser.h
+++ b/src/plugins/cmakeprojectmanager/cmakeparser.h
@@ -8,11 +8,11 @@
#include <projectexplorer/ioutputparser.h>
#include <projectexplorer/task.h>
-#include <utils/optional.h>
-
#include <QDir>
#include <QRegularExpression>
+#include <optional>
+
namespace CMakeProjectManager {
class CMAKE_EXPORT CMakeParser : public ProjectExplorer::OutputTaskParser
@@ -31,7 +31,7 @@ private:
TripleLineError m_expectTripleLineErrorData = NONE;
- Utils::optional<QDir> m_sourceDirectory;
+ std::optional<QDir> m_sourceDirectory;
ProjectExplorer::Task m_lastTask;
QRegularExpression m_commonError;
QRegularExpression m_nextSubError;
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectnodes.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectnodes.cpp
index c591e903de..3cb364a08a 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectnodes.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectnodes.cpp
@@ -39,7 +39,7 @@ bool CMakeListsNode::showInSimpleTree() const
return false;
}
-Utils::optional<Utils::FilePath> CMakeListsNode::visibleAfterAddFileAction() const
+std::optional<Utils::FilePath> CMakeListsNode::visibleAfterAddFileAction() const
{
return filePath().pathAppended("CMakeLists.txt");
}
@@ -169,7 +169,7 @@ void CMakeTargetNode::setConfig(const CMakeConfig &config)
m_config = config;
}
-Utils::optional<Utils::FilePath> CMakeTargetNode::visibleAfterAddFileAction() const
+std::optional<Utils::FilePath> CMakeTargetNode::visibleAfterAddFileAction() const
{
return filePath().pathAppended("CMakeLists.txt");
}
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectnodes.h b/src/plugins/cmakeprojectmanager/cmakeprojectnodes.h
index 9434da0e55..05f081bf99 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectnodes.h
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectnodes.h
@@ -22,7 +22,7 @@ public:
CMakeListsNode(const Utils::FilePath &cmakeListPath);
bool showInSimpleTree() const final;
- Utils::optional<Utils::FilePath> visibleAfterAddFileAction() const override;
+ std::optional<Utils::FilePath> visibleAfterAddFileAction() const override;
};
class CMakeProjectNode : public ProjectExplorer::ProjectNode
@@ -45,7 +45,7 @@ public:
Utils::FilePath buildDirectory() const;
void setBuildDirectory(const Utils::FilePath &directory);
- Utils::optional<Utils::FilePath> visibleAfterAddFileAction() const override;
+ std::optional<Utils::FilePath> visibleAfterAddFileAction() const override;
void build() override;
diff --git a/src/plugins/cmakeprojectmanager/cmaketool.cpp b/src/plugins/cmakeprojectmanager/cmaketool.cpp
index 7165ceab26..7b9f699f06 100644
--- a/src/plugins/cmakeprojectmanager/cmaketool.cpp
+++ b/src/plugins/cmakeprojectmanager/cmaketool.cpp
@@ -49,7 +49,7 @@ namespace Internal {
const char READER_TYPE_FILEAPI[] = "fileapi";
-static Utils::optional<CMakeTool::ReaderType> readerTypeFromString(const QString &input)
+static std::optional<CMakeTool::ReaderType> readerTypeFromString(const QString &input)
{
// Do not try to be clever here, just use whatever is in the string!
if (input == READER_TYPE_FILEAPI)
@@ -331,7 +331,7 @@ CMakeTool::PathMapper CMakeTool::pathMapper() const
return [](const FilePath &fn) { return fn; };
}
-Utils::optional<CMakeTool::ReaderType> CMakeTool::readerType() const
+std::optional<CMakeTool::ReaderType> CMakeTool::readerType() const
{
if (m_readerType)
return m_readerType; // Allow overriding the auto-detected value via .user files
diff --git a/src/plugins/cmakeprojectmanager/cmaketool.h b/src/plugins/cmakeprojectmanager/cmaketool.h
index 9d1f1fe197..94e122d204 100644
--- a/src/plugins/cmakeprojectmanager/cmaketool.h
+++ b/src/plugins/cmakeprojectmanager/cmaketool.h
@@ -9,7 +9,8 @@
#include <utils/fileutils.h>
#include <utils/id.h>
-#include <utils/optional.h>
+
+#include <optional>
namespace Utils { class QtcProcess; }
@@ -83,7 +84,7 @@ public:
void setPathMapper(const PathMapper &includePathMapper);
PathMapper pathMapper() const;
- Utils::optional<ReaderType> readerType() const;
+ std::optional<ReaderType> readerType() const;
static Utils::FilePath searchQchFile(const Utils::FilePath &executable);
@@ -115,7 +116,7 @@ private:
QString m_detectionSource;
bool m_autoCreateBuildDirectory = false;
- Utils::optional<ReaderType> m_readerType;
+ std::optional<ReaderType> m_readerType;
std::unique_ptr<Internal::IntrospectionData> m_introspection;
diff --git a/src/plugins/cmakeprojectmanager/fileapidataextractor.h b/src/plugins/cmakeprojectmanager/fileapidataextractor.h
index 4e7308cc2f..fbecc237c9 100644
--- a/src/plugins/cmakeprojectmanager/fileapidataextractor.h
+++ b/src/plugins/cmakeprojectmanager/fileapidataextractor.h
@@ -9,13 +9,13 @@
#include <projectexplorer/rawprojectpart.h>
#include <utils/fileutils.h>
-#include <utils/optional.h>
#include <QList>
#include <QSet>
#include <QString>
#include <memory>
+#include <optional>
namespace CMakeProjectManager {
namespace Internal {
diff --git a/src/plugins/cmakeprojectmanager/fileapiparser.h b/src/plugins/cmakeprojectmanager/fileapiparser.h
index aab05cb7da..acd31d77fe 100644
--- a/src/plugins/cmakeprojectmanager/fileapiparser.h
+++ b/src/plugins/cmakeprojectmanager/fileapiparser.h
@@ -195,8 +195,8 @@ public:
QList<Utils::FilePath> artifacts;
QString installPrefix;
std::vector<InstallDestination> installDestination;
- Utils::optional<LinkInfo> link;
- Utils::optional<ArchiveInfo> archive;
+ std::optional<LinkInfo> link;
+ std::optional<ArchiveInfo> archive;
std::vector<DependencyInfo> dependencies;
std::vector<SourceInfo> sources;
std::vector<QString> sourceGroups;
diff --git a/src/plugins/cmakeprojectmanager/fileapireader.h b/src/plugins/cmakeprojectmanager/fileapireader.h
index 3e362423be..6f59a17ddd 100644
--- a/src/plugins/cmakeprojectmanager/fileapireader.h
+++ b/src/plugins/cmakeprojectmanager/fileapireader.h
@@ -12,13 +12,13 @@
#include <projectexplorer/treescanner.h>
#include <utils/filesystemwatcher.h>
-#include <utils/optional.h>
#include <QDateTime>
#include <QFuture>
#include <QObject>
#include <memory>
+#include <optional>
namespace ProjectExplorer {
class ProjectNode;
@@ -92,7 +92,7 @@ private:
bool m_usesAllCapsTargets = false;
int m_lastCMakeExitCode = 0;
- Utils::optional<QFuture<std::shared_ptr<FileApiQtcData>>> m_future;
+ std::optional<QFuture<std::shared_ptr<FileApiQtcData>>> m_future;
// Update related:
bool m_isParsing = false;
diff --git a/src/plugins/coco/cocolanguageclient.cpp b/src/plugins/coco/cocolanguageclient.cpp
index aa79ec1289..8db497d10e 100644
--- a/src/plugins/coco/cocolanguageclient.cpp
+++ b/src/plugins/coco/cocolanguageclient.cpp
@@ -119,11 +119,11 @@ class CocoDiagnostic : public Diagnostic
{
public:
using Diagnostic::Diagnostic;
- optional<CocoDiagnosticSeverity> cocoSeverity() const
+ std::optional<CocoDiagnosticSeverity> cocoSeverity() const
{
if (auto val = optionalValue<int>(severityKey))
- return Utils::make_optional(static_cast<CocoDiagnosticSeverity>(*val));
- return Utils::nullopt;
+ return std::make_optional(static_cast<CocoDiagnosticSeverity>(*val));
+ return std::nullopt;
}
};
@@ -154,7 +154,7 @@ public:
}
}
- optional<CocoDiagnosticSeverity> m_severity;
+ std::optional<CocoDiagnosticSeverity> m_severity;
QColor m_annotationColor;
};
@@ -185,7 +185,7 @@ private:
bool /*isProjectFile*/) const override
{
const CocoDiagnostic cocoDiagnostic(diagnostic);
- if (optional<CocoDiagnosticSeverity> severity = cocoDiagnostic.cocoSeverity())
+ if (std::optional<CocoDiagnosticSeverity> severity = cocoDiagnostic.cocoSeverity())
return new CocoTextMark(filePath, cocoDiagnostic, client()->id());
return nullptr;
}
@@ -193,7 +193,8 @@ private:
QTextEdit::ExtraSelection createDiagnosticSelection(const Diagnostic &diagnostic,
QTextDocument *textDocument) const override
{
- if (optional<CocoDiagnosticSeverity> severity = CocoDiagnostic(diagnostic).cocoSeverity()) {
+ if (std::optional<CocoDiagnosticSeverity> severity = CocoDiagnostic(diagnostic)
+ .cocoSeverity()) {
QTextCursor cursor(textDocument);
cursor.setPosition(diagnostic.range().start().toPositionInDocument(textDocument));
cursor.setPosition(diagnostic.range().end().toPositionInDocument(textDocument),
@@ -210,7 +211,7 @@ private:
void setDiagnostics(const DocumentUri &uri,
const QList<Diagnostic> &diagnostics,
- const Utils::optional<int> &version) override
+ const std::optional<int> &version) override
{
DiagnosticManager::setDiagnostics(uri, diagnostics, version);
showDiagnostics(uri, client()->documentVersion(uri.toFilePath()));
diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseutils.cpp b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseutils.cpp
index 187acaa2bb..e503c47729 100644
--- a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseutils.cpp
+++ b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseutils.cpp
@@ -8,13 +8,14 @@
#include <utils/algorithm.h>
#include <utils/hostosinfo.h>
-#include <utils/optional.h>
#include <utils/stringutils.h>
#include <QDir>
#include <QRegularExpression>
#include <QSet>
+#include <optional>
+
using namespace ProjectExplorer;
using namespace Utils;
@@ -100,8 +101,8 @@ void filteredFlags(const QString &fileName,
bool skipNext = Utils::HostOsInfo::isWindowsHost()
? (!flags.front().startsWith('/') && !flags.front().startsWith('-'))
: (!flags.front().startsWith('-'));
- Utils::optional<HeaderPathType> includePathType;
- Utils::optional<MacroType> macroType;
+ std::optional<HeaderPathType> includePathType;
+ std::optional<MacroType> macroType;
bool fileKindIsNext = false;
QStringList filtered;
diff --git a/src/plugins/coreplugin/documentmanager.cpp b/src/plugins/coreplugin/documentmanager.cpp
index d46044c8a3..13698bb50f 100644
--- a/src/plugins/coreplugin/documentmanager.cpp
+++ b/src/plugins/coreplugin/documentmanager.cpp
@@ -30,7 +30,6 @@
#include <utils/globalfilechangeblocker.h>
#include <utils/hostosinfo.h>
#include <utils/mimeutils.h>
-#include <utils/optional.h>
#include <utils/pathchooser.h>
#include <utils/qtcassert.h>
#include <utils/reloadpromptutils.h>
@@ -52,6 +51,8 @@
#include <QStringList>
#include <QTimer>
+#include <optional>
+
static const bool kUseProjectsDirectoryDefault = true;
static Q_LOGGING_CATEGORY(log, "qtc.core.documentmanager", QtWarningMsg)
@@ -1131,7 +1132,7 @@ void DocumentManager::checkForReload()
QStringList filesToDiff;
for (IDocument *document : qAsConst(changedIDocuments)) {
IDocument::ChangeTrigger trigger = IDocument::TriggerInternal;
- optional<IDocument::ChangeType> type;
+ std::optional<IDocument::ChangeType> type;
bool changed = false;
// find out the type & behavior from the two possible files
// behavior is internal if all changes are expected (and none removed)
diff --git a/src/plugins/coreplugin/editormanager/documentmodel.cpp b/src/plugins/coreplugin/editormanager/documentmodel.cpp
index e0f2723ac3..512939911c 100644
--- a/src/plugins/coreplugin/editormanager/documentmodel.cpp
+++ b/src/plugins/coreplugin/editormanager/documentmodel.cpp
@@ -203,14 +203,14 @@ QIcon DocumentModelPrivate::pinnedIcon()
return icon;
}
-Utils::optional<int> DocumentModelPrivate::indexOfFilePath(const Utils::FilePath &filePath) const
+std::optional<int> DocumentModelPrivate::indexOfFilePath(const Utils::FilePath &filePath) const
{
if (filePath.isEmpty())
- return Utils::nullopt;
+ return std::nullopt;
const FilePath fixedPath = DocumentManager::filePathKey(filePath, DocumentManager::ResolveLinks);
const int index = m_entries.indexOf(m_entryByFixedPath.value(fixedPath));
if (index < 0)
- return Utils::nullopt;
+ return std::nullopt;
return index;
}
@@ -233,13 +233,13 @@ void DocumentModelPrivate::removeDocument(int idx)
delete entry;
}
-Utils::optional<int> DocumentModelPrivate::indexOfDocument(IDocument *document) const
+std::optional<int> DocumentModelPrivate::indexOfDocument(IDocument *document) const
{
const int index = Utils::indexOf(m_entries, [&document](DocumentModel::Entry *entry) {
return entry->document == document;
});
if (index < 0)
- return Utils::nullopt;
+ return std::nullopt;
return index;
}
@@ -320,7 +320,7 @@ QVariant DocumentModelPrivate::data(const QModelIndex &index, int role) const
void DocumentModelPrivate::itemChanged(IDocument *document)
{
- const Utils::optional<int> idx = indexOfDocument(document);
+ const std::optional<int> idx = indexOfDocument(document);
if (!idx)
return;
const FilePath fixedPath = DocumentManager::filePathKey(document->filePath(),
@@ -582,12 +582,12 @@ QList<IEditor *> DocumentModel::editorsForDocuments(const QList<IDocument *> &do
return result;
}
-Utils::optional<int> DocumentModel::indexOfDocument(IDocument *document)
+std::optional<int> DocumentModel::indexOfDocument(IDocument *document)
{
return d->indexOfDocument(document);
}
-Utils::optional<int> DocumentModel::indexOfFilePath(const Utils::FilePath &filePath)
+std::optional<int> DocumentModel::indexOfFilePath(const Utils::FilePath &filePath)
{
return d->indexOfFilePath(filePath);
}
@@ -638,14 +638,14 @@ int DocumentModel::entryCount()
return d->m_entries.count();
}
-Utils::optional<int> DocumentModel::rowOfDocument(IDocument *document)
+std::optional<int> DocumentModel::rowOfDocument(IDocument *document)
{
if (!document)
return 0 /*<no document>*/;
- const Utils::optional<int> index = indexOfDocument(document);
+ const std::optional<int> index = indexOfDocument(document);
if (index)
return *index + 1/*correction for <no document>*/;
- return Utils::nullopt;
+ return std::nullopt;
}
QList<DocumentModel::Entry *> DocumentModel::entries()
diff --git a/src/plugins/coreplugin/editormanager/documentmodel.h b/src/plugins/coreplugin/editormanager/documentmodel.h
index eb0c21f429..5918ab350a 100644
--- a/src/plugins/coreplugin/editormanager/documentmodel.h
+++ b/src/plugins/coreplugin/editormanager/documentmodel.h
@@ -7,7 +7,8 @@
#include <utils/filepath.h>
#include <utils/id.h>
-#include <utils/optional.h>
+
+#include <optional>
QT_BEGIN_NAMESPACE
class QAbstractItemModel;
@@ -52,12 +53,12 @@ public:
};
static Entry *entryAtRow(int row);
- static Utils::optional<int> rowOfDocument(IDocument *document);
+ static std::optional<int> rowOfDocument(IDocument *document);
static int entryCount();
static QList<Entry *> entries();
- static Utils::optional<int> indexOfDocument(IDocument *document);
- static Utils::optional<int> indexOfFilePath(const Utils::FilePath &filePath);
+ static std::optional<int> indexOfDocument(IDocument *document);
+ static std::optional<int> indexOfFilePath(const Utils::FilePath &filePath);
static Entry *entryForDocument(IDocument *document);
static Entry *entryForFilePath(const Utils::FilePath &filePath);
static QList<IDocument *> openedDocuments();
diff --git a/src/plugins/coreplugin/editormanager/documentmodel_p.h b/src/plugins/coreplugin/editormanager/documentmodel_p.h
index ae4c2f98e0..560dd0d0bd 100644
--- a/src/plugins/coreplugin/editormanager/documentmodel_p.h
+++ b/src/plugins/coreplugin/editormanager/documentmodel_p.h
@@ -36,8 +36,8 @@ public:
void addEntry(DocumentModel::Entry *entry);
void removeDocument(int idx);
- Utils::optional<int> indexOfFilePath(const Utils::FilePath &filePath) const;
- Utils::optional<int> indexOfDocument(IDocument *document) const;
+ std::optional<int> indexOfFilePath(const Utils::FilePath &filePath) const;
+ std::optional<int> indexOfDocument(IDocument *document) const;
bool disambiguateDisplayNames(DocumentModel::Entry *entry);
diff --git a/src/plugins/coreplugin/editormanager/openeditorsview.cpp b/src/plugins/coreplugin/editormanager/openeditorsview.cpp
index 1a74a527d0..87e4174d2f 100644
--- a/src/plugins/coreplugin/editormanager/openeditorsview.cpp
+++ b/src/plugins/coreplugin/editormanager/openeditorsview.cpp
@@ -53,7 +53,7 @@ void OpenEditorsWidget::updateCurrentItem(IEditor *editor)
clearSelection();
return;
}
- const Utils::optional<int> index = DocumentModel::indexOfDocument(editor->document());
+ const std::optional<int> index = DocumentModel::indexOfDocument(editor->document());
if (QTC_GUARD(index))
setCurrentIndex(m_model->index(index.value(), 0));
selectionModel()->select(currentIndex(),
diff --git a/src/plugins/coreplugin/editortoolbar.cpp b/src/plugins/coreplugin/editortoolbar.cpp
index 76f10ba15e..e7aaa2a51e 100644
--- a/src/plugins/coreplugin/editortoolbar.cpp
+++ b/src/plugins/coreplugin/editortoolbar.cpp
@@ -296,7 +296,7 @@ void EditorToolBar::setMenuProvider(const EditorToolBar::MenuProvider &provider)
void EditorToolBar::setCurrentEditor(IEditor *editor)
{
IDocument *document = editor ? editor->document() : nullptr;
- const Utils::optional<int> index = DocumentModel::rowOfDocument(document);
+ const std::optional<int> index = DocumentModel::rowOfDocument(document);
if (QTC_GUARD(index))
d->m_editorList->setCurrentIndex(*index);
diff --git a/src/plugins/coreplugin/externaltool.cpp b/src/plugins/coreplugin/externaltool.cpp
index 6c774b36af..d00d7e572b 100644
--- a/src/plugins/coreplugin/externaltool.cpp
+++ b/src/plugins/coreplugin/externaltool.cpp
@@ -159,7 +159,7 @@ Id ExternalTool::baseEnvironmentProviderId() const
Environment ExternalTool::baseEnvironment() const
{
if (m_baseEnvironmentProviderId.isValid()) {
- const optional<EnvironmentProvider> provider = EnvironmentProvider::provider(
+ const std::optional<EnvironmentProvider> provider = EnvironmentProvider::provider(
m_baseEnvironmentProviderId.name());
if (provider && provider->environment)
return provider->environment();
diff --git a/src/plugins/coreplugin/find/searchresultitem.h b/src/plugins/coreplugin/find/searchresultitem.h
index 3c6400128d..fe6cedbacb 100644
--- a/src/plugins/coreplugin/find/searchresultitem.h
+++ b/src/plugins/coreplugin/find/searchresultitem.h
@@ -7,12 +7,13 @@
#include <utils/filepath.h>
#include <utils/hostosinfo.h>
-#include <utils/optional.h>
#include <QIcon>
#include <QStringList>
#include <QVariant>
+#include <optional>
+
namespace Core {
namespace Search {
@@ -106,9 +107,9 @@ public:
bool selectForReplacement() const { return m_selectForReplacement; }
void setSelectForReplacement(bool select) { m_selectForReplacement = select; }
- Utils::optional<QString> containingFunctionName() const { return m_containingFunctionName; }
+ std::optional<QString> containingFunctionName() const { return m_containingFunctionName; }
- void setContainingFunctionName(Utils::optional<QString> containingFunctionName)
+ void setContainingFunctionName(std::optional<QString> containingFunctionName)
{
m_containingFunctionName = std::move(containingFunctionName);
}
@@ -122,7 +123,7 @@ private:
bool m_useTextEditorFont = false;
bool m_selectForReplacement = true;
SearchResultColor::Style m_style = SearchResultColor::Style::Default;
- Utils::optional<QString> m_containingFunctionName;
+ std::optional<QString> m_containingFunctionName;
};
} // namespace Core
diff --git a/src/plugins/coreplugin/helpitem.h b/src/plugins/coreplugin/helpitem.h
index 79aa913324..8efab6467d 100644
--- a/src/plugins/coreplugin/helpitem.h
+++ b/src/plugins/coreplugin/helpitem.h
@@ -5,12 +5,11 @@
#include "core_global.h"
-#include <utils/optional.h>
-
#include <QString>
#include <QUrl>
#include <QVariant>
+#include <optional>
#include <vector>
namespace Core {
@@ -70,8 +69,8 @@ private:
QStringList m_helpIds;
QString m_docMark;
Category m_category = Unknown;
- mutable Utils::optional<Links> m_helpLinks; // cached help links
- mutable Utils::optional<QString> m_firstParagraph;
+ mutable std::optional<Links> m_helpLinks; // cached help links
+ mutable std::optional<QString> m_firstParagraph;
mutable QString m_keyword;
mutable bool m_isFuzzyMatch = false;
};
diff --git a/src/plugins/coreplugin/idocument.cpp b/src/plugins/coreplugin/idocument.cpp
index 1f828bfd24..8add39dfe0 100644
--- a/src/plugins/coreplugin/idocument.cpp
+++ b/src/plugins/coreplugin/idocument.cpp
@@ -6,13 +6,13 @@
#include <utils/filepath.h>
#include <utils/infobar.h>
#include <utils/minimizableinfobars.h>
-#include <utils/optional.h>
#include <utils/qtcassert.h>
#include <QFile>
#include <QFileInfo>
#include <memory>
+#include <optional>
/*!
\class Core::IDocument
@@ -209,7 +209,7 @@ public:
Utils::InfoBar *infoBar = nullptr;
std::unique_ptr<MinimizableInfoBars> minimizableInfoBars;
Id id;
- optional<bool> fileIsReadOnly;
+ std::optional<bool> fileIsReadOnly;
bool temporary = false;
bool hasWriteWarning = false;
bool restored = false;
diff --git a/src/plugins/coreplugin/locator/ilocatorfilter.h b/src/plugins/coreplugin/locator/ilocatorfilter.h
index 90564eed0b..993d49495b 100644
--- a/src/plugins/coreplugin/locator/ilocatorfilter.h
+++ b/src/plugins/coreplugin/locator/ilocatorfilter.h
@@ -7,13 +7,14 @@
#include <utils/filepath.h>
#include <utils/id.h>
-#include <utils/optional.h>
#include <QFutureInterface>
#include <QIcon>
#include <QMetaType>
#include <QVariant>
+#include <optional>
+
namespace Core {
class ILocatorFilter;
@@ -45,8 +46,10 @@ struct LocatorFilterEntry
LocatorFilterEntry() = default;
- LocatorFilterEntry(ILocatorFilter *fromFilter, const QString &name, const QVariant &data,
- Utils::optional<QIcon> icon = Utils::nullopt)
+ LocatorFilterEntry(ILocatorFilter *fromFilter,
+ const QString &name,
+ const QVariant &data,
+ std::optional<QIcon> icon = std::nullopt)
: filter(fromFilter)
, displayName(name)
, internalData(data)
@@ -64,7 +67,7 @@ struct LocatorFilterEntry
/* can be used by the filter to save more information about the entry */
QVariant internalData;
/* icon to display along with the entry */
- Utils::optional<QIcon> displayIcon;
+ std::optional<QIcon> displayIcon;
/* file path, if the entry is related to a file, is used e.g. for resolving a file icon */
Utils::FilePath filePath;
/* highlighting support */
diff --git a/src/plugins/coreplugin/locator/locatorwidget.h b/src/plugins/coreplugin/locator/locatorwidget.h
index 63b34f3405..ef6a25e8f6 100644
--- a/src/plugins/coreplugin/locator/locatorwidget.h
+++ b/src/plugins/coreplugin/locator/locatorwidget.h
@@ -6,13 +6,13 @@
#include "locator.h"
#include <extensionsystem/iplugin.h>
-#include <utils/optional.h>
#include <QFutureWatcher>
#include <QPointer>
#include <QWidget>
#include <functional>
+#include <optional>
QT_BEGIN_NAMESPACE
class QAbstractItemModel;
@@ -94,7 +94,7 @@ private:
bool m_possibleToolTipRequest = false;
QWidget *m_progressIndicator = nullptr;
QTimer m_showProgressTimer;
- Utils::optional<int> m_rowRequestedForAccept;
+ std::optional<int> m_rowRequestedForAccept;
QPointer<QWidget> m_previousFocusWidget;
};
diff --git a/src/plugins/coreplugin/loggingmanager.cpp b/src/plugins/coreplugin/loggingmanager.cpp
index 5f2fadfb9d..4a3f392d4c 100644
--- a/src/plugins/coreplugin/loggingmanager.cpp
+++ b/src/plugins/coreplugin/loggingmanager.cpp
@@ -75,9 +75,9 @@ static bool parseLine(const QString &line, FilterRuleSpec *filterRule)
filterRule->category = categoryName;
if (match.capturedLength(2) == 0)
- filterRule->level = Utils::nullopt;
+ filterRule->level = std::nullopt;
else
- filterRule->level = Utils::make_optional(parseLevel(match.captured(2).mid(1)));
+ filterRule->level = std::make_optional(parseLevel(match.captured(2).mid(1)));
const QString enabled = parts.at(1);
if (enabled == "true" || enabled == "false") {
diff --git a/src/plugins/coreplugin/loggingmanager.h b/src/plugins/coreplugin/loggingmanager.h
index a323527476..9a2108051d 100644
--- a/src/plugins/coreplugin/loggingmanager.h
+++ b/src/plugins/coreplugin/loggingmanager.h
@@ -3,20 +3,20 @@
#pragma once
-#include <utils/optional.h>
-
#include <QColor>
#include <QLoggingCategory>
#include <QMap>
#include <QObject>
+#include <optional>
+
namespace Core {
namespace Internal {
struct FilterRuleSpec
{
QString category;
- Utils::optional<QtMsgType> level;
+ std::optional<QtMsgType> level;
bool enabled;
};
diff --git a/src/plugins/coreplugin/systemsettings.cpp b/src/plugins/coreplugin/systemsettings.cpp
index 663f447063..bdb480ffc3 100644
--- a/src/plugins/coreplugin/systemsettings.cpp
+++ b/src/plugins/coreplugin/systemsettings.cpp
@@ -319,7 +319,7 @@ public:
m_environmentChanges = CorePlugin::environmentChanges();
updateEnvironmentChangesLabel();
connect(environmentButton, &QPushButton::clicked, this, [this, environmentButton] {
- Utils::optional<EnvironmentItems> changes
+ std::optional<EnvironmentItems> changes
= Utils::EnvironmentDialog::getEnvironmentItems(environmentButton,
m_environmentChanges);
if (!changes)
diff --git a/src/plugins/coreplugin/vcsmanager.cpp b/src/plugins/coreplugin/vcsmanager.cpp
index 0e944683c3..3e070950d9 100644
--- a/src/plugins/coreplugin/vcsmanager.cpp
+++ b/src/plugins/coreplugin/vcsmanager.cpp
@@ -15,7 +15,6 @@
#include <utils/algorithm.h>
#include <utils/fileutils.h>
#include <utils/infobar.h>
-#include <utils/optional.h>
#include <utils/qtcassert.h>
#include <vcsbase/vcsbaseconstants.h>
@@ -27,6 +26,8 @@
#include <QFileInfo>
#include <QMessageBox>
+#include <optional>
+
using namespace Utils;
namespace Core {
@@ -57,14 +58,14 @@ public:
QString topLevel;
};
- Utils::optional<VcsInfo> findInCache(const QString &dir) const
+ std::optional<VcsInfo> findInCache(const QString &dir) const
{
- QTC_ASSERT(QDir(dir).isAbsolute(), return Utils::nullopt);
- QTC_ASSERT(!dir.endsWith(QLatin1Char('/')), return Utils::nullopt);
- QTC_ASSERT(QDir::fromNativeSeparators(dir) == dir, return Utils::nullopt);
+ QTC_ASSERT(QDir(dir).isAbsolute(), return std::nullopt);
+ QTC_ASSERT(!dir.endsWith(QLatin1Char('/')), return std::nullopt);
+ QTC_ASSERT(QDir::fromNativeSeparators(dir) == dir, return std::nullopt);
const auto it = m_cachedMatches.constFind(dir);
- return it == m_cachedMatches.constEnd() ? Utils::nullopt : Utils::make_optional(it.value());
+ return it == m_cachedMatches.constEnd() ? std::nullopt : std::make_optional(it.value());
}
void clearCache()
diff --git a/src/plugins/coreplugin/welcomepagehelper.h b/src/plugins/coreplugin/welcomepagehelper.h
index 4a57b1f1a6..e6351e7273 100644
--- a/src/plugins/coreplugin/welcomepagehelper.h
+++ b/src/plugins/coreplugin/welcomepagehelper.h
@@ -6,14 +6,14 @@
#include "core_global.h"
#include "iwelcomepage.h"
-#include <utils/optional.h>
-
#include <QElapsedTimer>
#include <QPointer>
#include <QSortFilterProxyModel>
#include <QStyledItemDelegate>
#include <QListView>
+#include <optional>
+
namespace Utils { class FancyLineEdit; }
namespace Core {
@@ -43,7 +43,7 @@ protected:
void leaveEvent(QEvent *) final;
};
-using OptModelIndex = Utils::optional<QModelIndex>;
+using OptModelIndex = std::optional<QModelIndex>;
class CORE_EXPORT ListItem
{
diff --git a/src/plugins/cppeditor/compileroptionsbuilder_test.cpp b/src/plugins/cppeditor/compileroptionsbuilder_test.cpp
index 523a3c9a2d..a2de9d9c81 100644
--- a/src/plugins/cppeditor/compileroptionsbuilder_test.cpp
+++ b/src/plugins/cppeditor/compileroptionsbuilder_test.cpp
@@ -81,7 +81,7 @@ public:
QStringList extraFlags;
bool isMsvc2015 = false;
- Utils::optional<CompilerOptionsBuilder> compilerOptionsBuilder;
+ std::optional<CompilerOptionsBuilder> compilerOptionsBuilder;
private:
ProjectPart::ConstPtr projectPart;
diff --git a/src/plugins/cppeditor/cppcodemodelsettings.cpp b/src/plugins/cppeditor/cppcodemodelsettings.cpp
index cea4de6a7c..15280ef2a6 100644
--- a/src/plugins/cppeditor/cppcodemodelsettings.cpp
+++ b/src/plugins/cppeditor/cppcodemodelsettings.cpp
@@ -194,7 +194,7 @@ bool ClangdSettings::hardwareFulfillsRequirements()
instance().m_data.haveCheckedHardwareReqirements = true;
instance().saveSettings();
const quint64 minRam = quint64(12) * 1024 * 1024 * 1024;
- const Utils::optional<quint64> totalRam = Utils::HostOsInfo::totalMemoryInstalledInBytes();
+ const std::optional<quint64> totalRam = Utils::HostOsInfo::totalMemoryInstalledInBytes();
return !totalRam || *totalRam >= minRam;
}
diff --git a/src/plugins/cppeditor/cppcodestylesettings.cpp b/src/plugins/cppeditor/cppcodestylesettings.cpp
index 2fc9df0c11..31344ad52a 100644
--- a/src/plugins/cppeditor/cppcodestylesettings.cpp
+++ b/src/plugins/cppeditor/cppcodestylesettings.cpp
@@ -210,7 +210,7 @@ static void configureOverviewWithCodeStyleSettings(CPlusPlus::Overview &overview
CPlusPlus::Overview CppCodeStyleSettings::currentProjectCodeStyleOverview()
{
CPlusPlus::Overview overview;
- const Utils::optional<CppCodeStyleSettings> codeStyleSettings = currentProjectCodeStyle();
+ const std::optional<CppCodeStyleSettings> codeStyleSettings = currentProjectCodeStyle();
configureOverviewWithCodeStyleSettings(overview,
codeStyleSettings.value_or(currentGlobalCodeStyle()));
return overview;
diff --git a/src/plugins/cppeditor/cppcodestylesettings.h b/src/plugins/cppeditor/cppcodestylesettings.h
index 9b36aeddb1..cf763ddde0 100644
--- a/src/plugins/cppeditor/cppcodestylesettings.h
+++ b/src/plugins/cppeditor/cppcodestylesettings.h
@@ -5,10 +5,10 @@
#include "cppeditor_global.h"
-#include <utils/optional.h>
-
#include <QVariantMap>
+#include <optional>
+
namespace CPlusPlus { class Overview; }
namespace TextEditor { class TabSettings; }
namespace ProjectExplorer { class Project; }
diff --git a/src/plugins/cppeditor/cppquickfixes.cpp b/src/plugins/cppeditor/cppquickfixes.cpp
index 1bd8bda761..c2c91acec7 100644
--- a/src/plugins/cppeditor/cppquickfixes.cpp
+++ b/src/plugins/cppeditor/cppquickfixes.cpp
@@ -3346,7 +3346,7 @@ void InsertDefsFromDecls::match(const CppQuickFixInterface &interface, QuickFixO
namespace {
-Utils::optional<FullySpecifiedType> getFirstTemplateParameter(const Name *name)
+std::optional<FullySpecifiedType> getFirstTemplateParameter(const Name *name)
{
if (const QualifiedNameId *qualifiedName = name->asQualifiedNameId())
return getFirstTemplateParameter(qualifiedName->name());
@@ -3358,7 +3358,7 @@ Utils::optional<FullySpecifiedType> getFirstTemplateParameter(const Name *name)
return {};
}
-Utils::optional<FullySpecifiedType> getFirstTemplateParameter(Type *type)
+std::optional<FullySpecifiedType> getFirstTemplateParameter(Type *type)
{
if (NamedType *namedType = type->asNamedType())
return getFirstTemplateParameter(namedType->name());
@@ -3366,7 +3366,7 @@ Utils::optional<FullySpecifiedType> getFirstTemplateParameter(Type *type)
return {};
}
-Utils::optional<FullySpecifiedType> getFirstTemplateParameter(FullySpecifiedType type)
+std::optional<FullySpecifiedType> getFirstTemplateParameter(FullySpecifiedType type)
{
return getFirstTemplateParameter(type.type());
}
@@ -3870,7 +3870,7 @@ void GetterSetterRefactoringHelper::performGeneration(ExistingGetterSetterData d
getSetTemplate.replacePlaceholders(data.memberVariableName, parameterName);
using Pattern = CppQuickFixSettings::GetterSetterTemplate;
- Utils::optional<FullySpecifiedType> returnTypeTemplateParameter;
+ std::optional<FullySpecifiedType> returnTypeTemplateParameter;
if (getSetTemplate.returnTypeTemplate.has_value()) {
QString returnTypeTemplate = getSetTemplate.returnTypeTemplate.value();
if (returnTypeTemplate.contains(Pattern::TEMPLATE_PARAMETER_PATTERN)) {
diff --git a/src/plugins/cppeditor/cppquickfixsettings.h b/src/plugins/cppeditor/cppquickfixsettings.h
index 78032ab51d..0ac2ed91f8 100644
--- a/src/plugins/cppeditor/cppquickfixsettings.h
+++ b/src/plugins/cppeditor/cppquickfixsettings.h
@@ -3,11 +3,10 @@
#pragma once
-#include <utils/optional.h>
-
#include <QString>
#include <QStringList>
+#include <optional>
#include <vector>
QT_BEGIN_NAMESPACE
@@ -48,7 +47,7 @@ public:
QString assignment = "<cur> = <new>";
const static inline QString TYPE_PATTERN = "<type>";
const static inline QString TEMPLATE_PARAMETER_PATTERN = "<T>";
- Utils::optional<QString> returnTypeTemplate;
+ std::optional<QString> returnTypeTemplate;
void replacePlaceholders(QString currentValueVariableName, QString newValueVariableName);
};
diff --git a/src/plugins/cppeditor/projectinfo_test.cpp b/src/plugins/cppeditor/projectinfo_test.cpp
index b2ea784135..de1807c1fd 100644
--- a/src/plugins/cppeditor/projectinfo_test.cpp
+++ b/src/plugins/cppeditor/projectinfo_test.cpp
@@ -513,7 +513,7 @@ public:
user("/projectb/user_path"),
user("/project/user_path")};
- Utils::optional<HeaderPathFilter> filter;
+ std::optional<HeaderPathFilter> filter;
private:
ProjectPart::ConstPtr projectPart;
diff --git a/src/plugins/debugger/debuggerengine.h b/src/plugins/debugger/debuggerengine.h
index ad752a778e..0ed1bb3ef5 100644
--- a/src/plugins/debugger/debuggerengine.h
+++ b/src/plugins/debugger/debuggerengine.h
@@ -175,7 +175,7 @@ public:
const Utils::MacroExpander *macroExpander = nullptr;
- Utils::optional<int> exitCode = {};
+ std::optional<int> exitCode = {};
// For Debugger testing.
int testCase = 0;
diff --git a/src/plugins/debugger/peripheralregisterhandler.cpp b/src/plugins/debugger/peripheralregisterhandler.cpp
index f1ea47802a..4d9a8341d8 100644
--- a/src/plugins/debugger/peripheralregisterhandler.cpp
+++ b/src/plugins/debugger/peripheralregisterhandler.cpp
@@ -543,8 +543,8 @@ PeripheralRegisterHandler::PeripheralRegisterHandler(DebuggerEngine *engine)
static void handleField(QXmlStreamReader &in, PeripheralRegister &reg)
{
PeripheralRegisterField fld;
- Utils::optional<int> from;
- Utils::optional<int> to;
+ std::optional<int> from;
+ std::optional<int> to;
while (in.readNextStartElement()) {
const auto elementName = in.name();
if (elementName == QLatin1String(kName)) {
diff --git a/src/plugins/docker/dockerapi.cpp b/src/plugins/docker/dockerapi.cpp
index e9ef889107..6371757dac 100644
--- a/src/plugins/docker/dockerapi.cpp
+++ b/src/plugins/docker/dockerapi.cpp
@@ -62,7 +62,7 @@ void DockerApi::checkCanConnect(bool async)
if (!lk.owns_lock())
return;
- m_dockerDaemonAvailable = nullopt;
+ m_dockerDaemonAvailable = std::nullopt;
emit dockerDaemonAvailableChanged();
auto future = Utils::runAsync([lk = std::move(lk), this] {
@@ -88,16 +88,16 @@ void DockerApi::recheckDockerDaemon()
s_instance->checkCanConnect();
}
-Utils::optional<bool> DockerApi::dockerDaemonAvailable(bool async)
+std::optional<bool> DockerApi::dockerDaemonAvailable(bool async)
{
if (!m_dockerDaemonAvailable.has_value())
checkCanConnect(async);
return m_dockerDaemonAvailable;
}
-Utils::optional<bool> DockerApi::isDockerDaemonAvailable(bool async)
+std::optional<bool> DockerApi::isDockerDaemonAvailable(bool async)
{
- QTC_ASSERT(s_instance, return nullopt);
+ QTC_ASSERT(s_instance, return std::nullopt);
return s_instance->dockerDaemonAvailable(async);
}
diff --git a/src/plugins/docker/dockerapi.h b/src/plugins/docker/dockerapi.h
index 1834c995d4..990b06a76a 100644
--- a/src/plugins/docker/dockerapi.h
+++ b/src/plugins/docker/dockerapi.h
@@ -7,11 +7,12 @@
#include <utils/filepath.h>
#include <utils/guard.h>
-#include <utils/optional.h>
#include <QMutex>
#include <QObject>
+#include <optional>
+
namespace Docker::Internal {
class DockerApi : public QObject
@@ -31,13 +32,13 @@ signals:
void dockerDaemonAvailableChanged();
public:
- Utils::optional<bool> dockerDaemonAvailable(bool async = true);
- static Utils::optional<bool> isDockerDaemonAvailable(bool async = true);
+ std::optional<bool> dockerDaemonAvailable(bool async = true);
+ static std::optional<bool> isDockerDaemonAvailable(bool async = true);
private:
Utils::FilePath dockerClient();
- Utils::optional<bool> m_dockerDaemonAvailable;
+ std::optional<bool> m_dockerDaemonAvailable;
QMutex m_daemonCheckGuard;
DockerSettings *m_settings;
};
diff --git a/src/plugins/docker/dockerdevicewidget.cpp b/src/plugins/docker/dockerdevicewidget.cpp
index 48b96cfd0a..aab25aa362 100644
--- a/src/plugins/docker/dockerdevicewidget.cpp
+++ b/src/plugins/docker/dockerdevicewidget.cpp
@@ -194,7 +194,7 @@ DockerDeviceWidget::DockerDeviceWidget(const IDevice::Ptr &device)
void DockerDeviceWidget::updateDaemonStateTexts()
{
- Utils::optional<bool> daemonState = DockerApi::instance()->dockerDaemonAvailable();
+ std::optional<bool> daemonState = DockerApi::instance()->dockerDaemonAvailable();
if (!daemonState.has_value()) {
m_daemonReset->setIcon(Icons::INFO.icon());
m_daemonState->setText(Tr::tr("Daemon state not evaluated."));
diff --git a/src/plugins/docker/dockerplugin.h b/src/plugins/docker/dockerplugin.h
index 7c3d5bd2d5..bbe8776622 100644
--- a/src/plugins/docker/dockerplugin.h
+++ b/src/plugins/docker/dockerplugin.h
@@ -7,7 +7,7 @@
#include <extensionsystem/iplugin.h>
-#include <utils/optional.h>
+#include <optional>
namespace Docker::Internal {
diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index 7374c7203a..fa52d2aba2 100644
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -36,7 +36,6 @@
#include "fakevimactions.h"
#include "fakevimtr.h"
-#include <utils/optional.h>
#include <utils/qtcprocess.h>
#include <QDebug>
@@ -67,6 +66,7 @@
#include <climits>
#include <ctype.h>
#include <functional>
+#include <optional>
//#define DEBUG_KEY 1
#if DEBUG_KEY
@@ -2400,7 +2400,7 @@ public:
// If empty, cx{motion} will store the range defined by {motion} here.
// If non-empty, cx{motion} replaces the {motion} with selectText(*exchangeData)
- Utils::optional<Range> exchangeRange;
+ std::optional<Range> exchangeRange;
bool surroundUpperCaseS; // True for yS and cS, false otherwise
QString surroundFunction; // Used for storing the function name provided to ys{motion}f
diff --git a/src/plugins/fakevim/fakevimplugin.cpp b/src/plugins/fakevim/fakevimplugin.cpp
index cf9ae29401..58a1be54e7 100644
--- a/src/plugins/fakevim/fakevimplugin.cpp
+++ b/src/plugins/fakevim/fakevimplugin.cpp
@@ -2080,7 +2080,7 @@ int FakeVimPluginPrivate::currentFile() const
{
IEditor *editor = EditorManager::currentEditor();
if (editor) {
- const Utils::optional<int> index = DocumentModel::indexOfDocument(editor->document());
+ const std::optional<int> index = DocumentModel::indexOfDocument(editor->document());
if (QTC_GUARD(index))
return index.value();
}
diff --git a/src/plugins/git/branchmodel.cpp b/src/plugins/git/branchmodel.cpp
index d81b2d2117..94983d7f87 100644
--- a/src/plugins/git/branchmodel.cpp
+++ b/src/plugins/git/branchmodel.cpp
@@ -726,17 +726,17 @@ void BranchModel::setOldBranchesIncluded(bool value)
d->oldBranchesIncluded = value;
}
-Utils::optional<QString> BranchModel::remoteName(const QModelIndex &idx) const
+std::optional<QString> BranchModel::remoteName(const QModelIndex &idx) const
{
const BranchNode *remotesNode = d->rootNode->children.at(RemoteBranches);
const BranchNode *node = indexToNode(idx);
if (!node)
- return Utils::nullopt;
+ return std::nullopt;
if (node == remotesNode)
return QString();
if (node->parent == remotesNode)
return node->name;
- return Utils::nullopt;
+ return std::nullopt;
}
void BranchModel::refreshCurrentBranch()
diff --git a/src/plugins/git/branchmodel.h b/src/plugins/git/branchmodel.h
index 015f57b9aa..4fa8794a7b 100644
--- a/src/plugins/git/branchmodel.h
+++ b/src/plugins/git/branchmodel.h
@@ -4,11 +4,12 @@
#pragma once
#include <utils/filepath.h>
-#include <utils/optional.h>
#include <QAbstractListModel>
#include <QVariant>
+#include <optional>
+
namespace VcsBase { class VcsCommand; }
namespace Git {
@@ -63,7 +64,7 @@ public:
QModelIndex addBranch(const QString &name, bool track, const QModelIndex &trackedBranch);
void setRemoteTracking(const QModelIndex &trackingIndex);
void setOldBranchesIncluded(bool value);
- Utils::optional<QString> remoteName(const QModelIndex &idx) const;
+ std::optional<QString> remoteName(const QModelIndex &idx) const;
void refreshCurrentBranch();
private:
diff --git a/src/plugins/git/branchview.cpp b/src/plugins/git/branchview.cpp
index 200d6106ab..6c03b91d53 100644
--- a/src/plugins/git/branchview.cpp
+++ b/src/plugins/git/branchview.cpp
@@ -228,7 +228,7 @@ void BranchView::slotCustomContextMenu(const QPoint &point)
QMenu contextMenu;
contextMenu.addAction(tr("&Add..."), this, &BranchView::add);
- const Utils::optional<QString> remote = m_model->remoteName(index);
+ const std::optional<QString> remote = m_model->remoteName(index);
if (remote.has_value()) {
contextMenu.addAction(tr("&Fetch"), this, [this, &remote]() {
GitClient::instance()->fetch(m_repository, *remote);
diff --git a/src/plugins/help/litehtmlhelpviewer.cpp b/src/plugins/help/litehtmlhelpviewer.cpp
index 7e50a957a1..0e8a993901 100644
--- a/src/plugins/help/litehtmlhelpviewer.cpp
+++ b/src/plugins/help/litehtmlhelpviewer.cpp
@@ -244,7 +244,7 @@ bool LiteHtmlHelpViewer::eventFilter(QObject *src, QEvent *e)
return HelpViewer::eventFilter(src, e);
}
-void LiteHtmlHelpViewer::setSourceInternal(const QUrl &url, Utils::optional<int> vscroll)
+void LiteHtmlHelpViewer::setSourceInternal(const QUrl &url, std::optional<int> vscroll)
{
slotLoadStarted();
QUrl currentUrlWithoutFragment = m_viewer->url();
diff --git a/src/plugins/help/litehtmlhelpviewer.h b/src/plugins/help/litehtmlhelpviewer.h
index 3f8b231eda..5067f0a432 100644
--- a/src/plugins/help/litehtmlhelpviewer.h
+++ b/src/plugins/help/litehtmlhelpviewer.h
@@ -6,12 +6,12 @@
#include "helpviewer.h"
#include "openpagesmanager.h"
-#include <utils/optional.h>
-
#include <qlitehtmlwidget.h>
#include <QTextBrowser>
+#include <optional>
+
namespace Help {
namespace Internal {
@@ -54,7 +54,7 @@ public:
private:
void goForward(int count);
void goBackward(int count);
- void setSourceInternal(const QUrl &url, Utils::optional<int> vscroll = Utils::nullopt);
+ void setSourceInternal(const QUrl &url, std::optional<int> vscroll = std::nullopt);
void showContextMenu(const QPoint &pos, const QUrl &url);
struct HistoryItem
diff --git a/src/plugins/help/localhelpmanager.cpp b/src/plugins/help/localhelpmanager.cpp
index 7c9459149c..b395ebf2f7 100644
--- a/src/plugins/help/localhelpmanager.cpp
+++ b/src/plugins/help/localhelpmanager.cpp
@@ -27,7 +27,6 @@
#include <utils/algorithm.h>
#include <utils/environment.h>
#include <utils/hostosinfo.h>
-#include <utils/optional.h>
#include <utils/qtcassert.h>
#include <utils/stringutils.h>
@@ -36,6 +35,8 @@
#include <QHelpEngine>
#include <QMutexLocker>
+#include <optional>
+
using namespace Help::Internal;
static LocalHelpManager *m_instance = nullptr;
@@ -279,7 +280,7 @@ void LocalHelpManager::setLastSelectedTab(int index)
Core::ICore::settings()->setValueWithDefault(kLastSelectedTabKey, index, -1);
}
-static Utils::optional<HelpViewerFactory> backendForId(const QByteArray &id)
+static std::optional<HelpViewerFactory> backendForId(const QByteArray &id)
{
const QVector<HelpViewerFactory> factories = LocalHelpManager::viewerBackends();
const auto backend = std::find_if(std::begin(factories),
@@ -294,7 +295,7 @@ HelpViewerFactory LocalHelpManager::defaultViewerBackend()
{
const QString backend = Utils::qtcEnvironmentVariable("QTC_HELPVIEWER_BACKEND");
if (!backend.isEmpty()) {
- const Utils::optional<HelpViewerFactory> factory = backendForId(backend.toLatin1());
+ const std::optional<HelpViewerFactory> factory = backendForId(backend.toLatin1());
if (factory)
return *factory;
}
diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp
index 30f2567565..c86462bee4 100644
--- a/src/plugins/languageclient/client.cpp
+++ b/src/plugins/languageclient/client.cpp
@@ -511,7 +511,7 @@ void Client::initialize()
initRequest.setResponseCallback([this](const InitializeRequest::Response &initResponse){
d->initializeCallback(initResponse);
});
- if (Utils::optional<ResponseHandler> responseHandler = initRequest.responseHandler())
+ if (std::optional<ResponseHandler> responseHandler = initRequest.responseHandler())
d->m_responseHandlers[responseHandler->id] = responseHandler->callback;
// directly send content now otherwise the state check of sendContent would fail
@@ -590,7 +590,7 @@ void Client::openDocument(TextEditor::TextDocument *document)
d->openRequiredShadowDocuments(document);
const QString method(DidOpenTextDocumentNotification::methodName);
- if (Utils::optional<bool> registered = d->m_dynamicCapabilities.isRegistered(method)) {
+ if (std::optional<bool> registered = d->m_dynamicCapabilities.isRegistered(method)) {
if (!*registered)
return;
const TextDocumentRegistrationOptions option(
@@ -599,7 +599,7 @@ void Client::openDocument(TextEditor::TextDocument *document)
&& !option.filterApplies(filePath, Utils::mimeTypeForName(document->mimeType()))) {
return;
}
- } else if (Utils::optional<ServerCapabilities::TextDocumentSync> _sync
+ } else if (std::optional<ServerCapabilities::TextDocumentSync> _sync
= d->m_serverCapabilities.textDocumentSync()) {
if (auto options = std::get_if<TextDocumentSyncOptions>(&*_sync)) {
if (!options->openClose().value_or(true))
@@ -638,7 +638,7 @@ void Client::sendMessage(const JsonRpcMessage &message, SendDocUpdates sendUpdat
QTC_ASSERT(d->m_state == Initialized, return);
if (sendUpdates == SendDocUpdates::Send)
d->sendPostponedDocumentUpdates(semanticTokensSchedule);
- if (Utils::optional<ResponseHandler> responseHandler = message.responseHandler())
+ if (std::optional<ResponseHandler> responseHandler = message.responseHandler())
d->m_responseHandlers[responseHandler->id] = responseHandler->callback;
QString error;
if (!QTC_GUARD(message.isValid(&error)))
@@ -774,7 +774,7 @@ void ClientPrivate::requestDocumentHighlightsNow(TextEditor::TextEditorWidget *w
if (!option.filterApplies(widget->textDocument()->filePath()))
return;
} else {
- Utils::optional<std::variant<bool, WorkDoneProgressOptions>> provider
+ std::optional<std::variant<bool, WorkDoneProgressOptions>> provider
= m_serverCapabilities.documentHighlightProvider();
if (!provider.has_value())
return;
@@ -801,7 +801,7 @@ void ClientPrivate::requestDocumentHighlightsNow(TextEditor::TextEditorWidget *w
disconnect(connection);
const Id &id = TextEditor::TextEditorWidget::CodeSemanticsSelection;
QList<QTextEdit::ExtraSelection> selections;
- const Utils::optional<DocumentHighlightsResult> &result = response.result();
+ const std::optional<DocumentHighlightsResult> &result = response.result();
if (!result.has_value() || std::holds_alternative<std::nullptr_t>(*result)) {
widget->setExtraSelections(id, selections);
return;
@@ -983,7 +983,7 @@ void Client::documentContentsSaved(TextEditor::TextDocument *document)
bool send = true;
bool includeText = false;
const QString method(DidSaveTextDocumentNotification::methodName);
- if (Utils::optional<bool> registered = d->m_dynamicCapabilities.isRegistered(method)) {
+ if (std::optional<bool> registered = d->m_dynamicCapabilities.isRegistered(method)) {
send = *registered;
if (send) {
const TextDocumentSaveRegistrationOptions option(
@@ -994,10 +994,10 @@ void Client::documentContentsSaved(TextEditor::TextDocument *document)
includeText = option.includeText().value_or(includeText);
}
}
- } else if (Utils::optional<ServerCapabilities::TextDocumentSync> _sync
+ } else if (std::optional<ServerCapabilities::TextDocumentSync> _sync
= d->m_serverCapabilities.textDocumentSync()) {
if (auto options = std::get_if<TextDocumentSyncOptions>(&*_sync)) {
- if (Utils::optional<SaveOptions> saveOptions = options->save())
+ if (std::optional<SaveOptions> saveOptions = options->save())
includeText = saveOptions->includeText().value_or(includeText);
}
}
@@ -1019,7 +1019,7 @@ void Client::documentWillSave(Core::IDocument *document)
return;
bool send = false;
const QString method(WillSaveTextDocumentNotification::methodName);
- if (Utils::optional<bool> registered = d->m_dynamicCapabilities.isRegistered(method)) {
+ if (std::optional<bool> registered = d->m_dynamicCapabilities.isRegistered(method)) {
send = *registered;
if (send) {
const TextDocumentRegistrationOptions option(d->m_dynamicCapabilities.option(method));
@@ -1028,7 +1028,7 @@ void Client::documentWillSave(Core::IDocument *document)
Utils::mimeTypeForName(document->mimeType()));
}
}
- } else if (Utils::optional<ServerCapabilities::TextDocumentSync> _sync
+ } else if (std::optional<ServerCapabilities::TextDocumentSync> _sync
= d->m_serverCapabilities.textDocumentSync()) {
if (auto options = std::get_if<TextDocumentSyncOptions>(&*_sync))
send = options->willSave().value_or(send);
@@ -1051,7 +1051,7 @@ void Client::documentContentsChanged(TextEditor::TextDocument *document,
d->m_diagnosticManager->disableDiagnostics(document);
const QString method(DidChangeTextDocumentNotification::methodName);
TextDocumentSyncKind syncKind = d->m_serverCapabilities.textDocumentSyncKindHelper();
- if (Utils::optional<bool> registered = d->m_dynamicCapabilities.isRegistered(method)) {
+ if (std::optional<bool> registered = d->m_dynamicCapabilities.isRegistered(method)) {
syncKind = *registered ? TextDocumentSyncKind::Full : TextDocumentSyncKind::None;
if (syncKind != TextDocumentSyncKind::None) {
const TextDocumentChangeRegistrationOptions option(
@@ -1260,7 +1260,7 @@ void Client::requestCodeActions(const CodeActionRequest &request)
= request.params().value_or(CodeActionParams()).textDocument().uri().toFilePath();
const QString method(CodeActionRequest::methodName);
- if (Utils::optional<bool> registered = d->m_dynamicCapabilities.isRegistered(method)) {
+ if (std::optional<bool> registered = d->m_dynamicCapabilities.isRegistered(method)) {
if (!*registered)
return;
const TextDocumentRegistrationOptions option(
@@ -1280,9 +1280,9 @@ void Client::requestCodeActions(const CodeActionRequest &request)
void Client::handleCodeActionResponse(const CodeActionRequest::Response &response,
const DocumentUri &uri)
{
- if (const Utils::optional<CodeActionRequest::Response::Error> &error = response.error())
+ if (const std::optional<CodeActionRequest::Response::Error> &error = response.error())
log(*error);
- if (const Utils::optional<CodeActionResult> &result = response.result()) {
+ if (const std::optional<CodeActionResult> &result = response.result()) {
if (auto list = std::get_if<QList<std::variant<Command, CodeAction>>>(&*result)) {
QList<CodeAction> codeActions;
for (const std::variant<Command, CodeAction> &item : *list) {
@@ -1489,7 +1489,7 @@ bool Client::supportsDocumentSymbols(const TextEditor::TextDocument *doc) const
return !options.isValid()
|| options.filterApplies(doc->filePath(), Utils::mimeTypeForName(doc->mimeType()));
}
- const Utils::optional<std::variant<bool, WorkDoneProgressOptions>> &provider
+ const std::optional<std::variant<bool, WorkDoneProgressOptions>> &provider
= capabilities().documentSymbolProvider();
if (!provider.has_value())
return false;
@@ -1644,7 +1644,7 @@ LanguageClientValue<MessageActionItem> ClientPrivate::showMessageBox(
case Log: box->setIcon(QMessageBox::NoIcon); break;
}
QHash<QAbstractButton *, MessageActionItem> itemForButton;
- if (const Utils::optional<QList<MessageActionItem>> actions = message.actions()) {
+ if (const std::optional<QList<MessageActionItem>> actions = message.actions()) {
for (const MessageActionItem &action : *actions)
itemForButton.insert(box->addButton(action.title(), QMessageBox::InvalidRole), action);
}
@@ -1856,7 +1856,7 @@ void ClientPrivate::handleMethod(const QString &method, const MessageId &id, con
m_tokenSupport.refresh();
sendResponse(createDefaultResponse());
} else if (method == ProgressNotification::methodName) {
- if (Utils::optional<ProgressParams> params
+ if (std::optional<ProgressParams> params
= ProgressNotification(message.toJsonObject()).params()) {
if (!params->isValid())
q->log(invalidParamsErrorMessage(*params));
@@ -1917,8 +1917,8 @@ void Client::setDocumentChangeUpdateThreshold(int msecs)
void ClientPrivate::initializeCallback(const InitializeRequest::Response &initResponse)
{
QTC_ASSERT(m_state == Client::InitializeRequested, return);
- if (optional<ResponseError<InitializeError>> error = initResponse.error()) {
- if (Utils::optional<InitializeError> data = error->data()) {
+ if (std::optional<ResponseError<InitializeError>> error = initResponse.error()) {
+ if (std::optional<InitializeError> data = error->data()) {
if (data->retry()) {
const QString title(tr("Language Server \"%1\" Initialize Error").arg(m_displayName));
auto result = QMessageBox::warning(Core::ICore::dialogParent(),
@@ -1937,19 +1937,19 @@ void ClientPrivate::initializeCallback(const InitializeRequest::Response &initRe
emit q->finished();
return;
}
- if (const optional<InitializeResult> &result = initResponse.result()) {
+ if (const std::optional<InitializeResult> &result = initResponse.result()) {
if (!result->isValid()) { // continue on ill formed result
q->log(QJsonDocument(*result).toJson(QJsonDocument::Indented) + '\n'
+ tr("Initialize result is invalid."));
}
- const Utils::optional<ServerInfo> serverInfo = result->serverInfo();
+ const std::optional<ServerInfo> serverInfo = result->serverInfo();
if (serverInfo) {
if (!serverInfo->isValid()) {
q->log(QJsonDocument(*result).toJson(QJsonDocument::Indented) + '\n'
+ tr("Server Info is invalid."));
} else {
m_serverName = serverInfo->name();
- if (const Utils::optional<QString> version = serverInfo->version())
+ if (const std::optional<QString> version = serverInfo->version())
m_serverVersion = *version;
}
}
@@ -1981,7 +1981,7 @@ void ClientPrivate::initializeCallback(const InitializeRequest::Response &initRe
qCDebug(LOGLSPCLIENT) << "language server " << m_displayName << " initialized";
m_state = Client::Initialized;
q->sendMessage(InitializeNotification(InitializedParams()));
- Utils::optional<std::variant<bool, WorkDoneProgressOptions>> documentSymbolProvider
+ std::optional<std::variant<bool, WorkDoneProgressOptions>> documentSymbolProvider
= q->capabilities().documentSymbolProvider();
if (documentSymbolProvider.has_value()) {
if (!std::holds_alternative<bool>(*documentSymbolProvider)
@@ -2005,7 +2005,7 @@ void ClientPrivate::shutDownCallback(const ShutdownRequest::Response &shutdownRe
m_shutdownTimer.stop();
QTC_ASSERT(m_state == Client::ShutdownRequested, return);
QTC_ASSERT(m_clientInterface, return);
- if (optional<ShutdownRequest::Response::Error> error = shutdownResponse.error())
+ if (std::optional<ShutdownRequest::Response::Error> error = shutdownResponse.error())
q->log(*error);
// directly send content now otherwise the state check of sendContent would fail
sendMessageNow(ExitNotification());
diff --git a/src/plugins/languageclient/diagnosticmanager.cpp b/src/plugins/languageclient/diagnosticmanager.cpp
index 1cfedce9e7..8ec4cd117d 100644
--- a/src/plugins/languageclient/diagnosticmanager.cpp
+++ b/src/plugins/languageclient/diagnosticmanager.cpp
@@ -58,7 +58,7 @@ DiagnosticManager::~DiagnosticManager()
void DiagnosticManager::setDiagnostics(const DocumentUri &uri,
const QList<Diagnostic> &diagnostics,
- const Utils::optional<int> &version)
+ const std::optional<int> &version)
{
hideDiagnostics(uri.toFilePath());
m_diagnostics[uri] = {version, filteredDiagnostics(diagnostics)};
diff --git a/src/plugins/languageclient/diagnosticmanager.h b/src/plugins/languageclient/diagnosticmanager.h
index 64d9f74c1b..3898327619 100644
--- a/src/plugins/languageclient/diagnosticmanager.h
+++ b/src/plugins/languageclient/diagnosticmanager.h
@@ -32,7 +32,7 @@ public:
virtual void setDiagnostics(const LanguageServerProtocol::DocumentUri &uri,
const QList<LanguageServerProtocol::Diagnostic> &diagnostics,
- const Utils::optional<int> &version);
+ const std::optional<int> &version);
virtual void showDiagnostics(const LanguageServerProtocol::DocumentUri &uri, int version);
virtual void hideDiagnostics(const Utils::FilePath &filePath);
@@ -68,7 +68,7 @@ protected:
private:
struct VersionedDiagnostics
{
- Utils::optional<int> version;
+ std::optional<int> version;
QList<LanguageServerProtocol::Diagnostic> diagnostics;
};
QMap<LanguageServerProtocol::DocumentUri, VersionedDiagnostics> m_diagnostics;
diff --git a/src/plugins/languageclient/documentsymbolcache.cpp b/src/plugins/languageclient/documentsymbolcache.cpp
index 3f0abda89f..66c189a4b5 100644
--- a/src/plugins/languageclient/documentsymbolcache.cpp
+++ b/src/plugins/languageclient/documentsymbolcache.cpp
@@ -93,7 +93,7 @@ void DocumentSymbolCache::handleResponse(const DocumentUri &uri,
const DocumentSymbolsRequest::Response &response)
{
m_runningRequests.remove(uri);
- if (Utils::optional<DocumentSymbolsRequest::Response::Error> error = response.error()) {
+ if (std::optional<DocumentSymbolsRequest::Response::Error> error = response.error()) {
if (m_client)
m_client->log(*error);
}
diff --git a/src/plugins/languageclient/documentsymbolcache.h b/src/plugins/languageclient/documentsymbolcache.h
index ce17ccf363..3403b91e70 100644
--- a/src/plugins/languageclient/documentsymbolcache.h
+++ b/src/plugins/languageclient/documentsymbolcache.h
@@ -6,8 +6,6 @@
#include "languageclient_global.h"
#include "languageclientutils.h"
-#include "utils/optional.h"
-
#include <languageserverprotocol/languagefeatures.h>
#include <languageserverprotocol/lsptypes.h>
@@ -16,6 +14,8 @@
#include <QSet>
#include <QTimer>
+#include <optional>
+
namespace LanguageClient {
class Client;
diff --git a/src/plugins/languageclient/dynamiccapabilities.cpp b/src/plugins/languageclient/dynamiccapabilities.cpp
index 239e4df2c1..152792bb46 100644
--- a/src/plugins/languageclient/dynamiccapabilities.cpp
+++ b/src/plugins/languageclient/dynamiccapabilities.cpp
@@ -27,10 +27,10 @@ void DynamicCapabilities::unregisterCapability(const QList<Unregistration> &unre
}
}
-Utils::optional<bool> DynamicCapabilities::isRegistered(const QString &method) const
+std::optional<bool> DynamicCapabilities::isRegistered(const QString &method) const
{
if (!m_capability.contains(method))
- return Utils::nullopt;
+ return std::nullopt;
return m_capability[method].enabled();
}
diff --git a/src/plugins/languageclient/dynamiccapabilities.h b/src/plugins/languageclient/dynamiccapabilities.h
index 366df58547..47424d0edd 100644
--- a/src/plugins/languageclient/dynamiccapabilities.h
+++ b/src/plugins/languageclient/dynamiccapabilities.h
@@ -45,7 +45,7 @@ public:
void registerCapability(const QList<LanguageServerProtocol::Registration> &registrations);
void unregisterCapability(const QList<LanguageServerProtocol::Unregistration> &unregistrations);
- Utils::optional<bool> isRegistered(const QString &method) const;
+ std::optional<bool> isRegistered(const QString &method) const;
QJsonValue option(const QString &method) const { return m_capability.value(method).options(); }
QStringList registeredMethods() const;
diff --git a/src/plugins/languageclient/languageclientcompletionassist.cpp b/src/plugins/languageclient/languageclientcompletionassist.cpp
index 674248545f..6c10870842 100644
--- a/src/plugins/languageclient/languageclientcompletionassist.cpp
+++ b/src/plugins/languageclient/languageclientcompletionassist.cpp
@@ -402,7 +402,7 @@ void LanguageClientCompletionAssistProcessor::handleCompletionResponse(
if (auto error = response.error())
m_client->log(*error);
- const Utils::optional<CompletionResult> &result = response.result();
+ const std::optional<CompletionResult> &result = response.result();
if (!result || std::holds_alternative<std::nullptr_t>(*result)) {
setAsyncProposalAvailable(nullptr);
m_client->removeAssistProcessor(this);
@@ -464,7 +464,7 @@ bool LanguageClientCompletionAssistProvider::isActivationCharSequence(const QStr
}
void LanguageClientCompletionAssistProvider::setTriggerCharacters(
- const Utils::optional<QList<QString>> triggerChars)
+ const std::optional<QList<QString>> triggerChars)
{
m_activationCharSequenceLength = 0;
m_triggerChars = triggerChars.value_or(QList<QString>());
diff --git a/src/plugins/languageclient/languageclientcompletionassist.h b/src/plugins/languageclient/languageclientcompletionassist.h
index 08634cb156..e78d1b795e 100644
--- a/src/plugins/languageclient/languageclientcompletionassist.h
+++ b/src/plugins/languageclient/languageclientcompletionassist.h
@@ -10,11 +10,10 @@
#include <texteditor/codeassist/completionassistprovider.h>
#include <texteditor/codeassist/iassistprocessor.h>
-#include <utils/optional.h>
-
#include <QPointer>
#include <functional>
+#include <optional>
namespace TextEditor {
class IAssistProposal;
@@ -40,7 +39,7 @@ public:
bool isActivationCharSequence(const QString &sequence) const override;
bool isContinuationChar(const QChar &) const override { return true; }
- void setTriggerCharacters(const Utils::optional<QList<QString>> triggerChars);
+ void setTriggerCharacters(const std::optional<QList<QString>> triggerChars);
void setSnippetsGroup(const QString &group) { m_snippetsGroup = group; }
@@ -78,7 +77,7 @@ private:
QPointer<QTextDocument> m_document;
Utils::FilePath m_filePath;
QPointer<Client> m_client;
- Utils::optional<LanguageServerProtocol::MessageId> m_currentRequest;
+ std::optional<LanguageServerProtocol::MessageId> m_currentRequest;
QMetaObject::Connection m_postponedUpdateConnection;
const QString m_snippetsGroup;
int m_pos = -1;
diff --git a/src/plugins/languageclient/languageclientformatter.cpp b/src/plugins/languageclient/languageclientformatter.cpp
index f8800e72fe..774b0899de 100644
--- a/src/plugins/languageclient/languageclientformatter.cpp
+++ b/src/plugins/languageclient/languageclientformatter.cpp
@@ -55,7 +55,7 @@ QFutureWatcher<ChangeSet> *LanguageClientFormatter::format(
const FilePath &filePath = m_document->filePath();
const DynamicCapabilities dynamicCapabilities = m_client->dynamicCapabilities();
const QString method(DocumentRangeFormattingRequest::methodName);
- if (optional<bool> registered = dynamicCapabilities.isRegistered(method)) {
+ if (std::optional<bool> registered = dynamicCapabilities.isRegistered(method)) {
if (!*registered)
return nullptr;
const TextDocumentRegistrationOptions option(dynamicCapabilities.option(method).toObject());
@@ -64,7 +64,7 @@ QFutureWatcher<ChangeSet> *LanguageClientFormatter::format(
return nullptr;
}
} else {
- const Utils::optional<std::variant<bool, WorkDoneProgressOptions>> &provider
+ const std::optional<std::variant<bool, WorkDoneProgressOptions>> &provider
= m_client->capabilities().documentRangeFormattingProvider();
if (!provider.has_value())
return nullptr;
@@ -106,17 +106,18 @@ void LanguageClientFormatter::cancelCurrentRequest()
m_progress.reportFinished();
m_client->cancelRequest(*m_currentRequest);
m_ignoreCancel = false;
- m_currentRequest = nullopt;
+ m_currentRequest = std::nullopt;
}
}
void LanguageClientFormatter::handleResponse(const DocumentRangeFormattingRequest::Response &response)
{
- m_currentRequest = nullopt;
- if (const optional<DocumentRangeFormattingRequest::Response::Error> &error = response.error())
+ m_currentRequest = std::nullopt;
+ if (const std::optional<DocumentRangeFormattingRequest::Response::Error> &error = response
+ .error())
m_client->log(*error);
ChangeSet changeSet;
- if (optional<LanguageClientArray<TextEdit>> result = response.result()) {
+ if (std::optional<LanguageClientArray<TextEdit>> result = response.result()) {
if (!result->isNull())
changeSet = editsToChangeSet(result->toList(), m_document->document());
}
diff --git a/src/plugins/languageclient/languageclientformatter.h b/src/plugins/languageclient/languageclientformatter.h
index f02d8efe18..e61e749d27 100644
--- a/src/plugins/languageclient/languageclientformatter.h
+++ b/src/plugins/languageclient/languageclientformatter.h
@@ -31,7 +31,7 @@ private:
TextEditor::TextDocument *m_document; // not owned
bool m_ignoreCancel = false;
QFutureInterface<Utils::ChangeSet> m_progress;
- Utils::optional<LanguageServerProtocol::MessageId> m_currentRequest;
+ std::optional<LanguageServerProtocol::MessageId> m_currentRequest;
};
} // namespace LanguageClient
diff --git a/src/plugins/languageclient/languageclientfunctionhint.cpp b/src/plugins/languageclient/languageclientfunctionhint.cpp
index 895c26e2e2..ec180f4f05 100644
--- a/src/plugins/languageclient/languageclientfunctionhint.cpp
+++ b/src/plugins/languageclient/languageclientfunctionhint.cpp
@@ -144,7 +144,7 @@ bool FunctionHintAssistProvider::isContinuationChar(const QChar &/*c*/) const
}
void FunctionHintAssistProvider::setTriggerCharacters(
- const Utils::optional<QList<QString>> &triggerChars)
+ const std::optional<QList<QString>> &triggerChars)
{
m_triggerChars = triggerChars.value_or(QList<QString>());
for (const QString &trigger : qAsConst(m_triggerChars)) {
diff --git a/src/plugins/languageclient/languageclientfunctionhint.h b/src/plugins/languageclient/languageclientfunctionhint.h
index 0103760646..d5f11409e9 100644
--- a/src/plugins/languageclient/languageclientfunctionhint.h
+++ b/src/plugins/languageclient/languageclientfunctionhint.h
@@ -8,10 +8,11 @@
#include <languageserverprotocol/languagefeatures.h>
#include <texteditor/codeassist/completionassistprovider.h>
#include <texteditor/codeassist/iassistprocessor.h>
-#include <utils/optional.h>
#include <QPointer>
+#include <optional>
+
namespace TextEditor { class IAssistProposal; }
namespace LanguageClient {
@@ -32,7 +33,7 @@ public:
bool isActivationCharSequence(const QString &sequence) const override;
bool isContinuationChar(const QChar &c) const override;
- void setTriggerCharacters(const Utils::optional<QList<QString>> &triggerChars);
+ void setTriggerCharacters(const std::optional<QList<QString>> &triggerChars);
private:
QList<QString> m_triggerChars;
@@ -54,7 +55,7 @@ private:
const LanguageServerProtocol::SignatureHelpRequest::Response &response);
QPointer<Client> m_client;
- Utils::optional<LanguageServerProtocol::MessageId> m_currentRequest;
+ std::optional<LanguageServerProtocol::MessageId> m_currentRequest;
int m_pos = -1;
};
diff --git a/src/plugins/languageclient/languageclienthoverhandler.cpp b/src/plugins/languageclient/languageclienthoverhandler.cpp
index dc0fbeb2c6..9204a1ec04 100644
--- a/src/plugins/languageclient/languageclienthoverhandler.cpp
+++ b/src/plugins/languageclient/languageclienthoverhandler.cpp
@@ -43,7 +43,7 @@ void HoverHandler::setHelpItem(const LanguageServerProtocol::MessageId &msgId,
const Core::HelpItem &help)
{
if (msgId == m_response.id()) {
- if (Utils::optional<HoverResult> result = m_response.result()) {
+ if (std::optional<HoverResult> result = m_response.result()) {
if (auto hover = std::get_if<Hover>(&(*result)))
setContent(hover->content());
}
@@ -85,12 +85,12 @@ void HoverHandler::identifyMatch(TextEditor::TextEditorWidget *editorWidget,
if (m_preferDiagnostics && reportDiagnostics(cursor))
return;
- const Utils::optional<std::variant<bool, WorkDoneProgressOptions>> &provider
+ const std::optional<std::variant<bool, WorkDoneProgressOptions>> &provider
= m_client->capabilities().hoverProvider();
bool sendMessage = provider.has_value();
if (sendMessage && std::holds_alternative<bool>(*provider))
sendMessage = std::get<bool>(*provider);
- if (Utils::optional<bool> registered = m_client->dynamicCapabilities().isRegistered(
+ if (std::optional<bool> registered = m_client->dynamicCapabilities().isRegistered(
HoverRequest::methodName)) {
sendMessage = *registered;
if (sendMessage) {
@@ -119,11 +119,11 @@ void HoverHandler::identifyMatch(TextEditor::TextEditorWidget *editorWidget,
void HoverHandler::handleResponse(const HoverRequest::Response &response, const QTextCursor &cursor)
{
m_currentRequest.reset();
- if (Utils::optional<HoverRequest::Response::Error> error = response.error()) {
+ if (std::optional<HoverRequest::Response::Error> error = response.error()) {
if (m_client)
m_client->log(*error);
}
- if (Utils::optional<HoverResult> result = response.result()) {
+ if (std::optional<HoverResult> result = response.result()) {
if (auto hover = std::get_if<Hover>(&(*result))) {
if (m_helpItemProvider) {
m_response = response;
diff --git a/src/plugins/languageclient/languageclienthoverhandler.h b/src/plugins/languageclient/languageclienthoverhandler.h
index 6bf0eba015..08840d406f 100644
--- a/src/plugins/languageclient/languageclienthoverhandler.h
+++ b/src/plugins/languageclient/languageclienthoverhandler.h
@@ -48,7 +48,7 @@ private:
bool reportDiagnostics(const QTextCursor &cursor);
QPointer<Client> m_client;
- Utils::optional<LanguageServerProtocol::MessageId> m_currentRequest;
+ std::optional<LanguageServerProtocol::MessageId> m_currentRequest;
LanguageServerProtocol::DocumentUri m_uri;
LanguageServerProtocol::HoverRequest::Response m_response;
TextEditor::BaseHoverHandler::ReportPriority m_report;
diff --git a/src/plugins/languageclient/languageclientquickfix.cpp b/src/plugins/languageclient/languageclientquickfix.cpp
index a675b1dc77..62c32ad94b 100644
--- a/src/plugins/languageclient/languageclientquickfix.cpp
+++ b/src/plugins/languageclient/languageclientquickfix.cpp
@@ -27,9 +27,9 @@ void CodeActionQuickFixOperation::perform()
{
if (!m_client)
return;
- if (Utils::optional<WorkspaceEdit> edit = m_action.edit())
+ if (std::optional<WorkspaceEdit> edit = m_action.edit())
applyWorkspaceEdit(m_client, *edit);
- else if (Utils::optional<Command> command = m_action.command())
+ else if (std::optional<Command> command = m_action.command())
m_client->executeCommand(*command);
}
@@ -91,11 +91,11 @@ void LanguageClientQuickFixAssistProcessor::cancel()
void LanguageClientQuickFixAssistProcessor::handleCodeActionResponse(const CodeActionRequest::Response &response)
{
m_currentRequest.reset();
- if (const Utils::optional<CodeActionRequest::Response::Error> &error = response.error())
+ if (const std::optional<CodeActionRequest::Response::Error> &error = response.error())
m_client->log(*error);
m_client->removeAssistProcessor(this);
GenericProposal *proposal = nullptr;
- if (const Utils::optional<CodeActionResult> &result = response.result())
+ if (const std::optional<CodeActionResult> &result = response.result())
proposal = handleCodeActionResult(*result);
setAsyncProposalAvailable(proposal);
}
diff --git a/src/plugins/languageclient/languageclientquickfix.h b/src/plugins/languageclient/languageclientquickfix.h
index 7758472c58..6d2d9e5e26 100644
--- a/src/plugins/languageclient/languageclientquickfix.h
+++ b/src/plugins/languageclient/languageclientquickfix.h
@@ -79,7 +79,7 @@ private:
QSharedPointer<const TextEditor::AssistInterface> m_assistInterface;
Client *m_client = nullptr; // not owned
- Utils::optional<LanguageServerProtocol::MessageId> m_currentRequest;
+ std::optional<LanguageServerProtocol::MessageId> m_currentRequest;
};
} // namespace LanguageClient
diff --git a/src/plugins/languageclient/languageclientsymbolsupport.cpp b/src/plugins/languageclient/languageclientsymbolsupport.cpp
index ede1dad1cf..a813e3c895 100644
--- a/src/plugins/languageclient/languageclientsymbolsupport.cpp
+++ b/src/plugins/languageclient/languageclientsymbolsupport.cpp
@@ -42,7 +42,7 @@ static void sendTextDocumentPositionParamsRequest(Client *client,
else
sendMessage = supportedFile;
} else {
- const Utils::optional<std::variant<bool, WorkDoneProgressOptions>> &provider
+ const std::optional<std::variant<bool, WorkDoneProgressOptions>> &provider
= serverCapability.referencesProvider();
sendMessage = provider.has_value();
if (sendMessage && std::holds_alternative<bool>(*provider))
@@ -54,9 +54,9 @@ static void sendTextDocumentPositionParamsRequest(Client *client,
static void handleGotoDefinitionResponse(const GotoDefinitionRequest::Response &response,
Utils::LinkHandler callback,
- Utils::optional<Utils::Link> linkUnderCursor)
+ std::optional<Utils::Link> linkUnderCursor)
{
- if (Utils::optional<GotoResult> result = response.result()) {
+ if (std::optional<GotoResult> result = response.result()) {
if (std::holds_alternative<std::nullptr_t>(*result)) {
callback({});
} else if (auto ploc = std::get_if<Location>(&*result)) {
@@ -89,7 +89,7 @@ void SymbolSupport::findLinkAt(TextEditor::TextDocument *document,
if (!m_client->reachable())
return;
GotoDefinitionRequest request(generateDocPosParams(document, cursor));
- Utils::optional<Utils::Link> linkUnderCursor;
+ std::optional<Utils::Link> linkUnderCursor;
if (!resolveTarget) {
QTextCursor linkCursor = cursor;
linkCursor.select(QTextCursor::WordUnderCursor);
@@ -196,7 +196,7 @@ void SymbolSupport::handleFindReferencesResponse(const FindReferencesRequest::Re
}
}
-Utils::optional<MessageId> SymbolSupport::findUsages(
+std::optional<MessageId> SymbolSupport::findUsages(
TextEditor::TextDocument *document, const QTextCursor &cursor, const ResultHandler &handler)
{
if (!m_client->reachable())
@@ -278,11 +278,11 @@ void SymbolSupport::requestPrepareRename(const TextDocumentPositionParams &param
PrepareRenameRequest request(params);
request.setResponseCallback([this, params, placeholder](
const PrepareRenameRequest::Response &response) {
- const Utils::optional<PrepareRenameRequest::Response::Error> &error = response.error();
+ const std::optional<PrepareRenameRequest::Response::Error> &error = response.error();
if (error.has_value())
m_client->log(*error);
- const Utils::optional<PrepareRenameResult> &result = response.result();
+ const std::optional<PrepareRenameResult> &result = response.result();
if (result.has_value()) {
if (std::holds_alternative<PlaceHolderResult>(*result)) {
auto placeHolderResult = std::get<PlaceHolderResult>(*result);
@@ -372,11 +372,11 @@ void SymbolSupport::startRenameSymbol(const TextDocumentPositionParams &position
void SymbolSupport::handleRenameResponse(Core::SearchResult *search,
const RenameRequest::Response &response)
{
- const Utils::optional<PrepareRenameRequest::Response::Error> &error = response.error();
+ const std::optional<PrepareRenameRequest::Response::Error> &error = response.error();
if (error.has_value())
m_client->log(*error);
- const Utils::optional<WorkspaceEdit> &edits = response.result();
+ const std::optional<WorkspaceEdit> &edits = response.result();
if (edits.has_value()) {
search->addResults(generateReplaceItems(*edits), Core::SearchResult::AddOrdered);
search->additionalReplaceWidget()->setVisible(false);
diff --git a/src/plugins/languageclient/languageclientsymbolsupport.h b/src/plugins/languageclient/languageclientsymbolsupport.h
index 2494871ca4..33b99fa32a 100644
--- a/src/plugins/languageclient/languageclientsymbolsupport.h
+++ b/src/plugins/languageclient/languageclientsymbolsupport.h
@@ -33,7 +33,7 @@ public:
const bool resolveTarget);
using ResultHandler = std::function<void(const QList<LanguageServerProtocol::Location> &)>;
- Utils::optional<LanguageServerProtocol::MessageId> findUsages(
+ std::optional<LanguageServerProtocol::MessageId> findUsages(
TextEditor::TextDocument *document,
const QTextCursor &cursor,
const ResultHandler &handler = {});
diff --git a/src/plugins/languageclient/languageclientutils.cpp b/src/plugins/languageclient/languageclientutils.cpp
index 86d89e1fda..dbea480a70 100644
--- a/src/plugins/languageclient/languageclientutils.cpp
+++ b/src/plugins/languageclient/languageclientutils.cpp
@@ -170,17 +170,17 @@ void updateCodeActionRefactoringMarker(Client *client,
for (const CodeAction &action : actions) {
const QList<Diagnostic> &diagnostics = action.diagnostics().value_or(QList<Diagnostic>());
- if (Utils::optional<WorkspaceEdit> edit = action.edit()) {
+ if (std::optional<WorkspaceEdit> edit = action.edit()) {
if (diagnostics.isEmpty()) {
QList<TextEdit> edits;
- if (optional<QList<TextDocumentEdit>> documentChanges = edit->documentChanges()) {
+ if (std::optional<QList<TextDocumentEdit>> documentChanges = edit->documentChanges()) {
QList<TextDocumentEdit> changesForUri = Utils::filtered(
*documentChanges, [uri](const TextDocumentEdit &edit) {
return edit.textDocument().uri() == uri;
});
for (const TextDocumentEdit &edit : changesForUri)
edits << edit.edits();
- } else if (optional<WorkspaceEdit::Changes> localChanges = edit->changes()) {
+ } else if (std::optional<WorkspaceEdit::Changes> localChanges = edit->changes()) {
edits = (*localChanges)[uri];
}
for (const TextEdit &edit : qAsConst(edits))
diff --git a/src/plugins/languageclient/locatorfilter.cpp b/src/plugins/languageclient/locatorfilter.cpp
index 43c22d695e..6df5170a42 100644
--- a/src/plugins/languageclient/locatorfilter.cpp
+++ b/src/plugins/languageclient/locatorfilter.cpp
@@ -83,7 +83,7 @@ static Core::LocatorFilterEntry generateLocatorEntry(const SymbolInformation &in
Core::LocatorFilterEntry entry;
entry.filter = filter;
entry.displayName = info.name();
- if (Utils::optional<QString> container = info.containerName())
+ if (std::optional<QString> container = info.containerName())
entry.extraInfo = container.value_or(QString());
entry.displayIcon = symbolIcon(info.kind());
entry.internalData = QVariant::fromValue(info.location().toLink());
@@ -114,7 +114,7 @@ Core::LocatorFilterEntry DocumentLocatorFilter::generateLocatorEntry(
Core::LocatorFilterEntry entry;
entry.filter = this;
entry.displayName = info.name();
- if (Utils::optional<QString> detail = info.detail())
+ if (std::optional<QString> detail = info.detail())
entry.extraInfo = detail.value_or(QString());
entry.displayIcon = symbolIcon(info.kind());
const Position &pos = info.range().start();
@@ -255,7 +255,7 @@ void WorkspaceLocatorFilter::prepareSearch(const QString &entry,
continue;
if (!(force || client->locatorsEnabled()))
continue;
- Utils::optional<std::variant<bool, WorkDoneProgressOptions>> capability
+ std::optional<std::variant<bool, WorkDoneProgressOptions>> capability
= client->capabilities().workspaceSymbolProvider();
if (!capability.has_value())
continue;
diff --git a/src/plugins/languageclient/locatorfilter.h b/src/plugins/languageclient/locatorfilter.h
index 30381b39d4..afb8630795 100644
--- a/src/plugins/languageclient/locatorfilter.h
+++ b/src/plugins/languageclient/locatorfilter.h
@@ -66,7 +66,7 @@ private:
QMutex m_mutex;
QMetaObject::Connection m_updateSymbolsConnection;
QMetaObject::Connection m_resetSymbolsConnection;
- Utils::optional<LanguageServerProtocol::DocumentSymbolsResult> m_currentSymbols;
+ std::optional<LanguageServerProtocol::DocumentSymbolsResult> m_currentSymbols;
bool m_forced = false;
};
diff --git a/src/plugins/languageclient/lspinspector.h b/src/plugins/languageclient/lspinspector.h
index 4116764e4d..f515ef298c 100644
--- a/src/plugins/languageclient/lspinspector.h
+++ b/src/plugins/languageclient/lspinspector.h
@@ -31,8 +31,8 @@ public:
QString displayText() const;
private:
- mutable Utils::optional<LanguageServerProtocol::MessageId> m_id;
- mutable Utils::optional<QString> m_displayText;
+ mutable std::optional<LanguageServerProtocol::MessageId> m_id;
+ mutable std::optional<QString> m_displayText;
};
struct Capabilities
diff --git a/src/plugins/languageclient/progressmanager.cpp b/src/plugins/languageclient/progressmanager.cpp
index 8bb97afe7e..0f3580dcfb 100644
--- a/src/plugins/languageclient/progressmanager.cpp
+++ b/src/plugins/languageclient/progressmanager.cpp
@@ -77,7 +77,7 @@ void ProgressManager::reportProgress(const ProgressToken &token,
{
const LanguageClientProgress &progress = m_progress.value(token);
if (progress.progressInterface) {
- const Utils::optional<QString> &message = report.message();
+ const std::optional<QString> &message = report.message();
if (message.has_value()) {
progress.progressInterface->setSubtitle(*message);
const bool showSubtitle = !message->isEmpty();
@@ -85,7 +85,7 @@ void ProgressManager::reportProgress(const ProgressToken &token,
}
}
if (progress.futureInterface) {
- if (const Utils::optional<double> &percentage = report.percentage(); percentage.has_value())
+ if (const std::optional<double> &percentage = report.percentage(); percentage.has_value())
progress.futureInterface->setProgressValue(*percentage);
}
}
diff --git a/src/plugins/languageclient/semantichighlightsupport.cpp b/src/plugins/languageclient/semantichighlightsupport.cpp
index f700257477..e9f6429aca 100644
--- a/src/plugins/languageclient/semantichighlightsupport.cpp
+++ b/src/plugins/languageclient/semantichighlightsupport.cpp
@@ -323,7 +323,7 @@ SemanticRequestTypes SemanticTokenSupport::supportedSemanticRequests(TextDocumen
return SemanticRequestType::None;
return supportedRequests(dynamicCapabilities.option(dynamicMethod).toObject());
}
- if (Utils::optional<SemanticTokensOptions> provider = m_client->capabilities()
+ if (std::optional<SemanticTokensOptions> provider = m_client->capabilities()
.semanticTokensProvider()) {
return supportedRequests(*provider);
}
@@ -378,7 +378,7 @@ void SemanticTokenSupport::handleSemanticTokensDelta(
return;
for (const auto start = data.begin() + edit.start(); it < start; ++it)
newData.append(*it);
- if (const Utils::optional<QList<int>> editData = edit.data()) {
+ if (const std::optional<QList<int>> editData = edit.data()) {
newData.append(*editData);
qCDebug(LOGLSPHIGHLIGHT) << edit.start() << edit.deleteCount() << *editData;
} else {
diff --git a/src/plugins/languageclient/snippet.cpp b/src/plugins/languageclient/snippet.cpp
index 37d5cb9ff8..6cda93d2f6 100644
--- a/src/plugins/languageclient/snippet.cpp
+++ b/src/plugins/languageclient/snippet.cpp
@@ -141,7 +141,7 @@ SnippetParseResult parseSnippet(const QString &snippet)
ParsedSnippet result;
ParsedSnippet::Part currentPart;
- Utils::optional<QString> error;
+ std::optional<QString> error;
auto it = snippet.begin();
const auto end = snippet.end();
diff --git a/src/plugins/mesonprojectmanager/exewrappers/mesonwrapper.h b/src/plugins/mesonprojectmanager/exewrappers/mesonwrapper.h
index 023b118d86..72a7f13588 100644
--- a/src/plugins/mesonprojectmanager/exewrappers/mesonwrapper.h
+++ b/src/plugins/mesonprojectmanager/exewrappers/mesonwrapper.h
@@ -9,13 +9,13 @@
#include <utils/environment.h>
#include <utils/fileutils.h>
#include <utils/id.h>
-#include <utils/optional.h>
#include <utils/qtcprocess.h>
#include <QFile>
#include <QFileInfo>
#include <QTemporaryFile>
+#include <optional>
#include <tuple>
namespace MesonProjectManager {
@@ -78,7 +78,7 @@ public:
Command introspect(const Utils::FilePath &sourceDirectory) const;
- static inline Utils::optional<Utils::FilePath> find()
+ static inline std::optional<Utils::FilePath> find()
{
return ToolWrapper::findTool({"meson.py", "meson"});
}
diff --git a/src/plugins/mesonprojectmanager/exewrappers/ninjawrapper.h b/src/plugins/mesonprojectmanager/exewrappers/ninjawrapper.h
index 486068b29e..a67a436bf1 100644
--- a/src/plugins/mesonprojectmanager/exewrappers/ninjawrapper.h
+++ b/src/plugins/mesonprojectmanager/exewrappers/ninjawrapper.h
@@ -14,7 +14,7 @@ class NinjaWrapper final : public ToolWrapper
public:
using ToolWrapper::ToolWrapper;
- static inline Utils::optional<Utils::FilePath> find()
+ static inline std::optional<Utils::FilePath> find()
{
return ToolWrapper::findTool({"ninja", "ninja-build"});
}
diff --git a/src/plugins/mesonprojectmanager/exewrappers/toolwrapper.cpp b/src/plugins/mesonprojectmanager/exewrappers/toolwrapper.cpp
index 87102d28da..8e59b7d780 100644
--- a/src/plugins/mesonprojectmanager/exewrappers/toolwrapper.cpp
+++ b/src/plugins/mesonprojectmanager/exewrappers/toolwrapper.cpp
@@ -49,7 +49,7 @@ Version ToolWrapper::read_version(const Utils::FilePath &toolPath)
return {};
}
-Utils::optional<Utils::FilePath> ToolWrapper::findTool(const QStringList &exeNames)
+std::optional<Utils::FilePath> ToolWrapper::findTool(const QStringList &exeNames)
{
using namespace Utils;
Environment systemEnvironment = Environment::systemEnvironment();
@@ -58,7 +58,7 @@ Utils::optional<Utils::FilePath> ToolWrapper::findTool(const QStringList &exeNam
if (exe_path.exists())
return exe_path;
}
- return Utils::nullopt;
+ return std::nullopt;
}
} // namespace Internal
diff --git a/src/plugins/mesonprojectmanager/exewrappers/toolwrapper.h b/src/plugins/mesonprojectmanager/exewrappers/toolwrapper.h
index 3f3e59c82a..2700b1fa81 100644
--- a/src/plugins/mesonprojectmanager/exewrappers/toolwrapper.h
+++ b/src/plugins/mesonprojectmanager/exewrappers/toolwrapper.h
@@ -16,6 +16,8 @@
#include <QVariant>
#include <QVariantMap>
+#include <optional>
+
namespace MesonProjectManager {
namespace Internal {
@@ -64,7 +66,7 @@ public:
static Version read_version(const Utils::FilePath &toolPath);
- static Utils::optional<Utils::FilePath> findTool(const QStringList &exeNames);
+ static std::optional<Utils::FilePath> findTool(const QStringList &exeNames);
template<typename T>
friend QVariantMap toVariantMap(const T &);
diff --git a/src/plugins/mesonprojectmanager/machinefiles/machinefilemanager.cpp b/src/plugins/mesonprojectmanager/machinefiles/machinefilemanager.cpp
index 67169f0812..0bfb482049 100644
--- a/src/plugins/mesonprojectmanager/machinefiles/machinefilemanager.cpp
+++ b/src/plugins/mesonprojectmanager/machinefiles/machinefilemanager.cpp
@@ -9,13 +9,14 @@
#include <coreplugin/icore.h>
-#include <utils/optional.h>
#include <utils/qtcassert.h>
#include <QDir>
#include <QFile>
#include <QRegularExpression>
+#include <optional>
+
namespace MesonProjectManager {
namespace Internal {
diff --git a/src/plugins/mesonprojectmanager/mesoninfoparser/buildoptions.h b/src/plugins/mesonprojectmanager/mesoninfoparser/buildoptions.h
index bcc5cc220b..bde77dd723 100644
--- a/src/plugins/mesonprojectmanager/mesoninfoparser/buildoptions.h
+++ b/src/plugins/mesonprojectmanager/mesoninfoparser/buildoptions.h
@@ -4,7 +4,6 @@
#pragma once
#include <utils/fileutils.h>
-#include <utils/optional.h>
#include <QCheckBox>
#include <QComboBox>
@@ -13,6 +12,8 @@
#include <QSpinBox>
#include <QVariant>
+#include <optional>
+
namespace MesonProjectManager {
namespace Internal {
@@ -58,7 +59,7 @@ struct BuildOption
const QString name;
const QString section;
const QString description;
- const Utils::optional<QString> subproject;
+ const std::optional<QString> subproject;
virtual ~BuildOption() {}
virtual QVariant value() const = 0;
virtual QString valueStr() const = 0;
@@ -79,8 +80,8 @@ struct BuildOption
: name{name.contains(":") ? name.split(":").last() : name}
, section{section}
, description{description}
- , subproject{name.contains(":") ? Utils::optional<QString>(name.split(":").first())
- : Utils::nullopt}
+ , subproject{name.contains(":") ? std::optional<QString>(name.split(":").first())
+ : std::nullopt}
{}
}; // namespace Internal
diff --git a/src/plugins/mesonprojectmanager/mesoninfoparser/mesoninfoparser.h b/src/plugins/mesonprojectmanager/mesoninfoparser/mesoninfoparser.h
index 494a8acf2b..6833ea253e 100644
--- a/src/plugins/mesonprojectmanager/mesoninfoparser/mesoninfoparser.h
+++ b/src/plugins/mesonprojectmanager/mesoninfoparser/mesoninfoparser.h
@@ -12,7 +12,8 @@
#include "target.h"
#include <utils/fileutils.h>
-#include <utils/optional.h>
+
+#include <optional>
namespace MesonProjectManager {
namespace Internal {
@@ -26,7 +27,7 @@ struct Result
TargetsList targets;
BuildOptionsList buildOptions;
std::vector<Utils::FilePath> buildSystemFiles;
- Utils::optional<MesonInfo> mesonInfo;
+ std::optional<MesonInfo> mesonInfo;
};
inline Result parse(const QString &buildDir)
@@ -43,7 +44,7 @@ inline Result parse(const QByteArray &data)
return {TargetParser{json}.targetList(),
BuildOptionsParser{json}.takeBuildOptions(),
BuildSystemFilesParser{json}.files(),
- Utils::nullopt};
+ std::nullopt};
}
inline Result parse(QIODevice *introFile)
@@ -57,7 +58,7 @@ inline Result parse(QIODevice *introFile)
}
return {};
}
-inline Utils::optional<MesonInfo> mesonInfo(const QString &buildDir)
+inline std::optional<MesonInfo> mesonInfo(const QString &buildDir)
{
return InfoParser{buildDir}.info();
}
diff --git a/src/plugins/mesonprojectmanager/mesoninfoparser/parsers/buildsystemfilesparser.h b/src/plugins/mesonprojectmanager/mesoninfoparser/parsers/buildsystemfilesparser.h
index 0130906697..0856dac4ee 100644
--- a/src/plugins/mesonprojectmanager/mesoninfoparser/parsers/buildsystemfilesparser.h
+++ b/src/plugins/mesonprojectmanager/mesoninfoparser/parsers/buildsystemfilesparser.h
@@ -20,7 +20,7 @@ namespace Internal {
class BuildSystemFilesParser
{
std::vector<Utils::FilePath> m_files;
- static void appendFiles(const Utils::optional<QJsonArray> &arr, std::vector<Utils::FilePath> &dest)
+ static void appendFiles(const std::optional<QJsonArray> &arr, std::vector<Utils::FilePath> &dest)
{
if (arr)
std::transform(std::cbegin(*arr),
diff --git a/src/plugins/mesonprojectmanager/mesoninfoparser/parsers/common.h b/src/plugins/mesonprojectmanager/mesoninfoparser/parsers/common.h
index 67d79e0c85..7537acaa60 100644
--- a/src/plugins/mesonprojectmanager/mesoninfoparser/parsers/common.h
+++ b/src/plugins/mesonprojectmanager/mesoninfoparser/parsers/common.h
@@ -3,14 +3,14 @@
#pragma once
-#include <utils/optional.h>
-
#include <QFile>
#include <QJsonArray>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonValue>
+#include <optional>
+
namespace MesonProjectManager {
namespace Internal {
@@ -45,7 +45,7 @@ inline QJsonObject load<QJsonObject>(const QJsonValueRef &ref)
}
template<typename T>
-inline Utils::optional<T> load(const QString &jsonFile)
+inline std::optional<T> load(const QString &jsonFile)
{
QFile js(jsonFile);
js.open(QIODevice::ReadOnly | QIODevice::Text);
@@ -53,40 +53,40 @@ inline Utils::optional<T> load(const QString &jsonFile)
auto data = js.readAll();
return load<T>(QJsonDocument::fromJson(data));
}
- return Utils::nullopt;
+ return std::nullopt;
}
template<typename T>
-inline Utils::optional<T> get(const QJsonObject &obj, const QString &name);
+inline std::optional<T> get(const QJsonObject &obj, const QString &name);
template<>
-inline Utils::optional<QJsonArray> get<QJsonArray>(const QJsonObject &obj, const QString &name)
+inline std::optional<QJsonArray> get<QJsonArray>(const QJsonObject &obj, const QString &name)
{
if (obj.contains(name)) {
auto child = obj[name];
if (child.isArray())
return child.toArray();
}
- return Utils::nullopt;
+ return std::nullopt;
}
template<>
-inline Utils::optional<QJsonObject> get<QJsonObject>(const QJsonObject &obj, const QString &name)
+inline std::optional<QJsonObject> get<QJsonObject>(const QJsonObject &obj, const QString &name)
{
if (obj.contains(name)) {
auto child = obj[name];
if (child.isObject())
return child.toObject();
}
- return Utils::nullopt;
+ return std::nullopt;
}
template<typename T, typename... Strings>
-inline Utils::optional<T> get(const QJsonObject &obj, const QString &firstPath, const Strings &...path)
+inline std::optional<T> get(const QJsonObject &obj, const QString &firstPath, const Strings &...path)
{
if (obj.contains(firstPath))
return get<T>(obj[firstPath].toObject(), path...);
- return Utils::nullopt;
+ return std::nullopt;
}
} // namespace Internal
diff --git a/src/plugins/mesonprojectmanager/mesoninfoparser/target.h b/src/plugins/mesonprojectmanager/mesoninfoparser/target.h
index e55d7b5d35..8b5b5a4b8c 100644
--- a/src/plugins/mesonprojectmanager/mesoninfoparser/target.h
+++ b/src/plugins/mesonprojectmanager/mesoninfoparser/target.h
@@ -5,11 +5,12 @@
#include <utils/algorithm.h>
#include <utils/fileutils.h>
-#include <utils/optional.h>
#include <QDir>
#include <QVariant>
+#include <optional>
+
namespace MesonProjectManager {
namespace Internal {
@@ -56,7 +57,7 @@ struct Target
const QString definedIn;
const QStringList fileName;
const QStringList extraFiles;
- const Utils::optional<QString> subproject;
+ const std::optional<QString> subproject;
const SourceGroupList sources;
static inline QString fullName(const Utils::FilePath &srcDir, const Target &target)
@@ -104,8 +105,8 @@ struct Target
, definedIn{QDir::cleanPath(definedIn)}
, fileName{cleanPath(std::move(fileName))}
, extraFiles{cleanPath(std::move(extraFiles))}
- , subproject{subproject.isNull() ? Utils::nullopt
- : Utils::optional<QString>{std::move(subproject)}}
+ , subproject{subproject.isNull() ? std::nullopt
+ : std::optional<QString>{std::move(subproject)}}
, sources{std::move(sources)}
{}
};
diff --git a/src/plugins/mesonprojectmanager/project/buildoptions/optionsmodel/buildoptionsmodel.h b/src/plugins/mesonprojectmanager/project/buildoptions/optionsmodel/buildoptionsmodel.h
index 8ee9fe1fef..895a346ff4 100644
--- a/src/plugins/mesonprojectmanager/project/buildoptions/optionsmodel/buildoptionsmodel.h
+++ b/src/plugins/mesonprojectmanager/project/buildoptions/optionsmodel/buildoptionsmodel.h
@@ -49,7 +49,7 @@ public:
inline const QString &name() const { return m_currentValue->name; }
inline const QString &section() const { return m_currentValue->section; }
inline const QString &description() const { return m_currentValue->description; }
- inline const Utils::optional<QString> &subproject() const
+ inline const std::optional<QString> &subproject() const
{
return m_currentValue->subproject;
};
diff --git a/src/plugins/mesonprojectmanager/project/mesonprojectparser.cpp b/src/plugins/mesonprojectmanager/project/mesonprojectparser.cpp
index dae9b03355..28073d3478 100644
--- a/src/plugins/mesonprojectmanager/project/mesonprojectparser.cpp
+++ b/src/plugins/mesonprojectmanager/project/mesonprojectparser.cpp
@@ -13,12 +13,13 @@
#include <projectexplorer/projectexplorer.h>
#include <utils/fileinprojectfinder.h>
-#include <utils/optional.h>
#include <utils/runextensions.h>
#include <QStringList>
#include <QTextStream>
+#include <optional>
+
namespace MesonProjectManager {
namespace Internal {
@@ -29,21 +30,21 @@ struct CompilerArgs
ProjectExplorer::Macros macros;
};
-inline Utils::optional<QString> extractValueIfMatches(const QString &arg,
+inline std::optional<QString> extractValueIfMatches(const QString &arg,
const QStringList &candidates)
{
for (const auto &flag : candidates) {
if (arg.startsWith(flag))
return arg.mid(flag.length());
}
- return Utils::nullopt;
+ return std::nullopt;
}
-inline Utils::optional<QString> extractInclude(const QString &arg)
+inline std::optional<QString> extractInclude(const QString &arg)
{
return extractValueIfMatches(arg, {"-I", "/I", "-isystem", "-imsvc", "/imsvc"});
}
-inline Utils::optional<ProjectExplorer::Macro> extractMacro(const QString &arg)
+inline std::optional<ProjectExplorer::Macro> extractMacro(const QString &arg)
{
auto define = extractValueIfMatches(arg, {"-D", "/D"});
if (define)
@@ -51,7 +52,7 @@ inline Utils::optional<ProjectExplorer::Macro> extractMacro(const QString &arg)
auto undef = extractValueIfMatches(arg, {"-U", "/U"});
if (undef)
return ProjectExplorer::Macro(undef->toLatin1(), ProjectExplorer::MacroType::Undefine);
- return Utils::nullopt;
+ return std::nullopt;
}
CompilerArgs splitArgs(const QStringList &args)
diff --git a/src/plugins/mesonprojectmanager/project/outputparsers/ninjaparser.cpp b/src/plugins/mesonprojectmanager/project/outputparsers/ninjaparser.cpp
index 61ebb101d4..763459f538 100644
--- a/src/plugins/mesonprojectmanager/project/outputparsers/ninjaparser.cpp
+++ b/src/plugins/mesonprojectmanager/project/outputparsers/ninjaparser.cpp
@@ -10,7 +10,7 @@ namespace Internal {
NinjaParser::NinjaParser() {}
-Utils::optional<int> NinjaParser::extractProgress(const QString &line)
+std::optional<int> NinjaParser::extractProgress(const QString &line)
{
auto progress = m_progressRegex.match(line);
if (progress.hasMatch()) {
@@ -18,7 +18,7 @@ Utils::optional<int> NinjaParser::extractProgress(const QString &line)
auto pos = progress.captured(1).toInt();
return pos * 100 / total;
}
- return Utils::nullopt;
+ return std::nullopt;
}
void NinjaParser::setSourceDirectory(const Utils::FilePath &sourceDir)
diff --git a/src/plugins/mesonprojectmanager/project/outputparsers/ninjaparser.h b/src/plugins/mesonprojectmanager/project/outputparsers/ninjaparser.h
index 6acd265ba6..b77e130526 100644
--- a/src/plugins/mesonprojectmanager/project/outputparsers/ninjaparser.h
+++ b/src/plugins/mesonprojectmanager/project/outputparsers/ninjaparser.h
@@ -6,10 +6,10 @@
#include <projectexplorer/ioutputparser.h>
#include <projectexplorer/task.h>
-#include <utils/optional.h>
-
#include <QRegularExpression>
+#include <optional>
+
namespace MesonProjectManager {
namespace Internal {
@@ -17,7 +17,7 @@ class NinjaParser final : public ProjectExplorer::OutputTaskParser
{
Q_OBJECT
QRegularExpression m_progressRegex{R"(^\[(\d+)/(\d+)\])"};
- Utils::optional<int> extractProgress(const QString &line);
+ std::optional<int> extractProgress(const QString &line);
public:
NinjaParser();
diff --git a/src/plugins/mesonprojectmanager/project/projecttree/mesonprojectnodes.h b/src/plugins/mesonprojectmanager/project/projecttree/mesonprojectnodes.h
index 80e4064f8f..d248807a80 100644
--- a/src/plugins/mesonprojectmanager/project/projecttree/mesonprojectnodes.h
+++ b/src/plugins/mesonprojectmanager/project/projecttree/mesonprojectnodes.h
@@ -34,7 +34,7 @@ class MesonFileNode : public ProjectExplorer::ProjectNode
public:
MesonFileNode(const Utils::FilePath &file);
bool showInSimpleTree() const final { return false; }
- Utils::optional<Utils::FilePath> visibleAfterAddFileAction() const override
+ std::optional<Utils::FilePath> visibleAfterAddFileAction() const override
{
return filePath().pathAppended("meson.build");
}
diff --git a/src/plugins/mesonprojectmanager/settings/tools/toolitemsettings.cpp b/src/plugins/mesonprojectmanager/settings/tools/toolitemsettings.cpp
index cac4180a3c..5492183a07 100644
--- a/src/plugins/mesonprojectmanager/settings/tools/toolitemsettings.cpp
+++ b/src/plugins/mesonprojectmanager/settings/tools/toolitemsettings.cpp
@@ -31,14 +31,14 @@ ToolItemSettings::~ToolItemSettings()
void ToolItemSettings::load(ToolTreeItem *item)
{
if (item) {
- m_currentId = Utils::nullopt;
+ m_currentId = std::nullopt;
ui->mesonNameLineEdit->setDisabled(item->isAutoDetected());
ui->mesonNameLineEdit->setText(item->name());
ui->mesonPathChooser->setDisabled(item->isAutoDetected());
ui->mesonPathChooser->setFilePath(item->executable());
m_currentId = item->id();
} else {
- m_currentId = Utils::nullopt;
+ m_currentId = std::nullopt;
}
}
diff --git a/src/plugins/mesonprojectmanager/settings/tools/toolitemsettings.h b/src/plugins/mesonprojectmanager/settings/tools/toolitemsettings.h
index faae7c1185..3d1407622f 100644
--- a/src/plugins/mesonprojectmanager/settings/tools/toolitemsettings.h
+++ b/src/plugins/mesonprojectmanager/settings/tools/toolitemsettings.h
@@ -5,10 +5,11 @@
#include <utils/id.h>
#include <utils/fileutils.h>
-#include <utils/optional.h>
#include <QWidget>
+#include <optional>
+
namespace MesonProjectManager {
namespace Internal {
@@ -29,7 +30,7 @@ public:
private:
Ui::ToolItemSettings *ui;
- Utils::optional<Utils::Id> m_currentId{Utils::nullopt};
+ std::optional<Utils::Id> m_currentId{std::nullopt};
};
} // namespace Internal
diff --git a/src/plugins/mesonprojectmanager/settings/tools/tooltreeitem.h b/src/plugins/mesonprojectmanager/settings/tools/tooltreeitem.h
index 4420f57571..8c02132510 100644
--- a/src/plugins/mesonprojectmanager/settings/tools/tooltreeitem.h
+++ b/src/plugins/mesonprojectmanager/settings/tools/tooltreeitem.h
@@ -8,12 +8,13 @@
#include <utils/fileutils.h>
#include <utils/id.h>
-#include <utils/optional.h>
#include <utils/treemodel.h>
#include <QCoreApplication>
#include <QString>
+#include <optional>
+
namespace MesonProjectManager {
namespace Internal {
diff --git a/src/plugins/projectexplorer/buildstep.h b/src/plugins/projectexplorer/buildstep.h
index 2aa7c4d336..79ae4a60bc 100644
--- a/src/plugins/projectexplorer/buildstep.h
+++ b/src/plugins/projectexplorer/buildstep.h
@@ -8,7 +8,6 @@
#include "buildconfiguration.h"
#include "projectexplorer_export.h"
-#include <utils/optional.h>
#include <utils/qtcassert.h>
#include <QWidget>
@@ -16,6 +15,7 @@
#include <atomic>
#include <functional>
#include <memory>
+#include <optional>
namespace Utils {
class Environment;
@@ -134,7 +134,7 @@ private:
bool m_widgetExpandedByDefault = true;
bool m_runInGuiThread = true;
bool m_addMacroExpander = false;
- Utils::optional<bool> m_wasExpanded;
+ std::optional<bool> m_wasExpanded;
std::function<QString()> m_summaryUpdater;
QString m_summaryText;
diff --git a/src/plugins/projectexplorer/gcctoolchain.cpp b/src/plugins/projectexplorer/gcctoolchain.cpp
index 9275072256..3461b7e7c4 100644
--- a/src/plugins/projectexplorer/gcctoolchain.cpp
+++ b/src/plugins/projectexplorer/gcctoolchain.cpp
@@ -469,7 +469,7 @@ ToolChain::MacroInspectionRunner GccToolChain::createMacroInspectionRunner() con
QStringList allFlags = platformCodeGenFlags + flags; // add only cxxflags is empty?
QStringList arguments = gccPredefinedMacrosOptions(lang) + filteredFlags(allFlags, true);
arguments = reinterpretOptions(arguments);
- const Utils::optional<MacroInspectionReport> cachedMacros = macroCache->check(arguments);
+ const std::optional<MacroInspectionReport> cachedMacros = macroCache->check(arguments);
if (cachedMacros)
return cachedMacros.value();
@@ -616,7 +616,7 @@ HeaderPaths GccToolChain::builtInHeaderPaths(const Utils::Environment &env,
if (!originalTargetTriple.isEmpty())
arguments << "-target" << originalTargetTriple;
- const Utils::optional<HeaderPaths> cachedPaths = headerCache->check(qMakePair(env, arguments));
+ const std::optional<HeaderPaths> cachedPaths = headerCache->check(qMakePair(env, arguments));
if (cachedPaths)
return cachedPaths.value();
diff --git a/src/plugins/projectexplorer/gcctoolchain.h b/src/plugins/projectexplorer/gcctoolchain.h
index 71df6ac75d..e17c79d3ec 100644
--- a/src/plugins/projectexplorer/gcctoolchain.h
+++ b/src/plugins/projectexplorer/gcctoolchain.h
@@ -11,10 +11,10 @@
#include "headerpath.h"
#include <utils/fileutils.h>
-#include <utils/optional.h>
#include <functional>
#include <memory>
+#include <optional>
namespace ProjectExplorer {
@@ -222,7 +222,7 @@ protected:
private:
// "resolved" on macOS from /usr/bin/clang(++) etc to <DeveloperDir>/usr/bin/clang(++)
// which is used for comparison with matchesCompileCommand
- mutable Utils::optional<Utils::FilePath> m_resolvedCompilerCommand;
+ mutable std::optional<Utils::FilePath> m_resolvedCompilerCommand;
QByteArray m_parentToolChainId;
QMetaObject::Connection m_mingwToolchainAddedConnection;
QMetaObject::Connection m_thisToolchainRemovedConnection;
diff --git a/src/plugins/projectexplorer/jsonwizard/jsonwizard.cpp b/src/plugins/projectexplorer/jsonwizard/jsonwizard.cpp
index 6dbfb6a78c..89fa5aed0c 100644
--- a/src/plugins/projectexplorer/jsonwizard/jsonwizard.cpp
+++ b/src/plugins/projectexplorer/jsonwizard/jsonwizard.cpp
@@ -493,7 +493,7 @@ void JsonWizard::openProjectForNode(Node *node)
}
QTC_ASSERT(projNode, return);
- Utils::optional<FilePath> projFilePath = projNode->visibleAfterAddFileAction();
+ std::optional<FilePath> projFilePath = projNode->visibleAfterAddFileAction();
if (projFilePath && !Core::EditorManager::openEditor(projFilePath.value())) {
auto errorMessage = QCoreApplication::translate("ProjectExplorer::JsonWizard",
diff --git a/src/plugins/projectexplorer/kit.cpp b/src/plugins/projectexplorer/kit.cpp
index e1ccfe35d1..9ea9c6606c 100644
--- a/src/plugins/projectexplorer/kit.cpp
+++ b/src/plugins/projectexplorer/kit.cpp
@@ -16,7 +16,6 @@
#include <utils/filepath.h>
#include <utils/icon.h>
#include <utils/macroexpander.h>
-#include <utils/optional.h>
#include <utils/qtcassert.h>
#include <utils/stringutils.h>
#include <utils/utilsicons.h>
@@ -26,6 +25,7 @@
#include <QUuid>
#include <numeric>
+#include <optional>
using namespace Core;
using namespace Utils;
@@ -118,7 +118,7 @@ public:
QHash<Id, QVariant> m_data;
QSet<Id> m_sticky;
QSet<Id> m_mutable;
- optional<QSet<Id>> m_irrelevantAspects;
+ std::optional<QSet<Id>> m_irrelevantAspects;
MacroExpander m_macroExpander;
};
diff --git a/src/plugins/projectexplorer/makestep.cpp b/src/plugins/projectexplorer/makestep.cpp
index b29c964206..0d918967a4 100644
--- a/src/plugins/projectexplorer/makestep.cpp
+++ b/src/plugins/projectexplorer/makestep.cpp
@@ -17,7 +17,6 @@
#include <utils/environment.h>
#include <utils/hostosinfo.h>
#include <utils/layoutbuilder.h>
-#include <utils/optional.h>
#include <utils/pathchooser.h>
#include <utils/qtcprocess.h>
#include <utils/utilsicons.h>
@@ -29,6 +28,8 @@
#include <QLineEdit>
#include <QThread>
+#include <optional>
+
using namespace Core;
using namespace Utils;
@@ -197,12 +198,12 @@ bool MakeStep::jobCountOverridesMakeflags() const
return m_overrideMakeflagsAspect->value();
}
-static Utils::optional<int> argsJobCount(const QString &str)
+static std::optional<int> argsJobCount(const QString &str)
{
const QStringList args = ProcessArgs::splitArgs(str, HostOsInfo::hostOs());
const int argIndex = Utils::indexOf(args, [](const QString &arg) { return arg.startsWith("-j"); });
if (argIndex == -1)
- return Utils::nullopt;
+ return std::nullopt;
QString arg = args.at(argIndex);
bool requireNumber = false;
// -j [4] as separate arguments (or no value)
@@ -217,8 +218,8 @@ static Utils::optional<int> argsJobCount(const QString &str)
bool ok = false;
const int res = arg.toInt(&ok);
if (!ok && requireNumber)
- return Utils::nullopt;
- return Utils::make_optional(ok && res > 0 ? res : 1000);
+ return std::nullopt;
+ return std::make_optional(ok && res > 0 ? res : 1000);
}
bool MakeStep::makeflagsJobCountMismatch() const
@@ -226,7 +227,7 @@ bool MakeStep::makeflagsJobCountMismatch() const
const Environment env = makeEnvironment();
if (!env.hasKey(MAKEFLAGS))
return false;
- Utils::optional<int> makeFlagsJobCount = argsJobCount(env.expandedValueForKey(MAKEFLAGS));
+ std::optional<int> makeFlagsJobCount = argsJobCount(env.expandedValueForKey(MAKEFLAGS));
return makeFlagsJobCount.has_value() && *makeFlagsJobCount != m_userJobCountAspect->value();
}
diff --git a/src/plugins/projectexplorer/msvctoolchain.cpp b/src/plugins/projectexplorer/msvctoolchain.cpp
index cbf4596599..e33c264ab4 100644
--- a/src/plugins/projectexplorer/msvctoolchain.cpp
+++ b/src/plugins/projectexplorer/msvctoolchain.cpp
@@ -15,7 +15,6 @@
#include <utils/algorithm.h>
#include <utils/environment.h>
#include <utils/hostosinfo.h>
-#include <utils/optional.h>
#include <utils/pathchooser.h>
#include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
@@ -39,6 +38,8 @@
#include <QComboBox>
#include <QFormLayout>
+#include <optional>
+
using namespace Utils;
#define KEY_ROOT "ProjectExplorer.MsvcToolChain."
@@ -200,7 +201,7 @@ static QString windowsProgramFilesDir()
return QDir::fromNativeSeparators(qtcEnvironmentVariable(programFilesC));
}
-static Utils::optional<VisualStudioInstallation> installationFromPathAndVersion(
+static std::optional<VisualStudioInstallation> installationFromPathAndVersion(
const QString &installationPath, const QVersionNumber &version)
{
QString vcVarsPath = QDir::fromNativeSeparators(installationPath);
@@ -215,7 +216,7 @@ static Utils::optional<VisualStudioInstallation> installationFromPathAndVersion(
if (!QFileInfo(vcVarsAllPath).isFile()) {
qWarning().noquote() << "Unable to find MSVC setup script "
<< QDir::toNativeSeparators(vcVarsPath) << " in version " << version;
- return Utils::nullopt;
+ return std::nullopt;
}
const QString versionString = version.toString();
@@ -229,7 +230,7 @@ static Utils::optional<VisualStudioInstallation> installationFromPathAndVersion(
}
// Detect build tools introduced with MSVC2017
-static Utils::optional<VisualStudioInstallation> detectCppBuildTools2017()
+static std::optional<VisualStudioInstallation> detectCppBuildTools2017()
{
const QString installPath = windowsProgramFilesDir()
+ "/Microsoft Visual Studio/2017/BuildTools";
@@ -237,7 +238,7 @@ static Utils::optional<VisualStudioInstallation> detectCppBuildTools2017()
const QString vcVarsAllPath = vcVarsPath + "/vcvarsall.bat";
if (!QFileInfo::exists(vcVarsAllPath))
- return Utils::nullopt;
+ return std::nullopt;
VisualStudioInstallation installation;
installation.path = installPath;
@@ -314,7 +315,7 @@ static QVector<VisualStudioInstallation> detectVisualStudioFromVsWhere(const QSt
continue;
}
const QString installationPath = value.toString();
- Utils::optional<VisualStudioInstallation> installation
+ std::optional<VisualStudioInstallation> installation
= installationFromPathAndVersion(installationPath, version);
if (installation)
@@ -341,7 +342,7 @@ static QVector<VisualStudioInstallation> detectVisualStudioFromRegistry()
if (!version.isNull()) {
const QString installationPath = fixRegistryPath(vsRegistry.value(vsName).toString());
- Utils::optional<VisualStudioInstallation> installation
+ std::optional<VisualStudioInstallation> installation
= installationFromPathAndVersion(installationPath, version);
if (installation)
result.append(*installation);
@@ -747,7 +748,7 @@ void MsvcToolChain::environmentModifications(
Utils::Environment outEnv;
QMap<QString, QString> envPairs;
Utils::EnvironmentItems diff;
- Utils::optional<QString> error = generateEnvironmentSettings(inEnv,
+ std::optional<QString> error = generateEnvironmentSettings(inEnv,
vcvarsBat,
varsBatArg,
envPairs);
@@ -1034,7 +1035,7 @@ ToolChain::MacroInspectionRunner MsvcToolChain::createMacroInspectionRunner() co
return hasFlagEffectOnMacros(arg);
});
- const Utils::optional<MacroInspectionReport> cachedMacros = macroCache->check(filteredFlags);
+ const std::optional<MacroInspectionReport> cachedMacros = macroCache->check(filteredFlags);
if (cachedMacros)
return cachedMacros.value();
@@ -2072,7 +2073,7 @@ void MsvcToolChain::cancelMsvcToolChainDetection()
envModThreadPool()->clear();
}
-Utils::optional<QString> MsvcToolChain::generateEnvironmentSettings(const Utils::Environment &env,
+std::optional<QString> MsvcToolChain::generateEnvironmentSettings(const Utils::Environment &env,
const QString &batchFile,
const QString &batchArgs,
QMap<QString, QString> &envPairs)
@@ -2163,7 +2164,7 @@ Utils::optional<QString> MsvcToolChain::generateEnvironmentSettings(const Utils:
}
}
- return Utils::nullopt;
+ return std::nullopt;
}
bool MsvcToolChainFactory::canCreate() const
diff --git a/src/plugins/projectexplorer/msvctoolchain.h b/src/plugins/projectexplorer/msvctoolchain.h
index febc281d0f..cfbacad57b 100644
--- a/src/plugins/projectexplorer/msvctoolchain.h
+++ b/src/plugins/projectexplorer/msvctoolchain.h
@@ -11,7 +11,8 @@
#include <QFutureWatcher>
#include <utils/environment.h>
-#include <utils/optional.h>
+
+#include <optional>
QT_FORWARD_DECLARE_CLASS(QLabel)
QT_FORWARD_DECLARE_CLASS(QComboBox)
@@ -78,7 +79,7 @@ public:
int priority() const override;
static void cancelMsvcToolChainDetection();
- static Utils::optional<QString> generateEnvironmentSettings(const Utils::Environment &env,
+ static std::optional<QString> generateEnvironmentSettings(const Utils::Environment &env,
const QString &batchFile,
const QString &batchArgs,
QMap<QString, QString> &envPairs);
@@ -109,7 +110,7 @@ protected:
struct GenerateEnvResult
{
- Utils::optional<QString> error;
+ std::optional<QString> error;
Utils::EnvironmentItems environmentItems;
};
static void environmentModifications(QFutureInterface<GenerateEnvResult> &future,
diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index cbcbf06e74..e81ad228c3 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -272,12 +272,12 @@ const char CUSTOM_PARSER_PREFIX_KEY[] = "ProjectExplorer/Settings/CustomParser";
} // namespace Constants
-static Utils::optional<Environment> sysEnv(const Project *)
+static std::optional<Environment> sysEnv(const Project *)
{
return Environment::systemEnvironment();
}
-static Utils::optional<Environment> buildEnv(const Project *project)
+static std::optional<Environment> buildEnv(const Project *project)
{
if (!project || !project->activeTarget() || !project->activeTarget()->activeBuildConfiguration())
return {};
@@ -500,7 +500,7 @@ public:
void openRecentProject(const FilePath &filePath);
void removeFromRecentProjects(const FilePath &filePath);
void updateUnloadProjectMenu();
- using EnvironmentGetter = std::function<Utils::optional<Environment>(const Project *project)>;
+ using EnvironmentGetter = std::function<std::optional<Environment>(const Project *project)>;
void openTerminalHere(const EnvironmentGetter &env);
void openTerminalHereWithRunEnv();
diff --git a/src/plugins/projectexplorer/projectnodes.h b/src/plugins/projectexplorer/projectnodes.h
index 4f159b60ac..98dc5850e4 100644
--- a/src/plugins/projectexplorer/projectnodes.h
+++ b/src/plugins/projectexplorer/projectnodes.h
@@ -11,9 +11,9 @@
#include <utils/fileutils.h>
#include <utils/id.h>
-#include <utils/optional.h>
#include <functional>
+#include <optional>
#include <variant>
namespace Utils { class MimeType; }
@@ -361,8 +361,8 @@ public:
virtual bool addSubProject(const Utils::FilePath &proFile);
virtual QStringList subProjectFileNamePatterns() const;
virtual bool removeSubProject(const Utils::FilePath &proFilePath);
- virtual Utils::optional<Utils::FilePath> visibleAfterAddFileAction() const {
- return Utils::nullopt;
+ virtual std::optional<Utils::FilePath> visibleAfterAddFileAction() const {
+ return std::nullopt;
}
bool isFolderNodeType() const override { return false; }
diff --git a/src/plugins/projectexplorer/toolchaincache.h b/src/plugins/projectexplorer/toolchaincache.h
index 3c35d00914..22e1e690cc 100644
--- a/src/plugins/projectexplorer/toolchaincache.h
+++ b/src/plugins/projectexplorer/toolchaincache.h
@@ -8,7 +8,7 @@
#include <QPair>
#include <QVector>
-#include <utils/optional.h>
+#include <optional>
namespace ProjectExplorer {
@@ -56,7 +56,7 @@ public:
}
}
- Utils::optional<T> check(const K &key)
+ std::optional<T> check(const K &key)
{
QMutexLocker locker(&m_mutex);
return checkImpl(key);
@@ -69,7 +69,7 @@ public:
}
private:
- Utils::optional<T> checkImpl(const K &key)
+ std::optional<T> checkImpl(const K &key)
{
auto it = std::stable_partition(m_cache.begin(), m_cache.end(), [&](const CacheItem &ci) {
return ci.first != key;
diff --git a/src/plugins/projectexplorer/userfileaccessor.cpp b/src/plugins/projectexplorer/userfileaccessor.cpp
index f6d91b935b..f1057fe962 100644
--- a/src/plugins/projectexplorer/userfileaccessor.cpp
+++ b/src/plugins/projectexplorer/userfileaccessor.cpp
@@ -183,11 +183,11 @@ static QString generateSuffix(const QString &suffix)
}
// Return path to shared directory for .user files, create if necessary.
-static inline Utils::optional<QString> defineExternalUserFileDir()
+static inline std::optional<QString> defineExternalUserFileDir()
{
const char userFilePathVariable[] = "QTC_USER_FILE_PATH";
if (Q_LIKELY(!qtcEnvironmentVariableIsSet(userFilePathVariable)))
- return nullopt;
+ return std::nullopt;
const QFileInfo fi(qtcEnvironmentVariable(userFilePathVariable));
const QString path = fi.absoluteFilePath();
if (fi.isDir() || fi.isSymLink())
@@ -195,12 +195,12 @@ static inline Utils::optional<QString> defineExternalUserFileDir()
if (fi.exists()) {
qWarning() << userFilePathVariable << '=' << QDir::toNativeSeparators(path)
<< " points to an existing file";
- return nullopt;
+ return std::nullopt;
}
QDir dir;
if (!dir.mkpath(path)) {
qWarning() << "Cannot create: " << QDir::toNativeSeparators(path);
- return nullopt;
+ return std::nullopt;
}
return path;
}
@@ -235,7 +235,7 @@ static QString makeRelative(QString path)
// Return complete file path of the .user file.
static FilePath externalUserFilePath(const Utils::FilePath &projectFilePath, const QString &suffix)
{
- static const optional<QString> externalUserFileDir = defineExternalUserFileDir();
+ static const std::optional<QString> externalUserFileDir = defineExternalUserFileDir();
if (externalUserFileDir) {
// Recreate the relative project file hierarchy under the shared directory.
@@ -328,7 +328,7 @@ UserFileAccessor::merge(const MergingSettingsAccessor::SettingsMergeData &global
const QVariant secondaryValue = local.secondary.value(key);
if (mainValue.isNull() && secondaryValue.isNull())
- return nullopt;
+ return std::nullopt;
if (isHouseKeepingKey(key) || global.key == USER_STICKY_KEYS_KEY)
return qMakePair(key, mainValue);
@@ -357,14 +357,14 @@ SettingsMergeFunction UserFileAccessor::userStickyTrackerFunction(QStringList &s
const QVariant secondary = local.secondary.value(key);
if (main.isNull()) // skip stuff not in main!
- return nullopt;
+ return std::nullopt;
if (isHouseKeepingKey(key))
return qMakePair(key, main);
// Ignore house keeping keys:
if (key == USER_STICKY_KEYS_KEY)
- return nullopt;
+ return std::nullopt;
// Track keys that changed in main from the value in secondary:
if (main != secondary && !secondary.isNull() && !stickyKeys.contains(global.key))
diff --git a/src/plugins/qbsprojectmanager/qbssession.cpp b/src/plugins/qbsprojectmanager/qbssession.cpp
index 050a5cf1be..9259f59a82 100644
--- a/src/plugins/qbsprojectmanager/qbssession.cpp
+++ b/src/plugins/qbsprojectmanager/qbssession.cpp
@@ -135,7 +135,7 @@ public:
QEventLoop eventLoop;
QJsonObject reply;
QHash<QString, QStringList> generatedFilesForSources;
- optional<Error> lastError;
+ std::optional<Error> lastError;
State state = State::Inactive;
};
@@ -215,7 +215,7 @@ QbsSession::~QbsSession()
delete d;
}
-optional<QbsSession::Error> QbsSession::lastError() const
+std::optional<QbsSession::Error> QbsSession::lastError() const
{
return d->lastError;
}
diff --git a/src/plugins/qbsprojectmanager/qbssession.h b/src/plugins/qbsprojectmanager/qbssession.h
index ad49d86aca..8ad9972d6d 100644
--- a/src/plugins/qbsprojectmanager/qbssession.h
+++ b/src/plugins/qbsprojectmanager/qbssession.h
@@ -4,7 +4,6 @@
#pragma once
#include <utils/fileutils.h>
-#include <utils/optional.h>
#include <QHash>
#include <QJsonObject>
@@ -14,6 +13,7 @@
#include <QVariant>
#include <functional>
+#include <optional>
namespace ProjectExplorer { class Target; }
@@ -102,7 +102,7 @@ public:
enum class State { Initializing, Active, Inactive };
enum class Error { QbsFailedToStart, QbsQuit, ProtocolError, VersionMismatch };
- Utils::optional<Error> lastError() const;
+ std::optional<Error> lastError() const;
static QString errorString(Error error);
QJsonObject projectData() const;
diff --git a/src/plugins/qmldesigner/components/curveeditor/detail/keyframeitem.cpp b/src/plugins/qmldesigner/components/curveeditor/detail/keyframeitem.cpp
index f09b211c0e..02bacc2041 100644
--- a/src/plugins/qmldesigner/components/curveeditor/detail/keyframeitem.cpp
+++ b/src/plugins/qmldesigner/components/curveeditor/detail/keyframeitem.cpp
@@ -449,7 +449,7 @@ void KeyframeItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
bool ok;
m_firstPos = m_transform.inverted(&ok).map(event->scenePos());
if (!ok)
- m_firstPos = Utils::nullopt;
+ m_firstPos = std::nullopt;
SelectableItem::mousePressEvent(event);
if (auto *curveItem = qgraphicsitem_cast<CurveItem *>(parentItem()))
@@ -458,7 +458,7 @@ void KeyframeItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
void KeyframeItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
- m_firstPos = Utils::nullopt;
+ m_firstPos = std::nullopt;
SelectableItem::mouseReleaseEvent(event);
if (auto *curveItem = qgraphicsitem_cast<CurveItem *>(parentItem()))
curveItem->setHandleVisibility(true);
diff --git a/src/plugins/qmldesigner/components/curveeditor/detail/keyframeitem.h b/src/plugins/qmldesigner/components/curveeditor/detail/keyframeitem.h
index 2a8251d962..d02c1a9b23 100644
--- a/src/plugins/qmldesigner/components/curveeditor/detail/keyframeitem.h
+++ b/src/plugins/qmldesigner/components/curveeditor/detail/keyframeitem.h
@@ -8,10 +8,10 @@
#include "keyframe.h"
#include "selectableitem.h"
-#include <utils/optional.h>
-
#include <QGraphicsObject>
+#include <optional>
+
namespace QmlDesigner {
class HandleItem;
@@ -111,8 +111,8 @@ private:
HandleItem *m_right;
- Utils::optional< QPointF > m_firstPos;
- Utils::optional< QPointF > m_validPos;
+ std::optional< QPointF > m_firstPos;
+ std::optional< QPointF > m_validPos;
bool m_visibleOverride = true;
diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinesettingsmodel.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelinesettingsmodel.cpp
index 7ad9d264cb..9aaa1a38cd 100644
--- a/src/plugins/qmldesigner/components/timelineeditor/timelinesettingsmodel.cpp
+++ b/src/plugins/qmldesigner/components/timelineeditor/timelinesettingsmodel.cpp
@@ -9,7 +9,6 @@
#include <variantproperty.h>
#include <qmlvisualnode.h>
-#include <utils/optional.h>
#include <utils/qtcassert.h>
#include <QComboBox>
@@ -19,9 +18,11 @@
#include <QStyledItemDelegate>
#include <QTimer>
+#include <optional>
+
namespace QmlDesigner {
-static void setDataForFixedFrame(QStandardItem *item, Utils::optional<int> fixedValue)
+static void setDataForFixedFrame(QStandardItem *item, std::optional<int> fixedValue)
{
if (fixedValue)
item->setData(fixedValue.value(), Qt::EditRole);
@@ -172,7 +173,7 @@ void TimelineSettingsModel::setupDelegates(QAbstractItemView *view)
view->setItemDelegate(new TimelineEditorDelegate);
}
-static Utils::optional<int> propertyValueForState(const ModelNode &modelNode,
+static std::optional<int> propertyValueForState(const ModelNode &modelNode,
QmlModelState state,
const PropertyName &propertyName)
{
diff --git a/src/plugins/qmldesigner/designercore/imagecache/asynchronousexplicitimagecache.cpp b/src/plugins/qmldesigner/designercore/imagecache/asynchronousexplicitimagecache.cpp
index f0aef75895..2c3446bbe3 100644
--- a/src/plugins/qmldesigner/designercore/imagecache/asynchronousexplicitimagecache.cpp
+++ b/src/plugins/qmldesigner/designercore/imagecache/asynchronousexplicitimagecache.cpp
@@ -93,7 +93,7 @@ void AsynchronousExplicitImageCache::clean()
clearEntries();
}
-Utils::optional<AsynchronousExplicitImageCache::RequestEntry> AsynchronousExplicitImageCache::getEntry()
+std::optional<AsynchronousExplicitImageCache::RequestEntry> AsynchronousExplicitImageCache::getEntry()
{
std::unique_lock lock{m_mutex};
diff --git a/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagecache.cpp b/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagecache.cpp
index 4cf140634c..6d08443e9e 100644
--- a/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagecache.cpp
+++ b/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagecache.cpp
@@ -123,7 +123,7 @@ void AsynchronousImageCache::clean()
m_generator.clean();
}
-Utils::optional<AsynchronousImageCache::Entry> AsynchronousImageCache::getEntry()
+std::optional<AsynchronousImageCache::Entry> AsynchronousImageCache::getEntry()
{
std::unique_lock lock{m_mutex};
diff --git a/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.cpp b/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.cpp
index d8c93fb98b..de738862a3 100644
--- a/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.cpp
+++ b/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.cpp
@@ -69,7 +69,7 @@ void AsynchronousImageFactory::waitForEntries()
m_condition.wait(lock, [&] { return m_entries.size() || m_finishing; });
}
-Utils::optional<AsynchronousImageFactory::Entry> AsynchronousImageFactory::getEntry()
+std::optional<AsynchronousImageFactory::Entry> AsynchronousImageFactory::getEntry()
{
std::unique_lock lock{m_mutex};
diff --git a/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.h b/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.h
index fe10d947bc..c7a25d1d47 100644
--- a/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.h
+++ b/src/plugins/qmldesigner/designercore/imagecache/asynchronousimagefactory.h
@@ -5,12 +5,12 @@
#include "imagecacheauxiliarydata.h"
-#include <utils/optional.h>
#include <utils/smallstring.h>
#include <condition_variable>
#include <deque>
#include <mutex>
+#include <optional>
#include <thread>
namespace QmlDesigner {
@@ -55,7 +55,7 @@ private:
ImageCache::AuxiliaryData &&auxiliaryData);
bool isRunning();
void waitForEntries();
- Utils::optional<Entry> getEntry();
+ std::optional<Entry> getEntry();
void request(Utils::SmallStringView name,
Utils::SmallStringView extraId,
ImageCache::AuxiliaryData auxiliaryData,
diff --git a/src/plugins/qmldesigner/designercore/imagecache/imagecachestorageinterface.h b/src/plugins/qmldesigner/designercore/imagecache/imagecachestorageinterface.h
index 538261b0d1..00f4ce4ecb 100644
--- a/src/plugins/qmldesigner/designercore/imagecache/imagecachestorageinterface.h
+++ b/src/plugins/qmldesigner/designercore/imagecache/imagecachestorageinterface.h
@@ -7,16 +7,17 @@
#include <QImage>
#include <sqlitetimestamp.h>
-#include <utils/optional.h>
#include <utils/smallstringview.h>
+#include <optional>
+
namespace QmlDesigner {
class ImageCacheStorageInterface
{
public:
- using ImageEntry = Utils::optional<QImage>;
- using IconEntry = Utils::optional<QIcon>;
+ using ImageEntry = std::optional<QImage>;
+ using IconEntry = std::optional<QIcon>;
virtual ImageEntry fetchImage(Utils::SmallStringView name,
Sqlite::TimeStamp minimumTimeStamp) const = 0;
diff --git a/src/plugins/qmldesigner/designercore/include/asynchronousexplicitimagecache.h b/src/plugins/qmldesigner/designercore/include/asynchronousexplicitimagecache.h
index 5b4e7bc787..9ac6d7a933 100644
--- a/src/plugins/qmldesigner/designercore/include/asynchronousexplicitimagecache.h
+++ b/src/plugins/qmldesigner/designercore/include/asynchronousexplicitimagecache.h
@@ -5,12 +5,11 @@
#include "asynchronousimagecacheinterface.h"
-#include <utils/optional.h>
-
#include <condition_variable>
#include <deque>
#include <functional>
#include <mutex>
+#include <optional>
#include <thread>
namespace QmlDesigner {
@@ -59,7 +58,7 @@ private:
RequestType requestType = RequestType::Image;
};
- Utils::optional<RequestEntry> getEntry();
+ std::optional<RequestEntry> getEntry();
void addEntry(Utils::PathString &&name,
Utils::SmallString &&extraId,
ImageCache::CaptureImageCallback &&captureCallback,
diff --git a/src/plugins/qmldesigner/designercore/include/asynchronousimagecache.h b/src/plugins/qmldesigner/designercore/include/asynchronousimagecache.h
index 9eac8575cb..d547a0979e 100644
--- a/src/plugins/qmldesigner/designercore/include/asynchronousimagecache.h
+++ b/src/plugins/qmldesigner/designercore/include/asynchronousimagecache.h
@@ -5,12 +5,11 @@
#include "asynchronousimagecacheinterface.h"
-#include <utils/optional.h>
-
#include <condition_variable>
#include <deque>
#include <functional>
#include <mutex>
+#include <optional>
#include <thread>
namespace QmlDesigner {
@@ -69,7 +68,7 @@ private:
RequestType requestType = RequestType::Image;
};
- Utils::optional<Entry> getEntry();
+ std::optional<Entry> getEntry();
void addEntry(Utils::PathString &&name,
Utils::SmallString &&extraId,
ImageCache::CaptureImageCallback &&captureCallback,
diff --git a/src/plugins/qmldesigner/designercore/include/modelcache.h b/src/plugins/qmldesigner/designercore/include/modelcache.h
index 39eae38890..63eef0d451 100644
--- a/src/plugins/qmldesigner/designercore/include/modelcache.h
+++ b/src/plugins/qmldesigner/designercore/include/modelcache.h
@@ -7,11 +7,11 @@
#include <model.h>
-#include <utils/optional.h>
-
#include <QHash>
#include <QQueue>
+#include <optional>
+
namespace QmlDesigner {
template<class DataType>
@@ -42,7 +42,7 @@ public:
}
}
- Utils::optional<DataType> take(Model *model)
+ std::optional<DataType> take(Model *model)
{
if (!m_content.contains(model))
return {};
diff --git a/src/plugins/qmldesigner/designercore/include/modelnode.h b/src/plugins/qmldesigner/designercore/include/modelnode.h
index 448f49ebe6..319d692803 100644
--- a/src/plugins/qmldesigner/designercore/include/modelnode.h
+++ b/src/plugins/qmldesigner/designercore/include/modelnode.h
@@ -7,14 +7,13 @@
#include "abstractproperty.h"
#include "qmldesignercorelib_global.h"
-#include <utils/optional.h>
-
#include <QPointer>
#include <QList>
#include <QVector>
#include <QVariant>
#include <memory>
+#include <optional>
QT_BEGIN_NAMESPACE
class QTextStream;
@@ -178,8 +177,8 @@ public:
static int variantUserType();
QVariant toVariant() const;
- Utils::optional<QVariant> auxiliaryData(AuxiliaryDataKeyView key) const;
- Utils::optional<QVariant> auxiliaryData(AuxiliaryDataType type, Utils::SmallStringView name) const;
+ std::optional<QVariant> auxiliaryData(AuxiliaryDataKeyView key) const;
+ std::optional<QVariant> auxiliaryData(AuxiliaryDataType type, Utils::SmallStringView name) const;
QVariant auxiliaryDataWithDefault(AuxiliaryDataType type, Utils::SmallStringView name) const;
QVariant auxiliaryDataWithDefault(AuxiliaryDataKeyView key) const;
void setAuxiliaryData(AuxiliaryDataKeyView key, const QVariant &data) const;
diff --git a/src/plugins/qmldesigner/designercore/include/nodemetainfo.h b/src/plugins/qmldesigner/designercore/include/nodemetainfo.h
index f654f6f941..f379b3e206 100644
--- a/src/plugins/qmldesigner/designercore/include/nodemetainfo.h
+++ b/src/plugins/qmldesigner/designercore/include/nodemetainfo.h
@@ -11,12 +11,11 @@
#include <projectstorage/projectstoragetypes.h>
#include <projectstorageids.h>
-#include <utils/optional.h>
-
#include <QList>
#include <QString>
#include <QIcon>
+#include <optional>
#include <vector>
QT_BEGIN_NAMESPACE
@@ -170,7 +169,7 @@ private:
private:
TypeId m_typeId;
NotNullPointer<const ProjectStorage<Sqlite::Database>> m_projectStorage = {};
- mutable Utils::optional<Storage::Info::Type> m_typeData;
+ mutable std::optional<Storage::Info::Type> m_typeData;
QSharedPointer<class NodeMetaInfoPrivate> m_privateData;
};
diff --git a/src/plugins/qmldesigner/designercore/include/propertymetainfo.h b/src/plugins/qmldesigner/designercore/include/propertymetainfo.h
index a3fc6943b4..c216e5a6fe 100644
--- a/src/plugins/qmldesigner/designercore/include/propertymetainfo.h
+++ b/src/plugins/qmldesigner/designercore/include/propertymetainfo.h
@@ -9,11 +9,10 @@
#include <projectstorage/projectstoragetypes.h>
#include <projectstorageids.h>
-#include <utils/optional.h>
-
#include <QSharedPointer>
#include <QString>
+#include <optional>
#include <vector>
namespace QmlDesigner {
@@ -50,7 +49,7 @@ private:
PropertyName m_propertyName;
PropertyDeclarationId m_id;
NotNullPointer<const ProjectStorage<Sqlite::Database>> m_projectStorage;
- mutable Utils::optional<Storage::Info::PropertyDeclaration> m_propertyData;
+ mutable std::optional<Storage::Info::PropertyDeclaration> m_propertyData;
};
using PropertyMetaInfos = std::vector<PropertyMetaInfo>;
diff --git a/src/plugins/qmldesigner/designercore/include/textmodifier.h b/src/plugins/qmldesigner/designercore/include/textmodifier.h
index a9aa51133a..2e8bbd0ba1 100644
--- a/src/plugins/qmldesigner/designercore/include/textmodifier.h
+++ b/src/plugins/qmldesigner/designercore/include/textmodifier.h
@@ -7,12 +7,13 @@
#include <qmljs/qmljsdocument.h>
#include <texteditor/tabsettings.h>
-#include <utils/optional.h>
#include <QObject>
#include <QTextCursor>
#include <QTextDocument>
+#include <optional>
+
namespace TextEditor { class TabSettings; }
namespace QmlDesigner {
diff --git a/src/plugins/qmldesigner/designercore/model/internalnode.cpp b/src/plugins/qmldesigner/designercore/model/internalnode.cpp
index 60b9b95473..87199c0c87 100644
--- a/src/plugins/qmldesigner/designercore/model/internalnode.cpp
+++ b/src/plugins/qmldesigner/designercore/model/internalnode.cpp
@@ -52,7 +52,7 @@ auto find(Type &&auxiliaryDatas, AuxiliaryDataKeyView key)
} // namespace
-Utils::optional<QVariant> InternalNode::auxiliaryData(AuxiliaryDataKeyView key) const
+std::optional<QVariant> InternalNode::auxiliaryData(AuxiliaryDataKeyView key) const
{
auto found = find(m_auxiliaryDatas, key);
diff --git a/src/plugins/qmldesigner/designercore/model/internalnode_p.h b/src/plugins/qmldesigner/designercore/model/internalnode_p.h
index 0600cee32c..7b0daa1d2e 100644
--- a/src/plugins/qmldesigner/designercore/model/internalnode_p.h
+++ b/src/plugins/qmldesigner/designercore/model/internalnode_p.h
@@ -12,7 +12,6 @@
#include "internalvariantproperty.h"
#include <auxiliarydata.h>
-#include <utils/optional.h>
#include <projectstorageids.h>
#include <utils/smallstring.h>
@@ -22,11 +21,11 @@
#include <QStringList>
#include <QWeakPointer>
+#include <memory>
+#include <optional>
#include <type_traits>
#include <vector>
-#include <memory>
-
namespace QmlDesigner {
namespace Internal {
@@ -61,7 +60,7 @@ public:
void setParentProperty(const InternalNodeAbstractProperty::Pointer &parent);
void resetParentProperty();
- Utils::optional<QVariant> auxiliaryData(AuxiliaryDataKeyView key) const;
+ std::optional<QVariant> auxiliaryData(AuxiliaryDataKeyView key) const;
bool setAuxiliaryData(AuxiliaryDataKeyView key, const QVariant &data);
bool removeAuxiliaryData(AuxiliaryDataKeyView key);
bool hasAuxiliaryData(AuxiliaryDataKeyView key) const;
diff --git a/src/plugins/qmldesigner/designercore/model/modelnode.cpp b/src/plugins/qmldesigner/designercore/model/modelnode.cpp
index 04f5276f84..c8306f53f3 100644
--- a/src/plugins/qmldesigner/designercore/model/modelnode.cpp
+++ b/src/plugins/qmldesigner/designercore/model/modelnode.cpp
@@ -1038,7 +1038,7 @@ QVariant ModelNode::toVariant() const
return QVariant::fromValue(*this);
}
-Utils::optional<QVariant> ModelNode::auxiliaryData(AuxiliaryDataKeyView key) const
+std::optional<QVariant> ModelNode::auxiliaryData(AuxiliaryDataKeyView key) const
{
if (!isValid())
throw InvalidModelNodeException(__LINE__, __FUNCTION__, __FILE__);
@@ -1046,7 +1046,7 @@ Utils::optional<QVariant> ModelNode::auxiliaryData(AuxiliaryDataKeyView key) con
return m_internalNode->auxiliaryData(key);
}
-Utils::optional<QVariant> ModelNode::auxiliaryData(AuxiliaryDataType type,
+std::optional<QVariant> ModelNode::auxiliaryData(AuxiliaryDataType type,
Utils::SmallStringView name) const
{
return auxiliaryData({type, name});
diff --git a/src/plugins/qmldesigner/designercore/projectstorage/projectstorage.h b/src/plugins/qmldesigner/designercore/projectstorage/projectstorage.h
index 13db42de19..1be507f76a 100644
--- a/src/plugins/qmldesigner/designercore/projectstorage/projectstorage.h
+++ b/src/plugins/qmldesigner/designercore/projectstorage/projectstorage.h
@@ -15,10 +15,10 @@
#include <sqlitetransaction.h>
#include <utils/algorithm.h>
-#include <utils/optional.h>
#include <utils/set_algorithm.h>
#include <algorithm>
+#include <optional>
#include <tuple>
#include <type_traits>
#include <utility>
@@ -161,7 +161,7 @@ public:
.template valueWithTransaction<PropertyDeclarationId>(typeId, propertyName);
}
- Utils::optional<Storage::Info::PropertyDeclaration> propertyDeclaration(
+ std::optional<Storage::Info::PropertyDeclaration> propertyDeclaration(
PropertyDeclarationId propertyDeclarationId) const
{
return selectPropertyDeclarationForPropertyDeclarationIdStatement
@@ -169,7 +169,7 @@ public:
propertyDeclarationId);
}
- Utils::optional<Storage::Info::Type> type(TypeId typeId) const
+ std::optional<Storage::Info::Type> type(TypeId typeId) const
{
return selectInfoTypeByTypeIdStatement.template optionalValueWithTransaction<Storage::Info::Type>(
typeId);
@@ -187,7 +187,7 @@ public:
.template valuesWithTransaction<Utils::SmallString>(32, typeId);
}
- Utils::optional<Utils::SmallString> propertyName(PropertyDeclarationId propertyDeclarationId) const
+ std::optional<Utils::SmallString> propertyName(PropertyDeclarationId propertyDeclarationId) const
{
return selectPropertyNameStatement.template optionalValueWithTransaction<Utils::SmallString>(
propertyDeclarationId);
diff --git a/src/plugins/qmldesigner/designercore/projectstorage/storagecache.h b/src/plugins/qmldesigner/designercore/projectstorage/storagecache.h
index d9210b9776..ded352c831 100644
--- a/src/plugins/qmldesigner/designercore/projectstorage/storagecache.h
+++ b/src/plugins/qmldesigner/designercore/projectstorage/storagecache.h
@@ -9,11 +9,11 @@
#include "storagecachefwd.h"
#include <utils/algorithm.h>
-#include <utils/optional.h>
#include <utils/set_algorithm.h>
#include <utils/smallstringfwd.h>
#include <algorithm>
+#include <optional>
#include <shared_mutex>
#include <vector>
diff --git a/src/plugins/qmljstools/qmljscodestylesettings.h b/src/plugins/qmljstools/qmljscodestylesettings.h
index 36b97f39c4..c10155873d 100644
--- a/src/plugins/qmljstools/qmljscodestylesettings.h
+++ b/src/plugins/qmljstools/qmljscodestylesettings.h
@@ -5,10 +5,10 @@
#include "qmljstools_global.h"
-#include <utils/optional.h>
-
#include <QVariantMap>
+#include <optional>
+
namespace TextEditor { class TabSettings; }
namespace QmlJSTools {
diff --git a/src/plugins/qtsupport/qtoptionspage.cpp b/src/plugins/qtsupport/qtoptionspage.cpp
index ffa9b4c3ed..8b2115f7c1 100644
--- a/src/plugins/qtsupport/qtoptionspage.cpp
+++ b/src/plugins/qtsupport/qtoptionspage.cpp
@@ -814,7 +814,7 @@ static QString qtVersionsFile(const QString &baseDir)
+ Core::Constants::IDE_ID + '/' + "qtversion.xml";
}
-static Utils::optional<FilePath> currentlyLinkedQtDir(bool *hasInstallSettings)
+static std::optional<FilePath> currentlyLinkedQtDir(bool *hasInstallSettings)
{
const QString installSettingsFilePath = settingsFile(Core::ICore::resourcePath().toString());
const bool installSettingsExist = QFile::exists(installSettingsFilePath);
@@ -841,7 +841,7 @@ static bool canLinkWithQt(QString *toolTip)
{
bool canLink = true;
bool installSettingsExist;
- const Utils::optional<FilePath> installSettingsValue = currentlyLinkedQtDir(
+ const std::optional<FilePath> installSettingsValue = currentlyLinkedQtDir(
&installSettingsExist);
QStringList tip;
tip << linkingPurposeText();
@@ -929,7 +929,7 @@ static QStringList qtversionFilesToCheck()
return Utils::transform(kSubdirsToCheck, [](const QString &dir) { return qtVersionsFile(dir); });
}
-static Utils::optional<QString> settingsDirForQtDir(const QString &qtDir)
+static std::optional<QString> settingsDirForQtDir(const QString &qtDir)
{
const QStringList dirsToCheck = Utils::transform(kSubdirsToCheck, [qtDir](const QString &dir) {
return QString(qtDir + '/' + dir);
@@ -995,7 +995,7 @@ void QtOptionsPageWidget::linkWithQt()
return false;
return validateQtInstallDir(input, errorString);
});
- const Utils::optional<FilePath> currentLink = currentlyLinkedQtDir(nullptr);
+ const std::optional<FilePath> currentLink = currentlyLinkedQtDir(nullptr);
pathInput->setFilePath(currentLink ? *currentLink : defaultQtInstallationPath());
pathInput->setAllowPathFromDevice(true);
auto buttons = new QDialogButtonBox;
@@ -1026,7 +1026,7 @@ void QtOptionsPageWidget::linkWithQt()
dialog.exec();
if (dialog.result() == QDialog::Accepted) {
- const Utils::optional<QString> settingsDir = settingsDirForQtDir(pathInput->rawFilePath().toString());
+ const std::optional<QString> settingsDir = settingsDirForQtDir(pathInput->rawFilePath().toString());
if (QTC_GUARD(settingsDir)) {
QSettings(settingsFile(Core::ICore::resourcePath().toString()), QSettings::IniFormat)
.setValue(kInstallSettingsKey, *settingsDir);
diff --git a/src/plugins/studiowelcome/algorithm.h b/src/plugins/studiowelcome/algorithm.h
index 4956b2d335..fa05869002 100644
--- a/src/plugins/studiowelcome/algorithm.h
+++ b/src/plugins/studiowelcome/algorithm.h
@@ -10,14 +10,14 @@ namespace Utils {
//////// FIND
template<typename C, typename F>
-[[nodiscard]] typename Utils::optional<typename C::value_type> findOptional(const C &container,
+[[nodiscard]] typename std::optional<typename C::value_type> findOptional(const C &container,
F function)
{
auto begin = std::cbegin(container);
auto end = std::cend(container);
auto it = std::find_if(begin, end, function);
- return it == end ? nullopt : make_optional(*it);
+ return it == end ? std::nullopt : std::make_optional(*it);
}
template<typename C>
diff --git a/src/plugins/studiowelcome/presetmodel.cpp b/src/plugins/studiowelcome/presetmodel.cpp
index e14659c6a8..bf2b880521 100644
--- a/src/plugins/studiowelcome/presetmodel.cpp
+++ b/src/plugins/studiowelcome/presetmodel.cpp
@@ -2,10 +2,11 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#include "presetmodel.h"
-#include <utils/optional.h>
#include "algorithm.h"
+#include <optional>
+
using namespace StudioWelcome;
constexpr int NameRole = Qt::UserRole;
diff --git a/src/plugins/studiowelcome/presetmodel.h b/src/plugins/studiowelcome/presetmodel.h
index 43588ccfc0..b192a11c57 100644
--- a/src/plugins/studiowelcome/presetmodel.h
+++ b/src/plugins/studiowelcome/presetmodel.h
@@ -8,11 +8,12 @@
#include <QUrl>
#include <utils/filepath.h>
-#include <utils/optional.h>
#include <utils/qtcassert.h>
#include "userpresets.h"
+#include <optional>
+
namespace Utils {
class Wizard;
}
diff --git a/src/plugins/texteditor/indenter.h b/src/plugins/texteditor/indenter.h
index 73ef022051..ccaae3e2e8 100644
--- a/src/plugins/texteditor/indenter.h
+++ b/src/plugins/texteditor/indenter.h
@@ -4,11 +4,12 @@
#pragma once
#include <utils/fileutils.h>
-#include <utils/optional.h>
#include <utils/textutils.h>
#include <QMap>
#include <QTextBlock>
+
+#include <optional>
#include <vector>
namespace Utils {
@@ -75,7 +76,7 @@ public:
const TabSettings &tabSettings,
int cursorPositionInEditor = -1)
= 0;
- virtual Utils::optional<TabSettings> tabSettings() const = 0;
+ virtual std::optional<TabSettings> tabSettings() const = 0;
// Indent a text block based on previous line. Default does nothing
virtual void indentBlock(const QTextBlock &block,
@@ -98,7 +99,7 @@ public:
int cursorPositionInEditor = -1)
= 0;
- virtual Utils::optional<int> margin() const { return Utils::nullopt; }
+ virtual std::optional<int> margin() const { return std::nullopt; }
protected:
QTextDocument *m_doc;
diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp
index def49c05ed..064ea1ceea 100644
--- a/src/plugins/texteditor/texteditor.cpp
+++ b/src/plugins/texteditor/texteditor.cpp
@@ -583,7 +583,7 @@ public:
void transformSelectedLines(ListTransformationMethod method);
- void slotUpdateExtraAreaWidth(Utils::optional<int> width = {});
+ void slotUpdateExtraAreaWidth(std::optional<int> width = {});
void slotUpdateRequest(const QRect &r, int dy);
void slotUpdateBlockNotify(const QTextBlock &);
void updateTabStops();
@@ -4840,7 +4840,7 @@ int TextEditorWidget::extraAreaWidth(int *markWidthPtr) const
return space;
}
-void TextEditorWidgetPrivate::slotUpdateExtraAreaWidth(optional<int> width)
+void TextEditorWidgetPrivate::slotUpdateExtraAreaWidth(std::optional<int> width)
{
if (!width.has_value())
width = q->extraAreaWidth();
@@ -5389,7 +5389,7 @@ void TextEditorWidget::mouseMoveEvent(QMouseEvent *e)
}
}
- static Utils::optional<MultiTextCursor> startMouseMoveCursor;
+ static std::optional<MultiTextCursor> startMouseMoveCursor;
if (e->buttons() == Qt::LeftButton && e->modifiers() & Qt::AltModifier) {
if (!startMouseMoveCursor.has_value()) {
startMouseMoveCursor = multiTextCursor();
diff --git a/src/plugins/texteditor/textindenter.cpp b/src/plugins/texteditor/textindenter.cpp
index fbe08bdde9..0927bec357 100644
--- a/src/plugins/texteditor/textindenter.cpp
+++ b/src/plugins/texteditor/textindenter.cpp
@@ -122,7 +122,7 @@ void TextIndenter::reindent(const QTextCursor &cursor,
}
}
-Utils::optional<TabSettings> TextIndenter::tabSettings() const
+std::optional<TabSettings> TextIndenter::tabSettings() const
{
- return Utils::optional<TabSettings>();
+ return std::optional<TabSettings>();
}
diff --git a/src/plugins/texteditor/textindenter.h b/src/plugins/texteditor/textindenter.h
index b929794bf0..66c8eff7b5 100644
--- a/src/plugins/texteditor/textindenter.h
+++ b/src/plugins/texteditor/textindenter.h
@@ -42,7 +42,7 @@ public:
void reindent(const QTextCursor &cursor,
const TabSettings &tabSettings,
int cursorPositionInEditor = -1) override;
- Utils::optional<TabSettings> tabSettings() const override;
+ std::optional<TabSettings> tabSettings() const override;
};
} // namespace TextEditor
diff --git a/src/plugins/texteditor/textmark.cpp b/src/plugins/texteditor/textmark.cpp
index 495c44463d..1ca67b597b 100644
--- a/src/plugins/texteditor/textmark.cpp
+++ b/src/plugins/texteditor/textmark.cpp
@@ -354,7 +354,7 @@ const QIcon TextMark::icon() const
return m_iconProvider ? m_iconProvider() : m_icon;
}
-Utils::optional<Theme::Color> TextMark::color() const
+std::optional<Theme::Color> TextMark::color() const
{
return m_color;
}
diff --git a/src/plugins/texteditor/textmark.h b/src/plugins/texteditor/textmark.h
index c6bfbc45a8..ed0816224b 100644
--- a/src/plugins/texteditor/textmark.h
+++ b/src/plugins/texteditor/textmark.h
@@ -7,13 +7,14 @@
#include <utils/fileutils.h>
#include <utils/id.h>
-#include <utils/optional.h>
#include <utils/theme/theme.h>
#include <QCoreApplication>
#include <QIcon>
#include <QVector>
+#include <optional>
+
QT_BEGIN_NAMESPACE
class QAction;
class QGridLayout;
@@ -90,7 +91,7 @@ public:
void setVisible(bool isVisible);
Utils::Id category() const { return m_category; }
- Utils::optional<Utils::Theme::Color> color() const;
+ std::optional<Utils::Theme::Color> color() const;
void setColor(const Utils::Theme::Color &color);
QString defaultToolTip() const { return m_defaultToolTip; }
@@ -122,7 +123,7 @@ private:
Priority m_priority = LowPriority;
QIcon m_icon;
std::function<QIcon()> m_iconProvider;
- Utils::optional<Utils::Theme::Color> m_color;
+ std::optional<Utils::Theme::Color> m_color;
bool m_visible = false;
Utils::Id m_category;
QString m_lineAnnotation;
diff --git a/src/plugins/updateinfo/updateinfoplugin.cpp b/src/plugins/updateinfo/updateinfoplugin.cpp
index d2047ba07a..f6e80f5799 100644
--- a/src/plugins/updateinfo/updateinfoplugin.cpp
+++ b/src/plugins/updateinfo/updateinfoplugin.cpp
@@ -271,7 +271,7 @@ void UpdateInfoPlugin::checkForUpdatesFinished()
<< "prerelease:" << p.isPrerelease;
}
}
- Utils::optional<QtPackage> qtToNag = qtToNagAbout(qtPackages, &d->m_lastMaxQtVersion);
+ std::optional<QtPackage> qtToNag = qtToNagAbout(qtPackages, &d->m_lastMaxQtVersion);
if (!updates.isEmpty() || qtToNag) {
// progress details are shown until user interaction for the "no updates" case,
diff --git a/src/plugins/updateinfo/updateinfotools.h b/src/plugins/updateinfo/updateinfotools.h
index a5c3a816ee..1f79e366b6 100644
--- a/src/plugins/updateinfo/updateinfotools.h
+++ b/src/plugins/updateinfo/updateinfotools.h
@@ -4,7 +4,6 @@
#pragma once
#include <utils/algorithm.h>
-#include <utils/optional.h>
#include <QDomDocument>
#include <QList>
@@ -12,6 +11,8 @@
#include <QRegularExpression>
#include <QVersionNumber>
+#include <optional>
+
Q_DECLARE_LOGGING_CATEGORY(updateLog)
struct Update
@@ -90,7 +91,7 @@ QList<QtPackage> availableQtPackages(const QString &packageXml)
}
// Expects packages to be sorted, high version first.
-Utils::optional<QtPackage> highestInstalledQt(const QList<QtPackage> &packages)
+std::optional<QtPackage> highestInstalledQt(const QList<QtPackage> &packages)
{
const auto highestInstalledIt = std::find_if(packages.cbegin(),
packages.cend(),
@@ -101,7 +102,7 @@ Utils::optional<QtPackage> highestInstalledQt(const QList<QtPackage> &packages)
}
// Expects packages to be sorted, high version first.
-Utils::optional<QtPackage> qtToNagAbout(const QList<QtPackage> &allPackages,
+std::optional<QtPackage> qtToNagAbout(const QList<QtPackage> &allPackages,
QVersionNumber *highestSeen)
{
// Filter out any Qt prereleases
@@ -119,7 +120,7 @@ Utils::optional<QtPackage> qtToNagAbout(const QList<QtPackage> &allPackages,
*highestSeen = highest.version;
if (!isNew)
return {};
- const Utils::optional<QtPackage> highestInstalled = highestInstalledQt(packages);
+ const std::optional<QtPackage> highestInstalled = highestInstalledQt(packages);
qCDebug(updateLog) << "Highest installed Qt:"
<< qPrintable(highestInstalled ? highestInstalled->version.toString()
: QString("none"));