Группа :: Обучение
Пакет: OpenBoard
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: 0004-toolbar_elements_changed.patch
Скачать
Скачать
From 8a0b6e1bbe23c53d73ca6c412094e8c0c463ccba Mon Sep 17 00:00:00 2001
From: thomas_lucky13 <mkoul@mail.ru>
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<QAction *> 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<PropertyPalette, QAction*> mPropertyPaletteWidgets;
+
private slots:
void stylusToolDoubleClicked(int tool);
void boardViewResized(QResizeEvent* event);
--
2.33.0