mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-02 15:15:50 +08:00
refs #568, improved validation and handling
* invalid models can be highlighted on stash * selection mode can be toggled between single/multi selection (where applicable) * color for highlighting can be set * finetuning of menus
This commit is contained in:
@@ -56,10 +56,10 @@ namespace BlackGui
|
||||
this->m_menus = MenuBackend;
|
||||
break;
|
||||
case CAircraftModelListModel::VPilotRuleModel:
|
||||
this->m_menus = MenuRefresh | MenuStashing | MenuHighlightDbData;
|
||||
this->m_menus = MenuRefresh | MenuStashing | MenuToggleSelectionMode;
|
||||
break;
|
||||
case CAircraftModelListModel::OwnSimulatorModelMapping:
|
||||
this->m_menus = MenuDisplayAutomatically | MenuStashing | MenuHighlightDbData;
|
||||
this->m_menus = MenuDisplayAutomatically | MenuStashing | MenuHighlightDbData | MenuToggleSelectionMode;
|
||||
break;
|
||||
case CAircraftModelListModel::OwnSimulatorModel:
|
||||
default:
|
||||
@@ -91,7 +91,7 @@ namespace BlackGui
|
||||
|
||||
bool CAircraftModelView::hasSelectedModelsToStash() const
|
||||
{
|
||||
return m_menus.testFlag(MenuStashModels) && hasSelection();
|
||||
return m_menus.testFlag(MenuCanStashModels) && hasSelection();
|
||||
}
|
||||
|
||||
void CAircraftModelView::setImplementedMetaTypeIds()
|
||||
@@ -123,6 +123,26 @@ namespace BlackGui
|
||||
return delta;
|
||||
}
|
||||
|
||||
void CAircraftModelView::setHighlightModelStrings(const QStringList &highlightModels)
|
||||
{
|
||||
this->derivedModel()->setHighlightModelStrings(highlightModels);
|
||||
}
|
||||
|
||||
void CAircraftModelView::setHighlightModelStrings(bool highlight)
|
||||
{
|
||||
this->derivedModel()->setHighlightModelStrings(highlight);
|
||||
}
|
||||
|
||||
void CAircraftModelView::setHighlightModelStringsColor(const QBrush &brush)
|
||||
{
|
||||
this->derivedModel()->setHighlightModelStringsColor(brush);
|
||||
}
|
||||
|
||||
bool CAircraftModelView::highlightModelsStrings() const
|
||||
{
|
||||
return this->derivedModel()->highlightModelStrings();
|
||||
}
|
||||
|
||||
void CAircraftModelView::dropEvent(QDropEvent *event)
|
||||
{
|
||||
if (!isDropAllowed()) { return; }
|
||||
@@ -215,34 +235,43 @@ namespace BlackGui
|
||||
|
||||
void CAircraftModelView::customMenu(QMenu &menu) const
|
||||
{
|
||||
bool added = false;
|
||||
if (this->m_menus.testFlag(MenuStashModels))
|
||||
if (this->m_menus.testFlag(MenuCanStashModels))
|
||||
{
|
||||
menu.addAction(CIcons::appDbStash16(), "Stash", this, SLOT(ps_requestStash()));
|
||||
QAction *a = menu.addAction(CIcons::appDbStash16(), "Stashing clears selection", this, SLOT(ps_stashingClearsSelection()));
|
||||
a->setCheckable(true);
|
||||
a->setChecked(m_stashingClearsSelection);
|
||||
added = true;
|
||||
}
|
||||
if (this->m_menus.testFlag(MenuHighlightStashed))
|
||||
{
|
||||
// this function requires someone provides the model strings to be highlighted
|
||||
// this function requires that someone provides the model strings to be highlighted
|
||||
QAction *a = menu.addAction(CIcons::appDbStash16(), "Highlight stashed", this, SLOT(ps_toggleHighlightStashedModels()));
|
||||
a->setCheckable(true);
|
||||
a->setChecked(this->derivedModel()->highlightDbData());
|
||||
added = true;
|
||||
}
|
||||
if (added) { menu.addSeparator(); }
|
||||
if (this->m_menus.testFlag(MenuHighlightInvalid))
|
||||
{
|
||||
// this function requires that someone provides the model strings to be highlighted
|
||||
QAction *a = menu.addAction(CIcons::appDbStash16(), "Highlight invalid models", this, SLOT(ps_to));
|
||||
a->setCheckable(true);
|
||||
a->setChecked(this->derivedModel()->highlightDbData());
|
||||
}
|
||||
CViewWithDbObjects::customMenu(menu);
|
||||
}
|
||||
|
||||
void CAircraftModelView::ps_toggleHighlightStashedModels()
|
||||
{
|
||||
bool h = derivedModel()->highlightGivenModelStrings();
|
||||
derivedModel()->setHighlightModelsStrings(!h);
|
||||
bool h = derivedModel()->highlightModelStrings();
|
||||
derivedModel()->setHighlightModelStrings(!h);
|
||||
emit toggledHighlightStashedModels();
|
||||
}
|
||||
|
||||
void CAircraftModelView::ps_toogleHighlightInvalidModels()
|
||||
{
|
||||
bool h = this->highlightModelsStrings();
|
||||
this->setHighlightModelStrings(!h);
|
||||
}
|
||||
|
||||
void CAircraftModelView::ps_stashingClearsSelection()
|
||||
{
|
||||
this->m_stashingClearsSelection = !this->m_stashingClearsSelection;
|
||||
@@ -250,7 +279,7 @@ namespace BlackGui
|
||||
|
||||
void CAircraftModelView::ps_requestStash()
|
||||
{
|
||||
if (!m_menus.testFlag(MenuStashModels)) { return; }
|
||||
if (!m_menus.testFlag(MenuCanStashModels)) { return; }
|
||||
if (!this->hasSelection()) { return; }
|
||||
emit requestStash(this->selectedObjects());
|
||||
if (this->m_stashingClearsSelection)
|
||||
|
||||
Reference in New Issue
Block a user