New option: Use Tool Groups.

This commit is contained in:
Roman Telezhynskyi 2023-09-04 13:56:08 +03:00
parent 812c0b84d7
commit f3538df445
6 changed files with 300 additions and 160 deletions

View file

@ -37,7 +37,8 @@
- Support for Dark mode. - Support for Dark mode.
- Fix issue with passing incorrect number of dimension to Tape. - Fix issue with passing incorrect number of dimension to Tape.
- New option: Pointer mode. - New option: Pointer mode.
- Fix GUI freezing while nesting. - Fix GUI freezing while nesting.
- New option: Use Tool Groups.
# Valentina 0.7.52 September 12, 2022 # Valentina 0.7.52 September 12, 2022
- Fix crash when default locale is ru. - Fix crash when default locale is ru.

View file

@ -151,6 +151,9 @@ PreferencesConfigurationPage::PreferencesConfigurationPage(QWidget *parent)
ui->comboBoxPointerMode->setCurrentIndex(index); ui->comboBoxPointerMode->setCurrentIndex(index);
} }
// Use tool groups
ui->checkBoxUseToolGroups->setChecked(settings->IsUseToolGroups());
// Native dialogs // Native dialogs
ui->checkBoxDontUseNativeDialog->setChecked(settings->IsDontUseNativeDialog()); ui->checkBoxDontUseNativeDialog->setChecked(settings->IsDontUseNativeDialog());
@ -234,6 +237,11 @@ auto PreferencesConfigurationPage::Apply() -> QStringList
settings->SetPointerMode(static_cast<VToolPointerMode>(ui->comboBoxPointerMode->currentData().toInt())); settings->SetPointerMode(static_cast<VToolPointerMode>(ui->comboBoxPointerMode->currentData().toInt()));
if (settings->IsUseToolGroups() != ui->checkBoxUseToolGroups->isChecked())
{
settings->SetUseToolGroups(ui->checkBoxUseToolGroups->isChecked());
}
if (settings->IsDontUseNativeDialog() != ui->checkBoxDontUseNativeDialog->isChecked()) if (settings->IsDontUseNativeDialog() != ui->checkBoxDontUseNativeDialog->isChecked())
{ {
settings->SetDontUseNativeDialog(ui->checkBoxDontUseNativeDialog->isChecked()); settings->SetDontUseNativeDialog(ui->checkBoxDontUseNativeDialog->isChecked());

View file

@ -33,9 +33,9 @@
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>-101</y> <y>-134</y>
<width>624</width> <width>624</width>
<height>937</height> <height>966</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_2"> <layout class="QVBoxLayout" name="verticalLayout_2">
@ -385,6 +385,13 @@
</item> </item>
</layout> </layout>
</item> </item>
<item>
<widget class="QCheckBox" name="checkBoxUseToolGroups">
<property name="text">
<string>Use tool groups</string>
</property>
</widget>
</item>
<item> <item>
<widget class="QCheckBox" name="checkBoxDontUseNativeDialog"> <widget class="QCheckBox" name="checkBoxDontUseNativeDialog">
<property name="text"> <property name="text">

View file

@ -3041,186 +3041,288 @@ void MainWindow::ToolBarDrawTools()
{ {
SetupDrawToolsIcons(); SetupDrawToolsIcons();
// Point tools VValentinaSettings *settings = VApplication::VApp()->ValentinaSettings();
ui->toolBarPointTools->clear();
if (settings->IsUseToolGroups())
{ {
auto *linePointToolMenu = new QMenu(this); // Point tools
linePointToolMenu->addAction(ui->actionEndLineTool); {
linePointToolMenu->addAction(ui->actionAlongLineTool); auto *linePointToolMenu = new QMenu(this);
linePointToolMenu->addAction(ui->actionMidpointTool); linePointToolMenu->addAction(ui->actionEndLineTool);
linePointToolMenu->addAction(ui->actionAlongLineTool);
linePointToolMenu->addAction(ui->actionMidpointTool);
auto *linePointTool = new VToolButtonPopup(this); auto *linePointTool = new VToolButtonPopup(this);
linePointTool->setMenu(linePointToolMenu); linePointTool->setMenu(linePointToolMenu);
linePointTool->setDefaultAction(ui->actionEndLineTool); linePointTool->setDefaultAction(ui->actionEndLineTool);
ui->toolBarPointTools->addWidget(linePointTool); ui->toolBarPointTools->addWidget(linePointTool);
}
{
auto *angleLinePointToolMenu = new QMenu(this);
angleLinePointToolMenu->addAction(ui->actionNormalTool);
angleLinePointToolMenu->addAction(ui->actionBisectorTool);
angleLinePointToolMenu->addAction(ui->actionHeightTool);
auto *angleLinePointTool = new VToolButtonPopup(this);
angleLinePointTool->setMenu(angleLinePointToolMenu);
angleLinePointTool->setDefaultAction(ui->actionNormalTool);
ui->toolBarPointTools->addWidget(angleLinePointTool);
}
{
auto *lineIntersectionPointToolMenu = new QMenu(this);
lineIntersectionPointToolMenu->addAction(ui->actionPointOfIntersectionTool);
lineIntersectionPointToolMenu->addAction(ui->actionLineIntersectTool);
auto *lineIntersectionPointTool = new VToolButtonPopup(this);
lineIntersectionPointTool->setMenu(lineIntersectionPointToolMenu);
lineIntersectionPointTool->setDefaultAction(ui->actionPointOfIntersectionTool);
ui->toolBarPointTools->addWidget(lineIntersectionPointTool);
}
{
auto *specialPointToolMenu = new QMenu(this);
specialPointToolMenu->addAction(ui->actionShoulderPointTool);
specialPointToolMenu->addAction(ui->actionTriangleTool);
auto *specialPointTool = new VToolButtonPopup(this);
specialPointTool->setMenu(specialPointToolMenu);
specialPointTool->setDefaultAction(ui->actionShoulderPointTool);
ui->toolBarPointTools->addWidget(specialPointTool);
}
{
auto *axisPointToolMenu = new QMenu(this);
axisPointToolMenu->addAction(ui->actionLineIntersectAxisTool);
axisPointToolMenu->addAction(ui->actionCurveIntersectAxisTool);
axisPointToolMenu->addAction(ui->actionArcIntersectAxisTool);
auto *axisPointTool = new VToolButtonPopup(this);
axisPointTool->setMenu(axisPointToolMenu);
axisPointTool->setDefaultAction(ui->actionLineIntersectAxisTool);
ui->toolBarPointTools->addWidget(axisPointTool);
}
{
auto *curveSegmentPointToolMenu = new QMenu(this);
curveSegmentPointToolMenu->addAction(ui->actionSplineCutPointTool);
curveSegmentPointToolMenu->addAction(ui->actionSplinePathCutPointTool);
curveSegmentPointToolMenu->addAction(ui->actionArcCutPointTool);
auto *curveSegmentPointTool = new VToolButtonPopup(this);
curveSegmentPointTool->setMenu(curveSegmentPointToolMenu);
curveSegmentPointTool->setDefaultAction(ui->actionSplineCutPointTool);
ui->toolBarPointTools->addWidget(curveSegmentPointTool);
}
{
auto *curveIntersectionPointToolMenu = new QMenu(this);
curveIntersectionPointToolMenu->addAction(ui->actionIntersectionCurvesTool);
curveIntersectionPointToolMenu->addAction(ui->actionPointOfIntersectionArcsTool);
curveIntersectionPointToolMenu->addAction(ui->actionPointOfIntersectionCirclesTool);
auto *curveIntersectionPointTool = new VToolButtonPopup(this);
curveIntersectionPointTool->setMenu(curveIntersectionPointToolMenu);
curveIntersectionPointTool->setDefaultAction(ui->actionIntersectionCurvesTool);
ui->toolBarPointTools->addWidget(curveIntersectionPointTool);
}
{
auto *tangentPointToolMenu = new QMenu(this);
tangentPointToolMenu->addAction(ui->actionPointFromArcAndTangentTool);
tangentPointToolMenu->addAction(ui->actionPointFromCircleAndTangentTool);
tangentPointToolMenu->addAction(ui->actionPointOfContactTool);
auto *tangentPointTool = new VToolButtonPopup(this);
tangentPointTool->setMenu(tangentPointToolMenu);
tangentPointTool->setDefaultAction(ui->actionPointFromArcAndTangentTool);
ui->toolBarPointTools->addWidget(tangentPointTool);
}
}
else
{
ui->toolBarPointTools->addAction(ui->actionEndLineTool);
ui->toolBarPointTools->addAction(ui->actionAlongLineTool);
ui->toolBarPointTools->addAction(ui->actionMidpointTool);
ui->toolBarPointTools->addAction(ui->actionNormalTool);
ui->toolBarPointTools->addAction(ui->actionBisectorTool);
ui->toolBarPointTools->addAction(ui->actionHeightTool);
ui->toolBarPointTools->addAction(ui->actionPointOfIntersectionTool);
ui->toolBarPointTools->addAction(ui->actionLineIntersectTool);
ui->toolBarPointTools->addAction(ui->actionShoulderPointTool);
ui->toolBarPointTools->addAction(ui->actionTriangleTool);
ui->toolBarPointTools->addAction(ui->actionLineIntersectAxisTool);
ui->toolBarPointTools->addAction(ui->actionCurveIntersectAxisTool);
ui->toolBarPointTools->addAction(ui->actionArcIntersectAxisTool);
ui->toolBarPointTools->addAction(ui->actionSplineCutPointTool);
ui->toolBarPointTools->addAction(ui->actionSplinePathCutPointTool);
ui->toolBarPointTools->addAction(ui->actionArcCutPointTool);
ui->toolBarPointTools->addAction(ui->actionIntersectionCurvesTool);
ui->toolBarPointTools->addAction(ui->actionPointOfIntersectionArcsTool);
ui->toolBarPointTools->addAction(ui->actionPointOfIntersectionCirclesTool);
ui->toolBarPointTools->addAction(ui->actionPointFromArcAndTangentTool);
ui->toolBarPointTools->addAction(ui->actionPointFromCircleAndTangentTool);
ui->toolBarPointTools->addAction(ui->actionPointOfContactTool);
} }
ui->toolBarCurveTools->clear();
if (settings->IsUseToolGroups())
{ {
auto *angleLinePointToolMenu = new QMenu(this); // Curve tools
angleLinePointToolMenu->addAction(ui->actionNormalTool); {
angleLinePointToolMenu->addAction(ui->actionBisectorTool); auto *curveToolMenu = new QMenu(this);
angleLinePointToolMenu->addAction(ui->actionHeightTool); curveToolMenu->addAction(ui->actionSplineTool);
curveToolMenu->addAction(ui->actionCubicBezierTool);
curveToolMenu->addAction(ui->actionSplinePathTool);
curveToolMenu->addAction(ui->actionCubicBezierPathTool);
curveToolMenu->addAction(ui->actionArcTool);
curveToolMenu->addAction(ui->actionArcWithLengthTool);
curveToolMenu->addAction(ui->actionEllipticalArcTool);
auto *angleLinePointTool = new VToolButtonPopup(this); auto *curvePointTool = new VToolButtonPopup(this);
angleLinePointTool->setMenu(angleLinePointToolMenu); curvePointTool->setMenu(curveToolMenu);
angleLinePointTool->setDefaultAction(ui->actionNormalTool); curvePointTool->setDefaultAction(ui->actionSplineTool);
ui->toolBarPointTools->addWidget(angleLinePointTool); ui->toolBarCurveTools->addWidget(curvePointTool);
}
}
else
{
ui->toolBarCurveTools->addAction(ui->actionSplineTool);
ui->toolBarCurveTools->addAction(ui->actionCubicBezierTool);
ui->toolBarCurveTools->addAction(ui->actionSplinePathTool);
ui->toolBarCurveTools->addAction(ui->actionCubicBezierPathTool);
ui->toolBarCurveTools->addAction(ui->actionArcTool);
ui->toolBarCurveTools->addAction(ui->actionArcWithLengthTool);
ui->toolBarCurveTools->addAction(ui->actionEllipticalArcTool);
} }
ui->toolBarOperationTools->clear();
if (settings->IsUseToolGroups())
{ {
auto *lineIntersectionPointToolMenu = new QMenu(this); // Group tools
lineIntersectionPointToolMenu->addAction(ui->actionPointOfIntersectionTool); ui->toolBarOperationTools->addAction(ui->actionGroupTool);
lineIntersectionPointToolMenu->addAction(ui->actionLineIntersectTool);
auto *lineIntersectionPointTool = new VToolButtonPopup(this); {
lineIntersectionPointTool->setMenu(lineIntersectionPointToolMenu); auto *symmetryToolMenu = new QMenu(this);
lineIntersectionPointTool->setDefaultAction(ui->actionPointOfIntersectionTool); symmetryToolMenu->addAction(ui->actionFlippingByAxisTool);
symmetryToolMenu->addAction(ui->actionFlippingByLineTool);
ui->toolBarPointTools->addWidget(lineIntersectionPointTool); auto *symmetryTool = new VToolButtonPopup(this);
symmetryTool->setMenu(symmetryToolMenu);
symmetryTool->setDefaultAction(ui->actionFlippingByAxisTool);
ui->toolBarOperationTools->addWidget(symmetryTool);
}
{
auto *symmetryToolMenu = new QMenu(this);
symmetryToolMenu->addAction(ui->actionFlippingByAxisTool);
symmetryToolMenu->addAction(ui->actionFlippingByLineTool);
auto *symmetryTool = new VToolButtonPopup(this);
symmetryTool->setMenu(symmetryToolMenu);
symmetryTool->setDefaultAction(ui->actionFlippingByAxisTool);
ui->toolBarOperationTools->addWidget(symmetryTool);
}
{
auto *transformToolMenu = new QMenu(this);
transformToolMenu->addAction(ui->actionRotationTool);
transformToolMenu->addAction(ui->actionMoveTool);
auto *transformTool = new VToolButtonPopup(this);
transformTool->setMenu(transformToolMenu);
transformTool->setDefaultAction(ui->actionRotationTool);
ui->toolBarOperationTools->addWidget(transformTool);
}
ui->toolBarOperationTools->addAction(ui->actionTrueDartsTool);
ui->toolBarOperationTools->addAction(ui->actionExportDraw);
}
else
{
ui->toolBarOperationTools->addAction(ui->actionGroupTool);
ui->toolBarOperationTools->addAction(ui->actionFlippingByAxisTool);
ui->toolBarOperationTools->addAction(ui->actionFlippingByLineTool);
ui->toolBarOperationTools->addAction(ui->actionFlippingByAxisTool);
ui->toolBarOperationTools->addAction(ui->actionFlippingByLineTool);
ui->toolBarOperationTools->addAction(ui->actionRotationTool);
ui->toolBarOperationTools->addAction(ui->actionMoveTool);
ui->toolBarOperationTools->addAction(ui->actionTrueDartsTool);
ui->toolBarOperationTools->addAction(ui->actionExportDraw);
} }
ui->toolBarDetailTools->clear();
if (settings->IsUseToolGroups())
{ {
auto *specialPointToolMenu = new QMenu(this); // Detail tools
specialPointToolMenu->addAction(ui->actionShoulderPointTool); ui->toolBarDetailTools->addAction(ui->actionNewDetailTool);
specialPointToolMenu->addAction(ui->actionTriangleTool); {
auto *detailToolMenu = new QMenu(this);
detailToolMenu->addAction(ui->actionUnionDetailsTool);
detailToolMenu->addAction(ui->actionDuplicateDetailTool);
auto *specialPointTool = new VToolButtonPopup(this); auto *detailTool = new VToolButtonPopup(this);
specialPointTool->setMenu(specialPointToolMenu); detailTool->setMenu(detailToolMenu);
specialPointTool->setDefaultAction(ui->actionShoulderPointTool); detailTool->setDefaultAction(ui->actionUnionDetailsTool);
ui->toolBarPointTools->addWidget(specialPointTool); ui->toolBarDetailTools->addWidget(detailTool);
}
{
auto *internalDetailItemToolMenu = new QMenu(this);
internalDetailItemToolMenu->addAction(ui->actionInternalPathTool);
internalDetailItemToolMenu->addAction(ui->actionPinTool);
internalDetailItemToolMenu->addAction(ui->actionInsertNodeTool);
internalDetailItemToolMenu->addAction(ui->actionPlaceLabelTool);
auto *detailTool = new VToolButtonPopup(this);
detailTool->setMenu(internalDetailItemToolMenu);
detailTool->setDefaultAction(ui->actionInternalPathTool);
ui->toolBarDetailTools->addWidget(detailTool);
}
ui->toolBarDetailTools->addAction(ui->actionDetailExportAs);
} }
else
{ {
auto *axisPointToolMenu = new QMenu(this); ui->toolBarDetailTools->addAction(ui->actionNewDetailTool);
axisPointToolMenu->addAction(ui->actionLineIntersectAxisTool);
axisPointToolMenu->addAction(ui->actionCurveIntersectAxisTool);
axisPointToolMenu->addAction(ui->actionArcIntersectAxisTool);
auto *axisPointTool = new VToolButtonPopup(this); ui->toolBarDetailTools->addAction(ui->actionUnionDetailsTool);
axisPointTool->setMenu(axisPointToolMenu); ui->toolBarDetailTools->addAction(ui->actionDuplicateDetailTool);
axisPointTool->setDefaultAction(ui->actionLineIntersectAxisTool);
ui->toolBarPointTools->addWidget(axisPointTool); ui->toolBarDetailTools->addAction(ui->actionInternalPathTool);
ui->toolBarDetailTools->addAction(ui->actionPinTool);
ui->toolBarDetailTools->addAction(ui->actionInsertNodeTool);
ui->toolBarDetailTools->addAction(ui->actionPlaceLabelTool);
ui->toolBarDetailTools->addAction(ui->actionDetailExportAs);
} }
{
auto *curveSegmentPointToolMenu = new QMenu(this);
curveSegmentPointToolMenu->addAction(ui->actionSplineCutPointTool);
curveSegmentPointToolMenu->addAction(ui->actionSplinePathCutPointTool);
curveSegmentPointToolMenu->addAction(ui->actionArcCutPointTool);
auto *curveSegmentPointTool = new VToolButtonPopup(this);
curveSegmentPointTool->setMenu(curveSegmentPointToolMenu);
curveSegmentPointTool->setDefaultAction(ui->actionSplineCutPointTool);
ui->toolBarPointTools->addWidget(curveSegmentPointTool);
}
{
auto *curveIntersectionPointToolMenu = new QMenu(this);
curveIntersectionPointToolMenu->addAction(ui->actionIntersectionCurvesTool);
curveIntersectionPointToolMenu->addAction(ui->actionPointOfIntersectionArcsTool);
curveIntersectionPointToolMenu->addAction(ui->actionPointOfIntersectionCirclesTool);
auto *curveIntersectionPointTool = new VToolButtonPopup(this);
curveIntersectionPointTool->setMenu(curveIntersectionPointToolMenu);
curveIntersectionPointTool->setDefaultAction(ui->actionIntersectionCurvesTool);
ui->toolBarPointTools->addWidget(curveIntersectionPointTool);
}
{
auto *tangentPointToolMenu = new QMenu(this);
tangentPointToolMenu->addAction(ui->actionPointFromArcAndTangentTool);
tangentPointToolMenu->addAction(ui->actionPointFromCircleAndTangentTool);
tangentPointToolMenu->addAction(ui->actionPointOfContactTool);
auto *tangentPointTool = new VToolButtonPopup(this);
tangentPointTool->setMenu(tangentPointToolMenu);
tangentPointTool->setDefaultAction(ui->actionPointFromArcAndTangentTool);
ui->toolBarPointTools->addWidget(tangentPointTool);
}
// Curve tools
{
auto *curveToolMenu = new QMenu(this);
curveToolMenu->addAction(ui->actionSplineTool);
curveToolMenu->addAction(ui->actionCubicBezierTool);
curveToolMenu->addAction(ui->actionSplinePathTool);
curveToolMenu->addAction(ui->actionCubicBezierPathTool);
curveToolMenu->addAction(ui->actionArcTool);
curveToolMenu->addAction(ui->actionArcWithLengthTool);
curveToolMenu->addAction(ui->actionEllipticalArcTool);
auto *curvePointTool = new VToolButtonPopup(this);
curvePointTool->setMenu(curveToolMenu);
curvePointTool->setDefaultAction(ui->actionSplineTool);
ui->toolBarCurveTools->addWidget(curvePointTool);
}
// Group tools
ui->toolBarOperationTools->addAction(ui->actionGroupTool);
{
auto *symmetryToolMenu = new QMenu(this);
symmetryToolMenu->addAction(ui->actionFlippingByAxisTool);
symmetryToolMenu->addAction(ui->actionFlippingByLineTool);
auto *symmetryTool = new VToolButtonPopup(this);
symmetryTool->setMenu(symmetryToolMenu);
symmetryTool->setDefaultAction(ui->actionFlippingByAxisTool);
ui->toolBarOperationTools->addWidget(symmetryTool);
}
{
auto *transformToolMenu = new QMenu(this);
transformToolMenu->addAction(ui->actionRotationTool);
transformToolMenu->addAction(ui->actionMoveTool);
auto *transformTool = new VToolButtonPopup(this);
transformTool->setMenu(transformToolMenu);
transformTool->setDefaultAction(ui->actionRotationTool);
ui->toolBarOperationTools->addWidget(transformTool);
}
ui->toolBarOperationTools->addAction(ui->actionTrueDartsTool);
ui->toolBarOperationTools->addAction(ui->actionExportDraw);
// Detail tools
ui->toolBarDetailTools->addAction(ui->actionNewDetailTool);
{
auto *detailToolMenu = new QMenu(this);
detailToolMenu->addAction(ui->actionUnionDetailsTool);
detailToolMenu->addAction(ui->actionDuplicateDetailTool);
auto *detailTool = new VToolButtonPopup(this);
detailTool->setMenu(detailToolMenu);
detailTool->setDefaultAction(ui->actionUnionDetailsTool);
ui->toolBarDetailTools->addWidget(detailTool);
}
{
auto *internalDetailItemToolMenu = new QMenu(this);
internalDetailItemToolMenu->addAction(ui->actionInternalPathTool);
internalDetailItemToolMenu->addAction(ui->actionPinTool);
internalDetailItemToolMenu->addAction(ui->actionInsertNodeTool);
internalDetailItemToolMenu->addAction(ui->actionPlaceLabelTool);
auto *detailTool = new VToolButtonPopup(this);
detailTool->setMenu(internalDetailItemToolMenu);
detailTool->setDefaultAction(ui->actionInternalPathTool);
ui->toolBarDetailTools->addWidget(detailTool);
}
ui->toolBarDetailTools->addAction(ui->actionDetailExportAs);
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
@ -3497,6 +3599,9 @@ void MainWindow::SetupDrawToolsIcons()
{ {
const QString resource = QStringLiteral("toolicon"); const QString resource = QStringLiteral("toolicon");
// This check helps to find missed tools
Q_STATIC_ASSERT_X(static_cast<int>(Tool::LAST_ONE_DO_NOT_USE) == 59, "Not all tools were handled.");
ui->actionLineTool->setIcon(VTheme::GetIconResource(resource, QStringLiteral("line.png"))); ui->actionLineTool->setIcon(VTheme::GetIconResource(resource, QStringLiteral("line.png")));
ui->actionEndLineTool->setIcon(VTheme::GetIconResource(resource, QStringLiteral("segment.png"))); ui->actionEndLineTool->setIcon(VTheme::GetIconResource(resource, QStringLiteral("segment.png")));
ui->actionAlongLineTool->setIcon(VTheme::GetIconResource(resource, QStringLiteral("along_line.png"))); ui->actionAlongLineTool->setIcon(VTheme::GetIconResource(resource, QStringLiteral("along_line.png")));
@ -6480,6 +6585,7 @@ void MainWindow::Preferences()
&VToolOptionsPropertyBrowser::RefreshOptions); &VToolOptionsPropertyBrowser::RefreshOptions);
connect(dlg.data(), &DialogPreferences::UpdateProperties, this, &MainWindow::ToolBarStyles); connect(dlg.data(), &DialogPreferences::UpdateProperties, this, &MainWindow::ToolBarStyles);
connect(dlg.data(), &DialogPreferences::UpdateProperties, this, &MainWindow::ToolboxIconSize); connect(dlg.data(), &DialogPreferences::UpdateProperties, this, &MainWindow::ToolboxIconSize);
connect(dlg.data(), &DialogPreferences::UpdateProperties, this, &MainWindow::ToolBarDrawTools);
connect(dlg.data(), &DialogPreferences::UpdateProperties, this, [this]() { emit doc->FullUpdateFromFile(); }); connect(dlg.data(), &DialogPreferences::UpdateProperties, this, [this]() { emit doc->FullUpdateFromFile(); });
connect(dlg.data(), &DialogPreferences::UpdateProperties, ui->view, connect(dlg.data(), &DialogPreferences::UpdateProperties, ui->view,
&VMainGraphicsView::ResetScrollingAnimation); &VMainGraphicsView::ResetScrollingAnimation);

View file

@ -59,6 +59,9 @@ Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingConfigurationLabelLanguage,
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingConfigurationToolPointerMode, Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingConfigurationToolPointerMode,
(QLatin1String("configuration/toolPointerMode"))) (QLatin1String("configuration/toolPointerMode")))
// NOLINTNEXTLINE // NOLINTNEXTLINE
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingConfigurationUseToolGroups,
(QLatin1String("configuration/useToolGroups")))
// NOLINTNEXTLINE
Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingAutoRefreshPatternMessage, Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingAutoRefreshPatternMessage,
(QLatin1String("configuration/autoRefreshPatternMessage"))) (QLatin1String("configuration/autoRefreshPatternMessage")))
@ -1056,6 +1059,18 @@ void VValentinaSettings::SetPointerMode(VToolPointerMode mode)
setValue(*settingConfigurationToolPointerMode, static_cast<int>(mode)); setValue(*settingConfigurationToolPointerMode, static_cast<int>(mode));
} }
//---------------------------------------------------------------------------------------------------------------------
auto VValentinaSettings::IsUseToolGroups() const -> bool
{
return value(*settingConfigurationUseToolGroups, true).toBool();
}
//---------------------------------------------------------------------------------------------------------------------
void VValentinaSettings::SetUseToolGroups(bool value)
{
setValue(*settingConfigurationUseToolGroups, value);
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
template <typename T> template <typename T>
auto VValentinaSettings::GetCachedValue(T &cache, const QString &setting, T defValue, T valueMin, T valueMax) const -> T auto VValentinaSettings::GetCachedValue(T &cache, const QString &setting, T defValue, T valueMin, T valueMax) const -> T

View file

@ -251,6 +251,9 @@ public:
auto GetPointerMode() const -> VToolPointerMode; auto GetPointerMode() const -> VToolPointerMode;
void SetPointerMode(VToolPointerMode mode); void SetPointerMode(VToolPointerMode mode);
auto IsUseToolGroups() const -> bool;
void SetUseToolGroups(bool value);
private: private:
Q_DISABLE_COPY_MOVE(VValentinaSettings) // NOLINT Q_DISABLE_COPY_MOVE(VValentinaSettings) // NOLINT