Structure changes, some bug fixing.
Now tOutput is clearing after loading new crossword. Generating string with questions and grid is two different functions. Some refactoring
This commit is contained in:
@@ -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();
|
const wxString LINE_END = wxTextFile::GetEOL();
|
||||||
|
|
||||||
|
wxString t_string;
|
||||||
|
|
||||||
FilledCrossword t_cross(cross);
|
FilledCrossword t_cross(cross);
|
||||||
if ( t_cross.ans.size() != 0 ) {
|
if ( t_cross.ans.size() != 0 ) {
|
||||||
fillCross(t_cross);
|
fillCross(t_cross);
|
||||||
}
|
}
|
||||||
for (size_t i = 0; i < t_cross.grid.at(0).size(); ++i){
|
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){
|
for (size_t j = 0; j < t_cross.grid.size(); ++j){
|
||||||
if ( t_cross.grid.at(j).at(i) == CELL_BORDER )
|
if ( t_cross.grid.at(j).at(i) == CELL_BORDER )
|
||||||
cur_line += space;
|
t_string += space;
|
||||||
else
|
else
|
||||||
cur_line += t_cross.grid.at(j).at(i);
|
t_string += t_cross.grid.at(j).at(i);
|
||||||
}
|
}
|
||||||
cur_line += LINE_END;
|
t_string += LINE_END;
|
||||||
|
|
||||||
str_out += cur_line;
|
|
||||||
}
|
}
|
||||||
|
return t_string;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxString getQuesString(const FilledCrossword &cross){
|
||||||
|
const wxString LINE_END = wxTextFile::GetEOL();
|
||||||
|
|
||||||
|
wxString t_string;
|
||||||
|
|
||||||
if ( cross.ques.size() != 0 ) { // == print questions
|
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){
|
for (size_t i = 0; i < cross.words.size(); ++i){
|
||||||
if (cross.words.at(i).direct == false)
|
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;
|
+ 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){
|
for (size_t i = 0; i < cross.words.size(); ++i){
|
||||||
if (cross.words.at(i).direct == true)
|
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;
|
+ 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){
|
bool exportToFile(const FilledCrossword &cross, const wxString path){
|
||||||
|
|||||||
@@ -27,7 +27,15 @@ void MainFrame::onOpenGridClick(wxCommandEvent &event) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
tPath->SetValue(dlgOpen.GetPath());
|
tPath->SetValue(dlgOpen.GetPath());
|
||||||
|
|
||||||
|
// Clearing
|
||||||
|
_grid.clear();
|
||||||
|
_ques.clear();
|
||||||
|
_ans.clear();
|
||||||
|
tOutput->Clear();
|
||||||
|
|
||||||
readGrid(tPath->GetValue(), _grid);
|
readGrid(tPath->GetValue(), _grid);
|
||||||
|
|
||||||
SetGridImage(_grid);
|
SetGridImage(_grid);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -129,21 +137,14 @@ void MainFrame::onGenerateClick(wxCommandEvent &event) {
|
|||||||
|
|
||||||
tOutput->Clear();
|
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){
|
tOutput->AppendText(getQuesString(t_cross));
|
||||||
if (winfos.at(i).direct == false)
|
|
||||||
tOutput->AppendText(wxString::Format(wxT("%d. "), winfos.at(i).ind)
|
|
||||||
+ _ques.at(i) + wxT("\n"));
|
|
||||||
}
|
|
||||||
|
|
||||||
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)
|
if (winfos.size() == 0)
|
||||||
throw 42;
|
throw 42;
|
||||||
SetGridImage(_grid);
|
SetGridImage(_grid);
|
||||||
|
|||||||
Reference in New Issue
Block a user