DYTSrouce/src/ui/DockWidget.cpp

89 lines
2.2 KiB
C++
Raw Normal View History

2025-01-04 04:12:51 +00:00
#include "DockWidget.h"
#include <QStyleOptionDockWidget>
2025-01-19 17:08:04 +00:00
2025-02-10 15:24:06 +00:00
#include "ui/Menu/SystemManagerMenu.h"
2025-01-19 17:08:04 +00:00
#include "common/SpdLogger.h"
#include "ui/MainFrame.h"
2025-01-04 04:12:51 +00:00
DockWidgetTitleBar::DockWidgetTitleBar(QWidget* parent)
: QWidget(parent) {
2025-01-19 17:08:04 +00:00
2025-01-04 04:12:51 +00:00
}
DockWidgetTitleBar::~DockWidgetTitleBar() {
}
//QSize DockWidgetTitleBar::minimumSizeHint() const {
// QDockWidget* dw = qobject_cast<QDockWidget*>(parentWidget());
// Q_ASSERT(dw);
// QSize result(0, 90);
// if (dw->features() & QDockWidget::DockWidgetVerticalTitleBar)
// result.transpose();
// return result;
//}
2025-01-04 04:12:51 +00:00
DockWidget::DockWidget(const QString& title, QWidget* parent)
: QDockWidget(title, parent) {
setFeatures(DockWidgetClosable | DockWidgetMovable | DockWidgetFloatable);
2025-02-10 15:24:06 +00:00
SystemManagerMenu* windowManagerMenu = MainFrame::Get().GetMenuManager<SystemManagerMenu>("system_manager");
2025-01-19 17:08:04 +00:00
if (nullptr != windowManagerMenu) {
windowManagerMenu->AddDockWidget(this);
}
2025-01-04 04:12:51 +00:00
}
DockWidget::DockWidget(QWidget* parent)
: QDockWidget(parent) {
setFeatures(DockWidgetClosable | DockWidgetMovable | DockWidgetFloatable);
}
DockWidget::~DockWidget() {
}
void DockWidget::setWindowTitle(const QString& text) {
QDockWidget::setWindowTitle(text);
if (nullptr != titleBar_) {
titleBar_->SetTitle(text);
}
}
void DockWidget::SetDockWidgetTitleBar(DockWidgetTitleBar* titleBar) {
2025-01-19 17:08:04 +00:00
if (nullptr != titleBar_) {
disconnect(titleBar_, &DockWidgetTitleBar::signalClose, this, &DockWidget::close);
}
2025-01-04 04:12:51 +00:00
titleBar_ = titleBar;
2025-01-19 17:08:04 +00:00
if (nullptr == titleBar_) {
LOG_ERROR("DockWidget::SetDockWidgetTitleBar titleBar is nullptr");
return;
}
titleBar_->SetTitle(windowTitle());
2025-01-21 00:52:43 +00:00
connect(titleBar_, &DockWidgetTitleBar::signalClose, this, &DockWidget::OnClose);
2025-01-04 04:12:51 +00:00
QDockWidget::setTitleBarWidget(titleBar_);
}
void DockWidget::showEvent(QShowEvent* e) {
QDockWidget::showEvent(e);
}
void DockWidget::resizeEvent(QResizeEvent* e) {
QDockWidget::resizeEvent(e);
2025-02-13 00:16:04 +00:00
}
void DockWidget::paintEvent(QPaintEvent* e) {
QDockWidget::paintEvent(e);
2025-01-04 04:12:51 +00:00
QStyleOptionDockWidget opt;
initStyleOption(&opt);
}
2025-01-21 00:52:43 +00:00
void DockWidget::OnClose() {
LOG_INFO("DockWidget::OnClose");
close();
emit signalClose();
}