Gui: In DockWindowItems::addDockWidget replace the booleans with the enum class DockWindowOptions

This commit is contained in:
wmayer
2025-04-27 19:46:05 +02:00
committed by Ladislav Michl
parent 29274c1f35
commit 19925ac1be
3 changed files with 28 additions and 13 deletions

View File

@@ -49,13 +49,13 @@ DockWindowItems::DockWindowItems() = default;
DockWindowItems::~DockWindowItems() = default;
void DockWindowItems::addDockWidget(const char* name, Qt::DockWidgetArea pos, bool visibility, bool tabbed)
void DockWindowItems::addDockWidget(const char* name, Qt::DockWidgetArea pos, DockWindowOptions option)
{
DockWindowItem item;
item.name = QString::fromUtf8(name);
item.pos = pos;
item.visibility = visibility;
item.tabbed = tabbed;
item.visibility = option.testFlag(DockWindowOption::Visible);
item.tabbed = option.testFlag(DockWindowOption::HiddenTabbed);
_items << item;
}

View File

@@ -24,6 +24,7 @@
#define GUI_DOCKWINDOWMANAGER_H
#include <QObject>
#include <Base/Bitmask.h>
#include <FCGlobal.h>
class QDockWidget;
@@ -31,6 +32,18 @@ class QWidget;
namespace Gui {
enum class DockWindowOption
{
// clang-format off
Hidden = 0,
Visible = 1,
HiddenTabbed = 2,
VisibleTabbed = 3
// clang-format on
};
using DockWindowOptions = Base::Flags<DockWindowOption>;
struct DockWindowItem {
QString name;
Qt::DockWidgetArea pos;
@@ -44,7 +57,7 @@ public:
DockWindowItems();
~DockWindowItems();
void addDockWidget(const char* name, Qt::DockWidgetArea pos, bool visibility, bool tabbed);
void addDockWidget(const char* name, Qt::DockWidgetArea pos, DockWindowOptions option);
void setDockingArea(const char* name, Qt::DockWidgetArea pos);
void setVisibility(const char* name, bool v);
void setVisibility(bool v);
@@ -122,4 +135,6 @@ private:
} // namespace Gui
ENABLE_BITMASK_OPERATORS(Gui::DockWindowOption)
#endif // GUI_DOCKWINDOWMANAGER_H

View File

@@ -860,13 +860,13 @@ ToolBarItem* StdWorkbench::setupCommandBars() const
DockWindowItems* StdWorkbench::setupDockWindows() const
{
auto root = new DockWindowItems();
root->addDockWidget("Std_TreeView", Qt::LeftDockWidgetArea, true, false);
root->addDockWidget("Std_PropertyView", Qt::LeftDockWidgetArea, true, false);
root->addDockWidget("Std_SelectionView", Qt::LeftDockWidgetArea, false, false);
root->addDockWidget("Std_ComboView", Qt::LeftDockWidgetArea, true, true);
root->addDockWidget("Std_TaskView", Qt::LeftDockWidgetArea, true, true);
root->addDockWidget("Std_ReportView", Qt::BottomDockWidgetArea, false, true);
root->addDockWidget("Std_PythonView", Qt::BottomDockWidgetArea, false, true);
root->addDockWidget("Std_TreeView", Qt::LeftDockWidgetArea, Gui::DockWindowOption::Visible);
root->addDockWidget("Std_PropertyView", Qt::LeftDockWidgetArea, Gui::DockWindowOption::Visible);
root->addDockWidget("Std_SelectionView", Qt::LeftDockWidgetArea, Gui::DockWindowOption::Hidden);
root->addDockWidget("Std_ComboView", Qt::LeftDockWidgetArea, Gui::DockWindowOption::VisibleTabbed);
root->addDockWidget("Std_TaskView", Qt::LeftDockWidgetArea, Gui::DockWindowOption::VisibleTabbed);
root->addDockWidget("Std_ReportView", Qt::BottomDockWidgetArea, Gui::DockWindowOption::HiddenTabbed);
root->addDockWidget("Std_PythonView", Qt::BottomDockWidgetArea, Gui::DockWindowOption::HiddenTabbed);
//Dagview through parameter.
ParameterGrp::handle group = App::GetApplication().GetUserParameter().
@@ -874,7 +874,7 @@ DockWindowItems* StdWorkbench::setupDockWindows() const
bool enabled = group->GetBool("Enabled", false);
if (enabled) {
root->addDockWidget("Std_DAGView", Qt::RightDockWidgetArea, false, false);
root->addDockWidget("Std_DAGView", Qt::RightDockWidgetArea, Gui::DockWindowOption::Hidden);
}
return root;
@@ -995,7 +995,7 @@ ToolBarItem* NoneWorkbench::setupCommandBars() const
DockWindowItems* NoneWorkbench::setupDockWindows() const
{
auto root = new DockWindowItems();
root->addDockWidget("Std_ReportView", Qt::BottomDockWidgetArea, true, false);
root->addDockWidget("Std_ReportView", Qt::BottomDockWidgetArea, Gui::DockWindowOption::Visible);
return root;
}