[Qgis-developer] keeping layer settings tab between layers and qgis sessions can cause problems when histogram tab is the last viewed

Nathan Woodrow madmanwoo at gmail.com
Wed May 9 17:53:49 PDT 2012


Generally it is good practice that the UI remembers where the user left it
last time.  In this case this has a bad user experience because of the slow
loading.  My suggestion would be to just add a "Load histogram" button in
the histogram tab that loads the histogram rather then when the tab is
switched to.  This way even if the histogram tab is remembered as the
current tab it will load like normal and user has to click "Load histogram"
to show it.

- Nathan

On Thu, May 10, 2012 at 10:49 AM, Etienne Tourigny
<etourigny.dev at gmail.com>wrote:

> I agree that this should not happen, should the default be always open
> the first tab, or only when the histogram tab was previously selected?
>
> Unfortunately there is no function in the provider API to know if
> there is a cached histogram, so it would be better to never allow the
> properties window to start on the histogram tab.
>
> I have implemented this in a branch of mine to improve the histogram
> tab, here is a snippet:
>
> -  tabBar->setCurrentIndex( settings.value(
> "/Windows/RasterLayerProperties/row" ).toInt() );
> +  int currentTabIndex = settings.value(
> "/Windows/RasterLayerProperties/row" ).toInt();
> +  // if current tab is disabled, use first tab
> +  if ( ! tabBar->widget( currentTabIndex )->isEnabled() )
> +    currentTabIndex = 0;
> +  // if current tab is histogram, use first tab (to avoid long
> histogram queries)
> +  // there is currently no way to know if there ia a cached histogram
>   int myHistogramTab = 6;
> -  if ( tabBar->currentIndex() == myHistogramTab )
> -  {
> -    refreshHistogram();
> -  }
> +  if ( currentTabIndex == myHistogramTab )
> +    currentTabIndex = 0;
> +  tabBar->setCurrentIndex( currentTabIndex );
>
>
> Etienne
>
> On Mon, May 7, 2012 at 10:15 AM, G. Allegri <giohappy at gmail.com> wrote:
> > A complex object to say something simple :(
> > When a user opens a layer settings window and hits a tab, the same tab
> index
> > is kept when opening another layer settings, or in a new qgis sessions.
> > I had a small raster layer, and I opened the histogram tab.
> > The today I've opened a big raster layer, and opening the layer settings
> > caused my pc running and running, till a complete qgis crash.
> > I supposed it was something with the settings, so I opened the smalle
> > raster, changed the tab to Style, then I was able to open the large
> raster
> > settings
> > It's corner case probably, and qgis shouldn't crash with huge raster
> > histograms. Anyway, opening the layer settings to the frist tab would
> avoid
> > heartbreaks :)
> >
> > giovanni
> >
> > _______________________________________________
> > Qgis-developer mailing list
> > Qgis-developer at lists.osgeo.org
> > http://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/20120510/4d8e4938/attachment.html


More information about the Qgis-developer mailing list