Ignore:
Timestamp:
2020-11-10T18:06:57+01:00 (3 years ago)
Author:
GerdP
Message:

see #7548: Re-organize the preference dialog

  • move code for expert toggle into expertChanged() and make sure that a tab is selected
  • always use SwingUtilities.invokeLater() when the PreferenceDialog should be opened with a special tab
Location:
trunk/src/org/openstreetmap/josm/gui
Files:
3 edited

Legend:

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

    r16913 r17307  
    582582                pref.addActionListener(e -> {
    583583                    final PreferenceDialog p = new PreferenceDialog(MainApplication.getMainFrame());
    584                     if (TabPreferenceSetting.class.isAssignableFrom(preferenceClass)) {
    585                         p.selectPreferencesTabByClass((Class<? extends TabPreferenceSetting>) preferenceClass);
    586                     } else if (SubPreferenceSetting.class.isAssignableFrom(preferenceClass)) {
    587                         p.selectSubPreferencesTabByClass((Class<? extends SubPreferenceSetting>) preferenceClass);
    588                     }
     584                    SwingUtilities.invokeLater(() -> {
     585                        if (TabPreferenceSetting.class.isAssignableFrom(preferenceClass)) {
     586                            p.selectPreferencesTabByClass((Class<? extends TabPreferenceSetting>) preferenceClass);
     587                        } else if (SubPreferenceSetting.class.isAssignableFrom(preferenceClass)) {
     588                            p.selectSubPreferencesTabByClass((Class<? extends SubPreferenceSetting>) preferenceClass);
     589                        }
     590                    });
    589591                    p.setVisible(true);
    590592                });
  • trunk/src/org/openstreetmap/josm/gui/preferences/PreferenceTabbedPane.java

    r17306 r17307  
    528528    private void addGUITabs(boolean clear) {
    529529        boolean expert = ExpertToggleAction.isExpert();
    530         Component sel = getSelectedComponent();
    531530        if (clear) {
    532531            removeAll();
     
    561560            });
    562561        }
     562        setSelectedIndex(-1);
     563    }
     564
     565    @Override
     566    public void expertChanged(boolean isExpert) {
     567        Component sel = getSelectedComponent();
     568        addGUITabs(true);
    563569        int index = -1;
    564570        if (sel != null) {
    565571            index = indexOfComponent(sel);
    566572        }
    567         setSelectedIndex(index);
    568     }
    569 
    570     @Override
    571     public void expertChanged(boolean isExpert) {
    572         addGUITabs(true);
     573        setSelectedIndex(Math.max(index, 0));
    573574    }
    574575
  • trunk/src/org/openstreetmap/josm/gui/preferences/ToolbarPreferences.java

    r17227 r17307  
    5252import javax.swing.ListSelectionModel;
    5353import javax.swing.MenuElement;
     54import javax.swing.SwingUtilities;
    5455import javax.swing.TransferHandler;
    5556import javax.swing.event.PopupMenuEvent;
     
    513514            public void actionPerformed(ActionEvent e) {
    514515                final PreferenceDialog p = new PreferenceDialog(MainApplication.getMainFrame());
    515                 p.selectPreferencesTabByName("toolbar");
     516                SwingUtilities.invokeLater(() -> p.selectPreferencesTabByName("toolbar"));
    516517                p.setVisible(true);
    517518            }
     
    523524                final PreferenceDialog p = new PreferenceDialog(MainApplication.getMainFrame());
    524525                p.getTabbedPane().getShortcutPreference().setDefaultFilter(act.getDisplayName());
    525                 p.selectPreferencesTabByName("shortcuts");
     526                SwingUtilities.invokeLater(() -> p.selectPreferencesTabByName("shortcuts"));
    526527                p.setVisible(true);
    527528                // refresh toolbar to try using changed shortcuts without restart
Note: See TracChangeset for help on using the changeset viewer.