mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 19:50:05 +00:00
Add begin/endInsertRows calls to notify view of changes
This commit is contained in:
parent
efc6dc1413
commit
1e58cc29e5
2 changed files with 39 additions and 1 deletions
|
|
@ -48,11 +48,18 @@ RadarProductModelImpl::RadarProductModelImpl(RadarProductModel* self) :
|
|||
this,
|
||||
[=](const std::string& radarSite)
|
||||
{
|
||||
const QModelIndex rootIndex =
|
||||
self_->createIndex(rootItem_->row(), 0, rootItem_.get());
|
||||
const int rootChildren = rootItem_->child_count();
|
||||
|
||||
self_->beginInsertRows(rootIndex, rootChildren, rootChildren);
|
||||
|
||||
TreeItem* radarSiteItem =
|
||||
new TreeItem({QString::fromStdString(radarSite)});
|
||||
|
||||
rootItem_->AppendChild(radarSiteItem);
|
||||
|
||||
self_->endInsertRows();
|
||||
|
||||
connect(
|
||||
manager::RadarProductManager::Instance(radarSite).get(),
|
||||
&manager::RadarProductManager::NewDataAvailable,
|
||||
|
|
@ -69,8 +76,18 @@ RadarProductModelImpl::RadarProductModelImpl(RadarProductModel* self) :
|
|||
|
||||
if (groupItem == nullptr)
|
||||
{
|
||||
// Existing group item was not found, create it
|
||||
const QModelIndex radarSiteIndex =
|
||||
self_->createIndex(radarSiteItem->row(), 0, radarSiteItem);
|
||||
const int radarSiteChildren = radarSiteItem->child_count();
|
||||
|
||||
self_->beginInsertRows(
|
||||
radarSiteIndex, radarSiteChildren, radarSiteChildren);
|
||||
|
||||
groupItem = new TreeItem({groupName});
|
||||
radarSiteItem->AppendChild(groupItem);
|
||||
|
||||
self_->endInsertRows();
|
||||
}
|
||||
|
||||
TreeItem* productItem = nullptr;
|
||||
|
|
@ -88,14 +105,33 @@ RadarProductModelImpl::RadarProductModelImpl(RadarProductModel* self) :
|
|||
|
||||
if (productItem == nullptr)
|
||||
{
|
||||
// Existing product item was not found, create it
|
||||
const QModelIndex groupItemIndex =
|
||||
self_->createIndex(groupItem->row(), 0, groupItem);
|
||||
const int groupItemChildren = groupItem->child_count();
|
||||
|
||||
self_->beginInsertRows(
|
||||
groupItemIndex, groupItemChildren, groupItemChildren);
|
||||
|
||||
productItem = new TreeItem({productName});
|
||||
groupItem->AppendChild(productItem);
|
||||
|
||||
self_->endInsertRows();
|
||||
}
|
||||
}
|
||||
|
||||
// Create leaf item for product time
|
||||
const QModelIndex productItemIndex =
|
||||
self_->createIndex(productItem->row(), 0, productItem);
|
||||
const int productItemChildren = productItem->child_count();
|
||||
|
||||
self_->beginInsertRows(
|
||||
productItemIndex, productItemChildren, productItemChildren);
|
||||
|
||||
productItem->AppendChild(new TreeItem {
|
||||
QString::fromStdString(util::TimeString(latestTime))});
|
||||
|
||||
self_->endInsertRows();
|
||||
},
|
||||
Qt::QueuedConnection);
|
||||
},
|
||||
|
|
|
|||
|
|
@ -22,6 +22,8 @@ protected:
|
|||
|
||||
private:
|
||||
std::unique_ptr<RadarProductModelImpl> p;
|
||||
|
||||
friend class RadarProductModelImpl;
|
||||
};
|
||||
|
||||
} // namespace model
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue