Browse Source

Merge pull request #520 from ShaneMcC/debugShowRaw

Add showraw setting to DebugPlugin.
pull/523/head
Greg Holmes 7 years ago
parent
commit
2dc99094c4

+ 2
- 1
debug/plugin.config View File

@@ -23,4 +23,5 @@ updates:
23 23
 version:
24 24
   friendly=1.0
25 25
 
26
-defaults:
26
+defaults:
27
+ showraw=false

+ 73
- 0
debug/src/main/java/com/dmdirc/addons/debug/DebugManager.java View File

@@ -0,0 +1,73 @@
1
+/*
2
+ * Copyright (c) 2006-2017 DMDirc Developers
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
5
+ * documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
6
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
7
+ * permit persons to whom the Software is furnished to do so, subject to the following conditions:
8
+ *
9
+ * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
10
+ * Software.
11
+ *
12
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
13
+ * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
14
+ * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
15
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16
+ */
17
+
18
+package com.dmdirc.addons.debug;
19
+
20
+import com.dmdirc.config.GlobalConfig;
21
+import com.dmdirc.config.provider.AggregateConfigProvider;
22
+import com.dmdirc.events.ServerConnectingEvent;
23
+import com.dmdirc.events.eventbus.EventBus;
24
+import com.dmdirc.plugins.PluginDomain;
25
+import com.dmdirc.ui.WindowManager;
26
+import net.engio.mbassy.listener.Handler;
27
+
28
+import javax.inject.Inject;
29
+import javax.inject.Singleton;
30
+
31
+/**
32
+ * Debug plugin manager.
33
+ */
34
+@Singleton
35
+public class DebugManager {
36
+
37
+    private final RawWindowFactory windowFactory;
38
+
39
+    private final AggregateConfigProvider config;
40
+
41
+    private final String domain;
42
+
43
+    private final WindowManager windowManager;
44
+
45
+    private final EventBus eventBus;
46
+
47
+    @Inject
48
+    public DebugManager(@PluginDomain(DebugPlugin.class) final String domain,
49
+            @GlobalConfig final AggregateConfigProvider globalConfig, final RawWindowFactory windowFactory,
50
+            final WindowManager windowManager, final EventBus eventBus) {
51
+        this.domain = domain;
52
+        this.windowManager = windowManager;
53
+        this.eventBus = eventBus;
54
+        this.config = globalConfig;
55
+        this.windowFactory = windowFactory;
56
+    }
57
+
58
+    public void load() {
59
+        eventBus.subscribe(this);
60
+    }
61
+
62
+    public void unload() {
63
+        eventBus.unsubscribe(this);
64
+    }
65
+
66
+    @Handler
67
+    public void handleServerConnecting(final ServerConnectingEvent event) {
68
+        if (config.getOptionBool(domain, "showraw") && !windowManager
69
+                .getChildren(event.getConnection().getWindowModel()).stream().anyMatch(RawWindow.class::isInstance)) {
70
+            windowFactory.getRawWindow(event.getConnection());
71
+        }
72
+    }
73
+}

+ 14
- 2
debug/src/main/java/com/dmdirc/addons/debug/DebugModule.java View File

@@ -37,15 +37,27 @@ import com.dmdirc.addons.debug.commands.ShowRaw;
37 37
 import com.dmdirc.addons.debug.commands.StatusbarMessage;
38 38
 import com.dmdirc.addons.debug.commands.Threads;
39 39
 import com.dmdirc.addons.debug.commands.Time;
40
-
40
+import com.dmdirc.plugins.PluginDomain;
41
+import com.dmdirc.plugins.PluginInfo;
41 42
 import dagger.Module;
42 43
 import dagger.Provides;
43 44
 
44 45
 /**
45 46
  * Dependency injection module for the debug plugin.
46 47
  */
47
-@Module(injects = Debug.class, addsTo = ClientModule.class)
48
+@Module(addsTo = ClientModule.class, injects = {DebugManager.class, Debug.class})
48 49
 public class DebugModule {
50
+    private final PluginInfo pluginInfo;
51
+
52
+    public DebugModule(final PluginInfo pluginInfo) {
53
+        this.pluginInfo = pluginInfo;
54
+    }
55
+
56
+    @Provides
57
+    @PluginDomain(DebugPlugin.class)
58
+    public String getDomain() {
59
+        return pluginInfo.getDomain();
60
+    }
49 61
 
50 62
     @Provides(type = Provides.Type.SET)
51 63
     public DebugCommand getCommand(final Benchmark command) {

+ 17
- 1
debug/src/main/java/com/dmdirc/addons/debug/DebugPlugin.java View File

@@ -22,17 +22,33 @@ import com.dmdirc.plugins.implementations.BaseCommandPlugin;
22 22
 
23 23
 import dagger.ObjectGraph;
24 24
 
25
+
25 26
 /**
26 27
  * Debug plugin providing commands to aid in debugging the client.
27 28
  */
28 29
 public class DebugPlugin extends BaseCommandPlugin {
29 30
 
31
+    /** The manager in use. */
32
+    private DebugManager manager;
33
+
30 34
     @Override
31 35
     public void load(final PluginInfo pluginInfo, final ObjectGraph graph) {
32 36
         super.load(pluginInfo, graph);
33 37
 
34
-        setObjectGraph(graph.plus(new DebugModule()));
38
+        setObjectGraph(graph.plus(new DebugModule(pluginInfo)));
39
+        manager = getObjectGraph().get(DebugManager.class);
35 40
         registerCommand(Debug.class, Debug.INFO);
36 41
     }
37 42
 
43
+    @Override
44
+    public void onLoad() {
45
+        super.onLoad();
46
+        manager.load();
47
+    }
48
+
49
+    @Override
50
+    public void onUnload() {
51
+        super.onUnload();
52
+        manager.unload();
53
+    }
38 54
 }

Loading…
Cancel
Save