src/model.cpp

changeset 133
e39326ee48dc
parent 112
5760cbb32bc0
child 137
fb9990772357
equal deleted inserted replaced
131:e2080ac44039 133:e39326ee48dc
30 int Model::size() const 30 int Model::size() const
31 { 31 {
32 return static_cast<int>(this->body.size()); 32 return static_cast<int>(this->body.size());
33 } 33 }
34 34
35 /**
36 * @brief Looks up the object ID at the specified index. If out of bounds, returns NULL_ID.
37 * @param index Index of object to look up
38 * @return object ID
39 */
40 ldraw::id_t Model::at(int index) const
41 {
42 if (index >= 0 and index < this->size())
43 {
44 return this->body[index]->id;
45 }
46 else
47 {
48 return ldraw::NULL_ID;
49 }
50 }
51
35 Model::EditContext Model::edit() 52 Model::EditContext Model::edit()
36 { 53 {
54 this->editCounter += 1;
37 return {*this}; 55 return {*this};
38 } 56 }
39 57
40 int Model::rowCount(const QModelIndex&) const 58 int Model::rowCount(const QModelIndex&) const
41 { 59 {
116 { 134 {
117 const ldraw::Object* object = this->body[unsigned_cast(index)].get(); 135 const ldraw::Object* object = this->body[unsigned_cast(index)].get();
118 object->getPolygons(polygons_out, context); 136 object->getPolygons(polygons_out, context);
119 } 137 }
120 138
139 void Model::editFinished()
140 {
141 this->editCounter -= 1;
142 }
143
144 void Model::objectModified(ldraw::id_t id)
145 {
146 const QModelIndex index = this->lookup(id);
147 Q_EMIT this->dataChanged(index, index);
148 }
149
121 void Model::append(ModelObjectPointer&& object) 150 void Model::append(ModelObjectPointer&& object)
122 { 151 {
123 const int position = static_cast<int>(this->body.size()); 152 const int position = static_cast<int>(this->body.size());
124 Q_EMIT beginInsertRows({}, position, position); 153 Q_EMIT beginInsertRows({}, position, position);
125 this->body.push_back(std::move(object)); 154 this->body.push_back(std::move(object));

mercurial