Reenable userInfo settings menu
2 files changed, 76 insertions, 7 deletions
diff --git a/resources/qml/MatrixTextField.qml b/resources/qml/MatrixTextField.qml
index 2ba648b5..3c660bac 100644
--- a/resources/qml/MatrixTextField.qml
+++ b/resources/qml/MatrixTextField.qml
@@ -11,6 +11,7 @@ TextField {
id: input
palette: Nheko.colors
+ color: Nheko.colors.text
Rectangle {
id: blueBar
diff --git a/resources/qml/RoomList.qml b/resources/qml/RoomList.qml
index cde744c5..40669eda 100644
--- a/resources/qml/RoomList.qml
+++ b/resources/qml/RoomList.qml
@@ -2,6 +2,7 @@
//
// SPDX-License-Identifier: GPL-3.0-or-later
+import Qt.labs.platform 1.1 as Platform
import QtQuick 2.13
import QtQuick.Controls 2.13
import QtQuick.Layouts 1.3
@@ -206,20 +207,87 @@ Page {
spacing: 0
Rectangle {
+ id: userInfoPanel
+
+ function openUserProfile() {
+ Nheko.updateUserProfile();
+ var userProfile = userProfileComponent.createObject(timelineRoot, {
+ "profile": Nheko.currentUser
+ });
+ userProfile.show();
+ }
+
color: Nheko.colors.window
Layout.fillWidth: true
Layout.alignment: Qt.AlignBottom
Layout.preferredHeight: userInfoGrid.implicitHeight + 2 * Nheko.paddingMedium
Layout.minimumHeight: 40
- TapHandler {
- onSingleTapped: {
- Nheko.updateUserProfile();
- var userProfile = userProfileComponent.createObject(timelineRoot, {
- "profile": Nheko.currentUser
- });
- userProfile.show();
+ ApplicationWindow {
+ id: statusDialog
+
+ modality: Qt.NonModal
+ flags: Qt.Dialog
+ title: qsTr("Status Message")
+ width: 350
+ height: fontMetrics.lineSpacing * 7
+
+ ColumnLayout {
+ anchors.margins: Nheko.paddingLarge
+ anchors.fill: parent
+
+ Label {
+ color: Nheko.colors.text
+ text: qsTr("Enter your status message:")
+ }
+
+ MatrixTextField {
+ id: statusInput
+
+ Layout.fillWidth: true
+ }
+
}
+
+ footer: DialogButtonBox {
+ standardButtons: DialogButtonBox.Ok | DialogButtonBox.Cancel
+ onAccepted: {
+ Nheko.setStatusMessage(statusInput.text);
+ statusDialog.close();
+ }
+ onRejected: {
+ statusDialog.close();
+ }
+ }
+
+ }
+
+ Platform.Menu {
+ id: userInfoMenu
+
+ Platform.MenuItem {
+ text: qsTr("Profile settings")
+ onTriggered: userInfoPanel.openUserProfile()
+ }
+
+ Platform.MenuItem {
+ text: qsTr("Set status message")
+ onTriggered: statusDialog.show()
+ }
+
+ }
+
+ TapHandler {
+ acceptedButtons: Qt.LeftButton
+ onSingleTapped: userInfoPanel.openUserProfile()
+ onLongPressed: userInfoMenu.open()
+ gesturePolicy: TapHandler.ReleaseWithinBounds
+ }
+
+ TapHandler {
+ acceptedButtons: Qt.RightButton
+ onSingleTapped: userInfoMenu.open()
+ gesturePolicy: TapHandler.ReleaseWithinBounds
}
RowLayout {
|