From 2840fc0aea329a339bd8d7756a0bbf128c352d2d Mon Sep 17 00:00:00 2001 From: Thomas Goyne Date: Sun, 25 Mar 2012 04:05:38 +0000 Subject: [PATCH] Replace most remaining uses of std::auto_ptr with agi::scoped_ptr Originally committed to SVN as r6604. --- aegisub/src/ass_exporter.cpp | 4 ++- aegisub/src/audio_provider_ram.cpp | 7 +++-- aegisub/src/dialog_style_editor.cpp | 2 +- aegisub/src/subs_preview.cpp | 48 +++++++++++------------------ aegisub/src/subs_preview.h | 18 +++++------ aegisub/src/text_file_writer.cpp | 12 ++------ aegisub/src/text_file_writer.h | 10 +++--- aegisub/src/video_context.h | 3 +- 8 files changed, 42 insertions(+), 62 deletions(-) diff --git a/aegisub/src/ass_exporter.cpp b/aegisub/src/ass_exporter.cpp index 7ea59705c..4c4836194 100644 --- a/aegisub/src/ass_exporter.cpp +++ b/aegisub/src/ass_exporter.cpp @@ -41,6 +41,8 @@ #include "ass_file.h" #include "include/aegisub/context.h" +#include + #ifndef AGI_PRE #include #endif @@ -115,7 +117,7 @@ AssFile *AssExporter::ExportTransform(wxWindow *export_dialog, bool copy) { } void AssExporter::Export(wxString const& filename, wxString const& charset, wxWindow *export_dialog) { - std::auto_ptr subs(ExportTransform(export_dialog, true)); + agi::scoped_ptr subs(ExportTransform(export_dialog, true)); subs->Save(filename, false, false, charset); } diff --git a/aegisub/src/audio_provider_ram.cpp b/aegisub/src/audio_provider_ram.cpp index 6aa4f517b..0abc827cd 100644 --- a/aegisub/src/audio_provider_ram.cpp +++ b/aegisub/src/audio_provider_ram.cpp @@ -36,8 +36,6 @@ #include "config.h" -#include - #include "audio_provider_ram.h" #include "audio_controller.h" @@ -45,12 +43,15 @@ #include "main.h" #include "utils.h" +#include +#include + #define CacheBits ((22)) #define CacheBlockSize ((1 << CacheBits)) RAMAudioProvider::RAMAudioProvider(AudioProvider *src, agi::BackgroundRunner *br) { - std::auto_ptr source(src); + agi::scoped_ptr source(src); samples_native_endian = source->AreSamplesNativeEndian(); diff --git a/aegisub/src/dialog_style_editor.cpp b/aegisub/src/dialog_style_editor.cpp index d0581caf3..4af9ef2e8 100644 --- a/aegisub/src/dialog_style_editor.cpp +++ b/aegisub/src/dialog_style_editor.cpp @@ -336,7 +336,7 @@ DialogStyleEditor::DialogStyleEditor(wxWindow *parent, AssStyle *style, agi::Con if (!SubtitlesProviderFactory::GetClasses().empty()) { PreviewText = new wxTextCtrl(this, -1, lagi_wxString(OPT_GET("Tool/Style Editor/Preview Text")->GetString())); previewButton = new ColourButton(this, -1, wxSize(45, 16), lagi_wxColour(OPT_GET("Colour/Style Editor/Background/Preview")->GetColour())); - SubsPreview = new SubtitlesPreview(this, -1, wxDefaultPosition, wxSize(100, 60), wxSUNKEN_BORDER, lagi_wxColour(OPT_GET("Colour/Style Editor/Background/Preview")->GetColour())); + SubsPreview = new SubtitlesPreview(this, wxSize(100, 60), wxSUNKEN_BORDER, lagi_wxColour(OPT_GET("Colour/Style Editor/Background/Preview")->GetColour())); SubsPreview->SetToolTip(_("Preview of current style")); SubsPreview->SetStyle(*style); diff --git a/aegisub/src/subs_preview.cpp b/aegisub/src/subs_preview.cpp index 0b42e77d4..82eabb3b7 100644 --- a/aegisub/src/subs_preview.cpp +++ b/aegisub/src/subs_preview.cpp @@ -50,17 +50,8 @@ #include "include/aegisub/subtitles_provider.h" #include "video_provider_dummy.h" - -/// @brief Constructor -/// @param parent -/// @param id -/// @param pos -/// @param size -/// @param winStyle -/// @param col -/// -SubtitlesPreview::SubtitlesPreview(wxWindow *parent,int id,wxPoint pos,wxSize size,int winStyle,wxColour col) -: wxWindow(parent,id,pos,size,winStyle) +SubtitlesPreview::SubtitlesPreview(wxWindow *parent, wxSize size, int winStyle, wxColour col) +: wxWindow(parent, -1, wxDefaultPosition, size, winStyle) , style(new AssStyle) , backColour(col) , subFile(new AssFile) @@ -78,6 +69,9 @@ SubtitlesPreview::SubtitlesPreview(wxWindow *parent,int id,wxPoint pos,wxSize si wxSizeEvent evt(size); OnSize(evt); UpdateBitmap(); + + Bind(wxEVT_PAINT, &SubtitlesPreview::OnPaint, this); + Bind(wxEVT_SIZE, &SubtitlesPreview::OnSize, this); } SubtitlesPreview::~SubtitlesPreview() { @@ -100,13 +94,21 @@ void SubtitlesPreview::SetText(wxString text) { } } +void SubtitlesPreview::SetColour(wxColour col) { + if (col != backColour) { + backColour = col; + vid.reset(new DummyVideoProvider(0.0, 10, bmp->GetWidth(), bmp->GetHeight(), backColour, true)); + UpdateBitmap(); + } +} + void SubtitlesPreview::UpdateBitmap() { - if (!vid.get()) return; + if (!vid) return; AegiVideoFrame frame; frame.CopyFrom(vid->GetFrame(0)); - if (provider.get()) { + if (provider) { try { provider->LoadSubtitles(subFile.get()); provider->DrawSubtitles(frame, 0.1); @@ -120,14 +122,8 @@ void SubtitlesPreview::UpdateBitmap() { Refresh(); } -BEGIN_EVENT_TABLE(SubtitlesPreview,wxWindow) - EVT_PAINT(SubtitlesPreview::OnPaint) - EVT_SIZE(SubtitlesPreview::OnSize) -END_EVENT_TABLE() - void SubtitlesPreview::OnPaint(wxPaintEvent &) { - wxPaintDC dc(this); - dc.DrawBitmap(*bmp,0,0); + wxPaintDC(this).DrawBitmap(*bmp, 0, 0); } void SubtitlesPreview::OnSize(wxSizeEvent &evt) { @@ -148,16 +144,8 @@ void SubtitlesPreview::OnSize(wxSizeEvent &evt) { "No subtitles provider", wxICON_ERROR | wxOK); } - subFile->SetScriptInfo("PlayResX", wxString::Format("%i", w)); - subFile->SetScriptInfo("PlayResY", wxString::Format("%i", h)); + subFile->SetScriptInfo("PlayResX", wxString::Format("%d", w)); + subFile->SetScriptInfo("PlayResY", wxString::Format("%d", h)); UpdateBitmap(); } - -void SubtitlesPreview::SetColour(wxColour col) { - if (col != backColour) { - backColour = col; - vid.reset(new DummyVideoProvider(0.0, 10, bmp->GetWidth(), bmp->GetHeight(), backColour, true)); - UpdateBitmap(); - } -} diff --git a/aegisub/src/subs_preview.h b/aegisub/src/subs_preview.h index c73860cc1..c3e57948b 100644 --- a/aegisub/src/subs_preview.h +++ b/aegisub/src/subs_preview.h @@ -35,11 +35,12 @@ /// #ifndef AGI_PRE -#include #include #include #endif +#include + class AssFile; class AssStyle; class SubtitlesProvider; @@ -49,19 +50,18 @@ class VideoProvider; /// @class SubtitlesPreview /// @brief Preview window to show a short string with a given ass style class SubtitlesPreview : public wxWindow { -private: /// The subtitle provider used to render the string - std::auto_ptr provider; + agi::scoped_ptr provider; /// Bitmap to render into - std::auto_ptr bmp; + agi::scoped_ptr bmp; /// The currently display style AssStyle* style; /// Video provider to render into - std::auto_ptr vid; + agi::scoped_ptr vid; /// Current background color wxColour backColour; /// Subtitle file containing the style and displayed line - std::auto_ptr subFile; + agi::scoped_ptr subFile; /// Line used to render the specified text AssDialogue* line; @@ -80,10 +80,6 @@ public: /// Set the background color void SetColour(wxColour col); - void Update() { UpdateBitmap(); } - - SubtitlesPreview(wxWindow *parent,int id,wxPoint pos,wxSize size,int style,wxColour colour); + SubtitlesPreview(wxWindow *parent, wxSize size, int style, wxColour colour); ~SubtitlesPreview(); - - DECLARE_EVENT_TABLE() }; diff --git a/aegisub/src/text_file_writer.cpp b/aegisub/src/text_file_writer.cpp index d999ba5aa..fa71bb951 100644 --- a/aegisub/src/text_file_writer.cpp +++ b/aegisub/src/text_file_writer.cpp @@ -54,7 +54,8 @@ /// TextFileWriter::TextFileWriter(wxString const& filename, wxString encoding) : file(new agi::io::Save(STD_STR(filename), true)) -, conv() { +, conv() +{ if (encoding.empty()) encoding = lagi_wxString(OPT_GET("App/Save Charset")->GetString()); if (encoding.Lower() != wxSTRING_ENCODING) conv.reset(new agi::charset::IconvWrapper(wxSTRING_ENCODING, encoding.utf8_str(), true)); @@ -68,17 +69,10 @@ TextFileWriter::TextFileWriter(wxString const& filename, wxString encoding) } } - -/// @brief DOCME -/// TextFileWriter::~TextFileWriter() { // Explicit empty destructor required with an auto_ptr to an incomplete class } - -/// @brief DOCME -/// @param line -/// @param addLineBreak void TextFileWriter::WriteLineToFile(wxString line, bool addLineBreak) { #ifdef _WIN32 if (addLineBreak) line += "\r\n"; @@ -94,7 +88,7 @@ void TextFileWriter::WriteLineToFile(wxString line, bool addLineBreak) { size_t len = line.length() * sizeof(wxStringCharType); #endif - if (conv.get()) { + if (conv) { std::string buf = conv->Convert(std::string(data, len)); file->Get().write(buf.data(), buf.size()); } diff --git a/aegisub/src/text_file_writer.h b/aegisub/src/text_file_writer.h index 11c1b90c6..542038a64 100644 --- a/aegisub/src/text_file_writer.h +++ b/aegisub/src/text_file_writer.h @@ -38,7 +38,6 @@ #ifndef AGI_PRE #include -#include #include #endif @@ -52,6 +51,8 @@ namespace agi { } } +#include + /// DOCME /// @class TextFileWriter @@ -60,13 +61,10 @@ namespace agi { /// DOCME class TextFileWriter { /// DOCME - std::auto_ptr file; + agi::scoped_ptr file; /// DOCME - std::auto_ptr conv; - - TextFileWriter(const TextFileWriter&); - TextFileWriter& operator=(const TextFileWriter&); + agi::scoped_ptr conv; public: TextFileWriter(wxString const& filename, wxString encoding=""); diff --git a/aegisub/src/video_context.h b/aegisub/src/video_context.h index 2e369ad1e..656b5ac83 100644 --- a/aegisub/src/video_context.h +++ b/aegisub/src/video_context.h @@ -44,6 +44,7 @@ #include #endif +#include #include #include @@ -83,7 +84,7 @@ class VideoContext : public wxEvtHandler { VideoProvider *videoProvider; /// Asynchronous provider of video frames - std::auto_ptr provider; + agi::scoped_ptr provider; /// Filename of currently open video wxString videoFile;