[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/work/kde4/extragear/multimedia/amarok/src
From:       Gábor Lehel <illissius () gmail ! com>
Date:       2006-06-01 1:22:39
Message-ID: 1149124959.025624.19420.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 547166 by illissius:

deadlocks minus minus. hooray!

 M  +15 -3     statusbar/statusBarBase.cpp  
 M  +4 -0      statusbar/statusBarBase.h  
 M  +1 -0      threadweaver.cpp  
 M  +1 -0      threadweaver.h  


--- branches/work/kde4/extragear/multimedia/amarok/src/statusbar/statusBarBase.cpp \
#547165:547166 @@ -354,7 +354,7 @@
 }
 
 ProgressBar&
-StatusBar::newProgressOperation( QObject *owner )
+StatusBar::newProgressOperationInternal( QObject *owner )
 {
     if ( m_progressMap.contains( owner ) )
         return *m_progressMap[owner];
@@ -369,8 +369,6 @@
     m_progressMap.insert( owner, new ProgressBar( m_popupProgress, label ) );
 
     m_popupProgress->reposition();
-    
-   connect( owner, SIGNAL(destroyed( QObject* )), SLOT(endProgressOperation( \
QObject* )), Qt::DirectConnection );  
     // so we can show the correct progress information
     // after the ProgressBar is setup
@@ -383,6 +381,20 @@
 }
 
 ProgressBar&
+StatusBar::newProgressOperation( QObject *owner )
+{
+    connect( owner, SIGNAL(destroyed( QObject* )), SLOT(endProgressOperation( \
QObject* )) ); +    return newProgressOperationInternal( owner );
+}
+
+ProgressBar&
+StatusBar::newProgressOperation( ThreadWeaver::Job *owner )
+{
+    connect( owner, SIGNAL(finished( QObject* )), SLOT(endProgressOperation( \
QObject* )) ); +    return newProgressOperationInternal( owner );
+}
+
+ProgressBar&
 StatusBar::newProgressOperation( KIO::Job *job )
 {
     ProgressBar & bar = newProgressOperation( static_cast<QObject*>( job ) );
--- branches/work/kde4/extragear/multimedia/amarok/src/statusbar/statusBarBase.h \
#547165:547166 @@ -22,6 +22,7 @@
 
 #include "progressBar.h" //convenience
 #include "amarok_export.h"
+#include "threadweaver.h"
 #include <qwidget.h>     //baseclass
 #include <qmap.h>        //stack allocated
 #include <q3valuelist.h>  //stack allocated
@@ -101,6 +102,8 @@
          */
         ProgressBar &newProgressOperation( QObject *owner );
 
+        ProgressBar &newProgressOperation( ThreadWeaver::Job *owner );
+
         /**
          * Monitor progress for a KIO::Job, very handy.
          */
@@ -212,6 +215,7 @@
         };
 
         void updateTotalProgress();
+        ProgressBar &newProgressOperationInternal( QObject *owner );
         bool allDone(); ///@return true if all progress operations are complete
         void pruneProgressBars(); /// deletes old progress bars
         void writeLogFile( const QString &text );
--- branches/work/kde4/extragear/multimedia/amarok/src/threadweaver.cpp \
#547165:547166 @@ -161,6 +161,7 @@
         else d << "aborted";
 
         m_jobs.remove( job );
+        emit job->finished( job );
 
         d << ": " << name;
         d << ". Jobs pending: " << jobCount( name );
--- branches/work/kde4/extragear/multimedia/amarok/src/threadweaver.h #547165:547166
@@ -85,6 +85,7 @@
 Q_OBJECT
 protected:    JobBase() : QObject(), m_aborted( false ) {}
 public slots: void abort() { m_aborted = true; }
+signals: void finished( QObject* );
 protected:    bool m_aborted;
 };
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic