TorMapWidget.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef _TORMAPWIDGET_H
00018 #define _TORMAPWIDGET_H
00019
00020 #include "RouterDescriptor.h"
00021 #include "GeoIp.h"
00022
00023 #include "Circuit.h"
00024 #include "Stream.h"
00025
00026 #include <MarbleWidget.h>
00027 #include <GeoPainter.h>
00028 #include <GeoDataCoordinates.h>
00029 #include <GeoDataLineString.h>
00030
00031 #include <QHash>
00032 #include <QPair>
00033 #include <QPainterPath>
00034
00035 typedef QPair<Marble::GeoDataLineString, bool> CircuitGeoPath;
00036
00037
00038 class TorMapWidget : public Marble::MarbleWidget
00039 {
00040 Q_OBJECT
00041
00042 public:
00043
00044 TorMapWidget(QWidget *parent = 0);
00045
00046 ~TorMapWidget();
00047
00048
00049 void addRouter(const RouterDescriptor &desc, const GeoIp &geoip);
00050
00051 void addCircuit(const CircuitId &circid, const QStringList &path);
00052
00053 void selectRouter(const QString &id);
00054
00055 void selectCircuit(const CircuitId &circid);
00056
00057 public slots:
00058
00059 void removeCircuit(const CircuitId &circid);
00060
00061 void deselectAll();
00062
00063 void clear();
00064
00065
00066 void zoomToFit();
00067
00068 void zoomToRouter(const QString &id);
00069
00070 void zoomToCircuit(const CircuitId &circid);
00071
00072 signals:
00073
00074
00075 void displayRouterInfo(const QString &id);
00076
00077 protected:
00078
00079 virtual void customPaint(Marble::GeoPainter *painter);
00080
00081 private:
00082
00083 QHash<QString, Marble::GeoDataCoordinates> _routers;
00084
00085 QHash<CircuitId, CircuitGeoPath*> _circuits;
00086 };
00087
00088 #endif
00089