libkdepim
broadcaststatus.cpp00001
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"
|