summaryrefslogtreecommitdiff
path: root/board.h
diff options
context:
space:
mode:
Diffstat (limited to 'board.h')
-rw-r--r--board.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/board.h b/board.h
index 588219c..698b4b6 100644
--- a/board.h
+++ b/board.h
@@ -5,6 +5,8 @@
#include <QtCore/QHash>
#include <QtCore/QPair>
#include <QtCore/QRegExp>
+#include <QtCore/QSet>
+#include <QtCore/QTimer>
#include <QtCore/QQueue>
#include <QtCore/QUrl>
#include <QtCore/QVariant>
@@ -63,9 +65,13 @@ public slots:
void notifyForumsChanged();
void notifyForumTopicsChanged(int forumId, int start, int end);
void notifyTopicPostsChanged(int topicId, int start, int end);
+ void notifyTopicPostsUnread(int topicId, int position);
void notifyLogin(const QMap<QString, QVariant>& info);
void notifyLogout();
+ // Functions for marking posts as read
+ void markPostAsRead(int postId);
+
signals:
void busyChanged();
void loggedInChanged();
@@ -73,6 +79,7 @@ signals:
void forumsChanged();
void forumTopicsChanged(int forumId, int start, int end);
void topicPostsChanged(int topicId, int start, int end);
+ void topicPostsUnread(int topicId, int position);
private:
static QString createSlug(const QUrl& url);
@@ -86,6 +93,7 @@ private:
void executeActionFromQueue();
void initializeBbCode();
void initializeSmilies();
+ void initializeMarkRead();
void fetchConfigIfOutdated();
void fetchForumsIfOutdated();
@@ -98,13 +106,21 @@ private:
QString _slug;
QSqlDatabase _db;
XmlRpcInterface *_iface;
+ /** The queue of pending actions. The first one is currently being run. */
QQueue<Action*> _queue;
/** Configuration cache */
mutable QHash<QString, QString> _config;
+ /** Login information, which is obviously not persistent. */
QMap<QString, QVariant> _loginInfo;
+ /** Bbcodes list and their HTML replacements for quick-and-dirty parsing. */
QList< QPair<QRegExp, QString> > _bbcodes;
+ /** List of smilies and their replacements. */
QHash<QString, QString> _smilies;
+ /** A regular expression that matches every possibly smilie. */
QRegExp _smilieRegexp;
+ /** This timer helps delay marking topics/posts as read. */
+ QTimer *_markReadDelay;
+ QSet<int> _postsToMarkRead;
};
inline bool Board::busy() const