diff options
author | Slávek Banko <slavek.banko@axis.cz> | 2013-07-27 16:34:45 +0200 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2013-07-27 16:34:45 +0200 |
commit | d76ff81b7c1beffef0b84e570914c8f2d47834e6 (patch) | |
tree | 284b80ce7c5456fbb041f7979ac2c0baeead8902 /src/tork.h | |
download | tork-d76ff81b7c1beffef0b84e570914c8f2d47834e6.tar.gz tork-d76ff81b7c1beffef0b84e570914c8f2d47834e6.zip |
Initial import of tork 0.33
Diffstat (limited to 'src/tork.h')
-rw-r--r-- | src/tork.h | 435 |
1 files changed, 435 insertions, 0 deletions
diff --git a/src/tork.h b/src/tork.h new file mode 100644 index 0000000..f239029 --- /dev/null +++ b/src/tork.h @@ -0,0 +1,435 @@ +/*************************************************************************** + * $Id: tork.h,v 1.115 2009/08/12 19:41:23 hoganrobert Exp $ + * Copyright (C) 2006 - 2008 Robert Hogan * + * robert@roberthogan.net * + * * + * 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. * + * * + * This program 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 General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ + + +#ifndef _TORK_H_ +#define _TORK_H_ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <kapplication.h> +#include <kmainwindow.h> +#include <ktempfile.h> + +#include "torkview.h" +#include "torclient.h" +#include "statgraph.h" +#include "popupMessage.h" +#include "torkconfig.h" +#include "version.h" +#include "dcoptork.h" +#include "testprivacyproxy.h" + +#include <kconfigskeleton.h> +#include <kwinmodule.h> +#include <kpopupmenu.h> +#include <qvaluevector.h> + +#include "update.h" +#include "trayicon.h" +#include "upnpmanager.h" +#include "hiddensrvs.h" + +class KPrinter; +class KToggleAction; +class KPopupMenu; +class KActionMenu; +class KURL; +class TrayIcon; +class QLabel; +class KProcIO; +class TorClient; +class QPoint; +class StatGraph; +class TorkConfig; +class KConfigSkeleton; +class KConfigSkeletonItem; +class KTempFile; +class KWindModule; +class UPnPManager; +class SetMaxRate; +class MyHidden; +class TestProxy; + +//class QValueVector; + +/** Enumeration of types which option values can take */ +typedef enum display_status_t { + DISPLAY_NONE = 0, /**< An arbitrary string. */ + DISPLAY_QUEUED, /**< A non-negative integer less than MAX_INT */ +} display_status_t; + + + +/** + * This class serves as the main window for tork. It handles the + * menus, toolbars, and status bars. + * + * @short Main window class + * @author Robert Hogan <robert@roberthogan.net> + * @version 0.03 + */ +class tork : public KMainWindow, virtual public DCOPTork +{ + Q_OBJECT +public: + /** + * Default Constructor + */ + tork(); + + /** + * Default Destructor + */ + virtual ~tork(); + + torkView *m_view; + + TrayIcon *_tray; + QDict<QListViewItem> inodes; + bool connectedToTor(){return (client!=0) ? true : false;}; + KPopupMenu* m_LaunchMenu; + void anonymousFirefox(){m_view->anonymousFirefox();}; + void anonymousOpera(){m_view->anonymousOpera();}; + void anonymousEmail(){m_view->sendAnonymousEmail(); hide();}; + void anonymizedFirefox(const QString & url){m_view->anonymizedFirefox(url);}; + void anonymizedOpera(const QString & url){m_view->anonymizedOpera(url);}; + void anonymousKonversation(){torkify( 0 );}; + void anonymousKopete(){torkify( 1 );}; + void anonymousGaim(){torkify( 2 );}; + void anonymousPidgin(){torkify( 3 );}; + void anonymousKonsole(){torkify( 4 );}; + bool getKDESetting(); + bool routerDiscovered(){ return m_routerDiscovered;}; + void setRouterDiscovered(bool discovered){ m_routerDiscovered = discovered;}; + + QStringList getDiscoveredRouters(){ return discoveredRouters;}; + void setBandwidthFromSysTray(int rate ); + void enableKDEAndLaunchKonqWithUrl(const QString &); + int upnpORPort(){ return orPort; }; + int upnpDirPort(){ return dirPort; }; + void setUpnpDirPort(int port){ dirPort=port; }; + void setUpnpORPort(int port){ orPort=port; }; + +private slots: + void fileNew(); + void optionsShowToolbar(); + void optionsShowStatusbar(); + void optionsConfigureKeys(); + void optionsConfigureToolbars(); + void optionsPreferences(); + void newToolbarConfig(); + void startTor(); + void startNetStat(); + void stopNetStat(); + void updatePrivoxy(); + void childExited(); + void privoxyExited(); + void netStatExited(); + void filterExited(); + void startFromBeginning(); + void isControllerWorking( ); + void checkRouterDiscovered( ); + + + void changeStatusbar(const QString& in,const QString& out); + void changeCaption(const QString& text); + void startController(); + void stopController(); + void receivedOutput(KProcIO *); + void processFilter(KProcIO *filterproc); + void receivedNetStatOutput(KProcIO *); + void toggleKDESetting(); + void enableKDE(bool enable); + void toggleKDESettingAndLaunchKonq(); + void setKDE(bool set); + void turnOffKDE(); + void sayWhatImDoing(const QString& ); + void slotOnItem( int, QListViewItem *, const QPoint &, int ); + void slotOnORItem( QListViewItem * ); + void slotOffItem( ); + void openConfig(const QCString& page); + + void slotHandle(/*TFunctor *functor*/); + void noClicked(/*TFunctor *functor*/); + void popUpClosed(); + void processHashProc(KProcIO *hashproc); + void toggleTorMon(); + void toggleTorMon2(); + void toggleTorBar(); + void hiddenServices(); + void mixminionHome(); + void networkList(); + void infoUpdated(const QString &type, const QString &summary, const QString &data); + void shuttingDown(); + void showMyServer(); + void showFirewallEvasion(); + void useNewIdentity(); + void showMyKonqueror(); + void showMyHiddenServices(); + void toggleNonTorTraffic(bool state); + void toggleTorTraffic(bool state); + void checkForKonqWindow(WId); + void configurePrivoxy(); + void warnNoServerInfo(); + void startingPeriodOver(); + void needAlphaVersion( ); + void filterServers( int ); + void toggleIP( int ); + void filterLog( int ); + void filterSubnets( int ); + void filterCountries( int ); + void filterTorTraffic( int ); + void filterNonTorTraffic( int ); + void sortByCountry( ); + void toggleTextFilter( int ); + void createSubnetList( ); + void torkify( int ); + void allowNewIdentityRequests(); + void populateSubNetMenu(); + void populatePseudoMenu(); + void populateCountryMenu(); + void applyPseudonymity( int country_id ); + void checkBandwidthSettings(); + void setTorCaption(const QString &caption); + void configureServer(int); + void configureSecurity( int id ); + void updateServerButton( ); + void torUsedAfterDNSRequest(); + void updateTrayStats(const QString &,const QString &,const QString &,const QString &); + void updateTrayIcon(const QString &); + void resetExited(); + void switchMode(); + void upnpForwardingOK(kt::UPnPRouter*,const QString &, bool); + void upnpForwardingError(kt::UPnPRouter*,const QString &, bool); + void routerDiscovered(kt::UPnPRouter* ); + void configureRouter(bool force,bool silent=false); + void checkForSystemManagedPrivoxy(); + void cannotContactPrivoxy(); + void privacyProxyPassed(); + +public slots: + + void startPrivoxy(); + void letTorKManagePrivoxy(); + void serverHelp(); + void enterContactInfo(); + void fixAddressPort(); + void continueAsClient(); + void updateTorStable(); + void reconnectWithCookie(); + void copyCookie(); + void updateTork(); + void quickConfig(); + void cannotContactTor(); + void showTip(); + void showTipOnStart(); + void runWizard(); + void copyOldConfig(); + void shouldIApplySettings(); + void applySettingsToRunningTor(); + bool showUsage(); + bool showSecurityWarnings(); + bool showGuideQuestions(); + bool showApplySettingsQuestions(); + bool contactInfoSet(); + bool showDNSLeaks(); + void readEavesdropping(); + void aboutTorify(); + void aboutTor(); + void showSecurityNotice(const QString &port); + void showScreamingNotice(const QString &port); + void torClosedConnection(); + void makeTorkStoppable(); + void createService(const QString& dir,const QString& port); + void aboutParanoidMode(); + void processWarning(const QString& type, const QString& text); + void processQuestion(const QString& type, const QString& text); + void updateTorUnstable(); + void currentTabChanged(QWidget* cur ); + void stopTor(); + void resetTor(); + void toggleServerButton( bool on ); + void dummyAction(); + void retryUPnP(); + void allowPlainTextPorts(); + void assignPortToRemove(); + void startEverything(); + void stopTorGracefully(); + +private: + void setupAccel(); + void setupActions(); + QString writeConf(); + QString writePrivoxyConf(); + void writeCustomOptions(QTextStream &ts); + void writeCustomOptions2(QTextStream &ts); + void showWarning( display_status_t &msg, const QString &headline,const QString &torsaid,const QString &thismeans, const QString &type, const QString &icon, bool always, bool showstopper); + void askQuestion(display_status_t &msg, const QString &headline,const QString &torsaid,const QString &body,const QString &question,void (tork::*pt2Func)(), const QString &type, const QString &icon, bool persistent, bool showstopper); + void processQueue(); + bool elementShouldBeUsed(const KConfigSkeletonItem* it); + bool noSpecialProcessing(const KConfigSkeletonItem* it, QTextStream &ts); + QString doHashPassword(); + bool queryClose(); + void prepareToShut(); + void filterViewServers( QValueVector<QString> &possibleValues, QListView* &view, KPopupMenu* &menu, int id, int column ); + void filterView( QValueVector<QString> &possibleValues, QListView* &view, KPopupMenu* &menu, int id, int column ); + QString createFailSafeCommand( const QStringList &filterRules, bool set ); + void updateServerClientStatusBar(const QStringList &client, const QStringList &server); + void updateToolBar(); + +private: + + KPrinter *m_printer; + KToggleAction *m_toolbarAction; + KToggleAction *m_statusbarAction; + KAction *torkConfigure; + KAction *torkStop; + KAction *torkStart; + KAction *torkUpdateTork; + KAction *torkUpdateStable; + KAction *torkUpdateUnstable; + KAction *torkUpdatePrivoxy; + KAction *torkFirstRunWizard; + KAction *torkTip; + KAction *enableKonqi; + KAction *enableTormon; + //KAction *toggleParanoid; + KAction *browseHiddenServices; + KAction *browseNetworkList; + KAction *toggleTorbar; + KActionMenu* m_ServerFilterButton; + KActionMenu* m_LaunchMenuButton; + KActionMenu* m_LogFilterButton; + KActionMenu* m_TrafficFilterButton; + KPopupMenu* m_ServerFilterMenu; + KPopupMenu* m_LogFilterMenu; + KPopupMenu* m_TrafficFilterMenu; + KPopupMenu* m_TorTrafficFilterMenu; + KPopupMenu* m_NonTorTrafficFilterMenu; + KPopupMenu* m_IPFilterMenu; + KPopupMenu* m_PseudoMenu; + KPopupMenu* m_PseudoMenuEU; + KPopupMenu* m_PseudoMenuSA; + KPopupMenu* m_PseudoMenuAS; + KPopupMenu* m_PseudoMenuNA; + KPopupMenu* m_PseudoMenuAN; + KPopupMenu* m_PseudoMenuAF; + KPopupMenu* m_PseudoMenuNN; + KPopupMenu* m_PseudoMenuOC; + KActionMenu* m_PseudoButton; + KAction* m_IdentityButton; + KAction* m_ModeButton; + KAction* m_UnCensorButton; + KPopupMenu* m_CountryMenu; + KPopupMenu* m_CountryMenuEU; + KPopupMenu* m_CountryMenuSA; + KPopupMenu* m_CountryMenuAS; + KPopupMenu* m_CountryMenuNA; + KPopupMenu* m_CountryMenuAN; + KPopupMenu* m_CountryMenuAF; + KPopupMenu* m_CountryMenuNN; + KPopupMenu* m_CountryMenuOC; + KActionMenu* m_ServerButton; + KPopupMenu* m_ServerButtonMenu; + KActionMenu* m_SecurityButton; + KPopupMenu* m_SecurityButtonMenu; + + QLabel* m_statusInfo; + QLabel* m_statusTransfer; + QLabel* m_statusSpeed; + StatGraph* m_graphIn; + StatGraph* m_graphOut; + KProcIO* childproc; + KProcIO* filterproc; + KProcIO* netstatproc; + KProcIO* privoxyproc; + TorClient* client; + bool m_servererrornag; + bool m_contactinfonag; + bool m_serverworking; + QListViewItem* m_prevItem; + QTimer *timer; + QTimer *bwtimer; + QTimer *bwLimitTimer; + void (tork::*m_pt2Func)(); + KDE::PopupMessage *m_tooltip; + QStringList m_list; + QString m_body; + display_status_t* m_msg; + KProcIO *hashproc; + QString m_hashedpassword; + KConfigSkeletonItem::List previtems; + KConfigSkeleton pcopy; + PrevConfig::PrevConfigList prevlist; + TorkUpdate* updater; + KTempFile* tfTor; + KTempFile* tfPrivoxy; + KWinModule* winModule; + QWidget* prev; + + QValueList<QListViewItem*> ordinaryServerList; + QMap<QString,KPopupMenu*> continentMap; + QMap<QString,KPopupMenu*> continentMapList; + QStringList discoveredRouters; + + int filterId; + + bool m_toolTipShowing; + bool m_persistent; + bool filterWasApplied; + bool geoip_db; + bool waitingForServers; + bool stillStarting; + bool m_DNSTorified; + bool m_showstopperAlreadyDisplayed; + bool m_routerDiscovered; + bool recentNewIdentityRequest; + bool m_ShutdownRequested; + bool m_AppliedSettings; + bool m_CanApplyServerSettingsIfSet; + + QDialog* dialog; + MyHidden* myHiddenDialog; + QDialog* serverdialog; + + UPnPManager* upnpmanager; + ForwardPortList* forwardPortList; + + QString filterError; + QString torCaption; + QString m_program; + + SetMaxRate* m_set_max_rate; + + TestPrivoxy *privoxytest; + int orPort; + int dirPort; + +}; + + +extern tork *kmain; + +#endif // _TORK_H_ + |