projects
/
dcpomatic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5fd2715
)
Allow drag-and-drop of DKDMs onto the list in the KDM creator.
author
Carl Hetherington
<cth@carlh.net>
Tue, 3 Jan 2023 20:17:36 +0000
(21:17 +0100)
committer
Carl Hetherington
<cth@carlh.net>
Wed, 4 Jan 2023 09:25:10 +0000
(10:25 +0100)
src/tools/dcpomatic_kdm.cc
patch
|
blob
|
history
diff --git
a/src/tools/dcpomatic_kdm.cc
b/src/tools/dcpomatic_kdm.cc
index 90e315aab737722bd39da9a213b71880d26bc602..04b37b2c6bb1005b5c3fb03c1a1e3947c7dca71f 100644
(file)
--- a/
src/tools/dcpomatic_kdm.cc
+++ b/
src/tools/dcpomatic_kdm.cc
@@
-55,6
+55,7
@@
#include <dcp/exceptions.h>
#include <dcp/warnings.h>
LIBDCP_DISABLE_WARNINGS
#include <dcp/exceptions.h>
#include <dcp/warnings.h>
LIBDCP_DISABLE_WARNINGS
+#include <wx/dnd.h>
#include <wx/filepicker.h>
#include <wx/preferences.h>
#include <wx/splash.h>
#include <wx/filepicker.h>
#include <wx/preferences.h>
#include <wx/splash.h>
@@
-175,10
+176,31
@@
public:
right->Add(_dkdm_search, 0, wxTOP | wxBOTTOM, DCPOMATIC_SIZER_Y_GAP);
right->Add(_dkdm_search, 0, wxTOP | wxBOTTOM, DCPOMATIC_SIZER_Y_GAP);
+ class DKDMDropTarget : public wxFileDropTarget
+ {
+ public:
+ DKDMDropTarget(DOMFrame* frame)
+ : _frame(frame)
+ {}
+
+ bool OnDropFiles(wxCoord, wxCoord, wxArrayString const& filenames) override
+ {
+ for (size_t i = 0; i < filenames.GetCount(); ++i) {
+ _frame->add_dkdm(boost::filesystem::path(wx_to_std(filenames[0])));
+ }
+
+ return true;
+ }
+
+ private:
+ DOMFrame* _frame;
+ };
+
auto dkdm_sizer = new wxBoxSizer (wxHORIZONTAL);
_dkdm = new wxTreeCtrl (
overall_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTR_HIDE_ROOT | wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT
);
auto dkdm_sizer = new wxBoxSizer (wxHORIZONTAL);
_dkdm = new wxTreeCtrl (
overall_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTR_HIDE_ROOT | wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT
);
+ _dkdm->SetDropTarget(new DKDMDropTarget(this));
dkdm_sizer->Add(_dkdm, 1, wxEXPAND | wxBOTTOM, DCPOMATIC_SIZER_Y_GAP);
auto dkdm_buttons = new wxBoxSizer(wxVERTICAL);
_add_dkdm = new Button (overall_panel, _("Add..."));
dkdm_sizer->Add(_dkdm, 1, wxEXPAND | wxBOTTOM, DCPOMATIC_SIZER_Y_GAP);
auto dkdm_buttons = new wxBoxSizer(wxVERTICAL);
_add_dkdm = new Button (overall_panel, _("Add..."));