mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-25 18:25:42 +08:00
Ref T268, aircraft situation view allows to "request elevation"
This commit is contained in:
@@ -9,7 +9,10 @@
|
||||
|
||||
#include "blackgui/views/aircraftsituationview.h"
|
||||
|
||||
using namespace BlackMisc;
|
||||
using namespace BlackMisc::Aviation;
|
||||
using namespace BlackGui::Models;
|
||||
using namespace BlackGui::Menus;
|
||||
|
||||
namespace BlackGui
|
||||
{
|
||||
@@ -21,5 +24,26 @@ namespace BlackGui
|
||||
this->standardInit(new CAircraftSituationListModel(this));
|
||||
this->setMenu(MenuDefault);
|
||||
}
|
||||
|
||||
void CAircraftSituationView::setWithMenuRequestElevation(bool enable)
|
||||
{
|
||||
m_withMenuRequestElevation = enable;
|
||||
this->setSingleSelection();
|
||||
}
|
||||
|
||||
void CAircraftSituationView::customMenu(CMenuActions &menuActions)
|
||||
{
|
||||
if (m_withMenuRequestElevation && this->hasSingleSelectedRow())
|
||||
{
|
||||
menuActions.addAction(CIcons::geoPosition16(), "Request elevation", CMenuAction::pathClientSimulation(), { this, &CAircraftSituationView::emitRequestElevationForSituation });
|
||||
}
|
||||
}
|
||||
|
||||
void CAircraftSituationView::emitRequestElevationForSituation()
|
||||
{
|
||||
if (!this->hasSingleSelectedRow()) { return; }
|
||||
const CAircraftSituation situation = this->selectedObject();
|
||||
emit this->requestElevation(situation);
|
||||
}
|
||||
} // ns
|
||||
} // ns
|
||||
|
||||
@@ -26,9 +26,28 @@ namespace BlackGui
|
||||
//! Aircraft situations view
|
||||
class BLACKGUI_EXPORT CAircraftSituationView : public CViewWithTimestampWithOffsetObjects<Models::CAircraftSituationListModel, BlackMisc::Aviation::CAircraftSituationList, BlackMisc::Aviation::CAircraftSituation>
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
//! Constructor
|
||||
explicit CAircraftSituationView(QWidget *parent = nullptr);
|
||||
|
||||
//! Enable menu
|
||||
void setWithMenuRequestElevation(bool enable);
|
||||
|
||||
signals:
|
||||
//! Request elevation
|
||||
void requestElevation(const BlackMisc::Aviation::CAircraftSituation &situation);
|
||||
|
||||
protected:
|
||||
//! \copydoc CViewBase::customMenu
|
||||
virtual void customMenu(Menus::CMenuActions &menuActions) override;
|
||||
|
||||
private:
|
||||
//! Request elevation
|
||||
void emitRequestElevationForSituation();
|
||||
|
||||
bool m_withMenuRequestElevation = false;
|
||||
};
|
||||
} // ns
|
||||
} // ns
|
||||
|
||||
@@ -447,6 +447,12 @@ namespace BlackGui
|
||||
//! Settings have been changed
|
||||
void settingsChanged();
|
||||
|
||||
//! \name Change selection modes @{
|
||||
void setMultiSelection();
|
||||
void setExtendedSelection();
|
||||
void setSingleSelection();
|
||||
//! @}
|
||||
|
||||
//! JSON directory
|
||||
//! \remark Default implementation, can be overridden with specifi implementation
|
||||
virtual void rememberLastJsonDirectory(const QString &selectedFileOrDir);
|
||||
@@ -537,12 +543,6 @@ namespace BlackGui
|
||||
virtual void ps_toggleHighlightDbData() {}
|
||||
|
||||
private:
|
||||
//! \name Change selection modes @{
|
||||
void setMultiSelection();
|
||||
void setExtendedSelection();
|
||||
void setSingleSelection();
|
||||
//! @}
|
||||
|
||||
//! Remove selected rows if enabled
|
||||
void removeSelectedRowsChecked();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user