mirror of
https://github.com/OpenMW/openmw.git
synced 2025-01-21 10:53:53 +00:00
Simplify detecting whether a universal id represents a referenceable type.
This commit is contained in:
parent
ede1b97b46
commit
911839bb91
1 changed files with 4 additions and 6 deletions
|
@ -464,8 +464,7 @@ void CSVDoc::View::addSubView (const CSMWorld::UniversalId& id, const std::strin
|
||||||
{
|
{
|
||||||
CSMSettings::UserSettings &userSettings = CSMSettings::UserSettings::instance();
|
CSMSettings::UserSettings &userSettings = CSMSettings::UserSettings::instance();
|
||||||
|
|
||||||
const std::vector<CSMWorld::UniversalId::Type> referenceables(CSMWorld::UniversalId::listReferenceableTypes());
|
bool isReferenceable = id.getClass() == CSMWorld::UniversalId::Class_RefRecord;
|
||||||
bool isReferenceable = std::find(referenceables.begin(), referenceables.end(), id.getType()) != referenceables.end();
|
|
||||||
|
|
||||||
// User setting to reuse sub views (on a per top level view basis)
|
// User setting to reuse sub views (on a per top level view basis)
|
||||||
bool reuse =
|
bool reuse =
|
||||||
|
@ -477,12 +476,11 @@ void CSVDoc::View::addSubView (const CSMWorld::UniversalId& id, const std::strin
|
||||||
bool isSubViewReferenceable =
|
bool isSubViewReferenceable =
|
||||||
sb->getUniversalId().getType() == CSMWorld::UniversalId::Type_Referenceable;
|
sb->getUniversalId().getType() == CSMWorld::UniversalId::Type_Referenceable;
|
||||||
|
|
||||||
if((isReferenceable && isSubViewReferenceable &&
|
if((isReferenceable && isSubViewReferenceable && id.getId() == sb->getUniversalId().getId())
|
||||||
id.getId() == sb->getUniversalId().getId())
|
|
||||||
||
|
||
|
||||||
(!isReferenceable && id == sb->getUniversalId()))
|
(!isReferenceable && id == sb->getUniversalId()))
|
||||||
{
|
{
|
||||||
sb->setFocus(Qt::OtherFocusReason); // FIXME: focus not quite working
|
sb->setFocus();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -502,7 +500,7 @@ void CSVDoc::View::addSubView (const CSMWorld::UniversalId& id, const std::strin
|
||||||
}
|
}
|
||||||
|
|
||||||
SubView *view = NULL;
|
SubView *view = NULL;
|
||||||
if(std::find(referenceables.begin(), referenceables.end(), id.getType()) != referenceables.end())
|
if(isReferenceable)
|
||||||
{
|
{
|
||||||
view = mSubViewFactory.makeSubView (CSMWorld::UniversalId(CSMWorld::UniversalId::Type_Referenceable, id.getId()), *mDocument);
|
view = mSubViewFactory.makeSubView (CSMWorld::UniversalId(CSMWorld::UniversalId::Type_Referenceable, id.getId()), *mDocument);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue