mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-31 12:55:33 +08:00
Ref T30, integrated font menu into view base
This commit is contained in:
committed by
Mathew Sutcliffe
parent
3c9435c1cf
commit
534ba5f9ec
@@ -17,6 +17,7 @@
|
||||
#include "blackgui/models/allmodels.h"
|
||||
#include "blackgui/menus/menuaction.h"
|
||||
#include "blackgui/menus/menudelegate.h"
|
||||
#include "blackgui/menus/fontmenus.h"
|
||||
#include "blackgui/shortcut.h"
|
||||
#include "blackgui/views/viewbase.h"
|
||||
#include "blackgui/views/viewbaseproxystyle.h"
|
||||
@@ -126,6 +127,9 @@ namespace BlackGui
|
||||
deleteRow->setObjectName("Delete selected rows for " + this->objectName());
|
||||
QShortcut *copy = new QShortcut(CShortcut::keyCopy(), this, SLOT(ps_copy()), nullptr, Qt::WidgetShortcut);
|
||||
copy->setObjectName("Copy rows for " + this->objectName());
|
||||
|
||||
// Font menus
|
||||
m_fontMenu = new CFontMenu(this, true);
|
||||
}
|
||||
|
||||
bool CViewBaseNonTemplate::setParentDockWidgetInfoArea(CDockWidgetInfoArea *parentDockableWidget)
|
||||
@@ -165,7 +169,7 @@ namespace BlackGui
|
||||
this->setFilterWidgetImpl(filterDialog);
|
||||
if (filterDialog)
|
||||
{
|
||||
bool s = connect(filterDialog, &CFilterDialog::finished, this, &CViewBaseNonTemplate::ps_filterDialogFinished);
|
||||
const bool s = connect(filterDialog, &CFilterDialog::finished, this, &CViewBaseNonTemplate::ps_filterDialogFinished);
|
||||
Q_ASSERT_X(s, Q_FUNC_INFO, "filter dialog connect");
|
||||
Q_UNUSED(s);
|
||||
}
|
||||
@@ -226,7 +230,7 @@ namespace BlackGui
|
||||
{
|
||||
// new menu with nesting
|
||||
menu->setNestedDelegate(this->m_menu);
|
||||
m_menu = menu;
|
||||
m_menu = menu;
|
||||
}
|
||||
else if (!menu && nestPreviousMenu)
|
||||
{
|
||||
@@ -352,6 +356,10 @@ namespace BlackGui
|
||||
if (this->m_menus.testFlag(MenuCopy)) { menuActions.addActions(this->initMenuActions(MenuCopy)); }
|
||||
if (this->m_menus.testFlag(MenuCut)) { menuActions.addActions(this->initMenuActions(MenuCut)); }
|
||||
if (this->m_menus.testFlag(MenuPaste)) { menuActions.addActions(this->initMenuActions(MenuPaste)); }
|
||||
if (this->m_menus.testFlag(MenuFont))
|
||||
{
|
||||
menuActions.addActions(m_fontMenu->getActions(), CMenuAction::pathFont());
|
||||
}
|
||||
|
||||
if (this->m_menus.testFlag(MenuFilter) && m_filterWidget)
|
||||
{
|
||||
|
||||
@@ -57,7 +57,12 @@ namespace BlackGui
|
||||
class CDockWidgetInfoArea;
|
||||
class CLoadIndicator;
|
||||
|
||||
namespace Menus { class IMenuDelegate; }
|
||||
namespace Menus
|
||||
{
|
||||
class IMenuDelegate;
|
||||
class CFontMenu;
|
||||
}
|
||||
|
||||
namespace Filters
|
||||
{
|
||||
class CFilterDialog;
|
||||
@@ -116,16 +121,15 @@ namespace BlackGui
|
||||
MenuCopy = 1 << 11, //!< copy (for copy/paste)
|
||||
MenuPaste = 1 << 12, //!< paste (for copy/paste)
|
||||
MenuCut = 1 << 13, //!< cut (for copy/paste)
|
||||
MenuStandard = MenuClear | MenuRemoveSelectedRows | MenuRefresh | MenuBackend |
|
||||
MenuDisplayAutomatically | MenuFilter | MenuSave | MenuLoad | MenuToggleSelectionMode,
|
||||
MenuFont = 1 << 14, //!< font related menu (size)
|
||||
MenuLoadAndSave = MenuLoad | MenuSave,
|
||||
MenuDefault = MenuClear | MenuDisplayAutomaticallyAndRefresh | MenuToggleSelectionMode,
|
||||
MenuDefaultNoClear = MenuDisplayAutomaticallyAndRefresh | MenuToggleSelectionMode,
|
||||
MenuDefaultDbViews = MenuToggleSelectionMode | MenuBackend,
|
||||
MenuDefault = MenuToggleSelectionMode | MenuDisplayAutomaticallyAndRefresh | MenuFont | MenuClear,
|
||||
MenuDefaultNoClear = MenuToggleSelectionMode | MenuDisplayAutomaticallyAndRefresh | MenuFont,
|
||||
MenuDefaultDbViews = MenuToggleSelectionMode | MenuBackend | MenuFont,
|
||||
// special menus, should be in derived classes, but enums cannot be inherited
|
||||
// maybe shifted in the future to elsewhere
|
||||
MenuHighlightStashed = 1 << 14, //!< highlight stashed models
|
||||
MenuCanStashModels = 1 << 15, //!< stash models
|
||||
MenuHighlightStashed = 1 << 15, //!< highlight stashed models
|
||||
MenuCanStashModels = 1 << 16, //!< stash models
|
||||
MenuStashing = MenuHighlightStashed | MenuCanStashModels,
|
||||
};
|
||||
Q_DECLARE_FLAGS(Menu, MenuFlag)
|
||||
@@ -421,8 +425,9 @@ namespace BlackGui
|
||||
bool m_enableDeleteSelectedRows = false; //!< selected rows can be deleted
|
||||
bool m_dropIndicator = false; //!< draw indicator
|
||||
QWidget *m_filterWidget = nullptr; //!< filter widget or dialog
|
||||
Menu m_menus = MenuDefault; //!< Default menu settings
|
||||
Menu m_menus = MenuDefault; //!< Default menu settings
|
||||
BlackGui::Menus::IMenuDelegate *m_menu = nullptr; //!< custom menu if any
|
||||
BlackGui::Menus::CFontMenu *m_fontMenu = nullptr; //!< font menu if applicable
|
||||
BlackGui::CLoadIndicator *m_loadIndicator = nullptr; //!< load indicator if needed
|
||||
QMap<MenuFlag, BlackGui::Menus::CMenuActions> m_menuFlagActions; //!< initialized actions
|
||||
BlackMisc::CSettingReadOnly<BlackGui::Settings::TGeneralGui> m_guiSettings { this, &CViewBaseNonTemplate::settingsChanged }; //!< general GUI settings
|
||||
@@ -527,8 +532,8 @@ namespace BlackGui
|
||||
public CViewBaseNonTemplate,
|
||||
public BlackGui::Models::ISelectionModel<ContainerType>
|
||||
{
|
||||
// I cannot use Q_OBJECT here, because of error: Template classes not supported by Q_OBJECT
|
||||
// Cannot declare slots as SLOT because I have no Q_OBJECT macro
|
||||
// I cannot use Q_OBJECT here, because: Template classes are not supported by Q_OBJECT
|
||||
// and I cannot declare slots as SLOT because I have no Q_OBJECT macro
|
||||
|
||||
public:
|
||||
//! Destructor
|
||||
|
||||
Reference in New Issue
Block a user