[Qgis-developer] Re : [Qgis-user] Pyqt4 : which signal is sent when dialog comes to foreground?

Junior Delaz delazj at gmail.com
Sun Apr 5 15:33:04 PDT 2015


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 <matthias at 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 <matthias at 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" <luca76 at gmail.com> <luca76 at gmail.com>
>> Pour :
>> Cc : "qgis-user at lists.osgeo.org" <qgis-user at lists.osgeo.org>
>> <qgis-user at lists.osgeo.org> <qgis-user at lists.osgeo.org>,
>> "qgis-developer" <qgis-developer at lists.osgeo.org>
>> <qgis-developer at 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 <delazj at gmail.com> <delazj at 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 at lists.osgeo.orghttp://lists.osgeo.org/mailman/listinfo/qgis-developer
>>
>>
>>
>> _______________________________________________
>> Qgis-developer mailing listQgis-developer at lists.osgeo.orghttp://lists.osgeo.org/mailman/listinfo/qgis-developer
>>
>>
>>
>> _______________________________________________
>> Qgis-developer mailing list
>> Qgis-developer at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20150406/6232c6f5/attachment.html>


More information about the Qgis-developer mailing list