#ifndef CONV_CONTEXT_H #define CONV_CONTEXT_H #include #include #include #include #include "lib/http.h" #include "lib/countries.h" #include "models/ChatModel.h" #include "wsclient.h" class Conversations : public QObject { Q_OBJECT Q_PROPERTY(QString configRootconfigDirectory MEMBER configDirectory); Q_PROPERTY(QString configRoot MEMBER configRoot); Q_PROPERTY(QString pathGenericData MEMBER pathGenericData); Q_PROPERTY(QString homeDir MEMBER homeDir); Q_PROPERTY(QString accountName MEMBER accountName); public: explicit Conversations(QCommandLineParser *cmdargs); ~Conversations() override; bool isDebug = false; // using ChatMessage = struct ChatMessage { // QString from_contact_uid; // QString to_contact_uid; // QString message; // QString date; // }; Q_INVOKABLE QString loltest() { QString aosidga = QString("loltestz"); return aosidga; } QCommandLineParser *cmdargs; QString configDirectory; QString configRoot; QString pathGenericData; QString homeDir; QString accountName; QHash countries_iso_3166_1; QString applicationPath; static void createConfigDirectory(const QString &dir) ; WSClient *ws; Countries *countries; ChatModel *chatModel; void setWindowTitle(const QString &title); Q_INVOKABLE void getMessages(const QString &contact_uid, int limit, int offset); Q_INVOKABLE QString foobar(quint64 amount) { return "lol"; } signals: void clockSkewDetected(); void setTitle(const QString &title); // set window title public slots: void onSendMessage(const QString &message); private slots: void onWSMessage(const QJsonObject& msg); private: QTimer m_hibernateTimer; std::chrono::seconds m_hibernateDetectInterval{300}; std::chrono::time_point m_hibernatePreviousTime; }; #endif // CONV_CONTEXT_H