aboutsummaryrefslogtreecommitdiff
path: root/src/session.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/session.h')
-rw-r--r--src/session.h52
1 files changed, 25 insertions, 27 deletions
diff --git a/src/session.h b/src/session.h
index 5935919..e1c924f 100644
--- a/src/session.h
+++ b/src/session.h
@@ -33,48 +33,41 @@
#include <QTimerEvent>
#include <QTranslator>
-#include "main_qmladaptor.h"
#include "RWAHost.h"
#include "DBusAPI.h"
-class Session : public QObject
-{
+class Session : public QObject {
Q_OBJECT
- // this makes status available as a QML property
- Q_PROPERTY(QString status READ getStatus NOTIFY statusChanged)
- // this makes session_id available as a QML property
- Q_PROPERTY(QString session_id READ getSessionID NOTIFY sessionIDChanged)
- // this makes url available as a QML property
- Q_PROPERTY(QString url READ getURL NOTIFY urlChanged)
- // this makes pin available as a QML property
- Q_PROPERTY(QString pin READ getPin NOTIFY pinChanged)
public:
- explicit Session(QObject *parent, MainQMLAdaptor *main_gui = nullptr,
+ explicit Session(DBusAPI *dbus_api = nullptr,
RWAHost *host = nullptr);
+ ~Session();
QString getStatus();
QString getURL();
QString getSessionID();
QString getPin();
+ RWAHost* getHost();
void setStatus(QString status);
void setURL(QString url);
void setSessionID(QString session_id);
void setPin(QString pin);
+ void setHost(RWAHost *host);
void start();
void stop();
void status();
void refresh_status();
-protected:
- QString _status;
- void statusTimerEvent();
- void init_vars();
+ bool started;
private:
- MainQMLAdaptor *_main_gui;
+ void statusTimerEvent();
+
+ bool _emitted_status_error_already;
+ QString _status;
RWAHost *_host;
DBusAPI *_dbus_api;
@@ -82,25 +75,30 @@ private:
QString _url;
QString _pin;
- // Returns true if a session is somewhat usable (Running, Alive, etc..)
- bool isSessionAliveOrRunning(QString status);
-
bool _minimizedBefore = false;
- void minimizeWindow();
+
signals:
- void finished();
void statusChanged(QString);
void sessionIDChanged(QString);
void urlChanged(QString);
void pinChanged(QString);
+ void hostChanged(RWAHost*);
+
+ void startFailed(QString error_message);
+ void stopFailed(QString error_message);
+ void statusFailed(QString error_message);
+
+ void startSucceeded();
+ void stopSucceeded();
+ void statusSucceeded();
public slots:
- void handleConnectButtonClick(bool checked);
- void onCloseHandler();
+ // Returns true if a session is somewhat usable (Running, Alive, etc..)
+ bool isSessionAliveOrRunning();
- void start_response(QJsonDocument *doc);
- void stop_response(QJsonDocument *doc);
- void status_response(QJsonDocument *doc);
+ void start_response(QJsonDocument*);
+ void stop_response(QJsonDocument*);
+ void status_response(QJsonDocument*);
};
#endif // SESSION_H