diff options
Diffstat (limited to 'networkstatus/connectionmanager.cpp')
-rw-r--r-- | networkstatus/connectionmanager.cpp | 156 |
1 files changed, 0 insertions, 156 deletions
diff --git a/networkstatus/connectionmanager.cpp b/networkstatus/connectionmanager.cpp deleted file mode 100644 index a28c6a124..000000000 --- a/networkstatus/connectionmanager.cpp +++ /dev/null @@ -1,156 +0,0 @@ -/* - This file is part of kdepim. - - Copyright (c) 2005 Will Stephenson <lists@stevello.free-online.co.uk> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include <kapplication.h> -#include <klocale.h> -#include <kmessagebox.h> -#include <kstaticdeleter.h> - -#include "clientiface_stub.h" -#include "networkstatuscommon.h" - -#include "connectionmanager.h" - -// ConnectionManager's private parts -class ConnectionManagerPrivate -{ - public: - // this holds the currently active state - ConnectionManager::State m_state; - ClientIface_stub * m_stub; - bool m_userInitiatedOnly; -}; - -// Connection manager itself -ConnectionManager::ConnectionManager( TQObject * parent, const char * name ) : DCOPObject( "ConnectionManager" ),TQObject( parent, name ) -{ - d = new ConnectionManagerPrivate; - - d->m_stub = new ClientIface_stub( kapp->dcopClient(), "kded", "networkstatus" ); - - connectDCOPSignal( "kded", "networkstatus", "statusChange(TQString,int)", "slotStatusChanged(TQString,int)", false ); - d->m_userInitiatedOnly = false; - initialise(); -} - -ConnectionManager *ConnectionManager::s_self = 0L; - -ConnectionManager *ConnectionManager::self() -{ - static KStaticDeleter<ConnectionManager> deleter; - if(!s_self) - deleter.setObject( s_self, new ConnectionManager( 0, "connection_manager" ) ); - return s_self; -} - -void ConnectionManager::initialise() -{ - // determine initial state and set the state object accordingly. - d->m_state = Offline; - updateStatus(); -} - -void ConnectionManager::updateStatus() -{ - /*NetworkStatus::EnumStatus daemonStatus = (NetworkStatus::EnumStatus)d->m_stub->status( TQString::null ); - switch ( daemonStatus ) - { - case Offline: - case OfflineFailed: - case OfflineDisconnected: - case ShuttingDown: - if ( d->m_state == Online ) - d->m_state = Pending; - else - d->m_state = Offline; - break; - case Establishing: - case Online: - d->m_state = Online; - break; - case NoNetworks: - case Unreachable: - d->m_state = Inactive; - break; - }*/ -} - -ConnectionManager::~ConnectionManager() -{ - delete d; -} - -NetworkStatus::EnumStatus ConnectionManager::status( const TQString & host ) -{ - if ( d->m_state == Inactive ) - return NetworkStatus::NoNetworks; - else - return NetworkStatus::Offline; -} -NetworkStatus::EnumRequestResult ConnectionManager::requestConnection( TQWidget * mainWidget, const TQString & host, bool userInitiated ) -{ - NetworkStatus::EnumRequestResult result; - // if offline and the user has previously indicated they didn't want any new connections, suppress it - if ( d->m_state == Offline && !userInitiated && d->m_userInitiatedOnly ) - result = NetworkStatus::UserRefused; - // if offline, ask the user whether this connection should be allowed - if ( d->m_state == Offline ) - { - if ( askToConnect( mainWidget ) ) - result = (NetworkStatus::EnumRequestResult)d->m_stub->request( host, userInitiated ); - else - result = NetworkStatus::UserRefused; - } - // otherwise, just ask for the connection - else - result = (NetworkStatus::EnumRequestResult)d->m_stub->request( host, userInitiated ); - - return result; -} - -void ConnectionManager::relinquishConnection( const TQString & host ) -{ - d->m_stub->relinquish( host ); -} - -void ConnectionManager::slotStatusChanged( TQString host, int status ) -{ - updateStatus(); - // reset user initiated only flag if we are now online - if ( d->m_state == Online ) - d->m_userInitiatedOnly = false; - - emit statusChanged( host, (NetworkStatus::EnumStatus)status ); -} - -bool ConnectionManager::askToConnect( TQWidget * mainWidget ) -{ - i18n( "A network connection was disconnected. The application is now in offline mode. Do you want the application to resume network operations when the network is available again?" ); - i18n( "This application is currently in offline mode. Do you want to connect?" ); - i18n( "Message shown when a network connection failed. The placeholder contains the concrete description of the operation eg 'while performing this operation", "A network connection failed %1. Do you want to place the application in offline mode?" ); - return ( KMessageBox::questionYesNo( mainWidget, - i18n("This application is currently in offline mode. Do you want to connect in order to carry out this operation?"), - i18n("Leave Offline Mode?"), - i18n("Connect"), i18n("Do Not Connect"), - TQString::fromLatin1("OfflineModeAlwaysGoOnline") ) == KMessageBox::Yes ); -} - -#include "connectionmanager.moc" |