From 5bc354538310deb173d0830fe62c999c5b91f851 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole-Andr=C3=A9=20Rodlie?= Date: Mon, 29 Jul 2024 21:43:52 +0200 Subject: [PATCH] Menu changes --- src/app/GUI/mainwindow.cpp | 78 ++++++++----------- src/app/friction.qss | 7 ++ .../BlendEffects/blendeffectmenucreator.h | 4 +- .../RasterEffects/rastereffectmenucreator.cpp | 15 ++++ .../RasterEffects/rastereffectmenucreator.h | 3 + 5 files changed, 58 insertions(+), 49 deletions(-) diff --git a/src/app/GUI/mainwindow.cpp b/src/app/GUI/mainwindow.cpp index 58d8721c4..459633a0c 100644 --- a/src/app/GUI/mainwindow.cpp +++ b/src/app/GUI/mainwindow.cpp @@ -464,7 +464,7 @@ void MainWindow::setupMenuBar() cmdAddAction(openAct); mRecentMenu = mFileMenu->addMenu(QIcon::fromTheme("file_folder"), tr("Open Recent", "MenuBar_File")); - mFileMenu->addSeparator(); + const auto linkedAct = mFileMenu->addAction(QIcon::fromTheme("linked"), tr("Link"), this, &MainWindow::linkFile, @@ -501,7 +501,6 @@ void MainWindow::setupMenuBar() mToolbar->addWidget(loadToolBtn); } - mFileMenu->addSeparator(); const auto revertAct = mFileMenu->addAction(QIcon::fromTheme("loop_back"), tr("Revert", "MenuBar_File"), this, &MainWindow::revert); @@ -509,6 +508,7 @@ void MainWindow::setupMenuBar() cmdAddAction(revertAct); mFileMenu->addSeparator(); + mSaveAct = mFileMenu->addAction(QIcon::fromTheme("disk_drive"), tr("Save", "MenuBar_File"), this, qOverload<>(&MainWindow::saveFile), @@ -573,8 +573,6 @@ void MainWindow::setupMenuBar() closeProjectAct->setData(tr("Close Project")); cmdAddAction(closeProjectAct); - mFileMenu->addSeparator(); - const auto prefsAct = mFileMenu->addAction(QIcon::fromTheme("preferences"), tr("Preferences", "MenuBar_Edit"), [this]() { const auto settDial = new SettingsDialog(this); @@ -583,8 +581,6 @@ void MainWindow::setupMenuBar() }, QKeySequence(tr("Ctrl+P"))); cmdAddAction(prefsAct); - mFileMenu->addSeparator(); - const auto quitAppAct = mFileMenu->addAction(QIcon::fromTheme("quit"), tr("Exit", "MenuBar_File"), this, &MainWindow::close, @@ -646,8 +642,6 @@ void MainWindow::setupMenuBar() cmdAddAction(qAct); } - mEditMenu->addSeparator(); - { const auto qAct = new NoShortcutAction(tr("Duplicate", "MenuBar_Edit")); mEditMenu->addAction(qAct); @@ -656,8 +650,6 @@ void MainWindow::setupMenuBar() cmdAddAction(qAct); } - mEditMenu->addSeparator(); - { const auto qAct = new NoShortcutAction(tr("Delete", "MenuBar_Edit")); mEditMenu->addAction(qAct); @@ -695,8 +687,6 @@ void MainWindow::setupMenuBar() }, QKeySequence(tr("Ctrl+R"))); cmdAddAction(clearCacheAct); - mEditMenu->addSeparator(); - const auto clearRecentAct = mEditMenu->addAction(tr("Clear Recent Files"), [this]() { mRecentFiles.clear(); writeRecentFiles(); @@ -908,11 +898,10 @@ void MainWindow::setupMenuBar() cmdAddAction(qAct); } -// mEffectsMenu = mMenuBar->addMenu("Effects"); - -// mEffectsMenu->addAction("Blur"); mSceneMenu = mMenuBar->addMenu(tr("Scene", "MenuBar")); + mEffectsMenu = mMenuBar->addMenu(tr("Effects")); + setupMenuEffects(); const auto newSceneAct = mSceneMenu->addAction(QIcon::fromTheme("file_new"), tr("New Scene", "MenuBar_Scene"), @@ -928,7 +917,10 @@ void MainWindow::setupMenuBar() mActions.deleteSceneAction->connect(deleteSceneAct); cmdAddAction(deleteSceneAct); - + const auto scenePropAct = mSceneMenu->addAction(QIcon::fromTheme("sequence"), + tr("Scene Properties", "MenuBar_Scene")); + mActions.sceneSettingsAction->connect(scenePropAct); + cmdAddAction(scenePropAct); mSceneMenu->addSeparator(); @@ -940,15 +932,6 @@ void MainWindow::setupMenuBar() "F12").toString())); cmdAddAction(mAddToQueAct); - - mSceneMenu->addSeparator(); - - - const auto scenePropAct = mSceneMenu->addAction(QIcon::fromTheme("sequence"), - tr("Scene Properties", "MenuBar_Scene")); - mActions.sceneSettingsAction->connect(scenePropAct); - cmdAddAction(scenePropAct); - if (eSettings::instance().fToolBarActionScene) { const auto sceneToolBtn = new QToolButton(this); sceneToolBtn->setText(tr("Scene")); @@ -1242,7 +1225,6 @@ void MainWindow::setupMenuBar() mCentralWidget, &CentralWidget::setSidesVisibilitySetting);*/ - setupMenuEffects(); setupExtraMenus(); const auto help = mMenuBar->addMenu(tr("Help", "MenuBar")); @@ -1301,33 +1283,15 @@ void MainWindow::setupMenuBar() void MainWindow::setupMenuEffects() { - const auto menu = new QMenu(this); - { // raster - const auto adder = [this, menu](const QString& name, const QString& path, - const RasterEffectMenuCreator::EffectCreator& creator) { - if (name.isEmpty()) { return; } - QString title = name; - if (!path.isEmpty()) { - title.append(QString(" (%1 - %2)").arg(tr("Raster Effect"), path)); - } else { - title.append(QString(" (%1)").arg(tr("Raster Effect"))); - } - const auto act = menu->addAction(title); - cmdAddAction(act); - connect(act, &QAction::triggered, this, [this, creator]() { - addRasterEffect(creator()); - }); - }; - RasterEffectMenuCreator::forEveryEffect(adder); - } { // path TODO // adapt PathEffectsMenu::addPathEffectsToBoxActionMenu(menu); } { // transform + const auto menu = mEffectsMenu->addMenu(QIcon::fromTheme("preferences"), tr("Transform Effects")); const auto adder = [this, menu](const QString& name, const TransformEffectMenuCreator::EffectCreator& creator) { if (name.isEmpty()) { return; } - const auto act = menu->addAction(name); + const auto act = menu->addAction(QIcon::fromTheme("preferences"), name); cmdAddAction(act); connect(act, &QAction::triggered, this, [this, creator]() { addTransformEffect(creator()); @@ -1336,10 +1300,11 @@ void MainWindow::setupMenuEffects() TransformEffectMenuCreator::forEveryEffect(adder); } { // blend + const auto menu = mEffectsMenu->addMenu(QIcon::fromTheme("preferences"), tr("Blend Effects")); const auto adder = [this, menu](const QString& name, const BlendEffectMenuCreator::EffectCreator& creator) { if (name.isEmpty()) { return; } - const auto act = menu->addAction(name); + const auto act = menu->addAction(QIcon::fromTheme("preferences"), name); cmdAddAction(act); connect(act, &QAction::triggered, this, [this, creator]() { addBlendEffect(creator()); @@ -1347,6 +1312,25 @@ void MainWindow::setupMenuEffects() }; BlendEffectMenuCreator::forEveryEffect(adder); } + { // raster + const auto menu = mEffectsMenu->addMenu(QIcon::fromTheme("preferences"), tr("Raster Effects")); + const auto adder = [this, menu](const QString& name, const QString& path, + const RasterEffectMenuCreator::EffectCreator& creator) { + if (name.isEmpty()) { return; } + QString title = name; + if (!path.isEmpty()) { title.append(QString(" (%1)").arg(path));} + const auto act = menu->addAction(QIcon::fromTheme("preferences"), title); + cmdAddAction(act); + connect(act, &QAction::triggered, this, [this, creator]() { + addRasterEffect(creator()); + }); + }; + RasterEffectMenuCreator::forEveryEffectCore(adder); + menu->addSeparator(); + RasterEffectMenuCreator::forEveryEffectCustom(adder); + RasterEffectMenuCreator::forEveryEffectShader(adder); + //RasterEffectMenuCreator::forEveryEffect(adder); + } } void MainWindow::addRasterEffect(const qsptr &effect) diff --git a/src/app/friction.qss b/src/app/friction.qss index 468ee9096..e28c384a1 100644 --- a/src/app/friction.qss +++ b/src/app/friction.qss @@ -426,3 +426,10 @@ QLabel#CommandPaletteLabel { QLabel#CommandPaletteLabel { padding: .5em; } + +QMenu::separator { + width: 1px; + height: 1px; + margin: 4px; + background-color: %4; +} diff --git a/src/core/BlendEffects/blendeffectmenucreator.h b/src/core/BlendEffects/blendeffectmenucreator.h index 66218f480..fcf48e3ee 100644 --- a/src/core/BlendEffects/blendeffectmenucreator.h +++ b/src/core/BlendEffects/blendeffectmenucreator.h @@ -43,9 +43,9 @@ struct CORE_EXPORT BlendEffectMenuCreator const EffectCreator&)>; static void forEveryEffect(const EffectAdder& add) { - add(QObject::tr("New Move Blend Effect"), + add(QObject::tr("Add Move Blend Effect"), []() { return enve::make_shared(); }); - add(QObject::tr("New Targeted Blend Effect"), + add(QObject::tr("Add Targeted Blend Effect"), []() { return enve::make_shared(); }); } }; diff --git a/src/core/RasterEffects/rastereffectmenucreator.cpp b/src/core/RasterEffects/rastereffectmenucreator.cpp index fcbe4d1b1..ad360a1d5 100644 --- a/src/core/RasterEffects/rastereffectmenucreator.cpp +++ b/src/core/RasterEffects/rastereffectmenucreator.cpp @@ -30,6 +30,14 @@ #include "ShaderEffects/shadereffect.h" void RasterEffectMenuCreator::forEveryEffect(const EffectAdder& add) { + + forEveryEffectCore(add); + forEveryEffectCustom(add); + forEveryEffectShader(add); +} + +void RasterEffectMenuCreator::forEveryEffectCore(const EffectAdder &add) +{ add("Blur", "", []() { return enve::make_shared(); }); add("Shadow", "", []() { return enve::make_shared(); }); add("Motion Blur", "", []() { return enve::make_shared(); }); @@ -37,7 +45,14 @@ void RasterEffectMenuCreator::forEveryEffect(const EffectAdder& add) { add("Colorize", "Color", []() { return enve::make_shared(); }); add("Wipe", "Transitions", []() { return enve::make_shared(); }); add("Noise Fade", "Transitions", []() { return enve::make_shared(); }); +} +void RasterEffectMenuCreator::forEveryEffectCustom(const EffectAdder &add) +{ CustomRasterEffectCreator::sForEveryEffect(add); +} + +void RasterEffectMenuCreator::forEveryEffectShader(const EffectAdder &add) +{ ShaderEffectCreator::sForEveryEffect(add); } diff --git a/src/core/RasterEffects/rastereffectmenucreator.h b/src/core/RasterEffects/rastereffectmenucreator.h index 49aae8530..93a89864d 100644 --- a/src/core/RasterEffects/rastereffectmenucreator.h +++ b/src/core/RasterEffects/rastereffectmenucreator.h @@ -60,6 +60,9 @@ struct CORE_EXPORT RasterEffectMenuCreator { forEveryEffect(adder); } static void forEveryEffect(const EffectAdder& add); + static void forEveryEffectCore(const EffectAdder& add); + static void forEveryEffectCustom(const EffectAdder& add); + static void forEveryEffectShader(const EffectAdder& add); }; #endif // RASTEREFFECTMENUCREATOR_H