From 05fc50c033ec092a3042e41da23d2036861aaf87 Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Thu, 7 Jul 2022 01:15:01 +0200 Subject: [PATCH] flashlight: Mark itself as unavailable if unavailable --- quicksettings/flashlight/flashlightutil.cpp | 11 +++++++++-- quicksettings/flashlight/flashlightutil.h | 2 ++ quicksettings/flashlight/package/contents/ui/main.qml | 1 + 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/quicksettings/flashlight/flashlightutil.cpp b/quicksettings/flashlight/flashlightutil.cpp index 3d04b658..bff7fc3d 100644 --- a/quicksettings/flashlight/flashlightutil.cpp +++ b/quicksettings/flashlight/flashlightutil.cpp @@ -11,6 +11,10 @@ #include #include +#include + +// FIXME this is hardcoded to the PinePhone for now +static const char *FLASH_SYSFS_PATH = "/sys/devices/platform/led-controller/leds/white:flash/brightness"; FlashlightUtil::FlashlightUtil(QObject *parent) : QObject{parent} @@ -20,8 +24,6 @@ FlashlightUtil::FlashlightUtil(QObject *parent) void FlashlightUtil::toggleTorch() { - // FIXME this is hardcoded to the PinePhone for now - static auto FLASH_SYSFS_PATH = "/sys/devices/platform/led-controller/leds/white:flash/brightness"; int fd = open(FLASH_SYSFS_PATH, O_WRONLY); if (fd < 0) { @@ -39,3 +41,8 @@ bool FlashlightUtil::torchEnabled() const { return m_torchEnabled; } + +bool FlashlightUtil::isAvailable() const +{ + return QFileInfo::exists(FLASH_SYSFS_PATH); +} diff --git a/quicksettings/flashlight/flashlightutil.h b/quicksettings/flashlight/flashlightutil.h index f9c69af0..fa14102b 100644 --- a/quicksettings/flashlight/flashlightutil.h +++ b/quicksettings/flashlight/flashlightutil.h @@ -12,12 +12,14 @@ class FlashlightUtil : public QObject { Q_OBJECT Q_PROPERTY(bool torchEnabled READ torchEnabled NOTIFY torchChanged); + Q_PROPERTY(bool available READ isAvailable CONSTANT); public: FlashlightUtil(QObject *parent = nullptr); Q_INVOKABLE void toggleTorch(); bool torchEnabled() const; + bool isAvailable() const; Q_SIGNALS: void torchChanged(bool value); diff --git a/quicksettings/flashlight/package/contents/ui/main.qml b/quicksettings/flashlight/package/contents/ui/main.qml index 5acc0a9f..aeb53ccf 100644 --- a/quicksettings/flashlight/package/contents/ui/main.qml +++ b/quicksettings/flashlight/package/contents/ui/main.qml @@ -10,6 +10,7 @@ MobileShell.QuickSetting { text: i18n("Flashlight") icon: "flashlight-on" enabled: FlashlightUtil.torchEnabled + available: FlashlightUtil.available function toggle() { FlashlightUtil.toggleTorch() }