From 4958b718b1e1bff003df529f6b2eb6c9b70723d3 Mon Sep 17 00:00:00 2001 From: dreamsourcelabTAI Date: Thu, 7 Apr 2022 14:07:05 +0800 Subject: [PATCH] update: popup dailog style --- DSView/pv/dialogs/dsdialog.cpp | 2 +- DSView/pv/dialogs/dsmessagebox.cpp | 2 +- DSView/pv/toolbars/titlebar.cpp | 11 +++++++---- DSView/pv/toolbars/titlebar.h | 11 ++++++----- DSView/pv/ui/msgbox.cpp | 9 +++++++++ 5 files changed, 24 insertions(+), 11 deletions(-) diff --git a/DSView/pv/dialogs/dsdialog.cpp b/DSView/pv/dialogs/dsdialog.cpp index 94569abb..7e0adc1a 100755 --- a/DSView/pv/dialogs/dsdialog.cpp +++ b/DSView/pv/dialogs/dsdialog.cpp @@ -49,7 +49,7 @@ DSDialog::DSDialog(QWidget *parent, bool hasClose): } DSDialog::DSDialog(QWidget *parent, bool hasClose, bool bBaseButton) : - QDialog(parent), //must be null, otherwise window can not able to move + QDialog(NULL), m_bBaseButton(bBaseButton) { (void)parent; diff --git a/DSView/pv/dialogs/dsmessagebox.cpp b/DSView/pv/dialogs/dsmessagebox.cpp index 1d6fb9ef..a2c273e6 100755 --- a/DSView/pv/dialogs/dsmessagebox.cpp +++ b/DSView/pv/dialogs/dsmessagebox.cpp @@ -34,7 +34,7 @@ namespace pv { namespace dialogs { DSMessageBox::DSMessageBox(QWidget *parent,const char *title) : - QDialog(NULL) //must be null, otherwise window can not able to move + QDialog(parent) { (void)parent; _layout = NULL; diff --git a/DSView/pv/toolbars/titlebar.cpp b/DSView/pv/toolbars/titlebar.cpp index aae90e15..ab2ebfdf 100755 --- a/DSView/pv/toolbars/titlebar.cpp +++ b/DSView/pv/toolbars/titlebar.cpp @@ -197,7 +197,8 @@ void TitleBar::mousePressEvent(QMouseEvent* event) if (!bTopWidow || bClick ){ _moving = true; - _startPos = event->globalPos() - _parent->frameGeometry().topLeft(); + _clickPos = event->globalPos(); + _oldPos = _parent->pos(); event->accept(); return; } @@ -206,9 +207,11 @@ void TitleBar::mousePressEvent(QMouseEvent* event) } void TitleBar::mouseMoveEvent(QMouseEvent *event) -{ - if(_moving){ - _parent->move(event->globalPos() - _startPos); +{ + if(_moving){ + int x = _oldPos.x() + (event->globalPos().x() - _clickPos.x()); + int y = _oldPos.y() + (event->globalPos().y() - _clickPos.y()); + _parent->move(x, y); event->accept(); return; } diff --git a/DSView/pv/toolbars/titlebar.h b/DSView/pv/toolbars/titlebar.h index 47d937fa..3d97da2d 100755 --- a/DSView/pv/toolbars/titlebar.h +++ b/DSView/pv/toolbars/titlebar.h @@ -68,11 +68,12 @@ protected: QToolButton *_closeButton; QLabel *_title; - bool _moving; - bool _isTop; - bool _hasClose; - QPoint _startPos; - QWidget *_parent; + bool _moving; + bool _isTop; + bool _hasClose; + QPoint _clickPos; + QPoint _oldPos; + QWidget *_parent; }; } // namespace toolbars diff --git a/DSView/pv/ui/msgbox.cpp b/DSView/pv/ui/msgbox.cpp index 4099b34d..0e456b34 100644 --- a/DSView/pv/ui/msgbox.cpp +++ b/DSView/pv/ui/msgbox.cpp @@ -24,6 +24,7 @@ #include #include #include +#include "../dsvdef.h" //QMessageBox::information(NULL, "Title", "Content",QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes); //QMessageBox::information(NULL, "Title", "Content",QMessageBox::Yes|QMessageBox::No); @@ -38,6 +39,10 @@ void MsgBox::Show(const char *title, const char *text, QWidget *parent) str.append("\n"); str.append(text); + if (parent == NULL){ + parent = app::get_app_window_instance(NULL, false); + } + pv::dialogs::DSMessageBox msg(parent, title); msg.mBox()->setText(str); // msg.mBox()->setInformativeText(QString(text)); @@ -54,6 +59,10 @@ bool MsgBox::Confirm(const char *text, QWidget *parent) str.append("\n"); str.append(text); + if (parent == NULL){ + parent = app::get_app_window_instance(NULL, false); + } + pv::dialogs::DSMessageBox msg(parent, "Question"); msg.mBox()->setText(str); msg.mBox()->setStandardButtons(QMessageBox::Yes | QMessageBox::No);