macOS: Allow overriding NSKeyValueObservingOptions for QMacKeyValueObserver
Change-Id: I6dc0f7c542ccfb768c1cd8688168c415e2c8a087 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This commit is contained in:
parent
de775f2e62
commit
92563a2453
@ -514,10 +514,9 @@ Q_CONSTRUCTOR_FUNCTION(qt_apple_check_os_version);
|
|||||||
|
|
||||||
// -------------------------------------------------------------------------
|
// -------------------------------------------------------------------------
|
||||||
|
|
||||||
void QMacKeyValueObserver::addObserver()
|
void QMacKeyValueObserver::addObserver(NSKeyValueObservingOptions options)
|
||||||
{
|
{
|
||||||
[object addObserver:observer forKeyPath:keyPath
|
[object addObserver:observer forKeyPath:keyPath options:options context:callback.get()];
|
||||||
options:NSKeyValueObservingOptionNew context:callback.get()];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void QMacKeyValueObserver::removeObserver() {
|
void QMacKeyValueObserver::removeObserver() {
|
||||||
|
@ -350,8 +350,12 @@ public:
|
|||||||
QMacKeyValueObserver() {}
|
QMacKeyValueObserver() {}
|
||||||
|
|
||||||
// Note: QMacKeyValueObserver must not outlive the object observed!
|
// Note: QMacKeyValueObserver must not outlive the object observed!
|
||||||
QMacKeyValueObserver(id object, NSString *keyPath, Callback callback)
|
QMacKeyValueObserver(id object, NSString *keyPath, Callback callback,
|
||||||
: object(object), keyPath(keyPath), callback(new Callback(callback)) { addObserver(); }
|
NSKeyValueObservingOptions options = NSKeyValueObservingOptionNew)
|
||||||
|
: object(object), keyPath(keyPath), callback(new Callback(callback))
|
||||||
|
{
|
||||||
|
addObserver(options);
|
||||||
|
}
|
||||||
|
|
||||||
QMacKeyValueObserver(const QMacKeyValueObserver &other)
|
QMacKeyValueObserver(const QMacKeyValueObserver &other)
|
||||||
: QMacKeyValueObserver(other.object, other.keyPath, *other.callback.get()) {}
|
: QMacKeyValueObserver(other.object, other.keyPath, *other.callback.get()) {}
|
||||||
@ -381,7 +385,7 @@ private:
|
|||||||
std::swap(first.callback, second.callback);
|
std::swap(first.callback, second.callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
void addObserver();
|
void addObserver(NSKeyValueObservingOptions options);
|
||||||
|
|
||||||
id object = nil;
|
id object = nil;
|
||||||
NSString *keyPath = nullptr;
|
NSString *keyPath = nullptr;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user