SqpApplication.h
67 lines
| 2.2 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; | ||
r53 | class VisualizationController; | |||
r837 | class DragDropHelper; | |||
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); | ||||
virtual ~SqpApplication(); | ||||
void initialize(); | ||||
r53 | /// Accessors for the differents sciqlop controllers | |||
Alexandre Leroux
|
r116 | DataSourceController &dataSourceController() noexcept; | ||
r339 | NetworkController &networkController() noexcept; | |||
r193 | TimeController &timeController() noexcept; | |||
Alexandre Leroux
|
r116 | VariableController &variableController() noexcept; | ||
VisualizationController &visualizationController() 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 | ||||
r837 | DragDropHelper &dragDropHelper() noexcept; | |||
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 | ||||