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
 import java.io.Serializable;
28
 import java.io.Serializable;
29
 import java.util.ArrayList;
29
 import java.util.ArrayList;
30
 import java.util.Collections;
30
 import java.util.Collections;
31
-import java.util.HashMap;
32
 import java.util.HashSet;
31
 import java.util.HashSet;
33
 import java.util.List;
32
 import java.util.List;
34
 import java.util.Map;
33
 import java.util.Map;

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

50
     };
50
     };
51
     
51
     
52
     /** Actual colours we're using for the 16 IRC colours. */
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
     /** Creates a new instance of ColourManager. */
55
     /** Creates a new instance of ColourManager. */
56
     private ColourManager() {
56
     private ColourManager() {
59
     /**
59
     /**
60
      * Initialises the IRC_COLOURS array.
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
         for (int i = 0; i < 16; i++) {
63
         for (int i = 0; i < 16; i++) {
66
             if (IdentityManager.getGlobalConfig().hasOption("colour", String.valueOf(i))) {
64
             if (IdentityManager.getGlobalConfig().hasOption("colour", String.valueOf(i))) {
67
                 IRC_COLOURS[i] = getColour(IdentityManager.getGlobalConfig()
65
                 IRC_COLOURS[i] = getColour(IdentityManager.getGlobalConfig()
68
                         .getOption("colour", String.valueOf(i)));
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
         IdentityManager.getConfigIdentity().unsetOption("colour", "4");
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
     public static junit.framework.Test suite() {
139
     public static junit.framework.Test suite() {
133
         return new junit.framework.JUnit4TestAdapter(ColourManagerTest.class);
140
         return new junit.framework.JUnit4TestAdapter(ColourManagerTest.class);
134
     }
141
     }

Loading…
Cancel
Save