Skip to content

File SeriesMarker.hpp

File List > QAccelPlot > src > QAccelPlot > series > SeriesMarker.hpp

Go to the documentation of this file

//
// SPDX-FileCopyrightText: 2026 Michal Grabarczyk
// SPDX-License-Identifier: GPL-3.0-only WITH Universal-FOSS-exception-1.0
//
// This file is also available under a separate commercial license.
// See COMMERCIAL-LICENSING.md for contact information.
//
#pragma once

#include "QAccelPlot/series/MarkerShape.hpp"

#include <QObject>

namespace QAccelPlot {

class SeriesMarker : public QObject {
    Q_OBJECT
    QML_ANONYMOUS

    Q_PROPERTY(MarkerShape shape READ shape WRITE setShape NOTIFY shapeChanged)
    Q_PROPERTY(qreal size READ size WRITE setSize NOTIFY sizeChanged)
    Q_PROPERTY(bool filled READ filled WRITE setFilled NOTIFY filledChanged)
    Q_PROPERTY(qreal strokeWidth READ strokeWidth WRITE setStrokeWidth NOTIFY strokeWidthChanged)

public:
    enum class NoneShape { Accepted, Rejected };

    SeriesMarker(MarkerShape shape, qreal size, NoneShape noneShape, QObject* parent);

    MarkerShape shape() const;
    void setShape(MarkerShape shape);

    qreal size() const;
    void setSize(qreal size);

    bool filled() const;
    void setFilled(bool filled);

    qreal strokeWidth() const;
    void setStrokeWidth(qreal width);

signals:
    void shapeChanged();
    void sizeChanged();
    void filledChanged();
    void strokeWidthChanged();

private:
    MarkerShape shape_;
    qreal size_;
    NoneShape noneShape_;
    bool filled_{true};
    qreal strokeWidth_{1.0};
};

} // namespace QAccelPlot