From: <ck...@us...> - 2008-10-01 19:20:53
|
Revision: 6099 http://krusader.svn.sourceforge.net/krusader/?rev=6099&view=rev Author: ckarai Date: 2008-10-01 19:20:37 +0000 (Wed, 01 Oct 2008) Log Message: ----------- QueueManager shows the percent values now Modified Paths: -------------- trunk/krusader_kde4/krusader/Queue/queue.cpp trunk/krusader_kde4/krusader/Queue/queue.h trunk/krusader_kde4/krusader/Queue/queue_mgr.cpp trunk/krusader_kde4/krusader/Queue/queue_mgr.h trunk/krusader_kde4/krusader/Queue/queuedialog.cpp trunk/krusader_kde4/krusader/Queue/queuedialog.h Modified: trunk/krusader_kde4/krusader/Queue/queue.cpp =================================================================== --- trunk/krusader_kde4/krusader/Queue/queue.cpp 2008-09-29 22:16:45 UTC (rev 6098) +++ trunk/krusader_kde4/krusader/Queue/queue.cpp 2008-10-01 19:20:37 UTC (rev 6099) @@ -5,7 +5,7 @@ #include <kmessagebox.h> #include <QTime> -Queue::Queue(const QString& name): _name(name), _suspended( false ) +Queue::Queue(const QString& name): _name(name), _suspended( false ), _percent( PERCENT_UNUSED ) { connect( &_scheduleTimer, SIGNAL( timeout() ), this, SLOT( resume() ) ); } @@ -26,9 +26,12 @@ _jobs.append(job); connect( job, SIGNAL( destroyed( QObject * ) ), this, SLOT( slotJobDestroyed( QObject * ) ) ); job->connectTo( SIGNAL( result( KJob* ) ), this, SLOT( slotResult( KJob* ) ) ); + job->connectTo( SIGNAL( percent( KJob*, unsigned long ) ), this, SLOT( slotPercent( KJob*, unsigned long ) ) ); - if( !_suspended && !isRunning ) + if( !_suspended && !isRunning ) { job->start(); + slotPercent( 0, PERCENT_UNKNOWN ); + } emit changed(); emit showQueueDialog(); @@ -47,8 +50,11 @@ if( _jobs.count() > 0 && _jobs[ 0 ] == jw ) current = true; _jobs.removeAll( jw ); - if( !_suspended && current && _jobs.count() > 0 ) + slotPercent( 0, PERCENT_UNUSED ); + if( !_suspended && current && _jobs.count() > 0 ) { _jobs[ 0 ]->start(); + slotPercent( 0, PERCENT_UNKNOWN ); + } emit changed(); } @@ -58,6 +64,7 @@ KIOJobWrapper * jw = _jobs[ 0 ]; KIO::Job * kjob = jw->job(); if( kjob && kjob == job ) { + slotPercent( 0, PERCENT_UNUSED ); _jobs.removeAll( jw ); if( job->error() && _jobs.count() > 0 ) { // what to do with the other elements in the queue @@ -90,8 +97,10 @@ emit changed(); if( !_suspended ) { - if( _jobs.count() > 0 ) + if( _jobs.count() > 0 ) { _jobs[ 0 ]->start(); + slotPercent( 0, PERCENT_UNKNOWN ); + } else emit emptied(); } @@ -130,8 +139,10 @@ if( _jobs.count() > 0 ) { if( _jobs[ 0 ]->isSuspended() ) _jobs[ 0 ]->resume(); - else if( !_jobs[ 0 ]->isStarted() ) + else if( !_jobs[ 0 ]->isStarted() ) { _jobs[ 0 ]->start(); + slotPercent( 0, PERCENT_UNKNOWN ); + } } emit stateChanged(); @@ -167,4 +178,10 @@ return _scheduleTime; else return QTime(); -} \ No newline at end of file +} + +void Queue::slotPercent( KJob *, unsigned long percent_ ) +{ + _percent = percent_; + emit percent( this, percent_ ); +} Modified: trunk/krusader_kde4/krusader/Queue/queue.h =================================================================== --- trunk/krusader_kde4/krusader/Queue/queue.h 2008-09-29 22:16:45 UTC (rev 6098) +++ trunk/krusader_kde4/krusader/Queue/queue.h 2008-10-01 19:20:37 UTC (rev 6099) @@ -9,6 +9,9 @@ class KJob; +#define PERCENT_UNUSED -2 +#define PERCENT_UNKNOWN -1 + /** * Queue can hold anything which inherits KIO::Job, and schedule it, start it, stop etc... * the main reason to hold the Job itself (at least for phase 1) is to keep the code @@ -28,6 +31,7 @@ int count() { return _jobs.size(); } bool isSuspended() { return _suspended; } QTime scheduleTime(); + int getPercent() { return _percent; } QList<QString> itemDescriptions(); QList<KIOJobWrapper *> items(); @@ -40,6 +44,7 @@ protected slots: void slotJobDestroyed( QObject * ); void slotResult( KJob * ); + void slotPercent( KJob *, unsigned long percent ); protected: void dumpQueue(); @@ -49,12 +54,14 @@ bool _suspended; QTimer _scheduleTimer; QTime _scheduleTime; + int _percent; signals: void showQueueDialog(); void changed(); void emptied(); void stateChanged(); + void percent( Queue *, int value ); }; #endif // QUEUE_H Modified: trunk/krusader_kde4/krusader/Queue/queue_mgr.cpp =================================================================== --- trunk/krusader_kde4/krusader/Queue/queue_mgr.cpp 2008-09-29 22:16:45 UTC (rev 6098) +++ trunk/krusader_kde4/krusader/Queue/queue_mgr.cpp 2008-10-01 19:20:37 UTC (rev 6099) @@ -74,6 +74,7 @@ Queue *queue = new Queue(queueName); connect( queue, SIGNAL( showQueueDialog() ), _self, SLOT( slotShowQueueDialog() ) ); connect( queue, SIGNAL( emptied() ), _self, SLOT( slotQueueEmptied() ) ); + connect( queue, SIGNAL( percent( Queue *, int ) ), _self, SIGNAL( percent( Queue *, int ) ) ); _queues.insert(queue->name(), queue); _current = queue; Modified: trunk/krusader_kde4/krusader/Queue/queue_mgr.h =================================================================== --- trunk/krusader_kde4/krusader/Queue/queue_mgr.h 2008-09-29 22:16:45 UTC (rev 6098) +++ trunk/krusader_kde4/krusader/Queue/queue_mgr.h 2008-10-01 19:20:37 UTC (rev 6099) @@ -37,6 +37,7 @@ void queueInserted( Queue * ); void queueDeleted( Queue * ); void currentChanged( Queue * ); + void percent( Queue *, int ); protected: static QMap<QString, Queue*> _queues; Modified: trunk/krusader_kde4/krusader/Queue/queuedialog.cpp =================================================================== --- trunk/krusader_kde4/krusader/Queue/queuedialog.cpp 2008-09-29 22:16:45 UTC (rev 6098) +++ trunk/krusader_kde4/krusader/Queue/queuedialog.cpp 2008-10-01 19:20:37 UTC (rev 6099) @@ -238,6 +238,7 @@ slotUpdateToolbar(); connect( QueueManager::instance(), SIGNAL( queueInserted( Queue * ) ), this, SLOT( slotUpdateToolbar() ) ); + connect( QueueManager::instance(), SIGNAL( percent( Queue *, int ) ), this, SLOT( slotPercentChanged( Queue *, int ) ) ); show(); @@ -348,6 +349,8 @@ } _closeTabButton->setEnabled( _queueWidget->count() > 1 ); + + slotPercentChanged( currentQueue, currentQueue->getPercent() ); } } @@ -406,3 +409,31 @@ QueueManager::removeQueue( currentQueue ); } } + +void QueueDialog::slotPercentChanged( Queue * queue, int percent ) +{ + if( QueueManager::currentQueue() == queue ) + { + switch( percent ) + { + case PERCENT_UNUSED: + _progressBar->setMaximum( 100 ); + _progressBar->setValue( 0 ); + _progressBar->setFormat( i18n( "unused" ) ); + break; + case PERCENT_UNKNOWN: + if( _progressBar->maximum() != 0 ) + { + _progressBar->setMaximum( 0 ); + _progressBar->setFormat( "" ); + } + break; + default: + if( _progressBar->maximum() != 100 ) + _progressBar->setMaximum( 100 ); + _progressBar->setValue( percent ); + _progressBar->setFormat( "%p%" ); + break; + } + } +} \ No newline at end of file Modified: trunk/krusader_kde4/krusader/Queue/queuedialog.h =================================================================== --- trunk/krusader_kde4/krusader/Queue/queuedialog.h 2008-09-29 22:16:45 UTC (rev 6098) +++ trunk/krusader_kde4/krusader/Queue/queuedialog.h 2008-10-01 19:20:37 UTC (rev 6099) @@ -38,6 +38,7 @@ class QueueWidget; class QLabel; class QProgressBar; +class Queue; class QueueDialog : public QDialog { @@ -62,6 +63,7 @@ void slotScheduleClicked(); void slotNewTab(); void slotDeleteCurrentTab(); + void slotPercentChanged( Queue *, int ); protected: virtual void paintEvent ( QPaintEvent * event ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |