plugins: hide the list under the detail overlay

plugins: block activation when the startup check cannot run

ref #3626
This commit is contained in:
bbedward
2026-09-29 16:57:24 -04:00
parent 53b8de2714
commit 765ffe8564
7 changed files with 125 additions and 95 deletions
+4 -18
View File
@@ -846,7 +846,9 @@ RegistryBrowserWindow {
}
]
overlay: Rectangle {
overlayActive: detailPluginId !== ""
overlay: Item {
id: detailPane
property var plugin: ({})
@@ -859,23 +861,7 @@ RegistryBrowserWindow {
plugin = livePlugin;
}
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
anchors.topMargin: 0
anchors.bottom: parent.bottom
z: 10
color: Theme.floatingWindowSurface
opacity: root.detailPluginId !== "" ? 1 : 0
visible: opacity > 0
Behavior on opacity {
NumberAnimation {
duration: Theme.expressiveDurations.expressiveEffects
easing.type: Easing.BezierSpline
easing.bezierCurve: Theme.expressiveCurves.expressiveEffects
}
}
anchors.fill: parent
Connections {
target: root
@@ -19,7 +19,8 @@ DankFloatingWindow {
property alias aboveSearch: aboveSearchSlot.data
property alias belowSearch: belowSearchSlot.data
property alias listContent: listSlot.data
property alias overlay: browserContent.data
property alias overlay: overlaySlot.data
property bool overlayActive: false
readonly property alias installConfirm: urlInstallConfirm
readonly property alias listArea: listSlot
@@ -189,58 +190,80 @@ DankFloatingWindow {
anchors.topMargin: Theme.spacingM
anchors.bottomMargin: Theme.spacingL
Column {
id: aboveSearchSlot
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
spacing: Theme.spacingS
}
Item {
id: browserBody
anchors.fill: parent
opacity: 1 - overlaySlot.opacity
visible: opacity > 0
DankSearchField {
id: browserSearchField
anchors.left: parent.left
anchors.right: parent.right
anchors.top: aboveSearchSlot.bottom
anchors.topMargin: aboveSearchSlot.height > 0 ? Theme.spacingM : 0
height: Theme.fieldHeightLarge
textColor: Theme.surfaceText
font.pixelSize: Theme.fontSizeMedium
placeholderText: root.searchPlaceholder
text: root.searchQuery
focus: true
ignoreLeftRightKeys: true
keyForwardTargets: [browserKeyHandler]
onTextEdited: {
root.searchQuery = text;
root.applySearch();
Column {
id: aboveSearchSlot
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
spacing: Theme.spacingS
}
DankSearchField {
id: browserSearchField
anchors.left: parent.left
anchors.right: parent.right
anchors.top: aboveSearchSlot.bottom
anchors.topMargin: aboveSearchSlot.height > 0 ? Theme.spacingM : 0
height: Theme.fieldHeightLarge
textColor: Theme.surfaceText
font.pixelSize: Theme.fontSizeMedium
placeholderText: root.searchPlaceholder
text: root.searchQuery
focus: true
ignoreLeftRightKeys: true
keyForwardTargets: [browserKeyHandler]
onTextEdited: {
root.searchQuery = text;
root.applySearch();
}
}
Column {
id: belowSearchSlot
anchors.left: parent.left
anchors.right: parent.right
anchors.top: browserSearchField.bottom
anchors.topMargin: height > 0 ? Theme.spacingM : 0
spacing: Theme.spacingS
}
Item {
id: listSlot
anchors.left: parent.left
anchors.right: parent.right
anchors.top: belowSearchSlot.bottom
anchors.topMargin: Theme.spacingM
anchors.bottom: parent.bottom
Item {
anchors.fill: parent
visible: root.isLoading
DankSpinner {
anchors.centerIn: parent
running: root.isLoading
}
}
}
}
Column {
id: belowSearchSlot
anchors.left: parent.left
anchors.right: parent.right
anchors.top: browserSearchField.bottom
anchors.topMargin: height > 0 ? Theme.spacingM : 0
spacing: Theme.spacingS
}
Item {
id: listSlot
anchors.left: parent.left
anchors.right: parent.right
anchors.top: belowSearchSlot.bottom
anchors.topMargin: Theme.spacingM
anchors.bottom: parent.bottom
id: overlaySlot
anchors.fill: parent
opacity: root.overlayActive ? 1 : 0
visible: opacity > 0
Item {
anchors.fill: parent
visible: root.isLoading
DankSpinner {
anchors.centerIn: parent
running: root.isLoading
Behavior on opacity {
NumberAnimation {
duration: Theme.expressiveDurations.expressiveEffects
easing.type: Easing.BezierSpline
easing.bezierCurve: Theme.expressiveCurves.expressiveEffects
}
}
}