mirror of
https://codeberg.org/comaps/comaps
synced 2026-01-22 11:03:58 +00:00
@@ -216,6 +216,8 @@ MainWindow::MainWindow(Framework & framework, std::unique_ptr<ScreenshotParams>
|
||||
m_pDrawWidget->UpdateAfterSettingsChanged();
|
||||
|
||||
RoutingSettings::LoadSession(m_pDrawWidget->GetFramework());
|
||||
|
||||
SetMapMode(m_pDrawWidget->GetFramework().CurrentMapMode());
|
||||
}
|
||||
|
||||
#if defined(OMIM_OS_WINDOWS)
|
||||
@@ -277,29 +279,38 @@ void MainWindow::CreateNavigationBar()
|
||||
}
|
||||
|
||||
{
|
||||
using namespace std::placeholders;
|
||||
m_defaultMapMode = new PopupMenuHolder(this);
|
||||
m_defaultMapMode->setDefaultAction(tr("Default"), std::bind(&MainWindow::OnMapModeChange, this, MapMode::DEFAULT));
|
||||
m_defaultMapMode->addAction(QIcon(":/navig64/mode_options_contourlines.png"), tr("Show Contour Lines"), std::bind(&MainWindow::OnDefaultMapModeOptionChange, this, 0), true);
|
||||
m_defaultMapMode->setChecked(0, m_pDrawWidget->GetFramework().DefaultMapModeHasContourLines());
|
||||
pToolBar->addWidget(m_defaultMapMode->create());
|
||||
m_defaultMapMode->setMainIcon(QIcon(":/navig64/mode_default.png"));
|
||||
|
||||
m_layers = new PopupMenuHolder(this);
|
||||
m_hikingMapMode = new PopupMenuHolder(this);
|
||||
m_hikingMapMode->setDefaultAction(tr("Hiking"), std::bind(&MainWindow::OnMapModeChange, this, MapMode::HIKING));
|
||||
m_hikingMapMode->addAction(QIcon(":/navig64/mode_options_contourlines.png"), tr("Show Contour Lines"), std::bind(&MainWindow::OnHikingMapModeOptionChange, this, 0), true);
|
||||
m_hikingMapMode->setChecked(0, m_pDrawWidget->GetFramework().HikingMapModeHasContourLines());
|
||||
pToolBar->addWidget(m_hikingMapMode->create());
|
||||
m_hikingMapMode->setMainIcon(QIcon(":/navig64/mode_hiking.png"));
|
||||
|
||||
/// @todo Uncomment when we will integrate a traffic provider.
|
||||
// m_layers->addAction(QIcon(":/navig64/traffic.png"), tr("Traffic"),
|
||||
// std::bind(&MainWindow::OnLayerEnabled, this, LayerType::TRAFFIC), true);
|
||||
// m_layers->setChecked(LayerType::TRAFFIC, m_pDrawWidget->GetFramework().LoadTrafficEnabled());
|
||||
m_cyclingMapMode = new PopupMenuHolder(this);
|
||||
m_cyclingMapMode->setDefaultAction(tr("Cycling"), std::bind(&MainWindow::OnMapModeChange, this, MapMode::CYCLING));
|
||||
m_cyclingMapMode->addAction(QIcon(":/navig64/mode_options_contourlines.png"), tr("Show Contour Lines"), std::bind(&MainWindow::OnCyclingMapModeOptionChange, this, 0), true);
|
||||
m_cyclingMapMode->setChecked(0, m_pDrawWidget->GetFramework().CyclingMapModeHasContourLines());
|
||||
pToolBar->addWidget(m_cyclingMapMode->create());
|
||||
m_cyclingMapMode->setMainIcon(QIcon(":/navig64/mode_cycling.png"));
|
||||
|
||||
m_layers->addAction(QIcon(":/navig64/subway.png"), tr("Public transport"),
|
||||
std::bind(&MainWindow::OnLayerEnabled, this, LayerType::TRANSIT), true);
|
||||
m_layers->setChecked(LayerType::TRANSIT, m_pDrawWidget->GetFramework().LoadTransitSchemeEnabled());
|
||||
m_drivingMapMode = new PopupMenuHolder(this);
|
||||
m_drivingMapMode->setDefaultAction(tr("Driving"), std::bind(&MainWindow::OnMapModeChange, this, MapMode::DRIVING));
|
||||
pToolBar->addWidget(m_drivingMapMode->create());
|
||||
m_drivingMapMode->setMainIcon(QIcon(":/navig64/mode_driving.png"));
|
||||
|
||||
m_layers->addAction(QIcon(":/navig64/isolines.png"), tr("Isolines"),
|
||||
std::bind(&MainWindow::OnLayerEnabled, this, LayerType::ISOLINES), true);
|
||||
m_layers->setChecked(LayerType::ISOLINES, m_pDrawWidget->GetFramework().LoadIsolinesEnabled());
|
||||
|
||||
m_layers->addAction(QIcon(":/navig64/isolines.png"), tr("Outdoors"),
|
||||
std::bind(&MainWindow::OnLayerEnabled, this, LayerType::OUTDOORS), true);
|
||||
m_layers->setChecked(LayerType::OUTDOORS, m_pDrawWidget->GetFramework().LoadOutdoorsEnabled());
|
||||
|
||||
pToolBar->addWidget(m_layers->create());
|
||||
m_layers->setMainIcon(QIcon(":/navig64/layers.png"));
|
||||
m_publicTransportMapMode = new PopupMenuHolder(this);
|
||||
m_publicTransportMapMode->setDefaultAction(tr("Public Transport"), std::bind(&MainWindow::OnMapModeChange, this, MapMode::PUBLICTRANSPORT));
|
||||
m_publicTransportMapMode->addAction(QIcon(":/navig64/mode_options_transitlines.png"), tr("Show Transit Lines"), std::bind(&MainWindow::OnPublicTransportMapModeOptionChange, this, 0), true);
|
||||
m_publicTransportMapMode->setChecked(0, m_pDrawWidget->GetFramework().PublicTransportMapModeHasTransitLines());
|
||||
pToolBar->addWidget(m_publicTransportMapMode->create());
|
||||
m_publicTransportMapMode->setMainIcon(QIcon(":/navig64/mode_publictransport.png"));
|
||||
|
||||
pToolBar->addSeparator();
|
||||
|
||||
@@ -856,37 +867,64 @@ void MainWindow::OnRetryDownloadClicked()
|
||||
GetFramework().GetStorage().RetryDownloadNode(m_lastCountry);
|
||||
}
|
||||
|
||||
void MainWindow::SetLayerEnabled(LayerType type, bool enable)
|
||||
void MainWindow::SetMapMode(MapMode const mapMode)
|
||||
{
|
||||
auto & frm = m_pDrawWidget->GetFramework();
|
||||
switch (type)
|
||||
{
|
||||
// @todo Uncomment when we will integrate a traffic provider.
|
||||
// case LayerType::TRAFFIC:
|
||||
// frm.GetTrafficManager().SetEnabled(enable);
|
||||
// frm.SaveTrafficEnabled(enable);
|
||||
// break;
|
||||
case LayerType::TRANSIT:
|
||||
frm.GetTransitManager().EnableTransitSchemeMode(enable);
|
||||
frm.SaveTransitSchemeEnabled(enable);
|
||||
break;
|
||||
case LayerType::ISOLINES:
|
||||
frm.GetIsolinesManager().SetEnabled(enable);
|
||||
frm.SaveIsolinesEnabled(enable);
|
||||
break;
|
||||
case LayerType::OUTDOORS:
|
||||
frm.SaveOutdoorsEnabled(enable);
|
||||
if (enable)
|
||||
m_pDrawWidget->SetMapStyleToOutdoors();
|
||||
else
|
||||
m_pDrawWidget->SetMapStyleToDefault();
|
||||
break;
|
||||
}
|
||||
frm.SwitchToMapMode(mapMode);
|
||||
|
||||
if (MapMode::DEFAULT == mapMode)
|
||||
m_defaultMapMode->setMainIcon(QIcon(":/navig64/mode_default-selected.png"));
|
||||
else
|
||||
m_defaultMapMode->setMainIcon(QIcon(":/navig64/mode_default.png"));
|
||||
|
||||
if (MapMode::HIKING == mapMode)
|
||||
m_hikingMapMode->setMainIcon(QIcon(":/navig64/mode_hiking-selected.png"));
|
||||
else
|
||||
m_hikingMapMode->setMainIcon(QIcon(":/navig64/mode_hiking.png"));
|
||||
|
||||
if (MapMode::CYCLING == mapMode)
|
||||
m_cyclingMapMode->setMainIcon(QIcon(":/navig64/mode_cycling-selected.png"));
|
||||
else
|
||||
m_cyclingMapMode->setMainIcon(QIcon(":/navig64/mode_cycling.png"));
|
||||
|
||||
if (MapMode::DRIVING == mapMode)
|
||||
m_drivingMapMode->setMainIcon(QIcon(":/navig64/mode_driving-selected.png"));
|
||||
else
|
||||
m_drivingMapMode->setMainIcon(QIcon(":/navig64/mode_driving.png"));
|
||||
|
||||
if (MapMode::PUBLICTRANSPORT == mapMode)
|
||||
m_publicTransportMapMode->setMainIcon(QIcon(":/navig64/mode_publictransport-selected.png"));
|
||||
else
|
||||
m_publicTransportMapMode->setMainIcon(QIcon(":/navig64/mode_publictransport.png"));
|
||||
}
|
||||
|
||||
void MainWindow::OnLayerEnabled(LayerType layer)
|
||||
void MainWindow::OnMapModeChange(MapMode const mapMode)
|
||||
{
|
||||
SetLayerEnabled(layer, m_layers->isChecked(layer));
|
||||
SetMapMode(mapMode);
|
||||
}
|
||||
|
||||
void MainWindow::OnDefaultMapModeOptionChange(int8_t const index)
|
||||
{
|
||||
auto & frm = m_pDrawWidget->GetFramework();
|
||||
frm.DefaultMapModeSetContourLines(m_defaultMapMode->isChecked(0));
|
||||
}
|
||||
|
||||
void MainWindow::OnHikingMapModeOptionChange(int8_t const index)
|
||||
{
|
||||
auto & frm = m_pDrawWidget->GetFramework();
|
||||
frm.HikingMapModeSetContourLines(m_hikingMapMode->isChecked(0));
|
||||
}
|
||||
|
||||
void MainWindow::OnCyclingMapModeOptionChange(int8_t const index)
|
||||
{
|
||||
auto & frm = m_pDrawWidget->GetFramework();
|
||||
frm.CyclingMapModeSetContourLines(m_cyclingMapMode->isChecked(0));
|
||||
}
|
||||
|
||||
void MainWindow::OnPublicTransportMapModeOptionChange(int8_t const index)
|
||||
{
|
||||
auto & frm = m_pDrawWidget->GetFramework();
|
||||
frm.PublicTransportMapModeSetTransitLines(m_publicTransportMapMode->isChecked(0));
|
||||
}
|
||||
|
||||
void MainWindow::OnRulerEnabled()
|
||||
|
||||
Reference in New Issue
Block a user