#include "wx/about_dialog.h"
#include "wx/editable_list.h"
+#include "wx/id.h"
#include "wx/wx_signal_manager.h"
#include "wx/wx_util.h"
+#include "lib/constants.h"
#include "lib/cross.h"
#include "lib/dcpomatic_log.h"
#include "lib/null_log.h"
-#include "lib/util.h"
#include <dcp/cpl.h>
#include <dcp/dcp.h>
#include <dcp/reel.h>
enum {
- ID_file_open = 1,
+ ID_file_open = DCPOMATIC_MAIN_MENU,
ID_file_save,
};
ReelEditor(wxWindow* parent)
: wxDialog(parent, wxID_ANY, _("Edit reel"))
{
- auto sizer = new wxBoxSizer(wxVERTICAL);
+ _sizer = new wxBoxSizer(wxVERTICAL);
_notebook = new wxNotebook(this, wxID_ANY);
- sizer->Add(_notebook, wxEXPAND | wxALL, 1, DCPOMATIC_DIALOG_BORDER);
- SetSizerAndFit(sizer);
+ _sizer->Add(_notebook, wxEXPAND | wxALL, 1, DCPOMATIC_DIALOG_BORDER);
+ SetSizerAndFit(_sizer);
}
optional<shared_ptr<dcp::Reel>> get() {
if (_reel->main_subtitle()) {
_notebook->AddPage(new AssetPanel(_notebook, _reel->main_subtitle()), _("Subtitle"));
}
+
+ _sizer->Layout();
+ _sizer->SetSizeHints(this);
}
private:
wxNotebook* _notebook = nullptr;
+ wxSizer* _sizer = nullptr;
shared_ptr<dcp::Reel> _reel;
};
[](shared_ptr<dcp::Reel> reel, int) {
return reel->id();
},
- false,
+ EditableListTitle::INVISIBLE,
EditableListButton::EDIT
);
sizer->Add(_reels, wxGBPosition(r, 1), wxDefaultSpan, wxEXPAND);
void load_dcp (boost::filesystem::path path)
{
- _notebook->DeleteAllPages();
+ try {
+ _dcp = dcp::DCP(path);
+ _dcp->read();
+ } catch (std::runtime_error& e) {
+ error_dialog(this, _("Could not load DCP"), std_to_wx(e.what()));
+ return;
+ }
- _dcp = dcp::DCP(path);
- _dcp->read();
+ _notebook->DeleteAllPages();
for (auto cpl: _dcp->cpls()) {
_notebook->AddPage(new CPLPanel(_notebook, cpl), wx_to_std(cpl->annotation_text().get_value_or(cpl->id())));
}
void file_open ()
{
auto d = wxStandardPaths::Get().GetDocumentsDir();
- auto c = new wxDirDialog (this, _("Select DCP to open"), d, wxDEFAULT_DIALOG_STYLE | wxDD_DIR_MUST_EXIST);
+ wxDirDialog dialog(this, _("Select DCP to open"), d, wxDEFAULT_DIALOG_STYLE | wxDD_DIR_MUST_EXIST);
int r;
while (true) {
- r = c->ShowModal ();
- if (r == wxID_OK && c->GetPath() == wxStandardPaths::Get().GetDocumentsDir()) {
+ r = dialog.ShowModal();
+ if (r == wxID_OK && dialog.GetPath() == wxStandardPaths::Get().GetDocumentsDir()) {
error_dialog (this, _("You did not select a folder. Make sure that you select a folder before clicking Open."));
} else {
break;
}
if (r == wxID_OK) {
- boost::filesystem::path const dcp (wx_to_std (c->GetPath ()));
+ boost::filesystem::path const dcp(wx_to_std(dialog.GetPath()));
load_dcp (dcp);
}
-
- c->Destroy ();
}
void file_save ()
void help_about ()
{
- auto d = new AboutDialog (this);
- d->ShowModal ();
- d->Destroy ();
+ AboutDialog dialog(this);
+ dialog.ShowModal();
}
wxPanel* _overall_panel = nullptr;
bool OnInit () override
{
- wxSplashScreen* splash = nullptr;
+ wxSplashScreen* splash;
try {
wxInitAllImageHandlers ();