diff --git a/src/crossexport.hpp b/src/crossexport.hpp index 33ac51c..260cf05 100644 --- a/src/crossexport.hpp +++ b/src/crossexport.hpp @@ -18,42 +18,54 @@ void fillCross(FilledCrossword &cross){ } } -void exportToString(const FilledCrossword &cross, wxString &str_out, wxChar space = wxT('-')){ +wxString getGridString(const FilledCrossword &cross, wxChar space = wxT('-')){ const wxString LINE_END = wxTextFile::GetEOL(); + wxString t_string; + FilledCrossword t_cross(cross); if ( t_cross.ans.size() != 0 ) { fillCross(t_cross); } for (size_t i = 0; i < t_cross.grid.at(0).size(); ++i){ - wxString cur_line; for (size_t j = 0; j < t_cross.grid.size(); ++j){ if ( t_cross.grid.at(j).at(i) == CELL_BORDER ) - cur_line += space; + t_string += space; else - cur_line += t_cross.grid.at(j).at(i); + t_string += t_cross.grid.at(j).at(i); } - cur_line += LINE_END; - - str_out += cur_line; + t_string += LINE_END; } + return t_string; +} + +wxString getQuesString(const FilledCrossword &cross){ + const wxString LINE_END = wxTextFile::GetEOL(); + + wxString t_string; + if ( cross.ques.size() != 0 ) { // == print questions - str_out += _("Vertical words:") + LINE_END; + t_string += _("Vertical words:") + LINE_END; for (size_t i = 0; i < cross.words.size(); ++i){ if (cross.words.at(i).direct == false) - str_out += wxString::Format(wxT("%d. "), cross.words.at(i).ind) + t_string += wxString::Format(wxT("%d. "), cross.words.at(i).ind) + cross.ques.at(i) + LINE_END; } - str_out += _("Horisontal words:") + LINE_END; + t_string += _("Horisontal words:") + LINE_END; for (size_t i = 0; i < cross.words.size(); ++i){ if (cross.words.at(i).direct == true) - str_out += wxString::Format(wxT("%d. "), cross.words.at(i).ind) + t_string += wxString::Format(wxT("%d. "), cross.words.at(i).ind) + cross.ques.at(i) + LINE_END; } } + return t_string; +} + +void exportToString(const FilledCrossword &cross, wxString &str_out, wxChar space = wxT('-')){ + str_out += getGridString(cross, space) + getQuesString(cross); } bool exportToFile(const FilledCrossword &cross, const wxString path){ diff --git a/wxCrossGen/main.cpp b/wxCrossGen/main.cpp index 9e4819a..5953d2d 100644 --- a/wxCrossGen/main.cpp +++ b/wxCrossGen/main.cpp @@ -27,7 +27,15 @@ void MainFrame::onOpenGridClick(wxCommandEvent &event) { return; } tPath->SetValue(dlgOpen.GetPath()); + + // Clearing + _grid.clear(); + _ques.clear(); + _ans.clear(); + tOutput->Clear(); + readGrid(tPath->GetValue(), _grid); + SetGridImage(_grid); } @@ -129,21 +137,14 @@ void MainFrame::onGenerateClick(wxCommandEvent &event) { tOutput->Clear(); - tOutput->AppendText(_("Vertical words:\n")); + FilledCrossword t_cross; + t_cross.words = winfos; + t_cross.grid = _grid; + t_cross.ans = _ans; + t_cross.ques = _ques; - for (size_t i = 0; i < words_out.size(); ++i){ - if (winfos.at(i).direct == false) - tOutput->AppendText(wxString::Format(wxT("%d. "), winfos.at(i).ind) - + _ques.at(i) + wxT("\n")); - } + tOutput->AppendText(getQuesString(t_cross)); - tOutput->AppendText(_("Horisontal words:\n")); - - for (size_t i = 0; i < words_out.size(); ++i){ - if (winfos.at(i).direct == true) - tOutput->AppendText(wxString::Format(wxT("%d. "), winfos.at(i).ind) - + _ques.at(i) + wxT("\n")); - } if (winfos.size() == 0) throw 42; SetGridImage(_grid);