diff --git a/src/blackgui/components/dbmappingcomponent.cpp b/src/blackgui/components/dbmappingcomponent.cpp index 33d26cbdd..03706d20e 100644 --- a/src/blackgui/components/dbmappingcomponent.cpp +++ b/src/blackgui/components/dbmappingcomponent.cpp @@ -38,8 +38,10 @@ namespace BlackGui this->ui->tvp_AircraftModelsForVPilot->setAircraftModelMode(CAircraftModelListModel::VPilotRuleModel); this->ui->tvp_AircraftModelsForVPilot->setAllowStash(true); + this->ui->tvp_AircraftModelsForVPilot->addFilterDialog(); this->ui->tvp_OwnAircraftModels->setAircraftModelMode(CAircraftModelListModel::OwnSimulatorModelMapping); this->ui->tvp_OwnAircraftModels->setAllowStash(true); + this->ui->tvp_OwnAircraftModels->addFilterDialog(); // connects connect(ui->editor_Model, &CModelMappingForm::requestPublish, this, &CDbMappingComponent::ps_publishSingleModelToDb); @@ -91,6 +93,7 @@ namespace BlackGui connect(this->ui->tvp_AircraftModelsForVPilot, &CAircraftModelView::requestStash, this, &CDbMappingComponent::stashSelectedModels); this->ui->tvp_AircraftModelsForVPilot->setCustomMenu(new CMappingVPilotMenu(this, true)); this->ui->tvp_AircraftModelsForVPilot->setDisplayAutomatically(true); + this->ui->tvp_AircraftModelsForVPilot->addFilterDialog(); const CAircraftModelList cachedModels(m_cachedVPilotModels.get()); this->ui->tvp_AircraftModelsForVPilot->updateContainerMaybeAsync(cachedModels); int noModels = cachedModels.size(); diff --git a/src/blackgui/components/dbstashcomponent.cpp b/src/blackgui/components/dbstashcomponent.cpp index a0e85ee62..7cc344aac 100644 --- a/src/blackgui/components/dbstashcomponent.cpp +++ b/src/blackgui/components/dbstashcomponent.cpp @@ -34,6 +34,7 @@ namespace BlackGui this->ui->tvp_StashAircraftModels->setAircraftModelMode(CAircraftModelListModel::StashModel); this->ui->tvp_StashAircraftModels->allowDragDropValueObjects(false, true); this->ui->tvp_StashAircraftModels->setImplementedMetaTypeIds(); + this->ui->tvp_StashAircraftModels->menuAddItems(CAircraftModelView::MenuLoadAndSave); connect(this->ui->pb_Unstash, &QPushButton::pressed, this, &CDbStashComponent::ps_onUnstashPressed); connect(this->ui->pb_Validate, &QPushButton::pressed, this, &CDbStashComponent::ps_onValidatePressed); diff --git a/src/blackgui/components/mappingcomponent.cpp b/src/blackgui/components/mappingcomponent.cpp index 53322334d..c94e0435d 100644 --- a/src/blackgui/components/mappingcomponent.cpp +++ b/src/blackgui/components/mappingcomponent.cpp @@ -43,9 +43,11 @@ namespace BlackGui { ui->setupUi(this); this->ui->tvp_AircraftModels->setAircraftModelMode(CAircraftModelListModel::OwnSimulatorModel); + this->ui->tvp_AircraftModels->setResizeMode(CAircraftModelView::ResizingOff); + this->ui->tvp_AircraftModels->addFilterDialog(); + this->ui->tvp_SimulatedAircraft->setAircraftMode(CSimulatedAircraftListModel::ModelMode); this->ui->tvp_SimulatedAircraft->setResizeMode(CAircraftModelView::ResizingOnce); - this->ui->tvp_AircraftModels->setResizeMode(CAircraftModelView::ResizingOff); connect(this->ui->tvp_AircraftModels, &CAircraftModelView::requestUpdate, this, &CMappingComponent::ps_onModelsUpdateRequested); connect(this->ui->tvp_AircraftModels, &CAircraftModelView::rowCountChanged, this, &CMappingComponent::ps_onRowCountChanged); diff --git a/src/blackgui/views/aircrafticaoview.cpp b/src/blackgui/views/aircrafticaoview.cpp index 2e5761e79..ecbb09f7a 100644 --- a/src/blackgui/views/aircrafticaoview.cpp +++ b/src/blackgui/views/aircrafticaoview.cpp @@ -19,7 +19,7 @@ namespace BlackGui { CAircraftIcaoCodeView::CAircraftIcaoCodeView(QWidget *parent) : CViewBase(parent) { - this->m_withMenuItemBackend = true; + this->m_menus |= MenuBackend; this->standardInit(new CAircraftIcaoCodeListModel(this)); } } diff --git a/src/blackgui/views/aircraftmodelview.cpp b/src/blackgui/views/aircraftmodelview.cpp index 91fff02e8..29736a3eb 100644 --- a/src/blackgui/views/aircraftmodelview.cpp +++ b/src/blackgui/views/aircraftmodelview.cpp @@ -35,11 +35,6 @@ namespace BlackGui // default this->standardInit(new CAircraftModelListModel(CAircraftModelListModel::OwnSimulatorModel, this)); - // filter - QWidget *mainWindow = this->mainApplicationWindowWidget(); - Q_ASSERT_X(mainWindow, Q_FUNC_INFO, "no main window found"); - this->setFilterDialog(new CAircraftModelFilterDialog(mainWindow)); - // shortcut new QShortcut(CShortcut::keyStash(), this, SLOT(ps_stashShortcut()), nullptr, Qt::WidgetShortcut); @@ -50,43 +45,30 @@ namespace BlackGui void CAircraftModelView::setAircraftModelMode(CAircraftModelListModel::AircraftModelMode mode) { - this->m_withMenuDisplayAutomatically = false; this->setCustomMenu(nullptr, false); // delete everything derivedModel()->setAircraftModelMode(mode); switch (mode) { case CAircraftModelListModel::StashModel: - this->m_withMenuItemClear = true; - this->m_withMenuItemRefresh = false; - this->m_withMenuItemBackend = false; + this->m_menus = MenuClear; this->setCustomMenu(new CHighlightDbModelsMenu(this, true)); break; case CAircraftModelListModel::Database: - this->m_withMenuItemClear = false; - this->m_withMenuItemRefresh = false; - this->m_withMenuItemBackend = true; + this->m_menus = MenuBackend; break; case CAircraftModelListModel::VPilotRuleModel: - this->m_withMenuItemClear = false; - this->m_withMenuItemRefresh = true; - this->m_withMenuItemBackend = false; + this->m_menus = MenuRefresh; this->setCustomMenu(new CHighlightDbModelsMenu(this, true)); this->setCustomMenu(new CHighlightStashedModelsMenu(this, true)); break; case CAircraftModelListModel::OwnSimulatorModelMapping: - this->m_withMenuDisplayAutomatically = true; - this->m_withMenuItemClear = false; - this->m_withMenuItemRefresh = false; - this->m_withMenuItemBackend = false; + this->m_menus = MenuDisplayAutomatically; this->setCustomMenu(new CHighlightDbModelsMenu(this, true)); this->setCustomMenu(new CHighlightStashedModelsMenu(this, true)); break; case CAircraftModelListModel::OwnSimulatorModel: default: - this->m_withMenuDisplayAutomatically = true; - this->m_withMenuItemClear = false; - this->m_withMenuItemRefresh = true; - this->m_withMenuItemBackend = true; + this->m_menus = MenuDisplayAutomatically | MenuBackend | MenuRefresh; this->setCustomMenu(new CHighlightDbModelsMenu(this, true)); break; } @@ -130,6 +112,11 @@ namespace BlackGui }); } + void CAircraftModelView::addFilterDialog() + { + this->setFilterDialog(new CAircraftModelFilterDialog(this)); + } + void CAircraftModelView::dropEvent(QDropEvent *event) { if (!isDropAllowed()) { return; } diff --git a/src/blackgui/views/aircraftmodelview.h b/src/blackgui/views/aircraftmodelview.h index 1c0489b81..aec3e96f4 100644 --- a/src/blackgui/views/aircraftmodelview.h +++ b/src/blackgui/views/aircraftmodelview.h @@ -52,6 +52,9 @@ namespace BlackGui //! Add the technically supported metatypes as allows void setImplementedMetaTypeIds(); + //! Add my own filter dialog + void addFilterDialog(); + signals: //! Request to stash if applicable void requestStash(); diff --git a/src/blackgui/views/airlineicaoview.cpp b/src/blackgui/views/airlineicaoview.cpp index c996b7496..32088828e 100644 --- a/src/blackgui/views/airlineicaoview.cpp +++ b/src/blackgui/views/airlineicaoview.cpp @@ -19,7 +19,7 @@ namespace BlackGui { CAirlineIcaoCodeView::CAirlineIcaoCodeView(QWidget *parent) : CViewBase(parent) { - this->m_withMenuItemBackend = true; + this->m_menus |= MenuBackend; this->standardInit(new CAirlineIcaoCodeListModel(this)); } } diff --git a/src/blackgui/views/atcstationview.cpp b/src/blackgui/views/atcstationview.cpp index 9a78f4dd9..70e64d270 100644 --- a/src/blackgui/views/atcstationview.cpp +++ b/src/blackgui/views/atcstationview.cpp @@ -23,8 +23,7 @@ namespace BlackGui CAtcStationView::CAtcStationView(QWidget *parent) : CViewBase(parent) { this->standardInit(new CAtcStationListModel(CAtcStationListModel::StationsOnline, this)); - this->m_withMenuItemClear = true; - this->m_withMenuItemRefresh = true; + this->m_menus |= (MenuClear | MenuRefresh); } void CAtcStationView::setStationMode(CAtcStationListModel::AtcStationMode stationMode) diff --git a/src/blackgui/views/countryview.cpp b/src/blackgui/views/countryview.cpp index 62fcb3501..b0b3e3be7 100644 --- a/src/blackgui/views/countryview.cpp +++ b/src/blackgui/views/countryview.cpp @@ -18,7 +18,7 @@ namespace BlackGui { CCountryView::CCountryView(QWidget *parent) : CViewBase(parent) { - this->m_withMenuItemBackend = true; + this->m_menus |= MenuBackend; this->standardInit(new CCountryListModel(this)); } } diff --git a/src/blackgui/views/distributorview.cpp b/src/blackgui/views/distributorview.cpp index ef1ee79cf..63e5e0f4c 100644 --- a/src/blackgui/views/distributorview.cpp +++ b/src/blackgui/views/distributorview.cpp @@ -18,7 +18,7 @@ namespace BlackGui { CDistributorView::CDistributorView(QWidget *parent) : CViewBase(parent) { - this->m_withMenuItemBackend = true; + this->m_menus |= MenuBackend; this->standardInit(new CDistributorListModel(this)); } } diff --git a/src/blackgui/views/liveryview.cpp b/src/blackgui/views/liveryview.cpp index 95ede05f2..7c7635074 100644 --- a/src/blackgui/views/liveryview.cpp +++ b/src/blackgui/views/liveryview.cpp @@ -18,7 +18,7 @@ namespace BlackGui { CLiveryView::CLiveryView(QWidget *parent) : CViewBase(parent) { - this->m_withMenuItemBackend = true; + this->m_menus |= MenuBackend; this->standardInit(new CLiveryListModel(this)); } } diff --git a/src/blackgui/views/simulatedaircraftview.cpp b/src/blackgui/views/simulatedaircraftview.cpp index 0fedc03c1..798580486 100644 --- a/src/blackgui/views/simulatedaircraftview.cpp +++ b/src/blackgui/views/simulatedaircraftview.cpp @@ -22,7 +22,7 @@ namespace BlackGui CSimulatedAircraftView::CSimulatedAircraftView(QWidget *parent) : CViewBase(parent) { this->standardInit(new CSimulatedAircraftListModel(this)); - this->m_withMenuItemRefresh = true; + this->m_menus |= MenuRefresh; } void CSimulatedAircraftView::setAircraftMode(CSimulatedAircraftListModel::AircraftMode mode) diff --git a/src/blackgui/views/statusmessageview.cpp b/src/blackgui/views/statusmessageview.cpp index 31c3f72bb..f1e9311bf 100644 --- a/src/blackgui/views/statusmessageview.cpp +++ b/src/blackgui/views/statusmessageview.cpp @@ -20,7 +20,7 @@ namespace BlackGui { CStatusMessageView::CStatusMessageView(QWidget *parent) : CViewBase(parent) { - m_withMenuItemClear = true; + m_menus |= MenuClear; m_acceptRowSelected = true; this->standardInit(new CStatusMessageListModel(this)); } diff --git a/src/blackgui/views/textmessageview.cpp b/src/blackgui/views/textmessageview.cpp index 968cfd224..6f2d7c014 100644 --- a/src/blackgui/views/textmessageview.cpp +++ b/src/blackgui/views/textmessageview.cpp @@ -20,7 +20,7 @@ namespace BlackGui CTextMessageView::CTextMessageView(QWidget *parent) : CViewBase(parent) { this->standardInit(new CTextMessageListModel(CTextMessageListModel::FromTo, this)); - this->m_withMenuItemClear = true; + this->m_menus |= MenuClear; } void CTextMessageView::setTextMessageMode(CTextMessageListModel::TextMessageMode mode)