1
0
mirror of https://github.com/chylex/TweetDuck.git synced 2025-05-07 08:34:06 +02:00

Add IAppSystemHandler w/ OpenFileExplorer and update existing code to use it

This commit is contained in:
chylex 2019-07-14 19:50:07 +02:00
parent de68d8934d
commit c2f7e52d13
7 changed files with 33 additions and 6 deletions

View File

@ -1,10 +1,10 @@
using System;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using TweetDuck.Configuration;
using TweetDuck.Plugins;
using TweetLib.Core;
using TweetLib.Core.Features.Plugins;
namespace TweetDuck.Core.Other{
@ -95,7 +95,7 @@ public void flowLayoutPlugins_Resize(object sender, EventArgs e){
}
private void btnOpenFolder_Click(object sender, EventArgs e){
using(Process.Start("explorer.exe", '"'+pluginManager.PathCustomPlugins+'"')){}
App.SystemHandler.OpenFileExplorer(pluginManager.PathCustomPlugins);
}
private void btnReload_Click(object sender, EventArgs e){

View File

@ -1,5 +1,4 @@
using System;
using System.Diagnostics;
using System.Threading.Tasks;
using System.Windows.Forms;
using TweetDuck.Configuration;
@ -7,6 +6,7 @@
using TweetDuck.Core.Management;
using TweetDuck.Core.Other.Settings.Dialogs;
using TweetDuck.Core.Utils;
using TweetLib.Core;
namespace TweetDuck.Core.Other.Settings{
sealed partial class TabSettingsAdvanced : BaseTabSettings{
@ -67,11 +67,11 @@ public override void OnClosing(){
#region Application
private void btnOpenAppFolder_Click(object sender, EventArgs e){
using(Process.Start("explorer.exe", "\""+Program.ProgramPath+"\"")){}
App.SystemHandler.OpenFileExplorer(Program.ProgramPath);
}
private void btnOpenDataFolder_Click(object sender, EventArgs e){
using(Process.Start("explorer.exe", "\""+Program.StoragePath+"\"")){}
App.SystemHandler.OpenFileExplorer(Program.StoragePath);
}
private void btnRestart_Click(object sender, EventArgs e){

16
Impl/SystemHandler.cs Normal file
View File

@ -0,0 +1,16 @@
using System.Diagnostics;
using System.IO;
using TweetLib.Core.Application;
namespace TweetDuck.Impl{
class SystemHandler : IAppSystemHandler{
void IAppSystemHandler.OpenFileExplorer(string path){
if (File.Exists(path)){
using(Process.Start("explorer.exe", "/select,\"" + path.Replace('/', '\\') + "\"")){}
}
else if (Directory.Exists(path)){
using(Process.Start("explorer.exe", '"' + path.Replace('/', '\\') + '"')){}
}
}
}
}

View File

@ -12,6 +12,7 @@
using TweetDuck.Core.Other;
using TweetDuck.Core.Management;
using TweetDuck.Core.Utils;
using TweetDuck.Impl;
using TweetLib.Core;
using TweetLib.Core.Collections;
using TweetLib.Core.Utils;
@ -58,7 +59,8 @@ static Program(){
Config = new ConfigManager();
Lib.Initialize(new App.Builder{
ErrorHandler = Reporter
ErrorHandler = Reporter,
SystemHandler = new SystemHandler()
});
}

View File

@ -239,6 +239,7 @@
<Compile Include="Core\Other\FormSettings.Designer.cs">
<DependentUpon>FormSettings.cs</DependentUpon>
</Compile>
<Compile Include="Impl\SystemHandler.cs" />
<Compile Include="Plugins\PluginControl.cs">
<SubType>UserControl</SubType>
</Compile>

View File

@ -4,16 +4,19 @@
namespace TweetLib.Core{
public sealed class App{
public static IAppErrorHandler ErrorHandler { get; private set; }
public static IAppSystemHandler SystemHandler { get; private set; }
// Builder
public sealed class Builder{
public IAppErrorHandler? ErrorHandler { get; set; }
public IAppSystemHandler? SystemHandler { get; set; }
// Validation
internal void Initialize(){
App.ErrorHandler = Validate(ErrorHandler, nameof(ErrorHandler))!;
App.SystemHandler = Validate(SystemHandler, nameof(SystemHandler))!;
}
private T Validate<T>(T obj, string name){

View File

@ -0,0 +1,5 @@
namespace TweetLib.Core.Application{
public interface IAppSystemHandler{
void OpenFileExplorer(string path);
}
}