Ref T30, integrated font menu into view base

This commit is contained in:
Klaus Basan
2017-07-05 02:40:52 +02:00
committed by Mathew Sutcliffe
parent 3c9435c1cf
commit 534ba5f9ec
2 changed files with 26 additions and 13 deletions

View File

@@ -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)
{

View File

@@ -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