diff --git a/apps/opencs/view/settings/dialog.cpp b/apps/opencs/view/settings/dialog.cpp index 3f8143aa2b..561eccc5c8 100644 --- a/apps/opencs/view/settings/dialog.cpp +++ b/apps/opencs/view/settings/dialog.cpp @@ -299,6 +299,12 @@ void CSVSettings::Dialog::buildPages() if(index != -1) cmbRefIdType->setCurrentIndex(index); + // subview + if(model()->hasSettingDefinitions("SubView/minimum width")) + sbMinSubViewWidth->setValue(model()->settingValue("SubView/minimum width").toInt()); + else + sbMinSubViewWidth->setValue(325); + SettingWindow::createPages (); foreach (Page *page, SettingWindow::pages()) @@ -376,6 +382,9 @@ void CSVSettings::Dialog::closeEvent (QCloseEvent *event) QStringList(cmbRecStatus->currentText())); model()->setDefinitions("Display Format/Referenceable ID Type Display", QStringList(cmbRefIdType->currentText())); + // subview + model()->setDefinitions("SubView/minimum width", + QStringList(QString::number(sbMinSubViewWidth->value()))); saveSettings(); } diff --git a/apps/opencs/view/world/dialoguesubview.cpp b/apps/opencs/view/world/dialoguesubview.cpp index 57069bec05..d6a2bc13e3 100644 --- a/apps/opencs/view/world/dialoguesubview.cpp +++ b/apps/opencs/view/world/dialoguesubview.cpp @@ -27,6 +27,7 @@ #include "../../model/world/tablemimedata.hpp" #include "../../model/doc/document.hpp" #include "../../model/world/commands.hpp" +#include "../../model/settings/usersettings.hpp" #include "recordstatusdelegate.hpp" #include "util.hpp" @@ -392,7 +393,12 @@ void CSVWorld::EditWidget::remake(int row) mWidgetMapper->setCurrentModelIndex(mTable->index(row, 0)); - this->setMinimumWidth(325); /// \todo replace hardcoded value with a user setting + int minWidth = 325; + if(CSMSettings::UserSettings::instance().hasSettingDefinitions("SubView/minimum width")) + minWidth = CSMSettings::UserSettings::instance().settingValue("SubView/minimum width").toInt(); + else + CSMSettings::UserSettings::instance().setDefinitions("SubView/minimum width", (QStringList() << "minWidth")); + this->setMinimumWidth(minWidth); this->setWidget(mMainWidget); this->setWidgetResizable(true); } diff --git a/apps/opencs/view/world/previewsubview.cpp b/apps/opencs/view/world/previewsubview.cpp index 1e106c69fe..f56ca76740 100644 --- a/apps/opencs/view/world/previewsubview.cpp +++ b/apps/opencs/view/world/previewsubview.cpp @@ -8,6 +8,8 @@ #include "../widget/scenetoolbar.hpp" #include "../widget/scenetoolmode.hpp" +#include "../../model/settings/usersettings.hpp" + CSVWorld::PreviewSubView::PreviewSubView (const CSMWorld::UniversalId& id, CSMDoc::Document& document) : SubView (id) { @@ -41,6 +43,13 @@ CSVWorld::PreviewSubView::PreviewSubView (const CSMWorld::UniversalId& id, CSMDo widget->setLayout (layout); + int minWidth = 325; + if(CSMSettings::UserSettings::instance().hasSettingDefinitions("SubView/minimum width")) + minWidth = CSMSettings::UserSettings::instance().settingValue("SubView/minimum width").toInt(); + else + CSMSettings::UserSettings::instance().setDefinitions("SubView/minimum width", (QStringList() << "minWidth")); + widget->setMinimumWidth(minWidth); + setWidget (widget); connect (mScene, SIGNAL (closeRequest()), this, SLOT (closeRequest())); @@ -63,4 +72,4 @@ void CSVWorld::PreviewSubView::referenceableIdChanged (const std::string& id) setWindowTitle ("Preview: Reference to "); else setWindowTitle (("Preview: Reference to " + id).c_str()); -} \ No newline at end of file +} diff --git a/apps/opencs/view/world/regionmapsubview.cpp b/apps/opencs/view/world/regionmapsubview.cpp index a7675a4a6d..2e20be349a 100644 --- a/apps/opencs/view/world/regionmapsubview.cpp +++ b/apps/opencs/view/world/regionmapsubview.cpp @@ -2,6 +2,7 @@ #include "regionmapsubview.hpp" #include "regionmap.hpp" +#include "../../model/settings/usersettings.hpp" CSVWorld::RegionMapSubView::RegionMapSubView (CSMWorld::UniversalId universalId, CSMDoc::Document& document) @@ -9,6 +10,13 @@ CSVWorld::RegionMapSubView::RegionMapSubView (CSMWorld::UniversalId universalId, { mRegionMap = new RegionMap (universalId, document, this); + int minWidth = 325; + if(CSMSettings::UserSettings::instance().hasSettingDefinitions("SubView/minimum width")) + minWidth = CSMSettings::UserSettings::instance().settingValue("SubView/minimum width").toInt(); + else + CSMSettings::UserSettings::instance().setDefinitions("SubView/minimum width", (QStringList() << "minWidth")); + mRegionMap->setMinimumWidth(minWidth); + setWidget (mRegionMap); connect (mRegionMap, SIGNAL (editRequest (const CSMWorld::UniversalId&, const std::string&)), @@ -24,4 +32,4 @@ void CSVWorld::RegionMapSubView::editRequest (const CSMWorld::UniversalId& id, const std::string& hint) { focusId (id, hint); -} \ No newline at end of file +} diff --git a/apps/opencs/view/world/scenesubview.cpp b/apps/opencs/view/world/scenesubview.cpp index 52bd47b54a..f2cc8505b0 100644 --- a/apps/opencs/view/world/scenesubview.cpp +++ b/apps/opencs/view/world/scenesubview.cpp @@ -9,7 +9,7 @@ #include #include "../../model/doc/document.hpp" - +#include "../../model/settings/usersettings.hpp" #include "../../model/world/cellselection.hpp" #include "../filter/filterbox.hpp" @@ -74,6 +74,13 @@ CSVWorld::SceneSubView::SceneSubView (const CSMWorld::UniversalId& id, CSMDoc::D widget->setLayout (layout); + int minWidth = 325; + if(CSMSettings::UserSettings::instance().hasSettingDefinitions("SubView/minimum width")) + minWidth = CSMSettings::UserSettings::instance().settingValue("SubView/minimum width").toInt(); + else + CSMSettings::UserSettings::instance().setDefinitions("SubView/minimum width", (QStringList() << "minWidth")); + widget->setMinimumWidth(minWidth); + setWidget (widget); } @@ -254,4 +261,4 @@ void CSVWorld::SceneSubView::replaceToolbarAndWorldspace (CSVRender::WorldspaceW mScene->selectDefaultNavigationMode(); setFocusProxy (mScene); -} \ No newline at end of file +} diff --git a/apps/opencs/view/world/tablesubview.cpp b/apps/opencs/view/world/tablesubview.cpp index e2c8d5c1e3..4a87319eb8 100644 --- a/apps/opencs/view/world/tablesubview.cpp +++ b/apps/opencs/view/world/tablesubview.cpp @@ -6,6 +6,7 @@ #include "../../model/doc/document.hpp" #include "../../model/world/tablemimedata.hpp" +#include "../../model/settings/usersettings.hpp" #include "../filter/filterbox.hpp" #include "table.hpp" @@ -34,6 +35,13 @@ CSVWorld::TableSubView::TableSubView (const CSMWorld::UniversalId& id, CSMDoc::D widget->setLayout (layout); + int minWidth = 325; + if(CSMSettings::UserSettings::instance().hasSettingDefinitions("SubView/minimum width")) + minWidth = CSMSettings::UserSettings::instance().settingValue("SubView/minimum width").toInt(); + else + CSMSettings::UserSettings::instance().setDefinitions("SubView/minimum width", (QStringList() << "minWidth")); + widget->setMinimumWidth(minWidth); + setWidget (widget); connect (mTable, SIGNAL (editRequest (const CSMWorld::UniversalId&, const std::string&)), diff --git a/files/ui/settingstab.ui b/files/ui/settingstab.ui index de7014b4aa..88b7e92315 100644 --- a/files/ui/settingstab.ui +++ b/files/ui/settingstab.ui @@ -142,7 +142,7 @@ - + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -260,10 +260,10 @@ Show Status Bar + displayGroup_Subviews layoutWidget_Subviews displayGroup_Window displayGroup_DisplayFormat - displayGroup_Subviews cbStatusBar @@ -387,7 +387,7 @@ sbHeight cbStatusBar spinBox_max_subviews - spinBox_min_subview_width + sbMinSubViewWidth checkBox_reuse_subview cbOverride cmbRenderSys