blob: a0d574091db64d205c331a40f22860938c3d14b5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
#pragma once
#include "storage/storage_defines.hpp"
#include "platform/location.hpp"
#include "platform/location_service.hpp"
#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <array>
#include <string>
#include <memory>
class Framework;
class QDockWidget;
class QLabel;
class QPushButton;
class QToolButton;
namespace search { class Result; }
namespace qt
{
class DrawWidget;
struct ScreenshotParams;
class MainWindow : public QMainWindow, location::LocationObserver
{
DrawWidget * m_pDrawWidget = nullptr;
// TODO(mgsergio): Make indexing more informative.
std::array<QDockWidget *, 1> m_Docks;
QPushButton * m_downloadButton = nullptr;
QPushButton * m_retryButton = nullptr;
QLabel * m_downloadingStatusLabel = nullptr;
storage::CountryId m_lastCountry;
std::unique_ptr<location::LocationService> const m_locationService;
bool const m_screenshotMode;
QAction * m_pMyPositionAction = nullptr;
QAction * m_pCreateFeatureAction = nullptr;
QAction * m_selectionMode = nullptr;
QAction * m_clearSelection = nullptr;
QAction * m_pSearchAction = nullptr;
QAction * m_trafficEnableAction = nullptr;
QAction * m_bookmarksAction = nullptr;
QAction * m_selectionCityBoundariesMode = nullptr;
QAction * m_selectionCityRoadsMode = nullptr;
QToolButton * m_routePointsToolButton = nullptr;
QAction * m_selectStartRoutePoint = nullptr;
QAction * m_selectFinishRoutePoint = nullptr;
QAction * m_selectIntermediateRoutePoint = nullptr;
#ifdef BUILD_DESIGNER
QString const m_mapcssFilePath = nullptr;
QAction * m_pBuildStyleAction = nullptr;
QAction * m_pRecalculateGeomIndex = nullptr;
QAction * m_pDrawDebugRectAction = nullptr;
QAction * m_pGetStatisticsAction = nullptr;
QAction * m_pRunTestsAction = nullptr;
QAction * m_pBuildPhonePackAction = nullptr;
#endif // BUILD_DESIGNER
Q_OBJECT
public:
MainWindow(Framework & framework, bool apiOpenGLES3, std::unique_ptr<ScreenshotParams> && screenshotParams,
QString const & mapcssFilePath = QString());
static void SetDefaultSurfaceFormat(bool apiOpenGLES3);
protected:
string GetIniFile();
void OnLocationError(location::TLocationError errorCode) override;
void OnLocationUpdated(location::GpsInfo const & info) override;
void LocationStateModeChanged(location::EMyPositionMode mode);
void CreatePanelImpl(size_t i, Qt::DockWidgetArea area, QString const & name,
QKeySequence const & hotkey, char const * slot);
void CreateNavigationBar();
void CreateSearchBarAndPanel();
void CreateCountryStatusControls();
#if defined(Q_WS_WIN)
/// to handle menu messages
bool winEvent(MSG * msg, long * result) override;
#endif
void closeEvent(QCloseEvent * e) override;
protected Q_SLOTS:
#ifndef NO_DOWNLOADER
void ShowUpdateDialog();
#endif // NO_DOWNLOADER
void OnPreferences();
void OnAbout();
void OnMyPosition();
void OnCreateFeatureClicked();
void OnSearchButtonClicked();
void OnLoginMenuItem();
void OnUploadEditsMenuItem();
void OnBeforeEngineCreation();
void OnDownloadClicked();
void OnRetryDownloadClicked();
void OnSwitchSelectionMode();
void OnSwitchCityBoundariesSelectionMode();
void OnSwitchCityRoadsSelectionMode();
void OnClearSelection();
void OnTrafficEnabled();
void OnStartPointSelected();
void OnFinishPointSelected();
void OnIntermediatePointSelected();
void OnFollowRoute();
void OnClearRoute();
void OnBookmarksAction();
#ifdef BUILD_DESIGNER
void OnBuildStyle();
void OnRecalculateGeomIndex();
void OnDebugStyle();
void OnGetStatistics();
void OnRunTests();
void OnBuildPhonePackage();
#endif // BUILD_DESIGNER
};
} // namespace qt
|