disable console logging
[pywienerlinien] / gotovienna-qml
index 45269ca..458fe68 100755 (executable)
@@ -92,23 +92,64 @@ class Gui(QObject):
 
         threading.Thread(target=load_async).start()
 
+    def map_departure(self, dep):
+        dep['lowfloor'] = 1 if dep['lowfloor'] else 0
+        if type(dep['time']) == time:
+            dep['time'] = dep['time'].strftime('%H:%M')
+        return dep
+
     departuresLoaded = Signal()
 
     @Slot(str)
     def load_departures(self, url):
         def load_async():
-            def map_departure(dep):
-                dep['lowfloor'] = 1 if dep['lowfloor'] else 0
-                if type(dep['time']) == time:
-                    dep['time'] = dep['time'].strftime('%H:%M')
-                return dep
-                
-            self.current_departures = map(map_departure, self.itip.get_departures(url))
-            print self.current_departures
+            self.current_departures = map(self.map_departure, \
+                                          self.itip.get_departures(url))
+            #print self.current_departures
+            self.departuresLoaded.emit()
+
+        threading.Thread(target=load_async).start()
+
+    @Slot(str)
+    def load_station_departures(self, station):
+        def load_async():
+            self.current_departures = map(self.map_departure, \
+                                          sort_departures(self.itip.get_departures_by_station(station)))
+            #print self.current_departures
             self.departuresLoaded.emit()
 
         threading.Thread(target=load_async).start()
 
+    @Slot(float, float)
+    def load_nearby_departures(self, lat, lon):
+        def load_async():
+            self.current_departures = []
+            try:
+                stations = get_nearby_stations(lat, lon)
+                print stations
+                for station in stations:
+                    print station
+                    try:
+                        self.current_departures += self.itip.get_departures_by_station(station)
+                    except Exception as e:
+                        print e.message
+                self.current_departures = map(self.map_departure, \
+                                              sort_departures(self.current_departures))
+                #print self.current_departures
+            except Exception as e:
+                print e.message
+
+            print 'loaded'
+            self.departuresLoaded.emit()
+
+        threading.Thread(target=load_async).start()
+
+    stationsLoaded = Signal()
+
+    @Slot(float, float, result='QStringList')
+    def get_nearby_stations(self, lat, lon):
+        return get_nearby_stations(lat, lon)
+
     @Slot(str, str, str, result=str)
     def get_directions_url(self, line, direction, station):
         return self.itip.get_url_from_direction(line, direction, station)
@@ -121,13 +162,13 @@ class Gui(QObject):
     def get_departures(self):
         return self.current_departures
 
-    @Slot(float, float, result=str)
+    @Slot(float, float, result='QStringList')
     def get_nearby_stations(self, lat, lon):
         try:
-            return ', '.join(get_nearby_stations(lat, lon))
+            return get_nearby_stations(lat, lon)
         except Exception as e:
             print e.message
-            return ''
+            return []
 
     @Slot(str, str)
     def search(self, line, station):