def on_add_stop_clicked(self, toolbutton, user_data = None): print 'adding a stop' stop_dialog = AddStop(self) win = AddStopDialog(self._gui()) win.get_content_area().pack_start(stop_dialog, True, True, 5) win.show_all() handler = self.connect('on-map-clicked', stop_dialog.on_map_clicked) resp = win.run() self.disconnect('on-map-clicked', handler) if resp == Gtk.ResponseType.ACCEPT: # create a new stop s = libsubte.Stop(name = stop_dialog.get_name(), description = stop_dialog.get_description(), latitude = stop_dialog.get_latitude(), longitude = stop_dialog.get_longitude()) self.add_stop(s) win.destroy()
def on_link_stop(self, actor, event): print >> sys.stderr, 'Link stop' gtgui = GTGui.GTGui.instance() stop_dialog = AddStop(gtgui.controller) win = AddStopDialog(gtgui) # set the lat/long stop_dialog.latitude_txt.set_text('%s' % self.latitude) stop_dialog.longitude_txt.set_text('%s' % self.longitude) win.get_content_area().pack_start(stop_dialog, True, True, 5) # We can't seem to pop up a dialog in a callback # here, it freezes everything. Instead, run the # dialog, and set an on_reponse so that # we get the response code when it closes def on_response(win, resp, user_data = None): print >> sys.stderr, 'on response', resp if resp == Gtk.ResponseType.ACCEPT: print >> sys.stderr, 'resp is ACCEPT', resp # create a new stop s = libsubte.Stop(name = stop_dialog.get_name(), description = stop_dialog.get_description(), latitude = stop_dialog.get_latitude(), longitude = stop_dialog.get_longitude()) self.picture.stop = s gtgui.controller.add_stop(s) win.destroy() win.connect('response', on_response) win.show_all() return False