mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-17 22:11:48 +08:00
46 lines
1.5 KiB
C#
46 lines
1.5 KiB
C#
using System;
|
|
using System.IO;
|
|
using mRemoteNG.App;
|
|
using mRemoteNG.App.Info;
|
|
using mRemoteNG.Config.DataProviders;
|
|
using mRemoteNG.Config.Serializers;
|
|
using mRemoteNG.UI.Forms;
|
|
using WeifenLuo.WinFormsUI.Docking;
|
|
|
|
namespace mRemoteNG.Config.Settings
|
|
{
|
|
public class DockPanelLayoutSaver
|
|
{
|
|
private readonly ISerializer<DockPanel, string> _dockPanelSerializer;
|
|
private readonly IDataProvider<string> _dataProvider;
|
|
|
|
public DockPanelLayoutSaver(ISerializer<DockPanel, string> dockPanelSerializer, IDataProvider<string> dataProvider)
|
|
{
|
|
if (dockPanelSerializer == null)
|
|
throw new ArgumentNullException(nameof(dockPanelSerializer));
|
|
if (dataProvider == null)
|
|
throw new ArgumentNullException(nameof(dataProvider));
|
|
|
|
_dockPanelSerializer = dockPanelSerializer;
|
|
_dataProvider = dataProvider;
|
|
}
|
|
|
|
public void Save(DockPanel dockPanel)
|
|
{
|
|
try
|
|
{
|
|
if (Directory.Exists(SettingsFileInfo.SettingsPath) == false)
|
|
{
|
|
Directory.CreateDirectory(SettingsFileInfo.SettingsPath);
|
|
}
|
|
|
|
var serializedLayout = _dockPanelSerializer.Serialize(dockPanel);
|
|
_dataProvider.Save(serializedLayout);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Runtime.MessageCollector.AddExceptionStackTrace("SavePanelsToXML failed", ex);
|
|
}
|
|
}
|
|
}
|
|
} |