From 8756dc180044f126fd6c371ea62d9c6fd5b03a76 Mon Sep 17 00:00:00 2001 From: Thomas Goyne Date: Tue, 22 Jun 2010 00:03:11 +0000 Subject: [PATCH] Add copy constructor to AssDialogue and use it in Clone Originally committed to SVN as r4561. --- aegisub/src/ass_dialogue.cpp | 33 ++++++++++++++++----------------- aegisub/src/ass_dialogue.h | 1 + 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/aegisub/src/ass_dialogue.cpp b/aegisub/src/ass_dialogue.cpp index 160935980..49a49a0c7 100644 --- a/aegisub/src/ass_dialogue.cpp +++ b/aegisub/src/ass_dialogue.cpp @@ -65,6 +65,21 @@ AssDialogue::AssDialogue() for (int i=0;i<4;i++) Margin[i] = 0; } +AssDialogue::AssDialogue(AssDialogue const& that) +: Comment(that.Comment) +, Layer(that.Layer) +, Start(that.Start) +, End(that.End) +, Style(that.Style) +, Actor(that.Actor) +, Effect(that.Effect) +, Text(that.Text) +{ + group = that.group; + Valid = that.Valid; + for (int i=0;i<4;i++) Margin[i] = that.Margin[i]; +} + /// @brief DOCME /// @param _data /// @param version @@ -750,23 +765,7 @@ wxString AssDialogue::GetStrippedText() const { /// @brief Clone /// @return AssEntry *AssDialogue::Clone() const { - // Create clone - AssDialogue *final = new AssDialogue(); - - // Copy data - final->group = group; - final->Valid = Valid; - final->Actor = Actor; - final->Comment = Comment; - final->Effect = Effect; - final->Layer = Layer; - for (int i=0;i<4;i++) final->Margin[i] = Margin[i]; - final->Start = Start; - final->End = End; - final->Style = Style; - final->Text = Text; - - return final; + return new AssDialogue(*this); } /// @brief Constructor AssDialogueBlock diff --git a/aegisub/src/ass_dialogue.h b/aegisub/src/ass_dialogue.h index 2f125c89d..9ac1e8fcb 100644 --- a/aegisub/src/ass_dialogue.h +++ b/aegisub/src/ass_dialogue.h @@ -257,6 +257,7 @@ public: AssEntry *Clone() const; AssDialogue(); + AssDialogue(AssDialogue const&); AssDialogue(wxString data,int version=1); ~AssDialogue(); };