summaryrefslogtreecommitdiff
path: root/src/backend/btmoduletreeitem.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/btmoduletreeitem.h')
-rw-r--r--src/backend/btmoduletreeitem.h25
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