mirror of
https://github.com/zoriya/noctalia-shell.git
synced 2026-05-31 17:54:41 +00:00
ControlCenterTab: add disabledIds to NReorderCheckboxes
This commit is contained in:
@@ -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]
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user