diff options
Diffstat (limited to 'src/session.h')
-rw-r--r-- | src/session.h | 57 |
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 |