From 1808379915a9252d79ca480bf701a536ea869ce1 Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Fri, 18 Jan 2008 12:21:33 +0000 Subject: [PATCH] made LADSPA-plugin-layouter work again after Qt4-port, other small code-fixes git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms-mv@667 0778d3d1-df1d-0410-868b-ea421aaaa00d --- ChangeLog | 20 +++++++++ Makefile.am | 2 +- .../ladspa_effect/ladspa_control_dialog.cpp | 45 +++++++++---------- plugins/ladspa_effect/ladspa_controls.cpp | 8 ++-- src/core/ladspa_control.cpp | 6 +-- src/widgets/combobox.cpp | 4 +- src/widgets/knob.cpp | 4 +- src/widgets/ladspa_control_view.cpp | 21 ++++++--- 8 files changed, 68 insertions(+), 42 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8a92eb506..ab897f428 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,23 @@ +2008-01-18 Tobias Doerffel + + * src/widgets/combobox.cpp: + fixed painting + + * src/widgets/ladspa_control_view.cpp: + * plugins/ladspa_effect/ladspa_control_dialog.cpp: + made control-layouting work again (did not work at all after Qt4-port) + + * src/core/ladspa_control.cpp: + added initialization for m_link-member-variable, optimized + linkEnabledModel-initialization + + * src/widgets/knob.cpp: + * plugins/ladspa_effect/ladspa_controls.cpp: + coding style fixes + + * Makefile.am: + moved ladspa_control_view.cpp to src/widgets/ + 2008-01-17 Tobias Doerffel * plugins/ladspa_effect/Makefile.am: diff --git a/Makefile.am b/Makefile.am index d8ef64f7a..8671b5bd0 100644 --- a/Makefile.am +++ b/Makefile.am @@ -169,7 +169,6 @@ lmms_SOURCES = \ $(srcdir)/src/core/ladspa_2_lmms.cpp \ $(srcdir)/src/core/ladspa_manager.cpp \ $(srcdir)/src/core/ladspa_control.cpp \ - $(srcdir)/src/core/ladspa_control_view.cpp \ $(srcdir)/src/core/main_window.cpp \ $(srcdir)/src/core/main.cpp \ $(srcdir)/src/core/meter_dialog.cpp \ @@ -226,6 +225,7 @@ lmms_SOURCES = \ $(srcdir)/src/widgets/group_box.cpp \ $(srcdir)/src/widgets/kmultitabbar.cpp \ $(srcdir)/src/widgets/knob.cpp \ + $(srcdir)/src/widgets/ladspa_control_view.cpp \ $(srcdir)/src/widgets/lcd_spinbox.cpp \ $(srcdir)/src/widgets/led_checkbox.cpp \ $(srcdir)/src/widgets/nstate_button.cpp \ diff --git a/plugins/ladspa_effect/ladspa_control_dialog.cpp b/plugins/ladspa_effect/ladspa_control_dialog.cpp index f38a96710..a869913f2 100644 --- a/plugins/ladspa_effect/ladspa_control_dialog.cpp +++ b/plugins/ladspa_effect/ladspa_control_dialog.cpp @@ -41,13 +41,14 @@ ladspaControlDialog::ladspaControlDialog( ladspaControls * _ctl ) : QHBoxLayout * effectLay = new QHBoxLayout(); mainLay->addLayout( effectLay ); - int rows = static_cast( sqrt( - static_cast( _ctl->m_controlCount ) ) ); - + const int cols = static_cast( sqrt( + static_cast( _ctl->m_controlCount / + _ctl->m_processors ) ) ); for( ch_cnt_t proc = 0; proc < _ctl->m_processors; proc++ ) { control_list_t & controls = _ctl->m_controls[proc]; - int row_cnt = 0; + int row = 0; + int col = 0; buffer_data_t last_port = NONE; QGroupBox * grouper; @@ -61,6 +62,9 @@ ladspaControlDialog::ladspaControlDialog( ladspaControls * _ctl ) : { grouper = new QGroupBox( this ); } + + QGridLayout * gl = new QGridLayout( grouper ); + grouper->setLayout( gl ); grouper->setAlignment( Qt::Vertical ); for( control_list_t::iterator it = controls.begin(); @@ -68,28 +72,23 @@ ladspaControlDialog::ladspaControlDialog( ladspaControls * _ctl ) : { if( (*it)->getPort()->proc == proc ) { - if( last_port == NONE || - (*it)->getPort()->data_type != TOGGLED || - ( (*it)->getPort()->data_type == TOGGLED && - last_port == TOGGLED ) ) + if( last_port != NONE && + (*it)->getPort()->data_type == + TOGGLED && + !( (*it)->getPort()->data_type == + TOGGLED && + last_port == TOGGLED ) ) { - new ladspaControlView( grouper, *it ); + ++row; + col = 0; } - else + gl->addWidget( new ladspaControlView( + grouper, *it ), + row, col ); + if( ++col == cols ) { - while( row_cnt < rows ) - { - new QWidget( grouper ); - row_cnt++; - } - new ladspaControlView( grouper, *it ); - row_cnt = 0; - } - - row_cnt++; - if( row_cnt == ( rows - 1 ) ) - { - row_cnt = 0; + ++row; + col = 0; } last_port = (*it)->getPort()->data_type; } diff --git a/plugins/ladspa_effect/ladspa_controls.cpp b/plugins/ladspa_effect/ladspa_controls.cpp index 7a7fb5bf3..e956e19da 100644 --- a/plugins/ladspa_effect/ladspa_controls.cpp +++ b/plugins/ladspa_effect/ladspa_controls.cpp @@ -43,10 +43,10 @@ ladspaControls::ladspaControls( ladspaEffect * _eff, for( ch_cnt_t proc = 0; proc < m_processors; proc++ ) { control_list_t p; - - bool linked_control = ( m_processors > 1 && proc == 0 ); + + const bool linked_control = ( m_processors > 1 && proc == 0 ); buffer_data_t last_port = NONE; - + for( multi_proc_t::iterator it = controls.begin(); it != controls.end(); it++ ) { @@ -69,7 +69,7 @@ ladspaControls::ladspaControls( ladspaEffect * _eff, } } } - + m_controls.append( p ); } } diff --git a/src/core/ladspa_control.cpp b/src/core/ladspa_control.cpp index b0e846344..db76bdab3 100644 --- a/src/core/ladspa_control.cpp +++ b/src/core/ladspa_control.cpp @@ -31,16 +31,16 @@ ladspaControl::ladspaControl( model * _parent, port_desc_t * _port, track * _track, bool _link ) : model( _parent ), + m_link( _link ), m_port( _port ), - m_linkEnabledModel( FALSE, FALSE, TRUE, boolModel::defaultRelStep(), + m_linkEnabledModel( _link, FALSE, TRUE, boolModel::defaultRelStep(), this ), m_toggledModel( FALSE, FALSE, TRUE, boolModel::defaultRelStep(), this ), m_knobModel( 0, 0, 0, 1, this ) { - if( _link ) + if( m_link ) { - m_linkEnabledModel.setValue( FALSE ); m_linkEnabledModel.setTrack( _track ); connect( &m_linkEnabledModel, SIGNAL( dataChanged() ), this, SLOT( linkStateChanged() ) ); diff --git a/src/widgets/combobox.cpp b/src/widgets/combobox.cpp index 8df63299a..06bd4f395 100644 --- a/src/widgets/combobox.cpp +++ b/src/widgets/combobox.cpp @@ -202,10 +202,10 @@ void comboBox::paintEvent( QPaintEvent * _pe ) tx += pm.width() + 2; } p.setPen( QColor( 64, 64, 64 ) ); - p.drawText( tx+1, p.fontMetrics().height()-1, + p.drawText( tx+1, p.fontMetrics().height()-3, model()->currentText() ); p.setPen( QColor( 224, 224, 224 ) ); - p.drawText( tx, p.fontMetrics().height()-2, + p.drawText( tx, p.fontMetrics().height()-4, model()->currentText() ); } } diff --git a/src/widgets/knob.cpp b/src/widgets/knob.cpp index 6b6e681a6..6b1fc3e3b 100644 --- a/src/widgets/knob.cpp +++ b/src/widgets/knob.cpp @@ -84,8 +84,6 @@ knob::knob( int _knob_num, QWidget * _parent, const QString & _name ) : m_knobPixmap = new QPixmap( embed::getIconPixmap( QString( "knob0" + QString::number( m_knobNum + 1 ) ).toAscii().constData() ) ); - //setRange( 0.0f, 100.0f, 1.0f ); - setFixedSize( m_knobPixmap->width(), m_knobPixmap->height() ); setTotalAngle( 270.0f ); } @@ -451,7 +449,7 @@ void knob::paintEvent( QPaintEvent * _me ) p.translate( -ur.x(), -ur.y() ); drawKnob( &p ); - if( m_label != "" ) + if( !m_label.isEmpty() ) { p.setFont( pointSize<6>( p.font() ) ); p.setPen( QColor( 64, 64, 64 ) ); diff --git a/src/widgets/ladspa_control_view.cpp b/src/widgets/ladspa_control_view.cpp index dff6e0167..98f761966 100644 --- a/src/widgets/ladspa_control_view.cpp +++ b/src/widgets/ladspa_control_view.cpp @@ -40,6 +40,8 @@ ladspaControlView::ladspaControlView( QWidget * _parent, m_ctl( _ctl ) { QHBoxLayout * layout = new QHBoxLayout( this ); + layout->setMargin( 0 ); + layout->setSpacing( 0 ); ledCheckBox * link = NULL; @@ -62,13 +64,17 @@ ladspaControlView::ladspaControlView( QWidget * _parent, QString::null, ledCheckBox::GREEN ); toggle->setModel( m_ctl->getToggledModel() ); - setFixedSize( toggle->width(), toggle->height() ); - if( m_ctl->m_link ) + layout->addWidget( toggle ); + if( link != NULL ) { - layout->addWidget( toggle ); setFixedSize( link->width() + toggle->width(), toggle->height() ); } + else + { + setFixedSize( toggle->width(), + toggle->height() ); + } break; } @@ -93,13 +99,16 @@ ladspaControlView::ladspaControlView( QWidget * _parent, knb->setLabel( m_ctl->getPort()->name ); knb->setHintText( tr( "Value:" ) + " ", "" ); knb->setWhatsThis( tr( "Sorry, no help available." ) ); - setFixedSize( knb->width(), knb->height() ); - if( m_ctl->m_link ) + layout->addWidget( knb ); + if( link != NULL ) { - layout->addWidget( knb ); setFixedSize( link->width() + knb->width(), knb->height() ); } + else + { + setFixedSize( knb->width(), knb->height() ); + } } }