Browse Source

Fix prefs category loading.

When loading a category, don't also create UI for the subcategories.
This is weird and doesn't make sense, and is also the reason we
needed the hacky NoRemovePanel.

Previously, we added a category, then created a new panel for
each of its subcategories. When you clicked on the subcat
we made it again with a new panel, and the component ended
up on both (because it couldn't be removed from the old one).
pull/352/head
Chris Smith 9 years ago
parent
commit
1cc484142a

+ 0
- 52
ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/prefs/NoRemovePanel.java View File

@@ -1,52 +0,0 @@
1
-/*
2
- * Copyright (c) 2006-2015 DMDirc Developers
3
- *
4
- * Permission is hereby granted, free of charge, to any person obtaining a copy
5
- * of this software and associated documentation files (the "Software"), to deal
6
- * in the Software without restriction, including without limitation the rights
7
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- * copies of the Software, and to permit persons to whom the Software is
9
- * furnished to do so, subject to the following conditions:
10
- *
11
- * The above copyright notice and this permission notice shall be included in
12
- * all copies or substantial portions of the Software.
13
- *
14
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
- * SOFTWARE.
21
- */
22
-
23
-package com.dmdirc.addons.ui_swing.dialogs.prefs;
24
-
25
-import java.awt.Component;
26
-import java.awt.LayoutManager;
27
-
28
-import javax.swing.JPanel;
29
-
30
-/**
31
- * Creates a new JPanel that prevents components from being removed.
32
- */
33
-public class NoRemovePanel extends JPanel {
34
-
35
-    /** A version number for this class. */
36
-    private static final long serialVersionUID = 1;
37
-
38
-    /**
39
-     * Creates a new JPanel that prevents components being removed.
40
-     *
41
-     * @param layout Layout manager
42
-     */
43
-    public NoRemovePanel(final LayoutManager layout) {
44
-        super(layout);
45
-    }
46
-
47
-    @Override
48
-    public void remove(final Component comp) {
49
-        //Ignore
50
-    }
51
-
52
-}

+ 2
- 4
ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/prefs/PrefsCategoryLoader.java View File

@@ -141,8 +141,6 @@ public class PrefsCategoryLoader extends LoggingSwingWorker<JPanel, Object> {
141 141
         for (PreferencesCategory child : category.getSubcats()) {
142 142
             if (child.isInline() && category.isInlineBefore()) {
143 143
                 addInlineCategory(child, panel);
144
-            } else if (!child.isInline()) {
145
-                addCategory(child);
146 144
             }
147 145
         }
148 146
 
@@ -234,7 +232,7 @@ public class PrefsCategoryLoader extends LoggingSwingWorker<JPanel, Object> {
234 232
     private void addInlineCategory(final PreferencesCategory category,
235 233
             final JPanel parent) {
236 234
         final JPanel panel = UIUtilities.invokeAndWait(() -> {
237
-            final JPanel panel1 = new NoRemovePanel(new MigLayout(
235
+            final JPanel panel1 = new JPanel(new MigLayout(
238 236
                             "fillx, gap unrel, wrap 2, "
239 237
                             + "hidemode 3, pack, wmax 470-" + leftPadding + '-'
240 238
                             + rightPadding + "-2*"
@@ -258,7 +256,7 @@ public class PrefsCategoryLoader extends LoggingSwingWorker<JPanel, Object> {
258 256
      */
259 257
     private JPanel addCategory(final PreferencesCategory category) {
260 258
         final JPanel panel = UIUtilities.invokeAndWait(() -> {
261
-            final JPanel panel1 = new NoRemovePanel(
259
+            final JPanel panel1 = new JPanel(
262 260
                     new MigLayout("fillx, gap unrel, wrap 2, pack, "
263 261
                             + "hidemode 3, wmax 470-"
264 262
                             + leftPadding + '-' + rightPadding + "-2*" + padding));

Loading…
Cancel
Save