diff options
| author | Carl Hetherington <cth@carlh.net> | 2022-01-16 17:35:15 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2022-01-16 17:35:51 +0100 |
| commit | f5c8aa4a7dd65eb9c343cd88d6dcad2354b73808 (patch) | |
| tree | b003adfada121a8827510e8980e53e0acadf0228 /src/lib | |
| parent | cf7b7beb82606ca9a961bb705a3e2c550808b961 (diff) | |
Put * in the title bar when the DCP-o-matic project is modified (#1938).
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/film.cc | 8 | ||||
| -rw-r--r-- | src/lib/film.h | 6 |
2 files changed, 10 insertions, 4 deletions
diff --git a/src/lib/film.cc b/src/lib/film.cc index bedd526a5..57aa7a146 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -482,7 +482,7 @@ Film::write_metadata (boost::filesystem::path path) const /** Write state to our `metadata' file */ void -Film::write_metadata () const +Film::write_metadata () { DCPOMATIC_ASSERT (directory()); boost::filesystem::create_directories (directory().get()); @@ -2166,8 +2166,12 @@ Film::set_sign_language_video_language (optional<dcp::LanguageTag> lang) void -Film::set_dirty (bool dirty) const +Film::set_dirty (bool dirty) { + auto const changed = dirty != _dirty; _dirty = dirty; + if (changed) { + emit (boost::bind(boost::ref(DirtyChange), _dirty)); + } } diff --git a/src/lib/film.h b/src/lib/film.h index c59f03486..3fae7a85f 100644 --- a/src/lib/film.h +++ b/src/lib/film.h @@ -131,7 +131,7 @@ public: void use_template (std::string name); std::list<std::string> read_metadata (boost::optional<boost::filesystem::path> path = boost::optional<boost::filesystem::path> ()); - void write_metadata () const; + void write_metadata (); void write_metadata (boost::filesystem::path path) const; void write_template (boost::filesystem::path path) const; std::shared_ptr<xmlpp::Document> metadata (bool with_content_paths = true) const; @@ -479,6 +479,8 @@ public: */ mutable boost::signals2::signal<void ()> LengthChange; + boost::signals2::signal<void (bool)> DirtyChange; + /** Emitted when we have something important to tell the user */ boost::signals2::signal<void (std::string)> Message; @@ -505,7 +507,7 @@ private: void audio_analysis_finished (); void check_settings_consistency (); void maybe_set_container_and_resolution (); - void set_dirty (bool dirty) const; + void set_dirty (bool dirty); /** Log to write to */ std::shared_ptr<Log> _log; |
