tor-commits
Threads by month
- ----- 2025 -----
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
July 2012
- 14 participants
- 949 discussions
commit fd2da106d0f90061532f8880702138b297ca4230
Author: Damian Johnson <atagar(a)torproject.org>
Date: Fri Jul 20 18:19:29 2012 -0700
Pylint fixes
Variety of issues, most of them caught by pylint.
---
run_tests.py | 2 +-
stem/connection.py | 4 ++--
stem/control.py | 4 ++--
stem/descriptor/reader.py | 2 +-
stem/descriptor/server_descriptor.py | 1 -
stem/response/__init__.py | 2 +-
stem/response/authchallenge.py | 1 -
stem/util/conf.py | 4 ++--
stem/util/enum.py | 2 +-
stem/util/system.py | 4 ++--
stem/version.py | 7 ++-----
test/integ/__init__.py | 3 ++-
test/integ/control/base_controller.py | 8 ++++----
test/integ/descriptor/extrainfo_descriptor.py | 6 ------
test/integ/descriptor/reader.py | 2 +-
test/integ/process.py | 4 ++--
test/integ/response/protocolinfo.py | 2 +-
test/integ/socket/control_socket.py | 6 +++---
test/integ/util/__init__.py | 2 +-
test/mocking.py | 2 +-
test/output.py | 3 +--
test/runner.py | 5 ++---
test/unit/__init__.py | 1 +
test/unit/exit_policy/policy.py | 4 ----
test/unit/util/__init__.py | 9 ++++++++-
25 files changed, 41 insertions(+), 49 deletions(-)
diff --git a/run_tests.py b/run_tests.py
index 3b36046..8a9a37d 100755
--- a/run_tests.py
+++ b/run_tests.py
@@ -152,7 +152,7 @@ def load_user_configuration(test_config):
arg_overrides, config_path = {}, None
try:
- opts, args = getopt.getopt(sys.argv[1:], OPT, OPT_EXPANDED)
+ opts = getopt.getopt(sys.argv[1:], OPT, OPT_EXPANDED)[0]
except getopt.GetoptError, exc:
print "%s (for usage provide --help)" % exc
sys.exit(1)
diff --git a/stem/connection.py b/stem/connection.py
index 52037a3..6f32972 100644
--- a/stem/connection.py
+++ b/stem/connection.py
@@ -173,7 +173,7 @@ def _connect(control_socket, password, chroot_path, controller):
try: password = getpass.getpass("Controller password: ")
except KeyboardInterrupt: return None
- return _connect(control_socket, password, controller)
+ return _connect(control_socket, password, chroot_path, controller)
except AuthenticationFailure, exc:
control_socket.close()
print "Unable to authenticate: %s" % exc
@@ -694,7 +694,7 @@ def get_protocolinfo(controller):
# attempt to expand relative cookie paths
if protocolinfo_response.cookie_path:
- stem.connection._expand_cookie_path(protocolinfo_response, stem.util.system.get_pid_by_name, "tor")
+ _expand_cookie_path(protocolinfo_response, stem.util.system.get_pid_by_name, "tor")
# attempt to expand relative cookie paths via the control port or socket file
diff --git a/stem/control.py b/stem/control.py
index e2bf282..d7d90c9 100644
--- a/stem/control.py
+++ b/stem/control.py
@@ -76,7 +76,7 @@ MAPPED_CONFIG_KEYS = {
# changed to the more conventional is_alive() and current_thread() in python
# 2.6 and above. We should use that when dropping python 2.5 compatability.
-class BaseController:
+class BaseController(object):
"""
Controller for the tor process. This is a minimal base class for other
controllers, providing basic process communication and event listing. Don't
@@ -757,7 +757,7 @@ class Controller(BaseController):
elif response.code in ("513", "553"):
raise stem.socket.InvalidRequest(response.code, response.message)
else:
- raise stem.socket.ProtocolError("%s returned unexpected status code" % command)
+ raise stem.socket.ProtocolError("Returned unexpected status code: %s" % response.code)
def load_conf(self, configtext):
"""
diff --git a/stem/descriptor/reader.py b/stem/descriptor/reader.py
index ed07c88..84ce695 100644
--- a/stem/descriptor/reader.py
+++ b/stem/descriptor/reader.py
@@ -195,7 +195,7 @@ def save_processed_files(path, processed_files):
output_file.write("%s %i\n" % (path, timestamp))
-class DescriptorReader:
+class DescriptorReader(object):
"""
Iterator for the descriptor data on the local file system. This can process
text files, tarball archives (gzip or bzip2), or recurse directories.
diff --git a/stem/descriptor/server_descriptor.py b/stem/descriptor/server_descriptor.py
index 730709f..f54d5b1 100644
--- a/stem/descriptor/server_descriptor.py
+++ b/stem/descriptor/server_descriptor.py
@@ -37,7 +37,6 @@ import stem.descriptor
import stem.descriptor.extrainfo_descriptor
import stem.exit_policy
import stem.version
-import stem.util.log as log
import stem.util.connection
import stem.util.tor_tools
diff --git a/stem/response/__init__.py b/stem/response/__init__.py
index 5a665b6..14a0280 100644
--- a/stem/response/__init__.py
+++ b/stem/response/__init__.py
@@ -100,7 +100,7 @@ def convert(response_type, message, **kwargs):
message.__class__ = response_class
message._parse_message(**kwargs)
-class ControlMessage:
+class ControlMessage(object):
"""
Message from the control socket. This is iterable and can be stringified for
individual message components stripped of protocol formatting. Messages are
diff --git a/stem/response/authchallenge.py b/stem/response/authchallenge.py
index 84df58f..fa60339 100644
--- a/stem/response/authchallenge.py
+++ b/stem/response/authchallenge.py
@@ -1,4 +1,3 @@
-import re
import binascii
import stem.socket
diff --git a/stem/util/conf.py b/stem/util/conf.py
index 79291c0..8ffcc8e 100644
--- a/stem/util/conf.py
+++ b/stem/util/conf.py
@@ -72,7 +72,7 @@ import stem.util.log as log
CONFS = {} # mapping of identifier to singleton instances of configs
-class SyncListener:
+class SyncListener(object):
def __init__(self, config_dict, interceptor):
self.config_dict = config_dict
self.interceptor = interceptor
@@ -121,7 +121,7 @@ def get_config(handle):
if not handle in CONFS: CONFS[handle] = Config()
return CONFS[handle]
-class Config():
+class Config(object):
"""
Handler for easily working with custom configurations, providing persistence
to and from files. All operations are thread safe.
diff --git a/stem/util/enum.py b/stem/util/enum.py
index 8b21100..50f6728 100644
--- a/stem/util/enum.py
+++ b/stem/util/enum.py
@@ -75,7 +75,7 @@ def UppercaseEnum(*args):
return Enum(*[(v, v) for v in args])
-class Enum:
+class Enum(object):
"""
Basic enumeration.
"""
diff --git a/stem/util/system.py b/stem/util/system.py
index 799219b..798f5ff 100644
--- a/stem/util/system.py
+++ b/stem/util/system.py
@@ -541,9 +541,9 @@ def expand_path(path, cwd = None):
relative_path = ""
if relative_path == "":
- relative_path = cwd
+ relative_path = cwd
else:
- relative_path = os.path.join(cwd, relative_path)
+ relative_path = os.path.join(cwd, relative_path)
return relative_path
diff --git a/stem/version.py b/stem/version.py
index d0228b1..bc377af 100644
--- a/stem/version.py
+++ b/stem/version.py
@@ -80,7 +80,7 @@ def get_system_tor_version(tor_cmd = "tor"):
return VERSION_CACHE[tor_cmd]
-class Version:
+class Version(object):
"""
Comparable tor version. These are constructed from strings that conform to
the 'new' style in the `tor version-spec
@@ -159,14 +159,11 @@ class Version:
if my_version > other_version: return 1
elif my_version < other_version: return -1
- my_status = self.status if self.status else ""
- other_status = other.status if other.status else ""
-
# not including tags in comparisons because the spec declares them to be
# 'purely informational'
return 0
-class VersionRequirements:
+class VersionRequirements(object):
"""
Series of version constraints that can be compared to. For instance, it
allows for comparisons like 'if I'm greater than version X in the 0.2.2
diff --git a/test/integ/__init__.py b/test/integ/__init__.py
index 3cc4a7f..d57f031 100644
--- a/test/integ/__init__.py
+++ b/test/integ/__init__.py
@@ -6,9 +6,10 @@ __all__ = [
"connection",
"control",
"descriptor",
- "process",
+ "response",
"socket",
"util",
+ "process",
"version",
]
diff --git a/test/integ/control/base_controller.py b/test/integ/control/base_controller.py
index 4104075..22cd7a8 100644
--- a/test/integ/control/base_controller.py
+++ b/test/integ/control/base_controller.py
@@ -14,7 +14,7 @@ import stem.socket
import stem.util.system
import test.runner
-class StateObserver:
+class StateObserver(object):
"""
Simple container for listening to ControlSocket state changes and
rembembering them for the test.
@@ -49,7 +49,7 @@ class TestBaseController(unittest.TestCase):
with test.runner.get_runner().get_tor_socket() as control_socket:
controller = stem.control.BaseController(control_socket)
- for i in xrange(250):
+ for _ in xrange(250):
controller.connect()
controller.close()
@@ -103,7 +103,7 @@ class TestBaseController(unittest.TestCase):
controller = stem.control.BaseController(control_socket)
def run_getinfo():
- for i in xrange(150):
+ for _ in xrange(150):
try:
controller.msg("GETINFO version")
controller.msg("GETINFO blarg")
@@ -113,7 +113,7 @@ class TestBaseController(unittest.TestCase):
message_threads = []
- for i in xrange(5):
+ for _ in xrange(5):
msg_thread = threading.Thread(target = run_getinfo)
message_threads.append(msg_thread)
msg_thread.setDaemon(True)
diff --git a/test/integ/descriptor/extrainfo_descriptor.py b/test/integ/descriptor/extrainfo_descriptor.py
index d960055..fd9a4cf 100644
--- a/test/integ/descriptor/extrainfo_descriptor.py
+++ b/test/integ/descriptor/extrainfo_descriptor.py
@@ -94,12 +94,6 @@ k0d2aofcVbHr4fPQOSST0LXDrhFl5Fqo5um296zpJGvRUeO6S44U/EfJAGShtqWw
DirResponses.BUSY: 0,
}
- expected_signature = """-----BEGIN SIGNATURE-----
-K5FSywk7qvw/boA4DQcqkls6Ize5vcBYfhQ8JnOeRQC9+uDxbnpm3qaYN9jZ8myj
-k0d2aofcVbHr4fPQOSST0LXDrhFl5Fqo5um296zpJGvRUeO6S44U/EfJAGShtqWw
-7LZqklu+gVvhMKREpchVqlAwXkWR44VENm24Hs+mT3M=
------END SIGNATURE-----"""
-
desc = stem.descriptor.extrainfo_descriptor.BridgeExtraInfoDescriptor(descriptor_contents)
self.assertEquals("ec2bridgereaac65a3", desc.nickname)
self.assertEquals("1EC248422B57D9C0BD751892FE787585407479A4", desc.fingerprint)
diff --git a/test/integ/descriptor/reader.py b/test/integ/descriptor/reader.py
index 6ecfa72..03fb8fe 100644
--- a/test/integ/descriptor/reader.py
+++ b/test/integ/descriptor/reader.py
@@ -171,7 +171,7 @@ class TestDescriptorReader(unittest.TestCase):
descriptor_entries.append(descriptor_file.read())
# running this test multiple times to flush out concurrency issues
- for i in xrange(15):
+ for _ in xrange(15):
remaining_entries = list(descriptor_entries)
with stem.descriptor.reader.DescriptorReader(descriptor_path) as reader:
diff --git a/test/integ/process.py b/test/integ/process.py
index 58440e0..5396756 100644
--- a/test/integ/process.py
+++ b/test/integ/process.py
@@ -20,7 +20,7 @@ class TestProcess(unittest.TestCase):
"""
if not stem.prereq.is_python_26() and stem.util.system.is_windows():
- test.runner.skip("(unable to kill subprocesses)")
+ test.runner.skip(self, "(unable to kill subprocesses)")
return
if test.runner.only_run_once(self, "test_launch_tor_with_config"): return
@@ -64,7 +64,7 @@ class TestProcess(unittest.TestCase):
"""
if not stem.prereq.is_python_26() and stem.util.system.is_windows():
- test.runner.skip("(unable to kill subprocesses)")
+ test.runner.skip(self, "(unable to kill subprocesses)")
return
if test.runner.only_run_once(self, "test_launch_tor_with_timeout"): return
diff --git a/test/integ/response/protocolinfo.py b/test/integ/response/protocolinfo.py
index 4f13e7b..a223510 100644
--- a/test/integ/response/protocolinfo.py
+++ b/test/integ/response/protocolinfo.py
@@ -95,7 +95,7 @@ class TestProtocolInfo(unittest.TestCase):
if test.runner.require_control(self): return
with test.runner.get_runner().get_tor_socket(False) as control_socket:
- for i in range(5):
+ for _ in range(5):
protocolinfo_response = stem.connection.get_protocolinfo(control_socket)
self.assert_matches_test_config(protocolinfo_response)
diff --git a/test/integ/socket/control_socket.py b/test/integ/socket/control_socket.py
index 2e81599..ad253d1 100644
--- a/test/integ/socket/control_socket.py
+++ b/test/integ/socket/control_socket.py
@@ -29,10 +29,10 @@ class TestControlSocket(unittest.TestCase):
tor_version = runner.get_tor_version()
with runner.get_tor_socket() as control_socket:
- for i in range(100):
+ for _ in range(100):
control_socket.send("GETINFO version")
- for i in range(100):
+ for _ in range(100):
response = control_socket.recv()
self.assertTrue(str(response).startswith("version=%s" % tor_version))
self.assertTrue(str(response).endswith("\nOK"))
@@ -120,7 +120,7 @@ class TestControlSocket(unittest.TestCase):
if test.runner.require_control(self): return
with test.runner.get_runner().get_tor_socket(False) as control_socket:
- for i in range(10):
+ for _ in range(10):
# this will raise if the PROTOCOLINFO query fails
stem.connection.get_protocolinfo(control_socket)
diff --git a/test/integ/util/__init__.py b/test/integ/util/__init__.py
index 95e5870..3d275b8 100644
--- a/test/integ/util/__init__.py
+++ b/test/integ/util/__init__.py
@@ -2,5 +2,5 @@
Integration tests for stem.util.* contents.
"""
-__all__ = ["conf", "system"]
+__all__ = ["conf", "proc", "system"]
diff --git a/test/mocking.py b/test/mocking.py
index 94d519e..f4198ec 100644
--- a/test/mocking.py
+++ b/test/mocking.py
@@ -228,7 +228,7 @@ def get_all_combinations(attr, include_empty = False):
seen = set()
for i in xrange(1, len(attr) + 1):
- product_arg = [attr for j in xrange(i)]
+ product_arg = [attr for _ in xrange(i)]
for item in itertools.product(*product_arg):
# deduplicate, sort, and only provide if we haven't seen it yet
diff --git a/test/output.py b/test/output.py
index bf7de7e..084a79a 100644
--- a/test/output.py
+++ b/test/output.py
@@ -5,7 +5,6 @@ together for improved readability.
import re
import sys
-import logging
import stem.util.conf
import stem.util.enum
@@ -156,7 +155,7 @@ def align_results(line_type, line_content):
else:
return "%-61s[%s]" % (line_content, term.format(new_ending, term.Attr.BOLD))
-class ErrorTracker:
+class ErrorTracker(object):
"""
Stores any failure or error results we've encountered.
"""
diff --git a/test/runner.py b/test/runner.py
index d4d3eec..0d7ba2f 100644
--- a/test/runner.py
+++ b/test/runner.py
@@ -37,7 +37,6 @@ about the tor test instance they're running against.
from __future__ import with_statement
import os
-import sys
import time
import stat
import shutil
@@ -192,7 +191,7 @@ def get_runner():
if not INTEG_RUNNER: INTEG_RUNNER = Runner()
return INTEG_RUNNER
-class _MockChrootFile:
+class _MockChrootFile(object):
"""
Wrapper around a file object that strips given content from readline()
responses. This is used to simulate a chroot setup by removing the restign
@@ -206,7 +205,7 @@ class _MockChrootFile:
def readline(self):
return self.wrapped_file.readline().replace(self.strip_text, "")
-class Runner:
+class Runner(object):
def __init__(self):
self._runner_lock = threading.RLock()
diff --git a/test/unit/__init__.py b/test/unit/__init__.py
index 6bbec07..15a6b88 100644
--- a/test/unit/__init__.py
+++ b/test/unit/__init__.py
@@ -5,6 +5,7 @@ Unit tests for the stem library.
__all__ = [
"connection",
"descriptor",
+ "exit_policy",
"socket",
"util",
"version",
diff --git a/test/unit/exit_policy/policy.py b/test/unit/exit_policy/policy.py
index 6ce0e4f..6f4b5a9 100644
--- a/test/unit/exit_policy/policy.py
+++ b/test/unit/exit_policy/policy.py
@@ -3,14 +3,10 @@ Unit tests for the stem.exit_policy.ExitPolicy class.
"""
import unittest
-import stem.exit_policy
-import stem.util.system
from stem.exit_policy import ExitPolicy, \
MicrodescriptorExitPolicy, \
ExitPolicyRule
-import test.mocking as mocking
-
class TestExitPolicy(unittest.TestCase):
def test_example(self):
# tests the ExitPolicy and MicrodescriptorExitPolicy pydoc examples
diff --git a/test/unit/util/__init__.py b/test/unit/util/__init__.py
index 17a4deb..d0eeda3 100644
--- a/test/unit/util/__init__.py
+++ b/test/unit/util/__init__.py
@@ -2,5 +2,12 @@
Unit tests for stem.util.* contents.
"""
-__all__ = ["conf", "connection", "enum", "system", "tor_tools"]
+__all__ = [
+ "conf",
+ "connection",
+ "enum",
+ "proc",
+ "system",
+ "tor_tools",
+]
1
0
commit 63519a16c31b6478e912c41cd7d47e1fcb634750
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sat Jul 21 22:28:41 2012 -0700
Including tor's git commit in Version
Expanding the Version class to include an 'extra' and 'git_commit' attribute
that reflected a proposed expansion of the spec...
https://trac.torproject.org/6445
This is already the de-facto form of tor versions so moving ahead with
including it in the Version class.
---
stem/control.py | 7 +------
stem/version.py | 19 ++++++++++++++++---
test/unit/version.py | 42 +++++++++++++++++++++++++++++-------------
3 files changed, 46 insertions(+), 22 deletions(-)
diff --git a/stem/control.py b/stem/control.py
index d7d90c9..d687e1a 100644
--- a/stem/control.py
+++ b/stem/control.py
@@ -520,12 +520,7 @@ class Controller(BaseController):
* ValueError if unable to parse the version
"""
- version_str = self.get_info("version")
-
- if " " in version_str:
- version_str = version_str[:version_str.find(' ')]
-
- return stem.version.Version(version_str)
+ return stem.version.Version(self.get_info("version"))
def authenticate(self, *args, **kwargs):
"""
diff --git a/stem/version.py b/stem/version.py
index 087efa9..130ca1c 100644
--- a/stem/version.py
+++ b/stem/version.py
@@ -69,7 +69,7 @@ def get_system_tor_version(tor_cmd = "tor"):
if last_line.startswith("Tor version ") and last_line.endswith("."):
try:
- version_str = last_line[12:last_line.find(' ', 12)]
+ version_str = last_line[12:-1]
VERSION_CACHE[tor_cmd] = Version(version_str)
except ValueError, exc:
raise IOError(exc)
@@ -92,6 +92,8 @@ class Version(object):
:var int micro: micro version
:var int patch: optional patch level (None if undefined)
:var str status: optional status tag without the preceding dash such as 'alpha', 'beta-dev', etc (None if undefined)
+ :var str extra: optional extra information without the proceeding space nor its parentheses such as 'git-8be6058d8f31e578' (None if undefined)
+ :var str git_commit: optional git commit id (None if it wasn't provided)
:param str version_str: version to be parsed
@@ -100,22 +102,33 @@ class Version(object):
def __init__(self, version_str):
self.version_str = version_str
- version_parts = re.match(r'^([0-9]+)\.([0-9]+)\.([0-9]+)(\.[0-9]+)?(-\S*)?$', version_str)
+ version_parts = re.match(r'^([0-9]+)\.([0-9]+)\.([0-9]+)(\.[0-9]+)?(-\S*)?( \(\S*\))?$', version_str)
if version_parts:
- major, minor, micro, patch, status = version_parts.groups()
+ major, minor, micro, patch, status, extra = version_parts.groups()
# The patch and status matches are optional (may be None) and have an extra
# proceeding period or dash if they exist. Stripping those off.
+ # TODO: The 'extra' attribute isn't technically part of the spec yet, but
+ # it's useful and I'm trying to add it...
+ # https://trac.torproject.org/6445
+
if patch: patch = int(patch[1:])
if status: status = status[1:]
+ if extra: extra = extra[2:-1]
self.major = int(major)
self.minor = int(minor)
self.micro = int(micro)
self.patch = patch
self.status = status
+ self.extra = extra
+
+ if extra and re.match("^git-[0-9a-f]{16}$", extra):
+ self.git_commit = extra[4:]
+ else:
+ self.git_commit = None
else: raise ValueError("'%s' isn't a properly formatted tor version" % version_str)
def meets_requirements(self, requirements):
diff --git a/test/unit/version.py b/test/unit/version.py
index cfda02c..f32fb7a 100644
--- a/test/unit/version.py
+++ b/test/unit/version.py
@@ -33,7 +33,8 @@ class TestVersion(unittest.TestCase):
mocking.mock(stem.util.system.call, _mock_call)
version = stem.version.get_system_tor_version()
- self.assert_versions_match(version, 0, 2, 2, 35, None)
+ self.assert_versions_match(version, 0, 2, 2, 35, None, "git-73ff13ab3cc9570d")
+ self.assertEqual("73ff13ab3cc9570d", version.git_commit)
stem.version.VERSION_CACHE = {}
@@ -45,23 +46,34 @@ class TestVersion(unittest.TestCase):
# valid versions with various number of compontents to the version
version = Version("0.1.2.3-tag")
- self.assert_versions_match(version, 0, 1, 2, 3, "tag")
+ self.assert_versions_match(version, 0, 1, 2, 3, "tag", None)
version = Version("0.1.2.3")
- self.assert_versions_match(version, 0, 1, 2, 3, None)
+ self.assert_versions_match(version, 0, 1, 2, 3, None, None)
version = Version("0.1.2-tag")
- self.assert_versions_match(version, 0, 1, 2, None, "tag")
+ self.assert_versions_match(version, 0, 1, 2, None, "tag", None)
version = Version("0.1.2")
- self.assert_versions_match(version, 0, 1, 2, None, None)
+ self.assert_versions_match(version, 0, 1, 2, None, None, None)
# checks an empty tag
version = Version("0.1.2.3-")
- self.assert_versions_match(version, 0, 1, 2, 3, "")
+ self.assert_versions_match(version, 0, 1, 2, 3, "", None)
version = Version("0.1.2-")
- self.assert_versions_match(version, 0, 1, 2, None, "")
+ self.assert_versions_match(version, 0, 1, 2, None, "", None)
+
+ # check with extra informaton
+ version = Version("0.1.2.3-tag (git-73ff13ab3cc9570d)")
+ self.assert_versions_match(version, 0, 1, 2, 3, "tag", "git-73ff13ab3cc9570d")
+ self.assertEqual("73ff13ab3cc9570d", version.git_commit)
+
+ version = Version("0.1.2.3-tag ()")
+ self.assert_versions_match(version, 0, 1, 2, 3, "tag", "")
+
+ version = Version("0.1.2 (git-73ff13ab3cc9570d)")
+ self.assert_versions_match(version, 0, 1, 2, None, None, "git-73ff13ab3cc9570d")
# checks invalid version strings
self.assertRaises(ValueError, stem.version.Version, "")
@@ -197,17 +209,21 @@ class TestVersion(unittest.TestCase):
for i in xrange(0, 100):
self.assertFalse(Version("0.2.2.%i" % i).meets_requirements(requirements))
- def assert_versions_match(self, version, major, minor, micro, patch, status):
+ def assert_versions_match(self, version, major, minor, micro, patch, status, extra):
"""
Asserts that the values for a types.Version instance match the given
values.
"""
- self.assertEqual(version.major, major)
- self.assertEqual(version.minor, minor)
- self.assertEqual(version.micro, micro)
- self.assertEqual(version.patch, patch)
- self.assertEqual(version.status, status)
+ self.assertEqual(major, version.major)
+ self.assertEqual(minor, version.minor)
+ self.assertEqual(micro, version.micro)
+ self.assertEqual(patch, version.patch)
+ self.assertEqual(status, version.status)
+ self.assertEqual(extra, version.extra)
+
+ if extra is None:
+ self.assertEqual(None, version.git_commit)
def assert_version_is_greater(self, first_version, second_version):
"""
1
0
commit b6b7a98018330180078ba9ed6d38369efdb04395
Author: Tomás Touceda <chiiph(a)torproject.org>
Date: Tue Jul 17 19:32:33 2012 -0300
Add changes file
---
changes/everythingAsExtension | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/changes/everythingAsExtension b/changes/everythingAsExtension
new file mode 100644
index 0000000..47a15db
--- /dev/null
+++ b/changes/everythingAsExtension
@@ -0,0 +1,3 @@
+ New Features:
+ o Add all the TorControl classes as automatically generated qtscript
+ extensions.
1
0

[vidalia/alpha] Migrate VidaliaTab prototype to a full extension
by chiiph@torproject.org 21 Jul '12
by chiiph@torproject.org 21 Jul '12
21 Jul '12
commit ac160b2f18170050a9aadb36495ab7ca58cc8728
Author: Tomás Touceda <chiiph(a)torproject.org>
Date: Sat Jul 21 15:48:04 2012 -0300
Migrate VidaliaTab prototype to a full extension
---
changes/pluginEngineImprovements | 3 +
src/vidalia/CMakeLists.txt | 4 +-
src/vidalia/VidaliaTab.h | 5 +-
src/vidalia/plugin/PluginEngine.cpp | 8 +-
src/vidalia/plugin/PluginEngine.h | 2 +-
.../plugin/extensions/VidaliaExtensionsInit.cpp | 8 +-
.../plugin/extensions/qtscript_VidaliaTab.cpp | 248 ++++++++
.../plugin/extensions/qtscriptshell_VidaliaTab.cpp | 622 ++++++++++++++++++++
.../plugin/extensions/qtscriptshell_VidaliaTab.h | 59 ++
.../plugin/prototypes/VidaliaTabPrototype.cpp | 75 ---
.../plugin/prototypes/VidaliaTabPrototype.h | 42 --
11 files changed, 950 insertions(+), 126 deletions(-)
diff --git a/changes/pluginEngineImprovements b/changes/pluginEngineImprovements
new file mode 100644
index 0000000..a242f84
--- /dev/null
+++ b/changes/pluginEngineImprovements
@@ -0,0 +1,3 @@
+ Internal cleanups and improvements:
+ o VidaliaTab prototype for plugins has been migrated to a full QWidget
+ derived object and an automatically generated extension.
diff --git a/src/vidalia/CMakeLists.txt b/src/vidalia/CMakeLists.txt
index 58d846d..17581d2 100644
--- a/src/vidalia/CMakeLists.txt
+++ b/src/vidalia/CMakeLists.txt
@@ -89,7 +89,6 @@ set(vidalia_SRCS ${vidalia_SRCS}
plugin/PluginEngine.cpp
plugin/PluginWrapper.cpp
plugin/DebugDialog.cpp
- plugin/prototypes/VidaliaTabPrototype.cpp
plugin/prototypes/HelperProcessPrototype.cpp
plugin/prototypes/TorrcPrototype.cpp
plugin/extensions/VidaliaExtensions.cpp
@@ -110,6 +109,7 @@ set(vidalia_SRCS ${vidalia_SRCS}
plugin/extensions/qtscript_TorEvents.cpp
plugin/extensions/qtscript_TorProcess.cpp
plugin/extensions/qtscript_TorSignal.cpp
+ plugin/extensions/qtscript_VidaliaTab.cpp
plugin/extensions/qtscriptshell_ControlConnection.cpp
plugin/extensions/qtscriptshell_ControlMethod.cpp
plugin/extensions/qtscriptshell_ControlSocket.cpp
@@ -117,12 +117,12 @@ set(vidalia_SRCS ${vidalia_SRCS}
plugin/extensions/qtscriptshell_TorEvents.cpp
plugin/extensions/qtscriptshell_TorProcess.cpp
plugin/extensions/qtscriptshell_TorSignal.cpp
+ plugin/extensions/qtscriptshell_VidaliaTab.cpp
)
qt4_wrap_cpp(vidalia_SRCS
plugin/PluginEngine.h
plugin/PluginWrapper.h
plugin/DebugDialog.h
- plugin/prototypes/VidaliaTabPrototype.h
plugin/prototypes/HelperProcessPrototype.h
plugin/prototypes/TorrcPrototype.h
)
diff --git a/src/vidalia/VidaliaTab.h b/src/vidalia/VidaliaTab.h
index 8bf151b..13688fd 100644
--- a/src/vidalia/VidaliaTab.h
+++ b/src/vidalia/VidaliaTab.h
@@ -26,9 +26,10 @@ class VidaliaTab : public QWidget
public:
/** Default constructor. */
+ VidaliaTab(QWidget *parent = 0) : QWidget(parent) {}
VidaliaTab(const QString &title, const QString &name = "General", QWidget *parent = 0);
/** Destructor. */
- ~VidaliaTab();
+ virtual ~VidaliaTab();
/** Returns the tab's title */
QString getTitle() const { return _title; }
@@ -70,5 +71,7 @@ private:
VSettings* _settings; /**< Object used to store window properties */
};
+Q_DECLARE_METATYPE(VidaliaTab*)
+
#endif
diff --git a/src/vidalia/plugin/PluginEngine.cpp b/src/vidalia/plugin/PluginEngine.cpp
index 93d50c0..82f133d 100644
--- a/src/vidalia/plugin/PluginEngine.cpp
+++ b/src/vidalia/plugin/PluginEngine.cpp
@@ -26,11 +26,15 @@
PluginEngine::PluginEngine(QObject *parent)
: QScriptEngine(parent)
{
+ foreach(QString extension, availableExtensions()) {
+ vDebug(tr("Loading %1...").arg(extension));
+ QScriptEngine::importExtension(extension);
+ }
+
VidaliaExtensions ve;
ve.initialize("vidalia", this);
+ QScriptEngine::importExtension("vidalia");
- ADD_PROTOTYPE(VidaliaTabPrototype)
- MAKE_CREATABLE(VidaliaTabPrototype)
ADD_PROTOTYPE(HelperProcessPrototype)
MAKE_CREATABLE(HelperProcessPrototype)
ADD_PROTOTYPE(TorrcPrototype)
diff --git a/src/vidalia/plugin/PluginEngine.h b/src/vidalia/plugin/PluginEngine.h
index b8b65aa..dd68eba 100644
--- a/src/vidalia/plugin/PluginEngine.h
+++ b/src/vidalia/plugin/PluginEngine.h
@@ -19,9 +19,9 @@
#include <QtGui>
#include <QtScript>
-#include "VidaliaTabPrototype.h"
#include "HelperProcessPrototype.h"
#include "TorrcPrototype.h"
+#include "VidaliaTab.h"
class PluginWrapper;
diff --git a/src/vidalia/plugin/extensions/VidaliaExtensionsInit.cpp b/src/vidalia/plugin/extensions/VidaliaExtensionsInit.cpp
index 75b75d6..b09d045 100644
--- a/src/vidalia/plugin/extensions/VidaliaExtensionsInit.cpp
+++ b/src/vidalia/plugin/extensions/VidaliaExtensionsInit.cpp
@@ -1,7 +1,7 @@
#include <QtScript/QScriptValue>
#include <QtScript/QScriptEngine>
-const int classCount = 16;
+const int classCount = 17;
QScriptValue qtscript_create_TorControl_class(QScriptEngine *engine);
QScriptValue qtscript_create_Circuit_class(QScriptEngine *engine);
@@ -19,6 +19,7 @@ QScriptValue qtscript_create_TorEvents_class(QScriptEngine *engine);
QScriptValue qtscript_create_ControlSocket_class(QScriptEngine *engine);
QScriptValue qtscript_create_SendCommandEvent_class(QScriptEngine *engine);
QScriptValue qtscript_create_TorProcess_class(QScriptEngine *engine);
+QScriptValue qtscript_create_VidaliaTab_class(QScriptEngine *engine);
static const char * const vidalia_class_names[] = {
"Circuit"
@@ -37,6 +38,7 @@ static const char * const vidalia_class_names[] = {
, "ControlSocket"
, "SendCommandEvent"
, "TorProcess"
+ , "VidaliaTab"
};
typedef QScriptValue (*QtBindingCreator)(QScriptEngine *engine);
@@ -57,6 +59,7 @@ static const QtBindingCreator vidalia_class_functions[] = {
, qtscript_create_ControlSocket_class
, qtscript_create_SendCommandEvent_class
, qtscript_create_TorProcess_class
+ , qtscript_create_VidaliaTab_class
};
void vidalia_initialize_bindings(QScriptValue &extensionObject)
@@ -64,7 +67,6 @@ void vidalia_initialize_bindings(QScriptValue &extensionObject)
QScriptEngine *engine = extensionObject.engine();
for (int i = 0; i < classCount; ++i) {
extensionObject.setProperty(vidalia_class_names[i],
- vidalia_class_functions[i](engine),
- QScriptValue::SkipInEnumeration);
+ vidalia_class_functions[i](engine));
}
}
diff --git a/src/vidalia/plugin/extensions/qtscript_VidaliaTab.cpp b/src/vidalia/plugin/extensions/qtscript_VidaliaTab.cpp
new file mode 100644
index 0000000..ae3dd37
--- /dev/null
+++ b/src/vidalia/plugin/extensions/qtscript_VidaliaTab.cpp
@@ -0,0 +1,248 @@
+#include <QtScript/QScriptEngine>
+#include <QtScript/QScriptContext>
+#include <QtScript/QScriptValue>
+#include <QtCore/QStringList>
+#include <QtCore/QDebug>
+#include <qmetaobject.h>
+
+#include <VidaliaTab.h>
+#include <QVariant>
+#include <qaction.h>
+#include <qbitmap.h>
+#include <qbytearray.h>
+#include <qcoreevent.h>
+#include <qcursor.h>
+#include <qevent.h>
+#include <qfont.h>
+#include <qgraphicseffect.h>
+#include <qgraphicsproxywidget.h>
+#include <qicon.h>
+#include <qinputcontext.h>
+#include <qkeysequence.h>
+#include <qlayout.h>
+#include <qlist.h>
+#include <qlocale.h>
+#include <qmargins.h>
+#include <qobject.h>
+#include <qpaintdevice.h>
+#include <qpaintengine.h>
+#include <qpainter.h>
+#include <qpalette.h>
+#include <qpoint.h>
+#include <qrect.h>
+#include <qregion.h>
+#include <qsize.h>
+#include <qsizepolicy.h>
+#include <qstyle.h>
+#include <qwidget.h>
+
+#include "qtscriptshell_VidaliaTab.h"
+
+static const char * const qtscript_VidaliaTab_function_names[] = {
+ "VidaliaTab"
+ // static
+ // prototype
+ , "getSetting"
+ , "getTitle"
+ , "saveSetting"
+ , "setOnTop"
+ , "setShortcut"
+ , "setTitle"
+ , "toString"
+};
+
+static const char * const qtscript_VidaliaTab_function_signatures[] = {
+ "String title, String name, QWidget parent"
+ // static
+ // prototype
+ , "String name, Object defaultValue"
+ , ""
+ , "String name, Object value"
+ , "bool top"
+ , "String shortcut, char slot"
+ , "String title"
+""
+};
+
+static const int qtscript_VidaliaTab_function_lengths[] = {
+ 3
+ // static
+ // prototype
+ , 2
+ , 0
+ , 2
+ , 1
+ , 2
+ , 1
+ , 0
+};
+
+static QScriptValue qtscript_VidaliaTab_throw_ambiguity_error_helper(
+ QScriptContext *context, const char *functionName, const char *signatures)
+{
+ QStringList lines = QString::fromLatin1(signatures).split(QLatin1Char('\n'));
+ QStringList fullSignatures;
+ for (int i = 0; i < lines.size(); ++i)
+ fullSignatures.append(QString::fromLatin1("%0(%1)").arg(functionName).arg(lines.at(i)));
+ return context->throwError(QString::fromLatin1("VidaliaTab::%0(): could not find a function match; candidates are:\n%1")
+ .arg(functionName).arg(fullSignatures.join(QLatin1String("\n"))));
+}
+
+Q_DECLARE_METATYPE(QtScriptShell_VidaliaTab*)
+Q_DECLARE_METATYPE(char*)
+
+//
+// VidaliaTab
+//
+
+static QScriptValue qtscript_VidaliaTab_prototype_call(QScriptContext *context, QScriptEngine *)
+{
+#if QT_VERSION > 0x040400
+ Q_ASSERT(context->callee().isFunction());
+ uint _id = context->callee().data().toUInt32();
+#else
+ uint _id;
+ if (context->callee().isFunction())
+ _id = context->callee().data().toUInt32();
+ else
+ _id = 0xBABE0000 + 6;
+#endif
+ Q_ASSERT((_id & 0xFFFF0000) == 0xBABE0000);
+ _id &= 0x0000FFFF;
+ VidaliaTab* _q_self = qscriptvalue_cast<VidaliaTab*>(context->thisObject());
+ if (!_q_self) {
+ return context->throwError(QScriptContext::TypeError,
+ QString::fromLatin1("VidaliaTab.%0(): this object is not a VidaliaTab")
+ .arg(qtscript_VidaliaTab_function_names[_id+1]));
+ }
+
+ switch (_id) {
+ case 0:
+ if (context->argumentCount() == 2) {
+ QString _q_arg0 = context->argument(0).toString();
+ QVariant _q_arg1 = context->argument(1).toVariant();
+ QVariant _q_result = _q_self->getSetting(_q_arg0, _q_arg1);
+ return qScriptValueFromValue(context->engine(), _q_result);
+ }
+ break;
+
+ case 1:
+ if (context->argumentCount() == 0) {
+ QString _q_result = _q_self->getTitle();
+ return QScriptValue(context->engine(), _q_result);
+ }
+ break;
+
+ case 2:
+ if (context->argumentCount() == 2) {
+ QString _q_arg0 = context->argument(0).toString();
+ QVariant _q_arg1 = context->argument(1).toVariant();
+ _q_self->saveSetting(_q_arg0, _q_arg1);
+ return context->engine()->undefinedValue();
+ }
+ break;
+
+ case 3:
+ if (context->argumentCount() == 1) {
+ bool _q_arg0 = context->argument(0).toBoolean();
+ _q_self->setOnTop(_q_arg0);
+ return context->engine()->undefinedValue();
+ }
+ break;
+
+ case 4:
+ if (context->argumentCount() == 2) {
+ QString _q_arg0 = context->argument(0).toString();
+ char* _q_arg1 = qscriptvalue_cast<char*>(context->argument(1));
+ _q_self->setShortcut(_q_arg0, _q_arg1);
+ return context->engine()->undefinedValue();
+ }
+ break;
+
+ case 5:
+ if (context->argumentCount() == 1) {
+ QString _q_arg0 = context->argument(0).toString();
+ _q_self->setTitle(_q_arg0);
+ return context->engine()->undefinedValue();
+ }
+ break;
+
+ case 6: {
+ QString result = QString::fromLatin1("VidaliaTab");
+ return QScriptValue(context->engine(), result);
+ }
+
+ default:
+ Q_ASSERT(false);
+ }
+ return qtscript_VidaliaTab_throw_ambiguity_error_helper(context,
+ qtscript_VidaliaTab_function_names[_id+1],
+ qtscript_VidaliaTab_function_signatures[_id+1]);
+}
+
+static QScriptValue qtscript_VidaliaTab_static_call(QScriptContext *context, QScriptEngine *)
+{
+ uint _id = context->callee().data().toUInt32();
+ Q_ASSERT((_id & 0xFFFF0000) == 0xBABE0000);
+ _id &= 0x0000FFFF;
+ switch (_id) {
+ case 0:
+ if (context->thisObject().strictlyEquals(context->engine()->globalObject())) {
+ return context->throwError(QString::fromLatin1("VidaliaTab(): Did you forget to construct with 'new'?"));
+ }
+ if (context->argumentCount() == 2) {
+ QString _q_arg0 = context->argument(0).toString();
+ QString _q_arg1 = context->argument(1).toString();
+ QtScriptShell_VidaliaTab* _q_cpp_result = new QtScriptShell_VidaliaTab(_q_arg0, _q_arg1);
+ QScriptValue _q_result = context->engine()->newQObject(context->thisObject(), (VidaliaTab*)_q_cpp_result, QScriptEngine::AutoOwnership);
+ _q_cpp_result->__qtscript_self = _q_result;
+ return _q_result;
+ } else if (context->argumentCount() == 3) {
+ QString _q_arg0 = context->argument(0).toString();
+ QString _q_arg1 = context->argument(1).toString();
+ QWidget* _q_arg2 = qscriptvalue_cast<QWidget*>(context->argument(2));
+ QtScriptShell_VidaliaTab* _q_cpp_result = new QtScriptShell_VidaliaTab(_q_arg0, _q_arg1, _q_arg2);
+ QScriptValue _q_result = context->engine()->newQObject(context->thisObject(), (VidaliaTab*)_q_cpp_result, QScriptEngine::AutoOwnership);
+ _q_cpp_result->__qtscript_self = _q_result;
+ return _q_result;
+ }
+ break;
+
+ default:
+ Q_ASSERT(false);
+ }
+ return qtscript_VidaliaTab_throw_ambiguity_error_helper(context,
+ qtscript_VidaliaTab_function_names[_id],
+ qtscript_VidaliaTab_function_signatures[_id]);
+}
+
+static QScriptValue qtscript_VidaliaTab_toScriptValue(QScriptEngine *engine, VidaliaTab* const &in)
+{
+ return engine->newQObject(in, QScriptEngine::QtOwnership, QScriptEngine::PreferExistingWrapperObject);
+}
+
+static void qtscript_VidaliaTab_fromScriptValue(const QScriptValue &value, VidaliaTab* &out)
+{
+ out = qobject_cast<VidaliaTab*>(value.toQObject());
+}
+
+QScriptValue qtscript_create_VidaliaTab_class(QScriptEngine *engine)
+{
+ engine->setDefaultPrototype(qMetaTypeId<VidaliaTab*>(), QScriptValue());
+ QScriptValue proto = engine->newVariant(qVariantFromValue((VidaliaTab*)0));
+ proto.setPrototype(engine->defaultPrototype(qMetaTypeId<QWidget*>()));
+ for (int i = 0; i < 7; ++i) {
+ QScriptValue fun = engine->newFunction(qtscript_VidaliaTab_prototype_call, qtscript_VidaliaTab_function_lengths[i+1]);
+ fun.setData(QScriptValue(engine, uint(0xBABE0000 + i)));
+ proto.setProperty(QString::fromLatin1(qtscript_VidaliaTab_function_names[i+1]),
+ fun);
+ }
+
+ qScriptRegisterMetaType<VidaliaTab*>(engine, qtscript_VidaliaTab_toScriptValue,
+ qtscript_VidaliaTab_fromScriptValue, proto);
+
+ QScriptValue ctor = engine->newFunction(qtscript_VidaliaTab_static_call, proto, qtscript_VidaliaTab_function_lengths[0]);
+ ctor.setData(QScriptValue(engine, uint(0xBABE0000 + 0)));
+
+ return ctor;
+}
diff --git a/src/vidalia/plugin/extensions/qtscriptshell_VidaliaTab.cpp b/src/vidalia/plugin/extensions/qtscriptshell_VidaliaTab.cpp
new file mode 100644
index 0000000..84b46c7
--- /dev/null
+++ b/src/vidalia/plugin/extensions/qtscriptshell_VidaliaTab.cpp
@@ -0,0 +1,622 @@
+#include "qtscriptshell_VidaliaTab.h"
+
+#include <QtScript/QScriptEngine>
+#include <QVariant>
+#include <qaction.h>
+#include <qbitmap.h>
+#include <qbytearray.h>
+#include <qcoreevent.h>
+#include <qcursor.h>
+#include <qevent.h>
+#include <qfont.h>
+#include <qgraphicseffect.h>
+#include <qgraphicsproxywidget.h>
+#include <qicon.h>
+#include <qinputcontext.h>
+#include <qkeysequence.h>
+#include <qlayout.h>
+#include <qlist.h>
+#include <qlocale.h>
+#include <qmargins.h>
+#include <qobject.h>
+#include <qpaintdevice.h>
+#include <qpaintengine.h>
+#include <qpainter.h>
+#include <qpalette.h>
+#include <qpoint.h>
+#include <qrect.h>
+#include <qregion.h>
+#include <qsize.h>
+#include <qsizepolicy.h>
+#include <qstyle.h>
+#include <qwidget.h>
+
+#define QTSCRIPT_IS_GENERATED_FUNCTION(fun) ((fun.data().toUInt32() & 0xFFFF0000) == 0xBABE0000)
+
+Q_DECLARE_METATYPE(QActionEvent*)
+Q_DECLARE_METATYPE(QEvent*)
+Q_DECLARE_METATYPE(QChildEvent*)
+Q_DECLARE_METATYPE(QCloseEvent*)
+Q_DECLARE_METATYPE(QContextMenuEvent*)
+Q_DECLARE_METATYPE(QDragEnterEvent*)
+Q_DECLARE_METATYPE(QDragLeaveEvent*)
+Q_DECLARE_METATYPE(QDragMoveEvent*)
+Q_DECLARE_METATYPE(QDropEvent*)
+Q_DECLARE_METATYPE(QFocusEvent*)
+Q_DECLARE_METATYPE(QHideEvent*)
+Q_DECLARE_METATYPE(QInputMethodEvent*)
+Q_DECLARE_METATYPE(Qt::InputMethodQuery)
+Q_DECLARE_METATYPE(QKeyEvent*)
+Q_DECLARE_METATYPE(QPaintDevice::PaintDeviceMetric)
+Q_DECLARE_METATYPE(QMouseEvent*)
+Q_DECLARE_METATYPE(QMoveEvent*)
+Q_DECLARE_METATYPE(QPaintEngine*)
+Q_DECLARE_METATYPE(QPaintEvent*)
+Q_DECLARE_METATYPE(QResizeEvent*)
+Q_DECLARE_METATYPE(QShowEvent*)
+Q_DECLARE_METATYPE(QTabletEvent*)
+Q_DECLARE_METATYPE(QTimerEvent*)
+Q_DECLARE_METATYPE(QWheelEvent*)
+
+QtScriptShell_VidaliaTab::QtScriptShell_VidaliaTab(const QString& title, const QString& name, QWidget* parent)
+ : VidaliaTab(title, name, parent) {}
+
+QtScriptShell_VidaliaTab::~QtScriptShell_VidaliaTab() {}
+
+void QtScriptShell_VidaliaTab::actionEvent(QActionEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("actionEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("actionEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::actionEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+void QtScriptShell_VidaliaTab::changeEvent(QEvent* e)
+{
+ QScriptValue _q_function = __qtscript_self.property("changeEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("changeEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::changeEvent(e);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, e));
+ }
+}
+
+void QtScriptShell_VidaliaTab::childEvent(QChildEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("childEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("childEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::childEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+void QtScriptShell_VidaliaTab::closeEvent(QCloseEvent* event)
+{
+ QScriptValue _q_function = __qtscript_self.property("closeEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("closeEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::closeEvent(event);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, event));
+ }
+}
+
+void QtScriptShell_VidaliaTab::contextMenuEvent(QContextMenuEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("contextMenuEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("contextMenuEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::contextMenuEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+void QtScriptShell_VidaliaTab::customEvent(QEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("customEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("customEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::customEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+int QtScriptShell_VidaliaTab::devType() const
+{
+ QScriptValue _q_function = __qtscript_self.property("devType");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("devType") & QScriptValue::QObjectMember)) {
+ return VidaliaTab::devType();
+ } else {
+ return qscriptvalue_cast<int >(_q_function.call(__qtscript_self));
+ }
+}
+
+void QtScriptShell_VidaliaTab::dragEnterEvent(QDragEnterEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("dragEnterEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("dragEnterEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::dragEnterEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+void QtScriptShell_VidaliaTab::dragLeaveEvent(QDragLeaveEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("dragLeaveEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("dragLeaveEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::dragLeaveEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+void QtScriptShell_VidaliaTab::dragMoveEvent(QDragMoveEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("dragMoveEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("dragMoveEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::dragMoveEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+void QtScriptShell_VidaliaTab::dropEvent(QDropEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("dropEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("dropEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::dropEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+void QtScriptShell_VidaliaTab::enterEvent(QEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("enterEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("enterEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::enterEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+bool QtScriptShell_VidaliaTab::event(QEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("event");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("event") & QScriptValue::QObjectMember)) {
+ return VidaliaTab::event(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ return qscriptvalue_cast<bool >(_q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1)));
+ }
+}
+
+bool QtScriptShell_VidaliaTab::eventFilter(QObject* arg__1, QEvent* arg__2)
+{
+ QScriptValue _q_function = __qtscript_self.property("eventFilter");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("eventFilter") & QScriptValue::QObjectMember)) {
+ return VidaliaTab::eventFilter(arg__1, arg__2);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ return qscriptvalue_cast<bool >(_q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1)
+ << qScriptValueFromValue(_q_engine, arg__2)));
+ }
+}
+
+void QtScriptShell_VidaliaTab::focusInEvent(QFocusEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("focusInEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("focusInEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::focusInEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+bool QtScriptShell_VidaliaTab::focusNextPrevChild(bool next)
+{
+ QScriptValue _q_function = __qtscript_self.property("focusNextPrevChild");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("focusNextPrevChild") & QScriptValue::QObjectMember)) {
+ return VidaliaTab::focusNextPrevChild(next);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ return qscriptvalue_cast<bool >(_q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, next)));
+ }
+}
+
+void QtScriptShell_VidaliaTab::focusOutEvent(QFocusEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("focusOutEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("focusOutEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::focusOutEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+int QtScriptShell_VidaliaTab::heightForWidth(int arg__1) const
+{
+ QScriptValue _q_function = __qtscript_self.property("heightForWidth");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("heightForWidth") & QScriptValue::QObjectMember)) {
+ return VidaliaTab::heightForWidth(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ return qscriptvalue_cast<int >(_q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1)));
+ }
+}
+
+void QtScriptShell_VidaliaTab::hideEvent(QHideEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("hideEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("hideEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::hideEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+void QtScriptShell_VidaliaTab::inputMethodEvent(QInputMethodEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("inputMethodEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("inputMethodEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::inputMethodEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+QVariant QtScriptShell_VidaliaTab::inputMethodQuery(Qt::InputMethodQuery arg__1) const
+{
+ QScriptValue _q_function = __qtscript_self.property("inputMethodQuery");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("inputMethodQuery") & QScriptValue::QObjectMember)) {
+ return VidaliaTab::inputMethodQuery(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ return qscriptvalue_cast<QVariant >(_q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1)));
+ }
+}
+
+void QtScriptShell_VidaliaTab::keyPressEvent(QKeyEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("keyPressEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("keyPressEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::keyPressEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+void QtScriptShell_VidaliaTab::keyReleaseEvent(QKeyEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("keyReleaseEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("keyReleaseEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::keyReleaseEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+void QtScriptShell_VidaliaTab::languageChange()
+{
+ QScriptValue _q_function = __qtscript_self.property("languageChange");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("languageChange") & QScriptValue::QObjectMember)) {
+ VidaliaTab::languageChange();
+ } else {
+ _q_function.call(__qtscript_self);
+ }
+}
+
+void QtScriptShell_VidaliaTab::leaveEvent(QEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("leaveEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("leaveEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::leaveEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+int QtScriptShell_VidaliaTab::metric(QPaintDevice::PaintDeviceMetric arg__1) const
+{
+ QScriptValue _q_function = __qtscript_self.property("metric");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("metric") & QScriptValue::QObjectMember)) {
+ return VidaliaTab::metric(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ return qscriptvalue_cast<int >(_q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1)));
+ }
+}
+
+QSize QtScriptShell_VidaliaTab::minimumSizeHint() const
+{
+ QScriptValue _q_function = __qtscript_self.property("getMinimumSizeHint");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("getMinimumSizeHint") & QScriptValue::QObjectMember)) {
+ return VidaliaTab::minimumSizeHint();
+ } else {
+ return qscriptvalue_cast<QSize >(_q_function.call(__qtscript_self));
+ }
+}
+
+void QtScriptShell_VidaliaTab::mouseDoubleClickEvent(QMouseEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("mouseDoubleClickEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("mouseDoubleClickEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::mouseDoubleClickEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+void QtScriptShell_VidaliaTab::mouseMoveEvent(QMouseEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("mouseMoveEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("mouseMoveEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::mouseMoveEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+void QtScriptShell_VidaliaTab::mousePressEvent(QMouseEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("mousePressEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("mousePressEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::mousePressEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+void QtScriptShell_VidaliaTab::mouseReleaseEvent(QMouseEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("mouseReleaseEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("mouseReleaseEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::mouseReleaseEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+void QtScriptShell_VidaliaTab::moveEvent(QMoveEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("moveEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("moveEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::moveEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+QPaintEngine* QtScriptShell_VidaliaTab::paintEngine() const
+{
+ QScriptValue _q_function = __qtscript_self.property("paintEngine");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("paintEngine") & QScriptValue::QObjectMember)) {
+ return VidaliaTab::paintEngine();
+ } else {
+ return qscriptvalue_cast<QPaintEngine* >(_q_function.call(__qtscript_self));
+ }
+}
+
+void QtScriptShell_VidaliaTab::paintEvent(QPaintEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("paintEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("paintEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::paintEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+void QtScriptShell_VidaliaTab::resizeEvent(QResizeEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("resizeEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("resizeEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::resizeEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+void QtScriptShell_VidaliaTab::retranslateUi()
+{
+ QScriptValue _q_function = __qtscript_self.property("retranslateUi");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("retranslateUi") & QScriptValue::QObjectMember)) {
+ VidaliaTab::retranslateUi();
+ } else {
+ _q_function.call(__qtscript_self);
+ }
+}
+
+void QtScriptShell_VidaliaTab::showEvent(QShowEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("showEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("showEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::showEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+QSize QtScriptShell_VidaliaTab::sizeHint() const
+{
+ QScriptValue _q_function = __qtscript_self.property("getSizeHint");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("getSizeHint") & QScriptValue::QObjectMember)) {
+ return VidaliaTab::sizeHint();
+ } else {
+ return qscriptvalue_cast<QSize >(_q_function.call(__qtscript_self));
+ }
+}
+
+void QtScriptShell_VidaliaTab::tabletEvent(QTabletEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("tabletEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("tabletEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::tabletEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+void QtScriptShell_VidaliaTab::timerEvent(QTimerEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("timerEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("timerEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::timerEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
+void QtScriptShell_VidaliaTab::wheelEvent(QWheelEvent* arg__1)
+{
+ QScriptValue _q_function = __qtscript_self.property("wheelEvent");
+ if (!_q_function.isFunction() || QTSCRIPT_IS_GENERATED_FUNCTION(_q_function)
+ || (__qtscript_self.propertyFlags("wheelEvent") & QScriptValue::QObjectMember)) {
+ VidaliaTab::wheelEvent(arg__1);
+ } else {
+ QScriptEngine *_q_engine = __qtscript_self.engine();
+ _q_function.call(__qtscript_self,
+ QScriptValueList()
+ << qScriptValueFromValue(_q_engine, arg__1));
+ }
+}
+
diff --git a/src/vidalia/plugin/extensions/qtscriptshell_VidaliaTab.h b/src/vidalia/plugin/extensions/qtscriptshell_VidaliaTab.h
new file mode 100644
index 0000000..74021fc
--- /dev/null
+++ b/src/vidalia/plugin/extensions/qtscriptshell_VidaliaTab.h
@@ -0,0 +1,59 @@
+#ifndef QTSCRIPTSHELL_VIDALIATAB_H
+#define QTSCRIPTSHELL_VIDALIATAB_H
+
+#include <VidaliaTab.h>
+
+#include <QtScript/qscriptvalue.h>
+
+class QtScriptShell_VidaliaTab : public VidaliaTab
+{
+public:
+ QtScriptShell_VidaliaTab(const QString& title, const QString& name = "General", QWidget* parent = 0);
+ ~QtScriptShell_VidaliaTab();
+
+ void actionEvent(QActionEvent* arg__1);
+ void changeEvent(QEvent* e);
+ void childEvent(QChildEvent* arg__1);
+ void closeEvent(QCloseEvent* event);
+ void contextMenuEvent(QContextMenuEvent* arg__1);
+ void customEvent(QEvent* arg__1);
+ int devType() const;
+ void dragEnterEvent(QDragEnterEvent* arg__1);
+ void dragLeaveEvent(QDragLeaveEvent* arg__1);
+ void dragMoveEvent(QDragMoveEvent* arg__1);
+ void dropEvent(QDropEvent* arg__1);
+ void enterEvent(QEvent* arg__1);
+ bool event(QEvent* arg__1);
+ bool eventFilter(QObject* arg__1, QEvent* arg__2);
+ void focusInEvent(QFocusEvent* arg__1);
+ bool focusNextPrevChild(bool next);
+ void focusOutEvent(QFocusEvent* arg__1);
+ int heightForWidth(int arg__1) const;
+ void hideEvent(QHideEvent* arg__1);
+ void inputMethodEvent(QInputMethodEvent* arg__1);
+ QVariant inputMethodQuery(Qt::InputMethodQuery arg__1) const;
+ void keyPressEvent(QKeyEvent* arg__1);
+ void keyReleaseEvent(QKeyEvent* arg__1);
+ void languageChange();
+ void leaveEvent(QEvent* arg__1);
+ int metric(QPaintDevice::PaintDeviceMetric arg__1) const;
+ QSize minimumSizeHint() const;
+ void mouseDoubleClickEvent(QMouseEvent* arg__1);
+ void mouseMoveEvent(QMouseEvent* arg__1);
+ void mousePressEvent(QMouseEvent* arg__1);
+ void mouseReleaseEvent(QMouseEvent* arg__1);
+ void moveEvent(QMoveEvent* arg__1);
+ QPaintEngine* paintEngine() const;
+ void paintEvent(QPaintEvent* arg__1);
+ void resizeEvent(QResizeEvent* arg__1);
+ void retranslateUi();
+ void showEvent(QShowEvent* arg__1);
+ QSize sizeHint() const;
+ void tabletEvent(QTabletEvent* arg__1);
+ void timerEvent(QTimerEvent* arg__1);
+ void wheelEvent(QWheelEvent* arg__1);
+
+ QScriptValue __qtscript_self;
+};
+
+#endif // QTSCRIPTSHELL_VIDALIATAB_H
diff --git a/src/vidalia/plugin/prototypes/VidaliaTabPrototype.cpp b/src/vidalia/plugin/prototypes/VidaliaTabPrototype.cpp
deleted file mode 100644
index 6d902a3..0000000
--- a/src/vidalia/plugin/prototypes/VidaliaTabPrototype.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
-** 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.torproject.org/projects/vidalia.html. 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 VidaliaTabPrototype.cpp
-** \brief Prototype for VidaliaTab class
-*/
-
-#include "VidaliaTabPrototype.h"
-
-VidaliaTabPrototype::VidaliaTabPrototype(QObject *parent)
- : QObject(parent)
-{}
-
-QScriptValue
-VidaliaTabPrototype::constructor(QScriptContext *context, QScriptEngine *engine)
-{
- if((context->argumentCount() > 2) or (context->argumentCount() < 1))
- return QScriptValue(QScriptValue::NullValue);
-
- QString title = "";
- QString name = "";
-
- title = qscriptvalue_cast<QString>(context->argument(0));
- if(context->argumentCount() > 1)
- name = qscriptvalue_cast<QString>(context->argument(1));
-
- return engine->newQObject(new VidaliaTab(title, name), QScriptEngine::ScriptOwnership);
-}
-
-int
-VidaliaTabPrototype::metaTypeId()
-{
- return qMetaTypeId<VidaliaTab *>();
-}
-
-QString
-VidaliaTabPrototype::name()
-{
- return QString("VidaliaTab");
-}
-
-void
-VidaliaTabPrototype::setLayout(QLayout *layout)
-{
- VidaliaTab *obj = qscriptvalue_cast<VidaliaTab *>(thisObject());
-
- if(obj)
- obj->setLayout(layout);
-}
-
-QVariant
-VidaliaTabPrototype::getSetting(QString name, QVariant defaultValue)
-{
- VidaliaTab *obj = qscriptvalue_cast<VidaliaTab *>(thisObject());
-
- if(obj)
- return obj->getSetting(name, defaultValue);
-}
-
-void
-VidaliaTabPrototype::saveSetting(QString name, QVariant value)
-{
- VidaliaTab *obj = qscriptvalue_cast<VidaliaTab *>(thisObject());
-
- if(obj)
- obj->saveSetting(name, value);
-}
diff --git a/src/vidalia/plugin/prototypes/VidaliaTabPrototype.h b/src/vidalia/plugin/prototypes/VidaliaTabPrototype.h
deleted file mode 100644
index 2a79a28..0000000
--- a/src/vidalia/plugin/prototypes/VidaliaTabPrototype.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-** 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.torproject.org/projects/vidalia.html. 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 VidaliaTabPrototype.h
-** \brief Prototype for VidaliaTab class
-*/
-
-#ifndef VIDALIATABPROT_H
-#define VIDALIATABPROT_H
-
-#include <QtGui>
-#include <QtScript>
-
-#include "VidaliaTab.h"
-
-class VidaliaTabPrototype : public QObject, public QScriptable
-{
- Q_OBJECT
-
- public:
- VidaliaTabPrototype(QObject *parent = 0);
- static QScriptValue constructor(QScriptContext *context, QScriptEngine *engine);
- static int metaTypeId();
- static QString name();
-
- Q_INVOKABLE void setLayout(QLayout *layout);
- Q_INVOKABLE QVariant getSetting(QString name, QVariant defaultValue);
- Q_INVOKABLE void saveSetting(QString name, QVariant value);
-};
-
-Q_DECLARE_METATYPE(VidaliaTab *);
-
-#endif
-
1
0

[vidalia/alpha] We don't need includes, that can be done by adding the file in info.xml
by chiiph@torproject.org 21 Jul '12
by chiiph@torproject.org 21 Jul '12
21 Jul '12
commit f3872536b0109cf9c0be9602d7b70794bdcd7160
Author: Tomás Touceda <chiiph(a)torproject.org>
Date: Sat Jul 21 15:49:36 2012 -0300
We don't need includes, that can be done by adding the file in info.xml
---
src/vidalia/plugin/PluginEngine.cpp | 50 -----------------------------------
src/vidalia/plugin/PluginEngine.h | 2 -
2 files changed, 0 insertions(+), 52 deletions(-)
diff --git a/src/vidalia/plugin/PluginEngine.cpp b/src/vidalia/plugin/PluginEngine.cpp
index 82f133d..a451942 100644
--- a/src/vidalia/plugin/PluginEngine.cpp
+++ b/src/vidalia/plugin/PluginEngine.cpp
@@ -43,7 +43,6 @@ PluginEngine::PluginEngine(QObject *parent)
globalObject().setProperty("torrc", newQObject(Vidalia::torrc()));
globalObject().setProperty("vidaliaApp", newQObject(vApp));
-// globalObject().setProperty("include", newFunction(includeScript));
globalObject().setProperty("importExtension", newFunction(importExtension));
globalObject().setProperty("vdebug", newFunction(vdebug));
globalObject().setProperty("findWidget", newFunction(findWidget));
@@ -140,55 +139,6 @@ PluginEngine::importExtension(QScriptContext *context, QScriptEngine *engine)
return engine->importExtension(context->argument(0).toString());
}
-//QScriptValue
-//PluginEngine::includeScript(QScriptContext *context, QScriptEngine *engine)
-//{
-// VidaliaSettings settings;
-// QString path = settings.pluginPath();
-// QString importFile = context->argument(0).toString();
-// QFileInfo importInfo(importFile);
-// if (importInfo.isRelative()) {
-// importFile = path + "/" + importInfo.filePath();
-// }
-
-// if (!loadFile(importFile, engine)) {
-// return context->throwError(QString("Failed to resolve include: %1").arg(importFile));
-// }
-// return engine->toScriptValue(true);
-//}
-
-//bool
-//PluginEngine::loadFile(QString fileName, QScriptEngine *engine)
-//{
-// static QSet<QString> loadedFiles;
-// QFileInfo fileInfo(fileName);
-// QString absoluteFileName = fileInfo.absoluteFilePath();
-// QString absolutePath = fileInfo.absolutePath();
-// QString canonicalFileName = fileInfo.canonicalFilePath();
-// if (loadedFiles.contains(canonicalFileName)) {
-// return true;
-// }
-// loadedFiles.insert(canonicalFileName);
-// QString path = fileInfo.path();
-
-// QFile file(fileName);
-// if (file.open(QFile::ReadOnly)) {
-// QTextStream stream(&file);
-// QString contents = stream.readAll();
-// file.close();
-
-// QScriptValue r = engine->evaluate(contents);
-// if (engine->hasUncaughtException()) {
-// QStringList backtrace = engine->uncaughtExceptionBacktrace();
-// qDebug() << QString(" %1\n%2\n\n").arg(r.toString()).arg(backtrace.join("\n"));
-// return true;
-// }
-// } else {
-// return false;
-// }
-// return true;
-//}
-
QScriptValue
PluginEngine::vdebug(QScriptContext *context, QScriptEngine *engine)
{
diff --git a/src/vidalia/plugin/PluginEngine.h b/src/vidalia/plugin/PluginEngine.h
index dd68eba..c0c5166 100644
--- a/src/vidalia/plugin/PluginEngine.h
+++ b/src/vidalia/plugin/PluginEngine.h
@@ -48,8 +48,6 @@ class PluginEngine : public QScriptEngine {
protected:
static QScriptValue importExtension(QScriptContext *context, QScriptEngine *engine);
-// static bool loadFile(QString fileName, QScriptEngine *engine);
-// static QScriptValue includeScript(QScriptContext *context, QScriptEngine *engine);
static QScriptValue vdebug(QScriptContext *context, QScriptEngine *engine);
static QScriptValue findWidget(QScriptContext *context, QScriptEngine *engine);
static QScriptValue sleep(QScriptContext *context, QScriptEngine *engine);
1
0

[vidalia/alpha] Output plugin engine debug messages to the terminal
by chiiph@torproject.org 21 Jul '12
by chiiph@torproject.org 21 Jul '12
21 Jul '12
commit da3d7566c412084360c884950e6c27500da4d544
Author: Tomás Touceda <chiiph(a)torproject.org>
Date: Sat Jul 21 15:51:11 2012 -0300
Output plugin engine debug messages to the terminal
---
changes/pluginEngineImprovements | 1 +
src/vidalia/plugin/DebugDialog.cpp | 4 ++++
2 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/changes/pluginEngineImprovements b/changes/pluginEngineImprovements
index 552792a..ca75311 100644
--- a/changes/pluginEngineImprovements
+++ b/changes/pluginEngineImprovements
@@ -2,3 +2,4 @@
o VidaliaTab prototype for plugins has been migrated to a full QWidget
derived object and an automatically generated extension.
o Provide a way to add icons to a plugin's menu item.
+ o Output plugins engine debug messages to the terminal.
diff --git a/src/vidalia/plugin/DebugDialog.cpp b/src/vidalia/plugin/DebugDialog.cpp
index a6105c4..6967bea 100644
--- a/src/vidalia/plugin/DebugDialog.cpp
+++ b/src/vidalia/plugin/DebugDialog.cpp
@@ -15,6 +15,7 @@
*/
#include "DebugDialog.h"
+#include "Vidalia.h"
QStringList DebugDialog::outputBuffer;
QStringList DebugDialog::syntaxBuffer;
@@ -46,18 +47,21 @@ void
DebugDialog::outputDebug(const QString &msg)
{
outputBuffer << msg;
+ vDebug("[PluginEngine - debug] %1").arg(msg);
}
void
DebugDialog::syntaxDebug(const QString &msg)
{
syntaxBuffer << msg;
+ vDebug("[PluginEngine - syntax error] %1").arg(msg);
}
void
DebugDialog::exceptDebug(const QString &msg)
{
exceptBuffer << msg;
+ vDebug("[PluginEngine - exception] %1").arg(msg);
}
void
1
0

21 Jul '12
commit f51382526e73fd1b34208d2077d0fbc058283865
Author: Tomás Touceda <chiiph(a)torproject.org>
Date: Sat Jul 21 15:50:07 2012 -0300
Provide icon capabilities for plugins menus
---
changes/pluginEngineImprovements | 1 +
src/vidalia/plugin/PluginWrapper.cpp | 15 ++++++++++++++-
src/vidalia/plugin/PluginWrapper.h | 2 ++
3 files changed, 17 insertions(+), 1 deletions(-)
diff --git a/changes/pluginEngineImprovements b/changes/pluginEngineImprovements
index a242f84..552792a 100644
--- a/changes/pluginEngineImprovements
+++ b/changes/pluginEngineImprovements
@@ -1,3 +1,4 @@
Internal cleanups and improvements:
o VidaliaTab prototype for plugins has been migrated to a full QWidget
derived object and an automatically generated extension.
+ o Provide a way to add icons to a plugin's menu item.
diff --git a/src/vidalia/plugin/PluginWrapper.cpp b/src/vidalia/plugin/PluginWrapper.cpp
index 15634b5..a2c16ea 100644
--- a/src/vidalia/plugin/PluginWrapper.cpp
+++ b/src/vidalia/plugin/PluginWrapper.cpp
@@ -107,6 +107,10 @@ PluginWrapper::processInfo(const QString &path)
}
} else if(e.tagName() == "namespace") {
_nspace = e.text();
+ } else if(e.tagName() == "icon") {
+ _icon = e.text();
+ if(not _icon.startsWith(":"))
+ _icon = QFileInfo(path).absoluteDir().canonicalPath() + "/" + _icon;
}
}
n = n.nextSibling();
@@ -215,10 +219,19 @@ PluginWrapper::files() const
return _files;
}
+QString
+PluginWrapper::icon() const
+{
+ return _icon;
+}
+
QAction *
PluginWrapper::menuAction()
{
- _action = new QAction(_name, this);
+ if (not _icon.isEmpty())
+ _action = new QAction(QIcon(_icon), _name, this);
+ else
+ _action = new QAction(_name, this);
if(hasGUI()) {
connect(_action, SIGNAL(triggered()), this, SLOT(emitPluginTab()));
diff --git a/src/vidalia/plugin/PluginWrapper.h b/src/vidalia/plugin/PluginWrapper.h
index 288c62f..c59ffd2 100644
--- a/src/vidalia/plugin/PluginWrapper.h
+++ b/src/vidalia/plugin/PluginWrapper.h
@@ -36,6 +36,7 @@ class PluginWrapper : public QObject {
QString date() const;
QString author() const;
QString nspace() const;
+ QString icon() const;
QStringList files() const;
QAction *menuAction();
@@ -60,6 +61,7 @@ class PluginWrapper : public QObject {
bool _persistent, _gui;
QStringList _files;
QString _nspace;
+ QString _icon;
QAction *_action;
};
1
0
commit d6a7c7d8e1b4c38688d82e269535ecc8bf21507d
Author: Tomás Touceda <chiiph(a)torproject.org>
Date: Sat Jul 21 16:13:30 2012 -0300
Add missing icons
---
changes/icons | 2 ++
src/vidalia/MainWindow.cpp | 19 +++++++------------
src/vidalia/res/32x32/debug.png | Bin 0 -> 5495 bytes
src/vidalia/res/32x32/debug.readme.txt | 7 +++++++
src/vidalia/res/32x32/hide.png | Bin 0 -> 281 bytes
src/vidalia/res/32x32/hide.readme.txt | 7 +++++++
src/vidalia/res/32x32/reload.png | Bin 0 -> 3645 bytes
src/vidalia/res/vidalia.qrc | 3 +++
8 files changed, 26 insertions(+), 12 deletions(-)
diff --git a/changes/icons b/changes/icons
new file mode 100644
index 0000000..01641a7
--- /dev/null
+++ b/changes/icons
@@ -0,0 +1,2 @@
+ Internal cleanups and improvements:
+ o Add missing icons.
diff --git a/src/vidalia/MainWindow.cpp b/src/vidalia/MainWindow.cpp
index e3cacb0..e40e3a3 100644
--- a/src/vidalia/MainWindow.cpp
+++ b/src/vidalia/MainWindow.cpp
@@ -59,6 +59,9 @@
#define IMG_ABOUT ":/images/16x16/help-about.png"
#define IMG_EXIT ":/images/16x16/application-exit.png"
#define IMG_NETWORK ":/images/16x16/applications-internet.png"
+#define IMG_RELOAD ":/images/32x32/reload.png"
+#define IMG_HIDE ":/images/32x32/hide.png"
+#define IMG_DEBUG ":/images/32x32/debug.png"
#define IMG_START_TOR_16 ":/images/16x16/media-playback-start.png"
#define IMG_STOP_TOR_16 ":/images/16x16/media-playback-stop.png"
@@ -203,8 +206,8 @@ void
MainWindow::createActions()
{
_actionShowControlPanel = new QAction(QIcon(IMG_CONTROL_PANEL), tr("Control Panel"), this);
- _actionRestartTor = new QAction(tr("Restart"), this);
- _actionReloadConfig = new QAction(tr("Reload Tor's config"), this);
+ _actionRestartTor = new QAction(QIcon(IMG_RELOAD), tr("Restart"), this);
+ _actionReloadConfig = new QAction(QIcon(IMG_RELOAD), tr("Reload Tor's config"), this);
_actionNewIdentity = new QAction(QIcon(IMG_IDENTITY), tr("New Circuit"), this);
_actionStatus = new QAction(QIcon(IMG_CONTROL_PANEL), tr("Status"), this);
_actionNetworkMap = new QAction(QIcon(IMG_NETWORK), tr("Network Map"), this);
@@ -215,9 +218,9 @@ MainWindow::createActions()
_actionAbout = new QAction(QIcon(IMG_ABOUT), tr("About"), this);
_actionStartStopTor = new QAction(QIcon(IMG_START_TOR_16), tr("Start Tor"), this);
_actionExit = new QAction(QIcon(IMG_EXIT), tr("Exit"), this);
- _actionDebugDialog = new QAction(tr("Debug output"), this);
+ _actionDebugDialog = new QAction(QIcon(IMG_DEBUG), tr("Debug output"), this);
_actionPanic = new QAction(QIcon(IMG_EXIT), tr("Panic!"), this);
- _actionHide = new QAction(tr("Hide"), this);
+ _actionHide = new QAction(QIcon(IMG_HIDE), tr("Hide"), this);
if (QSystemTrayIcon::isSystemTrayAvailable()) {
_actionHide->setShortcut(QKeySequence(tr("Ctrl+W")));
}
@@ -2058,14 +2061,6 @@ MainWindow::delTab(int index)
index = ui.tabWidget->currentIndex();
VidaliaTab *tab = qobject_cast<VidaliaTab*>(ui.tabWidget->widget(index));
- // if it isn't one of the tabs that's supposed to be open at every moment
- if (tab != _messageLog &&
- tab != &_statusTab &&
- tab != &_netViewer &&
- tab != _graph) {
- QObject::disconnect(ui.tabWidget->widget(index), 0, 0, 0);
- tab->deleteLater();
- }
ui.tabWidget->removeTab(index);
QString key = _tabMap.at(index);
_tabMap.removeAll(key);
diff --git a/src/vidalia/res/32x32/debug.png b/src/vidalia/res/32x32/debug.png
new file mode 100644
index 0000000..8c45d78
Binary files /dev/null and b/src/vidalia/res/32x32/debug.png differ
diff --git a/src/vidalia/res/32x32/debug.readme.txt b/src/vidalia/res/32x32/debug.readme.txt
new file mode 100644
index 0000000..49fe2e4
--- /dev/null
+++ b/src/vidalia/res/32x32/debug.readme.txt
@@ -0,0 +1,7 @@
+debug.png is a part of Phuzion icon pack
+
+Author: Asher
+Web: http://kyo-tux.deviantart.com/
+
+Distributed under license CC Attribution Share Alike
+(http://creativecommons.org/licenses/by-sa/3.0/)
diff --git a/src/vidalia/res/32x32/hide.png b/src/vidalia/res/32x32/hide.png
new file mode 100644
index 0000000..0be644e
Binary files /dev/null and b/src/vidalia/res/32x32/hide.png differ
diff --git a/src/vidalia/res/32x32/hide.readme.txt b/src/vidalia/res/32x32/hide.readme.txt
new file mode 100644
index 0000000..c5701f2
--- /dev/null
+++ b/src/vidalia/res/32x32/hide.readme.txt
@@ -0,0 +1,7 @@
+hide.png icon is a part of Picol icon pack
+
+Author: Melih Bilgil
+Web: http://www.picol.org/
+
+Distributed under CC Attribution Non-Commercial Share Alike
+(http://creativecommons.org/licenses/by-nc-sa/3.0/)
diff --git a/src/vidalia/res/32x32/reload.png b/src/vidalia/res/32x32/reload.png
new file mode 100644
index 0000000..0662a45
Binary files /dev/null and b/src/vidalia/res/32x32/reload.png differ
diff --git a/src/vidalia/res/vidalia.qrc b/src/vidalia/res/vidalia.qrc
index c1c52c7..333e839 100644
--- a/src/vidalia/res/vidalia.qrc
+++ b/src/vidalia/res/vidalia.qrc
@@ -97,6 +97,9 @@
<file>32x32/zoom-fit-best.png</file>
<file>32x32/zoom-in.png</file>
<file>32x32/zoom-out.png</file>
+ <file>32x32/hide.png</file>
+ <file>32x32/reload.png</file>
+ <file>32x32/debug.png</file>
</qresource>
<qresource prefix="/images">
<file>48x48/applications-internet.png</file>
1
0

[vidalia/alpha] Add TorControl's setEvent method to the extension
by chiiph@torproject.org 21 Jul '12
by chiiph@torproject.org 21 Jul '12
21 Jul '12
commit efe4f9b565d0789e16b7c63fc9b12300a0898213
Author: Tomás Touceda <chiiph(a)torproject.org>
Date: Sat Jul 21 15:51:44 2012 -0300
Add TorControl's setEvent method to the extension
---
changes/pluginEngineImprovements | 1 +
.../plugin/extensions/qtscript_TorControl.cpp | 49 ++++++++++++++++---
2 files changed, 42 insertions(+), 8 deletions(-)
diff --git a/changes/pluginEngineImprovements b/changes/pluginEngineImprovements
index ca75311..c4c0a30 100644
--- a/changes/pluginEngineImprovements
+++ b/changes/pluginEngineImprovements
@@ -3,3 +3,4 @@
derived object and an automatically generated extension.
o Provide a way to add icons to a plugin's menu item.
o Output plugins engine debug messages to the terminal.
+ o Add TorControl's setEvent method to its qtscript extension.
diff --git a/src/vidalia/plugin/extensions/qtscript_TorControl.cpp b/src/vidalia/plugin/extensions/qtscript_TorControl.cpp
index b0ce6e9..8520f04 100644
--- a/src/vidalia/plugin/extensions/qtscript_TorControl.cpp
+++ b/src/vidalia/plugin/extensions/qtscript_TorControl.cpp
@@ -53,6 +53,7 @@ static const char * const qtscript_TorControl_function_names[] = {
, "resetConf"
, "saveConf"
, "setConf"
+ , "setEvent"
, "setEvents"
, "shouldContinue"
, "start"
@@ -93,6 +94,7 @@ static const char * const qtscript_TorControl_function_signatures[] = {
, "String key, String errmsg\nList keys, String errmsg"
, "String errmsg"
, "String key, String value, String errmsg, ControlReply reply\nString keyAndValue, String errmsg, ControlReply reply"
+ , "Event e, bool add, bool set, String errmsg"
, "String errmsg"
, "String errmsg"
, "String tor, List args"
@@ -133,6 +135,7 @@ static const int qtscript_TorControl_function_lengths[] = {
, 2
, 1
, 4
+ , 4
, 1
, 1
, 2
@@ -185,6 +188,7 @@ struct QMetaTypeId< QHash<QString,QString> > \
};
Q_DECLARE_METATYPE(QList<unsigned short>)
Q_DECLARE_METATYPE(ControlReply*)
+Q_DECLARE_METATYPE(TorEvents::Event)
Q_DECLARE_METATYPE(ControlMethod::Method)
//
@@ -201,7 +205,7 @@ static QScriptValue qtscript_TorControl_prototype_call(QScriptContext *context,
if (context->callee().isFunction())
_id = context->callee().data().toUInt32();
else
- _id = 0xBABE0000 + 33;
+ _id = 0xBABE0000 + 34;
#endif
Q_ASSERT((_id & 0xFFFF0000) == 0xBABE0000);
_id &= 0x0000FFFF;
@@ -645,6 +649,35 @@ static QScriptValue qtscript_TorControl_prototype_call(QScriptContext *context,
break;
case 27:
+ if (context->argumentCount() == 1) {
+ TorEvents::Event _q_arg0 = qscriptvalue_cast<TorEvents::Event>(context->argument(0));
+ bool _q_result = _q_self->setEvent(_q_arg0);
+ return QScriptValue(context->engine(), _q_result);
+ }
+ if (context->argumentCount() == 2) {
+ TorEvents::Event _q_arg0 = qscriptvalue_cast<TorEvents::Event>(context->argument(0));
+ bool _q_arg1 = context->argument(1).toBoolean();
+ bool _q_result = _q_self->setEvent(_q_arg0, _q_arg1);
+ return QScriptValue(context->engine(), _q_result);
+ }
+ if (context->argumentCount() == 3) {
+ TorEvents::Event _q_arg0 = qscriptvalue_cast<TorEvents::Event>(context->argument(0));
+ bool _q_arg1 = context->argument(1).toBoolean();
+ bool _q_arg2 = context->argument(2).toBoolean();
+ bool _q_result = _q_self->setEvent(_q_arg0, _q_arg1, _q_arg2);
+ return QScriptValue(context->engine(), _q_result);
+ }
+ if (context->argumentCount() == 4) {
+ TorEvents::Event _q_arg0 = qscriptvalue_cast<TorEvents::Event>(context->argument(0));
+ bool _q_arg1 = context->argument(1).toBoolean();
+ bool _q_arg2 = context->argument(2).toBoolean();
+ QString* _q_arg3 = qscriptvalue_cast<QString*>(context->argument(3));
+ bool _q_result = _q_self->setEvent(_q_arg0, _q_arg1, _q_arg2, _q_arg3);
+ return QScriptValue(context->engine(), _q_result);
+ }
+ break;
+
+ case 28:
if (context->argumentCount() == 0) {
bool _q_result = _q_self->setEvents();
return QScriptValue(context->engine(), _q_result);
@@ -656,7 +689,7 @@ static QScriptValue qtscript_TorControl_prototype_call(QScriptContext *context,
}
break;
- case 28:
+ case 29:
if (context->argumentCount() == 0) {
bool _q_result = _q_self->shouldContinue();
return QScriptValue(context->engine(), _q_result);
@@ -668,7 +701,7 @@ static QScriptValue qtscript_TorControl_prototype_call(QScriptContext *context,
}
break;
- case 29:
+ case 30:
if (context->argumentCount() == 2) {
QString _q_arg0 = context->argument(0).toString();
QStringList _q_arg1;
@@ -678,7 +711,7 @@ static QScriptValue qtscript_TorControl_prototype_call(QScriptContext *context,
}
break;
- case 30:
+ case 31:
if (context->argumentCount() == 0) {
bool _q_result = _q_self->stop();
return QScriptValue(context->engine(), _q_result);
@@ -690,7 +723,7 @@ static QScriptValue qtscript_TorControl_prototype_call(QScriptContext *context,
}
break;
- case 31:
+ case 32:
if (context->argumentCount() == 1) {
QString* _q_arg0 = qscriptvalue_cast<QString*>(context->argument(0));
bool _q_result = _q_self->takeOwnership(_q_arg0);
@@ -698,7 +731,7 @@ static QScriptValue qtscript_TorControl_prototype_call(QScriptContext *context,
}
break;
- case 32:
+ case 33:
if (context->argumentCount() == 0) {
bool _q_result = _q_self->useMicrodescriptors();
return QScriptValue(context->engine(), _q_result);
@@ -710,7 +743,7 @@ static QScriptValue qtscript_TorControl_prototype_call(QScriptContext *context,
}
break;
- case 33: {
+ case 34: {
QString result = QString::fromLatin1("TorControl");
return QScriptValue(context->engine(), result);
}
@@ -770,7 +803,7 @@ QScriptValue qtscript_create_TorControl_class(QScriptEngine *engine)
engine->setDefaultPrototype(qMetaTypeId<TorControl*>(), QScriptValue());
QScriptValue proto = engine->newVariant(qVariantFromValue((TorControl*)0));
proto.setPrototype(engine->defaultPrototype(qMetaTypeId<QObject*>()));
- for (int i = 0; i < 34; ++i) {
+ for (int i = 0; i < 35; ++i) {
QScriptValue fun = engine->newFunction(qtscript_TorControl_prototype_call, qtscript_TorControl_function_lengths[i+1]);
fun.setData(QScriptValue(engine, uint(0xBABE0000 + i)));
proto.setProperty(QString::fromLatin1(qtscript_TorControl_function_names[i+1]),
1
0
commit bbb52124cdb2aca774d8ca3d44000d53ce193552
Author: Feroze Naina <ferozenaina(a)gmail.com>
Date: Wed Jun 13 22:59:10 2012 +0530
Add Dependant to isMultivalued()
---
src/vidalia/config/torrc/TorrcParser.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/vidalia/config/torrc/TorrcParser.h b/src/vidalia/config/torrc/TorrcParser.h
index 94ef148..63f6f4a 100644
--- a/src/vidalia/config/torrc/TorrcParser.h
+++ b/src/vidalia/config/torrc/TorrcParser.h
@@ -104,7 +104,7 @@ class TorOpt
/** Returns true if this option can be defined multiple times with
* different values */
bool isMultivalued()
- { return _type == LineList; }
+ { return _type == LineList or _type == Dependant; }
/** Returns the name for this option */
QString name() const
1
0