source: josm/trunk/src/org/openstreetmap/josm/actions/DialogsToggleAction.java@ 12314

Last change on this file since 12314 was 12132, checked in by Don-vip, 7 years ago

fix #14784 - Main toolbar/side toolbar keep reappearing after using Tab

  • Property svn:eol-style set to native
File size: 2.6 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.actions;
3
4import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
5import static org.openstreetmap.josm.tools.I18n.tr;
6
7import java.awt.event.ActionEvent;
8import java.awt.event.KeyEvent;
9
10import org.openstreetmap.josm.Main;
11import org.openstreetmap.josm.tools.ImageProvider;
12import org.openstreetmap.josm.tools.Shortcut;
13
14/**
15* This action toggles visibility of dialogs panel and other panels to free more space for drawing (GIMP-like)
16* @author cmuelle8
17* @since 5965
18*/
19public class DialogsToggleAction extends ToggleAction {
20
21 private boolean toolbarPreviouslyVisible;
22 private boolean sideToolbarPreviouslyVisible;
23
24 /**
25 * Constructs a new {@code DialogsToggleAction}.
26 */
27 public DialogsToggleAction() {
28 super(tr("Toggle dialogs panel"),
29 (ImageProvider) null, /* no icon */
30 tr("Toggle dialogs panel, maximize mapview"),
31 Shortcut.registerShortcut("menu:view:dialogspanel", tr("Toggle dialogs panel"), KeyEvent.VK_TAB, Shortcut.DIRECT),
32 true, "dialogspanel", /* register in toolbar */
33 false
34 );
35 putValue("help", ht("/ToggleDialogs"));
36 setSelected(Main.pref.getBoolean("draw.dialogspanel", true));
37 notifySelectedState();
38 }
39
40 @Override
41 public void actionPerformed(ActionEvent e) {
42 toggleSelectedState(e);
43 Main.pref.put("draw.dialogspanel", isSelected());
44 notifySelectedState();
45 setMode();
46 }
47
48 protected void setMode() {
49 if (Main.isDisplayingMapView()) {
50 boolean selected = isSelected();
51 if (!selected) {
52 toolbarPreviouslyVisible = Main.pref.getBoolean("toolbar.visible", true);
53 sideToolbarPreviouslyVisible = Main.pref.getBoolean("sidetoolbar.visible", true);
54 }
55 Main.map.setDialogsPanelVisible(selected);
56 Main.map.statusLine.setVisible(selected || Main.pref.getBoolean("statusbar.always-visible", true));
57 Main.main.menu.setVisible(selected || Main.pref.getBoolean("menu.always-visible", true));
58 // Toolbars listen to preference changes, use it here
59 if (!Main.pref.getBoolean("toolbar.always-visible", true) && (!selected || toolbarPreviouslyVisible)) {
60 Main.pref.put("toolbar.visible", selected);
61 }
62 if (!Main.pref.getBoolean("sidetoolbar.always-visible", true) && (!selected || sideToolbarPreviouslyVisible)) {
63 Main.pref.put("sidetoolbar.visible", selected);
64 }
65 Main.map.mapView.rememberLastPositionOnScreen();
66 }
67 }
68}
Note: See TracBrowser for help on using the repository browser.