From eea2623d1546b08691b9d3bcb18201074bc9893a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole-Andr=C3=A9=20Rodlie?= Date: Wed, 10 Apr 2024 00:14:36 +0200 Subject: [PATCH] Viewer/Toolbox UI/UX changes --- src/app/GUI/mainwindow.cpp | 21 ++++++++++++++++----- src/app/GUI/mainwindow.h | 3 +-- src/app/GUI/toolbox.cpp | 26 +++++++------------------- src/app/friction.qss | 4 ++-- 4 files changed, 26 insertions(+), 28 deletions(-) diff --git a/src/app/GUI/mainwindow.cpp b/src/app/GUI/mainwindow.cpp index 384c361cb..b558ebd8e 100644 --- a/src/app/GUI/mainwindow.cpp +++ b/src/app/GUI/mainwindow.cpp @@ -94,11 +94,11 @@ MainWindow::MainWindow(Document& document, , mTimeline(nullptr) , mRenderWidget(nullptr) , mToolBoxStack(nullptr) + , mToolBoxExtraStack(nullptr) , mToolBoxMainIndex(0) , mToolBoxNodesIndex(0) , mToolBoxDrawIndex(0) , mToolbar(nullptr) - , mToolBoxButton(nullptr) , mToolBoxGroupMain(nullptr) , mToolBoxGroupNodes(nullptr) , mToolBoxMain(nullptr) @@ -364,11 +364,20 @@ MainWindow::MainWindow(Document& document, toolBoxLayout->setContentsMargins(0, 0, 0, 0); toolBoxLayout->setSpacing(0); - toolBoxLayout->addWidget(mToolBoxButton); + const auto toolBoxExtraWidget = new QWidget(this); + toolBoxExtraWidget->setSizePolicy(QSizePolicy::Fixed, + QSizePolicy::Expanding); + toolBoxExtraWidget->setContentsMargins(0, 0, 0, 0); + const auto toolBoxExtraLayout = new QVBoxLayout(toolBoxExtraWidget); + toolBoxExtraLayout->setContentsMargins(0, 0, 0, 0); + toolBoxExtraLayout->setSpacing(0); + toolBoxLayout->addWidget(mToolBoxStack); + toolBoxExtraLayout->addWidget(mToolBoxExtraStack); viewerLayout->addWidget(toolBoxWidget); viewerLayout->addWidget(mStackWidget); + viewerLayout->addWidget(toolBoxExtraWidget); // final layout mUI = new UILayout(this); @@ -1353,9 +1362,11 @@ void MainWindow::updateCanvasModeButtonsChecked() const bool pointMode = mode == CanvasMode::pointTransform; const bool drawMode = mode == CanvasMode::drawPath; - mToolBoxButton->setVisible(pointMode || drawMode); - mToolBoxStack->setCurrentIndex(drawMode ? mToolBoxDrawIndex : (pointMode ? mToolBoxNodesIndex : mToolBoxMainIndex)); - mLocalPivotAct->setVisible(pointMode || boxMode); + //mToolBoxStack->setCurrentIndex(drawMode ? mToolBoxDrawIndex : (pointMode ? mToolBoxNodesIndex : mToolBoxMainIndex)); + mToolBoxExtraStack->setCurrentIndex(drawMode ? mToolBoxDrawIndex : mToolBoxNodesIndex); + mToolBoxNodes->setEnabled(pointMode); + mToolBoxDraw->setEnabled(drawMode); + mLocalPivotAct->setEnabled(pointMode || boxMode); //const bool paintMode = mode == CanvasMode::paint; //mActionNewEmptyPaintFrameAct->setVisible(paintMode); diff --git a/src/app/GUI/mainwindow.h b/src/app/GUI/mainwindow.h index 3600c4e59..0f8ed8ae8 100644 --- a/src/app/GUI/mainwindow.h +++ b/src/app/GUI/mainwindow.h @@ -263,14 +263,13 @@ class MainWindow : public QMainWindow //UsageWidget* mUsageWidget = nullptr; QStackedWidget *mToolBoxStack; + QStackedWidget *mToolBoxExtraStack; int mToolBoxMainIndex; int mToolBoxNodesIndex; int mToolBoxDrawIndex; QToolBar *mToolbar; - ToolButton *mToolBoxButton; - QActionGroup *mToolBoxGroupMain; QActionGroup *mToolBoxGroupNodes; diff --git a/src/app/GUI/toolbox.cpp b/src/app/GUI/toolbox.cpp index 7e88fc09e..5b7d5982a 100644 --- a/src/app/GUI/toolbox.cpp +++ b/src/app/GUI/toolbox.cpp @@ -28,40 +28,28 @@ void MainWindow::setupToolBox() { - mToolBoxButton = new ToolButton(this, true); - mToolBoxButton->setPopupMode(QToolButton::InstantPopup); - mToolBoxButton->setIcon(QIcon::fromTheme("friction")); - mToolBoxButton->setToolTip(QString()); - mToolBoxButton->setFocusPolicy(Qt::NoFocus); - mToolBoxButton->setObjectName(QString::fromUtf8("ToolButton")); - mToolBoxButton->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); - mToolBoxStack = new QStackedWidget(this); mToolBoxStack->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); + mToolBoxExtraStack = new QStackedWidget(this); + mToolBoxExtraStack->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); + setupToolBoxMain(); setupToolBoxNodes(); setupToolBoxDraw(); eSizesUI::widget.add(mToolBoxMain, [this](const int size) { - mToolBoxButton->setIconSize(QSize(size, size)); mToolBoxMain->setIconSize(QSize(size, size)); mToolBoxNodes->setIconSize(QSize(size, size)); mToolBoxDraw->setIconSize(QSize(size, size)); }); mToolBoxMainIndex = mToolBoxStack->addWidget(mToolBoxMain); - mToolBoxNodesIndex = mToolBoxStack->addWidget(mToolBoxNodes); - mToolBoxDrawIndex = mToolBoxStack->addWidget(mToolBoxDraw); - mToolBoxStack->setCurrentIndex(mToolBoxMainIndex); + mToolBoxNodesIndex = mToolBoxExtraStack->addWidget(mToolBoxNodes); + mToolBoxDrawIndex = mToolBoxExtraStack->addWidget(mToolBoxDraw); - mToolBoxButton->addActions(mToolBoxGroupMain->actions()); - for (const auto &toolAct : mToolBoxGroupMain->actions()) { - connect(toolAct, &QAction::triggered, - this, [this, toolAct](const auto &checked) { - if (checked) { mToolBoxButton->setDefaultAction(toolAct); } - }); - } + mToolBoxStack->setCurrentIndex(mToolBoxMainIndex); + mToolBoxExtraStack->setCurrentIndex(mToolBoxNodesIndex); // set default mDocument.setCanvasMode(CanvasMode::boxTransform); diff --git a/src/app/friction.qss b/src/app/friction.qss index 630678041..a782ee73e 100644 --- a/src/app/friction.qss +++ b/src/app/friction.qss @@ -35,8 +35,8 @@ QPushButton#QActionButton:checked } QToolBar#animationDockWidget, -QToolBar#ViewerNodeBar, -QToolBar#ViewerDrawBar, +/*QToolBar#ViewerNodeBar, +QToolBar#ViewerDrawBar,*/ #darkWidget { background-color: rgb(33, 33, 38);