4 This file is part of KDEPIM.
6 Author: Don Sanders <sanders@kde.org>
8 Copyright (C) 2000 Don Sanders <sanders@kde.org>
17 #include <qdatetime.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
;
31 BroadcastStatus
* BroadcastStatus::instance()
34 broadcastStatusDeleter
.setObject( instance_
, new BroadcastStatus() );
39 BroadcastStatus::BroadcastStatus()
40 :mTransientActive( false )
44 BroadcastStatus::~BroadcastStatus()
49 void BroadcastStatus::setStatusMsg( const QString
& 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 */ ) )
65 void BroadcastStatus::setStatusMsgTransmissionCompleted( int numMessages
,
70 KPIM::ProgressItem
* item
)
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).",
81 .arg( numBytesRead
/ 1024 )
82 .arg( numBytes
/ 1024 );
84 statusMsg
= i18n( "Transmission complete. %n message in %1 KB.",
85 "Transmission complete. %n messages in %1 KB.",
87 .arg( numBytesRead
/ 1024 );
90 statusMsg
= i18n( "Transmission complete. %n new message.",
91 "Transmission complete. %n new messages.",
95 statusMsg
= i18n( "Transmission complete. No new messages." );
97 setStatusMsgWithTimestamp( statusMsg
);
99 item
->setStatus( statusMsg
);
102 void BroadcastStatus::setStatusMsgTransmissionCompleted( const QString
& account
,
108 KPIM::ProgressItem
* item
)
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).",
121 .arg( numBytesRead
/ 1024 )
122 .arg( numBytes
/ 1024 )
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.",
130 .arg( numBytesRead
/ 1024 )
134 statusMsg
= i18n( "Transmission for account %1 complete. "
136 "Transmission for account %1 complete. "
142 statusMsg
= i18n( "Transmission for account %1 complete. No new messages.")
145 setStatusMsgWithTimestamp( statusMsg
);
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;
160 emit
statusMsg( mStatusMsg
);
165 #include "broadcaststatus.moc"