forked from quickshell/quickshell
		
	all: use fully qualified type names in Q_PROPERTY
Fixes type deduction issues with qmllint/qmlls.
This commit is contained in:
		
							parent
							
								
									a931adf033
								
							
						
					
					
						commit
						746b0e70d7
					
				
					 14 changed files with 52 additions and 40 deletions
				
			
		| 
						 | 
				
			
			@ -30,7 +30,7 @@ public:
 | 
			
		|||
	};
 | 
			
		||||
	Q_ENUM(Enum);
 | 
			
		||||
 | 
			
		||||
	Q_INVOKABLE static QString toString(QsMenuButtonType::Enum value);
 | 
			
		||||
	Q_INVOKABLE static QString toString(qs::menu::QsMenuButtonType::Enum value);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class QsMenuEntry;
 | 
			
		||||
| 
						 | 
				
			
			@ -79,7 +79,7 @@ class QsMenuEntry: public QsMenuHandle {
 | 
			
		|||
	/// ```
 | 
			
		||||
	Q_PROPERTY(QString icon READ icon NOTIFY iconChanged);
 | 
			
		||||
	/// If this menu item has an associated checkbox or radiobutton.
 | 
			
		||||
	Q_PROPERTY(QsMenuButtonType::Enum buttonType READ buttonType NOTIFY buttonTypeChanged);
 | 
			
		||||
	Q_PROPERTY(qs::menu::QsMenuButtonType::Enum buttonType READ buttonType NOTIFY buttonTypeChanged);
 | 
			
		||||
	/// The check state of the checkbox or radiobutton if applicable, as a
 | 
			
		||||
	/// [Qt.CheckState](https://doc.qt.io/qt-6/qt.html#CheckState-enum).
 | 
			
		||||
	Q_PROPERTY(Qt::CheckState checkState READ checkState NOTIFY checkStateChanged);
 | 
			
		||||
| 
						 | 
				
			
			@ -138,7 +138,7 @@ private:
 | 
			
		|||
class QsMenuOpener: public QObject {
 | 
			
		||||
	Q_OBJECT;
 | 
			
		||||
	/// The menu to retrieve children from.
 | 
			
		||||
	Q_PROPERTY(QsMenuHandle* menu READ menu WRITE setMenu NOTIFY menuChanged);
 | 
			
		||||
	Q_PROPERTY(qs::menu::QsMenuHandle* menu READ menu WRITE setMenu NOTIFY menuChanged);
 | 
			
		||||
	/// The children of the given menu.
 | 
			
		||||
	Q_PROPERTY(QQmlListProperty<QsMenuEntry> children READ children NOTIFY childrenChanged);
 | 
			
		||||
	QML_ELEMENT;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -36,7 +36,7 @@ class QsMenuAnchor: public QObject {
 | 
			
		|||
	/// The menu that should be displayed on this anchor.
 | 
			
		||||
	///
 | 
			
		||||
	/// See also: @@Quickshell.Services.SystemTray.SystemTrayItem.menu.
 | 
			
		||||
	Q_PROPERTY(QsMenuHandle* menu READ menu WRITE setMenu NOTIFY menuChanged);
 | 
			
		||||
	Q_PROPERTY(qs::menu::QsMenuHandle* menu READ menu WRITE setMenu NOTIFY menuChanged);
 | 
			
		||||
	/// If the menu is currently open and visible.
 | 
			
		||||
	///
 | 
			
		||||
	/// See also: @@open(), @@close().
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -36,7 +36,7 @@ class DBusMenuPngImage;
 | 
			
		|||
class DBusMenuItem: public QsMenuEntry {
 | 
			
		||||
	Q_OBJECT;
 | 
			
		||||
	/// Handle to the root of this menu.
 | 
			
		||||
	Q_PROPERTY(DBusMenu* menuHandle READ menuHandle CONSTANT);
 | 
			
		||||
	Q_PROPERTY(qs::dbus::dbusmenu::DBusMenu* menuHandle READ menuHandle CONSTANT);
 | 
			
		||||
	QML_ELEMENT;
 | 
			
		||||
	QML_UNCREATABLE("DBusMenus can only be acquired from a DBusMenuHandle");
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -108,7 +108,7 @@ QDebug operator<<(QDebug debug, DBusMenuItem* item);
 | 
			
		|||
/// Handle to a menu tree provided by a remote process.
 | 
			
		||||
class DBusMenu: public QObject {
 | 
			
		||||
	Q_OBJECT;
 | 
			
		||||
	Q_PROPERTY(DBusMenuItem* menu READ menu CONSTANT);
 | 
			
		||||
	Q_PROPERTY(qs::dbus::dbusmenu::DBusMenuItem* menu READ menu CONSTANT);
 | 
			
		||||
	QML_NAMED_ELEMENT(DBusMenuHandle);
 | 
			
		||||
	QML_UNCREATABLE("Menu handles cannot be directly created");
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -150,11 +150,11 @@ class MprisPlayer: public QObject {
 | 
			
		|||
	/// - If @@canPause is false, you cannot assign the `Paused` state.
 | 
			
		||||
	/// - If @@canControl is false, you cannot assign the `Stopped` state.
 | 
			
		||||
	/// (or any of the others, though their repsective properties will also be false)
 | 
			
		||||
	Q_PROPERTY(MprisPlaybackState::Enum playbackState READ playbackState WRITE setPlaybackState NOTIFY playbackStateChanged);
 | 
			
		||||
	Q_PROPERTY(qs::service::mpris::MprisPlaybackState::Enum playbackState READ playbackState WRITE setPlaybackState NOTIFY playbackStateChanged);
 | 
			
		||||
	/// The loop state of the media player, or `None` if @@loopSupported is false.
 | 
			
		||||
	///
 | 
			
		||||
	/// May only be written to if @@canControl and @@loopSupported are true.
 | 
			
		||||
	Q_PROPERTY(MprisLoopState::Enum loopState READ loopState WRITE setLoopState NOTIFY loopStateChanged);
 | 
			
		||||
	Q_PROPERTY(qs::service::mpris::MprisLoopState::Enum loopState READ loopState WRITE setLoopState NOTIFY loopStateChanged);
 | 
			
		||||
	Q_PROPERTY(bool loopSupported READ loopSupported NOTIFY loopSupportedChanged);
 | 
			
		||||
	/// The speed the song is playing at, as a multiplier.
 | 
			
		||||
	///
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -46,7 +46,7 @@ class MprisQml: public QObject {
 | 
			
		|||
	QML_NAMED_ELEMENT(Mpris);
 | 
			
		||||
	QML_SINGLETON;
 | 
			
		||||
	/// All connected MPRIS players.
 | 
			
		||||
	Q_PROPERTY(ObjectModel<MprisPlayer>* players READ players CONSTANT);
 | 
			
		||||
	Q_PROPERTY(ObjectModel<qs::service::mpris::MprisPlayer>* players READ players CONSTANT);
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
	explicit MprisQml(QObject* parent = nullptr): QObject(parent) {};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -65,6 +65,7 @@ class Notification
 | 
			
		|||
    : public QObject
 | 
			
		||||
    , public Retainable {
 | 
			
		||||
	Q_OBJECT;
 | 
			
		||||
	// clang-format off
 | 
			
		||||
	/// Id of the notification as given to the client.
 | 
			
		||||
	Q_PROPERTY(quint32 id READ id CONSTANT);
 | 
			
		||||
	/// If the notification is tracked by the notification server.
 | 
			
		||||
| 
						 | 
				
			
			@ -87,9 +88,9 @@ class Notification
 | 
			
		|||
	/// The image associated with this notification, or "" if none.
 | 
			
		||||
	Q_PROPERTY(QString summary READ summary NOTIFY summaryChanged);
 | 
			
		||||
	Q_PROPERTY(QString body READ body NOTIFY bodyChanged);
 | 
			
		||||
	Q_PROPERTY(NotificationUrgency::Enum urgency READ urgency NOTIFY urgencyChanged);
 | 
			
		||||
	Q_PROPERTY(qs::service::notifications::NotificationUrgency::Enum urgency READ urgency NOTIFY urgencyChanged);
 | 
			
		||||
	/// Actions that can be taken for this notification.
 | 
			
		||||
	Q_PROPERTY(QVector<NotificationAction*> actions READ actions NOTIFY actionsChanged);
 | 
			
		||||
	Q_PROPERTY(QVector<qs::service::notifications::NotificationAction*> actions READ actions NOTIFY actionsChanged);
 | 
			
		||||
	/// If actions associated with this notification have icons available.
 | 
			
		||||
	///
 | 
			
		||||
	/// See @@NotificationAction.identifier for details.
 | 
			
		||||
| 
						 | 
				
			
			@ -107,6 +108,7 @@ class Notification
 | 
			
		|||
	/// All hints sent by the client application as a javascript object.
 | 
			
		||||
	/// Many common hints are exposed via other properties.
 | 
			
		||||
	Q_PROPERTY(QVariantMap hints READ hints NOTIFY hintsChanged);
 | 
			
		||||
	// clang-format on
 | 
			
		||||
	QML_ELEMENT;
 | 
			
		||||
	QML_UNCREATABLE("Notifications must be acquired from a NotificationServer");
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -67,7 +67,7 @@ class NotificationServerQml
 | 
			
		|||
	/// If the notification server should advertise that it supports images. Defaults to false.
 | 
			
		||||
	Q_PROPERTY(bool imageSupported READ imageSupported WRITE setImageSupported NOTIFY imageSupportedChanged);
 | 
			
		||||
	/// All notifications currently tracked by the server.
 | 
			
		||||
	Q_PROPERTY(ObjectModel<Notification>* trackedNotifications READ trackedNotifications NOTIFY trackedNotificationsChanged);
 | 
			
		||||
	Q_PROPERTY(ObjectModel<qs::service::notifications::Notification>* trackedNotifications READ trackedNotifications NOTIFY trackedNotificationsChanged);
 | 
			
		||||
	/// Extra hints to expose to notification clients.
 | 
			
		||||
	Q_PROPERTY(QVector<QString> extraHints READ extraHints WRITE setExtraHints NOTIFY extraHintsChanged);
 | 
			
		||||
	// clang-format on
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -59,7 +59,7 @@ class Pipewire: public QObject {
 | 
			
		|||
	/// - @@PwNode.isStream - if the node is an application or hardware device.
 | 
			
		||||
	/// - @@PwNode.isSink - if the node is a sink or source.
 | 
			
		||||
	/// - @@PwNode.audio - if non null the node is an audio node.
 | 
			
		||||
	Q_PROPERTY(ObjectModel<PwNodeIface>* nodes READ nodes CONSTANT);
 | 
			
		||||
	Q_PROPERTY(ObjectModel<qs::service::pipewire::PwNodeIface>* nodes READ nodes CONSTANT);
 | 
			
		||||
	/// All links present in pipewire.
 | 
			
		||||
	///
 | 
			
		||||
	/// Links connect pipewire nodes to each other, and can be used to determine
 | 
			
		||||
| 
						 | 
				
			
			@ -70,14 +70,14 @@ class Pipewire: public QObject {
 | 
			
		|||
	///
 | 
			
		||||
	/// > [!INFO] Multiple links may exist between the same nodes. See @@linkGroups
 | 
			
		||||
	/// > for a deduplicated list containing only one entry per link between nodes.
 | 
			
		||||
	Q_PROPERTY(ObjectModel<PwLinkIface>* links READ links CONSTANT);
 | 
			
		||||
	Q_PROPERTY(ObjectModel<qs::service::pipewire::PwLinkIface>* links READ links CONSTANT);
 | 
			
		||||
	/// All link groups present in pipewire.
 | 
			
		||||
	///
 | 
			
		||||
	/// The same as @@links but deduplicated.
 | 
			
		||||
	///
 | 
			
		||||
	/// If you already have a node you want to check for connections to,
 | 
			
		||||
	/// use @@PwNodeLinkTracker instead of filtering this list.
 | 
			
		||||
	Q_PROPERTY(ObjectModel<PwLinkGroupIface>* linkGroups READ linkGroups CONSTANT);
 | 
			
		||||
	Q_PROPERTY(ObjectModel<qs::service::pipewire::PwLinkGroupIface>* linkGroups READ linkGroups CONSTANT);
 | 
			
		||||
	/// The default audio sink (output) or `null`.
 | 
			
		||||
	///
 | 
			
		||||
	/// This is the default sink currently in use by pipewire, and the one applications
 | 
			
		||||
| 
						 | 
				
			
			@ -87,7 +87,7 @@ class Pipewire: public QObject {
 | 
			
		|||
	///
 | 
			
		||||
	/// > [!INFO] When the default sink changes, this property may breifly become null.
 | 
			
		||||
	/// > This depends on your hardware.
 | 
			
		||||
	Q_PROPERTY(PwNodeIface* defaultAudioSink READ defaultAudioSink NOTIFY defaultAudioSinkChanged);
 | 
			
		||||
	Q_PROPERTY(qs::service::pipewire::PwNodeIface* defaultAudioSink READ defaultAudioSink NOTIFY defaultAudioSinkChanged);
 | 
			
		||||
	/// The default audio source (input) or `null`.
 | 
			
		||||
	///
 | 
			
		||||
	/// This is the default source currently in use by pipewire, and the one applications
 | 
			
		||||
| 
						 | 
				
			
			@ -97,21 +97,21 @@ class Pipewire: public QObject {
 | 
			
		|||
	///
 | 
			
		||||
	/// > [!INFO] When the default source changes, this property may breifly become null.
 | 
			
		||||
	/// > This depends on your hardware.
 | 
			
		||||
	Q_PROPERTY(PwNodeIface* defaultAudioSource READ defaultAudioSource NOTIFY defaultAudioSourceChanged);
 | 
			
		||||
	Q_PROPERTY(qs::service::pipewire::PwNodeIface* defaultAudioSource READ defaultAudioSource NOTIFY defaultAudioSourceChanged);
 | 
			
		||||
	/// The preferred default audio sink (output) or `null`.
 | 
			
		||||
	///
 | 
			
		||||
	/// This is a hint to pipewire telling it which sink should be the default when possible.
 | 
			
		||||
	/// @@defaultAudioSink may differ when it is not possible for pipewire to pick this node.
 | 
			
		||||
	///
 | 
			
		||||
	/// See @@defaultAudioSink for the current default sink, regardless of preference.
 | 
			
		||||
	Q_PROPERTY(PwNodeIface* preferredDefaultAudioSink READ defaultConfiguredAudioSink WRITE setDefaultConfiguredAudioSink NOTIFY defaultConfiguredAudioSinkChanged);
 | 
			
		||||
	Q_PROPERTY(qs::service::pipewire::PwNodeIface* preferredDefaultAudioSink READ defaultConfiguredAudioSink WRITE setDefaultConfiguredAudioSink NOTIFY defaultConfiguredAudioSinkChanged);
 | 
			
		||||
	/// The preferred default audio source (input) or `null`.
 | 
			
		||||
	///
 | 
			
		||||
	/// This is a hint to pipewire telling it which source should be the default when possible.
 | 
			
		||||
	/// @@defaultAudioSource may differ when it is not possible for pipewire to pick this node.
 | 
			
		||||
	///
 | 
			
		||||
	/// See @@defaultAudioSource for the current default source, regardless of preference.
 | 
			
		||||
	Q_PROPERTY(PwNodeIface* preferredDefaultAudioSource READ defaultConfiguredAudioSource WRITE setDefaultConfiguredAudioSource NOTIFY defaultConfiguredAudioSourceChanged);
 | 
			
		||||
	Q_PROPERTY(qs::service::pipewire::PwNodeIface* preferredDefaultAudioSource READ defaultConfiguredAudioSource WRITE setDefaultConfiguredAudioSource NOTIFY defaultConfiguredAudioSourceChanged);
 | 
			
		||||
	// clang-format on
 | 
			
		||||
	QML_ELEMENT;
 | 
			
		||||
	QML_SINGLETON;
 | 
			
		||||
| 
						 | 
				
			
			@ -158,12 +158,12 @@ class PwNodeLinkTracker: public QObject {
 | 
			
		|||
	Q_OBJECT;
 | 
			
		||||
	// clang-format off
 | 
			
		||||
	/// The node to track connections to.
 | 
			
		||||
	Q_PROPERTY(PwNodeIface* node READ node WRITE setNode NOTIFY nodeChanged);
 | 
			
		||||
	Q_PROPERTY(qs::service::pipewire::PwNodeIface* node READ node WRITE setNode NOTIFY nodeChanged);
 | 
			
		||||
	/// Link groups connected to the given node.
 | 
			
		||||
	///
 | 
			
		||||
	/// If the node is a sink, links which target the node will be tracked.
 | 
			
		||||
	/// If the node is a source, links which source the node will be tracked.
 | 
			
		||||
	Q_PROPERTY(QQmlListProperty<PwLinkGroupIface> linkGroups READ linkGroups NOTIFY linkGroupsChanged);
 | 
			
		||||
	Q_PROPERTY(QQmlListProperty<qs::service::pipewire::PwLinkGroupIface> linkGroups READ linkGroups NOTIFY linkGroupsChanged);
 | 
			
		||||
	// clang-format on
 | 
			
		||||
	QML_ELEMENT;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -201,6 +201,7 @@ private:
 | 
			
		|||
/// See @@PwNode.audio.
 | 
			
		||||
class PwNodeAudioIface: public QObject {
 | 
			
		||||
	Q_OBJECT;
 | 
			
		||||
	// clang-format off
 | 
			
		||||
	/// If the node is currently muted. Setting this property changes the mute state.
 | 
			
		||||
	///
 | 
			
		||||
	/// > [!WARNING] This property is invalid unless the node is [bound](../pwobjecttracker).
 | 
			
		||||
| 
						 | 
				
			
			@ -213,13 +214,14 @@ class PwNodeAudioIface: public QObject {
 | 
			
		|||
	/// The audio channels present on the node.
 | 
			
		||||
	///
 | 
			
		||||
	/// > [!WARNING] This property is invalid unless the node is [bound](../pwobjecttracker).
 | 
			
		||||
	Q_PROPERTY(QVector<PwAudioChannel::Enum> channels READ channels NOTIFY channelsChanged);
 | 
			
		||||
	Q_PROPERTY(QVector<qs::service::pipewire::PwAudioChannel::Enum> channels READ channels NOTIFY channelsChanged);
 | 
			
		||||
	/// The volumes of each audio channel individually. Each entry corrosponds to
 | 
			
		||||
	/// the volume of the channel at the same index in @@channels. @@volumes and @@channels
 | 
			
		||||
	/// will always be the same length.
 | 
			
		||||
	///
 | 
			
		||||
	/// > [!WARNING] This property is invalid unless the node is [bound](../pwobjecttracker).
 | 
			
		||||
	Q_PROPERTY(QVector<float> volumes READ volumes WRITE setVolumes NOTIFY volumesChanged);
 | 
			
		||||
	// clang-format on
 | 
			
		||||
	QML_NAMED_ELEMENT(PwNodeAudio);
 | 
			
		||||
	QML_UNCREATABLE("PwNodeAudio cannot be created directly");
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -287,7 +289,7 @@ class PwNodeIface: public PwObjectIface {
 | 
			
		|||
	///
 | 
			
		||||
	/// The presence or absence of this property can be used to determine if a node
 | 
			
		||||
	/// manages audio, regardless of if it is bound. If non null, the node is an audio node.
 | 
			
		||||
	Q_PROPERTY(PwNodeAudioIface* audio READ audio CONSTANT);
 | 
			
		||||
	Q_PROPERTY(qs::service::pipewire::PwNodeAudioIface* audio READ audio CONSTANT);
 | 
			
		||||
	QML_NAMED_ELEMENT(PwNode);
 | 
			
		||||
	QML_UNCREATABLE("PwNodes cannot be created directly");
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -325,9 +327,9 @@ class PwLinkIface: public PwObjectIface {
 | 
			
		|||
	/// with `pw-cli i <id>`.
 | 
			
		||||
	Q_PROPERTY(quint32 id READ id CONSTANT);
 | 
			
		||||
	/// The node that is *receiving* information. (the sink)
 | 
			
		||||
	Q_PROPERTY(PwNodeIface* target READ target CONSTANT);
 | 
			
		||||
	Q_PROPERTY(qs::service::pipewire::PwNodeIface* target READ target CONSTANT);
 | 
			
		||||
	/// The node that is *sending* information. (the source)
 | 
			
		||||
	Q_PROPERTY(PwNodeIface* source READ source CONSTANT);
 | 
			
		||||
	Q_PROPERTY(qs::service::pipewire::PwNodeIface* source READ source CONSTANT);
 | 
			
		||||
	/// The current state of the link.
 | 
			
		||||
	///
 | 
			
		||||
	/// > [!WARNING] This property is invalid unless the node is [bound](../pwobjecttracker).
 | 
			
		||||
| 
						 | 
				
			
			@ -360,13 +362,13 @@ class PwLinkGroupIface
 | 
			
		|||
    , public PwObjectRefIface {
 | 
			
		||||
	Q_OBJECT;
 | 
			
		||||
	/// The node that is *receiving* information. (the sink)
 | 
			
		||||
	Q_PROPERTY(PwNodeIface* target READ target CONSTANT);
 | 
			
		||||
	Q_PROPERTY(qs::service::pipewire::PwNodeIface* target READ target CONSTANT);
 | 
			
		||||
	/// The node that is *sending* information. (the source)
 | 
			
		||||
	Q_PROPERTY(PwNodeIface* source READ source CONSTANT);
 | 
			
		||||
	Q_PROPERTY(qs::service::pipewire::PwNodeIface* source READ source CONSTANT);
 | 
			
		||||
	/// The current state of the link group.
 | 
			
		||||
	///
 | 
			
		||||
	/// > [!WARNING] This property is invalid unless the node is [bound](../pwobjecttracker).
 | 
			
		||||
	Q_PROPERTY(PwLinkState::Enum state READ state NOTIFY stateChanged);
 | 
			
		||||
	Q_PROPERTY(qs::service::pipewire::PwLinkState::Enum state READ state NOTIFY stateChanged);
 | 
			
		||||
	QML_NAMED_ELEMENT(PwLinkGroup);
 | 
			
		||||
	QML_UNCREATABLE("PwLinkGroups cannot be created directly");
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -72,7 +72,7 @@ class SystemTrayItem: public QObject {
 | 
			
		|||
	/// A handle to the menu associated with this tray item, if any.
 | 
			
		||||
	///
 | 
			
		||||
	/// Can be displayed with @@Quickshell.QsMenuAnchor or @@Quickshell.QsMenuOpener.
 | 
			
		||||
	Q_PROPERTY(QsMenuHandle* menu READ menu NOTIFY hasMenuChanged);
 | 
			
		||||
	Q_PROPERTY(qs::menu::QsMenuHandle* menu READ menu NOTIFY hasMenuChanged);
 | 
			
		||||
	/// If this tray item only offers a menu and activation will do nothing.
 | 
			
		||||
	Q_PROPERTY(bool onlyMenu READ onlyMenu NOTIFY onlyMenuChanged);
 | 
			
		||||
	QML_ELEMENT;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -53,15 +53,17 @@ class UPowerQml: public QObject {
 | 
			
		|||
	Q_OBJECT;
 | 
			
		||||
	QML_NAMED_ELEMENT(UPower);
 | 
			
		||||
	QML_SINGLETON;
 | 
			
		||||
	// clang-format off
 | 
			
		||||
	/// UPower's DisplayDevice for your system. Can be `null`.
 | 
			
		||||
	///
 | 
			
		||||
	/// This is an aggregate device and not a physical one, meaning you will not find it in @@devices.
 | 
			
		||||
	/// It is typically the device that is used for displaying information in desktop environments.
 | 
			
		||||
	Q_PROPERTY(UPowerDevice* displayDevice READ displayDevice NOTIFY displayDeviceChanged);
 | 
			
		||||
	Q_PROPERTY(qs::service::upower::UPowerDevice* displayDevice READ displayDevice NOTIFY displayDeviceChanged);
 | 
			
		||||
	/// All connected UPower devices.
 | 
			
		||||
	Q_PROPERTY(ObjectModel<UPowerDevice>* devices READ devices CONSTANT);
 | 
			
		||||
	Q_PROPERTY(ObjectModel<qs::service::upower::UPowerDevice>* devices READ devices CONSTANT);
 | 
			
		||||
	/// If the system is currently running on battery power, or discharging.
 | 
			
		||||
	Q_PROPERTY(bool onBattery READ onBattery NOTIFY onBatteryChanged);
 | 
			
		||||
	// clang-format on
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
	explicit UPowerQml(QObject* parent = nullptr);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -85,7 +85,7 @@ class UPowerDevice: public QObject {
 | 
			
		|||
	Q_OBJECT;
 | 
			
		||||
	// clang-format off
 | 
			
		||||
	/// The type of device.
 | 
			
		||||
	Q_PROPERTY(UPowerDeviceType::Enum type READ type NOTIFY typeChanged);
 | 
			
		||||
	Q_PROPERTY(qs::service::upower::UPowerDeviceType::Enum type READ type NOTIFY typeChanged);
 | 
			
		||||
	/// If the device is a power supply for your computer and can provide charge.
 | 
			
		||||
	Q_PROPERTY(bool powerSupply READ powerSupply NOTIFY powerSupplyChanged);
 | 
			
		||||
	/// Current energy level of the device in watt-hours.
 | 
			
		||||
| 
						 | 
				
			
			@ -111,7 +111,7 @@ class UPowerDevice: public QObject {
 | 
			
		|||
	/// If the device `type` is not `Battery`, then the property will be invalid.
 | 
			
		||||
	Q_PROPERTY(bool isPresent READ isPresent NOTIFY isPresentChanged);
 | 
			
		||||
	/// Current state of the device.
 | 
			
		||||
	Q_PROPERTY(UPowerDeviceState::Enum state READ state NOTIFY stateChanged);
 | 
			
		||||
	Q_PROPERTY(qs::service::upower::UPowerDeviceState::Enum state READ state NOTIFY stateChanged);
 | 
			
		||||
	/// Health of the device as a percentage of its original health.
 | 
			
		||||
	Q_PROPERTY(qreal healthPercentage READ healthPercentage NOTIFY healthPercentageChanged);
 | 
			
		||||
	Q_PROPERTY(bool healthSupported READ healthSupported NOTIFY healthSupportedChanged);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,6 +13,7 @@ namespace qs::hyprland::ipc {
 | 
			
		|||
 | 
			
		||||
class HyprlandMonitor: public QObject {
 | 
			
		||||
	Q_OBJECT;
 | 
			
		||||
	// clang-format off
 | 
			
		||||
	Q_PROPERTY(qint32 id READ id NOTIFY idChanged);
 | 
			
		||||
	Q_PROPERTY(QString name READ name NOTIFY nameChanged);
 | 
			
		||||
	Q_PROPERTY(QString description READ description NOTIFY descriptionChanged);
 | 
			
		||||
| 
						 | 
				
			
			@ -28,7 +29,8 @@ class HyprlandMonitor: public QObject {
 | 
			
		|||
	/// > property, run @@Hyprland.refreshMonitors() and wait for this property to update.
 | 
			
		||||
	Q_PROPERTY(QVariantMap lastIpcObject READ lastIpcObject NOTIFY lastIpcObjectChanged);
 | 
			
		||||
	/// The currently active workspace on this monitor. May be null.
 | 
			
		||||
	Q_PROPERTY(HyprlandWorkspace* activeWorkspace READ activeWorkspace NOTIFY activeWorkspaceChanged);
 | 
			
		||||
	Q_PROPERTY(qs::hyprland::ipc::HyprlandWorkspace* activeWorkspace READ activeWorkspace NOTIFY activeWorkspaceChanged);
 | 
			
		||||
	// clang-format on
 | 
			
		||||
	QML_ELEMENT;
 | 
			
		||||
	QML_UNCREATABLE("HyprlandMonitors must be retrieved from the HyprlandIpc object.");
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,16 +14,18 @@ namespace qs::hyprland::ipc {
 | 
			
		|||
 | 
			
		||||
class HyprlandIpcQml: public QObject {
 | 
			
		||||
	Q_OBJECT;
 | 
			
		||||
	// clang-format off
 | 
			
		||||
	/// Path to the request socket (.socket.sock)
 | 
			
		||||
	Q_PROPERTY(QString requestSocketPath READ requestSocketPath CONSTANT);
 | 
			
		||||
	/// Path to the event socket (.socket2.sock)
 | 
			
		||||
	Q_PROPERTY(QString eventSocketPath READ eventSocketPath CONSTANT);
 | 
			
		||||
	/// The currently focused hyprland monitor. May be null.
 | 
			
		||||
	Q_PROPERTY(HyprlandMonitor* focusedMonitor READ focusedMonitor NOTIFY focusedMonitorChanged);
 | 
			
		||||
	Q_PROPERTY(qs::hyprland::ipc::HyprlandMonitor* focusedMonitor READ focusedMonitor NOTIFY focusedMonitorChanged);
 | 
			
		||||
	/// All hyprland monitors.
 | 
			
		||||
	Q_PROPERTY(ObjectModel<HyprlandMonitor>* monitors READ monitors CONSTANT);
 | 
			
		||||
	Q_PROPERTY(ObjectModel<qs::hyprland::ipc::HyprlandMonitor>* monitors READ monitors CONSTANT);
 | 
			
		||||
	/// All hyprland workspaces.
 | 
			
		||||
	Q_PROPERTY(ObjectModel<HyprlandWorkspace>* workspaces READ workspaces CONSTANT);
 | 
			
		||||
	Q_PROPERTY(ObjectModel<qs::hyprland::ipc::HyprlandWorkspace>* workspaces READ workspaces CONSTANT);
 | 
			
		||||
	// clang-format on
 | 
			
		||||
	QML_NAMED_ELEMENT(Hyprland);
 | 
			
		||||
	QML_SINGLETON;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,7 +24,7 @@ class Toplevel: public QObject {
 | 
			
		|||
	Q_PROPERTY(QString appId READ appId NOTIFY appIdChanged);
 | 
			
		||||
	Q_PROPERTY(QString title READ title NOTIFY titleChanged);
 | 
			
		||||
	/// Parent toplevel if this toplevel is a modal/dialog, otherwise null.
 | 
			
		||||
	Q_PROPERTY(Toplevel* parent READ parent NOTIFY parentChanged);
 | 
			
		||||
	Q_PROPERTY(qs::wayland::toplevel_management::Toplevel* parent READ parent NOTIFY parentChanged);
 | 
			
		||||
	/// If the window is currently activated or focused.
 | 
			
		||||
	///
 | 
			
		||||
	/// Activation can be requested with the @@activate() function.
 | 
			
		||||
| 
						 | 
				
			
			@ -141,13 +141,15 @@ private:
 | 
			
		|||
/// wayland protocol.
 | 
			
		||||
class ToplevelManagerQml: public QObject {
 | 
			
		||||
	Q_OBJECT;
 | 
			
		||||
	// clang-format off
 | 
			
		||||
	/// All toplevel windows exposed by the compositor.
 | 
			
		||||
	Q_PROPERTY(ObjectModel<Toplevel>* toplevels READ toplevels CONSTANT);
 | 
			
		||||
	Q_PROPERTY(ObjectModel<qs::wayland::toplevel_management::Toplevel>* toplevels READ toplevels CONSTANT);
 | 
			
		||||
	/// Active toplevel or null.
 | 
			
		||||
	///
 | 
			
		||||
	/// > [!INFO] If multiple are active, this will be the most recently activated one.
 | 
			
		||||
	/// > Usually compositors will not report more than one toplevel as active at a time.
 | 
			
		||||
	Q_PROPERTY(Toplevel* activeToplevel READ activeToplevel NOTIFY activeToplevelChanged);
 | 
			
		||||
	Q_PROPERTY(qs::wayland::toplevel_management::Toplevel* activeToplevel READ activeToplevel NOTIFY activeToplevelChanged);
 | 
			
		||||
	// clang-format on
 | 
			
		||||
	QML_NAMED_ELEMENT(ToplevelManager);
 | 
			
		||||
	QML_SINGLETON;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue