def start_download(self, w, strFolder): # Creating our own gmap self.gmap = mapServices.MapServ(self.conf) self.complete = [] self.downloader = MapDownloader(self.gmap, self.conf.maxthreads) if self.conf.map_service in NO_BULK_DOWN: if not legal_warning(self, self.conf.map_service, "bulk downloading"): self.all_done("Canceled") return args = MapArgs() if self.processing: return try: args.lat = float(self.e_lat0.get_text()) args.lng = float(self.e_lon0.get_text()) args.width = float(self.e_kmx.get_text()) args.height = float(self.e_kmy.get_text()) args.min_zl = self.s_zoom0.get_value_as_int() args.max_zl = self.s_zoom1.get_value_as_int() except ValueError: d = gtk.MessageDialog(self, gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR, gtk.BUTTONS_CLOSE, "Some field contain non-numbers") d.run() d.destroy() return self.b_pause.set_sensitive(True) self.b_download.set_sensitive(False) self.b_open.set_sensitive(False) # Save the map info self.save_info(check_dir(strFolder), str(args)) for layer in range(len(self.layers)): self.pbar.set_text(" ") self.processing = True if self.layers[layer].get_active(): self.downloader.bulk_download( (args.lat, args.lng, 15), (args.min_zl, args.max_zl), args.width, args.height, layer, gui_callback(self.tile_received), self.download_complete, self.force_update, self.conf) self.processing = False
def visual_dltool_toggled(self, menuitem): if not self.visual_dlconfig.get('downloader', False): self.visual_dlconfig['downloader'] = MapDownloader(self.ctx_map) if menuitem.get_active(): if self.check_bulk_down(): self.visual_dlconfig['active'] = True self.draw_overlay() else: menuitem.set_active(False) else: self.visual_dlconfig['active'] = False self.drawing_area.repaint()
def key_press_event(self, w, event): # F11 = 65480, F12 = 65481, ESC = 65307 if event.keyval in [65480, 65481, 65307]: self.full_screen(event.keyval) # Q = 113,81 W = 87,119 if (event.state & gtk.gdk.CONTROL_MASK) != 0 and event.keyval in [ 113, 81, 87, 119 ]: self.on_delete() self.destroy() # F1 = 65471 Help elif event.keyval == 65470: webbrowser_open(WEB_ADDRESS) # F2 = 65471 elif event.keyval == 65471: self.show_export() # F4 = 65473 elif event.keyval == 65473: fileName = FileChooser('.', 'Select KML File to import') if fileName: kmlResponse = kml_to_markers(fileName, self.marker) if kmlResponse: error_msg(self, "There was an error importing: \n" + \ "\n" + str(type(kmlResponse)) + \ "\n" + str(kmlResponse) ) # F5 = 65474 elif event.keyval == 65474: self.refresh() # F6 = 65475 elif event.keyval == 65475: if not (self.export_panel.flags() & gtk.VISIBLE): self.visual_dlconfig['active'] = \ not self.visual_dlconfig.get('active', False) self.visual_dltool.set_active( self.visual_dlconfig.get('active', False)) if not self.visual_dlconfig.get('downloader', False): self.visual_dlconfig['downloader'] = \ MapDownloader(self.ctx_map) self.drawing_area.repaint() # F8 = 65477 elif event.keyval == 65477: self.showMarkers = not self.showMarkers self.drawing_area.repaint() # All Navigation Keys when in FullScreen elif self.get_border_width() == 0: self.navigation(event.keyval, self.get_zoom())
def start_download(self, w, strFolder): # Creating our own gmap self.gmap = mapServices.MapServ(self.conf) self.complete = [] self.downloader = MapDownloader(self.gmap, self.conf.maxthreads) if self.conf.map_service in NO_BULK_DOWN: if not legal_warning(self, self.conf.map_service, "bulk downloading"): self.all_done("Canceled") return args = MapArgs() if self.processing: return try: args.lat = float(self.e_lat0.get_text()) args.lng = float(self.e_lon0.get_text()) args.width = float(self.e_kmx.get_text()) args.height = float(self.e_kmy.get_text()) args.min_zl = self.s_zoom0.get_value_as_int() args.max_zl = self.s_zoom1.get_value_as_int() except ValueError: d = gtk.MessageDialog(self, gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR, gtk.BUTTONS_CLOSE, "Some field contain non-numbers") d.run() d.destroy() return self.b_pause.set_sensitive(True) self.b_download.set_sensitive(False) self.b_open.set_sensitive(False) # Save the map info self.save_info(check_dir(strFolder), str(args)) for layer in range(len(self.layers)): self.pbar.set_text(" ") self.processing = True if self.layers[layer].get_active(): self.downloader.bulk_download((args.lat, args.lng, 15), (args.min_zl, args.max_zl), args.width, args.height, layer, gui_callback(self.tile_received), self.download_complete, False, self.conf) self.processing = False
if (not args.location in locations.keys()): args.location = ctx_map.search_location(args.location) if (args.location[:6] == "error="): print args.location[6:] sys.exit(0) coord = ctx_map.get_locations()[args.location] args.lat = coord[0] args.lng = coord[1] if args.width > 0: args.lng_range = km_to_lon(args.width, args.lat) if args.height > 0: args.lat_range = km_to_lat(args.height) if (args.location is None): args.location = "somewhere" print "Download %s (%f, %f), range (%f, %f), zoom level: %d to %d" % \ (args.location, args.lat, args.lng, args.lat_range, args.lng_range, args.max_zl, args.min_zl) downloader = MapDownloader(ctx_map, args.nr_threads) try: download(args.lat, args.lng, args.lat_range, args.lng_range, args.max_zl, args.min_zl, args.layer) finally: print "\nDownload Complete!" downloader.stop_all()
class DLWindow(gtk.Window): def __init__(self, coord, kmx, kmy, layer, conf, force_update): self.layers = [] def _zoom(zoom0, zoom1): out_hbox = gtk.HBox(False, 50) out_hbox.set_border_width(10) in_hbox = gtk.HBox(False, 20) in_hbox.pack_start(lbl("min:"), False) self.s_zoom0 = SpinBtn(zoom0) self.s_zoom0.set_digits(0) in_hbox.pack_start(self.s_zoom0) out_hbox.pack_start(in_hbox) in_hbox = gtk.HBox(False, 20) in_hbox.pack_start(lbl("max:"), False) self.s_zoom1 = SpinBtn(zoom1) self.s_zoom1.set_digits(0) in_hbox.pack_start(self.s_zoom1) out_hbox.pack_start(in_hbox) hbox = gtk.HBox() hbox.set_border_width(10) hbox.pack_start(myFrame(" Zoom ", out_hbox, 0)) return hbox def _center(lat0, lon0): vbox = gtk.VBox(False, 5) hbox = gtk.HBox(False, 10) hbox.pack_start(lbl("latitude:")) self.e_lat0 = myEntry("%.6f" % lat0, 15, False) hbox.pack_start(self.e_lat0, False) vbox.pack_start(hbox) hbox = gtk.HBox(False, 10) hbox.pack_start(lbl("longitude:")) self.e_lon0 = myEntry("%.6f" % lon0, 15, False) hbox.pack_start(self.e_lon0, False) vbox.pack_start(hbox) return myFrame(" Center ", vbox) def _area(kmx, kmy): vbox = gtk.VBox(False, 5) hbox = gtk.HBox(False, 10) hbox.pack_start(lbl("width:")) self.e_kmx = myEntry("%.6g" % kmx, 10, False) hbox.pack_start(self.e_kmx, False) vbox.pack_start(hbox) hbox = gtk.HBox(False, 10) hbox.pack_start(lbl("height:")) self.e_kmy = myEntry("%.6g" % kmy, 10, False) hbox.pack_start(self.e_kmy, False) vbox.pack_start(hbox) return myFrame(" Area (km) ", vbox) def download_rclick(self, event, menu): if event.type == gtk.gdk.BUTTON_PRESS and event.button == 3: menu.popup(None, None, None, event.button, event.time) def rclick_menu(active_layer, map_serv): menu = gtk.Menu() for layer in range(len(LAYER_NAMES)): self.layers.append(gtk.CheckMenuItem(LAYER_NAMES[layer])) if layer == active_layer: self.layers[-1].set_active(True) else: self.layers[-1].set_sensitive( layer in MAP_SERVICES[map_serv]['layers']) menu.append(self.layers[-1]) menu.show_all() return menu def _buttons(strFolder, layer, conf): hbbox = gtk.HButtonBox() hbbox.set_border_width(10) hbbox.set_layout(gtk.BUTTONBOX_SPREAD) menu = rclick_menu(layer, MAP_SERVERS.index(conf.map_service)) gtk.stock_add([(gtk.STOCK_HARDDISK, "_Download", 0, 0, "")]) self.b_download = gtk.Button(stock=gtk.STOCK_HARDDISK) self.b_download.connect('clicked', self.start_download, strFolder) self.b_download.connect('event', download_rclick, menu) hbbox.pack_start(self.b_download) hbox = gtk.HBox() gtk.stock_add([(gtk.STOCK_UNDELETE, "", 0, 0, "")]) self.b_open = gtk.Button(stock=gtk.STOCK_UNDELETE) self.b_open.connect('clicked', self.do_open, strFolder) hbox.pack_start(self.b_open, padding=25) if isdir(fldDown): hbbox.pack_start(hbox) self.b_pause = gtk.Button(stock='gtk-media-pause') self.b_pause.connect('clicked', self.do_pause) self.b_pause.set_sensitive(False) hbbox.pack_start(self.b_pause) return hbbox fldDown = join(conf.init_path, 'download') print "DLWindow(", coord, kmx, kmy, layer, ')' self.conf = conf self.force_update = force_update kmx = mapUtils.nice_round(kmx) kmy = mapUtils.nice_round(kmy) gtk.Window.__init__(self) lat0 = coord[0] lon0 = coord[1] zoom0 = max(MAP_MIN_ZOOM_LEVEL, coord[2] - 3) zoom1 = min(MAP_MAX_ZOOM_LEVEL, coord[2] + 1) vbox = gtk.VBox(False) hbox = gtk.HBox(False, 10) hbox.pack_start(_center(lat0, lon0)) hbox.pack_start(_area(kmx, kmy)) vbox.pack_start(hbox) vbox.pack_start(_zoom(zoom0, zoom1)) vbox.pack_start(_buttons(fldDown, layer, conf)) self.pbar = gtk.ProgressBar() self.pbar.set_text(" ") vbox.pack_start(self.pbar) self.add(vbox) self.set_title("GMapCatcher download") self.set_border_width(10) ico = mapPixbuf.ico() if ico: self.set_icon(ico) self.complete = [] self.processing = False self.gmap = None self.downloader = None self.connect('delete-event', self.on_delete) self.connect('key-press-event', self.key_press) self.show_all() ## Start the download def start_download(self, w, strFolder): # Creating our own gmap self.gmap = mapServices.MapServ(self.conf) self.complete = [] self.downloader = MapDownloader(self.gmap, self.conf.maxthreads) if self.conf.map_service in NO_BULK_DOWN: if not legal_warning(self, self.conf.map_service, "bulk downloading"): self.all_done("Canceled") return args = MapArgs() if self.processing: return try: args.lat = float(self.e_lat0.get_text()) args.lng = float(self.e_lon0.get_text()) args.width = float(self.e_kmx.get_text()) args.height = float(self.e_kmy.get_text()) args.min_zl = self.s_zoom0.get_value_as_int() args.max_zl = self.s_zoom1.get_value_as_int() except ValueError: d = gtk.MessageDialog(self, gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR, gtk.BUTTONS_CLOSE, "Some field contain non-numbers") d.run() d.destroy() return self.b_pause.set_sensitive(True) self.b_download.set_sensitive(False) self.b_open.set_sensitive(False) # Save the map info self.save_info(check_dir(strFolder), str(args)) for layer in range(len(self.layers)): self.pbar.set_text(" ") self.processing = True if self.layers[layer].get_active(): self.downloader.bulk_download( (args.lat, args.lng, 15), (args.min_zl, args.max_zl), args.width, args.height, layer, gui_callback(self.tile_received), self.download_complete, self.force_update, self.conf) self.processing = False # Open a previously saved file and auto-populate the fields def do_open(self, w, strPath): fileName = FileChooser(strPath) if fileName: file = open(fileName, "r") for line in file: args = MapArgs(line.split(" ")) self.e_lat0.set_text(str(args.lat)) self.e_lon0.set_text(str(args.lng)) self.e_kmx.set_text(str(args.width)) self.e_kmy.set_text(str(args.height)) self.s_zoom0.set_text(str(args.min_zl)) self.s_zoom1.set_text(str(args.max_zl)) return ## Save the data to a text file def save_info(self, strPath, strInfo): file = open(join(strPath, 'gmap' + mapUtils.timeStamp() + '.bat'), "w") file.write(strInfo) file.close() def tile_received(self, coord, layer, download=False): self.complete.append((coord, layer)) ncomplete = len(self.complete) nqueued = self.downloader.qsize() if self.downloader else 0 if nqueued == 0 and ((not self.downloader) or self.downloader.bulk_all_placed): self.download_complete() return self.update_pbar("x=%d y=%d zoom=%d" % coord, ncomplete, ncomplete + nqueued) def update_pbar(self, text, pos, maxpos): percent = "" if pos != maxpos: percentfloat = float(pos) / maxpos self.pbar.set_fraction(percentfloat) if percentfloat > 0: percent = " [%.1f%%]" % (percentfloat * 100) self.pbar.set_text(text + percent) def download_complete(self): if self.pbar.get_text() != "Paused": self.all_done("Complete") def do_pause(self, w): self.all_done("Paused") def all_done(self, strMessage): if self.downloader: self.downloader.stop_all() self.downloader = None self.processing = False self.b_pause.set_sensitive(False) self.b_download.set_sensitive(True) self.b_open.set_sensitive(True) self.update_pbar(strMessage, 0, 1) def key_press(self, w, event): if (event.state & gtk.gdk.CONTROL_MASK) != 0 and event.keyval in [ 87, 119 ]: # W = 87,119 self.on_delete() self.destroy() def on_delete(self, *params): if self.downloader: self.downloader.stop_all() return False
class DLWindow(gtk.Window): def __init__(self, coord, kmx, kmy, layer, conf): self.layers = [] def _zoom(zoom0, zoom1): out_hbox = gtk.HBox(False, 50) out_hbox.set_border_width(10) in_hbox = gtk.HBox(False, 20) in_hbox.pack_start(lbl("min:"), False) self.s_zoom0 = SpinBtn(zoom0) self.s_zoom0.set_digits(0) in_hbox.pack_start(self.s_zoom0) out_hbox.pack_start(in_hbox) in_hbox = gtk.HBox(False, 20) in_hbox.pack_start(lbl("max:"), False) self.s_zoom1 = SpinBtn(zoom1) self.s_zoom1.set_digits(0) in_hbox.pack_start(self.s_zoom1) out_hbox.pack_start(in_hbox) hbox = gtk.HBox() hbox.set_border_width(10) hbox.pack_start(myFrame(" Zoom ", out_hbox, 0)) return hbox def _center(lat0, lon0): vbox = gtk.VBox(False, 5) hbox = gtk.HBox(False, 10) hbox.pack_start(lbl("latitude:")) self.e_lat0 = myEntry("%.6f" % lat0, 15, False) hbox.pack_start(self.e_lat0, False) vbox.pack_start(hbox) hbox = gtk.HBox(False, 10) hbox.pack_start(lbl("longitude:")) self.e_lon0 = myEntry("%.6f" % lon0, 15, False) hbox.pack_start(self.e_lon0, False) vbox.pack_start(hbox) return myFrame(" Center ", vbox) def _area(kmx, kmy): vbox = gtk.VBox(False, 5) hbox = gtk.HBox(False, 10) hbox.pack_start(lbl("width:")) self.e_kmx = myEntry("%.6g" % kmx, 10, False) hbox.pack_start(self.e_kmx, False) vbox.pack_start(hbox) hbox = gtk.HBox(False, 10) hbox.pack_start(lbl("height:")) self.e_kmy = myEntry("%.6g" % kmy, 10, False) hbox.pack_start(self.e_kmy, False) vbox.pack_start(hbox) return myFrame(" Area (km) ", vbox) def download_rclick(self, event, menu): if event.type == gtk.gdk.BUTTON_PRESS and event.button == 3: menu.popup(None, None, None, event.button, event.time) def rclick_menu(active_layer, map_serv): menu = gtk.Menu() for layer in range(len(LAYER_NAMES)): self.layers.append(gtk.CheckMenuItem(LAYER_NAMES[layer])) if layer == active_layer: self.layers[-1].set_active(True) else: self.layers[-1].set_sensitive(layer in MAP_SERVICES[map_serv]['layers']) menu.append(self.layers[-1]) menu.show_all() return menu def _buttons(strFolder, layer, conf): hbbox = gtk.HButtonBox() hbbox.set_border_width(10) hbbox.set_layout(gtk.BUTTONBOX_SPREAD) menu = rclick_menu(layer, MAP_SERVERS.index(conf.map_service)) gtk.stock_add([(gtk.STOCK_HARDDISK, "_Download", 0, 0, "")]) self.b_download = gtk.Button(stock=gtk.STOCK_HARDDISK) self.b_download.connect('clicked', self.start_download, strFolder) self.b_download.connect('event', download_rclick, menu) hbbox.pack_start(self.b_download) hbox = gtk.HBox() gtk.stock_add([(gtk.STOCK_UNDELETE, "", 0, 0, "")]) self.b_open = gtk.Button(stock=gtk.STOCK_UNDELETE) self.b_open.connect('clicked', self.do_open, strFolder) hbox.pack_start(self.b_open, padding=25) if isdir(fldDown): hbbox.pack_start(hbox) self.b_pause = gtk.Button(stock='gtk-media-pause') self.b_pause.connect('clicked', self.do_pause) self.b_pause.set_sensitive(False) hbbox.pack_start(self.b_pause) return hbbox fldDown = join(conf.init_path, 'download') print "DLWindow(", coord, kmx, kmy, layer, ')' self.conf = conf kmx = mapUtils.nice_round(kmx) kmy = mapUtils.nice_round(kmy) gtk.Window.__init__(self) lat0 = coord[0] lon0 = coord[1] zoom0 = max(MAP_MIN_ZOOM_LEVEL, coord[2] - 3) zoom1 = min(MAP_MAX_ZOOM_LEVEL, coord[2] + 1) vbox = gtk.VBox(False) hbox = gtk.HBox(False, 10) hbox.pack_start(_center(lat0, lon0)) hbox.pack_start(_area(kmx, kmy)) vbox.pack_start(hbox) vbox.pack_start(_zoom(zoom0, zoom1)) vbox.pack_start(_buttons(fldDown, layer, conf)) self.pbar = gtk.ProgressBar() self.pbar.set_text(" ") vbox.pack_start(self.pbar) self.add(vbox) self.set_title("GMapCatcher download") self.set_border_width(10) ico = mapPixbuf.ico() if ico: self.set_icon(ico) self.complete = [] self.processing = False self.gmap = None self.downloader = None self.connect('delete-event', self.on_delete) self.connect('key-press-event', self.key_press) self.show_all() ## Start the download def start_download(self, w, strFolder): # Creating our own gmap self.gmap = mapServices.MapServ(self.conf) self.complete = [] self.downloader = MapDownloader(self.gmap, self.conf.maxthreads) if self.conf.map_service in NO_BULK_DOWN: if not legal_warning(self, self.conf.map_service, "bulk downloading"): self.all_done("Canceled") return args = MapArgs() if self.processing: return try: args.lat = float(self.e_lat0.get_text()) args.lng = float(self.e_lon0.get_text()) args.width = float(self.e_kmx.get_text()) args.height = float(self.e_kmy.get_text()) args.min_zl = self.s_zoom0.get_value_as_int() args.max_zl = self.s_zoom1.get_value_as_int() except ValueError: d = gtk.MessageDialog(self, gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR, gtk.BUTTONS_CLOSE, "Some field contain non-numbers") d.run() d.destroy() return self.b_pause.set_sensitive(True) self.b_download.set_sensitive(False) self.b_open.set_sensitive(False) # Save the map info self.save_info(check_dir(strFolder), str(args)) for layer in range(len(self.layers)): self.pbar.set_text(" ") self.processing = True if self.layers[layer].get_active(): self.downloader.bulk_download((args.lat, args.lng, 15), (args.min_zl, args.max_zl), args.width, args.height, layer, gui_callback(self.tile_received), self.download_complete, False, self.conf) self.processing = False # Open a previously saved file and auto-populate the fields def do_open(self, w, strPath): fileName = FileChooser(strPath) if fileName: file = open(fileName, "r") for line in file: args = MapArgs(line.split(" ")) self.e_lat0.set_text(str(args.lat)) self.e_lon0.set_text(str(args.lng)) self.e_kmx.set_text(str(args.width)) self.e_kmy.set_text(str(args.height)) self.s_zoom0.set_text(str(args.min_zl)) self.s_zoom1.set_text(str(args.max_zl)) return ## Save the data to a text file def save_info(self, strPath, strInfo): file = open(join(strPath, 'gmap' + mapUtils.timeStamp() + '.bat'), "w") file.write(strInfo) file.close() def tile_received(self, coord, layer, download=False): self.complete.append((coord, layer)) ncomplete = len(self.complete) nqueued = self.downloader.qsize() if self.downloader else 0 if nqueued == 0 and ((not self.downloader) or self.downloader.bulk_all_placed): self.download_complete() return self.update_pbar( "x=%d y=%d zoom=%d" % coord, ncomplete, ncomplete + nqueued ) def update_pbar(self, text, pos, maxpos): percent = "" if pos != maxpos: percentfloat = float(pos) / maxpos self.pbar.set_fraction(percentfloat) if percentfloat > 0: percent = " [%.1f%%]" % (percentfloat * 100) self.pbar.set_text(text + percent) def download_complete(self): if self.pbar.get_text() != "Paused": self.all_done("Complete") def do_pause(self, w): self.all_done("Paused") def all_done(self, strMessage): if self.downloader: self.downloader.stop_all() self.downloader = None self.processing = False self.b_pause.set_sensitive(False) self.b_download.set_sensitive(True) self.b_open.set_sensitive(True) self.update_pbar(strMessage, 0, 1) def key_press(self, w, event): if (event.state & gtk.gdk.CONTROL_MASK) != 0 and event.keyval in [87, 119]: # W = 87,119 self.on_delete() self.destroy() def on_delete(self, *params): if self.downloader: self.downloader.stop_all() return False
locations = ctx_map.get_locations() if (not args.location in locations.keys()): args.location = ctx_map.search_location(args.location) if (args.location[:6] == "error="): print args.location[6:] sys.exit(0) coord = ctx_map.get_locations()[args.location] args.lat = coord[0] args.lng = coord[1] if args.width > 0: args.lng_range = km_to_lon(args.width, args.lat) if args.height > 0: args.lat_range = km_to_lat(args.height) if (args.location is None): args.location = "somewhere" print "Download %s (%f, %f), range (%f, %f), zoom level: %d to %d" % \ (args.location, args.lat, args.lng, args.lat_range, args.lng_range, args.max_zl, args.min_zl) downloader = MapDownloader(ctx_map, args.nr_threads) try: download(args.lat, args.lng, args.lat_range, args.lng_range, args.max_zl, args.min_zl, args.layer) finally: print "\nDownload Complete!" downloader.stop_all()
def __init__(self, handle, parent=None, config_path=None): self.conf = MapConf(config_path) self.crossPixbuf = mapPixbuf.cross() self.dlpixbuf = mapPixbuf.downloading() self.marker = MyMarkers(self.conf.init_path) self.ctx_map = MapServ(self.conf.init_path, self.conf.repository_type) self.downloader = MapDownloader(self.ctx_map) if self.conf.save_at_close: self.layer = self.conf.save_layer if not self.conf.oneDirPerMap: changelayer = True for kv in MAP_SERVICES: if kv['serviceName'] == self.conf.map_service and \ kv['ID'] == self.layer: changelayer = False if changelayer: self.layer = LAYER_MAP else: self.layer = LAYER_MAP self.background = [] self.foreground = [] self.save_gps = [] self.current_gps = False self.gps = False self.enable_gps() self.downloading = 0 self.visual_dlconfig = {} self.hide_dlfeedback = False #gtk.Window.__init__(self) activity.Activity.__init__(self, handle) barraprincipal = activity.ActivityToolbox(self) self.set_toolbox(barraprincipal) #try: # self.set_screen(parent.get_screen()) #except AttributeError: # self.connect("destroy", lambda *w: gtk.main_quit()) self.connect('key-press-event', self.key_press_event) self.connect('delete-event', self.on_delete) self.top_panel = self.__create_top_paned() self.left_panel = self.__create_left_paned(self.conf.init_zoom) self.export_panel = self.__create_export_paned() self.status_bar = self.__create_statusbar() ico = mapPixbuf.ico() if ico: self.set_icon(ico) hpaned = gtk.HPaned() hpaned.pack1(self.left_panel, False, False) hpaned.pack2(self.__create_right_paned(), True, True) inner_vp = gtk.VPaned() inner_vp.pack1(hpaned, True, True) inner_vp.pack2(self.export_panel, False, False) vpaned = gtk.VPaned() vpaned.pack1(self.top_panel, False, False) vpaned.pack2(inner_vp) vbox = gtk.VBox(False, 0) vbox.pack_start(vpaned, True, True, 0) vbox.pack_start(self.status_bar, False, False, 0) #self.add(vbox) self.set_canvas(vbox) self.set_title(" GMapCatcher ") self.set_border_width(10) self.set_size_request(450, 450) if self.conf.save_at_close: self.set_default_size(self.conf.save_width, self.conf.save_height) else: self.set_default_size(self.conf.init_width, self.conf.init_height) self.set_completion() self.default_entry() self.drawing_area.center = self.conf.init_center self.show_all() if self.conf.save_at_close: self.move(self.conf.save_hlocation, self.conf.save_vlocation) if self.conf.status_location == STATUS_NONE: self.status_bar.hide() self.export_panel.hide() self.drawing_area.da_set_cursor() self.entry.grab_focus() if self.conf.auto_refresh > 0: gobject.timeout_add(self.conf.auto_refresh, self.refresh)