Changeset c30f5a1


Ignore:
Timestamp:
05/14/12 16:48:18 (3 years ago)
Author:
Martin Kolman <martin.kolman@…>
Branches:
master
Children:
939f38a
Parents:
ee9e59c
git-author:
Martin Kolman <martin.kolman@…> (05/14/12 16:48:18)
git-committer:
Martin Kolman <martin.kolman@…> (05/14/12 16:48:18)
Message:

save & restore visible POI

File:
1 edited

Legend:

Unmodified
Added
Removed
  • modules/mod_showPOI.py

    r06fd4ed rc30f5a1  
    4040    self.expectLock = threading.Lock() 
    4141 
    42   def update(self): 
     42  def firstTime(self): 
     43    # restore the IDs of visible POI 
     44    self.restoreVisibleIDs() 
     45 
     46  def beforeDraw(self): 
    4347    if self.expectPoint: 
    4448      self.makeMapClickable() 
     
    310314      elif message == 'clearVisiblePOI': 
    311315        count = self.clearVisiblePOI() 
    312         self.notify("%d visible POI cleared" % count, 2000) 
     316        if count > 0: 
     317          self.notify("%d visible POI cleared" % count, 2000) 
     318        else: 
     319          self.notify("Nothing to clear", 2000) 
     320 
    313321 
    314322  def _setupPOICategoryChooser(self, menu, key): 
     
    326334 
    327335  def makePOIVisible(self, POI): 
    328     """add a POI to the list of visible POI""" 
     336    """add a POI to the list of visible POI & save ID""" 
     337    self._makePOIVisible(POI) 
     338    self.saveVisibleIDs() 
     339 
     340  def _makePOIVisible(self, POI): 
     341    """add a POI to the list of visible POI & don't save ID""" 
    329342    # check if the POI is already present 
    330     if POI not in self.visiblePOI: 
     343    if POI and POI not in self.visiblePOI: 
    331344      self.visiblePOI.append(POI) 
    332345 
     
    336349    cats = store.getCategories() 
    337350    count = 0 
     351    _makePOIVisible = self._makePOIVisible 
    338352    for cat in cats: 
    339353      (label,desc,cat_id) = cat 
     
    342356      for item in catPOI: 
    343357        (label,lat,lon,poi_id) = item 
    344         POI = store.getPOI(poi_id) 
    345         if POI not in self.visiblePOI: 
    346           self.visiblePOI.append(POI) 
     358        _makePOIVisible(store.getPOI(poi_id)) 
     359    self.saveVisibleIDs() 
    347360    self.drawPOI() 
    348361    return count 
     
    353366    self.dontDrawPOI() 
    354367    self.visiblePOI = [] 
     368    self.saveVisibleIDs() 
    355369    return count 
    356370 
     
    358372    if POI in self.visiblePOI: 
    359373      self.visiblePOI.remove(POI) 
     374      self.saveVisibleIDs() 
     375 
     376  def saveVisibleIDs(self): 
     377    visibleIDs = [] 
     378    for POI in self.visiblePOI: 
     379      visibleIDs.append(POI.getId()) 
     380    self.set("visiblePOIIDs", visibleIDs) 
     381 
     382  def restoreVisibleIDs(self): 
     383    print "RESTORE" 
     384    visibleIDs = self.get("visiblePOIIDs", []) 
     385    print visibleIDs 
     386    if visibleIDs: 
     387      store = self.m.get('storePOI', None) 
     388      if store: 
     389        for id in visibleIDs: 
     390          print store.getPOI(id) 
     391          self._makePOIVisible(store.getPOI(id)) 
     392        if self.visiblePOI: # enable POI drawing only if some POI vere restored 
     393          self.drawPOI() 
     394        print("showPOI: %d visible POI restored" % len(self.visiblePOI)) 
     395      else: 
     396        print("showPOI: can't restore visible, storePOI not loaded") 
    360397 
    361398  def drawPOI(self): 
Note: See TracChangeset for help on using the changeset viewer.