Show
Ignore:
Timestamp:
09/29/08 05:36:34 (5 years ago)
Author:
gabriel
Message:

Merge rev 505:528 from trunk

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/jackMidi/gui/src/PlaylistEditor/PlaylistDialog.cpp

    r538 r539  
    2424#include "PlaylistDialog.h" 
    2525#include "../HydrogenApp.h" 
     26#include "../InstrumentRack.h" 
     27#include "SoundLibrary/SoundLibraryPanel.h" 
    2628 
    2729#include <hydrogen/LocalFileMng.h> 
     
    171173                QTreeWidget* m_pPlaylist = m_pPlaylistTree; 
    172174                QTreeWidgetItem* m_pPlaylistItem = m_pPlaylist->topLevelItem ( aselected ); 
    173                 m_pPlaylist->setCurrentItem ( m_pPlaylistItem ); 
    174                 } 
    175  
    176         QTimer *timer = new QTimer( this ); 
     175                m_pPlaylistItem->setBackgroundColor ( 0, QColor( 50, 50, 50) ); 
     176                m_pPlaylistItem->setBackgroundColor ( 1, QColor( 50, 50, 50) ); 
     177                m_pPlaylistItem->setBackgroundColor ( 2, QColor( 50, 50, 50) ); 
     178                } 
     179 
     180        timer = new QTimer( this ); 
    177181        connect(timer, SIGNAL(timeout() ), this, SLOT( updateActiveSongNumber() ) ); 
    178182        timer->start( 1000 );   // update player control at 1 fps 
     
    213217        QTreeWidget* m_pPlaylist = m_pPlaylistTree; 
    214218        QTreeWidgetItem* m_pPlaylistItem = m_pPlaylistTree->currentItem(); 
     219        int index = m_pPlaylist->indexOfTopLevelItem ( m_pPlaylistItem ); 
    215220        QTreeWidgetItem * m_pItem = m_pPlaylist->topLevelItem ( 1 ); 
    216221 
     
    238243                        delete m_pPlaylistItem; 
    239244                        updatePlayListVector(); 
     245                        if (  Playlist::get_instance()->getActiveSongNumber() == index ){ 
     246                                Playlist::get_instance()->setActiveSongNumber( -1 ); 
     247                        }else if (  Playlist::get_instance()->getActiveSongNumber() > index  ){ 
     248                                Playlist::get_instance()->setActiveSongNumber(  Playlist::get_instance()->getActiveSongNumber() -1 ); 
     249                        } 
     250                         
    240251                } 
    241252        } 
     
    332343                        m_pPlaylist->setCurrentItem ( m_pPlaylistItem ); 
    333344                        Playlist::get_instance()->setSelectedSongNr( 0 ); 
    334 //                      Playlist::get_instance()->setNextSongByNumber( 0 ); 
    335345                } 
    336346 
     
    557567void PlaylistDialog::o_upBClicked() 
    558568{        
     569        timer->stop(); 
    559570 
    560571        Playlist* pList = Playlist::get_instance(); 
     
    564575        int index = m_pPlaylist->indexOfTopLevelItem ( m_pPlaylistItem ); 
    565576 
    566         if (index == 0 ) return; 
     577        if (index == 0 ){ 
     578                timer->start( 1000 );  
     579                return; 
     580        } 
    567581 
    568582        QTreeWidgetItem* tmpPlaylistItem = m_pPlaylist->takeTopLevelItem ( index ); 
     
    571585        m_pPlaylist->setCurrentItem ( tmpPlaylistItem );  
    572586 
    573         if ( pList->getSelectedSongNr() > 0 ) 
     587        if ( pList->getSelectedSongNr() >= 0 ) 
    574588                pList->setSelectedSongNr( pList->getSelectedSongNr() -1 ); 
    575         if ( pList->getActiveSongNumber() > 0 ) 
     589 
     590        if ( pList->getActiveSongNumber() == index ){ 
    576591                pList->setActiveSongNumber( pList->getActiveSongNumber() -1 ); 
     592        }else if ( pList->getActiveSongNumber() == index -1 ){ 
     593                pList->setActiveSongNumber( pList->getActiveSongNumber() +1 ); 
     594        } 
    577595 
    578596        updatePlayListVector(); 
     
    583601void PlaylistDialog::o_downBClicked() 
    584602{ 
    585  
     603        timer->stop(); 
    586604        Playlist* pList = Playlist::get_instance(); 
    587605 
     
    591609        int index = m_pPlaylist->indexOfTopLevelItem ( m_pPlaylistItem ); 
    592610 
    593         if ( index == length - 1)  
    594                         return; 
     611        if ( index == length - 1){ 
     612                timer->start( 1000 ); 
     613                return; 
     614        } 
    595615 
    596616 
     
    600620        m_pPlaylist->setCurrentItem ( tmpPlaylistItem );  
    601621 
    602         if ( pList->getSelectedSongNr() > 0 ) 
     622        if ( pList->getSelectedSongNr() >= 0 ) 
    603623                pList->setSelectedSongNr( pList->getSelectedSongNr() +1 ); 
    604         if (pList ->getActiveSongNumber() > 0 ) 
     624 
     625        if (pList ->getActiveSongNumber() == index ){ 
    605626                pList->setActiveSongNumber( pList->getActiveSongNumber() +1 ); 
    606  
     627        }else if ( pList->getActiveSongNumber() == index +1 ){ 
     628                pList->setActiveSongNumber( pList->getActiveSongNumber() -1 ); 
     629        } 
    607630        updatePlayListVector(); 
    608631 
     
    703726 
    704727        pH2App->setStatusBarMessage( trUtf8( "Playlist: Set song No. %1" ).arg( index +1 ), 5000 ); 
     728 
     729        HydrogenApp::getInstance()->getInstrumentRack()->getSoundLibraryPanel()->update_background_color(); 
    705730 
    706731///exec script 
     
    762787                Hydrogen::get_instance()->m_PlayList.push_back( playListItem ); 
    763788        } 
     789        timer->start( 1000 ); 
    764790} 
    765791 
    766792 
    767793void PlaylistDialog::updateActiveSongNumber() 
    768 {                        
     794{ 
     795        QTreeWidget* m_pPlaylist = m_pPlaylistTree; 
     796 
     797        for ( uint i = 0; i < Hydrogen::get_instance()->m_PlayList.size(); ++i ){ 
     798                if ( !m_pPlaylist->topLevelItem( i ) ) 
     799                        break; 
     800                ( m_pPlaylist->topLevelItem( i ) )->setBackground( 0, QBrush() ); 
     801                ( m_pPlaylist->topLevelItem( i ) )->setBackground( 1, QBrush() ); 
     802                ( m_pPlaylist->topLevelItem( i ) )->setBackground( 2, QBrush() ); 
     803                 
     804        } 
     805                 
    769806        int selected = Playlist::get_instance()->getActiveSongNumber(); 
    770807        if ( selected == -1 )  
    771808                return; 
    772809         
    773         QTreeWidget* m_pPlaylist = m_pPlaylistTree; 
    774810        QTreeWidgetItem* m_pPlaylistItem = m_pPlaylist->topLevelItem ( selected );       
    775         m_pPlaylist->setCurrentItem ( m_pPlaylistItem ); 
     811        //m_pPlaylist->setCurrentItem ( m_pPlaylistItem ); 
     812        m_pPlaylistItem->setBackgroundColor ( 0, QColor( 50, 50, 50) ); 
     813        m_pPlaylistItem->setBackgroundColor ( 1, QColor( 50, 50, 50) ); 
     814        m_pPlaylistItem->setBackgroundColor ( 2, QColor( 50, 50, 50) ); 
    776815} 
    777816