aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoic Guegan <manzerbredes@mailbox.org>2022-12-26 16:23:14 +0100
committerLoic Guegan <manzerbredes@mailbox.org>2022-12-26 16:23:14 +0100
commit3263bda23b8bccb9958471be064603d958f08253 (patch)
tree390886397e25b27d78993442ed560e19928211de
parent1c2d2a14ac1b8eab0504f657b02ab10290f92bf6 (diff)
Improve game import in db
-rw-r--r--src/MainWindow.cpp7
-rw-r--r--src/base_tab/BaseImportTab.cpp74
-rw-r--r--src/base_tab/BaseImportTab.hpp16
-rw-r--r--src/base_tab/BaseTab.cpp4
-rw-r--r--src/base_tab/BaseTab.hpp2
-rw-r--r--src/gui.cpp50
-rw-r--r--src/gui.h13
-rw-r--r--src/ochess.cpp2
-rw-r--r--src/ochess.hpp2
-rw-r--r--tools/wxFrameBuilder.fbp303
10 files changed, 353 insertions, 120 deletions
diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp
index dfc100c..62b17e1 100644
--- a/src/MainWindow.cpp
+++ b/src/MainWindow.cpp
@@ -59,8 +59,11 @@ MainWindow::MainWindow()
NewGame(std::shared_ptr<Game>(new Game()));
// Temporary TO REMOVE JUST FOR TESTS:
- //BaseTab *bt = new BaseTab((wxFrame *)notebook, "/home/loic/pgn/twic1467.pgn");
- //this->AddPage(bt,bt);
+ /*BaseTab *bt = new BaseTab((wxFrame *)notebook, "/home/loic/pgn/Milov.pgn");
+ this->AddPage(bt,bt);
+
+ bt = new BaseTab((wxFrame *)notebook, "/home/loic/pgn/Milov.pgn");
+ this->AddPage(bt,bt);*/
}
void MainWindow::AddPage(wxWindow* window, TabInfos* infos){
diff --git a/src/base_tab/BaseImportTab.cpp b/src/base_tab/BaseImportTab.cpp
index 9b2f541..6395fdf 100644
--- a/src/base_tab/BaseImportTab.cpp
+++ b/src/base_tab/BaseImportTab.cpp
@@ -1,14 +1,38 @@
#include "BaseImportTab.hpp"
+#include <algorithm>
+#include "gamebase/GameBase.hpp"
-BaseImportTab::BaseImportTab(wxFrame *parent, TabInfos *main_tab):
-TabBase_TabImport(parent), main_tab(main_tab)
+BaseImportTab::BaseImportTab(wxFrame *parent, std::shared_ptr<GameBase> db, TabInfos *main_tab):
+TabBase_TabImport(parent), main_tab(main_tab), base(db)
{
- glm=new GameListManager(game_list);
+ glm=std::make_shared<GameListManager>(game_list);
RefreshImportLists();
+ RefreshPendingImports();
this->Bind(wxEVT_BUTTON, &BaseImportTab::OnLoad, this, ID_LOAD_BUTTON);
+ this->Bind(wxEVT_BUTTON, &BaseImportTab::OnImportGame, this, ID_IMPORT_GAME_BUTTON);
+ this->Bind(wxEVT_BUTTON, &BaseImportTab::OnImportSelection, this, ID_IMPORT_SELECTION);
+ this->Bind(wxEVT_BUTTON, &BaseImportTab::OnImportDatabase, this, ID_IMPORT_DB);
+
opened_db_list->SetHint("No other database open");
}
+void BaseImportTab::OnImportDatabase(wxCommandEvent &event){
+ if(std::find(databases_to_import.begin(), databases_to_import.end(), selected_base) == databases_to_import.end()){
+ databases_to_import.push_back(selected_base);
+ RefreshPendingImports();
+ }
+ else SHOW_DIALOG_INFO("Database already prepared for import");
+}
+
+void BaseImportTab::RefreshPendingImports(){
+ int ngames=games_to_import.size();
+ int ndb=databases_to_import.size();
+ if(ngames+ndb>0){
+ pending_imports->SetLabel(" Pending imports: "+std::to_string(ngames)+" games and "+std::to_string(ndb)+" databases");
+ }else
+ pending_imports->SetLabel("");
+}
+
void BaseImportTab::RefreshImportLists(){
opened_game_list->Clear();
opened_db_list->Clear();
@@ -26,6 +50,48 @@ void BaseImportTab::RefreshImportLists(){
}
}
+void BaseImportTab::OnImportSelection(wxCommandEvent &event){
+ long selected = -1;
+ while ((selected = game_list->GetNextItem(selected, wxLIST_NEXT_ALL,
+ wxLIST_STATE_SELECTED)) !=
+ wxNOT_FOUND) {
+ games_to_import.push_back(selected_base->GetGame(glm->GetItemGameId(selected)));
+ }
+ RefreshPendingImports();
+}
+
+void BaseImportTab::OnImportGame(wxCommandEvent &event){
+ TabInfos *game_tab=(TabInfos*)opened_game_list->GetClientData(opened_game_list->GetSelection());
+ std::shared_ptr<Game> g=game_tab->GetGame();
+ if(std::find(games_to_import.begin(), games_to_import.end(), g) == games_to_import.end()){ wxLogDebug("Import!");
+ games_to_import.push_back(g);
+ RefreshPendingImports();
+ }
+ else SHOW_DIALOG_INFO("Game already prepared for import");
+}
+
void BaseImportTab::OnLoad(wxCommandEvent &event){
-wxLogDebug("Load!");
+ TabInfos *game_tab=(TabInfos*)opened_db_list->GetClientData(opened_db_list->GetSelection());
+ selected_base.reset();
+ selected_base=game_tab->GetBase();
+ glm->Clear();
+
+ // Load all games (for now :)
+ selected_base->Reset();
+ while (selected_base->NextGame()) {
+ glm->AddGame(
+ selected_base->GetTag("White"),
+ selected_base->GetTag("Black"),
+ selected_base->GetTag("Event"),
+ selected_base->GetTag("Round"),
+ selected_base->GetTag("Result"),
+ selected_base->GetTag("ECO"));
+ }
+}
+
+void BaseImportTab::Reset(std::shared_ptr<GameBase> base){
+ this->base=base;
+ this->games_to_import.clear();
+ this->databases_to_import.clear();
+ glm->Clear();
}
diff --git a/src/base_tab/BaseImportTab.hpp b/src/base_tab/BaseImportTab.hpp
index a301f9b..a3a19de 100644
--- a/src/base_tab/BaseImportTab.hpp
+++ b/src/base_tab/BaseImportTab.hpp
@@ -1,12 +1,24 @@
+#pragma once
+
#include "ochess.hpp"
#include "GameListManager.hpp"
+#include "game_tab/Game.hpp"
class BaseImportTab : public TabBase_TabImport {
TabInfos *main_tab;
- GameListManager *glm;
+ std::shared_ptr<GameListManager> glm;
+ std::vector<std::shared_ptr<Game>> games_to_import;
+ std::vector<std::shared_ptr<GameBase>> databases_to_import;
+ std::shared_ptr<GameBase> base;
+ std::shared_ptr<GameBase> selected_base;
+ void RefreshPendingImports();
public:
- BaseImportTab(wxFrame *parent, TabInfos *main_tab);
+ BaseImportTab(wxFrame *parent, std::shared_ptr<GameBase> db, TabInfos *main_tab);
void RefreshImportLists();
void OnLoad(wxCommandEvent &event);
+ void OnImportGame(wxCommandEvent &event);
+ void OnImportSelection(wxCommandEvent &event);
+ void OnImportDatabase(wxCommandEvent &event);
+ void Reset(std::shared_ptr<GameBase> base);
}; \ No newline at end of file
diff --git a/src/base_tab/BaseTab.cpp b/src/base_tab/BaseTab.cpp
index 05ff907..c13caae 100644
--- a/src/base_tab/BaseTab.cpp
+++ b/src/base_tab/BaseTab.cpp
@@ -10,9 +10,10 @@ BaseTab::BaseTab(wxFrame *parent, std::string base_file)
// Games tab
games_tab=new BaseGameTab((wxFrame *)notebook,base,this);
+ glm=games_tab->glm;
notebook->AddPage(games_tab, "Games list",true); // true for selecting the tab
// Import tab
- import_tab=new BaseImportTab((wxFrame *)notebook,this);
+ import_tab=new BaseImportTab((wxFrame *)notebook,base,this);
notebook->AddPage(import_tab, "Import games");
// Manage tab
manage_tab=new BaseManageTab((wxFrame *)notebook, base, games_tab->glm);
@@ -67,4 +68,5 @@ void BaseTab::OnSave(wxCommandEvent &event) {
OpenDatabase(base_file);
games_tab->Reset(base);
manage_tab->Reset(base);
+ import_tab->Reset(base);
} \ No newline at end of file
diff --git a/src/base_tab/BaseTab.hpp b/src/base_tab/BaseTab.hpp
index c8efd11..5b21353 100644
--- a/src/base_tab/BaseTab.hpp
+++ b/src/base_tab/BaseTab.hpp
@@ -1,3 +1,4 @@
+#pragma once
#include "gamebase/GameBase.hpp"
#include "ochess.hpp"
@@ -19,6 +20,7 @@ class BaseTab : public TabBase, public TabInfos {
BaseManageTab *manage_tab;
std::string base_file;
+ std::shared_ptr<GameListManager> glm;
void OnOpenGame(wxCommandEvent &event);
void OnSave(wxCommandEvent &event);
diff --git a/src/gui.cpp b/src/gui.cpp
index 507eca0..b33583f 100644
--- a/src/gui.cpp
+++ b/src/gui.cpp
@@ -565,31 +565,38 @@ TabBase_TabImport::TabBase_TabImport( wxWindow* parent, wxWindowID id, const wxP
wxBoxSizer* main_sizer;
main_sizer = new wxBoxSizer( wxVERTICAL );
- from_game_label = new wxStaticText( this, wxID_ANY, wxT("From opened games"), wxDefaultPosition, wxDefaultSize, 0 );
+ pending_imports = new wxStaticText( this, wxID_ANY, wxT("No pending imports"), wxDefaultPosition, wxDefaultSize, 0 );
+ pending_imports->Wrap( -1 );
+ pending_imports->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ main_sizer->Add( pending_imports, 0, wxALL|wxEXPAND, 5 );
+
+ m_staticline41 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ main_sizer->Add( m_staticline41, 0, wxEXPAND | wxALL, 5 );
+
+ wxBoxSizer* games_sizer;
+ games_sizer = new wxBoxSizer( wxHORIZONTAL );
+
+ from_game_label = new wxStaticText( this, wxID_ANY, wxT("Games:"), wxDefaultPosition, wxDefaultSize, 0 );
from_game_label->Wrap( -1 );
- main_sizer->Add( from_game_label, 0, wxALL, 5 );
+ from_game_label->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- wxBoxSizer* top_sizer;
- top_sizer = new wxBoxSizer( wxHORIZONTAL );
+ games_sizer->Add( from_game_label, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
opened_game_list = new wxComboBox( this, wxID_ANY, wxT("No game opened"), wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
- top_sizer->Add( opened_game_list, 100, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ games_sizer->Add( opened_game_list, 100, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- import_from_game_button = new wxButton( this, wxID_ANY, wxT("Import Game"), wxDefaultPosition, wxDefaultSize, 0 );
- top_sizer->Add( import_from_game_button, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+ import_from_game_button = new wxButton( this, ID_IMPORT_GAME_BUTTON, wxT("Import Game"), wxDefaultPosition, wxDefaultSize, 0 );
+ games_sizer->Add( import_from_game_button, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
- main_sizer->Add( top_sizer, 1, wxALIGN_TOP|wxEXPAND, 5 );
+ main_sizer->Add( games_sizer, 0, wxALIGN_TOP|wxEXPAND, 5 );
m_staticline4 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
main_sizer->Add( m_staticline4, 0, wxEXPAND | wxALL, 5 );
- from_db_label = new wxStaticText( this, wxID_ANY, wxT("From opened databases"), wxDefaultPosition, wxDefaultSize, 0 );
- from_db_label->Wrap( -1 );
- main_sizer->Add( from_db_label, 0, wxALL, 5 );
-
- wxBoxSizer* bottom_sizer;
- bottom_sizer = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* databases_sizer;
+ databases_sizer = new wxBoxSizer( wxVERTICAL );
wxBoxSizer* bSizer33;
bSizer33 = new wxBoxSizer( wxHORIZONTAL );
@@ -605,18 +612,21 @@ TabBase_TabImport::TabBase_TabImport( wxWindow* parent, wxWindowID id, const wxP
bSizer33->Add( load_button, 0, wxALL, 5 );
- bottom_sizer->Add( bSizer33, 1, wxEXPAND, 5 );
+ databases_sizer->Add( bSizer33, 0, wxEXPAND, 5 );
- game_list = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_ICON|wxLC_REPORT );
+ game_list = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_REPORT );
game_list->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_INACTIVECAPTIONTEXT ) );
- bottom_sizer->Add( game_list, 20, wxALL|wxEXPAND, 5 );
+ databases_sizer->Add( game_list, 100, wxALL|wxEXPAND, 5 );
+
+ import_from_db_button = new wxButton( this, ID_IMPORT_SELECTION, wxT("Import Selection"), wxDefaultPosition, wxDefaultSize, 0 );
+ databases_sizer->Add( import_from_db_button, 0, wxALL|wxEXPAND, 5 );
- import_from_db_button = new wxButton( this, wxID_ANY, wxT("Import Selection"), wxDefaultPosition, wxDefaultSize, 0 );
- bottom_sizer->Add( import_from_db_button, 0, wxALL|wxEXPAND, 5 );
+ m_button16 = new wxButton( this, ID_IMPORT_DB, wxT("Import all games"), wxDefaultPosition, wxDefaultSize, 0 );
+ databases_sizer->Add( m_button16, 0, wxALL|wxEXPAND, 5 );
- main_sizer->Add( bottom_sizer, 100, wxEXPAND, 5 );
+ main_sizer->Add( databases_sizer, 80, wxEXPAND, 5 );
this->SetSizer( main_sizer );
diff --git a/src/gui.h b/src/gui.h
index 91de89e..df64a5e 100644
--- a/src/gui.h
+++ b/src/gui.h
@@ -58,8 +58,11 @@
#define ID_SEARCH_TERMS 1013
#define ID_APPLY_FILTER_BUTTON 1014
#define ID_DELETE_BUTTON 1015
-#define ID_LOAD_BUTTON 1016
-#define ID_SAVE_BUTTON 1017
+#define ID_IMPORT_GAME_BUTTON 1016
+#define ID_LOAD_BUTTON 1017
+#define ID_IMPORT_SELECTION 1018
+#define ID_IMPORT_DB 1019
+#define ID_SAVE_BUTTON 1020
///////////////////////////////////////////////////////////////////////////////
/// Class MainFrame
@@ -331,20 +334,22 @@ class TabBase_TabImport : public wxPanel
private:
protected:
+ wxStaticText* pending_imports;
+ wxStaticLine* m_staticline41;
wxStaticText* from_game_label;
wxComboBox* opened_game_list;
wxButton* import_from_game_button;
wxStaticLine* m_staticline4;
- wxStaticText* from_db_label;
wxStaticText* m_staticText29;
wxComboBox* opened_db_list;
wxButton* load_button;
wxListCtrl* game_list;
wxButton* import_from_db_button;
+ wxButton* m_button16;
public:
- TabBase_TabImport( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,200 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString );
+ TabBase_TabImport( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,661 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString );
~TabBase_TabImport();
diff --git a/src/ochess.cpp b/src/ochess.cpp
index 74ffc88..3cfa8be 100644
--- a/src/ochess.cpp
+++ b/src/ochess.cpp
@@ -1,5 +1,6 @@
#include "ochess.hpp"
#include "MainWindow.hpp"
+#include "base_tab/BaseTab.hpp"
bool MyApp::OnInit() {
wxImage::AddHandler(new wxPNGHandler);
@@ -18,6 +19,7 @@ std::vector<TabInfos *> MyApp::ListTabInfos() {
return (tinfos);
}
+
wxIMPLEMENT_APP(MyApp);
void Abort(std::string msg) {
diff --git a/src/ochess.hpp b/src/ochess.hpp
index 7f94fe1..2692521 100644
--- a/src/ochess.hpp
+++ b/src/ochess.hpp
@@ -21,7 +21,7 @@
NULL, wxT(message), wxT("Error"), wxOK | wxICON_ERROR); \
dial->ShowModal(); \
}
-
+#define SHOW_DIALOG_INFO(message) {wxMessageBox( wxT(message) );}
#define REQUIRE_FILE(file) \
{ \
if (!wxFileExists(file)) { \
diff --git a/tools/wxFrameBuilder.fbp b/tools/wxFrameBuilder.fbp
index c442080..006a2d1 100644
--- a/tools/wxFrameBuilder.fbp
+++ b/tools/wxFrameBuilder.fbp
@@ -5135,7 +5135,7 @@
</object>
</object>
</object>
- <object class="Panel" expanded="0">
+ <object class="Panel" expanded="1">
<property name="aui_managed">0</property>
<property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
<property name="bg"></property>
@@ -5158,7 +5158,7 @@
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style">wxTAB_TRAVERSAL</property>
- <object class="wxBoxSizer" expanded="0">
+ <object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">main_sizer</property>
<property name="orient">wxVERTICAL</property>
@@ -5520,7 +5520,7 @@
</object>
</object>
</object>
- <object class="Panel" expanded="0">
+ <object class="Panel" expanded="1">
<property name="aui_managed">0</property>
<property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
<property name="bg"></property>
@@ -5536,23 +5536,23 @@
<property name="minimum_size"></property>
<property name="name">TabBase_TabImport</property>
<property name="pos"></property>
- <property name="size">500,200</property>
+ <property name="size">500,661</property>
<property name="subclass">; ; forward_declare</property>
<property name="tooltip"></property>
<property name="two_step_creation">0</property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style">wxTAB_TRAVERSAL</property>
- <object class="wxBoxSizer" expanded="0">
+ <object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">main_sizer</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
- <object class="sizeritem" expanded="0">
+ <object class="sizeritem" expanded="1">
<property name="border">5</property>
- <property name="flag">wxALL</property>
+ <property name="flag">wxALL|wxEXPAND</property>
<property name="proportion">0</property>
- <object class="wxStaticText" expanded="0">
+ <object class="wxStaticText" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
@@ -5562,7 +5562,7 @@
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
- <property name="bg"></property>
+ <property name="bg">wxSYS_COLOUR_WINDOW</property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
@@ -5580,7 +5580,7 @@
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
- <property name="label">From opened games</property>
+ <property name="label">No pending imports</property>
<property name="markup">0</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
@@ -5589,7 +5589,7 @@
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
- <property name="name">from_game_label</property>
+ <property name="name">pending_imports</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
@@ -5609,18 +5609,137 @@
<property name="wrap">-1</property>
</object>
</object>
- <object class="sizeritem" expanded="0">
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND | wxALL</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticLine" expanded="1">
+ <property name="BottomDockable">1</property>
+ <property name="LeftDockable">1</property>
+ <property name="RightDockable">1</property>
+ <property name="TopDockable">1</property>
+ <property name="aui_layer"></property>
+ <property name="aui_name"></property>
+ <property name="aui_position"></property>
+ <property name="aui_row"></property>
+ <property name="best_size"></property>
+ <property name="bg"></property>
+ <property name="caption"></property>
+ <property name="caption_visible">1</property>
+ <property name="center_pane">0</property>
+ <property name="close_button">1</property>
+ <property name="context_help"></property>
+ <property name="context_menu">1</property>
+ <property name="default_pane">0</property>
+ <property name="dock">Dock</property>
+ <property name="dock_fixed">0</property>
+ <property name="docking">Left</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="floatable">1</property>
+ <property name="font"></property>
+ <property name="gripper">0</property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="max_size"></property>
+ <property name="maximize_button">0</property>
+ <property name="maximum_size"></property>
+ <property name="min_size"></property>
+ <property name="minimize_button">0</property>
+ <property name="minimum_size"></property>
+ <property name="moveable">1</property>
+ <property name="name">m_staticline41</property>
+ <property name="pane_border">1</property>
+ <property name="pane_position"></property>
+ <property name="pane_size"></property>
+ <property name="permission">protected</property>
+ <property name="pin_button">1</property>
+ <property name="pos"></property>
+ <property name="resize">Resizable</property>
+ <property name="show">1</property>
+ <property name="size"></property>
+ <property name="style">wxLI_HORIZONTAL</property>
+ <property name="subclass">; ; forward_declare</property>
+ <property name="toolbar_pane">0</property>
+ <property name="tooltip"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALIGN_TOP|wxEXPAND</property>
- <property name="proportion">1</property>
- <object class="wxBoxSizer" expanded="0">
+ <property name="proportion">0</property>
+ <object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
- <property name="name">top_sizer</property>
+ <property name="name">games_sizer</property>
<property name="orient">wxHORIZONTAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticText" expanded="0">
+ <property name="BottomDockable">1</property>
+ <property name="LeftDockable">1</property>
+ <property name="RightDockable">1</property>
+ <property name="TopDockable">1</property>
+ <property name="aui_layer"></property>
+ <property name="aui_name"></property>
+ <property name="aui_position"></property>
+ <property name="aui_row"></property>
+ <property name="best_size"></property>
+ <property name="bg">wxSYS_COLOUR_WINDOW</property>
+ <property name="caption"></property>
+ <property name="caption_visible">1</property>
+ <property name="center_pane">0</property>
+ <property name="close_button">1</property>
+ <property name="context_help"></property>
+ <property name="context_menu">1</property>
+ <property name="default_pane">0</property>
+ <property name="dock">Dock</property>
+ <property name="dock_fixed">0</property>
+ <property name="docking">Left</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="floatable">1</property>
+ <property name="font"></property>
+ <property name="gripper">0</property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">Games:</property>
+ <property name="markup">0</property>
+ <property name="max_size"></property>
+ <property name="maximize_button">0</property>
+ <property name="maximum_size"></property>
+ <property name="min_size"></property>
+ <property name="minimize_button">0</property>
+ <property name="minimum_size"></property>
+ <property name="moveable">1</property>
+ <property name="name">from_game_label</property>
+ <property name="pane_border">1</property>
+ <property name="pane_position"></property>
+ <property name="pane_size"></property>
+ <property name="permission">protected</property>
+ <property name="pin_button">1</property>
+ <property name="pos"></property>
+ <property name="resize">Resizable</property>
+ <property name="show">1</property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass">; ; forward_declare</property>
+ <property name="toolbar_pane">0</property>
+ <property name="tooltip"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <property name="wrap">-1</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="0">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
<property name="proportion">100</property>
<object class="wxComboBox" expanded="0">
<property name="BottomDockable">1</property>
@@ -5720,7 +5839,7 @@
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
- <property name="id">wxID_ANY</property>
+ <property name="id">ID_IMPORT_GAME_BUTTON</property>
<property name="label">Import Game</property>
<property name="margins"></property>
<property name="markup">0</property>
@@ -5816,80 +5935,19 @@
<property name="window_style"></property>
</object>
</object>
- <object class="sizeritem" expanded="0">
- <property name="border">5</property>
- <property name="flag">wxALL</property>
- <property name="proportion">0</property>
- <object class="wxStaticText" expanded="0">
- <property name="BottomDockable">1</property>
- <property name="LeftDockable">1</property>
- <property name="RightDockable">1</property>
- <property name="TopDockable">1</property>
- <property name="aui_layer"></property>
- <property name="aui_name"></property>
- <property name="aui_position"></property>
- <property name="aui_row"></property>
- <property name="best_size"></property>
- <property name="bg"></property>
- <property name="caption"></property>
- <property name="caption_visible">1</property>
- <property name="center_pane">0</property>
- <property name="close_button">1</property>
- <property name="context_help"></property>
- <property name="context_menu">1</property>
- <property name="default_pane">0</property>
- <property name="dock">Dock</property>
- <property name="dock_fixed">0</property>
- <property name="docking">Left</property>
- <property name="enabled">1</property>
- <property name="fg"></property>
- <property name="floatable">1</property>
- <property name="font"></property>
- <property name="gripper">0</property>
- <property name="hidden">0</property>
- <property name="id">wxID_ANY</property>
- <property name="label">From opened databases</property>
- <property name="markup">0</property>
- <property name="max_size"></property>
- <property name="maximize_button">0</property>
- <property name="maximum_size"></property>
- <property name="min_size"></property>
- <property name="minimize_button">0</property>
- <property name="minimum_size"></property>
- <property name="moveable">1</property>
- <property name="name">from_db_label</property>
- <property name="pane_border">1</property>
- <property name="pane_position"></property>
- <property name="pane_size"></property>
- <property name="permission">protected</property>
- <property name="pin_button">1</property>
- <property name="pos"></property>
- <property name="resize">Resizable</property>
- <property name="show">1</property>
- <property name="size"></property>
- <property name="style"></property>
- <property name="subclass">; ; forward_declare</property>
- <property name="toolbar_pane">0</property>
- <property name="tooltip"></property>
- <property name="window_extra_style"></property>
- <property name="window_name"></property>
- <property name="window_style"></property>
- <property name="wrap">-1</property>
- </object>
- </object>
- <object class="sizeritem" expanded="0">
+ <object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
- <property name="proportion">100</property>
- <object class="wxBoxSizer" expanded="0">
+ <property name="proportion">80</property>
+ <object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
- <property name="name">bottom_sizer</property>
+ <property name="name">databases_sizer</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
- <object class="sizeritem" expanded="0">
+ <object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
- <property name="proportion">1</property>
+ <property name="proportion">0</property>
<object class="wxBoxSizer" expanded="0">
<property name="minimum_size"></property>
<property name="name">bSizer33</property>
@@ -6099,7 +6157,7 @@
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALL|wxEXPAND</property>
- <property name="proportion">20</property>
+ <property name="proportion">100</property>
<object class="wxListCtrl" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
@@ -6145,7 +6203,7 @@
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
- <property name="style">wxLC_ICON|wxLC_REPORT</property>
+ <property name="style">wxLC_REPORT</property>
<property name="subclass">; ; forward_declare</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
@@ -6195,7 +6253,7 @@
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
- <property name="id">wxID_ANY</property>
+ <property name="id">ID_IMPORT_SELECTION</property>
<property name="label">Import Selection</property>
<property name="margins"></property>
<property name="markup">0</property>
@@ -6231,6 +6289,79 @@
<property name="window_style"></property>
</object>
</object>
+ <object class="sizeritem" expanded="0">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="0">
+ <property name="BottomDockable">1</property>
+ <property name="LeftDockable">1</property>
+ <property name="RightDockable">1</property>
+ <property name="TopDockable">1</property>
+ <property name="aui_layer"></property>
+ <property name="aui_name"></property>
+ <property name="aui_position"></property>
+ <property name="aui_row"></property>
+ <property name="auth_needed">0</property>
+ <property name="best_size"></property>
+ <property name="bg"></property>
+ <property name="bitmap"></property>
+ <property name="caption"></property>
+ <property name="caption_visible">1</property>
+ <property name="center_pane">0</property>
+ <property name="close_button">1</property>
+ <property name="context_help"></property>
+ <property name="context_menu">1</property>
+ <property name="current"></property>
+ <property name="default">0</property>
+ <property name="default_pane">0</property>
+ <property name="disabled"></property>
+ <property name="dock">Dock</property>
+ <property name="dock_fixed">0</property>
+ <property name="docking">Left</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="floatable">1</property>
+ <property name="focus"></property>
+ <property name="font"></property>
+ <property name="gripper">0</property>
+ <property name="hidden">0</property>
+ <property name="id">ID_IMPORT_DB</property>
+ <property name="label">Import all games</property>
+ <property name="margins"></property>
+ <property name="markup">0</property>
+ <property name="max_size"></property>
+ <property name="maximize_button">0</property>
+ <property name="maximum_size"></property>
+ <property name="min_size"></property>
+ <property name="minimize_button">0</property>
+ <property name="minimum_size"></property>
+ <property name="moveable">1</property>
+ <property name="name">m_button16</property>
+ <property name="pane_border">1</property>
+ <property name="pane_position"></property>
+ <property name="pane_size"></property>
+ <property name="permission">protected</property>
+ <property name="pin_button">1</property>
+ <property name="pos"></property>
+ <property name="position"></property>
+ <property name="pressed"></property>
+ <property name="resize">Resizable</property>
+ <property name="show">1</property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass">; ; forward_declare</property>
+ <property name="toolbar_pane">0</property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ </object>
+ </object>
</object>
</object>
</object>