Changeset 5092 in josm for trunk


Ignore:
Timestamp:
2012-03-16T22:36:45+01:00 (8 years ago)
Author:
simon04
Message:

Toggle edit toolbar (in View menu or in popup menu)

Location:
trunk/src/org/openstreetmap/josm
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/MainMenu.java

    r5089 r5092  
    9191import org.openstreetmap.josm.actions.ZoomOutAction;
    9292import org.openstreetmap.josm.actions.OrthogonalizeAction.Undo;
     93import org.openstreetmap.josm.actions.PreferenceToggleAction;
    9394import org.openstreetmap.josm.actions.audio.AudioBackAction;
    9495import org.openstreetmap.josm.actions.audio.AudioFasterAction;
     
    515516        add(viewMenu, historyinfoweb);
    516517        viewMenu.addSeparator();
     518        viewMenu.add(new PreferenceToggleAction(tr("Edit toolbar"),
     519                tr("Toggles the visibility of the edit toolbar (i.e., the vertical tool)"),
     520                "sidetoolbar.visible", true).getCheckbox());
    517521        // -- expert mode toggle action
    518522        final JCheckBoxMenuItem expertItem = new JCheckBoxMenuItem(ExpertToggleAction.getInstance());
  • trunk/src/org/openstreetmap/josm/gui/MapFrame.java

    r5091 r5092  
    4949import org.openstreetmap.josm.actions.mapmode.SelectAction;
    5050import org.openstreetmap.josm.actions.mapmode.ZoomAction;
     51import org.openstreetmap.josm.data.Preferences;
     52import org.openstreetmap.josm.data.Preferences.PreferenceChangeEvent;
    5153import org.openstreetmap.josm.gui.MapView.LayerChangeListener;
    5254import org.openstreetmap.josm.gui.dialogs.ChangesetDialog;
     
    397399        }
    398400
    399         if(Main.pref.getBoolean("sidetoolbar.visible", true))
    400         {
    401             if(Main.pref.getBoolean("sidetoolbar.scrollable", true)) {
    402                 final ScrollViewport svp = new ScrollViewport(jb, ScrollViewport.VERTICAL_DIRECTION);
    403                 panel.add(svp, BorderLayout.WEST);
    404                 jb.addMouseWheelListener(new MouseWheelListener() {
    405                     public void mouseWheelMoved(MouseWheelEvent e) {
    406                         svp.scroll(0,e.getUnitsToScroll() * 5);
     401        final Component toToggle;
     402        if (Main.pref.getBoolean("sidetoolbar.scrollable", true)) {
     403            final ScrollViewport svp = new ScrollViewport(jb, ScrollViewport.VERTICAL_DIRECTION);
     404            toToggle = svp;
     405            panel.add(svp, BorderLayout.WEST);
     406            jb.addMouseWheelListener(new MouseWheelListener() {
     407
     408                public void mouseWheelMoved(MouseWheelEvent e) {
     409                    svp.scroll(0, e.getUnitsToScroll() * 5);
     410                }
     411            });
     412        } else {
     413            toToggle = jb;
     414            panel.add(jb, BorderLayout.WEST);
     415        }
     416        toToggle.setVisible(Main.pref.getBoolean("sidetoolbar.visible", true));
     417
     418        jb.addMouseListener(new PopupMenuLauncher(new JPopupMenu() {
     419
     420            {
     421                add(new AbstractAction(tr("Hide edit toolbar")) {
     422
     423                    @Override
     424                    public void actionPerformed(ActionEvent e) {
     425                        Main.pref.put("sidetoolbar.visible", false);
    407426                    }
    408427                });
    409             } else {
    410                 panel.add(jb, BorderLayout.WEST);
    411             }
    412         }
     428            }
     429        }));
     430
     431        Main.pref.addPreferenceChangeListener(new Preferences.PreferenceChangedListener() {
     432
     433            @Override
     434            public void preferenceChanged(PreferenceChangeEvent e) {
     435                if ("sidetoolbar.visible".equals(e.getKey())) {
     436                    toToggle.setVisible(Main.pref.getBoolean("sidetoolbar.visible"));
     437                }
     438            }
     439        });
     440
    413441        if (statusLine != null && Main.pref.getBoolean("statusline.visible", true)) {
    414442            panel.add(statusLine, BorderLayout.SOUTH);
Note: See TracChangeset for help on using the changeset viewer.