summaryrefslogtreecommitdiff
path: root/src/lib/job.h
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2023-03-16 01:47:03 +0100
committerCarl Hetherington <cth@carlh.net>2023-03-16 22:45:18 +0100
commita6c4b4fa16d9c6597e362044b875f3d6df80753f (patch)
tree3e340bf5fb3d4865961034c8e372364c21fe958f /src/lib/job.h
parent442fcbf670488eab7ddc21c3aa6e49f22d6c5f31 (diff)
Emit the state of the job with the Finished signals.
Diffstat (limited to 'src/lib/job.h')
-rw-r--r--src/lib/job.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/lib/job.h b/src/lib/job.h
index c8204c280..5562afc16 100644
--- a/src/lib/job.h
+++ b/src/lib/job.h
@@ -91,13 +91,19 @@ public:
return _film;
}
- void when_finished (boost::signals2::connection& connection, std::function<void()> finished);
+ enum class Result {
+ RESULT_OK,
+ RESULT_ERROR, // we can't have plain ERROR on Windows
+ RESULT_CANCELLED
+ };
+
+ void when_finished(boost::signals2::connection& connection, std::function<void(Result)> finished);
boost::signals2::signal<void()> Progress;
/** Emitted from the UI thread when the job is finished */
- boost::signals2::signal<void()> Finished;
+ boost::signals2::signal<void (Result)> Finished;
/** Emitted from the job thread when the job is finished */
- boost::signals2::signal<void()> FinishedImmediate;
+ boost::signals2::signal<void (Result)> FinishedImmediate;
protected:
@@ -114,6 +120,7 @@ protected:
FINISHED_CANCELLED ///< the job was cancelled
};
+ Result state_to_result(State state) const;
void set_state (State);
void set_error (std::string s, std::string d = "");
void set_message (std::string m);