[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [vidalia/alpha] option to customize and store state of layout in Network View tab
commit 47b6646abaab96e6973d8015fe104ae726dd300e
Author: Sebastian Baginski <sebthestampede@xxxxxxxxx>
Date: Thu Mar 29 15:02:11 2012 +0200
option to customize and store state of layout in Network View tab
---
changes/bug2727 | 3 +
src/vidalia/network/NetViewer.cpp | 33 ++-
src/vidalia/network/NetViewer.h | 2 +
src/vidalia/network/NetViewer.ui | 618 ++++++++++++++++++++-----------------
4 files changed, 364 insertions(+), 292 deletions(-)
diff --git a/changes/bug2727 b/changes/bug2727
new file mode 100644
index 0000000..1095804
--- /dev/null
+++ b/changes/bug2727
@@ -0,0 +1,3 @@
+ New Features:
+ o In Network View, store layout of network map panes.
+ Fixes ticket 2727.
diff --git a/src/vidalia/network/NetViewer.cpp b/src/vidalia/network/NetViewer.cpp
index 19871cb..4f7a4b8 100644
--- a/src/vidalia/network/NetViewer.cpp
+++ b/src/vidalia/network/NetViewer.cpp
@@ -39,11 +39,23 @@
#define MAX_RESOLVE_QUEUE_DELAY (30*1000)
#endif
+/* Settings key for main layout splitter state */
+#define SETTING_SPLITTER_MAIN "NetViewSplitMain"
+/* Key for network map splitter */
+#define SETTING_SPLITTER_MAP "NetViewSplitMap"
+/* Key for router description splitter */
+#define SETTING_SPLITTER_ROUT "NetViewSplitRouter"
+
+/* Default values for splitter states. */
+#define DEFAULT_SPLITTER_MAIN QByteArray()
+#define DEFAULT_SPLITTER_MAP QByteArray()
+#define DEFAULT_SPLITTER_ROUT QByteArray()
+
/** Constructor. Loads settings from VidaliaSettings.
* \param parent The parent widget of this NetViewer object.\
*/
NetViewer::NetViewer(QWidget *parent)
- : VidaliaTab(tr("Network Map"), "", parent)
+ : VidaliaTab(tr("Network Map"), "NetViewer", parent)
{
/* Invoke Qt Designer generated QObject setup routine */
ui.setupUi(this);
@@ -162,6 +174,25 @@ NetViewer::NetViewer(QWidget *parent)
tb->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
ui.horizontalLayout->addWidget(tb);
+
+ /* Restore the state of each splitter */
+ ui.spltMain->restoreState(getSetting(SETTING_SPLITTER_MAIN,
+ DEFAULT_SPLITTER_MAIN)
+ .toByteArray());
+ ui.spltMap->restoreState(getSetting(SETTING_SPLITTER_MAP,
+ DEFAULT_SPLITTER_MAP)
+ .toByteArray());
+ ui.spltRouter->restoreState(getSetting(SETTING_SPLITTER_ROUT,
+ DEFAULT_SPLITTER_ROUT)
+ .toByteArray());
+}
+
+/** Destructor. Saves splitter states to store layout. */
+NetViewer::~NetViewer()
+{
+ saveSetting(SETTING_SPLITTER_MAIN, ui.spltMain->saveState());
+ saveSetting(SETTING_SPLITTER_MAP, ui.spltMap->saveState());
+ saveSetting(SETTING_SPLITTER_ROUT, ui.spltRouter->saveState());
}
/** Called when the user changes the UI translation. */
diff --git a/src/vidalia/network/NetViewer.h b/src/vidalia/network/NetViewer.h
index c442a8c..b4f4ec3 100644
--- a/src/vidalia/network/NetViewer.h
+++ b/src/vidalia/network/NetViewer.h
@@ -45,6 +45,8 @@ class NetViewer : public VidaliaTab
public:
/** Default constructor */
NetViewer(QWidget* parent = 0);
+ /** Destructor */
+ ~NetViewer();
public slots:
/** Displays the network map window. */
diff --git a/src/vidalia/network/NetViewer.ui b/src/vidalia/network/NetViewer.ui
index b5477a3..c4db045 100644
--- a/src/vidalia/network/NetViewer.ui
+++ b/src/vidalia/network/NetViewer.ui
@@ -7,315 +7,351 @@
<x>0</x>
<y>0</y>
<width>740</width>
- <height>628</height>
+ <height>614</height>
</rect>
</property>
<property name="windowTitle">
<string>Network Map</string>
</property>
- <layout class="QVBoxLayout" name="verticalLayout_7">
+ <layout class="QVBoxLayout" name="verticalLayout_10">
<item>
- <layout class="QHBoxLayout" name="horizontalLayout"/>
- </item>
- <item>
- <layout class="QGridLayout" name="notificationLayout">
- <item row="1" column="0">
- <widget class="QLabel" name="lblOffline">
- <property name="text">
- <string><a href="server.offline">Why is my relay offline?</a></string>
- </property>
- </widget>
- </item>
- <item row="2" column="0">
- <widget class="QLabel" name="lblConsensus">
- <property name="text">
- <string>If your relay isn't listed among the others, it may be because it doesn't have a Running flag yet. <a href="server.consensus">What's this?</a></string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QGridLayout" name="gridLayout_6">
- <item row="0" column="1">
- <widget class="QLineEdit" name="lineRouterSearch">
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>30</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>16777215</width>
- <height>30</height>
- </size>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="RouterListWidget" name="treeRouterList">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
- <horstretch>1</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>175</width>
- <height>0</height>
- </size>
- </property>
- <property name="contextMenuPolicy">
- <enum>Qt::DefaultContextMenu</enum>
- </property>
- <property name="statusTip">
- <string/>
- </property>
- <property name="selectionMode">
- <enum>QAbstractItemView::ExtendedSelection</enum>
- </property>
- <property name="indentation">
+ <widget class="QSplitter" name="spltMain">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <widget class="QWidget" name="layoutWidget">
+ <layout class="QVBoxLayout" name="verticalLayout_9" stretch="0,1">
+ <item>
+ <layout class="QGridLayout" name="notificationLayout">
+ <item row="1" column="0">
+ <widget class="QLabel" name="lblOffline">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string><a href="server.offline">Why is my relay offline?</a></string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="lblConsensus">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>If your relay isn't listed among the others, it may be because it doesn't have a Running flag yet. <a href="server.consensus">What's this?</a></string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QSplitter" name="spltMap">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <widget class="QWidget" name="layoutWidget_1">
+ <layout class="QVBoxLayout" name="verticalLayout_8">
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ </layout>
+ </item>
+ <item>
+ <widget class="QFrame" name="frmMap">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+ <horstretch>100</horstretch>
+ <verstretch>100</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>400</width>
+ <height>300</height>
+ </size>
+ </property>
+ <property name="contextMenuPolicy">
+ <enum>Qt::NoContextMenu</enum>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Raised</enum>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_5">
+ <item row="0" column="0">
+ <layout class="QGridLayout" name="gridLayout"/>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="layoutWidget_2">
+ <layout class="QVBoxLayout" name="verticalLayout_7">
+ <item>
+ <widget class="QLineEdit" name="lineRouterSearch">
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>30</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>30</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="RouterListWidget" name="treeRouterList">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>175</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="contextMenuPolicy">
+ <enum>Qt::DefaultContextMenu</enum>
+ </property>
+ <property name="statusTip">
+ <string/>
+ </property>
+ <property name="selectionMode">
+ <enum>QAbstractItemView::ExtendedSelection</enum>
+ </property>
+ <property name="indentation">
+ <number>0</number>
+ </property>
+ <property name="sortingEnabled">
+ <bool>true</bool>
+ </property>
+ <property name="columnCount">
+ <number>3</number>
+ </property>
+ <column>
+ <property name="text">
+ <string/>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string/>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Relay</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QSplitter" name="spltRouter">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <widget class="QTabWidget" name="tabWidget">
+ <property name="currentIndex">
<number>0</number>
</property>
- <property name="sortingEnabled">
- <bool>true</bool>
- </property>
- <property name="columnCount">
- <number>3</number>
- </property>
- <column>
- <property name="text">
- <string/>
- </property>
- </column>
- <column>
- <property name="text">
- <string/>
- </property>
- </column>
- <column>
- <property name="text">
- <string>Relay</string>
- </property>
- </column>
+ <widget class="QWidget" name="tab">
+ <attribute name="title">
+ <string>Exit circuits</string>
+ </attribute>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="CircuitListWidget" name="treeCircuitList">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>100</horstretch>
+ <verstretch>100</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>300</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="contextMenuPolicy">
+ <enum>Qt::CustomContextMenu</enum>
+ </property>
+ <property name="statusTip">
+ <string/>
+ </property>
+ <property name="sortingEnabled">
+ <bool>false</bool>
+ </property>
+ <property name="columnCount">
+ <number>2</number>
+ </property>
+ <column>
+ <property name="text">
+ <string>Connection</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Status</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab_2">
+ <attribute name="title">
+ <string>Internal circuits</string>
+ </attribute>
+ <layout class="QVBoxLayout" name="verticalLayout_4">
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <item>
+ <widget class="CircuitListWidget" name="treeInternalCircuitList">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>100</horstretch>
+ <verstretch>100</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>300</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="contextMenuPolicy">
+ <enum>Qt::CustomContextMenu</enum>
+ </property>
+ <property name="statusTip">
+ <string/>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="sortingEnabled">
+ <bool>false</bool>
+ </property>
+ <property name="columnCount">
+ <number>2</number>
+ </property>
+ <column>
+ <property name="text">
+ <string>Connection</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Status</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab_3">
+ <attribute name="title">
+ <string>Hidden Service circuits</string>
+ </attribute>
+ <layout class="QVBoxLayout" name="verticalLayout_6">
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_5">
+ <item>
+ <widget class="CircuitListWidget" name="treeHSCircuitList">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>100</horstretch>
+ <verstretch>100</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>300</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="contextMenuPolicy">
+ <enum>Qt::CustomContextMenu</enum>
+ </property>
+ <property name="statusTip">
+ <string/>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="sortingEnabled">
+ <bool>false</bool>
+ </property>
+ <property name="columnCount">
+ <number>2</number>
+ </property>
+ <column>
+ <property name="text">
+ <string>Connection</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Status</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
</widget>
- </item>
- <item row="0" column="0" rowspan="2">
- <widget class="QFrame" name="frmMap">
+ <widget class="RouterDescriptorView" name="textRouterInfo">
<property name="sizePolicy">
- <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>100</horstretch>
<verstretch>100</verstretch>
</sizepolicy>
</property>
- <property name="minimumSize">
- <size>
- <width>400</width>
- <height>300</height>
- </size>
- </property>
<property name="contextMenuPolicy">
- <enum>Qt::NoContextMenu</enum>
- </property>
- <property name="frameShape">
- <enum>QFrame::StyledPanel</enum>
+ <enum>Qt::DefaultContextMenu</enum>
</property>
- <property name="frameShadow">
- <enum>QFrame::Raised</enum>
+ <property name="readOnly">
+ <bool>true</bool>
</property>
- <layout class="QGridLayout" name="gridLayout_5">
- <item row="0" column="0">
- <layout class="QGridLayout" name="gridLayout"/>
- </item>
- </layout>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <widget class="QSplitter" name="splitter">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <widget class="QTabWidget" name="tabWidget">
- <property name="currentIndex">
- <number>0</number>
- </property>
- <widget class="QWidget" name="tab">
- <attribute name="title">
- <string>Exit circuits</string>
- </attribute>
- <layout class="QVBoxLayout" name="verticalLayout_2">
- <item>
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <widget class="CircuitListWidget" name="treeCircuitList">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
- <horstretch>100</horstretch>
- <verstretch>100</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>300</width>
- <height>0</height>
- </size>
- </property>
- <property name="contextMenuPolicy">
- <enum>Qt::CustomContextMenu</enum>
- </property>
- <property name="statusTip">
- <string/>
- </property>
- <property name="sortingEnabled">
- <bool>false</bool>
- </property>
- <property name="columnCount">
- <number>2</number>
- </property>
- <column>
- <property name="text">
- <string>Connection</string>
- </property>
- </column>
- <column>
- <property name="text">
- <string>Status</string>
- </property>
- </column>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- <widget class="QWidget" name="tab_2">
- <attribute name="title">
- <string>Internal circuits</string>
- </attribute>
- <layout class="QVBoxLayout" name="verticalLayout_4">
- <item>
- <layout class="QVBoxLayout" name="verticalLayout_3">
- <item>
- <widget class="CircuitListWidget" name="treeInternalCircuitList">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
- <horstretch>100</horstretch>
- <verstretch>100</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>300</width>
- <height>0</height>
- </size>
- </property>
- <property name="contextMenuPolicy">
- <enum>Qt::CustomContextMenu</enum>
- </property>
- <property name="statusTip">
- <string/>
- </property>
- <property name="frameShape">
- <enum>QFrame::StyledPanel</enum>
- </property>
- <property name="frameShadow">
- <enum>QFrame::Sunken</enum>
- </property>
- <property name="sortingEnabled">
- <bool>false</bool>
- </property>
- <property name="columnCount">
- <number>2</number>
- </property>
- <column>
- <property name="text">
- <string>Connection</string>
- </property>
- </column>
- <column>
- <property name="text">
- <string>Status</string>
- </property>
- </column>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
</widget>
- <widget class="QWidget" name="tab_3">
- <attribute name="title">
- <string>Hidden Service circuits</string>
- </attribute>
- <layout class="QVBoxLayout" name="verticalLayout_6">
- <item>
- <layout class="QVBoxLayout" name="verticalLayout_5">
- <item>
- <widget class="CircuitListWidget" name="treeHSCircuitList">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
- <horstretch>100</horstretch>
- <verstretch>100</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>300</width>
- <height>0</height>
- </size>
- </property>
- <property name="contextMenuPolicy">
- <enum>Qt::CustomContextMenu</enum>
- </property>
- <property name="statusTip">
- <string/>
- </property>
- <property name="frameShape">
- <enum>QFrame::StyledPanel</enum>
- </property>
- <property name="frameShadow">
- <enum>QFrame::Sunken</enum>
- </property>
- <property name="sortingEnabled">
- <bool>false</bool>
- </property>
- <property name="columnCount">
- <number>2</number>
- </property>
- <column>
- <property name="text">
- <string>Connection</string>
- </property>
- </column>
- <column>
- <property name="text">
- <string>Status</string>
- </property>
- </column>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- </widget>
- <widget class="RouterDescriptorView" name="textRouterInfo">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
- <horstretch>100</horstretch>
- <verstretch>100</verstretch>
- </sizepolicy>
- </property>
- <property name="contextMenuPolicy">
- <enum>Qt::DefaultContextMenu</enum>
- </property>
- <property name="readOnly">
- <bool>true</bool>
- </property>
</widget>
</widget>
</item>
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits