[Kst] kst_hfi_calib_branch: kdeextragear-2/kst/kst

George Staikos staikos at kde.org
Mon Nov 8 12:55:59 CET 2004


Thanks!  We'll test this later today hopefully and I'll get back to you before 
the end of the day here.

By the way, to all developers, please don't make commits to the hfi_calib 
branch because this is in use in production here.  I need to test each commit 
locally before it gets propagated to these machines.

On Sunday 07 November 2004 18:37, Andrew Walker wrote:
> CVS commit by arwalker:
>
> Always use 0 or 10 minor ticks for default value for minor ticks when in
> log mode.
>
> If you are in log mode and the data range is too small (i.e. log(range) <
> 2) then you really shouldn't be in log mode. Under these conditions you can
> either give minor ticks at regular intervals which are seemingly random
> numbers, or minor ticks at irrgeular intervals which are round numbers.
> Neither is very satisfactory. As a result the current behaviour has been
> left unchanged.
>
> Also, fixed a problem where some major ticks were not displayed in log
> mode.
>
> Do we want to check this into HEAD?
>
> CCMAIL: 92855 at bugs.kde.org
>
>
>   M +38 -30    kst2dplot.cpp   1.299.2.1
>
>
> --- kdeextragear-2/kst/kst/kst2dplot.cpp  #1.299:1.299.2.1
> @@ -1589,6 +1589,6 @@ void Kst2DPlot::genAxisTickLabels(QPaint
>
>    setTicks(tp.tick, tp.org, Max*scale, Min*scale, bLog, isX);
> -  tp.tick/=scale;
> -  tp.org/=scale;
> +  tp.tick /= scale;
> +  tp.org  /= scale;
>
>    tp.iLo = (int)((Min-tp.org)/tp.tick);
> @@ -2455,16 +2455,8 @@ void Kst2DPlot::setTicks(double& tick, d
>    int majorDensity = isX ? _xMajorTicks : _yMajorTicks;
>
> -  if (is_log && max - min < 11 && max - min > 1) {
> -    tick = 1.0;
> -  } else {
> -    //
> -    // determine tick interval...
> -    //
> -    St = (max - min) / (double)majorDensity;
> -    Exp = pow(10.0, floor(log10(St)));
> -
>      //
>      // check for hysteresis of y-axis tick spacing...
>      //
> +  St = (max - min) / (double)majorDensity;
>      if (!isX && is_log == _isLogLast && _stLast != 0.0 &&
>          St/_stLast < TICK_HYSTERESIS_FACTOR &&
> @@ -2473,5 +2465,18 @@ void Kst2DPlot::setTicks(double& tick, d
>        tick = _tickYLast;
>        auto_tick = _autoTickYLast;
> +  } else if (is_log) {
> +    if (max - min <= (double)majorDensity && max - min > 1.5) {
> +      auto_tick = 9;
> +      tick = 1.0;
> +    } else if (max - min >= (double)majorDensity) {
> +      auto_tick = 0;
> +      tick = floor((max - min) / (double)majorDensity);
> +      if (tick == 1.0) {
> +        auto_tick = 9;
> +      }
>      } else {
> +      auto_tick = 0;
> +      Exp = pow(10.0, floor(log10(St)));
> +
>        tick = ticks[0] * Exp;
>        for (int i=1; i<iNumTicks; i++) {
> @@ -2480,15 +2485,19 @@ void Kst2DPlot::setTicks(double& tick, d
>          }
>        }
> -      if (tick == 2.0*Exp || tick == 4.0*Exp) {
> -        auto_tick = 4;
>        }
> +  } else {
> +    //
> +    // determine tick interval...
> +    //
> +    Exp = pow(10.0, floor(log10(St)));
> +
> +    tick = ticks[0] * Exp;
> +    for (int i=1; i<iNumTicks; i++) {
> +      if (fabs((ticks[i] * Exp) - St) < fabs(tick - St)) {
> +        tick = ticks[i] * Exp;
>      }
>    }
> -
> -  if (is_log) {
> -    if (max - min > 50.0) {
> -      auto_tick = 1;
> -    } else if (max - min > 20.0) {
> -      auto_tick /= 2;
> +    if (tick == 2.0*Exp || tick == 4.0*Exp) {
> +      auto_tick = 4;
>      }
>    }
> @@ -5571,6 +5580,5 @@ void Kst2DPlot::plotAxes(QPainter& p, QR
>    //
>    if (_xLog) {
> -    i = (int)floor((double)_xMinorTicks*
> -                   (xleft_bdr_px - 1.0 - x_orig_px)/xtick_px);
> +    i = (int)floor((double)_xMajorTicks*(xleft_bdr_px - 1.0 -
> x_orig_px)/xtick_px); for (;xtick_px * i + x_orig_px < x_px - xright_bdr_px
> + 1; i++) { //
> @@ -5639,5 +5647,5 @@ void Kst2DPlot::plotAxes(QPainter& p, QR
>    //
>    if (_yLog) {
> -    i = (int)floor( (double)_yMinorTicks * ( ytop_bdr_px - 1.0 - y_orig_px
> ) / ytick_px ); +    i = (int)floor( (double)_yMajorTicks * ( ytop_bdr_px -
> 1.0 - y_orig_px ) / ytick_px ); for (; ytick_px * i + y_orig_px < y_px -
> ybot_bdr_px + 1; i++) { //
>
>
> _______________________________________________
> Kst mailing list
> Kst at kde.org
> https://mail.kde.org/mailman/listinfo/kst

-- 
George Staikos
KDE Developer				http://www.kde.org/
Staikos Computing Services Inc.		http://www.staikos.net/



More information about the Kst mailing list