ControlCenterTab: add disabledIds to NReorderCheckboxes

This commit is contained in:
Ly-sec
2025-11-04 14:31:27 +01:00
parent d4d432eda3
commit f9576582bd
2 changed files with 11 additions and 23 deletions
+1 -8
View File
@@ -201,6 +201,7 @@ ColumnLayout {
NReorderCheckboxes {
Layout.fillWidth: true
model: cardsModel
disabledIds: Settings.data.location.weatherEnabled ? [] : ["weather-card"]
onDragPotentialStarted: {
root.handleDragStart()
}
@@ -208,10 +209,6 @@ ColumnLayout {
root.handleDragEnd()
}
onItemToggled: function (index, enabled) {
// Prevent toggling weather card when weather is disabled
if (cardsModel[index].id === "weather-card" && !Settings.data.location.weatherEnabled) {
return
}
//Logger.i("ControlCenterTab", "Item", index, "toggled to", enabled)
var newModel = cardsModel.slice()
newModel[index] = Object.assign({}, newModel[index], {
@@ -221,10 +218,6 @@ ColumnLayout {
saveCards()
}
onItemsReordered: function (fromIndex, toIndex) {
// Prevent reordering weather card when weather is disabled
if (cardsModel[fromIndex].id === "weather-card" && !Settings.data.location.weatherEnabled) {
return
}
//Logger.i("ControlCenterTab", "Item moved from", fromIndex, "to", toIndex)
var newModel = cardsModel.slice()
var item = newModel.splice(fromIndex, 1)[0]
+10 -15
View File
@@ -9,6 +9,7 @@ Item {
// Public API
property var model: []
property var disabledIds: []
property color activeColor: Color.mPrimary
property color activeOnColor: Color.mOnPrimary
property color dragHandleColor: Color.mOutline
@@ -76,15 +77,9 @@ Item {
required property var modelData
property string text: modelData.text || ""
property bool enabled: {
// Override enabled for weather card based on weatherEnabled setting
if (modelData.id === "weather-card") {
return (modelData.enabled || false) && Settings.data.location.weatherEnabled
}
return modelData.enabled || false
}
property bool enabled: modelData.enabled || false
property bool required: modelData.required || false
readonly property bool isWeatherCardDisabled: modelData.id === "weather-card" && !Settings.data.location.weatherEnabled
readonly property bool isDisabled: (root.disabledIds || []).indexOf(modelData.id) !== -1
property bool dragging: false
property int dragStartY: 0
property int dragStartIndex: -1
@@ -96,7 +91,7 @@ Item {
width: parent.width
spacing: Style.marginS
opacity: (modelData.id === "weather-card" && !Settings.data.location.weatherEnabled) ? 0.5 : 1.0
opacity: isDisabled ? 0.5 : 1.0
// Drag handle
Rectangle {
@@ -132,14 +127,14 @@ Item {
id: dragHandleMouseArea
anchors.fill: parent
cursorShape: (delegateItem.required || delegateItem.isWeatherCardDisabled) ? Qt.ForbiddenCursor : Qt.SizeVerCursor
cursorShape: (delegateItem.required || delegateItem.isDisabled) ? Qt.ForbiddenCursor : Qt.SizeVerCursor
hoverEnabled: true
preventStealing: false
enabled: !delegateItem.required && !delegateItem.isWeatherCardDisabled
enabled: !delegateItem.required && !delegateItem.isDisabled
z: 1000
onPressed: mouse => {
if (delegateItem.required || delegateItem.isWeatherCardDisabled) {
if (delegateItem.required || delegateItem.isDisabled) {
return
}
delegateItem.dragStartIndex = delegateItem.index
@@ -234,11 +229,11 @@ Item {
MouseArea {
anchors.fill: parent
cursorShape: (delegateItem.required || delegateItem.isWeatherCardDisabled) ? Qt.ForbiddenCursor : Qt.PointingHandCursor
enabled: !delegateItem.required && !delegateItem.isWeatherCardDisabled
cursorShape: (delegateItem.required || delegateItem.isDisabled) ? Qt.ForbiddenCursor : Qt.PointingHandCursor
enabled: !delegateItem.required && !delegateItem.isDisabled
onClicked: {
if (!delegateItem.required && !delegateItem.isWeatherCardDisabled) {
if (!delegateItem.required && !delegateItem.isDisabled) {
root.toggleItem(delegateItem.index)
}
}