/*************************************************************************** knetworkconf.h - description ------------------- begin : Sun Jan 12 00:54:19 UTC 2003 copyright : (C) 2003 by Juan Luis Baptiste email : jbaptiste@merlinux.org ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef KNETWORKCONF_H #define KNETWORKCONF_H #ifdef HAVE_CONFIG_H #include #endif #define DEVICE_UP 0 #define DEVICE_DOWN 1 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "knetworkconfdlg.h" #include "kadddnsserverdlg.h" #include "kadddevicecontainer.h" #include "kadddevicedlg.h" #include "kadddevicewifiext.h" #include "knetworkinfo.h" #include "kroutinginfo.h" #include "knetworkconfigparser.h" #include "kdnsinfo.h" #include "kaddknownhostdlg.h" #include "kknownhostinfo.h" #include "knetworkinterface.h" #include "kadddevicedlgextension.h" #include "kprofileslistviewtooltip.h" /** KNetworkConf is the base class of the project */ class KNetworkConf : public KNetworkConfDlg, public DCOPObject { TQ_OBJECT public: /** construtor */ KNetworkConf(TQWidget* parent=0, const char *name=0); /** destructor */ ~KNetworkConf(); /** Puts the application in read-only mode. This happens when the user runing the application isn't root. */ void setReadOnly(bool state); void setVersion(TQString ver); TQString getVersion(); /** Disables all buttons a line edit widgets when the user has read only access. */ void disableAll(); /** Fill the Listview with the info of the network interfaces. */ void loadNetworkDevicesInfo(); void loadRoutingInfo(); void loadDNSInfo(); void loadNetworkProfiles(); TQString handbookDocPath() const; private: // Private attributes /** */ KNetworkConfigParser *config; KNetworkInterface * getDeviceInfo(TQString device); TQString getDeviceName(TQString ipAddr); /** Creates a TQStringList with the IP addresses contained in the TQListBox of name servers. */ TQStringList getNamserversList(TDEListBox * serverList); /** Creates a TQPtrList with the info contained in the TDEListView of name servers. */ TQPtrList getKnownHostsList(TDEListView * hostsList); TQString currentDevice; KRoutingInfo *routingInfo; KDNSInfo *dnsInfo; bool reloaded; TQString commandOutput; TQProcess *procUpdateDevice; TQProcess *procDeviceState; TQStringList deviceNamesList; bool devicesModified; bool readOnly; TQPtrList knownHostsList; TQPtrList profilesList; bool nameServersModified; /** The program's version. */ TQString version; bool modified; bool devStateChanged; /** */ KNetworkInfo * netInfo; /** Has the errors throwed by GST when executed. */ TQString commandErrOutput; /** Changes the state of device 'dev' to DEVICE_UP or DEVICE_DOWN. Return true on success, false on failure. */ void changeDeviceState(const TQString &dev, int state); KNetworkInfo *getProfile(TQPtrList profilesList, TQString selectedProfile); void showSelectedProfile(TQString profile); KProfilesListViewToolTip *tooltip; public slots: virtual void saveInfoSlot(); /** Puts the application in read-only mode. This happens when the user runing the application isn't root. */ void setReadOnlySlot(bool state); private slots: /** Enables the configure and remove buttons. */ virtual void enableButtonsSlot(); /** opens the add server dialog. */ virtual void addServerSlot(); /** opens the edit server dialog. */ virtual void editServerSlot(); /** Terminates the application*/ virtual void quitSlot(); virtual void readFromStdout(); virtual void readFromStdoutUpDown(); virtual void enableInterfaceSlot(); virtual void disableInterfaceSlot(); /** Pops up the window for adding a new interface. */ virtual void configureDeviceSlot(); void enableApplyButtonSlot(); /** Shows the help browser. Hopefully some day it will be one :-). */ virtual void helpSlot(); virtual void enableApplyButtonSlot(bool); virtual void enableApplyButtonSlot(const TQString &text); /** Saves all the modified info of devices, routes,etc. */ virtual void moveDownServerSlot(); virtual void moveUpServerSlot(); virtual void removeServerSlot(); bool valuesChanged(KNetworkInterface *dev, TQString bootProto, TQString netmask, TQString ipAddr, TQString gateway, bool onBoot, TQString desc, TQString broadcast); /** Returns a list of strings of all the configured devices. */ TQStringList getDeviceList(); /** Adds a new host to the TDEListView that has the known hosts. */ void addKnownHostSlot(); void aboutSlot(); /** Edits the info about a known host. */ void editKnownHostSlot(); /** Removes a known host from the list view */ void removeKnownHostSlot(); /** No descriptions */ void readFromStdErrUpDown(); void getNetworkInfoSlot(); /** Shows the main window after the network info has been loaded. */ void showMainWindow(); void verifyDeviceStateChanged(); /** Sees if a device is active or not in the ifconfig output. Not very nice, but it works. Inthe future, this has to be managed by gst. */ bool isDeviceActive(const TQString &device, const TQString &ifconfigOutput); /*Shows a context menu when right-clicking in the interface list*/ void showInterfaceContextMenuSlot(TDEListView*, TQListViewItem*, const TQPoint&); /** Enable some signals in the GUI that need to be enabled *after* the loading of the network info is done.*/ void enableSignals (); virtual void enableProfileSlot(); virtual void createProfileSlot(); //virtual void updateProfileNameSlot(TQListViewItem *item); virtual void removeProfileSlot(); virtual void updateProfileSlot(); signals: //Signal used to tell kcontrol that the network configuration has been changed. void networkStateChanged(bool); }; #endif