Launcher: tip for drag/zoom of diagrams
This commit is contained in:
parent
b76b6548a1
commit
1dd6ab3cfb
5 changed files with 47 additions and 3 deletions
|
@ -35,6 +35,7 @@ public:
|
||||||
TopRight,
|
TopRight,
|
||||||
TopLeft,
|
TopLeft,
|
||||||
LeftTop, // on the left side, at the top
|
LeftTop, // on the left side, at the top
|
||||||
|
NoArrow
|
||||||
};
|
};
|
||||||
|
|
||||||
Q_ENUM(Arrow)
|
Q_ENUM(Arrow)
|
||||||
|
|
|
@ -43,6 +43,7 @@ static std::initializer_list<TipGeometryByArrowLocation> static_tipGeometries =
|
||||||
{GettingStartedTip::Arrow::LeftCenter, QRectF{0.0, 0.0, tipBoxWidth, dummyHeight}, Qt::AlignVCenter},
|
{GettingStartedTip::Arrow::LeftCenter, QRectF{0.0, 0.0, tipBoxWidth, dummyHeight}, Qt::AlignVCenter},
|
||||||
{GettingStartedTip::Arrow::RightCenter, QRectF{-(tipBoxWidth + TipBackgroundBox::arrowHeight()), 0.0, tipBoxWidth, dummyHeight}, Qt::AlignVCenter},
|
{GettingStartedTip::Arrow::RightCenter, QRectF{-(tipBoxWidth + TipBackgroundBox::arrowHeight()), 0.0, tipBoxWidth, dummyHeight}, Qt::AlignVCenter},
|
||||||
{GettingStartedTip::Arrow::LeftTop, QRectF{0.0, topHeightOffset, tipBoxWidth, dummyHeight}, Qt::AlignTop},
|
{GettingStartedTip::Arrow::LeftTop, QRectF{0.0, topHeightOffset, tipBoxWidth, dummyHeight}, Qt::AlignTop},
|
||||||
|
{GettingStartedTip::Arrow::NoArrow, QRectF{-halfBoxWidth, 0.0, tipBoxWidth, dummyHeight}, Qt::AlignVCenter},
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -338,14 +339,16 @@ QRectF GettingStartedTipsController::tipGeometry() const
|
||||||
}
|
}
|
||||||
|
|
||||||
QRectF g = it->geometry;
|
QRectF g = it->geometry;
|
||||||
if ((arrow == GettingStartedTip::Arrow::LeftCenter) || (arrow == GettingStartedTip::Arrow::RightCenter)
|
if ((arrow == GettingStartedTip::Arrow::LeftCenter)
|
||||||
|| (arrow == GettingStartedTip::Arrow::LeftTop)) {
|
|| (arrow == GettingStartedTip::Arrow::RightCenter)
|
||||||
|
|| (arrow == GettingStartedTip::Arrow::LeftTop)
|
||||||
|
|| (arrow == GettingStartedTip::Arrow::NoArrow))
|
||||||
|
{
|
||||||
g.setHeight(_activeTipHeight);
|
g.setHeight(_activeTipHeight);
|
||||||
} else {
|
} else {
|
||||||
g.setHeight(_activeTipHeight + TipBackgroundBox::arrowHeight());
|
g.setHeight(_activeTipHeight + TipBackgroundBox::arrowHeight());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
switch (it->verticalAlignment) {
|
switch (it->verticalAlignment) {
|
||||||
case Qt::AlignBottom:
|
case Qt::AlignBottom:
|
||||||
g.moveBottom(0);
|
g.moveBottom(0);
|
||||||
|
|
|
@ -97,6 +97,15 @@ QPainterPath pathFromArrowAndGeometry(GettingStartedTip::Arrow arrow, const QRec
|
||||||
pp.closeSubpath();
|
pp.closeSubpath();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case GettingStartedTip::Arrow::NoArrow:
|
||||||
|
pp.moveTo(0.0, g.top());
|
||||||
|
pp.lineTo(g.right(), g.top());
|
||||||
|
pp.lineTo(g.right(), g.bottom());
|
||||||
|
pp.lineTo(0.0, g.bottom());
|
||||||
|
pp.closeSubpath();
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
qWarning() << Q_FUNC_INFO << "unhandled:" << arrow;
|
qWarning() << Q_FUNC_INFO << "unhandled:" << arrow;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -12,6 +12,8 @@ Item {
|
||||||
onGuidChanged: _location.setBaseLocation(this)
|
onGuidChanged: _location.setBaseLocation(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GettingStartedScope.controller: tips.controller
|
||||||
|
|
||||||
readonly property bool isHeliport: airportData.type === Positioned.Heliport
|
readonly property bool isHeliport: airportData.type === Positioned.Heliport
|
||||||
readonly property bool haveParking: airportData.airportHasParkings
|
readonly property bool haveParking: airportData.airportHasParkings
|
||||||
|
|
||||||
|
@ -37,6 +39,13 @@ Item {
|
||||||
|
|
||||||
approachExtensionEnabled: _location.onFinal
|
approachExtensionEnabled: _location.onFinal
|
||||||
approachExtension: _location.offsetDistance
|
approachExtension: _location.offsetDistance
|
||||||
|
|
||||||
|
GettingStartedTip {
|
||||||
|
tipId: "locationDiagram"
|
||||||
|
anchors.centerIn: parent
|
||||||
|
arrow: GettingStartedTip.NoArrow
|
||||||
|
text: qsTr("Click here to select a runway or parking position, and drag to pan. Mouse-wheel zooms in and out.")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// not very declarative, try to remove this over time
|
// not very declarative, try to remove this over time
|
||||||
|
@ -383,4 +392,10 @@ Item {
|
||||||
|
|
||||||
} // main layout column
|
} // main layout column
|
||||||
} // main panel rectangle
|
} // main panel rectangle
|
||||||
|
|
||||||
|
GettingStartedTipLayer {
|
||||||
|
id: tips
|
||||||
|
anchors.fill: parent
|
||||||
|
scopeId: "locationAirportDetails"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,8 @@ Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GettingStartedScope.controller: tips.controller
|
||||||
|
|
||||||
NavaidDiagram {
|
NavaidDiagram {
|
||||||
id: diagram
|
id: diagram
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
@ -25,6 +27,13 @@ Item {
|
||||||
offsetBearing: _location.offsetRadial
|
offsetBearing: _location.offsetRadial
|
||||||
offsetDistance: _location.offsetDistance
|
offsetDistance: _location.offsetDistance
|
||||||
heading: _location.heading
|
heading: _location.heading
|
||||||
|
|
||||||
|
GettingStartedTip {
|
||||||
|
tipId: "locationNavDiagram"
|
||||||
|
anchors.centerIn: parent
|
||||||
|
arrow: GettingStartedTip.NoArrow
|
||||||
|
text: qsTr("Drag here to move the map. Mouse-wheel zooms in and out.")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
|
@ -158,4 +167,11 @@ Item {
|
||||||
}
|
}
|
||||||
} // main layout column
|
} // main layout column
|
||||||
} // main panel rectangle
|
} // main panel rectangle
|
||||||
|
|
||||||
|
|
||||||
|
GettingStartedTipLayer {
|
||||||
|
id: tips
|
||||||
|
anchors.fill: parent
|
||||||
|
scopeId: "locationNavDetails"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue