Compare commits

..

1 Commits

Author SHA1 Message Date
Nicolas Fella
945b27eca8 Add activation support to rooms runner
This is needed to raise the window when activating the runner action on Wayland
2023-09-23 19:39:03 +00:00
4 changed files with 18 additions and 16 deletions

View File

@@ -80,3 +80,4 @@ X-Plasma-DBusRunner-Service=org.kde.neochat
X-Plasma-DBusRunner-Path=/RoomRunner
X-Plasma-Request-Actions-Once=true
X-Plasma-Runner-Min-Letter-Count=3
X-Plasma-Runner-Has-Activation=true

View File

@@ -134,25 +134,23 @@ QQC2.ScrollView {
implicitWidth: Kirigami.Units.gridUnit * 2
implicitHeight: Kirigami.Units.gridUnit * 2
display: QQC2.AbstractButton.IconOnly
focusPolicy: Qt.NoFocus
z: 2
visible: root.currentRoom && root.currentRoom.hasUnreadMessages && root.currentRoom.readMarkerLoaded
action: Kirigami.Action {
icon.name: "go-up"
shortcut: "Shift+PgUp"
text: i18n("Jump to first unread message")
onTriggered: {
if (!Kirigami.Settings.isMobile) {
root.focusChatBox();
}
messageListView.goToEvent(root.currentRoom.readMarkerEventId)
}
icon.name: "go-up"
shortcut: "Shift+PgUp"
}
QQC2.ToolTip {
text: i18n("Jump to first unread message")
}
}
QQC2.RoundButton {
id: goMarkAsReadFab
anchors.right: parent.right
@@ -162,19 +160,18 @@ QQC2.ScrollView {
implicitWidth: Kirigami.Units.gridUnit * 2
implicitHeight: Kirigami.Units.gridUnit * 2
display: QQC2.AbstractButton.IconOnly
focusPolicy: Qt.NoFocus
z: 2
visible: !messageListView.atYEnd
action: Kirigami.Action {
icon.name: "go-down"
text: i18n("Jump to latest message")
onTriggered: {
messageListView.goToLastMessage();
root.currentRoom.markAllMessagesAsRead();
}
icon.name: "go-down"
}
QQC2.ToolTip {
text: i18n("Jump to latest message")
}
}

View File

@@ -5,6 +5,8 @@
#include <QDBusMetaType>
#include <KWindowSystem>
#include "controller.h"
#include "neochatroom.h"
#include "roommanager.h"
@@ -80,10 +82,12 @@ RemoteMatches Runner::Match(const QString &searchTerm)
return matches;
}
void Runner::Run(const QString &id, const QString &actionId)
void Runner::Run(const QString &id, const QString &actionId, const QString &activationToken)
{
Q_UNUSED(actionId);
KWindowSystem::setCurrentXdgActivationToken(activationToken);
NeoChatRoom *room = qobject_cast<NeoChatRoom *>(Controller::instance().activeConnection()->room(id));
if (!room) {

View File

@@ -183,7 +183,7 @@ public:
/**
* @brief Handle action calls.
*/
Q_SCRIPTABLE void Run(const QString &id, const QString &actionId);
Q_SCRIPTABLE void Run(const QString &id, const QString &actionId, const QString &activationToken = QString());
private:
RemoteImage serializeImage(const QImage &image);