|
@@ -24,6 +24,7 @@ package com.dmdirc.ui.messages;
|
24
|
24
|
|
25
|
25
|
import com.dmdirc.DMDircMBassador;
|
26
|
26
|
import com.dmdirc.FrameContainer;
|
|
27
|
+import com.dmdirc.config.ConfigBinding;
|
27
|
28
|
import com.dmdirc.events.BaseChannelTextEvent;
|
28
|
29
|
import com.dmdirc.events.BaseQueryTextEvent;
|
29
|
30
|
import com.dmdirc.events.ChannelHighlightEvent;
|
|
@@ -43,6 +44,8 @@ public class UnreadStatusManager {
|
43
|
44
|
|
44
|
45
|
private final DMDircMBassador eventBus;
|
45
|
46
|
private final FrameContainer container;
|
|
47
|
+ private final ColourManager colourManager;
|
|
48
|
+
|
46
|
49
|
private int unreadLines;
|
47
|
50
|
private Optional<Colour> notificationColour = Optional.empty();
|
48
|
51
|
|
|
@@ -53,6 +56,7 @@ public class UnreadStatusManager {
|
53
|
56
|
public UnreadStatusManager(final FrameContainer container) {
|
54
|
57
|
this.container = container;
|
55
|
58
|
this.eventBus = container.getEventBus();
|
|
59
|
+ this.colourManager = new ColourManager(container.getConfigManager(), eventBus);
|
56
|
60
|
}
|
57
|
61
|
|
58
|
62
|
@Handler
|
|
@@ -114,8 +118,7 @@ public class UnreadStatusManager {
|
114
|
118
|
unreadLines = newUnreadCount;
|
115
|
119
|
|
116
|
120
|
if (updated) {
|
117
|
|
- eventBus.publishAsync(new UnreadStatusChangedEvent(container, this, notificationColour,
|
118
|
|
- unreadLines));
|
|
121
|
+ publishChangedEvent();
|
119
|
122
|
}
|
120
|
123
|
}
|
121
|
124
|
|
|
@@ -136,4 +139,42 @@ public class UnreadStatusManager {
|
136
|
139
|
}
|
137
|
140
|
}
|
138
|
141
|
|
|
142
|
+ @ConfigBinding(domain = "ui", key = "miscellaneousNotificationColour")
|
|
143
|
+ void handleMiscellaneousColour(final String colour) {
|
|
144
|
+ final Optional<Colour> newColour = Optional.ofNullable(
|
|
145
|
+ colourManager.getColourFromString(colour, Colour.GREEN));
|
|
146
|
+ if (notificationColour.equals(miscellaneousColour)) {
|
|
147
|
+ notificationColour = newColour;
|
|
148
|
+ publishChangedEvent();
|
|
149
|
+ }
|
|
150
|
+ miscellaneousColour = newColour;
|
|
151
|
+ }
|
|
152
|
+
|
|
153
|
+ @ConfigBinding(domain = "ui", key = "messageNotificationColour")
|
|
154
|
+ void handleMessageColour(final String colour) {
|
|
155
|
+ final Optional<Colour> newColour = Optional.ofNullable(
|
|
156
|
+ colourManager.getColourFromString(colour, Colour.BLUE));
|
|
157
|
+ if (notificationColour.equals(messageColour)) {
|
|
158
|
+ notificationColour = newColour;
|
|
159
|
+ publishChangedEvent();
|
|
160
|
+ }
|
|
161
|
+ messageColour = newColour;
|
|
162
|
+ }
|
|
163
|
+
|
|
164
|
+ @ConfigBinding(domain = "ui", key = "highlightNotificationColour")
|
|
165
|
+ void handleHighlightColour(final String colour) {
|
|
166
|
+ final Optional<Colour> newColour = Optional.ofNullable(
|
|
167
|
+ colourManager.getColourFromString(colour, Colour.RED));
|
|
168
|
+ if (notificationColour.equals(highlightColour)) {
|
|
169
|
+ notificationColour = newColour;
|
|
170
|
+ publishChangedEvent();
|
|
171
|
+ }
|
|
172
|
+ highlightColour = newColour;
|
|
173
|
+ }
|
|
174
|
+
|
|
175
|
+ private void publishChangedEvent() {
|
|
176
|
+ eventBus.publishAsync(new UnreadStatusChangedEvent(container, this, notificationColour,
|
|
177
|
+ unreadLines));
|
|
178
|
+ }
|
|
179
|
+
|
139
|
180
|
}
|