mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-02 06:35:52 +08:00
refs #347, CMainWindow for frameless main windows
This commit is contained in:
committed by
Roland Winklmeier
parent
facbefeeea
commit
42a4e0b48b
@@ -38,23 +38,13 @@ using namespace BlackMisc::Hardware;
|
||||
/*
|
||||
* Constructor
|
||||
*/
|
||||
MainWindow::MainWindow(GuiModes::WindowMode windowMode, QWidget *parent) :
|
||||
QMainWindow(parent, windowMode == GuiModes::WindowFrameless ?
|
||||
(Qt::Window | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint) :
|
||||
(Qt::Tool | Qt::WindowStaysOnTopHint | Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint)),
|
||||
ui(new Ui::MainWindow),
|
||||
m_windowMode(windowMode)
|
||||
MainWindow::MainWindow(BlackGui::CMainWindow::WindowMode windowMode, QWidget *parent) :
|
||||
BlackGui::CMainWindow(windowMode, parent),
|
||||
ui(new Ui::MainWindow)
|
||||
{
|
||||
if (windowMode == GuiModes::WindowFrameless)
|
||||
{
|
||||
// http://stackoverflow.com/questions/18316710/frameless-and-transparent-window-qt5
|
||||
this->setAttribute(Qt::WA_NoSystemBackground, true);
|
||||
this->setAttribute(Qt::WA_TranslucentBackground, true);
|
||||
// this->setAttribute(Qt::WA_PaintOnScreen);
|
||||
}
|
||||
|
||||
// GUI
|
||||
ui->setupUi(this);
|
||||
this->ui->wi_CentralWidgetOutside->setProperty("mainframeless", this->isFrameless());
|
||||
this->m_compInfoWindow = new CInfoWindowComponent(this); // setupUi has to be first!
|
||||
}
|
||||
|
||||
@@ -118,29 +108,6 @@ void MainWindow::closeEvent(QCloseEvent *event)
|
||||
QApplication::exit();
|
||||
}
|
||||
|
||||
void MainWindow::mouseMoveEvent(QMouseEvent *event)
|
||||
{
|
||||
// this->ui->fr_PseudoWindowBar->geometry().contains(event->pos())
|
||||
if (this->m_windowMode == GuiModes::WindowFrameless && event->buttons() & Qt::LeftButton)
|
||||
{
|
||||
move(event->globalPos() - this->m_dragPosition);
|
||||
event->accept();
|
||||
return;
|
||||
}
|
||||
QWidget::mouseMoveEvent(event);
|
||||
}
|
||||
|
||||
void MainWindow::mousePressEvent(QMouseEvent *event)
|
||||
{
|
||||
if (this->m_windowMode == GuiModes::WindowFrameless && event->button() == Qt::LeftButton)
|
||||
{
|
||||
this->m_dragPosition = event->globalPos() - this->frameGeometry().topLeft();
|
||||
event->accept();
|
||||
return;
|
||||
}
|
||||
QWidget::mousePressEvent(event);
|
||||
}
|
||||
|
||||
/*
|
||||
* Set main page
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user