Skip to content

Commit

Permalink
Fix some bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
PhysSong committed Jan 12, 2022
1 parent 4cba419 commit 4ff297b
Show file tree
Hide file tree
Showing 10 changed files with 95 additions and 19 deletions.
1 change: 1 addition & 0 deletions include/SubWindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ public slots:
void paintEvent( QPaintEvent * pe ) override;
void changeEvent( QEvent * event ) override;
void showEvent( QShowEvent* event ) override;
bool eventFilter( QObject * obj, QEvent * event ) override;

bool isDetached() const;

Expand Down
11 changes: 9 additions & 2 deletions plugins/vestige/vestige.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,15 @@ class vstSubWin : public SubWindow
{
// ignore close-events - for some reason otherwise the VST GUI
// remains hidden when re-opening
hide();
e->ignore();
if (windowFlags().testFlag(Qt::Window))
{
e->accept();
}
else
{
hide();
e->ignore();
}
}
};

Expand Down
17 changes: 16 additions & 1 deletion src/gui/ControllerDialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@

#include "ControllerDialog.h"
#include "Controller.h"
#include "GuiApplication.h"
#include "MainWindow.h"


ControllerDialog::ControllerDialog( Controller * _controller,
Expand All @@ -46,7 +48,20 @@ ControllerDialog::~ControllerDialog()

void ControllerDialog::closeEvent( QCloseEvent * _ce )
{
_ce->ignore();
if (windowFlags().testFlag(Qt::Window))
{
_ce->accept();
}
else if (getGUI()->mainWindow()->workspace())
{
parentWidget()->hide();
_ce->ignore();
}
else
{
hide();
_ce->ignore();
}
emit closed();
}

Expand Down
17 changes: 16 additions & 1 deletion src/gui/EffectControlDialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@

#include "EffectControlDialog.h"
#include "EffectControls.h"
#include "GuiApplication.h"
#include "MainWindow.h"


EffectControlDialog::EffectControlDialog( EffectControls * _controls ) :
Expand All @@ -51,7 +53,20 @@ EffectControlDialog::~EffectControlDialog()

void EffectControlDialog::closeEvent( QCloseEvent * _ce )
{
_ce->ignore();
if (windowFlags().testFlag(Qt::Window))
{
_ce->accept();
}
else if (getGUI()->mainWindow()->workspace())
{
parentWidget()->hide();
_ce->ignore();
}
else
{
hide();
_ce->ignore();
}
emit closed();
}

Expand Down
10 changes: 7 additions & 3 deletions src/gui/InstrumentTrackWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -501,15 +501,19 @@ void InstrumentTrackWindow::toggleVisibility( bool on )

void InstrumentTrackWindow::closeEvent( QCloseEvent* event )
{
event->ignore();

if( getGUI()->mainWindow()->workspace() )
if (windowFlags().testFlag(Qt::Window))
{
event->accept();
}
else if (getGUI()->mainWindow()->workspace())
{
parentWidget()->hide();
event->ignore();
}
else
{
hide();
event->ignore();
}

m_itv->m_tlb->setFocus();
Expand Down
13 changes: 9 additions & 4 deletions src/gui/MixerView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -554,17 +554,22 @@ void MixerView::keyPressEvent(QKeyEvent * e)


void MixerView::closeEvent( QCloseEvent * _ce )
{
if( parentWidget() )
{
if (windowFlags().testFlag(Qt::Window))
{
_ce->accept();
}
else if (getGUI()->mainWindow()->workspace())
{
parentWidget()->hide();
_ce->ignore();
}
else
{
hide();
_ce->ignore();
}
_ce->ignore();
}
}



Expand Down
12 changes: 8 additions & 4 deletions src/gui/SampleTrackWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -230,15 +230,19 @@ void SampleTrackWindow::toggleVisibility(bool on)

void SampleTrackWindow::closeEvent(QCloseEvent* ce)
{
ce->ignore();

if(getGUI()->mainWindow()->workspace())
if (windowFlags().testFlag(Qt::Window))
{
ce->accept();
}
else if (getGUI()->mainWindow()->workspace())
{
parentWidget()->hide();
ce->ignore();
}
else
{
hide();
ce->ignore();
}

m_stv->m_tlb->setFocus();
Expand All @@ -262,4 +266,4 @@ void SampleTrackWindow::loadSettings(const QDomElement& element)
{
m_stv->m_tlb->setChecked(true);
}
}
}
15 changes: 15 additions & 0 deletions src/gui/SubWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,7 @@ void SubWindow::detach()
if (isDetached()) {
return;
}

auto pos = mapToGlobal(widget()->pos());
widget()->setWindowFlags(Qt::Window);
widget()->show();
Expand Down Expand Up @@ -433,3 +434,17 @@ void SubWindow::resizeEvent( QResizeEvent * event )
m_trackedNormalGeom.setSize( event->size() );
}
}

bool SubWindow::eventFilter(QObject * obj, QEvent * event)
{
if (obj != static_cast<QObject *>(widget())) {
return QMdiSubWindow::eventFilter(obj, event);
}
switch (event->type()) {
case QEvent::WindowStateChange:
event->accept();
return true;
default:
return QMdiSubWindow::eventFilter(obj, event);
}
}
9 changes: 7 additions & 2 deletions src/gui/widgets/ControllerRackView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -203,14 +203,19 @@ void ControllerRackView::addController()

void ControllerRackView::closeEvent( QCloseEvent * _ce )
{
if( parentWidget() )
if (windowFlags().testFlag(Qt::Window))
{
_ce->accept();
}
else if (getGUI()->mainWindow()->workspace())
{
parentWidget()->hide();
_ce->ignore();
}
else
{
hide();
_ce->ignore();
}
_ce->ignore();
}

9 changes: 7 additions & 2 deletions src/gui/widgets/ProjectNotes.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -398,13 +398,18 @@ void ProjectNotes::loadSettings( const QDomElement & _this )

void ProjectNotes::closeEvent( QCloseEvent * _ce )
{
if( parentWidget() )
if (windowFlags().testFlag(Qt::Window))
{
_ce->accept();
}
else if (getGUI()->mainWindow()->workspace())
{
parentWidget()->hide();
_ce->ignore();
}
else
{
hide();
_ce->ignore();
}
_ce->ignore();
}

0 comments on commit 4ff297b

Please sign in to comment.