one entry for korganizer in khelpcenters navigation tree is enough
[kdepim.git] / libkdepim / broadcaststatus.cpp
blob2b4390d760d9363b9ae9bdc7e19ae2563f5f8e9b
1 /*
2 broadcaststatus.cpp
4 This file is part of libkdepim.
6 Author: Don Sanders <sanders@kde.org>
8 Copyright (C) 2000 Don Sanders <sanders@kde.org>
10 This program is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation; either version 2 of the License, or
13 (at your option) any later version.
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
20 You should have received a copy of the GNU General Public License along
21 with this program; if not, write to the Free Software Foundation, Inc.,
22 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
25 #include "broadcaststatus.h"
26 #include "progressmanager.h"
28 #include <KLocale>
29 #include <KGlobal>
31 #include <QCoreApplication>
32 #include <QTime>
34 static KPIM::BroadcastStatus *instance_;
36 static void deleteGlobalStaticBroadcastStatus()
38 delete instance_;
39 instance_ = 0;
42 namespace KPIM {
44 BroadcastStatus *BroadcastStatus::instance()
46 if ( !instance_ ) {
47 instance_ = new BroadcastStatus();
48 qAddPostRoutine( deleteGlobalStaticBroadcastStatus );
50 return instance_;
53 BroadcastStatus::BroadcastStatus()
54 :mTransientActive( false )
58 BroadcastStatus::~BroadcastStatus()
60 instance_ = 0;
63 void BroadcastStatus::setStatusMsg( const QString &message )
65 mStatusMsg = message;
66 if( !mTransientActive ) {
67 emit statusMsg( message );
71 void BroadcastStatus::setStatusMsgWithTimestamp( const QString &message )
73 KLocale *locale = KGlobal::locale();
74 setStatusMsg( i18nc( "%1 is a time, %2 is a status message", "[%1] %2",
75 locale->formatTime( QTime::currentTime(), true ), message ) );
78 void BroadcastStatus::setStatusMsgTransmissionCompleted( int numMessages,
79 int numBytes,
80 int numBytesRead,
81 int numBytesToRead,
82 bool mLeaveOnServer,
83 KPIM::ProgressItem *item )
85 QString statusMsg;
86 if ( numMessages > 0 ) {
87 if ( numBytes != -1 ) {
88 if ( ( numBytesToRead != numBytes ) && mLeaveOnServer ) {
89 statusMsg = i18np( "Transmission complete. %1 new message (%2 KB). "
90 "%3 KB remaining on the server.",
91 "Transmission complete. %1 new messages (%2 KB). "
92 "%3 KB remaining on the server.",
93 numMessages,
94 numBytesRead / 1024,
95 numBytes / 1024 );
96 } else {
97 statusMsg = i18np( "Transmission complete. %1 message (%2 KB).",
98 "Transmission complete. %1 messages (%2 KB).",
99 numMessages,
100 numBytesRead / 1024 );
102 } else {
103 statusMsg = i18np( "Transmission complete. %1 new message.",
104 "Transmission complete. %1 new messages.",
105 numMessages );
107 } else {
108 statusMsg = i18n( "Transmission complete. No new messages." );
111 setStatusMsgWithTimestamp( statusMsg );
113 if ( item ) {
114 item->setStatus( statusMsg );
118 void BroadcastStatus::setStatusMsgTransmissionCompleted( const QString &account,
119 int numMessages,
120 int numBytes,
121 int numBytesRead,
122 int numBytesToRead,
123 bool mLeaveOnServer,
124 KPIM::ProgressItem *item )
126 QString statusMsg;
127 if ( numMessages > 0 ) {
128 if ( numBytes != -1 ) {
129 if ( ( numBytesToRead != numBytes ) && mLeaveOnServer ) {
130 statusMsg = i18np( "Transmission for account %4 complete. "
131 "%1 new message (%2 KB). "
132 "%3 KB remaining on the server.",
133 "Transmission for account %4 complete. "
134 "%1 new messages (%2 KB). "
135 "%3 KB remaining on the server.",
136 numMessages,
137 numBytesRead / 1024,
138 numBytes / 1024,
139 account );
140 } else {
141 statusMsg = i18np( "Transmission for account %3 complete. "
142 "%1 message (%2 KB).",
143 "Transmission for account %3 complete. "
144 "%1 messages (%2 KB).",
145 numMessages,
146 numBytesRead / 1024,
147 account );
149 } else {
150 statusMsg = i18np( "Transmission for account %2 complete. "
151 "%1 new message.",
152 "Transmission for account %2 complete. "
153 "%1 new messages.",
154 numMessages,
155 account );
157 } else {
158 statusMsg = i18n( "Transmission for account %1 complete. No new messages.", account );
161 setStatusMsgWithTimestamp( statusMsg );
163 if ( item ) {
164 item->setStatus( statusMsg );
168 void BroadcastStatus::setTransientStatusMsg( const QString &msg )
170 mTransientActive = true;
171 emit statusMsg( msg );
174 void BroadcastStatus::reset()
176 mTransientActive = false;
177 // restore
178 emit statusMsg( mStatusMsg );
183 #include "broadcaststatus.moc"