StemRoller: desktop stem separator, Android stems player, and server daemons
- stemroller/: PySide6/QML desktop app and player for separating music into stems - android/: Plex music player that plays per-stem mixes, with Android Auto support, a graphic + parametric (Equalizer APO-style) EQ, and offline downloads - server/: stemserve (serves stems to the app) and stemd (separates the library on the server's GPU, with "Stem Now" priority requests) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
716c5499ff
commit
1845f03c41
184 files changed
+24648
No files matched your search
@@ -0,0 +1,48 @@
|
||||
import QtQuick
|
||||
import QtQuick.Controls.Basic
|
||||
|
||||
// Office context menu: white, gray border, icon gutter on the left.
|
||||
Menu {
|
||||
id: m
|
||||
padding: 2
|
||||
delegate: MenuItem {
|
||||
id: mi
|
||||
implicitWidth: Math.max(200, lab.implicitWidth + 56)
|
||||
implicitHeight: mi.text === "" ? 7 : 26
|
||||
enabled: mi.action ? mi.action.enabled : true
|
||||
contentItem: Item {
|
||||
T {
|
||||
id: lab
|
||||
x: 28
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
text: mi.text
|
||||
color: mi.enabled ? X.ink : X.inkFaint
|
||||
}
|
||||
Ico {
|
||||
visible: mi.action && mi.action.icon.name !== ""
|
||||
name: mi.action ? mi.action.icon.name : ""
|
||||
size: 16
|
||||
x: 4
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
Ico {
|
||||
visible: mi.checkable && mi.checked
|
||||
name: "check"
|
||||
size: 14
|
||||
x: 5
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
}
|
||||
background: Rectangle {
|
||||
color: mi.highlighted && mi.enabled ? "#E0E0E0" : "transparent"
|
||||
}
|
||||
arrow: null
|
||||
indicator: null
|
||||
}
|
||||
background: Rectangle {
|
||||
implicitWidth: 200
|
||||
color: "#FFFFFF"
|
||||
border.color: X.menuBorder
|
||||
Rectangle { x: 25; y: 1; width: 1; height: parent.height - 2; color: "#E7E7E7" }
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user