From 8a0b6e1bbe23c53d73ca6c412094e8c0c463ccba Mon Sep 17 00:00:00 2001 From: thomas_lucky13 Date: Sun, 13 Nov 2022 12:54:55 +0400 Subject: [PATCH] toolbar_elements_changed Automated remove and add property palette such as: line width choice, color choice, eraser width choice --- src/board/UBBoardController.cpp | 38 ++++++++++++++++++++++++++++----- src/board/UBBoardController.h | 8 +++++++ 2 files changed, 41 insertions(+), 5 deletions(-) diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index dd5afac5..080036ec 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -300,6 +300,7 @@ QRectF UBBoardController::controlGeometry() void UBBoardController::setupToolbar() { + QAction* newPropertyPaletteWidget; UBSettings *settings = UBSettings::settings(); // Setup color choice widget @@ -314,7 +315,7 @@ void UBBoardController::setupToolbar() new UBToolbarButtonGroup(mMainWindow->boardToolBar, colorActions); colorChoice->setLabel(tr("Color")); - mMainWindow->boardToolBar->insertWidget(mMainWindow->actionBackgrounds, colorChoice); + newPropertyPaletteWidget = mMainWindow->boardToolBar->insertWidget(mMainWindow->actionBackgrounds, colorChoice); connect(settings->appToolBarDisplayText, SIGNAL(changed(QVariant)), colorChoice, SLOT(displayText(QVariant))); connect(colorChoice, SIGNAL(activated(int)), this, SLOT(setColorIndex(int))); @@ -327,6 +328,7 @@ void UBBoardController::setupToolbar() colorChoice->colorPaletteChanged(); colorChoice->setCurrentIndex(settings->penColorIndex()); colorActions.at(settings->penColorIndex())->setChecked(true); + mPropertyPaletteWidgets.insert(color, newPropertyPaletteWidget); // Setup line width choice widget QList lineWidthActions; @@ -349,7 +351,8 @@ void UBBoardController::setupToolbar() lineWidthChoice->setCurrentIndex(settings->penWidthIndex()); lineWidthActions.at(settings->penWidthIndex())->setChecked(true); - mMainWindow->boardToolBar->insertWidget(mMainWindow->actionBackgrounds, lineWidthChoice); + newPropertyPaletteWidget = mMainWindow->boardToolBar->insertWidget(mMainWindow->actionBackgrounds, lineWidthChoice); + mPropertyPaletteWidgets.insert(lineWidth, newPropertyPaletteWidget); //-----------------------------------------------------------// // Setup eraser width choice widget @@ -362,7 +365,7 @@ void UBBoardController::setupToolbar() UBToolbarButtonGroup *eraserWidthChoice = new UBToolbarButtonGroup(mMainWindow->boardToolBar, eraserWidthActions); - mMainWindow->boardToolBar->insertWidget(mMainWindow->actionBackgrounds, eraserWidthChoice); + newPropertyPaletteWidget = mMainWindow->boardToolBar->insertWidget(mMainWindow->actionBackgrounds, eraserWidthChoice); connect(settings->appToolBarDisplayText, SIGNAL(changed(QVariant)), eraserWidthChoice, SLOT(displayText(QVariant))); connect(eraserWidthChoice, SIGNAL(activated(int)), UBDrawingController::drawingController(), SLOT(setEraserWidthIndex(int))); @@ -373,9 +376,11 @@ void UBBoardController::setupToolbar() mMainWindow->boardToolBar->insertSeparator(mMainWindow->actionBackgrounds); + mPropertyPaletteWidgets.insert(eraserWidth, newPropertyPaletteWidget); //-----------------------------------------------------------// - UBApplication::app()->insertSpaceToToolbarBeforeAction(mMainWindow->boardToolBar, mMainWindow->actionBoard); + UBApplication::app()->insertSpaceToToolbarBeforeAction(mMainWindow->boardToolBar, mMainWindow->actionBackgrounds); + UBApplication::app()->insertSpaceToToolbarBeforeAction(mMainWindow->boardToolBar, mMainWindow->actionBoard, 40); UBApplication::app()->decorateActionMenu(mMainWindow->actionMenu); @@ -2185,9 +2190,9 @@ void UBBoardController::saveViewState() void UBBoardController::stylusToolChanged(int tool) { + UBStylusTool::Enum eTool = (UBStylusTool::Enum)tool; if (UBPlatformUtils::hasVirtualKeyboard() && mPaletteManager->mKeyboardPalette) { - UBStylusTool::Enum eTool = (UBStylusTool::Enum)tool; if(eTool != UBStylusTool::Selector && eTool != UBStylusTool::Text) { if(mPaletteManager->mKeyboardPalette->m_isVisible) @@ -2201,6 +2206,29 @@ void UBBoardController::stylusToolChanged(int tool) } } } + if (eTool == UBStylusTool::Pen || eTool == UBStylusTool::Marker) + { + mPropertyPaletteWidgets[color]->setVisible(true); + mPropertyPaletteWidgets[lineWidth]->setVisible(true); + mPropertyPaletteWidgets[eraserWidth]->setVisible(false); + } else + if (eTool == UBStylusTool::Eraser) + { + mPropertyPaletteWidgets[color]->setVisible(false); + mPropertyPaletteWidgets[lineWidth]->setVisible(false); + mPropertyPaletteWidgets[eraserWidth]->setVisible(true); + } else + if (eTool == UBStylusTool::Line) + { + mPropertyPaletteWidgets[color]->setVisible(true); + mPropertyPaletteWidgets[lineWidth]->setVisible(true); + mPropertyPaletteWidgets[eraserWidth]->setVisible(false); + } else + { + mPropertyPaletteWidgets[color]->setVisible(false); + mPropertyPaletteWidgets[lineWidth]->setVisible(false); + mPropertyPaletteWidgets[eraserWidth]->setVisible(false); + } } diff --git a/src/board/UBBoardController.h b/src/board/UBBoardController.h index 018026fd..0ad946aa 100644 --- a/src/board/UBBoardController.h +++ b/src/board/UBBoardController.h @@ -322,6 +322,14 @@ class UBBoardController : public UBDocumentContainer QTimer *mAutosaveTimer; + enum PropertyPalette + { + color, + lineWidth, + eraserWidth + }; + QMap mPropertyPaletteWidgets; + private slots: void stylusToolDoubleClicked(int tool); void boardViewResized(QResizeEvent* event); -- 2.33.0