diff options
| author | Nippy <nippy@Nippy-Mac-mini.local> | 2026-10-09 10:49:26 +0200 |
|---|---|---|
| committer | Nippy <nippy@Nippy-Mac-mini.local> | 2026-10-09 10:49:26 +0200 |
| commit | 91978706279a19a3ac96393630876f3e50cbc518 (patch) | |
| tree | 1355da60486a305aefeea4e55543bbf1008715b3 /raveos-sddm-theme/sddm-rave-theme/Components | |
| parent | 17a23f8a0cec5439d674d90c593497e4ceed2c68 (diff) | |
| download | RaveOS-PKGBUILD-91978706279a19a3ac96393630876f3e50cbc518.tar.gz RaveOS-PKGBUILD-91978706279a19a3ac96393630876f3e50cbc518.zip | |
fix
Diffstat (limited to 'raveos-sddm-theme/sddm-rave-theme/Components')
9 files changed, 0 insertions, 106 deletions
diff --git a/raveos-sddm-theme/sddm-rave-theme/Components/BatteryIndicator.qml b/raveos-sddm-theme/sddm-rave-theme/Components/BatteryIndicator.qml index 0caedbe..0d2e36e 100644 --- a/raveos-sddm-theme/sddm-rave-theme/Components/BatteryIndicator.qml +++ b/raveos-sddm-theme/sddm-rave-theme/Components/BatteryIndicator.qml @@ -7,7 +7,6 @@ Row { height: root.font.pointSize * 1.6 spacing: root.font.pointSize * 0.5 - // -1 = nincs akkumulátor / nem laptop property int batteryLevel: -1 property bool isCharging: false property bool isFull: false @@ -15,7 +14,6 @@ Row { visible: batteryLevel >= 0 - // Ismert akksi elérési utak property var tryPaths: [ "/sys/class/power_supply/BAT0/", "/sys/class/power_supply/BAT1/", @@ -24,7 +22,6 @@ Row { "/sys/class/power_supply/BATT/" ] - // Dinamikus akkumulátor kereső (pl. kontroller, UPS, egyéb külső akkuk észleléséhez) FolderListModel { id: powerSupplyScanner folder: "file:///sys/class/power_supply" @@ -45,7 +42,6 @@ Row { for (var i = 0; i < count; i++) { var name = get(i, "fileName") if (name && name !== "." && name !== "..") { - // Csak a tipikus laptop akkumulátor elnevezések (pl. BAT0, BAT1, BATT, battery) var isLaptopBat = /^bat/i.test(name) || /^battery/i.test(name) if (isLaptopBat) { var fullPath = "/sys/class/power_supply/" + name + "/" @@ -60,7 +56,6 @@ Row { } } - // ── Fájl olvasó ────────────────────────────────────────────────────────── function readFile(path, cb) { var xhr = new XMLHttpRequest() xhr.open("GET", "file://" + path, true) @@ -71,7 +66,6 @@ Row { xhr.send() } - // ── Akkumulátor keresés és frissítés ───────────────────────────────────── function detectBattery(idx) { if (idx >= tryPaths.length) { batteryLevel = -1; return } readFile(tryPaths[idx] + "capacity", function(cap) { @@ -90,7 +84,6 @@ Row { }) } - // ── Akkumulátor frissítés ──────────────────────────────────────────────── function refresh() { if (batteryPath !== "") { readFile(batteryPath + "capacity", function(cap) { @@ -118,7 +111,6 @@ Row { onTriggered: batteryIndicator.refresh() } - // ── Szín a töltési szint alapján ───────────────────────────────────────── function levelColor(lvl, charging) { if (charging) return "#4ade80" // zöld – tölt if (lvl > 60) return "#ffffff" // fehér – ok @@ -127,7 +119,6 @@ Row { return "#f87171" // piros – kritikus } - // ── UI ─────────────────────────────────────────────────────────────────── Canvas { id: batteryCanvas width: root.font.pointSize * 3.2 @@ -138,7 +129,6 @@ Row { var ctx = getContext("2d") ctx.clearRect(0, 0, width, height) - // Qt Canvas nem támogatja ctx.roundRect() – saját helper function rr(c, x, y, w, h, r) { r = Math.min(Math.max(r, 0), Math.min(w, h) / 2) c.beginPath() @@ -165,20 +155,17 @@ Row { var tx = bw // terminál x var ty = (height - th) / 2 - // Terminál (+ pólus) rr(ctx, tx, ty, tw, th, height * 0.15) ctx.fillStyle = col ctx.globalAlpha = 0.7 ctx.fill() ctx.globalAlpha = 1.0 - // Keret (akksi test) rr(ctx, bx, by, bw, bh, r) ctx.strokeStyle = col ctx.lineWidth = height * 0.09 ctx.stroke() - // Töltési szint kitöltés var padding = height * 0.18 var fillW = Math.max(0, (bw - padding * 2) * lvl / 100) if (fillW > 0) { @@ -191,7 +178,6 @@ Row { ctx.globalAlpha = 1.0 } - // Villám jel (töltés közben) if (charging && !full) { var cx = bw / 2 var cy = height / 2 @@ -210,7 +196,6 @@ Row { ctx.globalAlpha = 1.0 } - // Tele jel (checkbox-szerű pipával) if (full) { ctx.beginPath() ctx.moveTo(bw * 0.32, by + bh / 2) @@ -227,7 +212,6 @@ Row { } } - // Százalék szöveg Text { id: batteryText anchors.verticalCenter: parent.verticalCenter @@ -241,7 +225,6 @@ Row { font.family: root.font.family font.bold: batteryIndicator.batteryLevel <= 15 && !batteryIndicator.isCharging - // Pulzáló animáció kritikus töltésnél SequentialAnimation on opacity { running: batteryIndicator.batteryLevel <= 15 && !batteryIndicator.isCharging loops: Animation.Infinite @@ -250,7 +233,6 @@ Row { } } - // Szint változáskor újrafest onBatteryLevelChanged: batteryCanvas.requestPaint() onIsChargingChanged: batteryCanvas.requestPaint() onIsFullChanged: batteryCanvas.requestPaint() diff --git a/raveos-sddm-theme/sddm-rave-theme/Components/Input.qml b/raveos-sddm-theme/sddm-rave-theme/Components/Input.qml index fd29314..61fed97 100644 --- a/raveos-sddm-theme/sddm-rave-theme/Components/Input.qml +++ b/raveos-sddm-theme/sddm-rave-theme/Components/Input.qml @@ -21,7 +21,6 @@ Column { Item { id: errorMessageField - // change also in selectSession height: root.font.pointSize * 2 width: parent.width anchors.horizontalCenter: parent.horizontalCenter @@ -67,7 +66,6 @@ Column { } } - // Profilkép Item { id: avatarField @@ -114,7 +112,6 @@ Column { if (!p || p === "") return var s = p.toString().trim() if (s === "") return - // Ignore generic silhouette icon installed in SDDM faces directory if (s === "/usr/share/sddm/faces/.face.icon" || s === "file:///usr/share/sddm/faces/.face.icon") return var url = (s.startsWith("file://") || s.startsWith("image://") || s.startsWith("qrc://") || s.startsWith("http")) ? s : ("file://" + s) if (list.indexOf(url) === -1) { @@ -122,12 +119,10 @@ Column { } } - // 1. Direct icon reported by SDDM (AccountsService or explicit face config) if (directIcon !== "") { addCandidate(directIcon) } - // 2. AccountsService system icons (standard across Linux - world-readable 644) if (uName !== "") { addCandidate("/var/lib/AccountsService/icons/" + uName) addCandidate("/var/lib/AccountsService/icons/" + uName + ".png") @@ -136,7 +131,6 @@ Column { addCandidate("/var/lib/AccountsService/icons/" + uName + ".svg") } - // 3. User's home directory faces if (home !== "") { addCandidate(home + "/.face") addCandidate(home + "/.face.icon") @@ -156,7 +150,6 @@ Column { addCandidate("/home/" + uName + "/.avatar") } - // 4. System SDDM faces directory if (uName !== "") { addCandidate("/usr/share/sddm/faces/" + uName + ".face.icon") addCandidate("/usr/share/sddm/faces/" + uName + ".png") @@ -168,7 +161,6 @@ Column { addCandidate("/var/lib/sddm/faces/" + uName) } - // 5. Configured theme avatar if (config.UserAvatar && config.UserAvatar !== "") { addCandidate(config.UserAvatar) } @@ -217,13 +209,11 @@ Column { function onDataChanged() { avatarField.updateAvatarSource() } } - // Avatar kör Item { anchors.centerIn: parent width: root.font.pointSize * 5.2 height: root.font.pointSize * 5.2 - // Avatar drop shadow Rectangle { anchors.fill: parent anchors.topMargin: root.font.pointSize * 0.15 @@ -238,7 +228,6 @@ Column { clip: true color: Qt.rgba(1, 1, 1, 0.15) - // The mask source Item { id: avatarMask anchors.fill: parent @@ -282,7 +271,6 @@ Column { opacity: 0.85 } - // Draw the border on top of everything! Rectangle { anchors.fill: parent radius: parent.width / 2 @@ -340,7 +328,6 @@ Column { } } - // Container button / click area Item { id: userSelectorButton anchors.centerIn: parent @@ -358,7 +345,6 @@ Column { } KeyNavigation.down: password - // Background with drop shadow and frosted glass Item { anchors.fill: parent Rectangle { @@ -379,7 +365,6 @@ Column { } } - // Left Icon (User icon) Button { id: userFieldLeftIcon width: parent.height @@ -396,7 +381,6 @@ Column { background: Rectangle { color: "transparent" } } - // Username display in the middle (Non-editable, clean text) Text { id: username anchors.centerIn: parent @@ -414,7 +398,6 @@ Column { styleColor: Qt.rgba(0, 0, 0, 0.40) } - // Dropdown Arrow Button on Right Item { id: userDropdownBtn width: parent.height @@ -453,7 +436,6 @@ Column { } } - // Whole field click area MouseArea { id: userSelectorMouseArea anchors.fill: parent @@ -469,7 +451,6 @@ Column { } } - // Dropdown Popup Popup { id: userDropdownPopup @@ -482,7 +463,6 @@ Column { z: 100 background: Item { - // Drop shadow underlay Rectangle { anchors.fill: parent anchors.topMargin: root.font.pointSize * 0.15 @@ -490,7 +470,6 @@ Column { color: Qt.rgba(0, 0, 0, 0.40) } - // Frosted Glass body (minimally translucent) Rectangle { anchors.fill: parent radius: config.RoundCorners !== "" ? parseInt(config.RoundCorners) : root.font.pointSize * 0.8 @@ -561,7 +540,6 @@ Column { anchors.rightMargin: root.font.pointSize * 0.8 spacing: root.font.pointSize * 0.8 - // Mini avatar in dropdown row Item { width: root.font.pointSize * 2.4 height: root.font.pointSize * 2.4 @@ -620,7 +598,6 @@ Column { } } - // Username & realName Column { anchors.verticalCenter: parent.verticalCenter spacing: 2 @@ -841,7 +818,6 @@ Column { KeyNavigation.down: rebootBtn - // Drop shadow Rectangle { anchors.fill: parent anchors.topMargin: root.font.pointSize * 0.12 @@ -915,7 +891,6 @@ Column { anchors.bottomMargin: root.font.pointSize * 0.3 spacing: root.font.pointSize * 1.8 - // Reboot gomb Column { spacing: root.font.pointSize * 0.5 @@ -923,7 +898,6 @@ Column { width: root.font.pointSize * 4.2 height: root.font.pointSize * 4.2 - // Button shadow Rectangle { anchors.fill: parent anchors.topMargin: root.font.pointSize * 0.12 @@ -979,7 +953,6 @@ Column { } } - // Shutdown gomb Column { spacing: root.font.pointSize * 0.5 @@ -987,7 +960,6 @@ Column { width: root.font.pointSize * 4.2 height: root.font.pointSize * 4.2 - // Button shadow Rectangle { anchors.fill: parent anchors.topMargin: root.font.pointSize * 0.12 diff --git a/raveos-sddm-theme/sddm-rave-theme/Components/KeyboardLayoutIndicator.qml b/raveos-sddm-theme/sddm-rave-theme/Components/KeyboardLayoutIndicator.qml index ffe10fa..0d95c06 100644 --- a/raveos-sddm-theme/sddm-rave-theme/Components/KeyboardLayoutIndicator.qml +++ b/raveos-sddm-theme/sddm-rave-theme/Components/KeyboardLayoutIndicator.qml @@ -1,5 +1,3 @@ -// Keyboard Layout Indicator component -// Displays the current locale/layout and switches between them when clicked (if multiple are available) import QtQuick 2.15 import QtQml 2.15 @@ -13,13 +11,10 @@ Item { width: implicitWidth height: implicitHeight - // Number of available layouts property int layoutsCount: (typeof keyboard !== "undefined" && keyboard && keyboard.layouts) ? keyboard.layouts.length : 0 - // Show if we have layout info or a valid locale fallback and not hidden visible: (config.HideKeyboardLayout !== "false") ? false : (currentShortName !== "") - // Get current layout shortname (e.g. "US", "HU") property string currentShortName: "" function updateCurrentShortName() { @@ -34,7 +29,6 @@ Item { } } - // Fallback to config locale or system locale var loc = config.Locale || Qt.locale().name if (loc) { var parts = loc.split("_") @@ -48,7 +42,6 @@ Item { Component.onCompleted: updateCurrentShortName() - // Colors matched to the theme config property color textColor: config.UserIconColor || "#ffffff" property color hoverColor: config.HoverUserIconColor || "#b7cef1" @@ -56,9 +49,7 @@ Item { id: layoutRow height: root.font.pointSize * 1.1 spacing: root.font.pointSize * 0.4 - // Removed anchors.centerIn to prevent circular binding loop with parent width/height - // Keyboard icon Canvas { id: kbdCanvas width: root.font.pointSize * 1.5 @@ -79,7 +70,6 @@ Item { ctx.lineJoin = "round" ctx.globalAlpha = 0.85 - // Draw keyboard outline var r = height * 0.15 var bx = ctx.lineWidth / 2 var by = ctx.lineWidth / 2 @@ -95,16 +85,13 @@ Item { ctx.closePath() ctx.stroke() - // Draw simple key grid ctx.lineWidth = height * 0.06 var kw = bw / 6 var kh = bh / 4 - // Row 1 & 2 keys for (var i = 0; i < 4; i++) { ctx.fillRect(bx + kw * (i + 1), by + kh, kw * 0.6, kh * 0.6) ctx.fillRect(bx + kw * (i + 0.5), by + kh * 2, kw * 0.6, kh * 0.6) } - // Spacebar ctx.fillRect(bx + kw * 1.5, by + kh * 3, kw * 3, kh * 0.6) ctx.globalAlpha = 1.0 @@ -116,7 +103,6 @@ Item { } } - // Layout Short Name (e.g. US, HU) Text { id: layoutText anchors.verticalCenter: parent.verticalCenter @@ -176,7 +162,6 @@ Item { color: delegateMouse.containsMouse ? Qt.rgba(1, 1, 1, 0.15) : "transparent" radius: config.RoundCorners !== "" ? parseInt(config.RoundCorners) / 4 : root.font.pointSize * 0.4 - // Get layout object safely property var layoutObj: (typeof keyboard !== "undefined" && keyboard && keyboard.layouts) ? keyboard.layouts[index] : null property string shortName: layoutObj && layoutObj.shortName ? layoutObj.shortName.toUpperCase() : "" property string longName: layoutObj && layoutObj.longName ? layoutObj.longName : "" diff --git a/raveos-sddm-theme/sddm-rave-theme/Components/LoginForm.qml b/raveos-sddm-theme/sddm-rave-theme/Components/LoginForm.qml index 779a21a..65e6e41 100644 --- a/raveos-sddm-theme/sddm-rave-theme/Components/LoginForm.qml +++ b/raveos-sddm-theme/sddm-rave-theme/Components/LoginForm.qml @@ -29,7 +29,6 @@ ColumnLayout { Layout.rightMargin: innerPadding } - // Akkumulátor + Hálózat jelzők RowLayout { id: statusRow @@ -56,7 +55,6 @@ ColumnLayout { } } - // Billentyűzet kiosztás jelző (letiltva a felhasználói kérésnek megfelelően) KeyboardLayoutIndicator { id: keyboardLayoutIndicator diff --git a/raveos-sddm-theme/sddm-rave-theme/Components/NetworkIndicator.qml b/raveos-sddm-theme/sddm-rave-theme/Components/NetworkIndicator.qml index 6300841..07bf902 100644 --- a/raveos-sddm-theme/sddm-rave-theme/Components/NetworkIndicator.qml +++ b/raveos-sddm-theme/sddm-rave-theme/Components/NetworkIndicator.qml @@ -10,7 +10,6 @@ Row { height: root.font.pointSize * 1.6 spacing: root.font.pointSize * 0.5 - // "none" | "wifi" | "ethernet" property string netType: "none" property int wifiQuality: 0 // 0-100 property string activeIface: "" @@ -28,7 +27,6 @@ Row { "enp0s3","enp0s31f6","ens33","ens3","ens18" ] - // ── Fájl olvasó ────────────────────────────────────────────────────────── function readFile(path, cb) { var xhr = new XMLHttpRequest() xhr.open("GET", "file://" + path, true) @@ -42,16 +40,13 @@ Row { xhr.send() } - // ── WiFi jelerősség /proc/net/wireless-ből ─────────────────────────────── function readWifiSignal(iface) { readFile("/proc/net/wireless", function(content) { if (!content) { wifiQuality = 60; netCanvas.requestPaint(); return } var lines = content.split("\n") for (var i = 0; i < lines.length; i++) { if (lines[i].indexOf(iface + ":") !== -1) { - // formátum: "wlan0: 0000 61. -49. -256 ..." var parts = lines[i].trim().replace(/\./g,"").split(/\s+/) - // parts[2] = link quality (0–70 tartomány általában) var q = parseFloat(parts[2]) || 0 wifiQuality = Math.min(100, Math.round(q / 70 * 100)) break @@ -61,7 +56,6 @@ Row { }) } - // ── Interfész keresők ──────────────────────────────────────────────────── function checkWifi(idx) { if (idx >= wifiIfaces.length) { checkEth(0); return } readFile("/sys/class/net/" + wifiIfaces[idx] + "/operstate", function(st) { @@ -75,7 +69,6 @@ Row { }) } - // ── Ethernet keresés ───────────────────────────────────────────────────── function checkEth(idx) { if (idx >= ethIfaces.length) { netType = "none"; return } readFile("/sys/class/net/" + ethIfaces[idx] + "/operstate", function(st) { @@ -100,21 +93,18 @@ Row { onTriggered: networkIndicator.refresh() } - // ── Szín ───────────────────────────────────────────────────────────────── function signalColor(q) { if (q >= 65) return "#4ade80" // zöld – erős if (q >= 40) return "#facc15" // sárga – közepes return "#fb923c" // narancs – gyenge } - // ── UI ─────────────────────────────────────────────────────────────────── Canvas { id: netCanvas width: root.font.pointSize * 2.0 height: root.font.pointSize * 1.6 anchors.verticalCenter: parent.verticalCenter - // Qt Canvas nem támogatja ctx.roundRect() – saját helper function rr(c, x, y, w, h, r) { r = Math.min(Math.max(r, 0), Math.min(w, h) / 2) c.beginPath() @@ -136,14 +126,12 @@ Row { drawEthernet(ctx) } - // ── WiFi antenna ikon (4 ívelt sáv) ───────────────────────────── function drawWifi(ctx) { var q = networkIndicator.wifiQuality var cx = width / 2 var base = height * 0.96 var dot = height * 0.08 - // Sávok száma a minőség alapján var bars = q >= 70 ? 4 : q >= 45 ? 3 : q >= 20 ? 2 : 1 var col = networkIndicator.signalColor(q) @@ -161,7 +149,6 @@ Row { ctx.stroke() } - // Középső pont (antenna) ctx.beginPath() ctx.arc(cx, base, dot, 0, Math.PI * 2) ctx.fillStyle = col @@ -170,7 +157,6 @@ Row { ctx.globalAlpha = 1.0 } - // ── Ethernet dugó ikon ─────────────────────────────────────────── function drawEthernet(ctx) { var col = "#4ade80" var lw = height * 0.09 @@ -184,7 +170,6 @@ Row { var cx = width / 2 var cy = height / 2 - // Kábel test (felső téglalap) var bw = width * 0.70 var bh = height * 0.38 var bx = cx - bw / 2 @@ -192,7 +177,6 @@ Row { rr(ctx, bx, by, bw, bh, height * 0.06) ctx.stroke() - // 3 érintkező pin a téglalapban var pinW = width * 0.08 var pinH = height * 0.22 var pinY = by - pinH + lw @@ -202,13 +186,11 @@ Row { ctx.fill() } - // Kábel vonala lefelé ctx.beginPath() ctx.moveTo(cx, by + bh) ctx.lineTo(cx, cy + height * 0.38) ctx.stroke() - // Dugó alap vonal ctx.lineWidth = lw * 1.5 ctx.beginPath() ctx.moveTo(cx - width * 0.22, cy + height * 0.38) @@ -219,7 +201,6 @@ Row { } } - // Felirat Text { id: netLabel anchors.verticalCenter: parent.verticalCenter diff --git a/raveos-sddm-theme/sddm-rave-theme/Components/ParticleOverlay.qml b/raveos-sddm-theme/sddm-rave-theme/Components/ParticleOverlay.qml index 27d5b71..5c25217 100644 --- a/raveos-sddm-theme/sddm-rave-theme/Components/ParticleOverlay.qml +++ b/raveos-sddm-theme/sddm-rave-theme/Components/ParticleOverlay.qml @@ -40,7 +40,6 @@ Canvas { var p = particles[i] var r = p.baseR * (0.75 + 0.25 * Math.sin(p.phase + time * 2.2)) - // Glow halo var grd = ctx.createRadialGradient(p.x, p.y, 0, p.x, p.y, p.glowR) grd.addColorStop(0, "hsla(" + p.hue + ",100%,72%," + (p.opacity * 0.55) + ")") grd.addColorStop(1, "hsla(" + p.hue + ",100%,72%,0)") @@ -49,7 +48,6 @@ Canvas { ctx.fillStyle = grd ctx.fill() - // Core dot ctx.beginPath() ctx.arc(p.x, p.y, r, 0, Math.PI * 2) ctx.fillStyle = "hsla(" + p.hue + ",100%,88%," + p.opacity + ")" @@ -84,7 +82,6 @@ Canvas { } Component.onCompleted: { - // kis késleltetés hogy a méret biztosan kész legyen Qt.callLater(initParticles) } } diff --git a/raveos-sddm-theme/sddm-rave-theme/Components/SessionButton.qml b/raveos-sddm-theme/sddm-rave-theme/Components/SessionButton.qml index 045e298..a04408f 100644 --- a/raveos-sddm-theme/sddm-rave-theme/Components/SessionButton.qml +++ b/raveos-sddm-theme/sddm-rave-theme/Components/SessionButton.qml @@ -20,8 +20,6 @@ Item { ComboBox { id: selectSession - // important - // change also in errorMessage height: root.font.pointSize * 1.8 anchors.horizontalCenter: parent.horizontalCenter @@ -37,7 +35,6 @@ Item { } delegate: ItemDelegate { - // minus padding width: popupHandler.width - root.font.pointSize * 1.5 anchors.horizontalCenter: popupHandler.horizontalCenter diff --git a/raveos-sddm-theme/sddm-rave-theme/Components/ToastNotification.qml b/raveos-sddm-theme/sddm-rave-theme/Components/ToastNotification.qml index 672f346..b3c16be 100644 --- a/raveos-sddm-theme/sddm-rave-theme/Components/ToastNotification.qml +++ b/raveos-sddm-theme/sddm-rave-theme/Components/ToastNotification.qml @@ -45,7 +45,6 @@ Item { border.color: Qt.rgba(1, 0.35, 0.35, 0.65) border.width: root.font.pointSize * 0.08 - // Pulse animation border SequentialAnimation on border.color { running: toastRoot.showing loops: Animation.Infinite diff --git a/raveos-sddm-theme/sddm-rave-theme/Components/UserSwitcher.qml b/raveos-sddm-theme/sddm-rave-theme/Components/UserSwitcher.qml index f87b4d0..30d4013 100644 --- a/raveos-sddm-theme/sddm-rave-theme/Components/UserSwitcher.qml +++ b/raveos-sddm-theme/sddm-rave-theme/Components/UserSwitcher.qml @@ -9,13 +9,11 @@ import QtQuick.Effects 6.5 Item { id: userSwitcher - // Csak akkor látható ha több mint 1 felhasználó van visible: userModel.count > 1 width: switchBtn.implicitWidth + root.font.pointSize * 2 height: switchBtn.implicitHeight + root.font.pointSize * 0.6 - // Kiválasztott felhasználó indexe (kívülről beállítható) property int selectedIndex: 0 property string selectedName: { if (userModel.count < 1) return "" @@ -25,7 +23,6 @@ Item { signal userSwitched(int idx, string name) - // ── Segédfüggvények ─────────────────────────────────────────────────────────────────── function resolveUserIcon(idx) { var list = [] var count = (typeof userModel !== "undefined" && userModel) ? userModel.count : 0 @@ -64,7 +61,6 @@ Item { return userModel.data(userModel.index(idx, 0), Qt.UserRole + 1) || "" } - // ── Gomb (chip stílus) ──────────────────────────────────────────────────── Rectangle { id: switchBtn anchors.centerIn: parent @@ -90,7 +86,6 @@ Item { anchors.centerIn: parent spacing: root.font.pointSize * 0.5 - // Mini avatar kör Rectangle { id: miniAvatarCircle width: root.font.pointSize * 1.6 @@ -159,7 +154,6 @@ Item { } } - // Felhasználónév Text { anchors.verticalCenter: parent.verticalCenter text: userSwitcher.selectedName @@ -170,14 +164,12 @@ Item { font.family: root.font.family } - // Nyíl ikon Text { anchors.verticalCenter: parent.verticalCenter text: "⌄" color: Qt.rgba(1, 1, 1, 0.70) font.pointSize: root.font.pointSize * 0.85 font.family: root.font.family - // Csak ha több user van, akkor látszik a nyíl visible: userModel.count > 1 rotation: popup.visible ? 180 : 0 @@ -190,12 +182,10 @@ Item { anchors.fill: parent hoverEnabled: true cursorShape: Qt.PointingHandCursor - // Csak akkor nyit popup-ot ha több felhasználó van onClicked: if (userModel.count > 1) { popup.visible ? popup.close() : popup.open() } } } - // ── Felhasználó-lista popup ─────────────────────────────────────────────── Popup { id: popup @@ -225,7 +215,6 @@ Item { border.width: root.font.pointSize * 0.08 } - // Fejléc Column { width: parent.width spacing: root.font.pointSize * 0.4 @@ -239,14 +228,12 @@ Item { bottomPadding: root.font.pointSize * 0.2 } - // Elválasztó vonal Rectangle { width: parent.width height: root.font.pointSize * 0.08 color: Qt.rgba(1, 1, 1, 0.12) } - // Felhasználók listája ListView { id: userList width: parent.width @@ -264,7 +251,6 @@ Item { height: root.font.pointSize * 4 radius: config.RoundCorners !== "" ? parseInt(config.RoundCorners) / 2 : root.font.pointSize * 0.6 - // Kiemelés: aktív felhasználó property bool isActive: index === userSwitcher.selectedIndex color: isActive ? Qt.rgba(1, 1, 1, 0.12) @@ -280,7 +266,6 @@ Item { anchors.leftMargin: root.font.pointSize * 0.7 spacing: root.font.pointSize * 0.8 - // Avatar kör Rectangle { id: delegateAvatarCircle width: root.font.pointSize * 3 @@ -336,7 +321,6 @@ Item { } } - // Felhasználónév Text { anchors.verticalCenter: parent.verticalCenter text: userSwitcher.getUserName(index) @@ -347,7 +331,6 @@ Item { } } - // Aktív jelző csík a bal oldalon Rectangle { visible: delegateRect.isActive width: root.font.pointSize * 0.23 |