You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

79 lines
2.0 KiB

#ifndef CONV_CONTEXT_H
#define CONV_CONTEXT_H
#include <QObject>
#include <QProcess>
#include <QNetworkAccessManager>
#include <QTimer>
#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<QString, CountryISO> 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<std::chrono::steady_clock> m_hibernatePreviousTime;
};
#endif // CONV_CONTEXT_H