mirror of
https://gitlab.com/manzerbredes/ochess.git
synced 2025-07-04 19:27:40 +00:00
Now games can be imported
This commit is contained in:
parent
e0a1894928
commit
b1a82ff568
5 changed files with 38 additions and 7 deletions
|
@ -24,5 +24,19 @@ void AppendGameDialog::OnImport(wxCommandEvent &event) {
|
|||
std::vector<GameBase *> new_games_bases;
|
||||
std::vector<Game *> new_games;
|
||||
|
||||
wxArrayInt selections;
|
||||
game_list->GetSelections(selections);
|
||||
|
||||
for (int &i : selections) {
|
||||
TabInfos *tinfo = tinfos[i];
|
||||
if (tinfo->type == TabInfos::BASE) {
|
||||
new_games_bases.push_back(static_cast<GameBase *>(tinfo->GetBase()));
|
||||
} else if (tinfo->type == TabInfos::GAME) {
|
||||
new_games.push_back(static_cast<Game *>(tinfo->GetGame()));
|
||||
}
|
||||
}
|
||||
|
||||
base->Save(to_ignore, new_games_bases, new_games);
|
||||
|
||||
this->Close();
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
#include "BaseTab.hpp"
|
||||
#include <wx/filename.h>
|
||||
#include "AppendGameDialog.hpp"
|
||||
#include <wx/filename.h>
|
||||
|
||||
BaseTab::BaseTab(wxFrame *parent, std::string base_file)
|
||||
: BasePanelBF(parent), base_file(base_file), TabInfos(TabInfos::BASE),
|
||||
|
@ -25,8 +25,11 @@ BaseTab::BaseTab(wxFrame *parent, std::string base_file)
|
|||
}
|
||||
|
||||
void BaseTab::OnImport(wxCommandEvent &event) {
|
||||
AppendGameDialog *dia=new AppendGameDialog(this,base);
|
||||
AppendGameDialog *dia = new AppendGameDialog(this, base);
|
||||
dia->ShowModal();
|
||||
game_list->DeleteAllItems();
|
||||
deleted.clear();
|
||||
LoadFile();
|
||||
}
|
||||
|
||||
void BaseTab::OnDelete(wxCommandEvent &event) {
|
||||
|
|
|
@ -84,6 +84,20 @@ void PGNGameBase::Save(std::vector<std::uint32_t> to_ignore,
|
|||
}
|
||||
|
||||
// Now add new games
|
||||
for (GameBase *current : new_games_bases) {
|
||||
current->Reset();
|
||||
while (current->NextGame()) {
|
||||
if (several) {
|
||||
new_pgn.Write("\n\n");
|
||||
} else {
|
||||
several = true;
|
||||
}
|
||||
Game *g = current->GetCurrentGame();
|
||||
new_pgn.Write(g->GetPGN());
|
||||
delete g;
|
||||
}
|
||||
}
|
||||
|
||||
for (Game *g : new_games) {
|
||||
if (several) {
|
||||
new_pgn.Write("\n\n");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue