Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/qt
diff options
context:
space:
mode:
authorrachytski <siarhei.rachytski@gmail.com>2012-10-12 20:17:41 +0400
committerAlex Zolotarev <alex@maps.me>2015-09-23 01:45:23 +0300
commitca29b9e478b433d1a5d1a7a4385410467e97785f (patch)
tree495139e98cfe42412cff7397884061416b9ac957 /qt
parentf81ed7bd00ca324c400288d0a2df86151d9989cc (diff)
refactored Location and Compass observers mechanism.
Diffstat (limited to 'qt')
-rw-r--r--qt/mainwindow.cpp28
-rw-r--r--qt/mainwindow.hpp5
2 files changed, 18 insertions, 15 deletions
diff --git a/qt/mainwindow.cpp b/qt/mainwindow.cpp
index 9f888a0f85..e0ee73b8ec 100644
--- a/qt/mainwindow.cpp
+++ b/qt/mainwindow.cpp
@@ -40,6 +40,7 @@ namespace qt
MainWindow::MainWindow()
{
m_pDrawWidget = new DrawWidget(this);
+ m_isFirstLocation = true;
m_locationService.reset(CreateDesktopLocationService(*this));
CreateNavigationBar();
@@ -301,27 +302,27 @@ void MainWindow::OnAbout()
dlg.exec();
}
-void MainWindow::OnLocationStatusChanged(location::TLocationStatus newStatus)
+void MainWindow::OnLocationError(location::TLocationError errorCode)
{
- switch (newStatus)
+ switch (errorCode)
{
- case location::EFirstEvent:
- m_pMyPositionAction->setIcon(QIcon(":/navig64/location.png"));
- m_pMyPositionAction->setToolTip(tr("My Position"));
- break;
- case location::EDisabledByUser:
- case location::ENotSupported:
+ case location::EDenied:
m_pMyPositionAction->setChecked(false);
break;
- default:
- break;
}
- m_pDrawWidget->GetFramework().OnLocationStatusChanged(newStatus);
+ m_pDrawWidget->GetFramework().OnLocationError(errorCode);
}
-void MainWindow::OnGpsUpdated(location::GpsInfo const & info)
+void MainWindow::OnLocationUpdated(location::GpsInfo const & info)
{
- m_pDrawWidget->GetFramework().OnGpsUpdate(info);
+ if (m_isFirstLocation)
+ {
+ m_pMyPositionAction->setIcon(QIcon(":/navig64/location.png"));
+ m_pMyPositionAction->setToolTip(tr("My Position"));
+ m_isFirstLocation = false;
+ }
+
+ m_pDrawWidget->GetFramework().OnLocationUpdate(info);
}
void MainWindow::OnMyPosition()
@@ -330,6 +331,7 @@ void MainWindow::OnMyPosition()
{
m_pMyPositionAction->setIcon(QIcon(":/navig64/location-search.png"));
m_pMyPositionAction->setToolTip(tr("Looking for position..."));
+ m_isFirstLocation = true;
m_locationService->Start();
}
else
diff --git a/qt/mainwindow.hpp b/qt/mainwindow.hpp
index 9ff7d65048..abcb0589be 100644
--- a/qt/mainwindow.hpp
+++ b/qt/mainwindow.hpp
@@ -23,6 +23,7 @@ namespace qt
QDockWidget * m_Docks[3];
+ bool m_isFirstLocation;
scoped_ptr<location::LocationService> m_locationService;
Q_OBJECT
@@ -31,8 +32,8 @@ namespace qt
MainWindow();
virtual ~MainWindow();
- virtual void OnLocationStatusChanged(location::TLocationStatus newStatus);
- virtual void OnGpsUpdated(location::GpsInfo const & info);
+ virtual void OnLocationError(location::TLocationError errorCode);
+ virtual void OnLocationUpdated(location::GpsInfo const & info);
protected:
string GetIniFile();