fix online/offline status: make it work with multiple windows, harmonize

the wording with the buttons in the confirmation dialog

svn path=/branches/KDE/3.5/kdepim/; revision=514974
wilder-work
Aaron J. Seigo 20 years ago
parent 97802486ff
commit 56731232ab
  1. 7
      kmkernel.cpp
  2. 2
      kmkernel.h
  3. 23
      kmmainwidget.cpp
  4. 1
      kmmainwidget.h

@ -10,6 +10,8 @@
#include <weaverlogger.h>
#include "globalsettings.h"
#include "broadcaststatus.h"
using KPIM::BroadcastStatus;
#include "kmstartup.h"
#include "index.h"
#include "kmmainwin.h"
@ -1142,7 +1144,8 @@ void KMKernel::stopNetworkJobs()
return;
GlobalSettings::setNetworkState( GlobalSettings::EnumNetworkState::Offline );
BroadcastStatus::instance()->setStatusMsg( i18n("KMail is set to be offline; all network jobs are suspended"));
emit onlineStatusChanged( (GlobalSettings::EnumNetworkState::type)GlobalSettings::networkState() );
}
void KMKernel::resumeNetworkJobs()
@ -1151,6 +1154,8 @@ void KMKernel::resumeNetworkJobs()
return;
GlobalSettings::setNetworkState( GlobalSettings::EnumNetworkState::Online );
BroadcastStatus::instance()->setStatusMsg( i18n("KMail is set to be online; all network jobs resumed"));
emit onlineStatusChanged( (GlobalSettings::EnumNetworkState::type)GlobalSettings::networkState() );
if ( kmkernel->msgSender()->sendImmediate() ) {
kmkernel->msgSender()->sendQueued();

@ -16,6 +16,7 @@
#include "kmailIface.h"
#include "kmmsgbase.h"
#include "globalsettings.h"
#define kmkernel KMKernel::self()
#define kmconfig KMKernel::config()
@ -400,6 +401,7 @@ protected slots:
signals:
void configChanged();
void folderRemoved( KMFolder* aFolder );
void onlineStatusChanged( GlobalSettings::EnumNetworkState::type );
private:
void openReader( bool onlyCheck );

@ -202,6 +202,9 @@ KMMainWidget::KMMainWidget(QWidget *parent, const char *name,
connect(kmkernel->searchFolderMgr(), SIGNAL(folderRemoved(KMFolder*)),
this, SLOT(slotFolderRemoved(KMFolder*)));
connect( kmkernel, SIGNAL( onlineStatusChanged( GlobalSettings::EnumNetworkState::type ) ),
this, SLOT( slotUpdateOnlineStatus( GlobalSettings::EnumNetworkState::type ) ) );
toggleSystemTray();
// must be the last line of the constructor:
@ -1646,18 +1649,25 @@ void KMMainWidget::slotSaveAttachments()
void KMMainWidget::slotOnlineStatus()
{
// KMKernel will emit a signal when we toggle the network state that is caught by
// KMMainWidget::slotUpdateOnlineStatus to update our GUI
if ( GlobalSettings::self()->networkState() == GlobalSettings::EnumNetworkState::Online ) {
// if online; then toggle and set it offline.
actionCollection()->action( "online_status" )->setText( i18n("Go Online") );
kmkernel->stopNetworkJobs();
BroadcastStatus::instance()->setStatusMsg( i18n("KMail is set to be offline; all network jobs are suspended"));
} else {
actionCollection()->action( "online_status" )->setText( i18n("Go Offline") );
kmkernel->resumeNetworkJobs();
BroadcastStatus::instance()->setStatusMsg( i18n("KMail is set to be online; all network jobs resumed"));
}
}
void KMMainWidget::slotUpdateOnlineStatus( GlobalSettings::EnumNetworkState::type )
{
if ( GlobalSettings::self()->networkState() == GlobalSettings::EnumNetworkState::Online )
actionCollection()->action( "online_status" )->setText( i18n("Work Offline") );
else
actionCollection()->action( "online_status" )->setText( i18n("Work Online") );
}
//-----------------------------------------------------------------------------
void KMMainWidget::slotSendQueued()
{
@ -3004,10 +3014,7 @@ void KMMainWidget::updateMessageActions()
actionCollection()->action( "go_prev_unread_message" )->setEnabled( enable_goto_unread );
actionCollection()->action( "send_queued" )->setEnabled( kmkernel->outboxFolder()->count() > 0 );
actionCollection()->action( "send_queued_via" )->setEnabled( kmkernel->outboxFolder()->count() > 0 );
if ( GlobalSettings::self()->networkState() == GlobalSettings::EnumNetworkState::Online )
actionCollection()->action( "online_status" )->setText( i18n("Go Offline") );
else
actionCollection()->action( "online_status" )->setText( i18n("Go Online") );
slotUpdateOnlineStatus( static_cast<GlobalSettingsBase::EnumNetworkState::type>( GlobalSettings::self()->networkState() ) );
if (action( "edit_undo" ))
action( "edit_undo" )->setEnabled( mHeaders->canUndo() );

@ -315,6 +315,7 @@ protected slots:
void slotSendQueued();
void slotSendQueuedVia( int item );
void slotOnlineStatus();
void slotUpdateOnlineStatus( GlobalSettings::EnumNetworkState::type );
void slotMsgPopup(KMMessage &msg, const KURL &aUrl, const QPoint&);
void slotMarkAll();
void slotMemInfo();

Loading…
Cancel
Save