[chirp_devel] [PATCH 1 of 2] [RFC] Declare a network source radio type and make editorset run do_fetch()

Tom Hayward
Fri Apr 13 06:51:30 PDT 2012


# HG changeset patch
# User Dan Smith <dsmith at danplanet.com>
# Date 1334271107 25200
# Node ID cc8eaaea59612fa079c97fc63d0b81c94fc4f5c9
# Parent  ece8571a5ff1c15859a897c0cd6c94b683c6ee7d
[RFC] Declare a network source radio type and make editorset run do_fetch()
before starting the import. This gives us time to show status for sources
that need it and give it to us (such as RadioReference).
Bug #00

diff -r ece8571a5ff1 -r cc8eaaea5961 chirp/chirp_common.py
--- a/chirp/chirp_common.py	Thu Apr 12 21:25:41 2012 -0600
+++ b/chirp/chirp_common.py	Thu Apr 12 15:51:47 2012 -0700
@@ -1010,6 +1010,10 @@
 class LiveRadio(Radio):
     pass
 
+class NetworkSourceRadio(Radio):
+    def do_fetch(self):
+        pass
+
 class IcomDstarSupport:
     MYCALL_LIMIT = (1, 1)
     URCALL_LIMIT = (1, 1)
diff -r ece8571a5ff1 -r cc8eaaea5961 chirpui/editorset.py
--- a/chirpui/editorset.py	Thu Apr 12 21:25:41 2012 -0600
+++ b/chirpui/editorset.py	Thu Apr 12 15:51:47 2012 -0700
@@ -251,6 +251,25 @@
     def do_import(self, filen):
         try:
             src_radio = directory.get_radio_by_image(filen)
+        except Exception, e:
+            common.show_error(e)
+            return
+
+        if isinstance(src_radio, chirp_common.NetworkSourceRadio):
+            ww = importdialog.WaitWindow("Querying...", self.parent_window)
+            ww.show()
+            def status(status):
+                ww.set(float(status.cur) / float(status.max))
+            try:
+                src_radio.status_fn = status
+                src_radio.do_fetch()
+            except Exception, e:
+                common.show_error(e)
+                ww.hide()
+                return
+            ww.hide()
+
+        try:
             if src_radio.get_features().has_sub_devices:
                 src_radio = self.choose_sub_device(src_radio)
         except Exception, e:



More information about the chirp_devel mailing list