MCPcopy Create free account
hub / github.com/OpenOrienteering/mapper / createMobileGUI

Method createMobileGUI

src/gui/map/map_editor.cpp:1402–1632  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1400}
1401
1402void MapEditorController::createMobileGUI()
1403{
1404 // Create mobile-specific actions
1405 mobile_symbol_selector_action = new QAction(tr("Select symbol"), this);
1406 connect(mobile_symbol_selector_action, &QAction::triggered, this, &MapEditorController::mobileSymbolSelectorClicked);
1407
1408 mobile_symbol_button_menu = new QMenu(window);
1409 mobile_symbol_button_menu->addAction(QString{}); // reserved for symbol name
1410 auto* description_action = mobile_symbol_button_menu->addAction(QApplication::translate("OpenOrienteering::SymbolPropertiesWidget", "Description"));
1411 connect(description_action, &QAction::triggered, this, [this]() {
1412 auto* symbol = symbol_widget->getSingleSelectedSymbol();
1413 auto document = QString{ symbol->getNumberAsString() + QLatin1Char(' ')
1414 + QLatin1String("<b>") + symbol->getName() + QLatin1String("</b>\n\n")
1415 + symbol->getDescription() };
1416 // Cf. SymbolToolTip::scheduleShow
1417 document.replace(QLatin1Char('\n'), QStringLiteral("<br>"));
1418 document.remove(QLatin1Char('\r'));
1419 TextBrowserDialog description_dialog(document, window);
1420 description_dialog.exec();
1421 });
1422 mobile_symbol_button_menu->addSeparator();
1423 auto* hide_symbol_action = mobile_symbol_button_menu->addAction(QApplication::translate("OpenOrienteering::SymbolRenderWidget", "Hide objects with this symbol"));
1424 hide_symbol_action->setCheckable(true);
1425 connect(hide_symbol_action, &QAction::triggered, this, [this](bool value) {
1426 auto* symbol = symbol_widget->getSingleSelectedSymbol();
1427 symbol->setHidden(value);
1428 if (!value && map->removeSymbolFromSelection(symbol, false))
1429 map->emitSelectionChanged();
1430 map->updateAllMapWidgets();
1431 map->setSymbolsDirty();
1432 selectedSymbolsChanged();
1433 });
1434 auto* protected_symbol_action = mobile_symbol_button_menu->addAction(QApplication::translate("OpenOrienteering::SymbolRenderWidget", "Protect objects with this symbol"));
1435 protected_symbol_action->setCheckable(true);
1436 connect(protected_symbol_action, &QAction::triggered, this, [this](bool value) {
1437 auto* symbol = symbol_widget->getSingleSelectedSymbol();
1438 symbol->setProtected(value);
1439 if (!value && map->removeSymbolFromSelection(symbol, false))
1440 map->emitSelectionChanged();
1441 map->setSymbolsDirty();
1442 selectedSymbolsChanged();
1443 });
1444
1445 QAction* hide_top_bar_action = new QAction(QIcon(QString::fromLatin1(":/images/arrow-thin-upleft.png")), tr("Hide top bar"), this);
1446 connect(hide_top_bar_action, &QAction::triggered, this, &MapEditorController::hideTopActionBar);
1447
1448 QAction* show_top_bar_action = new QAction(QIcon(QString::fromLatin1(":/images/arrow-thin-downright.png")), tr("Show top bar"), this);
1449 connect(show_top_bar_action, &QAction::triggered, this, &MapEditorController::showTopActionBar);
1450
1451 QAction* mappart_action = new QAction(QIcon(QString::fromLatin1(":/images/map-parts.png")), tr("Map parts"), this);
1452 auto* mappart_group = new QActionGroup(window);
1453 auto* mappart_menu = new QMenu(window);
1454 mappart_action->setMenu(mappart_menu);
1455
1456 // Don't use QMenu::aboutToShow because it causes menu mispositioning near
1457 // lower screen border when triggered from QToolButton.
1458 connect(mappart_action, &QAction::hovered, this, [this, mappart_menu, mappart_group]() {
1459 mappart_menu->clear();

Callers

nothing calls this directly

Calls 15

QLatin1StringClass · 0.85
mmToPixelPhysicalFunction · 0.85
addActionMethod · 0.80
getNumberAsStringMethod · 0.80
removeMethod · 0.80
setHiddenMethod · 0.80
emitSelectionChangedMethod · 0.80
setSymbolsDirtyMethod · 0.80
setProtectedMethod · 0.80
getCurrentPartMethod · 0.80

Tested by

no test coverage detected