Ticket #7561: 7561_storeHeight.patch

File 7561_storeHeight.patch, 3.8 KB (added by GerdP, 3 weeks ago)
  • src/org/openstreetmap/josm/gui/dialogs/DialogsPanel.java

     
    6363        }
    6464
    6565        this.add(mSpltPane);
    66         reconstruct(Action.ELEMENT_SHRINKS, null);
     66        reconstruct(Action.RESTORE_SAVED, null);
    6767    }
    6868
    6969    /**
     
    126126         * The panel was collapsed by the user.
    127127         */
    128128        COLLAPSED_TO_DEFAULT,
     129        /**
     130         * Restore saved heights.
     131         */
     132        RESTORE_SAVED,
    129133        /*  INVISIBLE_TO_COLLAPSED,    does not happen */
    130134        /**
    131135         * else. (Remaining elements have more space.)
    132136         */
     137
    133138        ELEMENT_SHRINKS
    134139    }
    135140
     
    186191        /**
    187192         * Determine the panel geometry
    188193         */
    189         if (action == Action.ELEMENT_SHRINKS) {
     194        if (action == Action.RESTORE_SAVED) {
    190195            for (int i = 0; i < n; ++i) {
    191196                final ToggleDialog dlg = allDialogs.get(i);
    192197                if (dlg.isDialogInDefaultView()) {
     198                    final int ph = dlg.getLastHeight();
     199                    final int ah = dlg.getSize().height;
     200                    dlg.setPreferredSize(new Dimension(Integer.MAX_VALUE, ah < 20 ? ph : ah));
     201                }
     202            }
     203
     204        } else if (action == Action.ELEMENT_SHRINKS) {
     205            for (int i = 0; i < n; ++i) {
     206                final ToggleDialog dlg = allDialogs.get(i);
     207                if (dlg.isDialogInDefaultView()) {
    193208                    final int ph = dlg.getPreferredHeight();
    194209                    final int ah = dlg.getSize().height;
    195210                    dlg.setPreferredSize(new Dimension(Integer.MAX_VALUE, ah < 20 ? ph : ah));
     
    236251            final int hnTrig = hpTrig * s2 / (hpTrig + sumP);
    237252            triggeredBy.setPreferredSize(new Dimension(Integer.MAX_VALUE, hnTrig));
    238253
    239             /** This is remainig for the other default view dialogs */
     254            /** This is remaining for the other default view dialogs */
    240255            final int r = s2 - hnTrig;
    241256
    242257            /**
  • src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java

     
    239239        setPreferredSize(new Dimension(0, preferredHeight));
    240240        /** Override any minimum sizes of child elements so the user can resize freely */
    241241        setMinimumSize(new Dimension(0, 0));
    242         this.preferredHeight = preferredHeight;
     242        this.preferredHeight = Config.getPref().getInt(preferencePrefix+".preferredHeight", preferredHeight);
    243243        toggleAction = new ToggleDialogAction(name, "dialogs/"+iconName, tooltip, shortcut, helpTopic());
    244244
    245245        isShowing = Config.getPref().getBoolean(preferencePrefix+".visible", defShow);
     
    456456
    457457    @Override
    458458    public void destroy() {
     459        rememberHeight();
    459460        closeDetachedDialog();
    460461        if (isShowing) {
    461462            hideNotify();
     
    996997        }
    997998        stateChanged();
    998999    }
     1000
     1001    /**
     1002     * @return the last used height stored in preferences or preferredHeight
     1003     */
     1004    public int getLastHeight() {
     1005        return Config.getPref().getInt(preferencePrefix+".lastHeight", preferredHeight);
     1006    }
     1007
     1008    /**
     1009     * Store the current height in preferences so that we can restore it.
     1010     */
     1011    public void rememberHeight() {
     1012        Logging.debug(preferencePrefix);
     1013        int h = getHeight();
     1014        Config.getPref().put(preferencePrefix+".lastHeight", Integer.toString(h));
     1015    }
    9991016}