Merge pull request #31 from gfgit/work/object_list_removed

model: HACK to let client refresh after object is removed
Dieser Commit ist enthalten in:
Reinder Feenstra 2023-02-06 23:23:44 +01:00 committet von GitHub
Commit 312950c28c
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: 4AEE18F83AFDEB23
3 geänderte Dateien mit 19 neuen und 0 gelöschten Zeilen

Datei anzeigen

@ -153,6 +153,12 @@ class ObjectList : public AbstractObjectList
m_propertyChanged.erase(object.get());
m_items.erase(it);
rowCountChanged();
uint32_t row = std::distance(m_items.begin(), it);
for(auto& model : m_models)
{
model->rowRemovedHack(row);
}
}
}
};

Datei anzeigen

@ -53,6 +53,17 @@ void TableModel::setRegion(const Region& value)
}
}
void TableModel::rowRemovedHack(uint32_t row)
{
//Hack, tell clients to refresh from row onwards
Region update = m_region;
if(update.rowMin <= row && update.rowMax >= row)
{
update.rowMin = row;
updateRegion(shared_ptr<TableModel>(), update);
}
}
void TableModel::setColumnHeaders(std::vector<std::string_view> values)
{
m_columnHeaders = std::move(values);

Datei anzeigen

@ -110,6 +110,8 @@ class TableModel : public Object
virtual std::string getText(uint32_t column, uint32_t row) const = 0;
void setRegion(const Region& value);
void rowRemovedHack(uint32_t row);
};
#endif