From c1bfd2f6eefedd95abe64795d49dec653073cccd Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Mon, 1 Feb 2016 03:27:01 +0100 Subject: [PATCH] refs #577, better context menus --- src/blackgui/components/dbmodelcomponent.cpp | 1 - src/blackgui/views/aircrafticaoview.cpp | 5 +++-- src/blackgui/views/aircraftmodelview.cpp | 10 +++++----- src/blackgui/views/airlineicaoview.cpp | 5 +++-- src/blackgui/views/countryview.cpp | 5 +++-- src/blackgui/views/distributorview.cpp | 5 +++-- src/blackgui/views/liveryview.cpp | 5 +++-- src/blackgui/views/viewbase.h | 11 ++++++++++- 8 files changed, 30 insertions(+), 17 deletions(-) diff --git a/src/blackgui/components/dbmodelcomponent.cpp b/src/blackgui/components/dbmodelcomponent.cpp index f76d43c62..f5654ed07 100644 --- a/src/blackgui/components/dbmodelcomponent.cpp +++ b/src/blackgui/components/dbmodelcomponent.cpp @@ -40,7 +40,6 @@ namespace BlackGui // configure view this->ui->tvp_AircraftModel->setFilterWidget(this->ui->filter_AircraftModelFilter); this->ui->tvp_AircraftModel->allowDragDropValueObjects(true, false); - this->ui->tvp_AircraftModel->menuAddItems(CAircraftModelView::MenuCanStashModels); } CDbModelComponent::~CDbModelComponent() diff --git a/src/blackgui/views/aircrafticaoview.cpp b/src/blackgui/views/aircrafticaoview.cpp index ac65755ff..2fe51511d 100644 --- a/src/blackgui/views/aircrafticaoview.cpp +++ b/src/blackgui/views/aircrafticaoview.cpp @@ -17,10 +17,11 @@ namespace BlackGui { namespace Views { - CAircraftIcaoCodeView::CAircraftIcaoCodeView(QWidget *parent) : CViewWithDbObjects(parent) + CAircraftIcaoCodeView::CAircraftIcaoCodeView(QWidget *parent) : + CViewWithDbObjects(parent) { - this->m_menus |= MenuBackend; this->standardInit(new CAircraftIcaoCodeListModel(this)); + this->setMenu(MenuDefaultDbViews); } } } // namespace diff --git a/src/blackgui/views/aircraftmodelview.cpp b/src/blackgui/views/aircraftmodelview.cpp index 9f080584d..daea9996c 100644 --- a/src/blackgui/views/aircraftmodelview.cpp +++ b/src/blackgui/views/aircraftmodelview.cpp @@ -52,20 +52,20 @@ namespace BlackGui switch (mode) { case CAircraftModelListModel::StashModel: - this->m_menus = MenuClear | MenuHighlightDbData; + this->m_menus = MenuDefaultNoClear | MenuHighlightDbData; break; case CAircraftModelListModel::Database: - this->m_menus = MenuBackend; + this->m_menus = MenuDefaultDbViews; break; case CAircraftModelListModel::VPilotRuleModel: - this->m_menus = MenuRefresh | MenuStashing | MenuToggleSelectionMode; + this->m_menus = MenuDefaultNoClear | MenuStashing; break; case CAircraftModelListModel::OwnSimulatorModelMapping: - this->m_menus = MenuDisplayAutomatically | MenuStashing | MenuHighlightDbData | MenuToggleSelectionMode; + this->m_menus = MenuDefaultNoClear | MenuStashing | MenuHighlightDbData | MenuLoadAndSave; break; case CAircraftModelListModel::OwnSimulatorModel: default: - this->m_menus = MenuDisplayAutomatically | MenuBackend | MenuRefresh | MenuHighlightDbData; + this->m_menus = MenuDefaultNoClear | MenuBackend | MenuHighlightDbData; break; } } diff --git a/src/blackgui/views/airlineicaoview.cpp b/src/blackgui/views/airlineicaoview.cpp index 3159bb44c..649595b0e 100644 --- a/src/blackgui/views/airlineicaoview.cpp +++ b/src/blackgui/views/airlineicaoview.cpp @@ -17,10 +17,11 @@ namespace BlackGui { namespace Views { - CAirlineIcaoCodeView::CAirlineIcaoCodeView(QWidget *parent) : CViewWithDbObjects(parent) + CAirlineIcaoCodeView::CAirlineIcaoCodeView(QWidget *parent) : + CViewWithDbObjects(parent) { - this->m_menus |= MenuBackend; this->standardInit(new CAirlineIcaoCodeListModel(this)); + this->setMenu(MenuDefaultDbViews); } } } // namespace diff --git a/src/blackgui/views/countryview.cpp b/src/blackgui/views/countryview.cpp index b0b3e3be7..59a5b26b9 100644 --- a/src/blackgui/views/countryview.cpp +++ b/src/blackgui/views/countryview.cpp @@ -16,10 +16,11 @@ namespace BlackGui { namespace Views { - CCountryView::CCountryView(QWidget *parent) : CViewBase(parent) + CCountryView::CCountryView(QWidget *parent) : + CViewBase(parent) { - this->m_menus |= MenuBackend; this->standardInit(new CCountryListModel(this)); + this->setMenu(MenuDefaultDbViews); } } } // namespace diff --git a/src/blackgui/views/distributorview.cpp b/src/blackgui/views/distributorview.cpp index c3f744bd2..2bfa8bce5 100644 --- a/src/blackgui/views/distributorview.cpp +++ b/src/blackgui/views/distributorview.cpp @@ -16,10 +16,11 @@ namespace BlackGui { namespace Views { - CDistributorView::CDistributorView(QWidget *parent) : CViewWithDbObjects(parent) + CDistributorView::CDistributorView(QWidget *parent) : + CViewWithDbObjects(parent) { - this->m_menus |= MenuBackend; this->standardInit(new CDistributorListModel(this)); + this->setMenu(MenuDefaultDbViews); } } } // namespace diff --git a/src/blackgui/views/liveryview.cpp b/src/blackgui/views/liveryview.cpp index d1c7af8f7..cd411947d 100644 --- a/src/blackgui/views/liveryview.cpp +++ b/src/blackgui/views/liveryview.cpp @@ -16,10 +16,11 @@ namespace BlackGui { namespace Views { - CLiveryView::CLiveryView(QWidget *parent) : CViewWithDbObjects(parent) + CLiveryView::CLiveryView(QWidget *parent) : + CViewWithDbObjects(parent) { - this->m_menus |= MenuBackend; this->standardInit(new CLiveryListModel(this)); + this->setMenu(MenuDefaultDbViews); } } } // namespace diff --git a/src/blackgui/views/viewbase.h b/src/blackgui/views/viewbase.h index a8a4fa716..f45352813 100644 --- a/src/blackgui/views/viewbase.h +++ b/src/blackgui/views/viewbase.h @@ -74,6 +74,7 @@ namespace BlackGui MenuRefresh = 1 << 2, ///< allow refreshing the view via menu MenuBackend = 1 << 3, ///< allow to request data from backend MenuDisplayAutomatically = 1 << 4, ///< allow to switch display automatically + MenuDisplayAutomaticallyAndRefresh = MenuDisplayAutomatically | MenuRefresh, ///< should come together MenuFilter = 1 << 5, ///< filter can be opened MenuSave = 1 << 6, ///< save as JSON MenuLoad = 1 << 7, ///< load from JSON @@ -81,7 +82,9 @@ namespace BlackGui MenuStandard = MenuClear | MenuRemoveSelectedRows | MenuRefresh | MenuBackend | MenuDisplayAutomatically | MenuFilter | MenuSave | MenuLoad | MenuToggleSelectionMode, MenuLoadAndSave = MenuLoad | MenuSave, - MenuDefault = MenuClear | MenuDisplayAutomatically | MenuToggleSelectionMode, + MenuDefault = MenuClear | MenuDisplayAutomaticallyAndRefresh | MenuToggleSelectionMode, + MenuDefaultNoClear = MenuDisplayAutomaticallyAndRefresh | MenuToggleSelectionMode, + MenuDefaultDbViews = MenuToggleSelectionMode | MenuBackend, // special menus, should be in derived classes, but enums cannot be inherited // maybe shifted in the future to elsewhere MenuHighlightDbData = 1 << 9, ///< highlight DB data @@ -182,6 +185,12 @@ namespace BlackGui //! Add given menu items void menuAddItems(Menu menusToRemove); + //! Set menu items + void setMenu(Menu menuItems) { this->m_menus = menuItems; } + + //! Menus + Menu getMenu() const { return this->m_menus; } + //! \copydoc QTableView::setSelectionModel(); virtual void setSelectionModel(QItemSelectionModel *model) override;