diff --git a/networkstatus/Makefile.am b/networkstatus/Makefile.am index c3b73f46f..e495f7910 100644 --- a/networkstatus/Makefile.am +++ b/networkstatus/Makefile.am @@ -13,7 +13,7 @@ libnetworkstatus_la_SOURCES = networkstatuscommon.cpp libconnectionmanager_la_LIBADD = $(LIB_KDECORE) libconnectionmanager_la_LDFLAGS = $(all_libraries) -libconnectionmanager_la_SOURCES = connectionmanager.cpp connectionmanager.skel clientiface.stub +libconnectionmanager_la_SOURCES = connectionmanager.cpp networkstatusindicator.cpp connectionmanager.skel clientiface.stub networkstatusiface.stub kded_networkstatus_la_SOURCES = networkstatus.cpp networkstatus.skel \ clientiface.skel serviceiface.skel network.cpp @@ -27,7 +27,7 @@ services_DATA = networkstatus.desktop noinst_HEADERS = serviceifaceimpl.h \ network.h clientifaceimpl.h testservice.h connectionmanager.h -include_HEADERS = serviceiface.h provideriface.h networkstatuscommon.h +include_HEADERS = serviceiface.h provideriface.h connectionmanager.h networkstatuscommon.h networkstatusindicator.h networkstatusiface.h bin_PROGRAMS = networkstatustestservice diff --git a/networkstatus/networkstatusiface.h b/networkstatus/networkstatusiface.h new file mode 100644 index 000000000..c35a22db5 --- /dev/null +++ b/networkstatus/networkstatusiface.h @@ -0,0 +1,50 @@ +/* This file is part of kdepim. + Copyright (C) 2005,2007 Will Stephenson + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License version 2 as published by the Free Software Foundation. + + 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. If not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. + + As a special exception, permission is given to link this library + with any edition of TQt, and distribute the resulting executable, + without including the source code for TQt in the source distribution. +*/ + +#ifndef KDED_NETWORKSTATUSIFACE_H +#define KDED_NETWORKSTATUSIFACE_H + +#include +#include + +#include "networkstatuscommon.h" + +class NetworkStatusIface : virtual public DCOPObject +{ +K_DCOP +k_dcop: + // Client interface + virtual TQStringList networks() = 0; + virtual int status() = 0; + // Service interface + virtual void setNetworkStatus( const TQString & networkName, int status ) = 0; + virtual void registerNetwork( NetworkStatus::Properties properties ) = 0; + virtual void unregisterNetwork( const TQString & networkName ) = 0 ; +k_dcop_signals: + /** + * A status change occurred affecting the overall connectivity + * @param status The new status + */ + virtual void statusChange( int status ) = 0; +}; +#endif +// vim: sw=4 ts=4 diff --git a/networkstatus/networkstatusindicator.cpp b/networkstatus/networkstatusindicator.cpp new file mode 100644 index 000000000..b422c5a97 --- /dev/null +++ b/networkstatus/networkstatusindicator.cpp @@ -0,0 +1,64 @@ +/* This file is part of the KDE project + Copyright (C) 2007 Will Stephenson + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License version 2 as published by the Free Software Foundation. + + 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. If not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. + + As a special exception, permission is given to link this library + with any edition of TQt, and distribute the resulting executable, + without including the source code for TQt in the source distribution. +*/ + +#include +#include +#include +#include + +#include "connectionmanager.h" + +#include "networkstatusindicator.h" + +StatusBarNetworkStatusIndicator::StatusBarNetworkStatusIndicator( + TQWidget * parent, const char * name ) : TQHBox( parent, name )/*, d( new StatusBarNetworkStatusIndicatorPrivate )*/ +{ + setMargin( 2 ); + setSpacing( 1 ); + TQLabel * label = new TQLabel( this, "offlinemodelabel" ); + label->setPixmap( SmallIcon("connect_no") ); + TQToolTip::add( label, i18n( "The desktop is offline" ) ); + + connect( ConnectionManager::self(), TQT_SIGNAL( statusChanged( NetworkStatus::EnumStatus ) ), + TQT_SLOT( networkStatusChanged( NetworkStatus::EnumStatus) ) ); + +} + +void StatusBarNetworkStatusIndicator::init() +{ + networkStatusChanged( ConnectionManager::self()->status(TQString(""))); +} + +StatusBarNetworkStatusIndicator::~StatusBarNetworkStatusIndicator() +{ +} + +void StatusBarNetworkStatusIndicator::networkStatusChanged( NetworkStatus::EnumStatus status ) +{ + if ( status == NetworkStatus::Online || status == NetworkStatus::NoNetworks ) { + hide(); + } else { + show(); + } +} + +#include "networkstatusindicator.moc" diff --git a/networkstatus/networkstatusindicator.h b/networkstatus/networkstatusindicator.h new file mode 100644 index 000000000..4385f4c3f --- /dev/null +++ b/networkstatus/networkstatusindicator.h @@ -0,0 +1,42 @@ +/* This file is part of the KDE project + Copyright (C) 2007 Will Stephenson + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License version 2 as published by the Free Software Foundation. + + 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. If not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. + + As a special exception, permission is given to link this library + with any edition of TQt, and distribute the resulting executable, + without including the source code for TQt in the source distribution. +*/ + +#ifndef KDE_NETWORKSTATUS_INDICATOR_H +#define KDE_NETWORKSTATUS_INDICATOR_H + +#include +#include +#include + +class StatusBarNetworkStatusIndicator : public TQHBox +{ +Q_OBJECT +public: + StatusBarNetworkStatusIndicator( TQWidget * parent, const char * name ); + virtual ~StatusBarNetworkStatusIndicator(); + void init(); +protected slots: + void networkStatusChanged( NetworkStatus::EnumStatus status ); +}; + +#endif +