rename Flyout/FlyoutState to Tooltip/TooltipState, improve qmllint check script
This commit is contained in:
parent
0c955f93f8
commit
e5e15f82fb
12 changed files with 82 additions and 57 deletions
45
flake.nix
45
flake.nix
|
|
@ -148,24 +148,49 @@
|
|||
-I shell/modules -I shell/services -I shell/applets -I shell/lock \
|
||||
shell/shell.qml shell/modules/*.qml shell/services/*.qml \
|
||||
shell/applets/*.qml shell/lock/*.qml \
|
||||
> $TMPDIR/output.txt 2>&1 || true
|
||||
> $TMPDIR/raw.txt 2>&1 || true
|
||||
|
||||
# Extract unique warning messages (file:message, without line numbers)
|
||||
grep -E "^Warning:" $TMPDIR/output.txt \
|
||||
grep -E "^Warning:" $TMPDIR/raw.txt \
|
||||
| sed 's/^Warning: //' \
|
||||
| sed 's/\([^:]*\):[0-9]*:[0-9]*: /\1: /' \
|
||||
| sort -u > $TMPDIR/current.txt
|
||||
|
||||
# Diff against known baseline - new warnings = failure
|
||||
if ! diff -u test/qmllint-baseline.txt $TMPDIR/current.txt > $TMPDIR/diff.txt 2>&1; then
|
||||
new=$(grep '^+[^+]' $TMPDIR/diff.txt || true)
|
||||
if [ -n "$new" ]; then
|
||||
echo "qmllint found new warnings not in baseline:"
|
||||
echo "$new"
|
||||
exit 1
|
||||
# Compare against baseline
|
||||
touch $TMPDIR/new-warnings.txt $TMPDIR/stale-warnings.txt
|
||||
while IFS= read -r line; do
|
||||
if ! grep -qFx "$line" test/qmllint-baseline.txt 2>/dev/null; then
|
||||
echo "$line" >> $TMPDIR/new-warnings.txt
|
||||
fi
|
||||
done < $TMPDIR/current.txt
|
||||
|
||||
while IFS= read -r line; do
|
||||
if ! grep -qFx "$line" $TMPDIR/current.txt; then
|
||||
echo "$line" >> $TMPDIR/stale-warnings.txt
|
||||
fi
|
||||
cp $TMPDIR/output.txt $out
|
||||
done < test/qmllint-baseline.txt
|
||||
|
||||
# Output dir with individual files for inspection
|
||||
mkdir -p $out
|
||||
cp $TMPDIR/raw.txt $out/raw.txt
|
||||
cp $TMPDIR/current.txt $out/current.txt
|
||||
cp test/qmllint-baseline.txt $out/baseline.txt
|
||||
cp $TMPDIR/new-warnings.txt $out/new-warnings.txt
|
||||
cp $TMPDIR/stale-warnings.txt $out/stale-warnings.txt
|
||||
|
||||
failed=0
|
||||
if [ -s $TMPDIR/new-warnings.txt ]; then
|
||||
echo "new warnings:"
|
||||
sed 's/^/ /' $TMPDIR/new-warnings.txt
|
||||
failed=1
|
||||
fi
|
||||
if [ -s $TMPDIR/stale-warnings.txt ]; then
|
||||
echo "stale warnings:"
|
||||
sed 's/^/ /' $TMPDIR/stale-warnings.txt
|
||||
failed=1
|
||||
fi
|
||||
|
||||
[ "$failed" -eq 0 ] || exit 1
|
||||
'';
|
||||
nova-stats-clippy = (pkgs.callPackage ./nix/stats-daemon.nix { }).overrideAttrs (old: {
|
||||
pname = "nova-stats-clippy";
|
||||
|
|
|
|||
|
|
@ -60,17 +60,17 @@ Text {
|
|||
onHoveredChanged: {
|
||||
root._hovered = hovered;
|
||||
if (hovered && root.tooltip !== "") {
|
||||
M.FlyoutState.text = root.tooltip;
|
||||
M.FlyoutState.itemX = root.mapToGlobal(root.width / 2, 0).x - (QsWindow.window?.screen?.x ?? 0);
|
||||
M.FlyoutState.screen = QsWindow.window?.screen ?? null;
|
||||
M.FlyoutState.accentColor = root.accentColor;
|
||||
M.FlyoutState.visible = true;
|
||||
M.TooltipState.text = root.tooltip;
|
||||
M.TooltipState.itemX = root.mapToGlobal(root.width / 2, 0).x - (QsWindow.window?.screen?.x ?? 0);
|
||||
M.TooltipState.screen = QsWindow.window?.screen ?? null;
|
||||
M.TooltipState.accentColor = root.accentColor;
|
||||
M.TooltipState.visible = true;
|
||||
} else if (!hovered && root.tooltip !== "") {
|
||||
M.FlyoutState.visible = false;
|
||||
M.TooltipState.visible = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
onTooltipChanged: if (_hovered && tooltip !== "")
|
||||
M.FlyoutState.text = tooltip
|
||||
M.TooltipState.text = tooltip
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,17 +31,17 @@ Text {
|
|||
onHoveredChanged: {
|
||||
root._hovered = hovered;
|
||||
if (hovered && root.tooltip !== "") {
|
||||
M.FlyoutState.text = root.tooltip;
|
||||
M.FlyoutState.itemX = root.mapToGlobal(root.width / 2, 0).x - (QsWindow.window?.screen?.x ?? 0);
|
||||
M.FlyoutState.screen = QsWindow.window?.screen ?? null;
|
||||
M.FlyoutState.accentColor = root.accentColor;
|
||||
M.FlyoutState.visible = true;
|
||||
M.TooltipState.text = root.tooltip;
|
||||
M.TooltipState.itemX = root.mapToGlobal(root.width / 2, 0).x - (QsWindow.window?.screen?.x ?? 0);
|
||||
M.TooltipState.screen = QsWindow.window?.screen ?? null;
|
||||
M.TooltipState.accentColor = root.accentColor;
|
||||
M.TooltipState.visible = true;
|
||||
} else if (!hovered && root.tooltip !== "") {
|
||||
M.FlyoutState.visible = false;
|
||||
M.TooltipState.visible = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
onTooltipChanged: if (_hovered && tooltip !== "")
|
||||
M.FlyoutState.text = tooltip
|
||||
M.TooltipState.text = tooltip
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,17 +20,17 @@ Row {
|
|||
onHoveredChanged: {
|
||||
root._hovered = hovered;
|
||||
if (hovered && root.tooltip !== "") {
|
||||
M.FlyoutState.text = root.tooltip;
|
||||
M.FlyoutState.itemX = root.mapToGlobal(root.width / 2, 0).x - (QsWindow.window?.screen?.x ?? 0);
|
||||
M.FlyoutState.screen = QsWindow.window?.screen ?? null;
|
||||
M.FlyoutState.accentColor = root.accentColor;
|
||||
M.FlyoutState.visible = true;
|
||||
M.TooltipState.text = root.tooltip;
|
||||
M.TooltipState.itemX = root.mapToGlobal(root.width / 2, 0).x - (QsWindow.window?.screen?.x ?? 0);
|
||||
M.TooltipState.screen = QsWindow.window?.screen ?? null;
|
||||
M.TooltipState.accentColor = root.accentColor;
|
||||
M.TooltipState.visible = true;
|
||||
} else if (!hovered && root.tooltip !== "") {
|
||||
M.FlyoutState.visible = false;
|
||||
M.TooltipState.visible = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
onTooltipChanged: if (_hovered && tooltip !== "")
|
||||
M.FlyoutState.text = tooltip
|
||||
M.TooltipState.text = tooltip
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ M.BarIcon {
|
|||
cursorShape: Qt.PointingHandCursor
|
||||
onClicked: {
|
||||
menuLoader.active = !menuLoader.active;
|
||||
M.FlyoutState.visible = false;
|
||||
M.TooltipState.visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ PanelWindow {
|
|||
color: "transparent"
|
||||
|
||||
property bool _winVisible: false
|
||||
property bool _shown: M.FlyoutState.visible && M.FlyoutState.screen === root.screen
|
||||
property bool _shown: M.TooltipState.visible && M.TooltipState.screen === root.screen
|
||||
|
||||
on_ShownChanged: {
|
||||
if (_shown) {
|
||||
|
|
@ -34,7 +34,7 @@ PanelWindow {
|
|||
anchors.left: true
|
||||
|
||||
margins.top: 0
|
||||
margins.left: Math.max(0, Math.min(Math.round(M.FlyoutState.itemX - implicitWidth / 2), screen.width - implicitWidth))
|
||||
margins.left: Math.max(0, Math.min(Math.round(M.TooltipState.itemX - implicitWidth / 2), screen.width - implicitWidth))
|
||||
|
||||
implicitWidth: label.implicitWidth + S.Theme.barPadding * 2
|
||||
implicitHeight: label.implicitHeight + S.Theme.barPadding * 2
|
||||
|
|
@ -86,13 +86,13 @@ PanelWindow {
|
|||
|
||||
M.PopupBackground {
|
||||
anchors.fill: parent
|
||||
accentColor: M.FlyoutState.accentColor
|
||||
accentColor: M.TooltipState.accentColor
|
||||
}
|
||||
|
||||
Text {
|
||||
id: label
|
||||
anchors.centerIn: parent
|
||||
text: M.FlyoutState.text.replace(/\n/g, "<br>")
|
||||
text: M.TooltipState.text.replace(/\n/g, "<br>")
|
||||
textFormat: Text.RichText
|
||||
color: S.Theme.base05
|
||||
font.pixelSize: S.Theme.fontSize
|
||||
|
|
@ -59,13 +59,13 @@ RowLayout {
|
|||
iconItem._hovered = hovered;
|
||||
const tip = [iconItem.modelData.tooltipTitle, iconItem.modelData.tooltipDescription].filter(s => s).join("\n") || iconItem.modelData.title;
|
||||
if (hovered && tip) {
|
||||
M.FlyoutState.text = tip;
|
||||
M.FlyoutState.itemX = iconItem.mapToGlobal(iconItem.width / 2, 0).x - (QsWindow.window?.screen?.x ?? 0);
|
||||
M.FlyoutState.screen = QsWindow.window?.screen ?? null;
|
||||
M.FlyoutState.accentColor = root.parent?.accentColor ?? S.Theme.base05;
|
||||
M.FlyoutState.visible = true;
|
||||
M.TooltipState.text = tip;
|
||||
M.TooltipState.itemX = iconItem.mapToGlobal(iconItem.width / 2, 0).x - (QsWindow.window?.screen?.x ?? 0);
|
||||
M.TooltipState.screen = QsWindow.window?.screen ?? null;
|
||||
M.TooltipState.accentColor = root.parent?.accentColor ?? S.Theme.base05;
|
||||
M.TooltipState.visible = true;
|
||||
} else if (!hovered) {
|
||||
M.FlyoutState.visible = false;
|
||||
M.TooltipState.visible = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -81,7 +81,7 @@ RowLayout {
|
|||
if (root._activeMenu && root._activeMenu !== menuLoader)
|
||||
root._activeMenu.active = false;
|
||||
menuLoader.active = true;
|
||||
M.FlyoutState.visible = false;
|
||||
M.TooltipState.visible = false;
|
||||
root._activeMenu = menuLoader;
|
||||
} else {
|
||||
iconItem.modelData.secondaryActivate();
|
||||
|
|
|
|||
|
|
@ -68,13 +68,13 @@ Row {
|
|||
pill._hovered = hovered;
|
||||
const name = pill.modelData.name || ("Workspace " + pill.modelData.idx);
|
||||
if (hovered) {
|
||||
M.FlyoutState.text = name;
|
||||
M.FlyoutState.itemX = pill.mapToGlobal(pill.width / 2, 0).x - (QsWindow.window?.screen?.x ?? 0);
|
||||
M.FlyoutState.screen = QsWindow.window?.screen ?? null;
|
||||
M.FlyoutState.accentColor = root.parent?.accentColor ?? S.Theme.base05;
|
||||
M.FlyoutState.visible = true;
|
||||
M.TooltipState.text = name;
|
||||
M.TooltipState.itemX = pill.mapToGlobal(pill.width / 2, 0).x - (QsWindow.window?.screen?.x ?? 0);
|
||||
M.TooltipState.screen = QsWindow.window?.screen ?? null;
|
||||
M.TooltipState.accentColor = root.parent?.accentColor ?? S.Theme.base05;
|
||||
M.TooltipState.visible = true;
|
||||
} else {
|
||||
M.FlyoutState.visible = false;
|
||||
M.TooltipState.visible = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ BluetoothModule 1.0 BluetoothModule.qml
|
|||
ClockModule 1.0 ClockModule.qml
|
||||
CpuModule 1.0 CpuModule.qml
|
||||
DiskModule 1.0 DiskModule.qml
|
||||
Flyout 1.0 Flyout.qml
|
||||
GpuModule 1.0 GpuModule.qml
|
||||
HoverPanel 1.0 HoverPanel.qml
|
||||
IdleInhibitorModule 1.0 IdleInhibitorModule.qml
|
||||
|
|
@ -36,11 +35,12 @@ ScreenCapture 1.0 ScreenCapture.qml
|
|||
ScreenCorners 1.0 ScreenCorners.qml
|
||||
TemperatureModule 1.0 TemperatureModule.qml
|
||||
ThemedIcon 1.0 ThemedIcon.qml
|
||||
Tooltip 1.0 Tooltip.qml
|
||||
TrayMenu 1.0 TrayMenu.qml
|
||||
TrayModule 1.0 TrayModule.qml
|
||||
VolumeModule 1.0 VolumeModule.qml
|
||||
WeatherModule 1.0 WeatherModule.qml
|
||||
WindowTitleModule 1.0 WindowTitleModule.qml
|
||||
WorkspacesModule 1.0 WorkspacesModule.qml
|
||||
singleton FlyoutState 1.0 FlyoutState.qml
|
||||
singleton TooltipState 1.0 TooltipState.qml
|
||||
# keep-sorted end
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ ShellRoot {
|
|||
screen: scope.modelData
|
||||
}
|
||||
|
||||
Flyout {
|
||||
Tooltip {
|
||||
screen: scope.modelData
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -37,11 +37,6 @@ shell/modules/BluetoothModule.qml: Unqualified access [unqualified]
|
|||
shell/modules/ClockModule.qml: Member "screen" not found on type "QObject" [missing-property]
|
||||
shell/modules/CpuModule.qml: Member "screen" not found on type "QObject" [missing-property]
|
||||
shell/modules/DiskModule.qml: Member "screen" not found on type "QObject" [missing-property]
|
||||
shell/modules/Flyout.qml: Could not find property "left". [missing-property]
|
||||
shell/modules/Flyout.qml: Could not find property "top". [missing-property]
|
||||
shell/modules/Flyout.qml: Type PanelWindow is not creatable. [uncreatable-type]
|
||||
shell/modules/Flyout.qml: Type margins is used but it is not resolved [unresolved-type]
|
||||
shell/modules/Flyout.qml: unknown grouped property scope margins. [unqualified]
|
||||
shell/modules/GpuModule.qml: Member "screen" not found on type "QObject" [missing-property]
|
||||
shell/modules/HoverPanel.qml: Could not find property "top". [missing-property]
|
||||
shell/modules/HoverPanel.qml: Type PanelWindow is not creatable. [uncreatable-type]
|
||||
|
|
@ -69,6 +64,11 @@ shell/modules/ScreenCorners.qml: Type PanelWindow is not creatable. [uncreatable
|
|||
shell/modules/ScreenCorners.qml: Unqualified access [unqualified]
|
||||
shell/modules/TemperatureModule.qml: Member "screen" not found on type "QObject" [missing-property]
|
||||
shell/modules/ThemedIcon.qml: Unqualified access [unqualified]
|
||||
shell/modules/Tooltip.qml: Could not find property "left". [missing-property]
|
||||
shell/modules/Tooltip.qml: Could not find property "top". [missing-property]
|
||||
shell/modules/Tooltip.qml: Type PanelWindow is not creatable. [uncreatable-type]
|
||||
shell/modules/Tooltip.qml: Type margins is used but it is not resolved [unresolved-type]
|
||||
shell/modules/Tooltip.qml: unknown grouped property scope margins. [unqualified]
|
||||
shell/modules/TrayMenu.qml: Unqualified access [unqualified]
|
||||
shell/modules/TrayModule.qml: Member "length" not found on type "UntypedObjectModel" [missing-property]
|
||||
shell/modules/TrayModule.qml: Member "screen" not found on type "QObject" [missing-property]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue