diff --git a/src/assets/view/widgets/curves/curveparamwidget.h b/src/assets/view/widgets/curves/curveparamwidget.h index 62f2a3429..6a28f5cf7 100644 --- a/src/assets/view/widgets/curves/curveparamwidget.h +++ b/src/assets/view/widgets/curves/curveparamwidget.h @@ -1,106 +1,105 @@ /*************************************************************************** * Copyright (C) 2016 by Nicolas Carion * * This file is part of Kdenlive. See www.kdenlive.org. * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) version 3 or any later version accepted by the * * membership of KDE e.V. (or its successor approved by the membership * * of KDE e.V.), which shall act as a proxy defined in Section 14 of * * version 3 of the license. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #ifndef CURVEPARAMWIDGET_H #define CURVEPARAMWIDGET_H #include "../abstractparamwidget.hpp" #include "bezier/beziersplineeditor.h" #include "cubic/kis_curve_widget.h" #include "ui_bezierspline_ui.h" #include "widgets/dragvalue.h" template class ValueLabel; /** @brief Class representing a curve and some additional controls */ template class CurveParamWidget : public AbstractParamWidget { public: ~CurveParamWidget() override = default; - ; CurveParamWidget(std::shared_ptr model, QModelIndex index, QWidget *parent); enum class CurveModes { Red = 0, Green = 1, Blue = 2, Luma = 3, Alpha = 4, RGB = 5, Hue = 6, Saturation = 7 }; /** @brief sets the mode of the curve. This affects the background that is displayed. * The list of available modes depends on the CurveWidget that we have */ void setMode(CurveModes mode); /** @brief Stringify the content of the curve */ QString toString() const; using Point_t = typename CurveWidget_t::Point_t; /** @brief returns the list of points on the curve */ QList getPoints() { return m_edit->getPoints(); } /** @brief Set the maximal number of points on the curve. This function is only available for KisCurveWidget. */ void setMaxPoints(int max); /** @brief Helper function to convert a mode to the corresponding ColorsRGB value. This avoids using potentially non consistent intermediate cast to int */ static ColorTools::ColorsRGB modeToColorsRGB(CurveModes mode); protected: void deleteIrrelevantItems(); void setupLayoutPoint(); void setupLayoutHandles(); void slotGridChange(); void slotShowPixmap(bool show); void slotUpdatePointEntries(const BPoint &p, bool extremal); void slotUpdatePointEntries(const QPointF &p, bool extremal); void slotUpdatePointP(double /*value*/, bool final); void slotUpdatePointH1(double /*value*/, bool final); void slotUpdatePointH2(double /*value*/, bool final); void slotSetHandlesLinked(bool linked); void slotShowAllHandles(bool show); public slots: /** @brief Toggle the comments on or off */ void slotShowComment(bool show) override; /** @brief refresh the properties to reflect changes in the model */ void slotRefresh() override; private: Ui::BezierSpline_UI m_ui; DragValue *m_pX; DragValue *m_pY; DragValue *m_h1X; DragValue *m_h1Y; DragValue *m_h2X; DragValue *m_h2Y; CurveWidget_t *m_edit; CurveModes m_mode; bool m_showPixmap; ValueLabel *m_leftParam, *m_bottomParam; }; #include "curveparamwidget.ipp" #endif