| 320 | } |
| 321 | |
| 322 | bool CatalogModel::isStringKey(const QString& key) const { |
| 323 | const auto it = impl_->items.find(key); |
| 324 | if (it == impl_->items.end()) { |
| 325 | return false; |
| 326 | } |
| 327 | const ScalarFieldPayload* scalar = asScalarField(it->second); |
| 328 | return scalar != nullptr && scalar->is_string; |
| 329 | } |
| 330 | |
| 331 | std::optional<QString> CatalogModel::stringValueAt(const QString& key, double display_seconds) const { |
| 332 | if (impl_->session == nullptr) { |