Gui: Use our own ToolBar class in all places

This commit is contained in:
Kacper Donat
2024-06-15 15:08:01 +02:00
parent 214322665b
commit e04b28e66d
7 changed files with 33 additions and 12 deletions

View File

@@ -45,6 +45,7 @@
#include "Command.h"
#include "MainWindow.h"
#include "OverlayWidgets.h"
#include "WidgetFactory.h"
using namespace Gui;
@@ -175,8 +176,7 @@ ToolBar::ToolBar()
ToolBar::ToolBar(QWidget* parent)
: QToolBar(parent)
{
connect(this, &QToolBar::topLevelChanged, this, &ToolBar::updateCustomGripVisibility);
connect(this, &QToolBar::movableChanged, this, &ToolBar::updateCustomGripVisibility);
setupConnections();
}
void ToolBar::undock()
@@ -220,6 +220,12 @@ void ToolBar::updateCustomGripVisibility()
}
}
void Gui::ToolBar::setupConnections()
{
connect(this, &QToolBar::topLevelChanged, this, &ToolBar::updateCustomGripVisibility);
connect(this, &QToolBar::movableChanged, this, &ToolBar::updateCustomGripVisibility);
}
// -----------------------------------------------------------
ToolBarGrip::ToolBarGrip(QToolBar * parent)
@@ -401,6 +407,8 @@ ToolBarManager::ToolBarManager()
setupConnection();
setupTimer();
setupMenuBarTimer();
setupWidgetProducers();
}
ToolBarManager::~ToolBarManager() = default;
@@ -516,6 +524,11 @@ void ToolBarManager::setupMenuBarTimer()
});
}
void Gui::ToolBarManager::setupWidgetProducers()
{
new WidgetProducer<Gui::ToolBar>;
}
ToolBarArea ToolBarManager::toolBarArea(QWidget *widget) const
{
if (auto toolBar = qobject_cast<QToolBar*>(widget)) {
@@ -697,7 +710,7 @@ void ToolBarManager::setup(ToolBarItem* toolBarItems)
// Enable automatic handling of visibility via, for example, (contextual) menu
toolbar->toggleViewAction()->setVisible(true);
}
else {
else {
// ToolBarItem::DefaultVisibility::Unavailable
// Prevent that the action to show/hide a toolbar appears on the (contextual) menus.
// This is also managed by the client code for a toolbar with custom policy