mirror of
https://github.com/kossLAN/dots.git
synced 2025-11-04 22:49:50 -05:00
remove syncthing folder bar/popops: fix menu window anims and positioning bar/popops: change anims a little and add dropshadow Update README.md widgets/coloredicon: move to colorization, looks worse but..., yea bar/popops: make popup window dissapear on menu close README: add todo list, and brief desc Update README.md Update README.md Update README.md bar/systray: issue recreate on interact bar/systray: hide popup on interact bar/systray: add arrow for entries with children bar/battery: start of battery widget wallpaper/matugen: add foot template extra sizing conditions for sys tray bar/systray: add some more margin to text update settings schema bar/workspaces: filter by monitor, switch to scriptmodel settings: fix settings lol bar/systray: fix right item feat: screenshot tool clipboard one day... feat: init lockscreen mpris: add ipc handler for multimedia keys mpris stuff save progress put shell in subdir, and add nix package move readme back woops bar/volume: make tool bar smaller greeter: init greeter greeter: fixed resource links readme: update checklist progress maybe, maybe not fix: fixed screenshot tool not working fix: bar layout issues progress save progress update track styled popup still broken but getting there still broken but getting there fix: gitignore qmlls.ini fix: remove qmlls.ini progress save new popup system new popup system new popup system more work on popups fix: mask issues on popups update readme
94 lines
2.5 KiB
QML
94 lines
2.5 KiB
QML
pragma ComponentBehavior: Bound
|
|
|
|
import QtQuick
|
|
import QtQuick.Layouts
|
|
import ".."
|
|
|
|
Item {
|
|
id: root
|
|
property alias model: buttonRepeater.model
|
|
property int currentIndex: 0
|
|
|
|
RowLayout {
|
|
id: buttonGroup
|
|
spacing: 0
|
|
anchors.fill: parent
|
|
|
|
Repeater {
|
|
id: buttonRepeater
|
|
|
|
delegate: MouseArea {
|
|
id: button
|
|
hoverEnabled: true
|
|
Layout.fillWidth: true
|
|
Layout.fillHeight: true
|
|
Layout.alignment: Qt.AlignHCenter | Qt.AlignTop
|
|
|
|
required property var modelData
|
|
required property int index
|
|
property bool checked: index === root.currentIndex
|
|
|
|
onClicked: {
|
|
currentIndex = button.index;
|
|
root.updateSelectionBarPosition();
|
|
}
|
|
|
|
// Change to SVG Icon
|
|
FontIcon {
|
|
text: button.modelData
|
|
fill: {
|
|
if (button.checked)
|
|
return 1;
|
|
|
|
return button.containsMouse ? 1 : 0;
|
|
}
|
|
color: button.checked ? ShellSettings.colors["primary"] : ShellSettings.colors["inverse_surface"]
|
|
anchors.fill: parent
|
|
anchors.bottomMargin: 5
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
Rectangle {
|
|
id: selectionBar
|
|
implicitWidth: 100
|
|
implicitHeight: 3
|
|
topLeftRadius: width / 2
|
|
topRightRadius: width / 2
|
|
color: ShellSettings.colors["primary"]
|
|
anchors.bottom: tabBar.top
|
|
|
|
Behavior on x {
|
|
NumberAnimation {
|
|
duration: 250
|
|
easing.type: Easing.OutCubic
|
|
}
|
|
}
|
|
}
|
|
|
|
Rectangle {
|
|
id: tabBar
|
|
implicitHeight: 1.5
|
|
radius: width / 2
|
|
color: ShellSettings.colors["surface_container"]
|
|
|
|
anchors {
|
|
top: buttonGroup.bottom
|
|
left: parent.left
|
|
right: parent.right
|
|
}
|
|
}
|
|
|
|
// Change to icons being greyed out by default but selected is full white
|
|
function updateSelectionBarPosition() {
|
|
if (buttonRepeater.count > 0) {
|
|
var buttonWidth = buttonGroup.width / buttonRepeater.count;
|
|
var targetX = currentIndex * buttonWidth + (buttonWidth - selectionBar.width) / 2;
|
|
selectionBar.x = targetX;
|
|
}
|
|
}
|
|
|
|
Component.onCompleted: updateSelectionBarPosition()
|
|
onWidthChanged: updateSelectionBarPosition()
|
|
}
|