Vidalia
0.2.21
Main Page
Namespaces
Classes
Files
File List
File Members
src
vidalia
network
CircuitListWidget.h
Go to the documentation of this file.
1
/*
2
** This file is part of Vidalia, and is subject to the license terms in the
3
** LICENSE file, found in the top level directory of this distribution. If you
4
** did not receive the LICENSE file with this file, you may obtain it from the
5
** Vidalia source package distributed by the Vidalia Project at
6
** http://www.torproject.org/projects/vidalia.html. No part of Vidalia,
7
** including this file, may be copied, modified, propagated, or distributed
8
** except according to the terms described in the LICENSE file.
9
*/
10
11
/*
12
** \file CircuitListWidget.h
13
** \brief Collection of Tor circuits as CircuitItems
14
*/
15
16
#ifndef _CIRCUITLISTWIDGET_H
17
#define _CIRCUITLISTWIDGET_H
18
19
#include "
CircuitItem.h
"
20
#include "
StreamItem.h
"
21
22
#include <QTreeWidget>
23
#include <QList>
24
#include <QMenu>
25
#include <QAction>
26
#include <QMouseEvent>
27
28
29
class
CircuitListWidget
:
public
QTreeWidget
30
{
31
Q_OBJECT
32
33
public
:
34
/** Circuit list columns. */
35
enum
Columns
{
36
ConnectionColumn
= 0,
/**< Column for either the circuit or stream */
37
StatusColumn
= 1
/**< Status of the connection. */
38
};
39
40
/** Default constructor */
41
CircuitListWidget
(QWidget *parent = 0);
42
43
/** Adds a circuit to the list. If the circuit already exists in the list,
44
* the status and path will be updated. */
45
void
addCircuit
(
const
Circuit
&circuit);
46
/** Adds a stream to the list. If the stream already exists in the list, the
47
* status and path will be updated. */
48
void
addStream
(
const
Stream
&stream);
49
/** Returns a list of circuits currently in the widget. */
50
QList<Circuit>
circuits
();
51
/** Called when the user changes the UI translation. */
52
void
retranslateUi
();
53
54
signals:
55
/** Emitted when a circuit item is selected. */
56
void
circuitSelected
(
Circuit
circuit);
57
/** Emitted when a circuit is removed from the list. */
58
void
circuitRemoved
(
CircuitId
circid);
59
/** Emitted when the user selects a circuit to be closed. */
60
void
closeCircuit
(
CircuitId
circid);
61
/** Emitted when the user selects a stream to be closed. */
62
void
closeStream
(
StreamId
streamid);
63
/** Emitted when the user selects a circuit to zoom to. */
64
void
zoomToCircuit
(
CircuitId
circid);
65
66
public
slots:
67
/** Clears all circuits and streams from the list. */
68
void
clearCircuits
();
69
70
private
slots:
71
/** Removes the first circuit scheduled to be removed.*/
72
void
removeCircuit
();
73
/** Removes the first stream scheduled to be removed. */
74
void
removeStream
();
75
/** Called when the current item selectio has changed. */
76
void
onSelectionChanged
(QTreeWidgetItem *cur, QTreeWidgetItem *prev);
77
/** Called when the user requests a context menu on a circuit or stream in
78
* the list and displays a context menu appropriate for whichever type of
79
* item is currently selected. */
80
void
customContextMenuRequested
(
const
QPoint &pos);
81
/** Closes all selected circuits or streams. */
82
void
closeSelectedConnections
();
83
84
private
:
85
/** Removes the given circuit item and all streams on that circuit. */
86
void
removeCircuit
(
CircuitItem
*circuit);
87
/** Removes the given stream item. */
88
void
removeStream
(
StreamItem
*stream);
89
/** Finds the circuit with the given ID. */
90
CircuitItem
*
findCircuitItem
(
const
CircuitId
&circid);
91
/** Finds the stream with the given ID. */
92
StreamItem
*
findStreamItem
(
const
StreamId
&streamid);
93
/** Schedules the given circuit item to be removed after the given timeout. */
94
void
scheduleCircuitRemoval
(
CircuitItem
*circuit,
int
delay);
95
/** Schedules a stream to be removed after the given timeout. */
96
void
scheduleStreamRemoval
(
StreamItem
*stream,
int
delay);
97
98
/** List of circuit items to be removed. */
99
QList<CircuitItem *>
_circuitRemovalList
;
100
/** List of stream items to be removed. */
101
QList<StreamItem *>
_streamRemovalList
;
102
};
103
104
#endif
105
Generated on Thu Dec 6 2012 04:33:16 for Vidalia by
1.8.2