[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[vidalia-svn] r2405: Some Bugfixing: - icons for buttons - putting service direct (vidalia/branches/hidden-services/src/vidalia/config)



Author: borkdomenik
Date: 2008-03-13 18:38:34 -0400 (Thu, 13 Mar 2008)
New Revision: 2405

Modified:
   vidalia/branches/hidden-services/src/vidalia/config/service.cpp
   vidalia/branches/hidden-services/src/vidalia/config/servicepage.cpp
   vidalia/branches/hidden-services/src/vidalia/config/servicepage.h
   vidalia/branches/hidden-services/src/vidalia/config/servicepage.ui
   vidalia/branches/hidden-services/src/vidalia/config/servicesettings.cpp
Log:
Some Bugfixing:
- icons for buttons
- putting service directory path into the service listing
- removed the complete hidden service directory groupbox
- bugfixing serialization service entity
- added label above servie listing
- added tooltips for each button
- service address column ist not any longer editable
- some more small changes

Modified: vidalia/branches/hidden-services/src/vidalia/config/service.cpp
===================================================================
--- vidalia/branches/hidden-services/src/vidalia/config/service.cpp	2008-03-13 04:49:47 UTC (rev 2404)
+++ vidalia/branches/hidden-services/src/vidalia/config/service.cpp	2008-03-13 22:38:34 UTC (rev 2405)
@@ -63,11 +63,8 @@
   out << myObj.virtualPort();
   out << myObj.physicalAddressPort();
   out << myObj.serviceDirectory();
-  if(myObj.enabled()) {
-  	out << "True";
-  } else {
-  	  out << "False";
-    }
+  out << myObj.enabled();
+  
   return out;
 }
 
@@ -78,21 +75,17 @@
   QString virtualPort;
   QString physicalAddressPort;
   QString serviceDirectory;
-  QString enabledS;
+  bool enabled;
 
   /* Read in from the data stream */
-  in >> serviceAddress >> virtualPort  >> physicalAddressPort >> serviceDirectory >> enabledS;
+  in >> serviceAddress >> virtualPort  >> physicalAddressPort >> serviceDirectory >> enabled;
 
   /* Set the appropriate class member variables */
   myObj.setServiceAddress(serviceAddress);
   myObj.setVirtualPort(virtualPort);
   myObj.setPhysicalAddressPort(physicalAddressPort);
   myObj.setServiceDirectory(serviceDirectory);
-  if(enabledS.compare("True") == 0) {
-  	myObj.setEnabled(true);
-  } else {
-  	  myObj.setEnabled(false);
-    }
+  myObj.setEnabled(enabled);
 
   /* Return the updated data stream */
   return in;

Modified: vidalia/branches/hidden-services/src/vidalia/config/servicepage.cpp
===================================================================
--- vidalia/branches/hidden-services/src/vidalia/config/servicepage.cpp	2008-03-13 04:49:47 UTC (rev 2404)
+++ vidalia/branches/hidden-services/src/vidalia/config/servicepage.cpp	2008-03-13 22:38:34 UTC (rev 2405)
@@ -45,15 +45,16 @@
   ui.serviceWidget->horizontalHeader()->setResizeMode(1,QHeaderView::Custom);
   ui.serviceWidget->horizontalHeader()->setResizeMode(2,QHeaderView::Custom);
   ui.serviceWidget->horizontalHeader()->setResizeMode(3,QHeaderView::Custom);
+  ui.serviceWidget->horizontalHeader()->setResizeMode(4,QHeaderView::Custom);
   ui.serviceWidget->horizontalHeader()->resizeSection(1, 100);
   ui.serviceWidget->horizontalHeader()->resizeSection(2, 125);
-  ui.serviceWidget->horizontalHeader()->resizeSection(3, 60);
+  ui.serviceWidget->horizontalHeader()->resizeSection(3, 155);
+  ui.serviceWidget->horizontalHeader()->resizeSection(4, 60);
   
   connect(ui.addButton, SIGNAL(clicked()), this, SLOT(addService()));
   connect(ui.removeButton, SIGNAL(clicked()), this, SLOT(removeService()));
   connect(ui.copyButton, SIGNAL(clicked()), this, SLOT(copyToClipboard()));
   connect(ui.browseButton, SIGNAL(clicked()), this, SLOT(browseDirectory()));
-  connect(ui.hiddenServiceDirLineEdit, SIGNAL(editingFinished()), this, SLOT(storeServiceDir()));
   connect(ui.serviceWidget, SIGNAL(itemClicked(QTableWidgetItem*)), this, SLOT(serviceSelectionChanged()));
 }
 
@@ -75,7 +76,7 @@
   	QString address = ui.serviceWidget->item(index,0)->text();
   	QString virtualPort = ui.serviceWidget->item(index,1)->text(); 
   	QString physicalAddress = ui.serviceWidget->item(index,2)->text();
-  	QString directoryPath = _services->value(index).serviceDirectory();
+  	QString directoryPath = ui.serviceWidget->item(index,3)->text();
   	bool enabled = _services->value(index).enabled();
   	Service temp(address, virtualPort, physicalAddress, directoryPath, enabled);
     serviceList.push_back(temp);
@@ -96,8 +97,7 @@
       }
     _serviceSettings->setServices(sList);
     if(publishedServices.size() > 0) {
-      startServicesInTor(publishedServices);
-      //VMessageBox::warning(this, tr("Tor Services:"), QString::number(publishedServices.size()), VMessageBox::Ok);	
+      startServicesInTor(publishedServices);	
     }
     return true;
   } else {
@@ -152,14 +152,18 @@
 void
 ServicePage::load()
 {
+  // disable the buttons whil no service is selected
+  ui.removeButton->setEnabled(false);
+  ui.copyButton->setEnabled(false);
+  ui.browseButton->setEnabled(false);
+  // get all services
   _services = new QMap<int, Service>();
   QList<Service> _torServices;
-  
+  // all service from tor
   QString conf = _serviceSettings->getHiddenServiceDirectories();
   _torServices = extractSingleServices(conf);
   QList<Service> completeList = _torServices;
-  //VMessageBox::warning(this, tr("Tor Services:"), QString::number(completeList.size()), VMessageBox::Ok);
-  
+  // the services stored with vidalia
   ServiceList serviceList = _serviceSettings->getServices();  
   QList<Service> serviceSettingsList = serviceList.services();  
   QListIterator<Service> it(serviceSettingsList);
@@ -187,17 +191,6 @@
 ServicePage::extractSingleServices(QString conf)
 {
   QList<Service> list;
-  
-//  QString teststr = "some kind of data\n and another kind of\n";
-//  teststr.append("hiddenservicedir /home/jars/workspace/testingtor/1/\n");
-//  teststr.append("hiddenserviceport 9053\n");
-//  teststr.append("hiddenservicenodes someNodeName\n");
-//  teststr.append("hiddenserviceexcludenodes anotherNode\n");
-//  teststr.append("hiddenservicedir /home/jars/workspace/testingtor/2/\n");
-//  teststr.append("hiddenserviceport 9054\n");
-//  teststr.append("hiddenservicedir /home/jars/workspace/testingtor/3/\n");
-//  teststr.append("hiddenserviceport 9055 127.0.0.1:9056");
-
   QStringList strList = conf.split("hiddenservicedir");
   strList.removeFirst();
   QListIterator<QString> it(strList);
@@ -282,6 +275,7 @@
     QTableWidgetItem *cboxitem = new QTableWidgetItem();
     cboxitem->setFlags(Qt::ItemIsSelectable);
     QTableWidgetItem *addressitem = new QTableWidgetItem();
+    addressitem->setFlags(Qt::ItemIsSelectable);
     if(tempService.enabled()) {
       cboxitem->setCheckState(Qt::Checked);
       addressitem->setText(tempService.serviceAddress());
@@ -293,7 +287,8 @@
     ui.serviceWidget->setItem(index, 0, addressitem);
     ui.serviceWidget->setItem(index, 1, new QTableWidgetItem(tempService.virtualPort(),0));
     ui.serviceWidget->setItem(index, 2, new QTableWidgetItem(tempService.physicalAddressPort(),0));
-    ui.serviceWidget->setItem(index, 3, cboxitem);
+    ui.serviceWidget->setItem(index, 3, new QTableWidgetItem(tempService.serviceDirectory(),0));
+    ui.serviceWidget->setItem(index, 4, cboxitem);
     index++;
   }
 }
@@ -303,21 +298,24 @@
 void
 ServicePage::addService()
 {
-  ui.hiddenServiceDirLineEdit->setText("");
   int rows = ui.serviceWidget->rowCount();
   ui.serviceWidget->insertRow(rows);
   QTableWidgetItem *address = new QTableWidgetItem("[Created by Tor]");
+  address->setFlags(Qt::ItemIsSelectable);
   QTableWidgetItem *dummy = new QTableWidgetItem();
   QTableWidgetItem *dummy2 = new QTableWidgetItem();
+  QTableWidgetItem *dummy3 = new QTableWidgetItem();
   QTableWidgetItem *cboxitem = new QTableWidgetItem();
   cboxitem->setFlags(Qt::ItemIsSelectable);
-  cboxitem->setCheckState(Qt::Unchecked);
+  cboxitem->setCheckState(Qt::Checked);
   cboxitem->setTextAlignment(Qt::AlignCenter);
   ui.serviceWidget->setItem(rows, 0, address);
   ui.serviceWidget->setItem(rows, 1, dummy);
   ui.serviceWidget->setItem(rows, 2, dummy2);
-  ui.serviceWidget->setItem(rows, 3, cboxitem);
+  ui.serviceWidget->setItem(rows, 3, dummy3);
+  ui.serviceWidget->setItem(rows, 4, cboxitem);
   Service s;
+  s.setEnabled(true);
   _services->insert(rows, s);
 }
 
@@ -327,11 +325,11 @@
 ServicePage::removeService()
 {
   int rows = ui.serviceWidget->rowCount();
-  if(rows < 1) {
+  int selrow = ui.serviceWidget->currentRow();
+  if(selrow < 0 || selrow >= _services->size()) {
   	VMessageBox::warning(this, tr("Error"), tr("Please select a Service."), VMessageBox::Ok);
   	return;
   } else {
-  	  int selrow = ui.serviceWidget->currentRow();
   	  ui.serviceWidget->removeRow(selrow);
   	  //decrease all other service keys
   	  for(int i = 0; i < (rows-selrow-1); i++) {
@@ -348,20 +346,17 @@
 void
 ServicePage::copyToClipboard()
 {
-  int rows = ui.serviceWidget->rowCount();
-  if(rows < 1) {
+  int selrow = ui.serviceWidget->currentRow();
+  if(selrow < 0 || selrow >= _services->size()) {
   	VMessageBox::warning(this, tr("Error"), tr("Please select a Service."), VMessageBox::Ok);
   	return;
   } else {
-      int selrow = ui.serviceWidget->currentRow();
-      if (selrow >= 0) {
-  	    QClipboard *clipboard = QApplication::clipboard();  
-        QString clipboardText;
-        QTableWidgetItem* selectedItem = ui.serviceWidget->item(selrow,0); 
-        clipboardText.append(selectedItem->text());
-        clipboard->setText(clipboardText);  
-      }  	
-  }
+  	  QClipboard *clipboard = QApplication::clipboard();  
+      QString clipboardText;
+      QTableWidgetItem* selectedItem = ui.serviceWidget->item(selrow,0); 
+      clipboardText.append(selectedItem->text());
+      clipboard->setText(clipboardText);  	
+    }
 }
 
 /** this method is called when the user clicks on the "Brows"-Button it opens
@@ -369,57 +364,43 @@
 void
 ServicePage::browseDirectory()
 {
-  int rows = ui.serviceWidget->rowCount();
-  if(rows < 1) {
+  int selrow = ui.serviceWidget->rowCount();
+  if(selrow < 0 || selrow >= _services->size()) {
   	VMessageBox::warning(this, tr("Error"), tr("Please select a Service."), VMessageBox::Ok);
   	return;
   } else {
-      int selrow = ui.serviceWidget->currentRow();
-      if (selrow >= 0) {
-        QString dirname = QFileDialog::getExistingDirectory(this, tr("Select Service Directory"),
+      QString dirname = QFileDialog::getExistingDirectory(this, tr("Select Service Directory"),
                        "", QFileDialog::ShowDirsOnly|QFileDialog::DontResolveSymlinks);
  
-        if (dirname.isEmpty()) {
-          return;
-        }
-        ui.hiddenServiceDirLineEdit->setText(dirname);
-        Service s = _services->take(selrow);
-        s.setServiceDirectory(dirname); 
-        _services->insert(selrow, s);
+      if (dirname.isEmpty()) {
+        return;
       }
+      ui.serviceWidget->item(selrow,3)->setText(dirname);
+      Service s = _services->take(selrow);
+      s.setServiceDirectory(dirname); 
+      _services->insert(selrow, s);
     }
 }    
 
-/** this method is called when the user finished editing the service driectory line edit*/
-void
-ServicePage::storeServiceDir()
-{
-  QString dir = ui.hiddenServiceDirLineEdit->text();
-  int row = ui.serviceWidget->currentRow();
-  if(row >= 0 && dir.isEmpty() == false) { 
-    if(_services->contains(row)) {
-      Service s = _services->take(row);
-      s.setServiceDirectory(dir);	
-      _services->insert(row, s);
-      ui.hiddenServiceDirLineEdit->setText(dir);
-    }
-  }
-}
-
 /** this method is called when the user selection of the service listing changed */
 void
 ServicePage::serviceSelectionChanged()
 {
-  int currentRow = ui.serviceWidget->currentRow(); 
-  if(_services->contains(currentRow)) {
-    ui.hiddenServiceDirLineEdit->setText(_services->value(currentRow).serviceDirectory());
+  // enable the buttons because now a service is selected if there is at least one left
+  if(ui.serviceWidget->rowCount() > 0) {
+  	ui.removeButton->setEnabled(true);
+    ui.copyButton->setEnabled(true);
+    ui.browseButton->setEnabled(true);
   } else {
-      ui.hiddenServiceDirLineEdit->setText("");
+  	  ui.removeButton->setEnabled(false);
+      ui.copyButton->setEnabled(false);
+      ui.browseButton->setEnabled(false);
     }
   // if the user has clicked on the checkbox cell
-  if(ui.serviceWidget->currentColumn() == 3) {
+  int currentRow = ui.serviceWidget->currentRow(); 
+  if(ui.serviceWidget->currentColumn() == 4) {
   	Service service = _services->take(currentRow);
-    QTableWidgetItem* item = ui.serviceWidget->item(currentRow,3);
+    QTableWidgetItem* item = ui.serviceWidget->item(currentRow,4);
     if(service.enabled()) {
   	  item->setCheckState(Qt::Unchecked);
   	  service.setEnabled(false);

Modified: vidalia/branches/hidden-services/src/vidalia/config/servicepage.h
===================================================================
--- vidalia/branches/hidden-services/src/vidalia/config/servicepage.h	2008-03-13 04:49:47 UTC (rev 2404)
+++ vidalia/branches/hidden-services/src/vidalia/config/servicepage.h	2008-03-13 22:38:34 UTC (rev 2405)
@@ -46,8 +46,6 @@
   
   void browseDirectory();
   
-  void storeServiceDir();
-  
   void serviceSelectionChanged();
   
   QList<Service> extractSingleServices(QString conf);

Modified: vidalia/branches/hidden-services/src/vidalia/config/servicepage.ui
===================================================================
--- vidalia/branches/hidden-services/src/vidalia/config/servicepage.ui	2008-03-13 04:49:47 UTC (rev 2404)
+++ vidalia/branches/hidden-services/src/vidalia/config/servicepage.ui	2008-03-13 22:38:34 UTC (rev 2405)
@@ -5,7 +5,7 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>652</width>
+    <width>727</width>
     <height>581</height>
    </rect>
   </property>
@@ -18,13 +18,13 @@
   <property name="windowTitle" >
    <string>Form</string>
   </property>
-  <widget class="QGroupBox" name="groupBox_2" >
+  <widget class="QGroupBox" name="groupBox" >
    <property name="geometry" >
     <rect>
      <x>10</x>
-     <y>280</y>
-     <width>631</width>
-     <height>101</height>
+     <y>20</y>
+     <width>701</width>
+     <height>281</height>
     </rect>
    </property>
    <property name="sizePolicy" >
@@ -36,18 +36,31 @@
     </sizepolicy>
    </property>
    <property name="title" >
-    <string>Service Directory</string>
+    <string>Service Listing</string>
    </property>
-   <widget class="QWidget" name="" >
+   <widget class="QLabel" name="serviceListingDescription" >
     <property name="geometry" >
      <rect>
-      <x>20</x>
-      <y>40</y>
-      <width>591</width>
-      <height>29</height>
+      <x>10</x>
+      <y>30</y>
+      <width>511</width>
+      <height>17</height>
      </rect>
     </property>
-    <layout class="QHBoxLayout" >
+    <property name="text" >
+     <string>Configure hidden services to be provided by this Tor client or relay.</string>
+    </property>
+   </widget>
+   <widget class="QWidget" name="layoutWidget_2" >
+    <property name="geometry" >
+     <rect>
+      <x>660</x>
+      <y>70</y>
+      <width>28</width>
+      <height>201</height>
+     </rect>
+    </property>
+    <layout class="QVBoxLayout" >
      <property name="margin" >
       <number>0</number>
      </property>
@@ -55,51 +68,86 @@
       <number>6</number>
      </property>
      <item>
-      <widget class="QLabel" name="label" >
+      <widget class="QToolButton" name="addButton" >
+       <property name="toolTip" >
+        <string>Add a new empty service to the list</string>
+       </property>
        <property name="text" >
-        <string>Service Directory Path</string>
+        <string/>
        </property>
+       <property name="icon" >
+        <iconset resource="../res/vidalia_common.qrc" >:/images/22x22/list-add.png</iconset>
+       </property>
       </widget>
      </item>
      <item>
-      <widget class="QLineEdit" name="hiddenServiceDirLineEdit" />
+      <widget class="QToolButton" name="removeButton" >
+       <property name="toolTip" >
+        <string>Remove the selected service from the list</string>
+       </property>
+       <property name="text" >
+        <string/>
+       </property>
+       <property name="icon" >
+        <iconset resource="../res/vidalia_common.qrc" >:/images/22x22/list-remove.png</iconset>
+       </property>
+      </widget>
      </item>
      <item>
+      <widget class="QToolButton" name="copyButton" >
+       <property name="toolTip" >
+        <string>Copy the onion address of the selected service to the clipboard</string>
+       </property>
+       <property name="text" >
+        <string/>
+       </property>
+       <property name="icon" >
+        <iconset resource="../res/vidalia_common.qrc" >:/images/22x22/edit-copy.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
       <widget class="QPushButton" name="browseButton" >
+       <property name="sizePolicy" >
+        <sizepolicy>
+         <hsizetype>0</hsizetype>
+         <vsizetype>0</vsizetype>
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="toolTip" >
+        <string>Browse in your local file system and select a directory for the service</string>
+       </property>
        <property name="text" >
-        <string>Browse</string>
+        <string/>
        </property>
+       <property name="icon" >
+        <iconset resource="../res/vidalia_common.qrc" >:/images/22x22/system-search.png</iconset>
+       </property>
       </widget>
      </item>
+     <item>
+      <spacer>
+       <property name="orientation" >
+        <enum>Qt::Vertical</enum>
+       </property>
+       <property name="sizeHint" >
+        <size>
+         <width>20</width>
+         <height>40</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
     </layout>
    </widget>
-  </widget>
-  <widget class="QGroupBox" name="groupBox" >
-   <property name="geometry" >
-    <rect>
-     <x>10</x>
-     <y>40</y>
-     <width>631</width>
-     <height>231</height>
-    </rect>
-   </property>
-   <property name="sizePolicy" >
-    <sizepolicy>
-     <hsizetype>0</hsizetype>
-     <vsizetype>0</vsizetype>
-     <horstretch>0</horstretch>
-     <verstretch>0</verstretch>
-    </sizepolicy>
-   </property>
-   <property name="title" >
-    <string>Service Listing</string>
-   </property>
    <widget class="QTableWidget" name="serviceWidget" >
     <property name="geometry" >
      <rect>
-      <x>11</x>
-      <y>21</y>
-      <width>511</width>
+      <x>10</x>
+      <y>70</y>
+      <width>631</width>
       <height>199</height>
      </rect>
     </property>
@@ -134,49 +182,15 @@
     </column>
     <column>
      <property name="text" >
+      <string>Service Directory</string>
+     </property>
+    </column>
+    <column>
+     <property name="text" >
       <string>Enabled</string>
      </property>
     </column>
    </widget>
-   <widget class="QWidget" name="" >
-    <property name="geometry" >
-     <rect>
-      <x>539</x>
-      <y>21</y>
-      <width>81</width>
-      <height>131</height>
-     </rect>
-    </property>
-    <layout class="QVBoxLayout" >
-     <property name="margin" >
-      <number>0</number>
-     </property>
-     <property name="spacing" >
-      <number>6</number>
-     </property>
-     <item>
-      <widget class="QPushButton" name="addButton" >
-       <property name="text" >
-        <string>Add</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="removeButton" >
-       <property name="text" >
-        <string>Remove</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="copyButton" >
-       <property name="text" >
-        <string>Copy</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </widget>
   </widget>
  </widget>
  <resources/>

Modified: vidalia/branches/hidden-services/src/vidalia/config/servicesettings.cpp
===================================================================
--- vidalia/branches/hidden-services/src/vidalia/config/servicesettings.cpp	2008-03-13 04:49:47 UTC (rev 2404)
+++ vidalia/branches/hidden-services/src/vidalia/config/servicesettings.cpp	2008-03-13 22:38:34 UTC (rev 2405)
@@ -95,22 +95,13 @@
 bool
 ServiceSettings::isEnabled()
 {
-  QString boolean = value(SETTING_SERVICE_ADDRESS).toString();
-  if(boolean=="True") {
-  	return true;
-  } else {
-  	  return false;
-    }
+  return value(SETTING_SERVICE_ENABLED).toBool();
 }
 
 void 
 ServiceSettings::setEnabled(bool boolean)
 {
-  if(boolean) {
-  	setValue(SETTING_SERVICE_ENABLED, "True");
-  } else {
-  	  setValue(SETTING_SERVICE_ENABLED, "False");
-    }  	
+  setValue(SETTING_SERVICE_ENABLED, boolean);	  	
 }