Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37570199
en ru br
Репозитории ALT

Группа :: Обучение
Пакет: 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
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin