aboutsummaryrefslogtreecommitdiff
path: root/paperreplay.h
diff options
context:
space:
mode:
Diffstat (limited to 'paperreplay.h')
-rw-r--r--paperreplay.h36
1 files changed, 27 insertions, 9 deletions
diff --git a/paperreplay.h b/paperreplay.h
index e771584..c9eb6f2 100644
--- a/paperreplay.h
+++ b/paperreplay.h
@@ -1,10 +1,9 @@
#ifndef PAPERREPLAY_H
#define PAPERREPLAY_H
-#include <QtCore/QDateTime>
#include <QtCore/QDir>
#include <QtCore/QHash>
-#include <QtCore/QMultiMap>
+#include <QtCore/QMap>
#include <QtCore/QVector>
#define PAPER_REPLAY "Paper Replay"
@@ -14,8 +13,9 @@ class PaperReplay : public QObject
Q_OBJECT
struct SessionData : public QSharedData {
+ quint64 id;
QString name;
- QDateTime start, end;
+ qint64 start, end;
QVector<quint64> pages;
QString file;
};
@@ -28,26 +28,45 @@ public:
Session();
~Session();
+ bool isValid() const;
+
+ quint64 id() const;
+
QString name() const;
- QDateTime startTime() const;
- QDateTime endTime() const;
+ qint64 startTime() const;
+ qint64 endTime() const;
QVector<quint64> pages() const;
QString fileName() const;
private:
+ Session(quint64 id);
QSharedDataPointer<SessionData> d;
friend class PaperReplay;
+ friend class SessionList;
+ };
+
+ class SessionList {
+ public:
+ SessionList();
+
+ QList<Session> sessionsDuringTime(qint64 time) const;
+
+ private:
+ explicit SessionList(const QMap<qint64, Session>& byTime);
+
+ QMap<qint64, Session> _m;
+
+ friend class PaperReplay;
};
bool open(const QString &path, const QString &penSerial, quint64 notebookGuid);
void close();
- QList<Session> sessions() const;
- QList<Session> sessions(quint64 pageAddress) const;
+ SessionList sessions(quint64 pageAddress) const;
private:
static bool parseSessionInfo(SessionData *session, const QString &path);
@@ -60,8 +79,7 @@ private:
private:
QDir _dir;
- QHash<quint64, Session> _sessions;
- QMultiMap<quint64, quint64> _byPage;
+ QMap<quint64, QMap<qint64, Session> > _byPageTime;
};
#endif // PAPERREPLAY_H