[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdeedu/kstars/kstars
From: Akarsh Simha <akarshsimha () gmail ! com>
Date: 2011-01-03 10:16:07
Message-ID: 20110103101607.B208EAC8B8 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1211221 by asimha:
Makeshift star hopping feature that is composed of nausea-inducing
code. This is mostly test code that was return to ensure that the
backends were working. Putting it into the git history for safety, in
case I need to reach it again. This code should be entirely replaced
by nice, shiny, clean code for accessing the star hopper backends.
M +2 -0 kspopupmenu.cpp
M +31 -8 skymap.cpp
M +9 -3 skymap.h
M +2 -2 skymapdrawabstract.cpp
M +5 -5 skymapevents.cpp
--- trunk/KDE/kdeedu/kstars/kstars/kspopupmenu.cpp #1211220:1211221
@@ -188,6 +188,8 @@
//FIXME: add key shortcut to menu items properly!
addAction( i18n( "Angular Distance To... [" ), ks->map(),
SLOT( slotBeginAngularDistance() ) );
+ addAction( i18n( "Starhop from here to... " ), ks->map(),
+ SLOT(slotBeginStarHop()) );
//Insert item for Showing details dialog
if ( showDetails )
--- trunk/KDE/kdeedu/kstars/kstars/skymap.cpp #1211220:1211221
@@ -66,6 +66,8 @@
#include "skymapgldraw.h"
#endif
+#include "starhopper.h"
+
#ifdef HAVE_XPLANET
#include <KProcess>
#include <kfiledialog.h>
@@ -148,7 +150,7 @@
SkyMap::SkyMap() :
QGraphicsView( KStars::Instance() ),
- computeSkymap(true), angularDistanceMode(false), scrollCount(0),
+ computeSkymap(true), rulerMode(false), scrollCount(0),
data( KStarsData::Instance() ), pmenu(0),
ClickedObject(0), FocusObject(0), TransientObject(0), m_proj(0)
{
@@ -560,7 +562,16 @@
}
void SkyMap::slotBeginAngularDistance() {
- angularDistanceMode = true;
+ beginRulerMode( false );
+}
+
+void SkyMap::slotBeginStarHop() {
+ beginRulerMode( true );
+}
+
+void SkyMap::beginRulerMode( bool starHopRuler ) {
+ rulerMode = true;
+ starHopDefineMode = starHopRuler;
AngularRuler.clear();
//If the cursor is near a SkyObject, reset the AngularRuler's
@@ -578,8 +589,10 @@
AngularRuler.update( data );
}
-void SkyMap::slotEndAngularDistance() {
- if( angularDistanceMode ) {
+void SkyMap::slotEndRulerMode() {
+ if( !rulerMode )
+ return;
+ if( !starHopDefineMode ) { // Angular Ruler
QString sbMessage;
//If the cursor is near a SkyObject, reset the AngularRuler's
@@ -593,7 +606,7 @@
AngularRuler.setPoint( 1, clickedPoint() );
}
- angularDistanceMode=false;
+ rulerMode=false;
AngularRuler.update( data );
dms angularDistance = AngularRuler.angularSize();
AngularRuler.clear();
@@ -609,10 +622,20 @@
box->adjust();
box->show();
}
+ else { // Star Hop
+ StarHopper hopper;
+ QList<const StarObject *> path = hopper.computePath( *AngularRuler.point( 0 ), \
*AngularRuler.points().last(), 1.0, 9.0 ); // FIXME: Hardcoded FOV and magnitude limits for testing + \
kDebug() << "path count: " << path.count(); + foreach( const StarObject *conststar, path ) {
+
}
+ rulerMode = false;
+ }
-void SkyMap::slotCancelAngularDistance(void) {
- angularDistanceMode=false;
+}
+
+void SkyMap::slotCancelRulerMode(void) {
+ rulerMode = false;
AngularRuler.clear();
}
@@ -1081,7 +1104,7 @@
}
void SkyMap::updateAngleRuler() {
- if( angularDistanceMode && (!pmenu || !pmenu->isVisible()) )
+ if( rulerMode && (!pmenu || !pmenu->isVisible()) )
AngularRuler.setPoint( 1, mousePoint() );
AngularRuler.update( data );
}
--- trunk/KDE/kdeedu/kstars/kstars/skymap.h #1211220:1211221
@@ -430,6 +430,8 @@
* having clicked on the skymap and not having done so */
void slotBeginAngularDistance();
+ void slotBeginStarHop(); // TODO: Add docs
+
// NOTE: This method is draw-backend independent.
/**Computes the angular distance, prints the result in the status
* bar and disables the angular distance measuring mode
@@ -437,11 +439,11 @@
* name of the clicked object plus the angular distance. If
* the user did not clicked on the map, just pressed ], only
* the angular distance is printed */
- void slotEndAngularDistance();
+ void slotEndRulerMode();
/**Disables the angular distance measuring mode. Nothing is printed
* in the status bar */
- void slotCancelAngularDistance();
+ void slotCancelRulerMode();
#ifdef HAVE_OPENGL
void slotToggleGL();
@@ -624,6 +626,9 @@
*/
void zoomOutOrMagStep( const int modifier );
+ void beginRulerMode( bool starHopRuler ); // TODO: Add docs
+
+
#ifdef HAVE_XPLANET
/**
* @short Strart xplanet.
@@ -636,7 +641,8 @@
bool mouseMoveCursor; // true if mouseMoveEvent; needed by setMouseMoveCursor
bool slewing, clockSlewing;
bool computeSkymap; //if false only old pixmap will repainted with bitBlt(), this saves a lot of \
cpu usage
- bool angularDistanceMode;
+ bool rulerMode; // True if we are either looking for angular distance or star hopping directions
+ bool starHopDefineMode; // True only if we are looking for star hopping directions. If false while \
rulerMode is true, it means we are measuring angular distance. FIXME: Find a better way to do this int \
scrollCount; double y0;
--- trunk/KDE/kdeedu/kstars/kstars/skymapdrawabstract.cpp #1211220:1211221
@@ -78,8 +78,8 @@
// certain drawing functions which are implemented in
// SkyMapDrawAbstract. Really, it doesn't draw anything on its
// own.
- if ( m_SkyMap->angularDistanceMode ) {
- m_SkyMap->updateAngleRuler();
+ if ( m_SkyMap->rulerMode ) {
+ updateAngleRuler();
drawAngleRuler( p );
}
}
--- trunk/KDE/kdeedu/kstars/kstars/skymapevents.cpp #1211220:1211221
@@ -216,12 +216,12 @@
break;
case Qt::Key_BracketLeft: // Begin measuring angular distance
- if( !angularDistanceMode )
+ if( !rulerMode )
slotBeginAngularDistance();
break;
case Qt::Key_Escape: // Cancel angular distance measurement
- if( angularDistanceMode )
- slotCancelAngularDistance();
+ if( rulerMode )
+ slotCancelRulerMode();
break;
case Qt::Key_Comma: //advance one step backward in time
case Qt::Key_Less:
@@ -616,9 +616,9 @@
}
break;
case Qt::RightButton:
- if( angularDistanceMode ) {
+ if( rulerMode ) {
// Compute angular distance.
- slotEndAngularDistance();
+ slotEndRulerMode();
} else {
// Show popup menu
if( clickedObject() ) {
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic