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

File last commit:

r1347:12c6415397ca
r1349:aa6b3e9d2907 merge
Show More
VisualizationSelectionZoneItem.h
73 lines | 2.9 KiB | text/x-c | CLexer
/ gui / include / Visualization / VisualizationSelectionZoneItem.h
Display of selection zones on a graph
r1084 #ifndef SCIQLOP_VISUALIZATIONSELECTIONZONEITEM_H
#define SCIQLOP_VISUALIZATIONSELECTIONZONEITEM_H
#include <Common/spimpl.h>
#include <Data/SqpRange.h>
#include <Visualization/qcustomplot.h>
Action "Remove Selected Zones"
r1114 class VisualizationGraphWidget;
Display of selection zones on a graph
r1084 class VisualizationSelectionZoneItem : public QCPItemRect {
Link between selection zone item and event
r1347 Q_OBJECT
signals:
/// Signal emitted when the zone range is edited manually
void rangeEdited(const SqpRange &range);
multi selection of zones
r1089
Display of selection zones on a graph
r1084 public:
VisualizationSelectionZoneItem(QCustomPlot *plot);
virtual ~VisualizationSelectionZoneItem();
Action "Remove Selected Zones"
r1114 VisualizationGraphWidget *parentGraphWidget() const noexcept;
Display of selection zones on a graph
r1084 void setName(const QString &name);
QString name() const;
SqpRange range() const;
void setRange(double tstart, double tend);
void setStart(double tstart);
void setEnd(double tend);
void setColor(const QColor &color);
void setEditionEnabled(bool value);
bool isEditionEnabled() const;
Selection of stacked zone via a dialog box
r1120 /// Moves the item at the top of its QCPLayer. It will then receive the mouse events if multiple
/// items are stacked on top of each others.
void moveToTop();
Display of selection zones on a graph
r1084 Qt::CursorShape curshorShapeForPosition(const QPoint &position) const;
void setHovered(bool value);
Alignment actions for zone selections
r1116 /// Sets the zones which should be moved or reisized together with this zone
Resize and move of multiple zones together
r1090 void setAssociatedEditedZones(const QVector<VisualizationSelectionZoneItem *> &associatedZones);
Alignment actions for zone selections
r1116 /// Align the specified zones with this one, vertically with the left border
bool alignZonesVerticallyOnLeft(const QVector<VisualizationSelectionZoneItem *> &zonesToAlign,
bool allowResize);
/// Align the specified zones with this one, vertically with the right border
bool alignZonesVerticallyOnRight(const QVector<VisualizationSelectionZoneItem *> &zonesToAlign,
bool allowResize);
/// Align the specified zones with this one, temporally with the left border
bool alignZonesTemporallyOnLeft(const QVector<VisualizationSelectionZoneItem *> &zonesToAlign,
bool allowResize);
/// Align the specified zones with this one, temporally with the right border
bool alignZonesTemporallyOnRight(const QVector<VisualizationSelectionZoneItem *> &zonesToAlign,
bool allowResize);
Display of selection zones on a graph
r1084 protected:
void mousePressEvent(QMouseEvent *event, const QVariant &details) override;
void mouseMoveEvent(QMouseEvent *event, const QPointF &startPos) override;
void mouseReleaseEvent(QMouseEvent *event, const QPointF &startPos) override;
Resize and move of multiple zones together
r1090 void resizeLeft(double pixelDiff);
void resizeRight(double pixelDiff);
void move(double pixelDiff);
Display of selection zones on a graph
r1084 private:
class VisualizationSelectionZoneItemPrivate;
spimpl::unique_impl_ptr<VisualizationSelectionZoneItemPrivate> impl;
};
#endif // SCIQLOP_VISUALIZATIONSELECTIONZONEITEM_H