From 197b78a0a9adadf3e7642c86aab341730dc3cdc7 Mon Sep 17 00:00:00 2001 From: archibalduk Date: Sat, 22 Jun 2024 13:03:35 +0100 Subject: [PATCH] version 0.2.1 --- README.md | 12 +- docs/annotated.html | 1 + docs/annotated_dup.js | 3 +- .../classehm__dal_1_1_saved_game-members.html | 9 +- docs/classehm__dal_1_1_saved_game.html | 4 + docs/classehm__dal_1_1_saved_game.js | 1 + ...1_1file__io_1_1_abstract_file_manager.html | 7 +- ..._abstract_file_manager__inherit__graph.map | 3 +- ..._abstract_file_manager__inherit__graph.md5 | 2 +- ..._abstract_file_manager__inherit__graph.png | Bin 2036 -> 4469 bytes ...o_1_1_saved_game_file_manager-members.html | 122 ++ ...1file__io_1_1_saved_game_file_manager.html | 231 ++++ ...1_1file__io_1_1_saved_game_file_manager.js | 5 + ...aved_game_file_manager__inherit__graph.map | 4 + ...aved_game_file_manager__inherit__graph.md5 | 1 + ...aved_game_file_manager__inherit__graph.png | Bin 0 -> 2088 bytes ..._1spreadsheet_1_1_spreadsheet-members.html | 78 +- ...m__dal_1_1spreadsheet_1_1_spreadsheet.html | 1134 +++++++++++++++-- ...ehm__dal_1_1spreadsheet_1_1_spreadsheet.js | 41 + docs/classes.html | 2 +- .../dir_2ed6006962cd6ae32e42c5109b87cec5.html | 122 ++ ...r_2ed6006962cd6ae32e42c5109b87cec5_dep.map | 4 + ...r_2ed6006962cd6ae32e42c5109b87cec5_dep.md5 | 1 + ...r_2ed6006962cd6ae32e42c5109b87cec5_dep.png | Bin 0 -> 1065 bytes .../dir_8b61d4b81d3e131772ad27cd67f75f58.html | 9 +- ...r_8b61d4b81d3e131772ad27cd67f75f58_dep.map | 9 +- ...r_8b61d4b81d3e131772ad27cd67f75f58_dep.md5 | 2 +- ...r_8b61d4b81d3e131772ad27cd67f75f58_dep.png | Bin 1709 -> 1837 bytes docs/functions.html | 9 +- docs/functions_c.html | 7 +- docs/functions_d.html | 3 +- docs/functions_e.html | 1 + docs/functions_f.html | 5 +- docs/functions_func.html | 9 +- docs/functions_func_c.html | 7 +- docs/functions_func_d.html | 3 +- docs/functions_func_e.html | 1 + docs/functions_func_f.html | 5 +- docs/functions_func_i.html | 3 +- docs/functions_func_n.html | 1 + docs/functions_func_o.html | 2 +- docs/functions_func_p.html | 2 +- docs/functions_func_r.html | 5 +- docs/functions_func_s.html | 9 +- docs/functions_i.html | 3 +- docs/functions_n.html | 1 + docs/functions_o.html | 2 +- docs/functions_p.html | 2 +- docs/functions_r.html | 5 +- docs/functions_s.html | 7 +- docs/hierarchy.html | 255 ++-- docs/hierarchy.js | 9 +- docs/inherit_graph_13.map | 5 +- docs/inherit_graph_13.md5 | 2 +- docs/inherit_graph_13.png | Bin 1590 -> 3571 bytes docs/inherit_graph_2.map | 3 +- docs/inherit_graph_2.md5 | 2 +- docs/inherit_graph_2.png | Bin 2461 -> 1871 bytes docs/inherit_graph_3.map | 3 +- docs/inherit_graph_3.md5 | 2 +- docs/inherit_graph_3.png | Bin 1871 -> 2461 bytes docs/inherits.html | 11 +- docs/navtreedata.js | 4 +- docs/navtreeindex0.js | 8 +- docs/navtreeindex1.js | 10 +- docs/navtreeindex2.js | 67 +- docs/saved__game_8h_source.html | 34 +- .../saved__game__file__manager_8h_source.html | 141 ++ docs/schedule__matrix_8h_source.html | 2 +- ...hedule__template__generator_8h_source.html | 2 +- docs/search/all_0.js | 31 +- docs/search/all_2.js | 98 +- docs/search/all_3.js | 25 +- docs/search/all_4.js | 15 +- docs/search/all_5.js | 49 +- docs/search/all_8.js | 67 +- docs/search/all_a.js | 15 +- docs/search/all_b.js | 2 +- docs/search/all_c.js | 4 +- docs/search/all_d.js | 5 +- docs/search/all_e.js | 110 +- docs/search/classes_c.js | 63 +- docs/search/functions_0.js | 13 +- docs/search/functions_1.js | 29 +- docs/search/functions_2.js | 7 +- docs/search/functions_3.js | 3 +- docs/search/functions_4.js | 29 +- docs/search/functions_7.js | 53 +- docs/search/functions_9.js | 3 +- docs/search/functions_a.js | 2 +- docs/search/functions_b.js | 2 +- docs/search/functions_c.js | 5 +- docs/search/functions_d.js | 17 +- docs/spreadsheet_8h_source.html | 437 ++++--- examples/01-01_Simple_Table_View/README.md | 14 +- .../01-01_Simple_Table_View/mainwindow.cpp | 8 +- .../01-01_Simple_Table_View/screenshot.png | Bin 0 -> 113268 bytes examples/01-02_Simple_Tree_View/.gitignore | 78 ++ .../01-02_Simple_Tree_View.pro | 34 + examples/01-02_Simple_Tree_View/README.md | 16 + examples/01-02_Simple_Tree_View/main.cpp | 22 + .../01-02_Simple_Tree_View/mainwindow.cpp | 178 +++ examples/01-02_Simple_Tree_View/mainwindow.h | 45 + .../01-02_Simple_Tree_View/screenshot.png | Bin 0 -> 118501 bytes examples/README.md | 47 + .../file_io/saved_game_file_manager.h | 30 + include/saved_game/saved_game.h | 6 + include/spreadsheet/spreadsheet.h | 238 +++- 108 files changed, 3393 insertions(+), 866 deletions(-) create mode 100644 docs/classehm__dal_1_1file__io_1_1_saved_game_file_manager-members.html create mode 100644 docs/classehm__dal_1_1file__io_1_1_saved_game_file_manager.html create mode 100644 docs/classehm__dal_1_1file__io_1_1_saved_game_file_manager.js create mode 100644 docs/classehm__dal_1_1file__io_1_1_saved_game_file_manager__inherit__graph.map create mode 100644 docs/classehm__dal_1_1file__io_1_1_saved_game_file_manager__inherit__graph.md5 create mode 100644 docs/classehm__dal_1_1file__io_1_1_saved_game_file_manager__inherit__graph.png create mode 100644 docs/dir_2ed6006962cd6ae32e42c5109b87cec5.html create mode 100644 docs/dir_2ed6006962cd6ae32e42c5109b87cec5_dep.map create mode 100644 docs/dir_2ed6006962cd6ae32e42c5109b87cec5_dep.md5 create mode 100644 docs/dir_2ed6006962cd6ae32e42c5109b87cec5_dep.png create mode 100644 docs/saved__game__file__manager_8h_source.html create mode 100644 examples/01-01_Simple_Table_View/screenshot.png create mode 100644 examples/01-02_Simple_Tree_View/.gitignore create mode 100644 examples/01-02_Simple_Tree_View/01-02_Simple_Tree_View.pro create mode 100644 examples/01-02_Simple_Tree_View/README.md create mode 100644 examples/01-02_Simple_Tree_View/main.cpp create mode 100644 examples/01-02_Simple_Tree_View/mainwindow.cpp create mode 100644 examples/01-02_Simple_Tree_View/mainwindow.h create mode 100644 examples/01-02_Simple_Tree_View/screenshot.png create mode 100644 examples/README.md create mode 100644 include/saved_game/file_io/saved_game_file_manager.h diff --git a/README.md b/README.md index afaddc8..6caf64a 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,16 @@ # EHM DAL: A data abstraction layer for Eastside Hockey Manager 1 -![GitHub last commit](https://img.shields.io/github/last-commit/archibalduk/EHM_DAL?style=flat-square) ![GitHub](https://img.shields.io/github/license/archibalduk/EHM_DAL?style=flat-square) ![GitHub top language](https://img.shields.io/github/languages/top/archibalduk/EHM_DAL?style=flat-square) +![GitHub tag](https://img.shields.io/github/v/tag/archibalduk/EHM_DAL) ![GitHub last commit](https://img.shields.io/github/last-commit/archibalduk/EHM_DAL?style=flat-square) ![GitHub](https://img.shields.io/github/license/archibalduk/EHM_DAL?style=flat-square) ![GitHub top language](https://img.shields.io/github/languages/top/archibalduk/EHM_DAL?style=flat-square) EHM DAL is an unofficial data abstraction layer for Eastside Hockey Manger 1 databases and saved games which you can integrate into your own Qt/C++ projects. EHM DAL provides a library of functions which enable an EHM database or saved game to be loaded and parsed without needing to code any of your own file i/o functions or any database structures. Parsing a database or saved game is as simple as integrating the EHM DAL library into your Qt/C++ project and then adding the following code: ``` // The following code will open and process a database -auto db{ehm_dal::Database()}; -db.read("C:\\Program Files (x86)\\Steam\\steamapps\\common\\Eastside Hockey Manager\\data\\database\\database.db"); +auto db_manager{ehm_dal::file_io::DatabaseFileManager()}; +db_manager.read("C:\\Program Files (x86)\\Steam\\steamapps\\common\\Eastside Hockey Manager\\data\\database\\database.db"); // The following code will open and process a saved game -auto sav{ehm_dal::SavedGame()}; -sav.read("C:\\Users\\archibalduk\\Documents\\Sports Interactive\\EHM\\games\\Test.sav"); +auto sav_manager{ehm_dal::file_io::SavedGameFileManager()}; +sav_manager.read("C:\\Users\\archibalduk\\Documents\\Sports Interactive\\EHM\\games\\Test.sav"); ``` EHM DAL's database table classes inherit from [QAbstractTableModel](https://doc.qt.io/qt-6/qabstracttablemodel.html) and are therefore compatible [Qt's model/view architecture](https://doc.qt.io/qt-6/model-view-programming.html). This means that database tables can be easily assigned to Qt's view widgets such as [QTableView](https://doc.qt.io/qt-6/qtableview.html). @@ -35,7 +35,7 @@ Data can be accessed using [QModelIndex](https://doc.qt.io/qt-6/qmodelindex.html 3. Few details of EHM saved game tables are known and will therefore require the user to figure out the structure and implement their own code. ## System Requirements -* [Qt 6.7.1](https://www.qt.io/download-open-source) (or higher) (msvc 2019 build or higher) +* [Qt 6.7.2](https://www.qt.io/download-open-source) (or higher) (msvc 2019 build or higher) * [Microsoft Visual Studio 2022](https://visualstudio.microsoft.com/vs/community/) or [Microsoft Visual Studio Build Tools 2022](https://visualstudio.microsoft.com/downloads/?q=build+tools#build-tools-for-visual-studio-2022) ## Author diff --git a/docs/annotated.html b/docs/annotated.html index 15619c9..39a290d 100644 --- a/docs/annotated.html +++ b/docs/annotated.html @@ -157,6 +157,7 @@  Nfile_io  CAbstractFileManagerBase class providing simple read and write file access to database and saved game files  CDatabaseFileManagerSimple read and write access to a database + CSavedGameFileManager  Nflags  CFlag  CFlagDatabase diff --git a/docs/annotated_dup.js b/docs/annotated_dup.js index 03daf5d..d58ed57 100644 --- a/docs/annotated_dup.js +++ b/docs/annotated_dup.js @@ -64,7 +64,8 @@ var annotated_dup = ] ], [ "file_io", null, [ [ "AbstractFileManager", "classehm__dal_1_1file__io_1_1_abstract_file_manager.html", "classehm__dal_1_1file__io_1_1_abstract_file_manager" ], - [ "DatabaseFileManager", "classehm__dal_1_1file__io_1_1_database_file_manager.html", "classehm__dal_1_1file__io_1_1_database_file_manager" ] + [ "DatabaseFileManager", "classehm__dal_1_1file__io_1_1_database_file_manager.html", "classehm__dal_1_1file__io_1_1_database_file_manager" ], + [ "SavedGameFileManager", "classehm__dal_1_1file__io_1_1_saved_game_file_manager.html", "classehm__dal_1_1file__io_1_1_saved_game_file_manager" ] ] ], [ "flags", null, [ [ "Flag", "classehm__dal_1_1flags_1_1_flag.html", null ], diff --git a/docs/classehm__dal_1_1_saved_game-members.html b/docs/classehm__dal_1_1_saved_game-members.html index 68658a6..06ab159 100644 --- a/docs/classehm__dal_1_1_saved_game-members.html +++ b/docs/classehm__dal_1_1_saved_game-members.html @@ -97,10 +97,11 @@

This is the complete list of members for ehm_dal::SavedGame, including all inherited members.

- - - - + + + + +
data()ehm_dal::SavedGamestatic
read(const QString &file_path)ehm_dal::SavedGame
SavedGame()ehm_dal::SavedGame
~SavedGame()ehm_dal::SavedGame
clearAll()ehm_dal::SavedGame
data()ehm_dal::SavedGamestatic
read(const QString &file_path)ehm_dal::SavedGame
SavedGame()ehm_dal::SavedGame
~SavedGame()ehm_dal::SavedGame
diff --git a/docs/classehm__dal_1_1_saved_game.html b/docs/classehm__dal_1_1_saved_game.html index 09b6c91..eaa749c 100644 --- a/docs/classehm__dal_1_1_saved_game.html +++ b/docs/classehm__dal_1_1_saved_game.html @@ -114,6 +114,10 @@  ~SavedGame ()  Default destructor.
  + +void clearAll () + Clear all of the saved game tables.
+  bool read (const QString &file_path)  Reads the .sav file at file_path and parses the saved game and the Database within.
  diff --git a/docs/classehm__dal_1_1_saved_game.js b/docs/classehm__dal_1_1_saved_game.js index bc085b1..e6e86e6 100644 --- a/docs/classehm__dal_1_1_saved_game.js +++ b/docs/classehm__dal_1_1_saved_game.js @@ -2,6 +2,7 @@ var classehm__dal_1_1_saved_game = [ [ "SavedGame", "classehm__dal_1_1_saved_game.html#a08b047bbf3ecb95f8aac9e6a93044e65", null ], [ "~SavedGame", "classehm__dal_1_1_saved_game.html#aa43dfcf7aae0a5c538b7a8ecd151eb3a", null ], + [ "clearAll", "classehm__dal_1_1_saved_game.html#a6e6873e437990371b3d6c493f73e12f0", null ], [ "data", "classehm__dal_1_1_saved_game.html#a8b9b7d58e754b8dfc81d4989018d5dfc", null ], [ "read", "classehm__dal_1_1_saved_game.html#a155a1f76185f19fc60cc50fbb9451582", null ] ]; \ No newline at end of file diff --git a/docs/classehm__dal_1_1file__io_1_1_abstract_file_manager.html b/docs/classehm__dal_1_1file__io_1_1_abstract_file_manager.html index 714b4a6..48d6244 100644 --- a/docs/classehm__dal_1_1file__io_1_1_abstract_file_manager.html +++ b/docs/classehm__dal_1_1file__io_1_1_abstract_file_manager.html @@ -108,8 +108,9 @@
Inheritance graph
- + +
[legend]
@@ -212,7 +213,7 @@

-

Implemented in ehm_dal::file_io::DatabaseFileManager.

+

Implemented in ehm_dal::file_io::DatabaseFileManager, and ehm_dal::file_io::SavedGameFileManager.

@@ -241,7 +242,7 @@

ehm_dal::file_io::DatabaseFileManager.

+

Implemented in ehm_dal::file_io::DatabaseFileManager, and ehm_dal::file_io::SavedGameFileManager.

diff --git a/docs/classehm__dal_1_1file__io_1_1_abstract_file_manager__inherit__graph.map b/docs/classehm__dal_1_1file__io_1_1_abstract_file_manager__inherit__graph.map index 6a30160..b957965 100644 --- a/docs/classehm__dal_1_1file__io_1_1_abstract_file_manager__inherit__graph.map +++ b/docs/classehm__dal_1_1file__io_1_1_abstract_file_manager__inherit__graph.map @@ -1,4 +1,5 @@ - + + diff --git a/docs/classehm__dal_1_1file__io_1_1_abstract_file_manager__inherit__graph.md5 b/docs/classehm__dal_1_1file__io_1_1_abstract_file_manager__inherit__graph.md5 index 03022e3..f089e19 100644 --- a/docs/classehm__dal_1_1file__io_1_1_abstract_file_manager__inherit__graph.md5 +++ b/docs/classehm__dal_1_1file__io_1_1_abstract_file_manager__inherit__graph.md5 @@ -1 +1 @@ -6f5f21c2976248927571575e2503c81b \ No newline at end of file +60b65e7f7ad559fdec7305ae56967dc9 \ No newline at end of file diff --git a/docs/classehm__dal_1_1file__io_1_1_abstract_file_manager__inherit__graph.png b/docs/classehm__dal_1_1file__io_1_1_abstract_file_manager__inherit__graph.png index 99d95b8eec6a0b233a8dfbdb2ee0376015c6d621..cb1f201e935bc481d6962fced62516b959414444 100644 GIT binary patch literal 4469 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 O3P@kq7*?a>81+B<*p!U` literal 2036 zcmcJQ|3A}<7srRs2T3UTGDONHmlWQ^h;GdFb!e8Qk=qx<3@Kk~%}wR|mvymZTv?1p zo7~oBz9w2tT1&n!)}l*>g-uC!uI}UW_&h%Uz~^xu=e!>0r}M)(uk*|e3h>&dW}pTF zfwuX0!w{Rw-pqVe<<079;`DV>lu!G4!9W||qq?KM1O!r{`oNAL(<&E!?;sdK^f@My z@PF;|Owv(3LSzK(Ce@N*in)qE4rCm=2iMwW#5F&OC(cEQ_qH-^W9IV zg13<>bF$4X-jlhxX?dh8?66z&HuqiyVPAY$9oULlA&t>Z zrM2-1Gzf)!0q>Ob$gf0u>8vgLV@Ujul0|#s*!X#wNezwmlrb?J(_lDW7ARyc%?UKf zfi?ThR>m9|6G*2nb+t%5PCAxCRG6iS-*jKk1-Q|~`5Ydbs1y+X~V`kfo z@%U_}J!4|$PEAyth3JAPOG-QgnkkapZkbEAxHkBgrs(GXu5M~Zd0f`%brSe;@m`d@Z^6_8hRmE2vmzPnc8E8C#)-o6<4 z!J!Z>h^uXA4-zdJG`e=fYvWtb_; z1{G2}$njTxlaiCB>}{H3K0M6GFZlb2<3LO8)w+i`4~3DRwk(Lr;ERQp z{{DR_ZP?6N-ld{5PZB+yPKZNawnDw5l1BCqAeoa6nV@DetbobXeUpN&r^cU)aKj5Y zjR`KbU7ZhJp!`^G>j~t@X0t7*Ru)viY*ha#A^eUUuE(vz!c!w~I9J0~#+OwcK^A<9 zzY3qx$AxEyZIGv;?|QeK)+W7w@*ytJz;sH~AV5|9LD*@AP78o8T2ZlmQxBrN_d%pB ziw50{pa8gCNnkPum{7c6H+25Eww-bFnHguEZt=8!m$j%58U1jeweFw>vn8bf+yT22 zUfe%TM+e2n5xC=#%*&R#u9lqc;Vi<>g8O4wAz(a_NpGZ6O$6teD=$9O%!~5G)Xap5 zQ8^aRiQNL_sR$hqg=G@0{7K|A4tn^TXy2_+eRQUZBeY zFfuxbd;|R=MJXN2w4x^{trz+HCNFovLV%}E#|*?q_xh&UHnA>x0>_96)}d*1|IKo? z?sX+%`Jr1#mTWMlkzG`x3|~Bw7kU6S-cU%2!Wf37DZlSakru85uP(fadil^fI!T2( za2Ow)?opHvkD(RD`d96R0DugVOlpEx(C$0**oT$dLb7+8BJE53ZkXnp0Bil^=81!0 zrvEVPKQ5?G6|H>|^%Og+g8NG>0t?o0@Xofj3b^`rZ2rT}9DTV`LF%iX$C|e1H!%+K M@eF{`-G90EH>>*u;{X5v diff --git a/docs/classehm__dal_1_1file__io_1_1_saved_game_file_manager-members.html b/docs/classehm__dal_1_1file__io_1_1_saved_game_file_manager-members.html new file mode 100644 index 0000000..fe867cd --- /dev/null +++ b/docs/classehm__dal_1_1file__io_1_1_saved_game_file_manager-members.html @@ -0,0 +1,122 @@ + + + + + + + +EHM DAL: Member List + + + + + + + + + + + + + + +
+
+

+ + + + + +
+
EHM DAL 1.0.0 +
+
Data abstraction layer for Eastside Hockey Manager
+
+ + + + + + + + + +
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ehm_dal::file_io::SavedGameFileManager Member List
+
+
+ +

This is the complete list of members for ehm_dal::file_io::SavedGameFileManager, including all inherited members.

+ + + + + + + + + + + + + + +
AbstractFileManager(const QString &folder_path_key) (defined in ehm_dal::file_io::AbstractFileManager)ehm_dal::file_io::AbstractFileManager
close(const bool show_confirmation_dialog=true)ehm_dal::file_io::AbstractFileManager
descriptor() const overrideehm_dal::file_io::SavedGameFileManagerinlinevirtual
fileFilterString() const overrideehm_dal::file_io::SavedGameFileManagerinlinevirtual
isOpen() constehm_dal::file_io::AbstractFileManagerinline
isSaved() constehm_dal::file_io::AbstractFileManagerinline
open(const QString &path)ehm_dal::file_io::AbstractFileManager
open(QWidget *parent=nullptr)ehm_dal::file_io::AbstractFileManager
save()ehm_dal::file_io::AbstractFileManager
saveAs(QWidget *parent=nullptr)ehm_dal::file_io::AbstractFileManager
SavedGameFileManager() (defined in ehm_dal::file_io::SavedGameFileManager)ehm_dal::file_io::SavedGameFileManager
setOpenStatus(const bool is_open) (defined in ehm_dal::file_io::AbstractFileManager)ehm_dal::file_io::AbstractFileManagerinlineprotected
setSaveStatus(const bool has_been_saved) (defined in ehm_dal::file_io::AbstractFileManager)ehm_dal::file_io::AbstractFileManagerprotected
+
+ + + + diff --git a/docs/classehm__dal_1_1file__io_1_1_saved_game_file_manager.html b/docs/classehm__dal_1_1file__io_1_1_saved_game_file_manager.html new file mode 100644 index 0000000..ecd1759 --- /dev/null +++ b/docs/classehm__dal_1_1file__io_1_1_saved_game_file_manager.html @@ -0,0 +1,231 @@ + + + + + + + +EHM DAL: ehm_dal::file_io::SavedGameFileManager Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
EHM DAL 1.0.0 +
+
Data abstraction layer for Eastside Hockey Manager
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
ehm_dal::file_io::SavedGameFileManager Class Reference
+
+
+
+Inheritance diagram for ehm_dal::file_io::SavedGameFileManager:
+
+
Inheritance graph
+ + + + +
[legend]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

QString descriptor () const override
 Returns the file manager descriptor. E.g. This will return "database" for a database file manager.
 
QString fileFilterString () const override
 Returns a list of supported file type filters for QFileDialog.
 
- Public Member Functions inherited from ehm_dal::file_io::AbstractFileManager
AbstractFileManager (const QString &folder_path_key)
 
bool close (const bool show_confirmation_dialog=true)
 Closes the active database/saved game and clears all tables.
 
virtual QString descriptor () const =0
 Returns the file manager descriptor. E.g. This will return "database" for a database file manager.
 
virtual QString fileFilterString () const =0
 Returns a list of supported file type filters for QFileDialog.
 
bool open (const QString &path)
 Opens the file at path.
 
bool open (QWidget *parent=nullptr)
 Displays a file dialog window and opens the user selected file.
 
bool save ()
 Saves the data to the existing file.
 
bool saveAs (QWidget *parent=nullptr)
 Displays a file dialog window and saves the user selected destination.
 
+bool isOpen () const
 Returns whether or not a file is presently open.
 
+bool isSaved () const
 Returns whether or not the file has been previously saved.
 
+ + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from ehm_dal::file_io::AbstractFileManager
+void setOpenStatus (const bool is_open)
 
+void setSaveStatus (const bool has_been_saved)
 
+

Member Function Documentation

+ +

◆ descriptor()

+ +
+
+ + + + + +
+ + + + + + + +
QString ehm_dal::file_io::SavedGameFileManager::descriptor () const
+
+inlineoverridevirtual
+
+ +

Returns the file manager descriptor. E.g. This will return "database" for a database file manager.

+ +

Implements ehm_dal::file_io::AbstractFileManager.

+ +
+
+ +

◆ fileFilterString()

+ +
+
+ + + + + +
+ + + + + + + +
QString ehm_dal::file_io::SavedGameFileManager::fileFilterString () const
+
+inlineoverridevirtual
+
+ +

Returns a list of supported file type filters for QFileDialog.

+ +

Implements ehm_dal::file_io::AbstractFileManager.

+ +
+
+
+
+ + + + diff --git a/docs/classehm__dal_1_1file__io_1_1_saved_game_file_manager.js b/docs/classehm__dal_1_1file__io_1_1_saved_game_file_manager.js new file mode 100644 index 0000000..355d4b3 --- /dev/null +++ b/docs/classehm__dal_1_1file__io_1_1_saved_game_file_manager.js @@ -0,0 +1,5 @@ +var classehm__dal_1_1file__io_1_1_saved_game_file_manager = +[ + [ "descriptor", "classehm__dal_1_1file__io_1_1_saved_game_file_manager.html#a2a7cc73dc8c71360c5e701143ca47bdc", null ], + [ "fileFilterString", "classehm__dal_1_1file__io_1_1_saved_game_file_manager.html#a1810a7ca435099e88625f2e9187406e3", null ] +]; \ No newline at end of file diff --git a/docs/classehm__dal_1_1file__io_1_1_saved_game_file_manager__inherit__graph.map b/docs/classehm__dal_1_1file__io_1_1_saved_game_file_manager__inherit__graph.map new file mode 100644 index 0000000..13335aa --- /dev/null +++ b/docs/classehm__dal_1_1file__io_1_1_saved_game_file_manager__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/classehm__dal_1_1file__io_1_1_saved_game_file_manager__inherit__graph.md5 b/docs/classehm__dal_1_1file__io_1_1_saved_game_file_manager__inherit__graph.md5 new file mode 100644 index 0000000..f49364a --- /dev/null +++ b/docs/classehm__dal_1_1file__io_1_1_saved_game_file_manager__inherit__graph.md5 @@ -0,0 +1 @@ +e7705b87bdd1d63aa725e6e352c5f261 \ No newline at end of file diff --git a/docs/classehm__dal_1_1file__io_1_1_saved_game_file_manager__inherit__graph.png b/docs/classehm__dal_1_1file__io_1_1_saved_game_file_manager__inherit__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..539828256e0cf981b9d16784e3b9bbd138b6610e GIT binary patch literal 2088 zcmb`Idpr|f8^B5BQp{zv_J)Q^ZvB>*E+S-@N^Vmwqs&q?G_@6GB}^mMC?Z`DNw(KL zWZm3viEP?tdnJ~(S%t|Ke(UqT|GfXd&w0*yKF|4_^EuDw^PKPV-1PDG(9{5HC@Cpv z!ad#m6t-6}v(z>!*8afu2!+`gan!?2Y38A*I}>aq;`cvv~)EQy6PIQ z&ywEaeC>>jQ%MFw8OCv31X_UDuhb zsXy9ocCGX&1vDzmS$IUi)eM5>7j`w>0$yG?Z`&>OEiHAev&n`=)DUEOe&3{b8!I+< z_)PZc2P-burFGZ=FV@7_B-G3|mMt3lhqN28rV>kN0-V^gJdVE_oy3KO++sk`J#`Fm z&XXn5O{Db+2_(1ivdM^yOIby#Qt3@kX6j^9)5Eap9S!tx`((Q&M?T^RNBDt>XW?W` z4jG>_LKr35Ki@9RT6S;pX&ok%I?|WjsjX{}TPZtrcFSqKg^kl(0Ono6FkU#*nKBR* zkBC%qgC>_5J6HHIcp9mf5UPog9|tTnk7Nj2cMkwL3KE#9ilAFnw&V86RZ7l#b0r(20gMNYB6(=io&dOXr=n zvx}#}xB2ws1X9r&lP#(@LZ51z3^YbobfiVMq2bPfs!_U%GwV9Nui^>jvkq;)D%$b) zf_b3=nW3vpdSVzwec*R|1yEAK zN4Giok6a{EtQMAYaH9Ml0sbOXe^ zMk`n#7REHIPJ!>H*t5{IY#`MGFKFzN&$ZUnkouzyW*Igso(OT#mq{Z>Ut_< zQ~DiiovXr`CFzr7{WCWyz<=i%i~CKmuz`E5vZ4$9v9zLiG6i_ruh+x9Jlcx4*JNKE zFwIsCuKc`5GbXaSc0BXWzE}z8Xb}0Wf0|i6Of77SB~8LM3c6j5Vx`rq!OtoJjQH{t zy|}>?8}l(WUJKGYaH?hJozU-xrbh-P;+Qi1v;;M{d$UxWlNpNDYVclZYqU1L<*yT} z*bQ-a3jIAl4mz;cJtw=Tw#w1qHm2%J>#6=VK)(7~h?hIFFPzzTGK-j%nF;+_rN10x zabSK&N%7&HtnjSg(8Sx$=VK)y@?OStPM`}YR#`*A=zjoLWaae>n(M$}B2OPRH$y|~ zArOl-nIdLE4D1+Hmsomm_|m~UpDx&Ya;n&v>We+>HfCP+T_;fN8Ewp& z!ojnacz3vgt~mc&aC5Q<{I)|YJtDfA^*J$=KDx-I5z-gLoN!Do=LK)D@l2U;@w;Ya zt6EiM*paV4pdbHb(;HvCOq)!4UZZ!LDacrmus<-^cZ>SJA zvO@5Y@cwa?dSR{UXD25=k=(v4H18LAEbLbyqd^5-Vh6~dscTyCC7Na)c-?R&AORWj z9VwO>;L;Hy0PT7dk*Q^G?lvnLGHlB08LUyE@BDXj=Xtjwps z_qnWv#aEZ(M_X%!7MBlOwPZL$SmqFRMmR(2PYlcVqT0gegi8D?FBn5hFM(T9c1v&2 zHEX(>_;m3BNHdDCc#hM?l*igHv^XC60zFr>Nh+1nz^FMW!l?Kx6tT)#PEMJTnj znFmG$lW|^qCZ4fg%?6s7Ri|vPNn9z;nKV%Jj!lbK53{)y!w!G3=e=IRvh^&XT=3C? zS=-0#*d2P5u{ZY=iKIH$j!q$sDa%7P$ck*zLU{OG^hqILbMw%!lVL1pXD3iRPX9-T zH(D~nuP`;UJCfpfvN(fxx$nwX+#uLhhoYeEI@iCwn-@E(OJ$`|}p^qsfY*b&-#IER=n0S1+`9add(const QVariant &data) (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet add(const QVariant &data, const qint32 row) (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet add(const QVariant &data, const qint32 start_row, const qint32 row_count) (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet + add(ehm_dal::tables::AbstractTable *model, const Qt::ItemDataRole role=Qt::DisplayRole)ehm_dal::spreadsheet::Spreadsheet + add(ehm_dal::tables::AbstractTable *model, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)ehm_dal::spreadsheet::Spreadsheet + add(ehm_dal::tables::AbstractTable *model, const qint32 row, const Qt::ItemDataRole role=Qt::DisplayRole)ehm_dal::spreadsheet::Spreadsheet + add(ehm_dal::tables::AbstractTable *model, const qint32 row, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)ehm_dal::spreadsheet::Spreadsheet add(QAbstractTableModel *model, const Qt::ItemDataRole role=Qt::DisplayRole)ehm_dal::spreadsheet::Spreadsheet add(QAbstractTableModel *model, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)ehm_dal::spreadsheet::Spreadsheet add(QAbstractTableModel *model, const qint32 row, const Qt::ItemDataRole role=Qt::DisplayRole)ehm_dal::spreadsheet::Spreadsheet @@ -110,28 +114,28 @@ add(const ehm_dal::data_types::Pointer &pointer, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)ehm_dal::spreadsheet::Spreadsheet add(const std::vector< ehm_dal::data_types::Pointer > &pointer_list, const Qt::ItemDataRole role=Qt::DisplayRole)ehm_dal::spreadsheet::Spreadsheet add(const std::vector< ehm_dal::data_types::Pointer > &pointer_list, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)ehm_dal::spreadsheet::Spreadsheet - addFileNameSuffix(const QString &suffix) (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet - addHeader() (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheetinline - addHeader(const QString &text) (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheetinline - addHeader(const QStringList &text_list) (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet - addHeader(const QVariant &data) (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet + addFileNameSuffix(const QString &suffix)ehm_dal::spreadsheet::Spreadsheet + addHeader()ehm_dal::spreadsheet::Spreadsheetinline + addHeader(const QString &text)ehm_dal::spreadsheet::Spreadsheetinline + addHeader(const QStringList &text_list)ehm_dal::spreadsheet::Spreadsheet + addHeader(const QVariant &data)ehm_dal::spreadsheet::Spreadsheet addHeader(QAbstractTableModel *model)ehm_dal::spreadsheet::Spreadsheet addHeader(QAbstractTableModel *model, const std::vector< qint32 > &column_index_list)ehm_dal::spreadsheet::Spreadsheet - addHeaderPrefix() (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheetinline - addHeaderPrefix(const QVariant &data) (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheetinline - addNewHeaderRow() (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet - addNewRow() (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet - addPrefix() (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheetinline - addPrefix(const QVariant &data) (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheetinline - cell(const qint32 row, const qint32 col) const (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet - cells(const qint32 row, const qint32 col, const qint32 col_count) const (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet - columnContainsData(const qint32 column) const (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet - columnCount(const qint32 row) const (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet - defaultFileExtension() (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheetstatic - exportPath() (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheetstatic - file() (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet - fileExtensionListAsString(const bool merged_list=true) (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheetstatic - fileExtensionListAsStringList() (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheetstatic + addHeaderPrefix()ehm_dal::spreadsheet::Spreadsheetinline + addHeaderPrefix(const QVariant &data)ehm_dal::spreadsheet::Spreadsheetinline + addNewHeaderRow()ehm_dal::spreadsheet::Spreadsheet + addNewRow()ehm_dal::spreadsheet::Spreadsheet + addPrefix()ehm_dal::spreadsheet::Spreadsheetinline + addPrefix(const QVariant &data)ehm_dal::spreadsheet::Spreadsheetinline + cell(const qint32 row, const qint32 col) constehm_dal::spreadsheet::Spreadsheet + cells(const qint32 row, const qint32 col, const qint32 col_count) constehm_dal::spreadsheet::Spreadsheet + columnContainsData(const qint32 column) constehm_dal::spreadsheet::Spreadsheet + columnCount(const qint32 row) constehm_dal::spreadsheet::Spreadsheet + defaultFileExtension()ehm_dal::spreadsheet::Spreadsheetstatic + exportPath()ehm_dal::spreadsheet::Spreadsheetstatic + file()ehm_dal::spreadsheet::Spreadsheet + fileExtensionListAsString(const bool merged_list=true)ehm_dal::spreadsheet::Spreadsheetstatic + fileExtensionListAsStringList()ehm_dal::spreadsheet::Spreadsheetstatic fileName()ehm_dal::spreadsheet::Spreadsheetinline fileType() constehm_dal::spreadsheet::Spreadsheet hasPrefixData() const (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheetinline @@ -139,27 +143,27 @@ header(const qint32 row) const (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet headerCell(const qint32 row, const quint16 col) const (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet headerCount() const (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheetinline - identifier() (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheetinline - importPath() (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheetstatic - newSpreadsheet(QFile &f) (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet - open(const QString &file_path) (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet - open(const QString &folder, const QString &file_name) (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet + identifier()ehm_dal::spreadsheet::Spreadsheetinline + importPath()ehm_dal::spreadsheet::Spreadsheetstatic + newSpreadsheet(QFile &f)ehm_dal::spreadsheet::Spreadsheet + open(const QString &file_path)ehm_dal::spreadsheet::Spreadsheet + open(const QString &folder, const QString &file_name)ehm_dal::spreadsheet::Spreadsheet prefix(const qint32 row) const (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet prefixCount() const (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheetinline prefixHeader(const qint32 row) const (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet prefixHeaderCount() const (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheetinline - printDiagnosticData() const (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet - read() (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet - row(const qint32 row) const (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet - rowCount() const (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheetinline - save(const QString &folder, const QString &file_name) (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet - setDefaultFileExtension(const qint32 i) (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheetstatic - setFile(const QString &path) (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet - setHeaderCount(const qint32 header_row_count) (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet - showOpenDialog(QString file_path=QString(), const bool read_data=true) (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet - showOpenDialog(settings::FolderPath &path, const bool read_data=true) (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet - showSaveDialog(const QString &file_name="output.csv", QString file_path=QString()) (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet - showSaveDialog(settings::FolderPath &path) (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet + printDiagnosticData() constehm_dal::spreadsheet::Spreadsheet + read()ehm_dal::spreadsheet::Spreadsheet + row(const qint32 row) constehm_dal::spreadsheet::Spreadsheet + rowCount() constehm_dal::spreadsheet::Spreadsheetinline + save(const QString &folder, const QString &file_name)ehm_dal::spreadsheet::Spreadsheet + setDefaultFileExtension(const qint32 i)ehm_dal::spreadsheet::Spreadsheetstatic + setFile(const QString &path)ehm_dal::spreadsheet::Spreadsheet + setHeaderCount(const qint32 header_row_count)ehm_dal::spreadsheet::Spreadsheet + showOpenDialog(QString file_path=QString(), const bool read_data=true)ehm_dal::spreadsheet::Spreadsheet + showOpenDialog(settings::FolderPath &path, const bool read_data=true)ehm_dal::spreadsheet::Spreadsheet + showSaveDialog(const QString &file_name="output.csv", QString file_path=QString())ehm_dal::spreadsheet::Spreadsheet + showSaveDialog(settings::FolderPath &path)ehm_dal::spreadsheet::Spreadsheet Spreadsheet(const QString &file_path=QString()) (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet Spreadsheet(const settings::FolderPath &path) (defined in ehm_dal::spreadsheet::Spreadsheet)ehm_dal::spreadsheet::Spreadsheet write()ehm_dal::spreadsheet::Spreadsheet diff --git a/docs/classehm__dal_1_1spreadsheet_1_1_spreadsheet.html b/docs/classehm__dal_1_1spreadsheet_1_1_spreadsheet.html index 252c084..ab807d9 100644 --- a/docs/classehm__dal_1_1spreadsheet_1_1_spreadsheet.html +++ b/docs/classehm__dal_1_1spreadsheet_1_1_spreadsheet.html @@ -117,22 +117,34 @@ void add (const QVariant &data)   -void add (const QVariant &data, const qint32 row) +void add (const QVariant &data, const qint32 row)   void add (const QVariant &data, const qint32 start_row, const qint32 row_count)   +void add (ehm_dal::tables::AbstractTable *model, const Qt::ItemDataRole role=Qt::DisplayRole) + Adds all rows and columns from model to the spreadsheet. This is generally used to export a ehm_dal::tables::AbstractTable using Qt::DisplayRole or Qt::EditRole.
+  +void add (ehm_dal::tables::AbstractTable *model, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole) + Adds all rows and the selected columns from model to the spreadsheet. This is generally used to export a ehm_dal::tables::AbstractTable using Qt::DisplayRole or Qt::EditRole.
+  +void add (ehm_dal::tables::AbstractTable *model, const qint32 row, const Qt::ItemDataRole role=Qt::DisplayRole) + Adds the selected row and all columns from model to the spreadsheet. This is generally used to export a ehm_dal::tables::AbstractTable using Qt::DisplayRole or Qt::EditRole.
+  +void add (ehm_dal::tables::AbstractTable *model, const qint32 row, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole) + Adds the selected row and selected columns from model to the spreadsheet. This is generally used to export a ehm_dal::tables::AbstractTable using Qt::DisplayRole or Qt::EditRole.
+  void add (QAbstractTableModel *model, const Qt::ItemDataRole role=Qt::DisplayRole) - Adds all rows and columns from model to the spreadsheet. This is generally used to export a Table using Qt::DisplayRole or Qt::EditRole.
+ Adds all rows and columns from model to the spreadsheet. This is generally used to export a QAbstractTableModel using Qt::DisplayRole or Qt::EditRole.
  void add (QAbstractTableModel *model, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole) - Adds all rows and the selected columns from model to the spreadsheet. This is generally used to export a Table using Qt::DisplayRole or Qt::EditRole.
+ Adds all rows and the selected columns from model to the spreadsheet. This is generally used to export a QAbstractTableModel using Qt::DisplayRole or Qt::EditRole.
  -void add (QAbstractTableModel *model, const qint32 row, const Qt::ItemDataRole role=Qt::DisplayRole) - Adds the selected row and all columns from model to the spreadsheet. This is generally used to export a Table using Qt::DisplayRole or Qt::EditRole.
+void add (QAbstractTableModel *model, const qint32 row, const Qt::ItemDataRole role=Qt::DisplayRole) + Adds the selected row and all columns from model to the spreadsheet. This is generally used to export a QAbstractTableModel using Qt::DisplayRole or Qt::EditRole.
  -void add (QAbstractTableModel *model, const qint32 row, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole) - Adds the selected row and selected columns from model to the spreadsheet. This is generally used to export a Table using Qt::DisplayRole or Qt::EditRole.
+void add (QAbstractTableModel *model, const qint32 row, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole) + Adds the selected row and selected columns from model to the spreadsheet. This is generally used to export a QAbstractTableModel using Qt::DisplayRole or Qt::EditRole.
  void add (const ehm_dal::data_types::Pointer &pointer, const Qt::ItemDataRole role=Qt::DisplayRole)  Adds all columns of the selected Pointer to the spreadsheet.
@@ -148,21 +160,23 @@   void addPrefix () + Adds a blank cell to the current prefix row.
  - -void addPrefix (const QVariant &data) +void addPrefix (const QVariant &data) + Adds data to the current prefix row.
  void addHeader () + Adds a blank cell to the current header row.
  - -void addHeader (const QString &text) +void addHeader (const QString &text) + Adds text to the current header row.
  - -void addHeader (const QStringList &text_list) +void addHeader (const QStringList &text_list) + Adds the text_list to the current header row.
  - -void addHeader (const QVariant &data) +void addHeader (const QVariant &data) + Adds data to the current header row.
  void addHeader (QAbstractTableModel *model)  Adds a header row of column names of all columns from the 'model'. This is typically used to add the names of all columns from a Table as a header row to the spreadsheet.
@@ -172,78 +186,83 @@   void addHeaderPrefix () + Adds a blank cell to the current prefix header row.
  - -void addHeaderPrefix (const QVariant &data) +void addHeaderPrefix (const QVariant &data) + Adds data to the current prefix header row.
  void printDiagnosticData () const + Prints various diagnostic data to the console.
  QString file () + Returns the file path, file base name and file extension.
  -QString fileName () - Returns the file path and name of the output spreadsheet.
+ +QString fileName () + Returns the file path and name of the output spreadsheet.
  QString fileType () const  Returns the file type of the output spreadsheet.
  QString identifier () + Returns the identifier text string located at the top left cell (i.e. Cell A1).
  - -void addFileNameSuffix (const QString &suffix) +void addFileNameSuffix (const QString &suffix) + Adds suffix to the end of the file name.
  - -bool setFile (const QString &path) +bool setFile (const QString &path) + Set the file path, name and extension from path.
  - -bool open (const QString &file_path) +bool open (const QString &file_path) + Opens a file without showing a dialog window.
  - -bool open (const QString &folder, const QString &file_name) +bool open (const QString &folder, const QString &file_name) + Opens a file without showing a dialog window.
  - -bool read () +bool read () + Reads the current file.
  - -bool save (const QString &folder, const QString &file_name) +bool save (const QString &folder, const QString &file_name) + Saves the spreadsheet to the selected folder path and file name.
  bool write ()  Writes/saves the spreadsheet to the output file.
  - -bool showOpenDialog (QString file_path=QString(), const bool read_data=true) +bool showOpenDialog (QString file_path=QString(), const bool read_data=true) + Displays a dialog window allowing the user to select a spreadsheet to open.
  - -bool showOpenDialog (settings::FolderPath &path, const bool read_data=true) +bool showOpenDialog (settings::FolderPath &path, const bool read_data=true) + Displays a dialog window allowing the user to select a spreadsheet to open.
  - -bool showSaveDialog (const QString &file_name="output.csv", QString file_path=QString()) +bool showSaveDialog (const QString &file_name="output.csv", QString file_path=QString()) + Displays a dialog window allowing the user to save the spreadsheet.
  - -bool showSaveDialog (settings::FolderPath &path) +bool showSaveDialog (settings::FolderPath &path) + Displays a dialog window allowing the user to save the spreadsheet.
  - -QVariant cell (const qint32 row, const qint32 col) const +QVariant cell (const qint32 row, const qint32 col) const + Returns the data at located at row and col.
  - -std::span< const QVariant > cells (const qint32 row, const qint32 col, const qint32 col_count) const +std::span< const QVariant > cells (const qint32 row, const qint32 col, const qint32 col_count) const + Returns the data for the chosen number of columns commencing from row and col.
  - -bool columnContainsData (const qint32 column) const +bool columnContainsData (const qint32 column) const + Returns whether a column contains any data.
  - -qint32 columnCount (const qint32 row) const +qint32 columnCount (const qint32 row) const + Returns the column count for the selected row.
  - -std::span< const QVariant > row (const qint32 row) const +std::span< const QVariant > row (const qint32 row) const + Returns the data of the entirety of the selected row.
  - -qint32 rowCount () const +qint32 rowCount () const + Returns the data row count.
  -QVariant prefix (const qint32 row) const +QVariant prefix (const qint32 row) const   bool hasPrefixData () const @@ -252,16 +271,16 @@ qint32 prefixCount () const   -std::span< const QVariant > header (const qint32 row) const +std::span< const QVariant > header (const qint32 row) const   -QVariant headerCell (const qint32 row, const quint16 col) const +QVariant headerCell (const qint32 row, const quint16 col) const   qint32 headerCount () const   -QVariant prefixHeader (const qint32 row) const +QVariant prefixHeader (const qint32 row) const   bool hasPrefixHeaderData () const @@ -271,41 +290,47 @@   void addNewHeaderRow () + Adds a new header row.
  void addNewRow () + Adds a new data row.
  - -void setHeaderCount (const qint32 header_row_count) +void setHeaderCount (const qint32 header_row_count) + Sets the number of header rows to header_row_count.
  - -std::unique_ptr< SpreadsheetFilenewSpreadsheet (QFile &f) +std::unique_ptr< SpreadsheetFilenewSpreadsheet (QFile &f) + Creates a new spreadsheet from f and returns a pointer to the created ehm_dal::spreadsheet::SpreadsheetFile.
  + - + + + - + + + +

Static Public Member Functions

static qint32 defaultFileExtension ()
 Returns the default file extension.
 
-static QString fileExtensionListAsString (const bool merged_list=true)
static QString fileExtensionListAsString (const bool merged_list=true)
 Returns a list of supported file extensions.
 
static QStringList fileExtensionListAsStringList ()
 Returns a list of supported file extensions.
 
-static void setDefaultFileExtension (const qint32 i)
static void setDefaultFileExtension (const qint32 i)
 Set the default file extension to i.
 
static QString exportPath ()
 Returns the default file path used for exporting data.
 
static QString importPath ()
 Returns the default file path used for importing data.
 

Member Function Documentation

-

◆ add() [1/8]

+

◆ add() [1/12]

@@ -342,7 +367,7 @@

-

◆ add() [2/8]

+

◆ add() [2/12]

@@ -386,7 +411,7 @@

-

◆ add() [3/8]

+

◆ add() [3/12]

@@ -423,7 +448,7 @@

-

◆ add() [4/8]

+

◆ add() [4/12]

@@ -464,10 +489,186 @@

+

◆ add() [5/12]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void ehm_dal::spreadsheet::Spreadsheet::add (ehm_dal::tables::AbstractTablemodel,
const qint32 row,
const Qt::ItemDataRole role = Qt::DisplayRole 
)
+
+ +

Adds the selected row and all columns from model to the spreadsheet. This is generally used to export a ehm_dal::tables::AbstractTable using Qt::DisplayRole or Qt::EditRole.

+
Parameters
+ + + + +
modelSource ehm_dal::tables::AbstractTable
rowSource row
roleSource data role
+
+
+ +
+
+ +

◆ add() [6/12]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void ehm_dal::spreadsheet::Spreadsheet::add (ehm_dal::tables::AbstractTablemodel,
const qint32 row,
const std::vector< qint32 > & column_index_list,
const Qt::ItemDataRole role = Qt::DisplayRole 
)
+
+ +

Adds the selected row and selected columns from model to the spreadsheet. This is generally used to export a ehm_dal::tables::AbstractTable using Qt::DisplayRole or Qt::EditRole.

+
Parameters
+ + + + + +
modelSource ehm_dal::tables::AbstractTable
rowSource row
column_index_listColumn indexes to be added
roleSource data role
+
+
+ +
+
+ +

◆ add() [7/12]

+ +
+
+ + + + + + + + + + + + + + + + + + +
void ehm_dal::spreadsheet::Spreadsheet::add (ehm_dal::tables::AbstractTablemodel,
const Qt::ItemDataRole role = Qt::DisplayRole 
)
+
+ +

Adds all rows and columns from model to the spreadsheet. This is generally used to export a ehm_dal::tables::AbstractTable using Qt::DisplayRole or Qt::EditRole.

+
Parameters
+ + + +
modelSource ehm_dal::tables::AbstractTable
roleSource data role
+
+
+ +
+
+ +

◆ add() [8/12]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void ehm_dal::spreadsheet::Spreadsheet::add (ehm_dal::tables::AbstractTablemodel,
const std::vector< qint32 > & column_index_list,
const Qt::ItemDataRole role = Qt::DisplayRole 
)
+
+ +

Adds all rows and the selected columns from model to the spreadsheet. This is generally used to export a ehm_dal::tables::AbstractTable using Qt::DisplayRole or Qt::EditRole.

+
Parameters
+ + + + +
modelSource ehm_dal::tables::AbstractTable
column_index_listColumn indexes to be added
roleSource data role
+
+
+
-

◆ add() [5/8]

+

◆ add() [9/12]

@@ -498,10 +699,10 @@

-

Adds the selected row and all columns from model to the spreadsheet. This is generally used to export a Table using Qt::DisplayRole or Qt::EditRole.

+

Adds the selected row and all columns from model to the spreadsheet. This is generally used to export a QAbstractTableModel using Qt::DisplayRole or Qt::EditRole.

Parameters
- +
modelSource QAbstractTableModel or Table
modelSource QAbstractTableModel
rowSource row
roleSource data role
@@ -511,7 +712,7 @@

-

◆ add() [6/8]

+

◆ add() [10/12]

@@ -548,10 +749,10 @@

-

Adds the selected row and selected columns from model to the spreadsheet. This is generally used to export a Table using Qt::DisplayRole or Qt::EditRole.

+

Adds the selected row and selected columns from model to the spreadsheet. This is generally used to export a QAbstractTableModel using Qt::DisplayRole or Qt::EditRole.

Parameters
- + @@ -562,7 +763,7 @@

-

◆ add() [7/8]

+

◆ add() [11/12]

modelSource QAbstractTableModel or Table
modelSource QAbstractTableModel
rowSource row
column_index_listColumn indexes to be added
roleSource data role
- +
modelSource QAbstractTableModel or Table
modelSource QAbstractTableModel
roleSource data role
@@ -599,7 +800,7 @@

-

◆ add() [8/8]

+

◆ add() [12/12]

+ +

◆ addFileNameSuffix()

+ +
+
+ + + + + + + + +
void ehm_dal::spreadsheet::Spreadsheet::addFileNameSuffix (const QString & suffix)
+
+ +

Adds suffix to the end of the file name.

+
Parameters
+ + +
suffix
+
+
+ +
+
+ +

◆ addHeader() [1/5]

+ +
+
+ + + + + +
+ + + + + + + + +
void ehm_dal::spreadsheet::Spreadsheet::addHeader (const QString & text)
+
+inline
+
+ +

Adds text to the current header row.

+
Parameters
+ + +
textText to be added
+
+
+ +
+
+ +

◆ addHeader() [2/5]

+ +
+
+ + + + + + + + +
void ehm_dal::spreadsheet::Spreadsheet::addHeader (const QStringList & text_list)
+
+ +

Adds the text_list to the current header row.

+
Parameters
+ + +
text_listQStringList to be added
+
+
+ +
+
+ +

◆ addHeader() [3/5]

+ +
+
+ + + + + + + + +
void ehm_dal::spreadsheet::Spreadsheet::addHeader (const QVariant & data)
+
+ +

Adds data to the current header row.

+
Parameters
+ + +
dataData to be added
+
+
+
-

◆ addHeader() [1/2]

+

◆ addHeader() [4/5]

@@ -669,7 +982,7 @@

-

◆ addHeader() [2/2]

+

◆ addHeader() [5/5]

@@ -705,8 +1018,8 @@

-

◆ fileName()

+ +

◆ addHeaderPrefix()

- -

◆ fileType()

+ +

◆ addPrefix()

- +
+ + + + +
+ + + + + + + + +
void ehm_dal::spreadsheet::Spreadsheet::addPrefix (const QVariant & data)
+
+inline
+
+ +

Adds data to the current prefix row.

+
Parameters
+ + +
dataData to be added
+
+
+ +
+
+ +

◆ cell()

+ +
+
+ + + + + + + + + + + + + + + + + + +
QVariant ehm_dal::spreadsheet::Spreadsheet::cell (const qint32 row,
const qint32 col 
) const
+
+ +

Returns the data at located at row and col.

+
Parameters
+ + + +
rowRow index
colColumn index
+
+
+ +
+
+ +

◆ cells()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
std::span< const QVariant > ehm_dal::spreadsheet::Spreadsheet::cells (const qint32 row,
const qint32 col,
const qint32 col_count 
) const
+
+ +

Returns the data for the chosen number of columns commencing from row and col.

+
Parameters
+ + + + +
rowRow index
colFirst column index
col_countNumber of columns
+
+
+ +
+
+ +

◆ columnContainsData()

+ +
+
+ + + + + + + + +
bool ehm_dal::spreadsheet::Spreadsheet::columnContainsData (const qint32 column) const
+
+ +

Returns whether a column contains any data.

+
Parameters
+ + +
columnColumn index
+
+
+ +
+
+ +

◆ columnCount()

+ +
+
+ + + + + + + + +
qint32 ehm_dal::spreadsheet::Spreadsheet::columnCount (const qint32 row) const
+
+ +

Returns the column count for the selected row.

+
Parameters
+ + +
rowRow index
+
+
+
Returns
column count
+ +
+
+ +

◆ fileExtensionListAsString()

+ +
+
+ + + + + +
+ + + + + + + + +
static QString ehm_dal::spreadsheet::Spreadsheet::fileExtensionListAsString (const bool merged_list = true)
+
+static
+
+ +

Returns a list of supported file extensions.

+
Parameters
+ + +
merged_listIf true, the list will include ";;" separators for use as individual file filters.
+
+
+ +
+
+ +

◆ fileType()

+ +
+
+ @@ -751,6 +1272,439 @@

Returns
the file type
+ + +
+

◆ newSpreadsheet()

+ +
+
+

QString ehm_dal::spreadsheet::Spreadsheet::fileType (
+ + + + + + + +
std::unique_ptr< SpreadsheetFile > ehm_dal::spreadsheet::Spreadsheet::newSpreadsheet (QFile & f)
+
+ +

Creates a new spreadsheet from f and returns a pointer to the created ehm_dal::spreadsheet::SpreadsheetFile.

+
Parameters
+ + +
fSource QFile
+
+
+
Returns
pointer to the created ehm_dal::spreadsheet::SpreadsheetFile
+ +
+
+ +

◆ open() [1/2]

+ +
+
+ + + + + + + + +
bool ehm_dal::spreadsheet::Spreadsheet::open (const QString & file_path)
+
+ +

Opens a file without showing a dialog window.

+
Parameters
+ + +
file_pathFolder path and file name to be opened
+
+
+
Returns
whether or not the file was successfully read
+ +
+
+ +

◆ open() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool ehm_dal::spreadsheet::Spreadsheet::open (const QString & folder,
const QString & file_name 
)
+
+ +

Opens a file without showing a dialog window.

+
Parameters
+ + + +
folderFolder path
file_nameFile name
+
+
+
Returns
whether or not the file was successfully read
+ +
+
+ +

◆ read()

+ +
+
+ + + + + + + +
bool ehm_dal::spreadsheet::Spreadsheet::read ()
+
+ +

Reads the current file.

+
Returns
whether or not the file was successfully read
+ +
+
+ +

◆ row()

+ +
+
+ + + + + + + + +
std::span< const QVariant > ehm_dal::spreadsheet::Spreadsheet::row (const qint32 row) const
+
+ +

Returns the data of the entirety of the selected row.

+
Parameters
+ + +
rowRow index
+
+
+
Returns
Column data
+ +
+
+ +

◆ rowCount()

+ +
+
+ + + + + +
+ + + + + + + +
qint32 ehm_dal::spreadsheet::Spreadsheet::rowCount () const
+
+inline
+
+ +

Returns the data row count.

+
Returns
row count
+ +
+
+ +

◆ save()

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool ehm_dal::spreadsheet::Spreadsheet::save (const QString & folder,
const QString & file_name 
)
+
+ +

Saves the spreadsheet to the selected folder path and file name.

+
Parameters
+ + + +
folderFolder path
file_nameFile name
+
+
+
Returns
whether or not the file was successfully saved
+ +
+
+ +

◆ setDefaultFileExtension()

+ +
+
+ + + + + +
+ + + + + + + + +
static void ehm_dal::spreadsheet::Spreadsheet::setDefaultFileExtension (const qint32 i)
+
+static
+
+ +

Set the default file extension to i.

+
Parameters
+ + +
iSpreadsheet::ENUM_FILE_EXTENSIONS
+
+
+ +
+
+ +

◆ setFile()

+ +
+
+ + + + + + + + +
bool ehm_dal::spreadsheet::Spreadsheet::setFile (const QString & path)
+
+ +

Set the file path, name and extension from path.

+
Parameters
+ + +
path
+
+
+
Returns
Returns whether path contains any text.
+ +
+
+ +

◆ setHeaderCount()

+ +
+
+ + + + + + + + +
void ehm_dal::spreadsheet::Spreadsheet::setHeaderCount (const qint32 header_row_count)
+
+ +

Sets the number of header rows to header_row_count.

+
Parameters
+ + +
header_row_count
+
+
+ +
+
+ +

◆ showOpenDialog() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool ehm_dal::spreadsheet::Spreadsheet::showOpenDialog (QString file_path = QString(),
const bool read_data = true 
)
+
+ +

Displays a dialog window allowing the user to select a spreadsheet to open.

+
Parameters
+ + + +
file_pathInitial file path to show in the dialog
read_dataTrue = read the file. False = do not read the file.
+
+
+
Returns
whether the file was successfully read and/or selected. Returns false if the user has clicked cancel.
+ +
+
+ +

◆ showOpenDialog() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool ehm_dal::spreadsheet::Spreadsheet::showOpenDialog (settings::FolderPathpath,
const bool read_data = true 
)
+
+ +

Displays a dialog window allowing the user to select a spreadsheet to open.

+
Parameters
+ + + +
pathInitial file path to show in the dialog
read_dataTrue = read the file. False = do not read the file.
+
+
+
Returns
whether the file was successfully read and/or selected. Returns false if the user has clicked cancel.
+ +
+
+ +

◆ showSaveDialog() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool ehm_dal::spreadsheet::Spreadsheet::showSaveDialog (const QString & file_name = "output.csv",
QString file_path = QString() 
)
+
+ +

Displays a dialog window allowing the user to save the spreadsheet.

+
Parameters
+ + + +
file_nameInitial file name to show in the dialog
file_pathInitial file path to show in the dialog
+
+
+
Returns
whether the file was successfully saved. Returns false if the user has clicked cancel.
+ +
+
+ +

◆ showSaveDialog() [2/2]

+ +
+
+ + + + + + + + +
bool ehm_dal::spreadsheet::Spreadsheet::showSaveDialog (settings::FolderPathpath)
+
+ +

Displays a dialog window allowing the user to save the spreadsheet.

+
Parameters
+ + +
Initialfile path to show in the dialog
+
+
+
Returns
whether the file was successfully saved. Returns false if the user has clicked cancel.
+
diff --git a/docs/classehm__dal_1_1spreadsheet_1_1_spreadsheet.js b/docs/classehm__dal_1_1spreadsheet_1_1_spreadsheet.js index 0fa1bbc..d43af89 100644 --- a/docs/classehm__dal_1_1spreadsheet_1_1_spreadsheet.js +++ b/docs/classehm__dal_1_1spreadsheet_1_1_spreadsheet.js @@ -4,13 +4,54 @@ var classehm__dal_1_1spreadsheet_1_1_spreadsheet = [ "add", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad654fe9d88b43b04c971a78f6a59d26a", null ], [ "add", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a562521337a397e1b7624fd97745fb427", null ], [ "add", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aa646b53c2f39a7c593f94bec7d2e74b7", null ], + [ "add", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad6225201da43f876ab534ac46ccc460e", null ], + [ "add", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a33e87ac5adcdbc82103ba6a3f612c86c", null ], + [ "add", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a9c7a640b16a389b19b1c891c9f3d2e95", null ], + [ "add", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad7d14dc9e62032120f1fcb7b4ab46b65", null ], [ "add", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ab02261471052d0c5bb5db89b270caabd", null ], [ "add", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a8b201abb1ce19173990ec5bf271f4fe4", null ], [ "add", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a38faa238bc3faba8ed3ced0bfbed7b28", null ], [ "add", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a9d00960e4b442ec89ab06ffa95670060", null ], + [ "addFileNameSuffix", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad6183f01d6260a1aa034af0072f0c412", null ], + [ "addHeader", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a7da6ad9c555a6325f46bf5cee2bd8829", null ], + [ "addHeader", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aa29d87c626c65fc6053dac21b31c401f", null ], + [ "addHeader", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a190763b9b2567897283382994f041c95", null ], + [ "addHeader", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#afa0ded0494eca327f993a3b548625e51", null ], [ "addHeader", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#abbe567a20cacd1b736b47f6b81c59e27", null ], [ "addHeader", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#abed045a1087d3f474cf535eb41b4de7d", null ], + [ "addHeaderPrefix", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ac49f7333ff8aed23c82cac7c6107df31", null ], + [ "addHeaderPrefix", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a47c4f3ee618a3b541997ffad7d09af40", null ], + [ "addNewHeaderRow", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a18abaf99132780f43677db73e76540dd", null ], + [ "addNewRow", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#abf4bdbc536f7cdbe8b4903584a85d7a4", null ], + [ "addPrefix", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a6a2d33ec32e82dbeb70f06e18addfa95", null ], + [ "addPrefix", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a656f8750a70ef9672ac62000cdb229ff", null ], + [ "cell", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a37a871b8ad1b0bb89a5f2dde41ac83a6", null ], + [ "cells", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a108b8f50b8d53d0984acc6b1c2ddee5e", null ], + [ "columnContainsData", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a74cbcb0934ea4c674a03658832651a4f", null ], + [ "columnCount", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a4ab3046be7e56645c29d8f896c8c7c41", null ], + [ "defaultFileExtension", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aa43792574fe22a3944bf6558cec81fa5", null ], + [ "exportPath", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad3ec8823d95deeea1fc00b5f01523979", null ], + [ "file", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a25c16bb23cca09f307dee41fe737305c", null ], + [ "fileExtensionListAsString", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a766f09738864d07bc49fdc662991ee26", null ], + [ "fileExtensionListAsStringList", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a59a0b37b9fce42b949974519eba1cc65", null ], [ "fileName", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a32450ee50742a818911d377084f39d41", null ], [ "fileType", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aedb4a30f7cb4ab627d606f1a44f26779", null ], + [ "identifier", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a1bcf058f06086df9f9785aa8e6123104", null ], + [ "importPath", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a7826eeae47dd16ff2a43bd419d7ded8e", null ], + [ "newSpreadsheet", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#abf2158dbb4aef3d3cf57541d919c030f", null ], + [ "open", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#af386628bfcc5f24009c3068680170948", null ], + [ "open", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad0197013e0b271d5bb7c93e2564e1989", null ], + [ "printDiagnosticData", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#acc7007fc094de7a45e327be4367ad1ab", null ], + [ "read", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a74c8abd84600dd606738ec251358dbba", null ], + [ "row", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aaf816e56b59790686f0f03f5faa84d5a", null ], + [ "rowCount", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a09c399aab7c9b758f8541b4a34ad17ba", null ], + [ "save", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a6f976d76532f0eb547ab4e440a306f15", null ], + [ "setDefaultFileExtension", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a45f06f79bd6509a1efd1cbc9d6133429", null ], + [ "setFile", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a88b4203ec0d5c202a98e12aef1ede281", null ], + [ "setHeaderCount", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a95e7e52a13395c4232acbe036da57df2", null ], + [ "showOpenDialog", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a775a493ff6b72a72ff231a17e03e11cc", null ], + [ "showOpenDialog", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aedb3e27e7b1d22440660a559223047f8", null ], + [ "showSaveDialog", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a34dda677bc080c30db6c9b4489447715", null ], + [ "showSaveDialog", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a6877aa5c090853ab977b5e346f0e377d", null ], [ "write", "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a8f7852ef9508075a338b9d1c546b463f", null ] ]; \ No newline at end of file diff --git a/docs/classes.html b/docs/classes.html index 2831105..ae16255 100644 --- a/docs/classes.html +++ b/docs/classes.html @@ -134,7 +134,7 @@
Reputation10000 (ehm_dal::data_types)
Reputation200 (ehm_dal::data_types)
RetiredNumber (ehm_dal::schema)
RetiredNumberColumns (ehm_dal::column_data)

S
-
SavedGame (ehm_dal)
SavedGameData (ehm_dal::saved_game)
SavedGameSubFile (ehm_dal::saved_game)
SavedGameTable (ehm_dal::saved_game)
ScheduleClub (ehm_dal::tools::schedule_template_generator)
ScheduleGame (ehm_dal::tools::schedule_template_generator)
ScheduleGameTable (ehm_dal::tools::schedule_template_generator)
ScheduleMatrix (ehm_dal::tools::schedule_template_generator)
ScheduleRound (ehm_dal::tools::schedule_template_generator)
ScheduleRoundData (ehm_dal::tools::schedule_template_generator)
ScheduleTemplateGenerator (ehm_dal::tools::schedule_template_generator)
Settings (ehm_dal::settings)
Spreadsheet (ehm_dal::spreadsheet)
SpreadsheetFile (ehm_dal::spreadsheet)
SpreadsheetFileCsv (ehm_dal::spreadsheet)
SpreadsheetFileXlsx (ehm_dal::spreadsheet)
Staff (ehm_dal::schema)
StaffAward (ehm_dal::schema)
StaffAwardColumns (ehm_dal::column_data)
StaffAwardHistory (ehm_dal::schema)
StaffAwardHistoryColumns (ehm_dal::column_data)
StaffColumns (ehm_dal::column_data)
StaffHistory (ehm_dal::schema)
StaffHistoryColumns (ehm_dal::column_data)
StaffInfo (ehm_dal::schema)
StaffInfoColumns (ehm_dal::column_data)
StaffPreferences (ehm_dal::schema)
StaffPreferencesColumns (ehm_dal::column_data)
StageName (ehm_dal::schema)
StageNameColumns (ehm_dal::column_data)
State (ehm_dal::schema)
StateColumns (ehm_dal::column_data)
String (ehm_dal::data_types)
+
SavedGame (ehm_dal)
SavedGameData (ehm_dal::saved_game)
SavedGameFileManager (ehm_dal::file_io)
SavedGameSubFile (ehm_dal::saved_game)
SavedGameTable (ehm_dal::saved_game)
ScheduleClub (ehm_dal::tools::schedule_template_generator)
ScheduleGame (ehm_dal::tools::schedule_template_generator)
ScheduleGameTable (ehm_dal::tools::schedule_template_generator)
ScheduleMatrix (ehm_dal::tools::schedule_template_generator)
ScheduleRound (ehm_dal::tools::schedule_template_generator)
ScheduleRoundData (ehm_dal::tools::schedule_template_generator)
ScheduleTemplateGenerator (ehm_dal::tools::schedule_template_generator)
Settings (ehm_dal::settings)
Spreadsheet (ehm_dal::spreadsheet)
SpreadsheetFile (ehm_dal::spreadsheet)
SpreadsheetFileCsv (ehm_dal::spreadsheet)
SpreadsheetFileXlsx (ehm_dal::spreadsheet)
Staff (ehm_dal::schema)
StaffAward (ehm_dal::schema)
StaffAwardColumns (ehm_dal::column_data)
StaffAwardHistory (ehm_dal::schema)
StaffAwardHistoryColumns (ehm_dal::column_data)
StaffColumns (ehm_dal::column_data)
StaffHistory (ehm_dal::schema)
StaffHistoryColumns (ehm_dal::column_data)
StaffInfo (ehm_dal::schema)
StaffInfoColumns (ehm_dal::column_data)
StaffPreferences (ehm_dal::schema)
StaffPreferencesColumns (ehm_dal::column_data)
StageName (ehm_dal::schema)
StageNameColumns (ehm_dal::column_data)
State (ehm_dal::schema)
StateColumns (ehm_dal::column_data)
String (ehm_dal::data_types)

T
TableAttributes (ehm_dal::tables)
diff --git a/docs/dir_2ed6006962cd6ae32e42c5109b87cec5.html b/docs/dir_2ed6006962cd6ae32e42c5109b87cec5.html new file mode 100644 index 0000000..0edba4b --- /dev/null +++ b/docs/dir_2ed6006962cd6ae32e42c5109b87cec5.html @@ -0,0 +1,122 @@ + + + + + + + +EHM DAL: C:/Users/colin/QT Projects/Eastside Hockey Manager 1/EHM_Editor/lib/ehm_dal/include/saved_game/file_io Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
EHM DAL 1.0.0 +
+
Data abstraction layer for Eastside Hockey Manager
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
file_io Directory Reference
+
+
+
+Directory dependency graph for file_io:
+
+
C:/Users/colin/QT Projects/Eastside Hockey Manager 1/EHM_Editor/lib/ehm_dal/include/saved_game/file_io
+ + + + +
+ + + + +

+Files

file  saved_game_file_manager.h [code]
 
+
+
+ + + + diff --git a/docs/dir_2ed6006962cd6ae32e42c5109b87cec5_dep.map b/docs/dir_2ed6006962cd6ae32e42c5109b87cec5_dep.map new file mode 100644 index 0000000..853e4e3 --- /dev/null +++ b/docs/dir_2ed6006962cd6ae32e42c5109b87cec5_dep.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/dir_2ed6006962cd6ae32e42c5109b87cec5_dep.md5 b/docs/dir_2ed6006962cd6ae32e42c5109b87cec5_dep.md5 new file mode 100644 index 0000000..5a622bd --- /dev/null +++ b/docs/dir_2ed6006962cd6ae32e42c5109b87cec5_dep.md5 @@ -0,0 +1 @@ +86becf51002131e47e42465a0d4f35a2 \ No newline at end of file diff --git a/docs/dir_2ed6006962cd6ae32e42c5109b87cec5_dep.png b/docs/dir_2ed6006962cd6ae32e42c5109b87cec5_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..b044e42e7a0fcadeb5cf4fbc819ebc4ea3625786 GIT binary patch literal 1065 zcmeAS@N?(olHy`uVBq!ia0vp^^+24#!3HF6xhaYKE_v^cJ}c^nmjzx{ta zp5*1|?H{+rM9igIePz|8Rm&ancB;nt+{`OaFHcW1HvYX&{=~vJ=botc&zyVKdzlN+ zW+afXvdinS0*4&C;|49OIdr`6Y;tcodo!|b})o;C-Qzx=j+*0rMgpLdYi8D6! zAF~Sb-#I?AoGtzOke$`tdk!TsZy(?O|7WB7)vT?qE|*S*Oa0vUe*3w(^D8vG>_i^F ze)oJX|NHxAfyV3KZohPby;#pD{?`85*Rx60e|vO<#O{?ey?z)2F8|k@|1`>Gz)(96bMZt(IL1pJyI%MNfC%j%}VF zpH$8*tb6}oYJJ%1bkB#vc8{eozfM-~%T$*C`Ot;$ zKi_F<-o7f)^{;>C?D%c)>0{o!Ond)$*U6pwoxGb5oml>NO+L^)4|^tVW4qvaW&XM6 zMyA{mrf=K(UC#%<^fueKcZbOG*$0^|9kD(F{`J#FT3K_WH3rx*UOHtJaJ^Y z*y`SH$H%K{Z{OG;aQe})v)0xwSHfO4$J)kEx#PDz{p^%EZtk}8V?S+HxqPkVbzA0q zLlqb@`}*fo;g)&)uS%|bo>=4F`s(MU2{p%%(UeK{Yo0gHHuxkPx~i(Ky83hpN9*hv zbCk}n&VIQ%3h z_0H{1dOhiVW$Ef=ZnkfH?3UFYo8ndnN-nndV1EK_WH9xm#mHc@HFsA zn6}Km-S7XLV6Qxr%%Y252_ZcLbd`Q-Gw^6L5bH`U(gJ8CNb z$kO&x=#sZ*4>R6=QtY{b44FVD-0GD*Il#Korjv>)K>uChCF*z|tjis#157SHRScwS->6h$a<@4Kr% z|Hb?HPqv=;a`be`t1psU!n5q>RoG}h{rm0lnl)=|R)uJ7_B{Uk@4u|gH+}xRKcBJw gnjBIt12X4)=fA~cpxAURJQgJ3>FVdQ&MBb@0F@LZ;s5{u literal 0 HcmV?d00001 diff --git a/docs/dir_8b61d4b81d3e131772ad27cd67f75f58.html b/docs/dir_8b61d4b81d3e131772ad27cd67f75f58.html index ea37fa1..6b5bec9 100644 --- a/docs/dir_8b61d4b81d3e131772ad27cd67f75f58.html +++ b/docs/dir_8b61d4b81d3e131772ad27cd67f75f58.html @@ -99,10 +99,11 @@
C:/Users/colin/QT Projects/Eastside Hockey Manager 1/EHM_Editor/lib/ehm_dal/include/saved_game
- + + - - + +
@@ -110,6 +111,8 @@ Directories + +
directory  data
 
directory  file_io
 
directory  table
 
diff --git a/docs/dir_8b61d4b81d3e131772ad27cd67f75f58_dep.map b/docs/dir_8b61d4b81d3e131772ad27cd67f75f58_dep.map index f1353ca..1a43c6e 100644 --- a/docs/dir_8b61d4b81d3e131772ad27cd67f75f58_dep.map +++ b/docs/dir_8b61d4b81d3e131772ad27cd67f75f58_dep.map @@ -1,6 +1,7 @@ - - - - + + + + + diff --git a/docs/dir_8b61d4b81d3e131772ad27cd67f75f58_dep.md5 b/docs/dir_8b61d4b81d3e131772ad27cd67f75f58_dep.md5 index 87f1f3d..174ac2f 100644 --- a/docs/dir_8b61d4b81d3e131772ad27cd67f75f58_dep.md5 +++ b/docs/dir_8b61d4b81d3e131772ad27cd67f75f58_dep.md5 @@ -1 +1 @@ -6b4b7bc194289aea31720d4b006968bf \ No newline at end of file +112e817571a13756a1621ca66e50eec1 \ No newline at end of file diff --git a/docs/dir_8b61d4b81d3e131772ad27cd67f75f58_dep.png b/docs/dir_8b61d4b81d3e131772ad27cd67f75f58_dep.png index 22bfd0300c3e92d80b0a3d5738745b45da144900..5f6711241ce8cb17bc24d55691b43ce15feccb56 100644 GIT binary patch literal 1837 zcmZuyX;f258htF%A~M(@X&lCG^sv|@BGL-oNPv z6A=(4D$Rr;hoA{N32|UR_9YMy*+e9Sod6+{Xfh9adQSi7SLc3J=X+nhQ@38-TbVvy zF53J4x(@&VZ8uk>9{{LigJbeu4KVr#d!GS2jRdR!I4J|jGzud!FP5wzrZ2E~n+%nMw z*YPKhrBO+PYAk`Ev~;6D3-xoHXAr^}pYY9_|_)*)g^Inj_ zmXaA`H;T(QI@F@nrsDcZ;c(%n=9SX!*-mIBXT8(LU$Hq~sg&686auLgru{|DC6%+7 z9A?glH`mXk8MAO@A0Vc{fW12?e*_~Ei79eLkG((u0c^|tSU)2Wh~%|3hmhEt{I*3r zG~3r@qCX-1MMm@HT9m*ut;`JqJREEMJd>XY&I~X~zvOUGc=y(2Uhc?<-`$MMsbSWn zsyf(mLcq42_ywVVu*!|{Snj9PL-E)V2HX2GJfzown3U!v^{`B`iou8M{x)(Am|7dIAHugoIi~X zo*+k8K28VvLxgO=sNM1)-~bLXiowZI4$#4Jgl$rR-Su^pAzEdBr*N3vk;EBDf>#)4 zO9_gT^@&oi-4}TyQy#r=WyFlcAYIj{jGxyUgUHru%>R3S{kp6OU9N7xarq|I{e7`} znIEg52j^>yt%|ExKfohW?}Q%%ZW(K(wHNlOrUke{0CjMicd?Urey$ID>Ljg|+n7jU zta3u|-Dun7l{=rRZ6>e46qBvAQ;UnJtBMaU9rJWrbSbmui=3u(U0F@#C&9@}xL66aU}W@?xT0sZvOzNsj(A5XEgtl? z*K1V-4LP$!GbwmR*tfZhHi!o6PRKRb}e#szJI#EqWj==ZXJwp4{>e`6TR?m%Ro96!RrXJ zRyKGjmrBI4AS<}tIWji}n-_@sOM6%6o%i_x)(kkRhE2GU8u`$4vu#msNEKXIaze?5 z4#=jyI9M&F{Q|d>@e7j&)bOKf;)r^mr!N=ZmP;`ZEUAJ1dsh+0Wq6%Sri;XUW=0g`BgLQ{cvfz-fY<$*!C;d!8mDO^W?grXra|1gh zalSXJ9n$uomV56=X!s}i8w;jQ<5A6tma;)sQo^wQ7}|MG$UcTw#KaQ)?OL@1nyBiEoXv!po}E2EI(O zQgm7~r-9mIt0_Mg8I`w*8aQ9ghUV6{IuKamwP0e)nTp`aK-8n?u(ArLhV8>B77%D! zllvNieoKN-_S7FYw8)%YDo6>kjz0yr%Sy>8(+0C{d*ji?w|VNmo{w~9ReVl#fCu^C zJvf!KalYMPWZNd+mQ#y(7ZUW$zdzNS?R zDldl4QCgEY51+!N&E-YD*h6Qy@o1o0Ec+Lx z9BH{@H@ijx*ZNJ>JwkSwuG1d{BQ~pZ@{XY;D^Rn$W{>e{$~dPpyK@sv3oxnT?Uhn4 z4_CoX6w}>#oCR4955}E;3Hm#!PNu zOgqjylt`$6S~i=enWd=Qlv&;gK@n2W*zZnfJE!kE=exY$d(Qhj-+A8WO5jl+Gm|YQ zAP~sxu&>uK5D4r7oKx4X0aheogbZwJPWk(Ifeb729>3zoO5m`U`|;%86%u};^@NSF ziiX-$nggl^zuS`lxtUvB6&e2}_#Ga+tvpLqp3w(494g-L$s+H)xd&AkYw~i3yY6oz z-}G(QK%S4R@(4T3dI~`Fb-10?L6KeQCzXGZ$81W-ZY5XVNYqb^N3GtgDoZ>77@v%2 z`ugJO$*%le$aQdDf%D7gpA)H6gQJ2yh}HigvO+tn>?`6X;Fo?*qFCY$nhdepdra|w zMRt7Os1=@NF4t?@d+3;=fv{0kM(*MoMc7+Ahe4ox&PRW*TX zkJq(1BayA=Df5+8O%FP2c^gSJVs(iD6)2Z{jemdh2n?w?5EPcgP>Z9xWaQ-$U z*l+7E`oLMDuBkEExc4~WoK9C(H@Wn%b|OWQGY>s+caj8odZw{ywlx7S9jl!{>s~mA zu&J-!n&kOqXC09^eRg_(=SEoH!~F8<=8GJTeoj+zaG%A_ztFbm0pTmy)~#a0W1P4@ zVzLw+MQ;-NKg02C)?_^9f1g@e-~s;;f22Druuon8!ZE3P0E@XvgIq6lu{`Adks@66 zYiuRWc)O>oi=D}|4BQzAh2Ar|2n0sKog0!5?E?tpeyr^9de4c6ZnyRTZ99ZXoi+6#A9?p#XOgX@f>G>*Y?1|~fdv(wI_u!IcfX>X4(C|koZ zcAMD@)gKxafxz5|f9;*U>X#wz1=hf9{Ay_f3|rL3T@ssK$TA|uDnn+^RcKV^=H@e@ zHoXO#E~k@{K|9t0RX>4$U!YWl1VNQEvO5B5Zlhn}9;7XnI@Xh~p)SWE7`4i8D5}Cd z?p?^W&*_}@WipLDEo0Ad8qg7vlybR4zgG1)t}a*IZfn@@k}_Kr(h=W)llwSGi#-=`v<%+BT^3CI(T$11xBS0=2m}&>Od01#v0xdBa6~J`C z^BQcV%aeTuKFnjGL#}?ty1G&EMM#d6EFd$QJN6b!ut$&f7Qn3Wc*+=Wcmky>rt&A3 z0Ie6r#L*ABCZ=`szS~_)d{+kL5s{>ui|)I1ln-HjZl?|yr0T0ZZp`|Qy_ikdlxNfP z=y5$4r6}k@)FenLUA*3*`6Pety9_J6G0QT6pfn21`ZF^isVJ z@pbE0>KP1EF3Z2R(VNA5>xvcp5aof#_8ka&ghve?u+MQD&B33FW$zM(ZbpxDequZn zzr>Znun6TV4_i$Fc{mdrA#=CgZPL&=HH=9-7z0;D2UxCif`{fgIs!dyy#0$NQu3i@ zQVE01Tq;GONYL-ne;RfU7BH5HOl_Nj#+by;!uWzBqX-n&{W`EhN z&RSrSom9B#KatJ1z+i2FCxur4Kw9Y?qLWUa_gB;6{7t=1#=XZ3jf{i>&3suvrE!Sz z(;`pEr48S&<#B05A?!1|OVR$O+hYSc834T$3&8XMaR%*T^|!COUJ8S4$OITInnN!? zIpWIe`q#w%w}f~@`Jb_K--=y%7Fq3ePFs*H6>sc*>jZ2NOIEO>`qTEM{7&Xo3NI1? z)79c7>#g=+dGGZ|o|?;3OR37d!VlW1FPY;uAM-!FS=h;O{lwUTYmg4QRGDrD*~$-I Oc|43d>c#MgPX7muXl7*q diff --git a/docs/functions.html b/docs/functions.html index e3832f0..fbcd3a7 100644 --- a/docs/functions.html +++ b/docs/functions.html @@ -98,9 +98,14 @@

- a -

diff --git a/docs/functions_c.html b/docs/functions_c.html index 9d1649a..da64a63 100644 --- a/docs/functions_c.html +++ b/docs/functions_c.html @@ -95,11 +95,13 @@

- c -

- - + - + + @@ -111,130 +111,131 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Cehm_dal::data_types:: AbstractPointer
 Cehm_dal::data_types::PointerPointer to a table item
 Cehm_dal::flags::Flag< T_DataType >
 Cehm_dal::data_types:: AbstractPointer
 Cehm_dal::flags::Flag< T_DataType >
 Cehm_dal::data_types::PointerPointer to a table item
 Cehm_dal::schema::AbstractClubRecord
 Cehm_dal::schema::ClubRecordItem
 Cehm_dal::schema::PlayerRecordItem
 Cehm_dal::data_types::StringActs as a QString wrapper for EHM text strings
 Cehm_dal::file_io::AbstractFileManagerBase class providing simple read and write file access to database and saved game files
 Cehm_dal::file_io::DatabaseFileManagerSimple read and write access to a database
 Cehm_dal::data_types::AbstractPointer< T_IdDataType, T_TableIndex, T_Table >The AbstractPointer class represents a pointer to a table item
 Cehm_dal::schema::AbstractTableItemRow in a Table with an id field
 Cehm_dal::schema::AbstractUidTableItemRow in a Table with id and uid fields
 Cehm_dal::schema::AbstractValidatedTableItemThe AbstractValidatedTableItem is an AbstractTableItem with a validator
 Cehm_dal::schema::ClubCompetitionHistory
 Cehm_dal::schema::ClubHistory
 Cehm_dal::schema::ClubRecords
 Cehm_dal::schema::DatabaseHeader
 Cehm_dal::schema::DraftHistory
 Cehm_dal::schema::GameBasicData
 Cehm_dal::schema::NonPlayerData
 Cehm_dal::schema::PlayerData
 Cehm_dal::schema::PlayerInfo
 Cehm_dal::schema::PlayerRights
 Cehm_dal::schema::RetiredNumber
 Cehm_dal::schema::StaffAwardHistory
 Cehm_dal::schema::StaffHistory
 Cehm_dal::schema::StaffInfo
 Cehm_dal::schema::StaffPreferences
 Cehm_dal::column_data::ColumnColumn of data in a Table
 Cehm_dal::column_data::ColumnDataContainer of ehm_dal::column_data::Column and attributes relating to the columns as a whole (e.g. column count)
 Cehm_dal::column_data::AffiliationColumnsSets out the column indexes for the ehm_dal::schema::Affiliation schema
 Cehm_dal::column_data::ArenaColumnsThe ArenaColumns class sets out the column indexes for the ehm_dal::schema::Arena schema
 Cehm_dal::column_data::CityColumnsSets out the column indexes for the ehm_dal::schema::City schema
 Cehm_dal::column_data::ClubColumnsSets out the column indexes for the ehm_dal::schema::Club schema
 Cehm_dal::column_data::ClubCompetitionColumnsSets out the column indexes for the ehm_dal::schema::ClubCompetition schema
 Cehm_dal::column_data::ClubCompetitionHistoryColumns
 Cehm_dal::column_data::ClubHistoryColumns
 Cehm_dal::column_data::ClubRecordColumns
 Cehm_dal::column_data::ColourColumnsSets out the column indexes for the ehm_dal::schema::Colour schema
 Cehm_dal::column_data::ContinentColumnsSets out the column indexes for the ehm_dal::schema::Continent schema
 Cehm_dal::column_data::CurrencyColumnsSets out the column indexes for the ehm_dal::schema::Currency schema
 Cehm_dal::column_data::DatabaseHeaderColumnsSets out the column indexes for the ehm_dal::schema::DatabaseHeader schema
 Cehm_dal::column_data::DraftColumnsSets out the column indexes for the ehm_dal::schema::Draft schema
 Cehm_dal::column_data::DraftHistoryColumns
 Cehm_dal::column_data::GameBasicDataColumnsSets out the column indexes for the ehm_dal::schema::GameBasicData schema
 Cehm_dal::column_data::InjuryColumnsSets out the column indexes for the ehm_dal::schema::Injury schema
 Cehm_dal::column_data::NameColumnsSets out the column indexes for the ehm_dal::schema::Name schema
 Cehm_dal::column_data::NationColumnsSets out the column indexes for the ehm_dal::schema::Nation schema
 Cehm_dal::column_data::NonPlayerDataColumns
 Cehm_dal::column_data::PersonColumns
 Cehm_dal::column_data::PlayerDataColumns
 Cehm_dal::column_data::PlayerInfoColumns
 Cehm_dal::column_data::PlayerRightsColumns
 Cehm_dal::column_data::RetiredNumberColumns
 Cehm_dal::column_data::StaffAwardColumnsSets out the column indexes for the ehm_dal::schema::StaffAward schema
 Cehm_dal::column_data::StaffAwardHistoryColumns
 Cehm_dal::column_data::StaffHistoryColumns
 Cehm_dal::column_data::StaffInfoColumns
 Cehm_dal::column_data::StaffPreferencesColumns
 Cehm_dal::column_data::StageNameColumnsSets out the column indexes for the ehm_dal::schema::StageName schema
 Cehm_dal::column_data::StateColumnsSets out the column indexes for the ehm_dal::schema::State schema
 Cehm_dal::DatabaseParses the database.db file and provides access to its tables
 Cehm_dal::database::DatabaseVersionDatabase version number
 Cehm_dal::data_types::DataType< T >The DataType class is a template class for all C++ integral and floating point data types
 Cehm_dal::data_types::Attribute< qint16 >
 Cehm_dal::data_types::Attribute< quint8 >
 Cehm_dal::data_types::Year< qint16 >
 Cehm_dal::data_types::Attribute< T >The Attribute class is a template class for attribute-like values with lower and upper limit values
 Cehm_dal::data_types::Year< T >The Year class represents a calendar year value. Only qint16 and quint16 are permissible
 Cehm_dal::data_types::DataType< qint16 >
 Cehm_dal::data_types::DataType< quint8 >
 Cehm_dal::tools::schedule_template_generator::DatesGeneratorGenerates dates for a schedule template
 Cehm_dal::ehm_extra_rules::ExtraRule
 Cehm_dal::ehm_extra_rules::ExtraRuleData
 Cehm_dal::flags::FlagDatabase
 Cehm_dal::settings::FolderPath
 CQAbstractTableModel
 Cehm_dal::tables::AbstractBaseModel
 Cehm_dal::tools::schedule_template_generator::ScheduleGameTableContainer for ScheduleGames
 Cehm_dal::tools::schedule_template_generator::ScheduleMatrixInterface for viewing and editing the numbers of games to be played by each team
 CQProgressDialog
 Cehm_dal::widgets::ProgressDialog
 Cehm_dal::SavedGameParses uncompressed EHM .sav saved games
 Cehm_dal::saved_game::SavedGameDataIndividual binary sub-files comprising the saved game
 Cehm_dal::saved_game::SavedGameSubFileSub-file of a saved game and provides access to the binary data
 Cehm_dal::tools::schedule_template_generator::ScheduleClubClub within ScheduleTemplateGenerator
 Cehm_dal::tools::schedule_template_generator::ScheduleGameGame within ScheduleTemplateGenerator
 Cehm_dal::tools::schedule_template_generator::ScheduleRoundSingle round of games
 Cehm_dal::tools::schedule_template_generator::ScheduleRoundDataDraft schedule consisting of round data which can then be converted into a dated schedule template
 Cehm_dal::tools::schedule_template_generator::ScheduleTemplateGeneratorGenerates EHM schedule templates
 Cehm_dal::settings::Settings
 Cehm_dal::spreadsheet::Spreadsheet
 Cehm_dal::spreadsheet::SpreadsheetFile
 Cehm_dal::spreadsheet::SpreadsheetFileCsv
 Cehm_dal::spreadsheet::SpreadsheetFileXlsx
 Cehm_dal::tables::TableAttributes
 Cehm_dal::file_io::SavedGameFileManager
 Cehm_dal::data_types::AbstractPointer< T_IdDataType, T_TableIndex, T_Table >The AbstractPointer class represents a pointer to a table item
 Cehm_dal::schema::AbstractTableItemRow in a Table with an id field
 Cehm_dal::schema::AbstractUidTableItemRow in a Table with id and uid fields
 Cehm_dal::schema::AbstractValidatedTableItemThe AbstractValidatedTableItem is an AbstractTableItem with a validator
 Cehm_dal::schema::ClubCompetitionHistory
 Cehm_dal::schema::ClubHistory
 Cehm_dal::schema::ClubRecords
 Cehm_dal::schema::DatabaseHeader
 Cehm_dal::schema::DraftHistory
 Cehm_dal::schema::GameBasicData
 Cehm_dal::schema::NonPlayerData
 Cehm_dal::schema::PlayerData
 Cehm_dal::schema::PlayerInfo
 Cehm_dal::schema::PlayerRights
 Cehm_dal::schema::RetiredNumber
 Cehm_dal::schema::StaffAwardHistory
 Cehm_dal::schema::StaffHistory
 Cehm_dal::schema::StaffInfo
 Cehm_dal::schema::StaffPreferences
 Cehm_dal::column_data::ColumnColumn of data in a Table
 Cehm_dal::column_data::ColumnDataContainer of ehm_dal::column_data::Column and attributes relating to the columns as a whole (e.g. column count)
 Cehm_dal::column_data::AffiliationColumnsSets out the column indexes for the ehm_dal::schema::Affiliation schema
 Cehm_dal::column_data::ArenaColumnsThe ArenaColumns class sets out the column indexes for the ehm_dal::schema::Arena schema
 Cehm_dal::column_data::CityColumnsSets out the column indexes for the ehm_dal::schema::City schema
 Cehm_dal::column_data::ClubColumnsSets out the column indexes for the ehm_dal::schema::Club schema
 Cehm_dal::column_data::ClubCompetitionColumnsSets out the column indexes for the ehm_dal::schema::ClubCompetition schema
 Cehm_dal::column_data::ClubCompetitionHistoryColumns
 Cehm_dal::column_data::ClubHistoryColumns
 Cehm_dal::column_data::ClubRecordColumns
 Cehm_dal::column_data::ColourColumnsSets out the column indexes for the ehm_dal::schema::Colour schema
 Cehm_dal::column_data::ContinentColumnsSets out the column indexes for the ehm_dal::schema::Continent schema
 Cehm_dal::column_data::CurrencyColumnsSets out the column indexes for the ehm_dal::schema::Currency schema
 Cehm_dal::column_data::DatabaseHeaderColumnsSets out the column indexes for the ehm_dal::schema::DatabaseHeader schema
 Cehm_dal::column_data::DraftColumnsSets out the column indexes for the ehm_dal::schema::Draft schema
 Cehm_dal::column_data::DraftHistoryColumns
 Cehm_dal::column_data::GameBasicDataColumnsSets out the column indexes for the ehm_dal::schema::GameBasicData schema
 Cehm_dal::column_data::InjuryColumnsSets out the column indexes for the ehm_dal::schema::Injury schema
 Cehm_dal::column_data::NameColumnsSets out the column indexes for the ehm_dal::schema::Name schema
 Cehm_dal::column_data::NationColumnsSets out the column indexes for the ehm_dal::schema::Nation schema
 Cehm_dal::column_data::NonPlayerDataColumns
 Cehm_dal::column_data::PersonColumns
 Cehm_dal::column_data::PlayerDataColumns
 Cehm_dal::column_data::PlayerInfoColumns
 Cehm_dal::column_data::PlayerRightsColumns
 Cehm_dal::column_data::RetiredNumberColumns
 Cehm_dal::column_data::StaffAwardColumnsSets out the column indexes for the ehm_dal::schema::StaffAward schema
 Cehm_dal::column_data::StaffAwardHistoryColumns
 Cehm_dal::column_data::StaffHistoryColumns
 Cehm_dal::column_data::StaffInfoColumns
 Cehm_dal::column_data::StaffPreferencesColumns
 Cehm_dal::column_data::StageNameColumnsSets out the column indexes for the ehm_dal::schema::StageName schema
 Cehm_dal::column_data::StateColumnsSets out the column indexes for the ehm_dal::schema::State schema
 Cehm_dal::DatabaseParses the database.db file and provides access to its tables
 Cehm_dal::database::DatabaseVersionDatabase version number
 Cehm_dal::data_types::DataType< T >The DataType class is a template class for all C++ integral and floating point data types
 Cehm_dal::data_types::Attribute< qint16 >
 Cehm_dal::data_types::Attribute< quint8 >
 Cehm_dal::data_types::Year< qint16 >
 Cehm_dal::data_types::Attribute< T >The Attribute class is a template class for attribute-like values with lower and upper limit values
 Cehm_dal::data_types::Year< T >The Year class represents a calendar year value. Only qint16 and quint16 are permissible
 Cehm_dal::data_types::DataType< qint16 >
 Cehm_dal::data_types::DataType< quint8 >
 Cehm_dal::tools::schedule_template_generator::DatesGeneratorGenerates dates for a schedule template
 Cehm_dal::ehm_extra_rules::ExtraRule
 Cehm_dal::ehm_extra_rules::ExtraRuleData
 Cehm_dal::flags::FlagDatabase
 Cehm_dal::settings::FolderPath
 CQAbstractTableModel
 Cehm_dal::tables::AbstractBaseModel
 Cehm_dal::tools::schedule_template_generator::ScheduleGameTableContainer for ScheduleGames
 Cehm_dal::tools::schedule_template_generator::ScheduleMatrixInterface for viewing and editing the numbers of games to be played by each team
 CQProgressDialog
 Cehm_dal::widgets::ProgressDialog
 Cehm_dal::SavedGameParses uncompressed EHM .sav saved games
 Cehm_dal::saved_game::SavedGameDataIndividual binary sub-files comprising the saved game
 Cehm_dal::saved_game::SavedGameSubFileSub-file of a saved game and provides access to the binary data
 Cehm_dal::tools::schedule_template_generator::ScheduleClubClub within ScheduleTemplateGenerator
 Cehm_dal::tools::schedule_template_generator::ScheduleGameGame within ScheduleTemplateGenerator
 Cehm_dal::tools::schedule_template_generator::ScheduleRoundSingle round of games
 Cehm_dal::tools::schedule_template_generator::ScheduleRoundDataDraft schedule consisting of round data which can then be converted into a dated schedule template
 Cehm_dal::tools::schedule_template_generator::ScheduleTemplateGeneratorGenerates EHM schedule templates
 Cehm_dal::settings::Settings
 Cehm_dal::spreadsheet::Spreadsheet
 Cehm_dal::spreadsheet::SpreadsheetFile
 Cehm_dal::spreadsheet::SpreadsheetFileCsv
 Cehm_dal::spreadsheet::SpreadsheetFileXlsx
 Cehm_dal::tables::TableAttributes

diff --git a/docs/hierarchy.js b/docs/hierarchy.js index d9189f2..637b67c 100644 --- a/docs/hierarchy.js +++ b/docs/hierarchy.js @@ -1,13 +1,13 @@ var hierarchy = [ + [ "ehm_dal::data_types:: AbstractPointer", null, [ + [ "ehm_dal::flags::Flag< T_DataType >", "classehm__dal_1_1flags_1_1_flag.html", null ] + ] ], [ "ehm_dal::data_types:: AbstractPointer", null, [ [ "ehm_dal::data_types::Pointer", "classehm__dal_1_1data__types_1_1_pointer.html", [ [ "ehm_dal::data_types::NamePointer", "classehm__dal_1_1data__types_1_1_name_pointer.html", null ] ] ] ] ], - [ "ehm_dal::data_types:: AbstractPointer", null, [ - [ "ehm_dal::flags::Flag< T_DataType >", "classehm__dal_1_1flags_1_1_flag.html", null ] - ] ], [ "ehm_dal::schema::AbstractClubRecord", "classehm__dal_1_1schema_1_1_abstract_club_record.html", [ [ "ehm_dal::schema::ClubRecordItem", "classehm__dal_1_1schema_1_1_club_record_item.html", null ], [ "ehm_dal::schema::PlayerRecordItem", "classehm__dal_1_1schema_1_1_player_record_item.html", null ] @@ -17,7 +17,8 @@ var hierarchy = [ "ehm_dal::data_types::String", "classehm__dal_1_1data__types_1_1_string.html", null ] ] ], [ "ehm_dal::file_io::AbstractFileManager", "classehm__dal_1_1file__io_1_1_abstract_file_manager.html", [ - [ "ehm_dal::file_io::DatabaseFileManager", "classehm__dal_1_1file__io_1_1_database_file_manager.html", null ] + [ "ehm_dal::file_io::DatabaseFileManager", "classehm__dal_1_1file__io_1_1_database_file_manager.html", null ], + [ "ehm_dal::file_io::SavedGameFileManager", "classehm__dal_1_1file__io_1_1_saved_game_file_manager.html", null ] ] ], [ "ehm_dal::data_types::AbstractPointer< T_IdDataType, T_TableIndex, T_Table >", "classehm__dal_1_1data__types_1_1_abstract_pointer.html", null ], [ "ehm_dal::schema::AbstractTableItem", "classehm__dal_1_1schema_1_1_abstract_table_item.html", [ diff --git a/docs/inherit_graph_13.map b/docs/inherit_graph_13.map index 66e4cbb..5b18f3e 100644 --- a/docs/inherit_graph_13.map +++ b/docs/inherit_graph_13.map @@ -1,4 +1,5 @@ - - + + + diff --git a/docs/inherit_graph_13.md5 b/docs/inherit_graph_13.md5 index e005a0d..dfce88e 100644 --- a/docs/inherit_graph_13.md5 +++ b/docs/inherit_graph_13.md5 @@ -1 +1 @@ -b012e19396d7326c8806973305e3cd9d \ No newline at end of file +caa80f6d27b9d5280edd906637d9e4ea \ No newline at end of file diff --git a/docs/inherit_graph_13.png b/docs/inherit_graph_13.png index 42a8725d473fb9ab6dcd96578c26d24a00090746..856f7bb5203ecc934e7bb3c43a333607ac86c05a 100644 GIT binary patch literal 3571 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 diff --git a/docs/inherit_graph_2.map b/docs/inherit_graph_2.map index 0ff9876..715c86b 100644 --- a/docs/inherit_graph_2.map +++ b/docs/inherit_graph_2.map @@ -1,5 +1,4 @@ - - + diff --git a/docs/inherit_graph_2.md5 b/docs/inherit_graph_2.md5 index f395ac7..5e3a348 100644 --- a/docs/inherit_graph_2.md5 +++ b/docs/inherit_graph_2.md5 @@ -1 +1 @@ -1d2d75424da9bec93a126a34f1efe960 \ No newline at end of file +169cfc4a925f5fe2dcfc0bc61006a119 \ No newline at end of file diff --git a/docs/inherit_graph_2.png b/docs/inherit_graph_2.png index 394c078a23417e83c4ed6bd1a1ac8bd979bd8e92..016c86923c2132ddb519adbce73eb5658f318b22 100644 GIT binary patch literal 1871 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 - + + diff --git a/docs/inherit_graph_3.md5 b/docs/inherit_graph_3.md5 index 5e3a348..f395ac7 100644 --- a/docs/inherit_graph_3.md5 +++ b/docs/inherit_graph_3.md5 @@ -1 +1 @@ -169cfc4a925f5fe2dcfc0bc61006a119 \ No newline at end of file +1d2d75424da9bec93a126a34f1efe960 \ No newline at end of file diff --git a/docs/inherit_graph_3.png b/docs/inherit_graph_3.png index 016c86923c2132ddb519adbce73eb5658f318b22..394c078a23417e83c4ed6bd1a1ac8bd979bd8e92 100644 GIT binary patch literal 2461 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 - - + - + + @@ -214,8 +214,9 @@ - - + + + diff --git a/docs/navtreedata.js b/docs/navtreedata.js index aaf9a5c..1e79574 100644 --- a/docs/navtreedata.js +++ b/docs/navtreedata.js @@ -51,8 +51,8 @@ var NAVTREE = var NAVTREEINDEX = [ "annotated.html", -"classehm__dal_1_1data__types_1_1_string.html#aff7b8837b56b12089a2f699c0ef36d03", -"classehm__dal_1_1schema_1_1_staff_award_history.html#aaadba4b1cefd05cfb0acfabf9e026aa6" +"classehm__dal_1_1data__types_1_1_string.html#ae5ee99dc52e9297760916fd0b7978ef0", +"classehm__dal_1_1schema_1_1_staff_award.html#ad06a3ecd2b53843fabdafd81ed5c27e8" ]; var SYNCONMSG = 'click to disable panel synchronisation'; diff --git a/docs/navtreeindex0.js b/docs/navtreeindex0.js index 9561f20..d555bf5 100644 --- a/docs/navtreeindex0.js +++ b/docs/navtreeindex0.js @@ -11,8 +11,9 @@ var NAVTREEINDEX0 = "classehm__dal_1_1_database.html#ad9200aad9c639e6e82fbe6f7b98a7066":[2,0,0,13,6], "classehm__dal_1_1_saved_game.html":[2,0,0,14], "classehm__dal_1_1_saved_game.html#a08b047bbf3ecb95f8aac9e6a93044e65":[2,0,0,14,0], -"classehm__dal_1_1_saved_game.html#a155a1f76185f19fc60cc50fbb9451582":[2,0,0,14,3], -"classehm__dal_1_1_saved_game.html#a8b9b7d58e754b8dfc81d4989018d5dfc":[2,0,0,14,2], +"classehm__dal_1_1_saved_game.html#a155a1f76185f19fc60cc50fbb9451582":[2,0,0,14,4], +"classehm__dal_1_1_saved_game.html#a6e6873e437990371b3d6c493f73e12f0":[2,0,0,14,2], +"classehm__dal_1_1_saved_game.html#a8b9b7d58e754b8dfc81d4989018d5dfc":[2,0,0,14,3], "classehm__dal_1_1_saved_game.html#aa43dfcf7aae0a5c538b7a8ecd151eb3a":[2,0,0,14,1], "classehm__dal_1_1column__data_1_1_affiliation_columns.html":[2,0,0,0,0], "classehm__dal_1_1column__data_1_1_arena_columns.html":[2,0,0,0,1], @@ -248,6 +249,5 @@ var NAVTREEINDEX0 = "classehm__dal_1_1data__types_1_1_string.html#a8f046802f9eaea8d7d28c1739a8a58b8":[2,0,0,1,12,11], "classehm__dal_1_1data__types_1_1_string.html#ab9b7fd6887f8e1eafa4963c8cee7c95f":[2,0,0,1,12,2], "classehm__dal_1_1data__types_1_1_string.html#ada8a49f852b874f92ab8e7dfc132216d":[2,0,0,1,12,7], -"classehm__dal_1_1data__types_1_1_string.html#ae40743cfaf3aa49b62ea0f99e9767558":[2,0,0,1,12,1], -"classehm__dal_1_1data__types_1_1_string.html#ae5ee99dc52e9297760916fd0b7978ef0":[2,0,0,1,12,0] +"classehm__dal_1_1data__types_1_1_string.html#ae40743cfaf3aa49b62ea0f99e9767558":[2,0,0,1,12,1] }; diff --git a/docs/navtreeindex1.js b/docs/navtreeindex1.js index df1aa24..e8ff944 100644 --- a/docs/navtreeindex1.js +++ b/docs/navtreeindex1.js @@ -1,5 +1,6 @@ var NAVTREEINDEX1 = { +"classehm__dal_1_1data__types_1_1_string.html#ae5ee99dc52e9297760916fd0b7978ef0":[2,0,0,1,12,0], "classehm__dal_1_1data__types_1_1_string.html#aff7b8837b56b12089a2f699c0ef36d03":[2,0,0,1,12,3], "classehm__dal_1_1data__types_1_1_weight.html":[2,0,0,1,13], "classehm__dal_1_1data__types_1_1_year.html":[2,0,0,1,14], @@ -34,6 +35,9 @@ var NAVTREEINDEX1 = "classehm__dal_1_1file__io_1_1_database_file_manager.html":[2,0,0,4,1], "classehm__dal_1_1file__io_1_1_database_file_manager.html#a8546901b3efc822af68451756f869819":[2,0,0,4,1,1], "classehm__dal_1_1file__io_1_1_database_file_manager.html#af4de3105686b08b44e1765654b13715c":[2,0,0,4,1,0], +"classehm__dal_1_1file__io_1_1_saved_game_file_manager.html":[2,0,0,4,2], +"classehm__dal_1_1file__io_1_1_saved_game_file_manager.html#a1810a7ca435099e88625f2e9187406e3":[2,0,0,4,2,1], +"classehm__dal_1_1file__io_1_1_saved_game_file_manager.html#a2a7cc73dc8c71360c5e701143ca47bdc":[2,0,0,4,2,0], "classehm__dal_1_1flags_1_1_flag.html":[2,0,0,5,0], "classehm__dal_1_1flags_1_1_flag_database.html":[2,0,0,5,1], "classehm__dal_1_1flags_1_1_flag_table.html":[2,0,0,5,2], @@ -245,9 +249,5 @@ var NAVTREEINDEX1 = "classehm__dal_1_1schema_1_1_staff_award.html#aa66b30512dc51a1083eb7a153b1bb7c0":[2,0,0,7,33,4], "classehm__dal_1_1schema_1_1_staff_award.html#aa94c1557938a14c898d231903a0f4d7f":[2,0,0,7,33,6], "classehm__dal_1_1schema_1_1_staff_award.html#aac5c2ffe9420617442a46b7eabb35adc":[2,0,0,7,33,1], -"classehm__dal_1_1schema_1_1_staff_award.html#ac75bfdc7e83096b773c95f10bbe8a0d0":[2,0,0,7,33,3], -"classehm__dal_1_1schema_1_1_staff_award.html#ad06a3ecd2b53843fabdafd81ed5c27e8":[2,0,0,7,33,5], -"classehm__dal_1_1schema_1_1_staff_award_history.html":[2,0,0,7,34], -"classehm__dal_1_1schema_1_1_staff_award_history.html#a74fe4204d24d52fa6aad421ba58ff07c":[2,0,0,7,34,0], -"classehm__dal_1_1schema_1_1_staff_award_history.html#a95104a583a3c435380e23658bc91f729":[2,0,0,7,34,2] +"classehm__dal_1_1schema_1_1_staff_award.html#ac75bfdc7e83096b773c95f10bbe8a0d0":[2,0,0,7,33,3] }; diff --git a/docs/navtreeindex2.js b/docs/navtreeindex2.js index 135d394..11793d6 100644 --- a/docs/navtreeindex2.js +++ b/docs/navtreeindex2.js @@ -1,5 +1,9 @@ var NAVTREEINDEX2 = { +"classehm__dal_1_1schema_1_1_staff_award.html#ad06a3ecd2b53843fabdafd81ed5c27e8":[2,0,0,7,33,5], +"classehm__dal_1_1schema_1_1_staff_award_history.html":[2,0,0,7,34], +"classehm__dal_1_1schema_1_1_staff_award_history.html#a74fe4204d24d52fa6aad421ba58ff07c":[2,0,0,7,34,0], +"classehm__dal_1_1schema_1_1_staff_award_history.html#a95104a583a3c435380e23658bc91f729":[2,0,0,7,34,2], "classehm__dal_1_1schema_1_1_staff_award_history.html#aaadba4b1cefd05cfb0acfabf9e026aa6":[2,0,0,7,34,4], "classehm__dal_1_1schema_1_1_staff_award_history.html#ac6840f6cbaeb84b372c106126832a71b":[2,0,0,7,34,1], "classehm__dal_1_1schema_1_1_staff_award_history.html#ae3bc352f5ecefdb5da831c90d817a2a7":[2,0,0,7,34,3], @@ -33,19 +37,60 @@ var NAVTREEINDEX2 = "classehm__dal_1_1settings_1_1_folder_path.html":[2,0,0,8,0], "classehm__dal_1_1settings_1_1_settings.html":[2,0,0,8,1], "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html":[2,0,0,9,0], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a09c399aab7c9b758f8541b4a34ad17ba":[2,0,0,9,0,44], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a108b8f50b8d53d0984acc6b1c2ddee5e":[2,0,0,9,0,26], "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a1870a89ddfadf6fee555eace128e2608":[2,0,0,9,0,0], -"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a32450ee50742a818911d377084f39d41":[2,0,0,9,0,10], -"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a38faa238bc3faba8ed3ced0bfbed7b28":[2,0,0,9,0,6], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a18abaf99132780f43677db73e76540dd":[2,0,0,9,0,21], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a190763b9b2567897283382994f041c95":[2,0,0,9,0,15], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a1bcf058f06086df9f9785aa8e6123104":[2,0,0,9,0,36], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a25c16bb23cca09f307dee41fe737305c":[2,0,0,9,0,31], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a32450ee50742a818911d377084f39d41":[2,0,0,9,0,34], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a33e87ac5adcdbc82103ba6a3f612c86c":[2,0,0,9,0,5], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a34dda677bc080c30db6c9b4489447715":[2,0,0,9,0,51], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a37a871b8ad1b0bb89a5f2dde41ac83a6":[2,0,0,9,0,25], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a38faa238bc3faba8ed3ced0bfbed7b28":[2,0,0,9,0,10], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a45f06f79bd6509a1efd1cbc9d6133429":[2,0,0,9,0,46], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a47c4f3ee618a3b541997ffad7d09af40":[2,0,0,9,0,20], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a4ab3046be7e56645c29d8f896c8c7c41":[2,0,0,9,0,28], "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a562521337a397e1b7624fd97745fb427":[2,0,0,9,0,2], -"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a8b201abb1ce19173990ec5bf271f4fe4":[2,0,0,9,0,5], -"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a8f7852ef9508075a338b9d1c546b463f":[2,0,0,9,0,12], -"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a9d00960e4b442ec89ab06ffa95670060":[2,0,0,9,0,7], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a59a0b37b9fce42b949974519eba1cc65":[2,0,0,9,0,33], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a656f8750a70ef9672ac62000cdb229ff":[2,0,0,9,0,24], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a6877aa5c090853ab977b5e346f0e377d":[2,0,0,9,0,52], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a6a2d33ec32e82dbeb70f06e18addfa95":[2,0,0,9,0,23], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a6f976d76532f0eb547ab4e440a306f15":[2,0,0,9,0,45], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a74c8abd84600dd606738ec251358dbba":[2,0,0,9,0,42], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a74cbcb0934ea4c674a03658832651a4f":[2,0,0,9,0,27], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a766f09738864d07bc49fdc662991ee26":[2,0,0,9,0,32], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a775a493ff6b72a72ff231a17e03e11cc":[2,0,0,9,0,49], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a7826eeae47dd16ff2a43bd419d7ded8e":[2,0,0,9,0,37], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a7da6ad9c555a6325f46bf5cee2bd8829":[2,0,0,9,0,13], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a88b4203ec0d5c202a98e12aef1ede281":[2,0,0,9,0,47], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a8b201abb1ce19173990ec5bf271f4fe4":[2,0,0,9,0,9], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a8f7852ef9508075a338b9d1c546b463f":[2,0,0,9,0,53], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a95e7e52a13395c4232acbe036da57df2":[2,0,0,9,0,48], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a9c7a640b16a389b19b1c891c9f3d2e95":[2,0,0,9,0,6], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a9d00960e4b442ec89ab06ffa95670060":[2,0,0,9,0,11], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aa29d87c626c65fc6053dac21b31c401f":[2,0,0,9,0,14], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aa43792574fe22a3944bf6558cec81fa5":[2,0,0,9,0,29], "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aa646b53c2f39a7c593f94bec7d2e74b7":[2,0,0,9,0,3], -"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ab02261471052d0c5bb5db89b270caabd":[2,0,0,9,0,4], -"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#abbe567a20cacd1b736b47f6b81c59e27":[2,0,0,9,0,8], -"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#abed045a1087d3f474cf535eb41b4de7d":[2,0,0,9,0,9], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aaf816e56b59790686f0f03f5faa84d5a":[2,0,0,9,0,43], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ab02261471052d0c5bb5db89b270caabd":[2,0,0,9,0,8], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#abbe567a20cacd1b736b47f6b81c59e27":[2,0,0,9,0,17], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#abed045a1087d3f474cf535eb41b4de7d":[2,0,0,9,0,18], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#abf2158dbb4aef3d3cf57541d919c030f":[2,0,0,9,0,38], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#abf4bdbc536f7cdbe8b4903584a85d7a4":[2,0,0,9,0,22], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ac49f7333ff8aed23c82cac7c6107df31":[2,0,0,9,0,19], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#acc7007fc094de7a45e327be4367ad1ab":[2,0,0,9,0,41], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad0197013e0b271d5bb7c93e2564e1989":[2,0,0,9,0,40], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad3ec8823d95deeea1fc00b5f01523979":[2,0,0,9,0,30], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad6183f01d6260a1aa034af0072f0c412":[2,0,0,9,0,12], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad6225201da43f876ab534ac46ccc460e":[2,0,0,9,0,4], "classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad654fe9d88b43b04c971a78f6a59d26a":[2,0,0,9,0,1], -"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aedb4a30f7cb4ab627d606f1a44f26779":[2,0,0,9,0,11], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad7d14dc9e62032120f1fcb7b4ab46b65":[2,0,0,9,0,7], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aedb3e27e7b1d22440660a559223047f8":[2,0,0,9,0,50], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aedb4a30f7cb4ab627d606f1a44f26779":[2,0,0,9,0,35], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#af386628bfcc5f24009c3068680170948":[2,0,0,9,0,39], +"classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#afa0ded0494eca327f993a3b548625e51":[2,0,0,9,0,16], "classehm__dal_1_1spreadsheet_1_1_spreadsheet_file.html":[2,0,0,9,1], "classehm__dal_1_1spreadsheet_1_1_spreadsheet_file_csv.html":[2,0,0,9,2], "classehm__dal_1_1spreadsheet_1_1_spreadsheet_file_xlsx.html":[2,0,0,9,3], @@ -93,16 +138,16 @@ var NAVTREEINDEX2 = "conceptehm__dal_1_1schema_1_1_integral_number.html":[1,0,1,0], "conceptehm__dal_1_1tables_1_1_column_data.html":[1,0,2,0], "concepts.html":[1], -"functions.html":[2,3,0], "functions.html":[2,3,0,0], +"functions.html":[2,3,0], "functions_c.html":[2,3,0,1], "functions_d.html":[2,3,0,2], "functions_e.html":[2,3,0,3], "functions_enum.html":[2,3,2], "functions_eval.html":[2,3,3], "functions_f.html":[2,3,0,4], -"functions_func.html":[2,3,1], "functions_func.html":[2,3,1,0], +"functions_func.html":[2,3,1], "functions_func_c.html":[2,3,1,1], "functions_func_d.html":[2,3,1,2], "functions_func_e.html":[2,3,1,3], diff --git a/docs/saved__game_8h_source.html b/docs/saved__game_8h_source.html index d7b7a2a..4423700 100644 --- a/docs/saved__game_8h_source.html +++ b/docs/saved__game_8h_source.html @@ -113,25 +113,29 @@
31
-
32 // File i/o
-
38 bool read(const QString &file_path);
-
39
-
40 // Get data
-
45 static std::shared_ptr<ehm_dal::saved_game::SavedGameData> data();
-
46
-
47private:
-
48 static std::shared_ptr<ehm_dal::saved_game::SavedGameData> data_;
-
49
-
50 // Initialisation
-
51 void init();
-
52};
-
53
-
54} // namespace ehm_dal
+
32 // Close saved game
+
36 void clearAll();
+
37
+
38 // File i/o
+
44 bool read(const QString &file_path);
+
45
+
46 // Get data
+
51 static std::shared_ptr<ehm_dal::saved_game::SavedGameData> data();
+
52
+
53private:
+
54 static std::shared_ptr<ehm_dal::saved_game::SavedGameData> data_;
55
-
56
+
56 // Initialisation
+
57 void init();
+
58};
+
59
+
60} // namespace ehm_dal
+
61
+
62
The SavedGame class parses uncompressed EHM .sav saved games.
Definition: saved_game.h:21
SavedGame()
Default constructor.
bool read(const QString &file_path)
Reads the .sav file at file_path and parses the saved game and the Database within.
+
void clearAll()
Clear all of the saved game tables.
static std::shared_ptr< ehm_dal::saved_game::SavedGameData > data()
Returns the saved game data comprising saved game sub-files.
~SavedGame()
Default destructor.
namespace ehm_dal::saved_game
Definition: saved_game_data.h:13
diff --git a/docs/saved__game__file__manager_8h_source.html b/docs/saved__game__file__manager_8h_source.html new file mode 100644 index 0000000..edd5329 --- /dev/null +++ b/docs/saved__game__file__manager_8h_source.html @@ -0,0 +1,141 @@ + + + + + + + +EHM DAL: C:/Users/colin/QT Projects/Eastside Hockey Manager 1/EHM_Editor/lib/ehm_dal/include/saved_game/file_io/saved_game_file_manager.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + +
+
EHM DAL 1.0.0 +
+
Data abstraction layer for Eastside Hockey Manager
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
saved_game_file_manager.h
+
+
+
1#pragma once
+
2
+
3// Application headers
+
4#include "include/file_io/abstract_file_manager.h"
+
5
+
6namespace ehm_dal::file_io {
+
7
+ +
9{
+
10public:
+ +
12
+
13 // Descriptor
+
14 inline QString descriptor() const override { return QStringLiteral("saved_game"); }
+
15 inline QString fileFilterString() const override
+
16 {
+
17 return QStringLiteral("EHM 1 Saved Game (*.sav)");
+
18 }
+
19
+
20private:
+
21 // Close saved game/database/tables
+
22 void closeAll() override;
+
23
+
24 // File i/o - read
+
25 bool read(const QString &path) override;
+
26
+
27 // File i/o - write
+
28 bool write(const QString &path) override;
+
29};
+
30} // namespace ehm_dal::file_io
+
The AbstractFileManager class is a base class providing simple read and write file access to database...
Definition: abstract_file_manager.h:18
+
Definition: saved_game_file_manager.h:9
+
QString fileFilterString() const override
Returns a list of supported file type filters for QFileDialog.
Definition: saved_game_file_manager.h:15
+
QString descriptor() const override
Returns the file manager descriptor. E.g. This will return "database" for a database file manager.
Definition: saved_game_file_manager.h:14
+
+
+ + + + diff --git a/docs/schedule__matrix_8h_source.html b/docs/schedule__matrix_8h_source.html index 87339a3..dbe78f7 100644 --- a/docs/schedule__matrix_8h_source.html +++ b/docs/schedule__matrix_8h_source.html @@ -150,7 +150,7 @@
58 std::vector<std::shared_ptr<ehm_dal::tools::schedule_template_generator::ScheduleClub>> clubs_;
59};
60} // namespace ehm_dal::tools::schedule_template_generator
-
Definition: spreadsheet.h:23
+
Definition: spreadsheet.h:26
The ScheduleMatrix class provides the interface for viewing and editing the numbers of games to be pl...
Definition: schedule_matrix.h:17

diff --git a/docs/schedule__template__generator_8h_source.html b/docs/schedule__template__generator_8h_source.html index a4406f6..c131b57 100644 --- a/docs/schedule__template__generator_8h_source.html +++ b/docs/schedule__template__generator_8h_source.html @@ -185,7 +185,7 @@
92 qint32 generate_iteration_limit_{2000};
93};
94} // namespace ehm_dal::tools::schedule_template_generator
-
Definition: spreadsheet.h:23
+
Definition: spreadsheet.h:26
The ScheduleGameTable class is a container for ScheduleGames.
Definition: schedule_game_table.h:20
The ScheduleTemplateGenerator class generates EHM schedule templates.
Definition: schedule_template_generator.h:21

diff --git a/docs/search/all_0.js b/docs/search/all_0.js index 2f5df28..bfa46f3 100644 --- a/docs/search/all_0.js +++ b/docs/search/all_0.js @@ -11,18 +11,23 @@ var searchData= ['abstractvalidatedtableitem_8',['AbstractValidatedTableItem',['../classehm__dal_1_1schema_1_1_abstract_validated_table_item.html',1,'ehm_dal::schema']]], ['abstractvalidateduidtableitem_9',['AbstractValidatedUidTableItem',['../classehm__dal_1_1schema_1_1_abstract_validated_uid_table_item.html',1,'ehm_dal::schema']]], ['accuratedecimal_10',['accurateDecimal',['../classehm__dal_1_1data__types_1_1_data_type.html#a72f8540358b95f3d1e588c5b63430d2b',1,'ehm_dal::data_types::DataType']]], - ['add_11',['add',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a9d00960e4b442ec89ab06ffa95670060',1,'ehm_dal::spreadsheet::Spreadsheet::add(QAbstractTableModel *model, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ab02261471052d0c5bb5db89b270caabd',1,'ehm_dal::spreadsheet::Spreadsheet::add(QAbstractTableModel *model, const qint32 row, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a1870a89ddfadf6fee555eace128e2608',1,'ehm_dal::spreadsheet::Spreadsheet::add(const ehm_dal::data_types::Pointer &pointer, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad654fe9d88b43b04c971a78f6a59d26a',1,'ehm_dal::spreadsheet::Spreadsheet::add(const ehm_dal::data_types::Pointer &pointer, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a562521337a397e1b7624fd97745fb427',1,'ehm_dal::spreadsheet::Spreadsheet::add(const std::vector< ehm_dal::data_types::Pointer > &pointer_list, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aa646b53c2f39a7c593f94bec7d2e74b7',1,'ehm_dal::spreadsheet::Spreadsheet::add(const std::vector< ehm_dal::data_types::Pointer > &pointer_list, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1column__data_1_1_column_data.html#ae99a28cd789e23445be03db267cb53a7',1,'ehm_dal::column_data::ColumnData::add()'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a8b201abb1ce19173990ec5bf271f4fe4',1,'ehm_dal::spreadsheet::Spreadsheet::add()'],['../classehm__dal_1_1column__data_1_1_column_data.html#a647e5c8c76cd19a21ad16862093ca1fd',1,'ehm_dal::column_data::ColumnData::add()'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a38faa238bc3faba8ed3ced0bfbed7b28',1,'ehm_dal::spreadsheet::Spreadsheet::add()']]], + ['add_11',['add',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a9d00960e4b442ec89ab06ffa95670060',1,'ehm_dal::spreadsheet::Spreadsheet::add(QAbstractTableModel *model, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ab02261471052d0c5bb5db89b270caabd',1,'ehm_dal::spreadsheet::Spreadsheet::add(QAbstractTableModel *model, const qint32 row, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a8b201abb1ce19173990ec5bf271f4fe4',1,'ehm_dal::spreadsheet::Spreadsheet::add(QAbstractTableModel *model, const qint32 row, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a1870a89ddfadf6fee555eace128e2608',1,'ehm_dal::spreadsheet::Spreadsheet::add(const ehm_dal::data_types::Pointer &pointer, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad654fe9d88b43b04c971a78f6a59d26a',1,'ehm_dal::spreadsheet::Spreadsheet::add(const ehm_dal::data_types::Pointer &pointer, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a562521337a397e1b7624fd97745fb427',1,'ehm_dal::spreadsheet::Spreadsheet::add(const std::vector< ehm_dal::data_types::Pointer > &pointer_list, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aa646b53c2f39a7c593f94bec7d2e74b7',1,'ehm_dal::spreadsheet::Spreadsheet::add(const std::vector< ehm_dal::data_types::Pointer > &pointer_list, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1column__data_1_1_column_data.html#ae99a28cd789e23445be03db267cb53a7',1,'ehm_dal::column_data::ColumnData::add(const Column &column)'],['../classehm__dal_1_1column__data_1_1_column_data.html#a647e5c8c76cd19a21ad16862093ca1fd',1,'ehm_dal::column_data::ColumnData::add(const ColumnData &data)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a9c7a640b16a389b19b1c891c9f3d2e95',1,'ehm_dal::spreadsheet::Spreadsheet::add(ehm_dal::tables::AbstractTable *model, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad7d14dc9e62032120f1fcb7b4ab46b65',1,'ehm_dal::spreadsheet::Spreadsheet::add(ehm_dal::tables::AbstractTable *model, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad6225201da43f876ab534ac46ccc460e',1,'ehm_dal::spreadsheet::Spreadsheet::add(ehm_dal::tables::AbstractTable *model, const qint32 row, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a33e87ac5adcdbc82103ba6a3f612c86c',1,'ehm_dal::spreadsheet::Spreadsheet::add(ehm_dal::tables::AbstractTable *model, const qint32 row, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a38faa238bc3faba8ed3ced0bfbed7b28',1,'ehm_dal::spreadsheet::Spreadsheet::add(QAbstractTableModel *model, const Qt::ItemDataRole role=Qt::DisplayRole)']]], ['addchilditem_12',['addChildItem',['../classehm__dal_1_1schema_1_1_club.html#ad48623f6af5f6b413f0891b87e09623d',1,'ehm_dal::schema::Club::addChildItem()'],['../classehm__dal_1_1schema_1_1_club_competition.html#aefe417b79cbc0ce5ed6438fc8164cd1e',1,'ehm_dal::schema::ClubCompetition::addChildItem()'],['../classehm__dal_1_1schema_1_1_staff.html#ab39aeb1373306088314d1245807db059',1,'ehm_dal::schema::Staff::addChildItem()'],['../classehm__dal_1_1schema_1_1_staff_award.html#a0f47ec5dc2ad987066e8465ca9308731',1,'ehm_dal::schema::StaffAward::addChildItem()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a97719efcdb0d628ffecdcaf09fd35ef0',1,'ehm_dal::schema::AbstractTableItem::addChildItem()']]], - ['addheader_13',['addHeader',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#abbe567a20cacd1b736b47f6b81c59e27',1,'ehm_dal::spreadsheet::Spreadsheet::addHeader(QAbstractTableModel *model)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#abed045a1087d3f474cf535eb41b4de7d',1,'ehm_dal::spreadsheet::Spreadsheet::addHeader(QAbstractTableModel *model, const std::vector< qint32 > &column_index_list)']]], - ['adjust_14',['adjust',['../classehm__dal_1_1data__types_1_1_year.html#a5c2c26a495b2393e334b9d94589bd3c0',1,'ehm_dal::data_types::Year']]], - ['affiliation_15',['Affiliation',['../classehm__dal_1_1schema_1_1_affiliation.html',1,'ehm_dal::schema']]], - ['affiliationcolumns_16',['AffiliationColumns',['../classehm__dal_1_1column__data_1_1_affiliation_columns.html',1,'ehm_dal::column_data']]], - ['affiliations_17',['AFFILIATIONS',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa4e130d46281e6c6f90a15bc82dae5c90',1,'ehm_dal::tables']]], - ['alloc_18',['alloc',['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a19ba41214e8b2cd29088df2a85b4063a',1,'ehm_dal::schema::AbstractTableItem']]], - ['arena_19',['Arena',['../classehm__dal_1_1schema_1_1_arena.html',1,'ehm_dal::schema']]], - ['arenacolumns_20',['ArenaColumns',['../classehm__dal_1_1column__data_1_1_arena_columns.html',1,'ehm_dal::column_data']]], - ['arenas_21',['ARENAS',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa21bcf6d3b5fad2010cb5800ec3509b09',1,'ehm_dal::tables']]], - ['attribute_22',['Attribute',['../classehm__dal_1_1data__types_1_1_attribute.html',1,'ehm_dal::data_types']]], - ['attribute_3c_20qint16_20_3e_23',['Attribute< qint16 >',['../classehm__dal_1_1data__types_1_1_attribute.html',1,'ehm_dal::data_types']]], - ['attribute_3c_20quint8_20_3e_24',['Attribute< quint8 >',['../classehm__dal_1_1data__types_1_1_attribute.html',1,'ehm_dal::data_types']]] + ['addfilenamesuffix_13',['addFileNameSuffix',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad6183f01d6260a1aa034af0072f0c412',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['addheader_14',['addHeader',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a7da6ad9c555a6325f46bf5cee2bd8829',1,'ehm_dal::spreadsheet::Spreadsheet::addHeader()'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aa29d87c626c65fc6053dac21b31c401f',1,'ehm_dal::spreadsheet::Spreadsheet::addHeader(const QString &text)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a190763b9b2567897283382994f041c95',1,'ehm_dal::spreadsheet::Spreadsheet::addHeader(const QStringList &text_list)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#afa0ded0494eca327f993a3b548625e51',1,'ehm_dal::spreadsheet::Spreadsheet::addHeader(const QVariant &data)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#abbe567a20cacd1b736b47f6b81c59e27',1,'ehm_dal::spreadsheet::Spreadsheet::addHeader(QAbstractTableModel *model)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#abed045a1087d3f474cf535eb41b4de7d',1,'ehm_dal::spreadsheet::Spreadsheet::addHeader(QAbstractTableModel *model, const std::vector< qint32 > &column_index_list)']]], + ['addheaderprefix_15',['addHeaderPrefix',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ac49f7333ff8aed23c82cac7c6107df31',1,'ehm_dal::spreadsheet::Spreadsheet::addHeaderPrefix()'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a47c4f3ee618a3b541997ffad7d09af40',1,'ehm_dal::spreadsheet::Spreadsheet::addHeaderPrefix(const QVariant &data)']]], + ['addnewheaderrow_16',['addNewHeaderRow',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a18abaf99132780f43677db73e76540dd',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['addnewrow_17',['addNewRow',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#abf4bdbc536f7cdbe8b4903584a85d7a4',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['addprefix_18',['addPrefix',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a6a2d33ec32e82dbeb70f06e18addfa95',1,'ehm_dal::spreadsheet::Spreadsheet::addPrefix()'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a656f8750a70ef9672ac62000cdb229ff',1,'ehm_dal::spreadsheet::Spreadsheet::addPrefix(const QVariant &data)']]], + ['adjust_19',['adjust',['../classehm__dal_1_1data__types_1_1_year.html#a5c2c26a495b2393e334b9d94589bd3c0',1,'ehm_dal::data_types::Year']]], + ['affiliation_20',['Affiliation',['../classehm__dal_1_1schema_1_1_affiliation.html',1,'ehm_dal::schema']]], + ['affiliationcolumns_21',['AffiliationColumns',['../classehm__dal_1_1column__data_1_1_affiliation_columns.html',1,'ehm_dal::column_data']]], + ['affiliations_22',['AFFILIATIONS',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa4e130d46281e6c6f90a15bc82dae5c90',1,'ehm_dal::tables']]], + ['alloc_23',['alloc',['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a19ba41214e8b2cd29088df2a85b4063a',1,'ehm_dal::schema::AbstractTableItem']]], + ['arena_24',['Arena',['../classehm__dal_1_1schema_1_1_arena.html',1,'ehm_dal::schema']]], + ['arenacolumns_25',['ArenaColumns',['../classehm__dal_1_1column__data_1_1_arena_columns.html',1,'ehm_dal::column_data']]], + ['arenas_26',['ARENAS',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa21bcf6d3b5fad2010cb5800ec3509b09',1,'ehm_dal::tables']]], + ['attribute_27',['Attribute',['../classehm__dal_1_1data__types_1_1_attribute.html',1,'ehm_dal::data_types']]], + ['attribute_3c_20qint16_20_3e_28',['Attribute< qint16 >',['../classehm__dal_1_1data__types_1_1_attribute.html',1,'ehm_dal::data_types']]], + ['attribute_3c_20quint8_20_3e_29',['Attribute< quint8 >',['../classehm__dal_1_1data__types_1_1_attribute.html',1,'ehm_dal::data_types']]] ]; diff --git a/docs/search/all_2.js b/docs/search/all_2.js index 12db0e5..097d46d 100644 --- a/docs/search/all_2.js +++ b/docs/search/all_2.js @@ -1,52 +1,54 @@ var searchData= [ ['cached_5fcolumn_0',['CACHED_COLUMN',['../classehm__dal_1_1column__data_1_1_column.html#a86e5e031236a5d521eab21ae052064b3ac54c44aa8a23d9ca0bec0ae5967afbf9',1,'ehm_dal::column_data::Column']]], - ['childdata_1',['childData',['../classehm__dal_1_1schema_1_1_club.html#a49f08ac651a08edd675ae1202d9fd6ba',1,'ehm_dal::schema::Club::childData()'],['../classehm__dal_1_1schema_1_1_club_competition.html#a2286a2c982b944b04cba1ea83d814e68',1,'ehm_dal::schema::ClubCompetition::childData()'],['../classehm__dal_1_1schema_1_1_staff.html#ac50306ba859d4366c47cfd77eb9b7f43',1,'ehm_dal::schema::Staff::childData()'],['../classehm__dal_1_1schema_1_1_staff_award.html#aac5c2ffe9420617442a46b7eabb35adc',1,'ehm_dal::schema::StaffAward::childData()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a8de5f12bfaf8c01a5e2880402c01d248',1,'ehm_dal::schema::AbstractTableItem::childData()']]], - ['childitemid_2',['childItemId',['../classehm__dal_1_1schema_1_1_staff.html#adec93f821d3baba1eb1199603b74794b',1,'ehm_dal::schema::Staff::childItemId()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#ab2b161e72ffe15a6d4abcd31ae09eddc',1,'ehm_dal::schema::AbstractTableItem::childItemId()']]], - ['childrowcount_3',['childRowCount',['../classehm__dal_1_1schema_1_1_staff.html#a9ea2595a4f7c02dfda118794f1a70841',1,'ehm_dal::schema::Staff::childRowCount()'],['../classehm__dal_1_1schema_1_1_club.html#af46fb7dfa7cd0200fa42bc35040d2f13',1,'ehm_dal::schema::Club::childRowCount()'],['../classehm__dal_1_1schema_1_1_club_competition.html#adc7f49df4175c7fb1eb53c131f52eff3',1,'ehm_dal::schema::ClubCompetition::childRowCount()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#af28f506ef8a05a7ae4a9b5f289407a45',1,'ehm_dal::schema::AbstractTableItem::childRowCount()'],['../classehm__dal_1_1schema_1_1_staff_award.html#a8785699f0f84c1663fc7f2d383ed8c77',1,'ehm_dal::schema::StaffAward::childRowCount()']]], - ['cities_4',['CITIES',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa2b8530b28e0c36c5819fd21a8c8e801a',1,'ehm_dal::tables']]], - ['city_5',['City',['../classehm__dal_1_1schema_1_1_city.html',1,'ehm_dal::schema']]], - ['citycolumns_6',['CityColumns',['../classehm__dal_1_1column__data_1_1_city_columns.html',1,'ehm_dal::column_data']]], - ['clear_7',['clear',['../classehm__dal_1_1data__types_1_1_string.html#ab9b7fd6887f8e1eafa4963c8cee7c95f',1,'ehm_dal::data_types::String']]], - ['clearall_8',['clearAll',['../classehm__dal_1_1_database.html#a86440638565a9ebf6a3faf058dbd1405',1,'ehm_dal::Database::clearAll()'],['../classehm__dal_1_1column__data_1_1_column_data.html#addfbbd091dd9e973d6441045538a8357',1,'ehm_dal::column_data::ColumnData::clearAll()']]], - ['close_9',['close',['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#ac2e00bf15122225a9d75757fccf97948',1,'ehm_dal::file_io::AbstractFileManager']]], - ['club_10',['Club',['../classehm__dal_1_1schema_1_1_club.html',1,'ehm_dal::schema']]], - ['club_5fcompetition_5fhistory_11',['CLUB_COMPETITION_HISTORY',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa28bc895d92426436356c1173bbe39cc7',1,'ehm_dal::tables']]], - ['club_5fcompetitions_12',['CLUB_COMPETITIONS',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0facab29f3c2301674a7dc36be8de014732',1,'ehm_dal::tables']]], - ['club_5fhistory_13',['CLUB_HISTORY',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa8c02a316695a9a112eb654aed54a71f7',1,'ehm_dal::tables']]], - ['club_5frecords_14',['CLUB_RECORDS',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa855952471d12e82ec620400f16a09ff1',1,'ehm_dal::tables']]], - ['clubcolumns_15',['ClubColumns',['../classehm__dal_1_1column__data_1_1_club_columns.html',1,'ehm_dal::column_data']]], - ['clubcompetition_16',['ClubCompetition',['../classehm__dal_1_1schema_1_1_club_competition.html',1,'ehm_dal::schema']]], - ['clubcompetitioncolumns_17',['ClubCompetitionColumns',['../classehm__dal_1_1column__data_1_1_club_competition_columns.html',1,'ehm_dal::column_data']]], - ['clubcompetitionhistory_18',['ClubCompetitionHistory',['../classehm__dal_1_1schema_1_1_club_competition_history.html',1,'ehm_dal::schema']]], - ['clubcompetitionhistorycolumns_19',['ClubCompetitionHistoryColumns',['../classehm__dal_1_1column__data_1_1_club_competition_history_columns.html',1,'ehm_dal::column_data']]], - ['clubhistory_20',['ClubHistory',['../classehm__dal_1_1schema_1_1_club_history.html',1,'ehm_dal::schema']]], - ['clubhistorycolumns_21',['ClubHistoryColumns',['../classehm__dal_1_1column__data_1_1_club_history_columns.html',1,'ehm_dal::column_data']]], - ['clubrecordcolumns_22',['ClubRecordColumns',['../classehm__dal_1_1column__data_1_1_club_record_columns.html',1,'ehm_dal::column_data']]], - ['clubrecorditem_23',['ClubRecordItem',['../classehm__dal_1_1schema_1_1_club_record_item.html',1,'ehm_dal::schema']]], - ['clubrecords_24',['ClubRecords',['../classehm__dal_1_1schema_1_1_club_records.html',1,'ehm_dal::schema']]], - ['clubs_25',['CLUBS',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fad85016c04fa090ced22a82729fac4307',1,'ehm_dal::tables']]], - ['colour_26',['Colour',['../classehm__dal_1_1schema_1_1_colour.html',1,'ehm_dal::schema']]], - ['colour_5fpointer_27',['COLOUR_POINTER',['../classehm__dal_1_1column__data_1_1_column.html#a86e5e031236a5d521eab21ae052064b3a6d87d3a5ee3b1fa3f209ecd2148e8124',1,'ehm_dal::column_data::Column']]], - ['colourcolumns_28',['ColourColumns',['../classehm__dal_1_1column__data_1_1_colour_columns.html',1,'ehm_dal::column_data']]], - ['colours_29',['COLOURS',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0faed06a20858e9597d4be5e5d6c289951d',1,'ehm_dal::tables']]], - ['column_30',['Column',['../classehm__dal_1_1column__data_1_1_column.html#a689d9104d9549133b958389a5ff22435',1,'ehm_dal::column_data::Column::Column(const qint32 position, const QString &name, const ColumnType type, const quint16 settings=NO_SETTINGS)'],['../classehm__dal_1_1column__data_1_1_column.html#a256e87fe044bd95f8edb594c4c2de90d',1,'ehm_dal::column_data::Column::Column(const qint32 position, const QString &name, std::shared_ptr< ehm_dal::tables::AbstractTable > table, const quint16 settings=NO_SETTINGS)']]], - ['column_31',['column',['../classehm__dal_1_1column__data_1_1_column_data.html#a2833413c0fa3b399307d89dc646ce087',1,'ehm_dal::column_data::ColumnData']]], - ['column_32',['Column',['../classehm__dal_1_1column__data_1_1_column.html',1,'ehm_dal::column_data']]], - ['column_5fdata_5findexes_33',['COLUMN_DATA_INDEXES',['../classehm__dal_1_1column__data_1_1_column_data.html#a7a34ef7df82b9ce07eb2fe4c836a5281',1,'ehm_dal::column_data::ColumnData']]], - ['column_5fdata_5fsettings_34',['COLUMN_DATA_SETTINGS',['../classehm__dal_1_1column__data_1_1_column_data.html#a32d4f7563bcc42a1399e5992000f5002',1,'ehm_dal::column_data::ColumnData']]], - ['column_5fsettings_35',['COLUMN_SETTINGS',['../classehm__dal_1_1column__data_1_1_column.html#a86e5e031236a5d521eab21ae052064b3',1,'ehm_dal::column_data::Column']]], - ['columncount_36',['columnCount',['../classehm__dal_1_1tables_1_1_abstract_base_model.html#a985e799a0230eaa26e697d8e85c20199',1,'ehm_dal::tables::AbstractBaseModel::columnCount()'],['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#ac925511039abe1b88cb9b1fe1f125623',1,'ehm_dal::data_types::AbstractPointer::columnCount()'],['../classehm__dal_1_1column__data_1_1_column_data.html#a284c146ee0764c8d1407fa40a3663706',1,'ehm_dal::column_data::ColumnData::columnCount()']]], - ['columndata_37',['columnData',['../classehm__dal_1_1tables_1_1_abstract_base_model.html#accba6b7ca3df11adb597a08dc0502753',1,'ehm_dal::tables::AbstractBaseModel']]], - ['columndata_38',['ColumnData',['../classehm__dal_1_1column__data_1_1_column_data.html#afa1701c2ad88e94b61d7658fb0162ef2',1,'ehm_dal::column_data::ColumnData::ColumnData()'],['../classehm__dal_1_1column__data_1_1_column_data.html',1,'ehm_dal::column_data::ColumnData']]], - ['columntype_39',['ColumnType',['../classehm__dal_1_1column__data_1_1_column.html#a415f9767c810290925e3cc394b78f87b',1,'ehm_dal::column_data::Column']]], - ['compare_40',['compare',['../classehm__dal_1_1data__types_1_1_year.html#ac75d215e644396c20737dcf4b8f48c7b',1,'ehm_dal::data_types::Year::compare()'],['../classehm__dal_1_1data__types_1_1_string.html#aff7b8837b56b12089a2f699c0ef36d03',1,'ehm_dal::data_types::String::compare()']]], - ['consttable_41',['constTable',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#a152d2f0b4c74c98deb4bc1dd5834d904',1,'ehm_dal::data_types::AbstractPointer']]], - ['continent_42',['Continent',['../classehm__dal_1_1schema_1_1_continent.html',1,'ehm_dal::schema']]], - ['continentcolumns_43',['ContinentColumns',['../classehm__dal_1_1column__data_1_1_continent_columns.html',1,'ehm_dal::column_data']]], - ['continents_44',['CONTINENTS',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa0191b287e6b684ef1b0c503360ef43a8',1,'ehm_dal::tables']]], - ['currencies_45',['CURRENCIES',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fabc18669b889dea628f03ea1297b44bc1',1,'ehm_dal::tables']]], - ['currency_46',['Currency',['../classehm__dal_1_1schema_1_1_currency.html',1,'ehm_dal::schema']]], - ['currencycolumns_47',['CurrencyColumns',['../classehm__dal_1_1column__data_1_1_currency_columns.html',1,'ehm_dal::column_data']]], - ['currentability_48',['CurrentAbility',['../classehm__dal_1_1data__types_1_1_current_ability.html',1,'ehm_dal::data_types']]] + ['cell_1',['cell',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a37a871b8ad1b0bb89a5f2dde41ac83a6',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['cells_2',['cells',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a108b8f50b8d53d0984acc6b1c2ddee5e',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['childdata_3',['childData',['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a8de5f12bfaf8c01a5e2880402c01d248',1,'ehm_dal::schema::AbstractTableItem::childData()'],['../classehm__dal_1_1schema_1_1_staff_award.html#aac5c2ffe9420617442a46b7eabb35adc',1,'ehm_dal::schema::StaffAward::childData()'],['../classehm__dal_1_1schema_1_1_staff.html#ac50306ba859d4366c47cfd77eb9b7f43',1,'ehm_dal::schema::Staff::childData()'],['../classehm__dal_1_1schema_1_1_club_competition.html#a2286a2c982b944b04cba1ea83d814e68',1,'ehm_dal::schema::ClubCompetition::childData()'],['../classehm__dal_1_1schema_1_1_club.html#a49f08ac651a08edd675ae1202d9fd6ba',1,'ehm_dal::schema::Club::childData()']]], + ['childitemid_4',['childItemId',['../classehm__dal_1_1schema_1_1_abstract_table_item.html#ab2b161e72ffe15a6d4abcd31ae09eddc',1,'ehm_dal::schema::AbstractTableItem::childItemId()'],['../classehm__dal_1_1schema_1_1_staff.html#adec93f821d3baba1eb1199603b74794b',1,'ehm_dal::schema::Staff::childItemId()']]], + ['childrowcount_5',['childRowCount',['../classehm__dal_1_1schema_1_1_club.html#af46fb7dfa7cd0200fa42bc35040d2f13',1,'ehm_dal::schema::Club::childRowCount()'],['../classehm__dal_1_1schema_1_1_staff.html#a9ea2595a4f7c02dfda118794f1a70841',1,'ehm_dal::schema::Staff::childRowCount()'],['../classehm__dal_1_1schema_1_1_club_competition.html#adc7f49df4175c7fb1eb53c131f52eff3',1,'ehm_dal::schema::ClubCompetition::childRowCount()'],['../classehm__dal_1_1schema_1_1_staff_award.html#a8785699f0f84c1663fc7f2d383ed8c77',1,'ehm_dal::schema::StaffAward::childRowCount()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#af28f506ef8a05a7ae4a9b5f289407a45',1,'ehm_dal::schema::AbstractTableItem::childRowCount()']]], + ['cities_6',['CITIES',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa2b8530b28e0c36c5819fd21a8c8e801a',1,'ehm_dal::tables']]], + ['city_7',['City',['../classehm__dal_1_1schema_1_1_city.html',1,'ehm_dal::schema']]], + ['citycolumns_8',['CityColumns',['../classehm__dal_1_1column__data_1_1_city_columns.html',1,'ehm_dal::column_data']]], + ['clear_9',['clear',['../classehm__dal_1_1data__types_1_1_string.html#ab9b7fd6887f8e1eafa4963c8cee7c95f',1,'ehm_dal::data_types::String']]], + ['clearall_10',['clearAll',['../classehm__dal_1_1_database.html#a86440638565a9ebf6a3faf058dbd1405',1,'ehm_dal::Database::clearAll()'],['../classehm__dal_1_1column__data_1_1_column_data.html#addfbbd091dd9e973d6441045538a8357',1,'ehm_dal::column_data::ColumnData::clearAll()'],['../classehm__dal_1_1_saved_game.html#a6e6873e437990371b3d6c493f73e12f0',1,'ehm_dal::SavedGame::clearAll()']]], + ['close_11',['close',['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#ac2e00bf15122225a9d75757fccf97948',1,'ehm_dal::file_io::AbstractFileManager']]], + ['club_12',['Club',['../classehm__dal_1_1schema_1_1_club.html',1,'ehm_dal::schema']]], + ['club_5fcompetition_5fhistory_13',['CLUB_COMPETITION_HISTORY',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa28bc895d92426436356c1173bbe39cc7',1,'ehm_dal::tables']]], + ['club_5fcompetitions_14',['CLUB_COMPETITIONS',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0facab29f3c2301674a7dc36be8de014732',1,'ehm_dal::tables']]], + ['club_5fhistory_15',['CLUB_HISTORY',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa8c02a316695a9a112eb654aed54a71f7',1,'ehm_dal::tables']]], + ['club_5frecords_16',['CLUB_RECORDS',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa855952471d12e82ec620400f16a09ff1',1,'ehm_dal::tables']]], + ['clubcolumns_17',['ClubColumns',['../classehm__dal_1_1column__data_1_1_club_columns.html',1,'ehm_dal::column_data']]], + ['clubcompetition_18',['ClubCompetition',['../classehm__dal_1_1schema_1_1_club_competition.html',1,'ehm_dal::schema']]], + ['clubcompetitioncolumns_19',['ClubCompetitionColumns',['../classehm__dal_1_1column__data_1_1_club_competition_columns.html',1,'ehm_dal::column_data']]], + ['clubcompetitionhistory_20',['ClubCompetitionHistory',['../classehm__dal_1_1schema_1_1_club_competition_history.html',1,'ehm_dal::schema']]], + ['clubcompetitionhistorycolumns_21',['ClubCompetitionHistoryColumns',['../classehm__dal_1_1column__data_1_1_club_competition_history_columns.html',1,'ehm_dal::column_data']]], + ['clubhistory_22',['ClubHistory',['../classehm__dal_1_1schema_1_1_club_history.html',1,'ehm_dal::schema']]], + ['clubhistorycolumns_23',['ClubHistoryColumns',['../classehm__dal_1_1column__data_1_1_club_history_columns.html',1,'ehm_dal::column_data']]], + ['clubrecordcolumns_24',['ClubRecordColumns',['../classehm__dal_1_1column__data_1_1_club_record_columns.html',1,'ehm_dal::column_data']]], + ['clubrecorditem_25',['ClubRecordItem',['../classehm__dal_1_1schema_1_1_club_record_item.html',1,'ehm_dal::schema']]], + ['clubrecords_26',['ClubRecords',['../classehm__dal_1_1schema_1_1_club_records.html',1,'ehm_dal::schema']]], + ['clubs_27',['CLUBS',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fad85016c04fa090ced22a82729fac4307',1,'ehm_dal::tables']]], + ['colour_28',['Colour',['../classehm__dal_1_1schema_1_1_colour.html',1,'ehm_dal::schema']]], + ['colour_5fpointer_29',['COLOUR_POINTER',['../classehm__dal_1_1column__data_1_1_column.html#a86e5e031236a5d521eab21ae052064b3a6d87d3a5ee3b1fa3f209ecd2148e8124',1,'ehm_dal::column_data::Column']]], + ['colourcolumns_30',['ColourColumns',['../classehm__dal_1_1column__data_1_1_colour_columns.html',1,'ehm_dal::column_data']]], + ['colours_31',['COLOURS',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0faed06a20858e9597d4be5e5d6c289951d',1,'ehm_dal::tables']]], + ['column_32',['column',['../classehm__dal_1_1column__data_1_1_column_data.html#a2833413c0fa3b399307d89dc646ce087',1,'ehm_dal::column_data::ColumnData']]], + ['column_33',['Column',['../classehm__dal_1_1column__data_1_1_column.html#a689d9104d9549133b958389a5ff22435',1,'ehm_dal::column_data::Column::Column(const qint32 position, const QString &name, const ColumnType type, const quint16 settings=NO_SETTINGS)'],['../classehm__dal_1_1column__data_1_1_column.html#a256e87fe044bd95f8edb594c4c2de90d',1,'ehm_dal::column_data::Column::Column(const qint32 position, const QString &name, std::shared_ptr< ehm_dal::tables::AbstractTable > table, const quint16 settings=NO_SETTINGS)'],['../classehm__dal_1_1column__data_1_1_column.html',1,'ehm_dal::column_data::Column']]], + ['column_5fdata_5findexes_34',['COLUMN_DATA_INDEXES',['../classehm__dal_1_1column__data_1_1_column_data.html#a7a34ef7df82b9ce07eb2fe4c836a5281',1,'ehm_dal::column_data::ColumnData']]], + ['column_5fdata_5fsettings_35',['COLUMN_DATA_SETTINGS',['../classehm__dal_1_1column__data_1_1_column_data.html#a32d4f7563bcc42a1399e5992000f5002',1,'ehm_dal::column_data::ColumnData']]], + ['column_5fsettings_36',['COLUMN_SETTINGS',['../classehm__dal_1_1column__data_1_1_column.html#a86e5e031236a5d521eab21ae052064b3',1,'ehm_dal::column_data::Column']]], + ['columncontainsdata_37',['columnContainsData',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a74cbcb0934ea4c674a03658832651a4f',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['columncount_38',['columnCount',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#ac925511039abe1b88cb9b1fe1f125623',1,'ehm_dal::data_types::AbstractPointer::columnCount()'],['../classehm__dal_1_1tables_1_1_abstract_base_model.html#a985e799a0230eaa26e697d8e85c20199',1,'ehm_dal::tables::AbstractBaseModel::columnCount()'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a4ab3046be7e56645c29d8f896c8c7c41',1,'ehm_dal::spreadsheet::Spreadsheet::columnCount()'],['../classehm__dal_1_1column__data_1_1_column_data.html#a284c146ee0764c8d1407fa40a3663706',1,'ehm_dal::column_data::ColumnData::columnCount()']]], + ['columndata_39',['columnData',['../classehm__dal_1_1tables_1_1_abstract_base_model.html#accba6b7ca3df11adb597a08dc0502753',1,'ehm_dal::tables::AbstractBaseModel']]], + ['columndata_40',['ColumnData',['../classehm__dal_1_1column__data_1_1_column_data.html#afa1701c2ad88e94b61d7658fb0162ef2',1,'ehm_dal::column_data::ColumnData::ColumnData()'],['../classehm__dal_1_1column__data_1_1_column_data.html',1,'ehm_dal::column_data::ColumnData']]], + ['columntype_41',['ColumnType',['../classehm__dal_1_1column__data_1_1_column.html#a415f9767c810290925e3cc394b78f87b',1,'ehm_dal::column_data::Column']]], + ['compare_42',['compare',['../classehm__dal_1_1data__types_1_1_year.html#ac75d215e644396c20737dcf4b8f48c7b',1,'ehm_dal::data_types::Year::compare()'],['../classehm__dal_1_1data__types_1_1_string.html#aff7b8837b56b12089a2f699c0ef36d03',1,'ehm_dal::data_types::String::compare()']]], + ['consttable_43',['constTable',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#a152d2f0b4c74c98deb4bc1dd5834d904',1,'ehm_dal::data_types::AbstractPointer']]], + ['continent_44',['Continent',['../classehm__dal_1_1schema_1_1_continent.html',1,'ehm_dal::schema']]], + ['continentcolumns_45',['ContinentColumns',['../classehm__dal_1_1column__data_1_1_continent_columns.html',1,'ehm_dal::column_data']]], + ['continents_46',['CONTINENTS',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa0191b287e6b684ef1b0c503360ef43a8',1,'ehm_dal::tables']]], + ['currencies_47',['CURRENCIES',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fabc18669b889dea628f03ea1297b44bc1',1,'ehm_dal::tables']]], + ['currency_48',['Currency',['../classehm__dal_1_1schema_1_1_currency.html',1,'ehm_dal::schema']]], + ['currencycolumns_49',['CurrencyColumns',['../classehm__dal_1_1column__data_1_1_currency_columns.html',1,'ehm_dal::column_data']]], + ['currentability_50',['CurrentAbility',['../classehm__dal_1_1data__types_1_1_current_ability.html',1,'ehm_dal::data_types']]] ]; diff --git a/docs/search/all_3.js b/docs/search/all_3.js index 4f53faf..1ade0b2 100644 --- a/docs/search/all_3.js +++ b/docs/search/all_3.js @@ -1,6 +1,6 @@ var searchData= [ - ['data_0',['data',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#ace8333b0c424e751f2e99619cbce8da8',1,'ehm_dal::saved_game::SavedGameSubFile::data()'],['../classehm__dal_1_1_saved_game.html#a8b9b7d58e754b8dfc81d4989018d5dfc',1,'ehm_dal::SavedGame::data()'],['../classehm__dal_1_1data__types_1_1_data_type.html#aa2b394b44af19b246e2db1e09143fd89',1,'ehm_dal::data_types::DataType::data()'],['../classehm__dal_1_1data__types_1_1_abstract_data_type.html#ad2f31dbf2ebbd415f4f7325c33480318',1,'ehm_dal::data_types::AbstractDataType::data()'],['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#a341198e2bfc78cf7159743f4c644de62',1,'ehm_dal::data_types::AbstractPointer::data(const qint32 role) const'],['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#a5448793e68b9589bd312ce993be3b4e7',1,'ehm_dal::data_types::AbstractPointer::data(const qint32 column, const qint32 role) const'],['../classehm__dal_1_1schema_1_1_club_records.html#a39855ebab687245e27635d6884fc57f9',1,'ehm_dal::schema::ClubRecords::data()'],['../classehm__dal_1_1data__types_1_1_pointer.html#a5448793e68b9589bd312ce993be3b4e7',1,'ehm_dal::data_types::Pointer::data(const qint32 column, const qint32 role) const'],['../classehm__dal_1_1data__types_1_1_pointer.html#a341198e2bfc78cf7159743f4c644de62',1,'ehm_dal::data_types::Pointer::data(const qint32 role) const'],['../classehm__dal_1_1tables_1_1_abstract_table.html#ab58ae9e52327335c87f9a94d1bdbe9ce',1,'ehm_dal::tables::AbstractTable::data()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a4572ff444f74c5a642fa8d3a8ddca160',1,'ehm_dal::schema::AbstractTableItem::data(const QModelIndex &index, qint32 role, ehm_dal::column_data::ColumnData *column_data) const'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a029b195693237f3edb600c27a1d5f058',1,'ehm_dal::schema::AbstractTableItem::data(const qint32 column, qint32 role, ehm_dal::column_data::ColumnData *column_data) const']]], + ['data_0',['data',['../classehm__dal_1_1_saved_game.html#a8b9b7d58e754b8dfc81d4989018d5dfc',1,'ehm_dal::SavedGame::data()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a029b195693237f3edb600c27a1d5f058',1,'ehm_dal::schema::AbstractTableItem::data()'],['../classehm__dal_1_1data__types_1_1_data_type.html#aa2b394b44af19b246e2db1e09143fd89',1,'ehm_dal::data_types::DataType::data()'],['../classehm__dal_1_1data__types_1_1_abstract_data_type.html#ad2f31dbf2ebbd415f4f7325c33480318',1,'ehm_dal::data_types::AbstractDataType::data()'],['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#a341198e2bfc78cf7159743f4c644de62',1,'ehm_dal::data_types::AbstractPointer::data(const qint32 role) const'],['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#a5448793e68b9589bd312ce993be3b4e7',1,'ehm_dal::data_types::AbstractPointer::data(const qint32 column, const qint32 role) const'],['../classehm__dal_1_1schema_1_1_club_records.html#a39855ebab687245e27635d6884fc57f9',1,'ehm_dal::schema::ClubRecords::data()'],['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#ace8333b0c424e751f2e99619cbce8da8',1,'ehm_dal::saved_game::SavedGameSubFile::data()'],['../classehm__dal_1_1data__types_1_1_pointer.html#a5448793e68b9589bd312ce993be3b4e7',1,'ehm_dal::data_types::Pointer::data(const qint32 column, const qint32 role) const'],['../classehm__dal_1_1data__types_1_1_pointer.html#a341198e2bfc78cf7159743f4c644de62',1,'ehm_dal::data_types::Pointer::data(const qint32 role) const'],['../classehm__dal_1_1tables_1_1_abstract_table.html#ab58ae9e52327335c87f9a94d1bdbe9ce',1,'ehm_dal::tables::AbstractTable::data()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a4572ff444f74c5a642fa8d3a8ddca160',1,'ehm_dal::schema::AbstractTableItem::data()']]], ['database_1',['Database',['../classehm__dal_1_1_database.html#abda8c4c96ca84623380d55adc408b7c7',1,'ehm_dal::Database::Database()'],['../classehm__dal_1_1_database.html',1,'ehm_dal::Database']]], ['database_5fheader_2',['DATABASE_HEADER',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa78f625bed1cca9f7cf27bcf937189485',1,'ehm_dal::tables']]], ['databasefilemanager_3',['DatabaseFileManager',['../classehm__dal_1_1file__io_1_1_database_file_manager.html',1,'ehm_dal::file_io']]], @@ -13,15 +13,16 @@ var searchData= ['date_10',['Date',['../classehm__dal_1_1data__types_1_1_date.html#a6c2874dd37260980a188902e38b49c42',1,'ehm_dal::data_types::Date::Date()'],['../classehm__dal_1_1data__types_1_1_date.html',1,'ehm_dal::data_types::Date']]], ['datesgenerator_11',['DatesGenerator',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_dates_generator.html',1,'ehm_dal::tools::schedule_template_generator']]], ['dbxferimportid_12',['DbXferImportId',['../classehm__dal_1_1column__data_1_1_column_data.html#a7a34ef7df82b9ce07eb2fe4c836a5281ac2999d092cf5e8750db8609bfd5f446d',1,'ehm_dal::column_data::ColumnData']]], - ['description_13',['description',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#ae2d3355ce49d79c6a15e67d544c99b1a',1,'ehm_dal::data_types::AbstractPointer']]], - ['descriptor_14',['descriptor',['../classehm__dal_1_1file__io_1_1_database_file_manager.html#af4de3105686b08b44e1765654b13715c',1,'ehm_dal::file_io::DatabaseFileManager::descriptor()'],['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#a54829b45f5c07b21a37658c015e6a8e6',1,'ehm_dal::file_io::AbstractFileManager::descriptor()']]], - ['dimensions_15',['dimensions',['../classehm__dal_1_1column__data_1_1_column_data.html#acb293c0a2d2655c2a4cfb73ea9f13683',1,'ehm_dal::column_data::ColumnData']]], - ['displaytext_16',['DisplayText',['../classehm__dal_1_1column__data_1_1_column_data.html#a7a34ef7df82b9ce07eb2fe4c836a5281aeca00cf0062acc509cc7ac1aa520a976',1,'ehm_dal::column_data::ColumnData']]], - ['do_5fnot_5fuse_5fextra_5fcolumns_17',['DO_NOT_USE_EXTRA_COLUMNS',['../classehm__dal_1_1column__data_1_1_column_data.html#a32d4f7563bcc42a1399e5992000f5002aa28880944003c3e7b8a555f45234455d',1,'ehm_dal::column_data::ColumnData']]], - ['draft_18',['Draft',['../classehm__dal_1_1schema_1_1_draft.html',1,'ehm_dal::schema']]], - ['draft_5fhistory_19',['DRAFT_HISTORY',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa6ec4996d78bb2b8760f050a31dc19b9a',1,'ehm_dal::tables']]], - ['draftcolumns_20',['DraftColumns',['../classehm__dal_1_1column__data_1_1_draft_columns.html',1,'ehm_dal::column_data']]], - ['drafthistory_21',['DraftHistory',['../classehm__dal_1_1schema_1_1_draft_history.html',1,'ehm_dal::schema']]], - ['drafthistorycolumns_22',['DraftHistoryColumns',['../classehm__dal_1_1column__data_1_1_draft_history_columns.html',1,'ehm_dal::column_data']]], - ['drafts_23',['DRAFTS',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fadd3f93e03d8b2674d047be6ae6f8ac7f',1,'ehm_dal::tables']]] + ['defaultfileextension_13',['defaultFileExtension',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aa43792574fe22a3944bf6558cec81fa5',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['description_14',['description',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#ae2d3355ce49d79c6a15e67d544c99b1a',1,'ehm_dal::data_types::AbstractPointer']]], + ['descriptor_15',['descriptor',['../classehm__dal_1_1file__io_1_1_database_file_manager.html#af4de3105686b08b44e1765654b13715c',1,'ehm_dal::file_io::DatabaseFileManager::descriptor()'],['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#a54829b45f5c07b21a37658c015e6a8e6',1,'ehm_dal::file_io::AbstractFileManager::descriptor()'],['../classehm__dal_1_1file__io_1_1_saved_game_file_manager.html#a2a7cc73dc8c71360c5e701143ca47bdc',1,'ehm_dal::file_io::SavedGameFileManager::descriptor()']]], + ['dimensions_16',['dimensions',['../classehm__dal_1_1column__data_1_1_column_data.html#acb293c0a2d2655c2a4cfb73ea9f13683',1,'ehm_dal::column_data::ColumnData']]], + ['displaytext_17',['DisplayText',['../classehm__dal_1_1column__data_1_1_column_data.html#a7a34ef7df82b9ce07eb2fe4c836a5281aeca00cf0062acc509cc7ac1aa520a976',1,'ehm_dal::column_data::ColumnData']]], + ['do_5fnot_5fuse_5fextra_5fcolumns_18',['DO_NOT_USE_EXTRA_COLUMNS',['../classehm__dal_1_1column__data_1_1_column_data.html#a32d4f7563bcc42a1399e5992000f5002aa28880944003c3e7b8a555f45234455d',1,'ehm_dal::column_data::ColumnData']]], + ['draft_19',['Draft',['../classehm__dal_1_1schema_1_1_draft.html',1,'ehm_dal::schema']]], + ['draft_5fhistory_20',['DRAFT_HISTORY',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa6ec4996d78bb2b8760f050a31dc19b9a',1,'ehm_dal::tables']]], + ['draftcolumns_21',['DraftColumns',['../classehm__dal_1_1column__data_1_1_draft_columns.html',1,'ehm_dal::column_data']]], + ['drafthistory_22',['DraftHistory',['../classehm__dal_1_1schema_1_1_draft_history.html',1,'ehm_dal::schema']]], + ['drafthistorycolumns_23',['DraftHistoryColumns',['../classehm__dal_1_1column__data_1_1_draft_history_columns.html',1,'ehm_dal::column_data']]], + ['drafts_24',['DRAFTS',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fadd3f93e03d8b2674d047be6ae6f8ac7f',1,'ehm_dal::tables']]] ]; diff --git a/docs/search/all_4.js b/docs/search/all_4.js index a58b2e6..0c4fc30 100644 --- a/docs/search/all_4.js +++ b/docs/search/all_4.js @@ -8,11 +8,12 @@ var searchData= ['enum_5fversion_5fflags_5',['ENUM_VERSION_FLAGS',['../classehm__dal_1_1database_1_1_database_version.html#aeb4bcef6e023a7604657b193ac9baa9e',1,'ehm_dal::database::DatabaseVersion']]], ['estimatedbytesperrow_6',['estimatedBytesPerRow',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#a6873aae3ca2c16ebd16df4de37af2a72',1,'ehm_dal::saved_game::SavedGameSubFile']]], ['estimatedrowcount_7',['estimatedRowCount',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#a026a9687737980a38b1ea8578c2193fe',1,'ehm_dal::saved_game::SavedGameSubFile']]], - ['extrarule_8',['ExtraRule',['../classehm__dal_1_1ehm__extra__rules_1_1_extra_rule.html',1,'ehm_dal::ehm_extra_rules']]], - ['extraruledata_9',['ExtraRuleData',['../classehm__dal_1_1ehm__extra__rules_1_1_extra_rule_data.html',1,'ehm_dal::ehm_extra_rules']]], - ['integralnumber_10',['IntegralNumber',['../conceptehm__dal_1_1schema_1_1_integral_number.html',1,'ehm_dal::schema']]], - ['number_11',['Number',['../conceptehm__dal_1_1data__types_1_1_number.html',1,'ehm_dal::data_types']]], - ['saved_5fgame_12',['saved_game',['../namespaceehm__dal_1_1saved__game.html',1,'ehm_dal']]], - ['short_13',['Short',['../conceptehm__dal_1_1data__types_1_1_short.html',1,'ehm_dal::data_types']]], - ['tables_14',['tables',['../namespaceehm__dal_1_1tables.html',1,'ehm_dal']]] + ['exportpath_8',['exportPath',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad3ec8823d95deeea1fc00b5f01523979',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['extrarule_9',['ExtraRule',['../classehm__dal_1_1ehm__extra__rules_1_1_extra_rule.html',1,'ehm_dal::ehm_extra_rules']]], + ['extraruledata_10',['ExtraRuleData',['../classehm__dal_1_1ehm__extra__rules_1_1_extra_rule_data.html',1,'ehm_dal::ehm_extra_rules']]], + ['integralnumber_11',['IntegralNumber',['../conceptehm__dal_1_1schema_1_1_integral_number.html',1,'ehm_dal::schema']]], + ['number_12',['Number',['../conceptehm__dal_1_1data__types_1_1_number.html',1,'ehm_dal::data_types']]], + ['saved_5fgame_13',['saved_game',['../namespaceehm__dal_1_1saved__game.html',1,'ehm_dal']]], + ['short_14',['Short',['../conceptehm__dal_1_1data__types_1_1_short.html',1,'ehm_dal::data_types']]], + ['tables_15',['tables',['../namespaceehm__dal_1_1tables.html',1,'ehm_dal']]] ]; diff --git a/docs/search/all_5.js b/docs/search/all_5.js index 4929df4..4df1e44 100644 --- a/docs/search/all_5.js +++ b/docs/search/all_5.js @@ -1,27 +1,30 @@ var searchData= [ ['february_5f28th_0',['FEBRUARY_28TH',['../classehm__dal_1_1data__types_1_1_date.html#a4d00523486b8750aa36fcf74bbb59945aadd11a3cc340a2dae651362c822ac5a1',1,'ehm_dal::data_types::Date']]], - ['filefilterstring_1',['fileFilterString',['../classehm__dal_1_1file__io_1_1_database_file_manager.html#a8546901b3efc822af68451756f869819',1,'ehm_dal::file_io::DatabaseFileManager::fileFilterString()'],['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#ada0b092147c764cf3621a8ab81b5fadc',1,'ehm_dal::file_io::AbstractFileManager::fileFilterString()']]], - ['filename_2',['fileName',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#a94455bc67b60a8c6c8232f7775f374dd',1,'ehm_dal::saved_game::SavedGameSubFile::fileName()'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a32450ee50742a818911d377084f39d41',1,'ehm_dal::spreadsheet::Spreadsheet::fileName()']]], - ['fileposition_3',['filePosition',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#a1f73cb0b7c67b3a6a89ec0f597b71371',1,'ehm_dal::saved_game::SavedGameSubFile']]], - ['filesizekilobytes_4',['fileSizeKilobytes',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#a6d048dc22fec6f98635b520ccdccc2aa',1,'ehm_dal::saved_game::SavedGameSubFile']]], - ['filetype_5',['fileType',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aedb4a30f7cb4ab627d606f1a44f26779',1,'ehm_dal::spreadsheet::Spreadsheet']]], - ['find_6',['find',['../classehm__dal_1_1saved__game_1_1_saved_game_data.html#a9abe4f8e4bee0371bf63fe49981d1842',1,'ehm_dal::saved_game::SavedGameData::find()'],['../classehm__dal_1_1tables_1_1_abstract_table.html#a7131c91e6d3874ce0f91c750b9adaa86',1,'ehm_dal::tables::AbstractTable::find(const qint32 value, const quint16 column)'],['../classehm__dal_1_1tables_1_1_abstract_table.html#a8f973776ddbad3cfb7d64138bdfc9435',1,'ehm_dal::tables::AbstractTable::find(const QString &text, const quint16 column, const Qt::CaseSensitivity cs=Qt::CaseInsensitive)']]], - ['findall_7',['findAll',['../classehm__dal_1_1tables_1_1_abstract_table.html#a1bf87b6911945578bebe05e0972f91af',1,'ehm_dal::tables::AbstractTable::findAll(const qint32 value, const quint16 column)'],['../classehm__dal_1_1tables_1_1_abstract_table.html#a338e6b8568a3266329bfa439c7e7aca0',1,'ehm_dal::tables::AbstractTable::findAll(const QString &text, const quint16 column, const Qt::CaseSensitivity cs=Qt::CaseInsensitive)']]], - ['findallcontains_8',['findAllContains',['../classehm__dal_1_1tables_1_1_abstract_table.html#a23c86db75a17186ab593110b4b9fc0b3',1,'ehm_dal::tables::AbstractTable']]], - ['findcontains_9',['findContains',['../classehm__dal_1_1tables_1_1_abstract_table.html#a2a281c4c204378fe4ecd38c61e83edc4',1,'ehm_dal::tables::AbstractTable']]], - ['first_5fday_5fof_5fthe_5fyear_10',['FIRST_DAY_OF_THE_YEAR',['../classehm__dal_1_1data__types_1_1_date.html#a4d00523486b8750aa36fcf74bbb59945a1084e1e535ba79c8f94da38e0c3cf9ff',1,'ehm_dal::data_types::Date']]], - ['first_5fnames_11',['FIRST_NAMES',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0faf39fa6f8ff2396d20375f75d7c961b6a',1,'ehm_dal::tables']]], - ['firstderivedcolumnindex_12',['firstDerivedColumnIndex',['../classehm__dal_1_1column__data_1_1_column_data.html#ac47f63b865d6a5006a6e4a1ebe1f11be',1,'ehm_dal::column_data::ColumnData']]], - ['firstidonlyderivedcolumnindex_13',['FirstIdOnlyDerivedColumnIndex',['../classehm__dal_1_1column__data_1_1_column_data.html#a7a34ef7df82b9ce07eb2fe4c836a5281a24b5db8ec972e6fb13d2095cca434ba9',1,'ehm_dal::column_data::ColumnData']]], - ['firststandardderivedcolumnindex_14',['FirstStandardDerivedColumnIndex',['../classehm__dal_1_1column__data_1_1_column_data.html#a7a34ef7df82b9ce07eb2fe4c836a5281a3ee0b1732ca4a612ea65979eabbbfbcc',1,'ehm_dal::column_data::ColumnData']]], - ['fixerrors_15',['fixErrors',['../classehm__dal_1_1schema_1_1_club.html#aa8c6e17914b67510643be592dd48e99b',1,'ehm_dal::schema::Club::fixErrors()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#ad7d3cf9d7ec68567cb05f24229e4356d',1,'ehm_dal::schema::AbstractTableItem::fixErrors()']]], - ['flag_16',['Flag',['../classehm__dal_1_1flags_1_1_flag.html',1,'ehm_dal::flags']]], - ['flag_5ftable_17',['FLAG_TABLE',['../namespaceehm__dal_1_1tables.html#a7cd08a7f15648c9874b9d53345402a0aa0d0e7ee172bc19782a536200fe4a94d6',1,'ehm_dal::tables']]], - ['flagdatabase_18',['FlagDatabase',['../classehm__dal_1_1flags_1_1_flag_database.html',1,'ehm_dal::flags']]], - ['flags_19',['flags',['../classehm__dal_1_1column__data_1_1_column.html#aba5fa006415b67edbcb7a39f5ae02929',1,'ehm_dal::column_data::Column::flags()'],['../classehm__dal_1_1column__data_1_1_column_data.html#a0ecda781d9c0e6865b01f583c99333ab',1,'ehm_dal::column_data::ColumnData::flags()'],['../classehm__dal_1_1tables_1_1_abstract_base_model.html#ac663516741d54ae71bdc2628e70e7346',1,'ehm_dal::tables::AbstractBaseModel::flags()']]], - ['flagtable_20',['FlagTable',['../classehm__dal_1_1flags_1_1_flag_table.html',1,'ehm_dal::flags']]], - ['folderpath_21',['FolderPath',['../classehm__dal_1_1settings_1_1_folder_path.html',1,'ehm_dal::settings']]], - ['force_5fcaching_22',['FORCE_CACHING',['../classehm__dal_1_1column__data_1_1_column_data.html#a32d4f7563bcc42a1399e5992000f5002a6cd95cb9d5ecf7284529477b4ebd036a',1,'ehm_dal::column_data::ColumnData']]], - ['fromvalue_23',['fromValue',['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a62e66f43f4fb91450612e980379291e7',1,'ehm_dal::schema::AbstractTableItem']]] + ['file_1',['file',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a25c16bb23cca09f307dee41fe737305c',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['fileextensionlistasstring_2',['fileExtensionListAsString',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a766f09738864d07bc49fdc662991ee26',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['fileextensionlistasstringlist_3',['fileExtensionListAsStringList',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a59a0b37b9fce42b949974519eba1cc65',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['filefilterstring_4',['fileFilterString',['../classehm__dal_1_1file__io_1_1_database_file_manager.html#a8546901b3efc822af68451756f869819',1,'ehm_dal::file_io::DatabaseFileManager::fileFilterString()'],['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#ada0b092147c764cf3621a8ab81b5fadc',1,'ehm_dal::file_io::AbstractFileManager::fileFilterString()'],['../classehm__dal_1_1file__io_1_1_saved_game_file_manager.html#a1810a7ca435099e88625f2e9187406e3',1,'ehm_dal::file_io::SavedGameFileManager::fileFilterString()']]], + ['filename_5',['fileName',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#a94455bc67b60a8c6c8232f7775f374dd',1,'ehm_dal::saved_game::SavedGameSubFile::fileName()'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a32450ee50742a818911d377084f39d41',1,'ehm_dal::spreadsheet::Spreadsheet::fileName()']]], + ['fileposition_6',['filePosition',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#a1f73cb0b7c67b3a6a89ec0f597b71371',1,'ehm_dal::saved_game::SavedGameSubFile']]], + ['filesizekilobytes_7',['fileSizeKilobytes',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#a6d048dc22fec6f98635b520ccdccc2aa',1,'ehm_dal::saved_game::SavedGameSubFile']]], + ['filetype_8',['fileType',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aedb4a30f7cb4ab627d606f1a44f26779',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['find_9',['find',['../classehm__dal_1_1tables_1_1_abstract_table.html#a8f973776ddbad3cfb7d64138bdfc9435',1,'ehm_dal::tables::AbstractTable::find()'],['../classehm__dal_1_1saved__game_1_1_saved_game_data.html#a9abe4f8e4bee0371bf63fe49981d1842',1,'ehm_dal::saved_game::SavedGameData::find()'],['../classehm__dal_1_1tables_1_1_abstract_table.html#a7131c91e6d3874ce0f91c750b9adaa86',1,'ehm_dal::tables::AbstractTable::find(const qint32 value, const quint16 column)']]], + ['findall_10',['findAll',['../classehm__dal_1_1tables_1_1_abstract_table.html#a338e6b8568a3266329bfa439c7e7aca0',1,'ehm_dal::tables::AbstractTable::findAll(const QString &text, const quint16 column, const Qt::CaseSensitivity cs=Qt::CaseInsensitive)'],['../classehm__dal_1_1tables_1_1_abstract_table.html#a1bf87b6911945578bebe05e0972f91af',1,'ehm_dal::tables::AbstractTable::findAll(const qint32 value, const quint16 column)']]], + ['findallcontains_11',['findAllContains',['../classehm__dal_1_1tables_1_1_abstract_table.html#a23c86db75a17186ab593110b4b9fc0b3',1,'ehm_dal::tables::AbstractTable']]], + ['findcontains_12',['findContains',['../classehm__dal_1_1tables_1_1_abstract_table.html#a2a281c4c204378fe4ecd38c61e83edc4',1,'ehm_dal::tables::AbstractTable']]], + ['first_5fday_5fof_5fthe_5fyear_13',['FIRST_DAY_OF_THE_YEAR',['../classehm__dal_1_1data__types_1_1_date.html#a4d00523486b8750aa36fcf74bbb59945a1084e1e535ba79c8f94da38e0c3cf9ff',1,'ehm_dal::data_types::Date']]], + ['first_5fnames_14',['FIRST_NAMES',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0faf39fa6f8ff2396d20375f75d7c961b6a',1,'ehm_dal::tables']]], + ['firstderivedcolumnindex_15',['firstDerivedColumnIndex',['../classehm__dal_1_1column__data_1_1_column_data.html#ac47f63b865d6a5006a6e4a1ebe1f11be',1,'ehm_dal::column_data::ColumnData']]], + ['firstidonlyderivedcolumnindex_16',['FirstIdOnlyDerivedColumnIndex',['../classehm__dal_1_1column__data_1_1_column_data.html#a7a34ef7df82b9ce07eb2fe4c836a5281a24b5db8ec972e6fb13d2095cca434ba9',1,'ehm_dal::column_data::ColumnData']]], + ['firststandardderivedcolumnindex_17',['FirstStandardDerivedColumnIndex',['../classehm__dal_1_1column__data_1_1_column_data.html#a7a34ef7df82b9ce07eb2fe4c836a5281a3ee0b1732ca4a612ea65979eabbbfbcc',1,'ehm_dal::column_data::ColumnData']]], + ['fixerrors_18',['fixErrors',['../classehm__dal_1_1schema_1_1_club.html#aa8c6e17914b67510643be592dd48e99b',1,'ehm_dal::schema::Club::fixErrors()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#ad7d3cf9d7ec68567cb05f24229e4356d',1,'ehm_dal::schema::AbstractTableItem::fixErrors()']]], + ['flag_19',['Flag',['../classehm__dal_1_1flags_1_1_flag.html',1,'ehm_dal::flags']]], + ['flag_5ftable_20',['FLAG_TABLE',['../namespaceehm__dal_1_1tables.html#a7cd08a7f15648c9874b9d53345402a0aa0d0e7ee172bc19782a536200fe4a94d6',1,'ehm_dal::tables']]], + ['flagdatabase_21',['FlagDatabase',['../classehm__dal_1_1flags_1_1_flag_database.html',1,'ehm_dal::flags']]], + ['flags_22',['flags',['../classehm__dal_1_1column__data_1_1_column.html#aba5fa006415b67edbcb7a39f5ae02929',1,'ehm_dal::column_data::Column::flags()'],['../classehm__dal_1_1column__data_1_1_column_data.html#a0ecda781d9c0e6865b01f583c99333ab',1,'ehm_dal::column_data::ColumnData::flags()'],['../classehm__dal_1_1tables_1_1_abstract_base_model.html#ac663516741d54ae71bdc2628e70e7346',1,'ehm_dal::tables::AbstractBaseModel::flags()']]], + ['flagtable_23',['FlagTable',['../classehm__dal_1_1flags_1_1_flag_table.html',1,'ehm_dal::flags']]], + ['folderpath_24',['FolderPath',['../classehm__dal_1_1settings_1_1_folder_path.html',1,'ehm_dal::settings']]], + ['force_5fcaching_25',['FORCE_CACHING',['../classehm__dal_1_1column__data_1_1_column_data.html#a32d4f7563bcc42a1399e5992000f5002a6cd95cb9d5ecf7284529477b4ebd036a',1,'ehm_dal::column_data::ColumnData']]], + ['fromvalue_26',['fromValue',['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a62e66f43f4fb91450612e980379291e7',1,'ehm_dal::schema::AbstractTableItem']]] ]; diff --git a/docs/search/all_8.js b/docs/search/all_8.js index 22be261..b0a54cf 100644 --- a/docs/search/all_8.js +++ b/docs/search/all_8.js @@ -1,37 +1,38 @@ var searchData= [ - ['id_0',['id',['../classehm__dal_1_1column__data_1_1_column.html#a1ab4e6179948719e09f094e8f6bdcaf9',1,'ehm_dal::column_data::Column::id()'],['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#a4a5575d6ea861e99af1bb237adf498df',1,'ehm_dal::data_types::AbstractPointer::id()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#acba8029ebf11f69738d1502f611db8e2',1,'ehm_dal::schema::AbstractTableItem::id() const'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a2924e2a12fe55b771bb7c60773cc57ca',1,'ehm_dal::schema::AbstractTableItem::id(const qint32 role)'],['../classehm__dal_1_1tables_1_1_table_attributes.html#a2e9e7c04d81e0af0a829bbac4e126c54',1,'ehm_dal::tables::TableAttributes::id()']]], - ['id_1',['Id',['../classehm__dal_1_1column__data_1_1_column_data.html#a7a34ef7df82b9ce07eb2fe4c836a5281ae9fe37baee11fe9a7edc882f670d0d53',1,'ehm_dal::column_data::ColumnData']]], + ['id_0',['Id',['../classehm__dal_1_1column__data_1_1_column_data.html#a7a34ef7df82b9ce07eb2fe4c836a5281ae9fe37baee11fe9a7edc882f670d0d53',1,'ehm_dal::column_data::ColumnData']]], + ['id_1',['id',['../classehm__dal_1_1column__data_1_1_column.html#a1ab4e6179948719e09f094e8f6bdcaf9',1,'ehm_dal::column_data::Column::id()'],['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#a4a5575d6ea861e99af1bb237adf498df',1,'ehm_dal::data_types::AbstractPointer::id()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#acba8029ebf11f69738d1502f611db8e2',1,'ehm_dal::schema::AbstractTableItem::id() const'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a2924e2a12fe55b771bb7c60773cc57ca',1,'ehm_dal::schema::AbstractTableItem::id(const qint32 role)'],['../classehm__dal_1_1tables_1_1_table_attributes.html#a2e9e7c04d81e0af0a829bbac4e126c54',1,'ehm_dal::tables::TableAttributes::id()']]], ['idbuffer_2',['idBuffer',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#ae7b96f4bbe24237db537428afaf23a1e',1,'ehm_dal::data_types::AbstractPointer']]], - ['identifier_3',['identifier',['../classehm__dal_1_1schema_1_1_abstract_table_item.html#aef183e437571bd0baf4aa0495e092ff4',1,'ehm_dal::schema::AbstractTableItem']]], - ['identifierlist_4',['identifierList',['../classehm__dal_1_1schema_1_1_club_competition.html#a144a58b56d96fae6f83c7f960e92b352',1,'ehm_dal::schema::ClubCompetition::identifierList()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a5fb025fd37a798e4885b56cb8f2de63e',1,'ehm_dal::schema::AbstractTableItem::identifierList() const']]], - ['init_5',['init',['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a51729757a1334244f2efcb6b776fc46a',1,'ehm_dal::schema::AbstractTableItem::init()'],['../classehm__dal_1_1schema_1_1_club_history.html#aa5de4f9e5aac7f73c19abb02376b67fb',1,'ehm_dal::schema::ClubHistory::init()'],['../classehm__dal_1_1data__types_1_1_name_pointer.html#aeb9b65c216d29c748f2ecf281225b751',1,'ehm_dal::data_types::NamePointer::init()'],['../classehm__dal_1_1data__types_1_1_pointer.html#a59ca5d57f8a45c61df4e21745100177c',1,'ehm_dal::data_types::Pointer::init()'],['../classehm__dal_1_1schema_1_1_affiliation.html#af93cf78c12b88662fcdc85450da21e0f',1,'ehm_dal::schema::Affiliation::init()'],['../classehm__dal_1_1schema_1_1_arena.html#aff089d48a5ea630d59de39f021a13a68',1,'ehm_dal::schema::Arena::init()'],['../classehm__dal_1_1schema_1_1_city.html#ada0dd1b9323fe043a76870a911957e58',1,'ehm_dal::schema::City::init()'],['../classehm__dal_1_1schema_1_1_club.html#a9c139db230761395613d2cd1569d2b5b',1,'ehm_dal::schema::Club::init()'],['../classehm__dal_1_1tables_1_1_abstract_table.html#a1b5a5a2cfc5f0b54f1475de6edc7c6e0',1,'ehm_dal::tables::AbstractTable::init()'],['../classehm__dal_1_1schema_1_1_club_records.html#a4650f0a0b741786f51c60b4cf8894013',1,'ehm_dal::schema::ClubRecords::init()'],['../classehm__dal_1_1schema_1_1_retired_number.html#aab850457141e8ec3e556d69d5c2ba366',1,'ehm_dal::schema::RetiredNumber::init()'],['../classehm__dal_1_1schema_1_1_club_competition.html#a520ffabc3ce682304922a0e01bbb8dcd',1,'ehm_dal::schema::ClubCompetition::init()'],['../classehm__dal_1_1schema_1_1_club_competition_history.html#a289086f41b27a17c7d70134012c481c7',1,'ehm_dal::schema::ClubCompetitionHistory::init()'],['../classehm__dal_1_1schema_1_1_colour.html#a70a2efe80820f86604a4160d4cb5ca07',1,'ehm_dal::schema::Colour::init()'],['../classehm__dal_1_1schema_1_1_continent.html#a22b776dce57c6520c9e3d380289034b0',1,'ehm_dal::schema::Continent::init()'],['../classehm__dal_1_1schema_1_1_currency.html#ab35babf1439b45a39682fa3b988d0be9',1,'ehm_dal::schema::Currency::init()'],['../classehm__dal_1_1schema_1_1_database_header.html#a5fc47ecfcb9bb8903feb19325af3d13f',1,'ehm_dal::schema::DatabaseHeader::init()'],['../classehm__dal_1_1schema_1_1_draft.html#aa70856621b54dd683ba8c1432be248b2',1,'ehm_dal::schema::Draft::init()'],['../classehm__dal_1_1schema_1_1_game_basic_data.html#acd75b636160567b3325f35b62fd5919e',1,'ehm_dal::schema::GameBasicData::init()'],['../classehm__dal_1_1schema_1_1_injury.html#a634fa544d0e2173ecceaaeef40c33546',1,'ehm_dal::schema::Injury::init()'],['../classehm__dal_1_1schema_1_1_name.html#a6cb65dcd8f486d9e36a28c1e4a00204a',1,'ehm_dal::schema::Name::init()'],['../classehm__dal_1_1schema_1_1_nation.html#a02d6885035ed5acdb2e60828a32a6ea0',1,'ehm_dal::schema::Nation::init()'],['../classehm__dal_1_1schema_1_1_person.html#a1ae7461b0d2a1c7c225ef9de509dbb9b',1,'ehm_dal::schema::Person::init()'],['../classehm__dal_1_1schema_1_1_draft_history.html#a98ae1b23fa195e770bbc2127bb8a3559',1,'ehm_dal::schema::DraftHistory::init()'],['../classehm__dal_1_1schema_1_1_non_player_data.html#a5dc2f6a5bf464b57592d2d5b45472403',1,'ehm_dal::schema::NonPlayerData::init()'],['../classehm__dal_1_1schema_1_1_player_data.html#a0793b9ac2916ab0b0b4783e998b6391c',1,'ehm_dal::schema::PlayerData::init()'],['../classehm__dal_1_1schema_1_1_player_info.html#a16b1f12d14f04d57716f7b61caa014e8',1,'ehm_dal::schema::PlayerInfo::init()'],['../classehm__dal_1_1schema_1_1_player_rights.html#a24db611a33a818e31043929f54fe4622',1,'ehm_dal::schema::PlayerRights::init()'],['../classehm__dal_1_1schema_1_1_staff_history.html#ac6dc142ce60067b6a26aeaf0441686b7',1,'ehm_dal::schema::StaffHistory::init()'],['../classehm__dal_1_1schema_1_1_staff_info.html#a9015be98c3332de48914bd77b10874ff',1,'ehm_dal::schema::StaffInfo::init()'],['../classehm__dal_1_1schema_1_1_staff_preferences.html#a357b38bf6b53b04592337385e5be0b07',1,'ehm_dal::schema::StaffPreferences::init()'],['../classehm__dal_1_1schema_1_1_staff_award.html#ac75bfdc7e83096b773c95f10bbe8a0d0',1,'ehm_dal::schema::StaffAward::init()'],['../classehm__dal_1_1schema_1_1_staff_award_history.html#a74fe4204d24d52fa6aad421ba58ff07c',1,'ehm_dal::schema::StaffAwardHistory::init()'],['../classehm__dal_1_1schema_1_1_stage_name.html#a176bcdd65e475181cb3fd3c81b256373',1,'ehm_dal::schema::StageName::init()'],['../classehm__dal_1_1schema_1_1_state.html#ad2d13af2bfd083310a8804e0c7293488',1,'ehm_dal::schema::State::init()']]], - ['injuries_6',['INJURIES',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0faa7d99f0c436057df2a55f6b088a2f34a',1,'ehm_dal::tables']]], - ['injury_7',['Injury',['../classehm__dal_1_1schema_1_1_injury.html',1,'ehm_dal::schema']]], - ['injurycolumns_8',['InjuryColumns',['../classehm__dal_1_1column__data_1_1_injury_columns.html',1,'ehm_dal::column_data']]], - ['iscached_9',['isCached',['../classehm__dal_1_1column__data_1_1_column.html#aa14384261b226e0a3c64652e90f1305f',1,'ehm_dal::column_data::Column::isCached()'],['../classehm__dal_1_1column__data_1_1_column_data.html#a62546aa8101886cb8c0187153275b134',1,'ehm_dal::column_data::ColumnData::isCached()']]], - ['ischeckable_10',['isCheckable',['../classehm__dal_1_1column__data_1_1_column.html#af6d7543c092e6424992316007d37ea20',1,'ehm_dal::column_data::Column']]], - ['iscolourpointer_11',['isColourPointer',['../classehm__dal_1_1column__data_1_1_column.html#ad9944213926008e150b056f33fbc59f3',1,'ehm_dal::column_data::Column']]], - ['iscompressed_12',['isCompressed',['../classehm__dal_1_1saved__game_1_1_saved_game_data.html#af8e73931da06c4a44e4f3e888afd3d00',1,'ehm_dal::saved_game::SavedGameData']]], - ['iscontainer_13',['isContainer',['../classehm__dal_1_1column__data_1_1_column.html#a1e4bdb55fda47c67c4c2907e46b328d9',1,'ehm_dal::column_data::Column']]], - ['isdatabasetable_14',['isDatabaseTable',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#a724983fed432f9aee370085ffeaae648',1,'ehm_dal::saved_game::SavedGameSubFile']]], - ['isdatabasetablepointer_15',['isDatabaseTablePointer',['../classehm__dal_1_1column__data_1_1_column.html#a60819922f8ccf9744038f0688037e752',1,'ehm_dal::column_data::Column']]], - ['isflagtablepointer_16',['isFlagTablePointer',['../classehm__dal_1_1column__data_1_1_column.html#a849889379c475f762d7b406c9a93adee',1,'ehm_dal::column_data::Column']]], - ['isidenticalto_17',['isIdenticalTo',['../classehm__dal_1_1data__types_1_1_string.html#a0001c5d128dc76244c8eb1a263a10af7',1,'ehm_dal::data_types::String']]], - ['isinitialised_18',['isInitialised',['../classehm__dal_1_1column__data_1_1_column_data.html#ade35114488339007f9f58fb79a019251',1,'ehm_dal::column_data::ColumnData']]], - ['isinvalid_19',['isInvalid',['../classehm__dal_1_1data__types_1_1_year.html#a050e5a9a2f548c06acaf4eafc75460bd',1,'ehm_dal::data_types::Year']]], - ['ismodifiedbydbxfer_20',['IsModifiedByDbXfer',['../classehm__dal_1_1column__data_1_1_column_data.html#a7a34ef7df82b9ce07eb2fe4c836a5281a3090bb9486f59500f5094559bfac2110',1,'ehm_dal::column_data::ColumnData']]], - ['isnamestringpointer_21',['isNameStringPointer',['../classehm__dal_1_1column__data_1_1_column.html#ae304e3c01f52779ff7829ddb8d5a17e1',1,'ehm_dal::column_data::Column']]], - ['isnone_22',['isNone',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#af7b6a7cf73dd60335db8371aa1469169',1,'ehm_dal::data_types::AbstractPointer']]], - ['isopen_23',['isOpen',['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#ada616ff83e773a84ac03d953207cad0e',1,'ehm_dal::file_io::AbstractFileManager']]], - ['ispointer_24',['isPointer',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#ab653fcea6ca16f1c2661b32a1962a8df',1,'ehm_dal::data_types::AbstractPointer']]], - ['ispointerlist_25',['isPointerList',['../classehm__dal_1_1column__data_1_1_column.html#a9e622a6302ac8bc3fd96417f05d55a5f',1,'ehm_dal::column_data::Column']]], - ['israwpointer_26',['isRawPointer',['../classehm__dal_1_1column__data_1_1_column.html#aa213637e952ef66112c0b5769f8185f9',1,'ehm_dal::column_data::Column']]], - ['isreadonly_27',['isReadOnly',['../classehm__dal_1_1column__data_1_1_column.html#a621f36edebcb2532cabf0af67be22515',1,'ehm_dal::column_data::Column']]], - ['issaved_28',['isSaved',['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#a3107c69b78d5dc92d2d76cf788b21bdc',1,'ehm_dal::file_io::AbstractFileManager']]], - ['issortable_29',['isSortable',['../classehm__dal_1_1column__data_1_1_column_data.html#a00bd7247ec8124f1391d90c0b88dc37c',1,'ehm_dal::column_data::ColumnData']]], - ['isvalid_30',['isValid',['../classehm__dal_1_1column__data_1_1_column_data.html#aa9951c5f7f20b1c214447524ced833a3',1,'ehm_dal::column_data::ColumnData::isValid()'],['../classehm__dal_1_1data__types_1_1_year.html#ad194febdc160c44246e336847affbe60',1,'ehm_dal::data_types::Year::isValid()']]], - ['isvalidpointer_31',['isValidPointer',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#add334e4650fc186dbc59f05aa1264f26',1,'ehm_dal::data_types::AbstractPointer']]], - ['isvalidtable_32',['isValidTable',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#a37e6f5e3c915cd9227dc5213937b4a91',1,'ehm_dal::data_types::AbstractPointer']]], - ['iswithinrange_33',['isWithinRange',['../classehm__dal_1_1data__types_1_1_year.html#a804fed12f49b35760d52c241b55b0e30',1,'ehm_dal::data_types::Year']]] + ['identifier_3',['identifier',['../classehm__dal_1_1schema_1_1_abstract_table_item.html#aef183e437571bd0baf4aa0495e092ff4',1,'ehm_dal::schema::AbstractTableItem::identifier()'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a1bcf058f06086df9f9785aa8e6123104',1,'ehm_dal::spreadsheet::Spreadsheet::identifier()']]], + ['identifierlist_4',['identifierList',['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a5fb025fd37a798e4885b56cb8f2de63e',1,'ehm_dal::schema::AbstractTableItem::identifierList()'],['../classehm__dal_1_1schema_1_1_club_competition.html#a144a58b56d96fae6f83c7f960e92b352',1,'ehm_dal::schema::ClubCompetition::identifierList()']]], + ['importpath_5',['importPath',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a7826eeae47dd16ff2a43bd419d7ded8e',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['init_6',['init',['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a51729757a1334244f2efcb6b776fc46a',1,'ehm_dal::schema::AbstractTableItem::init()'],['../classehm__dal_1_1schema_1_1_city.html#ada0dd1b9323fe043a76870a911957e58',1,'ehm_dal::schema::City::init()'],['../classehm__dal_1_1data__types_1_1_name_pointer.html#aeb9b65c216d29c748f2ecf281225b751',1,'ehm_dal::data_types::NamePointer::init()'],['../classehm__dal_1_1data__types_1_1_pointer.html#a59ca5d57f8a45c61df4e21745100177c',1,'ehm_dal::data_types::Pointer::init()'],['../classehm__dal_1_1schema_1_1_affiliation.html#af93cf78c12b88662fcdc85450da21e0f',1,'ehm_dal::schema::Affiliation::init()'],['../classehm__dal_1_1schema_1_1_arena.html#aff089d48a5ea630d59de39f021a13a68',1,'ehm_dal::schema::Arena::init()'],['../classehm__dal_1_1tables_1_1_abstract_table.html#a1b5a5a2cfc5f0b54f1475de6edc7c6e0',1,'ehm_dal::tables::AbstractTable::init()'],['../classehm__dal_1_1schema_1_1_club.html#a9c139db230761395613d2cd1569d2b5b',1,'ehm_dal::schema::Club::init()'],['../classehm__dal_1_1schema_1_1_club_history.html#aa5de4f9e5aac7f73c19abb02376b67fb',1,'ehm_dal::schema::ClubHistory::init()'],['../classehm__dal_1_1schema_1_1_club_records.html#a4650f0a0b741786f51c60b4cf8894013',1,'ehm_dal::schema::ClubRecords::init()'],['../classehm__dal_1_1schema_1_1_retired_number.html#aab850457141e8ec3e556d69d5c2ba366',1,'ehm_dal::schema::RetiredNumber::init()'],['../classehm__dal_1_1schema_1_1_club_competition.html#a520ffabc3ce682304922a0e01bbb8dcd',1,'ehm_dal::schema::ClubCompetition::init()'],['../classehm__dal_1_1schema_1_1_club_competition_history.html#a289086f41b27a17c7d70134012c481c7',1,'ehm_dal::schema::ClubCompetitionHistory::init()'],['../classehm__dal_1_1schema_1_1_colour.html#a70a2efe80820f86604a4160d4cb5ca07',1,'ehm_dal::schema::Colour::init()'],['../classehm__dal_1_1schema_1_1_continent.html#a22b776dce57c6520c9e3d380289034b0',1,'ehm_dal::schema::Continent::init()'],['../classehm__dal_1_1schema_1_1_currency.html#ab35babf1439b45a39682fa3b988d0be9',1,'ehm_dal::schema::Currency::init()'],['../classehm__dal_1_1schema_1_1_database_header.html#a5fc47ecfcb9bb8903feb19325af3d13f',1,'ehm_dal::schema::DatabaseHeader::init()'],['../classehm__dal_1_1schema_1_1_draft.html#aa70856621b54dd683ba8c1432be248b2',1,'ehm_dal::schema::Draft::init()'],['../classehm__dal_1_1schema_1_1_game_basic_data.html#acd75b636160567b3325f35b62fd5919e',1,'ehm_dal::schema::GameBasicData::init()'],['../classehm__dal_1_1schema_1_1_injury.html#a634fa544d0e2173ecceaaeef40c33546',1,'ehm_dal::schema::Injury::init()'],['../classehm__dal_1_1schema_1_1_name.html#a6cb65dcd8f486d9e36a28c1e4a00204a',1,'ehm_dal::schema::Name::init()'],['../classehm__dal_1_1schema_1_1_nation.html#a02d6885035ed5acdb2e60828a32a6ea0',1,'ehm_dal::schema::Nation::init()'],['../classehm__dal_1_1schema_1_1_person.html#a1ae7461b0d2a1c7c225ef9de509dbb9b',1,'ehm_dal::schema::Person::init()'],['../classehm__dal_1_1schema_1_1_draft_history.html#a98ae1b23fa195e770bbc2127bb8a3559',1,'ehm_dal::schema::DraftHistory::init()'],['../classehm__dal_1_1schema_1_1_non_player_data.html#a5dc2f6a5bf464b57592d2d5b45472403',1,'ehm_dal::schema::NonPlayerData::init()'],['../classehm__dal_1_1schema_1_1_player_data.html#a0793b9ac2916ab0b0b4783e998b6391c',1,'ehm_dal::schema::PlayerData::init()'],['../classehm__dal_1_1schema_1_1_player_info.html#a16b1f12d14f04d57716f7b61caa014e8',1,'ehm_dal::schema::PlayerInfo::init()'],['../classehm__dal_1_1schema_1_1_player_rights.html#a24db611a33a818e31043929f54fe4622',1,'ehm_dal::schema::PlayerRights::init()'],['../classehm__dal_1_1schema_1_1_staff_history.html#ac6dc142ce60067b6a26aeaf0441686b7',1,'ehm_dal::schema::StaffHistory::init()'],['../classehm__dal_1_1schema_1_1_staff_info.html#a9015be98c3332de48914bd77b10874ff',1,'ehm_dal::schema::StaffInfo::init()'],['../classehm__dal_1_1schema_1_1_staff_preferences.html#a357b38bf6b53b04592337385e5be0b07',1,'ehm_dal::schema::StaffPreferences::init()'],['../classehm__dal_1_1schema_1_1_staff_award.html#ac75bfdc7e83096b773c95f10bbe8a0d0',1,'ehm_dal::schema::StaffAward::init()'],['../classehm__dal_1_1schema_1_1_staff_award_history.html#a74fe4204d24d52fa6aad421ba58ff07c',1,'ehm_dal::schema::StaffAwardHistory::init()'],['../classehm__dal_1_1schema_1_1_stage_name.html#a176bcdd65e475181cb3fd3c81b256373',1,'ehm_dal::schema::StageName::init()'],['../classehm__dal_1_1schema_1_1_state.html#ad2d13af2bfd083310a8804e0c7293488',1,'ehm_dal::schema::State::init()']]], + ['injuries_7',['INJURIES',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0faa7d99f0c436057df2a55f6b088a2f34a',1,'ehm_dal::tables']]], + ['injury_8',['Injury',['../classehm__dal_1_1schema_1_1_injury.html',1,'ehm_dal::schema']]], + ['injurycolumns_9',['InjuryColumns',['../classehm__dal_1_1column__data_1_1_injury_columns.html',1,'ehm_dal::column_data']]], + ['iscached_10',['isCached',['../classehm__dal_1_1column__data_1_1_column.html#aa14384261b226e0a3c64652e90f1305f',1,'ehm_dal::column_data::Column::isCached()'],['../classehm__dal_1_1column__data_1_1_column_data.html#a62546aa8101886cb8c0187153275b134',1,'ehm_dal::column_data::ColumnData::isCached()']]], + ['ischeckable_11',['isCheckable',['../classehm__dal_1_1column__data_1_1_column.html#af6d7543c092e6424992316007d37ea20',1,'ehm_dal::column_data::Column']]], + ['iscolourpointer_12',['isColourPointer',['../classehm__dal_1_1column__data_1_1_column.html#ad9944213926008e150b056f33fbc59f3',1,'ehm_dal::column_data::Column']]], + ['iscompressed_13',['isCompressed',['../classehm__dal_1_1saved__game_1_1_saved_game_data.html#af8e73931da06c4a44e4f3e888afd3d00',1,'ehm_dal::saved_game::SavedGameData']]], + ['iscontainer_14',['isContainer',['../classehm__dal_1_1column__data_1_1_column.html#a1e4bdb55fda47c67c4c2907e46b328d9',1,'ehm_dal::column_data::Column']]], + ['isdatabasetable_15',['isDatabaseTable',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#a724983fed432f9aee370085ffeaae648',1,'ehm_dal::saved_game::SavedGameSubFile']]], + ['isdatabasetablepointer_16',['isDatabaseTablePointer',['../classehm__dal_1_1column__data_1_1_column.html#a60819922f8ccf9744038f0688037e752',1,'ehm_dal::column_data::Column']]], + ['isflagtablepointer_17',['isFlagTablePointer',['../classehm__dal_1_1column__data_1_1_column.html#a849889379c475f762d7b406c9a93adee',1,'ehm_dal::column_data::Column']]], + ['isidenticalto_18',['isIdenticalTo',['../classehm__dal_1_1data__types_1_1_string.html#a0001c5d128dc76244c8eb1a263a10af7',1,'ehm_dal::data_types::String']]], + ['isinitialised_19',['isInitialised',['../classehm__dal_1_1column__data_1_1_column_data.html#ade35114488339007f9f58fb79a019251',1,'ehm_dal::column_data::ColumnData']]], + ['isinvalid_20',['isInvalid',['../classehm__dal_1_1data__types_1_1_year.html#a050e5a9a2f548c06acaf4eafc75460bd',1,'ehm_dal::data_types::Year']]], + ['ismodifiedbydbxfer_21',['IsModifiedByDbXfer',['../classehm__dal_1_1column__data_1_1_column_data.html#a7a34ef7df82b9ce07eb2fe4c836a5281a3090bb9486f59500f5094559bfac2110',1,'ehm_dal::column_data::ColumnData']]], + ['isnamestringpointer_22',['isNameStringPointer',['../classehm__dal_1_1column__data_1_1_column.html#ae304e3c01f52779ff7829ddb8d5a17e1',1,'ehm_dal::column_data::Column']]], + ['isnone_23',['isNone',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#af7b6a7cf73dd60335db8371aa1469169',1,'ehm_dal::data_types::AbstractPointer']]], + ['isopen_24',['isOpen',['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#ada616ff83e773a84ac03d953207cad0e',1,'ehm_dal::file_io::AbstractFileManager']]], + ['ispointer_25',['isPointer',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#ab653fcea6ca16f1c2661b32a1962a8df',1,'ehm_dal::data_types::AbstractPointer']]], + ['ispointerlist_26',['isPointerList',['../classehm__dal_1_1column__data_1_1_column.html#a9e622a6302ac8bc3fd96417f05d55a5f',1,'ehm_dal::column_data::Column']]], + ['israwpointer_27',['isRawPointer',['../classehm__dal_1_1column__data_1_1_column.html#aa213637e952ef66112c0b5769f8185f9',1,'ehm_dal::column_data::Column']]], + ['isreadonly_28',['isReadOnly',['../classehm__dal_1_1column__data_1_1_column.html#a621f36edebcb2532cabf0af67be22515',1,'ehm_dal::column_data::Column']]], + ['issaved_29',['isSaved',['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#a3107c69b78d5dc92d2d76cf788b21bdc',1,'ehm_dal::file_io::AbstractFileManager']]], + ['issortable_30',['isSortable',['../classehm__dal_1_1column__data_1_1_column_data.html#a00bd7247ec8124f1391d90c0b88dc37c',1,'ehm_dal::column_data::ColumnData']]], + ['isvalid_31',['isValid',['../classehm__dal_1_1column__data_1_1_column_data.html#aa9951c5f7f20b1c214447524ced833a3',1,'ehm_dal::column_data::ColumnData::isValid()'],['../classehm__dal_1_1data__types_1_1_year.html#ad194febdc160c44246e336847affbe60',1,'ehm_dal::data_types::Year::isValid()']]], + ['isvalidpointer_32',['isValidPointer',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#add334e4650fc186dbc59f05aa1264f26',1,'ehm_dal::data_types::AbstractPointer']]], + ['isvalidtable_33',['isValidTable',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#a37e6f5e3c915cd9227dc5213937b4a91',1,'ehm_dal::data_types::AbstractPointer']]], + ['iswithinrange_34',['isWithinRange',['../classehm__dal_1_1data__types_1_1_year.html#a804fed12f49b35760d52c241b55b0e30',1,'ehm_dal::data_types::Year']]] ]; diff --git a/docs/search/all_a.js b/docs/search/all_a.js index 78b943c..86cd77d 100644 --- a/docs/search/all_a.js +++ b/docs/search/all_a.js @@ -8,11 +8,12 @@ var searchData= ['nation_5',['Nation',['../classehm__dal_1_1schema_1_1_nation.html',1,'ehm_dal::schema']]], ['nationcolumns_6',['NationColumns',['../classehm__dal_1_1column__data_1_1_nation_columns.html',1,'ehm_dal::column_data']]], ['nations_7',['NATIONS',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa085c21a07e61c0a1d7e90932e911cb40',1,'ehm_dal::tables']]], - ['no_5fminimum_5fversion_8',['NO_MINIMUM_VERSION',['../classehm__dal_1_1database_1_1_database_version.html#aeb4bcef6e023a7604657b193ac9baa9eaf994ebbbcc48f83fcd3d9d6e4929abe2',1,'ehm_dal::database::DatabaseVersion']]], - ['no_5ftable_9',['NO_TABLE',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa73f9948b11ea108c7dbc2d2fe4c04eb5',1,'ehm_dal::tables']]], - ['no_5fversion_10',['NO_VERSION',['../classehm__dal_1_1database_1_1_database_version.html#aeb4bcef6e023a7604657b193ac9baa9ead50a9e9c9de4f96ddc0f9ca3eae61d47',1,'ehm_dal::database::DatabaseVersion']]], - ['non_5fplayer_5fdata_11',['NON_PLAYER_DATA',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fae023fcd974d32623257616680ccb8f51',1,'ehm_dal::tables']]], - ['nonplayerdata_12',['NonPlayerData',['../classehm__dal_1_1schema_1_1_non_player_data.html',1,'ehm_dal::schema']]], - ['nonplayerdatacolumns_13',['NonPlayerDataColumns',['../classehm__dal_1_1column__data_1_1_non_player_data_columns.html',1,'ehm_dal::column_data']]], - ['null_5fpointer_14',['NULL_POINTER',['../namespaceehm__dal_1_1data__types.html#a54c09715f7d7cf9ef9069a945a5afe04a1799e162c4533c16105f8d015d6eba11',1,'ehm_dal::data_types']]] + ['newspreadsheet_8',['newSpreadsheet',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#abf2158dbb4aef3d3cf57541d919c030f',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['no_5fminimum_5fversion_9',['NO_MINIMUM_VERSION',['../classehm__dal_1_1database_1_1_database_version.html#aeb4bcef6e023a7604657b193ac9baa9eaf994ebbbcc48f83fcd3d9d6e4929abe2',1,'ehm_dal::database::DatabaseVersion']]], + ['no_5ftable_10',['NO_TABLE',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa73f9948b11ea108c7dbc2d2fe4c04eb5',1,'ehm_dal::tables']]], + ['no_5fversion_11',['NO_VERSION',['../classehm__dal_1_1database_1_1_database_version.html#aeb4bcef6e023a7604657b193ac9baa9ead50a9e9c9de4f96ddc0f9ca3eae61d47',1,'ehm_dal::database::DatabaseVersion']]], + ['non_5fplayer_5fdata_12',['NON_PLAYER_DATA',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fae023fcd974d32623257616680ccb8f51',1,'ehm_dal::tables']]], + ['nonplayerdata_13',['NonPlayerData',['../classehm__dal_1_1schema_1_1_non_player_data.html',1,'ehm_dal::schema']]], + ['nonplayerdatacolumns_14',['NonPlayerDataColumns',['../classehm__dal_1_1column__data_1_1_non_player_data_columns.html',1,'ehm_dal::column_data']]], + ['null_5fpointer_15',['NULL_POINTER',['../namespaceehm__dal_1_1data__types.html#a54c09715f7d7cf9ef9069a945a5afe04a1799e162c4533c16105f8d015d6eba11',1,'ehm_dal::data_types']]] ]; diff --git a/docs/search/all_b.js b/docs/search/all_b.js index 2ef9375..d9f9580 100644 --- a/docs/search/all_b.js +++ b/docs/search/all_b.js @@ -3,5 +3,5 @@ var searchData= ['official_0',['Official',['../classehm__dal_1_1schema_1_1_official.html',1,'ehm_dal::schema']]], ['officialcolumns_1',['OfficialColumns',['../classehm__dal_1_1column__data_1_1_official_columns.html',1,'ehm_dal::column_data']]], ['officials_2',['OFFICIALS',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0faef4054619cf6e64e6757eda0cf3af612',1,'ehm_dal::tables']]], - ['open_3',['open',['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#ae3a313bd163c4c0581b38b938375de8a',1,'ehm_dal::file_io::AbstractFileManager::open(const QString &path)'],['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#a810d9a82f5fd9c47828d40ec760f55ad',1,'ehm_dal::file_io::AbstractFileManager::open(QWidget *parent=nullptr)']]] + ['open_3',['open',['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#ae3a313bd163c4c0581b38b938375de8a',1,'ehm_dal::file_io::AbstractFileManager::open(const QString &path)'],['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#a810d9a82f5fd9c47828d40ec760f55ad',1,'ehm_dal::file_io::AbstractFileManager::open(QWidget *parent=nullptr)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#af386628bfcc5f24009c3068680170948',1,'ehm_dal::spreadsheet::Spreadsheet::open(const QString &file_path)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad0197013e0b271d5bb7c93e2564e1989',1,'ehm_dal::spreadsheet::Spreadsheet::open(const QString &folder, const QString &file_name)']]] ]; diff --git a/docs/search/all_c.js b/docs/search/all_c.js index 44ca9e4..fd1f37a 100644 --- a/docs/search/all_c.js +++ b/docs/search/all_c.js @@ -1,6 +1,6 @@ var searchData= [ - ['parentitemid_0',['parentItemId',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#ae4d962223f547c70de05d64e8a99c12f',1,'ehm_dal::data_types::AbstractPointer::parentItemId()'],['../classehm__dal_1_1schema_1_1_club_history.html#ae80190d8c8634fa371300657a33493fc',1,'ehm_dal::schema::ClubHistory::parentItemId()'],['../classehm__dal_1_1schema_1_1_club_records.html#aa940ea96d479a5d134709d3f1ebd68df',1,'ehm_dal::schema::ClubRecords::parentItemId()'],['../classehm__dal_1_1schema_1_1_retired_number.html#a7ec46423740ffdfeaddeb927826e988e',1,'ehm_dal::schema::RetiredNumber::parentItemId()'],['../classehm__dal_1_1schema_1_1_club_competition_history.html#ac216548e00684a2c6a6cf99c28bdecfe',1,'ehm_dal::schema::ClubCompetitionHistory::parentItemId()'],['../classehm__dal_1_1schema_1_1_draft_history.html#a2adc47b607ae87afd590533f1b577670',1,'ehm_dal::schema::DraftHistory::parentItemId()'],['../classehm__dal_1_1schema_1_1_player_info.html#afe92cb91f96ed6035be28b8ecf8900bb',1,'ehm_dal::schema::PlayerInfo::parentItemId()'],['../classehm__dal_1_1schema_1_1_player_rights.html#a6258287d9f8764265603c4b850174764',1,'ehm_dal::schema::PlayerRights::parentItemId()'],['../classehm__dal_1_1schema_1_1_staff_history.html#a6a05cfa061e06dc502e838a2290e5a3d',1,'ehm_dal::schema::StaffHistory::parentItemId()'],['../classehm__dal_1_1schema_1_1_staff_info.html#a611cf8f2ac071f295330bf97a02186a9',1,'ehm_dal::schema::StaffInfo::parentItemId()'],['../classehm__dal_1_1schema_1_1_staff_award_history.html#ac6840f6cbaeb84b372c106126832a71b',1,'ehm_dal::schema::StaffAwardHistory::parentItemId()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a098eebe384ae716e62de03a8a2cdf0e2',1,'ehm_dal::schema::AbstractTableItem::parentItemId()']]], + ['parentitemid_0',['parentItemId',['../classehm__dal_1_1schema_1_1_club_competition_history.html#ac216548e00684a2c6a6cf99c28bdecfe',1,'ehm_dal::schema::ClubCompetitionHistory::parentItemId()'],['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#ae4d962223f547c70de05d64e8a99c12f',1,'ehm_dal::data_types::AbstractPointer::parentItemId()'],['../classehm__dal_1_1schema_1_1_club_history.html#ae80190d8c8634fa371300657a33493fc',1,'ehm_dal::schema::ClubHistory::parentItemId()'],['../classehm__dal_1_1schema_1_1_club_records.html#aa940ea96d479a5d134709d3f1ebd68df',1,'ehm_dal::schema::ClubRecords::parentItemId()'],['../classehm__dal_1_1schema_1_1_retired_number.html#a7ec46423740ffdfeaddeb927826e988e',1,'ehm_dal::schema::RetiredNumber::parentItemId()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a098eebe384ae716e62de03a8a2cdf0e2',1,'ehm_dal::schema::AbstractTableItem::parentItemId()'],['../classehm__dal_1_1schema_1_1_staff_award_history.html#ac6840f6cbaeb84b372c106126832a71b',1,'ehm_dal::schema::StaffAwardHistory::parentItemId()'],['../classehm__dal_1_1schema_1_1_staff_info.html#a611cf8f2ac071f295330bf97a02186a9',1,'ehm_dal::schema::StaffInfo::parentItemId()'],['../classehm__dal_1_1schema_1_1_staff_history.html#a6a05cfa061e06dc502e838a2290e5a3d',1,'ehm_dal::schema::StaffHistory::parentItemId()'],['../classehm__dal_1_1schema_1_1_player_rights.html#a6258287d9f8764265603c4b850174764',1,'ehm_dal::schema::PlayerRights::parentItemId()'],['../classehm__dal_1_1schema_1_1_player_info.html#afe92cb91f96ed6035be28b8ecf8900bb',1,'ehm_dal::schema::PlayerInfo::parentItemId()'],['../classehm__dal_1_1schema_1_1_draft_history.html#a2adc47b607ae87afd590533f1b577670',1,'ehm_dal::schema::DraftHistory::parentItemId()']]], ['person_1',['Person',['../classehm__dal_1_1schema_1_1_person.html',1,'ehm_dal::schema']]], ['personcolumns_2',['PersonColumns',['../classehm__dal_1_1column__data_1_1_person_columns.html',1,'ehm_dal::column_data']]], ['player_5fdata_3',['PLAYER_DATA',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0faa4e994a8ced29aee2699b388710eab78',1,'ehm_dal::tables']]], @@ -19,6 +19,6 @@ var searchData= ['pointerflags_16',['PointerFlags',['../namespaceehm__dal_1_1data__types.html#a54c09715f7d7cf9ef9069a945a5afe04',1,'ehm_dal::data_types']]], ['potential_5fability_5frandom_5fvalues_17',['POTENTIAL_ABILITY_RANDOM_VALUES',['../classehm__dal_1_1data__types_1_1_potential_ability.html#a243549de8fb4ca80032dc56fbc303a09',1,'ehm_dal::data_types::PotentialAbility']]], ['potentialability_18',['PotentialAbility',['../classehm__dal_1_1data__types_1_1_potential_ability.html',1,'ehm_dal::data_types']]], - ['printdiagnosticdata_19',['printDiagnosticData',['../classehm__dal_1_1database_1_1_database_version.html#a661de7564d9390d3052a39034e2ceef0',1,'ehm_dal::database::DatabaseVersion']]], + ['printdiagnosticdata_19',['printDiagnosticData',['../classehm__dal_1_1database_1_1_database_version.html#a661de7564d9390d3052a39034e2ceef0',1,'ehm_dal::database::DatabaseVersion::printDiagnosticData()'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#acc7007fc094de7a45e327be4367ad1ab',1,'ehm_dal::spreadsheet::Spreadsheet::printDiagnosticData()']]], ['progressdialog_20',['ProgressDialog',['../classehm__dal_1_1widgets_1_1_progress_dialog.html',1,'ehm_dal::widgets']]] ]; diff --git a/docs/search/all_d.js b/docs/search/all_d.js index 68644a9..593a3e5 100644 --- a/docs/search/all_d.js +++ b/docs/search/all_d.js @@ -1,7 +1,7 @@ var searchData= [ ['raw_5fpointer_0',['RAW_POINTER',['../classehm__dal_1_1column__data_1_1_column.html#a86e5e031236a5d521eab21ae052064b3af8b2d90454f9006f91dc5319a592f442',1,'ehm_dal::column_data::Column']]], - ['read_1',['read',['../classehm__dal_1_1_database.html#a9409389c6cdd6b19bdbc49d3f9713ee3',1,'ehm_dal::Database::read()'],['../classehm__dal_1_1schema_1_1_state.html#a340552e839120d777af663615c2a9920',1,'ehm_dal::schema::State::read()'],['../classehm__dal_1_1saved__game_1_1_saved_game_data.html#a2fc48f788de995bfea6053367f10148d',1,'ehm_dal::saved_game::SavedGameData::read()'],['../classehm__dal_1_1_saved_game.html#a155a1f76185f19fc60cc50fbb9451582',1,'ehm_dal::SavedGame::read()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a74ae9eef14206dd9ea2ddd53e0f683c9',1,'ehm_dal::schema::AbstractTableItem::read()'],['../classehm__dal_1_1_database.html#a40f87a4f6f8a3d8797c43c943d06676e',1,'ehm_dal::Database::read()'],['../classehm__dal_1_1schema_1_1_club_records.html#a7a2a363fdc0c7b1b3d03669be98bb3f2',1,'ehm_dal::schema::ClubRecords::read()'],['../classehm__dal_1_1_database.html#a61b9a3588e3879603db5544da4360517',1,'ehm_dal::Database::read()'],['../classehm__dal_1_1schema_1_1_affiliation.html#a17b8953b1c76c44b04256368c67de971',1,'ehm_dal::schema::Affiliation::read()'],['../classehm__dal_1_1schema_1_1_arena.html#a84730f7db41703331260774115798233',1,'ehm_dal::schema::Arena::read()'],['../classehm__dal_1_1schema_1_1_city.html#a7b56f55eabdb4ef97df7e9e5c1ea4f63',1,'ehm_dal::schema::City::read()'],['../classehm__dal_1_1schema_1_1_club.html#a4d7a80fa98fb0b5e8b120b6549e61f54',1,'ehm_dal::schema::Club::read()'],['../classehm__dal_1_1schema_1_1_club_history.html#a06b2486d21949d0add3948722b6d8af5',1,'ehm_dal::schema::ClubHistory::read()'],['../classehm__dal_1_1tables_1_1_abstract_table.html#ac6eb6577b9a2cc626e15ef159fefaf53',1,'ehm_dal::tables::AbstractTable::read()'],['../classehm__dal_1_1schema_1_1_retired_number.html#a86b931276ed63f371b6f3d79475c64fa',1,'ehm_dal::schema::RetiredNumber::read()'],['../classehm__dal_1_1schema_1_1_club_competition.html#afce950c661aa4b88f117f667b9b0ca30',1,'ehm_dal::schema::ClubCompetition::read()'],['../classehm__dal_1_1schema_1_1_club_competition_history.html#acf15d4e4e84c78dcc8d2f46ccfb31e37',1,'ehm_dal::schema::ClubCompetitionHistory::read()'],['../classehm__dal_1_1schema_1_1_colour.html#a05e5f28d60be33cb0b3a36e063e8aa6b',1,'ehm_dal::schema::Colour::read()'],['../classehm__dal_1_1schema_1_1_continent.html#abccb3846be13892e4f02072b02b091ce',1,'ehm_dal::schema::Continent::read()'],['../classehm__dal_1_1schema_1_1_currency.html#a8d390dbfcbb0aec02be89028998f5690',1,'ehm_dal::schema::Currency::read()'],['../classehm__dal_1_1schema_1_1_database_header.html#a36797fb387daed82e69343e611eae350',1,'ehm_dal::schema::DatabaseHeader::read()'],['../classehm__dal_1_1schema_1_1_draft.html#a14884759c0717996fd42ef673922d598',1,'ehm_dal::schema::Draft::read()'],['../classehm__dal_1_1schema_1_1_game_basic_data.html#a39dedb3d9e399650a49be130a534f1d3',1,'ehm_dal::schema::GameBasicData::read()'],['../classehm__dal_1_1schema_1_1_injury.html#a83b8986ea6d8b4c7e18431edc34fca89',1,'ehm_dal::schema::Injury::read()'],['../classehm__dal_1_1schema_1_1_name.html#a1e4b4127c5218c981dbf4c45bb67a77a',1,'ehm_dal::schema::Name::read()'],['../classehm__dal_1_1schema_1_1_nation.html#ac5cdbec36423fe82cdc8d05d037a87df',1,'ehm_dal::schema::Nation::read()'],['../classehm__dal_1_1schema_1_1_official.html#a2514840f45eb0cff1f39a0dfcf5cab47',1,'ehm_dal::schema::Official::read()'],['../classehm__dal_1_1schema_1_1_staff.html#ab47a20f5bd8274831b0d61ff76bfaa77',1,'ehm_dal::schema::Staff::read()'],['../classehm__dal_1_1schema_1_1_draft_history.html#a4adc7ce6d107d19eb4bd8cdc0803c7cb',1,'ehm_dal::schema::DraftHistory::read()'],['../classehm__dal_1_1schema_1_1_non_player_data.html#a2e0548e989cbeaa67f2a9a8bf93508da',1,'ehm_dal::schema::NonPlayerData::read()'],['../classehm__dal_1_1schema_1_1_player_data.html#ac97d7ea55defb41f5cc552000f98c381',1,'ehm_dal::schema::PlayerData::read()'],['../classehm__dal_1_1schema_1_1_player_info.html#abbeffeeb924343979216545603d728da',1,'ehm_dal::schema::PlayerInfo::read()'],['../classehm__dal_1_1schema_1_1_player_rights.html#a1d4d81aa91fb6047010ec9d2d40e7aae',1,'ehm_dal::schema::PlayerRights::read()'],['../classehm__dal_1_1schema_1_1_staff_history.html#ad654550774791573c85b53c4cf50bcea',1,'ehm_dal::schema::StaffHistory::read()'],['../classehm__dal_1_1schema_1_1_staff_info.html#ab9370860c985596a3e854321ce93f993',1,'ehm_dal::schema::StaffInfo::read()'],['../classehm__dal_1_1schema_1_1_staff_preferences.html#a4ac3d01f75c5bf0c7fe5ee51dcfd43d5',1,'ehm_dal::schema::StaffPreferences::read()'],['../classehm__dal_1_1schema_1_1_staff_award.html#aa66b30512dc51a1083eb7a153b1bb7c0',1,'ehm_dal::schema::StaffAward::read()'],['../classehm__dal_1_1schema_1_1_staff_award_history.html#a95104a583a3c435380e23658bc91f729',1,'ehm_dal::schema::StaffAwardHistory::read()'],['../classehm__dal_1_1schema_1_1_stage_name.html#a5cd82b200fc50a6fa43fb5628510c898',1,'ehm_dal::schema::StageName::read()']]], + ['read_1',['read',['../classehm__dal_1_1_database.html#a61b9a3588e3879603db5544da4360517',1,'ehm_dal::Database::read()'],['../classehm__dal_1_1saved__game_1_1_saved_game_data.html#a2fc48f788de995bfea6053367f10148d',1,'ehm_dal::saved_game::SavedGameData::read()'],['../classehm__dal_1_1_saved_game.html#a155a1f76185f19fc60cc50fbb9451582',1,'ehm_dal::SavedGame::read()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a74ae9eef14206dd9ea2ddd53e0f683c9',1,'ehm_dal::schema::AbstractTableItem::read()'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a74c8abd84600dd606738ec251358dbba',1,'ehm_dal::spreadsheet::Spreadsheet::read()'],['../classehm__dal_1_1_database.html#a40f87a4f6f8a3d8797c43c943d06676e',1,'ehm_dal::Database::read(const QString &file_path)'],['../classehm__dal_1_1_database.html#a9409389c6cdd6b19bdbc49d3f9713ee3',1,'ehm_dal::Database::read(QDataStream &in)'],['../classehm__dal_1_1schema_1_1_club_competition.html#afce950c661aa4b88f117f667b9b0ca30',1,'ehm_dal::schema::ClubCompetition::read()'],['../classehm__dal_1_1schema_1_1_affiliation.html#a17b8953b1c76c44b04256368c67de971',1,'ehm_dal::schema::Affiliation::read()'],['../classehm__dal_1_1schema_1_1_arena.html#a84730f7db41703331260774115798233',1,'ehm_dal::schema::Arena::read()'],['../classehm__dal_1_1schema_1_1_city.html#a7b56f55eabdb4ef97df7e9e5c1ea4f63',1,'ehm_dal::schema::City::read()'],['../classehm__dal_1_1schema_1_1_club.html#a4d7a80fa98fb0b5e8b120b6549e61f54',1,'ehm_dal::schema::Club::read()'],['../classehm__dal_1_1schema_1_1_club_history.html#a06b2486d21949d0add3948722b6d8af5',1,'ehm_dal::schema::ClubHistory::read()'],['../classehm__dal_1_1schema_1_1_club_records.html#a7a2a363fdc0c7b1b3d03669be98bb3f2',1,'ehm_dal::schema::ClubRecords::read()'],['../classehm__dal_1_1schema_1_1_retired_number.html#a86b931276ed63f371b6f3d79475c64fa',1,'ehm_dal::schema::RetiredNumber::read()'],['../classehm__dal_1_1tables_1_1_abstract_table.html#ac6eb6577b9a2cc626e15ef159fefaf53',1,'ehm_dal::tables::AbstractTable::read()'],['../classehm__dal_1_1schema_1_1_club_competition_history.html#acf15d4e4e84c78dcc8d2f46ccfb31e37',1,'ehm_dal::schema::ClubCompetitionHistory::read()'],['../classehm__dal_1_1schema_1_1_colour.html#a05e5f28d60be33cb0b3a36e063e8aa6b',1,'ehm_dal::schema::Colour::read()'],['../classehm__dal_1_1schema_1_1_continent.html#abccb3846be13892e4f02072b02b091ce',1,'ehm_dal::schema::Continent::read()'],['../classehm__dal_1_1schema_1_1_currency.html#a8d390dbfcbb0aec02be89028998f5690',1,'ehm_dal::schema::Currency::read()'],['../classehm__dal_1_1schema_1_1_database_header.html#a36797fb387daed82e69343e611eae350',1,'ehm_dal::schema::DatabaseHeader::read()'],['../classehm__dal_1_1schema_1_1_draft.html#a14884759c0717996fd42ef673922d598',1,'ehm_dal::schema::Draft::read()'],['../classehm__dal_1_1schema_1_1_game_basic_data.html#a39dedb3d9e399650a49be130a534f1d3',1,'ehm_dal::schema::GameBasicData::read()'],['../classehm__dal_1_1schema_1_1_injury.html#a83b8986ea6d8b4c7e18431edc34fca89',1,'ehm_dal::schema::Injury::read()'],['../classehm__dal_1_1schema_1_1_name.html#a1e4b4127c5218c981dbf4c45bb67a77a',1,'ehm_dal::schema::Name::read()'],['../classehm__dal_1_1schema_1_1_nation.html#ac5cdbec36423fe82cdc8d05d037a87df',1,'ehm_dal::schema::Nation::read()'],['../classehm__dal_1_1schema_1_1_official.html#a2514840f45eb0cff1f39a0dfcf5cab47',1,'ehm_dal::schema::Official::read()'],['../classehm__dal_1_1schema_1_1_staff.html#ab47a20f5bd8274831b0d61ff76bfaa77',1,'ehm_dal::schema::Staff::read()'],['../classehm__dal_1_1schema_1_1_draft_history.html#a4adc7ce6d107d19eb4bd8cdc0803c7cb',1,'ehm_dal::schema::DraftHistory::read()'],['../classehm__dal_1_1schema_1_1_non_player_data.html#a2e0548e989cbeaa67f2a9a8bf93508da',1,'ehm_dal::schema::NonPlayerData::read()'],['../classehm__dal_1_1schema_1_1_player_data.html#ac97d7ea55defb41f5cc552000f98c381',1,'ehm_dal::schema::PlayerData::read()'],['../classehm__dal_1_1schema_1_1_player_info.html#abbeffeeb924343979216545603d728da',1,'ehm_dal::schema::PlayerInfo::read()'],['../classehm__dal_1_1schema_1_1_player_rights.html#a1d4d81aa91fb6047010ec9d2d40e7aae',1,'ehm_dal::schema::PlayerRights::read()'],['../classehm__dal_1_1schema_1_1_staff_history.html#ad654550774791573c85b53c4cf50bcea',1,'ehm_dal::schema::StaffHistory::read()'],['../classehm__dal_1_1schema_1_1_staff_info.html#ab9370860c985596a3e854321ce93f993',1,'ehm_dal::schema::StaffInfo::read()'],['../classehm__dal_1_1schema_1_1_staff_preferences.html#a4ac3d01f75c5bf0c7fe5ee51dcfd43d5',1,'ehm_dal::schema::StaffPreferences::read()'],['../classehm__dal_1_1schema_1_1_staff_award.html#aa66b30512dc51a1083eb7a153b1bb7c0',1,'ehm_dal::schema::StaffAward::read()'],['../classehm__dal_1_1schema_1_1_staff_award_history.html#a95104a583a3c435380e23658bc91f729',1,'ehm_dal::schema::StaffAwardHistory::read()'],['../classehm__dal_1_1schema_1_1_stage_name.html#a5cd82b200fc50a6fa43fb5628510c898',1,'ehm_dal::schema::StageName::read()'],['../classehm__dal_1_1schema_1_1_state.html#a340552e839120d777af663615c2a9920',1,'ehm_dal::schema::State::read()']]], ['read_5fonly_2',['READ_ONLY',['../classehm__dal_1_1column__data_1_1_column.html#a86e5e031236a5d521eab21ae052064b3a93bd5e414c620be1976c799e58955d65',1,'ehm_dal::column_data::Column']]], ['readchararray_3',['readCharArray',['../classehm__dal_1_1data__types_1_1_string.html#ada8a49f852b874f92ab8e7dfc132216d',1,'ehm_dal::data_types::String']]], ['readdata_4',['readData',['../classehm__dal_1_1tables_1_1_abstract_table.html#aeb8b7a12ce65f5fd2ef52c1fca816d08',1,'ehm_dal::tables::AbstractTable']]], @@ -21,5 +21,6 @@ var searchData= ['retirednumber_18',['RetiredNumber',['../classehm__dal_1_1schema_1_1_retired_number.html',1,'ehm_dal::schema']]], ['retirednumbercolumns_19',['RetiredNumberColumns',['../classehm__dal_1_1column__data_1_1_retired_number_columns.html',1,'ehm_dal::column_data']]], ['roundeddecimal_20',['roundedDecimal',['../classehm__dal_1_1data__types_1_1_data_type.html#a8bc781d2479632c1742177106ce6f953',1,'ehm_dal::data_types::DataType']]], - ['rowcount_21',['rowCount',['../classehm__dal_1_1tables_1_1_abstract_table.html#a5a6cf2ae6dadc2c3fb435b532a88d41b',1,'ehm_dal::tables::AbstractTable']]] + ['row_21',['row',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aaf816e56b59790686f0f03f5faa84d5a',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['rowcount_22',['rowCount',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a09c399aab7c9b758f8541b4a34ad17ba',1,'ehm_dal::spreadsheet::Spreadsheet::rowCount()'],['../classehm__dal_1_1tables_1_1_abstract_table.html#a5a6cf2ae6dadc2c3fb435b532a88d41b',1,'ehm_dal::tables::AbstractTable::rowCount()']]] ]; diff --git a/docs/search/all_e.js b/docs/search/all_e.js index fc79665..d37f0b3 100644 --- a/docs/search/all_e.js +++ b/docs/search/all_e.js @@ -1,59 +1,65 @@ var searchData= [ - ['save_0',['save',['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#a9dbd8e0bc964d6c8f864df16b482343e',1,'ehm_dal::file_io::AbstractFileManager']]], + ['save_0',['save',['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#a9dbd8e0bc964d6c8f864df16b482343e',1,'ehm_dal::file_io::AbstractFileManager::save()'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a6f976d76532f0eb547ab4e440a306f15',1,'ehm_dal::spreadsheet::Spreadsheet::save()']]], ['saveas_1',['saveAs',['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#a823c67d292144f03847dca1e9fd4206e',1,'ehm_dal::file_io::AbstractFileManager']]], ['saved_5fgame_5ftable_2',['SAVED_GAME_TABLE',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fae4bea58ba6dc6647caaf96c5e86628f8',1,'ehm_dal::tables']]], ['savedgame_3',['SavedGame',['../classehm__dal_1_1_saved_game.html',1,'ehm_dal::SavedGame'],['../classehm__dal_1_1_saved_game.html#a08b047bbf3ecb95f8aac9e6a93044e65',1,'ehm_dal::SavedGame::SavedGame()']]], ['savedgamedata_4',['SavedGameData',['../classehm__dal_1_1saved__game_1_1_saved_game_data.html',1,'ehm_dal::saved_game::SavedGameData'],['../classehm__dal_1_1saved__game_1_1_saved_game_data.html#ad8561bc839098b28fcd67909795dcfdf',1,'ehm_dal::saved_game::SavedGameData::SavedGameData()']]], - ['savedgamesubfile_5',['SavedGameSubFile',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html',1,'ehm_dal::saved_game::SavedGameSubFile'],['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#a88037dc145d2a3ca5ff4af94fbaf7656',1,'ehm_dal::saved_game::SavedGameSubFile::SavedGameSubFile()']]], - ['savedgametable_6',['SavedGameTable',['../classehm__dal_1_1saved__game_1_1_saved_game_table.html',1,'ehm_dal::saved_game']]], - ['scheduleclub_7',['ScheduleClub',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_club.html',1,'ehm_dal::tools::schedule_template_generator']]], - ['schedulegame_8',['ScheduleGame',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_game.html',1,'ehm_dal::tools::schedule_template_generator']]], - ['schedulegametable_9',['ScheduleGameTable',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_game_table.html',1,'ehm_dal::tools::schedule_template_generator']]], - ['schedulematrix_10',['ScheduleMatrix',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_matrix.html',1,'ehm_dal::tools::schedule_template_generator']]], - ['scheduleround_11',['ScheduleRound',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_round.html',1,'ehm_dal::tools::schedule_template_generator']]], - ['schedulerounddata_12',['ScheduleRoundData',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_round_data.html',1,'ehm_dal::tools::schedule_template_generator']]], - ['scheduletemplategenerator_13',['ScheduleTemplateGenerator',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_template_generator.html',1,'ehm_dal::tools::schedule_template_generator']]], - ['second_5fnames_14',['SECOND_NAMES',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa041501cd3745eae9db0b2c2c779baf7b',1,'ehm_dal::tables']]], - ['set_15',['set',['../classehm__dal_1_1data__types_1_1_date.html#a386b93bf45063e69f1f2244fce4c13f3',1,'ehm_dal::data_types::Date']]], - ['setcachecomplete_16',['setCacheComplete',['../classehm__dal_1_1column__data_1_1_column_data.html#ad317e6228be474a0eac25bfb2e520703',1,'ehm_dal::column_data::ColumnData']]], - ['setchilddata_17',['setChildData',['../classehm__dal_1_1schema_1_1_staff_award.html#ad06a3ecd2b53843fabdafd81ed5c27e8',1,'ehm_dal::schema::StaffAward::setChildData()'],['../classehm__dal_1_1schema_1_1_club.html#a8fe7698f15ed4d39a63e3ad995014eb8',1,'ehm_dal::schema::Club::setChildData()'],['../classehm__dal_1_1schema_1_1_club_competition.html#a426ed2f0da159c706ef75fd5cc055eaf',1,'ehm_dal::schema::ClubCompetition::setChildData()'],['../classehm__dal_1_1schema_1_1_staff.html#ac5e4594eea31a34b67acf2547d9cf867',1,'ehm_dal::schema::Staff::setChildData()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a65687679fe94d66e1d8b168838b5112c',1,'ehm_dal::schema::AbstractTableItem::setChildData(const QModelIndex &index, const QVariant &value, const qint32 role, std::vector< qint32 > &modified_columns, ehm_dal::column_data::ColumnData *column_data, const ehm_dal::tables::TableIndex child_table)']]], - ['setdata_18',['setData',['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a2409edd7a51de284cd006da4a3fcdd6a',1,'ehm_dal::schema::AbstractTableItem::setData()'],['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#a6a5146838c286a355e72fb28f87e65de',1,'ehm_dal::data_types::AbstractPointer::setData()'],['../classehm__dal_1_1schema_1_1_club_records.html#a18510266628e6f8c674130fa9f02a00b',1,'ehm_dal::schema::ClubRecords::setData()'],['../classehm__dal_1_1data__types_1_1_data_type.html#afc80377b74b49ac2ffa72a7498cfe523',1,'ehm_dal::data_types::DataType::setData()'],['../classehm__dal_1_1data__types_1_1_abstract_data_type.html#a1d71d7fd40c3c389000f23da1013ddcc',1,'ehm_dal::data_types::AbstractDataType::setData()'],['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#a014f791a94a289889de221f12043704e',1,'ehm_dal::data_types::AbstractPointer::setData()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#ad9bfb0be6d9813a8299cde09774bcf15',1,'ehm_dal::schema::AbstractTableItem::setData()']]], - ['setiflater_19',['setIfLater',['../classehm__dal_1_1data__types_1_1_year.html#af87859a23280e08cb583e45ec70335c1',1,'ehm_dal::data_types::Year']]], - ['settings_20',['Settings',['../classehm__dal_1_1settings_1_1_settings.html',1,'ehm_dal::settings']]], - ['setvalue_21',['setValue',['../classehm__dal_1_1data__types_1_1_data_type.html#af273efac20e4ef8dff407c8e31ef74e4',1,'ehm_dal::data_types::DataType']]], - ['setversion_22',['setVersion',['../classehm__dal_1_1database_1_1_database_version.html#a84e0df5c3eb537131b7cf0cbcdcf101b',1,'ehm_dal::database::DatabaseVersion']]], - ['size_23',['size',['../classehm__dal_1_1data__types_1_1_string.html#a08a259cb852e3212b47b1839106ef0f6',1,'ehm_dal::data_types::String']]], - ['sortable_5ftable_24',['SORTABLE_TABLE',['../classehm__dal_1_1column__data_1_1_column_data.html#a32d4f7563bcc42a1399e5992000f5002a4c216690f873359229519fad8b73b339',1,'ehm_dal::column_data::ColumnData']]], - ['spreadsheet_25',['Spreadsheet',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html',1,'ehm_dal::spreadsheet']]], - ['spreadsheetfile_26',['SpreadsheetFile',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet_file.html',1,'ehm_dal::spreadsheet']]], - ['spreadsheetfilecsv_27',['SpreadsheetFileCsv',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet_file_csv.html',1,'ehm_dal::spreadsheet']]], - ['spreadsheetfilexlsx_28',['SpreadsheetFileXlsx',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet_file_xlsx.html',1,'ehm_dal::spreadsheet']]], - ['staff_29',['Staff',['../classehm__dal_1_1schema_1_1_staff.html',1,'ehm_dal::schema']]], - ['staff_30',['STAFF',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa8e2ef94cad245adb8089356242f49e55',1,'ehm_dal::tables']]], - ['staff_5faward_5fhistory_31',['STAFF_AWARD_HISTORY',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa5b288a0def283e58bada78cfdc088563',1,'ehm_dal::tables']]], - ['staff_5fawards_32',['STAFF_AWARDS',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa1e9dbd84fc1954ded9cb87f4d733e695',1,'ehm_dal::tables']]], - ['staff_5fhistory_33',['STAFF_HISTORY',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa4e65ceb8a8f65044f949806a7a780b38',1,'ehm_dal::tables']]], - ['staff_5finfo_34',['STAFF_INFO',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa161558938b6e9f31754b262162181d7b',1,'ehm_dal::tables']]], - ['staff_5fpreferences_35',['STAFF_PREFERENCES',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa45a71a2c3af9c060e1e7e0eedc5f7752',1,'ehm_dal::tables']]], - ['staffaward_36',['StaffAward',['../classehm__dal_1_1schema_1_1_staff_award.html',1,'ehm_dal::schema']]], - ['staffawardcolumns_37',['StaffAwardColumns',['../classehm__dal_1_1column__data_1_1_staff_award_columns.html',1,'ehm_dal::column_data']]], - ['staffawardhistory_38',['StaffAwardHistory',['../classehm__dal_1_1schema_1_1_staff_award_history.html',1,'ehm_dal::schema']]], - ['staffawardhistorycolumns_39',['StaffAwardHistoryColumns',['../classehm__dal_1_1column__data_1_1_staff_award_history_columns.html',1,'ehm_dal::column_data']]], - ['staffcolumns_40',['StaffColumns',['../classehm__dal_1_1column__data_1_1_staff_columns.html',1,'ehm_dal::column_data']]], - ['staffhistory_41',['StaffHistory',['../classehm__dal_1_1schema_1_1_staff_history.html',1,'ehm_dal::schema']]], - ['staffhistorycolumns_42',['StaffHistoryColumns',['../classehm__dal_1_1column__data_1_1_staff_history_columns.html',1,'ehm_dal::column_data']]], - ['staffinfo_43',['StaffInfo',['../classehm__dal_1_1schema_1_1_staff_info.html',1,'ehm_dal::schema']]], - ['staffinfocolumns_44',['StaffInfoColumns',['../classehm__dal_1_1column__data_1_1_staff_info_columns.html',1,'ehm_dal::column_data']]], - ['staffpreferences_45',['StaffPreferences',['../classehm__dal_1_1schema_1_1_staff_preferences.html',1,'ehm_dal::schema']]], - ['staffpreferencescolumns_46',['StaffPreferencesColumns',['../classehm__dal_1_1column__data_1_1_staff_preferences_columns.html',1,'ehm_dal::column_data']]], - ['stage_5fnames_47',['STAGE_NAMES',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa88f6e50c5496fda3cd6d35e0b3f84f9e',1,'ehm_dal::tables']]], - ['stagename_48',['StageName',['../classehm__dal_1_1schema_1_1_stage_name.html',1,'ehm_dal::schema']]], - ['stagenamecolumns_49',['StageNameColumns',['../classehm__dal_1_1column__data_1_1_stage_name_columns.html',1,'ehm_dal::column_data']]], - ['standard_5ftable_50',['STANDARD_TABLE',['../namespaceehm__dal_1_1tables.html#a7cd08a7f15648c9874b9d53345402a0aa380d654841b08c9536c7f693613ed505',1,'ehm_dal::tables']]], - ['state_51',['State',['../classehm__dal_1_1schema_1_1_state.html',1,'ehm_dal::schema']]], - ['statecolumns_52',['StateColumns',['../classehm__dal_1_1column__data_1_1_state_columns.html',1,'ehm_dal::column_data']]], - ['states_53',['STATES',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa0e998de7ed09453a83842cf9872bbfd9',1,'ehm_dal::tables']]], - ['string_54',['String',['../classehm__dal_1_1data__types_1_1_string.html',1,'ehm_dal::data_types::String'],['../classehm__dal_1_1data__types_1_1_string.html#ae5ee99dc52e9297760916fd0b7978ef0',1,'ehm_dal::data_types::String::String()'],['../classehm__dal_1_1data__types_1_1_string.html#ae40743cfaf3aa49b62ea0f99e9767558',1,'ehm_dal::data_types::String::String(const QString &text)']]], - ['subheadingtext_55',['SubHeadingText',['../classehm__dal_1_1column__data_1_1_column_data.html#a7a34ef7df82b9ce07eb2fe4c836a5281a5327d058976cacae460d7288f4af7937',1,'ehm_dal::column_data::ColumnData']]] + ['savedgamefilemanager_5',['SavedGameFileManager',['../classehm__dal_1_1file__io_1_1_saved_game_file_manager.html',1,'ehm_dal::file_io']]], + ['savedgamesubfile_6',['SavedGameSubFile',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html',1,'ehm_dal::saved_game::SavedGameSubFile'],['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#a88037dc145d2a3ca5ff4af94fbaf7656',1,'ehm_dal::saved_game::SavedGameSubFile::SavedGameSubFile()']]], + ['savedgametable_7',['SavedGameTable',['../classehm__dal_1_1saved__game_1_1_saved_game_table.html',1,'ehm_dal::saved_game']]], + ['scheduleclub_8',['ScheduleClub',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_club.html',1,'ehm_dal::tools::schedule_template_generator']]], + ['schedulegame_9',['ScheduleGame',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_game.html',1,'ehm_dal::tools::schedule_template_generator']]], + ['schedulegametable_10',['ScheduleGameTable',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_game_table.html',1,'ehm_dal::tools::schedule_template_generator']]], + ['schedulematrix_11',['ScheduleMatrix',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_matrix.html',1,'ehm_dal::tools::schedule_template_generator']]], + ['scheduleround_12',['ScheduleRound',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_round.html',1,'ehm_dal::tools::schedule_template_generator']]], + ['schedulerounddata_13',['ScheduleRoundData',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_round_data.html',1,'ehm_dal::tools::schedule_template_generator']]], + ['scheduletemplategenerator_14',['ScheduleTemplateGenerator',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_template_generator.html',1,'ehm_dal::tools::schedule_template_generator']]], + ['second_5fnames_15',['SECOND_NAMES',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa041501cd3745eae9db0b2c2c779baf7b',1,'ehm_dal::tables']]], + ['set_16',['set',['../classehm__dal_1_1data__types_1_1_date.html#a386b93bf45063e69f1f2244fce4c13f3',1,'ehm_dal::data_types::Date']]], + ['setcachecomplete_17',['setCacheComplete',['../classehm__dal_1_1column__data_1_1_column_data.html#ad317e6228be474a0eac25bfb2e520703',1,'ehm_dal::column_data::ColumnData']]], + ['setchilddata_18',['setChildData',['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a65687679fe94d66e1d8b168838b5112c',1,'ehm_dal::schema::AbstractTableItem::setChildData()'],['../classehm__dal_1_1schema_1_1_staff_award.html#ad06a3ecd2b53843fabdafd81ed5c27e8',1,'ehm_dal::schema::StaffAward::setChildData()'],['../classehm__dal_1_1schema_1_1_staff.html#ac5e4594eea31a34b67acf2547d9cf867',1,'ehm_dal::schema::Staff::setChildData()'],['../classehm__dal_1_1schema_1_1_club_competition.html#a426ed2f0da159c706ef75fd5cc055eaf',1,'ehm_dal::schema::ClubCompetition::setChildData()'],['../classehm__dal_1_1schema_1_1_club.html#a8fe7698f15ed4d39a63e3ad995014eb8',1,'ehm_dal::schema::Club::setChildData()']]], + ['setdata_19',['setData',['../classehm__dal_1_1data__types_1_1_data_type.html#afc80377b74b49ac2ffa72a7498cfe523',1,'ehm_dal::data_types::DataType::setData()'],['../classehm__dal_1_1data__types_1_1_abstract_data_type.html#a1d71d7fd40c3c389000f23da1013ddcc',1,'ehm_dal::data_types::AbstractDataType::setData()'],['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#a014f791a94a289889de221f12043704e',1,'ehm_dal::data_types::AbstractPointer::setData()'],['../classehm__dal_1_1schema_1_1_club_records.html#a18510266628e6f8c674130fa9f02a00b',1,'ehm_dal::schema::ClubRecords::setData()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a2409edd7a51de284cd006da4a3fcdd6a',1,'ehm_dal::schema::AbstractTableItem::setData(const qint32 column, const QVariant &value, qint32 role, std::vector< qint32 > &modified_columns, ehm_dal::column_data::ColumnData *column_data)'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#ad9bfb0be6d9813a8299cde09774bcf15',1,'ehm_dal::schema::AbstractTableItem::setData(const QModelIndex &index, const QVariant &value, qint32 role, std::vector< qint32 > &modified_columns, ehm_dal::column_data::ColumnData *column_data)'],['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#a6a5146838c286a355e72fb28f87e65de',1,'ehm_dal::data_types::AbstractPointer::setData()']]], + ['setdefaultfileextension_20',['setDefaultFileExtension',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a45f06f79bd6509a1efd1cbc9d6133429',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['setfile_21',['setFile',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a88b4203ec0d5c202a98e12aef1ede281',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['setheadercount_22',['setHeaderCount',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a95e7e52a13395c4232acbe036da57df2',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['setiflater_23',['setIfLater',['../classehm__dal_1_1data__types_1_1_year.html#af87859a23280e08cb583e45ec70335c1',1,'ehm_dal::data_types::Year']]], + ['settings_24',['Settings',['../classehm__dal_1_1settings_1_1_settings.html',1,'ehm_dal::settings']]], + ['setvalue_25',['setValue',['../classehm__dal_1_1data__types_1_1_data_type.html#af273efac20e4ef8dff407c8e31ef74e4',1,'ehm_dal::data_types::DataType']]], + ['setversion_26',['setVersion',['../classehm__dal_1_1database_1_1_database_version.html#a84e0df5c3eb537131b7cf0cbcdcf101b',1,'ehm_dal::database::DatabaseVersion']]], + ['showopendialog_27',['showOpenDialog',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a775a493ff6b72a72ff231a17e03e11cc',1,'ehm_dal::spreadsheet::Spreadsheet::showOpenDialog(QString file_path=QString(), const bool read_data=true)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aedb3e27e7b1d22440660a559223047f8',1,'ehm_dal::spreadsheet::Spreadsheet::showOpenDialog(settings::FolderPath &path, const bool read_data=true)']]], + ['showsavedialog_28',['showSaveDialog',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a34dda677bc080c30db6c9b4489447715',1,'ehm_dal::spreadsheet::Spreadsheet::showSaveDialog(const QString &file_name="output.csv", QString file_path=QString())'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a6877aa5c090853ab977b5e346f0e377d',1,'ehm_dal::spreadsheet::Spreadsheet::showSaveDialog(settings::FolderPath &path)']]], + ['size_29',['size',['../classehm__dal_1_1data__types_1_1_string.html#a08a259cb852e3212b47b1839106ef0f6',1,'ehm_dal::data_types::String']]], + ['sortable_5ftable_30',['SORTABLE_TABLE',['../classehm__dal_1_1column__data_1_1_column_data.html#a32d4f7563bcc42a1399e5992000f5002a4c216690f873359229519fad8b73b339',1,'ehm_dal::column_data::ColumnData']]], + ['spreadsheet_31',['Spreadsheet',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html',1,'ehm_dal::spreadsheet']]], + ['spreadsheetfile_32',['SpreadsheetFile',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet_file.html',1,'ehm_dal::spreadsheet']]], + ['spreadsheetfilecsv_33',['SpreadsheetFileCsv',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet_file_csv.html',1,'ehm_dal::spreadsheet']]], + ['spreadsheetfilexlsx_34',['SpreadsheetFileXlsx',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet_file_xlsx.html',1,'ehm_dal::spreadsheet']]], + ['staff_35',['Staff',['../classehm__dal_1_1schema_1_1_staff.html',1,'ehm_dal::schema']]], + ['staff_36',['STAFF',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa8e2ef94cad245adb8089356242f49e55',1,'ehm_dal::tables']]], + ['staff_5faward_5fhistory_37',['STAFF_AWARD_HISTORY',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa5b288a0def283e58bada78cfdc088563',1,'ehm_dal::tables']]], + ['staff_5fawards_38',['STAFF_AWARDS',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa1e9dbd84fc1954ded9cb87f4d733e695',1,'ehm_dal::tables']]], + ['staff_5fhistory_39',['STAFF_HISTORY',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa4e65ceb8a8f65044f949806a7a780b38',1,'ehm_dal::tables']]], + ['staff_5finfo_40',['STAFF_INFO',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa161558938b6e9f31754b262162181d7b',1,'ehm_dal::tables']]], + ['staff_5fpreferences_41',['STAFF_PREFERENCES',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa45a71a2c3af9c060e1e7e0eedc5f7752',1,'ehm_dal::tables']]], + ['staffaward_42',['StaffAward',['../classehm__dal_1_1schema_1_1_staff_award.html',1,'ehm_dal::schema']]], + ['staffawardcolumns_43',['StaffAwardColumns',['../classehm__dal_1_1column__data_1_1_staff_award_columns.html',1,'ehm_dal::column_data']]], + ['staffawardhistory_44',['StaffAwardHistory',['../classehm__dal_1_1schema_1_1_staff_award_history.html',1,'ehm_dal::schema']]], + ['staffawardhistorycolumns_45',['StaffAwardHistoryColumns',['../classehm__dal_1_1column__data_1_1_staff_award_history_columns.html',1,'ehm_dal::column_data']]], + ['staffcolumns_46',['StaffColumns',['../classehm__dal_1_1column__data_1_1_staff_columns.html',1,'ehm_dal::column_data']]], + ['staffhistory_47',['StaffHistory',['../classehm__dal_1_1schema_1_1_staff_history.html',1,'ehm_dal::schema']]], + ['staffhistorycolumns_48',['StaffHistoryColumns',['../classehm__dal_1_1column__data_1_1_staff_history_columns.html',1,'ehm_dal::column_data']]], + ['staffinfo_49',['StaffInfo',['../classehm__dal_1_1schema_1_1_staff_info.html',1,'ehm_dal::schema']]], + ['staffinfocolumns_50',['StaffInfoColumns',['../classehm__dal_1_1column__data_1_1_staff_info_columns.html',1,'ehm_dal::column_data']]], + ['staffpreferences_51',['StaffPreferences',['../classehm__dal_1_1schema_1_1_staff_preferences.html',1,'ehm_dal::schema']]], + ['staffpreferencescolumns_52',['StaffPreferencesColumns',['../classehm__dal_1_1column__data_1_1_staff_preferences_columns.html',1,'ehm_dal::column_data']]], + ['stage_5fnames_53',['STAGE_NAMES',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa88f6e50c5496fda3cd6d35e0b3f84f9e',1,'ehm_dal::tables']]], + ['stagename_54',['StageName',['../classehm__dal_1_1schema_1_1_stage_name.html',1,'ehm_dal::schema']]], + ['stagenamecolumns_55',['StageNameColumns',['../classehm__dal_1_1column__data_1_1_stage_name_columns.html',1,'ehm_dal::column_data']]], + ['standard_5ftable_56',['STANDARD_TABLE',['../namespaceehm__dal_1_1tables.html#a7cd08a7f15648c9874b9d53345402a0aa380d654841b08c9536c7f693613ed505',1,'ehm_dal::tables']]], + ['state_57',['State',['../classehm__dal_1_1schema_1_1_state.html',1,'ehm_dal::schema']]], + ['statecolumns_58',['StateColumns',['../classehm__dal_1_1column__data_1_1_state_columns.html',1,'ehm_dal::column_data']]], + ['states_59',['STATES',['../namespaceehm__dal_1_1tables.html#ae533ce2154f4f1758a6f51574c0dcc0fa0e998de7ed09453a83842cf9872bbfd9',1,'ehm_dal::tables']]], + ['string_60',['String',['../classehm__dal_1_1data__types_1_1_string.html',1,'ehm_dal::data_types::String'],['../classehm__dal_1_1data__types_1_1_string.html#ae5ee99dc52e9297760916fd0b7978ef0',1,'ehm_dal::data_types::String::String()'],['../classehm__dal_1_1data__types_1_1_string.html#ae40743cfaf3aa49b62ea0f99e9767558',1,'ehm_dal::data_types::String::String(const QString &text)']]], + ['subheadingtext_61',['SubHeadingText',['../classehm__dal_1_1column__data_1_1_column_data.html#a7a34ef7df82b9ce07eb2fe4c836a5281a5327d058976cacae460d7288f4af7937',1,'ehm_dal::column_data::ColumnData']]] ]; diff --git a/docs/search/classes_c.js b/docs/search/classes_c.js index 61ee61f..0f3497c 100644 --- a/docs/search/classes_c.js +++ b/docs/search/classes_c.js @@ -2,35 +2,36 @@ var searchData= [ ['savedgame_0',['SavedGame',['../classehm__dal_1_1_saved_game.html',1,'ehm_dal']]], ['savedgamedata_1',['SavedGameData',['../classehm__dal_1_1saved__game_1_1_saved_game_data.html',1,'ehm_dal::saved_game']]], - ['savedgamesubfile_2',['SavedGameSubFile',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html',1,'ehm_dal::saved_game']]], - ['savedgametable_3',['SavedGameTable',['../classehm__dal_1_1saved__game_1_1_saved_game_table.html',1,'ehm_dal::saved_game']]], - ['scheduleclub_4',['ScheduleClub',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_club.html',1,'ehm_dal::tools::schedule_template_generator']]], - ['schedulegame_5',['ScheduleGame',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_game.html',1,'ehm_dal::tools::schedule_template_generator']]], - ['schedulegametable_6',['ScheduleGameTable',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_game_table.html',1,'ehm_dal::tools::schedule_template_generator']]], - ['schedulematrix_7',['ScheduleMatrix',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_matrix.html',1,'ehm_dal::tools::schedule_template_generator']]], - ['scheduleround_8',['ScheduleRound',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_round.html',1,'ehm_dal::tools::schedule_template_generator']]], - ['schedulerounddata_9',['ScheduleRoundData',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_round_data.html',1,'ehm_dal::tools::schedule_template_generator']]], - ['scheduletemplategenerator_10',['ScheduleTemplateGenerator',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_template_generator.html',1,'ehm_dal::tools::schedule_template_generator']]], - ['settings_11',['Settings',['../classehm__dal_1_1settings_1_1_settings.html',1,'ehm_dal::settings']]], - ['spreadsheet_12',['Spreadsheet',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html',1,'ehm_dal::spreadsheet']]], - ['spreadsheetfile_13',['SpreadsheetFile',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet_file.html',1,'ehm_dal::spreadsheet']]], - ['spreadsheetfilecsv_14',['SpreadsheetFileCsv',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet_file_csv.html',1,'ehm_dal::spreadsheet']]], - ['spreadsheetfilexlsx_15',['SpreadsheetFileXlsx',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet_file_xlsx.html',1,'ehm_dal::spreadsheet']]], - ['staff_16',['Staff',['../classehm__dal_1_1schema_1_1_staff.html',1,'ehm_dal::schema']]], - ['staffaward_17',['StaffAward',['../classehm__dal_1_1schema_1_1_staff_award.html',1,'ehm_dal::schema']]], - ['staffawardcolumns_18',['StaffAwardColumns',['../classehm__dal_1_1column__data_1_1_staff_award_columns.html',1,'ehm_dal::column_data']]], - ['staffawardhistory_19',['StaffAwardHistory',['../classehm__dal_1_1schema_1_1_staff_award_history.html',1,'ehm_dal::schema']]], - ['staffawardhistorycolumns_20',['StaffAwardHistoryColumns',['../classehm__dal_1_1column__data_1_1_staff_award_history_columns.html',1,'ehm_dal::column_data']]], - ['staffcolumns_21',['StaffColumns',['../classehm__dal_1_1column__data_1_1_staff_columns.html',1,'ehm_dal::column_data']]], - ['staffhistory_22',['StaffHistory',['../classehm__dal_1_1schema_1_1_staff_history.html',1,'ehm_dal::schema']]], - ['staffhistorycolumns_23',['StaffHistoryColumns',['../classehm__dal_1_1column__data_1_1_staff_history_columns.html',1,'ehm_dal::column_data']]], - ['staffinfo_24',['StaffInfo',['../classehm__dal_1_1schema_1_1_staff_info.html',1,'ehm_dal::schema']]], - ['staffinfocolumns_25',['StaffInfoColumns',['../classehm__dal_1_1column__data_1_1_staff_info_columns.html',1,'ehm_dal::column_data']]], - ['staffpreferences_26',['StaffPreferences',['../classehm__dal_1_1schema_1_1_staff_preferences.html',1,'ehm_dal::schema']]], - ['staffpreferencescolumns_27',['StaffPreferencesColumns',['../classehm__dal_1_1column__data_1_1_staff_preferences_columns.html',1,'ehm_dal::column_data']]], - ['stagename_28',['StageName',['../classehm__dal_1_1schema_1_1_stage_name.html',1,'ehm_dal::schema']]], - ['stagenamecolumns_29',['StageNameColumns',['../classehm__dal_1_1column__data_1_1_stage_name_columns.html',1,'ehm_dal::column_data']]], - ['state_30',['State',['../classehm__dal_1_1schema_1_1_state.html',1,'ehm_dal::schema']]], - ['statecolumns_31',['StateColumns',['../classehm__dal_1_1column__data_1_1_state_columns.html',1,'ehm_dal::column_data']]], - ['string_32',['String',['../classehm__dal_1_1data__types_1_1_string.html',1,'ehm_dal::data_types']]] + ['savedgamefilemanager_2',['SavedGameFileManager',['../classehm__dal_1_1file__io_1_1_saved_game_file_manager.html',1,'ehm_dal::file_io']]], + ['savedgamesubfile_3',['SavedGameSubFile',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html',1,'ehm_dal::saved_game']]], + ['savedgametable_4',['SavedGameTable',['../classehm__dal_1_1saved__game_1_1_saved_game_table.html',1,'ehm_dal::saved_game']]], + ['scheduleclub_5',['ScheduleClub',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_club.html',1,'ehm_dal::tools::schedule_template_generator']]], + ['schedulegame_6',['ScheduleGame',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_game.html',1,'ehm_dal::tools::schedule_template_generator']]], + ['schedulegametable_7',['ScheduleGameTable',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_game_table.html',1,'ehm_dal::tools::schedule_template_generator']]], + ['schedulematrix_8',['ScheduleMatrix',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_matrix.html',1,'ehm_dal::tools::schedule_template_generator']]], + ['scheduleround_9',['ScheduleRound',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_round.html',1,'ehm_dal::tools::schedule_template_generator']]], + ['schedulerounddata_10',['ScheduleRoundData',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_round_data.html',1,'ehm_dal::tools::schedule_template_generator']]], + ['scheduletemplategenerator_11',['ScheduleTemplateGenerator',['../classehm__dal_1_1tools_1_1schedule__template__generator_1_1_schedule_template_generator.html',1,'ehm_dal::tools::schedule_template_generator']]], + ['settings_12',['Settings',['../classehm__dal_1_1settings_1_1_settings.html',1,'ehm_dal::settings']]], + ['spreadsheet_13',['Spreadsheet',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html',1,'ehm_dal::spreadsheet']]], + ['spreadsheetfile_14',['SpreadsheetFile',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet_file.html',1,'ehm_dal::spreadsheet']]], + ['spreadsheetfilecsv_15',['SpreadsheetFileCsv',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet_file_csv.html',1,'ehm_dal::spreadsheet']]], + ['spreadsheetfilexlsx_16',['SpreadsheetFileXlsx',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet_file_xlsx.html',1,'ehm_dal::spreadsheet']]], + ['staff_17',['Staff',['../classehm__dal_1_1schema_1_1_staff.html',1,'ehm_dal::schema']]], + ['staffaward_18',['StaffAward',['../classehm__dal_1_1schema_1_1_staff_award.html',1,'ehm_dal::schema']]], + ['staffawardcolumns_19',['StaffAwardColumns',['../classehm__dal_1_1column__data_1_1_staff_award_columns.html',1,'ehm_dal::column_data']]], + ['staffawardhistory_20',['StaffAwardHistory',['../classehm__dal_1_1schema_1_1_staff_award_history.html',1,'ehm_dal::schema']]], + ['staffawardhistorycolumns_21',['StaffAwardHistoryColumns',['../classehm__dal_1_1column__data_1_1_staff_award_history_columns.html',1,'ehm_dal::column_data']]], + ['staffcolumns_22',['StaffColumns',['../classehm__dal_1_1column__data_1_1_staff_columns.html',1,'ehm_dal::column_data']]], + ['staffhistory_23',['StaffHistory',['../classehm__dal_1_1schema_1_1_staff_history.html',1,'ehm_dal::schema']]], + ['staffhistorycolumns_24',['StaffHistoryColumns',['../classehm__dal_1_1column__data_1_1_staff_history_columns.html',1,'ehm_dal::column_data']]], + ['staffinfo_25',['StaffInfo',['../classehm__dal_1_1schema_1_1_staff_info.html',1,'ehm_dal::schema']]], + ['staffinfocolumns_26',['StaffInfoColumns',['../classehm__dal_1_1column__data_1_1_staff_info_columns.html',1,'ehm_dal::column_data']]], + ['staffpreferences_27',['StaffPreferences',['../classehm__dal_1_1schema_1_1_staff_preferences.html',1,'ehm_dal::schema']]], + ['staffpreferencescolumns_28',['StaffPreferencesColumns',['../classehm__dal_1_1column__data_1_1_staff_preferences_columns.html',1,'ehm_dal::column_data']]], + ['stagename_29',['StageName',['../classehm__dal_1_1schema_1_1_stage_name.html',1,'ehm_dal::schema']]], + ['stagenamecolumns_30',['StageNameColumns',['../classehm__dal_1_1column__data_1_1_stage_name_columns.html',1,'ehm_dal::column_data']]], + ['state_31',['State',['../classehm__dal_1_1schema_1_1_state.html',1,'ehm_dal::schema']]], + ['statecolumns_32',['StateColumns',['../classehm__dal_1_1column__data_1_1_state_columns.html',1,'ehm_dal::column_data']]], + ['string_33',['String',['../classehm__dal_1_1data__types_1_1_string.html',1,'ehm_dal::data_types']]] ]; diff --git a/docs/search/functions_0.js b/docs/search/functions_0.js index b838df0..4e223b9 100644 --- a/docs/search/functions_0.js +++ b/docs/search/functions_0.js @@ -4,9 +4,14 @@ var searchData= ['abstracttable_1',['AbstractTable',['../classehm__dal_1_1tables_1_1_abstract_table.html#ab3697e60d88a641d9f6a0a402ea4ae05',1,'ehm_dal::tables::AbstractTable']]], ['abstracttableitem_2',['AbstractTableItem',['../classehm__dal_1_1schema_1_1_abstract_table_item.html#ab4fa83cbb992ffc74704901a680a3273',1,'ehm_dal::schema::AbstractTableItem']]], ['accuratedecimal_3',['accurateDecimal',['../classehm__dal_1_1data__types_1_1_data_type.html#a72f8540358b95f3d1e588c5b63430d2b',1,'ehm_dal::data_types::DataType']]], - ['add_4',['add',['../classehm__dal_1_1column__data_1_1_column_data.html#ae99a28cd789e23445be03db267cb53a7',1,'ehm_dal::column_data::ColumnData::add(const Column &column)'],['../classehm__dal_1_1column__data_1_1_column_data.html#a647e5c8c76cd19a21ad16862093ca1fd',1,'ehm_dal::column_data::ColumnData::add(const ColumnData &data)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a38faa238bc3faba8ed3ced0bfbed7b28',1,'ehm_dal::spreadsheet::Spreadsheet::add(QAbstractTableModel *model, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a9d00960e4b442ec89ab06ffa95670060',1,'ehm_dal::spreadsheet::Spreadsheet::add(QAbstractTableModel *model, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ab02261471052d0c5bb5db89b270caabd',1,'ehm_dal::spreadsheet::Spreadsheet::add(QAbstractTableModel *model, const qint32 row, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a8b201abb1ce19173990ec5bf271f4fe4',1,'ehm_dal::spreadsheet::Spreadsheet::add(QAbstractTableModel *model, const qint32 row, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a1870a89ddfadf6fee555eace128e2608',1,'ehm_dal::spreadsheet::Spreadsheet::add(const ehm_dal::data_types::Pointer &pointer, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad654fe9d88b43b04c971a78f6a59d26a',1,'ehm_dal::spreadsheet::Spreadsheet::add(const ehm_dal::data_types::Pointer &pointer, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a562521337a397e1b7624fd97745fb427',1,'ehm_dal::spreadsheet::Spreadsheet::add(const std::vector< ehm_dal::data_types::Pointer > &pointer_list, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aa646b53c2f39a7c593f94bec7d2e74b7',1,'ehm_dal::spreadsheet::Spreadsheet::add(const std::vector< ehm_dal::data_types::Pointer > &pointer_list, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)']]], + ['add_4',['add',['../classehm__dal_1_1column__data_1_1_column_data.html#ae99a28cd789e23445be03db267cb53a7',1,'ehm_dal::column_data::ColumnData::add(const Column &column)'],['../classehm__dal_1_1column__data_1_1_column_data.html#a647e5c8c76cd19a21ad16862093ca1fd',1,'ehm_dal::column_data::ColumnData::add(const ColumnData &data)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a9c7a640b16a389b19b1c891c9f3d2e95',1,'ehm_dal::spreadsheet::Spreadsheet::add(ehm_dal::tables::AbstractTable *model, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad7d14dc9e62032120f1fcb7b4ab46b65',1,'ehm_dal::spreadsheet::Spreadsheet::add(ehm_dal::tables::AbstractTable *model, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad6225201da43f876ab534ac46ccc460e',1,'ehm_dal::spreadsheet::Spreadsheet::add(ehm_dal::tables::AbstractTable *model, const qint32 row, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a33e87ac5adcdbc82103ba6a3f612c86c',1,'ehm_dal::spreadsheet::Spreadsheet::add(ehm_dal::tables::AbstractTable *model, const qint32 row, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a38faa238bc3faba8ed3ced0bfbed7b28',1,'ehm_dal::spreadsheet::Spreadsheet::add(QAbstractTableModel *model, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a9d00960e4b442ec89ab06ffa95670060',1,'ehm_dal::spreadsheet::Spreadsheet::add(QAbstractTableModel *model, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ab02261471052d0c5bb5db89b270caabd',1,'ehm_dal::spreadsheet::Spreadsheet::add(QAbstractTableModel *model, const qint32 row, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a8b201abb1ce19173990ec5bf271f4fe4',1,'ehm_dal::spreadsheet::Spreadsheet::add(QAbstractTableModel *model, const qint32 row, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a1870a89ddfadf6fee555eace128e2608',1,'ehm_dal::spreadsheet::Spreadsheet::add(const ehm_dal::data_types::Pointer &pointer, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad654fe9d88b43b04c971a78f6a59d26a',1,'ehm_dal::spreadsheet::Spreadsheet::add(const ehm_dal::data_types::Pointer &pointer, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a562521337a397e1b7624fd97745fb427',1,'ehm_dal::spreadsheet::Spreadsheet::add(const std::vector< ehm_dal::data_types::Pointer > &pointer_list, const Qt::ItemDataRole role=Qt::DisplayRole)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aa646b53c2f39a7c593f94bec7d2e74b7',1,'ehm_dal::spreadsheet::Spreadsheet::add(const std::vector< ehm_dal::data_types::Pointer > &pointer_list, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)']]], ['addchilditem_5',['addChildItem',['../classehm__dal_1_1schema_1_1_club.html#ad48623f6af5f6b413f0891b87e09623d',1,'ehm_dal::schema::Club::addChildItem()'],['../classehm__dal_1_1schema_1_1_club_competition.html#aefe417b79cbc0ce5ed6438fc8164cd1e',1,'ehm_dal::schema::ClubCompetition::addChildItem()'],['../classehm__dal_1_1schema_1_1_staff.html#ab39aeb1373306088314d1245807db059',1,'ehm_dal::schema::Staff::addChildItem()'],['../classehm__dal_1_1schema_1_1_staff_award.html#a0f47ec5dc2ad987066e8465ca9308731',1,'ehm_dal::schema::StaffAward::addChildItem()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a97719efcdb0d628ffecdcaf09fd35ef0',1,'ehm_dal::schema::AbstractTableItem::addChildItem()']]], - ['addheader_6',['addHeader',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#abbe567a20cacd1b736b47f6b81c59e27',1,'ehm_dal::spreadsheet::Spreadsheet::addHeader(QAbstractTableModel *model)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#abed045a1087d3f474cf535eb41b4de7d',1,'ehm_dal::spreadsheet::Spreadsheet::addHeader(QAbstractTableModel *model, const std::vector< qint32 > &column_index_list)']]], - ['adjust_7',['adjust',['../classehm__dal_1_1data__types_1_1_year.html#a5c2c26a495b2393e334b9d94589bd3c0',1,'ehm_dal::data_types::Year']]], - ['alloc_8',['alloc',['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a19ba41214e8b2cd29088df2a85b4063a',1,'ehm_dal::schema::AbstractTableItem']]] + ['addfilenamesuffix_6',['addFileNameSuffix',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad6183f01d6260a1aa034af0072f0c412',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['addheader_7',['addHeader',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a7da6ad9c555a6325f46bf5cee2bd8829',1,'ehm_dal::spreadsheet::Spreadsheet::addHeader()'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aa29d87c626c65fc6053dac21b31c401f',1,'ehm_dal::spreadsheet::Spreadsheet::addHeader(const QString &text)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a190763b9b2567897283382994f041c95',1,'ehm_dal::spreadsheet::Spreadsheet::addHeader(const QStringList &text_list)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#afa0ded0494eca327f993a3b548625e51',1,'ehm_dal::spreadsheet::Spreadsheet::addHeader(const QVariant &data)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#abbe567a20cacd1b736b47f6b81c59e27',1,'ehm_dal::spreadsheet::Spreadsheet::addHeader(QAbstractTableModel *model)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#abed045a1087d3f474cf535eb41b4de7d',1,'ehm_dal::spreadsheet::Spreadsheet::addHeader(QAbstractTableModel *model, const std::vector< qint32 > &column_index_list)']]], + ['addheaderprefix_8',['addHeaderPrefix',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ac49f7333ff8aed23c82cac7c6107df31',1,'ehm_dal::spreadsheet::Spreadsheet::addHeaderPrefix()'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a47c4f3ee618a3b541997ffad7d09af40',1,'ehm_dal::spreadsheet::Spreadsheet::addHeaderPrefix(const QVariant &data)']]], + ['addnewheaderrow_9',['addNewHeaderRow',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a18abaf99132780f43677db73e76540dd',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['addnewrow_10',['addNewRow',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#abf4bdbc536f7cdbe8b4903584a85d7a4',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['addprefix_11',['addPrefix',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a6a2d33ec32e82dbeb70f06e18addfa95',1,'ehm_dal::spreadsheet::Spreadsheet::addPrefix()'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a656f8750a70ef9672ac62000cdb229ff',1,'ehm_dal::spreadsheet::Spreadsheet::addPrefix(const QVariant &data)']]], + ['adjust_12',['adjust',['../classehm__dal_1_1data__types_1_1_year.html#a5c2c26a495b2393e334b9d94589bd3c0',1,'ehm_dal::data_types::Year']]], + ['alloc_13',['alloc',['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a19ba41214e8b2cd29088df2a85b4063a',1,'ehm_dal::schema::AbstractTableItem']]] ]; diff --git a/docs/search/functions_1.js b/docs/search/functions_1.js index 94e878c..05bffa3 100644 --- a/docs/search/functions_1.js +++ b/docs/search/functions_1.js @@ -1,16 +1,19 @@ var searchData= [ - ['childdata_0',['childData',['../classehm__dal_1_1schema_1_1_club.html#a49f08ac651a08edd675ae1202d9fd6ba',1,'ehm_dal::schema::Club::childData()'],['../classehm__dal_1_1schema_1_1_club_competition.html#a2286a2c982b944b04cba1ea83d814e68',1,'ehm_dal::schema::ClubCompetition::childData()'],['../classehm__dal_1_1schema_1_1_staff.html#ac50306ba859d4366c47cfd77eb9b7f43',1,'ehm_dal::schema::Staff::childData()'],['../classehm__dal_1_1schema_1_1_staff_award.html#aac5c2ffe9420617442a46b7eabb35adc',1,'ehm_dal::schema::StaffAward::childData()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a8de5f12bfaf8c01a5e2880402c01d248',1,'ehm_dal::schema::AbstractTableItem::childData()']]], - ['childitemid_1',['childItemId',['../classehm__dal_1_1schema_1_1_staff.html#adec93f821d3baba1eb1199603b74794b',1,'ehm_dal::schema::Staff::childItemId()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#ab2b161e72ffe15a6d4abcd31ae09eddc',1,'ehm_dal::schema::AbstractTableItem::childItemId()']]], - ['childrowcount_2',['childRowCount',['../classehm__dal_1_1schema_1_1_club.html#af46fb7dfa7cd0200fa42bc35040d2f13',1,'ehm_dal::schema::Club::childRowCount()'],['../classehm__dal_1_1schema_1_1_club_competition.html#adc7f49df4175c7fb1eb53c131f52eff3',1,'ehm_dal::schema::ClubCompetition::childRowCount()'],['../classehm__dal_1_1schema_1_1_staff.html#a9ea2595a4f7c02dfda118794f1a70841',1,'ehm_dal::schema::Staff::childRowCount()'],['../classehm__dal_1_1schema_1_1_staff_award.html#a8785699f0f84c1663fc7f2d383ed8c77',1,'ehm_dal::schema::StaffAward::childRowCount()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#af28f506ef8a05a7ae4a9b5f289407a45',1,'ehm_dal::schema::AbstractTableItem::childRowCount()']]], - ['clear_3',['clear',['../classehm__dal_1_1data__types_1_1_string.html#ab9b7fd6887f8e1eafa4963c8cee7c95f',1,'ehm_dal::data_types::String']]], - ['clearall_4',['clearAll',['../classehm__dal_1_1column__data_1_1_column_data.html#addfbbd091dd9e973d6441045538a8357',1,'ehm_dal::column_data::ColumnData::clearAll()'],['../classehm__dal_1_1_database.html#a86440638565a9ebf6a3faf058dbd1405',1,'ehm_dal::Database::clearAll()']]], - ['close_5',['close',['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#ac2e00bf15122225a9d75757fccf97948',1,'ehm_dal::file_io::AbstractFileManager']]], - ['column_6',['Column',['../classehm__dal_1_1column__data_1_1_column.html#a689d9104d9549133b958389a5ff22435',1,'ehm_dal::column_data::Column::Column(const qint32 position, const QString &name, const ColumnType type, const quint16 settings=NO_SETTINGS)'],['../classehm__dal_1_1column__data_1_1_column.html#a256e87fe044bd95f8edb594c4c2de90d',1,'ehm_dal::column_data::Column::Column(const qint32 position, const QString &name, std::shared_ptr< ehm_dal::tables::AbstractTable > table, const quint16 settings=NO_SETTINGS)']]], - ['column_7',['column',['../classehm__dal_1_1column__data_1_1_column_data.html#a2833413c0fa3b399307d89dc646ce087',1,'ehm_dal::column_data::ColumnData']]], - ['columncount_8',['columnCount',['../classehm__dal_1_1column__data_1_1_column_data.html#a284c146ee0764c8d1407fa40a3663706',1,'ehm_dal::column_data::ColumnData::columnCount()'],['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#ac925511039abe1b88cb9b1fe1f125623',1,'ehm_dal::data_types::AbstractPointer::columnCount()'],['../classehm__dal_1_1tables_1_1_abstract_base_model.html#a985e799a0230eaa26e697d8e85c20199',1,'ehm_dal::tables::AbstractBaseModel::columnCount(const QModelIndex &parent=QModelIndex()) const override']]], - ['columndata_9',['columnData',['../classehm__dal_1_1tables_1_1_abstract_base_model.html#accba6b7ca3df11adb597a08dc0502753',1,'ehm_dal::tables::AbstractBaseModel']]], - ['columndata_10',['ColumnData',['../classehm__dal_1_1column__data_1_1_column_data.html#afa1701c2ad88e94b61d7658fb0162ef2',1,'ehm_dal::column_data::ColumnData']]], - ['compare_11',['compare',['../classehm__dal_1_1data__types_1_1_year.html#ac75d215e644396c20737dcf4b8f48c7b',1,'ehm_dal::data_types::Year::compare()'],['../classehm__dal_1_1data__types_1_1_string.html#aff7b8837b56b12089a2f699c0ef36d03',1,'ehm_dal::data_types::String::compare()']]], - ['consttable_12',['constTable',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#a152d2f0b4c74c98deb4bc1dd5834d904',1,'ehm_dal::data_types::AbstractPointer']]] + ['cell_0',['cell',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a37a871b8ad1b0bb89a5f2dde41ac83a6',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['cells_1',['cells',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a108b8f50b8d53d0984acc6b1c2ddee5e',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['childdata_2',['childData',['../classehm__dal_1_1schema_1_1_club.html#a49f08ac651a08edd675ae1202d9fd6ba',1,'ehm_dal::schema::Club::childData()'],['../classehm__dal_1_1schema_1_1_club_competition.html#a2286a2c982b944b04cba1ea83d814e68',1,'ehm_dal::schema::ClubCompetition::childData()'],['../classehm__dal_1_1schema_1_1_staff.html#ac50306ba859d4366c47cfd77eb9b7f43',1,'ehm_dal::schema::Staff::childData()'],['../classehm__dal_1_1schema_1_1_staff_award.html#aac5c2ffe9420617442a46b7eabb35adc',1,'ehm_dal::schema::StaffAward::childData()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a8de5f12bfaf8c01a5e2880402c01d248',1,'ehm_dal::schema::AbstractTableItem::childData()']]], + ['childitemid_3',['childItemId',['../classehm__dal_1_1schema_1_1_staff.html#adec93f821d3baba1eb1199603b74794b',1,'ehm_dal::schema::Staff::childItemId()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#ab2b161e72ffe15a6d4abcd31ae09eddc',1,'ehm_dal::schema::AbstractTableItem::childItemId()']]], + ['childrowcount_4',['childRowCount',['../classehm__dal_1_1schema_1_1_club.html#af46fb7dfa7cd0200fa42bc35040d2f13',1,'ehm_dal::schema::Club::childRowCount()'],['../classehm__dal_1_1schema_1_1_club_competition.html#adc7f49df4175c7fb1eb53c131f52eff3',1,'ehm_dal::schema::ClubCompetition::childRowCount()'],['../classehm__dal_1_1schema_1_1_staff.html#a9ea2595a4f7c02dfda118794f1a70841',1,'ehm_dal::schema::Staff::childRowCount()'],['../classehm__dal_1_1schema_1_1_staff_award.html#a8785699f0f84c1663fc7f2d383ed8c77',1,'ehm_dal::schema::StaffAward::childRowCount()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#af28f506ef8a05a7ae4a9b5f289407a45',1,'ehm_dal::schema::AbstractTableItem::childRowCount()']]], + ['clear_5',['clear',['../classehm__dal_1_1data__types_1_1_string.html#ab9b7fd6887f8e1eafa4963c8cee7c95f',1,'ehm_dal::data_types::String']]], + ['clearall_6',['clearAll',['../classehm__dal_1_1column__data_1_1_column_data.html#addfbbd091dd9e973d6441045538a8357',1,'ehm_dal::column_data::ColumnData::clearAll()'],['../classehm__dal_1_1_database.html#a86440638565a9ebf6a3faf058dbd1405',1,'ehm_dal::Database::clearAll()'],['../classehm__dal_1_1_saved_game.html#a6e6873e437990371b3d6c493f73e12f0',1,'ehm_dal::SavedGame::clearAll()']]], + ['close_7',['close',['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#ac2e00bf15122225a9d75757fccf97948',1,'ehm_dal::file_io::AbstractFileManager']]], + ['column_8',['column',['../classehm__dal_1_1column__data_1_1_column_data.html#a2833413c0fa3b399307d89dc646ce087',1,'ehm_dal::column_data::ColumnData']]], + ['column_9',['Column',['../classehm__dal_1_1column__data_1_1_column.html#a689d9104d9549133b958389a5ff22435',1,'ehm_dal::column_data::Column::Column(const qint32 position, const QString &name, const ColumnType type, const quint16 settings=NO_SETTINGS)'],['../classehm__dal_1_1column__data_1_1_column.html#a256e87fe044bd95f8edb594c4c2de90d',1,'ehm_dal::column_data::Column::Column(const qint32 position, const QString &name, std::shared_ptr< ehm_dal::tables::AbstractTable > table, const quint16 settings=NO_SETTINGS)']]], + ['columncontainsdata_10',['columnContainsData',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a74cbcb0934ea4c674a03658832651a4f',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['columncount_11',['columnCount',['../classehm__dal_1_1column__data_1_1_column_data.html#a284c146ee0764c8d1407fa40a3663706',1,'ehm_dal::column_data::ColumnData::columnCount()'],['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#ac925511039abe1b88cb9b1fe1f125623',1,'ehm_dal::data_types::AbstractPointer::columnCount()'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a4ab3046be7e56645c29d8f896c8c7c41',1,'ehm_dal::spreadsheet::Spreadsheet::columnCount()'],['../classehm__dal_1_1tables_1_1_abstract_base_model.html#a985e799a0230eaa26e697d8e85c20199',1,'ehm_dal::tables::AbstractBaseModel::columnCount()']]], + ['columndata_12',['ColumnData',['../classehm__dal_1_1column__data_1_1_column_data.html#afa1701c2ad88e94b61d7658fb0162ef2',1,'ehm_dal::column_data::ColumnData']]], + ['columndata_13',['columnData',['../classehm__dal_1_1tables_1_1_abstract_base_model.html#accba6b7ca3df11adb597a08dc0502753',1,'ehm_dal::tables::AbstractBaseModel']]], + ['compare_14',['compare',['../classehm__dal_1_1data__types_1_1_year.html#ac75d215e644396c20737dcf4b8f48c7b',1,'ehm_dal::data_types::Year::compare()'],['../classehm__dal_1_1data__types_1_1_string.html#aff7b8837b56b12089a2f699c0ef36d03',1,'ehm_dal::data_types::String::compare()']]], + ['consttable_15',['constTable',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#a152d2f0b4c74c98deb4bc1dd5834d904',1,'ehm_dal::data_types::AbstractPointer']]] ]; diff --git a/docs/search/functions_2.js b/docs/search/functions_2.js index 719e1aa..9180b19 100644 --- a/docs/search/functions_2.js +++ b/docs/search/functions_2.js @@ -3,7 +3,8 @@ var searchData= ['data_0',['data',['../classehm__dal_1_1data__types_1_1_data_type.html#aa2b394b44af19b246e2db1e09143fd89',1,'ehm_dal::data_types::DataType::data()'],['../classehm__dal_1_1data__types_1_1_abstract_data_type.html#ad2f31dbf2ebbd415f4f7325c33480318',1,'ehm_dal::data_types::AbstractDataType::data()'],['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#a341198e2bfc78cf7159743f4c644de62',1,'ehm_dal::data_types::AbstractPointer::data(const qint32 role) const'],['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#a5448793e68b9589bd312ce993be3b4e7',1,'ehm_dal::data_types::AbstractPointer::data(const qint32 column, const qint32 role) const'],['../classehm__dal_1_1schema_1_1_club_records.html#a39855ebab687245e27635d6884fc57f9',1,'ehm_dal::schema::ClubRecords::data()'],['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#ace8333b0c424e751f2e99619cbce8da8',1,'ehm_dal::saved_game::SavedGameSubFile::data()'],['../classehm__dal_1_1_saved_game.html#a8b9b7d58e754b8dfc81d4989018d5dfc',1,'ehm_dal::SavedGame::data()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a029b195693237f3edb600c27a1d5f058',1,'ehm_dal::schema::AbstractTableItem::data(const qint32 column, qint32 role, ehm_dal::column_data::ColumnData *column_data) const'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a4572ff444f74c5a642fa8d3a8ddca160',1,'ehm_dal::schema::AbstractTableItem::data(const QModelIndex &index, qint32 role, ehm_dal::column_data::ColumnData *column_data) const'],['../classehm__dal_1_1tables_1_1_abstract_table.html#ab58ae9e52327335c87f9a94d1bdbe9ce',1,'ehm_dal::tables::AbstractTable::data()'],['../classehm__dal_1_1data__types_1_1_pointer.html#a341198e2bfc78cf7159743f4c644de62',1,'ehm_dal::data_types::Pointer::data(const qint32 role) const'],['../classehm__dal_1_1data__types_1_1_pointer.html#a5448793e68b9589bd312ce993be3b4e7',1,'ehm_dal::data_types::Pointer::data(const qint32 column, const qint32 role) const']]], ['database_1',['Database',['../classehm__dal_1_1_database.html#abda8c4c96ca84623380d55adc408b7c7',1,'ehm_dal::Database']]], ['date_2',['Date',['../classehm__dal_1_1data__types_1_1_date.html#a6c2874dd37260980a188902e38b49c42',1,'ehm_dal::data_types::Date']]], - ['description_3',['description',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#ae2d3355ce49d79c6a15e67d544c99b1a',1,'ehm_dal::data_types::AbstractPointer']]], - ['descriptor_4',['descriptor',['../classehm__dal_1_1file__io_1_1_database_file_manager.html#af4de3105686b08b44e1765654b13715c',1,'ehm_dal::file_io::DatabaseFileManager::descriptor()'],['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#a54829b45f5c07b21a37658c015e6a8e6',1,'ehm_dal::file_io::AbstractFileManager::descriptor()']]], - ['dimensions_5',['dimensions',['../classehm__dal_1_1column__data_1_1_column_data.html#acb293c0a2d2655c2a4cfb73ea9f13683',1,'ehm_dal::column_data::ColumnData']]] + ['defaultfileextension_3',['defaultFileExtension',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aa43792574fe22a3944bf6558cec81fa5',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['description_4',['description',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#ae2d3355ce49d79c6a15e67d544c99b1a',1,'ehm_dal::data_types::AbstractPointer']]], + ['descriptor_5',['descriptor',['../classehm__dal_1_1file__io_1_1_database_file_manager.html#af4de3105686b08b44e1765654b13715c',1,'ehm_dal::file_io::DatabaseFileManager::descriptor()'],['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#a54829b45f5c07b21a37658c015e6a8e6',1,'ehm_dal::file_io::AbstractFileManager::descriptor()'],['../classehm__dal_1_1file__io_1_1_saved_game_file_manager.html#a2a7cc73dc8c71360c5e701143ca47bdc',1,'ehm_dal::file_io::SavedGameFileManager::descriptor()']]], + ['dimensions_6',['dimensions',['../classehm__dal_1_1column__data_1_1_column_data.html#acb293c0a2d2655c2a4cfb73ea9f13683',1,'ehm_dal::column_data::ColumnData']]] ]; diff --git a/docs/search/functions_3.js b/docs/search/functions_3.js index 5e1ae88..33bd39c 100644 --- a/docs/search/functions_3.js +++ b/docs/search/functions_3.js @@ -1,5 +1,6 @@ var searchData= [ ['estimatedbytesperrow_0',['estimatedBytesPerRow',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#a6873aae3ca2c16ebd16df4de37af2a72',1,'ehm_dal::saved_game::SavedGameSubFile']]], - ['estimatedrowcount_1',['estimatedRowCount',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#a026a9687737980a38b1ea8578c2193fe',1,'ehm_dal::saved_game::SavedGameSubFile']]] + ['estimatedrowcount_1',['estimatedRowCount',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#a026a9687737980a38b1ea8578c2193fe',1,'ehm_dal::saved_game::SavedGameSubFile']]], + ['exportpath_2',['exportPath',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad3ec8823d95deeea1fc00b5f01523979',1,'ehm_dal::spreadsheet::Spreadsheet']]] ]; diff --git a/docs/search/functions_4.js b/docs/search/functions_4.js index 0b5a3e0..4349b3e 100644 --- a/docs/search/functions_4.js +++ b/docs/search/functions_4.js @@ -1,16 +1,19 @@ var searchData= [ - ['filefilterstring_0',['fileFilterString',['../classehm__dal_1_1file__io_1_1_database_file_manager.html#a8546901b3efc822af68451756f869819',1,'ehm_dal::file_io::DatabaseFileManager::fileFilterString()'],['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#ada0b092147c764cf3621a8ab81b5fadc',1,'ehm_dal::file_io::AbstractFileManager::fileFilterString()']]], - ['filename_1',['fileName',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#a94455bc67b60a8c6c8232f7775f374dd',1,'ehm_dal::saved_game::SavedGameSubFile::fileName()'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a32450ee50742a818911d377084f39d41',1,'ehm_dal::spreadsheet::Spreadsheet::fileName()']]], - ['fileposition_2',['filePosition',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#a1f73cb0b7c67b3a6a89ec0f597b71371',1,'ehm_dal::saved_game::SavedGameSubFile']]], - ['filesizekilobytes_3',['fileSizeKilobytes',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#a6d048dc22fec6f98635b520ccdccc2aa',1,'ehm_dal::saved_game::SavedGameSubFile']]], - ['filetype_4',['fileType',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aedb4a30f7cb4ab627d606f1a44f26779',1,'ehm_dal::spreadsheet::Spreadsheet']]], - ['find_5',['find',['../classehm__dal_1_1saved__game_1_1_saved_game_data.html#a9abe4f8e4bee0371bf63fe49981d1842',1,'ehm_dal::saved_game::SavedGameData::find()'],['../classehm__dal_1_1tables_1_1_abstract_table.html#a7131c91e6d3874ce0f91c750b9adaa86',1,'ehm_dal::tables::AbstractTable::find(const qint32 value, const quint16 column)'],['../classehm__dal_1_1tables_1_1_abstract_table.html#a8f973776ddbad3cfb7d64138bdfc9435',1,'ehm_dal::tables::AbstractTable::find(const QString &text, const quint16 column, const Qt::CaseSensitivity cs=Qt::CaseInsensitive)']]], - ['findall_6',['findAll',['../classehm__dal_1_1tables_1_1_abstract_table.html#a1bf87b6911945578bebe05e0972f91af',1,'ehm_dal::tables::AbstractTable::findAll(const qint32 value, const quint16 column)'],['../classehm__dal_1_1tables_1_1_abstract_table.html#a338e6b8568a3266329bfa439c7e7aca0',1,'ehm_dal::tables::AbstractTable::findAll(const QString &text, const quint16 column, const Qt::CaseSensitivity cs=Qt::CaseInsensitive)']]], - ['findallcontains_7',['findAllContains',['../classehm__dal_1_1tables_1_1_abstract_table.html#a23c86db75a17186ab593110b4b9fc0b3',1,'ehm_dal::tables::AbstractTable']]], - ['findcontains_8',['findContains',['../classehm__dal_1_1tables_1_1_abstract_table.html#a2a281c4c204378fe4ecd38c61e83edc4',1,'ehm_dal::tables::AbstractTable']]], - ['firstderivedcolumnindex_9',['firstDerivedColumnIndex',['../classehm__dal_1_1column__data_1_1_column_data.html#ac47f63b865d6a5006a6e4a1ebe1f11be',1,'ehm_dal::column_data::ColumnData']]], - ['fixerrors_10',['fixErrors',['../classehm__dal_1_1schema_1_1_club.html#aa8c6e17914b67510643be592dd48e99b',1,'ehm_dal::schema::Club::fixErrors()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#ad7d3cf9d7ec68567cb05f24229e4356d',1,'ehm_dal::schema::AbstractTableItem::fixErrors()']]], - ['flags_11',['flags',['../classehm__dal_1_1column__data_1_1_column.html#aba5fa006415b67edbcb7a39f5ae02929',1,'ehm_dal::column_data::Column::flags()'],['../classehm__dal_1_1column__data_1_1_column_data.html#a0ecda781d9c0e6865b01f583c99333ab',1,'ehm_dal::column_data::ColumnData::flags()'],['../classehm__dal_1_1tables_1_1_abstract_base_model.html#ac663516741d54ae71bdc2628e70e7346',1,'ehm_dal::tables::AbstractBaseModel::flags()']]], - ['fromvalue_12',['fromValue',['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a62e66f43f4fb91450612e980379291e7',1,'ehm_dal::schema::AbstractTableItem']]] + ['file_0',['file',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a25c16bb23cca09f307dee41fe737305c',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['fileextensionlistasstring_1',['fileExtensionListAsString',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a766f09738864d07bc49fdc662991ee26',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['fileextensionlistasstringlist_2',['fileExtensionListAsStringList',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a59a0b37b9fce42b949974519eba1cc65',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['filefilterstring_3',['fileFilterString',['../classehm__dal_1_1file__io_1_1_database_file_manager.html#a8546901b3efc822af68451756f869819',1,'ehm_dal::file_io::DatabaseFileManager::fileFilterString()'],['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#ada0b092147c764cf3621a8ab81b5fadc',1,'ehm_dal::file_io::AbstractFileManager::fileFilterString()'],['../classehm__dal_1_1file__io_1_1_saved_game_file_manager.html#a1810a7ca435099e88625f2e9187406e3',1,'ehm_dal::file_io::SavedGameFileManager::fileFilterString()']]], + ['filename_4',['fileName',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#a94455bc67b60a8c6c8232f7775f374dd',1,'ehm_dal::saved_game::SavedGameSubFile::fileName()'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a32450ee50742a818911d377084f39d41',1,'ehm_dal::spreadsheet::Spreadsheet::fileName()']]], + ['fileposition_5',['filePosition',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#a1f73cb0b7c67b3a6a89ec0f597b71371',1,'ehm_dal::saved_game::SavedGameSubFile']]], + ['filesizekilobytes_6',['fileSizeKilobytes',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#a6d048dc22fec6f98635b520ccdccc2aa',1,'ehm_dal::saved_game::SavedGameSubFile']]], + ['filetype_7',['fileType',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aedb4a30f7cb4ab627d606f1a44f26779',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['find_8',['find',['../classehm__dal_1_1saved__game_1_1_saved_game_data.html#a9abe4f8e4bee0371bf63fe49981d1842',1,'ehm_dal::saved_game::SavedGameData::find()'],['../classehm__dal_1_1tables_1_1_abstract_table.html#a7131c91e6d3874ce0f91c750b9adaa86',1,'ehm_dal::tables::AbstractTable::find(const qint32 value, const quint16 column)'],['../classehm__dal_1_1tables_1_1_abstract_table.html#a8f973776ddbad3cfb7d64138bdfc9435',1,'ehm_dal::tables::AbstractTable::find(const QString &text, const quint16 column, const Qt::CaseSensitivity cs=Qt::CaseInsensitive)']]], + ['findall_9',['findAll',['../classehm__dal_1_1tables_1_1_abstract_table.html#a1bf87b6911945578bebe05e0972f91af',1,'ehm_dal::tables::AbstractTable::findAll(const qint32 value, const quint16 column)'],['../classehm__dal_1_1tables_1_1_abstract_table.html#a338e6b8568a3266329bfa439c7e7aca0',1,'ehm_dal::tables::AbstractTable::findAll(const QString &text, const quint16 column, const Qt::CaseSensitivity cs=Qt::CaseInsensitive)']]], + ['findallcontains_10',['findAllContains',['../classehm__dal_1_1tables_1_1_abstract_table.html#a23c86db75a17186ab593110b4b9fc0b3',1,'ehm_dal::tables::AbstractTable']]], + ['findcontains_11',['findContains',['../classehm__dal_1_1tables_1_1_abstract_table.html#a2a281c4c204378fe4ecd38c61e83edc4',1,'ehm_dal::tables::AbstractTable']]], + ['firstderivedcolumnindex_12',['firstDerivedColumnIndex',['../classehm__dal_1_1column__data_1_1_column_data.html#ac47f63b865d6a5006a6e4a1ebe1f11be',1,'ehm_dal::column_data::ColumnData']]], + ['fixerrors_13',['fixErrors',['../classehm__dal_1_1schema_1_1_club.html#aa8c6e17914b67510643be592dd48e99b',1,'ehm_dal::schema::Club::fixErrors()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#ad7d3cf9d7ec68567cb05f24229e4356d',1,'ehm_dal::schema::AbstractTableItem::fixErrors()']]], + ['flags_14',['flags',['../classehm__dal_1_1column__data_1_1_column.html#aba5fa006415b67edbcb7a39f5ae02929',1,'ehm_dal::column_data::Column::flags()'],['../classehm__dal_1_1column__data_1_1_column_data.html#a0ecda781d9c0e6865b01f583c99333ab',1,'ehm_dal::column_data::ColumnData::flags()'],['../classehm__dal_1_1tables_1_1_abstract_base_model.html#ac663516741d54ae71bdc2628e70e7346',1,'ehm_dal::tables::AbstractBaseModel::flags()']]], + ['fromvalue_15',['fromValue',['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a62e66f43f4fb91450612e980379291e7',1,'ehm_dal::schema::AbstractTableItem']]] ]; diff --git a/docs/search/functions_7.js b/docs/search/functions_7.js index b143329..d0034dc 100644 --- a/docs/search/functions_7.js +++ b/docs/search/functions_7.js @@ -2,31 +2,32 @@ var searchData= [ ['id_0',['id',['../classehm__dal_1_1column__data_1_1_column.html#a1ab4e6179948719e09f094e8f6bdcaf9',1,'ehm_dal::column_data::Column::id()'],['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#a4a5575d6ea861e99af1bb237adf498df',1,'ehm_dal::data_types::AbstractPointer::id()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#acba8029ebf11f69738d1502f611db8e2',1,'ehm_dal::schema::AbstractTableItem::id() const'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a2924e2a12fe55b771bb7c60773cc57ca',1,'ehm_dal::schema::AbstractTableItem::id(const qint32 role)'],['../classehm__dal_1_1tables_1_1_table_attributes.html#a2e9e7c04d81e0af0a829bbac4e126c54',1,'ehm_dal::tables::TableAttributes::id()']]], ['idbuffer_1',['idBuffer',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#ae7b96f4bbe24237db537428afaf23a1e',1,'ehm_dal::data_types::AbstractPointer']]], - ['identifier_2',['identifier',['../classehm__dal_1_1schema_1_1_abstract_table_item.html#aef183e437571bd0baf4aa0495e092ff4',1,'ehm_dal::schema::AbstractTableItem']]], + ['identifier_2',['identifier',['../classehm__dal_1_1schema_1_1_abstract_table_item.html#aef183e437571bd0baf4aa0495e092ff4',1,'ehm_dal::schema::AbstractTableItem::identifier()'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a1bcf058f06086df9f9785aa8e6123104',1,'ehm_dal::spreadsheet::Spreadsheet::identifier()']]], ['identifierlist_3',['identifierList',['../classehm__dal_1_1schema_1_1_club_competition.html#a144a58b56d96fae6f83c7f960e92b352',1,'ehm_dal::schema::ClubCompetition::identifierList()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a5fb025fd37a798e4885b56cb8f2de63e',1,'ehm_dal::schema::AbstractTableItem::identifierList()']]], - ['init_4',['init',['../classehm__dal_1_1data__types_1_1_name_pointer.html#aeb9b65c216d29c748f2ecf281225b751',1,'ehm_dal::data_types::NamePointer::init()'],['../classehm__dal_1_1data__types_1_1_pointer.html#a59ca5d57f8a45c61df4e21745100177c',1,'ehm_dal::data_types::Pointer::init()'],['../classehm__dal_1_1schema_1_1_affiliation.html#af93cf78c12b88662fcdc85450da21e0f',1,'ehm_dal::schema::Affiliation::init()'],['../classehm__dal_1_1schema_1_1_arena.html#aff089d48a5ea630d59de39f021a13a68',1,'ehm_dal::schema::Arena::init()'],['../classehm__dal_1_1schema_1_1_city.html#ada0dd1b9323fe043a76870a911957e58',1,'ehm_dal::schema::City::init()'],['../classehm__dal_1_1schema_1_1_club.html#a9c139db230761395613d2cd1569d2b5b',1,'ehm_dal::schema::Club::init()'],['../classehm__dal_1_1schema_1_1_club_history.html#aa5de4f9e5aac7f73c19abb02376b67fb',1,'ehm_dal::schema::ClubHistory::init()'],['../classehm__dal_1_1schema_1_1_club_records.html#a4650f0a0b741786f51c60b4cf8894013',1,'ehm_dal::schema::ClubRecords::init()'],['../classehm__dal_1_1schema_1_1_retired_number.html#aab850457141e8ec3e556d69d5c2ba366',1,'ehm_dal::schema::RetiredNumber::init()'],['../classehm__dal_1_1schema_1_1_club_competition.html#a520ffabc3ce682304922a0e01bbb8dcd',1,'ehm_dal::schema::ClubCompetition::init()'],['../classehm__dal_1_1schema_1_1_club_competition_history.html#a289086f41b27a17c7d70134012c481c7',1,'ehm_dal::schema::ClubCompetitionHistory::init()'],['../classehm__dal_1_1schema_1_1_colour.html#a70a2efe80820f86604a4160d4cb5ca07',1,'ehm_dal::schema::Colour::init()'],['../classehm__dal_1_1schema_1_1_continent.html#a22b776dce57c6520c9e3d380289034b0',1,'ehm_dal::schema::Continent::init()'],['../classehm__dal_1_1schema_1_1_currency.html#ab35babf1439b45a39682fa3b988d0be9',1,'ehm_dal::schema::Currency::init()'],['../classehm__dal_1_1schema_1_1_database_header.html#a5fc47ecfcb9bb8903feb19325af3d13f',1,'ehm_dal::schema::DatabaseHeader::init()'],['../classehm__dal_1_1schema_1_1_draft.html#aa70856621b54dd683ba8c1432be248b2',1,'ehm_dal::schema::Draft::init()'],['../classehm__dal_1_1schema_1_1_game_basic_data.html#acd75b636160567b3325f35b62fd5919e',1,'ehm_dal::schema::GameBasicData::init()'],['../classehm__dal_1_1schema_1_1_injury.html#a634fa544d0e2173ecceaaeef40c33546',1,'ehm_dal::schema::Injury::init()'],['../classehm__dal_1_1schema_1_1_name.html#a6cb65dcd8f486d9e36a28c1e4a00204a',1,'ehm_dal::schema::Name::init()'],['../classehm__dal_1_1schema_1_1_nation.html#a02d6885035ed5acdb2e60828a32a6ea0',1,'ehm_dal::schema::Nation::init()'],['../classehm__dal_1_1schema_1_1_person.html#a1ae7461b0d2a1c7c225ef9de509dbb9b',1,'ehm_dal::schema::Person::init()'],['../classehm__dal_1_1schema_1_1_draft_history.html#a98ae1b23fa195e770bbc2127bb8a3559',1,'ehm_dal::schema::DraftHistory::init()'],['../classehm__dal_1_1schema_1_1_non_player_data.html#a5dc2f6a5bf464b57592d2d5b45472403',1,'ehm_dal::schema::NonPlayerData::init()'],['../classehm__dal_1_1schema_1_1_player_data.html#a0793b9ac2916ab0b0b4783e998b6391c',1,'ehm_dal::schema::PlayerData::init()'],['../classehm__dal_1_1schema_1_1_player_info.html#a16b1f12d14f04d57716f7b61caa014e8',1,'ehm_dal::schema::PlayerInfo::init()'],['../classehm__dal_1_1schema_1_1_player_rights.html#a24db611a33a818e31043929f54fe4622',1,'ehm_dal::schema::PlayerRights::init()'],['../classehm__dal_1_1schema_1_1_staff_history.html#ac6dc142ce60067b6a26aeaf0441686b7',1,'ehm_dal::schema::StaffHistory::init()'],['../classehm__dal_1_1schema_1_1_staff_info.html#a9015be98c3332de48914bd77b10874ff',1,'ehm_dal::schema::StaffInfo::init()'],['../classehm__dal_1_1schema_1_1_staff_preferences.html#a357b38bf6b53b04592337385e5be0b07',1,'ehm_dal::schema::StaffPreferences::init()'],['../classehm__dal_1_1schema_1_1_staff_award.html#ac75bfdc7e83096b773c95f10bbe8a0d0',1,'ehm_dal::schema::StaffAward::init()'],['../classehm__dal_1_1schema_1_1_staff_award_history.html#a74fe4204d24d52fa6aad421ba58ff07c',1,'ehm_dal::schema::StaffAwardHistory::init()'],['../classehm__dal_1_1schema_1_1_stage_name.html#a176bcdd65e475181cb3fd3c81b256373',1,'ehm_dal::schema::StageName::init()'],['../classehm__dal_1_1schema_1_1_state.html#ad2d13af2bfd083310a8804e0c7293488',1,'ehm_dal::schema::State::init()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a51729757a1334244f2efcb6b776fc46a',1,'ehm_dal::schema::AbstractTableItem::init()'],['../classehm__dal_1_1tables_1_1_abstract_table.html#a1b5a5a2cfc5f0b54f1475de6edc7c6e0',1,'ehm_dal::tables::AbstractTable::init()']]], - ['iscached_5',['isCached',['../classehm__dal_1_1column__data_1_1_column.html#aa14384261b226e0a3c64652e90f1305f',1,'ehm_dal::column_data::Column::isCached()'],['../classehm__dal_1_1column__data_1_1_column_data.html#a62546aa8101886cb8c0187153275b134',1,'ehm_dal::column_data::ColumnData::isCached()']]], - ['ischeckable_6',['isCheckable',['../classehm__dal_1_1column__data_1_1_column.html#af6d7543c092e6424992316007d37ea20',1,'ehm_dal::column_data::Column']]], - ['iscolourpointer_7',['isColourPointer',['../classehm__dal_1_1column__data_1_1_column.html#ad9944213926008e150b056f33fbc59f3',1,'ehm_dal::column_data::Column']]], - ['iscompressed_8',['isCompressed',['../classehm__dal_1_1saved__game_1_1_saved_game_data.html#af8e73931da06c4a44e4f3e888afd3d00',1,'ehm_dal::saved_game::SavedGameData']]], - ['iscontainer_9',['isContainer',['../classehm__dal_1_1column__data_1_1_column.html#a1e4bdb55fda47c67c4c2907e46b328d9',1,'ehm_dal::column_data::Column']]], - ['isdatabasetable_10',['isDatabaseTable',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#a724983fed432f9aee370085ffeaae648',1,'ehm_dal::saved_game::SavedGameSubFile']]], - ['isdatabasetablepointer_11',['isDatabaseTablePointer',['../classehm__dal_1_1column__data_1_1_column.html#a60819922f8ccf9744038f0688037e752',1,'ehm_dal::column_data::Column']]], - ['isflagtablepointer_12',['isFlagTablePointer',['../classehm__dal_1_1column__data_1_1_column.html#a849889379c475f762d7b406c9a93adee',1,'ehm_dal::column_data::Column']]], - ['isidenticalto_13',['isIdenticalTo',['../classehm__dal_1_1data__types_1_1_string.html#a0001c5d128dc76244c8eb1a263a10af7',1,'ehm_dal::data_types::String']]], - ['isinitialised_14',['isInitialised',['../classehm__dal_1_1column__data_1_1_column_data.html#ade35114488339007f9f58fb79a019251',1,'ehm_dal::column_data::ColumnData']]], - ['isinvalid_15',['isInvalid',['../classehm__dal_1_1data__types_1_1_year.html#a050e5a9a2f548c06acaf4eafc75460bd',1,'ehm_dal::data_types::Year']]], - ['isnamestringpointer_16',['isNameStringPointer',['../classehm__dal_1_1column__data_1_1_column.html#ae304e3c01f52779ff7829ddb8d5a17e1',1,'ehm_dal::column_data::Column']]], - ['isnone_17',['isNone',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#af7b6a7cf73dd60335db8371aa1469169',1,'ehm_dal::data_types::AbstractPointer']]], - ['isopen_18',['isOpen',['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#ada616ff83e773a84ac03d953207cad0e',1,'ehm_dal::file_io::AbstractFileManager']]], - ['ispointer_19',['isPointer',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#ab653fcea6ca16f1c2661b32a1962a8df',1,'ehm_dal::data_types::AbstractPointer']]], - ['ispointerlist_20',['isPointerList',['../classehm__dal_1_1column__data_1_1_column.html#a9e622a6302ac8bc3fd96417f05d55a5f',1,'ehm_dal::column_data::Column']]], - ['israwpointer_21',['isRawPointer',['../classehm__dal_1_1column__data_1_1_column.html#aa213637e952ef66112c0b5769f8185f9',1,'ehm_dal::column_data::Column']]], - ['isreadonly_22',['isReadOnly',['../classehm__dal_1_1column__data_1_1_column.html#a621f36edebcb2532cabf0af67be22515',1,'ehm_dal::column_data::Column']]], - ['issaved_23',['isSaved',['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#a3107c69b78d5dc92d2d76cf788b21bdc',1,'ehm_dal::file_io::AbstractFileManager']]], - ['issortable_24',['isSortable',['../classehm__dal_1_1column__data_1_1_column_data.html#a00bd7247ec8124f1391d90c0b88dc37c',1,'ehm_dal::column_data::ColumnData']]], - ['isvalid_25',['isValid',['../classehm__dal_1_1column__data_1_1_column_data.html#aa9951c5f7f20b1c214447524ced833a3',1,'ehm_dal::column_data::ColumnData::isValid()'],['../classehm__dal_1_1data__types_1_1_year.html#ad194febdc160c44246e336847affbe60',1,'ehm_dal::data_types::Year::isValid()']]], - ['isvalidpointer_26',['isValidPointer',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#add334e4650fc186dbc59f05aa1264f26',1,'ehm_dal::data_types::AbstractPointer']]], - ['isvalidtable_27',['isValidTable',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#a37e6f5e3c915cd9227dc5213937b4a91',1,'ehm_dal::data_types::AbstractPointer']]], - ['iswithinrange_28',['isWithinRange',['../classehm__dal_1_1data__types_1_1_year.html#a804fed12f49b35760d52c241b55b0e30',1,'ehm_dal::data_types::Year']]] + ['importpath_4',['importPath',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a7826eeae47dd16ff2a43bd419d7ded8e',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['init_5',['init',['../classehm__dal_1_1data__types_1_1_name_pointer.html#aeb9b65c216d29c748f2ecf281225b751',1,'ehm_dal::data_types::NamePointer::init()'],['../classehm__dal_1_1data__types_1_1_pointer.html#a59ca5d57f8a45c61df4e21745100177c',1,'ehm_dal::data_types::Pointer::init()'],['../classehm__dal_1_1schema_1_1_affiliation.html#af93cf78c12b88662fcdc85450da21e0f',1,'ehm_dal::schema::Affiliation::init()'],['../classehm__dal_1_1schema_1_1_arena.html#aff089d48a5ea630d59de39f021a13a68',1,'ehm_dal::schema::Arena::init()'],['../classehm__dal_1_1schema_1_1_city.html#ada0dd1b9323fe043a76870a911957e58',1,'ehm_dal::schema::City::init()'],['../classehm__dal_1_1schema_1_1_club.html#a9c139db230761395613d2cd1569d2b5b',1,'ehm_dal::schema::Club::init()'],['../classehm__dal_1_1schema_1_1_club_history.html#aa5de4f9e5aac7f73c19abb02376b67fb',1,'ehm_dal::schema::ClubHistory::init()'],['../classehm__dal_1_1schema_1_1_club_records.html#a4650f0a0b741786f51c60b4cf8894013',1,'ehm_dal::schema::ClubRecords::init()'],['../classehm__dal_1_1schema_1_1_retired_number.html#aab850457141e8ec3e556d69d5c2ba366',1,'ehm_dal::schema::RetiredNumber::init()'],['../classehm__dal_1_1schema_1_1_club_competition.html#a520ffabc3ce682304922a0e01bbb8dcd',1,'ehm_dal::schema::ClubCompetition::init()'],['../classehm__dal_1_1schema_1_1_club_competition_history.html#a289086f41b27a17c7d70134012c481c7',1,'ehm_dal::schema::ClubCompetitionHistory::init()'],['../classehm__dal_1_1schema_1_1_colour.html#a70a2efe80820f86604a4160d4cb5ca07',1,'ehm_dal::schema::Colour::init()'],['../classehm__dal_1_1schema_1_1_continent.html#a22b776dce57c6520c9e3d380289034b0',1,'ehm_dal::schema::Continent::init()'],['../classehm__dal_1_1schema_1_1_currency.html#ab35babf1439b45a39682fa3b988d0be9',1,'ehm_dal::schema::Currency::init()'],['../classehm__dal_1_1schema_1_1_database_header.html#a5fc47ecfcb9bb8903feb19325af3d13f',1,'ehm_dal::schema::DatabaseHeader::init()'],['../classehm__dal_1_1schema_1_1_draft.html#aa70856621b54dd683ba8c1432be248b2',1,'ehm_dal::schema::Draft::init()'],['../classehm__dal_1_1schema_1_1_game_basic_data.html#acd75b636160567b3325f35b62fd5919e',1,'ehm_dal::schema::GameBasicData::init()'],['../classehm__dal_1_1schema_1_1_injury.html#a634fa544d0e2173ecceaaeef40c33546',1,'ehm_dal::schema::Injury::init()'],['../classehm__dal_1_1schema_1_1_name.html#a6cb65dcd8f486d9e36a28c1e4a00204a',1,'ehm_dal::schema::Name::init()'],['../classehm__dal_1_1schema_1_1_nation.html#a02d6885035ed5acdb2e60828a32a6ea0',1,'ehm_dal::schema::Nation::init()'],['../classehm__dal_1_1schema_1_1_person.html#a1ae7461b0d2a1c7c225ef9de509dbb9b',1,'ehm_dal::schema::Person::init()'],['../classehm__dal_1_1schema_1_1_draft_history.html#a98ae1b23fa195e770bbc2127bb8a3559',1,'ehm_dal::schema::DraftHistory::init()'],['../classehm__dal_1_1schema_1_1_non_player_data.html#a5dc2f6a5bf464b57592d2d5b45472403',1,'ehm_dal::schema::NonPlayerData::init()'],['../classehm__dal_1_1schema_1_1_player_data.html#a0793b9ac2916ab0b0b4783e998b6391c',1,'ehm_dal::schema::PlayerData::init()'],['../classehm__dal_1_1schema_1_1_player_info.html#a16b1f12d14f04d57716f7b61caa014e8',1,'ehm_dal::schema::PlayerInfo::init()'],['../classehm__dal_1_1schema_1_1_player_rights.html#a24db611a33a818e31043929f54fe4622',1,'ehm_dal::schema::PlayerRights::init()'],['../classehm__dal_1_1schema_1_1_staff_history.html#ac6dc142ce60067b6a26aeaf0441686b7',1,'ehm_dal::schema::StaffHistory::init()'],['../classehm__dal_1_1schema_1_1_staff_info.html#a9015be98c3332de48914bd77b10874ff',1,'ehm_dal::schema::StaffInfo::init()'],['../classehm__dal_1_1schema_1_1_staff_preferences.html#a357b38bf6b53b04592337385e5be0b07',1,'ehm_dal::schema::StaffPreferences::init()'],['../classehm__dal_1_1schema_1_1_staff_award.html#ac75bfdc7e83096b773c95f10bbe8a0d0',1,'ehm_dal::schema::StaffAward::init()'],['../classehm__dal_1_1schema_1_1_staff_award_history.html#a74fe4204d24d52fa6aad421ba58ff07c',1,'ehm_dal::schema::StaffAwardHistory::init()'],['../classehm__dal_1_1schema_1_1_stage_name.html#a176bcdd65e475181cb3fd3c81b256373',1,'ehm_dal::schema::StageName::init()'],['../classehm__dal_1_1schema_1_1_state.html#ad2d13af2bfd083310a8804e0c7293488',1,'ehm_dal::schema::State::init()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a51729757a1334244f2efcb6b776fc46a',1,'ehm_dal::schema::AbstractTableItem::init()'],['../classehm__dal_1_1tables_1_1_abstract_table.html#a1b5a5a2cfc5f0b54f1475de6edc7c6e0',1,'ehm_dal::tables::AbstractTable::init()']]], + ['iscached_6',['isCached',['../classehm__dal_1_1column__data_1_1_column.html#aa14384261b226e0a3c64652e90f1305f',1,'ehm_dal::column_data::Column::isCached()'],['../classehm__dal_1_1column__data_1_1_column_data.html#a62546aa8101886cb8c0187153275b134',1,'ehm_dal::column_data::ColumnData::isCached()']]], + ['ischeckable_7',['isCheckable',['../classehm__dal_1_1column__data_1_1_column.html#af6d7543c092e6424992316007d37ea20',1,'ehm_dal::column_data::Column']]], + ['iscolourpointer_8',['isColourPointer',['../classehm__dal_1_1column__data_1_1_column.html#ad9944213926008e150b056f33fbc59f3',1,'ehm_dal::column_data::Column']]], + ['iscompressed_9',['isCompressed',['../classehm__dal_1_1saved__game_1_1_saved_game_data.html#af8e73931da06c4a44e4f3e888afd3d00',1,'ehm_dal::saved_game::SavedGameData']]], + ['iscontainer_10',['isContainer',['../classehm__dal_1_1column__data_1_1_column.html#a1e4bdb55fda47c67c4c2907e46b328d9',1,'ehm_dal::column_data::Column']]], + ['isdatabasetable_11',['isDatabaseTable',['../classehm__dal_1_1saved__game_1_1_saved_game_sub_file.html#a724983fed432f9aee370085ffeaae648',1,'ehm_dal::saved_game::SavedGameSubFile']]], + ['isdatabasetablepointer_12',['isDatabaseTablePointer',['../classehm__dal_1_1column__data_1_1_column.html#a60819922f8ccf9744038f0688037e752',1,'ehm_dal::column_data::Column']]], + ['isflagtablepointer_13',['isFlagTablePointer',['../classehm__dal_1_1column__data_1_1_column.html#a849889379c475f762d7b406c9a93adee',1,'ehm_dal::column_data::Column']]], + ['isidenticalto_14',['isIdenticalTo',['../classehm__dal_1_1data__types_1_1_string.html#a0001c5d128dc76244c8eb1a263a10af7',1,'ehm_dal::data_types::String']]], + ['isinitialised_15',['isInitialised',['../classehm__dal_1_1column__data_1_1_column_data.html#ade35114488339007f9f58fb79a019251',1,'ehm_dal::column_data::ColumnData']]], + ['isinvalid_16',['isInvalid',['../classehm__dal_1_1data__types_1_1_year.html#a050e5a9a2f548c06acaf4eafc75460bd',1,'ehm_dal::data_types::Year']]], + ['isnamestringpointer_17',['isNameStringPointer',['../classehm__dal_1_1column__data_1_1_column.html#ae304e3c01f52779ff7829ddb8d5a17e1',1,'ehm_dal::column_data::Column']]], + ['isnone_18',['isNone',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#af7b6a7cf73dd60335db8371aa1469169',1,'ehm_dal::data_types::AbstractPointer']]], + ['isopen_19',['isOpen',['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#ada616ff83e773a84ac03d953207cad0e',1,'ehm_dal::file_io::AbstractFileManager']]], + ['ispointer_20',['isPointer',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#ab653fcea6ca16f1c2661b32a1962a8df',1,'ehm_dal::data_types::AbstractPointer']]], + ['ispointerlist_21',['isPointerList',['../classehm__dal_1_1column__data_1_1_column.html#a9e622a6302ac8bc3fd96417f05d55a5f',1,'ehm_dal::column_data::Column']]], + ['israwpointer_22',['isRawPointer',['../classehm__dal_1_1column__data_1_1_column.html#aa213637e952ef66112c0b5769f8185f9',1,'ehm_dal::column_data::Column']]], + ['isreadonly_23',['isReadOnly',['../classehm__dal_1_1column__data_1_1_column.html#a621f36edebcb2532cabf0af67be22515',1,'ehm_dal::column_data::Column']]], + ['issaved_24',['isSaved',['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#a3107c69b78d5dc92d2d76cf788b21bdc',1,'ehm_dal::file_io::AbstractFileManager']]], + ['issortable_25',['isSortable',['../classehm__dal_1_1column__data_1_1_column_data.html#a00bd7247ec8124f1391d90c0b88dc37c',1,'ehm_dal::column_data::ColumnData']]], + ['isvalid_26',['isValid',['../classehm__dal_1_1column__data_1_1_column_data.html#aa9951c5f7f20b1c214447524ced833a3',1,'ehm_dal::column_data::ColumnData::isValid()'],['../classehm__dal_1_1data__types_1_1_year.html#ad194febdc160c44246e336847affbe60',1,'ehm_dal::data_types::Year::isValid()']]], + ['isvalidpointer_27',['isValidPointer',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#add334e4650fc186dbc59f05aa1264f26',1,'ehm_dal::data_types::AbstractPointer']]], + ['isvalidtable_28',['isValidTable',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#a37e6f5e3c915cd9227dc5213937b4a91',1,'ehm_dal::data_types::AbstractPointer']]], + ['iswithinrange_29',['isWithinRange',['../classehm__dal_1_1data__types_1_1_year.html#a804fed12f49b35760d52c241b55b0e30',1,'ehm_dal::data_types::Year']]] ]; diff --git a/docs/search/functions_9.js b/docs/search/functions_9.js index 2572e66..c405bd5 100644 --- a/docs/search/functions_9.js +++ b/docs/search/functions_9.js @@ -1,4 +1,5 @@ var searchData= [ - ['name_0',['name',['../classehm__dal_1_1column__data_1_1_column.html#a1872a23403dd8c06f4fc988eece086f0',1,'ehm_dal::column_data::Column::name()'],['../classehm__dal_1_1column__data_1_1_column_data.html#a830864af2bc3750bfad41fc978837148',1,'ehm_dal::column_data::ColumnData::name()'],['../classehm__dal_1_1tables_1_1_table_attributes.html#a16f9e597d6e86aaeb95373210ac16a08',1,'ehm_dal::tables::TableAttributes::name()']]] + ['name_0',['name',['../classehm__dal_1_1column__data_1_1_column.html#a1872a23403dd8c06f4fc988eece086f0',1,'ehm_dal::column_data::Column::name()'],['../classehm__dal_1_1column__data_1_1_column_data.html#a830864af2bc3750bfad41fc978837148',1,'ehm_dal::column_data::ColumnData::name()'],['../classehm__dal_1_1tables_1_1_table_attributes.html#a16f9e597d6e86aaeb95373210ac16a08',1,'ehm_dal::tables::TableAttributes::name()']]], + ['newspreadsheet_1',['newSpreadsheet',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#abf2158dbb4aef3d3cf57541d919c030f',1,'ehm_dal::spreadsheet::Spreadsheet']]] ]; diff --git a/docs/search/functions_a.js b/docs/search/functions_a.js index 6850263..c01d5b3 100644 --- a/docs/search/functions_a.js +++ b/docs/search/functions_a.js @@ -1,4 +1,4 @@ var searchData= [ - ['open_0',['open',['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#ae3a313bd163c4c0581b38b938375de8a',1,'ehm_dal::file_io::AbstractFileManager::open(const QString &path)'],['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#a810d9a82f5fd9c47828d40ec760f55ad',1,'ehm_dal::file_io::AbstractFileManager::open(QWidget *parent=nullptr)']]] + ['open_0',['open',['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#ae3a313bd163c4c0581b38b938375de8a',1,'ehm_dal::file_io::AbstractFileManager::open(const QString &path)'],['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#a810d9a82f5fd9c47828d40ec760f55ad',1,'ehm_dal::file_io::AbstractFileManager::open(QWidget *parent=nullptr)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#af386628bfcc5f24009c3068680170948',1,'ehm_dal::spreadsheet::Spreadsheet::open(const QString &file_path)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#ad0197013e0b271d5bb7c93e2564e1989',1,'ehm_dal::spreadsheet::Spreadsheet::open(const QString &folder, const QString &file_name)']]] ]; diff --git a/docs/search/functions_b.js b/docs/search/functions_b.js index f809ac5..5312743 100644 --- a/docs/search/functions_b.js +++ b/docs/search/functions_b.js @@ -2,5 +2,5 @@ var searchData= [ ['parentitemid_0',['parentItemId',['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#ae4d962223f547c70de05d64e8a99c12f',1,'ehm_dal::data_types::AbstractPointer::parentItemId()'],['../classehm__dal_1_1schema_1_1_club_history.html#ae80190d8c8634fa371300657a33493fc',1,'ehm_dal::schema::ClubHistory::parentItemId()'],['../classehm__dal_1_1schema_1_1_club_records.html#aa940ea96d479a5d134709d3f1ebd68df',1,'ehm_dal::schema::ClubRecords::parentItemId()'],['../classehm__dal_1_1schema_1_1_retired_number.html#a7ec46423740ffdfeaddeb927826e988e',1,'ehm_dal::schema::RetiredNumber::parentItemId()'],['../classehm__dal_1_1schema_1_1_club_competition_history.html#ac216548e00684a2c6a6cf99c28bdecfe',1,'ehm_dal::schema::ClubCompetitionHistory::parentItemId()'],['../classehm__dal_1_1schema_1_1_draft_history.html#a2adc47b607ae87afd590533f1b577670',1,'ehm_dal::schema::DraftHistory::parentItemId()'],['../classehm__dal_1_1schema_1_1_player_info.html#afe92cb91f96ed6035be28b8ecf8900bb',1,'ehm_dal::schema::PlayerInfo::parentItemId()'],['../classehm__dal_1_1schema_1_1_player_rights.html#a6258287d9f8764265603c4b850174764',1,'ehm_dal::schema::PlayerRights::parentItemId()'],['../classehm__dal_1_1schema_1_1_staff_history.html#a6a05cfa061e06dc502e838a2290e5a3d',1,'ehm_dal::schema::StaffHistory::parentItemId()'],['../classehm__dal_1_1schema_1_1_staff_info.html#a611cf8f2ac071f295330bf97a02186a9',1,'ehm_dal::schema::StaffInfo::parentItemId()'],['../classehm__dal_1_1schema_1_1_staff_award_history.html#ac6840f6cbaeb84b372c106126832a71b',1,'ehm_dal::schema::StaffAwardHistory::parentItemId()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a098eebe384ae716e62de03a8a2cdf0e2',1,'ehm_dal::schema::AbstractTableItem::parentItemId()']]], ['pointer_1',['pointer',['../classehm__dal_1_1tables_1_1_abstract_table.html#a4d0e1f8a8e7313fec48668e87c580e47',1,'ehm_dal::tables::AbstractTable']]], - ['printdiagnosticdata_2',['printDiagnosticData',['../classehm__dal_1_1database_1_1_database_version.html#a661de7564d9390d3052a39034e2ceef0',1,'ehm_dal::database::DatabaseVersion']]] + ['printdiagnosticdata_2',['printDiagnosticData',['../classehm__dal_1_1database_1_1_database_version.html#a661de7564d9390d3052a39034e2ceef0',1,'ehm_dal::database::DatabaseVersion::printDiagnosticData()'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#acc7007fc094de7a45e327be4367ad1ab',1,'ehm_dal::spreadsheet::Spreadsheet::printDiagnosticData()']]] ]; diff --git a/docs/search/functions_c.js b/docs/search/functions_c.js index a4db697..27ed624 100644 --- a/docs/search/functions_c.js +++ b/docs/search/functions_c.js @@ -1,6 +1,6 @@ var searchData= [ - ['read_0',['read',['../classehm__dal_1_1_database.html#a40f87a4f6f8a3d8797c43c943d06676e',1,'ehm_dal::Database::read(const QString &file_path)'],['../classehm__dal_1_1_database.html#a9409389c6cdd6b19bdbc49d3f9713ee3',1,'ehm_dal::Database::read(QDataStream &in)'],['../classehm__dal_1_1_database.html#a61b9a3588e3879603db5544da4360517',1,'ehm_dal::Database::read(QDataStream &in, const qsizetype file_size)'],['../classehm__dal_1_1schema_1_1_affiliation.html#a17b8953b1c76c44b04256368c67de971',1,'ehm_dal::schema::Affiliation::read()'],['../classehm__dal_1_1schema_1_1_arena.html#a84730f7db41703331260774115798233',1,'ehm_dal::schema::Arena::read()'],['../classehm__dal_1_1schema_1_1_city.html#a7b56f55eabdb4ef97df7e9e5c1ea4f63',1,'ehm_dal::schema::City::read()'],['../classehm__dal_1_1schema_1_1_club.html#a4d7a80fa98fb0b5e8b120b6549e61f54',1,'ehm_dal::schema::Club::read()'],['../classehm__dal_1_1schema_1_1_club_history.html#a06b2486d21949d0add3948722b6d8af5',1,'ehm_dal::schema::ClubHistory::read()'],['../classehm__dal_1_1schema_1_1_club_records.html#a7a2a363fdc0c7b1b3d03669be98bb3f2',1,'ehm_dal::schema::ClubRecords::read()'],['../classehm__dal_1_1schema_1_1_retired_number.html#a86b931276ed63f371b6f3d79475c64fa',1,'ehm_dal::schema::RetiredNumber::read()'],['../classehm__dal_1_1schema_1_1_club_competition.html#afce950c661aa4b88f117f667b9b0ca30',1,'ehm_dal::schema::ClubCompetition::read()'],['../classehm__dal_1_1schema_1_1_club_competition_history.html#acf15d4e4e84c78dcc8d2f46ccfb31e37',1,'ehm_dal::schema::ClubCompetitionHistory::read()'],['../classehm__dal_1_1schema_1_1_colour.html#a05e5f28d60be33cb0b3a36e063e8aa6b',1,'ehm_dal::schema::Colour::read()'],['../classehm__dal_1_1schema_1_1_continent.html#abccb3846be13892e4f02072b02b091ce',1,'ehm_dal::schema::Continent::read()'],['../classehm__dal_1_1schema_1_1_currency.html#a8d390dbfcbb0aec02be89028998f5690',1,'ehm_dal::schema::Currency::read()'],['../classehm__dal_1_1schema_1_1_database_header.html#a36797fb387daed82e69343e611eae350',1,'ehm_dal::schema::DatabaseHeader::read()'],['../classehm__dal_1_1schema_1_1_draft.html#a14884759c0717996fd42ef673922d598',1,'ehm_dal::schema::Draft::read()'],['../classehm__dal_1_1schema_1_1_game_basic_data.html#a39dedb3d9e399650a49be130a534f1d3',1,'ehm_dal::schema::GameBasicData::read()'],['../classehm__dal_1_1schema_1_1_injury.html#a83b8986ea6d8b4c7e18431edc34fca89',1,'ehm_dal::schema::Injury::read()'],['../classehm__dal_1_1schema_1_1_name.html#a1e4b4127c5218c981dbf4c45bb67a77a',1,'ehm_dal::schema::Name::read()'],['../classehm__dal_1_1schema_1_1_nation.html#ac5cdbec36423fe82cdc8d05d037a87df',1,'ehm_dal::schema::Nation::read()'],['../classehm__dal_1_1schema_1_1_official.html#a2514840f45eb0cff1f39a0dfcf5cab47',1,'ehm_dal::schema::Official::read()'],['../classehm__dal_1_1schema_1_1_staff.html#ab47a20f5bd8274831b0d61ff76bfaa77',1,'ehm_dal::schema::Staff::read()'],['../classehm__dal_1_1schema_1_1_draft_history.html#a4adc7ce6d107d19eb4bd8cdc0803c7cb',1,'ehm_dal::schema::DraftHistory::read()'],['../classehm__dal_1_1schema_1_1_non_player_data.html#a2e0548e989cbeaa67f2a9a8bf93508da',1,'ehm_dal::schema::NonPlayerData::read()'],['../classehm__dal_1_1schema_1_1_player_data.html#ac97d7ea55defb41f5cc552000f98c381',1,'ehm_dal::schema::PlayerData::read()'],['../classehm__dal_1_1schema_1_1_player_info.html#abbeffeeb924343979216545603d728da',1,'ehm_dal::schema::PlayerInfo::read()'],['../classehm__dal_1_1schema_1_1_player_rights.html#a1d4d81aa91fb6047010ec9d2d40e7aae',1,'ehm_dal::schema::PlayerRights::read()'],['../classehm__dal_1_1schema_1_1_staff_history.html#ad654550774791573c85b53c4cf50bcea',1,'ehm_dal::schema::StaffHistory::read()'],['../classehm__dal_1_1schema_1_1_staff_info.html#ab9370860c985596a3e854321ce93f993',1,'ehm_dal::schema::StaffInfo::read()'],['../classehm__dal_1_1schema_1_1_staff_preferences.html#a4ac3d01f75c5bf0c7fe5ee51dcfd43d5',1,'ehm_dal::schema::StaffPreferences::read()'],['../classehm__dal_1_1schema_1_1_staff_award.html#aa66b30512dc51a1083eb7a153b1bb7c0',1,'ehm_dal::schema::StaffAward::read()'],['../classehm__dal_1_1schema_1_1_staff_award_history.html#a95104a583a3c435380e23658bc91f729',1,'ehm_dal::schema::StaffAwardHistory::read()'],['../classehm__dal_1_1schema_1_1_stage_name.html#a5cd82b200fc50a6fa43fb5628510c898',1,'ehm_dal::schema::StageName::read()'],['../classehm__dal_1_1schema_1_1_state.html#a340552e839120d777af663615c2a9920',1,'ehm_dal::schema::State::read()'],['../classehm__dal_1_1saved__game_1_1_saved_game_data.html#a2fc48f788de995bfea6053367f10148d',1,'ehm_dal::saved_game::SavedGameData::read()'],['../classehm__dal_1_1_saved_game.html#a155a1f76185f19fc60cc50fbb9451582',1,'ehm_dal::SavedGame::read()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a74ae9eef14206dd9ea2ddd53e0f683c9',1,'ehm_dal::schema::AbstractTableItem::read()'],['../classehm__dal_1_1tables_1_1_abstract_table.html#ac6eb6577b9a2cc626e15ef159fefaf53',1,'ehm_dal::tables::AbstractTable::read()']]], + ['read_0',['read',['../classehm__dal_1_1_database.html#a40f87a4f6f8a3d8797c43c943d06676e',1,'ehm_dal::Database::read(const QString &file_path)'],['../classehm__dal_1_1_database.html#a9409389c6cdd6b19bdbc49d3f9713ee3',1,'ehm_dal::Database::read(QDataStream &in)'],['../classehm__dal_1_1_database.html#a61b9a3588e3879603db5544da4360517',1,'ehm_dal::Database::read(QDataStream &in, const qsizetype file_size)'],['../classehm__dal_1_1schema_1_1_affiliation.html#a17b8953b1c76c44b04256368c67de971',1,'ehm_dal::schema::Affiliation::read()'],['../classehm__dal_1_1schema_1_1_arena.html#a84730f7db41703331260774115798233',1,'ehm_dal::schema::Arena::read()'],['../classehm__dal_1_1schema_1_1_city.html#a7b56f55eabdb4ef97df7e9e5c1ea4f63',1,'ehm_dal::schema::City::read()'],['../classehm__dal_1_1schema_1_1_club.html#a4d7a80fa98fb0b5e8b120b6549e61f54',1,'ehm_dal::schema::Club::read()'],['../classehm__dal_1_1schema_1_1_club_history.html#a06b2486d21949d0add3948722b6d8af5',1,'ehm_dal::schema::ClubHistory::read()'],['../classehm__dal_1_1schema_1_1_club_records.html#a7a2a363fdc0c7b1b3d03669be98bb3f2',1,'ehm_dal::schema::ClubRecords::read()'],['../classehm__dal_1_1schema_1_1_retired_number.html#a86b931276ed63f371b6f3d79475c64fa',1,'ehm_dal::schema::RetiredNumber::read()'],['../classehm__dal_1_1schema_1_1_club_competition.html#afce950c661aa4b88f117f667b9b0ca30',1,'ehm_dal::schema::ClubCompetition::read()'],['../classehm__dal_1_1schema_1_1_club_competition_history.html#acf15d4e4e84c78dcc8d2f46ccfb31e37',1,'ehm_dal::schema::ClubCompetitionHistory::read()'],['../classehm__dal_1_1schema_1_1_colour.html#a05e5f28d60be33cb0b3a36e063e8aa6b',1,'ehm_dal::schema::Colour::read()'],['../classehm__dal_1_1schema_1_1_continent.html#abccb3846be13892e4f02072b02b091ce',1,'ehm_dal::schema::Continent::read()'],['../classehm__dal_1_1schema_1_1_currency.html#a8d390dbfcbb0aec02be89028998f5690',1,'ehm_dal::schema::Currency::read()'],['../classehm__dal_1_1schema_1_1_database_header.html#a36797fb387daed82e69343e611eae350',1,'ehm_dal::schema::DatabaseHeader::read()'],['../classehm__dal_1_1schema_1_1_draft.html#a14884759c0717996fd42ef673922d598',1,'ehm_dal::schema::Draft::read()'],['../classehm__dal_1_1schema_1_1_game_basic_data.html#a39dedb3d9e399650a49be130a534f1d3',1,'ehm_dal::schema::GameBasicData::read()'],['../classehm__dal_1_1schema_1_1_injury.html#a83b8986ea6d8b4c7e18431edc34fca89',1,'ehm_dal::schema::Injury::read()'],['../classehm__dal_1_1schema_1_1_name.html#a1e4b4127c5218c981dbf4c45bb67a77a',1,'ehm_dal::schema::Name::read()'],['../classehm__dal_1_1schema_1_1_nation.html#ac5cdbec36423fe82cdc8d05d037a87df',1,'ehm_dal::schema::Nation::read()'],['../classehm__dal_1_1schema_1_1_official.html#a2514840f45eb0cff1f39a0dfcf5cab47',1,'ehm_dal::schema::Official::read()'],['../classehm__dal_1_1schema_1_1_staff.html#ab47a20f5bd8274831b0d61ff76bfaa77',1,'ehm_dal::schema::Staff::read()'],['../classehm__dal_1_1schema_1_1_draft_history.html#a4adc7ce6d107d19eb4bd8cdc0803c7cb',1,'ehm_dal::schema::DraftHistory::read()'],['../classehm__dal_1_1schema_1_1_non_player_data.html#a2e0548e989cbeaa67f2a9a8bf93508da',1,'ehm_dal::schema::NonPlayerData::read()'],['../classehm__dal_1_1schema_1_1_player_data.html#ac97d7ea55defb41f5cc552000f98c381',1,'ehm_dal::schema::PlayerData::read()'],['../classehm__dal_1_1schema_1_1_player_info.html#abbeffeeb924343979216545603d728da',1,'ehm_dal::schema::PlayerInfo::read()'],['../classehm__dal_1_1schema_1_1_player_rights.html#a1d4d81aa91fb6047010ec9d2d40e7aae',1,'ehm_dal::schema::PlayerRights::read()'],['../classehm__dal_1_1schema_1_1_staff_history.html#ad654550774791573c85b53c4cf50bcea',1,'ehm_dal::schema::StaffHistory::read()'],['../classehm__dal_1_1schema_1_1_staff_info.html#ab9370860c985596a3e854321ce93f993',1,'ehm_dal::schema::StaffInfo::read()'],['../classehm__dal_1_1schema_1_1_staff_preferences.html#a4ac3d01f75c5bf0c7fe5ee51dcfd43d5',1,'ehm_dal::schema::StaffPreferences::read()'],['../classehm__dal_1_1schema_1_1_staff_award.html#aa66b30512dc51a1083eb7a153b1bb7c0',1,'ehm_dal::schema::StaffAward::read()'],['../classehm__dal_1_1schema_1_1_staff_award_history.html#a95104a583a3c435380e23658bc91f729',1,'ehm_dal::schema::StaffAwardHistory::read()'],['../classehm__dal_1_1schema_1_1_stage_name.html#a5cd82b200fc50a6fa43fb5628510c898',1,'ehm_dal::schema::StageName::read()'],['../classehm__dal_1_1schema_1_1_state.html#a340552e839120d777af663615c2a9920',1,'ehm_dal::schema::State::read()'],['../classehm__dal_1_1saved__game_1_1_saved_game_data.html#a2fc48f788de995bfea6053367f10148d',1,'ehm_dal::saved_game::SavedGameData::read()'],['../classehm__dal_1_1_saved_game.html#a155a1f76185f19fc60cc50fbb9451582',1,'ehm_dal::SavedGame::read()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a74ae9eef14206dd9ea2ddd53e0f683c9',1,'ehm_dal::schema::AbstractTableItem::read()'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a74c8abd84600dd606738ec251358dbba',1,'ehm_dal::spreadsheet::Spreadsheet::read()'],['../classehm__dal_1_1tables_1_1_abstract_table.html#ac6eb6577b9a2cc626e15ef159fefaf53',1,'ehm_dal::tables::AbstractTable::read()']]], ['readchararray_1',['readCharArray',['../classehm__dal_1_1data__types_1_1_string.html#ada8a49f852b874f92ab8e7dfc132216d',1,'ehm_dal::data_types::String']]], ['readdata_2',['readData',['../classehm__dal_1_1tables_1_1_abstract_table.html#aeb8b7a12ce65f5fd2ef52c1fca816d08',1,'ehm_dal::tables::AbstractTable']]], ['readfromsavedgame_3',['readFromSavedGame',['../classehm__dal_1_1data__types_1_1_date.html#afa2e7e3d4ec6dddf68fde9e6702b47a0',1,'ehm_dal::data_types::Date']]], @@ -12,5 +12,6 @@ var searchData= ['relatedtablename_9',['relatedTableName',['../classehm__dal_1_1column__data_1_1_column.html#a7fcb1e4af2593588b61989c1d73c3b0a',1,'ehm_dal::column_data::Column']]], ['reset_10',['reset',['../classehm__dal_1_1data__types_1_1_year.html#a5c341b3c58106df5c81850fceca42218',1,'ehm_dal::data_types::Year']]], ['roundeddecimal_11',['roundedDecimal',['../classehm__dal_1_1data__types_1_1_data_type.html#a8bc781d2479632c1742177106ce6f953',1,'ehm_dal::data_types::DataType']]], - ['rowcount_12',['rowCount',['../classehm__dal_1_1tables_1_1_abstract_table.html#a5a6cf2ae6dadc2c3fb435b532a88d41b',1,'ehm_dal::tables::AbstractTable']]] + ['row_12',['row',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aaf816e56b59790686f0f03f5faa84d5a',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['rowcount_13',['rowCount',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a09c399aab7c9b758f8541b4a34ad17ba',1,'ehm_dal::spreadsheet::Spreadsheet::rowCount()'],['../classehm__dal_1_1tables_1_1_abstract_table.html#a5a6cf2ae6dadc2c3fb435b532a88d41b',1,'ehm_dal::tables::AbstractTable::rowCount()']]] ]; diff --git a/docs/search/functions_d.js b/docs/search/functions_d.js index 37baea1..99c710b 100644 --- a/docs/search/functions_d.js +++ b/docs/search/functions_d.js @@ -1,6 +1,6 @@ var searchData= [ - ['save_0',['save',['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#a9dbd8e0bc964d6c8f864df16b482343e',1,'ehm_dal::file_io::AbstractFileManager']]], + ['save_0',['save',['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#a9dbd8e0bc964d6c8f864df16b482343e',1,'ehm_dal::file_io::AbstractFileManager::save()'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a6f976d76532f0eb547ab4e440a306f15',1,'ehm_dal::spreadsheet::Spreadsheet::save()']]], ['saveas_1',['saveAs',['../classehm__dal_1_1file__io_1_1_abstract_file_manager.html#a823c67d292144f03847dca1e9fd4206e',1,'ehm_dal::file_io::AbstractFileManager']]], ['savedgame_2',['SavedGame',['../classehm__dal_1_1_saved_game.html#a08b047bbf3ecb95f8aac9e6a93044e65',1,'ehm_dal::SavedGame']]], ['savedgamedata_3',['SavedGameData',['../classehm__dal_1_1saved__game_1_1_saved_game_data.html#ad8561bc839098b28fcd67909795dcfdf',1,'ehm_dal::saved_game::SavedGameData']]], @@ -9,9 +9,14 @@ var searchData= ['setcachecomplete_6',['setCacheComplete',['../classehm__dal_1_1column__data_1_1_column_data.html#ad317e6228be474a0eac25bfb2e520703',1,'ehm_dal::column_data::ColumnData']]], ['setchilddata_7',['setChildData',['../classehm__dal_1_1schema_1_1_club.html#a8fe7698f15ed4d39a63e3ad995014eb8',1,'ehm_dal::schema::Club::setChildData()'],['../classehm__dal_1_1schema_1_1_club_competition.html#a426ed2f0da159c706ef75fd5cc055eaf',1,'ehm_dal::schema::ClubCompetition::setChildData()'],['../classehm__dal_1_1schema_1_1_staff.html#ac5e4594eea31a34b67acf2547d9cf867',1,'ehm_dal::schema::Staff::setChildData()'],['../classehm__dal_1_1schema_1_1_staff_award.html#ad06a3ecd2b53843fabdafd81ed5c27e8',1,'ehm_dal::schema::StaffAward::setChildData()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a65687679fe94d66e1d8b168838b5112c',1,'ehm_dal::schema::AbstractTableItem::setChildData()']]], ['setdata_8',['setData',['../classehm__dal_1_1data__types_1_1_data_type.html#afc80377b74b49ac2ffa72a7498cfe523',1,'ehm_dal::data_types::DataType::setData()'],['../classehm__dal_1_1data__types_1_1_abstract_data_type.html#a1d71d7fd40c3c389000f23da1013ddcc',1,'ehm_dal::data_types::AbstractDataType::setData()'],['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#a014f791a94a289889de221f12043704e',1,'ehm_dal::data_types::AbstractPointer::setData(const QVariant &value, const qint32 role)'],['../classehm__dal_1_1data__types_1_1_abstract_pointer.html#a6a5146838c286a355e72fb28f87e65de',1,'ehm_dal::data_types::AbstractPointer::setData(const qint32 column, const QVariant &value, const qint32 role)'],['../classehm__dal_1_1schema_1_1_club_records.html#a18510266628e6f8c674130fa9f02a00b',1,'ehm_dal::schema::ClubRecords::setData()'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#a2409edd7a51de284cd006da4a3fcdd6a',1,'ehm_dal::schema::AbstractTableItem::setData(const qint32 column, const QVariant &value, qint32 role, std::vector< qint32 > &modified_columns, ehm_dal::column_data::ColumnData *column_data)'],['../classehm__dal_1_1schema_1_1_abstract_table_item.html#ad9bfb0be6d9813a8299cde09774bcf15',1,'ehm_dal::schema::AbstractTableItem::setData(const QModelIndex &index, const QVariant &value, qint32 role, std::vector< qint32 > &modified_columns, ehm_dal::column_data::ColumnData *column_data)']]], - ['setiflater_9',['setIfLater',['../classehm__dal_1_1data__types_1_1_year.html#af87859a23280e08cb583e45ec70335c1',1,'ehm_dal::data_types::Year']]], - ['setvalue_10',['setValue',['../classehm__dal_1_1data__types_1_1_data_type.html#af273efac20e4ef8dff407c8e31ef74e4',1,'ehm_dal::data_types::DataType']]], - ['setversion_11',['setVersion',['../classehm__dal_1_1database_1_1_database_version.html#a84e0df5c3eb537131b7cf0cbcdcf101b',1,'ehm_dal::database::DatabaseVersion']]], - ['size_12',['size',['../classehm__dal_1_1data__types_1_1_string.html#a08a259cb852e3212b47b1839106ef0f6',1,'ehm_dal::data_types::String']]], - ['string_13',['String',['../classehm__dal_1_1data__types_1_1_string.html#ae5ee99dc52e9297760916fd0b7978ef0',1,'ehm_dal::data_types::String::String()'],['../classehm__dal_1_1data__types_1_1_string.html#ae40743cfaf3aa49b62ea0f99e9767558',1,'ehm_dal::data_types::String::String(const QString &text)']]] + ['setdefaultfileextension_9',['setDefaultFileExtension',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a45f06f79bd6509a1efd1cbc9d6133429',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['setfile_10',['setFile',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a88b4203ec0d5c202a98e12aef1ede281',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['setheadercount_11',['setHeaderCount',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a95e7e52a13395c4232acbe036da57df2',1,'ehm_dal::spreadsheet::Spreadsheet']]], + ['setiflater_12',['setIfLater',['../classehm__dal_1_1data__types_1_1_year.html#af87859a23280e08cb583e45ec70335c1',1,'ehm_dal::data_types::Year']]], + ['setvalue_13',['setValue',['../classehm__dal_1_1data__types_1_1_data_type.html#af273efac20e4ef8dff407c8e31ef74e4',1,'ehm_dal::data_types::DataType']]], + ['setversion_14',['setVersion',['../classehm__dal_1_1database_1_1_database_version.html#a84e0df5c3eb537131b7cf0cbcdcf101b',1,'ehm_dal::database::DatabaseVersion']]], + ['showopendialog_15',['showOpenDialog',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a775a493ff6b72a72ff231a17e03e11cc',1,'ehm_dal::spreadsheet::Spreadsheet::showOpenDialog(QString file_path=QString(), const bool read_data=true)'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#aedb3e27e7b1d22440660a559223047f8',1,'ehm_dal::spreadsheet::Spreadsheet::showOpenDialog(settings::FolderPath &path, const bool read_data=true)']]], + ['showsavedialog_16',['showSaveDialog',['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a34dda677bc080c30db6c9b4489447715',1,'ehm_dal::spreadsheet::Spreadsheet::showSaveDialog(const QString &file_name="output.csv", QString file_path=QString())'],['../classehm__dal_1_1spreadsheet_1_1_spreadsheet.html#a6877aa5c090853ab977b5e346f0e377d',1,'ehm_dal::spreadsheet::Spreadsheet::showSaveDialog(settings::FolderPath &path)']]], + ['size_17',['size',['../classehm__dal_1_1data__types_1_1_string.html#a08a259cb852e3212b47b1839106ef0f6',1,'ehm_dal::data_types::String']]], + ['string_18',['String',['../classehm__dal_1_1data__types_1_1_string.html#ae5ee99dc52e9297760916fd0b7978ef0',1,'ehm_dal::data_types::String::String()'],['../classehm__dal_1_1data__types_1_1_string.html#ae40743cfaf3aa49b62ea0f99e9767558',1,'ehm_dal::data_types::String::String(const QString &text)']]] ]; diff --git a/docs/spreadsheet_8h_source.html b/docs/spreadsheet_8h_source.html index f75c165..f3536af 100644 --- a/docs/spreadsheet_8h_source.html +++ b/docs/spreadsheet_8h_source.html @@ -104,203 +104,280 @@
8namespace ehm_dal::settings {
9class FolderPath;
10}
-
11
-
12// Qt headers
-
13class QAbstractTableModel;
-
14#include <QString>
-
15#include <QVariant>
-
16#include <span>
-
17#include <vector>
-
18
-
19namespace ehm_dal::spreadsheet {
-
20
-
21// --- Spreadsheet --- //
- -
23{
-
24public:
-
25 // Constructor
-
26 Spreadsheet(const QString &file_path = QString());
- - -
29
-
30 // Add data - cells/rows: basic
-
31 inline void add() { add(QVariant()); }
-
32 inline void add(const QString &text) { add(QVariant(text)); }
-
33 void add(const QVariant &data);
-
34 void add(const QVariant &data, const qint32 row);
-
35 void add(const QVariant &data, const qint32 start_row, const qint32 row_count);
-
36
-
37 // Add data - cells/rows: model data
-
44 void add(QAbstractTableModel *model, const Qt::ItemDataRole role = Qt::DisplayRole);
-
52 void add(QAbstractTableModel *model,
-
53 const std::vector<qint32> &column_index_list,
-
54 const Qt::ItemDataRole role = Qt::DisplayRole);
-
62 void add(QAbstractTableModel *model,
-
63 const qint32 row,
-
64 const Qt::ItemDataRole role = Qt::DisplayRole);
-
73 void add(QAbstractTableModel *model,
-
74 const qint32 row,
-
75 const std::vector<qint32> &column_index_list,
-
76 const Qt::ItemDataRole role = Qt::DisplayRole);
-
82 void add(const ehm_dal::data_types::Pointer &pointer, const Qt::ItemDataRole role = Qt::DisplayRole);
-
89 void add(const ehm_dal::data_types::Pointer &pointer,
-
90 const std::vector<qint32> &column_index_list,
-
91 const Qt::ItemDataRole role = Qt::DisplayRole);
-
97 void add(const std::vector<ehm_dal::data_types::Pointer> &pointer_list,
+
11namespace ehm_dal::tables {
+
12class AbstractTable;
+
13}
+
14
+
15// Qt headers
+
16class QAbstractTableModel;
+
17#include <QString>
+
18#include <QVariant>
+
19#include <span>
+
20#include <vector>
+
21
+
22namespace ehm_dal::spreadsheet {
+
23
+
24// --- Spreadsheet --- //
+ +
26{
+
27public:
+
28 // Constructor
+
29 Spreadsheet(const QString &file_path = QString());
+ + +
32
+
33 // Add data - cells/rows: basic
+
34 inline void add() { add(QVariant()); }
+
35 inline void add(const QString &text) { add(QVariant(text)); }
+
36 void add(const QVariant &data);
+
37 void add(const QVariant &data, const qint32 row);
+
38 void add(const QVariant &data, const qint32 start_row, const qint32 row_count);
+
39
+
40 // Add data - cells/rows: AbstractTable data
+
47 void add(ehm_dal::tables::AbstractTable *model, const Qt::ItemDataRole role = Qt::DisplayRole);
+ +
56 const std::vector<qint32> &column_index_list,
+
57 const Qt::ItemDataRole role = Qt::DisplayRole);
+ +
66 const qint32 row,
+
67 const Qt::ItemDataRole role = Qt::DisplayRole);
+ +
77 const qint32 row,
+
78 const std::vector<qint32> &column_index_list,
+
79 const Qt::ItemDataRole role = Qt::DisplayRole);
+
80
+
81 // Add data - cells/rows: QAbstractTableModel data
+
88 void add(QAbstractTableModel *model, const Qt::ItemDataRole role = Qt::DisplayRole);
+
96 void add(QAbstractTableModel *model,
+
97 const std::vector<qint32> &column_index_list,
98 const Qt::ItemDataRole role = Qt::DisplayRole);
-
105 void add(const std::vector<ehm_dal::data_types::Pointer> &pointer_list,
-
106 const std::vector<qint32> &column_index_list,
-
107 const Qt::ItemDataRole role = Qt::DisplayRole);
-
108
-
109 // Add data - prefix cells
-
110 inline void addPrefix() { addPrefix(QVariant()); }
-
111 inline void addPrefix(const QVariant &data) { prefix_cell_data_.push_back(data); }
-
112
-
113 // Add data - header: basic
-
114 inline void addHeader() { add(QVariant()); }
-
115 inline void addHeader(const QString &text) { addHeader(QVariant(text)); }
-
116 void addHeader(const QStringList &text_list);
-
117 void addHeader(const QVariant &data);
-
118
-
119 // Add data - header: model data
-
125 void addHeader(QAbstractTableModel *model);
-
132 void addHeader(QAbstractTableModel *model, const std::vector<qint32> &column_index_list);
-
133
-
134 // Add data - prefix header
-
135 inline void addHeaderPrefix() { addHeaderPrefix(QVariant()); }
-
136 inline void addHeaderPrefix(const QVariant &data) { prefix_header_data_.push_back(data); }
-
137
-
138 // Debugging / diagnostics
-
139 void printDiagnosticData() const;
-
140
-
141 // File details - get data
-
142 QString file();
-
147 inline QString fileName() { return file_name_; }
-
152 QString fileType() const;
-
153 inline QString identifier() { return headerCell(0,0).toString().replace(" ", "_").toLower(); }
+
106 void add(QAbstractTableModel *model,
+
107 const qint32 row,
+
108 const Qt::ItemDataRole role = Qt::DisplayRole);
+
117 void add(QAbstractTableModel *model,
+
118 const qint32 row,
+
119 const std::vector<qint32> &column_index_list,
+
120 const Qt::ItemDataRole role = Qt::DisplayRole);
+
121
+
122 // Add data - cells/rows: Pointer data
+
128 void add(const ehm_dal::data_types::Pointer &pointer, const Qt::ItemDataRole role = Qt::DisplayRole);
+ +
136 const std::vector<qint32> &column_index_list,
+
137 const Qt::ItemDataRole role = Qt::DisplayRole);
+
143 void add(const std::vector<ehm_dal::data_types::Pointer> &pointer_list,
+
144 const Qt::ItemDataRole role = Qt::DisplayRole);
+
151 void add(const std::vector<ehm_dal::data_types::Pointer> &pointer_list,
+
152 const std::vector<qint32> &column_index_list,
+
153 const Qt::ItemDataRole role = Qt::DisplayRole);
154
-
155 // File details - set data
-
156 void addFileNameSuffix(const QString &suffix);
-
157 bool setFile(const QString &path);
-
158
-
159 // File extensions
-
160 static qint32 defaultFileExtension();
-
161 static QString fileExtensionListAsString(const bool merged_list = true);
-
162 static QStringList fileExtensionListAsStringList();
-
163 static void setDefaultFileExtension(const qint32 i);
-
164
-
165 // File I/O
-
166 bool open(const QString &file_path);
-
167 bool open(const QString &folder, const QString &file_name);
-
168 bool read();
-
169 bool save(const QString &folder, const QString &file_name);
-
174 bool write();
-
175
-
176 // File I/O dialog windows
-
177 bool showOpenDialog(QString file_path = QString(), const bool read_data = true);
-
178 bool showOpenDialog(settings::FolderPath &path, const bool read_data = true);
-
179 bool showSaveDialog(const QString &file_name = "output.csv", QString file_path = QString());
-
180 bool showSaveDialog(settings::FolderPath &path);
-
181
-
182 // Get data - cells
-
183 QVariant cell(const qint32 row, const qint32 col) const;
-
184 std::span<const QVariant> cells(const qint32 row,
-
185 const qint32 col,
-
186 const qint32 col_count) const;
-
187 bool columnContainsData(const qint32 column) const;
-
188 qint32 columnCount(const qint32 row) const;
-
189 std::span<const QVariant> row(const qint32 row) const;
-
190 inline qint32 rowCount() const { return static_cast<qint32>(cell_data_.size()); }
-
191
-
192 // Get data - prefix cells
-
193 QVariant prefix(const qint32 row) const;
-
194 inline bool hasPrefixData() const { return prefixCount() > 0; }
-
195 inline qint32 prefixCount() const { return static_cast<qint32>(prefix_cell_data_.size()); }
-
196
-
197 // Get data - header
-
198 std::span<const QVariant> header(const qint32 row) const;
-
199 QVariant headerCell(const qint32 row, const quint16 col) const;
-
200 inline qint32 headerCount() const
-
201 {
-
202 return std::max(static_cast<qint32>(header_data_.size()), header_count_);
-
203 }
-
204
-
205 // Get data - header
-
206 QVariant prefixHeader(const qint32 row) const;
-
207 inline bool hasPrefixHeaderData() const { return prefixHeaderCount() > 0; }
-
208 inline qint32 prefixHeaderCount() const
-
209 {
-
210 return static_cast<qint32>(prefix_header_data_.size());
-
211 }
+
155 // Add data - prefix cells
+
159 inline void addPrefix() { addPrefix(QVariant()); }
+
164 inline void addPrefix(const QVariant &data) { prefix_cell_data_.push_back(data); }
+
165
+
166 // Add data - header: basic
+
170 inline void addHeader() { add(QVariant()); }
+
175 inline void addHeader(const QString &text) { addHeader(QVariant(text)); }
+
180 void addHeader(const QStringList &text_list);
+
185 void addHeader(const QVariant &data);
+
186
+
187 // Add data - header: model data
+
193 void addHeader(QAbstractTableModel *model);
+
200 void addHeader(QAbstractTableModel *model, const std::vector<qint32> &column_index_list);
+
201
+
202 // Add data - prefix header
+
206 inline void addHeaderPrefix() { addHeaderPrefix(QVariant()); }
+
211 inline void addHeaderPrefix(const QVariant &data) { prefix_header_data_.push_back(data); }
212
-
213 // Get settings
-
214 static QString exportPath();
-
215 static QString importPath();
-
216
-
217 // Row data: add data
-
218 void addNewHeaderRow();
-
219 void addNewRow();
-
220
-
221 // Set header data
-
222 void setHeaderCount(const qint32 header_row_count);
-
223
-
224 // Spreadsheet file
-
225 std::unique_ptr<SpreadsheetFile> newSpreadsheet(QFile &f);
-
226
-
227private:
-
228 // Data
-
229 std::vector<std::vector<QVariant>> cell_data_;
-
230 std::vector<std::vector<QVariant>> header_data_;
-
231 std::vector<QVariant> prefix_cell_data_;
-
232 std::vector<QVariant> prefix_header_data_;
-
233
-
234 // Column data
-
235 std::vector<qint32> columnList(const qint32 column_count) const;
-
236
-
237 // File data
-
238 quint8 file_extension_;
-
239 QString file_name_;
-
240 QString path_;
-
241
-
242 // File extensions (functions)
-
243 static QHash<QString, quint8> fileExtensions();
-
244 static QString filterText(const qint32 type);
-
245
-
246 // File extensions (members)
-
247 enum ENUM_FILE_EXTENSIONS {
-
248 CSV,
-
249 XLSX,
-
250 FILE_EXTENSION_COUNT
-
251 };
-
252
-
253 // Header
-
254 qint32 header_count_{2};
-
255
-
256 // Progress display
-
257 bool hide_progress_{false};
-
258
-
259 // Row data: get data
-
260 std::vector<QVariant> *currentHeaderRow();
-
261 std::vector<QVariant> *currentRow();
-
262};
-
263} // namespace ehm_dal::spreadsheet
+
213 // Debugging / diagnostics
+ +
218
+
219 // File details - get data
+
223 QString file();
+
227 inline QString fileName() { return file_name_; }
+
232 QString fileType() const;
+
236 inline QString identifier() { return headerCell(0,0).toString().replace(" ", "_").toLower(); }
+
237
+
238 // File details - set data
+
243 void addFileNameSuffix(const QString &suffix);
+
249 bool setFile(const QString &path);
+
250
+
251 // File extensions
+
255 static qint32 defaultFileExtension();
+
260 static QString fileExtensionListAsString(const bool merged_list = true);
+
264 static QStringList fileExtensionListAsStringList();
+
269 static void setDefaultFileExtension(const qint32 i);
+
270
+
271 // File I/O
+
277 bool open(const QString &file_path);
+
284 bool open(const QString &folder, const QString &file_name);
+
289 bool read();
+
296 bool save(const QString &folder, const QString &file_name);
+
301 bool write();
+
302
+
303 // File I/O dialog windows
+
310 bool showOpenDialog(QString file_path = QString(), const bool read_data = true);
+
317 bool showOpenDialog(settings::FolderPath &path, const bool read_data = true);
+
324 bool showSaveDialog(const QString &file_name = "output.csv", QString file_path = QString());
+ +
331
+
332 // Get data - cells
+
338 QVariant cell(const qint32 row, const qint32 col) const;
+
345 std::span<const QVariant> cells(const qint32 row,
+
346 const qint32 col,
+
347 const qint32 col_count) const;
+
352 bool columnContainsData(const qint32 column) const;
+
358 qint32 columnCount(const qint32 row) const;
+
364 std::span<const QVariant> row(const qint32 row) const;
+
369 inline qint32 rowCount() const { return static_cast<qint32>(cell_data_.size()); }
+
370
+
371 // Get data - prefix cells
+
372 QVariant prefix(const qint32 row) const;
+
373 inline bool hasPrefixData() const { return prefixCount() > 0; }
+
374 inline qint32 prefixCount() const { return static_cast<qint32>(prefix_cell_data_.size()); }
+
375
+
376 // Get data - header
+
377 std::span<const QVariant> header(const qint32 row) const;
+
378 QVariant headerCell(const qint32 row, const quint16 col) const;
+
379 inline qint32 headerCount() const
+
380 {
+
381 return std::max(static_cast<qint32>(header_data_.size()), header_count_);
+
382 }
+
383
+
384 // Get data - header
+
385 QVariant prefixHeader(const qint32 row) const;
+
386 inline bool hasPrefixHeaderData() const { return prefixHeaderCount() > 0; }
+
387 inline qint32 prefixHeaderCount() const
+
388 {
+
389 return static_cast<qint32>(prefix_header_data_.size());
+
390 }
+
391
+
392 // Get settings
+
396 static QString exportPath();
+
400 static QString importPath();
+
401
+
402 // Row data: add data
+ +
410 void addNewRow();
+
411
+
412 // Set header data
+
417 void setHeaderCount(const qint32 header_row_count);
+
418
+
419 // Spreadsheet file
+
425 std::unique_ptr<SpreadsheetFile> newSpreadsheet(QFile &f);
+
426
+
427private:
+
428 // Data
+
429 std::vector<std::vector<QVariant>> cell_data_;
+
430 std::vector<std::vector<QVariant>> header_data_;
+
431 std::vector<QVariant> prefix_cell_data_;
+
432 std::vector<QVariant> prefix_header_data_;
+
433
+
434 // Add data - cells/rows: Private model data methods
+
435 void addFromTableModel(QAbstractTableModel *model,
+
436 const std::vector<qint32> &column_index_list,
+
437 const Qt::ItemDataRole role = Qt::DisplayRole);
+
438 void addFromTableModel(QAbstractTableModel *model,
+
439 const qint32 row,
+
440 const std::vector<qint32> &column_index_list,
+
441 const Qt::ItemDataRole role = Qt::DisplayRole);
+
442 void addFromTreeModel(QAbstractTableModel *model,
+
443 const std::vector<qint32> &column_index_list,
+
444 const Qt::ItemDataRole role = Qt::DisplayRole);
+
445 void addFromTreeModel(QAbstractTableModel *model,
+
446 const qint32 parent_row,
+
447 const std::vector<qint32> &column_index_list,
+
448 const Qt::ItemDataRole role = Qt::DisplayRole);
+
449
+
450 // Column data
+
451 std::vector<qint32> columnList(const qint32 column_count) const;
+
452
+
453 // File data
+
454 quint8 file_extension_;
+
455 QString file_name_;
+
456 QString path_;
+
457
+
458 // File extensions (functions)
+
459 static QHash<QString, quint8> fileExtensions();
+
460 static QString filterText(const qint32 type);
+
461
+
462 // File extensions (members)
+
463 enum ENUM_FILE_EXTENSIONS {
+
464 CSV,
+
465 XLSX,
+
466 FILE_EXTENSION_COUNT
+
467 };
+
468
+
469 // Header
+
470 qint32 header_count_{2};
+
471
+
472 // Progress display
+
473 bool hide_progress_{false};
+
474
+
475 // Row data: get data
+
476 std::vector<QVariant> *currentHeaderRow();
+
477 std::vector<QVariant> *currentRow();
+
478};
+
479} // namespace ehm_dal::spreadsheet
The Pointer class represents a pointer to a table item.
Definition: pointer.h:21
Definition: folder_path.h:11
-
Definition: spreadsheet.h:23
+
Definition: spreadsheet.h:26
+
qint32 rowCount() const
Returns the data row count.
Definition: spreadsheet.h:369
+
std::span< const QVariant > cells(const qint32 row, const qint32 col, const qint32 col_count) const
Returns the data for the chosen number of columns commencing from row and col.
void add(const ehm_dal::data_types::Pointer &pointer, const Qt::ItemDataRole role=Qt::DisplayRole)
Adds all columns of the selected Pointer to the spreadsheet.
-
QString fileName()
Returns the file path and name of the output spreadsheet.
Definition: spreadsheet.h:147
-
void add(QAbstractTableModel *model, const Qt::ItemDataRole role=Qt::DisplayRole)
Adds all rows and columns from model to the spreadsheet. This is generally used to export a Table usi...
+
void addNewHeaderRow()
Adds a new header row.
+
void addHeader(const QStringList &text_list)
Adds the text_list to the current header row.
+
QString identifier()
Returns the identifier text string located at the top left cell (i.e. Cell A1).
Definition: spreadsheet.h:236
+
QString file()
Returns the file path, file base name and file extension.
+
QString fileName()
Returns the file path and name of the output spreadsheet.
Definition: spreadsheet.h:227
+
void add(ehm_dal::tables::AbstractTable *model, const qint32 row, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)
Adds the selected row and selected columns from model to the spreadsheet. This is generally used to e...
+
bool showSaveDialog(const QString &file_name="output.csv", QString file_path=QString())
Displays a dialog window allowing the user to save the spreadsheet.
+
QVariant cell(const qint32 row, const qint32 col) const
Returns the data at located at row and col.
+
void add(QAbstractTableModel *model, const Qt::ItemDataRole role=Qt::DisplayRole)
Adds all rows and columns from model to the spreadsheet. This is generally used to export a QAbstract...
+
static void setDefaultFileExtension(const qint32 i)
Set the default file extension to i.
+
void addHeaderPrefix(const QVariant &data)
Adds data to the current prefix header row.
Definition: spreadsheet.h:211
+
qint32 columnCount(const qint32 row) const
Returns the column count for the selected row.
void add(const std::vector< ehm_dal::data_types::Pointer > &pointer_list, const Qt::ItemDataRole role=Qt::DisplayRole)
Adds all columns of the selected Pointers to the spreadsheet.
+
static QStringList fileExtensionListAsStringList()
Returns a list of supported file extensions.
+
void addPrefix(const QVariant &data)
Adds data to the current prefix row.
Definition: spreadsheet.h:164
+
bool showSaveDialog(settings::FolderPath &path)
Displays a dialog window allowing the user to save the spreadsheet.
+
void addPrefix()
Adds a blank cell to the current prefix row.
Definition: spreadsheet.h:159
+
bool save(const QString &folder, const QString &file_name)
Saves the spreadsheet to the selected folder path and file name.
+
bool read()
Reads the current file.
+
bool columnContainsData(const qint32 column) const
Returns whether a column contains any data.
+
static QString fileExtensionListAsString(const bool merged_list=true)
Returns a list of supported file extensions.
+
bool showOpenDialog(QString file_path=QString(), const bool read_data=true)
Displays a dialog window allowing the user to select a spreadsheet to open.
+
static QString importPath()
Returns the default file path used for importing data.
+
void addHeader()
Adds a blank cell to the current header row.
Definition: spreadsheet.h:170
+
bool setFile(const QString &path)
Set the file path, name and extension from path.
void add(QAbstractTableModel *model, const qint32 row, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)
Adds the selected row and selected columns from model to the spreadsheet. This is generally used to e...
bool write()
Writes/saves the spreadsheet to the output file.
+
void setHeaderCount(const qint32 header_row_count)
Sets the number of header rows to header_row_count.
+
void add(ehm_dal::tables::AbstractTable *model, const Qt::ItemDataRole role=Qt::DisplayRole)
Adds all rows and columns from model to the spreadsheet. This is generally used to export a ehm_dal::...
void add(QAbstractTableModel *model, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)
Adds all rows and the selected columns from model to the spreadsheet. This is generally used to expor...
+
void addHeader(const QString &text)
Adds text to the current header row.
Definition: spreadsheet.h:175
+
static qint32 defaultFileExtension()
Returns the default file extension.
void add(const std::vector< ehm_dal::data_types::Pointer > &pointer_list, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)
Adds the selected columns of the selected Pointers to the spreadsheet.
+
std::span< const QVariant > row(const qint32 row) const
Returns the data of the entirety of the selected row.
void add(QAbstractTableModel *model, const qint32 row, const Qt::ItemDataRole role=Qt::DisplayRole)
Adds the selected row and all columns from model to the spreadsheet. This is generally used to export...
void addHeader(QAbstractTableModel *model)
Adds a header row of column names of all columns from the 'model'. This is typically used to add the ...
void addHeader(QAbstractTableModel *model, const std::vector< qint32 > &column_index_list)
Adds a header row of column names of the selected columnd from the 'model'. This is typically used to...
+
std::unique_ptr< SpreadsheetFile > newSpreadsheet(QFile &f)
Creates a new spreadsheet from f and returns a pointer to the created ehm_dal::spreadsheet::Spreadshe...
+
void addNewRow()
Adds a new data row.
+
void addHeaderPrefix()
Adds a blank cell to the current prefix header row.
Definition: spreadsheet.h:206
+
void printDiagnosticData() const
Prints various diagnostic data to the console.
+
bool open(const QString &folder, const QString &file_name)
Opens a file without showing a dialog window.
+
static QString exportPath()
Returns the default file path used for exporting data.
+
void addFileNameSuffix(const QString &suffix)
Adds suffix to the end of the file name.
+
void add(ehm_dal::tables::AbstractTable *model, const qint32 row, const Qt::ItemDataRole role=Qt::DisplayRole)
Adds the selected row and all columns from model to the spreadsheet. This is generally used to export...
void add(const ehm_dal::data_types::Pointer &pointer, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)
Adds the selected columns of the selected Pointer to the spreadsheet.
+
void add(ehm_dal::tables::AbstractTable *model, const std::vector< qint32 > &column_index_list, const Qt::ItemDataRole role=Qt::DisplayRole)
Adds all rows and the selected columns from model to the spreadsheet. This is generally used to expor...
+
bool showOpenDialog(settings::FolderPath &path, const bool read_data=true)
Displays a dialog window allowing the user to select a spreadsheet to open.
QString fileType() const
Returns the file type of the output spreadsheet.
+
bool open(const QString &file_path)
Opens a file without showing a dialog window.
+
void addHeader(const QVariant &data)
Adds data to the current header row.
+
The Table class represents a database table and provides access to rows of data.
Definition: abstract_table.h:29
namespace ehm_dal::data_types
Definition: attribute.h:6
+
namespace ehm_dal::tables
Definition: column.h:4

diff --git a/examples/01-01_Simple_Table_View/README.md b/examples/01-01_Simple_Table_View/README.md index 35c2335..c82e764 100644 --- a/examples/01-01_Simple_Table_View/README.md +++ b/examples/01-01_Simple_Table_View/README.md @@ -1,16 +1,10 @@ # EHM DAL: Example 01.01 - Simple Table View -The purpose of this example is to show how easily data from either a database or a saved game's database can be shown using QTableView and exported to csv/xslx spreadsheets. +The purpose of this example is to show how easily data from either a database or a saved game's database can be shown using QTableView and exported to csv/xslx spreadsheets. This project is identical to `Example 01-02` except that we're using a QTableView here for standard two dimensional tables rather than QTreeView for tree tables. -## How to compile the project -1. Download the source code from this example project folder and save to your PC. -1. Create a new sub-folder named `lib` within your downloaded folder. -1. Download the latest version of EHM DAL from the [Releases page](https://github.com/archibalduk/EHM_DAL/releases) and extract the contents of the downloaded .zip into your lib folder. -1. Open the `.pro` file in Qt Creator. -1. Press `Ctrl + R` in Qt Creator to build and run the application. - -**Visit the [EHM DAL documentation](https://archibalduk.github.io/EHM_DAL/annotated.html) for details of the various classes and functions.** +![Screenshot of project](screenshot.png) -**Visit the [EHM DAL wiki](https://github.com/archibalduk/EHM_DAL/wiki) for guides and tutorials.** +## How to compile the project +Please see the installation guide here: https://github.com/archibalduk/EHM_DAL/blob/main/examples/README.md ## Author [@archibalduk](https://www.github.com/archibalduk) diff --git a/examples/01-01_Simple_Table_View/mainwindow.cpp b/examples/01-01_Simple_Table_View/mainwindow.cpp index d6896f9..46a8f7d 100644 --- a/examples/01-01_Simple_Table_View/mainwindow.cpp +++ b/examples/01-01_Simple_Table_View/mainwindow.cpp @@ -3,6 +3,7 @@ #include "lib/ehm_dal/include/database/column_data/club_competition_columns.h" #include "lib/ehm_dal/include/database/database.h" #include "lib/ehm_dal/include/database/file_io/database_file_manager.h" +#include "lib/ehm_dal/include/library_info.h" #include "lib/ehm_dal/include/saved_game/file_io/saved_game_file_manager.h" #include "lib/ehm_dal/include/spreadsheet/spreadsheet.h" #include "lib/ehm_dal/include/tables/abstract_table.h" @@ -13,7 +14,7 @@ /* MAIN WINDOW CONSTRUCTOR * This function constructs the main window and adds the following to the window: - * 1. A menu bar with a drop-down menu allowing users to open a database or saved game; and + * 1. A menu bar with a drop-down menu allowing users to (i) open a database or saved game and (ii) export table data to a spreadsheet; and * 2. A QTableView widget which will show the selected database table within the window. */ MainWindow::MainWindow(QWidget *parent) @@ -21,7 +22,9 @@ MainWindow::MainWindow(QWidget *parent) { /// Window attributes /// setMinimumSize(1200, 600); - setWindowTitle("Simple Table Viewer"); + setWindowTitle(QString("Simple Table Viewer - %1 %2") + .arg(ehm_dal::library_info::libraryShortName(), + ehm_dal::library_info::libraryVersion())); /// Menu bar /// menu_bar_ = new QMenuBar(this); @@ -118,7 +121,6 @@ void MainWindow::exportSpreadsheetSelectedColumns() { // This is a very similar function to `exportSpreadsheet()` but with the key difference that here we generate a list of // columns we want to export. This will result in just those selected columns being exported. - ehm_dal::spreadsheet::Spreadsheet spreadsheet; ehm_dal::Database db; diff --git a/examples/01-01_Simple_Table_View/screenshot.png b/examples/01-01_Simple_Table_View/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..390eb33d1a4dce75378d1671d7ea635821a050fa GIT binary patch literal 113268 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�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 NS)M$Uf8ff^{{j`N+a3S_ literal 0 HcmV?d00001 diff --git a/examples/01-02_Simple_Tree_View/.gitignore b/examples/01-02_Simple_Tree_View/.gitignore new file mode 100644 index 0000000..3fe56d4 --- /dev/null +++ b/examples/01-02_Simple_Tree_View/.gitignore @@ -0,0 +1,78 @@ +# This file is used to ignore files which are generated +# ---------------------------------------------------------------------------- + +*~ +*.autosave +*.a +*.core +*.moc +*.o +*.obj +*.orig +*.rej +*.so +*.so.* +*_pch.h.cpp +*_resource.rc +*.qm +.#* +*.*# +core +!core/ +tags +.DS_Store +.directory +*.debug +Makefile* +*.prl +*.app +moc_*.cpp +ui_*.h +qrc_*.cpp +Thumbs.db +*.res +*.rc +/.qmake.cache +/.qmake.stash + +# qtcreator generated files +*.pro.user* +CMakeLists.txt.user* + +# xemacs temporary files +*.flc + +# Vim temporary files +.*.swp + +# Visual Studio generated files +*.ib_pdb_index +*.idb +*.ilk +*.pdb +*.sln +*.suo +*.vcproj +*vcproj.*.*.user +*.ncb +*.sdf +*.opensdf +*.vcxproj +*vcxproj.* + +# MinGW generated files +*.Debug +*.Release + +# Python byte code +*.pyc + +# Binaries +# -------- +*.dll +*.exe + +# DAL project files +/build/ +/lib/ehm_dal/ +/lib/qxlsx/ \ No newline at end of file diff --git a/examples/01-02_Simple_Tree_View/01-02_Simple_Tree_View.pro b/examples/01-02_Simple_Tree_View/01-02_Simple_Tree_View.pro new file mode 100644 index 0000000..804d4a2 --- /dev/null +++ b/examples/01-02_Simple_Tree_View/01-02_Simple_Tree_View.pro @@ -0,0 +1,34 @@ +QT += core gui + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +CONFIG += c++latest + +# The following define makes your compiler emit warnings if you use +# any Qt feature that has been marked deprecated (the exact warnings +# depend on your compiler). Please consult the documentation of the +# deprecated API in order to know how to port your code away from it. +DEFINES += QT_DEPRECATED_WARNINGS + +# You can make your code fail to compile if it uses deprecated APIs. +# In order to do so, uncomment the following line. +DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 + +# Enable as many compiler warnings as possible +CONFIG += warn_on + +# EHM DAL +include($$PWD/lib/ehm_dal/ehm_dal.pri) +include($$PWD/lib/qxlsx/qxlsx.pri) + +SOURCES += \ + main.cpp \ + mainwindow.cpp + +HEADERS += \ + mainwindow.h + +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target diff --git a/examples/01-02_Simple_Tree_View/README.md b/examples/01-02_Simple_Tree_View/README.md new file mode 100644 index 0000000..9f699f8 --- /dev/null +++ b/examples/01-02_Simple_Tree_View/README.md @@ -0,0 +1,16 @@ +# EHM DAL: Example 01.02 - Simple Tree View +The purpose of this example is to show how easily data from either a database or a saved game's database can be shown using QTreeView and exported to csv/xslx spreadsheets. This project is identical to `Example 01-01` except that we're using a QTreeView here for tree tables rather than QTableView for standard two dimensional tables. + +![Screenshot of project](screenshot.png) + +## How to compile the project +Please see the installation guide here: https://github.com/archibalduk/EHM_DAL/blob/main/examples/README.md + +## Author +[@archibalduk](https://www.github.com/archibalduk) + +## Credits +EHM DAL uses [QXlsx by j2doll](https://github.com/QtExcel/QXlsx). QXlsx is licensed under the MIT license. + +## License +[GNU General Public License v3.0](https://choosealicense.com/licenses/gpl-3.0/) diff --git a/examples/01-02_Simple_Tree_View/main.cpp b/examples/01-02_Simple_Tree_View/main.cpp new file mode 100644 index 0000000..b2ed2d2 --- /dev/null +++ b/examples/01-02_Simple_Tree_View/main.cpp @@ -0,0 +1,22 @@ +#include "mainwindow.h" + +#include +#include + +int main(int argc, char *argv[]) +{ + // Application + QApplication a(argc, argv); + + // Use Fusion style if Windows dark mode is enabled (Fusion is dark mode compatible) + QSettings settings( + "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize", + QSettings::NativeFormat); + if (settings.value("AppsUseLightTheme") == 0) + a.setStyle("fusion"); + + // Main window + MainWindow w; + w.show(); + return a.exec(); +} diff --git a/examples/01-02_Simple_Tree_View/mainwindow.cpp b/examples/01-02_Simple_Tree_View/mainwindow.cpp new file mode 100644 index 0000000..8c4fd48 --- /dev/null +++ b/examples/01-02_Simple_Tree_View/mainwindow.cpp @@ -0,0 +1,178 @@ +#include "mainwindow.h" + +#include "lib/ehm_dal/include/database/column_data/club_competition/club_competition_history_columns.h" +#include "lib/ehm_dal/include/database/database.h" +#include "lib/ehm_dal/include/database/file_io/database_file_manager.h" +#include "lib/ehm_dal/include/library_info.h" +#include "lib/ehm_dal/include/saved_game/file_io/saved_game_file_manager.h" +#include "lib/ehm_dal/include/spreadsheet/spreadsheet.h" +#include "lib/ehm_dal/include/tables/abstract_table.h" +#include "lib/ehm_dal/include/tables/table_index.h" + +#include +#include + +/* MAIN WINDOW CONSTRUCTOR + * This function constructs the main window and adds the following to the window: + * 1. A menu bar with a drop-down menu allowing users to (i) open a database or saved game and (ii) export table data to a spreadsheet; and + * 2. A QTreeView widget which will show the selected database table (as a tree structure) within the window. + */ +MainWindow::MainWindow(QWidget *parent) + : QMainWindow(parent) +{ + /// Window attributes /// + setMinimumSize(1200, 600); + setWindowTitle(QString("Simple Tree Viewer - %1 %2") + .arg(ehm_dal::library_info::libraryShortName(), + ehm_dal::library_info::libraryVersion())); + + /// Menu bar /// + menu_bar_ = new QMenuBar(this); + setMenuBar(menu_bar_); + + /// Menu bar -> File menu /// + auto file_menu{menu_bar_->addMenu("&File")}; + + // Create a new QAction which will be shown in the File menu. + // Clicking on this QAction will trigger the openDatabase() function. + open_database_action_ = new QAction("Open &database...", this); + QObject::connect(open_database_action_, &QAction::triggered, this, &MainWindow::openDatabase); + file_menu->addAction(open_database_action_); + + // Create a new QAction which will be shown in the File menu. + // Clicking on this QAction will trigger the openSavedGame() function. + open_saved_game_action_ = new QAction("Open saved &game...", this); + QObject::connect(open_saved_game_action_, &QAction::triggered, this, &MainWindow::openSavedGame); + file_menu->addAction(open_saved_game_action_); + + /// Menu bar -> Tools menu /// + auto tools_menu{menu_bar_->addMenu("&Tools")}; + + // Create a new QAction which will be shown in the Tools menu. + // Clicking on this QAction will trigger the exportSpreadsheet() function. + spreadsheet_export_all_columns_action_ = new QAction("&Export to spreadsheet...", this); + QObject::connect(spreadsheet_export_all_columns_action_, + &QAction::triggered, + this, + &MainWindow::exportSpreadsheet); + tools_menu->addAction(spreadsheet_export_all_columns_action_); + + // Create a new QAction which will be shown in the Tools menu. + // Clicking on this QAction will trigger the exportSpreadsheetSelectedColumns() function. + spreadsheet_export_selected_columns_action_ + = new QAction("Export to spreadsheet (selected &columns)...", this); + QObject::connect(spreadsheet_export_selected_columns_action_, + &QAction::triggered, + this, + &MainWindow::exportSpreadsheetSelectedColumns); + tools_menu->addAction(spreadsheet_export_selected_columns_action_); + + /// Tree view /// + tree_view_ = new QTreeView(this); + setCentralWidget(tree_view_); + + // Assign the selected tree table below to the tree_view_. + // Let's use the Club Competition History table for the purposes of this example. + ehm_dal::Database db; + tree_view_->setModel(db.table(ehm_dal::tables::TableIndex::CLUB_COMPETITION_HISTORY).get()); +} + +/* MAIN WINDOW CONSTRUCTOR + * Nothing to see here. + * The various class members will be auto-deleted as part of Qt's garbage collection. Hence no explicit `delete` calls here. + */ +MainWindow::~MainWindow() {} + +/* FUNCTION: EXPORT SPREADSHEET (all columns) + * Generates a new spreadsheet and populates it with the entirety of the Club Competition History data table. + */ +void MainWindow::exportSpreadsheet() +{ + ehm_dal::spreadsheet::Spreadsheet spreadsheet; + + // Let's use the Club Competitions table + ehm_dal::Database db; + auto table{db.table(ehm_dal::tables::TableIndex::CLUB_COMPETITION_HISTORY)}; + + // Show a window dialog prompting the user to select the destination for saving the spreadsheet. + // The `table->attributes()->name()` function takes the name of the table and this is then used as default file name for saving. + // Abort if the user clicks `Cancel` (`showSaveDialog()` will return false if cancelled). + // By adding the data to the spreadsheet only after this function, we avoid wasting time populating the spreadsheet with data + // in the event the user has clicked `Cancel`. + if (!spreadsheet.showSaveDialog(QString("%1.xlsx").arg(table->attributes()->name()))) + return; + + // Add a header row to the spreadsheet based on the table's column names + spreadsheet.addHeader(table.get()); + // Add the entirety of the table data to the spreadsheet + spreadsheet.add(table.get()); + + // Save the spreadsheet data to the file. + if (spreadsheet.write()) + qInfo() << "Spreadsheet successfully saved"; + else + qInfo() << "Unable to save the spreadsheet"; +} + +/* FUNCTION: EXPORT SPREADSHEET (selected columns) + * Generates a new spreadsheet and populates it with just a few columns of data of the Club Competition History data table. + */ +void MainWindow::exportSpreadsheetSelectedColumns() +{ + // This is a very similar function to `exportSpreadsheet()` but with the key difference that here we generate a list of + // columns we want to export. This will result in just those selected columns being exported. + ehm_dal::spreadsheet::Spreadsheet spreadsheet; + + ehm_dal::Database db; + auto table{db.table(ehm_dal::tables::TableIndex::CLUB_COMPETITION_HISTORY)}; + + if (!spreadsheet.showSaveDialog(QString("%1.xlsx").arg(table->attributes()->name()))) + return; + + // Here's where the function is different to `exportSpreadsheet()` above: + // First we create a list of what columns we want to export. + // We then pass this list to the same `addHeader()` and `add()` functions as before. + std::vector + column_list{ehm_dal::column_data::ClubCompetitionHistoryColumns::Year, + ehm_dal::column_data::ClubCompetitionHistoryColumns::ClubCompetition, + ehm_dal::column_data::ClubCompetitionHistoryColumns::RegularSeasonChampions, + ehm_dal::column_data::ClubCompetitionHistoryColumns::Winners}; + + spreadsheet.addHeader(table.get(), column_list); + spreadsheet.add(table.get(), column_list); + + if (spreadsheet.write()) + qInfo() << "Spreadsheet successfully saved"; + else + qInfo() << "Unable to save the spreadsheet"; +} + +/* FUNCTION: OPEN DATABASE + * This function uses the DatabaseFileManager to display a dialog window allowing the user to select a database file to open. + * The DatabaseFileManager will then proceed to open and process the database file. + */ +void MainWindow::openDatabase() +{ + ehm_dal::file_io::DatabaseFileManager db_file_manager; + + // Display the file selection dialog window and process the selected database file + if (db_file_manager.open(this)) + qInfo() << "Database successfully opened"; + else + qInfo() << "Unable to open the database"; +} + +/* FUNCTION: OPEN SAVED GAME + * This function uses the SavedGameFileManager to display a dialog window allowing the user to select a saved game file to open. + * The SavedGameFileManager will then proceed to open and process the saved game file. + */ +void MainWindow::openSavedGame() +{ + ehm_dal::file_io::SavedGameFileManager sg_file_manager; + + // Display the file selection dialog window and process the selected saved game file + if (sg_file_manager.open(this)) + qInfo() << "Saved game successfully opened"; + else + qInfo() << "Unable to open the saved game"; +} diff --git a/examples/01-02_Simple_Tree_View/mainwindow.h b/examples/01-02_Simple_Tree_View/mainwindow.h new file mode 100644 index 0000000..11ba7ea --- /dev/null +++ b/examples/01-02_Simple_Tree_View/mainwindow.h @@ -0,0 +1,45 @@ +#pragma once + +/* *************************************** + * EHM Data Abstraction Layer + * by Archibalduk + * + * https://github.com/archibalduk/EHM_DAL + * + * Example 01.02 - Simple Tree View + * + * ***************************************/ + +#include +#include +#include +#include + +/// The purpose of this example is to show how easily a database tree table can be displayed using a QTreeView widget. +/// This example additionally shows how table data can be exported to a csv/xlsx spreadsheet file. +class MainWindow : public QMainWindow +{ + Q_OBJECT + +public: + MainWindow(QWidget *parent = nullptr); + ~MainWindow(); + +private: + // Menu + QMenuBar *menu_bar_; + QAction *open_database_action_; + QAction *open_saved_game_action_; + QAction *spreadsheet_export_all_columns_action_; + QAction *spreadsheet_export_selected_columns_action_; + + // Table + QTreeView *tree_view_; + +private slots: + // Slot functions for connecting to signal functions + void exportSpreadsheet(); + void exportSpreadsheetSelectedColumns(); + void openDatabase(); + void openSavedGame(); +}; diff --git a/examples/01-02_Simple_Tree_View/screenshot.png b/examples/01-02_Simple_Tree_View/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..bf73e3e2ced38a1aac9544edfbcf46d92b9c653c GIT binary patch literal 118501 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

lb$&v45lMR@$}GEYBVE@ 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 literal 0 HcmV?d00001 diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 0000000..0a72b3e --- /dev/null +++ b/examples/README.md @@ -0,0 +1,47 @@ +# EHM DAL: Example projects/code +The sub-folders within this `examples` folder contain various example Qt projects incorporating EHM DAL. Each example includes readme.md file explaining the purpose of the example. + +## How to compile a project +1. Download the source code from [here](https://github.com/archibalduk/EHM_DAL/archive/refs/heads/main.zip). +1. Open the downloaded `.zip` file and navigate to the `examples` sub-folder. +1. Extract the desired project sub-folder to a location of your choice. +1. Create a new sub-folder named `lib` within the downloaded project folder. +1. Download the latest version of EHM DAL from the [Releases page](https://github.com/archibalduk/EHM_DAL/releases) and extract the contents of the downloaded EHM DAL `.zip` into your `lib` folder. +1. Open the `.pro` file in Qt Creator. +1. Press `Ctrl + R` in Qt Creator to build and run the application. + +## Project folder structure +If you have followed the steps above correctly then your project folder will look a bit like this: + +``` +├── 01-01_Simple_Table_View [or whichever project sub-folder you extracted] +│ ├── lib +│ │ ├── ehm_dal +│ │ │ ├── include +│ │ │ ├── ehm_dal.lib +│ │ │ ├── ehm_dal.pri +│ │ │ ├── ehm_dal_debug.lib +│ │ ├── qxlsx +│ │ │ ├── include +│ │ │ ├── QXlsx.lib +│ │ │ ├── qxlsx.pri +│ │ │ ├── QXlsx_debug.lib +├── .gitignore +├── 01-01_Simple_Table_View.pro +├── readme.md +├── main.cpp +├── [various other .h and .cpp files] +``` + +**Visit the [EHM DAL documentation](https://archibalduk.github.io/EHM_DAL/annotated.html) for details of the various classes and functions.** + +**Visit the [EHM DAL wiki](https://github.com/archibalduk/EHM_DAL/wiki) for guides and tutorials.** + +## Author +[@archibalduk](https://www.github.com/archibalduk) + +## Credits +EHM DAL uses [QXlsx by j2doll](https://github.com/QtExcel/QXlsx). QXlsx is licensed under the MIT license. + +## License +[GNU General Public License v3.0](https://choosealicense.com/licenses/gpl-3.0/) diff --git a/include/saved_game/file_io/saved_game_file_manager.h b/include/saved_game/file_io/saved_game_file_manager.h new file mode 100644 index 0000000..dc0e5e9 --- /dev/null +++ b/include/saved_game/file_io/saved_game_file_manager.h @@ -0,0 +1,30 @@ +#pragma once + +// Application headers +#include "include/file_io/abstract_file_manager.h" + +namespace ehm_dal::file_io { + +class SavedGameFileManager : public ehm_dal::file_io::AbstractFileManager +{ +public: + SavedGameFileManager(); + + // Descriptor + inline QString descriptor() const override { return QStringLiteral("saved_game"); } + inline QString fileFilterString() const override + { + return QStringLiteral("EHM 1 Saved Game (*.sav)"); + } + +private: + // Close saved game/database/tables + void closeAll() override; + + // File i/o - read + bool read(const QString &path) override; + + // File i/o - write + bool write(const QString &path) override; +}; +} // namespace ehm_dal::file_io diff --git a/include/saved_game/saved_game.h b/include/saved_game/saved_game.h index 6652075..aa4052e 100644 --- a/include/saved_game/saved_game.h +++ b/include/saved_game/saved_game.h @@ -29,6 +29,12 @@ class SavedGame */ ~SavedGame(); + // Close saved game + /*! + * \brief Clear all of the saved game tables + */ + void clearAll(); + // File i/o /*! * \brief Reads the .sav file at `file_path` and parses the saved game and the Database within. diff --git a/include/spreadsheet/spreadsheet.h b/include/spreadsheet/spreadsheet.h index 22fc3a5..5e355e1 100644 --- a/include/spreadsheet/spreadsheet.h +++ b/include/spreadsheet/spreadsheet.h @@ -8,6 +8,9 @@ class Pointer; namespace ehm_dal::settings { class FolderPath; } +namespace ehm_dal::tables { +class AbstractTable; +} // Qt headers class QAbstractTableModel; @@ -34,18 +37,59 @@ class Spreadsheet void add(const QVariant &data, const qint32 row); void add(const QVariant &data, const qint32 start_row, const qint32 row_count); - // Add data - cells/rows: model data + // Add data - cells/rows: AbstractTable data /*! - * \brief Adds all rows and columns from `model` to the spreadsheet. This is generally used to export a Table using - * `Qt::DisplayRole` or `Qt::EditRole`. - * \param model Source `QAbstractTableModel` or Table + * \brief Adds all rows and columns from `model` to the spreadsheet. This is generally used to export a + * `ehm_dal::tables::AbstractTable` using `Qt::DisplayRole` or `Qt::EditRole`. + * \param model Source `ehm_dal::tables::AbstractTable` + * \param role Source data role + */ + void add(ehm_dal::tables::AbstractTable *model, const Qt::ItemDataRole role = Qt::DisplayRole); + /*! + * \brief Adds all rows and the selected columns from `model` to the spreadsheet. This is generally used to export + * a `ehm_dal::tables::AbstractTable` using `Qt::DisplayRole` or `Qt::EditRole`. + * \param model Source `ehm_dal::tables::AbstractTable` + * \param column_index_list Column indexes to be added + * \param role Source data role + */ + void add(ehm_dal::tables::AbstractTable *model, + const std::vector &column_index_list, + const Qt::ItemDataRole role = Qt::DisplayRole); + /*! + * \brief Adds the selected row and all columns from `model` to the spreadsheet. This is generally used to export + * a `ehm_dal::tables::AbstractTable` using `Qt::DisplayRole` or `Qt::EditRole`. + * \param model Source `ehm_dal::tables::AbstractTable` + * \param row Source row + * \param role Source data role + */ + void add(ehm_dal::tables::AbstractTable *model, + const qint32 row, + const Qt::ItemDataRole role = Qt::DisplayRole); + /*! + * \brief Adds the selected row and selected columns from `model` to the spreadsheet. This is generally used to + * export a `ehm_dal::tables::AbstractTable` using `Qt::DisplayRole` or `Qt::EditRole`. + * \param model Source `ehm_dal::tables::AbstractTable` + * \param row Source row + * \param column_index_list Column indexes to be added + * \param role Source data role + */ + void add(ehm_dal::tables::AbstractTable *model, + const qint32 row, + const std::vector &column_index_list, + const Qt::ItemDataRole role = Qt::DisplayRole); + + // Add data - cells/rows: QAbstractTableModel data + /*! + * \brief Adds all rows and columns from `model` to the spreadsheet. This is generally used to export + * a `QAbstractTableModel` using `Qt::DisplayRole` or `Qt::EditRole`. + * \param model Source `QAbstractTableModel` * \param role Source data role */ void add(QAbstractTableModel *model, const Qt::ItemDataRole role = Qt::DisplayRole); /*! * \brief Adds all rows and the selected columns from `model` to the spreadsheet. This is generally used to export - * a Table using `Qt::DisplayRole` or `Qt::EditRole`. - * \param model Source `QAbstractTableModel` or Table + * a `QAbstractTableModel` using `Qt::DisplayRole` or `Qt::EditRole`. + * \param model Source `QAbstractTableModel` * \param column_index_list Column indexes to be added * \param role Source data role */ @@ -54,8 +98,8 @@ class Spreadsheet const Qt::ItemDataRole role = Qt::DisplayRole); /*! * \brief Adds the selected row and all columns from `model` to the spreadsheet. This is generally used to export - * a Table using `Qt::DisplayRole` or `Qt::EditRole`. - * \param model Source `QAbstractTableModel` or Table + * a `QAbstractTableModel` using `Qt::DisplayRole` or `Qt::EditRole`. + * \param model Source `QAbstractTableModel` * \param row Source row * \param role Source data role */ @@ -64,8 +108,8 @@ class Spreadsheet const Qt::ItemDataRole role = Qt::DisplayRole); /*! * \brief Adds the selected row and selected columns from `model` to the spreadsheet. This is generally used to - * export a Table using `Qt::DisplayRole` or `Qt::EditRole`. - * \param model Source `QAbstractTableModel` or Table + * export a `QAbstractTableModel` using `Qt::DisplayRole` or `Qt::EditRole`. + * \param model Source `QAbstractTableModel` * \param row Source row * \param column_index_list Column indexes to be added * \param role Source data role @@ -74,6 +118,8 @@ class Spreadsheet const qint32 row, const std::vector &column_index_list, const Qt::ItemDataRole role = Qt::DisplayRole); + + // Add data - cells/rows: Pointer data /*! * \brief Adds all columns of the selected Pointer to the spreadsheet. * \param pointer Source pointer @@ -107,13 +153,35 @@ class Spreadsheet const Qt::ItemDataRole role = Qt::DisplayRole); // Add data - prefix cells + /*! + * \brief Adds a blank cell to the current prefix row. + */ inline void addPrefix() { addPrefix(QVariant()); } + /*! + * \brief Adds `data` to the current prefix row. + * \param data Data to be added + */ inline void addPrefix(const QVariant &data) { prefix_cell_data_.push_back(data); } // Add data - header: basic + /*! + * \brief Adds a blank cell to the current header row. + */ inline void addHeader() { add(QVariant()); } + /*! + * \brief Adds `text` to the current header row. + * \param text Text to be added + */ inline void addHeader(const QString &text) { addHeader(QVariant(text)); } + /*! + * \brief Adds the `text_list` to the current header row. + * \param text_list `QStringList` to be added + */ void addHeader(const QStringList &text_list); + /*! + * \brief Adds `data` to the current header row. + * \param data Data to be added + */ void addHeader(const QVariant &data); // Add data - header: model data @@ -132,17 +200,29 @@ class Spreadsheet void addHeader(QAbstractTableModel *model, const std::vector &column_index_list); // Add data - prefix header + /*! + * \brief Adds a blank cell to the current prefix header row. + */ inline void addHeaderPrefix() { addHeaderPrefix(QVariant()); } + /*! + * \brief Adds `data` to the current prefix header row. + * \param data Data to be added + */ inline void addHeaderPrefix(const QVariant &data) { prefix_header_data_.push_back(data); } // Debugging / diagnostics + /*! + * \brief Prints various diagnostic data to the console. + */ void printDiagnosticData() const; // File details - get data + /*! + * \brief Returns the file path, file base name and file extension. + */ QString file(); /*! * \brief Returns the file path and name of the output spreadsheet. - * \return the file path and name */ inline QString fileName() { return file_name_; } /*! @@ -150,22 +230,69 @@ class Spreadsheet * \return the file type */ QString fileType() const; + /*! + * \brief Returns the identifier text string located at the top left cell (i.e. Cell A1). + */ inline QString identifier() { return headerCell(0,0).toString().replace(" ", "_").toLower(); } // File details - set data + /*! + * \brief Adds `suffix` to the end of the file name. + * \param suffix + */ void addFileNameSuffix(const QString &suffix); + /*! + * \brief Set the file path, name and extension from `path`. + * \param path + * \return Returns whether `path` contains any text. + */ bool setFile(const QString &path); // File extensions + /*! + * \brief Returns the default file extension. + */ static qint32 defaultFileExtension(); + /*! + * \brief Returns a list of supported file extensions. + * \param merged_list If `true`, the list will include ";;" separators for use as individual file filters. + */ static QString fileExtensionListAsString(const bool merged_list = true); + /*! + * \brief Returns a list of supported file extensions. + */ static QStringList fileExtensionListAsStringList(); + /*! + * \brief Set the default file extension to `i`. + * \param i `Spreadsheet::ENUM_FILE_EXTENSIONS` + */ static void setDefaultFileExtension(const qint32 i); // File I/O + /*! + * \brief Opens a file without showing a dialog window. + * \param file_path Folder path and file name to be opened + * \return whether or not the file was successfully read + */ bool open(const QString &file_path); + /*! + * \brief Opens a file without showing a dialog window. + * \param folder Folder path + * \param file_name File name + * \return whether or not the file was successfully read + */ bool open(const QString &folder, const QString &file_name); + /*! + * \brief Reads the current file. + * \return whether or not the file was successfully read + */ bool read(); + /*! + * \brief Saves the spreadsheet to the selected folder path and file name. + * \param folder Folder path + * \param file_name File name + * \return whether or not the file was successfully saved + */ bool save(const QString &folder, const QString &file_name); /*! * \brief Writes/saves the spreadsheet to the output file. @@ -174,19 +301,71 @@ class Spreadsheet bool write(); // File I/O dialog windows + /*! + * \brief Displays a dialog window allowing the user to select a spreadsheet to open. + * \param file_path Initial file path to show in the dialog + * \param read_data `True` = read the file. `False` = do not read the file. + * \return whether the file was successfully read and/or selected. Returns `false` if the user has clicked `cancel`. + */ bool showOpenDialog(QString file_path = QString(), const bool read_data = true); + /*! + * \brief Displays a dialog window allowing the user to select a spreadsheet to open. + * \param path Initial file path to show in the dialog + * \param read_data `True` = read the file. `False` = do not read the file. + * \return whether the file was successfully read and/or selected. Returns `false` if the user has clicked `cancel`. + */ bool showOpenDialog(settings::FolderPath &path, const bool read_data = true); + /*! + * \brief Displays a dialog window allowing the user to save the spreadsheet. + * \param file_name Initial file name to show in the dialog + * \param file_path Initial file path to show in the dialog + * \return whether the file was successfully saved. Returns `false` if the user has clicked `cancel`. + */ bool showSaveDialog(const QString &file_name = "output.csv", QString file_path = QString()); + /*! + * \brief Displays a dialog window allowing the user to save the spreadsheet. + * \param Initial file path to show in the dialog + * \return whether the file was successfully saved. Returns `false` if the user has clicked `cancel`. + */ bool showSaveDialog(settings::FolderPath &path); // Get data - cells + /*! + * \brief Returns the data at located at `row` and `col`. + * \param row Row index + * \param col Column index + */ QVariant cell(const qint32 row, const qint32 col) const; + /*! + * \brief Returns the data for the chosen number of columns commencing from `row` and `col`. + * \param row Row index + * \param col First column index + * \param col_count Number of columns + */ std::span cells(const qint32 row, const qint32 col, const qint32 col_count) const; + /*! + * \brief Returns whether a column contains any data + * \param column Column index + */ bool columnContainsData(const qint32 column) const; + /*! + * \brief Returns the column count for the selected row. + * \param row Row index + * \return column count + */ qint32 columnCount(const qint32 row) const; + /*! + * \brief Returns the data of the entirety of the selected `row`. + * \param row Row index + * \return Column data + */ std::span row(const qint32 row) const; + /*! + * \brief Returns the data row count. + * \return row count + */ inline qint32 rowCount() const { return static_cast(cell_data_.size()); } // Get data - prefix cells @@ -211,17 +390,38 @@ class Spreadsheet } // Get settings + /*! + * \brief Returns the default file path used for exporting data. + */ static QString exportPath(); + /*! + * \brief Returns the default file path used for importing data. + */ static QString importPath(); // Row data: add data + /*! + * \brief Adds a new header row. + */ void addNewHeaderRow(); + /*! + * \brief Adds a new data row. + */ void addNewRow(); // Set header data + /*! + * \brief Sets the number of header rows to `header_row_count`. + * \param header_row_count + */ void setHeaderCount(const qint32 header_row_count); // Spreadsheet file + /*! + * \brief Creates a new spreadsheet from `f` and returns a pointer to the created `ehm_dal::spreadsheet::SpreadsheetFile`. + * \param f Source `QFile` + * \return pointer to the created `ehm_dal::spreadsheet::SpreadsheetFile` + */ std::unique_ptr newSpreadsheet(QFile &f); private: @@ -231,6 +431,22 @@ class Spreadsheet std::vector prefix_cell_data_; std::vector prefix_header_data_; + // Add data - cells/rows: Private model data methods + void addFromTableModel(QAbstractTableModel *model, + const std::vector &column_index_list, + const Qt::ItemDataRole role = Qt::DisplayRole); + void addFromTableModel(QAbstractTableModel *model, + const qint32 row, + const std::vector &column_index_list, + const Qt::ItemDataRole role = Qt::DisplayRole); + void addFromTreeModel(QAbstractTableModel *model, + const std::vector &column_index_list, + const Qt::ItemDataRole role = Qt::DisplayRole); + void addFromTreeModel(QAbstractTableModel *model, + const qint32 parent_row, + const std::vector &column_index_list, + const Qt::ItemDataRole role = Qt::DisplayRole); + // Column data std::vector columnList(const qint32 column_count) const;