[QGIS-Developer] MetaSearch provider connections in master

Tom Kralidis tomkralidis at gmail.com
Mon Nov 13 06:59:03 PST 2017


On Mon, Nov 13, 2017 at 9:18 AM, Alessandro Pasotti <apasotti at gmail.com> wrote:
> On Mon, Nov 13, 2017 at 3:06 PM, Tom Kralidis <tomkralidis at gmail.com> wrote:
>>
>> Hi devs:
>>
>> Given https://issues.qgis.org/issues/17347 I'm working on fixing
>> MetaSearch
>> provider connections in master. The core part of the code is currently at
>> [1]. A
>> standalone example can be found at [2].  Result is that the WMS/WMTS
>> provider
>> opens connecting to the selected WMS/WMTS (good).  When clicking 'Ok',
>> 'Close',
>> or 'Add', the WMS/WMTS layer is added (expecting 'Close' to simply
>> close the dialog
>> and 'Ok' to add the layer and then close).  Finally clicking the 'X'
>> (top right) closes
>> the dialog as expected.
>>
>> - are there other slots to call instead?
>> - should the Data Source Manager be used instead [3]?  Are there plans
>> for providing
>> Python binding to this?
>
>
>
> I can't tell if it's a good idea, but you can definitely add whatever you
> want to the DataSourceManager dialog with plain python:
>
> class ConcreteDataSourceWidget(QgsAbstractDataSourceWidget):
>     pass
>
> class ConcreteSourceSelectProvider(QgsSourceSelectProvider):
>
>     def providerKey(self):
>         return "MyTestProviderKey"
>
>     def text(self):
>         return "MyTestProviderText"
>
>     def icon(self):
>         return QIcon()
>
>     def createDataSourceWidget(self):
>         return ConcreteDataSourceWidget()
>
>     def ordering(self):
>         return 1
>
> registry = QgsSourceSelectProviderRegistry()
> registry.addProvider(ConcreteSourceSelectProvider())
>
> Note that the DataSourceManager dialog is created when QGIS starts, you will
> want to register your provider early in the startup process, for now, there
> is no way to refresh the dialog after it has been constructed.
>

Thanks Alessandro.  Is this example to add a provider type?  MetaSearch
simply wants to open a given existing provider dialog, open based on a given
provider type and let the user interact from there.

..Tom

>
>
>
>>
>>
>> Thanks
>>
>> ..Tom
>>
>> [1]
>> https://github.com/qgis/QGIS/blob/master/python/plugins/MetaSearch/dialogs/maindialog.py#L759-L792
>> [2] https://gist.github.com/tomkralidis/dccb49efa760a585be38ee0c3188b8b3
>> [3] http://qgis.org/api/classQgsDataSourceManagerDialog.html
>> _______________________________________________
>> QGIS-Developer mailing list
>> QGIS-Developer at lists.osgeo.org
>> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>
>
>
>
> --
> Alessandro Pasotti
> w3:   www.itopen.it


More information about the QGIS-Developer mailing list