Nag about deletion of DKDMs.
[dcpomatic.git] / src / tools / dcpomatic_kdm.cc
index 6c1fbd8004c0fedbda1b482fd0480d068aa14b51..2b0d25836dbf4cb0e77234f09a2fe10e99ef5f1f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2015-2017 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2015-2019 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
@@ -33,6 +33,7 @@
 #include "wx/editable_list.h"
 #include "wx/static_text.h"
 #include "wx/dcpomatic_button.h"
+#include "wx/nag_dialog.h"
 #include "lib/config.h"
 #include "lib/util.h"
 #include "lib/screen.h"
@@ -437,7 +438,7 @@ private:
                                        std_to_wx(e.what())
                                        );
                                return;
-                       } catch (dcp::KDMDecryptionError) {
+                       } catch (dcp::KDMDecryptionError &) {
                                error_dialog (
                                        this,
                                        _("Could not decrypt the DKDM.  Perhaps it was not created with the correct certificate.")
@@ -523,6 +524,14 @@ private:
                        return;
                }
 
+               if (NagDialog::maybe_nag (
+                           this, Config::NAG_DELETE_DKDM,
+                           _("You are about to remove a DKDM.  This will make it impossible to decrypt the DCP that the DKDM was made for, and it cannot be undone.  "
+                             "Are you sure?"),
+                           true)) {
+                       return;
+               }
+
                _dkdm->Delete (dkdm_to_id (removed));
                shared_ptr<DKDMGroup> dkdms = Config::instance()->dkdms ();
                dkdms->remove (removed);