mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-30 21:45:33 +00:00
Reusing subviews implemented.
This commit is contained in:
parent
3f9b73812b
commit
fdf375fb4d
3 changed files with 36 additions and 5 deletions
|
@ -454,6 +454,33 @@ 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 = std::find(referenceables.begin(), referenceables.end(), id.getType()) != referenceables.end();
|
||||||
|
|
||||||
|
// User setting to reuse sub views (on a per top level view basis)
|
||||||
|
bool reuse = true;
|
||||||
|
if(userSettings.hasSettingDefinitions("SubView/reuse"))
|
||||||
|
reuse = userSettings.settingValue("SubView/reuse").toStdString() == "true" ? true : false;
|
||||||
|
else
|
||||||
|
userSettings.setDefinitions("SubView/reuse", (QStringList() << QString(reuse ? "true" : "false")));
|
||||||
|
if(reuse)
|
||||||
|
{
|
||||||
|
foreach(SubView *sb, mSubViews)
|
||||||
|
{
|
||||||
|
if((isReferenceable && (CSMWorld::UniversalId(CSMWorld::UniversalId::Type_Referenceable, id.getId()) == CSMWorld::UniversalId(CSMWorld::UniversalId::Type_Referenceable, sb->getUniversalId().getId())))
|
||||||
|
|| (!isReferenceable && (id == sb->getUniversalId())))
|
||||||
|
{
|
||||||
|
sb->setFocus(Qt::OtherFocusReason); // FIXME: focus not quite working
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// User setting for limiting the number of sub views per top level view.
|
||||||
|
// Automatically open a new top level view if this number is exceeded
|
||||||
|
//
|
||||||
|
// If the sub view limit setting is one, the sub view title bar is hidden and the
|
||||||
|
// text in the main title bar is adjusted accordingly
|
||||||
int maxSubView = 3;
|
int maxSubView = 3;
|
||||||
if(userSettings.hasSettingDefinitions("SubView/max subviews"))
|
if(userSettings.hasSettingDefinitions("SubView/max subviews"))
|
||||||
maxSubView = userSettings.settingValue("SubView/max subviews").toInt();
|
maxSubView = userSettings.settingValue("SubView/max subviews").toInt();
|
||||||
|
@ -467,9 +494,6 @@ void CSVDoc::View::addSubView (const CSMWorld::UniversalId& id, const std::strin
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// \todo add an user setting to reuse sub views (on a per document basis or on a per top level view basis)
|
|
||||||
|
|
||||||
const std::vector<CSMWorld::UniversalId::Type> referenceables(CSMWorld::UniversalId::listReferenceableTypes());
|
|
||||||
SubView *view = NULL;
|
SubView *view = NULL;
|
||||||
if(std::find(referenceables.begin(), referenceables.end(), id.getType()) != referenceables.end())
|
if(std::find(referenceables.begin(), referenceables.end(), id.getType()) != referenceables.end())
|
||||||
{
|
{
|
||||||
|
|
|
@ -310,6 +310,8 @@ void CSVSettings::Dialog::buildPages()
|
||||||
else
|
else
|
||||||
sbMaxSubViews->setValue(3);
|
sbMaxSubViews->setValue(3);
|
||||||
|
|
||||||
|
cbReuseSubView->setChecked(model()->settingValue("SubView/reuse") == "true");
|
||||||
|
|
||||||
SettingWindow::createPages ();
|
SettingWindow::createPages ();
|
||||||
|
|
||||||
foreach (Page *page, SettingWindow::pages())
|
foreach (Page *page, SettingWindow::pages())
|
||||||
|
@ -393,6 +395,11 @@ void CSVSettings::Dialog::closeEvent (QCloseEvent *event)
|
||||||
model()->setDefinitions("SubView/max subviews",
|
model()->setDefinitions("SubView/max subviews",
|
||||||
QStringList(QString::number(sbMaxSubViews->value())));
|
QStringList(QString::number(sbMaxSubViews->value())));
|
||||||
|
|
||||||
|
if(cbReuseSubView->isChecked())
|
||||||
|
model()->setDefinitions("SubView/reuse", QStringList("true"));
|
||||||
|
else
|
||||||
|
model()->setDefinitions("SubView/reuse", QStringList("false"));
|
||||||
|
|
||||||
saveSettings();
|
saveSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -161,7 +161,7 @@
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0">
|
<item row="2" column="0">
|
||||||
<widget class="QCheckBox" name="checkBox_reuse_subview">
|
<widget class="QCheckBox" name="cbReuseSubView">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Reuse Subviews</string>
|
<string>Reuse Subviews</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -391,7 +391,7 @@
|
||||||
<tabstop>cbStatusBar</tabstop>
|
<tabstop>cbStatusBar</tabstop>
|
||||||
<tabstop>sbMaxSubViews</tabstop>
|
<tabstop>sbMaxSubViews</tabstop>
|
||||||
<tabstop>sbMinSubViewWidth</tabstop>
|
<tabstop>sbMinSubViewWidth</tabstop>
|
||||||
<tabstop>checkBox_reuse_subview</tabstop>
|
<tabstop>cbReuseSubView</tabstop>
|
||||||
<tabstop>cbOverride</tabstop>
|
<tabstop>cbOverride</tabstop>
|
||||||
<tabstop>cmbRenderSys</tabstop>
|
<tabstop>cmbRenderSys</tabstop>
|
||||||
<tabstop>cbVsync</tabstop>
|
<tabstop>cbVsync</tabstop>
|
||||||
|
|
Loading…
Reference in a new issue