aboutsummaryrefslogtreecommitdiff
path: root/src/session.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/session.h')
-rw-r--r--src/session.h57
1 files changed, 23 insertions, 34 deletions
diff --git a/src/session.h b/src/session.h
index 1b8b2d6..2c534f4 100644
--- a/src/session.h
+++ b/src/session.h
@@ -24,26 +24,24 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-#pragma once
+#ifndef SESSION_H
+#define SESSION_H
#include <QObject>
#include <QQmlApplicationEngine>
#include <QQuickItem>
#include <QTimerEvent>
#include <QTranslator>
-#include <QtDBus/QtDBus>
-#include "RWADBusAdaptor.h"
#include "main_qmladaptor.h"
+#include "RWAHost.h"
+#include "DBusAPI.h"
class Session : public QObject
{
Q_OBJECT
- Q_PROPERTY(QString host_id READ getHostID NOTIFY hostIDChanged)
// this makes status available as a QML property
Q_PROPERTY(QString status READ getStatus NOTIFY statusChanged)
- // this makes service id available as a QML property
- Q_PROPERTY(QString id READ getID NOTIFY idChanged)
// 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
@@ -52,32 +50,23 @@ class Session : public QObject
Q_PROPERTY(QString pin READ getPin NOTIFY pinChanged)
public:
- explicit Session(QObject *parent, MainQMLAdaptor *main_gui = nullptr);
+ explicit Session(QObject *parent, MainQMLAdaptor *main_gui = nullptr,
+ RWAHost *host = nullptr);
QString getStatus();
QString getURL();
- QString getID();
- QString getHostID();
QString getSessionID();
QString getPin();
void setStatus(QString status);
void setURL(QString url);
- void setID(QString id);
- void setHostID(QString host_id);
void setSessionID(QString session_id);
void setPin(QString pin);
- // Starts a VNC Session
- void start_request_dbus(QString host_id);
- // Refreshes a VNC Session's status
- void refresh_status_request_dbus(QString host_id, QString id);
- // Stop the Session
- void stop_request_dbus(QString id);
- // Gets a VNC Session's status
- void status_request_dbus(QString id);
- // Returns true if Session is somewhat usable (Running, Alive, etc..)
- bool isSessionAliveOrRunning(QString status);
+ void start();
+ void stop();
+ void status();
+ void refresh_status();
protected:
QString _status;
@@ -85,33 +74,33 @@ protected:
void init_vars();
private:
- MainQMLAdaptor* _main_gui;
- QString _id;
+ MainQMLAdaptor *_main_gui;
+ RWAHost *_host;
+ DBusAPI *_dbus_api;
+
QString _session_id;
- QString _host_id;
QString _url;
QString _pin;
- OrgArcticaProjectRWASupportSessionServiceInterface* _dbus_rwa;
- void _initDBus();
+
+ // 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 idChanged(QString);
void sessionIDChanged(QString);
void urlChanged(QString);
void pinChanged(QString);
- void hostIDChanged(QString);
public slots:
void handleConnectButtonClick(bool checked);
-
- void start_dbus_replied(QDBusPendingCallWatcher *call);
- void stop_dbus_replied(QDBusPendingCallWatcher *call);
- void status_dbus_replied(QDBusPendingCallWatcher *call);
-
void onCloseHandler();
+
+ void start_response(QJsonDocument *doc);
+ void stop_response(QJsonDocument *doc);
+ void status_response(QJsonDocument *doc);
};
+
+#endif // SESSION_H