Files
yacreader/YACReaderLibrary/server/yacreader_http_session.h
luisangelsm 3709b6e737
Some checks failed
Build / Initialization (push) Has been cancelled
Build / Code Format Validation (push) Has been cancelled
Build / Linux (Qt6) (push) Has been cancelled
Build / Linux (Qt6 + 7zip) (push) Has been cancelled
Build / macOS (Qt6 Universal) (push) Has been cancelled
Build / Windows x64 (Qt6) (push) Has been cancelled
Build / Windows ARM64 (Qt6) (push) Has been cancelled
Build / Docker amd64 Image (push) Has been cancelled
Build / Docker arm64 Image (push) Has been cancelled
Build / Publish Dev Builds (push) Has been cancelled
Build / Publish Release (push) Has been cancelled
Build / Publish YACReader10 Pre-release Builds (push) Has been cancelled
Format includes using clang-format
2026-03-13 18:21:38 +01:00

71 lines
2.0 KiB
C++

#ifndef YACREADERHTTPSESSION_H
#define YACREADERHTTPSESSION_H
#include "comic.h"
#include <QObject>
class YACReaderHttpSession : public QObject
{
Q_OBJECT
public:
explicit YACReaderHttpSession(QObject *parent = nullptr);
~YACReaderHttpSession() override;
void setComicsOnDevice(const QSet<QString> &set);
void setComicOnDevice(const QString &hash);
void setDownloadedComic(const QString &hash);
bool isComicOnDevice(const QString &hash);
bool isComicDownloaded(const QString &hash);
QSet<QString> getComicsOnDevice();
QSet<QString> getDownloadedComics();
void clearComics();
// current comic (import)
qulonglong getCurrentComicId();
Comic *getCurrentComic();
void dismissCurrentComic();
void setCurrentComic(qulonglong id, Comic *comic);
// current comic (read)
qulonglong getCurrentRemoteComicId();
Comic *getCurrentRemoteComic();
void dismissCurrentRemoteComic();
void setCurrentRemoteComic(qulonglong id, Comic *comic);
// device identification
QString getDeviceType();
QString getDisplayType();
void setDeviceType(const QString &device);
void setDisplayType(const QString &display);
void clearNavigationPath();
QPair<qulonglong, quint32> popNavigationItem();
QPair<qulonglong, quint32> topNavigationItem();
void pushNavigationItem(const QPair<qulonglong, quint32> &item);
void updateTopItem(const QPair<qulonglong, quint32> &item);
// TODO replace QPair by a custom class for storing folderId, page and folderName(save some DB accesses)
QStack<QPair<qulonglong, quint32>> getNavigationPath();
signals:
public slots:
private:
QSet<QString> comicsOnDevice;
QSet<QString> downloadedComics;
QString device;
QString display;
qulonglong comicId;
qulonglong remoteComicId;
Comic *comic;
Comic *remoteComic;
QStack<QPair<qulonglong, quint32>> navigationPath; /* folder_id, page_number */
};
#endif // YACREADERHTTPSESSION_H