Hide me underneath the space tree
4 files changed, 43 insertions, 16 deletions
diff --git a/resources/icons/ui/collapsed.svg b/resources/icons/ui/collapsed.svg
new file mode 100644
index 00000000..0ac6a30d
--- /dev/null
+++ b/resources/icons/ui/collapsed.svg
@@ -0,0 +1 @@
+<svg width="24" height="24" fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M8.47 4.22a.75.75 0 0 0 0 1.06L15.19 12l-6.72 6.72a.75.75 0 1 0 1.06 1.06l7.25-7.25a.75.75 0 0 0 0-1.06L9.53 4.22a.75.75 0 0 0-1.06 0Z" fill="#212121"/></svg>
\ No newline at end of file
diff --git a/resources/icons/ui/expanded.svg b/resources/icons/ui/expanded.svg
new file mode 100644
index 00000000..8c03304a
--- /dev/null
+++ b/resources/icons/ui/expanded.svg
@@ -0,0 +1 @@
+<svg width="24" height="24" fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M4.22 8.47a.75.75 0 0 1 1.06 0L12 15.19l6.72-6.72a.75.75 0 1 1 1.06 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L4.22 9.53a.75.75 0 0 1 0-1.06Z" fill="#212121"/></svg>
\ No newline at end of file
diff --git a/resources/qml/CommunitiesList.qml b/resources/qml/CommunitiesList.qml
index 0a8587b3..fab3316e 100644
--- a/resources/qml/CommunitiesList.qml
+++ b/resources/qml/CommunitiesList.qml
@@ -11,6 +11,7 @@ import QtQuick.Layouts 1.3
import im.nheko 1.0
Page {
+ id: communitySidebar
//leftPadding: Nheko.paddingSmall
//rightPadding: Nheko.paddingSmall
property int avatarSize: Math.ceil(fontMetrics.lineSpacing * 1.6)
@@ -22,7 +23,7 @@ Page {
anchors.left: parent.left
anchors.right: parent.right
height: parent.height
- model: Communities
+ model: Communities.filtered()
ScrollHelper {
flickable: parent
@@ -107,9 +108,31 @@ Page {
}
RowLayout {
+ id: r
spacing: Nheko.paddingMedium
anchors.fill: parent
anchors.margins: Nheko.paddingMedium
+ anchors.leftMargin: communitySidebar.collapsed ? Nheko.paddingMedium : (Nheko.paddingMedium * (model.depth + 1))
+
+ ImageButton {
+ visible: !communitySidebar.collapsed && model.collapsible
+ Layout.preferredHeight: fontMetrics.lineSpacing
+ Layout.preferredWidth: fontMetrics.lineSpacing
+ Layout.alignment: Qt.AlignVCenter
+ height: fontMetrics.lineSpacing
+ width: fontMetrics.lineSpacing
+ image: model.collapsed ? ":/icons/icons/ui/collapsed.svg" : ":/icons/icons/ui/expanded.svg"
+ ToolTip.visible: hovered
+ ToolTip.text: model.collapsed ? qsTr("Expand") : qsTr("Collapse")
+ hoverEnabled: true
+
+ onClicked: model.collapsed = !model.collapsed
+ }
+
+ Item {
+ Layout.preferredWidth: fontMetrics.lineSpacing
+ visible: !communitySidebar.collapsed && !model.collapsible
+ }
Avatar {
id: avatar
@@ -130,10 +153,10 @@ Page {
}
ElidedLabel {
- visible: !collapsed
+ visible: !communitySidebar.collapsed
Layout.alignment: Qt.AlignVCenter
color: communityItem.importantText
- elideWidth: parent.width - avatar.width - Nheko.paddingMedium
+ elideWidth: parent.width - avatar.width - r.anchors.leftMargin - Nheko.paddingMedium - fontMetrics.lineSpacing
fullText: model.displayName
textFormat: Text.PlainText
}
diff --git a/resources/res.qrc b/resources/res.qrc
index 4bde40a5..2ab60e3a 100644
--- a/resources/res.qrc
+++ b/resources/res.qrc
@@ -1,24 +1,29 @@
<RCC>
<qresource prefix="/icons">
- <file>icons/ui/sticky-note-solid.svg</file>
<file>icons/ui/add-square-button.svg</file>
- <file>icons/ui/send.svg</file>
- <file>icons/ui/smile.svg</file>
- <file>icons/ui/user-friends-solid.svg</file>
- <file>icons/ui/place-call.svg</file>
- <file>icons/ui/attach.svg</file>
<file>icons/ui/angle-arrow-left.svg</file>
+ <file>icons/ui/attach.svg</file>
+ <file>icons/ui/ban.svg</file>
<file>icons/ui/chat.svg</file>
<file>icons/ui/checkmark.svg</file>
<file>icons/ui/clock.svg</file>
+ <file>icons/ui/collapsed.svg</file>
<file>icons/ui/delete.svg</file>
+ <file>icons/ui/dismiss.svg</file>
+ <file>icons/ui/double-checkmark.svg</file>
+ <file>icons/ui/download.svg</file>
<file>icons/ui/edit.svg</file>
<file>icons/ui/end-call.svg</file>
+ <file>icons/ui/expanded.svg</file>
+ <file>icons/ui/image-failed.svg</file>
<file>icons/ui/lowprio.svg</file>
<file>icons/ui/microphone-mute.svg</file>
<file>icons/ui/microphone-unmute.svg</file>
+ <file>icons/ui/options.svg</file>
<file>icons/ui/pause-symbol.svg</file>
<file>icons/ui/people.svg</file>
+ <file>icons/ui/picture-in-picture.svg</file>
+ <file>icons/ui/place-call.svg</file>
<file>icons/ui/play-sign.svg</file>
<file>icons/ui/power-off.svg</file>
<file>icons/ui/refresh.svg</file>
@@ -26,21 +31,18 @@
<file>icons/ui/round-remove-button.svg</file>
<file>icons/ui/screen-share.svg</file>
<file>icons/ui/search.svg</file>
+ <file>icons/ui/send.svg</file>
<file>icons/ui/settings.svg</file>
+ <file>icons/ui/smile.svg</file>
<file>icons/ui/speech-bubbles.svg</file>
<file>icons/ui/star.svg</file>
+ <file>icons/ui/sticky-note-solid.svg</file>
<file>icons/ui/tag.svg</file>
+ <file>icons/ui/user-friends-solid.svg</file>
<file>icons/ui/video.svg</file>
<file>icons/ui/volume-off-indicator.svg</file>
<file>icons/ui/volume-up.svg</file>
<file>icons/ui/world.svg</file>
- <file>icons/ui/picture-in-picture.svg</file>
- <file>icons/ui/options.svg</file>
- <file>icons/ui/double-checkmark.svg</file>
- <file>icons/ui/ban.svg</file>
- <file>icons/ui/image-failed.svg</file>
- <file>icons/ui/dismiss.svg</file>
- <file>icons/ui/download.svg</file>
<file>icons/emoji-categories/activity.svg</file>
<file>icons/emoji-categories/flags.svg</file>
<file>icons/emoji-categories/foods.svg</file>
|