diff options
Diffstat (limited to 'libkdepim/broadcaststatus.cpp')
-rw-r--r-- | libkdepim/broadcaststatus.cpp | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/libkdepim/broadcaststatus.cpp b/libkdepim/broadcaststatus.cpp new file mode 100644 index 000000000..5d0af0d13 --- /dev/null +++ b/libkdepim/broadcaststatus.cpp @@ -0,0 +1,165 @@ +/* + broadcaststatus.cpp + + This file is part of KDEPIM. + + Author: Don Sanders <[email protected]> + + Copyright (C) 2000 Don Sanders <[email protected]> + + License GPL +*/ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <qdatetime.h> + +#include <klocale.h> +#include <kglobal.h> +#include <kstaticdeleter.h> + +#include "broadcaststatus.h" +#include "progressmanager.h" + +KPIM::BroadcastStatus* KPIM::BroadcastStatus::instance_ = 0; +static KStaticDeleter<KPIM::BroadcastStatus> broadcastStatusDeleter; + +namespace KPIM { + +BroadcastStatus* BroadcastStatus::instance() +{ + if (!instance_) + broadcastStatusDeleter.setObject( instance_, new BroadcastStatus() ); + + return instance_; +} + +BroadcastStatus::BroadcastStatus() + :mTransientActive( false ) +{ +} + +BroadcastStatus::~BroadcastStatus() +{ + instance_ = 0; +} + +void BroadcastStatus::setStatusMsg( const QString& message ) +{ + mStatusMsg = message; + if( !mTransientActive ) + emit statusMsg( message ); +} + +void BroadcastStatus::setStatusMsgWithTimestamp( const QString& message ) +{ + KLocale* locale = KGlobal::locale(); + setStatusMsg( i18n( "%1 is a time, %2 is a status message", "[%1] %2" ) + .arg( locale->formatTime( QTime::currentTime(), + true /* with seconds */ ) ) + .arg( message ) ); +} + +void BroadcastStatus::setStatusMsgTransmissionCompleted( int numMessages, + int numBytes, + int numBytesRead, + int numBytesToRead, + bool mLeaveOnServer, + KPIM::ProgressItem* item ) +{ + QString statusMsg; + if( numMessages > 0 ) { + if( numBytes != -1 ) { + if( ( numBytesToRead != numBytes ) && mLeaveOnServer ) + statusMsg = i18n( "Transmission complete. %n new message in %1 KB " + "(%2 KB remaining on the server).", + "Transmission complete. %n new messages in %1 KB " + "(%2 KB remaining on the server).", + numMessages ) + .arg( numBytesRead / 1024 ) + .arg( numBytes / 1024 ); + else + statusMsg = i18n( "Transmission complete. %n message in %1 KB.", + "Transmission complete. %n messages in %1 KB.", + numMessages ) + .arg( numBytesRead / 1024 ); + } + else + statusMsg = i18n( "Transmission complete. %n new message.", + "Transmission complete. %n new messages.", + numMessages ); + } + else + statusMsg = i18n( "Transmission complete. No new messages." ); + + setStatusMsgWithTimestamp( statusMsg ); + if ( item ) + item->setStatus( statusMsg ); +} + +void BroadcastStatus::setStatusMsgTransmissionCompleted( const QString& account, + int numMessages, + int numBytes, + int numBytesRead, + int numBytesToRead, + bool mLeaveOnServer, + KPIM::ProgressItem* item ) +{ + QString statusMsg; + if( numMessages > 0 ) { + if( numBytes != -1 ) { + if( ( numBytesToRead != numBytes ) && mLeaveOnServer ) + statusMsg = i18n( "Transmission for account %3 complete. " + "%n new message in %1 KB " + "(%2 KB remaining on the server).", + "Transmission for account %3 complete. " + "%n new messages in %1 KB " + "(%2 KB remaining on the server).", + numMessages ) + .arg( numBytesRead / 1024 ) + .arg( numBytes / 1024 ) + .arg( account ); + else + statusMsg = i18n( "Transmission for account %2 complete. " + "%n message in %1 KB.", + "Transmission for account %2 complete. " + "%n messages in %1 KB.", + numMessages ) + .arg( numBytesRead / 1024 ) + .arg( account ); + } + else + statusMsg = i18n( "Transmission for account %1 complete. " + "%n new message.", + "Transmission for account %1 complete. " + "%n new messages.", + numMessages ) + .arg( account ); + } + else + statusMsg = i18n( "Transmission for account %1 complete. No new messages.") + .arg( account ); + + setStatusMsgWithTimestamp( statusMsg ); + if ( item ) + item->setStatus( statusMsg ); +} + +void BroadcastStatus::setTransientStatusMsg( const QString& msg ) +{ + mTransientActive = true; + emit statusMsg( msg ); +} + +void BroadcastStatus::reset() +{ + mTransientActive = false; + // restore + emit statusMsg( mStatusMsg ); +} + +} + +#include "broadcaststatus.moc" |