X-Git-Url: http://git.maemo.org/git/?p=speedfreak;a=blobdiff_plain;f=Client%2Froutedialog.cpp;h=e51d8d08eb7c2297285608d74345b24d3d98d3c3;hp=0fc2dcf42eca2508b45a65854aa3a9225a5ddff5;hb=a12bb043dbe7ecff8de963347e1ca1a947e72429;hpb=f31a65d2249d6ddf024f9427e2036e2565ed747b diff --git a/Client/routedialog.cpp b/Client/routedialog.cpp index 0fc2dcf..e51d8d0 100644 --- a/Client/routedialog.cpp +++ b/Client/routedialog.cpp @@ -3,8 +3,8 @@ * * @author Olavi Pulkkinen * @author Toni Jussila - * @copyright (c) 2010 Speed Freak team - * @license http://opensource.org/licenses/gpl-license.php GNU Public License + * @copyright (c) 2010 Speed Freak team + * @license http://opensource.org/licenses/gpl-license.php GNU Public License */ #include "routedialog.h" @@ -17,8 +17,9 @@ #include #include #include +#include -/* +/** * Vector class. * In starting Qt 4.6 there is QVector3D. * Later (updating Qt version) this class can be removed. @@ -141,7 +142,8 @@ void setFromPoint( Viewing *v); void transformseg( Viewing *v, Vector *v1, Vector *v2, int *xscreen1, int *yscreen1, int *xscreen2, int *yscreen2 ); #define R 6378.140 // The radius of the earth by kilometers -/* + +/** * count distance of two points (defined by longitude & latitude) * on the surface of the earth. */ @@ -164,33 +166,44 @@ qreal countDistance(Vector *p1, Vector *p2) return R*c; // Return distance in kilometers } +/** + * Constructor of this class. + */ RouteDialog::RouteDialog(QWidget *parent) : - QDialog(parent), - ui(new Ui::RouteDialog) + QDialog(parent), ui(new Ui::RouteDialog) { + qDebug() << "__RouteDialog"; ui->setupUi(this); this->setWindowTitle("Route"); left = 5; top = 5; right = 495; bottom = 295; // Limits in screen coordinates - //Button settings + // Button settings ui->sendPushButton->setAutoFillBackground(true); ui->sendPushButton->setStyleSheet("background-color: rgb(0, 0, 0); color: rgb(255, 255, 255)"); ui->newPushButton->setAutoFillBackground(true); ui->newPushButton->setStyleSheet("background-color: rgb(0, 0, 0); color: rgb(255, 255, 255)"); - // Send rout to server button disable/enable. - ui->sendPushButton->setEnabled(false); - if (loginSaved()) - { - ui->sendPushButton->setEnabled(true); - } + // Clear labels + ui->labelInfoToUser->setText(""); + ui->speedValueLabel->setText(""); + + // Check login + checkLogin(); } +/** + * Destructor of this class. + */ RouteDialog::~RouteDialog() { - delete ui; + qDebug() << "__~RouteDialog"; + if(ui) + delete ui; } +/** + * + */ void RouteDialog::changeEvent(QEvent *e) { QDialog::changeEvent(e); @@ -202,24 +215,43 @@ void RouteDialog::changeEvent(QEvent *e) break; } } + +/** + * + */ int RouteDialog::getLeft() { return left; } + +/** + * + */ int RouteDialog::getRight() { return right; } + +/** + * + */ int RouteDialog::getTop() { return top; } + +/** + * + */ int RouteDialog::getBottom() { return bottom; } -void drawFlag( RouteDialog *rD, QPainter *p, int x, int y) +/** + * + */ +void drawFlag( RouteDialog *rD, QPainter *p, int x, int y, QString startFinish) { /*QPolygon pg; @@ -237,6 +269,9 @@ void drawFlag( RouteDialog *rD, QPainter *p, int x, int y) p->drawLine( x, y-25, x+10, y-20); p->drawLine( x+10, y-20, x, y-15); p->drawLine( x, y-15, x, y-25); + + // Draw start or finish + p->drawText(x+10, y, startFinish); } else { @@ -244,8 +279,10 @@ void drawFlag( RouteDialog *rD, QPainter *p, int x, int y) p->drawLine( x, y-25, x-10, y-20); p->drawLine( x-10, y-20, x, y-15); p->drawLine( x, y-15, x, y-25); - } + // Draw start or finish + p->drawText(x+10, y, startFinish); + } } else if (y <= (rD->getTop() + 25)) { @@ -257,6 +294,9 @@ void drawFlag( RouteDialog *rD, QPainter *p, int x, int y) p->drawLine( x, y+25, x+10, y+20); p->drawLine( x+10, y+20, x, y+15); p->drawLine( x, y+15, x, y+25); + + // Draw start or finish + p->drawText(x+10, y+15, startFinish); } else { @@ -264,6 +304,9 @@ void drawFlag( RouteDialog *rD, QPainter *p, int x, int y) p->drawLine( x, y+25, x-10, y+20); p->drawLine( x-10, y+20, x, y+15); p->drawLine( x, y+15, x, y+25); + + // Draw start or finish + p->drawText(x+10, y+15, startFinish); } } //p->drawPolygon(); @@ -280,6 +323,9 @@ void drawFlag( RouteDialog *rD, QPainter *p, int x, int y) /* */ void RouteDialog::paintEvent(QPaintEvent *) { + // Check login + checkLogin(); + int type = 0; // 0 for 2d, 1 for 3d int startx, starty; // Starting point of the route int i, maxi; @@ -287,6 +333,7 @@ void RouteDialog::paintEvent(QPaintEvent *) int x1Screen, y1Screen, x2Screen, y2Screen; Vector v1, v2; QPainter painter(this); + int startStop = 0; painter.setRenderHint(QPainter::Antialiasing, true); painter.setPen(QPen((Qt::white),2)); @@ -328,7 +375,7 @@ void RouteDialog::paintEvent(QPaintEvent *) // Starting point startx = x1Screen; starty = y1Screen; // painter.drawEllipse( x1Screen-5, y1Screen-5, 10, 10); - drawFlag( this, &painter, x1Screen , y1Screen); + drawFlag( this, &painter, x1Screen, y1Screen, "Start" ); } painter.drawLine( x1Screen, y1Screen, x2Screen, y2Screen); } @@ -336,7 +383,7 @@ void RouteDialog::paintEvent(QPaintEvent *) if (x2Screen != startx || y2Screen != starty) { //painter.drawEllipse( x2Screen-5, y2Screen-5, 10, 10); - drawFlag( this, &painter,x2Screen, y2Screen ); + drawFlag( this, &painter, x2Screen, y2Screen, "Finish" ); } { @@ -361,16 +408,21 @@ void RouteDialog::paintEvent(QPaintEvent *) // Show max velocity point by yellow circle painter.drawEllipse( x1Screen-5, y1Screen-5, 10, 10); + painter.drawEllipse( 650, 225, 10, 10); QString jono; //jono = QString("%1 km/h").arg(maxv); - jono.sprintf("%.1f km/h", maxv); + jono.sprintf("%.1f km/h", maxv); // Show only 1 decimal ui->speedValueLabel->setText(jono); } } +/** + * + */ bool RouteDialog::readRouteFromFile( QString &routeFile) { + QString rFile = routeFile; //Not used Vector temp; QString rivi; QFile file; @@ -500,7 +552,7 @@ bool RouteDialog::readRouteFromFile( QString &routeFile) return true; } -/* +/** * Find out data range for x-, y- and z-coordinates */ void dataMinMax( void) @@ -555,7 +607,7 @@ void dataMinMax( void) //QMessageBox::about(0,"Tark", jono); } -/* +/** * Setting the point where the viewed object is. In the middle of datapoints. */ void setAtPoint( Viewing *v) @@ -579,7 +631,7 @@ void setAtPoint( Viewing *v) * */ } -/* +/** * Setting the point where the object is viewed by eye. */ void setFromPoint( Viewing *v) @@ -612,7 +664,8 @@ void setFromPoint( Viewing *v) #define RIGHTEDGE 0x02 #define BOTTOMEDGE 0x04 #define TOPEDGE 0x08 -/* + +/** * Returns a code specifying which edge in the viewing pyramid was crossed. * There may be more than one. */ @@ -629,7 +682,7 @@ int code( qreal x, qreal y, qreal z) return c; } -/* +/** * Converts clipped world coordinates to screen coordinates. */ void WORLDtoSCREEN( qreal xWorld, qreal yWorld, int *xScreen, int *yScreen) @@ -638,7 +691,7 @@ void WORLDtoSCREEN( qreal xWorld, qreal yWorld, int *xScreen, int *yScreen) *yScreen = (int) (c*yWorld+d); } -/* +/** * Clips the line segment in three-dimensional coordinates to the * viewing pyramid. */ @@ -713,7 +766,7 @@ void clip3d( qreal x1, qreal y1, qreal z1, qreal x2, qreal y2, qreal z2, int *xs //Now ready to draw line( xscreen1, yscreen1, xscreen2, yscreen2); } -/* +/** * Transform the segment connecting the two vectors into the viewing plane. * clip3d() clips the line if needed. */ @@ -738,17 +791,52 @@ void transformseg( Viewing *v, Vector *v1, Vector *v2, int *xscreen1, int *yscre clip3d(x1,y1,z1,x2,y2,z2, xscreen1, yscreen1, xscreen2, yscreen2 ); } +/** + * This slot function is called when ever new push button clicked. + */ void RouteDialog::on_newPushButton_clicked() { close(); // go back to previous dialog } +/** + * This slot function is called when ever send push button clicked. + */ void RouteDialog::on_sendPushButton_clicked() { + ui->sendPushButton->setEnabled(false); emit sendroute(); } +/** + * This function is set info text to user. + */ void RouteDialog::setLabelInfoToUser(QString infoText) { this->ui->labelInfoToUser->setText(infoText); } + +/** + * This function enable send server button. + */ +void RouteDialog::setSendServerButtonEnabled() +{ + ui->sendPushButton->setEnabled(true); +} + +/** + * This function check login and set send route to server button disabled/enabled. + */ +void RouteDialog::checkLogin() +{ + if (loginSaved()) + { + ui->sendPushButton->setEnabled(true); + ui->labelInfoToUser->setText(""); + } + else + { + ui->sendPushButton->setEnabled(false); + ui->labelInfoToUser->setText("You're not logged! Please register or log in."); + } +}