[chirp_devel] [PATCH 6 of 7] Allow setting a target for RadioJob other than the radio itself
Dan Smith
Tue Feb 7 20:08:32 PST 2012
# HG changeset patch
# User Dan Smith <dsmith at danplanet.com>
# Date 1328673811 28800
# Node ID 4023f8be12127e2931858891f8f950e950554117
# Parent 5f81b0536807cb84da7685d1014dd7f44da9f3fb
Allow setting a target for RadioJob other than the radio itself
This will facilitate synchronized jobs to the BankModel, Bank, etc objects
diff -r 5f81b0536807 -r 4023f8be1212 chirpui/common.py
--- a/chirpui/common.py Tue Feb 07 20:03:31 2012 -0800
+++ b/chirpui/common.py Tue Feb 07 20:03:31 2012 -0800
@@ -53,6 +53,7 @@
self.args = args
self.kwargs = kwargs
self.desc = "Working"
+ self.target = None
def __str__(self):
return "RadioJob(%s,%s,%s)" % (self.func, self.args, self.kwargs)
@@ -63,13 +64,10 @@
def set_cb_args(self, *args):
self.cb_args = args
- def execute(self, radio):
- try:
- func = getattr(radio, self.func)
- except AttributeError, e:
- print "No such radio function `%s'" % self.func
- return
+ def set_target(self, target):
+ self.target = target
+ def _execute(self, target, func):
try:
DBG("Running %s (%s %s)" % (self.func,
str(self.args),
@@ -89,6 +87,18 @@
if self.cb:
gobject.idle_add(self.cb, result, *self.cb_args)
+ def execute(self, radio):
+ if not self.target:
+ self.target = radio
+
+ try:
+ func = getattr(self.target, self.func)
+ except AttributeError, e:
+ print "No such radio function `%s'" % self.func
+ return
+
+ self._execute(self.target, func)
+
class RadioThread(threading.Thread, gobject.GObject):
__gsignals__ = {
"status" : (gobject.SIGNAL_RUN_LAST,
More information about the chirp_devel
mailing list