1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-05-12 15:29:43 -04:00

fix(Settings): Update card registration logic to fix binded crash

This commit is contained in:
purian23
2026-05-10 21:47:15 -04:00
parent 4193cf51ff
commit c7d44cfb12
6 changed files with 46 additions and 20 deletions

View File

@@ -33,9 +33,14 @@ Item {
Component.onCompleted: { Component.onCompleted: {
if (!settingKey) if (!settingKey)
return; return;
let flickable = findParentFlickable(); var key = settingKey;
if (flickable) Qt.callLater(() => {
SettingsSearchService.registerCard(settingKey, root, flickable); if (!root.parent)
return;
var flickable = findParentFlickable();
if (flickable)
SettingsSearchService.registerCard(key, root, flickable);
});
} }
Component.onDestruction: { Component.onDestruction: {

View File

@@ -55,12 +55,16 @@ StyledRect {
} }
Component.onCompleted: { Component.onCompleted: {
if (settingKey) { if (!settingKey)
let flickable = findParentFlickable(); return;
if (flickable) { var key = settingKey;
SettingsSearchService.registerCard(settingKey, root, flickable); Qt.callLater(() => {
} if (!root.parent)
} return;
var flickable = findParentFlickable();
if (flickable)
SettingsSearchService.registerCard(key, root, flickable);
});
} }
Component.onDestruction: { Component.onDestruction: {

View File

@@ -48,9 +48,14 @@ DankDropdown {
Component.onCompleted: { Component.onCompleted: {
if (!settingKey) if (!settingKey)
return; return;
let flickable = findParentFlickable(); var key = settingKey;
if (flickable) Qt.callLater(() => {
SettingsSearchService.registerCard(settingKey, root, flickable); if (!root.parent)
return;
var flickable = findParentFlickable();
if (flickable)
SettingsSearchService.registerCard(key, root, flickable);
});
} }
Component.onDestruction: { Component.onDestruction: {

View File

@@ -33,9 +33,14 @@ Item {
Component.onCompleted: { Component.onCompleted: {
if (!settingKey) if (!settingKey)
return; return;
let flickable = findParentFlickable(); var key = settingKey;
if (flickable) Qt.callLater(() => {
SettingsSearchService.registerCard(settingKey, root, flickable); if (!root.parent)
return;
var flickable = findParentFlickable();
if (flickable)
SettingsSearchService.registerCard(key, root, flickable);
});
} }
Component.onDestruction: { Component.onDestruction: {

View File

@@ -32,9 +32,14 @@ DankToggle {
Component.onCompleted: { Component.onCompleted: {
if (!settingKey) if (!settingKey)
return; return;
let flickable = findParentFlickable(); var key = settingKey;
if (flickable) Qt.callLater(() => {
SettingsSearchService.registerCard(settingKey, root, flickable); if (!root.parent)
return;
var flickable = findParentFlickable();
if (flickable)
SettingsSearchService.registerCard(key, root, flickable);
});
} }
Component.onDestruction: { Component.onDestruction: {

View File

@@ -54,10 +54,12 @@ Singleton {
function registerCard(settingKey, item, flickable) { function registerCard(settingKey, item, flickable) {
if (!settingKey) if (!settingKey)
return; return;
registeredCards[settingKey] = { var cards = Object.assign({}, registeredCards);
cards[settingKey] = {
item: item, item: item,
flickable: flickable flickable: flickable
}; };
registeredCards = cards;
if (targetSection === settingKey) if (targetSection === settingKey)
scrollTimer.restart(); scrollTimer.restart();
} }
@@ -65,7 +67,7 @@ Singleton {
function unregisterCard(settingKey) { function unregisterCard(settingKey) {
if (!settingKey) if (!settingKey)
return; return;
let cards = registeredCards; var cards = Object.assign({}, registeredCards);
delete cards[settingKey]; delete cards[settingKey];
registeredCards = cards; registeredCards = cards;
} }