forked from quickshell/quickshell
		
	dbus/properties: remove non bindable based dbus property impl
This commit is contained in:
		
							parent
							
								
									324fe9274d
								
							
						
					
					
						commit
						ec143d6119
					
				
					 2 changed files with 0 additions and 115 deletions
				
			
		| 
						 | 
					@ -110,24 +110,6 @@ void asyncReadPropertyInternal(
 | 
				
			||||||
	QObject::connect(call, &QDBusPendingCallWatcher::finished, &interface, responseCallback);
 | 
						QObject::connect(call, &QDBusPendingCallWatcher::finished, &interface, responseCallback);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void AbstractDBusProperty::update() {
 | 
					 | 
				
			||||||
	if (this->group == nullptr) {
 | 
					 | 
				
			||||||
		qFatal(logDbusProperties) << "Tried to update dbus property" << this->nameRef()
 | 
					 | 
				
			||||||
		                          << "which is not attached to a group";
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		this->group->requestPropertyUpdate(this);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void AbstractDBusProperty::write() {
 | 
					 | 
				
			||||||
	if (this->group == nullptr) {
 | 
					 | 
				
			||||||
		qFatal(logDbusProperties) << "Tried to write dbus property" << this->nameRef()
 | 
					 | 
				
			||||||
		                          << "which is not attached to a group";
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		this->group->pushPropertyUpdate(this);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DBusPropertyGroup::DBusPropertyGroup(QVector<DBusPropertyCore*> properties, QObject* parent)
 | 
					DBusPropertyGroup::DBusPropertyGroup(QVector<DBusPropertyCore*> properties, QObject* parent)
 | 
				
			||||||
    : QObject(parent)
 | 
					    : QObject(parent)
 | 
				
			||||||
    , properties(std::move(properties)) {}
 | 
					    , properties(std::move(properties)) {}
 | 
				
			||||||
| 
						 | 
					@ -157,11 +139,6 @@ void DBusPropertyGroup::setInterface(QDBusAbstractInterface* interface) {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void DBusPropertyGroup::attachProperty(AbstractDBusProperty* property) {
 | 
					 | 
				
			||||||
	this->properties.append(property);
 | 
					 | 
				
			||||||
	property->group = this;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void DBusPropertyGroup::attachProperty(DBusPropertyCore* property) {
 | 
					void DBusPropertyGroup::attachProperty(DBusPropertyCore* property) {
 | 
				
			||||||
	this->properties.append(property);
 | 
						this->properties.append(property);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -325,8 +302,6 @@ QString DBusPropertyGroup::propertyString(const DBusPropertyCore* property) cons
 | 
				
			||||||
	return this->toString() % ':' % property->nameRef();
 | 
						return this->toString() % ':' % property->nameRef();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
QString AbstractDBusProperty::toString() const { return this->group->propertyString(this); }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void DBusPropertyGroup::onPropertiesChanged(
 | 
					void DBusPropertyGroup::onPropertiesChanged(
 | 
				
			||||||
    const QString& interfaceName,
 | 
					    const QString& interfaceName,
 | 
				
			||||||
    const QVariantMap& changedProperties,
 | 
					    const QVariantMap& changedProperties,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -104,40 +104,6 @@ private:
 | 
				
			||||||
	friend class DBusPropertyGroup;
 | 
						friend class DBusPropertyGroup;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class AbstractDBusProperty
 | 
					 | 
				
			||||||
    : public QObject
 | 
					 | 
				
			||||||
    , public DBusPropertyCore {
 | 
					 | 
				
			||||||
	Q_OBJECT;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public:
 | 
					 | 
				
			||||||
	explicit AbstractDBusProperty(QString name, bool required, QObject* parent = nullptr)
 | 
					 | 
				
			||||||
	    : QObject(parent)
 | 
					 | 
				
			||||||
	    , required(required)
 | 
					 | 
				
			||||||
	    , mName(std::move(name)) {}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	[[nodiscard]] QString name() const override { return this->mName; };
 | 
					 | 
				
			||||||
	[[nodiscard]] QStringView nameRef() const override { return this->mName; };
 | 
					 | 
				
			||||||
	[[nodiscard]] bool isRequired() const override { return this->required; };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	[[nodiscard]] QString toString() const;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public slots:
 | 
					 | 
				
			||||||
	void update();
 | 
					 | 
				
			||||||
	void write();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
signals:
 | 
					 | 
				
			||||||
	void changed();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
private:
 | 
					 | 
				
			||||||
	bool required : 1;
 | 
					 | 
				
			||||||
	bool mExists : 1 = false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	DBusPropertyGroup* group = nullptr;
 | 
					 | 
				
			||||||
	QString mName;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	friend class DBusPropertyGroup;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Default implementation with no transformation
 | 
					// Default implementation with no transformation
 | 
				
			||||||
template <typename T>
 | 
					template <typename T>
 | 
				
			||||||
struct DBusDataTransform {
 | 
					struct DBusDataTransform {
 | 
				
			||||||
| 
						 | 
					@ -265,7 +231,6 @@ public:
 | 
				
			||||||
	explicit DBusPropertyGroup(QObject* parent): DBusPropertyGroup({}, parent) {}
 | 
						explicit DBusPropertyGroup(QObject* parent): DBusPropertyGroup({}, parent) {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	void setInterface(QDBusAbstractInterface* interface);
 | 
						void setInterface(QDBusAbstractInterface* interface);
 | 
				
			||||||
	void attachProperty(AbstractDBusProperty* property);
 | 
					 | 
				
			||||||
	void attachProperty(DBusPropertyCore* property);
 | 
						void attachProperty(DBusPropertyCore* property);
 | 
				
			||||||
	void updateAllDirect();
 | 
						void updateAllDirect();
 | 
				
			||||||
	void updateAllViaGetAll();
 | 
						void updateAllViaGetAll();
 | 
				
			||||||
| 
						 | 
					@ -297,61 +262,6 @@ private:
 | 
				
			||||||
	friend class AbstractDBusProperty;
 | 
						friend class AbstractDBusProperty;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
template <typename T>
 | 
					 | 
				
			||||||
class DBusProperty: public AbstractDBusProperty {
 | 
					 | 
				
			||||||
public:
 | 
					 | 
				
			||||||
	explicit DBusProperty(
 | 
					 | 
				
			||||||
	    QString name,
 | 
					 | 
				
			||||||
	    T value = T(),
 | 
					 | 
				
			||||||
	    bool required = true,
 | 
					 | 
				
			||||||
	    QObject* parent = nullptr
 | 
					 | 
				
			||||||
	)
 | 
					 | 
				
			||||||
	    : AbstractDBusProperty(std::move(name), required, parent)
 | 
					 | 
				
			||||||
	    , value(std::move(value)) {}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	explicit DBusProperty(
 | 
					 | 
				
			||||||
	    DBusPropertyGroup& group,
 | 
					 | 
				
			||||||
	    QString name,
 | 
					 | 
				
			||||||
	    T value = T(),
 | 
					 | 
				
			||||||
	    bool required = true,
 | 
					 | 
				
			||||||
	    QObject* parent = nullptr
 | 
					 | 
				
			||||||
	)
 | 
					 | 
				
			||||||
	    : DBusProperty(std::move(name), std::move(value), required, parent) {
 | 
					 | 
				
			||||||
		group.attachProperty(this);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	[[nodiscard]] QString valueString() override {
 | 
					 | 
				
			||||||
		QString str;
 | 
					 | 
				
			||||||
		QDebug(&str) << this->value;
 | 
					 | 
				
			||||||
		return str;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	[[nodiscard]] const T& get() const { return this->value; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	void set(T value) {
 | 
					 | 
				
			||||||
		this->value = std::move(value);
 | 
					 | 
				
			||||||
		emit this->changed();
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
protected:
 | 
					 | 
				
			||||||
	QDBusError store(const QVariant& variant) override {
 | 
					 | 
				
			||||||
		auto result = demarshallVariant<T>(variant);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if (result.isValid()) {
 | 
					 | 
				
			||||||
			this->set(std::move(result.value));
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		return result.error;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	QVariant serialize() override { return QVariant::fromValue(this->value); }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
private:
 | 
					 | 
				
			||||||
	T value;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	friend class DBusPropertyCore;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
} // namespace qs::dbus
 | 
					} // namespace qs::dbus
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// NOLINTBEGIN
 | 
					// NOLINTBEGIN
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue