[Qgis-developer] QBrowser & Customization

Marco Hugentobler marco.hugentobler at sourcepole.ch
Fri May 20 03:36:15 EDT 2011


Hi Radim

Thank you for the nice work. It would be great to have browser and 
customisation in master branch.
Is it possible to bring the layers from the browsers into a running QGIS 
instance (with drag and drop)? I remember you mentioned it in Lisabon but I 
cannot get it to work.

> B1) The customization dialog tree is using Qt designer icons for
> various widgets. It looks nice but it adds 192K to QGIS package. Is it
> acceptable or do you prefer tree without icons?

+1 for icons

> To get
> select widget from main application we added in WMS provider another
> function:
>     QGISEXTERN QgsWMSSourceSelect * selectWidget( QWidget * parent,
> Qt::WFlags fl )

Agreed, it would be good to have that for other providers too

> Currently it is more or less a hack for QgisApp::addWmsLayer(). We
> should probably define some QgsSelect either with methods returning
> URI or better signals for add new layer. Currently it is using
> signals, because WMS selector can add more layers.

I also think it is necessary to work with signals here. Normally, add layer 
dialogs work with QgisApp or QgisInterface to do so, but this is not possible 
from provider lib.

Regards,
Marco



Am Mittwoch, 18. Mai 2011, 11.23:11 schrieb Radim Blazek:
> Hi all,
> we are ready (Martin Dobias and me) to merge browser-and-customization
> branch to master.
> 
> You can get idea about features in that branch from some snapshots:
> https://picasaweb.google.com/radim.blazek/QGISCustomizationQBrowser
> 
> Briefly for people who were not present at last HF:
> 
> Customization support allows users to disable (hide) parts of QGIS UI.
> You can see example of minimal (maximal)  customization of version 1.7
> on the first snapshot. It is possible to disable almost any element of
> UI: menus, sub menus, toolbars, tools, parts of dialogs, docked
> windows and status bar items. UI elements can be switched on/off
> either in tree (second snapshot) or interactively in QGIS application
> using customization select tool and clicking on UI elements.
> Customization is saved in separate settings and can be saved/loaded
> to/from file. There is also support for customized packages. If
> customization file is included in installation package, it is loaded
> the first time QGIS is started.
> 
> The QBrowser is intended to be a geographic data resources browser and
> manager. Now it is implemented as a stand alone application but we
> would like to include it also in QGIS as alternative 'Add layer'
> dialog. Currently it is supported only by ogr, gdal and wms providers.
> At this moment QBrowser allows you to browse file system (where it
> identifies known geographic data) and defined WMS servers (shared with
> QGIS). If you select a layer you can view its metadata, preview and
> attributes (for vectors). It is possible to assign CRS to a layer (if
> supported by provider), create a new shapefile and manage WMS servers.
> 
> 
> We would like to discuss some issues with other developers before the
> merge:
> 
> QBrowser:
> 
> A1) All the data format specific functionality is implemented in
> providers. Each provider which wants to show his data in browser must
> implement 2 additional functions:
>     QGISEXTERN int dataCapabilities ()
>     QGISEXTERN QgsDataItem * dataItem ( QString thePath, QgsDataItem*
> parentItem )
> The dataCapabilities function says what kind of data is supported
> (File,Dir,Database,Net) so that e.g. WMS provider is not called on
> files or dirs. The dataItem() function returns QgsDataItem
> representing either known geographic resources for given file system
> path (gdal, ogr) or top level item (wms). It is important to design
> providers interface well, because it may be implemented also by custom
> providers and we cannot change it easily in future (after release).
> Please look at the QgsDataItem and its children methods and
> implementation.
> 
> A2) To get access from QBrowser to QgsWMSSourceSelect  via
> QgsDataItem, we had to move QgsWMSSourceSelect to wms provider. That
> is beginning of providers specific UI migration to providers, which
> has been discussed already before and generally accepted. To get
> select widget from main application we added in WMS provider another
> function:
>     QGISEXTERN QgsWMSSourceSelect * selectWidget( QWidget * parent,
> Qt::WFlags fl )
> Currently it is more or less a hack for QgisApp::addWmsLayer(). We
> should probably define some QgsSelect either with methods returning
> URI or better signals for add new layer. Currently it is using
> signals, because WMS selector can add more layers.
> 
> Customization:
> 
> B1) The customization dialog tree is using Qt designer icons for
> various widgets. It looks nice but it adds 192K to QGIS package. Is it
> acceptable or do you prefer tree without icons?
> 
> B2) For dialogs, the interactive customization select tool can only be
> activated by shortcut (because the dialogs are modal) which has to be
> defined for main application. We have used Ctrl+M because it is not
> yet used and M is close to right Ctrl. May be we should spare such a
> good key for better occasion?
> 
> Please let us know your opinion or objections.
> 
> Radim
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer


-- 
Dr. Marco Hugentobler
Sourcepole -  Linux & Open Source Solutions
Churerstrasse 22, CH-8808 Pfäffikon SZ, Switzerland
marco.hugentobler at sourcepole.ch http://www.sourcepole.ch
Technical Advisor QGIS Project Steering Committee


More information about the Qgis-developer mailing list