Suggested fix for 0018683 that doesn't result in call to .paint routines.
Original Reporter info from Mantis: djenkins @dfjenkins
-
Reporter name: David Jenkins
Original Reporter info from Mantis: djenkins @dfjenkins
- Reporter name: David Jenkins
Description:
The fix for 18683 was to add a call to .showMessage('') so that temp messages were cleared. This seems to work fine for the suggested use cases. However, it also results in invalidate and paint calls that wouldn't happen otherwise. These calls to paint cause problems for our app when they happen in the middle of calculations for the data that will be displayed i.e. the paint tries to paint objects that haven't been created yet and a crash occurs.
The qt 4.8 documentation says that QStatusBar.clearMessage() is intended for clearing temp messages. Replacing .showMessage('') in TQtWSSatusBar.RecreatePanels() with QSatusBar_clearMessage(QStatusBarH(Widget.Widget)) will clear out the message without causing a call to invalidate and paint.
Suggest switching to this for a solution to 0018683
Steps to reproduce:
The steps in 0018683 still will reproduce the error (without the showMessage('') fix). I've also attached a project to this Mantis that will reproduce the problem. Clicking the button in the project changes the state of SimplePanel and without a fix the SimpleText Value displayed will not change. With either the current 18683 fix or the suggested fix the SimpleText Value will change.
Mantis conversion info:
- Mantis ID: 28307
- OS: Linux
- Platform: Qt
- Version: 1.4
- Fixed in revision: 49361 (#04bb74e7)