diff --git a/ChangeLog.txt b/ChangeLog.txt
index 1df379dbf..ee1b5bc98 100644
--- a/ChangeLog.txt
+++ b/ChangeLog.txt
@@ -47,7 +47,8 @@
- Setting scale factor for export and print.
- New layout generator option: Prefer one sheet solution.
- [smart-pattern/valentina#15] Organization of groups - groups categories
-- Improve the property browser. Show full arc name.
+- Improve the property browser. Show full arc name.
+- [smart-pattern/valentina#45] Optimize tool box position for big screen resolutions.
# Version 0.6.2 (unreleased)
- [#903] Bug in tool Cut Spline path.
diff --git a/src/app/valentina/dialogs/configpages/preferencesconfigurationpage.cpp b/src/app/valentina/dialogs/configpages/preferencesconfigurationpage.cpp
index 42b28b929..27757cb39 100644
--- a/src/app/valentina/dialogs/configpages/preferencesconfigurationpage.cpp
+++ b/src/app/valentina/dialogs/configpages/preferencesconfigurationpage.cpp
@@ -127,6 +127,9 @@ PreferencesConfigurationPage::PreferencesConfigurationPage(QWidget *parent)
// Theme
ui->darkModeCheck->setChecked(settings->GetDarkMode());
+ // Tool panel
+ ui->checkBoxToolPanelScaling->setChecked(settings->GetToolPanelScaling());
+
// Tab Scrolling
ui->spinBoxDuration->setMinimum(VSettings::scrollingDurationMin);
ui->spinBoxDuration->setMaximum(VSettings::scrollingDurationMax);
@@ -178,6 +181,11 @@ QStringList PreferencesConfigurationPage::Apply()
preferences.append(tr("dark mode"));
}
+ if (settings->GetToolPanelScaling() != ui->checkBoxToolPanelScaling->isChecked())
+ {
+ settings->SetToolPanelScaling(ui->checkBoxToolPanelScaling->isChecked());
+ }
+
settings->SetFreeCurveMode(ui->checkBoxFreeCurve->isChecked());
settings->SetDoubleClickZoomFitBestCurrentPP(ui->checkBoxZoomFitBestCurrentPP->isChecked());
diff --git a/src/app/valentina/dialogs/configpages/preferencesconfigurationpage.ui b/src/app/valentina/dialogs/configpages/preferencesconfigurationpage.ui
index c0af8bb3b..2433eb5b2 100644
--- a/src/app/valentina/dialogs/configpages/preferencesconfigurationpage.ui
+++ b/src/app/valentina/dialogs/configpages/preferencesconfigurationpage.ui
@@ -33,9 +33,9 @@
0
- -152
+ -161
624
- 707
+ 717
@@ -273,6 +273,16 @@
+ -
+
+
+ Change the position of the tool panel to optimize for big screen resolutions. By default, the tool panel will take all available space.
+
+
+ Tool panel scaling
+
+
+
diff --git a/src/app/valentina/mainwindow.cpp b/src/app/valentina/mainwindow.cpp
index 46dd3aadd..4beedb742 100644
--- a/src/app/valentina/mainwindow.cpp
+++ b/src/app/valentina/mainwindow.cpp
@@ -4077,6 +4077,9 @@ void MainWindow::ReadSettings()
// Text under tool buton icon
ToolBarStyles();
+ // Tool box scaling
+ ToolBoxSizePolicy();
+
isDockToolOptionsVisible = ui->dockWidgetToolOptions->isEnabled();
isDockGroupsVisible = ui->dockWidgetGroups->isEnabled();
@@ -5084,6 +5087,14 @@ void MainWindow::ToolBarStyles()
ToolBarStyle(ui->mainToolBar);
}
+//---------------------------------------------------------------------------------------------------------------------
+void MainWindow::ToolBoxSizePolicy()
+{
+ ui->toolBox->setSizePolicy(ui->toolBox->sizePolicy().horizontalPolicy(),
+ qApp->ValentinaSettings()->GetToolPanelScaling() ? QSizePolicy::Fixed
+ : QSizePolicy::Preferred);
+}
+
//---------------------------------------------------------------------------------------------------------------------
void MainWindow::ShowPaper(int index)
{
@@ -5115,6 +5126,7 @@ void MainWindow::Preferences()
connect(dlg.data(), &DialogPreferences::UpdateProperties, toolOptions,
&VToolOptionsPropertyBrowser::RefreshOptions);
connect(dlg.data(), &DialogPreferences::UpdateProperties, this, &MainWindow::ToolBarStyles);
+ connect(dlg.data(), &DialogPreferences::UpdateProperties, this, &MainWindow::ToolBoxSizePolicy);
connect(dlg.data(), &DialogPreferences::UpdateProperties, this, [this](){emit doc->FullUpdateFromFile();});
connect(dlg.data(), &DialogPreferences::UpdateProperties, ui->view,
&VMainGraphicsView::ResetScrollingAnimation);
diff --git a/src/app/valentina/mainwindow.h b/src/app/valentina/mainwindow.h
index c3dbb364d..1ec84656f 100644
--- a/src/app/valentina/mainwindow.h
+++ b/src/app/valentina/mainwindow.h
@@ -122,6 +122,7 @@ private slots:
void PreviousPatternPiece();
void NextPatternPiece();
void ToolBarStyles();
+ void ToolBoxSizePolicy();
void ShowPaper(int index);
void Preferences();
#if defined(Q_OS_MAC)
diff --git a/src/libs/vmisc/vsettings.cpp b/src/libs/vmisc/vsettings.cpp
index dbe6ff220..4352bd70d 100644
--- a/src/libs/vmisc/vsettings.cpp
+++ b/src/libs/vmisc/vsettings.cpp
@@ -73,6 +73,8 @@ Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingConfigurationLabelLanguage,
(QLatin1String("configuration/label_language")))
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingAutoRefreshPatternMessage,
(QLatin1String("configuration/autoRefreshPatternMessage")))
+Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingToolPanelScaling,
+ (QLatin1String("configuration/toolPanelScaling")))
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingPathsLayout, (QLatin1String("paths/layout")))
@@ -822,6 +824,18 @@ void VSettings::SetWatermarkEditorSize(const QSize &sz)
setValue(*settingWatermarkEditorSize, sz);
}
+//---------------------------------------------------------------------------------------------------------------------
+bool VSettings::GetToolPanelScaling() const
+{
+ return value(*settingToolPanelScaling, false).toBool();
+}
+
+//---------------------------------------------------------------------------------------------------------------------
+void VSettings::SetToolPanelScaling(const bool &value)
+{
+ setValue(*settingToolPanelScaling, value);
+}
+
//---------------------------------------------------------------------------------------------------------------------
template
T VSettings::GetCachedValue(T &cache, const QString &setting, T defValue, T valueMin, T valueMax) const
diff --git a/src/libs/vmisc/vsettings.h b/src/libs/vmisc/vsettings.h
index 8b6d0aacd..f8a798569 100644
--- a/src/libs/vmisc/vsettings.h
+++ b/src/libs/vmisc/vsettings.h
@@ -206,6 +206,9 @@ public:
QSize GetWatermarkEditorSize() const;
void SetWatermarkEditorSize(const QSize& sz);
+ bool GetToolPanelScaling() const;
+ void SetToolPanelScaling(const bool &value);
+
private:
Q_DISABLE_COPY(VSettings)