19class ArrangerObjectName :
public QObject
22 Q_PROPERTY (QString name READ name WRITE setName NOTIFY nameChanged)
26 ArrangerObjectName (QObject * parent =
nullptr) : QObject (parent) { }
27 Z_DISABLE_COPY_MOVE (ArrangerObjectName)
28 ~ArrangerObjectName ()
override =
default;
34 QString name ()
const {
return name_.to_qstring (); }
35 void setName (
const QString &name)
37 const auto name_str = utils::Utf8String::from_qstring (name);
38 if (name_ == name_str)
42 Q_EMIT nameChanged (name_str.to_qstring ());
44 Q_SIGNAL
void nameChanged (
const QString &name);
54 friend void init_from (
59 obj.name_ = other.name_;
60 obj.escaped_name_ = other.escaped_name_;
63 static constexpr std::string_view kNameKey =
"name";
65 to_json (nlohmann::json &j,
const ArrangerObjectName &named_object)
67 j[kNameKey] = named_object.name_;
70 from_json (
const nlohmann::json &j, ArrangerObjectName &named_object)
72 j.at (kNameKey).get_to (named_object.name_);
73 named_object.gen_escaped_name ();
79 void gen_escaped_name ();
83 utils::Utf8String name_;
86 utils::Utf8String escaped_name_;
88 BOOST_DESCRIBE_CLASS (ArrangerObjectName, (), (), (), (name_))