|
@@ -4,14 +4,13 @@ using MediaBrowser.Controller.Localization;
|
|
using MediaBrowser.Model.Logging;
|
|
using MediaBrowser.Model.Logging;
|
|
using MediaBrowser.Server.Startup.Common.Browser;
|
|
using MediaBrowser.Server.Startup.Common.Browser;
|
|
using System;
|
|
using System;
|
|
|
|
+using System.ComponentModel;
|
|
using System.Windows.Forms;
|
|
using System.Windows.Forms;
|
|
|
|
|
|
namespace MediaBrowser.ServerApplication
|
|
namespace MediaBrowser.ServerApplication
|
|
{
|
|
{
|
|
public class ServerNotifyIcon : IDisposable
|
|
public class ServerNotifyIcon : IDisposable
|
|
{
|
|
{
|
|
- bool IsDisposing = false;
|
|
|
|
-
|
|
|
|
private NotifyIcon notifyIcon1;
|
|
private NotifyIcon notifyIcon1;
|
|
private ContextMenuStrip contextMenuStrip1;
|
|
private ContextMenuStrip contextMenuStrip1;
|
|
private ToolStripMenuItem cmdExit;
|
|
private ToolStripMenuItem cmdExit;
|
|
@@ -21,25 +20,13 @@ namespace MediaBrowser.ServerApplication
|
|
private ToolStripMenuItem cmdRestart;
|
|
private ToolStripMenuItem cmdRestart;
|
|
private ToolStripSeparator toolStripSeparator1;
|
|
private ToolStripSeparator toolStripSeparator1;
|
|
private ToolStripMenuItem cmdCommunity;
|
|
private ToolStripMenuItem cmdCommunity;
|
|
|
|
+ private Container components;
|
|
|
|
|
|
private readonly ILogger _logger;
|
|
private readonly ILogger _logger;
|
|
private readonly IServerApplicationHost _appHost;
|
|
private readonly IServerApplicationHost _appHost;
|
|
private readonly IServerConfigurationManager _configurationManager;
|
|
private readonly IServerConfigurationManager _configurationManager;
|
|
private readonly ILocalizationManager _localization;
|
|
private readonly ILocalizationManager _localization;
|
|
|
|
|
|
- public bool Visible
|
|
|
|
- {
|
|
|
|
- get
|
|
|
|
- {
|
|
|
|
- return notifyIcon1.Visible;
|
|
|
|
- }
|
|
|
|
- set
|
|
|
|
- {
|
|
|
|
- Action act = () => notifyIcon1.Visible = false;
|
|
|
|
- Invoke(act);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
public void Invoke(Action action)
|
|
public void Invoke(Action action)
|
|
{
|
|
{
|
|
contextMenuStrip1.Invoke(action);
|
|
contextMenuStrip1.Invoke(action);
|
|
@@ -55,7 +42,7 @@ namespace MediaBrowser.ServerApplication
|
|
_appHost = appHost;
|
|
_appHost = appHost;
|
|
_configurationManager = configurationManager;
|
|
_configurationManager = configurationManager;
|
|
|
|
|
|
- var components = new System.ComponentModel.Container();
|
|
|
|
|
|
+ components = new System.ComponentModel.Container();
|
|
|
|
|
|
var resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
|
var resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
|
contextMenuStrip1 = new ContextMenuStrip(components);
|
|
contextMenuStrip1 = new ContextMenuStrip(components);
|
|
@@ -138,32 +125,6 @@ namespace MediaBrowser.ServerApplication
|
|
LocalizeText();
|
|
LocalizeText();
|
|
|
|
|
|
notifyIcon1.DoubleClick += notifyIcon1_DoubleClick;
|
|
notifyIcon1.DoubleClick += notifyIcon1_DoubleClick;
|
|
- Application.ThreadExit += Application_ThreadExit;
|
|
|
|
- Application.ApplicationExit += Application_ApplicationExit;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- void Application_ThreadExit(object sender, EventArgs e)
|
|
|
|
- {
|
|
|
|
- try
|
|
|
|
- {
|
|
|
|
- notifyIcon1.Visible = false;
|
|
|
|
- }
|
|
|
|
- catch
|
|
|
|
- {
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- void Application_ApplicationExit(object sender, EventArgs e)
|
|
|
|
- {
|
|
|
|
- try
|
|
|
|
- {
|
|
|
|
- notifyIcon1.Visible = false;
|
|
|
|
- }
|
|
|
|
- catch
|
|
|
|
- {
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
|
|
|
|
void notifyIcon1_DoubleClick(object sender, EventArgs e)
|
|
void notifyIcon1_DoubleClick(object sender, EventArgs e)
|
|
@@ -222,16 +183,26 @@ namespace MediaBrowser.ServerApplication
|
|
_appHost.Shutdown();
|
|
_appHost.Shutdown();
|
|
}
|
|
}
|
|
|
|
|
|
- ~ServerNotifyIcon()
|
|
|
|
|
|
+ public void Dispose()
|
|
{
|
|
{
|
|
- Dispose();
|
|
|
|
|
|
+ Dispose(true);
|
|
}
|
|
}
|
|
|
|
|
|
- public void Dispose()
|
|
|
|
|
|
+ protected virtual void Dispose(bool disposing)
|
|
{
|
|
{
|
|
- if (!IsDisposing)
|
|
|
|
|
|
+ if (disposing)
|
|
{
|
|
{
|
|
- IsDisposing = true;
|
|
|
|
|
|
+ if (notifyIcon1 != null)
|
|
|
|
+ {
|
|
|
|
+ notifyIcon1.Visible = false;
|
|
|
|
+ notifyIcon1.Dispose();
|
|
|
|
+ notifyIcon1 = null;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (components != null)
|
|
|
|
+ {
|
|
|
|
+ components.Dispose();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|