diff options
author | Alex Zolotarev <deathbaba@gmail.com> | 2011-10-21 19:39:00 +0400 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 01:26:32 +0300 |
commit | 946bf7b727cce9dbc8a0c1b0f7f7ddec2d2d16cb (patch) | |
tree | 1750b08be8882e1d656ca42253085b3fc7909230 /qt/mainwindow.cpp | |
parent | 43a0bd87f5856a303d552ca895dd0fea72a1ecda (diff) |
[qt][ios] Refactored location manager
Diffstat (limited to 'qt/mainwindow.cpp')
-rw-r--r-- | qt/mainwindow.cpp | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/qt/mainwindow.cpp b/qt/mainwindow.cpp index 1afa271fc9..76fe7497f7 100644 --- a/qt/mainwindow.cpp +++ b/qt/mainwindow.cpp @@ -43,6 +43,7 @@ MainWindow::MainWindow() #endif // NO_DOWNLOADER { m_pDrawWidget = new DrawWidget(this, m_storage); + m_locationService.reset(CreateDesktopLocationService(*this)); CreateNavigationBar(); CreateSearchBarAndPanel(); @@ -301,10 +302,27 @@ void MainWindow::OnAbout() dlg.exec(); } -void MainWindow::OnLocationFound() +void MainWindow::OnLocationStatusChanged(location::TLocationStatus newStatus) { - m_pMyPositionAction->setIcon(QIcon(":/navig64/location.png")); - m_pMyPositionAction->setToolTip(tr("My Position")); + switch (newStatus) + { + case location::EFirstEvent: + m_pMyPositionAction->setIcon(QIcon(":/navig64/location.png")); + m_pMyPositionAction->setToolTip(tr("My Position")); + break; + case location::EDisabledByUser: + case location::ENotSupported: + m_pMyPositionAction->setChecked(false); + break; + default: + break; + } + m_pDrawWidget->Framework().OnLocationStatusChanged(newStatus); +} + +void MainWindow::OnGpsUpdated(location::GpsInfo const & info) +{ + m_pDrawWidget->Framework().OnGpsUpdate(info); } void MainWindow::OnMyPosition() @@ -313,13 +331,13 @@ void MainWindow::OnMyPosition() { m_pMyPositionAction->setIcon(QIcon(":/navig64/location-search.png")); m_pMyPositionAction->setToolTip(tr("Looking for position...")); - m_pDrawWidget->OnEnableMyPosition(bind(&MainWindow::OnLocationFound, this)); + m_locationService->Start(); } else { m_pMyPositionAction->setIcon(QIcon(":/navig64/location.png")); m_pMyPositionAction->setToolTip(tr("My Position")); - m_pDrawWidget->OnDisableMyPosition(); + m_locationService->Stop(); } } |