14class ArrangerObjectColor :
public QObject
17 Q_PROPERTY (
bool useColor READ useColor NOTIFY useColorChanged)
18 Q_PROPERTY (QColor color READ color WRITE setColor NOTIFY colorChanged)
23 ArrangerObjectColor (QObject * parent =
nullptr) noexcept : QObject (parent)
26 ~ArrangerObjectColor ()
noexcept override =
default;
27 Z_DISABLE_COPY_MOVE (ArrangerObjectColor)
35 bool useColor ()
const {
return color_.has_value (); }
41 return color_->to_qcolor ();
45 void setColor (QColor color);
47 Q_INVOKABLE
void unsetColor ()
50 Q_EMIT useColorChanged (
false);
53 Q_SIGNAL
void colorChanged (QColor color);
54 Q_SIGNAL
void useColorChanged (
bool use_color);
59 static constexpr std::string_view kColorKey =
"color";
60 friend void to_json (nlohmann::json &j,
const ArrangerObjectColor &obj);
61 friend void from_json (
const nlohmann::json &j, ArrangerObjectColor &obj);
62 friend void init_from (
63 ArrangerObjectColor &obj,
64 const ArrangerObjectColor &other,
73 std::optional<Color> color_;
75 BOOST_DESCRIBE_CLASS (ArrangerObjectColor, (), (), (), (color_))