#include "DockWidget.h" #include #include "ui/Menu/WindowManagerMenu.h" #include "common/SpdLogger.h" #include "ui/MainFrame.h" DockWidgetTitleBar::DockWidgetTitleBar(QWidget* parent) : QWidget(parent) { } DockWidgetTitleBar::~DockWidgetTitleBar() { } QSize DockWidgetTitleBar::minimumSizeHint() const { QDockWidget* dw = qobject_cast(parentWidget()); Q_ASSERT(dw); QSize result(0, 90); if (dw->features() & QDockWidget::DockWidgetVerticalTitleBar) result.transpose(); return result; } DockWidget::DockWidget(const QString& title, QWidget* parent) : QDockWidget(title, parent) { setFeatures(DockWidgetClosable | DockWidgetMovable | DockWidgetFloatable); WindowManagerMenu* windowManagerMenu = MainFrame::Get().GetMenuManager("window_manager"); if (nullptr != windowManagerMenu) { windowManagerMenu->AddDockWidget(this); } } 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) { 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_); } void DockWidget::showEvent(QShowEvent* e) { QDockWidget::showEvent(e); } void DockWidget::resizeEvent(QResizeEvent* e) { QDockWidget::resizeEvent(e); QStyleOptionDockWidget opt; initStyleOption(&opt); }