From 69bbd954291ab72eb366d9411123b7462e2ce3e0 Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Mon, 25 Feb 2008 12:59:15 +0000 Subject: [PATCH] fixed zooming-comboboxes in automation-editor and header-dependencies git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms-mv@706 0778d3d1-df1d-0410-868b-ea421aaaa00d --- ChangeLog | 11 ++++++++++ include/automation_editor.h | 9 +++++--- include/combobox.h | 9 ++------ src/core/automation_editor.cpp | 40 +++++++++++++++++++--------------- src/core/piano_roll.cpp | 1 + src/core/song.cpp | 2 ++ src/core/track.cpp | 2 +- 7 files changed, 45 insertions(+), 29 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5684a63f8..0995155d1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,16 @@ 2008-02-25 Tobias Doerffel + * include/automation_editor.h: + * include/combobox.h: + * src/core/song.cpp: + * src/core/piano_roll.cpp: + * src/core/track.cpp: + * src/core/automation_editor.cpp: + fixed zooming-comboboxes in automation-editor and header-dependencies + + * src/widgets/combobox.cpp: + update() after wheelEvent + * include/tool.h: * src/core/tool.cpp: * plugins/live_tool/live_tool.h: diff --git a/include/automation_editor.h b/include/automation_editor.h index a9fba2289..5abbe5924 100644 --- a/include/automation_editor.h +++ b/include/automation_editor.h @@ -33,13 +33,13 @@ #include "journalling_object.h" #include "midi_time.h" #include "automation_pattern.h" +#include "combobox.h" class QPainter; class QPixmap; class QScrollBar; -class comboBox; class notePlayHandle; class timeLine; class toolButton; @@ -118,8 +118,8 @@ protected slots: void updatePosition( const midiTime & _t ); - void zoomingXChanged( const QString & _zfac ); - void zoomingYChanged( const QString & _zfac ); + void zoomingXChanged( void ); + void zoomingYChanged( void ); private: @@ -182,6 +182,9 @@ private: comboBox * m_zoomingYComboBox; comboBox * m_quantizeComboBox; + comboBoxModel m_zoomingXModel; + comboBoxModel m_zoomingYModel; + comboBoxModel m_quantizeModel; automationPattern * m_pattern; int m_min_level; diff --git a/include/combobox.h b/include/combobox.h index 7a7316462..8598ee2dd 100644 --- a/include/combobox.h +++ b/include/combobox.h @@ -1,7 +1,7 @@ /* * combobox.h - class comboBox, a very cool combo-box * - * Copyright (c) 2006-2007 Tobias Doerffel + * Copyright (c) 2006-2008 Tobias Doerffel * * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net * @@ -32,7 +32,7 @@ #include #include "automatable_model.h" -#include "automatable_model_templates.h" +#include "templates.h" class comboBoxModel : public intModel @@ -138,11 +138,6 @@ private slots: void deletePixmap( QPixmap * _pixmap ); void setItem( QAction * _item ); -/* -signals: - void activated( const QString & ); - void valueChanged( int );*/ - } ; #endif diff --git a/src/core/automation_editor.cpp b/src/core/automation_editor.cpp index be1ad3462..22e1cf4b2 100644 --- a/src/core/automation_editor.cpp +++ b/src/core/automation_editor.cpp @@ -75,6 +75,10 @@ QPixmap * automationEditor::s_toolMove = NULL; automationEditor::automationEditor( void ) : + QWidget(), + m_zoomingXModel(), + m_zoomingYModel(), + m_quantizeModel(), m_pattern( NULL ), m_min_level( 0 ), m_max_level( 0 ), @@ -265,17 +269,16 @@ automationEditor::automationEditor( void ) : m_zoomingXComboBox = new comboBox( m_toolBar ); m_zoomingXComboBox->setFixedSize( 80, 22 ); - comboBoxModel * zoom_x_model = new comboBoxModel( /* this */ ); for( int i = 0; i < 6; ++i ) { - zoom_x_model->addItem( QString::number( 25 << i ) + "%" ); + m_zoomingXModel.addItem( QString::number( 25 << i ) + "%" ); } - zoom_x_model->setValue( zoom_x_model->findText( "100%" ) ); + m_zoomingXModel.setValue( m_zoomingXModel.findText( "100%" ) ); - m_zoomingXComboBox->setModel( zoom_x_model ); + m_zoomingXComboBox->setModel( &m_zoomingXModel ); - connect( m_zoomingXComboBox, SIGNAL( activated( const QString & ) ), - this, SLOT( zoomingXChanged( const QString & ) ) ); + connect( &m_zoomingXModel, SIGNAL( dataChanged() ), + this, SLOT( zoomingXChanged() ) ); QLabel * zoom_y_lbl = new QLabel( m_toolBar ); @@ -284,18 +287,17 @@ automationEditor::automationEditor( void ) : m_zoomingYComboBox = new comboBox( m_toolBar ); m_zoomingYComboBox->setFixedSize( 80, 22 ); - comboBoxModel * zoom_y_model = new comboBoxModel( /* this */ ); - zoom_y_model->addItem( "Auto" ); + m_zoomingYModel.addItem( "Auto" ); for( int i = 0; i < 6; ++i ) { - zoom_y_model->addItem( QString::number( 25 << i ) + "%" ); + m_zoomingYModel.addItem( QString::number( 25 << i ) + "%" ); } - zoom_y_model->setValue( zoom_y_model->findText( "Auto" ) ); + m_zoomingYModel.setValue( m_zoomingYModel.findText( "Auto" ) ); - m_zoomingYComboBox->setModel( zoom_y_model ); + m_zoomingYComboBox->setModel( &m_zoomingYModel ); - connect( m_zoomingYComboBox, SIGNAL( activated( const QString & ) ), - this, SLOT( zoomingYChanged( const QString & ) ) ); + connect( &m_zoomingYModel, SIGNAL( dataChanged() ), + this, SLOT( zoomingYChanged() ) ); // setup quantize-stuff @@ -1996,9 +1998,10 @@ void automationEditor::updatePosition( const midiTime & _t ) -void automationEditor::zoomingXChanged( const QString & _zfac ) +void automationEditor::zoomingXChanged( void ) { - m_ppt = _zfac.left( _zfac.length() - 1 ).toInt() * DEFAULT_PPT / 100; + const QString & zfac = m_zoomingXModel.currentText(); + m_ppt = zfac.left( zfac.length() - 1 ).toInt() * DEFAULT_PPT / 100; #ifdef LMMS_DEBUG assert( m_ppt > 0 ); #endif @@ -2009,12 +2012,13 @@ void automationEditor::zoomingXChanged( const QString & _zfac ) -void automationEditor::zoomingYChanged( const QString & _zfac ) +void automationEditor::zoomingYChanged( void ) { - m_y_auto = _zfac == "Auto"; + const QString & zfac = m_zoomingYModel.currentText(); + m_y_auto = zfac == "Auto"; if( !m_y_auto ) { - m_y_delta = _zfac.left( _zfac.length() - 1 ).toInt() + m_y_delta = zfac.left( zfac.length() - 1 ).toInt() * DEFAULT_Y_DELTA / 100; } #ifdef LMMS_DEBUG diff --git a/src/core/piano_roll.cpp b/src/core/piano_roll.cpp index 6aadf3eda..dcecf533e 100644 --- a/src/core/piano_roll.cpp +++ b/src/core/piano_roll.cpp @@ -48,6 +48,7 @@ #include +#include "automatable_model_templates.h" #include "clipboard.h" #include "combobox.h" #include "debug.h" diff --git a/src/core/song.cpp b/src/core/song.cpp index d9dff6d61..50ee94962 100644 --- a/src/core/song.cpp +++ b/src/core/song.cpp @@ -42,6 +42,8 @@ #include "automation_track.h" +#include "automatable_model_templates.h" +#include "automation_editor.h" #include "bb_editor.h" #include "bb_track.h" #include "config_mgr.h" diff --git a/src/core/track.cpp b/src/core/track.cpp index 515ffd3b6..4348e2d2f 100644 --- a/src/core/track.cpp +++ b/src/core/track.cpp @@ -37,7 +37,7 @@ #include -//#include "automation_pattern.h" +#include "automation_pattern.h" #include "automation_track.h" #include "bb_editor.h" #include "bb_track.h"