Browse Source

WindowStatusPlugin fixes.

 - Use correct config binding names so that `shownone` actually works again.
 - Update the status on any channeluser mode changes not just window changes.
pull/529/head
Shane Mc Cormack 7 years ago
parent
commit
84083ebcfa

+ 11
- 4
windowstatus/src/main/java/com/dmdirc/addons/windowstatus/WindowStatusManager.java View File

32
 import com.dmdirc.config.prefs.PreferencesDialogModel;
32
 import com.dmdirc.config.prefs.PreferencesDialogModel;
33
 import com.dmdirc.config.prefs.PreferencesSetting;
33
 import com.dmdirc.config.prefs.PreferencesSetting;
34
 import com.dmdirc.config.prefs.PreferencesType;
34
 import com.dmdirc.config.prefs.PreferencesType;
35
+import com.dmdirc.events.ChannelUserModeChangeEvent;
35
 import com.dmdirc.events.ClientPrefsOpenedEvent;
36
 import com.dmdirc.events.ClientPrefsOpenedEvent;
36
 import com.dmdirc.events.StatusBarComponentAddedEvent;
37
 import com.dmdirc.events.StatusBarComponentAddedEvent;
37
 import com.dmdirc.events.StatusBarComponentRemovedEvent;
38
 import com.dmdirc.events.StatusBarComponentRemovedEvent;
90
         panel = UIUtilities.invokeAndWait(WindowStatusPanel::new);
91
         panel = UIUtilities.invokeAndWait(WindowStatusPanel::new);
91
         eventBus.publishAsync(new StatusBarComponentAddedEvent(panel));
92
         eventBus.publishAsync(new StatusBarComponentAddedEvent(panel));
92
         swingEventBus.subscribe(this);
93
         swingEventBus.subscribe(this);
94
+        eventBus.subscribe(this);
93
         configBinder.bind(this, WindowStatusManager.class);
95
         configBinder.bind(this, WindowStatusManager.class);
94
         UIUtilities.invokeLater(this::updateStatus);
96
         UIUtilities.invokeLater(this::updateStatus);
95
     }
97
     }
99
      */
101
      */
100
     public void onUnload() {
102
     public void onUnload() {
101
         swingEventBus.unsubscribe(this);
103
         swingEventBus.unsubscribe(this);
104
+        eventBus.unsubscribe(this);
102
         eventBus.publishAsync(new StatusBarComponentRemovedEvent(panel));
105
         eventBus.publishAsync(new StatusBarComponentRemovedEvent(panel));
103
         configBinder.unbind(this);
106
         configBinder.unbind(this);
104
         panel = null;
107
         panel = null;
109
         event.getWindow().map(TextFrame::getContainer).ifPresent(this::updateStatus);
112
         event.getWindow().map(TextFrame::getContainer).ifPresent(this::updateStatus);
110
     }
113
     }
111
 
114
 
115
+    @Handler
116
+    public void usermodeChange(final ChannelUserModeChangeEvent event) {
117
+        updateStatus();
118
+    }
119
+
112
     /** Update the window status using the current active window. */
120
     /** Update the window status using the current active window. */
113
     public void updateStatus() {
121
     public void updateStatus() {
114
         activeFrameManager.getActiveFrame().ifPresent(c -> updateStatus(c.getContainer()));
122
         activeFrameManager.getActiveFrame().ifPresent(c -> updateStatus(c.getContainer()));
168
                 if (!isFirst) {
176
                 if (!isFirst) {
169
                     textString.append(' ');
177
                     textString.append(' ');
170
                 }
178
                 }
171
-                final String name = i > 0 ?
172
-                        Character.toString(channelUserModes.charAt(i)) : nonePrefix;
179
+                final String name = i > 0 ? Character.toString(channelUserModes.charAt(i)) : nonePrefix;
173
                 textString.append(name).append(count);
180
                 textString.append(name).append(count);
174
                 isFirst = false;
181
                 isFirst = false;
175
             }
182
             }
199
         updateStatus();
206
         updateStatus();
200
     }
207
     }
201
 
208
 
202
-    @ConfigBinding(key = "client.shownone", invocation = EDTInvocation.class)
209
+    @ConfigBinding(key = "channel.shownone", invocation = EDTInvocation.class)
203
     public void handleShowNone(final String value) {
210
     public void handleShowNone(final String value) {
204
         shownone = Boolean.valueOf(value);
211
         shownone = Boolean.valueOf(value);
205
         updateStatus();
212
         updateStatus();
206
     }
213
     }
207
 
214
 
208
-    @ConfigBinding(key = "client.noneprefix", invocation = EDTInvocation.class)
215
+    @ConfigBinding(key = "channel.noneprefix", invocation = EDTInvocation.class)
209
     public void handleShowPrefix(final String value) {
216
     public void handleShowPrefix(final String value) {
210
         nonePrefix = value;
217
         nonePrefix = value;
211
         updateStatus();
218
         updateStatus();

Loading…
Cancel
Save