summaryrefslogtreecommitdiffstats
path: root/archivemodel.h
diff options
context:
space:
mode:
Diffstat (limited to 'archivemodel.h')
-rw-r--r--archivemodel.h18
1 files changed, 8 insertions, 10 deletions
diff --git a/archivemodel.h b/archivemodel.h
index 0e3e29c..c24c130 100644
--- a/archivemodel.h
+++ b/archivemodel.h
@@ -29,7 +29,6 @@ class ArchiveModel : public SmTreeModel {
explicit ArchiveModel(const QStringList &headers, QObject *parent = 0);
const QStringList availableOrders() const;
const QHash<QString, int> availableOrdersHash() const { return mAvailableOrders; }
- ArchiveCollector *collector() { return mCollector; }
virtual QVariant data(const QModelIndex &index, int role) const;
virtual bool setData(const QModelIndex &idx, const QVariant &value, int role);
virtual bool matchRecursive(const QModelIndex &parent, const QRegExp &regex, int column = 0) const;
@@ -40,6 +39,7 @@ class ArchiveModel : public SmTreeModel {
signals:
void needRefresh();
void databaseError(const QString &error);
+ void message(const QString &msg);
public slots:
void setOrder(int order);
@@ -47,12 +47,12 @@ class ArchiveModel : public SmTreeModel {
void refresh();
private slots:
- void collectorFinished();
+ void collectorFinished(QObject *thread);
private:
bool checkParents(const SmTreeItem *item, const QRegExp &regex, int column) const;
void emitDatabaseError(const QSqlError &e);
- void writeCache(int o);
+ void writeCache(int o, SmTreeItem *rItem);
void writeRecursive(SmTreeItem *start, QDataStream &stream);
void writeItem(SmTreeItem *item, QDataStream &stream);
SmTreeItem *readCache(int o);
@@ -60,19 +60,17 @@ class ArchiveModel : public SmTreeModel {
const QString cacheFile(int o) const;
QSqlDatabase mDb;
QHash<QString, int> mAvailableOrders;
- ArchiveCollector *mCollector;
+ QMutex mDoneMx;
+ QList<ArchiveCollector*> mCollectors;
int mOrder;
};
class ArchiveCollector : public QThread {
Q_OBJECT
public:
- explicit ArchiveCollector(int numFields, QObject *parent = 0);
- SmTreeItem *rootItem();
- int sortOrder();
-
- public slots:
- void populate(int order, SmTreeItem *rootItem);
+ explicit ArchiveCollector(int numFields, int order, QObject *parent = 0);
+ SmTreeItem *rootItem() { return mRootItem; }
+ int sortOrder() const { return mSortOrder; }
signals:
void message(const QString message);