[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[vidalia-svn] r2639: Merge the UPnP test dialog and related files into trunk. (in vidalia: . trunk trunk/src/vidalia trunk/src/vidalia/config trunk/src/vidalia/res trunk/src/vidalia/res/48x48)
Author: edmanm
Date: 2008-06-01 19:42:57 -0400 (Sun, 01 Jun 2008)
New Revision: 2639
Added:
vidalia/trunk/LICENSE-LGPLV3
vidalia/trunk/src/vidalia/config/upnptestdialog.cpp
vidalia/trunk/src/vidalia/config/upnptestdialog.h
vidalia/trunk/src/vidalia/config/upnptestdialog.ui
vidalia/trunk/src/vidalia/res/48x48/modem.png
Modified:
vidalia/
vidalia/trunk/LICENSE
vidalia/trunk/src/vidalia/CMakeLists.txt
vidalia/trunk/src/vidalia/res/vidalia_common.qrc
Log:
r413@thebe: edmanm | 2008-06-01 19:31:12 -0400
Merge the UPnP test dialog and related files into trunk.
Property changes on: vidalia
___________________________________________________________________
svk:merge ticket from /local/vidalia [r413] on 45a62a8a-8088-484c-baad-c7b3e776dd32
Modified: vidalia/trunk/LICENSE
===================================================================
--- vidalia/trunk/LICENSE 2008-06-01 23:42:53 UTC (rev 2638)
+++ vidalia/trunk/LICENSE 2008-06-01 23:42:57 UTC (rev 2639)
@@ -75,6 +75,33 @@
===================================================================
+Vidalia incorporates icons from KDE's Oxygen icon theme. It is
+licensed as follows:
+
+ Copyright (C) 2007 David Vignoni <david@xxxxxxxxxxxxx>
+ Copyright (C) 2007 Johann Ollivier Lapeyre <johann@xxxxxxxxxxxxxxxx>
+ Copyright (C) 2007 Kenneth Wimer <kwwii@xxxxxxxxxxxxxx>
+ Copyright (C) 2007 Nuno Fernades Pinheiro <nf.pinheiro@xxxxxxxxx>
+ Copyright (C) 2007 Riccardo Iaconelli <riccardo@xxxxxxxxxxxxxxxx>
+ Copyright (C) 2007 David Miller <miller@xxxxxxxxxxxxxxxx>
+
+and others
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public
+License as published by the Free Software Foundation; either
+version 3 of the License, or (at your option) any later version.
+
+This library 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
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with this library. If not, see <http://www.gnu.org/licenses/>.
+
+===================================================================
+
Tor is distributed under this license:
Copyright (c) 2001-2004, Roger Dingledine
@@ -203,3 +230,38 @@
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
DATABASE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+===============================================================================
+
+Vidalia uses the MiniUPnPc library for UPnP support. It is licensed as
+follows:
+
+ Copyright (c) 2005-2007, Thomas BERNARD
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+ * Neither the names of the copyright owners nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
Copied: vidalia/trunk/LICENSE-LGPLV3 (from rev 2591, vidalia/branches/upnp/LICENSE-LGPLV3)
===================================================================
--- vidalia/trunk/LICENSE-LGPLV3 (rev 0)
+++ vidalia/trunk/LICENSE-LGPLV3 2008-06-01 23:42:57 UTC (rev 2639)
@@ -0,0 +1,165 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
Modified: vidalia/trunk/src/vidalia/CMakeLists.txt
===================================================================
--- vidalia/trunk/src/vidalia/CMakeLists.txt 2008-06-01 23:42:53 UTC (rev 2638)
+++ vidalia/trunk/src/vidalia/CMakeLists.txt 2008-06-01 23:42:57 UTC (rev 2639)
@@ -94,10 +94,12 @@
set(vidalia_SRCS ${vidalia_SRCS}
config/upnpcontrol.cpp
config/upnpcontrolthread.cpp
+ config/upnptestdialog.cpp
)
qt4_wrap_cpp(vidalia_SRCS
config/upnpcontrol.h
config/upnpcontrolthread.h
+ config/upnptestdialog.h
)
endif(USE_MINIUPNPC)
@@ -204,6 +206,9 @@
log/messagelog.ui
network/netviewer.ui
)
+if (USE_MINIUPNPC)
+ qt4_wrap_ui(vidalia_SRCS config/upnptestdialog.ui)
+endif(USE_MINIUPNPC)
## Add the resource files (icons, etc.)
qt4_add_resources(vidalia_SRCS
Copied: vidalia/trunk/src/vidalia/config/upnptestdialog.cpp (from rev 2635, vidalia/branches/upnp/src/vidalia/config/upnptestdialog.cpp)
===================================================================
--- vidalia/trunk/src/vidalia/config/upnptestdialog.cpp (rev 0)
+++ vidalia/trunk/src/vidalia/config/upnptestdialog.cpp 2008-06-01 23:42:57 UTC (rev 2639)
@@ -0,0 +1,160 @@
+/*
+** This file is part of Vidalia, and is subject to the license terms in the
+** LICENSE file, found in the top level directory of this distribution. If
+** you did not receive the LICENSE file with this file, you may obtain it
+** from the Vidalia source package distributed by the Vidalia Project at
+** http://www.vidalia-project.net/. No part of Vidalia, including this file,
+** may be copied, modified, propagated, or distributed except according to
+** the terms described in the LICENSE file.
+*/
+
+/*
+** \file upnptestdialog.cpp
+** \version $Id: $
+** \brief Dialog that displays the progress of a UPnP configuration test
+*/
+
+#include "upnptestdialog.h"
+
+
+/** Default constructor. <b>orPort</b> and <b>dirPort</b> specify the ports
+ * used to test UPnP port forwarding. The original UPnP state will be restored
+ * when the test dialog is closed. */
+UPNPTestDialog::UPNPTestDialog(quint16 orPort, quint16 dirPort, QWidget *parent)
+ : QDialog(parent), _orPort(orPort), _dirPort(dirPort)
+{
+ ui.setupUi(this);
+ _upnp = UPNPControl::instance();
+
+ ui.buttonBox->setStandardButtons(QDialogButtonBox::Close);
+
+ ui.progressBar->setValue(0);
+ ui.progressBar->setFormat("");
+ ui.progressBar->setMinimum(0);
+ ui.progressBar->setMaximum(_upnp->discoverTimeout()/500 + 4);
+
+ _discoverTimer.setInterval(500);
+ connect(&_discoverTimer, SIGNAL(timeout()), this, SLOT(discoverTimeout()));
+ connect(ui.buttonBox, SIGNAL(clicked(QAbstractButton*)),
+ this, SLOT(clicked(QAbstractButton*)));
+
+ _upnp->getDesiredState(&_oldDirPort, &_oldOrPort);
+}
+
+/** Shows or hides the dialog based on <b>visible</b>. The UPnP test will be
+ * started when the dialog is first shown. */
+void
+UPNPTestDialog::setVisible(bool visible)
+{
+ QWidget::setVisible(visible);
+
+ if (visible)
+ startTest();
+ else
+ _upnp->setDesiredState(_oldDirPort, _oldOrPort);
+}
+
+/** Initiates a UPnP test. */
+void
+UPNPTestDialog::startTest()
+{
+ ui.buttonBox->setEnabled(false);
+ ui.progressBar->setValue(0);
+
+ connect(UPNPControl::instance(), SIGNAL(stateChanged(UPNPControl::UPNPState)),
+ this, SLOT(upnpStateChanged(UPNPControl::UPNPState)));
+
+ UPNPControl::instance()->setDesiredState(_dirPort, _orPort);
+}
+
+/** Called when the UPnP test successfully enables port forwarding. Enables
+ * the Close button, allowing the user to exit the test dialog. */
+void
+UPNPTestDialog::testSuccessful()
+{
+ ui.buttonBox->setEnabled(true);
+ ui.buttonBox->setStandardButtons(QDialogButtonBox::Close);
+
+ disconnect(UPNPControl::instance(), 0, this, 0);
+}
+
+/** Called when the UPnP test fails due to an error. Enables the Close and
+ * Retry buttons, allowing the user to either rerun the test or give up. */
+void
+UPNPTestDialog::testFailed()
+{
+ ui.buttonBox->setEnabled(true);
+ ui.buttonBox->setStandardButtons(QDialogButtonBox::Retry
+ | QDialogButtonBox::Close);
+
+ disconnect(UPNPControl::instance(), 0, this, 0);
+}
+
+/** Updates the progress bar to indicate the device discovery portion of the
+ * test is still in progress. */
+void
+UPNPTestDialog::discoverTimeout()
+{
+ ui.progressBar->setValue(ui.progressBar->value()+1);
+}
+
+/** Updates the test UI based on the UPnP <b>state</b>. */
+void
+UPNPTestDialog::upnpStateChanged(UPNPControl::UPNPState state)
+{
+ switch (state) {
+ case UPNPControl::DiscoverState:
+ _discoverTimer.start();
+ ui.progressBar->setValue(ui.progressBar->value()+1);
+ ui.lblCurrentState->setText(tr("Discovering UPnP-enabled devices"));
+ break;
+
+ case UPNPControl::UpdatingDirPortState:
+ ui.progressBar->setValue(ui.progressBar->value()+1);
+ ui.lblCurrentState->setText(tr("Updating directory port mapping"));
+ break;
+
+ case UPNPControl::UpdatingORPortState:
+ ui.progressBar->setValue(ui.progressBar->value()+1);
+ ui.lblCurrentState->setText(tr("Updating relay port mapping"));
+ break;
+
+ case UPNPControl::ForwardingCompleteState:
+ ui.progressBar->setValue(ui.progressBar->maximum());
+ ui.lblCurrentState->setText(tr("Test completed successfully!"));
+ testSuccessful();
+ break;
+
+ case UPNPControl::ErrorState:
+ ui.progressBar->setValue(ui.progressBar->maximum());
+ ui.lblCurrentState->setText(UPNPControl::instance()->errorString());
+ testFailed();
+ break;
+
+ default:
+ break;
+ }
+ if (state != UPNPControl::DiscoverState)
+ _discoverTimer.stop();
+}
+
+/** Called when a user clicks on a button in the dialog's button box. If Retry
+ * is clicked, another UPnP test will be conducted. If Close is clicked, then
+ * the dialog is closed and the original UPnP state restored. */
+void
+UPNPTestDialog::clicked(QAbstractButton *button)
+{
+ switch (ui.buttonBox->standardButton(button)) {
+ case QDialogButtonBox::Retry:
+ startTest();
+ break;
+
+ case QDialogButtonBox::Close:
+ done(0);
+ break;
+
+ default:
+ break;
+ }
+}
+
Copied: vidalia/trunk/src/vidalia/config/upnptestdialog.h (from rev 2633, vidalia/branches/upnp/src/vidalia/config/upnptestdialog.h)
===================================================================
--- vidalia/trunk/src/vidalia/config/upnptestdialog.h (rev 0)
+++ vidalia/trunk/src/vidalia/config/upnptestdialog.h 2008-06-01 23:42:57 UTC (rev 2639)
@@ -0,0 +1,84 @@
+/*
+** This file is part of Vidalia, and is subject to the license terms in the
+** LICENSE file, found in the top level directory of this distribution. If
+** you did not receive the LICENSE file with this file, you may obtain it
+** from the Vidalia source package distributed by the Vidalia Project at
+** http://www.vidalia-project.net/. No part of Vidalia, including this file,
+** may be copied, modified, propagated, or distributed except according to
+** the terms described in the LICENSE file.
+*/
+
+/*
+** \file upnptestdialog.h
+** \version $Id: $
+** \brief Dialog that displays the progress of a UPnP configuration test
+*/
+
+#ifndef _UPNPTESTDIALOG_H
+#define _UPNPTESTDIALOG_H
+
+#include <QDialog>
+#include <QAbstractButton>
+#include <QTimer>
+
+#include "ui_upnptestdialog.h"
+#include "upnpcontrol.h"
+
+
+class UPNPTestDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ /** Default constructor. <b>orPort</b> and <b>dirPort</b> specify the ports
+ * used to test UPnP port forwarding. The original UPnP state will be
+ * restored when the test dialog is closed. */
+ UPNPTestDialog(quint16 orPort, quint16 dirPort, QWidget *parent = 0);
+
+protected slots:
+ /** Shows or hides the dialog based on <b>visible</b>. The UPnP test will be
+ * started when the dialog is first shown. */
+ void setVisible(bool visible);
+
+ /** Called when a user clicks on a button in the dialog's button box. If
+ * Retry is clicked, another UPnP test will be conducted. If Close is clicked,
+ * then the dialog is closed and the original UPnP state restored. */
+ void clicked(QAbstractButton *button);
+
+ /** Updates the test UI based on the UPnP <b>state</b>. */
+ void upnpStateChanged(UPNPControl::UPNPState state);
+
+ /** Updates the progress bar to indicate the device discovery portion of the
+ * test is still in progress. */
+ void discoverTimeout();
+
+protected:
+ /** Initiates a UPnP test. */
+ void startTest();
+
+ /** Called when the UPnP test successfully enables port forwarding. Enables
+ * the Close button, allowing the user to exit the test dialog. */
+ void testSuccessful();
+
+ /** Called when the UPnP test fails due to an error. Enables the Close and
+ * Retry buttons, allowing the user to either rerun the test or give up. */
+ void testFailed();
+
+private:
+ /** Pointer to the UPNPControl singleton instance. */
+ UPNPControl *_upnp;
+
+ /** Timer used to update the progress bar while during the device discovery
+ * portion of the test. */
+ QTimer _discoverTimer;
+
+ quint16 _oldOrPort; /**< Original (pre-test) forwarded ORPort. */
+ quint16 _oldDirPort; /**< Original (pre-test) forwarded DirPort. */
+ quint16 _orPort; /**< ORPort used during the test. */
+ quint16 _dirPort; /**< DirPort used during the test. */
+
+ Ui::UPNPTestDialog ui;
+};
+
+#endif
+
Copied: vidalia/trunk/src/vidalia/config/upnptestdialog.ui (from rev 2630, vidalia/branches/upnp/src/vidalia/config/upnptestdialog.ui)
===================================================================
--- vidalia/trunk/src/vidalia/config/upnptestdialog.ui (rev 0)
+++ vidalia/trunk/src/vidalia/config/upnptestdialog.ui 2008-06-01 23:42:57 UTC (rev 2639)
@@ -0,0 +1,100 @@
+<ui version="4.0" >
+ <class>UPNPTestDialog</class>
+ <widget class="QDialog" name="UPNPTestDialog" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>389</width>
+ <height>150</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>Testing UPnP Support</string>
+ </property>
+ <property name="windowIcon" >
+ <iconset resource="../res/vidalia_common.qrc" >:/images/48x48/modem.png</iconset>
+ </property>
+ <property name="modal" >
+ <bool>true</bool>
+ </property>
+ <widget class="QDialogButtonBox" name="buttonBox" >
+ <property name="geometry" >
+ <rect>
+ <x>30</x>
+ <y>110</y>
+ <width>341</width>
+ <height>32</height>
+ </rect>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons" >
+ <set>QDialogButtonBox::Close|QDialogButtonBox::Retry</set>
+ </property>
+ <property name="centerButtons" >
+ <bool>false</bool>
+ </property>
+ </widget>
+ <widget class="QProgressBar" name="progressBar" >
+ <property name="geometry" >
+ <rect>
+ <x>20</x>
+ <y>60</y>
+ <width>351</width>
+ <height>23</height>
+ </rect>
+ </property>
+ <property name="value" >
+ <number>24</number>
+ </property>
+ </widget>
+ <widget class="QLabel" name="lblUpnpPixmap" >
+ <property name="geometry" >
+ <rect>
+ <x>20</x>
+ <y>10</y>
+ <width>51</width>
+ <height>48</height>
+ </rect>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="pixmap" >
+ <pixmap resource="../res/vidalia_common.qrc" >:/images/48x48/modem.png</pixmap>
+ </property>
+ </widget>
+ <widget class="Line" name="line" >
+ <property name="geometry" >
+ <rect>
+ <x>20</x>
+ <y>90</y>
+ <width>351</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QLabel" name="lblCurrentState" >
+ <property name="geometry" >
+ <rect>
+ <x>80</x>
+ <y>30</y>
+ <width>291</width>
+ <height>16</height>
+ </rect>
+ </property>
+ <property name="text" >
+ <string>Testing Universal Plug & Play Support</string>
+ </property>
+ </widget>
+ </widget>
+ <resources>
+ <include location="../res/vidalia_common.qrc" />
+ </resources>
+ <connections />
+</ui>
Copied: vidalia/trunk/src/vidalia/res/48x48/modem.png (from rev 2590, vidalia/branches/upnp/src/vidalia/res/48x48/modem.png)
===================================================================
(Binary files differ)
Modified: vidalia/trunk/src/vidalia/res/vidalia_common.qrc
===================================================================
--- vidalia/trunk/src/vidalia/res/vidalia_common.qrc 2008-06-01 23:42:53 UTC (rev 2638)
+++ vidalia/trunk/src/vidalia/res/vidalia_common.qrc 2008-06-01 23:42:57 UTC (rev 2639)
@@ -83,6 +83,7 @@
</qresource>
<qresource prefix="/images">
<file>48x48/applications-internet.png</file>
+ <file>48x48/modem.png</file>
<file>48x48/network-server.png</file>
<file>48x48/start-tor.png</file>
<file>48x48/stop-tor.png</file>