summaryrefslogtreecommitdiff
path: root/src/lib/api
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@digia.com>2013-06-14 10:57:38 +0200
committerJoerg Bornemann <joerg.bornemann@digia.com>2013-06-18 10:57:25 +0200
commitb1d926024ddded2a43cc182c2d97839bb528def4 (patch)
treefe9992446242f7aa25fe1e8c2e8875b8da86dbfe /src/lib/api
parent1d5c5e16a582401f5d1af299f95b57936db84593 (diff)
downloadqbs-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.cpp13
-rw-r--r--src/lib/api/internaljobs.h9
-rw-r--r--src/lib/api/jobs.cpp6
-rw-r--r--src/lib/api/jobs.h5
-rw-r--r--src/lib/api/project.cpp4
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 &parameters)
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 &parameters);
- 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 &parameters)
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 &parameters);
- 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 &parameters,
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);