Fix-up QR code scanning actions
I cleaned up how resolving QR codes work, I made sure to test both user and room links and everything works great. A more awkward bug I fixed is a workaround around a quirk in Kirigami.Dialog, but actually regresses QR codes. Because the QR code scanner is currently an extra window (at least on desktop) the UserDetailDialog will reparent itself to the soon-to-be-destroyed scanner window.
This commit is contained in:
@@ -358,7 +358,11 @@ Kirigami.ApplicationWindow {
|
|||||||
user: user,
|
user: user,
|
||||||
connection: root.connection,
|
connection: root.connection,
|
||||||
}) as UserDetailDialog;
|
}) as UserDetailDialog;
|
||||||
dialog.parent = QmlUtils.focusedWindowItem(); // Kirigami Dialogs overwrite the parent, so we need to set it again
|
// FIXME: The reason why we don't want the focusedWindowItem for the room null case (aka QR codes) is because it will parent it to the soon-to-be-destroyed window item.
|
||||||
|
// But this won't be a problem if we turn it into a Kirigami.Dialog or some other in-scene item, which it really should be.
|
||||||
|
if (room != null) {
|
||||||
|
dialog.parent = QmlUtils.focusedWindowItem(); // Kirigami Dialogs overwrite the parent, so we need to set it again
|
||||||
|
}
|
||||||
dialog.open();
|
dialog.open();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -209,9 +209,16 @@ void RoomManager::resolveResource(Uri uri, const QString &action)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (uri.type() == Uri::NonMatrix && action == "qr"_L1) {
|
if (action == "qr"_L1) {
|
||||||
Q_EMIT externalUrl(uri.toUrl());
|
if (uri.type() == Uri::NonMatrix) {
|
||||||
return;
|
Q_EMIT externalUrl(uri.toUrl());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (uri.type() != Uri::UserId) {
|
||||||
|
uri.setAction(QStringLiteral("join"));
|
||||||
|
} else {
|
||||||
|
uri.setAction(action);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// For matrix URIs:
|
// For matrix URIs:
|
||||||
|
|||||||
Reference in New Issue
Block a user