[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[vidalia-svn] r1260: Add a method to get Tor's version as a numeric value. (in trunk/src: control gui/about)
Author: edmanm
Date: 2006-10-03 00:13:23 -0400 (Tue, 03 Oct 2006)
New Revision: 1260
Modified:
trunk/src/control/torcontrol.cpp
trunk/src/control/torcontrol.h
trunk/src/gui/about/aboutdialog.cpp
Log:
Add a method to get Tor's version as a numeric value.
Modified: trunk/src/control/torcontrol.cpp
===================================================================
--- trunk/src/control/torcontrol.cpp 2006-10-03 02:28:33 UTC (rev 1259)
+++ trunk/src/control/torcontrol.cpp 2006-10-03 04:13:23 UTC (rev 1260)
@@ -395,17 +395,36 @@
return send(cmd, errmsg);
}
-/** Ask Tor for its version */
+/** Reeturns Tor's version as a string. */
QString
-TorControl::getTorVersion(QString *errmsg)
+TorControl::getTorVersionString(QString *errmsg)
{
QString ver;
if (getInfo("version", ver, errmsg)) {
return ver;
}
- return "<Unavailable>";
+ return QString();
}
+/** Returns Tor's version as a numeric value. Note that this discards any
+ * version status flag, such as "-alpha" or "-rc". */
+quint32
+TorControl::getTorVersion(QString *errmsg)
+{
+ quint8 major, minor, micro, patch;
+ quint32 version = 0;
+
+ QStringList parts = getTorVersionString(errmsg).split(".");
+ if (parts.size() >= 4) {
+ major = (quint8)parts.at(0).toUInt();
+ minor = (quint8)parts.at(1).toUInt();
+ micro = (quint8)parts.at(2).toUInt();
+ patch = (quint8)parts.at(3).toUInt();
+ version = ((major << 24) | (minor << 16) | (micro << 8) | patch);
+ }
+ return version;
+}
+
/** Sets an event and its handler. If add is true, then the event is added,
* otherwise it is removed. If set is true, then the given event will be
* registered with Tor. */
Modified: trunk/src/control/torcontrol.h
===================================================================
--- trunk/src/control/torcontrol.h 2006-10-03 02:28:33 UTC (rev 1259)
+++ trunk/src/control/torcontrol.h 2006-10-03 04:13:23 UTC (rev 1260)
@@ -75,8 +75,10 @@
/** Sends a signal to Tor */
bool signal(TorSignal::Signal sig, QString *errmsg = 0);
- /** Ask Tor for its version */
- QString getTorVersion(QString *errmsg = 0);
+ /** Returns Tor's version as a string. */
+ QString getTorVersionString(QString *errmsg = 0);
+ /** Returns Tor's version as a numeric value. */
+ quint32 getTorVersion(QString *errmsg = 0);
/** Sets an event and its handler. If add is true, then the event is added,
* otherwise it is removed. If set is true, then the given event will be
Modified: trunk/src/gui/about/aboutdialog.cpp
===================================================================
--- trunk/src/gui/about/aboutdialog.cpp 2006-10-03 02:28:33 UTC (rev 1259)
+++ trunk/src/gui/about/aboutdialog.cpp 2006-10-03 04:13:23 UTC (rev 1260)
@@ -28,6 +28,7 @@
#include <vidalia.h>
#include "aboutdialog.h"
+
/** Default Constructor **/
AboutDialog::AboutDialog(QWidget *parent, Qt::WFlags flags)
: VidaliaWindow("AboutDialog", parent, flags)
@@ -68,7 +69,11 @@
{
/* Access the TorControl object to retrieve version */
if (_torControl->isRunning()) {
- ui.lblTorVersion->setText(_torControl->getTorVersion());
+ QString version = _torControl->getTorVersionString();
+ if (version.isEmpty()) {
+ version = tr("<Unavailable>");
+ }
+ ui.lblTorVersion->setText(version);
} else {
ui.lblTorVersion->setText(tr("<Not Running>"));
}