[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[vidalia-svn] r3483: Backport r3482 to Vidalia 0.1.x. (in vidalia/branches/vidalia-0.1: . debian src/vidalia/config)
Author: edmanm
Date: 2009-01-30 22:14:27 -0500 (Fri, 30 Jan 2009)
New Revision: 3483
Modified:
vidalia/branches/vidalia-0.1/
vidalia/branches/vidalia-0.1/CHANGELOG
vidalia/branches/vidalia-0.1/debian/
vidalia/branches/vidalia-0.1/src/vidalia/config/servicepage.cpp
vidalia/branches/vidalia-0.1/src/vidalia/config/servicepage.h
Log:
Backport r3482 to Vidalia 0.1.x.
Property changes on: vidalia/branches/vidalia-0.1
___________________________________________________________________
Added: svn:mergeinfo
+ /vidalia/trunk:3482
Modified: vidalia/branches/vidalia-0.1/CHANGELOG
===================================================================
--- vidalia/branches/vidalia-0.1/CHANGELOG 2009-01-31 03:10:32 UTC (rev 3482)
+++ vidalia/branches/vidalia-0.1/CHANGELOG 2009-01-31 03:14:27 UTC (rev 3483)
@@ -11,6 +11,7 @@
'getinfo addr-mappings'. (Ticket #454)
o Backport a change that removes a verticalSpacing property from a .ui
file, so Vidalia 0.1.x will still build on Qt 4.2. (Ticket #442)
+ o Fix some memory leaks in the hidden service configuration dialog.
0.1.10 02-Nov-2008
Property changes on: vidalia/branches/vidalia-0.1/debian
___________________________________________________________________
Deleted: svn:mergeinfo
-
Modified: vidalia/branches/vidalia-0.1/src/vidalia/config/servicepage.cpp
===================================================================
--- vidalia/branches/vidalia-0.1/src/vidalia/config/servicepage.cpp 2009-01-31 03:10:32 UTC (rev 3482)
+++ vidalia/branches/vidalia-0.1/src/vidalia/config/servicepage.cpp 2009-01-31 03:14:27 UTC (rev 3483)
@@ -28,13 +28,6 @@
{
/* Invoke the Qt Designer generated object setup routine */
ui.setupUi(this);
- /* Keep a pointer to the TorControl object used to talk to Tor */
- _torControl = Vidalia::torControl();
- /* Create Tor settings objects */
- _torSettings = new TorSettings;
- /* Keep a pointer to the ServiceSettings object used to store
- * the configuration */
- _serviceSettings = new ServiceSettings(_torControl);
/* A QMap, mapping from the row number to the Entity for
* all services */
_services = new QMap<int, Service>();
@@ -66,16 +59,19 @@
/** Destructor */
ServicePage::~ServicePage()
{
- delete _serviceSettings;
+ delete _services;
+ delete _torServices;
}
/** Saves changes made to settings on the Server settings page. */
bool
ServicePage::save(QString &errmsg)
{
+ ServiceSettings serviceSettings(Vidalia::torControl());
QList<Service> serviceList;
QList<Service> publishedServices;
int index = 0;
+
while(index < ui.serviceWidget->rowCount()) {
QString address = ui.serviceWidget->item(index,0)->text();
QString virtualPort = ui.serviceWidget->item(index,1)->text();
@@ -102,13 +98,13 @@
_services = new QMap<int, Service>();
sList.setServices(_services->values());
}
- _serviceSettings->setServices(sList);
+ serviceSettings.setServices(sList);
if(publishedServices.size() > 0) {
startServicesInTor(publishedServices);
} else {
QString errmsg1 = tr("Error while trying to unpublish all services");
QString &errmsg = errmsg1;
- _serviceSettings->unpublishAllServices(&errmsg);
+ serviceSettings.unpublishAllServices(&errmsg);
}
return true;
} else {
@@ -137,6 +133,7 @@
void
ServicePage::startServicesInTor(QList<Service> services)
{
+ ServiceSettings serviceSettings(Vidalia::torControl());
QString serviceConfString;
QString errmsg = "Error while trying to publish services.";
QListIterator<Service> it(services);
@@ -151,26 +148,28 @@
temp.physicalAddressPort())));
serviceConfString.append(" " + temp.additionalServiceOptions());
}
- _serviceSettings->applyServices(serviceConfString, &errmsg);
+ serviceSettings.applyServices(serviceConfString, &errmsg);
}
/** Loads previously saved settings */
void
ServicePage::load()
{
+ ServiceSettings serviceSettings(Vidalia::torControl());
+ QList<Service> torServiceList;
+
ui.removeButton->setEnabled(false);
ui.copyButton->setEnabled(false);
ui.browseButton->setEnabled(false);
// get all services
- _services = new QMap<int, Service>();
- _torServices = new QMap<QString, Service>();
- QList<Service> torServiceList;
+ _services->clear();
+ _torServices->clear();
- QString torConfigurationString = _serviceSettings->getHiddenServiceDirectories();
+ QString torConfigurationString = serviceSettings.getHiddenServiceDirectories();
torServiceList = extractSingleServices(torConfigurationString);
QList<Service> completeList = torServiceList;
// the services stored with vidalia
- ServiceList serviceList = _serviceSettings->getServices();
+ ServiceList serviceList = serviceSettings.getServices();
QList<Service> serviceSettingsList = serviceList.services();
QListIterator<Service> it(serviceSettingsList);
// check whether a service is already in the list because he is published
@@ -306,7 +305,7 @@
/** this method creates/displays the values for each service
* shown in the service listing */
void
-ServicePage::initServiceTable(QMap<int, Service>* _services)
+ServicePage::initServiceTable(QMap<int, Service>* services)
{
// clean the widget
int rows = ui.serviceWidget->rowCount();
@@ -315,8 +314,8 @@
}
//for each service
int index = 0;
- while(index < _services->size()) {
- Service tempService = _services->value(index);
+ while(index < services->size()) {
+ Service tempService = services->value(index);
ui.serviceWidget->insertRow(index);
QTableWidgetItem *cboxitem = new QTableWidgetItem();
cboxitem->setFlags(Qt::ItemIsSelectable);
Modified: vidalia/branches/vidalia-0.1/src/vidalia/config/servicepage.h
===================================================================
--- vidalia/branches/vidalia-0.1/src/vidalia/config/servicepage.h 2009-01-31 03:10:32 UTC (rev 3482)
+++ vidalia/branches/vidalia-0.1/src/vidalia/config/servicepage.h 2009-01-31 03:14:27 UTC (rev 3483)
@@ -63,16 +63,11 @@
void valueChanged();
private:
- /** A TorControl object used to talk to Tor. */
- TorControl* _torControl;
- /** A TorSettings object used for saving/loading the Tor settings */
- TorSettings *_torSettings;
- /** A ServiceSettings object used to load/save the services. */
- ServiceSettings* _serviceSettings;
/** A QMap, mapping from the row number in the table to the service Entity */
QMap<int, Service>* _services;
/** A QList, consisting of all running services before vidalia starts */
QMap<QString, Service>* _torServices;
+
/** Qt Designer generated object */
Ui::ServicePage ui;
};