Hi, I do understand nothing. After I read your message, Matthias, I told myself that using QT. QueuedConnection should be the easiest way. Then i wrote self.iface.composerWillBeRemoved.connect(self.refreshList, Qt.QueuedConnection) But each time i delete a composer, QGIS crashes. So I've spent the week on reading about Qt.QueuedConnection and then signal and slots, function partial, QSignalMapper, sender trying to understand how I can catch the sender and manage to update my list. All this without success in the code. And today, I tried again Qt.QueuedConnection, QGIS crashed. Without any changes, I tried again and it worked and continues to work. Adding and deleting composer in the composer manager echoes in my list. I hope it will remain like that.
But now I realize that I didn't take into account the renaming of a composer. :( I think I'd wisely keep the refreshlist button unless someone tells me how I can reach the composer manager dialog programmatically. So that I will try to synchronize my list with its widgetlistitems... Thanks for all... 2015-03-31 14:50 GMT+02:00 Matthias Kuhn <matth...@opengis.ch>: > You should get a parameter containing the composer that is being deleted > with composerWillBeRemoved signal. Try to use that to infer which composer > has been removed. As the signal name indicates, at the time it is emitted, > the composer is not deleted yet. > As an alternative you may make the connection with Qt.QueuedConnection. It > is possible that with this connection style you will receive the signal > after deletion and are able to continue using your current update method. > > Best > Matthias > > > On 03/31/2015 02:04 PM, Junior Delaz wrote: > > Matthias, > Thanks. I just give it a try it and all goes well with composerAdded. > But not really well with composerWillBeRemoved signal. The first deletion > in the composer manager does nothing and deleting a second composer does > remove the first one in my list. and so on... > My update function should be rewritten I think. I'll try to see how > improving it and may (surely) ask again for help (if needed). > > While seeking information about composerWillBeRemoved, I found a > composerRemoved [1] [2] signal (that doesn't appear in the API doc) and > without being able to use it. :( > [1] > https://github.com/qgis/QGIS/blob/master/src/app/composer/qgscomposermanager.cpp > (line 48 > [2] https://github.com/qgis/QGIS/blob/master/src/app/qgisapp.cpp (line > 5601) > > Another thing that may not be related : what the deletePrintComposers > function (https://github.com/qgis/QGIS/blob/master/src/app/qgisapp.cpp > line 5698) is for? > > Thanks again for the clue. > > 2015-03-31 9:43 GMT+02:00 Matthias Kuhn <matth...@opengis.ch>: > >> QgisInterface (iface) has a composerAdded and composerWillBeRemoved >> signal. >> >> Did you try to connect to these? >> >> Best, >> Matthias >> >> >> On 03/31/2015 09:34 AM, Junior wrote: >> >> Hi all, Luca >> Thanks for answering. But i already have an update function that I linked >> to an update list button. I even linked it to the icon on the toolbar so >> that when user calls foreground the dialog it's already updated. >> The case I'd like to manage: user can open plugin dialog and composer >> manager. The two dialogs are visible (to the eyes) even though composer >> manager is the one at foreground. He makes changes and directly clicked on >> the plugin dialog. He should update list but if he forgets and executes, >> this may lead to bug I don't want to / can't yet manage. >> Reason why I want to ensure that list is always up to date when he >> interacts with the dialog >> >> Envoyé depuis mon HTC >> >> ----- Reply message ----- >> De : "Luca Manganelli" <luc...@gmail.com> <luc...@gmail.com> >> Pour : >> Cc : "qgis-u...@lists.osgeo.org" <qgis-u...@lists.osgeo.org> >> <qgis-u...@lists.osgeo.org> <qgis-u...@lists.osgeo.org>, >> "qgis-developer" <qgis-developer@lists.osgeo.org> >> <qgis-developer@lists.osgeo.org> >> Objet : [Qgis-developer] [Qgis-user] Pyqt4 : which signal is sent when >> dialog comes to foreground? >> Date : mar., mars 31, 2015 07:56 >> >> On Mon, Mar 30, 2015 at 6:12 PM, Junior Delaz <del...@gmail.com> >> <del...@gmail.com> wrote: >> > I've read about defining a custom showEvent function but can't understand >> > where to put it and what inside. >> > If somebody can give some tips... >> >> You could add a "Update list" button >> _______________________________________________ >> Qgis-developer mailing >> listQgis-developer@lists.osgeo.orghttp://lists.osgeo.org/mailman/listinfo/qgis-developer >> >> >> >> _______________________________________________ >> Qgis-developer mailing >> listQgis-developer@lists.osgeo.orghttp://lists.osgeo.org/mailman/listinfo/qgis-developer >> >> >> >> _______________________________________________ >> Qgis-developer mailing list >> Qgis-developer@lists.osgeo.org >> http://lists.osgeo.org/mailman/listinfo/qgis-developer >> > > >
_______________________________________________ Qgis-developer mailing list Qgis-developer@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/qgis-developer