diff --git a/ChangeLog b/ChangeLog index 75146a849..46531576b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,65 @@ +2008-09-18 Tobias Doerffel + + * include/instrument_track.h: + * include/track.h: + * include/track_label_button.h: + * src/core/bb_track_container.cpp: + * src/core/track.cpp: + * src/gui/widgets/track_label_button.cpp: + * src/tracks/automation_track.cpp: + * src/tracks/bb_track.cpp: + * src/tracks/instrument_track.cpp: + * src/tracks/sample_track.cpp: + - when used on instrumentTrack, also show instrument name on + trackLabelButton + - removed obsolete support for choosing custom track icons + + * src/core/mixer.cpp: + when just rendering at console, use DEFAULT_BUFFER_SIZE + + * data/track_icons/harp02.png: + * data/track_icons/harp03.png: + * data/track_icons/cello01.png: + * data/track_icons/guitar_electric01.png: + * data/track_icons/piano01.png: + * data/track_icons/guitar_electric02.png: + * data/track_icons/maracas01.png: + * data/track_icons/guitar_electric03.png: + * data/track_icons/guitar_electric04.png: + * data/track_icons/connectors01.png: + * data/track_icons/drumset01_.png: + * data/track_icons/trombone01.png: + * data/track_icons/CMakeLists.txt: + * data/track_icons/african_drum01.png: + * data/track_icons/french_horn01.png: + * data/track_icons/african_drum02.png: + * data/track_icons/mouth01.png: + * data/track_icons/african_drum03.png: + * data/track_icons/african_drum04.png: + * data/track_icons/african_drum05.png: + * data/track_icons/gramophone01.png: + * data/track_icons/trumpet01.png: + * data/track_icons/violin01.png: + * data/track_icons/trumpet02.png: + * data/track_icons/violin02.png: + * data/track_icons/trumpet03.png: + * data/track_icons/microphone01.png: + * data/track_icons/guitar_bass01.png: + * data/track_icons/trumpet04.png: + * data/track_icons/microphone02.png: + * data/track_icons/microphone03.png: + * data/track_icons/microphone04.png: + * data/track_icons/flute01.png: + * data/track_icons/oboe01.png: + * data/track_icons/xylophone01.png: + * data/track_icons/guitar_accoustic01.png: + * data/track_icons/guitar_accoustic02.png: + * data/track_icons/speaker01.png: + * data/track_icons/harp01.png: + * data/track_icons/guitar_accoustic03.png: + * data/CMakeLists.txt: + finally removed obsolete track icons + 2008-09-17 Tobias Doerffel * plugins/sf2_player/sf2_player.cpp: diff --git a/include/instrument_track.h b/include/instrument_track.h index 4b2a31e8a..2ec54bae7 100644 --- a/include/instrument_track.h +++ b/include/instrument_track.h @@ -102,6 +102,11 @@ public: // name-stuff virtual void setName( const QString & _new_name ); + inline virtual QString displayName( void ) const + { + return instrumentName() + ":" + track::displayName(); + } + // translate given key of a note-event to absolute key (i.e. // add global master-pitch and base-note of this instrument track) int masterKey( int _midi_key ) const; @@ -159,8 +164,6 @@ public: return( m_arpeggiator.m_arpEnabledModel.value() ); } - virtual QString displayName( void ) const; - // simple helper for removing midiport-XML-node when loading presets static void removeMidiPortNode( multimediaProject & _mmp ); diff --git a/include/track.h b/include/track.h index bea4172e0..72e1bcb93 100644 --- a/include/track.h +++ b/include/track.h @@ -43,7 +43,6 @@ class QPushButton; class bbTrack; class pixmapButton; -class pixmapLoader; class textFloat; class track; class trackContentObjectView; @@ -426,11 +425,6 @@ public: return( name() ); } - inline const pixmapLoader * icon( void ) const - { - return( m_pixmapLoader ); - } - using model::dataChanged; @@ -448,7 +442,6 @@ private: trackContainer * m_trackContainer; TrackTypes m_type; QString m_name; - pixmapLoader * m_pixmapLoader; boolModel m_mutedModel; boolModel m_soloModel; diff --git a/include/track_label_button.h b/include/track_label_button.h index 8fcd7837d..bc6e7a9cc 100644 --- a/include/track_label_button.h +++ b/include/track_label_button.h @@ -39,27 +39,9 @@ public: trackLabelButton( trackView * _tv, QWidget * _parent ); virtual ~trackLabelButton(); - const QPixmap & pixmap( void ) const - { - return( m_pixmap ); - } - - const QString & pixmapFile( void ) const - { - return( m_pixmapFile ); - } - public slots: - void setPixmap( const QPixmap & _pixmap ); - void setPixmapFile( const QString & _file ); - void selectPixmap( void ); void rename( void ); - void updateName( void ); - - -signals: - void pixmapChanged( void ); protected: @@ -67,12 +49,11 @@ protected: virtual void dropEvent( QDropEvent * _de ); virtual void mousePressEvent( QMouseEvent * _me ); virtual void mouseDoubleClickEvent( QMouseEvent * _me ); + virtual void paintEvent( QPaintEvent * _pe ); private: trackView * m_trackView; - QPixmap m_pixmap; - QString m_pixmapFile; } ; diff --git a/src/core/bb_track_container.cpp b/src/core/bb_track_container.cpp index e20869424..110b0f656 100644 --- a/src/core/bb_track_container.cpp +++ b/src/core/bb_track_container.cpp @@ -221,8 +221,7 @@ void bbTrackContainer::updateComboBox( void ) for( int i = 0; i < numOfBBs(); ++i ) { bbTrack * bbt = bbTrack::findBBTrack( i ); - m_bbComboBoxModel.addItem( bbt->name(), - new pixmapLoader( bbt->icon() ) ); + m_bbComboBoxModel.addItem( bbt->name() ); } setCurrentBB( cur_bb ); } diff --git a/src/core/track.cpp b/src/core/track.cpp index 7e36a7c5f..064fff713 100644 --- a/src/core/track.cpp +++ b/src/core/track.cpp @@ -1544,7 +1544,6 @@ track::track( TrackTypes _type, trackContainer * _tc ) : m_trackContainer( _tc ), /*!< The track container object */ m_type( _type ), /*!< The track type */ m_name(), /*!< The track's name */ - m_pixmapLoader( NULL ), /*!< For loading the track's pixmaps */ m_mutedModel( FALSE, this, tr( "Muted" ) ), /*!< For controlling track muting */ m_soloModel( FALSE, this, tr( "Solo" ) ), diff --git a/src/gui/widgets/track_label_button.cpp b/src/gui/widgets/track_label_button.cpp index 5ee38f7f9..f88391c58 100644 --- a/src/gui/widgets/track_label_button.cpp +++ b/src/gui/widgets/track_label_button.cpp @@ -46,19 +46,17 @@ trackLabelButton::trackLabelButton( trackView * _tv, QWidget * _parent ) : QToolButton( _parent ), - m_trackView( _tv ), - m_pixmap(), - m_pixmapFile( "" ) + m_trackView( _tv ) { setAcceptDrops( TRUE ); setCursor( QCursor( embed::getIconPixmap( "hand" ), 0, 0 ) ); setToolButtonStyle( Qt::ToolButtonTextBesideIcon ); setFixedSize( 160, 29 ); setIconSize( QSize( 32, 32 ) ); - updateName(); + setText( " " ); connect( m_trackView->getTrack(), SIGNAL( dataChanged() ), - this, SLOT( updateName() ) ); + this, SLOT( update() ) ); } @@ -71,89 +69,6 @@ trackLabelButton::~trackLabelButton() -void trackLabelButton::setPixmap( const QPixmap & _pixmap ) -{ - m_pixmap = _pixmap; - setIcon( m_pixmap ); -} - - - - -void trackLabelButton::setPixmapFile( const QString & _file ) -{ - QPixmap new_pixmap; - if( QFileInfo( _file ).isRelative() ) - { - new_pixmap = QPixmap( configManager::inst()->trackIconsDir() + - _file ); - } - else - { - new_pixmap = QPixmap( _file ); - } - if( new_pixmap.isNull() ) - { - return; - } - setPixmap( new_pixmap ); - m_pixmapFile = _file; - emit( pixmapChanged() ); - update(); -} - - - - -void trackLabelButton::selectPixmap( void ) -{ - QFileDialog ofd( NULL, tr( "Select icon" ) ); - - QString dir; - if( m_pixmapFile != "" ) - { - QString f = m_pixmapFile; - if( QFileInfo( f ).isRelative() ) - { - f = configManager::inst()->trackIconsDir() + f; - } - dir = QFileInfo( f ).absolutePath(); - } - else - { - dir = configManager::inst()->trackIconsDir(); - } - // change dir to position of previously opened file - ofd.setDirectory( dir ); - // use default QFileDialog::ExistingFile - - // set filters - QStringList types; - types << tr( "All images (*.png *.jpg *.jpeg *.gif *.bmp)" ); - ofd.setFilters( types ); - if( m_pixmapFile != "" ) - { - // select previously opened file - ofd.selectFile( QFileInfo( m_pixmapFile ).fileName() ); - } - - if ( ofd.exec () == QDialog::Accepted - && !ofd.selectedFiles().isEmpty() - ) - { - QString pf = ofd.selectedFiles()[0]; - if( !QFileInfo( pf ).isRelative() ) - { - pf = pf.replace( configManager::inst()->trackIconsDir(), - "" ); - } - setPixmapFile( pf ); - } -} - - - - void trackLabelButton::rename( void ) { QString txt = m_trackView->getTrack()->name(); @@ -162,56 +77,6 @@ void trackLabelButton::rename( void ) if( txt != text() ) { m_trackView->getTrack()->setName( txt ); - updateName(); - } -} - - - - -void trackLabelButton::updateName( void ) -{ - setText( m_trackView->getTrack()->name() ); -} - - - - -void trackLabelButton::mousePressEvent( QMouseEvent * _me ) -{ - if( _me->button() == Qt::RightButton ) - { - QSize s( m_pixmap.width(), m_pixmap.height() ); - s.scale( width(), height(), Qt::KeepAspectRatio ); - if( _me->x() > 4 + s.width() ) - { - rename(); - } - else - { - selectPixmap(); - } - } - else - { - QToolButton::mousePressEvent( _me ); - } -} - - - - -void trackLabelButton::mouseDoubleClickEvent( QMouseEvent * _me ) -{ - QSize s( m_pixmap.width(), m_pixmap.height() ); - s.scale( width(), height(), Qt::KeepAspectRatio ); - if( _me->x() > 4 + s.width() ) - { - rename(); - } - else - { - selectPixmap(); } } @@ -234,6 +99,58 @@ void trackLabelButton::dropEvent( QDropEvent * _de ) + +void trackLabelButton::mousePressEvent( QMouseEvent * _me ) +{ + if( _me->button() == Qt::RightButton ) + { + rename(); + } + else + { + QToolButton::mousePressEvent( _me ); + } +} + + + + +void trackLabelButton::mouseDoubleClickEvent( QMouseEvent * _me ) +{ + rename(); +} + + + + +void trackLabelButton::paintEvent( QPaintEvent * _pe ) +{ + if( m_trackView->getTrack()->type() == track::InstrumentTrack ) + { + QToolButton::paintEvent( _pe ); + QPainter p( this ); + const QString dn = m_trackView->getTrack()->displayName(); + const QString in = dn.split( ':' )[0]; + const QString tn = dn.split( ':' )[1]; + const int extra = ( isDown() || isChecked() ) ? -2 : -3; + const int is = 40; + p.setPen( QApplication::palette().buttonText().color(). + darker( 130 ) ); + p.drawText( is + extra, height() / 2 + extra, in ); + p.setPen( QApplication::palette().buttonText().color() ); + p.drawText( is + extra, height() / 2 + + QFontMetrics( p.font() ).height() + extra - 2, + tn ); + } + else + { + setText( m_trackView->getTrack()->displayName() ); + QToolButton::paintEvent( _pe ); + } +} + + + #include "moc_track_label_button.cxx" diff --git a/src/tracks/automation_track.cpp b/src/tracks/automation_track.cpp index 111de4699..f734751b0 100644 --- a/src/tracks/automation_track.cpp +++ b/src/tracks/automation_track.cpp @@ -137,7 +137,7 @@ automationTrackView::automationTrackView( automationTrack * _at, setFixedHeight( 32 ); trackLabelButton * tlb = new trackLabelButton( this, getTrackSettingsWidget() ); - tlb->setPixmap( embed::getIconPixmap( "automation_track" ) ); + tlb->setIcon( embed::getIconPixmap( "automation_track" ) ); tlb->move( 3, 1 ); tlb->show(); setModel( _at ); diff --git a/src/tracks/bb_track.cpp b/src/tracks/bb_track.cpp index 7a1be0dae..91458f381 100644 --- a/src/tracks/bb_track.cpp +++ b/src/tracks/bb_track.cpp @@ -549,13 +549,11 @@ bbTrackView::bbTrackView( bbTrack * _bbt, trackContainerView * _tcv ) : setAcceptDrops( FALSE ); m_trackLabel = new trackLabelButton( this, getTrackSettingsWidget() ); - m_trackLabel->setPixmap( embed::getIconPixmap( "bb_track" ) ); + m_trackLabel->setIcon( embed::getIconPixmap( "bb_track" ) ); m_trackLabel->move( 3, 1 ); m_trackLabel->show(); connect( m_trackLabel, SIGNAL( clicked( bool ) ), this, SLOT( clickedTrackLabel() ) ); - connect( m_trackLabel, SIGNAL( pixmapChanged() ), - engine::getBBTrackContainer(), SLOT( updateComboBox() ) ); setModel( _bbt ); } diff --git a/src/tracks/instrument_track.cpp b/src/tracks/instrument_track.cpp index 97e4ba15b..0db187ab9 100644 --- a/src/tracks/instrument_track.cpp +++ b/src/tracks/instrument_track.cpp @@ -501,14 +501,6 @@ int instrumentTrack::masterKey( int _midi_key ) const -QString instrumentTrack::displayName( void ) const -{ - return instrumentName() + ":" + name(); -} - - - - void instrumentTrack::removeMidiPortNode( multimediaProject & _mmp ) { QDomNodeList n = _mmp.elementsByTagName( "midiport" ); @@ -845,7 +837,7 @@ instrumentTrackView::instrumentTrackView( instrumentTrack * _it, m_tlb = new trackLabelButton( this, getTrackSettingsWidget() ); m_tlb->setCheckable( TRUE ); - m_tlb->setPixmap( embed::getIconPixmap( "instrument_track" ) ); + m_tlb->setIcon( embed::getIconPixmap( "instrument_track" ) ); m_tlb->move( 3, 1 ); m_tlb->show(); @@ -853,7 +845,7 @@ instrumentTrackView::instrumentTrackView( instrumentTrack * _it, this, SLOT( toggleInstrumentWindow( bool ) ) ); connect( _it, SIGNAL( nameChanged() ), - m_tlb, SLOT( updateName() ) ); + m_tlb, SLOT( update() ) ); // creation of widgets for track-settings-widget m_volumeKnob = new knob( knobSmall_17, getTrackSettingsWidget(), diff --git a/src/tracks/sample_track.cpp b/src/tracks/sample_track.cpp index 372d9cf20..d4304ae26 100644 --- a/src/tracks/sample_track.cpp +++ b/src/tracks/sample_track.cpp @@ -497,12 +497,6 @@ void sampleTrack::loadTrackSpecificSettings( const QDomElement & _this ) } node = node.nextSibling(); } -#if 0 - if( _this.attribute( "icon" ) != "" ) - { - tlb->setPixmapFile( _this.attribute( "icon" ) ); - } -#endif m_volumeModel.loadSettings( _this, "vol" ); } @@ -520,7 +514,7 @@ sampleTrackView::sampleTrackView( sampleTrack * _t, trackContainerView * _tcv ) getTrackSettingsWidget() ); connect( tlb, SIGNAL( clicked( bool ) ), this, SLOT( showEffects() ) ); - tlb->setPixmap( embed::getIconPixmap( "sample_track" ) ); + tlb->setIcon( embed::getIconPixmap( "sample_track" ) ); tlb->move( 3, 1 ); tlb->show();