- Timestamp:
- 2010-08-25T22:01:42+02:00 (14 years ago)
- Location:
- trunk/src/org/openstreetmap/josm
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/data/osm/DataSet.java
r3458 r3471 279 279 boolean success = false; 280 280 if (primitive instanceof Node) { 281 success = nodes.remove( (Node)primitive);281 success = nodes.remove(primitive); 282 282 } else if (primitive instanceof Way) { 283 success = ways.remove( (Way)primitive);283 success = ways.remove(primitive); 284 284 } else if (primitive instanceof Relation) { 285 success = relations.remove( (Relation)primitive);285 success = relations.remove(primitive); 286 286 } 287 287 if (!success) … … 436 436 selectedPrimitives = new LinkedHashSet<OsmPrimitive>(); 437 437 changed = addSelected(selection, false) 438 438 || (!wasEmpty && selectedPrimitives.isEmpty()); 439 439 if (changed) { 440 440 selectionSnapshot = null; -
trunk/src/org/openstreetmap/josm/data/osm/FilterWorker.java
r3371 r3471 32 32 * (but hides them only if they are not used by any unfiltered way). 33 33 */ 34 public static void executeFilters(Collection<OsmPrimitive> all, FilterMatcher filterMatcher) { 34 public static boolean executeFilters(Collection<OsmPrimitive> all, FilterMatcher filterMatcher) { 35 36 boolean changed = false; 35 37 36 38 // First relation and ways … … 38 40 if (!(primitive instanceof Node)) { 39 41 if (filterMatcher.isHidden(primitive)) { 40 primitive.setDisabledState(true);42 changed = changed | primitive.setDisabledState(true); 41 43 } else if (filterMatcher.isDisabled(primitive)) { 42 primitive.setDisabledState(false);44 changed = changed | primitive.setDisabledState(false); 43 45 } else { 44 primitive.unsetDisabledState();46 changed = changed | primitive.unsetDisabledState(); 45 47 } 46 48 } … … 51 53 if (primitive instanceof Node) { 52 54 if (filterMatcher.isHidden(primitive)) { 53 primitive.setDisabledState(true);55 changed = changed | primitive.setDisabledState(true); 54 56 } else if (filterMatcher.isDisabled(primitive)) { 55 primitive.setDisabledState(false);57 changed = changed | primitive.setDisabledState(false); 56 58 } else { 57 primitive.unsetDisabledState();59 changed = changed | primitive.unsetDisabledState(); 58 60 } 59 61 } 60 62 } 63 64 return changed; 61 65 } 62 66 63 67 public static boolean executeFilters(OsmPrimitive primitive, FilterMatcher filterMatcher) { 64 boolean hidden = primitive.isDisabledAndHidden(); 65 boolean disabled = primitive.isDisabled(); 68 boolean changed = false; 66 69 if (filterMatcher.isHidden(primitive)) { 67 primitive.setDisabledState(true);70 changed = changed | primitive.setDisabledState(true); 68 71 } else if (filterMatcher.isDisabled(primitive)) { 69 primitive.setDisabledState(false);72 changed = changed | primitive.setDisabledState(false); 70 73 } else { 71 primitive.unsetDisabledState();74 changed = changed | primitive.unsetDisabledState(); 72 75 } 73 return hidden != primitive.isDisabledAndHidden() || disabled != primitive.isDisabled();76 return changed; 74 77 } 75 78 -
trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java
r3466 r3471 617 617 * just shown in gray color. 618 618 */ 619 public voidsetDisabledState(boolean hide) {619 public boolean setDisabledState(boolean hide) { 620 620 boolean locked = writeLock(); 621 621 try { 622 int oldFlags = flags; 622 623 updateFlagsNoLock(FLAG_DISABLED, true); 623 624 updateFlagsNoLock(FLAG_HIDE_IF_DISABLED, hide); 625 return oldFlags != flags; 624 626 } finally { 625 627 writeUnlock(locked); … … 632 634 * again. 633 635 */ 634 public void unsetDisabledState() { 635 updateFlags(FLAG_DISABLED + FLAG_HIDE_IF_DISABLED, false); 636 public boolean unsetDisabledState() { 637 boolean locked = writeLock(); 638 try { 639 int oldFlags = flags; 640 updateFlagsNoLock(FLAG_DISABLED + FLAG_HIDE_IF_DISABLED, false); 641 return oldFlags != flags; 642 } finally { 643 writeUnlock(locked); 644 } 636 645 } 637 646 -
trunk/src/org/openstreetmap/josm/gui/dialogs/FilterTableModel.java
r3393 r3471 64 64 public void executeFilters() { 65 65 DataSet ds = Main.main.getCurrentDataSet(); 66 boolean changed = false; 66 67 if (ds == null) { 67 68 disabledAndHiddenCount = 0; 68 69 disabledCount = 0; 70 changed = true; 69 71 } else { 70 72 final Collection<OsmPrimitive> deselect = new HashSet<OsmPrimitive>(); … … 75 77 final Collection<OsmPrimitive> all = ds.allNonDeletedCompletePrimitives(); 76 78 77 FilterWorker.executeFilters(all, filterMatcher);79 changed = FilterWorker.executeFilters(all, filterMatcher); 78 80 79 81 disabledCount = 0; … … 101 103 } 102 104 103 if (Main.isDisplayingMapView() ) {105 if (Main.isDisplayingMapView() && changed) { 104 106 Main.map.mapView.repaint(); 105 107 Main.map.filterDialog.updateDialogHeader();
Note:
See TracChangeset
for help on using the changeset viewer.