#include "subtitle_appearance_dialog.h"
#include "text_panel.h"
#include "text_view.h"
+#include "wx_ptr.h"
#include "wx_util.h"
#include "lib/analyse_subtitles_job.h"
#include "lib/dcp_content.h"
optional<DCPTextTrack> track;
if (_dcp_track->GetSelection() == int(_dcp_track->GetCount()) - 1) {
- auto d = new DCPTextTrackDialog (this);
- ScopeGuard sg = [d]() { d->Destroy(); };
+ auto d = make_wx<DCPTextTrackDialog>(this);
if (d->ShowModal() == wxID_OK) {
track = d->get();
}
void
TextPanel::text_view_clicked ()
{
- if (_text_view) {
- _text_view->Destroy ();
- _text_view = nullptr;
- }
-
auto c = _parent->selected_text ();
DCPOMATIC_ASSERT (c.size() == 1);
auto decoder = decoder_factory (_parent->film(), c.front(), false, false, shared_ptr<Decoder>());
if (decoder) {
- _text_view = new TextView (this, _parent->film(), c.front(), c.front()->text_of_original_type(_original_type), decoder, _parent->film_viewer());
+ _text_view.reset(this, _parent->film(), c.front(), c.front()->text_of_original_type(_original_type), decoder, _parent->film_viewer());
_text_view->Show ();
}
}
void
TextPanel::fonts_dialog_clicked ()
{
- if (_fonts_dialog) {
- _fonts_dialog->Destroy ();
- _fonts_dialog = nullptr;
- }
-
auto c = _parent->selected_text ();
DCPOMATIC_ASSERT (c.size() == 1);
- _fonts_dialog = new FontsDialog (this, c.front(), c.front()->text_of_original_type(_original_type));
+ _fonts_dialog.reset(this, c.front(), c.front()->text_of_original_type(_original_type));
_fonts_dialog->Show ();
}
auto c = _parent->selected_text ();
DCPOMATIC_ASSERT (c.size() == 1);
- auto d = new SubtitleAppearanceDialog (this, _parent->film(), c.front(), c.front()->text_of_original_type(_original_type));
- if (d->ShowModal () == wxID_OK) {
- d->apply ();
+ SubtitleAppearanceDialog dialog(this, _parent->film(), c.front(), c.front()->text_of_original_type(_original_type));
+ if (dialog.ShowModal() == wxID_OK) {
+ dialog.apply();
}
- d->Destroy ();
}
}
_loading_analysis = true;
+ ScopeGuard sg = [this]() {
+ _loading_analysis = false;
+ setup_sensitivity();
+ };
+
setup_sensitivity ();
_analysis.reset ();
auto content = _analysis_content.lock ();
if (!content) {
- _loading_analysis = false;
- setup_sensitivity ();
return;
}
if (!boost::filesystem::exists(path)) {
for (auto i: JobManager::instance()->get()) {
- if (dynamic_pointer_cast<AnalyseSubtitlesJob>(i)) {
+ if (dynamic_pointer_cast<AnalyseSubtitlesJob>(i) && !i->finished()) {
i->cancel ();
}
}
_parent->film(), content, _analysis_finished_connection, bind(&TextPanel::analysis_finished, this)
);
return;
- }
+ }
update_outline_subtitles_in_viewer ();
- _loading_analysis = false;
- setup_sensitivity ();
}
void
TextPanel::analysis_finished ()
{
+ _loading_analysis = false;
+
auto content = _analysis_content.lock ();
if (!content) {
- _loading_analysis = false;
setup_sensitivity ();
return;
}
*/
error_dialog (_parent->window(), _("Could not analyse subtitles."));
clear_outline_subtitles ();
- _loading_analysis = false;
setup_sensitivity ();
return;
}
- _loading_analysis = false;
try_to_load_analysis ();
}