mirror of
https://github.com/hyprwm/hyprsysteminfo.git
synced 2025-12-21 12:20:02 +01:00
Compare commits
No commits in common. "main" and "v0.1.0" have entirely different histories.
14 changed files with 22 additions and 225 deletions
31
.github/workflows/nix.yml
vendored
31
.github/workflows/nix.yml
vendored
|
|
@ -7,35 +7,8 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Install Nix
|
- uses: DeterminateSystems/nix-installer-action@main
|
||||||
uses: nixbuild/nix-quick-install-action@v31
|
- uses: DeterminateSystems/magic-nix-cache-action@main
|
||||||
with:
|
|
||||||
nix_conf: |
|
|
||||||
keep-env-derivations = true
|
|
||||||
keep-outputs = true
|
|
||||||
|
|
||||||
- name: Restore and save Nix store
|
|
||||||
uses: nix-community/cache-nix-action@v6
|
|
||||||
with:
|
|
||||||
# restore and save a cache using this key
|
|
||||||
primary-key: nix-${{ runner.os }}-${{ hashFiles('**/*.nix', '**/flake.lock') }}
|
|
||||||
# if there's no cache hit, restore a cache by this prefix
|
|
||||||
restore-prefixes-first-match: nix-${{ runner.os }}-
|
|
||||||
# collect garbage until the Nix store size (in bytes) is at most this number
|
|
||||||
# before trying to save a new cache
|
|
||||||
# 1G = 1073741824
|
|
||||||
gc-max-store-size-linux: 1G
|
|
||||||
# do purge caches
|
|
||||||
purge: true
|
|
||||||
# purge all versions of the cache
|
|
||||||
purge-prefixes: nix-${{ runner.os }}-
|
|
||||||
# created more than this number of seconds ago
|
|
||||||
purge-created: 0
|
|
||||||
# or, last accessed more than this number of seconds ago
|
|
||||||
# relative to the start of the `Post Restore and save Nix store` phase
|
|
||||||
purge-last-accessed: 0
|
|
||||||
# except any version with the key that is the same as the `primary-key`
|
|
||||||
purge-primary-key: never
|
|
||||||
|
|
||||||
# not needed (yet)
|
# not needed (yet)
|
||||||
# - uses: cachix/cachix-action@v12
|
# - uses: cachix/cachix-action@v12
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ project(hsi VERSION ${VER} LANGUAGES CXX)
|
||||||
set(CMAKE_CXX_STANDARD 23)
|
set(CMAKE_CXX_STANDARD 23)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
find_package(Qt6 6.5 REQUIRED COMPONENTS Widgets Quick QuickControls2 WaylandClient)
|
find_package(Qt6 6.5 REQUIRED COMPONENTS Widgets Quick QuickControls2)
|
||||||
find_package(PkgConfig REQUIRED)
|
find_package(PkgConfig REQUIRED)
|
||||||
|
|
||||||
pkg_check_modules(hyprutils REQUIRED IMPORTED_TARGET hyprutils)
|
pkg_check_modules(hyprutils REQUIRED IMPORTED_TARGET hyprutils)
|
||||||
|
|
|
||||||
2
VERSION
2
VERSION
|
|
@ -1 +1 @@
|
||||||
0.1.3
|
0.1.0
|
||||||
92
flake.lock
generated
92
flake.lock
generated
|
|
@ -1,83 +1,6 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"hyprland-qt-support": {
|
|
||||||
"inputs": {
|
|
||||||
"hyprlang": "hyprlang",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"systems": [
|
|
||||||
"systems"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1737634706,
|
|
||||||
"narHash": "sha256-nGCibkfsXz7ARx5R+SnisRtMq21IQIhazp6viBU8I/A=",
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprland-qt-support",
|
|
||||||
"rev": "8810df502cdee755993cb803eba7b23f189db795",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprland-qt-support",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hyprlang": {
|
|
||||||
"inputs": {
|
|
||||||
"hyprutils": "hyprutils",
|
|
||||||
"nixpkgs": [
|
|
||||||
"hyprland-qt-support",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"systems": [
|
|
||||||
"hyprland-qt-support",
|
|
||||||
"systems"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1737634606,
|
|
||||||
"narHash": "sha256-W7W87Cv6wqZ9PHegI6rH1+ve3zJPiyevMFf0/HwdbCQ=",
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprlang",
|
|
||||||
"rev": "f41271d35cc0f370d300413d756c2677f386af9d",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprlang",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hyprutils": {
|
"hyprutils": {
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"hyprland-qt-support",
|
|
||||||
"hyprlang",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"systems": [
|
|
||||||
"hyprland-qt-support",
|
|
||||||
"hyprlang",
|
|
||||||
"systems"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1737632363,
|
|
||||||
"narHash": "sha256-X9I8POSlHxBVjD0fiX1O2j7U9Zi1+4rIkrsyHP0uHXY=",
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprutils",
|
|
||||||
"rev": "006620eb29d54ea9086538891404c78563d1bae1",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprutils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hyprutils_2": {
|
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
|
|
@ -87,11 +10,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737632363,
|
"lastModified": 1727300645,
|
||||||
"narHash": "sha256-X9I8POSlHxBVjD0fiX1O2j7U9Zi1+4rIkrsyHP0uHXY=",
|
"narHash": "sha256-OvAtVLaSRPnbXzOwlR1fVqCXR7i+ICRX3aPMCdIiv+c=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprutils",
|
"repo": "hyprutils",
|
||||||
"rev": "006620eb29d54ea9086538891404c78563d1bae1",
|
"rev": "3f5293432b6dc6a99f26aca2eba3876d2660665c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -102,11 +25,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737469691,
|
"lastModified": 1728492678,
|
||||||
"narHash": "sha256-nmKOgAU48S41dTPIXAq0AHZSehWUn6ZPrUKijHAMmIk=",
|
"narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "9e4d5190a9482a1fb9d18adf0bdb83c6e506eaab",
|
"rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -118,8 +41,7 @@
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"hyprland-qt-support": "hyprland-qt-support",
|
"hyprutils": "hyprutils",
|
||||||
"hyprutils": "hyprutils_2",
|
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,12 +10,6 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
inputs.systems.follows = "systems";
|
inputs.systems.follows = "systems";
|
||||||
};
|
};
|
||||||
|
|
||||||
hyprland-qt-support = {
|
|
||||||
url = "github:hyprwm/hyprland-qt-support";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
inputs.systems.follows = "systems";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
pkg-config,
|
pkg-config,
|
||||||
hyprutils,
|
hyprutils,
|
||||||
pciutils,
|
pciutils,
|
||||||
hyprland-qt-support,
|
kdePackages,
|
||||||
version ? "0",
|
version ? "0",
|
||||||
}: let
|
}: let
|
||||||
inherit (lib.strings) makeBinPath;
|
inherit (lib.strings) makeBinPath;
|
||||||
|
|
@ -31,7 +31,8 @@ in
|
||||||
qt6.qtsvg
|
qt6.qtsvg
|
||||||
qt6.qtwayland
|
qt6.qtwayland
|
||||||
hyprutils
|
hyprutils
|
||||||
hyprland-qt-support
|
kdePackages.qqc2-desktop-style
|
||||||
|
kdePackages.kirigami
|
||||||
];
|
];
|
||||||
|
|
||||||
preFixup = ''
|
preFixup = ''
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@ in {
|
||||||
|
|
||||||
hyprsysteminfo = lib.composeManyExtensions [
|
hyprsysteminfo = lib.composeManyExtensions [
|
||||||
inputs.hyprutils.overlays.default
|
inputs.hyprutils.overlays.default
|
||||||
inputs.hyprland-qt-support.overlays.default
|
|
||||||
(final: prev: {
|
(final: prev: {
|
||||||
hyprsysteminfo = final.callPackage ./. {
|
hyprsysteminfo = final.callPackage ./. {
|
||||||
version = "${version}+date=${date}_${self.shortRev or "dirty"}";
|
version = "${version}+date=${date}_${self.shortRev or "dirty"}";
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,9 @@
|
||||||
qtbase
|
qtbase
|
||||||
qtdeclarative
|
qtdeclarative
|
||||||
qtwayland
|
qtwayland
|
||||||
pkgs.hyprland-qt-support
|
pkgs.kdePackages.qqc2-desktop-style
|
||||||
|
# see https://github.com/NixOS/nixpkgs/blob/e186dd1a34be7a76c6e2c038ab4b759faec32d5d/pkgs/kde/frameworks/kirigami/default.nix#L9-L11
|
||||||
|
pkgs.kdePackages.kirigami.unwrapped
|
||||||
]);
|
]);
|
||||||
in ''
|
in ''
|
||||||
# Add Qt-related environment variables.
|
# Add Qt-related environment variables.
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,8 @@
|
||||||
find_package(Qt6 REQUIRED COMPONENTS WaylandClientPrivate)
|
|
||||||
|
|
||||||
qt_add_executable(hyprsysteminfo
|
qt_add_executable(hyprsysteminfo
|
||||||
main.cpp
|
main.cpp
|
||||||
util/Utils.cpp
|
util/Utils.cpp
|
||||||
SystemInfo.cpp
|
SystemInfo.cpp
|
||||||
SystemIconProvider.cpp
|
SystemIconProvider.cpp
|
||||||
WaylandScreen.cpp
|
|
||||||
)
|
)
|
||||||
|
|
||||||
qt_add_qml_module(hyprsysteminfo
|
qt_add_qml_module(hyprsysteminfo
|
||||||
|
|
@ -14,6 +11,4 @@ qt_add_qml_module(hyprsysteminfo
|
||||||
QML_FILES main.qml
|
QML_FILES main.qml
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(hyprsysteminfo PRIVATE
|
target_link_libraries(hyprsysteminfo PRIVATE Qt6::Widgets Qt6::QuickControls2 PkgConfig::hyprutils)
|
||||||
Qt6::Widgets Qt6::QuickControls2 Qt6::WaylandClientPrivate PkgConfig::hyprutils
|
|
||||||
)
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
#include "SystemInfo.hpp"
|
#include "SystemInfo.hpp"
|
||||||
#include "WaylandScreen.hpp"
|
|
||||||
#include "util/Utils.hpp"
|
#include "util/Utils.hpp"
|
||||||
#include <qclipboard.h>
|
#include <qclipboard.h>
|
||||||
#include <array>
|
#include <array>
|
||||||
|
|
@ -20,13 +19,10 @@
|
||||||
#include <sys/utsname.h>
|
#include <sys/utsname.h>
|
||||||
#include <hyprutils/string/VarList.hpp>
|
#include <hyprutils/string/VarList.hpp>
|
||||||
#include <hyprutils/string/String.hpp>
|
#include <hyprutils/string/String.hpp>
|
||||||
#include <cstdlib>
|
|
||||||
|
|
||||||
using namespace Hyprutils::String;
|
using namespace Hyprutils::String;
|
||||||
|
|
||||||
CSystemInternals::CSystemInternals(QObject* parent) : QObject(parent) {
|
CSystemInternals::CSystemInternals(QObject* parent) : QObject(parent) {
|
||||||
setenv("LC_ALL", "en_US.UTF-8", true);
|
|
||||||
|
|
||||||
// gather data from os-release
|
// gather data from os-release
|
||||||
if (auto data = readFile("/etc/os-release")) {
|
if (auto data = readFile("/etc/os-release")) {
|
||||||
CVarList lines(data.value(), 0, '\n');
|
CVarList lines(data.value(), 0, '\n');
|
||||||
|
|
@ -191,8 +187,9 @@ CSystemInternals::CSystemInternals(QObject* parent) : QObject(parent) {
|
||||||
|
|
||||||
{
|
{
|
||||||
std::string screens;
|
std::string screens;
|
||||||
for (const auto& s : SWaylandScreenInfo::enumerateScreens()) {
|
for (auto* s : QGuiApplication::screens()) {
|
||||||
screens += std::format("{} ({}x{}), ", s.name.toStdString(), s.pixelSize.width(), s.pixelSize.height());
|
auto ratio = s->devicePixelRatio();
|
||||||
|
screens += std::format("{} ({}x{}), ", s->name().toStdString(), s->geometry().width() * ratio, s->geometry().height() * ratio);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!screens.empty())
|
if (!screens.empty())
|
||||||
|
|
|
||||||
|
|
@ -1,60 +0,0 @@
|
||||||
#include "WaylandScreen.hpp"
|
|
||||||
|
|
||||||
#include <QtWaylandClient/private/qwayland-wayland.h>
|
|
||||||
#include <QtWaylandClient/private/qwaylanddisplay_p.h>
|
|
||||||
#include <QtWaylandClient/private/qwaylandintegration_p.h>
|
|
||||||
#include <cstdint>
|
|
||||||
#include <qcontainerfwd.h>
|
|
||||||
#include <qsize.h>
|
|
||||||
#include <qstringliteral.h>
|
|
||||||
#include <qtclasshelpermacros.h>
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
using namespace QtWaylandClient;
|
|
||||||
|
|
||||||
class CWaylandScreen : public QtWayland::wl_output {
|
|
||||||
public:
|
|
||||||
explicit CWaylandScreen(QWaylandDisplay* display, uint32_t version, uint32_t id);
|
|
||||||
~CWaylandScreen() override;
|
|
||||||
Q_DISABLE_COPY_MOVE(CWaylandScreen);
|
|
||||||
SWaylandScreenInfo info;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
void output_mode(uint32_t flags, int32_t width, int32_t height, int32_t refresh) override;
|
|
||||||
void output_name(const QString& name) override;
|
|
||||||
};
|
|
||||||
|
|
||||||
std::vector<SWaylandScreenInfo> SWaylandScreenInfo::enumerateScreens() {
|
|
||||||
auto* display = QWaylandIntegration::instance()->display();
|
|
||||||
|
|
||||||
std::vector<CWaylandScreen*> screens;
|
|
||||||
for (const auto& global : display->globals()) {
|
|
||||||
if (global.interface == QStringLiteral("wl_output")) {
|
|
||||||
screens.emplace_back(new CWaylandScreen(display, global.version, global.id));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
display->forceRoundTrip();
|
|
||||||
|
|
||||||
std::vector<SWaylandScreenInfo> info;
|
|
||||||
for (auto* screen : screens) {
|
|
||||||
info.push_back(screen->info);
|
|
||||||
delete screen;
|
|
||||||
}
|
|
||||||
|
|
||||||
return info;
|
|
||||||
}
|
|
||||||
|
|
||||||
CWaylandScreen::CWaylandScreen(QWaylandDisplay* display, uint32_t version, uint32_t id) : QtWayland::wl_output(display->wl_registry(), id, 4u) {}
|
|
||||||
|
|
||||||
CWaylandScreen::~CWaylandScreen() {
|
|
||||||
release();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWaylandScreen::output_mode(uint32_t flags, int width, int height, int refresh) {
|
|
||||||
info.pixelSize = QSize(width, height);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWaylandScreen::output_name(const QString& name) {
|
|
||||||
info.name = name;
|
|
||||||
}
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <qcontainerfwd.h>
|
|
||||||
#include <qsize.h>
|
|
||||||
#include <qstring.h>
|
|
||||||
#include <qcontainerfwd.h>
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
struct SWaylandScreenInfo {
|
|
||||||
QString name;
|
|
||||||
QSize pixelSize;
|
|
||||||
|
|
||||||
static std::vector<SWaylandScreenInfo> enumerateScreens();
|
|
||||||
};
|
|
||||||
|
|
@ -10,7 +10,7 @@ int main(int argc, char* argv[]) {
|
||||||
app.setApplicationName("Hyprland System Info");
|
app.setApplicationName("Hyprland System Info");
|
||||||
|
|
||||||
if (qEnvironmentVariableIsEmpty("QT_QUICK_CONTROLS_STYLE"))
|
if (qEnvironmentVariableIsEmpty("QT_QUICK_CONTROLS_STYLE"))
|
||||||
QQuickStyle::setStyle("org.hyprland.style");
|
QQuickStyle::setStyle("org.kde.desktop");
|
||||||
|
|
||||||
QQmlApplicationEngine engine;
|
QQmlApplicationEngine engine;
|
||||||
engine.addImageProvider("systemIcons", new CSystemIconProvider);
|
engine.addImageProvider("systemIcons", new CSystemIconProvider);
|
||||||
|
|
|
||||||
12
src/main.qml
12
src/main.qml
|
|
@ -36,11 +36,6 @@ ApplicationWindow {
|
||||||
Layout.rightMargin: fontMetrics.height * 8
|
Layout.rightMargin: fontMetrics.height * 8
|
||||||
}
|
}
|
||||||
|
|
||||||
SystemPalette {
|
|
||||||
id: system
|
|
||||||
colorGroup: SystemPalette.Active
|
|
||||||
}
|
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
id: mainLayout
|
id: mainLayout
|
||||||
spacing: fontMetrics.height
|
spacing: fontMetrics.height
|
||||||
|
|
@ -82,19 +77,16 @@ ApplicationWindow {
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
color: system.windowText
|
|
||||||
text: SystemInfo.systemName
|
text: SystemInfo.systemName
|
||||||
Layout.alignment: Qt.AlignHCenter
|
Layout.alignment: Qt.AlignHCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
color: system.windowText
|
|
||||||
text: SystemInfo.systemUrl
|
text: SystemInfo.systemUrl
|
||||||
Layout.alignment: Qt.AlignHCenter
|
Layout.alignment: Qt.AlignHCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
color: system.windowText
|
|
||||||
text: SystemInfo.systemKernel
|
text: SystemInfo.systemKernel
|
||||||
Layout.alignment: Qt.AlignHCenter
|
Layout.alignment: Qt.AlignHCenter
|
||||||
}
|
}
|
||||||
|
|
@ -127,19 +119,16 @@ ApplicationWindow {
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
color: system.windowText
|
|
||||||
text: "Hyprland"
|
text: "Hyprland"
|
||||||
Layout.alignment: Qt.AlignHCenter
|
Layout.alignment: Qt.AlignHCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
color: system.windowText
|
|
||||||
text: SystemInfo.hyprlandVersion
|
text: SystemInfo.hyprlandVersion
|
||||||
Layout.alignment: Qt.AlignHCenter
|
Layout.alignment: Qt.AlignHCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
color: system.windowText
|
|
||||||
visible: SystemInfo.hyprlandVersion != text
|
visible: SystemInfo.hyprlandVersion != text
|
||||||
text: SystemInfo.hyprlandVersionLong
|
text: SystemInfo.hyprlandVersionLong
|
||||||
Layout.alignment: Qt.AlignHCenter
|
Layout.alignment: Qt.AlignHCenter
|
||||||
|
|
@ -158,7 +147,6 @@ ApplicationWindow {
|
||||||
Layout.rightMargin: fontMetrics.height * 4
|
Layout.rightMargin: fontMetrics.height * 4
|
||||||
|
|
||||||
component DetailsLabel: Label {
|
component DetailsLabel: Label {
|
||||||
color: system.windowText
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
wrapMode: Text.NoWrap
|
wrapMode: Text.NoWrap
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue