From cbf2c3d4a9590a7d807add68edd94cc0cb217b73 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Sat, 20 Dec 2025 20:24:39 +0100 Subject: [PATCH] Implement advanced mode --- src/editor/dialogs/addeventdialog.cpp | 13 + src/editor/dialogs/addeventdialog.h | 3 + .../dialogs/backgroundpropertiesdialog.cpp | 14 + .../dialogs/backgroundpropertiesdialog.h | 2 + src/editor/dialogs/objectpropertiesdialog.cpp | 14 + src/editor/dialogs/objectpropertiesdialog.h | 2 + src/editor/dialogs/objectpropertiesdialog.ui | 194 +++++++------ src/editor/dialogs/roompropertiesdialog.cpp | 17 ++ src/editor/dialogs/roompropertiesdialog.h | 2 + src/editor/dialogs/roompropertiesdialog.ui | 87 +++--- src/editor/dialogs/soundpropertiesdialog.cpp | 17 ++ src/editor/dialogs/soundpropertiesdialog.h | 2 + src/editor/dialogs/soundpropertiesdialog.ui | 132 ++++----- src/editor/dialogs/spritepropertiesdialog.cpp | 15 + src/editor/dialogs/spritepropertiesdialog.h | 2 + src/editor/editorsettings.cpp | 13 + src/editor/editorsettings.h | 7 + src/editor/mainwindow.cpp | 40 +++ src/editor/mainwindow.h | 1 + src/editor/widgets/actionscontainerwidget.ui | 261 +++++++++++++++++- 20 files changed, 628 insertions(+), 210 deletions(-) diff --git a/src/editor/dialogs/addeventdialog.cpp b/src/editor/dialogs/addeventdialog.cpp index ff92d6e..0734da2 100644 --- a/src/editor/dialogs/addeventdialog.cpp +++ b/src/editor/dialogs/addeventdialog.cpp @@ -7,6 +7,7 @@ #include "models/projecttreemodel.h" #include "mainwindow.h" #include "editorguiutils.h" +#include "editorsettings.h" AddEventDialog::AddEventDialog(ProjectTreeModel &projectModel, MainWindow &mainWindow, QWidget *parent) : QDialog{parent}, @@ -86,6 +87,10 @@ AddEventDialog::AddEventDialog(ProjectTreeModel &projectModel, MainWindow &mainW menu->addAction(tr("Add/Modify Triggers..."), this, [this](){ m_mainWindow.showDefineTriggers(); reject(); }); m_ui->pushButtonTrigger->setMenu(menu); } + + connect(&mainWindow.settings(), &EditorSettings::advancedModeChanged, + this, &AddEventDialog::advancedModeChanged); + advancedModeChanged(mainWindow.settings().advancedMode()); } AddEventDialog::~AddEventDialog() = default; @@ -107,3 +112,11 @@ void AddEventDialog::reject() QDialog::reject(); } + +void AddEventDialog::advancedModeChanged(bool advancedMode) +{ + for (QWidget *widgets[] { + m_ui->pushButtonTrigger + }; QWidget *widget : widgets) + widget->setVisible(advancedMode); +} diff --git a/src/editor/dialogs/addeventdialog.h b/src/editor/dialogs/addeventdialog.h index d952379..49ec271 100644 --- a/src/editor/dialogs/addeventdialog.h +++ b/src/editor/dialogs/addeventdialog.h @@ -25,6 +25,9 @@ public: void accept() override; void reject() override; +private slots: + void advancedModeChanged(bool advancedMode); + private: ProjectTreeModel &m_projectModel; MainWindow &m_mainWindow; diff --git a/src/editor/dialogs/backgroundpropertiesdialog.cpp b/src/editor/dialogs/backgroundpropertiesdialog.cpp index 97fac2d..33ee5ae 100644 --- a/src/editor/dialogs/backgroundpropertiesdialog.cpp +++ b/src/editor/dialogs/backgroundpropertiesdialog.cpp @@ -11,6 +11,7 @@ #include "mainwindow.h" #include "imagehelpers.h" #include "editorguiutils.h" +#include "editorsettings.h" BackgroundPropertiesDialog::BackgroundPropertiesDialog(Background &background, ProjectTreeModel &projectModel, MainWindow &mainWindow) : QDialog{&mainWindow}, @@ -44,6 +45,10 @@ BackgroundPropertiesDialog::BackgroundPropertiesDialog(Background &background, P this, &BackgroundPropertiesDialog::changed); connect(m_ui->checkBoxTileset, &QCheckBox::checkStateChanged, this, &BackgroundPropertiesDialog::changed); + + connect(&mainWindow.settings(), &EditorSettings::advancedModeChanged, + this, &BackgroundPropertiesDialog::advancedModeChanged); + advancedModeChanged(mainWindow.settings().advancedMode()); } BackgroundPropertiesDialog::~BackgroundPropertiesDialog() = default; @@ -166,6 +171,15 @@ void BackgroundPropertiesDialog::backgroundNameChanged(const Background &backgro updateTitle(); } +void BackgroundPropertiesDialog::advancedModeChanged(bool advancedMode) +{ + for (QWidget *widgets[] { + m_ui->pushButtonSave, + m_ui->checkBoxTileset + }; QWidget *widget : widgets) + widget->setVisible(advancedMode); +} + void BackgroundPropertiesDialog::updateTitle() { setWindowTitle(tr("Background Properties: %0%1") diff --git a/src/editor/dialogs/backgroundpropertiesdialog.h b/src/editor/dialogs/backgroundpropertiesdialog.h index c8bb7ca..5b7bbef 100644 --- a/src/editor/dialogs/backgroundpropertiesdialog.h +++ b/src/editor/dialogs/backgroundpropertiesdialog.h @@ -30,6 +30,8 @@ private slots: void backgroundNameChanged(const Background &background); + void advancedModeChanged(bool advancedMode); + private: void updateTitle(); void updateSpriteInfo(); diff --git a/src/editor/dialogs/objectpropertiesdialog.cpp b/src/editor/dialogs/objectpropertiesdialog.cpp index 3bccc76..2910ddf 100644 --- a/src/editor/dialogs/objectpropertiesdialog.cpp +++ b/src/editor/dialogs/objectpropertiesdialog.cpp @@ -12,6 +12,7 @@ #include "models/objecteventsmodel.h" #include "addeventdialog.h" #include "editorguiutils.h" +#include "editorsettings.h" ObjectPropertiesDialog::ObjectPropertiesDialog(Object &object, ProjectTreeModel &projectModel, MainWindow &mainWindow) : QDialog{&mainWindow}, @@ -120,6 +121,10 @@ ObjectPropertiesDialog::ObjectPropertiesDialog(Object &object, ProjectTreeModel connect(m_ui->actionsWidget, &ActionsContainerWidget::changed, this, &ObjectPropertiesDialog::changed); + + connect(&mainWindow.settings(), &EditorSettings::advancedModeChanged, + this, &ObjectPropertiesDialog::advancedModeChanged); + advancedModeChanged(mainWindow.settings().advancedMode()); } ObjectPropertiesDialog::~ObjectPropertiesDialog() = default; @@ -439,6 +444,15 @@ void ObjectPropertiesDialog::setMaskSprite(const Sprite &sprite) changed(); } +void ObjectPropertiesDialog::advancedModeChanged(bool advancedMode) +{ + for (QWidget *widgets[] { + m_ui->widgetDetails, + m_ui->pushButtonShowInformation + }; QWidget *widget : widgets) + widget->setVisible(advancedMode); +} + void ObjectPropertiesDialog::updateTitle() { setWindowTitle(tr("Object Properties: %0%1") diff --git a/src/editor/dialogs/objectpropertiesdialog.h b/src/editor/dialogs/objectpropertiesdialog.h index 947d95a..5765fd5 100644 --- a/src/editor/dialogs/objectpropertiesdialog.h +++ b/src/editor/dialogs/objectpropertiesdialog.h @@ -53,6 +53,8 @@ private slots: void clearMaskSprite(); void setMaskSprite(const Sprite &sprite); + void advancedModeChanged(bool advancedMode); + private: void updateTitle(); void updateSpritePreview(); diff --git a/src/editor/dialogs/objectpropertiesdialog.ui b/src/editor/dialogs/objectpropertiesdialog.ui index 6e14acd..fc54753 100644 --- a/src/editor/dialogs/objectpropertiesdialog.ui +++ b/src/editor/dialogs/objectpropertiesdialog.ui @@ -21,7 +21,7 @@ - + @@ -68,7 +68,7 @@ - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop @@ -92,7 +92,7 @@ ... - QToolButton::InstantPopup + QToolButton::ToolButtonPopupMode::InstantPopup @@ -164,105 +164,101 @@ - - - - - Depth: - - - spinBoxDepth - - - - - - - - 0 - 0 - - - - The depth at which the object is drawn - - - - - - - Wheter the object is persistent between rooms - - - Persistent - - - - - - - Parent: - - - widgetParent - - - - - - - - - - - - - 0 - 0 - - - - The image used as a collision mask for the object - - - <same as sprite> - - - true - - - - - - - ... - - - QToolButton::InstantPopup - - - - - - - - - Mask: - - - lineEditMask - - - - + + + + + + Depth: + + + spinBoxDepth + + + + + + + The depth at which the object is drawn + + + + + + + Wheter the object is persistent between rooms + + + Persistent + + + + + + + Parent: + + + widgetParent + + + + + + + + + + + + + 0 + 0 + + + + The image used as a collision mask for the object + + + <same as sprite> + + + true + + + + + + + ... + + + QToolButton::ToolButtonPopupMode::InstantPopup + + + + + + + + + Mask: + + + lineEditMask + + + + + - Qt::Vertical + Qt::Orientation::Vertical - QSizePolicy::Minimum + QSizePolicy::Policy::Minimum @@ -295,7 +291,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -308,7 +304,7 @@ - QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Ok true @@ -338,7 +334,7 @@ - Qt::CustomContextMenu + Qt::ContextMenuPolicy::CustomContextMenu diff --git a/src/editor/dialogs/roompropertiesdialog.cpp b/src/editor/dialogs/roompropertiesdialog.cpp index 1675e76..10790f4 100644 --- a/src/editor/dialogs/roompropertiesdialog.cpp +++ b/src/editor/dialogs/roompropertiesdialog.cpp @@ -14,6 +14,7 @@ #include "editorguiutils.h" #include "genericcodeeditordialog.h" #include "mainwindow.h" +#include "editorsettings.h" RoomPropertiesDialog::RoomPropertiesDialog(Room &room, ProjectTreeModel &projectModel, MainWindow &mainWindow) : QDialog{&mainWindow}, @@ -192,6 +193,10 @@ RoomPropertiesDialog::RoomPropertiesDialog(Room &room, ProjectTreeModel &project if (!m_projectModel.project()->objects.empty()) setObject(m_projectModel.project()->objects.back()); + + connect(&mainWindow.settings(), &EditorSettings::advancedModeChanged, + this, &RoomPropertiesDialog::advancedModeChanged); + advancedModeChanged(mainWindow.settings().advancedMode()); } RoomPropertiesDialog::~RoomPropertiesDialog() = default; @@ -422,6 +427,18 @@ void RoomPropertiesDialog::cursorMoved(const QPoint &point) m_labelY->setText(tr("Y: %0").arg(point.y())); } +void RoomPropertiesDialog::advancedModeChanged(bool advancedMode) +{ + for (QWidget *widgets[] { + m_ui->checkBoxPersistent, + m_ui->pushButtonCreationCode + }; QWidget *widget : widgets) + widget->setVisible(advancedMode); + + m_ui->tabWidget->setTabVisible(m_ui->tabWidget->indexOf(m_ui->tabTiles), advancedMode); + m_ui->tabWidget->setTabVisible(m_ui->tabWidget->indexOf(m_ui->tabViews), advancedMode); +} + void RoomPropertiesDialog::setObject(const Object &object) { m_selectedObject = &object; diff --git a/src/editor/dialogs/roompropertiesdialog.h b/src/editor/dialogs/roompropertiesdialog.h index 15f39a6..6facaa9 100644 --- a/src/editor/dialogs/roompropertiesdialog.h +++ b/src/editor/dialogs/roompropertiesdialog.h @@ -50,6 +50,8 @@ private slots: void cursorMoved(const QPoint &point); + void advancedModeChanged(bool advancedMode); + private: void setObject(const Object &object); void updateTitle(); diff --git a/src/editor/dialogs/roompropertiesdialog.ui b/src/editor/dialogs/roompropertiesdialog.ui index 6ba4572..dbcdfe0 100644 --- a/src/editor/dialogs/roompropertiesdialog.ui +++ b/src/editor/dialogs/roompropertiesdialog.ui @@ -36,10 +36,10 @@ - QFrame::Panel + QFrame::Shape::Panel - QFrame::Raised + QFrame::Shadow::Raised @@ -94,11 +94,11 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QTabWidget::West + QTabWidget::TabPosition::West 0 @@ -126,7 +126,7 @@ true - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop @@ -134,11 +134,11 @@ 0 0 595 - 527 + 528 - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop @@ -146,10 +146,10 @@ - QFrame::StyledPanel + QFrame::Shape::StyledPanel - QFrame::Raised + QFrame::Shadow::Raised @@ -174,7 +174,7 @@ ... - QToolButton::InstantPopup + QToolButton::ToolButtonPopupMode::InstantPopup @@ -313,11 +313,14 @@ - Qt::Horizontal + Qt::Orientation::Horizontal + + + QSizePolicy::Policy::Minimum - 40 + 0 20 @@ -337,11 +340,14 @@ - Qt::Horizontal + Qt::Orientation::Horizontal + + + QSizePolicy::Policy::Minimum - 40 + 0 20 @@ -352,7 +358,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -380,7 +386,7 @@ 0 0 577 - 539 + 540 @@ -389,10 +395,10 @@ - QFrame::StyledPanel + QFrame::Shape::StyledPanel - QFrame::Raised + QFrame::Shadow::Raised @@ -451,7 +457,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -471,7 +477,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -488,11 +494,14 @@ - Qt::Horizontal + Qt::Orientation::Horizontal + + + QSizePolicy::Policy::Minimum - 177 + 0 20 @@ -618,7 +627,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -635,7 +644,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -680,7 +689,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -695,11 +704,14 @@ - Qt::Horizontal + Qt::Orientation::Horizontal + + + QSizePolicy::Policy::Minimum - 119 + 0 20 @@ -930,7 +942,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -945,11 +957,14 @@ - Qt::Horizontal + Qt::Orientation::Horizontal + + + QSizePolicy::Policy::Minimum - 255 + 0 20 @@ -970,7 +985,7 @@ true - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop Custom Widget @@ -1184,17 +1199,17 @@ + + QLineEditWithMenu + QLineEdit +
widgets/qlineeditwithmenu.h
+
RoomEditWidget QWidget
widgets/roomeditwidget.h
1
- - QLineEditWithMenu - QLineEdit -
widgets/qlineeditwithmenu.h
-
QScrollAreaWithMenu QScrollArea diff --git a/src/editor/dialogs/soundpropertiesdialog.cpp b/src/editor/dialogs/soundpropertiesdialog.cpp index 841a933..5ff47ed 100644 --- a/src/editor/dialogs/soundpropertiesdialog.cpp +++ b/src/editor/dialogs/soundpropertiesdialog.cpp @@ -11,6 +11,7 @@ #include "models/projecttreemodel.h" #include "mainwindow.h" #include "editorguiutils.h" +#include "editorsettings.h" SoundPropertiesDialog::SoundPropertiesDialog(Sound &sound, ProjectTreeModel &projectModel, MainWindow &mainWindow) : QDialog{&mainWindow}, @@ -84,6 +85,10 @@ SoundPropertiesDialog::SoundPropertiesDialog(Sound &sound, ProjectTreeModel &pro this, &SoundPropertiesDialog::changed); connect(m_ui->checkBoxPreload, &QCheckBox::checkStateChanged, this, &SoundPropertiesDialog::changed); + + connect(&mainWindow.settings(), &EditorSettings::advancedModeChanged, + this, &SoundPropertiesDialog::advancedModeChanged); + advancedModeChanged(mainWindow.settings().advancedMode()); } SoundPropertiesDialog::~SoundPropertiesDialog() = default; @@ -238,6 +243,18 @@ void SoundPropertiesDialog::soundNameChanged(const Sound &sound) updateTitle(); } +void SoundPropertiesDialog::advancedModeChanged(bool advancedMode) +{ + for (QWidget *widgets[] { + m_ui->groupBoxKind, + m_ui->groupBoxEffects, + m_ui->widgetSliders, + m_ui->checkBoxPreload, + m_ui->pushButtonEdit + }; QWidget *widget : widgets) + widget->setVisible(advancedMode); +} + void SoundPropertiesDialog::updateTitle() { setWindowTitle(tr("Sound Properties: %0%1") diff --git a/src/editor/dialogs/soundpropertiesdialog.h b/src/editor/dialogs/soundpropertiesdialog.h index 1c4c4dd..41a1faf 100644 --- a/src/editor/dialogs/soundpropertiesdialog.h +++ b/src/editor/dialogs/soundpropertiesdialog.h @@ -33,6 +33,8 @@ private slots: void soundNameChanged(const Sound &sound); + void advancedModeChanged(bool advancedMode); + private: void updateTitle(); diff --git a/src/editor/dialogs/soundpropertiesdialog.ui b/src/editor/dialogs/soundpropertiesdialog.ui index b0fcdd1..0a83714 100644 --- a/src/editor/dialogs/soundpropertiesdialog.ui +++ b/src/editor/dialogs/soundpropertiesdialog.ui @@ -7,7 +7,7 @@ 0 0 239 - 534 + 590
@@ -19,7 +19,7 @@ - + @@ -194,66 +194,68 @@ - - - - - Volume: - - - horizontalSliderVolume - - - - - - - Indicates the default volume for the sound - - - 100 - - - 100 - - - Qt::Horizontal - - - - - - - Pan: - - - horizontalSliderPan - - - - - - - Indicates the default pan for the sound - - - -100 - - - 100 - - - Qt::Horizontal - - - false - - - false - - - - + + + + + + Volume: + + + horizontalSliderVolume + + + + + + + Indicates the default volume for the sound + + + 100 + + + 100 + + + Qt::Orientation::Horizontal + + + + + + + Pan: + + + horizontalSliderPan + + + + + + + Indicates the default pan for the sound + + + -100 + + + 100 + + + Qt::Orientation::Horizontal + + + false + + + false + + + + + @@ -273,7 +275,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -300,7 +302,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -315,7 +317,7 @@ - QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Ok true diff --git a/src/editor/dialogs/spritepropertiesdialog.cpp b/src/editor/dialogs/spritepropertiesdialog.cpp index 5694ad4..226d565 100644 --- a/src/editor/dialogs/spritepropertiesdialog.cpp +++ b/src/editor/dialogs/spritepropertiesdialog.cpp @@ -13,6 +13,7 @@ #include "mainwindow.h" #include "imagehelpers.h" #include "editorguiutils.h" +#include "editorsettings.h" SpritePropertiesDialog::SpritePropertiesDialog(Sprite &sprite, ProjectTreeModel &projectModel, MainWindow &mainWindow) : QDialog{&mainWindow}, @@ -59,6 +60,10 @@ SpritePropertiesDialog::SpritePropertiesDialog(Sprite &sprite, ProjectTreeModel this, &SpritePropertiesDialog::changed); connect(m_ui->checkBoxSeparateCollisionMasks, &QCheckBox::checkStateChanged, this, &SpritePropertiesDialog::changed); + + connect(&mainWindow.settings(), &EditorSettings::advancedModeChanged, + this, &SpritePropertiesDialog::advancedModeChanged); + advancedModeChanged(mainWindow.settings().advancedMode()); } SpritePropertiesDialog::~SpritePropertiesDialog() = default; @@ -205,6 +210,16 @@ void SpritePropertiesDialog::spriteNameChanged(const Sprite &sprite) updateTitle(); } +void SpritePropertiesDialog::advancedModeChanged(bool advancedMode) +{ + for (QWidget *widgets[] { + m_ui->pushButtonSave, + m_ui->groupBoxOrigin, + m_ui->groupBoxCollisionChecking + }; QWidget *widget : widgets) + widget->setVisible(advancedMode); +} + void SpritePropertiesDialog::updateTitle() { setWindowTitle(tr("Sprite Properties: %0%1") diff --git a/src/editor/dialogs/spritepropertiesdialog.h b/src/editor/dialogs/spritepropertiesdialog.h index 9e6e70d..916e030 100644 --- a/src/editor/dialogs/spritepropertiesdialog.h +++ b/src/editor/dialogs/spritepropertiesdialog.h @@ -32,6 +32,8 @@ private slots: void spriteNameChanged(const Sprite &sprite); + void advancedModeChanged(bool advancedMode); + private: void updateTitle(); void updateSpriteInfo(); diff --git a/src/editor/editorsettings.cpp b/src/editor/editorsettings.cpp index c4db2c4..a7103d5 100644 --- a/src/editor/editorsettings.cpp +++ b/src/editor/editorsettings.cpp @@ -135,3 +135,16 @@ void EditorSettings::setHideWebsiteImage(bool hideWebsiteImage) { setValue("hideWebsiteImage", hideWebsiteImage); } + +bool EditorSettings::advancedMode() const +{ + return value("advancedMode", true).toBool(); +} + +void EditorSettings::setAdvancedMode(bool advancedMode) +{ + if (advancedMode == this->advancedMode()) + return; + setValue("advancedMode", advancedMode); + emit advancedModeChanged(advancedMode); +} diff --git a/src/editor/editorsettings.h b/src/editor/editorsettings.h index 54a9679..a6ee5d2 100644 --- a/src/editor/editorsettings.h +++ b/src/editor/editorsettings.h @@ -7,6 +7,7 @@ class EditorSettings : public QSettings { Q_OBJECT + Q_PROPERTY(bool advancedMode READ advancedMode WRITE setAdvancedMode NOTIFY advancedModeChanged FINAL) public: using QSettings::QSettings; @@ -47,4 +48,10 @@ public: bool hideWebsiteImage() const; void setHideWebsiteImage(bool hideWebsiteImage); + + bool advancedMode() const; + void setAdvancedMode(bool advancedMode); + +signals: + void advancedModeChanged(bool advancedMode); }; diff --git a/src/editor/mainwindow.cpp b/src/editor/mainwindow.cpp index 663971a..13f9974 100644 --- a/src/editor/mainwindow.cpp +++ b/src/editor/mainwindow.cpp @@ -172,6 +172,11 @@ MainWindow::MainWindow(const QString &filePath, EditorSettings &settings, QWidge updateVisibilities(); + m_ui->actionAdvancedMode->setChecked(m_settings.advancedMode()); + connect(m_ui->actionAdvancedMode, &QAction::toggled, &m_settings, &EditorSettings::setAdvancedMode); + connect(&m_settings, &EditorSettings::advancedModeChanged, this, &MainWindow::advancedModeChanged); + advancedModeChanged(m_settings.advancedMode()); + restoreGeometry(m_settings.mainWindowGeometry()); restoreState(m_settings.mainWindowState()); } @@ -591,6 +596,41 @@ void MainWindow::exportResources() QMessageBox::warning(this, tr("Not yet implemented"), tr("Not yet implemented")); } +void MainWindow::advancedModeChanged(bool advancedMode) +{ + for (const QModelIndex &index : { + m_projectTreeModel->rootFor(), + m_projectTreeModel->rootFor