From 8a63fdd7c09c486ae89aeb633440aa3ea8c01fe3 Mon Sep 17 00:00:00 2001 From: Michael Lyle Date: Sun, 12 Jul 2026 17:43:23 -0700 Subject: [PATCH] Make drawing palettes configurable Scale board and desktop drawing palettes from 100 to 200 percent, keep desktop subtool hit regions proportional, and let users hide individual pen, marker, eraser, selector, and pointer tools. --- resources/etc/OpenBoard.config | 6 ++ resources/forms/preferences.ui | 48 ++++++++-- src/core/UBPreferencesController.cpp | 29 ++++++ src/core/UBSettings.cpp | 7 ++ src/core/UBSettings.h | 7 ++ src/desktop/UBDesktopAnnotationController.cpp | 45 ++++----- src/desktop/UBDesktopAnnotationController.h | 1 + src/desktop/UBDesktopPalette.cpp | 95 +++++++++++++------ src/desktop/UBDesktopPalette.h | 4 + src/gui/UBActionPalette.cpp | 3 +- src/gui/UBStylusPalette.cpp | 66 ++++++++++++- src/gui/UBStylusPalette.h | 2 + 12 files changed, 247 insertions(+), 66 deletions(-) diff --git a/resources/etc/OpenBoard.config b/resources/etc/OpenBoard.config index ffc35de9b..f17da3e54 100644 --- a/resources/etc/OpenBoard.config +++ b/resources/etc/OpenBoard.config @@ -51,6 +51,12 @@ MarkerLightBackgroundSelectedColors=#E3FF00, #FF0000, #004080, #008000, #C87400 MarkerMediumWidth=24 MarkerPressureSensitive=false MarkerStrongWidth=48 +DesktopPaletteScalePercent=100 +DesktopPaletteShowPen=true +DesktopPaletteShowEraser=true +DesktopPaletteShowMarker=true +DesktopPaletteShowSelector=true +DesktopPaletteShowPointer=true pageDpi=0 PenColorIndex=0 PenDarkBackgroundColors=#FFFFFF, #FF3400, #66C0FF, #81FF5C, #FFFF00, #B68360, #FF497E, #8D69FF, #000000 diff --git a/resources/forms/preferences.ui b/resources/forms/preferences.ui index 4ec35bd9f..6fa6ad8d7 100644 --- a/resources/forms/preferences.ui +++ b/resources/forms/preferences.ui @@ -94,20 +94,20 @@ 0 0 1018 - 1200 + 1300 783 - 1200 + 1300 0 - 920 + 1020 1011 111 @@ -234,7 +234,7 @@ 0 - 1040 + 1140 1011 111 @@ -485,7 +485,7 @@ 0 840 1011 - 111 + 211 @@ -498,7 +498,7 @@ Mode - + @@ -564,6 +564,42 @@ + + + + Drawing palette scale: + + + + + + 100% + 110% + 120% + 130% + 140% + 150% + 160% + 170% + 180% + 190% + 200% + + + + + + + Visible palette tools: + + + Pen + Marker + Eraser + Selector + Laser pointer + + diff --git a/src/core/UBPreferencesController.cpp b/src/core/UBPreferencesController.cpp index 76c5fa479..7a94aead4 100644 --- a/src/core/UBPreferencesController.cpp +++ b/src/core/UBPreferencesController.cpp @@ -316,6 +316,21 @@ void UBPreferencesController::wire() settings->appThemeMode->setInt(index); UBThemeManager::instance()->applyUserThemePreference(); }); + connect(mPreferencesUI->desktopPaletteScaleComboBox, + qOverload(&QComboBox::currentIndexChanged), this, + [settings](int index) { + settings->desktopPaletteScalePercent->setInt(100 + index * 10); + }); + connect(mPreferencesUI->desktopShowPenCheckBox, SIGNAL(clicked(bool)), + settings->desktopPaletteShowPen, SLOT(setBool(bool))); + connect(mPreferencesUI->desktopShowMarkerCheckBox, SIGNAL(clicked(bool)), + settings->desktopPaletteShowMarker, SLOT(setBool(bool))); + connect(mPreferencesUI->desktopShowEraserCheckBox, SIGNAL(clicked(bool)), + settings->desktopPaletteShowEraser, SLOT(setBool(bool))); + connect(mPreferencesUI->desktopShowSelectorCheckBox, SIGNAL(clicked(bool)), + settings->desktopPaletteShowSelector, SLOT(setBool(bool))); + connect(mPreferencesUI->desktopShowPointerCheckBox, SIGNAL(clicked(bool)), + settings->desktopPaletteShowPointer, SLOT(setBool(bool))); connect(mPreferencesUI->useExternalBrowserCheckBox, SIGNAL(clicked(bool)), settings->webUseExternalBrowser, SLOT(setBool(bool))); connect(mPreferencesUI->displayBrowserPageCheckBox, SIGNAL(clicked(bool)), settings->webShowPageImmediatelyOnMirroredScreen, SLOT(setBool(bool))); @@ -472,6 +487,13 @@ void UBPreferencesController::init() mPreferencesUI->startModeComboBox->setCurrentIndex(settings->appStartMode->get().toInt()); mPreferencesUI->themeComboBox->setCurrentIndex(settings->appThemeMode->get().toInt()); + const int desktopScale = qBound(100, settings->desktopPaletteScalePercent->get().toInt(), 200); + mPreferencesUI->desktopPaletteScaleComboBox->setCurrentIndex((desktopScale - 100) / 10); + mPreferencesUI->desktopShowPenCheckBox->setChecked(settings->desktopPaletteShowPen->get().toBool()); + mPreferencesUI->desktopShowMarkerCheckBox->setChecked(settings->desktopPaletteShowMarker->get().toBool()); + mPreferencesUI->desktopShowEraserCheckBox->setChecked(settings->desktopPaletteShowEraser->get().toBool()); + mPreferencesUI->desktopShowSelectorCheckBox->setChecked(settings->desktopPaletteShowSelector->get().toBool()); + mPreferencesUI->desktopShowPointerCheckBox->setChecked(settings->desktopPaletteShowPointer->get().toBool()); mPreferencesUI->useExternalBrowserCheckBox->setChecked(settings->webUseExternalBrowser->get().toBool()); mPreferencesUI->displayBrowserPageCheckBox->setChecked(settings->webShowPageImmediatelyOnMirroredScreen->get().toBool()); @@ -546,6 +568,13 @@ void UBPreferencesController::defaultSettings() mPreferencesUI->verticalChoice->setChecked(settings->appToolBarOrientationVertical->reset().toBool()); mPreferencesUI->horizontalChoice->setChecked(!settings->appToolBarOrientationVertical->reset().toBool()); mPreferencesUI->startModeComboBox->setCurrentIndex(0); + mPreferencesUI->desktopPaletteScaleComboBox->setCurrentIndex( + (settings->desktopPaletteScalePercent->reset().toInt() - 100) / 10); + mPreferencesUI->desktopShowPenCheckBox->setChecked(settings->desktopPaletteShowPen->reset().toBool()); + mPreferencesUI->desktopShowMarkerCheckBox->setChecked(settings->desktopPaletteShowMarker->reset().toBool()); + mPreferencesUI->desktopShowEraserCheckBox->setChecked(settings->desktopPaletteShowEraser->reset().toBool()); + mPreferencesUI->desktopShowSelectorCheckBox->setChecked(settings->desktopPaletteShowSelector->reset().toBool()); + mPreferencesUI->desktopShowPointerCheckBox->setChecked(settings->desktopPaletteShowPointer->reset().toBool()); mPreferencesUI->useSystemOSKCheckBox->setChecked(settings->useSystemOnScreenKeyboard->reset().toBool()); diff --git a/src/core/UBSettings.cpp b/src/core/UBSettings.cpp index 0d6cd120c..a49b51eec 100644 --- a/src/core/UBSettings.cpp +++ b/src/core/UBSettings.cpp @@ -315,6 +315,13 @@ void UBSettings::init() boardUseHighResTabletEvent = new UBSetting(this, "Board", "UseHighResTabletEvent", true); + desktopPaletteScalePercent = new UBSetting(this, "Board", "DesktopPaletteScalePercent", 100); + desktopPaletteShowPen = new UBSetting(this, "Board", "DesktopPaletteShowPen", true); + desktopPaletteShowEraser = new UBSetting(this, "Board", "DesktopPaletteShowEraser", true); + desktopPaletteShowMarker = new UBSetting(this, "Board", "DesktopPaletteShowMarker", true); + desktopPaletteShowSelector = new UBSetting(this, "Board", "DesktopPaletteShowSelector", true); + desktopPaletteShowPointer = new UBSetting(this, "Board", "DesktopPaletteShowPointer", true); + boardInterpolatePenStrokes = new UBSetting(this, "Board", "InterpolatePenStrokes", true); boardSimplifyPenStrokes = new UBSetting(this, "Board", "SimplifyPenStrokes", true); boardSimplifyPenStrokesThresholdAngle = new UBSetting(this, "Board", "SimplifyPenStrokesThresholdAngle", 2); diff --git a/src/core/UBSettings.h b/src/core/UBSettings.h index f87e8e7cf..b6e06c8b1 100644 --- a/src/core/UBSettings.h +++ b/src/core/UBSettings.h @@ -300,6 +300,13 @@ class UBSettings : public QObject UBSetting* boardUseHighResTabletEvent; + UBSetting* desktopPaletteScalePercent; + UBSetting* desktopPaletteShowPen; + UBSetting* desktopPaletteShowEraser; + UBSetting* desktopPaletteShowMarker; + UBSetting* desktopPaletteShowSelector; + UBSetting* desktopPaletteShowPointer; + UBSetting* boardInterpolatePenStrokes; UBSetting* boardSimplifyPenStrokes; UBSetting* boardSimplifyPenStrokesThresholdAngle; diff --git a/src/desktop/UBDesktopAnnotationController.cpp b/src/desktop/UBDesktopAnnotationController.cpp index 14948b3a7..3d6d75e3c 100644 --- a/src/desktop/UBDesktopAnnotationController.cpp +++ b/src/desktop/UBDesktopAnnotationController.cpp @@ -570,15 +570,7 @@ void UBDesktopAnnotationController::penActionPressed() mPenHoldTimer = QTime::currentTime(); mPendingPenButtonPressed = true; - // Check if the mouse cursor is on the little arrow - QPoint cursorPos = QCursor::pos(); - QPoint palettePos = mDesktopPalette->mapToGlobal(QPoint(0, 0)); // global coordinates of palette - QPoint buttonPos = mDesktopPalette->buttonPos(UBApplication::mainWindow->actionPen); - - int iX = cursorPos.x() - (palettePos.x() + buttonPos.x()); // x position of the cursor in the palette - int iY = cursorPos.y() - (palettePos.y() + buttonPos.y()); // y position of the cursor in the palette - - if(iX >= 30 && iX <= 44 && iY >= 30 && iY <= 44) + if (isSubtoolArrowPressed(UBApplication::mainWindow->actionPen)) { mbArrowClicked = true; penActionReleased(); @@ -624,15 +616,7 @@ void UBDesktopAnnotationController::eraserActionPressed() mEraserHoldTimer = QTime::currentTime(); mPendingEraserButtonPressed = true; - // Check if the mouse cursor is on the little arrow - QPoint cursorPos = QCursor::pos(); - QPoint palettePos = mDesktopPalette->mapToGlobal(QPoint(0, 0)); - QPoint buttonPos = mDesktopPalette->buttonPos(UBApplication::mainWindow->actionEraser); - - int iX = cursorPos.x() - (palettePos.x() + buttonPos.x()); // x position of the cursor in the palette - int iY = cursorPos.y() - (palettePos.y() + buttonPos.y()); // y position of the cursor in the palette - - if(iX >= 30 && iX <= 44 && iY >= 30 && iY <= 44) + if (isSubtoolArrowPressed(UBApplication::mainWindow->actionEraser)) { mbArrowClicked = true; eraserActionReleased(); @@ -679,15 +663,7 @@ void UBDesktopAnnotationController::markerActionPressed() mMarkerHoldTimer = QTime::currentTime(); mPendingMarkerButtonPressed = true; - // Check if the mouse cursor is on the little arrow - QPoint cursorPos = QCursor::pos(); - QPoint palettePos = mDesktopPalette->mapToGlobal(QPoint(0, 0)); - QPoint buttonPos = mDesktopPalette->buttonPos(UBApplication::mainWindow->actionMarker); - - int iX = cursorPos.x() - (palettePos.x() + buttonPos.x()); // x position of the cursor in the palette - int iY = cursorPos.y() - (palettePos.y() + buttonPos.y()); // y position of the cursor in the palette - - if(iX >= 30 && iX <= 44 && iY >= 30 && iY <= 44) + if (isSubtoolArrowPressed(UBApplication::mainWindow->actionMarker)) { mbArrowClicked = true; markerActionReleased(); @@ -777,6 +753,21 @@ void UBDesktopAnnotationController::switchCursor(const int tool) mTransparentDrawingView->setToolCursor(tool); } +bool UBDesktopAnnotationController::isSubtoolArrowPressed(QAction* action) const +{ + UBActionPaletteButton* button = mDesktopPalette->getButtonFromAction(action); + + if (!button) + return false; + + const QPoint localPosition = button->mapFromGlobal(QCursor::pos()); + const int arrowExtent = qMax(14, qRound(qMin(button->width(), button->height()) * 0.36)); + const QRect arrowRegion(button->width() - arrowExtent, + button->height() - arrowExtent, + arrowExtent, arrowExtent); + return arrowRegion.contains(localPosition); +} + /** * \brief Reconnect the pressed & released signals of the property palettes */ diff --git a/src/desktop/UBDesktopAnnotationController.h b/src/desktop/UBDesktopAnnotationController.h index b217a663a..3510b4a56 100644 --- a/src/desktop/UBDesktopAnnotationController.h +++ b/src/desktop/UBDesktopAnnotationController.h @@ -133,6 +133,7 @@ class UBDesktopAnnotationController : public QObject void togglePropertyPalette(UBActionPalette* palette); void updateMask(bool bTransparent); static QPixmap clipboardScreenshot(); + bool isSubtoolArrowPressed(QAction* action) const; UBDesktopPalette *mDesktopPalette; //UBKeyboardPalette *mKeyboardPalette; diff --git a/src/desktop/UBDesktopPalette.cpp b/src/desktop/UBDesktopPalette.cpp index 9e28a6442..b0d48276d 100644 --- a/src/desktop/UBDesktopPalette.cpp +++ b/src/desktop/UBDesktopPalette.cpp @@ -50,29 +50,14 @@ UBDesktopPalette::UBDesktopPalette(QWidget *parent, UBRightPalette* _rightPalett , mDisplaySelectAction(NULL) , rightPalette(_rightPalette) { - QList actions; - mActionUniboard = new QAction(QIcon(":/images/toolbar/board.png"), tr("Show OpenBoard"), this); connect(mActionUniboard, SIGNAL(triggered()), this, SIGNAL(uniboardClick())); - actions << mActionUniboard; - - - actions << UBApplication::mainWindow->actionPen; - actions << UBApplication::mainWindow->actionEraser; - actions << UBApplication::mainWindow->actionMarker; - actions << UBApplication::mainWindow->actionSelector; - actions << UBApplication::mainWindow->actionPointer; - - if (UBPlatformUtils::hasVirtualKeyboard()) - actions << UBApplication::mainWindow->actionVirtualKeyboard; mActionCustomSelect = new QAction(QIcon(":/images/toolbar/captureArea.png"), tr("Capture Part of the Screen"), this); connect(mActionCustomSelect, SIGNAL(triggered()), this, SIGNAL(customClick())); - actions << mActionCustomSelect; mDisplaySelectAction = new QAction(QIcon(":/images/toolbar/captureScreen.png"), tr("Capture the Screen"), this); connect(mDisplaySelectAction, SIGNAL(triggered()), this, SIGNAL(screenClick())); - actions << mDisplaySelectAction; QIcon showHideIcon; showHideIcon.addPixmap(QPixmap(":/images/toolbar/eyeOpened.png"), QIcon::Normal , QIcon::On); @@ -81,10 +66,9 @@ UBDesktopPalette::UBDesktopPalette(QWidget *parent, UBRightPalette* _rightPalett mShowHideAction->setCheckable(true); connect(mShowHideAction, SIGNAL(triggered(bool)), this, SLOT(showHideClick(bool))); - actions << mShowHideAction; - setActions(actions); - setButtonIconSize(QSize(42, 42)); + setActions(maximizedActions()); + applyScale(); adjustSizeAndPosition(); @@ -98,6 +82,20 @@ UBDesktopPalette::UBDesktopPalette(QWidget *parent, UBRightPalette* _rightPalett setMinimizePermission(true); connect(rightPalette, SIGNAL(resized()), this, SLOT(parentResized())); + + UBSettings* settings = UBSettings::settings(); + connect(settings->desktopPaletteScalePercent, SIGNAL(changed(QVariant)), + this, SLOT(desktopPaletteSettingsChanged(QVariant))); + connect(settings->desktopPaletteShowPen, SIGNAL(changed(QVariant)), + this, SLOT(desktopPaletteSettingsChanged(QVariant))); + connect(settings->desktopPaletteShowEraser, SIGNAL(changed(QVariant)), + this, SLOT(desktopPaletteSettingsChanged(QVariant))); + connect(settings->desktopPaletteShowMarker, SIGNAL(changed(QVariant)), + this, SLOT(desktopPaletteSettingsChanged(QVariant))); + connect(settings->desktopPaletteShowSelector, SIGNAL(changed(QVariant)), + this, SLOT(desktopPaletteSettingsChanged(QVariant))); + connect(settings->desktopPaletteShowPointer, SIGNAL(changed(QVariant)), + this, SLOT(desktopPaletteSettingsChanged(QVariant))); } @@ -165,6 +163,7 @@ void UBDesktopPalette::minimizeMe(eMinimizedLocation location) { Q_UNUSED(location); QList actions; + mIsMinimized = true; clearLayout(); actions << mMaximizeAction; @@ -180,30 +179,70 @@ void UBDesktopPalette::minimizeMe(eMinimizedLocation location) // Called when the user wants to maximize the palette void UBDesktopPalette::maximizeMe() { - QList actions; + mIsMinimized = false; clearLayout(); + setActions(maximizedActions()); + + adjustSizeAndPosition(); + + // Notify that the maximization has been done + emit maximized(); +#ifdef UB_REQUIRES_MASK_UPDATE + emit refreshMask(); +#endif +} + +QList UBDesktopPalette::maximizedActions() const +{ + UBSettings* settings = UBSettings::settings(); + QList actions; + actions << mActionUniboard; - actions << UBApplication::mainWindow->actionPen; - actions << UBApplication::mainWindow->actionEraser; - actions << UBApplication::mainWindow->actionMarker; - actions << UBApplication::mainWindow->actionSelector; - actions << UBApplication::mainWindow->actionPointer; + if (settings->desktopPaletteShowPen->get().toBool()) + actions << UBApplication::mainWindow->actionPen; + if (settings->desktopPaletteShowEraser->get().toBool()) + actions << UBApplication::mainWindow->actionEraser; + if (settings->desktopPaletteShowMarker->get().toBool()) + actions << UBApplication::mainWindow->actionMarker; + if (settings->desktopPaletteShowSelector->get().toBool()) + actions << UBApplication::mainWindow->actionSelector; + if (settings->desktopPaletteShowPointer->get().toBool()) + actions << UBApplication::mainWindow->actionPointer; + if (UBPlatformUtils::hasVirtualKeyboard()) actions << UBApplication::mainWindow->actionVirtualKeyboard; actions << mActionCustomSelect; actions << mDisplaySelectAction; actions << mShowHideAction; + return actions; +} - setActions(actions); +void UBDesktopPalette::applyScale() +{ + const int percent = qBound(100, + UBSettings::settings()->desktopPaletteScalePercent->get().toInt(), 200); + const int iconExtent = qRound(42.0 * percent / 100.0); + setButtonIconSize(QSize(iconExtent, iconExtent)); +} + +void UBDesktopPalette::desktopPaletteSettingsChanged(QVariant value) +{ + Q_UNUSED(value); + applyScale(); + + if (!mIsMinimized) + { + clearLayout(); + setActions(maximizedActions()); + emit maximized(); + } adjustSizeAndPosition(); - // Notify that the maximization has been done - emit maximized(); #ifdef UB_REQUIRES_MASK_UPDATE - emit refreshMask(); + emit refreshMask(); #endif } diff --git a/src/desktop/UBDesktopPalette.h b/src/desktop/UBDesktopPalette.h index 25a2b031c..7914534f4 100644 --- a/src/desktop/UBDesktopPalette.h +++ b/src/desktop/UBDesktopPalette.h @@ -69,6 +69,7 @@ class UBDesktopPalette : public UBActionPalette void minimizeMe(eMinimizedLocation location); void maximizeMe(); void parentResized(); + void desktopPaletteSettingsChanged(QVariant value = QVariant()); protected: void showEvent(QShowEvent *event); @@ -83,10 +84,13 @@ class UBDesktopPalette : public UBActionPalette QAction *mActionUniboard; QAction *mActionCustomSelect; QAction* mActionTest; + bool mIsMinimized{false}; UBRightPalette* rightPalette; void adjustPosition(); + QList maximizedActions() const; + void applyScale(); signals: diff --git a/src/gui/UBActionPalette.cpp b/src/gui/UBActionPalette.cpp index 66d241a09..64af42288 100644 --- a/src/gui/UBActionPalette.cpp +++ b/src/gui/UBActionPalette.cpp @@ -109,7 +109,8 @@ UBActionPaletteButton* UBActionPalette::createPaletteButton(QAction* action, QWi connect(button, &UBActionPaletteButton::clicked, this, &UBActionPalette::buttonClicked); connect(action, &QAction::changed, - this, &UBActionPalette::actionChanged); + this, &UBActionPalette::actionChanged, + Qt::UniqueConnection); return button; } diff --git a/src/gui/UBStylusPalette.cpp b/src/gui/UBStylusPalette.cpp index 0e8b5b7e3..d3aa534e2 100644 --- a/src/gui/UBStylusPalette.cpp +++ b/src/gui/UBStylusPalette.cpp @@ -76,13 +76,39 @@ UBStylusPalette::UBStylusPalette(QWidget *parent, Qt::Orientation orient) UBApplication::mainWindow->actionSnap->setProperty("ungrouped", true); setActions(actions); - setButtonIconSize(QSize(42, 42)); groupActions(); UBShortcutManager::shortcutManager()->addActionGroup(mActionGroup); - adjustSizeAndPosition(); + UBSettings* settings = UBSettings::settings(); + connect(settings->desktopPaletteScalePercent, SIGNAL(changed(QVariant)), + this, SLOT(paletteSettingsChanged(QVariant))); + connect(settings->desktopPaletteShowPen, SIGNAL(changed(QVariant)), + this, SLOT(paletteSettingsChanged(QVariant))); + connect(settings->desktopPaletteShowEraser, SIGNAL(changed(QVariant)), + this, SLOT(paletteSettingsChanged(QVariant))); + connect(settings->desktopPaletteShowMarker, SIGNAL(changed(QVariant)), + this, SLOT(paletteSettingsChanged(QVariant))); + connect(settings->desktopPaletteShowSelector, SIGNAL(changed(QVariant)), + this, SLOT(paletteSettingsChanged(QVariant))); + connect(settings->desktopPaletteShowPointer, SIGNAL(changed(QVariant)), + this, SLOT(paletteSettingsChanged(QVariant))); + + const QList configurableActions = { + UBApplication::mainWindow->actionPen, + UBApplication::mainWindow->actionEraser, + UBApplication::mainWindow->actionMarker, + UBApplication::mainWindow->actionSelector, + UBApplication::mainWindow->actionPointer + }; + + for (QAction* action : configurableActions) + { + // Reapply palette visibility after QAction state changes. + connect(action, &QAction::changed, this, [this]() { applyToolVisibility(); }); + } + paletteSettingsChanged(); initPosition(); foreach(const UBActionPaletteButton* button, mButtons) @@ -92,6 +118,40 @@ UBStylusPalette::UBStylusPalette(QWidget *parent, Qt::Orientation orient) } +void UBStylusPalette::paletteSettingsChanged(QVariant value) +{ + Q_UNUSED(value); + + UBSettings* settings = UBSettings::settings(); + const int percent = qBound(100, settings->desktopPaletteScalePercent->get().toInt(), 200); + const int iconExtent = qRound(42.0 * percent / 100.0); + setButtonIconSize(QSize(iconExtent, iconExtent)); + + applyToolVisibility(); + adjustSizeAndPosition(); +} + +void UBStylusPalette::applyToolVisibility() +{ + UBSettings* settings = UBSettings::settings(); + + const auto setButtonVisible = [this](QAction* action, bool visible) { + if (UBActionPaletteButton* button = getButtonFromAction(action)) + button->setVisible(visible); + }; + + setButtonVisible(UBApplication::mainWindow->actionPen, + settings->desktopPaletteShowPen->get().toBool()); + setButtonVisible(UBApplication::mainWindow->actionEraser, + settings->desktopPaletteShowEraser->get().toBool()); + setButtonVisible(UBApplication::mainWindow->actionMarker, + settings->desktopPaletteShowMarker->get().toBool()); + setButtonVisible(UBApplication::mainWindow->actionSelector, + settings->desktopPaletteShowSelector->get().toBool()); + setButtonVisible(UBApplication::mainWindow->actionPointer, + settings->desktopPaletteShowPointer->get().toBool()); +} + void UBStylusPalette::initPosition() { QWidget* pParentW = parentWidget(); @@ -130,5 +190,3 @@ void UBStylusPalette::stylusToolDoubleClicked() { emit stylusToolDoubleClicked(mActionGroup->checkedAction()->property("id").toInt()); } - - diff --git a/src/gui/UBStylusPalette.h b/src/gui/UBStylusPalette.h index 4bce4cf8d..346ceabd5 100644 --- a/src/gui/UBStylusPalette.h +++ b/src/gui/UBStylusPalette.h @@ -48,8 +48,10 @@ class UBStylusPalette : public UBActionPalette private slots: void stylusToolDoubleClicked(); + void paletteSettingsChanged(QVariant value = QVariant()); private: + void applyToolVisibility(); int mLastSelectedId; signals: