Build, if that was not necessary blame cartman who told me "sure" :-D
[kdepim.git] / libkdepim / broadcaststatus.cpp
blob5d0af0d1302971bcfb0978ef24110b8b7cfa4fcc
1 /*
2 broadcaststatus.cpp
4 This file is part of KDEPIM.
6 Author: Don Sanders <sanders@kde.org>
8 Copyright (C) 2000 Don Sanders <sanders@kde.org>
10 License GPL
13 #ifdef HAVE_CONFIG_H
14 #include <config.h>
15 #endif
17 #include <qdatetime.h>
19 #include <klocale.h>
20 #include <kglobal.h>
21 #include <kstaticdeleter.h>
23 #include "broadcaststatus.h"
24 #include "progressmanager.h"
26 KPIM::BroadcastStatus* KPIM::BroadcastStatus::instance_ = 0;
27 static KStaticDeleter<KPIM::BroadcastStatus> broadcastStatusDeleter;
29 namespace KPIM {
31 BroadcastStatus* BroadcastStatus::instance()
33 if (!instance_)
34 broadcastStatusDeleter.setObject( instance_, new BroadcastStatus() );
36 return instance_;
39 BroadcastStatus::BroadcastStatus()
40 :mTransientActive( false )
44 BroadcastStatus::~BroadcastStatus()
46 instance_ = 0;
49 void BroadcastStatus::setStatusMsg( const QString& message )
51 mStatusMsg = message;
52 if( !mTransientActive )
53 emit statusMsg( message );
56 void BroadcastStatus::setStatusMsgWithTimestamp( const QString& message )
58 KLocale* locale = KGlobal::locale();
59 setStatusMsg( i18n( "%1 is a time, %2 is a status message", "[%1] %2" )
60 .arg( locale->formatTime( QTime::currentTime(),
61 true /* with seconds */ ) )
62 .arg( message ) );
65 void BroadcastStatus::setStatusMsgTransmissionCompleted( int numMessages,
66 int numBytes,
67 int numBytesRead,
68 int numBytesToRead,
69 bool mLeaveOnServer,
70 KPIM::ProgressItem* item )
72 QString statusMsg;
73 if( numMessages > 0 ) {
74 if( numBytes != -1 ) {
75 if( ( numBytesToRead != numBytes ) && mLeaveOnServer )
76 statusMsg = i18n( "Transmission complete. %n new message in %1 KB "
77 "(%2 KB remaining on the server).",
78 "Transmission complete. %n new messages in %1 KB "
79 "(%2 KB remaining on the server).",
80 numMessages )
81 .arg( numBytesRead / 1024 )
82 .arg( numBytes / 1024 );
83 else
84 statusMsg = i18n( "Transmission complete. %n message in %1 KB.",
85 "Transmission complete. %n messages in %1 KB.",
86 numMessages )
87 .arg( numBytesRead / 1024 );
89 else
90 statusMsg = i18n( "Transmission complete. %n new message.",
91 "Transmission complete. %n new messages.",
92 numMessages );
94 else
95 statusMsg = i18n( "Transmission complete. No new messages." );
97 setStatusMsgWithTimestamp( statusMsg );
98 if ( item )
99 item->setStatus( statusMsg );
102 void BroadcastStatus::setStatusMsgTransmissionCompleted( const QString& account,
103 int numMessages,
104 int numBytes,
105 int numBytesRead,
106 int numBytesToRead,
107 bool mLeaveOnServer,
108 KPIM::ProgressItem* item )
110 QString statusMsg;
111 if( numMessages > 0 ) {
112 if( numBytes != -1 ) {
113 if( ( numBytesToRead != numBytes ) && mLeaveOnServer )
114 statusMsg = i18n( "Transmission for account %3 complete. "
115 "%n new message in %1 KB "
116 "(%2 KB remaining on the server).",
117 "Transmission for account %3 complete. "
118 "%n new messages in %1 KB "
119 "(%2 KB remaining on the server).",
120 numMessages )
121 .arg( numBytesRead / 1024 )
122 .arg( numBytes / 1024 )
123 .arg( account );
124 else
125 statusMsg = i18n( "Transmission for account %2 complete. "
126 "%n message in %1 KB.",
127 "Transmission for account %2 complete. "
128 "%n messages in %1 KB.",
129 numMessages )
130 .arg( numBytesRead / 1024 )
131 .arg( account );
133 else
134 statusMsg = i18n( "Transmission for account %1 complete. "
135 "%n new message.",
136 "Transmission for account %1 complete. "
137 "%n new messages.",
138 numMessages )
139 .arg( account );
141 else
142 statusMsg = i18n( "Transmission for account %1 complete. No new messages.")
143 .arg( account );
145 setStatusMsgWithTimestamp( statusMsg );
146 if ( item )
147 item->setStatus( statusMsg );
150 void BroadcastStatus::setTransientStatusMsg( const QString& msg )
152 mTransientActive = true;
153 emit statusMsg( msg );
156 void BroadcastStatus::reset()
158 mTransientActive = false;
159 // restore
160 emit statusMsg( mStatusMsg );
165 #include "broadcaststatus.moc"