Skip to content

Commit

Permalink
Fix some bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
PhysSong committed Nov 7, 2019
1 parent 403c681 commit 19c43ed
Show file tree
Hide file tree
Showing 10 changed files with 93 additions and 17 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 @@ -100,8 +100,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 (gui->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 (gui->mainWindow()->workspace())
{
parentWidget()->hide();
_ce->ignore();
}
else
{
hide();
_ce->ignore();
}
emit closed();
}

Expand Down
11 changes: 8 additions & 3 deletions src/gui/FxMixerView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -553,16 +553,21 @@ void FxMixerView::keyPressEvent(QKeyEvent * e)


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


Expand Down
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 (gui->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 (gui->mainWindow()->workspace())
{
parentWidget()->hide();
_ce->ignore();
}
else
{
hide();
_ce->ignore();
}
_ce->ignore();
}
10 changes: 7 additions & 3 deletions src/tracks/InstrumentTrack.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1682,15 +1682,19 @@ void InstrumentTrackWindow::toggleVisibility( bool on )

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

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

m_itv->m_tlb->setFocus();
Expand Down
10 changes: 7 additions & 3 deletions src/tracks/SampleTrack.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1158,15 +1158,19 @@ void SampleTrackWindow::toggleVisibility(bool on)

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

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

m_stv->m_tlb->setFocus();
Expand Down

0 comments on commit 19c43ed

Please sign in to comment.