diff options
| author | Christian Kandeler <christian.kandeler@digia.com> | 2013-06-14 10:57:38 +0200 |
|---|---|---|
| committer | Joerg Bornemann <joerg.bornemann@digia.com> | 2013-06-18 10:57:25 +0200 |
| commit | b1d926024ddded2a43cc182c2d97839bb528def4 (patch) | |
| tree | fe9992446242f7aa25fe1e8c2e8875b8da86dbfe /src/lib/api | |
| parent | 1d5c5e16a582401f5d1af299f95b57936db84593 (diff) | |
| download | qbs-b1d926024ddded2a43cc182c2d97839bb528def4.tar.gz | |
Some minor improvements to the Error class.
- Rename "Error" to "ErrorInfo", to make clear that this class conveys
information about errors, including that there might not actually be
one.
- Rename "ErrorData" to "ErrorItem", to make clear that these are parts
of an aggregate structure.
- Introduce ErrorInfo::hasError() for quick checking of whether an error
occurred.
Change-Id: Icea6ed5240d6d14bd30e9cea189c6babd7004792
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'src/lib/api')
| -rw-r--r-- | src/lib/api/internaljobs.cpp | 13 | ||||
| -rw-r--r-- | src/lib/api/internaljobs.h | 9 | ||||
| -rw-r--r-- | src/lib/api/jobs.cpp | 6 | ||||
| -rw-r--r-- | src/lib/api/jobs.h | 5 | ||||
| -rw-r--r-- | src/lib/api/project.cpp | 4 |
5 files changed, 17 insertions, 20 deletions
diff --git a/src/lib/api/internaljobs.cpp b/src/lib/api/internaljobs.cpp index 7b9f9b3b6..b0eb5aee9 100644 --- a/src/lib/api/internaljobs.cpp +++ b/src/lib/api/internaljobs.cpp @@ -123,7 +123,7 @@ void InternalJob::storeBuildGraph(const TopLevelProjectConstPtr &project) { try { project->store(logger()); - } catch (const Error &error) { + } catch (const ErrorInfo &error) { logger().printWarning(error); } } @@ -147,7 +147,7 @@ void InternalSetupProjectJob::resolve(const SetupProjectParameters ¶meters) QTimer::singleShot(0, this, SLOT(start())); } -void InternalSetupProjectJob::reportError(const Error &error) +void InternalSetupProjectJob::reportError(const ErrorInfo &error) { setError(error); QMetaObject::invokeMethod(this, "finished", Qt::QueuedConnection, @@ -176,7 +176,7 @@ void InternalSetupProjectJob::doResolve() { try { execute(); - } catch (const Error &error) { + } catch (const ErrorInfo &error) { setError(error); } QMutexLocker locker(&m_runMutex); @@ -312,8 +312,7 @@ void InternalBuildJob::build(const TopLevelProjectPtr &project, void InternalBuildJob::handleFinished() { - if (m_executor->hasError()) - setError(m_executor->error()); + setError(m_executor->error()); project()->buildData->evaluationContext.clear(); storeBuildGraph(); m_executor->deleteLater(); @@ -355,7 +354,7 @@ void InternalCleanJob::doClean() try { ArtifactCleaner cleaner(logger(), observer()); cleaner.cleanup(project(), products(), m_options); - } catch (const Error &error) { + } catch (const ErrorInfo &error) { setError(error); } storeBuildGraph(); @@ -397,7 +396,7 @@ void InternalInstallJob::doInstall() { try { ProductInstaller(m_project, m_products, m_options, observer(), logger()).install(); - } catch (const Error &error) { + } catch (const ErrorInfo &error) { setError(error); } } diff --git a/src/lib/api/internaljobs.h b/src/lib/api/internaljobs.h index 23676f84b..0c1855082 100644 --- a/src/lib/api/internaljobs.h +++ b/src/lib/api/internaljobs.h @@ -59,8 +59,7 @@ class InternalJob : public QObject friend class JobObserver; public: void cancel(); - Error error() const { return m_error; } - bool hasError() const { return !error().entries().isEmpty(); } + ErrorInfo error() const { return m_error; } Logger logger() const { return m_logger; } bool timed() const { return m_timed; } @@ -69,7 +68,7 @@ protected: explicit InternalJob(const Logger &logger, QObject *parent = 0); JobObserver *observer() const { return m_observer; } - void setError(const Error &error) { m_error = error; } + void setError(const ErrorInfo &error) { m_error = error; } void setTimed(bool timed) { m_timed = timed; } void storeBuildGraph(const TopLevelProjectConstPtr &project); @@ -80,7 +79,7 @@ signals: void taskProgress(int value, Internal::InternalJob *job); private: - Error m_error; + ErrorInfo m_error; JobObserver * const m_observer; Logger m_logger; bool m_timed; @@ -95,7 +94,7 @@ public: ~InternalSetupProjectJob(); void resolve(const SetupProjectParameters ¶meters); - void reportError(const Error &error); + void reportError(const ErrorInfo &error); TopLevelProjectPtr project() const; diff --git a/src/lib/api/jobs.cpp b/src/lib/api/jobs.cpp index 47bda7191..c139ee215 100644 --- a/src/lib/api/jobs.cpp +++ b/src/lib/api/jobs.cpp @@ -125,7 +125,7 @@ AbstractJob::~AbstractJob() /*! * \brief Returns the error which caused this operation to fail, if it did fail. */ -Error AbstractJob::error() const +ErrorInfo AbstractJob::error() const { return internalJob()->error(); } @@ -163,7 +163,7 @@ void AbstractJob::handleFinished() { QBS_ASSERT(m_state != StateFinished, return); m_state = StateFinished; - emit finished(!hasError(), this); + emit finished(!error().hasError(), this); } @@ -198,7 +198,7 @@ void SetupProjectJob::resolve(const SetupProjectParameters ¶meters) job->resolve(parameters); } -void SetupProjectJob::reportError(const Error &error) +void SetupProjectJob::reportError(const ErrorInfo &error) { InternalSetupProjectJob * const job = qobject_cast<InternalSetupProjectJob *>(internalJob()); job->reportError(error); diff --git a/src/lib/api/jobs.h b/src/lib/api/jobs.h index 791ad2af7..f1e85c46b 100644 --- a/src/lib/api/jobs.h +++ b/src/lib/api/jobs.h @@ -60,8 +60,7 @@ public: enum State { StateRunning, StateCanceling, StateFinished }; State state() const { return m_state; } - Error error() const; - bool hasError() const { return !error().entries().isEmpty(); } + ErrorInfo error() const; void cancel(); @@ -98,7 +97,7 @@ private: SetupProjectJob(const Internal::Logger &logger, QObject *parent); void resolve(const SetupProjectParameters ¶meters); - void reportError(const Error &error); + void reportError(const ErrorInfo &error); }; class QBS_EXPORT BuildJob : public AbstractJob diff --git a/src/lib/api/project.cpp b/src/lib/api/project.cpp index f496f41e6..6ee129150 100644 --- a/src/lib/api/project.cpp +++ b/src/lib/api/project.cpp @@ -79,7 +79,7 @@ static void loadPlugins(const QStringList &_pluginPaths, const Logger &logger) } ScannerPluginManager::instance()->loadPlugins(pluginPaths, logger); - qRegisterMetaType<Error>("qbs::Error"); + qRegisterMetaType<ErrorInfo>("qbs::Error"); qRegisterMetaType<ProcessResult>("qbs::ProcessResult"); qRegisterMetaType<InternalJob *>("Internal::InternalJob *"); pluginsLoaded = true; @@ -305,7 +305,7 @@ SetupProjectJob *Project::setupProject(const SetupProjectParameters ¶meters, try { loadPlugins(parameters.pluginPaths(), logger); job->resolve(parameters); - } catch (const Error &error) { + } catch (const ErrorInfo &error) { // Throwing from here would complicate the API, so let's report the error the same way // as all others, via AbstractJob::error(). job->reportError(error); |
