SqpApplication.h
76 lines
| 2.6 KiB
| text/x-c
|
CLexer
r21 | #ifndef SCIQLOP_SQPAPPLICATION_H | |||
#define SCIQLOP_SQPAPPLICATION_H | ||||
#include "SqpApplication.h" | ||||
#include <QApplication> | ||||
#include <QLoggingCategory> | ||||
#include <Common/spimpl.h> | ||||
Q_DECLARE_LOGGING_CATEGORY(LOG_SqpApplication) | ||||
Alexandre Leroux
|
r34 | #if defined(sqpApp) | ||
#undef sqpApp | ||||
#endif | ||||
#define sqpApp (static_cast<SqpApplication *>(QCoreApplication::instance())) | ||||
Alexandre Leroux
|
r33 | class DataSourceController; | ||
r339 | class NetworkController; | |||
r193 | class TimeController; | |||
Alexandre Leroux
|
r111 | class VariableController; | ||
r1348 | class VariableController2; | |||
class VariableModel2; | ||||
r53 | class VisualizationController; | |||
r1075 | class DragDropGuiController; | |||
r1076 | class ActionsGuiController; | |||
r1144 | class CatalogueController; | |||
Alexandre Leroux
|
r33 | |||
r21 | /** | |||
* @brief The SqpApplication class aims to make the link between SciQlop | ||||
Alexandre Leroux
|
r32 | * and its plugins. This is the intermediate class that SciQlop has to use | ||
* in the way to connect a data source. Please first use load method to initialize | ||||
r21 | * a plugin specified by its metadata name (JSON plugin source) then others specifics | |||
Alexandre Leroux
|
r32 | * method will be able to access it. | ||
r21 | * You can load a data source driver plugin then create a data source. | |||
*/ | ||||
r24 | ||||
r21 | class SqpApplication : public QApplication { | |||
Q_OBJECT | ||||
public: | ||||
explicit SqpApplication(int &argc, char **argv); | ||||
r1348 | ~SqpApplication() override; | |||
r21 | void initialize(); | |||
r53 | /// Accessors for the differents sciqlop controllers | |||
Alexandre Leroux
|
r116 | DataSourceController &dataSourceController() noexcept; | ||
r339 | NetworkController &networkController() noexcept; | |||
r193 | TimeController &timeController() noexcept; | |||
r1348 | VariableController2 &variableController() noexcept; | |||
std::shared_ptr<VariableController2> variableControllerOwner() noexcept; | ||||
//@TODO there should not be any global model it's just GUI impl detail | ||||
// VariableModel2 &variableModel() noexcept; | ||||
Alexandre Leroux
|
r116 | VisualizationController &visualizationController() noexcept; | ||
r1144 | CatalogueController &catalogueController() noexcept; | |||
Alexandre Leroux
|
r33 | |||
r850 | /// Accessors for the differents sciqlop helpers, these helpers classes are like controllers but | |||
/// doesn't live in a thread and access gui | ||||
r1075 | DragDropGuiController &dragDropGuiController() noexcept; | |||
r1076 | ActionsGuiController &actionsGuiController() noexcept; | |||
r837 | ||||
r957 | enum class PlotsInteractionMode { None, ZoomBox, DragAndDrop, SelectionZones }; | |||
enum class PlotsCursorMode { NoCursor, Vertical, Temporal, Horizontal, Cross }; | ||||
PlotsInteractionMode plotsInteractionMode() const; | ||||
void setPlotsInteractionMode(PlotsInteractionMode mode); | ||||
PlotsCursorMode plotsCursorMode() const; | ||||
void setPlotsCursorMode(PlotsCursorMode mode); | ||||
r21 | private: | |||
class SqpApplicationPrivate; | ||||
spimpl::unique_impl_ptr<SqpApplicationPrivate> impl; | ||||
}; | ||||
#endif // SCIQLOP_SQPAPPLICATION_H | ||||