diff --git a/ChangeLog.txt b/ChangeLog.txt index fe2b9c3cc..4441f8219 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -37,7 +37,8 @@ - Support for Dark mode. - Fix issue with passing incorrect number of dimension to Tape. - 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 - Fix crash when default locale is ru. diff --git a/src/app/valentina/dialogs/configpages/preferencesconfigurationpage.cpp b/src/app/valentina/dialogs/configpages/preferencesconfigurationpage.cpp index 74db0af33..41b302074 100644 --- a/src/app/valentina/dialogs/configpages/preferencesconfigurationpage.cpp +++ b/src/app/valentina/dialogs/configpages/preferencesconfigurationpage.cpp @@ -151,6 +151,9 @@ PreferencesConfigurationPage::PreferencesConfigurationPage(QWidget *parent) ui->comboBoxPointerMode->setCurrentIndex(index); } + // Use tool groups + ui->checkBoxUseToolGroups->setChecked(settings->IsUseToolGroups()); + // Native dialogs ui->checkBoxDontUseNativeDialog->setChecked(settings->IsDontUseNativeDialog()); @@ -234,6 +237,11 @@ auto PreferencesConfigurationPage::Apply() -> QStringList settings->SetPointerMode(static_cast(ui->comboBoxPointerMode->currentData().toInt())); + if (settings->IsUseToolGroups() != ui->checkBoxUseToolGroups->isChecked()) + { + settings->SetUseToolGroups(ui->checkBoxUseToolGroups->isChecked()); + } + if (settings->IsDontUseNativeDialog() != ui->checkBoxDontUseNativeDialog->isChecked()) { settings->SetDontUseNativeDialog(ui->checkBoxDontUseNativeDialog->isChecked()); diff --git a/src/app/valentina/dialogs/configpages/preferencesconfigurationpage.ui b/src/app/valentina/dialogs/configpages/preferencesconfigurationpage.ui index ee4f51c9d..5df39a579 100644 --- a/src/app/valentina/dialogs/configpages/preferencesconfigurationpage.ui +++ b/src/app/valentina/dialogs/configpages/preferencesconfigurationpage.ui @@ -33,9 +33,9 @@ 0 - -101 + -134 624 - 937 + 966 @@ -385,6 +385,13 @@ + + + + Use tool groups + + + diff --git a/src/app/valentina/mainwindow.cpp b/src/app/valentina/mainwindow.cpp index eca712488..8e703729b 100644 --- a/src/app/valentina/mainwindow.cpp +++ b/src/app/valentina/mainwindow.cpp @@ -3041,186 +3041,288 @@ void MainWindow::ToolBarDrawTools() { SetupDrawToolsIcons(); - // Point tools + VValentinaSettings *settings = VApplication::VApp()->ValentinaSettings(); + + ui->toolBarPointTools->clear(); + if (settings->IsUseToolGroups()) { - auto *linePointToolMenu = new QMenu(this); - linePointToolMenu->addAction(ui->actionEndLineTool); - linePointToolMenu->addAction(ui->actionAlongLineTool); - linePointToolMenu->addAction(ui->actionMidpointTool); + // Point tools + { + auto *linePointToolMenu = new QMenu(this); + linePointToolMenu->addAction(ui->actionEndLineTool); + linePointToolMenu->addAction(ui->actionAlongLineTool); + linePointToolMenu->addAction(ui->actionMidpointTool); - auto *linePointTool = new VToolButtonPopup(this); - linePointTool->setMenu(linePointToolMenu); - linePointTool->setDefaultAction(ui->actionEndLineTool); + auto *linePointTool = new VToolButtonPopup(this); + linePointTool->setMenu(linePointToolMenu); + 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); - angleLinePointToolMenu->addAction(ui->actionNormalTool); - angleLinePointToolMenu->addAction(ui->actionBisectorTool); - angleLinePointToolMenu->addAction(ui->actionHeightTool); + // 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 *angleLinePointTool = new VToolButtonPopup(this); - angleLinePointTool->setMenu(angleLinePointToolMenu); - angleLinePointTool->setDefaultAction(ui->actionNormalTool); + auto *curvePointTool = new VToolButtonPopup(this); + curvePointTool->setMenu(curveToolMenu); + 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); - lineIntersectionPointToolMenu->addAction(ui->actionPointOfIntersectionTool); - lineIntersectionPointToolMenu->addAction(ui->actionLineIntersectTool); + // Group tools + ui->toolBarOperationTools->addAction(ui->actionGroupTool); - auto *lineIntersectionPointTool = new VToolButtonPopup(this); - lineIntersectionPointTool->setMenu(lineIntersectionPointToolMenu); - lineIntersectionPointTool->setDefaultAction(ui->actionPointOfIntersectionTool); + { + auto *symmetryToolMenu = new QMenu(this); + 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); - specialPointToolMenu->addAction(ui->actionShoulderPointTool); - specialPointToolMenu->addAction(ui->actionTriangleTool); + // Detail tools + ui->toolBarDetailTools->addAction(ui->actionNewDetailTool); + { + auto *detailToolMenu = new QMenu(this); + detailToolMenu->addAction(ui->actionUnionDetailsTool); + detailToolMenu->addAction(ui->actionDuplicateDetailTool); - auto *specialPointTool = new VToolButtonPopup(this); - specialPointTool->setMenu(specialPointToolMenu); - specialPointTool->setDefaultAction(ui->actionShoulderPointTool); + auto *detailTool = new VToolButtonPopup(this); + detailTool->setMenu(detailToolMenu); + 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); - axisPointToolMenu->addAction(ui->actionLineIntersectAxisTool); - axisPointToolMenu->addAction(ui->actionCurveIntersectAxisTool); - axisPointToolMenu->addAction(ui->actionArcIntersectAxisTool); + ui->toolBarDetailTools->addAction(ui->actionNewDetailTool); - auto *axisPointTool = new VToolButtonPopup(this); - axisPointTool->setMenu(axisPointToolMenu); - axisPointTool->setDefaultAction(ui->actionLineIntersectAxisTool); + ui->toolBarDetailTools->addAction(ui->actionUnionDetailsTool); + ui->toolBarDetailTools->addAction(ui->actionDuplicateDetailTool); - 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"); + // This check helps to find missed tools + Q_STATIC_ASSERT_X(static_cast(Tool::LAST_ONE_DO_NOT_USE) == 59, "Not all tools were handled."); + ui->actionLineTool->setIcon(VTheme::GetIconResource(resource, QStringLiteral("line.png"))); ui->actionEndLineTool->setIcon(VTheme::GetIconResource(resource, QStringLiteral("segment.png"))); ui->actionAlongLineTool->setIcon(VTheme::GetIconResource(resource, QStringLiteral("along_line.png"))); @@ -6480,6 +6585,7 @@ void MainWindow::Preferences() &VToolOptionsPropertyBrowser::RefreshOptions); connect(dlg.data(), &DialogPreferences::UpdateProperties, this, &MainWindow::ToolBarStyles); 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, ui->view, &VMainGraphicsView::ResetScrollingAnimation); diff --git a/src/libs/vmisc/vvalentinasettings.cpp b/src/libs/vmisc/vvalentinasettings.cpp index b4a1585c5..4ce3ad7d3 100644 --- a/src/libs/vmisc/vvalentinasettings.cpp +++ b/src/libs/vmisc/vvalentinasettings.cpp @@ -59,6 +59,9 @@ Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingConfigurationLabelLanguage, Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingConfigurationToolPointerMode, (QLatin1String("configuration/toolPointerMode"))) // NOLINTNEXTLINE +Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingConfigurationUseToolGroups, + (QLatin1String("configuration/useToolGroups"))) +// NOLINTNEXTLINE Q_GLOBAL_STATIC_WITH_ARGS(const QString, settingAutoRefreshPatternMessage, (QLatin1String("configuration/autoRefreshPatternMessage"))) @@ -1056,6 +1059,18 @@ void VValentinaSettings::SetPointerMode(VToolPointerMode mode) setValue(*settingConfigurationToolPointerMode, static_cast(mode)); } +//--------------------------------------------------------------------------------------------------------------------- +auto VValentinaSettings::IsUseToolGroups() const -> bool +{ + return value(*settingConfigurationUseToolGroups, true).toBool(); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VValentinaSettings::SetUseToolGroups(bool value) +{ + setValue(*settingConfigurationUseToolGroups, value); +} + //--------------------------------------------------------------------------------------------------------------------- template auto VValentinaSettings::GetCachedValue(T &cache, const QString &setting, T defValue, T valueMin, T valueMax) const -> T diff --git a/src/libs/vmisc/vvalentinasettings.h b/src/libs/vmisc/vvalentinasettings.h index 258378f80..653cc388e 100644 --- a/src/libs/vmisc/vvalentinasettings.h +++ b/src/libs/vmisc/vvalentinasettings.h @@ -251,6 +251,9 @@ public: auto GetPointerMode() const -> VToolPointerMode; void SetPointerMode(VToolPointerMode mode); + auto IsUseToolGroups() const -> bool; + void SetUseToolGroups(bool value); + private: Q_DISABLE_COPY_MOVE(VValentinaSettings) // NOLINT