ViewMenu* menu = new ViewMenu(this);
    menu->move((width()-menu->width())/2, (height()-menu->height())/2);
    connect(menu, SIGNAL(mapRequested()), SLOT(showMapView()));
    connect(menu, SIGNAL(gpsRequested()), SLOT(showGpsView()));
    menu->exec();
}

void MainWindow::updateGpsPosition(qreal latitude, qreal longitude, QDateTime time, qreal altitude, qreal speed, qreal heading)
{
    Q_UNUSED(heading)
    if (m_gpsview->getGpsDevice()) {
        Coord gpsCoord(longitude,latitude);
        CoordBox vp = m_mapView->viewport();
        qreal lonDiff = vp.lonDiff();
        qreal latDiff = vp.latDiff();
        QRectF vpr = vp.adjusted(lonDiff / 4, -latDiff / 4, -lonDiff / 4, latDiff / 4);
        if (!vpr.contains(gpsCoord)) {
            m_mapView->setCenter(gpsCoord, m_mapView->rect());
            m_mapView->invalidate(true, true);
        }

//        if (ui->gpsRecordAction->isChecked() && !ui->gpsPauseAction->isChecked()) {
//            Node* pt = g_backend.allocNode(gpsRecLayer, gpsCoord);
//            pt->setTime(time);
//            pt->setElevation(altitude);
//            pt->setSpeed(speed);
//            gpsRecLayer->add(pt);
//            curGpsTrackSegment->add(pt);
//            m_mapView->invalidate(true, false);
//        }
    }