/[thuban]/branches/WIP-pyshapelib-bramz/Thuban/UI/mainwindow.py
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/Thuban/UI/mainwindow.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2516 by frank, Sun Jan 9 12:32:17 2005 UTC revision 2534 by jan, Fri Jan 21 08:31:16 2005 UTC
# Line 335  class MainWindow(DockFrame): Line 335  class MainWindow(DockFrame):
335          return self.dialogs.get(name)          return self.dialogs.get(name)
336    
337      def view_position_changed(self):      def view_position_changed(self):
338            """Put current position in status bar after a mouse move."""
339          pos = self.canvas.CurrentPosition()          pos = self.canvas.CurrentPosition()
340          if pos is not None:          if pos is not None:
341              text = "(%10.10g, %10.10g)" % pos              text = "(%10.10g, %10.10g)" % pos
342          else:          else:
343              text = ""              text = ""
344                # XXX This is a hack until we find a better place for this code.
345                # (BER 20050120)
346                # BH wrote (20050120):
347                # this branch is only executed when the mouse
348                # leaves the canvas window, so it's not that often [..]
349                # [Here] not the right place to put this code.  
350                # I don't have a better solution at hand,
351                # but the view_position_changed is only there to update
352                # the current position.  If other information is to
353                # be shown in the status bar it should
354                # be handled in a different way and
355                # by other methods.
356                #
357                # The status bar widget supports some kind of stack of texts.
358                # maybe that can be used to distinguis
359                # between short-lived information such as the mouse position
360                # and more permanent information such as the hint
361                # about the projections.
362                map = self.canvas.Map()
363                for layer in map.layers:
364                    bbox = layer.LatLongBoundingBox()
365                    if bbox:
366                        left, bottom, right, top = bbox
367                        if not (-180 <= left <= 180 and
368                            -180 <= right <= 180 and
369                            -90 <= top <= 90 and
370                            -90 <= bottom <= 90):
371                            text = _("Select layer '%s' and pick a projection "
372                                     "using Layer/Projection...") % layer.title
373                            break
374    
375          self.set_position_text(text)          self.set_position_text(text)
376    
377      def set_position_text(self, text):      def set_position_text(self, text):
# Line 653  class MainWindow(DockFrame): Line 685  class MainWindow(DockFrame):
685                                layer.ShapeStore(),                                layer.ShapeStore(),
686                                projection = layer.GetProjection())                                projection = layer.GetProjection())
687              new_classification = copy.deepcopy(layer.GetClassification())              new_classification = copy.deepcopy(layer.GetClassification())
688              new_layer.SetClassificationColumn(              new_layer.SetClassificationColumn(
689                                  layer.GetClassificationColumn())                      layer.GetClassificationColumn())
690              new_layer.SetClassification(new_classification)              new_layer.SetClassification(new_classification)
691              self.Map().AddLayer(new_layer)              self.Map().AddLayer(new_layer)
692    

Legend:
Removed from v.2516  
changed lines
  Added in v.2534

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26