mirror of
https://github.com/chylex/TweetDuck.git
synced 2025-05-29 11:34:07 +02:00
Add IAppSystemHandler w/ OpenFileExplorer and update existing code to use it
This commit is contained in:
parent
de68d8934d
commit
c2f7e52d13
@ -1,10 +1,10 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using TweetDuck.Configuration;
|
using TweetDuck.Configuration;
|
||||||
using TweetDuck.Plugins;
|
using TweetDuck.Plugins;
|
||||||
|
using TweetLib.Core;
|
||||||
using TweetLib.Core.Features.Plugins;
|
using TweetLib.Core.Features.Plugins;
|
||||||
|
|
||||||
namespace TweetDuck.Core.Other{
|
namespace TweetDuck.Core.Other{
|
||||||
@ -95,7 +95,7 @@ public void flowLayoutPlugins_Resize(object sender, EventArgs e){
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void btnOpenFolder_Click(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){
|
private void btnReload_Click(object sender, EventArgs e){
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using TweetDuck.Configuration;
|
using TweetDuck.Configuration;
|
||||||
@ -7,6 +6,7 @@
|
|||||||
using TweetDuck.Core.Management;
|
using TweetDuck.Core.Management;
|
||||||
using TweetDuck.Core.Other.Settings.Dialogs;
|
using TweetDuck.Core.Other.Settings.Dialogs;
|
||||||
using TweetDuck.Core.Utils;
|
using TweetDuck.Core.Utils;
|
||||||
|
using TweetLib.Core;
|
||||||
|
|
||||||
namespace TweetDuck.Core.Other.Settings{
|
namespace TweetDuck.Core.Other.Settings{
|
||||||
sealed partial class TabSettingsAdvanced : BaseTabSettings{
|
sealed partial class TabSettingsAdvanced : BaseTabSettings{
|
||||||
@ -67,11 +67,11 @@ public override void OnClosing(){
|
|||||||
#region Application
|
#region Application
|
||||||
|
|
||||||
private void btnOpenAppFolder_Click(object sender, EventArgs e){
|
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){
|
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){
|
private void btnRestart_Click(object sender, EventArgs e){
|
||||||
|
16
Impl/SystemHandler.cs
Normal file
16
Impl/SystemHandler.cs
Normal 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('/', '\\') + '"')){}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -12,6 +12,7 @@
|
|||||||
using TweetDuck.Core.Other;
|
using TweetDuck.Core.Other;
|
||||||
using TweetDuck.Core.Management;
|
using TweetDuck.Core.Management;
|
||||||
using TweetDuck.Core.Utils;
|
using TweetDuck.Core.Utils;
|
||||||
|
using TweetDuck.Impl;
|
||||||
using TweetLib.Core;
|
using TweetLib.Core;
|
||||||
using TweetLib.Core.Collections;
|
using TweetLib.Core.Collections;
|
||||||
using TweetLib.Core.Utils;
|
using TweetLib.Core.Utils;
|
||||||
@ -58,7 +59,8 @@ static Program(){
|
|||||||
Config = new ConfigManager();
|
Config = new ConfigManager();
|
||||||
|
|
||||||
Lib.Initialize(new App.Builder{
|
Lib.Initialize(new App.Builder{
|
||||||
ErrorHandler = Reporter
|
ErrorHandler = Reporter,
|
||||||
|
SystemHandler = new SystemHandler()
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -239,6 +239,7 @@
|
|||||||
<Compile Include="Core\Other\FormSettings.Designer.cs">
|
<Compile Include="Core\Other\FormSettings.Designer.cs">
|
||||||
<DependentUpon>FormSettings.cs</DependentUpon>
|
<DependentUpon>FormSettings.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Impl\SystemHandler.cs" />
|
||||||
<Compile Include="Plugins\PluginControl.cs">
|
<Compile Include="Plugins\PluginControl.cs">
|
||||||
<SubType>UserControl</SubType>
|
<SubType>UserControl</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -4,16 +4,19 @@
|
|||||||
namespace TweetLib.Core{
|
namespace TweetLib.Core{
|
||||||
public sealed class App{
|
public sealed class App{
|
||||||
public static IAppErrorHandler ErrorHandler { get; private set; }
|
public static IAppErrorHandler ErrorHandler { get; private set; }
|
||||||
|
public static IAppSystemHandler SystemHandler { get; private set; }
|
||||||
|
|
||||||
// Builder
|
// Builder
|
||||||
|
|
||||||
public sealed class Builder{
|
public sealed class Builder{
|
||||||
public IAppErrorHandler? ErrorHandler { get; set; }
|
public IAppErrorHandler? ErrorHandler { get; set; }
|
||||||
|
public IAppSystemHandler? SystemHandler { get; set; }
|
||||||
|
|
||||||
// Validation
|
// Validation
|
||||||
|
|
||||||
internal void Initialize(){
|
internal void Initialize(){
|
||||||
App.ErrorHandler = Validate(ErrorHandler, nameof(ErrorHandler))!;
|
App.ErrorHandler = Validate(ErrorHandler, nameof(ErrorHandler))!;
|
||||||
|
App.SystemHandler = Validate(SystemHandler, nameof(SystemHandler))!;
|
||||||
}
|
}
|
||||||
|
|
||||||
private T Validate<T>(T obj, string name){
|
private T Validate<T>(T obj, string name){
|
||||||
|
5
lib/TweetLib.Core/Application/IAppSystemHandler.cs
Normal file
5
lib/TweetLib.Core/Application/IAppSystemHandler.cs
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
namespace TweetLib.Core.Application{
|
||||||
|
public interface IAppSystemHandler{
|
||||||
|
void OpenFileExplorer(string path);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user