Ticket #17540: 17540.patch

File 17540.patch, 2.1 KB (added by GerdP, 6 years ago)
  • src/reverter/ReverterUploadHook.java

     
    33
    44import org.openstreetmap.josm.actions.upload.UploadHook;
    55import org.openstreetmap.josm.command.Command;
     6import org.openstreetmap.josm.command.SequenceCommand;
    67import org.openstreetmap.josm.data.APIDataSet;
    78import org.openstreetmap.josm.data.UndoRedoHandler;
    89import org.openstreetmap.josm.gui.MainApplication;
    910
     11/**
     12 * Upload hook to add tag to new changeset.
     13 *
     14 */
    1015public class ReverterUploadHook implements UploadHook {
    11     String pluginString;
     16    final String pluginString;
    1217    public ReverterUploadHook(ReverterPlugin plugin) {
    1318        pluginString = "reverter_plugin/" + plugin.getPluginInformation().version;
    1419    }
     
    1520
    1621    @Override
    1722    public boolean checkUpload(APIDataSet apiDataSet) {
    18         if (!ReverterPlugin.reverterUsed) return true;
    19         boolean hasRevertions = false;
    20         for (Command cmd : UndoRedoHandler.getInstance().commands) {
    21             if (cmd instanceof RevertChangesetCommand) {
    22                 hasRevertions = true;
    23                 break;
     23        if (ReverterPlugin.reverterUsed) {
     24            for (Command cmd : UndoRedoHandler.getInstance().commands) {
     25                if (isReverterCmd(cmd)) {
     26                    MainApplication.getLayerManager().getEditDataSet().addChangeSetTag("created_by", pluginString);
     27                    break;
     28                }
    2429            }
    2530        }
     31        return true;
     32    }
    2633
    27         if (hasRevertions) {
    28             MainApplication.getLayerManager().getEditDataSet().addChangeSetTag("created_by", "reverter");
     34    private static boolean isReverterCmd(Command cmd) {
     35        if (cmd instanceof RevertChangesetCommand)
     36            return true;
     37        if (cmd instanceof SequenceCommand) {
     38            return ((SequenceCommand) cmd).getLastCommand() instanceof RevertChangesetCommand;
    2939        }
    30         return true;
     40        return false;
    3141    }
    32 
    3342}