Re-did the way the FileManager works. No more loading what's already in the data directly to a TreeView, instead only the diff between two profile folder groups will be loaded into that, more or less.
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
@@ -20,6 +20,7 @@ namespace DataOrganizer
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
ScanSelectedFolderGroupButton.Click += ScanSelectedFolderGroupButton_Click;
|
||||
SelectProfileComboBoxMainMenu.SelectedIndexChanged += SelectProfileComboBoxMainMenu_SelectedIndexChanged;
|
||||
SelectFolderGroupComboBoxMainMenu.SelectedIndexChanged += SelectFolderGroupComboBoxMainMenu_SelectedIndexChanged;
|
||||
CompareAgainstProfileComboBox.SelectedIndexChanged += CompareAgainstProfileComboBox_SelectedIndexChanged;
|
||||
@@ -29,6 +30,27 @@ namespace DataOrganizer
|
||||
PopulateProfileComboBox();
|
||||
}
|
||||
|
||||
private void ScanSelectedFolderGroupButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
var folderGroup = GetSelectedFolderGroup();
|
||||
var files = GetAllFilesFromDirectory(new DirectoryInfo(folderGroup.Path));
|
||||
var snapshot = new Snapshot(files, folderGroup);
|
||||
|
||||
foreach (var folder in snapshot.Root.Folders.Values)
|
||||
DiffViewTreeView.Nodes.Add(BuildTreeNode(folder));
|
||||
|
||||
CommitFilesChangesButton.Enabled = true;
|
||||
MoveNewFilesButton.Enabled = true;
|
||||
|
||||
if (ActiveSnapshot.Files.Count == 0) CommitFirstTimeScaneToDatabase(snapshot);
|
||||
}
|
||||
|
||||
private void CommitFirstTimeScaneToDatabase(Snapshot snapshot)
|
||||
{
|
||||
var db = new DB();
|
||||
db.InsertNewFileRecord(snapshot.Files.Values.ToList(), GetSelectedProfile().Id, GetSelectedFolderGroup().Id, GetSelectedFolderGroup().Path);
|
||||
}
|
||||
|
||||
private void CompareButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
var db = new DB();
|
||||
@@ -55,7 +77,7 @@ namespace DataOrganizer
|
||||
{
|
||||
ClearDiffResults();
|
||||
|
||||
CompareButton.Enabled = ScanSelectedFolderGroupButton.Enabled;
|
||||
CompareButton.Enabled = ActiveSnapshot.Files.Count > 0;
|
||||
}
|
||||
|
||||
private void SelectFolderGroupComboBoxMainMenu_SelectedIndexChanged(object sender, EventArgs e)
|
||||
@@ -67,14 +89,21 @@ namespace DataOrganizer
|
||||
|
||||
var files = db.GetFilesForProfileByFolderGroup(GetSelectedProfile().Id, folderGroup.Id);
|
||||
ActiveSnapshot = new Snapshot(files, folderGroup);
|
||||
|
||||
foreach(var orgFolder in ActiveSnapshot.Root.Folders.Values)
|
||||
{
|
||||
FolderGroupTreeView.Nodes.Add(BuildTreeNode(orgFolder));
|
||||
}
|
||||
|
||||
ScanSelectedFolderGroupButton.Enabled = files.Count > 0;
|
||||
//foreach (var orgFolder in ActiveSnapshot.Root.Folders.Values)
|
||||
//{
|
||||
// FolderGroupTreeView.Nodes.Add(BuildTreeNode(orgFolder));
|
||||
//}
|
||||
|
||||
CompareButton.Enabled = files.Count > 0;
|
||||
|
||||
if (CompareAgainstFolderGroupComboBox.FindString(folderGroup.Name) != -1)
|
||||
CompareAgainstFolderGroupComboBox.SelectedIndex = CompareAgainstFolderGroupComboBox.FindString(folderGroup.Name);
|
||||
|
||||
if (files.Count == 0)
|
||||
ScanSelectedFolderGroupButton.Text = "Scan Folder Group";
|
||||
|
||||
SelectedProfileDataLabel.Text = $"Loaded snapshot data for {files.Count} file(s).";
|
||||
}
|
||||
|
||||
private TreeNode BuildTreeNode(Folder folder)
|
||||
@@ -94,6 +123,21 @@ namespace DataOrganizer
|
||||
return node;
|
||||
}
|
||||
|
||||
private List<FileInfo> GetAllFilesFromDirectory(DirectoryInfo directory)
|
||||
{
|
||||
var files = new List<FileInfo>();
|
||||
|
||||
files.AddRange(directory.EnumerateFiles());
|
||||
|
||||
foreach (var dir in directory.EnumerateDirectories())
|
||||
{
|
||||
UpdateStatusLabel($"Scanning Directory {dir.Name}...");
|
||||
files.AddRange(GetAllFilesFromDirectory(dir));
|
||||
}
|
||||
|
||||
return files;
|
||||
}
|
||||
|
||||
private void SelectProfileComboBoxMainMenu_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
ClearForm();
|
||||
@@ -120,7 +164,6 @@ namespace DataOrganizer
|
||||
|
||||
private void ClearForm(bool isFolderGroupChange = false)
|
||||
{
|
||||
FolderGroupTreeView.Nodes.Clear();
|
||||
DiffViewTreeView.Nodes.Clear();
|
||||
if (!isFolderGroupChange)
|
||||
{
|
||||
@@ -128,7 +171,10 @@ namespace DataOrganizer
|
||||
CompareAgainstFolderGroupComboBox.Items.Clear();
|
||||
}
|
||||
CompareButton.Enabled = false;
|
||||
ScanSelectedFolderGroupButton.Enabled = false;
|
||||
|
||||
ScanSelectedFolderGroupButton.Text = "Scan for Changes";
|
||||
MoveNewFilesButton.Enabled = false;
|
||||
CommitFilesChangesButton.Enabled = false;
|
||||
}
|
||||
|
||||
private void ClearDiffResults()
|
||||
@@ -179,7 +225,6 @@ namespace DataOrganizer
|
||||
private DB.FolderGroup GetFolderGroupToCompare()
|
||||
{
|
||||
return GetProfileToCompare().FolderGroups.First(x => x.Name == CompareAgainstFolderGroupComboBox.Text);
|
||||
|
||||
}
|
||||
|
||||
private void ProfilesManageMainMenu_Click(object sender, EventArgs e)
|
||||
@@ -195,5 +240,11 @@ namespace DataOrganizer
|
||||
var form = new NamingConventionManager();
|
||||
form.ShowDialog();
|
||||
}
|
||||
|
||||
private void UpdateStatusLabel(string message)
|
||||
{
|
||||
StatusLabel.Text = message;
|
||||
statusStrip1.Refresh();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user