Details
-
Change Request
-
Resolution: Unresolved
-
P2: Important
-
None
-
None
Description
QMessageService::cancel() does not cancel the previous asynchronous operation.
This is a known and documented limitation of the QMessageService class.
The QMessageService documentation states:
"A client may attempt to cancel a requested operation after it has been initiated. The cancel() slot is provided for this purpose. Cancelation is not guaranteed to succeed, and is not possible on all platforms."
Steps to reproduce:
1) Invoke an asynchronous method say QMessageService::send() or QMessageService::queryMessages()
2) Immediately after that invoke QMessageService::cancel()
Expectation:
If called on send, cancel should actually cancel the sending of the message & corresponding signal should not be emitted.
If called on queryMessages, query operation should be canceled and messagesFound signal should not be emitted.
Actual behaviour:
In case of send, message is being sent
In case of queryMessages, even after cancelling the request messagesFound is being emitted.