projects
/
dcpomatic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
b6deee9
)
Improve thumbprint dialog; disallow thumbprint editing and make OK only sensitive...
author
Carl Hetherington
<cth@carlh.net>
Sat, 8 Apr 2023 20:36:41 +0000
(22:36 +0200)
committer
Carl Hetherington
<cth@carlh.net>
Sat, 8 Apr 2023 20:36:41 +0000
(22:36 +0200)
src/wx/screen_dialog.cc
patch
|
blob
|
history
diff --git
a/src/wx/screen_dialog.cc
b/src/wx/screen_dialog.cc
index 0ad8d9cf2e705136b518dc8c7a1d41ff4e6cd9dc..7578ca4ca9f7d856f6df44b193a31a13db300291 100644
(file)
--- a/
src/wx/screen_dialog.cc
+++ b/
src/wx/screen_dialog.cc
@@
-54,12
+54,14
@@
public:
: TableDialog (parent, _("Trusted Device"), 3, 1, true)
{
add (_("Thumbprint"), true);
: TableDialog (parent, _("Trusted Device"), 3, 1, true)
{
add (_("Thumbprint"), true);
- _thumbprint = add
(new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(300, -1)
));
+ _thumbprint = add
(new wxTextCtrl(this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(300, -1), wxTE_READONLY
));
_file = add (new Button(this, _("Load certificate...")));
layout ();
_file->Bind (wxEVT_BUTTON, bind(&TrustedDeviceDialog::load_certificate, this));
_file = add (new Button(this, _("Load certificate...")));
layout ();
_file->Bind (wxEVT_BUTTON, bind(&TrustedDeviceDialog::load_certificate, this));
+
+ setup_sensitivity();
}
void load_certificate ()
}
void load_certificate ()
@@
-72,6
+74,7
@@
public:
try {
_certificate = dcp::Certificate(dcp::file_to_string(dialog.paths()[0]));
_thumbprint->SetValue (std_to_wx(_certificate->thumbprint()));
try {
_certificate = dcp::Certificate(dcp::file_to_string(dialog.paths()[0]));
_thumbprint->SetValue (std_to_wx(_certificate->thumbprint()));
+ setup_sensitivity();
} catch (dcp::MiscError& e) {
error_dialog(this, wxString::Format(_("Could not load certificate (%s)"), std_to_wx(e.what())));
}
} catch (dcp::MiscError& e) {
error_dialog(this, wxString::Format(_("Could not load certificate (%s)"), std_to_wx(e.what())));
}
@@
-81,6
+84,7
@@
public:
{
_certificate = t.certificate ();
_thumbprint->SetValue (std_to_wx(t.thumbprint()));
{
_certificate = t.certificate ();
_thumbprint->SetValue (std_to_wx(t.thumbprint()));
+ setup_sensitivity();
}
optional<TrustedDevice> get ()
}
optional<TrustedDevice> get ()
@@
-96,6
+100,13
@@
public:
}
private:
}
private:
+ void setup_sensitivity()
+ {
+ auto ok = dynamic_cast<wxButton*>(FindWindowById(wxID_OK, this));
+ DCPOMATIC_ASSERT(ok);
+ ok->Enable(static_cast<bool>(_certificate));
+ }
+
wxTextCtrl* _thumbprint;
wxButton* _file;
boost::optional<dcp::Certificate> _certificate;
wxTextCtrl* _thumbprint;
wxButton* _file;
boost::optional<dcp::Certificate> _certificate;