玉兔远程控制 0.1.0-bate6
载入中...
搜索中...
未找到
HistoryModel.h
1// Author: Kang Lin <kl222@126.com>
2
3#pragma once
4
5#include <QDate>
6#include <QAbstractTableModel>
7#include "HistoryDatabase.h"
8#include "ParameterWebBrowser.h"
9
10class CHistoryModel : public QAbstractTableModel
11{
12 Q_OBJECT
13
14public:
15 explicit CHistoryModel(CParameterWebBrowser* pPara, QObject *parent = nullptr);
17
18 enum Column {
19 ColumnVisitTime = 0,
20 ColumnTitle,
21 ColumnUrl,
22 ColumnCount,
23 };
24 Q_ENUM(Column)
25
26 // Header
27 QVariant headerData(int section,
28 Qt::Orientation orientation,
29 int role = Qt::DisplayRole) const override;
30
31 // Basic functionality
32 int rowCount(const QModelIndex &parent = QModelIndex()) const override;
33 int columnCount(const QModelIndex &parent = QModelIndex()) const override;
34 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
35 bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()) override;
36
37 // 自定义方法
38 void refresh();
39 void refresh(const QDate &start, const QDate &end);
40 HistoryItem getItem(const QModelIndex &index) const;
41 bool removeDomainItems(const QString& szDomain);
42 bool removeItems(const QString& url);
43
44 bool importFromCSV(const QString& filename);
45 bool exportToCSV(const QString &filename);
46 bool importFromJson(const QString& filename);
47 bool exportToJson(const QString& filename);
48private:
49 QList<HistoryItem> m_historyItems;
50 CHistoryDatabase* m_pDatabase;
51 CParameterWebBrowser* m_pPara;
52};