parent
56ea40a9a0
commit
66c0d0a15f
5 changed files with 36 additions and 11 deletions
|
|
@ -1,4 +1,3 @@
|
||||||
import qs.services
|
|
||||||
import qs.config
|
import qs.config
|
||||||
import qs.modules.osd as Osd
|
import qs.modules.osd as Osd
|
||||||
import qs.modules.notifications as Notifications
|
import qs.modules.notifications as Notifications
|
||||||
|
|
@ -64,6 +63,7 @@ Item {
|
||||||
id: launcher
|
id: launcher
|
||||||
|
|
||||||
visibilities: root.visibilities
|
visibilities: root.visibilities
|
||||||
|
panels: root
|
||||||
|
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,10 @@ import QtQuick
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
|
required property var wrapper
|
||||||
required property PersistentProperties visibilities
|
required property PersistentProperties visibilities
|
||||||
|
required property var panels
|
||||||
|
|
||||||
readonly property int padding: Appearance.padding.large
|
readonly property int padding: Appearance.padding.large
|
||||||
readonly property int rounding: Appearance.rounding.large
|
readonly property int rounding: Appearance.rounding.large
|
||||||
|
|
||||||
|
|
@ -34,7 +37,9 @@ Item {
|
||||||
ContentList {
|
ContentList {
|
||||||
id: list
|
id: list
|
||||||
|
|
||||||
|
wrapper: root.wrapper
|
||||||
visibilities: root.visibilities
|
visibilities: root.visibilities
|
||||||
|
panels: root.panels
|
||||||
search: search
|
search: search
|
||||||
padding: root.padding
|
padding: root.padding
|
||||||
rounding: root.rounding
|
rounding: root.rounding
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,9 @@ import QtQuick.Controls
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
|
required property var wrapper
|
||||||
required property PersistentProperties visibilities
|
required property PersistentProperties visibilities
|
||||||
|
required property var panels
|
||||||
required property TextField search
|
required property TextField search
|
||||||
required property int padding
|
required property int padding
|
||||||
required property int rounding
|
required property int rounding
|
||||||
|
|
@ -103,6 +105,8 @@ Item {
|
||||||
sourceComponent: WallpaperList {
|
sourceComponent: WallpaperList {
|
||||||
search: root.search
|
search: root.search
|
||||||
visibilities: root.visibilities
|
visibilities: root.visibilities
|
||||||
|
panels: root.panels
|
||||||
|
wrapper: root.wrapper
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,18 +12,31 @@ PathView {
|
||||||
|
|
||||||
required property TextField search
|
required property TextField search
|
||||||
required property PersistentProperties visibilities
|
required property PersistentProperties visibilities
|
||||||
readonly property int numItems: {
|
required property var panels
|
||||||
const screenWidth = QsWindow.window?.screen.width * 0.8;
|
required property var wrapper
|
||||||
if (!screenWidth)
|
|
||||||
return 0;
|
readonly property int itemWidth: Config.launcher.sizes.wallpaperWidth * 0.8 + Appearance.padding.larger * 2
|
||||||
const itemWidth = Config.launcher.sizes.wallpaperWidth * 0.8;
|
|
||||||
const max = Config.launcher.maxWallpapers;
|
readonly property int numItems: {
|
||||||
const maxItemsOnScreen = Math.floor(screenWidth / itemWidth);
|
const screen = QsWindow.window?.screen;
|
||||||
|
if (!screen)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
// Screen width - 4x outer rounding - 2x max side thickness (cause centered)
|
||||||
|
let outerMargins = Math.max(Config.border.thickness, panels.bar.implicitWidth);
|
||||||
|
if (panels.popouts.hasCurrent && panels.popouts.currentCenter + panels.popouts.nonAnimHeight / 2 > screen.height - wrapper.implicitHeight - Config.border.thickness * 2)
|
||||||
|
outerMargins = panels.bar.implicitWidth + panels.popouts.nonAnimWidth;
|
||||||
|
const maxWidth = screen.width - Config.border.rounding * 4 - outerMargins * 2;
|
||||||
|
|
||||||
|
if (maxWidth <= 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
const maxItemsOnScreen = Math.floor(maxWidth / itemWidth);
|
||||||
|
const visible = Math.min(maxItemsOnScreen, Config.launcher.maxWallpapers, scriptModel.values.length);
|
||||||
|
|
||||||
const visible = Math.min(maxItemsOnScreen, max, scriptModel.values.length);
|
|
||||||
if (visible === 2)
|
if (visible === 2)
|
||||||
return 1;
|
return 1;
|
||||||
else if (visible > 1 && visible % 2 === 0)
|
if (visible > 1 && visible % 2 === 0)
|
||||||
return visible - 1;
|
return visible - 1;
|
||||||
return visible;
|
return visible;
|
||||||
}
|
}
|
||||||
|
|
@ -45,7 +58,7 @@ PathView {
|
||||||
Wallpapers.preview(currentItem.modelData.path);
|
Wallpapers.preview(currentItem.modelData.path);
|
||||||
}
|
}
|
||||||
|
|
||||||
implicitWidth: Math.min(numItems, count) * (Config.launcher.sizes.wallpaperWidth * 0.8 + Appearance.padding.larger * 2)
|
implicitWidth: Math.min(numItems, count) * itemWidth
|
||||||
pathItemCount: numItems
|
pathItemCount: numItems
|
||||||
cacheItemCount: 4
|
cacheItemCount: 4
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ Item {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
required property PersistentProperties visibilities
|
required property PersistentProperties visibilities
|
||||||
|
required property var panels
|
||||||
|
|
||||||
visible: height > 0
|
visible: height > 0
|
||||||
implicitHeight: 0
|
implicitHeight: 0
|
||||||
|
|
@ -50,6 +51,8 @@ Item {
|
||||||
Content {
|
Content {
|
||||||
id: content
|
id: content
|
||||||
|
|
||||||
|
wrapper: root
|
||||||
visibilities: root.visibilities
|
visibilities: root.visibilities
|
||||||
|
panels: root.panels
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue