|
|
|
#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
|