添加视图

This commit is contained in:
jiegeaiai 2025-01-20 01:08:04 +08:00
parent 5105c48f53
commit 844a7f3b4d
11 changed files with 251 additions and 69 deletions

View File

@ -103,25 +103,30 @@
<context>
<name>CodeEdtUI</name>
<message>
<location filename="../ui/Layout/CodeEdtUI.cpp" line="36"/>
<source>&amp;file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/Layout/CodeEdtUI.cpp" line="37"/>
<source>&amp;Import the template</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/Layout/CodeEdtUI.cpp" line="40"/>
<source>&amp;save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/Layout/CodeEdtUI.cpp" line="68"/>
<location filename="../ui/Layout/CodeEdtUI.cpp" line="74"/>
<source>matlab editor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/Layout/CodeEdtUI.cpp" line="82"/>
<source>&amp;bat</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/Layout/CodeEdtUI.cpp" line="102"/>
<source>&amp;Control</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/Layout/CodeEdtUI.cpp" line="104"/>
<source>&amp;Run</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/Layout/CodeEdtUI.cpp" line="107"/>
<source>&amp;Save</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CodeEdtUIClass</name>
@ -446,27 +451,32 @@
<context>
<name>MainFrame</name>
<message>
<location filename="../ui/MainFrame.cpp" line="40"/>
<location filename="../ui/MainFrame.cpp" line="42"/>
<source>Dyt</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/MainFrame.cpp" line="99"/>
<location filename="../ui/MainFrame.cpp" line="101"/>
<source>file manager</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/MainFrame.cpp" line="105"/>
<location filename="../ui/MainFrame.cpp" line="107"/>
<source>simu manager</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/MainFrame.cpp" line="108"/>
<location filename="../ui/MainFrame.cpp" line="110"/>
<source>play manager</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/MainFrame.cpp" line="111"/>
<location filename="../ui/MainFrame.cpp" line="113"/>
<source>window manager</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/MainFrame.cpp" line="116"/>
<source>system manager</source>
<translation type="unfinished"></translation>
</message>
@ -630,14 +640,6 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ModelBrowser</name>
<message>
<location filename="../ui/ModelBrowser.cpp" line="31"/>
<source>model elements</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ModelTreeWidget</name>
<message>
@ -951,43 +953,43 @@
<context>
<name>QtConeWaveComponentManager</name>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8828"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8837"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8848"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8857"/>
<source>ConeWaveComponent</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8924"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8944"/>
<source>Height</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8931"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8951"/>
<source>Radius</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8938"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8958"/>
<source>levelCount</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8945"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8965"/>
<source>levelHeight</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8952"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8972"/>
<source>Color1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8959"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8979"/>
<source>Color2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8966"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8986"/>
<source>Color3</source>
<translation type="unfinished"></translation>
</message>
@ -1093,28 +1095,28 @@
<context>
<name>QtDashedLineComponentManager</name>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9151"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9160"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9171"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9180"/>
<source>DashedLineComponent</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9229"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9249"/>
<source>Start</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9236"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9256"/>
<source>End</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9243"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9263"/>
<source>Radius</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9250"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="9270"/>
<source>Color</source>
<translation type="unfinished"></translation>
</message>
@ -1130,12 +1132,12 @@
<context>
<name>QtEntityPropertyManager</name>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8308"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8328"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8315"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8335"/>
<source>Transform</source>
<translation type="unfinished"></translation>
</message>
@ -1217,13 +1219,13 @@
<context>
<name>QtMeshComponetManager</name>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8422"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8431"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8442"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8451"/>
<source>MeshComponent</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8504"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8524"/>
<source>Mesh</source>
<translation type="unfinished"></translation>
</message>
@ -1273,13 +1275,13 @@
<context>
<name>QtPathComponentManager</name>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8581"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8590"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8601"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8610"/>
<source>PathComponent</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8663"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8683"/>
<source>Path</source>
<translation type="unfinished"></translation>
</message>
@ -1529,42 +1531,42 @@
<context>
<name>QtWorkspacePropertyManager</name>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8039"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8059"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8046"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8066"/>
<source>Description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8053"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8073"/>
<source>Timestep</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8060"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8080"/>
<source>SimMatlab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8067"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8087"/>
<source>MatlabParam</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8074"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8094"/>
<source>Wave</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8081"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8101"/>
<source>RD</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8088"/>
<location filename="../ui/PropertyBrowser/qtpropertymanager.cpp" line="8108"/>
<source>Report</source>
<translation type="unfinished"></translation>
</message>
@ -1687,6 +1689,14 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>WindowManagerMenu</name>
<message>
<location filename="../ui/Menu/WindowManagerMenu.ui" line="14"/>
<source>WindowManagerMenu</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>WorkSpaceDlg</name>
<message>

View File

@ -13,7 +13,7 @@ DockTitleBar::DockTitleBar(QWidget* parent)
: DockWidgetTitleBar(parent)
, ui(new Ui::DockTitleBar) {
ui->setupUi(this);
connect(ui->sys_close, &QPushButton::clicked, this, &DockTitleBar::signalClose);
}
DockTitleBar::~DockTitleBar() {

View File

@ -1,17 +1,15 @@
#include "DockWidget.h"
#include <QAbstractButton>
#include <QStyleOptionDockWidget>
#include <QHBoxLayout>
#include <QPaintEvent>
#include <QPainter>
#include <QPainterPath>
#include <QMouseEvent>
#include <QApplication>
#include "ui/Menu/WindowManagerMenu.h"
#include "common/SpdLogger.h"
#include "ui/MainFrame.h"
DockWidgetTitleBar::DockWidgetTitleBar(QWidget* parent)
: QWidget(parent) {
}
DockWidgetTitleBar::~DockWidgetTitleBar() {
@ -31,6 +29,10 @@ QSize DockWidgetTitleBar::minimumSizeHint() const {
DockWidget::DockWidget(const QString& title, QWidget* parent)
: QDockWidget(title, parent) {
setFeatures(DockWidgetClosable | DockWidgetMovable | DockWidgetFloatable);
WindowManagerMenu* windowManagerMenu = MainFrame::Get().GetMenuManager<WindowManagerMenu>("window_manager");
if (nullptr != windowManagerMenu) {
windowManagerMenu->AddDockWidget(this);
}
}
DockWidget::DockWidget(QWidget* parent)
@ -50,7 +52,17 @@ void DockWidget::setWindowTitle(const QString& text) {
}
void DockWidget::SetDockWidgetTitleBar(DockWidgetTitleBar* titleBar) {
if (nullptr != titleBar_) {
disconnect(titleBar_, &DockWidgetTitleBar::signalClose, this, &DockWidget::close);
}
titleBar_ = titleBar;
if (nullptr == titleBar_) {
LOG_ERROR("DockWidget::SetDockWidgetTitleBar titleBar is nullptr");
return;
}
titleBar_->SetTitle(windowTitle());
connect(titleBar_, &DockWidgetTitleBar::signalClose, this, &DockWidget::close);
QDockWidget::setTitleBarWidget(titleBar_);
}

View File

@ -18,6 +18,9 @@ public:
return minimumSizeHint();
}
QSize minimumSizeHint() const override;
Q_SIGNALS:
void signalClose();
};
class DockWidget : public QDockWidget {

View File

@ -16,12 +16,14 @@
#include "ui/Menu/DynamicDisplayMenu.h"
#include "ui/Menu/SystemManagerMenu.h"
#include "ui/Menu/PlayManagerMenu.h"
#include "ui/Menu/WindowManagerMenu.h"
#include "viewer/QtOsgViewWidget.h"
#include "chartPlot/FitCurveDialog.h"
#include "chartPlot/SurfaceDialog.h"
#include "ui/Menu/ChartPlotMenu.h" // lz 20140914
#include "common/SpdLogger.h"
#include "ui_MainFrame.h"
@ -107,6 +109,9 @@ void MainFrame::InitUI() {
PlayManagerMenu* playMenu = new PlayManagerMenu(this);
AddMenuWidget("play_manager", tr("play manager"), playMenu);
WindowManagerMenu* windowMenu = new WindowManagerMenu(this);
AddMenuWidget("window_manager", tr("window manager"), windowMenu);
SystemManagerMenu* system_ = new SystemManagerMenu(this);
AddMenuWidget("system_manager", tr("system manager"), system_);
@ -140,3 +145,20 @@ void MainFrame::AddMenuWidget(const QString& name, const QString& text, QWidget*
int index = ui->menuWidget->addWidget(widget);
menuWidget_.insert(btn, index);
}
QWidget* MainFrame::GetMenuWidget(const QString& name) {
int index = -1;
for (auto it = menuWidget_.begin(); it != menuWidget_.end(); ++it) {
if (it.key()->objectName() == name) {
index = it.value();
break;
}
};
if (index < 0) {
LOG_INFO("not find menu widget : {}", name.toLocal8Bit().constData());
return nullptr;
}
return ui->menuWidget->widget(index);
}

View File

@ -20,6 +20,18 @@ public:
static MainFrame& Get();
template<typename T>
T* GetMenuManager(const QString& name) {
QWidget* widget = GetMenuWidget(name);
if (widget) {
T* t = qobject_cast<T*>(widget);
if (t) {
return t;
}
}
return nullptr;
}
protected:
void paintEvent(QPaintEvent* event) override;
@ -31,6 +43,7 @@ protected:
private:
void InitUI();
void AddMenuWidget(const QString& name, const QString& text, QWidget* widget);
QWidget* GetMenuWidget(const QString& name);
private:
Ui::MainFrame* ui;

View File

@ -1,5 +1,6 @@
#include "ViewManagerMenu.h"
#include "ui/DockWidget.h"
#include "ui_ViewManagerMenu.h"
ViewManagerMenu::ViewManagerMenu(QWidget* parent)

View File

@ -0,0 +1,49 @@
#include "ui/Menu/WindowManagerMenu.h"
#include <QMessageBox>
#include "ui/MainFrame.h"
#include "ui/DockWidget.h"
#include "common/SpdLogger.h"
#include "ui_WindowManagerMenu.h"
const int DockWidgetRole = Qt::UserRole + 1;
WindowManagerMenu::WindowManagerMenu(QWidget* parent)
: QWidget(parent)
, ui(new Ui::WindowManagerMenu) {
ui->setupUi(this);
}
WindowManagerMenu::~WindowManagerMenu() {
delete ui;
}
void WindowManagerMenu::AddDockWidget(DockWidget* dockWidget) {
if (nullptr == dockWidget) {
LOG_ERROR("dockWidget is nullptr");
return;
}
QListWidgetItem* item = new QListWidgetItem(dockWidget->windowTitle());
connect(dockWidget, &DockWidget::windowTitleChanged, [item](const QString& title) {
item->setText(title);
}
);
item->setCheckState(Qt::Checked);
connect(ui->listWidget, &QListWidget::itemClicked, [](QListWidgetItem* item) {
bool checked = !(item->checkState() == Qt::Checked);
item->setCheckState(checked ? Qt::Checked : Qt::Unchecked);
item->data(DockWidgetRole).value<DockWidget*>()->setVisible(checked);
});
item->setData(DockWidgetRole, QVariant::fromValue(dockWidget));
ui->listWidget->addItem(item);
}
void WindowManagerMenu::RemoveDockWidget(class DockWidget* dockWidget) {
}

View File

@ -0,0 +1,26 @@
#pragma once
#include <QWidget>
#include "workspace/WorkSpace.h"
namespace Ui {
class WindowManagerMenu;
}
class WindowManagerMenu : public QWidget {
Q_OBJECT
public:
WindowManagerMenu(QWidget* parent = 0);
~WindowManagerMenu() override;
void AddDockWidget(class DockWidget* dockWidget);
void RemoveDockWidget(class DockWidget* dockWidget);
protected:
private:
Ui::WindowManagerMenu* ui;
};

View File

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>WindowManagerMenu</class>
<widget class="QWidget" name="WindowManagerMenu">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>847</width>
<height>91</height>
</rect>
</property>
<property name="windowTitle">
<string>WindowManagerMenu</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QListWidget" name="listWidget">
<property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="flow">
<enum>QListView::LeftToRight</enum>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>408</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -28,7 +28,6 @@ void ModelBrowser::AttachDock(DockWidget* dockWidget) {
dockWidget->setWidget(this);
DockTitleBar* dockTitleBar = new DockTitleBar;
dockTitleBar->SetTitle(tr("model elements"));
dockWidget->SetDockWidgetTitleBar(dockTitleBar);
}