Check consistency of refer-to-DCP settings after adding content (#1456).
[dcpomatic.git] / src / tools / dcpomatic.cc
index a70d243d936b352847b805e3d4f9636290802384..db3d2205215bbe5cbaa344239ad5809a081d6221 100644 (file)
@@ -457,6 +457,7 @@ public:
                }
                if (_film) {
                        _film->Change.connect (boost::bind (&DOMFrame::film_change, this, _1));
+                       _film->Message.connect (boost::bind(&DOMFrame::film_message, this, _1));
                }
        }
 
@@ -466,6 +467,11 @@ public:
 
 private:
 
+       void film_message (string m)
+       {
+               message_dialog (this, std_to_wx(m));
+       }
+
        void film_change (ChangeType type)
        {
                if (type == CHANGE_TYPE_DONE) {
@@ -590,6 +596,26 @@ private:
 
        void file_close ()
        {
+               if (_film && _film->dirty ()) {
+
+                       FilmChangedClosingDialog* dialog = new FilmChangedClosingDialog (_film->name ());
+                       int const r = dialog->run ();
+                       delete dialog;
+
+                       switch (r) {
+                       case wxID_NO:
+                               /* Don't save and carry on to close */
+                               break;
+                       case wxID_YES:
+                               /* Save and carry on to close */
+                               _film->write_metadata ();
+                               break;
+                       case wxID_CANCEL:
+                               /* Stop */
+                               return;
+                       }
+               }
+
                set_film (shared_ptr<Film>());
        }
 
@@ -679,9 +705,9 @@ private:
                if (!_film->should_be_enough_disk_space (required, available, can_hard_link)) {
                        wxString message;
                        if (can_hard_link) {
-                               message = wxString::Format (_("The DCP for this film will take up about %.1f Gb, and the disk that you are using only has %.1f Gb available.  Do you want to continue anyway?"), required, available);
+                               message = wxString::Format (_("The DCP for this film will take up about %.1f GB, and the disk that you are using only has %.1f GB available.  Do you want to continue anyway?"), required, available);
                        } else {
-                               message = wxString::Format (_("The DCP and intermediate files for this film will take up about %.1f Gb, and the disk that you are using only has %.1f Gb available.  You would need half as much space if the filesystem supported hard links, but it does not.  Do you want to continue anyway?"), required, available);
+                               message = wxString::Format (_("The DCP and intermediate files for this film will take up about %.1f GB, and the disk that you are using only has %.1f GB available.  You would need half as much space if the filesystem supported hard links, but it does not.  Do you want to continue anyway?"), required, available);
                        }
                        if (!confirm_dialog (this, message)) {
                                return;