Browse Source

Unsetting colours now reverts them (+ unit test)

Fixes issue 1136, issue 1106

git-svn-id: http://svn.dmdirc.com/trunk@3900 00569f92-eb28-0410-84fd-f71c24880f
tags/0.6
Chris Smith 16 years ago
parent
commit
021ecde23a

+ 0
- 1
src/com/dmdirc/config/ConfigManager.java View File

@@ -28,7 +28,6 @@ import com.dmdirc.util.MapList;
28 28
 import java.io.Serializable;
29 29
 import java.util.ArrayList;
30 30
 import java.util.Collections;
31
-import java.util.HashMap;
32 31
 import java.util.HashSet;
33 32
 import java.util.List;
34 33
 import java.util.Map;

+ 7
- 6
src/com/dmdirc/ui/messages/ColourManager.java View File

@@ -50,7 +50,7 @@ public final class ColourManager {
50 50
     };
51 51
     
52 52
     /** Actual colours we're using for the 16 IRC colours. */
53
-    private static Color[] IRC_COLOURS = DEFAULT_COLOURS;
53
+    private static Color[] IRC_COLOURS = DEFAULT_COLOURS.clone();
54 54
        
55 55
     /** Creates a new instance of ColourManager. */
56 56
     private ColourManager() {
@@ -59,15 +59,16 @@ public final class ColourManager {
59 59
     /**
60 60
      * Initialises the IRC_COLOURS array.
61 61
      */
62
-    private static void initColours() {
63
-        IRC_COLOURS = DEFAULT_COLOURS;
64
-        
62
+    private static void initColours() {        
65 63
         for (int i = 0; i < 16; i++) {
66 64
             if (IdentityManager.getGlobalConfig().hasOption("colour", String.valueOf(i))) {
67 65
                 IRC_COLOURS[i] = getColour(IdentityManager.getGlobalConfig()
68 66
                         .getOption("colour", String.valueOf(i)));
69
-            }
70
-            COLOUR_CACHE.remove(String.valueOf(i));
67
+                COLOUR_CACHE.remove(String.valueOf(i));
68
+            } else if (!IRC_COLOURS[i].equals(DEFAULT_COLOURS[i])) {
69
+                IRC_COLOURS[i] = DEFAULT_COLOURS[i];
70
+                COLOUR_CACHE.remove(String.valueOf(i));
71
+            } 
71 72
         }
72 73
     }
73 74
     

+ 7
- 0
test/com/dmdirc/ui/messages/ColourManagerTest.java View File

@@ -129,6 +129,13 @@ public class ColourManagerTest {
129 129
         IdentityManager.getConfigIdentity().unsetOption("colour", "4");
130 130
     }
131 131
     
132
+    @Test
133
+    public void testCustomColours2() {
134
+        IdentityManager.getConfigIdentity().setOption("colour", "4", "000000");        
135
+        IdentityManager.getConfigIdentity().unsetOption("colour", "4");
136
+        assertEquals("ff0000", ColourManager.getHex(ColourManager.getColour(4)).toLowerCase());
137
+    }    
138
+    
132 139
     public static junit.framework.Test suite() {
133 140
         return new junit.framework.JUnit4TestAdapter(ColourManagerTest.class);
134 141
     }

Loading…
Cancel
Save