forked from Shinonome/alt-illogical-impulse
ac6d3adeb9
BREAKING CHANGE: Remove external dots-hyprland dependency - Imported all essential configs from dots-hyprland/installer-replication - Added complete configs/ directory with: - hypr/ - Hyprland configuration - quickshell/ - Quickshell widgets and config - applications/ - Application configurations - scripts/ - Utility scripts - matugen/ - Material You theming - Updated flake.nix to use local ./configs instead of external repo - Simplified update-flake script (removed external repo management) - Updated README to reflect self-contained architecture - All builds pass with local configurations Benefits: - No external repository dependencies - Faster builds (no network dependencies) - Version controlled configs in single repo - Easier maintenance and development - Complete installer replication in one place
46 lines
1.5 KiB
QML
46 lines
1.5 KiB
QML
import qs.modules.common
|
|
import qs.modules.common.widgets
|
|
import QtQuick
|
|
import QtQuick.Layouts
|
|
|
|
/**
|
|
* A container that supports GroupButton children for bounciness.
|
|
* See https://m3.material.io/components/button-groups/overview
|
|
*/
|
|
Rectangle {
|
|
id: root
|
|
default property alias content: columnLayout.data
|
|
property real spacing: 5
|
|
property real padding: 0
|
|
property int clickIndex: columnLayout.clickIndex
|
|
|
|
property real contentHeight: {
|
|
let total = 0;
|
|
for (let i = 0; i < columnLayout.children.length; ++i) {
|
|
const child = columnLayout.children[i];
|
|
total += child.baseHeight ?? child.implicitHeight ?? child.height;
|
|
}
|
|
return total + columnLayout.spacing * (columnLayout.children.length - 1);
|
|
}
|
|
|
|
topLeftRadius: columnLayout.children.length > 0 ? (columnLayout.children[0].radius + padding) :
|
|
Appearance?.rounding?.small
|
|
topRightRadius: topLeftRadius
|
|
bottomLeftRadius: columnLayout.children.length > 0 ? (columnLayout.children[columnLayout.children.length - 1].radius + padding) :
|
|
Appearance?.rounding?.small
|
|
bottomRightRadius: bottomLeftRadius
|
|
|
|
color: "transparent"
|
|
height: root.contentHeight + padding * 2
|
|
implicitWidth: columnLayout.implicitWidth + padding * 2
|
|
implicitHeight: root.contentHeight + padding * 2
|
|
|
|
children: [ColumnLayout {
|
|
id: columnLayout
|
|
anchors.fill: parent
|
|
anchors.margins: root.padding
|
|
spacing: root.spacing
|
|
property int clickIndex: -1
|
|
}]
|
|
}
|