2014-04-13 07:38:12 +00:00
|
|
|
|
using System.Collections.Generic;
|
2016-01-06 21:34:42 +00:00
|
|
|
|
using System.IO;
|
2014-04-13 07:38:12 +00:00
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Windows;
|
2015-01-03 07:20:34 +00:00
|
|
|
|
using System.Windows.Forms;
|
2016-01-06 21:34:42 +00:00
|
|
|
|
using DataFormats = System.Windows.DataFormats;
|
|
|
|
|
|
using DragDropEffects = System.Windows.DragDropEffects;
|
|
|
|
|
|
using DragEventArgs = System.Windows.DragEventArgs;
|
2015-01-03 07:20:34 +00:00
|
|
|
|
using MessageBox = System.Windows.MessageBox;
|
2014-04-13 07:38:12 +00:00
|
|
|
|
|
2020-04-21 09:12:17 +00:00
|
|
|
|
namespace Flow.Launcher.Plugin.Folder
|
2015-01-05 14:41:17 +00:00
|
|
|
|
{
|
2014-06-30 13:31:13 +00:00
|
|
|
|
|
2016-03-28 02:09:57 +00:00
|
|
|
|
public partial class FileSystemSettings
|
2015-01-05 14:41:17 +00:00
|
|
|
|
{
|
2020-04-21 12:54:41 +00:00
|
|
|
|
private IPublicAPI flowlauncherAPI;
|
2016-04-21 00:53:21 +00:00
|
|
|
|
private Settings _settings;
|
2015-01-07 10:59:55 +00:00
|
|
|
|
|
2020-04-21 12:54:41 +00:00
|
|
|
|
public FileSystemSettings(IPublicAPI flowlauncherAPI, Settings settings)
|
2015-01-05 14:41:17 +00:00
|
|
|
|
{
|
2020-04-21 12:54:41 +00:00
|
|
|
|
this.flowlauncherAPI = flowlauncherAPI;
|
2015-01-05 14:41:17 +00:00
|
|
|
|
InitializeComponent();
|
2016-03-28 02:09:57 +00:00
|
|
|
|
_settings = settings;
|
|
|
|
|
|
lbxFolders.ItemsSource = _settings.FolderLinks;
|
2015-01-05 14:41:17 +00:00
|
|
|
|
}
|
2014-04-13 07:38:12 +00:00
|
|
|
|
|
2015-01-05 14:41:17 +00:00
|
|
|
|
private void btnDelete_Click(object sender, RoutedEventArgs e)
|
|
|
|
|
|
{
|
2014-04-13 07:38:12 +00:00
|
|
|
|
var selectedFolder = lbxFolders.SelectedItem as FolderLink;
|
|
|
|
|
|
if (selectedFolder != null)
|
|
|
|
|
|
{
|
2020-04-21 12:54:41 +00:00
|
|
|
|
string msg = string.Format(flowlauncherAPI.GetTranslation("flowlauncher_plugin_folder_delete_folder_link"), selectedFolder.Path);
|
2015-01-09 02:23:48 +00:00
|
|
|
|
|
|
|
|
|
|
if (MessageBox.Show(msg, string.Empty, MessageBoxButton.YesNo) == MessageBoxResult.Yes)
|
|
|
|
|
|
{
|
2016-03-28 02:09:57 +00:00
|
|
|
|
_settings.FolderLinks.Remove(selectedFolder);
|
2015-01-09 02:23:48 +00:00
|
|
|
|
lbxFolders.Items.Refresh();
|
|
|
|
|
|
}
|
2014-04-13 07:38:12 +00:00
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
2020-04-21 12:54:41 +00:00
|
|
|
|
string warning = flowlauncherAPI.GetTranslation("flowlauncher_plugin_folder_select_folder_link_warning");
|
2015-01-07 10:59:55 +00:00
|
|
|
|
MessageBox.Show(warning);
|
2014-04-13 07:38:12 +00:00
|
|
|
|
}
|
2015-01-05 14:41:17 +00:00
|
|
|
|
}
|
2014-04-13 07:38:12 +00:00
|
|
|
|
|
|
|
|
|
|
private void btnEdit_Click(object sender, RoutedEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
var selectedFolder = lbxFolders.SelectedItem as FolderLink;
|
|
|
|
|
|
if (selectedFolder != null)
|
|
|
|
|
|
{
|
2015-01-03 07:20:34 +00:00
|
|
|
|
var folderBrowserDialog = new FolderBrowserDialog();
|
2014-04-13 07:38:12 +00:00
|
|
|
|
folderBrowserDialog.SelectedPath = selectedFolder.Path;
|
2015-01-03 07:20:34 +00:00
|
|
|
|
if (folderBrowserDialog.ShowDialog() == DialogResult.OK)
|
2014-04-13 07:38:12 +00:00
|
|
|
|
{
|
2016-03-28 02:09:57 +00:00
|
|
|
|
var link = _settings.FolderLinks.First(x => x.Path == selectedFolder.Path);
|
2014-04-13 07:38:12 +00:00
|
|
|
|
link.Path = folderBrowserDialog.SelectedPath;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
lbxFolders.Items.Refresh();
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
2020-04-21 12:54:41 +00:00
|
|
|
|
string warning = flowlauncherAPI.GetTranslation("flowlauncher_plugin_folder_select_folder_link_warning");
|
2015-01-07 10:59:55 +00:00
|
|
|
|
MessageBox.Show(warning);
|
2014-04-13 07:38:12 +00:00
|
|
|
|
}
|
2015-01-05 14:41:17 +00:00
|
|
|
|
}
|
2014-04-13 07:38:12 +00:00
|
|
|
|
|
2015-01-05 14:41:17 +00:00
|
|
|
|
private void btnAdd_Click(object sender, RoutedEventArgs e)
|
|
|
|
|
|
{
|
2016-01-06 21:34:42 +00:00
|
|
|
|
var folderBrowserDialog = new FolderBrowserDialog();
|
|
|
|
|
|
if (folderBrowserDialog.ShowDialog() == DialogResult.OK)
|
2015-01-05 14:41:17 +00:00
|
|
|
|
{
|
2016-01-06 21:34:42 +00:00
|
|
|
|
var newFolder = new FolderLink
|
2015-01-05 14:41:17 +00:00
|
|
|
|
{
|
|
|
|
|
|
Path = folderBrowserDialog.SelectedPath
|
|
|
|
|
|
};
|
2014-04-13 07:38:12 +00:00
|
|
|
|
|
2016-03-28 02:09:57 +00:00
|
|
|
|
if (_settings.FolderLinks == null)
|
2015-01-05 14:41:17 +00:00
|
|
|
|
{
|
2016-03-28 02:09:57 +00:00
|
|
|
|
_settings.FolderLinks = new List<FolderLink>();
|
2015-01-05 14:41:17 +00:00
|
|
|
|
}
|
2014-04-13 07:38:12 +00:00
|
|
|
|
|
2016-03-28 02:09:57 +00:00
|
|
|
|
_settings.FolderLinks.Add(newFolder);
|
2015-01-05 14:41:17 +00:00
|
|
|
|
}
|
2014-04-13 07:38:12 +00:00
|
|
|
|
|
2015-01-05 14:41:17 +00:00
|
|
|
|
lbxFolders.Items.Refresh();
|
|
|
|
|
|
}
|
2015-01-09 02:23:48 +00:00
|
|
|
|
|
2016-01-06 21:34:42 +00:00
|
|
|
|
private void lbxFolders_Drop(object sender, DragEventArgs e)
|
2015-01-09 02:23:48 +00:00
|
|
|
|
{
|
2016-01-06 21:34:42 +00:00
|
|
|
|
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
|
2015-01-09 02:23:48 +00:00
|
|
|
|
|
|
|
|
|
|
if (files != null && files.Count() > 0)
|
|
|
|
|
|
{
|
2016-03-28 02:09:57 +00:00
|
|
|
|
if (_settings.FolderLinks == null)
|
2015-01-09 02:23:48 +00:00
|
|
|
|
{
|
2016-03-28 02:09:57 +00:00
|
|
|
|
_settings.FolderLinks = new List<FolderLink>();
|
2015-01-09 02:23:48 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
foreach (string s in files)
|
|
|
|
|
|
{
|
2016-01-06 21:34:42 +00:00
|
|
|
|
if (Directory.Exists(s))
|
2015-01-09 02:23:48 +00:00
|
|
|
|
{
|
2016-01-06 21:34:42 +00:00
|
|
|
|
var newFolder = new FolderLink
|
2015-01-09 02:23:48 +00:00
|
|
|
|
{
|
|
|
|
|
|
Path = s
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2016-03-28 02:09:57 +00:00
|
|
|
|
_settings.FolderLinks.Add(newFolder);
|
2015-01-09 02:23:48 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
lbxFolders.Items.Refresh();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2016-01-06 21:34:42 +00:00
|
|
|
|
private void lbxFolders_DragEnter(object sender, DragEventArgs e)
|
2015-01-09 02:23:48 +00:00
|
|
|
|
{
|
2016-01-06 21:34:42 +00:00
|
|
|
|
if (e.Data.GetDataPresent(DataFormats.FileDrop))
|
2015-01-09 02:23:48 +00:00
|
|
|
|
{
|
2016-01-06 21:34:42 +00:00
|
|
|
|
e.Effects = DragDropEffects.Link;
|
2015-01-09 02:23:48 +00:00
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
2016-01-06 21:34:42 +00:00
|
|
|
|
e.Effects = DragDropEffects.None;
|
2015-01-09 02:23:48 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2015-01-05 14:41:17 +00:00
|
|
|
|
}
|
2014-04-13 07:38:12 +00:00
|
|
|
|
}
|