-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMainWindow.cs
76 lines (62 loc) · 1.91 KB
/
MainWindow.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
using System;
using Gtk;
using DupsBegone;
using System.Reflection;
public partial class MainWindow: Gtk.Window
{
DupFinder dupFinder;
public MainWindow () : base (Gtk.WindowType.Toplevel)
{
Build ();
}
protected void OnDeleteEvent (object sender, DeleteEventArgs a)
{
Application.Quit ();
a.RetVal = true;
}
protected void OnButtonGoStopClicked(object sender, EventArgs e)
{
Console.WriteLine("OnButtonGoStopClicked().");
var rect = this.textviewFoldersToScan.Allocation;
PropertyInfo[] properties = rect.GetType().GetProperties();
var sb = new System.Text.StringBuilder();
foreach (PropertyInfo pi in properties)
{
sb.Append(
string.Format("Name: {0} | Value: {1}\n",
pi.Name,
pi.GetValue(rect, null)
)
);
}
LOG.d(sb);
if ( "Go!".Equals(buttonGoStop.Label) ) {
string[] foldersToScan = textviewFoldersToScan.Buffer.Text.Split('\n');
textviewFoldersToScan.HeightRequest = 5;
vboxRunStatus.Visible = true;
dupFinder = new DupFinder(foldersToScan);
dupFinder.startInBackground();
GLib.Timeout.Add(100, new GLib.TimeoutHandler(update_status));
buttonGoStop.Label = "Stop";
UIQueries window = new UIQueries ();
window.ShowAll();
window.newEmptyFolderFound("foo");
window.newEmptyFolderFound("bar");
} else {
dupFinder.stop();
}
}
public bool update_status ()
{
lblFoldersFoundCount.Text = dupFinder.getFoldersFoundCount().ToString();
// returning true means that the timeout routine should be invoked
// again after the timeout period expires. Returning false would
// terminate the timeout.
if ( dupFinder.PotentialMatchingFoldsToScanCount > 0 ) {
lblPotentialMatchingFoldsCount.Text = dupFinder.PotentialMatchingFoldsFoundCount.ToString();
progressbarPotentialMatchingFolds.Fraction =
(float)dupFinder.PotentialMatchingFoldsScannedCount / dupFinder.PotentialMatchingFoldsToScanCount;
}
return true;
}
}