sort-delete #1

Merged
ajohnson merged 8 commits from sort-delete into master 3 years ago

196
Form1.Designer.cs generated

@ -42,6 +42,7 @@ namespace photo_sorter
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.tsi_about = new System.Windows.Forms.ToolStripMenuItem();
this.gbox_preview = new System.Windows.Forms.GroupBox();
this.btn_delete = new System.Windows.Forms.Button();
this.lbl_counter = new System.Windows.Forms.Label();
this.lbl_current_fname = new System.Windows.Forms.Label();
this.btn_next = new System.Windows.Forms.Button();
@ -49,6 +50,14 @@ namespace photo_sorter
this.btn_sort = new System.Windows.Forms.Button();
this.img_preview = new System.Windows.Forms.PictureBox();
this.gbox_info = new System.Windows.Forms.GroupBox();
this.cbox_sort_primary = new System.Windows.Forms.ComboBox();
this.tabctrl_sort_dir = new System.Windows.Forms.TabControl();
this.tab_primesort = new System.Windows.Forms.TabPage();
this.lbox_primary_sortlist = new System.Windows.Forms.ListBox();
this.tab_secondsort = new System.Windows.Forms.TabPage();
this.lbox_secondary_sortlist = new System.Windows.Forms.ListBox();
this.cbox_sort_secondary = new System.Windows.Forms.ComboBox();
this.btn_prerender = new System.Windows.Forms.Button();
this.gbox_photo_type = new System.Windows.Forms.GroupBox();
this.rad_dng = new System.Windows.Forms.RadioButton();
this.rad_png = new System.Windows.Forms.RadioButton();
@ -65,9 +74,7 @@ namespace photo_sorter
this.gbox_copybool = new System.Windows.Forms.GroupBox();
this.rad_sort_move = new System.Windows.Forms.RadioButton();
this.rad_sort_copy = new System.Windows.Forms.RadioButton();
this.tbox_sort_secondary = new System.Windows.Forms.TextBox();
this.lbl_sort_secondary = new System.Windows.Forms.Label();
this.tbox_sort_primary = new System.Windows.Forms.TextBox();
this.lbl_sort_primary = new System.Windows.Forms.Label();
this.status_bar = new System.Windows.Forms.StatusStrip();
this.stat_last_action = new System.Windows.Forms.ToolStripStatusLabel();
@ -76,11 +83,13 @@ namespace photo_sorter
this.pbar = new System.Windows.Forms.ToolStripProgressBar();
this.split_container_main = new System.Windows.Forms.SplitContainer();
this.folderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog();
this.btn_delete = new System.Windows.Forms.Button();
this.menuStrip1.SuspendLayout();
this.gbox_preview.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.img_preview)).BeginInit();
this.gbox_info.SuspendLayout();
this.tabctrl_sort_dir.SuspendLayout();
this.tab_primesort.SuspendLayout();
this.tab_secondsort.SuspendLayout();
this.gbox_photo_type.SuspendLayout();
this.gbox_copybool.SuspendLayout();
this.status_bar.SuspendLayout();
@ -199,6 +208,17 @@ namespace photo_sorter
this.gbox_preview.TabStop = false;
this.gbox_preview.Text = "Preview";
//
// btn_delete
//
this.btn_delete.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.btn_delete.Location = new System.Drawing.Point(528, 13);
this.btn_delete.Name = "btn_delete";
this.btn_delete.Size = new System.Drawing.Size(75, 23);
this.btn_delete.TabIndex = 33;
this.btn_delete.Text = "&Delete (!)";
this.btn_delete.UseVisualStyleBackColor = true;
this.btn_delete.Click += new System.EventHandler(this.btn_delete_Click);
//
// lbl_counter
//
this.lbl_counter.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
@ -225,7 +245,7 @@ namespace photo_sorter
this.btn_next.Location = new System.Drawing.Point(398, 13);
this.btn_next.Name = "btn_next";
this.btn_next.Size = new System.Drawing.Size(75, 23);
this.btn_next.TabIndex = 8;
this.btn_next.TabIndex = 32;
this.btn_next.Text = "&Next >>";
this.btn_next.UseVisualStyleBackColor = true;
this.btn_next.Click += new System.EventHandler(this.btn_next_Click);
@ -236,7 +256,7 @@ namespace photo_sorter
this.btn_prev.Location = new System.Drawing.Point(236, 13);
this.btn_prev.Name = "btn_prev";
this.btn_prev.Size = new System.Drawing.Size(75, 23);
this.btn_prev.TabIndex = 6;
this.btn_prev.TabIndex = 30;
this.btn_prev.Text = "<< &Previous";
this.btn_prev.UseVisualStyleBackColor = true;
this.btn_prev.Click += new System.EventHandler(this.btn_prev_Click);
@ -247,7 +267,7 @@ namespace photo_sorter
this.btn_sort.Location = new System.Drawing.Point(317, 13);
this.btn_sort.Name = "btn_sort";
this.btn_sort.Size = new System.Drawing.Size(75, 23);
this.btn_sort.TabIndex = 7;
this.btn_sort.TabIndex = 31;
this.btn_sort.Text = "&Sort";
this.btn_sort.UseVisualStyleBackColor = true;
this.btn_sort.Click += new System.EventHandler(this.btn_sort_Click);
@ -271,6 +291,10 @@ namespace photo_sorter
this.gbox_info.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.gbox_info.Controls.Add(this.cbox_sort_primary);
this.gbox_info.Controls.Add(this.tabctrl_sort_dir);
this.gbox_info.Controls.Add(this.cbox_sort_secondary);
this.gbox_info.Controls.Add(this.btn_prerender);
this.gbox_info.Controls.Add(this.gbox_photo_type);
this.gbox_info.Controls.Add(this.btn_reload_src);
this.gbox_info.Controls.Add(this.btn_open_src_dir);
@ -280,18 +304,114 @@ namespace photo_sorter
this.gbox_info.Controls.Add(this.tbox_dest_dir);
this.gbox_info.Controls.Add(this.lbl_dest_dir);
this.gbox_info.Controls.Add(this.gbox_copybool);
this.gbox_info.Controls.Add(this.tbox_sort_secondary);
this.gbox_info.Controls.Add(this.lbl_sort_secondary);
this.gbox_info.Controls.Add(this.tbox_sort_primary);
this.gbox_info.Controls.Add(this.lbl_sort_primary);
this.gbox_info.Location = new System.Drawing.Point(3, 3);
this.gbox_info.MinimumSize = new System.Drawing.Size(280, 320);
this.gbox_info.MinimumSize = new System.Drawing.Size(346, 540);
this.gbox_info.Name = "gbox_info";
this.gbox_info.Size = new System.Drawing.Size(354, 540);
this.gbox_info.TabIndex = 2;
this.gbox_info.TabStop = false;
this.gbox_info.Text = "Sorting Info";
//
// cbox_sort_primary
//
this.cbox_sort_primary.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.cbox_sort_primary.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Append;
this.cbox_sort_primary.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
this.cbox_sort_primary.FormattingEnabled = true;
this.cbox_sort_primary.Location = new System.Drawing.Point(5, 81);
this.cbox_sort_primary.Name = "cbox_sort_primary";
this.cbox_sort_primary.Size = new System.Drawing.Size(343, 21);
this.cbox_sort_primary.TabIndex = 2;
this.cbox_sort_primary.Enter += new System.EventHandler(this.cbox_sort_primary_Enter);
this.cbox_sort_primary.Leave += new System.EventHandler(this.cbox_sortfields_Leave);
//
// tabctrl_sort_dir
//
this.tabctrl_sort_dir.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tabctrl_sort_dir.Controls.Add(this.tab_primesort);
this.tabctrl_sort_dir.Controls.Add(this.tab_secondsort);
this.tabctrl_sort_dir.Location = new System.Drawing.Point(6, 246);
this.tabctrl_sort_dir.Name = "tabctrl_sort_dir";
this.tabctrl_sort_dir.SelectedIndex = 0;
this.tabctrl_sort_dir.Size = new System.Drawing.Size(340, 236);
this.tabctrl_sort_dir.TabIndex = 13;
//
// tab_primesort
//
this.tab_primesort.Controls.Add(this.lbox_primary_sortlist);
this.tab_primesort.Location = new System.Drawing.Point(4, 22);
this.tab_primesort.Name = "tab_primesort";
this.tab_primesort.Padding = new System.Windows.Forms.Padding(3);
this.tab_primesort.Size = new System.Drawing.Size(332, 210);
this.tab_primesort.TabIndex = 0;
this.tab_primesort.Text = "Primary Sort Directories";
//
// lbox_primary_sortlist
//
this.lbox_primary_sortlist.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lbox_primary_sortlist.FormattingEnabled = true;
this.lbox_primary_sortlist.Location = new System.Drawing.Point(5, 6);
this.lbox_primary_sortlist.Name = "lbox_primary_sortlist";
this.lbox_primary_sortlist.Size = new System.Drawing.Size(323, 199);
this.lbox_primary_sortlist.TabIndex = 14;
this.lbox_primary_sortlist.DoubleClick += new System.EventHandler(this.lbox_primary_sortlist_SelectItem);
//
// tab_secondsort
//
this.tab_secondsort.Controls.Add(this.lbox_secondary_sortlist);
this.tab_secondsort.Location = new System.Drawing.Point(4, 22);
this.tab_secondsort.Name = "tab_secondsort";
this.tab_secondsort.Padding = new System.Windows.Forms.Padding(3);
this.tab_secondsort.Size = new System.Drawing.Size(332, 210);
this.tab_secondsort.TabIndex = 1;
this.tab_secondsort.Text = "Secondary Sort Directories";
//
// lbox_secondary_sortlist
//
this.lbox_secondary_sortlist.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lbox_secondary_sortlist.FormattingEnabled = true;
this.lbox_secondary_sortlist.Location = new System.Drawing.Point(5, 6);
this.lbox_secondary_sortlist.Name = "lbox_secondary_sortlist";
this.lbox_secondary_sortlist.Size = new System.Drawing.Size(323, 199);
this.lbox_secondary_sortlist.TabIndex = 15;
this.lbox_secondary_sortlist.DoubleClick += new System.EventHandler(this.lbox_secondary_sortlist_SelectItem);
//
// cbox_sort_secondary
//
this.cbox_sort_secondary.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.cbox_sort_secondary.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Append;
this.cbox_sort_secondary.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
this.cbox_sort_secondary.FormattingEnabled = true;
this.cbox_sort_secondary.Location = new System.Drawing.Point(5, 125);
this.cbox_sort_secondary.Name = "cbox_sort_secondary";
this.cbox_sort_secondary.Size = new System.Drawing.Size(343, 21);
this.cbox_sort_secondary.TabIndex = 3;
this.cbox_sort_secondary.Enter += new System.EventHandler(this.cbox_sort_secondary_Enter);
this.cbox_sort_secondary.Leave += new System.EventHandler(this.cbox_sortfields_Leave);
//
// btn_prerender
//
this.btn_prerender.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btn_prerender.Enabled = false;
this.btn_prerender.Location = new System.Drawing.Point(183, 488);
this.btn_prerender.Name = "btn_prerender";
this.btn_prerender.Size = new System.Drawing.Size(75, 23);
this.btn_prerender.TabIndex = 16;
this.btn_prerender.Text = "Pre-R&ender";
this.btn_prerender.UseVisualStyleBackColor = true;
this.btn_prerender.Visible = false;
this.btn_prerender.Click += new System.EventHandler(this.btn_prerender_Click);
//
// gbox_photo_type
//
this.gbox_photo_type.Controls.Add(this.rad_dng);
@ -301,7 +421,7 @@ namespace photo_sorter
this.gbox_photo_type.Controls.Add(this.rad_cr2);
this.gbox_photo_type.Location = new System.Drawing.Point(7, 151);
this.gbox_photo_type.Name = "gbox_photo_type";
this.gbox_photo_type.Size = new System.Drawing.Size(142, 137);
this.gbox_photo_type.Size = new System.Drawing.Size(211, 89);
this.gbox_photo_type.TabIndex = 4;
this.gbox_photo_type.TabStop = false;
this.gbox_photo_type.Text = "File Type";
@ -319,7 +439,7 @@ namespace photo_sorter
// rad_png
//
this.rad_png.AutoSize = true;
this.rad_png.Location = new System.Drawing.Point(6, 111);
this.rad_png.Location = new System.Drawing.Point(156, 42);
this.rad_png.Name = "rad_png";
this.rad_png.Size = new System.Drawing.Size(48, 17);
this.rad_png.TabIndex = 8;
@ -329,7 +449,7 @@ namespace photo_sorter
// rad_jpeg
//
this.rad_jpeg.AutoSize = true;
this.rad_jpeg.Location = new System.Drawing.Point(6, 88);
this.rad_jpeg.Location = new System.Drawing.Point(156, 19);
this.rad_jpeg.Name = "rad_jpeg";
this.rad_jpeg.Size = new System.Drawing.Size(45, 17);
this.rad_jpeg.TabIndex = 7;
@ -365,7 +485,7 @@ namespace photo_sorter
this.btn_reload_src.Location = new System.Drawing.Point(274, 488);
this.btn_reload_src.Name = "btn_reload_src";
this.btn_reload_src.Size = new System.Drawing.Size(75, 23);
this.btn_reload_src.TabIndex = 901;
this.btn_reload_src.TabIndex = 17;
this.btn_reload_src.Text = "&Reload";
this.btn_reload_src.UseVisualStyleBackColor = true;
this.btn_reload_src.Click += new System.EventHandler(this.btn_reload_src_Click);
@ -376,7 +496,7 @@ namespace photo_sorter
this.btn_open_src_dir.Location = new System.Drawing.Point(323, 512);
this.btn_open_src_dir.Name = "btn_open_src_dir";
this.btn_open_src_dir.Size = new System.Drawing.Size(26, 23);
this.btn_open_src_dir.TabIndex = 902;
this.btn_open_src_dir.TabIndex = 18;
this.btn_open_src_dir.Text = "...";
this.btn_open_src_dir.UseVisualStyleBackColor = true;
this.btn_open_src_dir.Click += new System.EventHandler(this.btn_open_src_dir_Click);
@ -466,15 +586,6 @@ namespace photo_sorter
this.rad_sort_copy.Text = "Copy";
this.rad_sort_copy.UseVisualStyleBackColor = true;
//
// tbox_sort_secondary
//
this.tbox_sort_secondary.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tbox_sort_secondary.Location = new System.Drawing.Point(6, 123);
this.tbox_sort_secondary.Name = "tbox_sort_secondary";
this.tbox_sort_secondary.Size = new System.Drawing.Size(342, 20);
this.tbox_sort_secondary.TabIndex = 3;
//
// lbl_sort_secondary
//
this.lbl_sort_secondary.AutoSize = true;
@ -484,15 +595,6 @@ namespace photo_sorter
this.lbl_sort_secondary.TabIndex = 2;
this.lbl_sort_secondary.Text = "Secondary Sort (e.g. Subject Name):";
//
// tbox_sort_primary
//
this.tbox_sort_primary.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tbox_sort_primary.Location = new System.Drawing.Point(6, 79);
this.tbox_sort_primary.Name = "tbox_sort_primary";
this.tbox_sort_primary.Size = new System.Drawing.Size(342, 20);
this.tbox_sort_primary.TabIndex = 2;
//
// lbl_sort_primary
//
this.lbl_sort_primary.AutoSize = true;
@ -553,7 +655,7 @@ namespace photo_sorter
// split_container_main.Panel1
//
this.split_container_main.Panel1.Controls.Add(this.gbox_info);
this.split_container_main.Panel1MinSize = 320;
this.split_container_main.Panel1MinSize = 350;
//
// split_container_main.Panel2
//
@ -563,17 +665,6 @@ namespace photo_sorter
this.split_container_main.SplitterDistance = 360;
this.split_container_main.TabIndex = 4;
//
// btn_delete
//
this.btn_delete.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.btn_delete.Location = new System.Drawing.Point(528, 13);
this.btn_delete.Name = "btn_delete";
this.btn_delete.Size = new System.Drawing.Size(75, 23);
this.btn_delete.TabIndex = 9;
this.btn_delete.Text = "&Delete (!)";
this.btn_delete.UseVisualStyleBackColor = true;
this.btn_delete.Visible = false;
//
// form_main
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -583,10 +674,12 @@ namespace photo_sorter
this.Controls.Add(this.menuStrip1);
this.Controls.Add(this.split_container_main);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.KeyPreview = true;
this.MainMenuStrip = this.menuStrip1;
this.MinimumSize = new System.Drawing.Size(1024, 480);
this.MinimumSize = new System.Drawing.Size(1040, 640);
this.Name = "form_main";
this.Text = "Skyfall Photo Sorter";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout();
this.gbox_preview.ResumeLayout(false);
@ -594,6 +687,9 @@ namespace photo_sorter
((System.ComponentModel.ISupportInitialize)(this.img_preview)).EndInit();
this.gbox_info.ResumeLayout(false);
this.gbox_info.PerformLayout();
this.tabctrl_sort_dir.ResumeLayout(false);
this.tab_primesort.ResumeLayout(false);
this.tab_secondsort.ResumeLayout(false);
this.gbox_photo_type.ResumeLayout(false);
this.gbox_photo_type.PerformLayout();
this.gbox_copybool.ResumeLayout(false);
@ -628,9 +724,7 @@ namespace photo_sorter
private System.Windows.Forms.GroupBox gbox_copybool;
private System.Windows.Forms.RadioButton rad_sort_move;
private System.Windows.Forms.RadioButton rad_sort_copy;
private System.Windows.Forms.TextBox tbox_sort_secondary;
private System.Windows.Forms.Label lbl_sort_secondary;
private System.Windows.Forms.TextBox tbox_sort_primary;
private System.Windows.Forms.Label lbl_sort_primary;
private System.Windows.Forms.StatusStrip status_bar;
private System.Windows.Forms.ToolStripStatusLabel stat_last_action;
@ -658,6 +752,14 @@ namespace photo_sorter
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
private System.Windows.Forms.Button btn_delete;
private System.Windows.Forms.Button btn_prerender;
private System.Windows.Forms.ComboBox cbox_sort_secondary;
private System.Windows.Forms.ListBox lbox_secondary_sortlist;
private System.Windows.Forms.TabControl tabctrl_sort_dir;
private System.Windows.Forms.TabPage tab_primesort;
private System.Windows.Forms.ListBox lbox_primary_sortlist;
private System.Windows.Forms.TabPage tab_secondsort;
private System.Windows.Forms.ComboBox cbox_sort_primary;
}
}

@ -9,6 +9,7 @@ using System.Drawing;
//using System.Text;
//using System.Threading.Tasks;
using System.Windows.Forms;
using System.Collections;//.ArrayList;
using System.IO;
using ImageMagick;
@ -30,7 +31,7 @@ namespace photo_sorter
case "dng":
rad_dng.Checked = true;
break;
case "jpeg":
case "jpg":
rad_jpeg.Checked = true;
break;
case "png":
@ -50,6 +51,10 @@ namespace photo_sorter
{
rad_sort_copy.Checked = true;
}
else
{
rad_sort_move.Checked = true;
}
tbox_dest_dir.Text = Properties.Settings.Default.dest_dir;
tbox_source_dir.Text = Properties.Settings.Default.src_dir;
@ -58,6 +63,14 @@ namespace photo_sorter
btn_reload_src.Enabled = true;
reload_source();
}
if (Properties.Settings.Default.cbi_primary != null)
{
cbox_sort_primary.Items.AddRange(Properties.Settings.Default.cbi_primary.ToArray());
}
if (Properties.Settings.Default.cbi_secondary != null)
{
cbox_sort_secondary.Items.AddRange(Properties.Settings.Default.cbi_secondary.ToArray());
}
}
static class global
@ -66,7 +79,8 @@ namespace photo_sorter
public static string src = Properties.Settings.Default.src_dir;
public static string[] filenames;
public static int filecount;
public static int position = 0;
public static int position = 0; //File position index
public const int cbox_size = 8; //Number of entries allowed in cbox lists
}
public void status_msg(string msg, int lvl = 1)
@ -122,6 +136,38 @@ namespace photo_sorter
}
}
private void populate_directory_lists()
{
//string[] pdir = Directory.GetDirectories(global.dest);
//string[] sdir = Directory.GetDirectories(global.dest + "\\" + cbox_sort_primary.Text);
lbox_primary_sortlist.Items.Clear();
foreach (var d in Directory.GetDirectories(global.dest))
{
var dir = new DirectoryInfo(d).Name;
lbox_primary_sortlist.Items.Add(dir);
}
if (cbox_sort_primary.Text.Length > 0)
{
if (Directory.Exists(global.dest + "\\" + cbox_sort_primary.Text))
{
lbox_secondary_sortlist.Items.Clear();
foreach (var d in Directory.GetDirectories(global.dest + "\\" + cbox_sort_primary.Text))
{
var dir = new DirectoryInfo(d).Name;
lbox_secondary_sortlist.Items.Add(dir);
}
}
lbox_secondary_sortlist.Enabled = true;
}
else
{
lbox_secondary_sortlist.Items.Clear();
lbox_secondary_sortlist.Items.Add("-- Select Primary Sort --");
lbox_secondary_sortlist.Enabled = false;
}
}
private void select_source_dir()
{
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
@ -133,7 +179,7 @@ namespace photo_sorter
if (Properties.Settings.Default.src_dir != global.src)
{
Properties.Settings.Default.src_dir = global.src;
Properties.Settings.Default.Save();
//Properties.Settings.Default.Save();
}
reload_source();
}
@ -148,7 +194,7 @@ namespace photo_sorter
if (Properties.Settings.Default.dest_dir != global.dest)
{
Properties.Settings.Default.dest_dir = global.dest;
Properties.Settings.Default.Save();
//Properties.Settings.Default.Save();
}
status_msg("Destination directory updated");
}
@ -235,6 +281,7 @@ namespace photo_sorter
status_msg("Loaded image: " + lbl_current_fname.Text);
update_counter();
pbar.Value = 0;
populate_directory_lists();
}
public string[] populate_file_names()
@ -251,11 +298,6 @@ namespace photo_sorter
if (rad_png.Checked)
ext = "png";
string[] files = Directory.GetFiles(global.src, "*." + ext);
if (Properties.Settings.Default.img_format != ext)
{
Properties.Settings.Default.img_format = ext;
Properties.Settings.Default.Save();
}
return files;
}
@ -273,52 +315,51 @@ namespace photo_sorter
}
}
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
protected override bool ProcessCmdKey(ref Message msg, Keys key_data)
{
if (tsi_enableGlobalHotkeys.Checked)
{
if (keyData == Keys.Enter)
switch (key_data)
{
sort_image();
return true;
}
if (keyData == Keys.PageUp)
{
if (global.filecount > 1)
prev_image();
return true;
}
if (keyData == Keys.PageDown)
{
if (global.filecount > 1)
next_image();
return true;
}
if (keyData == Keys.Home)
{
if (global.filecount > 1)
{
status_msg("Loading first image...");
global.position = 0;
update_image();
}
return true;
}
if (keyData == Keys.End)
{
if (global.filecount > 1)
{
status_msg("Loading final image...");
global.position = global.filecount - 1;
update_image();
}
return true;
case Keys.PageUp:
if (global.filecount > 1)
prev_image();
return true;
case Keys.PageDown:
if (global.filecount > 1)
next_image();
return true;
case Keys.Control | Keys.Home:
if (global.filecount > 1)
{
status_msg("Loading first image...");
global.position = 0;
update_image();
}
return true;
case Keys.Control | Keys.End:
if (global.filecount > 1)
{
status_msg("Loading final image...");
global.position = global.filecount - 1;
update_image();
}
return true;
case Keys.Enter:
sort_image();
return true;
case Keys.Shift | Keys.Delete:
delete_image();
return true;
case Keys.Shift | Keys.Enter:
delete_image();
return true;
}
}
return base.ProcessCmdKey(ref msg, keyData);
return base.ProcessCmdKey(ref msg, key_data);
}
public void next_image()
public void next_image()
{
status_msg("Loading next image...");
if (global.position < global.filecount - 1)
@ -348,8 +389,8 @@ namespace photo_sorter
public void sort_image()
{
string prim_dir = global.dest + '\\' + tbox_sort_primary.Text;
string sec_dir = prim_dir + '\\' + tbox_sort_secondary.Text;
string prim_dir = global.dest + '\\' + cbox_sort_primary.Text;
string sec_dir = prim_dir + '\\' + cbox_sort_secondary.Text;
string dpath;
if (global.dest == "")
@ -360,14 +401,14 @@ namespace photo_sorter
return;
}
if (tbox_sort_primary.Text == "")
if (cbox_sort_primary.Text == "")
{
status_msg("Primary sort field required to sort!", 3);
//System.Media.SystemSounds.Exclamation.Play();
//MessageBox.Show("Primary sort directory name is required!", "Error: Primary Sort", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (tbox_sort_secondary.Text == "")
if (cbox_sort_secondary.Text == "")
{
dpath = prim_dir;
}
@ -404,7 +445,6 @@ namespace photo_sorter
}
}
File.Move(@src_fname, @dst_fname);
//status_msg("Moved " + lbl_current_fname.Text + " to " + dpath);
status_msg("Moved " + global.filenames[global.position] + " to " + dpath);
remove_index(global.position);
update_image();
@ -414,11 +454,6 @@ namespace photo_sorter
status_msg("Unable to move " + global.filenames[global.position] + " to " + dpath + "!", 4);
MessageBox.Show(ex.ToString(), "Critical: IO Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
if (Properties.Settings.Default.copy_on_sort)
{
Properties.Settings.Default.copy_on_sort = false;
Properties.Settings.Default.Save();
}
}
else
{
@ -448,11 +483,74 @@ namespace photo_sorter
status_msg("Unable to copy " + global.filenames[global.position] + " to " + dpath + "!", 4);
MessageBox.Show(ex.ToString(), "Critical: IO Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
if (!Properties.Settings.Default.copy_on_sort)
// Begin Update comboboxes
if (cbox_sort_primary.Items.Contains(cbox_sort_primary.Text))
{
Properties.Settings.Default.copy_on_sort = true;
Properties.Settings.Default.Save();
//Remove and re-add, to put it at the new end of the list
string t = cbox_sort_primary.Text;
cbox_sort_primary.Items.Remove(t);
cbox_sort_primary.Items.Add(t);
cbox_sort_primary.Text = t;
}
else
{
cbox_sort_primary.Items.Add(cbox_sort_primary.Text);
}
if (cbox_sort_secondary.Text.Length > 0)
{
if (cbox_sort_secondary.Items.Contains(cbox_sort_secondary.Text))
{
//Remove and re-add, to put it at the new end of the list
string t = cbox_sort_secondary.Text;
cbox_sort_secondary.Items.Remove(t);
cbox_sort_secondary.Items.Add(t);
cbox_sort_secondary.Text = t;
}
else
{
cbox_sort_secondary.Items.Add(cbox_sort_secondary.Text);
}
}
//Prune the lists
while (cbox_sort_primary.Items.Count > global.cbox_size)
{
cbox_sort_primary.Items.RemoveAt(0);
}
while (cbox_sort_secondary.Items.Count > global.cbox_size)
{
cbox_sort_secondary.Items.RemoveAt(0);
}
// End combobox updating
}
}
public void delete_image()
{
if (MessageBox.Show("Are you sure you want to delete this photo?", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
string src_fname = global.filenames[global.position];
try
{
File.Delete(src_fname);
status_msg("Deleted file: " + src_fname, 2);
remove_index(global.position);
update_image();
}
catch (IOException ex)
{
status_msg("Unable to delete " + src_fname + "!", 4);
MessageBox.Show(ex.ToString(), "Critical: IO Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
public void prerender_init()
{
if (MessageBox.Show("WARNING: Pre-rendering your photos may take a long time, and the preview image quality will be lower than normal.\n\nWould you like to proceed?", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
MessageBox.Show("Pre-rendering would normally have started, but instead, nothing interesting happens.");
}
else
{
MessageBox.Show("You've chickened out and abandoned the pre-render process. Nothing interesting happens.");
}
}
@ -485,7 +583,7 @@ namespace photo_sorter
private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Photo Sorter v1.0.1\n\nThis application is Copyright \u00A9 Skyfall Tech, 2022-2023.\n\nPlease visit https://www.skyfall.tech/ for more information.");
MessageBox.Show("Photo Sorter v1.0.2\n\nThis application is Copyright \u00A9 Aaron Johnson, 2023.\n\nPlease visit https://www.skyfall.tech/ for more information.");
}
private void btn_open_src_dir_Click(object sender, EventArgs e)
@ -515,7 +613,7 @@ namespace photo_sorter
private void globalHotkeysListToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox .Show("Global Hotkeys\n\nPgUp == Previous image\nPgDn == Next image\nHome == Go to first unsorted image\nEnd == Go to final unsorted image\n\nEnter == Sort photo to current options\n");
MessageBox .Show("Global Hotkeys\n\nPgUp == Previous image\nPgDn == Next image\nCtrl + Home == Go to first unsorted image\nCtrl + End == Go to final unsorted image\n\nEnter == Sort photo to current options\n\nShift + Delete OR Shift + Enter == Delete image\n");
}
private void tsi_enableGlobalHotkeys_Click(object sender, EventArgs e)
@ -527,17 +625,82 @@ namespace photo_sorter
Properties.Settings.Default.Save();
}
private void btn_delete_Click(object sender, EventArgs e)
{
delete_image();
}
/*private void Form1_FormClosing(Object sender, FormClosingEventArgs e)
private void btn_prerender_Click(object sender, EventArgs e)
{
prerender_init();
}
private void cbox_sortfields_Leave(object sender, EventArgs e)
{
populate_directory_lists();
}
private void cbox_sort_primary_Enter(object sender, EventArgs e)
{
populate_directory_lists();
tabctrl_sort_dir.SelectedTab = tabctrl_sort_dir.TabPages["tab_primesort"];
cbox_sort_primary.Focus();
}
private void cbox_sort_secondary_Enter(object sender, EventArgs e)
{
//if (cbox_sort_primary.Text.Length > 0)
//{
populate_directory_lists();
tabctrl_sort_dir.SelectedTab = tabctrl_sort_dir.TabPages["tab_secondsort"];
cbox_sort_secondary.Focus();
//}
}
private void lbox_primary_sortlist_SelectItem(object sender, EventArgs e)
{
cbox_sort_primary.Text = lbox_primary_sortlist.SelectedItem.ToString();
populate_directory_lists();
}
private void lbox_secondary_sortlist_SelectItem(object sender, EventArgs e)
{
cbox_sort_secondary.Text = lbox_secondary_sortlist.SelectedItem.ToString();
}
private void Form1_FormClosing(Object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("Are you sure you want to quit the Photo Sorter application?", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
this.Close();
ArrayList cbi_primary = new ArrayList(this.cbox_sort_primary.Items);
ArrayList cbi_secondary = new ArrayList(this.cbox_sort_secondary.Items);
Properties.Settings.Default.cbi_primary = cbi_primary;
Properties.Settings.Default.cbi_secondary = cbi_secondary;
if (rad_sort_copy.Checked)
{
Properties.Settings.Default.copy_on_sort = true;
}
else
{
Properties.Settings.Default.copy_on_sort = false;
}
string ext = "";
if (rad_nef.Checked)
ext = "nef";
if (rad_cr2.Checked)
ext = "cr2";
if (rad_dng.Checked)
ext = "dng";
if (rad_jpeg.Checked)
ext = "jpg";
if (rad_png.Checked)
ext = "png";
Properties.Settings.Default.img_format = ext;
Properties.Settings.Default.Save();
}
else
{
e.Cancel = true;
}
}*/
}
}
}

@ -82,5 +82,27 @@ namespace photo_sorter.Properties {
this["img_format"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public global::System.Collections.ArrayList cbi_primary {
get {
return ((global::System.Collections.ArrayList)(this["cbi_primary"]));
}
set {
this["cbi_primary"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public global::System.Collections.ArrayList cbi_secondary {
get {
return ((global::System.Collections.ArrayList)(this["cbi_secondary"]));
}
set {
this["cbi_secondary"] = value;
}
}
}
}

@ -17,5 +17,11 @@
<Setting Name="img_format" Type="System.String" Scope="User">
<Value Profile="(Default)">nef</Value>
</Setting>
<Setting Name="cbi_primary" Type="System.Collections.ArrayList" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="cbi_secondary" Type="System.Collections.ArrayList" Scope="User">
<Value Profile="(Default)" />
</Setting>
</Settings>
</SettingsFile>

@ -25,8 +25,8 @@
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>2</ApplicationRevision>
<ApplicationVersion>1.0.1.2</ApplicationVersion>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.2.0</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>

Loading…
Cancel
Save