diff --git a/src/plugins/insight/insightwidget.cpp b/src/plugins/insight/insightwidget.cpp index 03a46b03443..7187a254c41 100644 --- a/src/plugins/insight/insightwidget.cpp +++ b/src/plugins/insight/insightwidget.cpp @@ -10,8 +10,6 @@ #include #include -#include - #include #include diff --git a/src/plugins/qmldesigner/components/componentcore/designericons.cpp b/src/plugins/qmldesigner/components/componentcore/designericons.cpp index 13f72764e8a..a058d0a2466 100644 --- a/src/plugins/qmldesigner/components/componentcore/designericons.cpp +++ b/src/plugins/qmldesigner/components/componentcore/designericons.cpp @@ -116,12 +116,12 @@ T jsonSafeValue(const QJsonObject &jsonObject, const QString &symbolName, std::function validityCheck = [](const T&) -> bool {return true;}) { if (!jsonObject.contains(symbolName)) - throw InvalidArgumentException(__LINE__, __FUNCTION__, __FILE__, symbolName.toLatin1()); + throw InvalidArgumentException(symbolName); QVariant symbolVar = jsonObject.value(symbolName); T extractedVal = symbolVar.value(); if (!validityCheck(extractedVal)) - throw InvalidArgumentException(__LINE__, __FUNCTION__, __FILE__, symbolName.toLatin1()); + throw InvalidArgumentException(symbolName); return extractedVal; } @@ -138,7 +138,7 @@ QSize jsonSafeSize(const QJsonObject &jsonObject, const QString &symbolName) if (wOk && hOk) return {cWidth, cHeight}; } - throw InvalidArgumentException(__LINE__, __FUNCTION__, __FILE__, symbolName.toLatin1()); + throw InvalidArgumentException(symbolName); return {}; } @@ -151,7 +151,7 @@ T jsonSafeMetaEnum(const QJsonObject &jsonObject, const QString &symbolName = De if (ok) return enumIndex; - throw InvalidArgumentException(__LINE__, __FUNCTION__, __FILE__, symbolName.toLatin1()); + throw InvalidArgumentException(symbolName); return {}; } diff --git a/src/plugins/qmldesigner/components/designsystemview/designsystemwidget.cpp b/src/plugins/qmldesigner/components/designsystemview/designsystemwidget.cpp index 7d698a8f94d..fe34a8fd0e5 100644 --- a/src/plugins/qmldesigner/components/designsystemview/designsystemwidget.cpp +++ b/src/plugins/qmldesigner/components/designsystemview/designsystemwidget.cpp @@ -10,8 +10,6 @@ #include #include -#include - #include #include diff --git a/src/plugins/qmldesigner/components/devicesharing/devicemanagerwidget.cpp b/src/plugins/qmldesigner/components/devicesharing/devicemanagerwidget.cpp index eb764c02b35..78c87e48026 100644 --- a/src/plugins/qmldesigner/components/devicesharing/devicemanagerwidget.cpp +++ b/src/plugins/qmldesigner/components/devicesharing/devicemanagerwidget.cpp @@ -9,8 +9,6 @@ #include #include -#include - #include #include diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp index 38cf24bec8a..8b5517ec22d 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp @@ -19,7 +19,6 @@ #include #include #include -#include #include #include #include diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorview.cpp b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorview.cpp index 1d85aed0603..8b6abc15b1a 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorview.cpp +++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorview.cpp @@ -14,7 +14,6 @@ #include #include -#include #include #include diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp b/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp index e82f9aaa809..6a59a643b46 100644 --- a/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp +++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp @@ -11,8 +11,6 @@ #include #include -#include - #include #include diff --git a/src/plugins/qmldesigner/libs/designercore/CMakeLists.txt b/src/plugins/qmldesigner/libs/designercore/CMakeLists.txt index 5d5e5d7a4b5..e3d8adb3697 100644 --- a/src/plugins/qmldesigner/libs/designercore/CMakeLists.txt +++ b/src/plugins/qmldesigner/libs/designercore/CMakeLists.txt @@ -80,19 +80,17 @@ extend_qtc_library(QmlDesignerCore SOURCES exception.cpp invalidargumentexception.cpp - invalididexception.cpp - invalidmetainfoexception.cpp - invalidmodelnodeexception.cpp - invalidmodelstateexception.cpp - invalidpropertyexception.cpp - invalidqmlsourceexception.cpp - invalidreparentingexception.cpp - invalidslideindexexception.cpp - notimplementedexception.cpp - removebasestateexception.cpp rewritingexception.cpp ) +extend_qtc_library(QmlDesignerCore + CONDITION NOT USE_PROJECTSTORAGE + INCLUDES exceptions + SOURCES_PREFIX exceptions + SOURCES + invalidmetainfoexception.cpp +) + extend_qtc_library(QmlDesignerCore INCLUDES filemanager SOURCES_PREFIX filemanager @@ -186,6 +184,7 @@ extend_qtc_library(QmlDesignerCore CONDITION NOT USE_PROJECTSTORAGE SOURCES_PREFIX include SOURCES + invalidmetainfoexception.h itemlibraryinfo.h metainforeader.h subcomponentmanager.h @@ -214,14 +213,6 @@ extend_qtc_library(QmlDesignerCore imagecacheauxiliarydata.h import.h invalidargumentexception.h - invalididexception.h - invalidmetainfoexception.h - invalidmodelnodeexception.h - invalidmodelstateexception.h - invalidpropertyexception.h - invalidqmlsourceexception.h - invalidreparentingexception.h - invalidslideindexexception.h iwidgetplugin.h mathutils.h modelfwd.h @@ -233,7 +224,6 @@ extend_qtc_library(QmlDesignerCore nodelistproperty.h nodemetainfo.h nodeproperty.h - notimplementedexception.h objectpropertybinding.h projectstorageids.h propertybinding.h @@ -244,7 +234,6 @@ extend_qtc_library(QmlDesignerCore qmldesignercorelib_exports.h qmldesignercorelib_global.h qmldesignercoreconstants.h - removebasestateexception.h rewritertransaction.h rewritingexception.h signalhandlerproperty.h diff --git a/src/plugins/qmldesigner/libs/designercore/designercoreutils/stylesheetmerger.cpp b/src/plugins/qmldesigner/libs/designercore/designercoreutils/stylesheetmerger.cpp index 9cbd70cefcf..8a9e609bb22 100644 --- a/src/plugins/qmldesigner/libs/designercore/designercoreutils/stylesheetmerger.cpp +++ b/src/plugins/qmldesigner/libs/designercore/designercoreutils/stylesheetmerger.cpp @@ -4,9 +4,6 @@ #include #include -#include -#include -#include #include #include #include @@ -250,20 +247,10 @@ void StylesheetMerger::preprocessStyleSheet() newParentProperty.slide(styleParentIndex, templateParentIndex); } transaction.commit(); - }catch (InvalidIdException &ide) { - qDebug().noquote() << "Invalid id exception while preprocessing the style sheet."; - ide.createWarning(); - } catch (InvalidReparentingException &rpe) { - qDebug().noquote() << "Invalid reparenting exception while preprocessing the style sheet."; - rpe.createWarning(); - } catch (InvalidModelNodeException &mne) { - qDebug().noquote() << "Invalid model node exception while preprocessing the style sheet."; - mne.createWarning(); - } catch (Exception &e) { + } catch (Exception &exception) { qDebug().noquote() << "Exception while preprocessing the style sheet."; - e.createWarning(); + qDebug() << exception; } - } void StylesheetMerger::replaceNode(ModelNode &replacedNode, ModelNode &newNode) @@ -313,18 +300,9 @@ void StylesheetMerger::replaceRootNode(ModelNode& templateRootNode) ModelNode newRoot = m_templateView->rootModelNode(); newRoot.setIdWithoutRefactoring(rootId); transaction.commit(); - } catch (InvalidIdException &ide) { - qDebug().noquote() << "Invalid id exception while replacing root node of template."; - ide.createWarning(); - } catch (InvalidReparentingException &rpe) { - qDebug().noquote() << "Invalid reparenting exception while replacing root node of template."; - rpe.createWarning(); - } catch (InvalidModelNodeException &mne) { - qDebug().noquote() << "Invalid model node exception while replacing root node of template."; - mne.createWarning(); - } catch (Exception &e) { + } catch (Exception &exception) { qDebug().noquote() << "Exception while replacing root node of template."; - e.createWarning(); + qDebug() << exception; } } @@ -397,18 +375,9 @@ void StylesheetMerger::parseTemplateOptions() RewriterTransaction transaction(m_templateView, "remove-options-node"); optionsNode.destroy(); transaction.commit(); - } catch (InvalidIdException &ide) { - qDebug().noquote() << "Invalid id exception while removing options from template."; - ide.createWarning(); - } catch (InvalidReparentingException &rpe) { - qDebug().noquote() << "Invalid reparenting exception while removing options from template."; - rpe.createWarning(); - } catch (InvalidModelNodeException &mne) { - qDebug().noquote() << "Invalid model node exception while removing options from template."; - mne.createWarning(); - } catch (Exception &e) { + } catch (Exception &exception) { qDebug().noquote() << "Exception while removing options from template."; - e.createWarning(); + qDebug() << exception; } } @@ -483,9 +452,9 @@ void StylesheetMerger::mergeStates(ModelNode &outputNode, const ModelNode &input ModelNode stateClone = merger.insertModel(inputStateNode); if (stateClone.isValid()) outputNode.nodeListProperty("states").reparentHere(stateClone); - } catch (Exception &e) { + } catch (Exception &exception) { qDebug().noquote() << "Exception while merging states."; - e.createWarning(); + qDebug() << exception; } } } @@ -542,21 +511,9 @@ void StylesheetMerger::merge() replaceNode(replacedNode, replacementNode); transaction.commit(); - } catch (InvalidIdException &ide) { - qDebug().noquote() << "Invalid id exception while replacing template node"; - ide.createWarning(); - continue; - } catch (InvalidReparentingException &rpe) { - qDebug().noquote() << "Invalid reparenting exception while replacing template node"; - rpe.createWarning(); - continue; - } catch (InvalidModelNodeException &mne) { - qDebug().noquote() << "Invalid model node exception while replacing template node"; - mne.createWarning(); - continue; - } catch (Exception &e) { + } catch (Exception &exception) { qDebug().noquote() << "Exception while replacing template node."; - e.createWarning(); + qDebug() << exception; continue; } } @@ -584,21 +541,9 @@ void StylesheetMerger::merge() } } transaction.commit(); - } catch (InvalidIdException &ide) { - qDebug().noquote() << "Invalid id exception while syncing style properties to template"; - ide.createWarning(); - continue; - } catch (InvalidReparentingException &rpe) { - qDebug().noquote() << "Invalid reparenting exception while syncing style properties to template"; - rpe.createWarning(); - continue; - } catch (InvalidModelNodeException &mne) { - qDebug().noquote() << "Invalid model node exception while syncing style properties to template"; - mne.createWarning(); - continue; - } catch (Exception &e) { + } catch (Exception &exception) { qDebug().noquote() << "Exception while syncing style properties."; - e.createWarning(); + qDebug() << exception; continue; } } diff --git a/src/plugins/qmldesigner/libs/designercore/exceptions/exception.cpp b/src/plugins/qmldesigner/libs/designercore/exceptions/exception.cpp index 67be89ca260..b27a5b9b409 100644 --- a/src/plugins/qmldesigner/libs/designercore/exceptions/exception.cpp +++ b/src/plugins/qmldesigner/libs/designercore/exceptions/exception.cpp @@ -14,55 +14,9 @@ #include -/*! -\defgroup CoreExceptions -*/ -/*! -\class QmlDesigner::Exception -\ingroup CoreExceptions -\brief The Exception class is the abstract base class for all exceptions. - - Exceptions should be used if there is no other way to indicate that - something is going wrong. For example, - the result would be a inconsistent model or a crash. -*/ - namespace QmlDesigner { -#ifdef Q_OS_LINUX -const char* demangle(const char* name) -{ - char buf[1024]; - size_t size = 1024; - int status; - char* res; - res = abi::__cxa_demangle(name, - buf, - &size, - &status); - return res; -} -#else -const char* demangle(const char* name) -{ - return name; -} -#endif - - -bool Exception::s_shouldAssert = false; - -void Exception::setShouldAssert(bool assert) -{ - s_shouldAssert = assert; -} - -bool Exception::shouldAssert() -{ - return s_shouldAssert; -} - bool Exception::s_warnAboutException = true; void Exception::setWarnAboutException(bool warn) @@ -75,63 +29,22 @@ bool Exception::warnAboutException() return s_warnAboutException; } -#ifdef Q_OS_LINUX -static QString getBackTrace() +namespace { +#if defined(__cpp_lib_stacktrace) && __cpp_lib_stacktrace >= 202011L +QString getBackTrace() { - QString backTrace; - void * array[50]; - int nSize = backtrace(array, 50); - char ** symbols = backtrace_symbols(array, nSize); - - for (int i = 0; i < nSize; i++) - backTrace.append(QString("%1\n").arg(QLatin1String(symbols[i]))); - - free(symbols); - - return backTrace; + auto trace = std::stacktrace::current(); + return QString::fromStdString(std::to_string(trace)); } #endif +} // namespace -QString Exception::defaultDescription(int line, const QByteArray &function, const QByteArray &file) +QString Exception::defaultDescription(const Sqlite::source_location &sourceLocation) { - return QString(QStringLiteral("file: %1, function: %2, line: %3")) - .arg(QString::fromUtf8(file), QString::fromUtf8(function), QString::number(line)); -} - -/*! - Constructs an exception. \a line uses the __LINE__ macro, \a function uses - the __FUNCTION__ or the Q_FUNC_INFO macro, and \a file uses - the __FILE__ macro. -*/ -Exception::Exception(int line, const QByteArray &function, const QByteArray &file) - : Exception(line, function, file, Exception::defaultDescription(line, function, file)) -{ } - -Exception::Exception(int line, const QByteArray &function, - const QByteArray &file, const QString &description) - : m_line(line) - , m_function(QString::fromUtf8(function)) - , m_file(QString::fromUtf8(file)) - , m_description(description) - #ifdef Q_OS_LINUX - , m_backTrace(getBackTrace()) - #endif -{ - if (s_shouldAssert) { - qDebug() << Exception::description(); - QTC_ASSERT(false, ;); - Q_ASSERT(false); - } -} - -Exception::~Exception() = default; - -/*! - Returns the unmangled backtrace of this exception as a string. -*/ -QString Exception::backTrace() const -{ - return m_backTrace; + return QStringView(u"file: %1, function: %2, line: %3") + .arg(QLatin1StringView{sourceLocation.file_name()}, + QLatin1StringView{sourceLocation.function_name()}, + QString::number(sourceLocation.line())); } void Exception::createWarning() const @@ -140,13 +53,6 @@ void Exception::createWarning() const qDebug() << *this; } -/*! - Returns the optional description of this exception as a string. -*/ -QString Exception::description() const -{ - return m_description; -} namespace { std::function showExceptionCallback; } @@ -157,7 +63,7 @@ std::function showExceptionCal void Exception::showException([[maybe_unused]] const QString &title) const { if (showExceptionCallback) - showExceptionCallback(title, m_description); + showExceptionCallback(title, description()); } void Exception::setShowExceptionCallback(std::function callback) @@ -170,15 +76,7 @@ void Exception::setShowExceptionCallback(std::function #include -/*! -\class QmlDesigner::InvalidArgumentException -\ingroup CoreExceptions -\brief The InvalidArgumentException class provides an exception for an invalid -argument. -*/ namespace QmlDesigner { -QString InvalidArgumentException::invalidArgumentDescription(int line, - const QByteArray &function, - const QByteArray &file, - const QByteArray &argument) -{ - if (QString::fromUtf8(function) == QLatin1String("createNode")) { - return DesignerCore::Tr::tr("Failed to create item of type %1.").arg(QString::fromUtf8(argument)); - } +using namespace Qt::StringLiterals; - return Exception::defaultDescription(line, function, file); +QString InvalidArgumentException::invalidArgumentDescription(const Sqlite::source_location &location, + const QString &argument) +{ + if (QLatin1StringView{location.file_name()} == "createNode"_L1) + return DesignerCore::Tr::tr("Failed to create item of type %1.").arg(argument); + + return Exception::defaultDescription(location); } -/*! - Constructs the exception for \a argument. \a line uses the __LINE__ macro, - \a function uses the __FUNCTION__ or the Q_FUNC_INFO macro, and \a file uses - the __FILE__ macro. -*/ -InvalidArgumentException::InvalidArgumentException(int line, - const QByteArray &function, - const QByteArray &file, - const QByteArray &argument) - : InvalidArgumentException(line, function, file, argument, - invalidArgumentDescription(line, function, file, argument)) +InvalidArgumentException::InvalidArgumentException(const QString &argument, + const Sqlite::source_location &location) + : Exception(location) + , m_argument{argument} { createWarning(); } -InvalidArgumentException::InvalidArgumentException(int line, - const QByteArray &function, - const QByteArray &file, - const QByteArray &argument, - const QString &description) - : Exception(line, function, file, description) - , m_argument(QString::fromUtf8(argument)) +const char *InvalidArgumentException::what() const noexcept { - createWarning(); + return "InvalidArgumentException"; +} + +QString InvalidArgumentException::description() const +{ + if (QLatin1StringView{location().file_name()} == "createNode"_L1) + return DesignerCore::Tr::tr("Failed to create item of type %1.").arg(m_argument); + + return Exception::defaultDescription(location()); } /*! @@ -59,7 +47,7 @@ InvalidArgumentException::InvalidArgumentException(int line, */ QString InvalidArgumentException::type() const { - return QLatin1String("InvalidArgumentException"); + return "InvalidArgumentException"_L1; } /*! diff --git a/src/plugins/qmldesigner/libs/designercore/exceptions/invalididexception.cpp b/src/plugins/qmldesigner/libs/designercore/exceptions/invalididexception.cpp deleted file mode 100644 index c1bf6a99d21..00000000000 --- a/src/plugins/qmldesigner/libs/designercore/exceptions/invalididexception.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#include "invalididexception.h" - -#include - -#include - -namespace QmlDesigner { - -static QString descriptionBasedOnReason(InvalidIdException::Reason reason) -{ - if (reason == InvalidIdException::InvalidCharacters) - return DesignerCore::Tr::tr("Only alphanumeric characters and underscore allowed.\n" - "Ids must begin with a lowercase letter."); - - return DesignerCore::Tr::tr("Ids have to be unique."); -} - -static QString decorateDescriptionWithId(const QString &id, const QString &description) -{ - return DesignerCore::Tr::tr("Invalid Id: %1\n%2").arg(id, description); -} - -InvalidIdException::InvalidIdException(int line, - const QByteArray &function, - const QByteArray &file, - const QByteArray &id, - Reason reason) - : InvalidArgumentException(line, function, file, "id", - decorateDescriptionWithId(QString::fromUtf8(id), - descriptionBasedOnReason(reason))) -{ } - -InvalidIdException::InvalidIdException(int line, - const QByteArray &function, - const QByteArray &file, - const QByteArray &id, - const QByteArray &description) - : InvalidArgumentException(line, function, file, "id", - decorateDescriptionWithId(QString::fromUtf8(id), - QString::fromUtf8(description))) -{ - createWarning(); -} - -QString InvalidIdException::type() const -{ - return QLatin1String("InvalidIdException"); -} - -} diff --git a/src/plugins/qmldesigner/libs/designercore/exceptions/invalidmetainfoexception.cpp b/src/plugins/qmldesigner/libs/designercore/exceptions/invalidmetainfoexception.cpp index fbf32676896..a00e75e8e71 100644 --- a/src/plugins/qmldesigner/libs/designercore/exceptions/invalidmetainfoexception.cpp +++ b/src/plugins/qmldesigner/libs/designercore/exceptions/invalidmetainfoexception.cpp @@ -3,34 +3,27 @@ #include "invalidmetainfoexception.h" -/*! -\class QmlDesigner::InvalidMetaInfoException -\ingroup CoreExceptions -\brief The InvalidMetaInfoException class provides an exception for invalid meta -info. - -\see NodeMetaInfo PropertyMetaInfo MetaInfo -*/ namespace QmlDesigner { -/*! - Constructs an exception. \a line uses the __LINE__ macro, - \a function uses the __FUNCTION__ or the Q_FUNC_INFO macro, and \a file uses - the __FILE__ macro. -*/ -InvalidMetaInfoException::InvalidMetaInfoException(int line, - const QByteArray &function, - const QByteArray &file) - : Exception(line, function, file) + +using namespace Qt::StringLiterals; + +InvalidMetaInfoException::InvalidMetaInfoException(const Sqlite::source_location &location) + : Exception(location) { createWarning(); } +QString InvalidMetaInfoException::description() const +{ + return defaultDescription(location()); +} + /*! Returns the type of this exception as a string. */ QString InvalidMetaInfoException::type() const { - return QLatin1String("InvalidMetaInfoException"); + return "InvalidMetaInfoException"_L1; } } diff --git a/src/plugins/qmldesigner/libs/designercore/exceptions/invalidmodelnodeexception.cpp b/src/plugins/qmldesigner/libs/designercore/exceptions/invalidmodelnodeexception.cpp deleted file mode 100644 index 75aee4b0f74..00000000000 --- a/src/plugins/qmldesigner/libs/designercore/exceptions/invalidmodelnodeexception.cpp +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#include "invalidmodelnodeexception.h" - -/*! -\class QmlDesigner::InvalidModelNodeException -\ingroup CoreExceptions -\brief The InvalidModelNodeException class provides an exception for an invalid -model node. - -\see ModelNode -*/ -namespace QmlDesigner { -/*! - Constructs an exception. \a line uses the __LINE__ macro, - \a function uses the __FUNCTION__ or the Q_FUNC_INFO macro, and \a file uses - the __FILE__ macro. -*/ -InvalidModelNodeException::InvalidModelNodeException(int line, - const QByteArray &function, - const QByteArray &file) - : Exception(line, function, file) -{ - createWarning(); -} - -/*! - Returns the type of this exception as a string. -*/ -QString InvalidModelNodeException::type() const -{ - return QLatin1String("InvalidModelNodeException"); -} - -} diff --git a/src/plugins/qmldesigner/libs/designercore/exceptions/invalidmodelstateexception.cpp b/src/plugins/qmldesigner/libs/designercore/exceptions/invalidmodelstateexception.cpp deleted file mode 100644 index 3087e33cbc4..00000000000 --- a/src/plugins/qmldesigner/libs/designercore/exceptions/invalidmodelstateexception.cpp +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#include "invalidmodelstateexception.h" - -/*! -\class QmlDesigner::InvalidModelStateException -\ingroup CoreExceptions -\brief The InvalidModelStateException class provides an exception for an -invalid model state. - - -\see ModelState -*/ -namespace QmlDesigner { -/*! - Constructs an exception. \a line uses the __LINE__ macro, - \a function uses the __FUNCTION__ or the Q_FUNC_INFO macro, and \a file uses - the __FILE__ macro. -*/ -InvalidModelStateException::InvalidModelStateException(int line, - const QByteArray &function, - const QByteArray &file) - : Exception(line, function, file) -{ - createWarning(); -} - -/*! - Returns the type of the exception as a string. -*/ -QString InvalidModelStateException::type() const -{ - return QLatin1String("InvalidModelStateException"); -} - -} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/libs/designercore/exceptions/invalidpropertyexception.cpp b/src/plugins/qmldesigner/libs/designercore/exceptions/invalidpropertyexception.cpp deleted file mode 100644 index e1468e6833f..00000000000 --- a/src/plugins/qmldesigner/libs/designercore/exceptions/invalidpropertyexception.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#include "invalidpropertyexception.h" -/*! -\class QmlDesigner::InvalidPropertyException -\ingroup CoreExceptions -\brief The InvalidPropertyException class provides an exception for an invalid -property. - -\see AbstractProperty -*/ -namespace QmlDesigner { -/*! - Constructs an exception. \a line uses the __LINE__ macro, - \a function uses the __FUNCTION__ or the Q_FUNC_INFO macro, and \a file uses - the __FILE__ macro. -*/ -InvalidPropertyException::InvalidPropertyException(int line, - const QByteArray &function, - const QByteArray &file, - const QByteArray &argument) - : Exception(line, function, file), m_argument(QString::fromLatin1(argument)) -{ - createWarning(); -} - -/*! - Returns the type of this exception as a string. -*/ -QString InvalidPropertyException::type() const -{ - return QLatin1String("InvalidPropertyException"); -} - -/*! - Returns the argument of the property of this exception as a string. -*/ -QString InvalidPropertyException::argument() const -{ - return m_argument; -} - -} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/libs/designercore/exceptions/invalidqmlsourceexception.cpp b/src/plugins/qmldesigner/libs/designercore/exceptions/invalidqmlsourceexception.cpp deleted file mode 100644 index d45948e2193..00000000000 --- a/src/plugins/qmldesigner/libs/designercore/exceptions/invalidqmlsourceexception.cpp +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#include "invalidqmlsourceexception.h" - -/*! -\class QmlDesigner::InvalidQmlSourceException -\ingroup CoreExceptions -\brief The InvalidQmlSourceException class provides an exception for invalid QML -source code. - -*/ -namespace QmlDesigner { -/*! - Constructs an exception for \qmlSource. \a line uses the __LINE__ macro, - \a function uses the __FUNCTION__ or the Q_FUNC_INFO macro, and \a file uses - the __FILE__ macro. -*/ -InvalidQmlSourceException::InvalidQmlSourceException(int line, - const QByteArray &function, - const QByteArray &file, - const QByteArray &qmlSource) - : Exception(line, function, file, QString::fromUtf8(qmlSource)) -{ - createWarning(); -} - -/*! - Returns the type of the exception as a string. -*/ -QString InvalidQmlSourceException::type() const -{ - return QLatin1String("InvalidQmlSourceException"); -} - -} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/libs/designercore/exceptions/invalidreparentingexception.cpp b/src/plugins/qmldesigner/libs/designercore/exceptions/invalidreparentingexception.cpp deleted file mode 100644 index 3071fb3b1ff..00000000000 --- a/src/plugins/qmldesigner/libs/designercore/exceptions/invalidreparentingexception.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#include "invalidreparentingexception.h" -/*! -\class QmlDesigner::InvalidReparentingException -\ingroup CoreExceptions - \brief The InvalidReparentingException class provides an exception for - invalid reparenting. - -\see ModelNode -*/ -namespace QmlDesigner { -/*! - Constructs an exception. \a line uses the __LINE__ macro, - \a function uses the __FUNCTION__ or the Q_FUNC_INFO macro, and \a file uses - the __FILE__ macro. -*/ -InvalidReparentingException::InvalidReparentingException(int line, - const QByteArray &function, - const QByteArray &file) - : Exception(line, function, file) -{ - createWarning(); -} - -/*! -Returns the type of this exception as a string. -*/ -QString InvalidReparentingException::type() const -{ - return QLatin1String("InvalidReparentingException"); -} -} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/libs/designercore/exceptions/invalidslideindexexception.cpp b/src/plugins/qmldesigner/libs/designercore/exceptions/invalidslideindexexception.cpp deleted file mode 100644 index de821559224..00000000000 --- a/src/plugins/qmldesigner/libs/designercore/exceptions/invalidslideindexexception.cpp +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#include "invalidslideindexexception.h" - -/*! -\class QmlDesigner::InvalidSlideIndexException -\ingroup CoreExceptions -\brief The InvalidSlideIndexException class provides an exception for an invalid -index for a slide. - -\see ModelNode -*/ -namespace QmlDesigner { -/*! - Constructs an exception. \a line uses the __LINE__ macro, - \a function uses the __FUNCTION__ or the Q_FUNC_INFO macro, and \a file uses - the __FILE__ macro. -*/ -InvalidSlideIndexException::InvalidSlideIndexException(int line, - const QByteArray &function, - const QByteArray &file) - : Exception(line, function, file) -{ - createWarning(); -} - -/*! - Returns the type of the exception as a string. -*/ -QString InvalidSlideIndexException::type() const -{ - return QLatin1String("InvalidSlideIndexException"); -} - -} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/libs/designercore/exceptions/notimplementedexception.cpp b/src/plugins/qmldesigner/libs/designercore/exceptions/notimplementedexception.cpp deleted file mode 100644 index 7c78ceaa71f..00000000000 --- a/src/plugins/qmldesigner/libs/designercore/exceptions/notimplementedexception.cpp +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#include "notimplementedexception.h" - -namespace QmlDesigner { - -NotImplementedException::NotImplementedException(int line, - const QByteArray &function, - const QByteArray &file): - Exception(line, function, file) -{ -} - -QString NotImplementedException::type() const -{ - return QLatin1String("NotImplementedException"); -} -} diff --git a/src/plugins/qmldesigner/libs/designercore/exceptions/removebasestateexception.cpp b/src/plugins/qmldesigner/libs/designercore/exceptions/removebasestateexception.cpp deleted file mode 100644 index 7bdba288e37..00000000000 --- a/src/plugins/qmldesigner/libs/designercore/exceptions/removebasestateexception.cpp +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#include "removebasestateexception.h" - -/*! -\class QmlDesigner::RemoveBaseStateException -\ingroup CoreExceptions - \brief The RemoveBaseStateException class provides an exception if you try - to remove a BaseState. - -/see NodeState ModelState -*/ -namespace QmlDesigner { -/*! - Constructs an exception. \a line uses the __LINE__ macro, - \a function uses the __FUNCTION__ or the Q_FUNC_INFO macro, and \a file uses - the __FILE__ macro. -*/ -RemoveBaseStateException::RemoveBaseStateException(int line, - const QByteArray &function, - const QByteArray &file) - : Exception(line, function, file) -{ - createWarning(); -} - -/*! -Returns the type of this exception as a string. -*/ -QString RemoveBaseStateException::type() const -{ - return QLatin1String("RemoveBaseStateException"); -} - -} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/libs/designercore/exceptions/rewritingexception.cpp b/src/plugins/qmldesigner/libs/designercore/exceptions/rewritingexception.cpp index d2b3b3d8399..7406124d0d8 100644 --- a/src/plugins/qmldesigner/libs/designercore/exceptions/rewritingexception.cpp +++ b/src/plugins/qmldesigner/libs/designercore/exceptions/rewritingexception.cpp @@ -3,25 +3,38 @@ #include "rewritingexception.h" -using namespace QmlDesigner; +namespace QmlDesigner { -RewritingException::RewritingException(int line, - const QByteArray &function, - const QByteArray &file, - const QByteArray &description, - const QString &documentTextContent) - : Exception(line, function, file, QString::fromUtf8(description)) +using namespace Qt::StringLiterals; + +RewritingException::RewritingException(const QString &description, + const QString &documentTextContent, + const Sqlite::source_location &location) + : Exception(location) + , m_description{description} , m_documentTextContent(documentTextContent) { createWarning(); } +const char *RewritingException::what() const noexcept +{ + return "RewritingException"; +} + +QString RewritingException::description() const +{ + return defaultDescription(location()) + ": " + m_description; +} + QString RewritingException::type() const { - return QLatin1String("RewritingException"); + return "RewritingException"_L1; } QString RewritingException::documentTextContent() const { return m_documentTextContent; } + +} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/libs/designercore/include/exception.h b/src/plugins/qmldesigner/libs/designercore/include/exception.h index a6337277e91..d3373043858 100644 --- a/src/plugins/qmldesigner/libs/designercore/include/exception.h +++ b/src/plugins/qmldesigner/libs/designercore/include/exception.h @@ -5,55 +5,40 @@ #include +#include + #include #include namespace QmlDesigner { -class QMLDESIGNERCORE_EXPORT Exception +class QMLDESIGNERCORE_EXPORT Exception : public Sqlite::Exception { public: - Exception(int line, - const QByteArray &function, - const QByteArray &file); - virtual ~Exception(); - virtual QString type() const = 0; - QString description() const; + virtual QString description() const = 0; + void showException(const QString &title = QString()) const; static void setShowExceptionCallback( std::function callback); int line() const; - QString function() const; QString file() const; - QString backTrace() const; - void createWarning() const; - - static void setShouldAssert(bool assert); - static bool shouldAssert(); static void setWarnAboutException(bool warn); static bool warnAboutException(); + friend QDebug operator<<(QDebug debug, const Exception &exception); + protected: - Exception(int line, - const QByteArray &function, - const QByteArray &file, - const QString &description); - static QString defaultDescription(int line, const QByteArray &function, const QByteArray &file); - QString defaultDescription(); + Exception(const Sqlite::source_location &location = Sqlite::source_location::current()) + : Sqlite::Exception{location} + {} + + static QString defaultDescription(const Sqlite::source_location &sourceLocation); + void createWarning() const; private: - const int m_line; - const QString m_function; - const QString m_file; - const QString m_description; - const QString m_backTrace; - static bool s_shouldAssert; static bool s_warnAboutException; }; - -QMLDESIGNERCORE_EXPORT QDebug operator<<(QDebug debug, const Exception &exception); - } diff --git a/src/plugins/qmldesigner/libs/designercore/include/invalidargumentexception.h b/src/plugins/qmldesigner/libs/designercore/include/invalidargumentexception.h index 0f7830c9941..b4843fb86d4 100644 --- a/src/plugins/qmldesigner/libs/designercore/include/invalidargumentexception.h +++ b/src/plugins/qmldesigner/libs/designercore/include/invalidargumentexception.h @@ -11,24 +11,20 @@ namespace QmlDesigner { class QMLDESIGNERCORE_EXPORT InvalidArgumentException : public Exception { public: - InvalidArgumentException(int line, - const QByteArray &function, - const QByteArray &file, - const QByteArray &argument); + InvalidArgumentException( + const QString &argument, + const Sqlite::source_location &location = Sqlite::source_location::current()); + const char *what() const noexcept override; + + QString description() const override; QString type() const override; QString argument() const; protected: - InvalidArgumentException(int line, - const QByteArray &function, - const QByteArray &file, - const QByteArray &argument, - const QString &description); - static QString invalidArgumentDescription(int line, - const QByteArray &function, - const QByteArray &file, - const QByteArray &argument); + static QString invalidArgumentDescription(const Sqlite::source_location &location, + const QString &argument); + private: const QString m_argument; }; diff --git a/src/plugins/qmldesigner/libs/designercore/include/invalididexception.h b/src/plugins/qmldesigner/libs/designercore/include/invalididexception.h deleted file mode 100644 index 910d282ec13..00000000000 --- a/src/plugins/qmldesigner/libs/designercore/include/invalididexception.h +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#pragma once - -#include "invalidargumentexception.h" - -namespace QmlDesigner { - -class QMLDESIGNERCORE_EXPORT InvalidIdException : public InvalidArgumentException -{ -public: - enum Reason { InvalidCharacters, DuplicateId }; - - InvalidIdException(int line, - const QByteArray &function, - const QByteArray &file, - const QByteArray &id, - Reason reason); - - InvalidIdException(int line, - const QByteArray &function, - const QByteArray &file, - const QByteArray &id, - const QByteArray &description); - - QString type() const override; -}; - -} diff --git a/src/plugins/qmldesigner/libs/designercore/include/invalidmetainfoexception.h b/src/plugins/qmldesigner/libs/designercore/include/invalidmetainfoexception.h index 1813b4e3888..cce7692afed 100644 --- a/src/plugins/qmldesigner/libs/designercore/include/invalidmetainfoexception.h +++ b/src/plugins/qmldesigner/libs/designercore/include/invalidmetainfoexception.h @@ -10,10 +10,10 @@ namespace QmlDesigner { class QMLDESIGNERCORE_EXPORT InvalidMetaInfoException : public Exception { public: - InvalidMetaInfoException(int line, - const QByteArray &function, - const QByteArray &file); + InvalidMetaInfoException( + const Sqlite::source_location &location = Sqlite::source_location::current()); + QString description() const override; QString type() const override; }; diff --git a/src/plugins/qmldesigner/libs/designercore/include/invalidmodelnodeexception.h b/src/plugins/qmldesigner/libs/designercore/include/invalidmodelnodeexception.h deleted file mode 100644 index f48f69ac1a2..00000000000 --- a/src/plugins/qmldesigner/libs/designercore/include/invalidmodelnodeexception.h +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#pragma once - -#include "exception.h" - -namespace QmlDesigner { - -class QMLDESIGNERCORE_EXPORT InvalidModelNodeException : public Exception -{ -public: - InvalidModelNodeException(int line, - const QByteArray &function, - const QByteArray &file); - - QString type() const override; - -}; - -} diff --git a/src/plugins/qmldesigner/libs/designercore/include/invalidmodelstateexception.h b/src/plugins/qmldesigner/libs/designercore/include/invalidmodelstateexception.h deleted file mode 100644 index 966f465715b..00000000000 --- a/src/plugins/qmldesigner/libs/designercore/include/invalidmodelstateexception.h +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#pragma once - -#include "exception.h" - -namespace QmlDesigner { - -class QMLDESIGNERCORE_EXPORT InvalidModelStateException : public Exception -{ -public: - InvalidModelStateException(int line, - const QByteArray &function, - const QByteArray &file); - - - QString type() const override; -}; - -} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/libs/designercore/include/invalidpropertyexception.h b/src/plugins/qmldesigner/libs/designercore/include/invalidpropertyexception.h deleted file mode 100644 index adbd2c6aaf4..00000000000 --- a/src/plugins/qmldesigner/libs/designercore/include/invalidpropertyexception.h +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#pragma once - -#include "exception.h" - -namespace QmlDesigner { - -class QMLDESIGNERCORE_EXPORT InvalidPropertyException : public Exception -{ -public: - InvalidPropertyException(int line, - const QByteArray &function, - const QByteArray &file, - const QByteArray &argument); - - QString type() const override; - QString argument() const; - -private: - const QString m_argument; -}; - -} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/libs/designercore/include/invalidqmlsourceexception.h b/src/plugins/qmldesigner/libs/designercore/include/invalidqmlsourceexception.h deleted file mode 100644 index e403821dc25..00000000000 --- a/src/plugins/qmldesigner/libs/designercore/include/invalidqmlsourceexception.h +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#pragma once - -#include - -namespace QmlDesigner { - -class QMLDESIGNERCORE_EXPORT InvalidQmlSourceException : public QmlDesigner::Exception -{ -public: - InvalidQmlSourceException(int line, - const QByteArray &function, - const QByteArray &file, - const QByteArray &qmlSource = QByteArray()); - - QString type() const override; -}; - -} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/libs/designercore/include/invalidreparentingexception.h b/src/plugins/qmldesigner/libs/designercore/include/invalidreparentingexception.h deleted file mode 100644 index 6906f45b276..00000000000 --- a/src/plugins/qmldesigner/libs/designercore/include/invalidreparentingexception.h +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#pragma once - -#include "exception.h" - -namespace QmlDesigner { - -class QMLDESIGNERCORE_EXPORT InvalidReparentingException : public Exception -{ -public: - InvalidReparentingException(int line, - const QByteArray &function, - const QByteArray &file); - - QString type() const override; -}; - -} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/libs/designercore/include/invalidslideindexexception.h b/src/plugins/qmldesigner/libs/designercore/include/invalidslideindexexception.h deleted file mode 100644 index 70cea443e21..00000000000 --- a/src/plugins/qmldesigner/libs/designercore/include/invalidslideindexexception.h +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#pragma once - -#include "exception.h" - -namespace QmlDesigner { - -class QMLDESIGNERCORE_EXPORT InvalidSlideIndexException : public Exception -{ -public: - InvalidSlideIndexException(int line, - const QByteArray &function, - const QByteArray &file); - QString type() const override; -}; - -} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/libs/designercore/include/nodehints.h b/src/plugins/qmldesigner/libs/designercore/include/nodehints.h index 5992d7d64a3..f55bbfb8eff 100644 --- a/src/plugins/qmldesigner/libs/designercore/include/nodehints.h +++ b/src/plugins/qmldesigner/libs/designercore/include/nodehints.h @@ -10,7 +10,6 @@ #include #include "qmldesignercorelib_global.h" -#include "invalidmetainfoexception.h" QT_BEGIN_NAMESPACE class QDeclarativeContext; diff --git a/src/plugins/qmldesigner/libs/designercore/include/notimplementedexception.h b/src/plugins/qmldesigner/libs/designercore/include/notimplementedexception.h deleted file mode 100644 index 2f74eb5ec7c..00000000000 --- a/src/plugins/qmldesigner/libs/designercore/include/notimplementedexception.h +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#pragma once - -#include "exception.h" - -namespace QmlDesigner { - -class QMLDESIGNERCORE_EXPORT NotImplementedException : public Exception -{ -public: - NotImplementedException(int line, - const QByteArray &function, - const QByteArray &file); - - QString type() const override; - -}; - -} diff --git a/src/plugins/qmldesigner/libs/designercore/include/removebasestateexception.h b/src/plugins/qmldesigner/libs/designercore/include/removebasestateexception.h deleted file mode 100644 index be1d6d96f0b..00000000000 --- a/src/plugins/qmldesigner/libs/designercore/include/removebasestateexception.h +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#pragma once - -#include - -namespace QmlDesigner { - -class QMLDESIGNERCORE_EXPORT RemoveBaseStateException : public Exception -{ -public: - RemoveBaseStateException(int line, - const QByteArray &function, - const QByteArray &file); - - QString type() const override; - -}; -} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/libs/designercore/include/rewritingexception.h b/src/plugins/qmldesigner/libs/designercore/include/rewritingexception.h index 05bf3dc73fd..ee113c38f57 100644 --- a/src/plugins/qmldesigner/libs/designercore/include/rewritingexception.h +++ b/src/plugins/qmldesigner/libs/designercore/include/rewritingexception.h @@ -10,17 +10,19 @@ namespace QmlDesigner { class QMLDESIGNERCORE_EXPORT RewritingException: public Exception { public: - RewritingException(int line, - const QByteArray &function, - const QByteArray &file, - const QByteArray &description, - const QString &documentTextContent); + RewritingException(const QString &description, + const QString &documentTextContent, + const Sqlite::source_location &location = Sqlite::source_location::current()); + const char *what() const noexcept override; + + QString description() const override; QString type() const override; QString documentTextContent() const; private: - const QString m_documentTextContent; + QString m_description; + QString m_documentTextContent; }; } // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/libs/designercore/metainfo/itemlibraryentry.cpp b/src/plugins/qmldesigner/libs/designercore/metainfo/itemlibraryentry.cpp index c6a2903d04d..abeb1d863a8 100644 --- a/src/plugins/qmldesigner/libs/designercore/metainfo/itemlibraryentry.cpp +++ b/src/plugins/qmldesigner/libs/designercore/metainfo/itemlibraryentry.cpp @@ -5,7 +5,6 @@ #include "nodemetainfo.h" #include "qregularexpression.h" -#include #include #include diff --git a/src/plugins/qmldesigner/libs/designercore/metainfo/itemlibraryinfo.cpp b/src/plugins/qmldesigner/libs/designercore/metainfo/itemlibraryinfo.cpp index fc4a7b147ae..a63fe99f2e4 100644 --- a/src/plugins/qmldesigner/libs/designercore/metainfo/itemlibraryinfo.cpp +++ b/src/plugins/qmldesigner/libs/designercore/metainfo/itemlibraryinfo.cpp @@ -46,7 +46,7 @@ void ItemLibraryInfo::addEntries(const QList &entries, bool ov for (const ItemLibraryEntry &entry : entries) { const QString key = keyForEntry(entry); if (!overwriteDuplicate && m_nameToEntryHash.contains(key)) - throw InvalidMetaInfoException(__LINE__, __FUNCTION__, __FILE__); + throw InvalidMetaInfoException(); m_nameToEntryHash.insert(key, entry); } emit entriesChanged(); diff --git a/src/plugins/qmldesigner/libs/designercore/metainfo/metainforeader.cpp b/src/plugins/qmldesigner/libs/designercore/metainfo/metainforeader.cpp index 06bcac029f5..58b77375589 100644 --- a/src/plugins/qmldesigner/libs/designercore/metainfo/metainforeader.cpp +++ b/src/plugins/qmldesigner/libs/designercore/metainfo/metainforeader.cpp @@ -46,14 +46,14 @@ void MetaInfoReader::readMetaInfoFile(const QString &path, bool overwriteDuplica qWarning() << "readMetaInfoFile()" << path; qWarning() << errors(); m_parserState = Error; - throw InvalidMetaInfoException(__LINE__, __FUNCTION__, __FILE__); + throw InvalidMetaInfoException(); } if (!errors().isEmpty()) { qWarning() << "readMetaInfoFile()" << path; qWarning() << errors(); m_parserState = Error; - throw InvalidMetaInfoException(__LINE__, __FUNCTION__, __FILE__); + throw InvalidMetaInfoException(); } syncItemLibraryEntries(); } diff --git a/src/plugins/qmldesigner/libs/designercore/metainfo/nodemetainfo.cpp b/src/plugins/qmldesigner/libs/designercore/metainfo/nodemetainfo.cpp index 3d9a6058a4a..592b67c96b0 100644 --- a/src/plugins/qmldesigner/libs/designercore/metainfo/nodemetainfo.cpp +++ b/src/plugins/qmldesigner/libs/designercore/metainfo/nodemetainfo.cpp @@ -34,23 +34,6 @@ QT_WARNING_DISABLE_MSVC(4996) namespace QmlDesigner { -/*! -\class QmlDesigner::NodeMetaInfo -\ingroup CoreModel -\brief The NodeMetaInfo class provides meta information about a qml type. - -A NodeMetaInfo object can be created via ModelNode::metaInfo, or MetaInfo::nodeMetaInfo. - -The object can be invalid - you can check this by calling isValid(). -The object is invalid if you ask for meta information for -an non-existing qml property. Also the node meta info can become invalid -if the enclosing type is deregistered from the meta type system (e.g. -a sub component qml file is deleted). Trying to call any accessor functions on an invalid -NodeMetaInfo object will result in an InvalidMetaInfoException being thrown. - -\see QmlDesigner::MetaInfo, QmlDesigner::PropertyMetaInfo, QmlDesigner::EnumeratorMetaInfo -*/ - namespace { using Storage::ModuleKind; diff --git a/src/plugins/qmldesigner/libs/designercore/model/model.cpp b/src/plugins/qmldesigner/libs/designercore/model/model.cpp index c00d8513593..dcd4d7449fc 100644 --- a/src/plugins/qmldesigner/libs/designercore/model/model.cpp +++ b/src/plugins/qmldesigner/libs/designercore/model/model.cpp @@ -915,11 +915,7 @@ void ModelPrivate::resetModelByRewriter(const QString &description) if (m_rewriterView) { m_rewriterView->resetToLastCorrectQml(); - throw RewritingException(__LINE__, - __FUNCTION__, - __FILE__, - description.toUtf8(), - rewriterView()->textModifierContent()); + throw RewritingException(description, rewriterView()->textModifierContent()); } } diff --git a/src/plugins/qmldesigner/libs/designercore/model/nodeabstractproperty.cpp b/src/plugins/qmldesigner/libs/designercore/model/nodeabstractproperty.cpp index 668959f0a18..bad9c95cb0b 100644 --- a/src/plugins/qmldesigner/libs/designercore/model/nodeabstractproperty.cpp +++ b/src/plugins/qmldesigner/libs/designercore/model/nodeabstractproperty.cpp @@ -3,9 +3,6 @@ #include "nodeabstractproperty.h" #include "nodeproperty.h" -#include "invalidmodelnodeexception.h" -#include "invalidpropertyexception.h" -#include "invalidreparentingexception.h" #include "internalnodeabstractproperty.h" #include "internalnode_p.h" #include "model.h" diff --git a/src/plugins/qmldesigner/libs/designercore/rewriter/rewriterview.cpp b/src/plugins/qmldesigner/libs/designercore/rewriter/rewriterview.cpp index 4f9764f81c9..02f5c2f05d3 100644 --- a/src/plugins/qmldesigner/libs/designercore/rewriter/rewriterview.cpp +++ b/src/plugins/qmldesigner/libs/designercore/rewriter/rewriterview.cpp @@ -480,11 +480,7 @@ void RewriterView::applyChanges() qDebug().noquote() << "RewriterView::applyChanges() got called while in error state. Will " "do a quick-exit now."; qDebug().noquote() << "Content: " << content; - throw RewritingException(__LINE__, - __FUNCTION__, - __FILE__, - "RewriterView::applyChanges() already in error state", - content); + throw RewritingException("RewriterView::applyChanges() already in error state", content); } m_differenceHandling = Validate; @@ -508,11 +504,7 @@ void RewriterView::applyChanges() qDebug().noquote() << "Content: " << content; if (!errors().isEmpty()) qDebug().noquote() << "Error:" << errors().constFirst().description(); - throw RewritingException(__LINE__, - __FUNCTION__, - __FILE__, - qPrintable(m_rewritingErrorMessage), - content); + throw RewritingException(m_rewritingErrorMessage, content); } } diff --git a/src/plugins/qmldesigner/qmldesignerplugin.cpp b/src/plugins/qmldesigner/qmldesignerplugin.cpp index 5b35fd5b93d..1e29a09c462 100644 --- a/src/plugins/qmldesigner/qmldesignerplugin.cpp +++ b/src/plugins/qmldesigner/qmldesignerplugin.cpp @@ -233,12 +233,6 @@ static bool documentIsAlreadyOpen(DesignDocument *designDocument, Core::IEditor && designDocument->fileName() == editor->document()->filePath(); } -static bool shouldAssertInException() -{ - QProcessEnvironment processEnvironment = QProcessEnvironment::systemEnvironment(); - return !processEnvironment.value("QMLDESIGNER_ASSERT_ON_EXCEPTION").isEmpty(); -} - static bool warningsForQmlFilesInsteadOfUiQmlEnabled() { return QmlDesignerPlugin::settings().value(DesignerSettingsKey::WARNING_FOR_QML_FILES_INSTEAD_OF_UIQML_FILES).toBool(); @@ -247,18 +241,6 @@ static bool warningsForQmlFilesInsteadOfUiQmlEnabled() QmlDesignerPlugin::QmlDesignerPlugin() { m_instance = this; - // Exceptions should never ever assert: they are handled in a number of - // places where it is actually VALID AND EXPECTED BEHAVIOUR to get an - // exception. - // If you still want to see exactly where the exception originally - // occurred, then you have various ways to do this: - // 1. set a breakpoint on the constructor of the exception - // 2. in gdb: "catch throw" or "catch throw Exception" - // 3. set a breakpoint on __raise_exception() - // And with gdb, you can even do this from your ~/.gdbinit file. - // DnD is not working with gdb so this is still needed to get a good stacktrace - - Exception::setShouldAssert(shouldAssertInException()); } QmlDesignerPlugin::~QmlDesignerPlugin() diff --git a/src/plugins/qmldesigner/qmltools/qml3dnode.cpp b/src/plugins/qmldesigner/qmltools/qml3dnode.cpp index 05e4bbf2aef..edb070b0f54 100644 --- a/src/plugins/qmldesigner/qmltools/qml3dnode.cpp +++ b/src/plugins/qmldesigner/qmltools/qml3dnode.cpp @@ -4,7 +4,6 @@ #include "qml3dnode.h" #include "auxiliarydataproperties.h" #include "bindingproperty.h" -#include "invalidmodelnodeexception.h" #include "nodehints.h" #include "nodelistproperty.h" #include "qmlanchors.h" diff --git a/src/plugins/qmldesigner/qmltools/qmlobjectnode.cpp b/src/plugins/qmldesigner/qmltools/qmlobjectnode.cpp index 33f7e9b494d..902d12e5c69 100644 --- a/src/plugins/qmldesigner/qmltools/qmlobjectnode.cpp +++ b/src/plugins/qmldesigner/qmltools/qmlobjectnode.cpp @@ -19,7 +19,6 @@ #include #include -#include #include diff --git a/src/plugins/qmldesigner/qmltools/qmlstate.cpp b/src/plugins/qmldesigner/qmltools/qmlstate.cpp index e76e4787d92..ad8b17e2c1e 100644 --- a/src/plugins/qmldesigner/qmltools/qmlstate.cpp +++ b/src/plugins/qmldesigner/qmltools/qmlstate.cpp @@ -5,7 +5,6 @@ #include "abstractview.h" #include #include -#include #include "bindingproperty.h" #include "qmlchangeset.h" #include "qmlitemnode.h" diff --git a/src/plugins/qmldesigner/qmltools/qmltimeline.cpp b/src/plugins/qmldesigner/qmltools/qmltimeline.cpp index 961aee6876f..31fde2af536 100644 --- a/src/plugins/qmldesigner/qmltools/qmltimeline.cpp +++ b/src/plugins/qmldesigner/qmltools/qmltimeline.cpp @@ -8,7 +8,6 @@ #include "qmltimelinekeyframegroup.h" #include -#include #include #include diff --git a/src/plugins/qmldesigner/qmltools/qmltimelinekeyframegroup.cpp b/src/plugins/qmldesigner/qmltools/qmltimelinekeyframegroup.cpp index c692ccaed04..2b3216f8031 100644 --- a/src/plugins/qmldesigner/qmltools/qmltimelinekeyframegroup.cpp +++ b/src/plugins/qmldesigner/qmltools/qmltimelinekeyframegroup.cpp @@ -7,7 +7,6 @@ #include "qmlitemnode.h" #include -#include #include #include diff --git a/tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp b/tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp index cac6711584c..13c7ce2700a 100644 --- a/tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp +++ b/tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp @@ -5,8 +5,6 @@ #include #include -#include -#include #include #include #include diff --git a/tests/unit/tests/testdesignercore/CMakeLists.txt b/tests/unit/tests/testdesignercore/CMakeLists.txt index 269029a20f6..5cdb2935e6e 100644 --- a/tests/unit/tests/testdesignercore/CMakeLists.txt +++ b/tests/unit/tests/testdesignercore/CMakeLists.txt @@ -69,16 +69,7 @@ extend_qtc_library(TestDesignerCore SOURCES exception.cpp invalidargumentexception.cpp - invalididexception.cpp invalidmetainfoexception.cpp - invalidmodelnodeexception.cpp - invalidmodelstateexception.cpp - invalidpropertyexception.cpp - invalidqmlsourceexception.cpp - invalidreparentingexception.cpp - invalidslideindexexception.cpp - notimplementedexception.cpp - removebasestateexception.cpp rewritingexception.cpp ) @@ -192,14 +183,7 @@ extend_qtc_library(TestDesignerCore imagecacheauxiliarydata.h import.h invalidargumentexception.h - invalididexception.h invalidmetainfoexception.h - invalidmodelnodeexception.h - invalidmodelstateexception.h - invalidpropertyexception.h - invalidqmlsourceexception.h - invalidreparentingexception.h - invalidslideindexexception.h iwidgetplugin.h mathutils.h modelfwd.h @@ -211,7 +195,6 @@ extend_qtc_library(TestDesignerCore nodelistproperty.h nodemetainfo.h nodeproperty.h - notimplementedexception.h objectpropertybinding.h projectstorageids.h propertybinding.h @@ -222,7 +205,6 @@ extend_qtc_library(TestDesignerCore qmldesignercorelib_exports.h qmldesignercorelib_global.h qmldesignercoreconstants.h - removebasestateexception.h rewritertransaction.h rewritingexception.h signalhandlerproperty.h