Ticket #845 (closed defect: fixed)
QDialog rendering events problems when modified
| Reported by: | dmarkic | Owned by: | somebody |
|---|---|---|---|
| Priority: | shipstopper | Milestone: | 2.1.1 |
| Component: | QControls | Version: | 2.1.0 Stable |
| Keywords: | qdialog,events,actions | Cc: | d@… |
Description
Hello!
I'm using 2.1 version from SVN (I tried original 2.1, same problem).
Short: Every time the QDialog is modified (blnModified === true) it rerenders all the events/actions. Since you're using jQuery's .on() for events, this means that for every ajax call, if QDialog is modified, you register another event. For instance, QDialog_Close event, when you close the dialog, you get n-times the same event called. For simple reproduction of this problem, I've modified the shipped example script (assets/_core/php/examples/other_controls/jq_example.php):
1. Added AjaxAction? to QDialog: QDialog_CloseEvent
2. QDialog_CloseEvent calls method to call QApplication::DisplayAlert?()
3. Modified button_clicked() method, to change the QDialog text (force modification) and open the Dialog.
Every time, the control is modified it will call QDialogGen::GetEndScript?(), which calls parent::GetEndScript?(), which calls GetActionAttributes?() and renders the actions again.
I was hoping to come to a solution, but I just cannot figure it out, how to prevent actions from being rendered.
It's 2.1 problem, since it's working normally in 2.0.2 (but JQUI events are handled differently there).
It's a real show stopper and I hope we can make this work properly.
Any ideas are welcome!
Kind regards,
Dejan Markic

