##// END OF EJS Templates
Removed interaction handling in QCP since they are implemented in...
Removed interaction handling in QCP since they are implemented in SciQLop Before the wheel interaction was done multiple times on QCP side first then on SciQLop side. Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>

File last commit:

r1328:eb278710ae3b
r1358:48660d9880a2
Show More
SelectionZoneAction.h
82 lines | 2.6 KiB | text/x-c | CLexer
/ gui / include / Actions / SelectionZoneAction.h
Adds a a gui controller class to manage global actions across the application.
r1076 #ifndef SCIQLOP_SELECTIONZONEACTION_H
#define SCIQLOP_SELECTIONZONEACTION_H
#include <Common/spimpl.h>
#include <QLoggingCategory>
#include <QObject>
#include <functional>
class VisualizationSelectionZoneItem;
Q_DECLARE_LOGGING_CATEGORY(LOG_SelectionZoneAction)
/**
* @brief The SelectionZoneAction class represents an action on a selection zone in the
* visualization.
*
* The action is a function that will be executed when the slot execute() is called.
*/
class SelectionZoneAction : public QObject {
Q_OBJECT
public:
/// Signature of the function associated to the action
using ExecuteFunction
= std::function<void(const QVector<VisualizationSelectionZoneItem *> &item)>;
Add a lambda in SeletionZoneAction to enable or disable the action
r1080 using EnableFunction
= std::function<bool(const QVector<VisualizationSelectionZoneItem *> &item)>;
Adds a a gui controller class to manage global actions across the application.
r1076 /**
* @param name the name of the action, displayed to the user
* @param fun the function that will be called when the action is executed
* @sa execute()
*/
explicit SelectionZoneAction(const QString &name, ExecuteFunction fun);
Put the align actions in sub menus
r1083 /**
* @param name the name of the action, displayed to the user
* @param subMenusList the list of sub menus where the action should be inserted
* @param fun the function that will be called when the action is executed
* @sa execute()
*/
explicit SelectionZoneAction(const QStringList &subMenuList, const QString &name,
ExecuteFunction fun);
Add a lambda in SeletionZoneAction to enable or disable the action
r1080 /// Sets the function which determine if the action should be enabled or disabled
void setEnableFunction(EnableFunction fun);
Add action to remove the selected zone with the "del" buttons
r1082 /// Sets the shortcut displayed by the action.
/// Note: The shortcut is only displayed and not active because it is not permanently stored
void setDisplayedShortcut(const QKeySequence &shortcut);
QKeySequence displayedShortcut() const;
Adds a a gui controller class to manage global actions across the application.
r1076 /// The name of the action
QString name() const noexcept;
Put the align actions in sub menus
r1083 /// The path in the sub menus, if any
QStringList subMenuList() const noexcept;
LineEdit to filter the create catalogue menu
r1328 /// Sets if filtering the action is allowed via a FilteringAction
void setAllowedFiltering(bool value);
/// Returns true if filtering the action is allowed via a FilteringAction. By default it is
/// allowed.
bool isFilteringAllowed() const;
Adds a a gui controller class to manage global actions across the application.
r1076 public slots:
/// Executes the action
void execute(const QVector<VisualizationSelectionZoneItem *> &item);
Add a lambda in SeletionZoneAction to enable or disable the action
r1080 /// Returns true if the action is enabled
bool isEnabled(const QVector<VisualizationSelectionZoneItem *> &item);
Adds a a gui controller class to manage global actions across the application.
r1076 private:
class SelectionZoneActionPrivate;
spimpl::unique_impl_ptr<SelectionZoneActionPrivate> impl;
};
#endif // SCIQLOP_SELECTIONZONEACTION_H