diff --git a/Modules/Bar/Bar.qml b/Modules/Bar/Bar.qml index fa61bd95..31504433 100644 --- a/Modules/Bar/Bar.qml +++ b/Modules/Bar/Bar.qml @@ -102,6 +102,7 @@ Variants { model: Settings.data.bar.widgets.left delegate: BarWidgetLoader { widgetId: (modelData.id !== undefined ? modelData.id : "") + barDensity: Settings.data.bar.density widgetProps: { "screen": root.modelData || null, "widgetId": modelData.id, @@ -124,6 +125,7 @@ Variants { model: Settings.data.bar.widgets.center delegate: BarWidgetLoader { widgetId: (modelData.id !== undefined ? modelData.id : "") + barDensity: Settings.data.bar.density widgetProps: { "screen": root.modelData || null, "widgetId": modelData.id, @@ -147,6 +149,7 @@ Variants { model: Settings.data.bar.widgets.right delegate: BarWidgetLoader { widgetId: (modelData.id !== undefined ? modelData.id : "") + barDensity: Settings.data.bar.density widgetProps: { "screen": root.modelData || null, "widgetId": modelData.id, @@ -180,6 +183,7 @@ Variants { model: Settings.data.bar.widgets.left delegate: BarWidgetLoader { widgetId: (modelData.id !== undefined ? modelData.id : "") + barDensity: Settings.data.bar.density widgetProps: { "screen": root.modelData || null, "widgetId": modelData.id, @@ -204,6 +208,7 @@ Variants { model: Settings.data.bar.widgets.center delegate: BarWidgetLoader { widgetId: (modelData.id !== undefined ? modelData.id : "") + barDensity: Settings.data.bar.density widgetProps: { "screen": root.modelData || null, "widgetId": modelData.id, @@ -229,6 +234,7 @@ Variants { model: Settings.data.bar.widgets.right delegate: BarWidgetLoader { widgetId: (modelData.id !== undefined ? modelData.id : "") + barDensity: Settings.data.bar.density widgetProps: { "screen": root.modelData || null, "widgetId": modelData.id, diff --git a/Modules/Bar/Extras/BarWidgetLoader.qml b/Modules/Bar/Extras/BarWidgetLoader.qml index fff11ebf..40610d3a 100644 --- a/Modules/Bar/Extras/BarWidgetLoader.qml +++ b/Modules/Bar/Extras/BarWidgetLoader.qml @@ -12,6 +12,19 @@ Item { property string section: widgetProps && widgetProps.section || "" property int sectionIndex: widgetProps && widgetProps.sectionWidgetIndex || 0 + property string barDensity: "default" + readonly property real scaling: (function() { + switch (barDensity) { + case "mini": + return 0.8 + case "compact": + return 0.9 + case "comfortable": + default: + return 1.0 + } + })() + // Don't reserve space unless the loaded widget is really visible implicitWidth: getImplicitSize(loader.item, "implicitWidth") implicitHeight: getImplicitSize(loader.item, "implicitHeight") @@ -40,6 +53,10 @@ Item { item[prop] = widgetProps[prop] } } + // Explicitly set scaling property + if (item.hasOwnProperty("scaling")) { + item.scaling = Qt.binding(function() { return root.scaling; }) + } } // Register this widget instance with BarService