##// END OF EJS Templates
Merge branch 'feature/CataloguePart7' into develop
Merge branch 'feature/CataloguePart7' into develop

File last commit:

r1382:eb278710ae3b
r1383:4dfca649988f merge
Show More
SelectionZoneAction.cpp
77 lines | 2.3 KiB | text/x-c | CppLexer
/ gui / src / Actions / SelectionZoneAction.cpp
Adds a a gui controller class to manage global actions across the application.
r1111 #include <Actions/SelectionZoneAction.h>
#include <Visualization/VisualizationSelectionZoneItem.h>
Q_LOGGING_CATEGORY(LOG_SelectionZoneAction, "SelectionZoneAction")
struct SelectionZoneAction::SelectionZoneActionPrivate {
Put the align actions in sub menus
r1118 explicit SelectionZoneActionPrivate(const QString &name, const QStringList &subMenuList,
Adds a a gui controller class to manage global actions across the application.
r1111 SelectionZoneAction::ExecuteFunction fun)
Put the align actions in sub menus
r1118 : m_Name{name}, m_SubMenuList{subMenuList}, m_Fun{std::move(fun)}
Adds a a gui controller class to manage global actions across the application.
r1111 {
}
QString m_Name;
Put the align actions in sub menus
r1118 QStringList m_SubMenuList;
Add action to remove the selected zone with the "del" buttons
r1117 QKeySequence m_DisplayedShortcut;
Adds a a gui controller class to manage global actions across the application.
r1111 SelectionZoneAction::ExecuteFunction m_Fun;
Add a lambda in SeletionZoneAction to enable or disable the action
r1115 SelectionZoneAction::EnableFunction m_EnableFun = [](auto zones) { return true; };
LineEdit to filter the create catalogue menu
r1382 bool m_FilteringAllowed = true;
Adds a a gui controller class to manage global actions across the application.
r1111 };
SelectionZoneAction::SelectionZoneAction(const QString &name, ExecuteFunction fun)
Put the align actions in sub menus
r1118 : impl{spimpl::make_unique_impl<SelectionZoneActionPrivate>(name, QStringList{},
std::move(fun))}
{
}
SelectionZoneAction::SelectionZoneAction(const QStringList &subMenuList, const QString &name,
SelectionZoneAction::ExecuteFunction fun)
: impl{spimpl::make_unique_impl<SelectionZoneActionPrivate>(name, subMenuList,
std::move(fun))}
Adds a a gui controller class to manage global actions across the application.
r1111 {
}
Add a lambda in SeletionZoneAction to enable or disable the action
r1115 void SelectionZoneAction::setEnableFunction(EnableFunction fun)
{
impl->m_EnableFun = std::move(fun);
}
Add action to remove the selected zone with the "del" buttons
r1117 void SelectionZoneAction::setDisplayedShortcut(const QKeySequence &shortcut)
{
impl->m_DisplayedShortcut = shortcut;
}
QKeySequence SelectionZoneAction::displayedShortcut() const
{
return impl->m_DisplayedShortcut;
}
Adds a a gui controller class to manage global actions across the application.
r1111 QString SelectionZoneAction::name() const noexcept
{
return impl->m_Name;
}
Put the align actions in sub menus
r1118 QStringList SelectionZoneAction::subMenuList() const noexcept
{
return impl->m_SubMenuList;
}
LineEdit to filter the create catalogue menu
r1382 void SelectionZoneAction::setAllowedFiltering(bool value)
{
impl->m_FilteringAllowed = value;
}
bool SelectionZoneAction::isFilteringAllowed() const
{
return impl->m_FilteringAllowed;
}
Adds a a gui controller class to manage global actions across the application.
r1111 void SelectionZoneAction::execute(const QVector<VisualizationSelectionZoneItem *> &item)
{
impl->m_Fun(item);
}
Add a lambda in SeletionZoneAction to enable or disable the action
r1115
bool SelectionZoneAction::isEnabled(const QVector<VisualizationSelectionZoneItem *> &item)
{
return impl->m_EnableFun(item);
}