GenerateVariableMenuOperation.h
49 lines
| 1.8 KiB
| text/x-c
|
CLexer
Alexandre Leroux
|
r210 | #ifndef SCIQLOP_GENERATEVARIABLEMENUOPERATION_H | ||
#define SCIQLOP_GENERATEVARIABLEMENUOPERATION_H | ||||
#include "Visualization/IVisualizationWidgetVisitor.h" | ||||
#include <Common/spimpl.h> | ||||
Alexandre Leroux
|
r211 | #include <QLoggingCategory> | ||
Alexandre Leroux
|
r736 | #include <set> | ||
Alexandre Leroux
|
r210 | class QMenu; | ||
Alexandre Leroux
|
r736 | class IVisualizationWidget; | ||
r1420 | class Variable2; | |||
Alexandre Leroux
|
r210 | |||
Alexandre Leroux
|
r211 | Q_DECLARE_LOGGING_CATEGORY(LOG_GenerateVariableMenuOperation) | ||
Alexandre Leroux
|
r210 | /** | ||
* @brief The GenerateVariableMenuOperation class defines an operation that traverses all of | ||||
* visualization widgets to determine which can accommodate a variable. The result of the operation | ||||
* is a menu that contains actions to add the variable into the containers. | ||||
*/ | ||||
r1420 | class GenerateVariableMenuOperation : public IVisualizationWidgetVisitor | |||
{ | ||||
Alexandre Leroux
|
r210 | public: | ||
/** | ||||
* Ctor | ||||
* @param menu the menu to which to attach the generated menu | ||||
* @param variable the variable for which to generate the menu | ||||
Alexandre Leroux
|
r736 | * @param variableContainers the containers that already contain the variable for which to | ||
* generate the menu | ||||
Alexandre Leroux
|
r210 | */ | ||
r1420 | explicit GenerateVariableMenuOperation(QMenu* menu, std::shared_ptr<Variable2> variable, | |||
std::set<IVisualizationWidget*> variableContainers); | ||||
void visitEnter(VisualizationWidget* widget) override final; | ||||
void visitLeave(VisualizationWidget* widget) override final; | ||||
void visitEnter(VisualizationTabWidget* tabWidget) override final; | ||||
void visitLeave(VisualizationTabWidget* tabWidget) override final; | ||||
void visitEnter(VisualizationZoneWidget* zoneWidget) override final; | ||||
void visitLeave(VisualizationZoneWidget* zoneWidget) override final; | ||||
void visit(VisualizationGraphWidget* graphWidget) override final; | ||||
Alexandre Leroux
|
r210 | |||
private: | ||||
class GenerateVariableMenuOperationPrivate; | ||||
spimpl::unique_impl_ptr<GenerateVariableMenuOperationPrivate> impl; | ||||
}; | ||||
#endif // SCIQLOP_GENERATEVARIABLEMENUOPERATION_H | ||||