diff options
Diffstat (limited to 'src/backend/btmoduletreeitem.h')
-rw-r--r-- | src/backend/btmoduletreeitem.h | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/src/backend/btmoduletreeitem.h b/src/backend/btmoduletreeitem.h index 6ee6868..008bfb2 100644 --- a/src/backend/btmoduletreeitem.h +++ b/src/backend/btmoduletreeitem.h @@ -10,6 +10,7 @@ #ifndef BTMODULETREEITEM_H #define BTMODULETREEITEM_H +#include <QMap> #include <QString> #include "backend/drivers/cswordmoduleinfo.h" @@ -70,7 +71,6 @@ class BTModuleTreeItem { */ struct Filter { virtual bool filter(CSwordModuleInfo*) = 0; - inline virtual ~Filter() {}; }; /** @@ -81,7 +81,6 @@ class BTModuleTreeItem { inline bool filter(CSwordModuleInfo* mi) { return !mi->isHidden(); } - inline virtual ~HiddenOff() {}; }; /** @@ -94,7 +93,13 @@ class BTModuleTreeItem { * CatLangMod: first category, second language, third module. Mod: don't use * Category or Language at all, Module is toplevel and tree is flat. */ - enum Grouping {CatLangMod, CatMod, LangCatMod, LangMod, Mod}; + enum Grouping { + CatLangMod = 0, + CatMod = 1, + LangCatMod = 2, + LangMod = 3, + Mod = 4 + }; /** @@ -110,6 +115,9 @@ class BTModuleTreeItem { /** When the root item is deleted the whole tree is deleted. */ ~BTModuleTreeItem(); + /** Adds filtered items to the tree */ + void add_items(QList<BTModuleTreeItem::Filter*>& filters); + /** * Returns the item type. */ @@ -154,12 +162,16 @@ class BTModuleTreeItem { BTModuleTreeItem(); /** Creates the tree under this root item (called only from root ctor). */ - void create_tree(QList<BTModuleTreeItem::Filter*>& filters, BTModuleTreeItem::Grouping grouping); + void create_tree(QList<BTModuleTreeItem::Filter*>& filters); /** Sorts recursively the children of of the given item. */ void sort_children(BTModuleTreeItem* parent); /** Helper function for creating a group item while creating the tree. */ BTModuleTreeItem* create_parent_item(BTModuleTreeItem* parent, const QString& text, BTModuleTreeItem::Type type, CSwordModuleInfo::Category category = CSwordModuleInfo::UnknownCategory); + static bool m_map_initialized; + static QMap<CSwordModuleInfo::Category, QString> m_CategoryNamesMap; + + CSwordModuleInfo* m_moduleInfo; QString m_text; BTModuleTreeItem* m_firstChild; @@ -167,6 +179,11 @@ class BTModuleTreeItem { Type m_type; CSwordModuleInfo::Category m_category; QList<CSwordModuleInfo*> m_originalModuleList; + Grouping m_grouping; }; +QDataStream &operator<<(QDataStream &out, const BTModuleTreeItem::Grouping &grouping); +QDataStream &operator>>(QDataStream &in, BTModuleTreeItem::Grouping &grouping); +Q_DECLARE_METATYPE(BTModuleTreeItem::Grouping) + #endif |