From 52904f62176b76b0c36ce6a35a890251c6da0975 Mon Sep 17 00:00:00 2001 From: Rodrigo Braz Monteiro Date: Mon, 16 Jul 2007 03:22:11 +0000 Subject: [PATCH] demi's patches #3: Added a dialogue to text importing, asking which character to use as comment and actor separator. Originally committed to SVN as r1427. --- aegisub/Makefile.am | 1 + aegisub/dialog_options.cpp | 8 --- aegisub/dialog_text_import.cpp | 93 +++++++++++++++++++++++++++++++++ aegisub/dialog_text_import.h | 66 +++++++++++++++++++++++ aegisub/subtitle_format_txt.cpp | 4 ++ 5 files changed, 164 insertions(+), 8 deletions(-) create mode 100644 aegisub/dialog_text_import.cpp create mode 100644 aegisub/dialog_text_import.h diff --git a/aegisub/Makefile.am b/aegisub/Makefile.am index aad1f32e8..06175927d 100644 --- a/aegisub/Makefile.am +++ b/aegisub/Makefile.am @@ -151,6 +151,7 @@ aegisub_SOURCES = \ dialog_style_editor.cpp \ dialog_style_manager.cpp \ dialog_styling_assistant.cpp \ + dialog_text_import.cpp \ dialog_timing_processor.cpp \ dialog_tip.cpp \ dialog_translation.cpp \ diff --git a/aegisub/dialog_options.cpp b/aegisub/dialog_options.cpp index 7fa36d742..558451ec4 100644 --- a/aegisub/dialog_options.cpp +++ b/aegisub/dialog_options.cpp @@ -183,14 +183,6 @@ DialogOptions::DialogOptions(wxWindow *parent) wxComboBox *combo = new wxComboBox(filePage,-1,_T(""),wxDefaultPosition,wxDefaultSize,3,choices,wxCB_DROPDOWN | wxCB_READONLY); Bind(combo,_T("Autoload linked files")); fileSizer6->Add(combo,1,wxEXPAND); - fileSizer6->Add(new wxStaticText(filePage,-1,_("Text import actor separator:")),0,wxRIGHT | wxALIGN_CENTRE_VERTICAL,5); - edit = new wxTextCtrl(filePage,-1); - Bind(edit,_T("Text actor separator")); - fileSizer6->Add(edit,1,wxEXPAND); - fileSizer6->Add(new wxStaticText(filePage,-1,_("Text import comment starter:")),0,wxRIGHT | wxALIGN_CENTRE_VERTICAL,5); - edit = new wxTextCtrl(filePage,-1); - Bind(edit,_T("Text comment starter")); - fileSizer6->Add(edit,1,wxEXPAND); fileSizer6->AddGrowableCol(1,1); // Sizers diff --git a/aegisub/dialog_text_import.cpp b/aegisub/dialog_text_import.cpp new file mode 100644 index 000000000..1a809fdef --- /dev/null +++ b/aegisub/dialog_text_import.cpp @@ -0,0 +1,93 @@ +// Copyright (c) 2007, Alysson Souza e Silva +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// * Neither the name of the Aegisub Group nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +// ----------------------------------------------------------------------------- +// +// AEGISUB +// +// Website: http://aegisub.cellosoft.com +// Contact: mailto:zeratul@cellosoft.com +// + + +/////////// +// Headers +#include "dialog_text_import.h" +#include "options.h" + + +/////////////// +// Constructor +DialogTextImport::DialogTextImport() +: wxDialog(NULL , -1, _("Text import options"),wxDefaultPosition,wxDefaultSize) +{ + // Main controls + wxFlexGridSizer *fg = new wxFlexGridSizer(2, 5, 5); + wxBoxSizer *main_sizer = new wxBoxSizer(wxVERTICAL); + wxSizer *buttonSizer = new wxBoxSizer(wxHORIZONTAL); + edit_separator = new wxTextCtrl(this, EDIT_ACTOR_SEPARATOR, Options.AsText(_T("text actor separator"))); + edit_comment = new wxTextCtrl(this, EDIT_COMMENT_STARTER, Options.AsText(_T("text comment starter"))); + + // Dialog layout + fg->Add(new wxStaticText(this, -1, _("Actor separator:")), 0, wxALIGN_CENTRE_VERTICAL); + fg->Add(edit_separator, 0, wxEXPAND); + fg->Add(new wxStaticText(this, -1, _("Comment starter:")), 0, wxALIGN_CENTRE_VERTICAL); + fg->Add(edit_comment, 0, wxEXPAND); + + main_sizer->Add(fg, 1, wxALL|wxEXPAND, 5); + main_sizer->Add(CreateSeparatedButtonSizer(wxOK|wxCANCEL), 0, wxALL|wxEXPAND, 5); + main_sizer->SetSizeHints(this); + SetSizer(main_sizer); +} + +////////////// +// Destructor +DialogTextImport::~DialogTextImport() +{ +} + +void DialogTextImport::OnOK(wxCommandEvent &event) +{ + // Set options + Options.SetText(_T("text actor separator"), edit_separator->GetValue()); + Options.SetText(_T("text comment starter"), edit_comment->GetValue()); + Options.Save(); + + EndModal(wxID_OK); +} + +void DialogTextImport::OnCancel(wxCommandEvent &event) +{ + EndModal(wxID_CANCEL); +} + +/////////////// +// Event table +BEGIN_EVENT_TABLE(DialogTextImport,wxDialog) + EVT_BUTTON(wxID_OK,DialogTextImport::OnOK) + EVT_BUTTON(wxID_CANCEL,DialogTextImport::OnCancel) +END_EVENT_TABLE() diff --git a/aegisub/dialog_text_import.h b/aegisub/dialog_text_import.h new file mode 100644 index 000000000..908a0acef --- /dev/null +++ b/aegisub/dialog_text_import.h @@ -0,0 +1,66 @@ +// Copyright (c) 2007, Alysson Souza e Silva +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// * Neither the name of the Aegisub Group nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +// ----------------------------------------------------------------------------- +// +// AEGISUB +// +// Website: http://aegisub.cellosoft.com +// Contact: mailto:zeratul@cellosoft.com +// + +#ifndef _DIALOG_TEXT_IMPORT_H +#define _DIALOG_TEXT_IMPORT_H + +/////////// +// Headers +#include + + +class DialogTextImport : public wxDialog { +private: + wxTextCtrl *edit_separator; + wxTextCtrl *edit_comment; + + void OnOK(wxCommandEvent &event); + void OnCancel(wxCommandEvent &event); + +public: + DialogTextImport(); + virtual ~DialogTextImport(); + + DECLARE_EVENT_TABLE() +}; + + +/////// +// IDs +enum { + EDIT_ACTOR_SEPARATOR = 1480, + EDIT_COMMENT_STARTER, +}; +#endif diff --git a/aegisub/subtitle_format_txt.cpp b/aegisub/subtitle_format_txt.cpp index adfbd1d59..302191662 100644 --- a/aegisub/subtitle_format_txt.cpp +++ b/aegisub/subtitle_format_txt.cpp @@ -42,6 +42,7 @@ #include "ass_dialogue.h" #include "options.h" #include "version.h" +#include "dialog_text_import.h" ///////////// @@ -84,6 +85,9 @@ wxArrayString TXTSubtitleFormat::GetWriteWildcards() { ///////////// // Read file void TXTSubtitleFormat::ReadFile(wxString filename,wxString encoding) { using namespace std; + // Import options + DialogTextImport dlg; + if (dlg.ShowModal() == wxID_CANCEL) return; // Reader TextFileReader file(filename,encoding,false);