MCPcopy Create free account
hub / github.com/KDAB/GammaRay / PositioningWidget

Method PositioningWidget

plugins/positioning/positioningwidget.cpp:42–120  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

40}
41
42PositioningWidget::PositioningWidget(QWidget *parent)
43 : QWidget(parent)
44 , ui(new Ui::PositioningWidget)
45 , m_mapController(new MapController(this))
46 , m_replaySource(nullptr)
47 , m_updateLock(false)
48{
49 ui->setupUi(this);
50 auto mapView = new QQuickWidget;
51 mapView->rootContext()->setContextProperty(QStringLiteral("_controller"), m_mapController);
52 ui->topLayout->addWidget(mapView);
53
54 ObjectBroker::registerClientObjectFactoryCallback<PositioningInterface *>(createPositioningClient);
55
56 m_interface = ObjectBroker::object<PositioningInterface *>();
57 Q_ASSERT(m_interface);
58 connect(m_interface, &PositioningInterface::positionInfoChanged, this, [this]() {
59 m_mapController->setSourceCoordinate(m_interface->positionInfo().coordinate());
60 m_mapController->setSourceDirection(m_interface->positionInfo().attribute(QGeoPositionInfo::Direction));
61 m_mapController->setSourceHorizontalAccuracy(m_interface->positionInfo().attribute(QGeoPositionInfo::HorizontalAccuracy));
62 if (ui->overrideBox->isChecked())
63 return;
64 setUiToPosition(m_interface->positionInfo());
65 });
66
67 connect(ui->overrideBox, &QCheckBox::toggled, this, [this](bool enabled) {
68 if (enabled && m_interface->positionInfoOverride().isValid()) {
69 setUiToPosition(m_interface->positionInfoOverride());
70 } else if (!enabled && m_interface->positionInfo().isValid()) {
71 setUiToPosition(m_interface->positionInfo());
72 }
73 updateWidgetState();
74 updatePosition();
75 });
76 connect(ui->latitude, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &PositioningWidget::updatePosition);
77 connect(ui->longitude, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &PositioningWidget::updatePosition);
78 connect(ui->horizontalSpeed, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &PositioningWidget::updatePosition);
79 connect(ui->horizontalAccuracy, QOverload<int>::of(&QSpinBox::valueChanged), this, &PositioningWidget::updatePosition);
80 connect(ui->altitude, QOverload<int>::of(&QSpinBox::valueChanged), this, &PositioningWidget::updatePosition);
81 connect(ui->verticalSpeed, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &PositioningWidget::updatePosition);
82 connect(ui->verticalAccuracy, QOverload<int>::of(&QSpinBox::valueChanged), this, &PositioningWidget::updatePosition);
83 connect(ui->direction, QOverload<int>::of(&QSpinBox::valueChanged), this, &PositioningWidget::updatePosition);
84 connect(ui->magneticVariation, QOverload<int>::of(&QSpinBox::valueChanged), this, &PositioningWidget::updatePosition);
85 connect(ui->timestamp, &QDateTimeEdit::dateTimeChanged, this, &PositioningWidget::updatePosition);
86
87 connect(m_mapController, &MapController::overrideCoordinateChanged, this, [this]() {
88 if (m_updateLock)
89 return;
90 m_updateLock = true;
91 ui->latitude->setValue(m_mapController->overrideCoordinate().latitude());
92 ui->longitude->setValue(m_mapController->overrideCoordinate().longitude());
93 ui->timestamp->setDateTime(QDateTime::currentDateTime());
94 m_updateLock = false;
95 updatePosition();
96 });
97 connect(m_mapController, &MapController::overrideDirectionChanged, this, [this]() {
98 if (m_updateLock)
99 return;

Callers

nothing calls this directly

Calls 11

setSourceCoordinateMethod · 0.80
positionInfoMethod · 0.80
setSourceDirectionMethod · 0.80
positionInfoOverrideMethod · 0.80
overrideCoordinateMethod · 0.80
overrideDirectionMethod · 0.80
setSourceMethod · 0.80
QUrlClass · 0.50
isValidMethod · 0.45
setValueMethod · 0.45

Tested by

no test coverage detected