[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdeedu/kstars/kstars/tools
From: Alexey Khudyakov <alexey.skladnoy () gmail ! com>
Date: 2011-02-25 12:26:52
Message-ID: 20110225122652.A2EF3AC8C5 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1222702 by khudyakov:
Refactor addition of labels
M +23 -25 skycalendar.cpp
--- trunk/KDE/kdeedu/kstars/kstars/tools/skycalendar.cpp #1222701:1222702
@@ -44,7 +44,18 @@
h -= 24.0;
return h;
}
+
+ // Check that axis has been crossed
+ inline bool isAxisCrossed(const QVector<QPointF>& vec, int i) {
+ return i > 0 && vec.at(i-1).x() * vec.at(i).x() <= 0;
}
+ // Check that we are at maximum
+ inline bool isAtExtremum(const QVector<QPointF>& vec, int i) {
+ return
+ i > 0 && i < vec.size() - 1 &&
+ (vec.at(i-1).x() - vec.at(i).x()) * (vec.at(i).x() - \
vec.at(i+1).x()) < 0; + }
+}
SkyCalendarUI::SkyCalendarUI( QWidget *parent )
: QFrame( parent )
@@ -186,32 +197,19 @@
scUI->CalendarView->update();
}
- bool setLabel = false;
- bool riseLabel = false;
- bool transitLabel = false;
- if( i > 0 ) {
- // Draw a label when a line crosses the Y-Axis
- if( vRise.at( i - 1 ).x() * vRise.at( i ).x() <= 0 )
- riseLabel = true;
- if( vSet.at( i - 1 ).x() * vSet.at( i ).x() <= 0 )
- setLabel = true;
- if( vTransit.at( i - 1 ).x() * vTransit.at( i ).x() <= 0 )
- transitLabel = true;
-
- // Draw a label when a line reaches a maximum / minimum
- if( i < vRise.size() - 1 ) {
- if( ( vRise.at( i - 1 ).x() - vRise.at( i ).x() ) * ( \
vRise.at( i ).x() - vRise.at( i + 1 ).x() ) < 0 )
- riseLabel = true;
- if( ( vSet.at( i - 1 ).x() - vSet.at( i ).x() ) * ( \
vSet.at( i ).x() - vSet.at( i + 1 ).x() ) < 0 )
- setLabel = true;
- if( ( vTransit.at( i - 1 ).x() - vTransit.at( i ).x() ) * \
( vTransit.at( i ).x() - vTransit.at( i + 1 ).x() ) < 0 )
- transitLabel = true;
+ bool riseLabel = isAxisCrossed(vRise, i) || \
isAtExtremum(vRise, i); + bool transitLabel = \
isAxisCrossed(vTransit, i) || isAtExtremum(vTransit, i); + bool \
setLabel = isAxisCrossed(vSet, i) || isAtExtremum(vSet, i); + \
oRise->addPoint( + vRise.at(i),
+ riseLabel ? i18nc( "A planet rises from the horizon", "%1 \
rises", ksp->name() ) : QString() ); + oSet->addPoint(
+ vSet.at(i),
+ setLabel ? i18nc( "A planet sets from the horizon", "%1 sets", \
ksp->name() ) : QString() ); + oTransit->addPoint(
+ vTransit.at(i),
+ transitLabel ? i18nc( "A planet transits across the meridian", \
"%1 transits", ksp->name() ) : QString() ); }
- }
- oRise->addPoint( vRise.at(i), riseLabel ? i18nc( "A planet rises \
from the horizon", "%1 rises", ksp->name() ) : QString() );
- oSet->addPoint( vSet.at(i), setLabel ? i18nc( "A planet sets from \
the horizon", "%1 sets", ksp->name() ) : QString() );
- oTransit->addPoint( vTransit.at(i), transitLabel ? i18nc( "A \
planet transits across the meridian", "%1 transits", ksp->name() ) : \
QString() );
- }
scUI->CalendarView->addPlotObject( oRise );
scUI->CalendarView->addPlotObject( oSet );
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic