Avoid converting UniversalId to a different type via string

macos_ci_fix
elsid 5 months ago
parent 7b5310b569
commit 39dd73263d
No known key found for this signature in database
GPG Key ID: 4DE04C198CBA7625

@ -328,6 +328,12 @@ CSMWorld::UniversalId::UniversalId(Type type, ESM::RefId id)
throw std::logic_error("invalid RefId argument UniversalId type: " + std::to_string(type));
}
CSMWorld::UniversalId::UniversalId(Type type, const UniversalId& id)
: mType(type)
, mValue(id.mValue)
{
}
CSMWorld::UniversalId::UniversalId(Type type, int index)
: mType(type)
, mValue(index)

@ -158,6 +158,8 @@ namespace CSMWorld
UniversalId(Type type, int index);
///< Using a type for a non-index-argument UniversalId will throw an exception.
UniversalId(Type type, const UniversalId& id);
Class getClass() const;
ArgumentType getArgumentType() const;

@ -629,7 +629,7 @@ void CSVDoc::View::addSubView(const CSMWorld::UniversalId& id, const std::string
if (isReferenceable)
{
view = mSubViewFactory.makeSubView(
CSMWorld::UniversalId(CSMWorld::UniversalId::Type_Referenceable, id.getId()), *mDocument);
CSMWorld::UniversalId(CSMWorld::UniversalId::Type_Referenceable, id), *mDocument);
}
else
{

@ -694,10 +694,10 @@ void CSVWorld::Table::previewRecord()
if (selectedRows.size() == 1)
{
std::string id = getUniversalId(selectedRows.begin()->row()).getId();
CSMWorld::UniversalId id = getUniversalId(selectedRows.begin()->row());
QModelIndex index
= mModel->getModelIndex(id, mModel->findColumnIndex(CSMWorld::Columns::ColumnId_Modification));
= mModel->getModelIndex(id.getId(), mModel->findColumnIndex(CSMWorld::Columns::ColumnId_Modification));
if (mModel->data(index) != CSMWorld::RecordBase::State_Deleted)
emit editRequest(CSMWorld::UniversalId(CSMWorld::UniversalId::Type_Preview, id), "");

Loading…
Cancel
Save