/* * Copyright (C) 2004-2005 Vadim Berezniker * http://www.kryptolus.com * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Make; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * http://www.gnu.org/copyleft/gpl.html * */ #include "stdafx.h" #include "common.h" #include "sabbu.h" #include "gui_export.h" #include "gui_export_text.h" #include "krySubSSA.h" #include "krySubWriter.h" #include "krySubWriterSSA.h" #include "krySubWriterTXT.h" void krySubWriterTXT::WriteRowData(gboolean use_comma, char *value, int *column_index) { char *buffer; if(*column_index != 0) { buffer = use_comma ? (char *) "," : (char *) " "; this->WriteString(buffer); } buffer = value; if(use_comma) buffer = kry_strdup_printf(KRY_LOC "\"%s\"", value); this->WriteString(buffer); if(use_comma) kry_free(buffer); (*column_index)++; } krySubWriterTXT::krySubWriterTXT(kryScript *script, char *filename, struct export_settings_text *settings) : krySubWriterSSA(script, filename), m_settings(settings) { } char *krySubWriterTXT::WriteScript() { if(!this->Open()) return strerror(errno); if(m_settings->use_comma) this->EnableFormatCSV(); else this->EnableFormatScript(); if(m_settings->double_space) this->EnableDoubleSpace(); this->WriteHeaders(); int filters = kryEvent::EVENT_DIALOG; if(m_settings->comments) filters |= kryEvent::EVENT_COMMENT_DIALOG; this->SetEventFilter(filters); if(m_settings->script_properties) { this->WriteProperty("Title"); this->WriteProperty("Original Script"); this->WriteProperty("Original Translation", FALSE); this->WriteProperty("Original Editing", FALSE); this->WriteProperty("Original Timing", FALSE); this->WriteProperty("Script Updated By", FALSE); this->WriteProperty("Update Details", FALSE); this->WriteString("\n"); } GList *columns = NULL; if(m_settings->column_start) { krySubSSAColumnInfo *column = this->GetColumnWrite(COLUMN_WRITE_START); if(!m_settings->use_comma) column->separator = ""; columns = g_list_append(columns, column); } if(m_settings->column_end) { krySubSSAColumnInfo *column = this->GetColumnWrite(COLUMN_WRITE_END); if(!m_settings->use_comma) column->separator = ""; columns = g_list_append(columns, column); } if(m_settings->column_style) { krySubSSAColumnInfo *column = this->GetColumnWrite(COLUMN_WRITE_STYLE); if(!m_settings->use_comma) column->separator = ""; columns = g_list_append(columns, column); } if(m_settings->column_name) { krySubSSAColumnInfo *column = this->GetColumnWrite(COLUMN_WRITE_NAME); if(!m_settings->use_comma) column->separator = ": "; columns = g_list_append(columns, column); } if(m_settings->column_text) { krySubSSAColumnInfo *column = this->GetColumnWrite(COLUMN_WRITE_TEXT); columns = g_list_append(columns, column); } this->WriteEvents(columns); return NULL; }