VST GUI fixes, improvements
Various fixes improvements: + Added support for VST parameters control for windows. + New `Close` button for VST parameter controls. + Faster GUI for all instruments, effects-loading, not only VSTs, and both one-instrument track window mode and normal window mode should be supported. + Better integration for VST GUIs on Linux, e.g. plugin window should not stay always on top of other windows. + VST GUI overlook should remain same with different wine setups ( except for whole virtual desktops emulations ). + VST effect control window merged with VST effect editor window should be more easier to control. + Little corections at effectviews model updates of instrument tracks effect chains. Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
This commit is contained in:
committed by
Tobias Doerffel
parent
a184bc039e
commit
1c9c76f399
@@ -175,29 +175,36 @@ void EffectRackView::update()
|
||||
Qt::QueuedConnection );
|
||||
view->show();
|
||||
m_effectViews.append( view );
|
||||
view_map[i] = true;
|
||||
if( i < view_map.size() )
|
||||
{
|
||||
view_map[i] = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
view_map.append( true );
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
int i = m_lastY = 0;
|
||||
int i = m_lastY = 0, nView = 0;
|
||||
for( QVector<EffectView *>::Iterator it = m_effectViews.begin();
|
||||
it != m_effectViews.end(); )
|
||||
it != m_effectViews.end(); i++ )
|
||||
{
|
||||
if( i < view_map.size() && i < m_effectViews.size() &&
|
||||
view_map[i] == false )
|
||||
if( i < view_map.size() && view_map[i] == false )
|
||||
{
|
||||
delete m_effectViews[i];
|
||||
delete m_effectViews[nView];
|
||||
it = m_effectViews.erase( it );
|
||||
}
|
||||
else
|
||||
{
|
||||
( *it )->move( 0, m_lastY );
|
||||
m_lastY += ( *it )->height();
|
||||
++nView;
|
||||
++it;
|
||||
++i;
|
||||
}
|
||||
}
|
||||
|
||||
w->setFixedSize( 210, m_lastY );
|
||||
|
||||
QWidget::update();
|
||||
@@ -242,7 +249,7 @@ void EffectRackView::addEffect()
|
||||
|
||||
void EffectRackView::modelChanged()
|
||||
{
|
||||
clearViews();
|
||||
//clearViews();
|
||||
m_effectsGroupBox->setModel( &fxChain()->m_enabledModel );
|
||||
connect( fxChain(), SIGNAL( aboutToClear() ),
|
||||
this, SLOT( clearViews() ) );
|
||||
|
||||
@@ -85,6 +85,8 @@ EffectView::EffectView( Effect * _model, QWidget * _parent ) :
|
||||
"while deciding when to stop processing signals." ) );
|
||||
|
||||
|
||||
setModel( _model );
|
||||
|
||||
if( effect()->controls()->controlCount() > 0 )
|
||||
{
|
||||
QPushButton * ctls_btn = new QPushButton( tr( "Controls" ),
|
||||
@@ -94,6 +96,7 @@ EffectView::EffectView( Effect * _model, QWidget * _parent ) :
|
||||
ctls_btn->setGeometry( 140, 14, 50, 20 );
|
||||
connect( ctls_btn, SIGNAL( clicked() ),
|
||||
this, SLOT( editControls() ) );
|
||||
|
||||
m_controlView = effect()->controls()->createView();
|
||||
if( m_controlView )
|
||||
{
|
||||
@@ -141,7 +144,8 @@ EffectView::EffectView( Effect * _model, QWidget * _parent ) :
|
||||
"Right clicking will bring up a context menu where you can change the order "
|
||||
"in which the effects are processed or delete an effect altogether." ) );
|
||||
|
||||
setModel( _model );
|
||||
//move above vst effect view creation
|
||||
//setModel( _model );
|
||||
}
|
||||
|
||||
|
||||
@@ -149,7 +153,15 @@ EffectView::EffectView( Effect * _model, QWidget * _parent ) :
|
||||
|
||||
EffectView::~EffectView()
|
||||
{
|
||||
|
||||
#ifdef LMMS_BUILD_LINUX
|
||||
|
||||
delete m_subWindow;
|
||||
#else
|
||||
// otherwise on win32 build VST GUI can get lost
|
||||
m_subWindow->hide();
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -159,7 +171,7 @@ void EffectView::editControls()
|
||||
{
|
||||
if( m_subWindow )
|
||||
{
|
||||
if( !effect()->controls()->isViewVisible() )
|
||||
if( !m_subWindow->isVisible() )
|
||||
{
|
||||
m_subWindow->show();
|
||||
m_subWindow->raise();
|
||||
|
||||
@@ -1047,9 +1047,9 @@ void InstrumentTrackView::freeInstrumentTrackWindow()
|
||||
model()->setHook( NULL );
|
||||
m_window->setInstrumentTrackView( NULL );
|
||||
m_window->parentWidget()->hide();
|
||||
m_window->setModel(
|
||||
engine::dummyTrackContainer()->
|
||||
dummyInstrumentTrack() );
|
||||
//m_window->setModel(
|
||||
// engine::dummyTrackContainer()->
|
||||
// dummyInstrumentTrack() );
|
||||
m_window->updateInstrumentView();
|
||||
s_windowCache << m_window;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user