Implement native toolbars on macos on Qt6 to have a modern looking unified toolbars

This commit is contained in:
Luis Ángel San Martín Rodríguez
2025-04-20 09:38:58 +02:00
parent d9b9fda337
commit 3632ebab12
7 changed files with 539 additions and 15 deletions

View File

@ -180,4 +180,29 @@ KDSignalLeadingDebouncer::KDSignalLeadingDebouncer(QObject *parent)
KDSignalLeadingDebouncer::~KDSignalLeadingDebouncer() = default;
KDStringSignalDebouncer::KDStringSignalDebouncer(QObject *parent)
: QObject(parent), m_debouncer(KDGenericSignalThrottler::Kind::Debouncer,
KDGenericSignalThrottler::EmissionPolicy::Trailing,
parent)
{
connect(&m_debouncer, &KDGenericSignalThrottler::triggered,
this, [=] {
emit triggered(this->value);
});
}
void KDStringSignalDebouncer::setTimeout(int msec) {
m_debouncer.setTimeout(msec);
}
int KDStringSignalDebouncer::timeout() const {
return m_debouncer.timeout();
}
void KDStringSignalDebouncer::throttle(QString value) {
this->value = value;
m_debouncer.throttle();
}
} // namespace KDToolBox

View File

@ -125,6 +125,26 @@ public:
~KDSignalLeadingDebouncer() override;
};
class KDStringSignalDebouncer : public QObject {
Q_OBJECT
public:
explicit KDStringSignalDebouncer(QObject *parent = nullptr);
void setTimeout(int msec);
int timeout() const;
public slots:
void throttle(QString value);
signals:
void triggered(QString value);
private:
QString value;
KDGenericSignalThrottler m_debouncer;
};
} // namespace KDToolBox
#endif // KDSIGNALTHROTTLER_H