00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
#ifdef HAVE_CONFIG_H
00014
#include <config.h>
00015
#endif
00016
00017
#include <qdatetime.h>
00018
00019
#include <klocale.h>
00020
#include <kglobal.h>
00021
#include <kstaticdeleter.h>
00022
00023
#include "broadcaststatus.h"
00024
#include "progressmanager.h"
00025
00026
KPIM::BroadcastStatus* KPIM::BroadcastStatus::instance_ = 0;
00027
static KStaticDeleter<KPIM::BroadcastStatus> broadcastStatusDeleter;
00028
00029
namespace KPIM {
00030
00031 BroadcastStatus* BroadcastStatus::instance()
00032 {
00033
if (!instance_)
00034 broadcastStatusDeleter.setObject( instance_,
new BroadcastStatus() );
00035
00036
return instance_;
00037 }
00038
00039 BroadcastStatus::BroadcastStatus()
00040 :mTransientActive( false )
00041 {
00042 }
00043
00044 BroadcastStatus::~BroadcastStatus()
00045 {
00046 instance_ = 0;
00047 }
00048
00049 void BroadcastStatus::setStatusMsg(
const QString& message )
00050 {
00051 mStatusMsg = message;
00052
if( !mTransientActive )
00053 emit
statusMsg( message );
00054 }
00055
00056 void BroadcastStatus::setStatusMsgWithTimestamp(
const QString& message )
00057 {
00058 KLocale* locale = KGlobal::locale();
00059
setStatusMsg( i18n(
"%1 is a time, %2 is a status message",
"[%1] %2" )
00060 .arg( locale->formatTime( QTime::currentTime(),
00061
true ) )
00062 .arg( message ) );
00063 }
00064
00065 void BroadcastStatus::setStatusMsgTransmissionCompleted(
int numMessages,
00066
int numBytes,
00067
int numBytesRead,
00068
int numBytesToRead,
00069
bool mLeaveOnServer,
00070 KPIM::ProgressItem* item )
00071 {
00072
QString statusMsg;
00073
if( numMessages > 0 ) {
00074
if( numBytes != -1 ) {
00075
if( ( numBytesToRead != numBytes ) && mLeaveOnServer )
00076 statusMsg = i18n(
"Transmission complete. %n new message in %1 KB "
00077
"(%2 KB remaining on the server).",
00078
"Transmission complete. %n new messages in %1 KB "
00079
"(%2 KB remaining on the server).",
00080 numMessages )
00081 .arg( numBytesRead / 1024 )
00082 .arg( numBytes / 1024 );
00083
else
00084 statusMsg = i18n(
"Transmission complete. %n message in %1 KB.",
00085
"Transmission complete. %n messages in %1 KB.",
00086 numMessages )
00087 .arg( numBytesRead / 1024 );
00088 }
00089
else
00090 statusMsg = i18n(
"Transmission complete. %n new message.",
00091
"Transmission complete. %n new messages.",
00092 numMessages );
00093 }
00094
else
00095 statusMsg = i18n(
"Transmission complete. No new messages." );
00096
00097
setStatusMsgWithTimestamp( statusMsg );
00098
if ( item )
00099 item->setStatus( statusMsg );
00100 }
00101
00102
void BroadcastStatus::setStatusMsgTransmissionCompleted(
const QString& account,
00103
int numMessages,
00104
int numBytes,
00105
int numBytesRead,
00106
int numBytesToRead,
00107
bool mLeaveOnServer,
00108 KPIM::ProgressItem* item )
00109 {
00110
QString statusMsg;
00111
if( numMessages > 0 ) {
00112
if( numBytes != -1 ) {
00113
if( ( numBytesToRead != numBytes ) && mLeaveOnServer )
00114 statusMsg = i18n(
"Transmission for account %3 complete. "
00115
"%n new message in %1 KB "
00116
"(%2 KB remaining on the server).",
00117
"Transmission for account %3 complete. "
00118
"%n new messages in %1 KB "
00119
"(%2 KB remaining on the server).",
00120 numMessages )
00121 .arg( numBytesRead / 1024 )
00122 .arg( numBytes / 1024 )
00123 .arg( account );
00124
else
00125 statusMsg = i18n(
"Transmission for account %2 complete. "
00126
"%n message in %1 KB.",
00127
"Transmission for account %2 complete. "
00128
"%n messages in %1 KB.",
00129 numMessages )
00130 .arg( numBytesRead / 1024 )
00131 .arg( account );
00132 }
00133
else
00134 statusMsg = i18n(
"Transmission for account %1 complete. "
00135
"%n new message.",
00136
"Transmission for account %1 complete. "
00137
"%n new messages.",
00138 numMessages )
00139 .arg( account );
00140 }
00141
else
00142 statusMsg = i18n(
"Transmission for account %1 complete. No new messages.")
00143 .arg( account );
00144
00145
setStatusMsgWithTimestamp( statusMsg );
00146
if ( item )
00147 item->setStatus( statusMsg );
00148 }
00149
00150 void BroadcastStatus::setTransientStatusMsg(
const QString& msg )
00151 {
00152 mTransientActive =
true;
00153 emit
statusMsg( msg );
00154 }
00155
00156 void BroadcastStatus::reset()
00157 {
00158 mTransientActive =
false;
00159
00160 emit
statusMsg( mStatusMsg );
00161 }
00162
00163 }
00164
00165
#include "broadcaststatus.moc"