Use wx_ptr some more.
authorCarl Hetherington <cth@carlh.net>
Sat, 14 Jan 2023 23:16:30 +0000 (00:16 +0100)
committerCarl Hetherington <cth@carlh.net>
Sat, 14 Jan 2023 23:16:30 +0000 (00:16 +0100)
src/wx/text_panel.cc
src/wx/text_panel.h

index 94ec8506d65366395a12d592cf0960f6d5b771cc..ba6c07e76ca15d556a57a7c96e1445402390398b 100644 (file)
@@ -735,18 +735,13 @@ TextPanel::content_selection_changed ()
 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 ();
        }
 }
@@ -755,15 +750,10 @@ TextPanel::text_view_clicked ()
 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 ();
 }
 
index dc8f685f134cff5dfcf823a4e468c347b6b3f563..52ef4d1fcf820ad002319f21566cf58147bf1502 100644 (file)
@@ -20,6 +20,7 @@
 
 
 #include "content_sub_panel.h"
+#include "wx_ptr.h"
 
 
 class CheckBox;
@@ -100,9 +101,9 @@ private:
        wxStaticText* _stream_label;
        wxChoice* _stream;
        wxButton* _text_view_button;
-       TextView* _text_view = nullptr;
+       wx_ptr<TextView> _text_view;
        wxButton* _fonts_dialog_button;
-       FontsDialog* _fonts_dialog = nullptr;
+       wx_ptr<FontsDialog> _fonts_dialog;
        wxButton* _appearance_dialog_button;
        TextType _original_type;
        wxStaticText* _language_label = nullptr;