traverso-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Traverso-commit] traverso/src/traverso/widgets ResourcesWidget.cpp


From: Remon Sijrier
Subject: [Traverso-commit] traverso/src/traverso/widgets ResourcesWidget.cpp
Date: Tue, 23 Oct 2007 19:53:43 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Remon Sijrier <r_sijrier>       07/10/23 19:53:43

Modified files:
        src/traverso/widgets: ResourcesWidget.cpp 

Log message:
        fix cpu hogging in some circumstances 

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/ResourcesWidget.cpp?cvsroot=traverso&r1=1.30&r2=1.31

Patches:
Index: ResourcesWidget.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/widgets/ResourcesWidget.cpp,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -b -r1.30 -r1.31
--- ResourcesWidget.cpp 11 Sep 2007 14:16:03 -0000      1.30
+++ ResourcesWidget.cpp 23 Oct 2007 19:53:43 -0000      1.31
@@ -200,6 +200,9 @@
        layout()->addWidget(m_filewidget);
        m_filewidget->hide();
        
+       m_currentSong = 0;
+       m_project = 0;
+       
        
        connect(viewComboBox, SIGNAL(currentIndexChanged(int)), this, 
SLOT(view_combo_box_index_changed(int)));
        connect(songComboBox, SIGNAL(currentIndexChanged(int)), this, 
SLOT(song_combo_box_index_changed(int)));
@@ -292,6 +295,10 @@
 
 void ResourcesWidget::set_current_song(Song * song)
 {
+       if (m_currentSong == song) {
+               return;
+       }
+       
        if (song) {
                int index = songComboBox->findData(song->get_id());
                if (index != -1) {
@@ -311,6 +318,10 @@
                return;
        }
        
+       // a lot of layouting could happen due apply_filter calls
+       // disable layouting to avoid cpu hogging!
+       setUpdatesEnabled(false);
+       
        foreach(ClipTreeItem* item, m_clipindices.values()) {
                item->apply_filter(m_currentSong);
        }
@@ -319,6 +330,8 @@
        foreach(SourceTreeItem* item, m_sourceindices.values()) {
                item->apply_filter(m_currentSong);
        }
+       
+       setUpdatesEnabled(true);
 }
 
 
@@ -418,10 +431,14 @@
 void ClipTreeItem::apply_filter(Song * song)
 {
        if (m_clip->get_song_id() == song->get_id()) {
+               if (isHidden()) {
                setHidden(false);
+               }
        } else {
+               if (!isHidden()) {
                setHidden(true);
        } 
+       } 
 }
 
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]