ソースを参照

Start fixing Nick colour plugin.

pull/231/head
Greg Holmes 9年前
コミット
5dda7cd17b

+ 10
- 29
nickcolours/src/com/dmdirc/addons/nickcolours/NickColourManager.java ファイルの表示

22
 
22
 
23
 package com.dmdirc.addons.nickcolours;
23
 package com.dmdirc.addons.nickcolours;
24
 
24
 
25
-import com.dmdirc.ChannelClientProperty;
26
 import com.dmdirc.ClientModule.GlobalConfig;
25
 import com.dmdirc.ClientModule.GlobalConfig;
27
 import com.dmdirc.DMDircMBassador;
26
 import com.dmdirc.DMDircMBassador;
28
 import com.dmdirc.events.ChannelGotnamesEvent;
27
 import com.dmdirc.events.ChannelGotnamesEvent;
29
 import com.dmdirc.events.ChannelJoinEvent;
28
 import com.dmdirc.events.ChannelJoinEvent;
29
+import com.dmdirc.events.DisplayProperty;
30
 import com.dmdirc.interfaces.GroupChatUser;
30
 import com.dmdirc.interfaces.GroupChatUser;
31
 import com.dmdirc.interfaces.User;
31
 import com.dmdirc.interfaces.User;
32
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
32
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
37
 import com.dmdirc.ui.messages.ColourManager;
37
 import com.dmdirc.ui.messages.ColourManager;
38
 import com.dmdirc.util.colours.Colour;
38
 import com.dmdirc.util.colours.Colour;
39
 
39
 
40
-import com.google.common.collect.Maps;
41
-
42
 import java.util.ArrayList;
40
 import java.util.ArrayList;
43
 import java.util.Collection;
41
 import java.util.Collection;
44
 import java.util.List;
42
 import java.util.List;
45
-import java.util.Map;
46
 
43
 
47
 import javax.inject.Inject;
44
 import javax.inject.Inject;
48
 import javax.inject.Singleton;
45
 import javax.inject.Singleton;
69
     private boolean useowncolour;
66
     private boolean useowncolour;
70
     private String owncolour;
67
     private String owncolour;
71
     private boolean userandomcolour;
68
     private boolean userandomcolour;
72
-    private boolean settext;
73
-    private boolean setnicklist;
74
 
69
 
75
     @Inject
70
     @Inject
76
     public NickColourManager(@GlobalConfig final ColourManager colourManager,
71
     public NickColourManager(@GlobalConfig final ColourManager colourManager,
103
     private void colourClient(final String network, final GroupChatUser client) {
98
     private void colourClient(final String network, final GroupChatUser client) {
104
         final StringConverter sc = client.getUser().getConnection().getParser().get()
99
         final StringConverter sc = client.getUser().getConnection().getParser().get()
105
                 .getStringConverter();
100
                 .getStringConverter();
106
-        // TODO: This needs to use the new setDisplayableProperty on GroupChatUser
107
-        final Map<Object, Object> map = Maps.newHashMap();
108
         final User myself = client.getUser();
101
         final User myself = client.getUser();
109
         final String nickOption1 = "color:" + sc.toLowerCase(network + ':' + client.getNickname());
102
         final String nickOption1 = "color:" + sc.toLowerCase(network + ':' + client.getNickname());
110
         final String nickOption2 = "color:" + sc.toLowerCase("*:" + client.getNickname());
103
         final String nickOption2 = "color:" + sc.toLowerCase("*:" + client.getNickname());
111
 
104
 
112
         if (useowncolour && client.getUser().equals(myself)) {
105
         if (useowncolour && client.getUser().equals(myself)) {
113
             final Colour color = colourManager.getColourFromString(owncolour, null);
106
             final Colour color = colourManager.getColourFromString(owncolour, null);
114
-            putColour(map, color, color);
107
+            putColour(client, color);
115
         } else if (userandomcolour) {
108
         } else if (userandomcolour) {
116
-            putColour(map, getColour(client.getNickname()), getColour(client.getNickname()));
109
+            putColour(client, getColour(client.getNickname()));
117
         }
110
         }
118
 
111
 
119
         String[] parts = null;
112
         String[] parts = null;
130
             if (parts[0] != null) {
123
             if (parts[0] != null) {
131
                 textColor = colourManager.getColourFromString(parts[0], null);
124
                 textColor = colourManager.getColourFromString(parts[0], null);
132
             }
125
             }
133
-            Colour nickColor = null;
134
-            if (parts[1] != null) {
135
-                nickColor = colourManager.getColourFromString(parts[1], null);
136
-            }
137
 
126
 
138
-            putColour(map, textColor, nickColor);
127
+            putColour(client, textColor);
139
         }
128
         }
140
     }
129
     }
141
 
130
 
142
     /**
131
     /**
143
      * Puts the specified colour into the given map. The keys are determined by config settings.
132
      * Puts the specified colour into the given map. The keys are determined by config settings.
144
      *
133
      *
145
-     * @param map        The map to use
146
-     * @param textColour Text colour to be inserted
147
-     * @param nickColour Nick colour to be inserted
134
+     * @param user       The map to colour
135
+     * @param colour     Text colour to be inserted
148
      */
136
      */
149
-    private void putColour(final Map<Object, Object> map, final Colour textColour,
150
-            final Colour nickColour) {
151
-        if (settext && textColour != null) {
152
-            map.put(ChannelClientProperty.TEXT_FOREGROUND, textColour);
153
-        }
154
-
155
-        if (setnicklist && nickColour != null) {
156
-            map.put(ChannelClientProperty.NICKLIST_FOREGROUND, nickColour);
157
-        }
137
+    private void putColour(final GroupChatUser user, final Colour colour) {
138
+        user.setDisplayProperty(DisplayProperty.FOREGROUND_COLOUR, colour);
158
     }
139
     }
159
 
140
 
160
     /**
141
     /**
226
             parts = new String[]{null, null};
207
             parts = new String[]{null, null};
227
         } else if (parts.length == 1) {
208
         } else if (parts.length == 1) {
228
             parts = new String[]{parts[0], null};
209
             parts = new String[]{parts[0], null};
210
+        } else if (parts.length == 2) {
211
+            parts = new String[]{parts[0], parts[1]};
229
         }
212
         }
230
 
213
 
231
         return parts;
214
         return parts;
253
         useowncolour = globalConfig.getOptionBool(domain, "useowncolour");
236
         useowncolour = globalConfig.getOptionBool(domain, "useowncolour");
254
         owncolour = globalConfig.getOption(domain, "owncolour");
237
         owncolour = globalConfig.getOption(domain, "owncolour");
255
         userandomcolour = globalConfig.getOptionBool(domain, "userandomcolour");
238
         userandomcolour = globalConfig.getOptionBool(domain, "userandomcolour");
256
-        settext = globalConfig.getOptionBool(domain, "settext");
257
-        setnicklist = globalConfig.getOptionBool(domain, "setnicklist");
258
         if (globalConfig.hasOptionString(domain, "randomcolours")) {
239
         if (globalConfig.hasOptionString(domain, "randomcolours")) {
259
             final List<String> list = globalConfig.getOptionList(domain, "randomcolours");
240
             final List<String> list = globalConfig.getOptionList(domain, "randomcolours");
260
             randColours = list.toArray(new String[list.size()]);
241
             randColours = list.toArray(new String[list.size()]);

+ 0
- 16
nickcolours/src/com/dmdirc/addons/nickcolours/NickColourPlugin.java ファイルの表示

95
                         manager.getIdentity(), manager.getConfigManager(),
95
                         manager.getIdentity(), manager.getConfigManager(),
96
                         pluginInfo.getDomain())));
96
                         pluginInfo.getDomain())));
97
 
97
 
98
-        general.addSetting(new PreferencesSetting(PreferencesType.BOOLEAN,
99
-                "ui", "shownickcoloursintext", "Show colours in text area",
100
-                "Colour nicknames in main text area?",
101
-                manager.getConfigManager(), manager.getIdentity()));
102
-        general.addSetting(new PreferencesSetting(PreferencesType.BOOLEAN,
103
-                "ui", "shownickcoloursinnicklist", "Show colours in"
104
-                + " nick list", "Colour nicknames in channel nick lists?",
105
-                manager.getConfigManager(), manager.getIdentity()));
106
-        general.addSetting(new PreferencesSetting(PreferencesType.BOOLEAN, pluginInfo.getDomain(),
107
-                "settext", "Set colours in textarea",
108
-                "Should the plugin set the textarea colour of nicks?",
109
-                manager.getConfigManager(), manager.getIdentity()));
110
-        general.addSetting(new PreferencesSetting(PreferencesType.BOOLEAN, pluginInfo.getDomain(),
111
-                "setnicklist", "Set colours in nick list",
112
-                "Should the plugin set the nick list colour of nicks?",
113
-                manager.getConfigManager(), manager.getIdentity()));
114
         general.addSetting(new PreferencesSetting(PreferencesType.BOOLEAN,
98
         general.addSetting(new PreferencesSetting(PreferencesType.BOOLEAN,
115
                 pluginInfo.getDomain(), "userandomcolour", "Use random colour",
99
                 pluginInfo.getDomain(), "userandomcolour", "Use random colour",
116
                 "Use a pseudo-random colour for each person?",
100
                 "Use a pseudo-random colour for each person?",

読み込み中…
キャンセル
保存