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
|
||||
options:NSKeyValueObservingOptionNew context:callback.get()];
|
||||
[object addObserver:observer forKeyPath:keyPath options:options context:callback.get()];
|
||||
}
|
||||
|
||||
void QMacKeyValueObserver::removeObserver() {
|
||||
|
@ -350,8 +350,12 @@ public:
|
||||
QMacKeyValueObserver() {}
|
||||
|
||||
// Note: QMacKeyValueObserver must not outlive the object observed!
|
||||
QMacKeyValueObserver(id object, NSString *keyPath, Callback callback)
|
||||
: object(object), keyPath(keyPath), callback(new Callback(callback)) { addObserver(); }
|
||||
QMacKeyValueObserver(id object, NSString *keyPath, Callback callback,
|
||||
NSKeyValueObservingOptions options = NSKeyValueObservingOptionNew)
|
||||
: object(object), keyPath(keyPath), callback(new Callback(callback))
|
||||
{
|
||||
addObserver(options);
|
||||
}
|
||||
|
||||
QMacKeyValueObserver(const QMacKeyValueObserver &other)
|
||||
: QMacKeyValueObserver(other.object, other.keyPath, *other.callback.get()) {}
|
||||
@ -381,7 +385,7 @@ private:
|
||||
std::swap(first.callback, second.callback);
|
||||
}
|
||||
|
||||
void addObserver();
|
||||
void addObserver(NSKeyValueObservingOptions options);
|
||||
|
||||
id object = nil;
|
||||
NSString *keyPath = nullptr;
|
||||
|
Loading…
x
Reference in New Issue
Block a user