better chat list view + anchor to bottom. sqlite db for chats + LIFO-ordered

This commit is contained in:
2026-08-23 16:37:11 +02:00
parent 37c6a9986e
commit aae3757daf
36 changed files with 2653 additions and 1459 deletions
@@ -12,13 +12,11 @@ import qs.Services
import qs.Helpers
import qs.Daemons
import qs.Modules.Settings
import qs.Modules.Bar.Popouts as BarPopouts
CustomRect {
id: root
readonly property bool needExtraRow: quickToggles.length > 6
required property BarPopouts.Wrapper popouts
readonly property var quickToggles: {
const seenIds = new Set();
@@ -1,14 +1,12 @@
import Quickshell
import QtQuick
import QtQuick.Layouts
import qs.Modules.Bar.Popouts as BarPopouts
import qs.Modules.Notifications.Sidebar.Utils.Cards
import ZShell.Config
Item {
id: root
required property BarPopouts.Wrapper popouts
required property PersistentProperties props
required property var visibilities
@@ -21,8 +19,7 @@ Item {
anchors.fill: parent
spacing: 8
IdleInhibit {
}
IdleInhibit {}
Record {
props: root.props
@@ -32,7 +29,6 @@ Item {
Toggles {
Layout.fillWidth: true
popouts: root.popouts
visibilities: root.visibilities
}
}
@@ -4,13 +4,11 @@ import QtQuick
import Quickshell
import ZShell.Config
import qs.Components
import qs.Modules.Bar.Popouts as BarPopouts
Item {
id: root
property real offsetScale: shouldBeActive ? 0 : 1
required property BarPopouts.Wrapper popouts
readonly property PersistentProperties props: PersistentProperties {
property string recordingConfirmDelete
property bool recordingListExpanded: false
@@ -18,17 +16,14 @@ Item {
reloadableId: "utilities"
}
readonly property bool shouldBeActive: visibilities.sidebar
readonly property bool shouldBeActive: visibilities.sidebar && !sidebar.chatActive
required property Item sidebar
required property var visibilities
anchors.bottomMargin: (-implicitHeight - 5) * offsetScale
clip: chatActive
implicitHeight: chatActive ? 21 : content.implicitHeight + 8 * 2
implicitHeight: content.implicitHeight + Tokens.padding.small * 2
implicitWidth: sidebar.width * (1 - sidebar.offsetScale)
opacity: (1 - offsetScale) * chatFade
readonly property bool chatActive: sidebar.chatActive
property real chatFade: chatActive ? 0 : 1
opacity: 1 - offsetScale
visible: offsetScale < 1
Behavior on offsetScale {
@@ -38,20 +33,6 @@ Item {
}
}
Behavior on chatFade {
Anim {
duration: Tokens.anim.durations.expressiveDefaultSpatial
easing: Tokens.anim.expressiveDefaultSpatial
}
}
Behavior on implicitHeight {
Anim {
duration: Tokens.anim.durations.expressiveDefaultSpatial
easing: Tokens.anim.expressiveDefaultSpatial
}
}
Loader {
id: content
@@ -62,7 +43,6 @@ Item {
sourceComponent: Content {
implicitWidth: root.implicitWidth - 8 * 2
popouts: root.popouts
props: root.props
visibilities: root.visibilities
}