aboutsummaryrefslogtreecommitdiff
path: root/src/main_qmladaptor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/main_qmladaptor.cpp')
-rw-r--r--src/main_qmladaptor.cpp84
1 files changed, 31 insertions, 53 deletions
diff --git a/src/main_qmladaptor.cpp b/src/main_qmladaptor.cpp
index 5da0abb..d30243d 100644
--- a/src/main_qmladaptor.cpp
+++ b/src/main_qmladaptor.cpp
@@ -33,11 +33,22 @@ MainQMLAdaptor::MainQMLAdaptor(QObject *parent, QQmlApplicationEngine* engine,
_engine = engine;
_dbus_api = dbus_api;
+ _selected_rwa_host = nullptr;
_rwaHostModel = new QList<QObject*>;
QTimer *timer = new QTimer(this);
- connect(timer, &QTimer::timeout, _dbus_api, QOverload<>::of(&DBusAPI::get_web_app_hosts_request));
+ connect(timer, &QTimer::timeout, _dbus_api,
+ QOverload<>::of(&DBusAPI::get_web_app_hosts_request));
timer->start(10000);
+
+ qmlRegisterUncreatableMetaObject(
+ Toast::staticMetaObject, // meta object created by Q_NAMESPACE macro
+ "rwa.toast.type", // import statement (can be any string)
+ 1, 0, // major and minor version of the import
+ "ToastType", // name in QML (does not have to match C++ name)
+ "Error: only enums" // error if someone tries to create a ToastType object
+ );
+
}
void MainQMLAdaptor::onRwaHostSelected(QString host_uuid) {
@@ -55,11 +66,19 @@ void MainQMLAdaptor::onRwaHostSelected(QString host_uuid) {
}
Q_ASSERT(_host != nullptr);
- qDebug() << "RWAHost was selected!" << _host->uuid() << "aka" << _host->alias();
+ _selected_rwa_host = _host;
+ qDebug() << "RWAHost was selected!" <<
+ _selected_rwa_host->uuid() <<
+ "aka" <<
+ _selected_rwa_host->alias();
setRWAHostSelected(true);
}
+RWAHost* MainQMLAdaptor::getSelectedRWAHost() {
+ return _selected_rwa_host;
+}
+
void MainQMLAdaptor::setRWAHostModel(QList<QObject*> *rwa_hosts) {
_rwaHostModel = rwa_hosts;
emit rwaHostModelChanged(*rwa_hosts);
@@ -108,7 +127,13 @@ void MainQMLAdaptor::get_web_app_hosts_response(QJsonDocument *doc) {
if (doc == nullptr) {
setRWAHostSelected(false);
- showToast(tr("Can't connect to underlying session service!"), 9800);
+ showToast(tr("Can't connect to underlying session service!"),
+ 9800,
+ Toast::ToastError);
+
+ // Go to the first page on the stack.
+ main_content_pop(nullptr);
+
return;
}
@@ -308,59 +333,12 @@ bool MainQMLAdaptor::getShowMessageDialog() {
return _showMessageDialog;
}
-bool MainQMLAdaptor::setStatusIndicator(bool active, QColor color) {
- // Find item via 'objectName'
- QQuickItem *scene_remote_control = _engine->rootObjects().at(0)->findChild<QQuickItem*>("Scene_remote_control");
- QQuickItem *item = scene_remote_control->findChild<QQuickItem*>("dbus_api_status_indicator");
- if (item) {
- item->setProperty("active", active);
- item->setProperty("color", color);
- } else {
- qWarning() << "Unable to find 'dbus_api_status_indicator' Item!";
- return false;
- }
-
- return true;
-}
-
-void MainQMLAdaptor::handleCopyToClipboardButtonClick(QString copy_data) {
- QClipboard *clipboard = QApplication::clipboard();
- QString originalText = clipboard->text();
- clipboard->setText(copy_data);
- qDebug() << "Copied into clipboard:" << copy_data;
-}
-
-void MainQMLAdaptor::handleConnectButtonClick(bool checked) {
- emit onConnectButtonClick(checked);
-}
-
-void MainQMLAdaptor::setPin(QString pin) {
- _pin = pin;
- emit pinChanged(pin);
-}
-void MainQMLAdaptor::setURL(QString URL) {
- _url = URL;
- emit urlChanged(URL);
-}
-void MainQMLAdaptor::setSessionID(QString session_id) {
- _session_id = session_id;
- emit sessionIDChanged(session_id);
-}
-QString MainQMLAdaptor::getURL() {
- return _url;
-}
-QString MainQMLAdaptor::getPin() {
- return _pin;
-}
-QString MainQMLAdaptor::getSessionID() {
- return _session_id;
-}
-
void MainQMLAdaptor::onCloseHandler() {
// Do cleanup things here...
emit onCloseSignal();
}
-void MainQMLAdaptor::showToast(QString text, uint durationMs) {
- emit showToastSignal(text, QString::number(durationMs));
+void MainQMLAdaptor::showToast(QString text, uint durationMs, uint type) {
+ // type is actually Toast::ToastType
+ emit showToastSignal(text, QString::number(durationMs), type);
}