* osrepodbmgr/dlgAdd.cs:

* osrepodbmgr/frmMain.cs:
	* osrepodbmgr.Core/Workers.cs:
	* osrepodbmgr.Eto/frmMain.xeto:
	* osrepodbmgr/gtk-gui/dlgAdd.cs:
	* osrepodbmgr/gtk-gui/gui.stetic:
	* osrepodbmgr.Eto/dlgAdd.xeto.cs:
	* osrepodbmgr.Eto/frmMain.xeto.cs:

	* osrepodbmgr/gtk-gui/osrepodbmgr.frmMain.cs:
	  Added code and UI for listing files in the database.
This commit is contained in:
2017-05-18 16:33:32 +01:00
parent c17ef11819
commit fe10000b3c
12 changed files with 1355 additions and 387 deletions

View File

@@ -1,3 +1,8 @@
2017-05-18 Natalia Portillo <claunia@claunia.com>
* Workers.cs:
2017-05-18 Natalia Portillo <claunia@claunia.com>
* DBOps.cs:

View File

@@ -40,6 +40,7 @@ using Schemas;
using SharpCompress.Compressors.Deflate;
using SharpCompress.Compressors.BZip2;
using SharpCompress.Compressors.LZMA;
using System.Threading;
namespace osrepodbmgr.Core
{
@@ -53,16 +54,20 @@ namespace osrepodbmgr.Core
public delegate void FailedDelegate(string text);
public delegate void FinishedWithoutErrorDelegate();
public delegate void FinishedWithTextDelegate(string text);
public delegate void AddFileDelegate(string filename, string hash, bool known);
public delegate void AddFileForOSDelegate(string filename, string hash, bool known);
public delegate void AddOSDelegate(DBEntry os, bool existsInRepo, string pathInRepo);
public delegate void AddFileDelegate(DBFile file);
public delegate void AddFilesDelegate(List<DBFile> file);
public static event UpdateProgressDelegate UpdateProgress;
public static event UpdateProgress2Delegate UpdateProgress2;
public static event FailedDelegate Failed;
public static event FinishedWithoutErrorDelegate Finished;
public static event FinishedWithTextDelegate FinishedWithText;
public static event AddFileDelegate AddFile;
public static event AddFileForOSDelegate AddFileForOS;
public static event AddOSDelegate AddOS;
public static event AddFileDelegate AddFile;
public static event AddFilesDelegate AddFiles;
static DBCore dbCore;
@@ -537,8 +542,8 @@ namespace osrepodbmgr.Core
if(UpdateProgress != null)
UpdateProgress(null, "Checking files in database", counter, Context.hashes.Count);
if(AddFile != null)
AddFile(kvp.Key, kvp.Value.Sha256, dbCore.DBOps.ExistsFile(kvp.Value.Sha256));
if(AddFileForOS != null)
AddFileForOS(kvp.Key, kvp.Value.Sha256, dbCore.DBOps.ExistsFile(kvp.Value.Sha256));
counter++;
}
@@ -619,11 +624,17 @@ namespace osrepodbmgr.Core
UpdateProgress(null, "Adding files to database", counter, Context.hashes.Count);
if(!dbCore.DBOps.ExistsFile(kvp.Value.Sha256))
dbCore.DBOps.AddFile(new DBFile
{
DBFile file = new DBFile
{
Sha256 = kvp.Value.Sha256, ClamTime = null, Crack = false,
Length = kvp.Value.Length, Virus = null, VirusScanned = null, VirusTotalTime = null
});
Length = kvp.Value.Length, Virus = null, HasVirus = null, VirusTotalTime = null
};
dbCore.DBOps.AddFile(file);
if(AddFile != null)
AddFile(file);
}
counter++;
}
@@ -1235,13 +1246,19 @@ namespace osrepodbmgr.Core
zipCounter = 0;
zipCurrentEntryName = "";
zf.ExtractAll(tmpFolder);
}
catch
{
if(Failed != null)
Failed("Failed extraction");
return;
}
catch(ThreadAbortException)
{
return;
}
catch(Exception ex)
{
if(Debugger.IsAttached)
throw;
if(Failed != null)
Failed(string.Format("Exception {0}\n{1}", ex.Message, ex.InnerException));
}
}
else
{
@@ -1787,5 +1804,42 @@ namespace osrepodbmgr.Core
if(e.EventType == ZipProgressEventType.Saving_Completed && Finished != null)
Finished();
}
public static void GetFilesFromDb()
{
try
{
ulong count = dbCore.DBOps.GetFilesCount();
const ulong page = 2500;
ulong offset = 0;
List<DBFile> files;
while(dbCore.DBOps.GetFiles(out files, offset, page))
{
if(files.Count == 0)
break;
if(UpdateProgress != null)
UpdateProgress(null, string.Format("Loaded file {0} of {1}", offset, count), (long)offset, (long)count);
if(AddFiles != null)
AddFiles(files);
offset += page;
}
if(Finished != null)
Finished();
}
catch(Exception ex)
{
if(Debugger.IsAttached)
throw;
if(Failed != null)
Failed(string.Format("Exception {0}\n{1}", ex.Message, ex.InnerException));
}
}
}
}

View File

@@ -1,3 +1,10 @@
2017-05-18 Natalia Portillo <claunia@claunia.com>
* frmMain.xeto:
* dlgAdd.xeto.cs:
* frmMain.xeto.cs:
2017-05-18 Natalia Portillo <claunia@claunia.com>
* dlgSettings.xeto.cs:

View File

@@ -329,6 +329,7 @@ namespace osrepodbmgr.Eto
Workers.UpdateProgress2 -= UpdateProgress2;
thdHashFiles = null;
lblProgress.Visible = false;
prgProgress.Visible = true;
thdCheckFiles = new Thread(Workers.CheckDbForFiles);
@@ -336,7 +337,7 @@ namespace osrepodbmgr.Eto
Workers.Finished += ChkFilesFinished;
Workers.UpdateProgress += UpdateProgress;
Workers.UpdateProgress2 += UpdateProgress2;
Workers.AddFile += AddFile;
Workers.AddFileForOS += AddFile;
Workers.AddOS += AddOS;
thdCheckFiles.Start();
});
@@ -356,7 +357,7 @@ namespace osrepodbmgr.Eto
Workers.Finished -= ChkFilesFinished;
Workers.UpdateProgress -= UpdateProgress;
Workers.UpdateProgress2 -= UpdateProgress2;
Workers.AddFile -= AddFile;
Workers.AddFileForOS -= AddFile;
Workers.AddOS -= AddOS;
if(thdCheckFiles != null)
thdCheckFiles.Abort();
@@ -379,7 +380,7 @@ namespace osrepodbmgr.Eto
Workers.Finished -= ChkFilesFinished;
Workers.UpdateProgress -= UpdateProgress;
Workers.UpdateProgress2 -= UpdateProgress2;
Workers.AddFile -= AddFile;
Workers.AddFileForOS -= AddFile;
Workers.AddOS -= AddOS;
if(thdCheckFiles != null)
@@ -602,7 +603,7 @@ namespace osrepodbmgr.Eto
{
stopped = true;
Workers.AddFile -= AddFile;
Workers.AddFileForOS -= AddFile;
Workers.AddOS -= AddOS;
Workers.Failed -= AddFilesToDbFailed;
Workers.Failed -= ChkFilesFailed;

View File

@@ -1,34 +1,63 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://schema.picoe.ca/eto.forms" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="365" Width="612">
<StackLayout Orientation="Vertical">
<StackLayoutItem Expand="True" HorizontalAlignment="Stretch">
<GroupBox Text="Operating systems">
<GridView ID="treeOSes" Enabled="False">
</GridView>
</GroupBox>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<Label ID="lblProgress">lblProgress</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<ProgressBar ID="prgProgress" />
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<Label ID="lblProgress2" Visible="False">lblProgress2</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<ProgressBar ID="prgProgress2" Visible="False" />
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Center">
<StackLayout Orientation="Horizontal">
<Button x:Name="btnAdd" Click="OnBtnAddClicked" Visible="False">Add</Button>
<Button x:Name="btnRemove" Click="OnBtnRemoveClicked" Visible="False">Remove</Button>
<Button x:Name="btnStop" Click="OnBtnStopClicked" Visible="False">Stop</Button>
<Button x:Name="btnCompress" Click="OnBtnCompressClicked" Visible="False">Compress to</Button>
<Button x:Name="btnSave" Click="OnBtnSaveClicked" Visible="False">Save As</Button>
<TabControl>
<TabPage Text="Operating systems" ID="tabOSes">
<StackLayout Orientation="Vertical">
<StackLayoutItem Expand="True" HorizontalAlignment="Stretch">
<GridView ID="treeOSes" Enabled="False" />
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<Label ID="lblProgress">lblProgress</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<ProgressBar ID="prgProgress" />
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<Label ID="lblProgress2" Visible="False">lblProgress2</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<ProgressBar ID="prgProgress2" Visible="False" />
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Center">
<StackLayout Orientation="Horizontal">
<Button x:Name="btnAdd" Click="OnBtnAddClicked" Visible="False">Add</Button>
<Button x:Name="btnRemove" Click="OnBtnRemoveClicked" Visible="False">Remove</Button>
<Button x:Name="btnStop" Click="OnBtnStopClicked" Visible="False">Stop</Button>
<Button x:Name="btnCompress" Click="OnBtnCompressClicked" Visible="False">Compress to</Button>
<Button x:Name="btnSave" Click="OnBtnSaveClicked" Visible="False">Save As</Button>
</StackLayout>
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
</StackLayout>
</TabPage>
<TabPage Text="Files" ID="tabFiles">
<StackLayout Orientation="Vertical">
<StackLayoutItem Expand="True" HorizontalAlignment="Stretch">
<GridView ID="treeFiles" Enabled="False" />
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<Label ID="lblProgressFiles1" Visible="False">lblProgress</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<ProgressBar ID="prgProgressFiles1" Visible="False" />
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<Label ID="lblProgressFiles2" Visible="False">lblProgress2</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<ProgressBar ID="prgProgressFiles2" Visible="False" />
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Center">
<StackLayout Orientation="Horizontal">
<Button x:Name="btnStopFiles" Click="OnBtnStopFilesClicked" Visible="False">Stop</Button>
<Button x:Name="btnMarkAsCrack" Click="OnBtnMarkAsCrackClicked" Visible="False">Mark as crack</Button>
<Button x:Name="btnScanWithClamd" Click="OnBtnScanWithClamdClicked" Visible="False">Scan with clamd</Button>
<Button x:Name="btnCheckInVirusTotal" Click="OnBtnCheckInVirusTotalClicked" Visible="False">Check with VirusTotal</Button>
<Button x:Name="btnPopulateFiles" Click="OnBtnPopulateFilesClicked">Populate</Button>
</StackLayout>
</StackLayoutItem>
</StackLayout>
</TabPage>
</TabControl>
<Form.Menu>
<MenuBar>
<ButtonMenuItem Text="&amp;File" ID="mnuFile">

View File

@@ -26,6 +26,7 @@
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Threading;
using Eto.Drawing;
@@ -40,6 +41,8 @@ namespace osrepodbmgr.Eto
Thread thdPopulateOSes;
Thread thdCompressTo;
Thread thdSaveAs;
Thread thdPopulateFiles;
bool populatingFiles;
#region XAML UI elements
#pragma warning disable 0649
@@ -56,10 +59,22 @@ namespace osrepodbmgr.Eto
ButtonMenuItem btnSettings;
ButtonMenuItem btnHelp;
ButtonMenuItem mnuCompress;
GridView treeFiles;
Label lblProgressFiles1;
ProgressBar prgProgressFiles1;
Label lblProgressFiles2;
ProgressBar prgProgressFiles2;
Button btnStopFiles;
Button btnMarkAsCrack;
Button btnScanWithClamd;
Button btnCheckInVirusTotal;
Button btnPopulateFiles;
TabPage tabOSes;
#pragma warning restore 0649
#endregion XAML UI elements
ObservableCollection<DBEntryForEto> lstOSes;
ObservableCollection<DBFile> lstFiles;
public frmMain()
{
@@ -143,6 +158,58 @@ namespace osrepodbmgr.Eto
treeOSes.AllowMultipleSelection = false;
lstFiles = new ObservableCollection<DBFile>();
treeFiles.DataStore = lstFiles;
treeFiles.Columns.Add(new GridColumn
{
DataCell = new TextBoxCell { Binding = Binding.Property<DBFile, string>(r => r.Sha256) },
HeaderText = "SHA256"
});
treeFiles.Columns.Add(new GridColumn
{
DataCell = new TextBoxCell { Binding = Binding.Property<DBFile, long>(r => r.Length).Convert(s => s.ToString()) },
HeaderText = "Length"
});
treeFiles.Columns.Add(new GridColumn
{
DataCell = new CheckBoxCell { Binding = Binding.Property<DBFile, bool?>(r => r.Crack) },
HeaderText = "Crack?"
});
treeFiles.Columns.Add(new GridColumn
{
DataCell = new CheckBoxCell { Binding = Binding.Property<DBFile, bool?>(r => r.HasVirus) },
HeaderText = "Scanned for virus?"
});
treeFiles.Columns.Add(new GridColumn
{
DataCell = new TextBoxCell { Binding = Binding.Property<DBFile, DateTime?>(r => r.ClamTime).Convert(s => s == null ? "Never" : s.Value.ToString()) },
HeaderText = "Last scanned with clamd"
});
treeFiles.Columns.Add(new GridColumn
{
DataCell = new TextBoxCell { Binding = Binding.Property<DBFile, DateTime?>(r => r.VirusTotalTime).Convert(s => s == null ? "Never" : s.Value.ToString()) },
HeaderText = "Last checked on VirusTotal"
});
treeFiles.Columns.Add(new GridColumn
{
DataCell = new TextBoxCell { Binding = Binding.Property<DBFile, string>(r => r.Virus).Convert(s => s ?? "None") },
HeaderText = "Virus"
});
treeFiles.AllowMultipleSelection = false;
treeFiles.CellFormatting += (sender, e) =>
{
if(((DBFile)e.Item).HasVirus.HasValue)
{
e.BackgroundColor = ((DBFile)e.Item).HasVirus.Value ? Colors.Red : Colors.Green;
}
else
e.BackgroundColor = Colors.Yellow;
e.ForegroundColor = Colors.Black;
};
prgProgress.Indeterminate = true;
if(!Context.usableDotNetZip)
@@ -530,5 +597,157 @@ namespace osrepodbmgr.Eto
Context.path = null;
});
}
protected void OnBtnStopFilesClicked(object sender, EventArgs e)
{
if(populatingFiles)
{
Workers.Failed -= LoadFilesFailed;
Workers.Finished -= LoadFilesFinished;
Workers.UpdateProgress -= UpdateFileProgress;
Workers.AddFile -= AddFile;
Workers.AddFiles -= AddFiles;
if(thdPopulateFiles != null)
{
thdPopulateFiles.Abort();
thdPopulateFiles = null;
}
lstFiles.Clear();
btnStopFiles.Visible = false;
btnPopulateFiles.Visible = true;
}
}
protected void OnBtnMarkAsCrackClicked(object sender, EventArgs e)
{
}
protected void OnBtnScanWithClamdClicked(object sender, EventArgs e)
{
}
protected void OnBtnCheckInVirusTotalClicked(object sender, EventArgs e)
{
}
protected void OnBtnPopulateFilesClicked(object sender, EventArgs e)
{
// TODO: Implement
btnMarkAsCrack.Enabled = false;
btnScanWithClamd.Enabled = false;
btnCheckInVirusTotal.Enabled = false;
tabOSes.Enabled = false;
btnStopFiles.Visible = true;
btnPopulateFiles.Visible = false;
lblProgressFiles1.Text = "Loading files from database";
lblProgressFiles1.Visible = true;
lblProgressFiles2.Visible = true;
prgProgressFiles1.Visible = true;
prgProgressFiles2.Visible = true;
prgProgressFiles1.Indeterminate = true;
Workers.Failed += LoadFilesFailed;
Workers.Finished += LoadFilesFinished;
Workers.UpdateProgress += UpdateFileProgress;
Workers.AddFile += AddFile;
Workers.AddFiles += AddFiles;
populatingFiles = true;
thdPopulateFiles = new Thread(Workers.GetFilesFromDb);
thdPopulateFiles.Start();
}
public void UpdateFileProgress(string text, string inner, long current, long maximum)
{
Application.Instance.Invoke(delegate
{
if(!string.IsNullOrWhiteSpace(text) && !string.IsNullOrWhiteSpace(inner))
lblProgressFiles2.Text = string.Format("{0}: {1}", text, inner);
else if(!string.IsNullOrWhiteSpace(inner))
lblProgressFiles2.Text = inner;
else
lblProgressFiles2.Text = text;
if(maximum > 0)
{
prgProgressFiles2.Indeterminate = false;
prgProgressFiles2.MinValue = 0;
prgProgressFiles2.MaxValue = (int)maximum;
prgProgressFiles2.Value = (int)current;
}
else
prgProgressFiles2.Indeterminate = true;
});
}
void AddFile(Core.DBFile file)
{
Application.Instance.Invoke(delegate
{
lstFiles.Add(file);
});
}
void AddFiles(List<DBFile> files)
{
Application.Instance.Invoke(delegate
{
List<DBFile> foo = new List<DBFile>();
foo.AddRange(lstFiles);
foo.AddRange(files);
lstFiles = new ObservableCollection<DBFile>(foo);
});
}
void LoadFilesFailed(string text)
{
Application.Instance.Invoke(delegate
{
MessageBox.Show(string.Format("Error {0} when populating files, exiting...", text), MessageBoxType.Error);
Workers.Failed -= LoadFilesFailed;
Workers.Finished -= LoadFilesFinished;
Workers.UpdateProgress -= UpdateFileProgress;
if(thdPopulateFiles != null)
{
thdPopulateFiles.Abort();
thdPopulateFiles = null;
}
tabOSes.Enabled = true;
lstFiles.Clear();
btnStopFiles.Visible = false;
btnPopulateFiles.Visible = true;
populatingFiles = false;
});
}
void LoadFilesFinished()
{
Application.Instance.Invoke(delegate
{
Workers.Failed -= LoadFilesFailed;
Workers.Finished -= LoadFilesFinished;
Workers.UpdateProgress -= UpdateFileProgress;
if(thdPopulateFiles != null)
{
thdPopulateFiles.Abort();
thdPopulateFiles = null;
}
treeFiles.DataStore = lstFiles;
lblProgressFiles1.Visible = false;
lblProgressFiles2.Visible = false;
prgProgressFiles1.Visible = false;
prgProgressFiles2.Visible = false;
btnMarkAsCrack.Visible = true;
btnScanWithClamd.Visible = true;
btnCheckInVirusTotal.Visible = true;
btnStopFiles.Visible = false;
btnPopulateFiles.Visible = false;
populatingFiles = false;
treeFiles.Enabled = true;
tabOSes.Enabled = true;
});
}
}
}

View File

@@ -1,3 +1,14 @@
2017-05-18 Natalia Portillo <claunia@claunia.com>
* dlgAdd.cs:
* frmMain.cs:
* gtk-gui/dlgAdd.cs:
* gtk-gui/gui.stetic:
* gtk-gui/osrepodbmgr.frmMain.cs:
Added code and UI for listing files in the database.
2017-05-12 Natalia Portillo <claunia@claunia.com>
* frmMain.cs:

View File

@@ -289,7 +289,7 @@ public partial class dlgAdd : Dialog
Workers.Finished += ChkFilesFinished;
Workers.UpdateProgress += UpdateProgress;
Workers.UpdateProgress2 += UpdateProgress2;
Workers.AddFile += AddFile;
Workers.AddFileForOS += AddFile;
Workers.AddOS += AddOS;
thdCheckFiles.Start();
});
@@ -313,7 +313,7 @@ public partial class dlgAdd : Dialog
Workers.Finished -= ChkFilesFinished;
Workers.UpdateProgress -= UpdateProgress;
Workers.UpdateProgress2 -= UpdateProgress2;
Workers.AddFile -= AddFile;
Workers.AddFileForOS -= AddFile;
Workers.AddOS -= AddOS;
if(thdPulseProgress != null)
thdPulseProgress.Abort();
@@ -338,7 +338,7 @@ public partial class dlgAdd : Dialog
Workers.Finished -= ChkFilesFinished;
Workers.UpdateProgress -= UpdateProgress;
Workers.UpdateProgress2 -= UpdateProgress2;
Workers.AddFile -= AddFile;
Workers.AddFileForOS -= AddFile;
Workers.AddOS -= AddOS;
if(thdCheckFiles != null)
@@ -557,7 +557,7 @@ public partial class dlgAdd : Dialog
{
stopped = true;
Workers.AddFile -= AddFile;
Workers.AddFileForOS -= AddFile;
Workers.AddOS -= AddOS;
Workers.Failed -= AddFilesToDbFailed;
Workers.Failed -= ChkFilesFailed;

View File

@@ -26,6 +26,7 @@
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;
using Gtk;
@@ -36,10 +37,13 @@ namespace osrepodbmgr
public partial class frmMain : Window
{
ListStore osView;
ListStore fileView;
Thread thdPulseProgress;
Thread thdPopulateOSes;
Thread thdCompressTo;
Thread thdSaveAs;
Thread thdPopulateFiles;
bool populatingFiles;
public frmMain() :
base(WindowType.Toplevel)
@@ -103,6 +107,36 @@ namespace osrepodbmgr
treeOSes.Selection.Mode = SelectionMode.Single;
CellRendererText hashCell = new CellRendererText();
CellRendererText lengthCell = new CellRendererText();
CellRendererToggle crackCell = new CellRendererToggle();
CellRendererToggle virscanCell = new CellRendererToggle();
CellRendererText clamtimeCell = new CellRendererText();
CellRendererText vtottimeCell = new CellRendererText();
CellRendererText virusCell = new CellRendererText();
TreeViewColumn hashColumn = new TreeViewColumn("SHA256", hashCell, "text", 0, "background", 7, "foreground", 8);
TreeViewColumn lengthColumn = new TreeViewColumn("Length", lengthCell, "text", 1, "background", 7, "foreground", 8);
TreeViewColumn crackColumn = new TreeViewColumn("Crack?", crackCell, "active", 2);
TreeViewColumn virscanColumn = new TreeViewColumn("Scanned for virus?", virscanCell, "active", 3, "inconsistent", 9);
TreeViewColumn clamtimeColumn = new TreeViewColumn("Last scanned with clamd", clamtimeCell, "text", 4, "background", 7, "foreground", 8);
TreeViewColumn vtottimeColumn = new TreeViewColumn("Last checked on VirusTotal", vtottimeCell, "text", 5, "background", 7, "foreground", 8);
TreeViewColumn virusColumn = new TreeViewColumn("Virus", virusCell, "text", 6, "background", 7, "foreground", 8);
fileView = new ListStore(typeof(string), typeof(long), typeof(bool), typeof(bool), typeof(string), typeof(string),
typeof(string), typeof(string), typeof(string), typeof(bool), typeof(bool));
treeFiles.Model = fileView;
treeFiles.AppendColumn(hashColumn);
treeFiles.AppendColumn(lengthColumn);
treeFiles.AppendColumn(crackColumn);
treeFiles.AppendColumn(virscanColumn);
treeFiles.AppendColumn(clamtimeColumn);
treeFiles.AppendColumn(vtottimeColumn);
treeFiles.AppendColumn(virusColumn);
treeFiles.Selection.Mode = SelectionMode.Multiple;
thdPulseProgress = new Thread(() =>
{
while(true)
@@ -127,7 +161,7 @@ namespace osrepodbmgr
Application.Invoke(delegate
{
MessageDialog dlgMsg = new MessageDialog(this, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok,
string.Format("Error {0} when populating OSes file, exiting...", text));
string.Format("Error {0} when populating OSes tree, exiting...", text));
dlgMsg.Run();
dlgMsg.Destroy();
Workers.Failed -= LoadOSesFailed;
@@ -566,5 +600,210 @@ namespace osrepodbmgr
Context.path = null;
});
}
protected void OnBtnStopFilesClicked(object sender, EventArgs e)
{
if(populatingFiles)
{
Workers.Failed -= LoadFilesFailed;
Workers.Finished -= LoadFilesFinished;
Workers.UpdateProgress -= UpdateFileProgress;
Workers.AddFile -= AddFile;
if(thdPulseProgress != null)
{
thdPulseProgress.Abort();
thdPulseProgress = null;
}
if(thdPopulateFiles != null)
{
thdPopulateFiles.Abort();
thdPopulateFiles = null;
}
fileView.Clear();
btnStopFiles.Visible = false;
btnPopulateFiles.Visible = true;
}
}
protected void OnBtnMarkAsCrackClicked(object sender, EventArgs e)
{
}
protected void OnBtnScanWithClamdClicked(object sender, EventArgs e)
{
}
protected void OnBtnCheckInVirusTotalClicked(object sender, EventArgs e)
{
}
protected void OnBtnPopulateFilesClicked(object sender, EventArgs e)
{
// TODO: Implement
btnMarkAsCrack.Sensitive = false;
btnScanWithClamd.Sensitive = false;
btnCheckInVirusTotal.Sensitive = false;
notebook1.GetNthPage(0).Sensitive = false;
btnStopFiles.Visible = true;
btnPopulateFiles.Visible = false;
thdPulseProgress = new Thread(() =>
{
while(true)
{
Application.Invoke(delegate
{
prgProgressFiles1.Pulse();
});
Thread.Sleep(66);
}
});
lblProgressFiles1.Text = "Loading files from database";
lblProgressFiles1.Visible = true;
lblProgressFiles2.Visible = true;
prgProgressFiles1.Visible = true;
prgProgressFiles2.Visible = true;
Workers.Failed += LoadFilesFailed;
Workers.Finished += LoadFilesFinished;
Workers.UpdateProgress += UpdateFileProgress;
Workers.AddFile += AddFile;
Workers.AddFiles += AddFiles;
populatingFiles = true;
thdPulseProgress.Start();
thdPopulateFiles = new Thread(Workers.GetFilesFromDb);
thdPopulateFiles.Start();
}
public void UpdateFileProgress(string text, string inner, long current, long maximum)
{
Application.Invoke(delegate
{
lblProgressFiles2.Text = text;
prgProgressFiles2.Text = inner;
if(maximum > 0)
prgProgressFiles2.Fraction = current / (double)maximum;
else
prgProgressFiles2.Pulse();
});
}
void AddFile(DBFile file)
{
Application.Invoke(delegate
{
if(thdPulseProgress != null)
{
thdPulseProgress.Abort();
thdPulseProgress = null;
}
string color;
if(file.HasVirus.HasValue)
{
color = file.HasVirus.Value ? "red" : "green";
}
else
color = "yellow";
fileView.AppendValues(file.Sha256, file.Length, file.Crack, file.HasVirus.HasValue ? file.HasVirus.Value : false,
file.ClamTime == null ? "Never" : file.ClamTime.Value.ToString(),
file.VirusTotalTime == null ? "Never" : file.VirusTotalTime.Value.ToString(),
file.Virus, color, "black", !file.HasVirus.HasValue);
});
}
void AddFiles(List<DBFile> files)
{
Application.Invoke(delegate
{
if(thdPulseProgress != null)
{
thdPulseProgress.Abort();
thdPulseProgress = null;
}
foreach(DBFile file in files)
{
string color;
if(file.HasVirus.HasValue)
{
color = file.HasVirus.Value ? "red" : "green";
}
else
color = "yellow";
fileView.AppendValues(file.Sha256, file.Length, file.Crack, file.HasVirus.HasValue ? file.HasVirus.Value : false,
file.ClamTime == null ? "Never" : file.ClamTime.Value.ToString(),
file.VirusTotalTime == null ? "Never" : file.VirusTotalTime.Value.ToString(),
file.Virus, color, "black", !file.HasVirus.HasValue);
}
});
}
void LoadFilesFailed(string text)
{
Application.Invoke(delegate
{
MessageDialog dlgMsg = new MessageDialog(this, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok,
string.Format("Error {0} when populating files, exiting...", text));
dlgMsg.Run();
dlgMsg.Destroy();
Workers.Failed -= LoadFilesFailed;
Workers.Finished -= LoadFilesFinished;
Workers.UpdateProgress -= UpdateFileProgress;
if(thdPulseProgress != null)
{
thdPulseProgress.Abort();
thdPulseProgress = null;
}
if(thdPopulateFiles != null)
{
thdPopulateFiles.Abort();
thdPopulateFiles = null;
}
notebook1.GetNthPage(0).Sensitive = true;
fileView.Clear();
btnStopFiles.Visible = false;
btnPopulateFiles.Visible = true;
populatingFiles = false;
});
}
void LoadFilesFinished()
{
Application.Invoke(delegate
{
Workers.Failed -= LoadFilesFailed;
Workers.Finished -= LoadFilesFinished;
Workers.UpdateProgress -= UpdateFileProgress;
if(thdPulseProgress != null)
{
thdPulseProgress.Abort();
thdPulseProgress = null;
}
if(thdPopulateFiles != null)
{
thdPopulateFiles.Abort();
thdPopulateFiles = null;
}
lblProgressFiles1.Visible = false;
lblProgressFiles2.Visible = false;
prgProgressFiles1.Visible = false;
prgProgressFiles2.Visible = false;
btnMarkAsCrack.Visible = true;
btnScanWithClamd.Visible = true;
btnCheckInVirusTotal.Visible = true;
btnStopFiles.Visible = false;
btnPopulateFiles.Visible = false;
populatingFiles = false;
treeFiles.Sensitive = true;
notebook1.GetNthPage(0).Sensitive = true;
});
}
}
}

View File

@@ -671,7 +671,7 @@ public partial class dlgAdd
global::Gtk.ButtonBox.ButtonBoxChild w61 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w60[this.btnDialog]));
w61.Expand = false;
w61.Fill = false;
if ((this.Child != null))
if((this.Child != null))
{
this.Child.ShowAll();
}

View File

@@ -12353,15 +12353,14 @@ QNX/QNX/20090229/source.zip</property>
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
<widget class="Gtk.Frame" id="frame1">
<widget class="Gtk.Notebook" id="notebook1">
<property name="MemberName" />
<property name="ShadowType">None</property>
<property name="CanFocus">True</property>
<property name="CurrentPage">1</property>
<child>
<widget class="Gtk.Alignment" id="GtkAlignment">
<widget class="Gtk.VBox" id="vbox3">
<property name="MemberName" />
<property name="Xalign">0</property>
<property name="Yalign">0</property>
<property name="LeftPadding">12</property>
<property name="Spacing">6</property>
<child>
<widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
<property name="MemberName" />
@@ -12375,17 +12374,456 @@ QNX/QNX/20090229/source.zip</property>
</widget>
</child>
</widget>
<packing>
<property name="Position">0</property>
<property name="AutoSize">True</property>
</packing>
</child>
<child>
<widget class="Gtk.HBox" id="hbox2">
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
<widget class="Gtk.Label" id="lblProgress">
<property name="MemberName" />
<property name="LabelProp" translatable="yes">label1</property>
</widget>
<packing>
<property name="Position">0</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.ProgressBar" id="prgProgress">
<property name="MemberName" />
</widget>
<packing>
<property name="Position">1</property>
<property name="AutoSize">True</property>
</packing>
</child>
</widget>
<packing>
<property name="Position">1</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.HBox" id="hbox3">
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
<widget class="Gtk.Label" id="lblProgress2">
<property name="MemberName" />
<property name="Visible">False</property>
<property name="LabelProp" translatable="yes">label2</property>
</widget>
<packing>
<property name="Position">0</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.ProgressBar" id="prgProgress2">
<property name="MemberName" />
<property name="Visible">False</property>
</widget>
<packing>
<property name="Position">1</property>
<property name="AutoSize">True</property>
</packing>
</child>
</widget>
<packing>
<property name="Position">2</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.HBox" id="hbox1">
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
<widget class="Gtk.Button" id="btnAdd">
<property name="MemberName" />
<property name="Visible">False</property>
<property name="CanFocus">True</property>
<property name="UseStock">True</property>
<property name="Type">StockItem</property>
<property name="StockId">gtk-add</property>
<signal name="Clicked" handler="OnBtnAddClicked" />
<property name="label">gtk-add</property>
</widget>
<packing>
<property name="Position">0</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="btnRemove">
<property name="MemberName" />
<property name="Visible">False</property>
<property name="CanFocus">True</property>
<property name="UseStock">True</property>
<property name="Type">StockItem</property>
<property name="StockId">gtk-remove</property>
<signal name="Clicked" handler="OnBtnRemoveClicked" />
<property name="label">gtk-remove</property>
</widget>
<packing>
<property name="Position">1</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="btnQuit">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="UseStock">True</property>
<property name="Type">StockItem</property>
<property name="StockId">gtk-quit</property>
<signal name="Clicked" handler="OnBtnQuitClicked" />
<property name="label">gtk-quit</property>
</widget>
<packing>
<property name="PackType">End</property>
<property name="Position">2</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="btnSettings">
<property name="MemberName" />
<property name="Visible">False</property>
<property name="CanFocus">True</property>
<property name="Type">TextAndIcon</property>
<property name="Icon">stock:gtk-preferences Menu</property>
<property name="Label" translatable="yes">_Settings</property>
<property name="UseUnderline">True</property>
<signal name="Clicked" handler="OnBtnSettingsClicked" />
</widget>
<packing>
<property name="PackType">End</property>
<property name="Position">3</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="btnHelp">
<property name="MemberName" />
<property name="Visible">False</property>
<property name="CanFocus">True</property>
<property name="UseStock">True</property>
<property name="Type">StockItem</property>
<property name="StockId">gtk-help</property>
<signal name="Clicked" handler="OnBtnHelpClicked" />
<property name="label">gtk-help</property>
</widget>
<packing>
<property name="PackType">End</property>
<property name="Position">4</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="btnSave">
<property name="MemberName" />
<property name="Visible">False</property>
<property name="CanFocus">True</property>
<property name="Type">TextAndIcon</property>
<property name="Icon">stock:gtk-directory Menu</property>
<property name="Label" translatable="yes">Save _As</property>
<property name="UseUnderline">True</property>
<signal name="Clicked" handler="OnBtnSaveClicked" />
</widget>
<packing>
<property name="PackType">End</property>
<property name="Position">5</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="btnCompress">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="Type">TextAndIcon</property>
<property name="Icon">stock:gtk-save Menu</property>
<property name="Label" translatable="yes">Compress to</property>
<property name="UseUnderline">True</property>
<signal name="Clicked" handler="OnBtnCompressClicked" />
</widget>
<packing>
<property name="PackType">End</property>
<property name="Position">6</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="btnStop">
<property name="MemberName" />
<property name="Visible">False</property>
<property name="CanFocus">True</property>
<property name="UseStock">True</property>
<property name="Type">StockItem</property>
<property name="StockId">gtk-stop</property>
<signal name="Clicked" handler="OnBtnStopClicked" />
<property name="label">gtk-stop</property>
</widget>
<packing>
<property name="PackType">End</property>
<property name="Position">7</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
</widget>
<packing>
<property name="Position">3</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
</widget>
</child>
<child>
<widget class="Gtk.Label" id="lblOSes">
<widget class="Gtk.Label" id="label1">
<property name="MemberName" />
<property name="LabelProp" translatable="yes">&lt;b&gt;Operating systems&lt;/b&gt;</property>
<property name="UseMarkup">True</property>
<property name="LabelProp" translatable="yes">Operating systems</property>
</widget>
<packing>
<property name="type">label_item</property>
<property name="type">tab</property>
</packing>
</child>
<child>
<widget class="Gtk.VBox" id="vbox4">
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
<widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow1">
<property name="MemberName" />
<property name="ShadowType">In</property>
<child>
<widget class="Gtk.TreeView" id="treeFiles">
<property name="MemberName" />
<property name="Sensitive">False</property>
<property name="CanFocus">True</property>
<property name="ShowScrollbars">True</property>
</widget>
</child>
</widget>
<packing>
<property name="Position">0</property>
<property name="AutoSize">True</property>
</packing>
</child>
<child>
<widget class="Gtk.HBox" id="hbox4">
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
<widget class="Gtk.Label" id="lblProgressFiles1">
<property name="MemberName" />
<property name="Visible">False</property>
<property name="LabelProp" translatable="yes">label4</property>
</widget>
<packing>
<property name="Position">0</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.ProgressBar" id="prgProgressFiles1">
<property name="MemberName" />
<property name="Visible">False</property>
</widget>
<packing>
<property name="Position">1</property>
<property name="AutoSize">True</property>
</packing>
</child>
</widget>
<packing>
<property name="Position">1</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.HBox" id="hbox5">
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
<widget class="Gtk.Label" id="lblProgressFiles2">
<property name="MemberName" />
<property name="Visible">False</property>
<property name="LabelProp" translatable="yes">label6</property>
</widget>
<packing>
<property name="Position">0</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.ProgressBar" id="prgProgressFiles2">
<property name="MemberName" />
<property name="Visible">False</property>
</widget>
<packing>
<property name="Position">1</property>
<property name="AutoSize">True</property>
</packing>
</child>
</widget>
<packing>
<property name="Position">2</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.HBox" id="hbox6">
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
<widget class="Gtk.Button" id="btnPopulateFiles">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="Type">TextOnly</property>
<property name="Label" translatable="yes">Populate</property>
<property name="UseUnderline">True</property>
<signal name="Clicked" handler="OnBtnPopulateFilesClicked" />
</widget>
<packing>
<property name="PackType">End</property>
<property name="Position">0</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="btnCheckInVirusTotal">
<property name="MemberName" />
<property name="Visible">False</property>
<property name="CanFocus">True</property>
<property name="Type">TextOnly</property>
<property name="Label" translatable="yes">Check with VirusTotal</property>
<property name="UseUnderline">True</property>
<signal name="Clicked" handler="OnBtnCheckInVirusTotalClicked" />
</widget>
<packing>
<property name="PackType">End</property>
<property name="Position">1</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="btnScanWithClamd">
<property name="MemberName" />
<property name="Visible">False</property>
<property name="CanFocus">True</property>
<property name="Type">TextOnly</property>
<property name="Label" translatable="yes">Scan with clamd</property>
<property name="UseUnderline">True</property>
<signal name="Clicked" handler="OnBtnScanWithClamdClicked" />
</widget>
<packing>
<property name="PackType">End</property>
<property name="Position">2</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="btnMarkAsCrack">
<property name="MemberName" />
<property name="Visible">False</property>
<property name="CanFocus">True</property>
<property name="Type">TextOnly</property>
<property name="Label" translatable="yes">Mark as crack</property>
<property name="UseUnderline">True</property>
<signal name="Clicked" handler="OnBtnMarkAsCrackClicked" />
</widget>
<packing>
<property name="PackType">End</property>
<property name="Position">3</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="btnStopFiles">
<property name="MemberName" />
<property name="Visible">False</property>
<property name="CanFocus">True</property>
<property name="UseStock">True</property>
<property name="Type">StockItem</property>
<property name="StockId">gtk-stop</property>
<signal name="Clicked" handler="OnBtnStopFilesClicked" />
<property name="label">gtk-stop</property>
</widget>
<packing>
<property name="PackType">End</property>
<property name="Position">4</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
</widget>
<packing>
<property name="Position">3</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
</widget>
<packing>
<property name="Position">1</property>
</packing>
</child>
<child>
<widget class="Gtk.Label" id="label3">
<property name="MemberName" />
<property name="LabelProp" translatable="yes">Files</property>
</widget>
<packing>
<property name="type">tab</property>
</packing>
</child>
</widget>
@@ -12394,234 +12832,6 @@ QNX/QNX/20090229/source.zip</property>
<property name="AutoSize">True</property>
</packing>
</child>
<child>
<widget class="Gtk.HBox" id="hbox2">
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
<widget class="Gtk.Label" id="lblProgress">
<property name="MemberName" />
<property name="LabelProp" translatable="yes">label1</property>
</widget>
<packing>
<property name="Position">0</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.ProgressBar" id="prgProgress">
<property name="MemberName" />
</widget>
<packing>
<property name="Position">1</property>
<property name="AutoSize">True</property>
</packing>
</child>
</widget>
<packing>
<property name="Position">1</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.HBox" id="hbox3">
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
<widget class="Gtk.Label" id="lblProgress2">
<property name="MemberName" />
<property name="Visible">False</property>
<property name="LabelProp" translatable="yes">label2</property>
</widget>
<packing>
<property name="Position">0</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.ProgressBar" id="prgProgress2">
<property name="MemberName" />
<property name="Visible">False</property>
</widget>
<packing>
<property name="Position">1</property>
<property name="AutoSize">True</property>
</packing>
</child>
</widget>
<packing>
<property name="Position">2</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.HBox" id="hbox1">
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
<widget class="Gtk.Button" id="btnAdd">
<property name="MemberName" />
<property name="Visible">False</property>
<property name="CanFocus">True</property>
<property name="UseStock">True</property>
<property name="Type">StockItem</property>
<property name="StockId">gtk-add</property>
<signal name="Clicked" handler="OnBtnAddClicked" />
<property name="label">gtk-add</property>
</widget>
<packing>
<property name="Position">0</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="btnRemove">
<property name="MemberName" />
<property name="Visible">False</property>
<property name="CanFocus">True</property>
<property name="UseStock">True</property>
<property name="Type">StockItem</property>
<property name="StockId">gtk-remove</property>
<signal name="Clicked" handler="OnBtnRemoveClicked" />
<property name="label">gtk-remove</property>
</widget>
<packing>
<property name="Position">1</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="btnQuit">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="UseStock">True</property>
<property name="Type">StockItem</property>
<property name="StockId">gtk-quit</property>
<signal name="Clicked" handler="OnBtnQuitClicked" />
<property name="label">gtk-quit</property>
</widget>
<packing>
<property name="PackType">End</property>
<property name="Position">2</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="btnSettings">
<property name="MemberName" />
<property name="Visible">False</property>
<property name="CanFocus">True</property>
<property name="Type">TextAndIcon</property>
<property name="Icon">stock:gtk-preferences Menu</property>
<property name="Label" translatable="yes">_Settings</property>
<property name="UseUnderline">True</property>
<signal name="Clicked" handler="OnBtnSettingsClicked" />
</widget>
<packing>
<property name="PackType">End</property>
<property name="Position">3</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="btnHelp">
<property name="MemberName" />
<property name="Visible">False</property>
<property name="CanFocus">True</property>
<property name="UseStock">True</property>
<property name="Type">StockItem</property>
<property name="StockId">gtk-help</property>
<signal name="Clicked" handler="OnBtnHelpClicked" />
<property name="label">gtk-help</property>
</widget>
<packing>
<property name="PackType">End</property>
<property name="Position">4</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="btnSave">
<property name="MemberName" />
<property name="Visible">False</property>
<property name="CanFocus">True</property>
<property name="Type">TextAndIcon</property>
<property name="Icon">stock:gtk-directory Menu</property>
<property name="Label" translatable="yes">Save _As</property>
<property name="UseUnderline">True</property>
<signal name="Clicked" handler="OnBtnSaveClicked" />
</widget>
<packing>
<property name="PackType">End</property>
<property name="Position">5</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="btnCompress">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="Type">TextAndIcon</property>
<property name="Icon">stock:gtk-save Menu</property>
<property name="Label" translatable="yes">Compress to</property>
<property name="UseUnderline">True</property>
<signal name="Clicked" handler="OnBtnCompressClicked" />
</widget>
<packing>
<property name="PackType">End</property>
<property name="Position">6</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Button" id="btnStop">
<property name="MemberName" />
<property name="Visible">False</property>
<property name="CanFocus">True</property>
<property name="UseStock">True</property>
<property name="Type">StockItem</property>
<property name="StockId">gtk-stop</property>
<signal name="Clicked" handler="OnBtnStopClicked" />
<property name="label">gtk-stop</property>
</widget>
<packing>
<property name="PackType">End</property>
<property name="Position">7</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
</widget>
<packing>
<property name="Position">3</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
</widget>
</child>
</widget>

View File

@@ -6,16 +6,14 @@ namespace osrepodbmgr
{
private global::Gtk.VBox vbox2;
private global::Gtk.Frame frame1;
private global::Gtk.Notebook notebook1;
private global::Gtk.Alignment GtkAlignment;
private global::Gtk.VBox vbox3;
private global::Gtk.ScrolledWindow GtkScrolledWindow;
private global::Gtk.TreeView treeOSes;
private global::Gtk.Label lblOSes;
private global::Gtk.HBox hbox2;
private global::Gtk.Label lblProgress;
@@ -46,6 +44,40 @@ namespace osrepodbmgr
private global::Gtk.Button btnStop;
private global::Gtk.Label label1;
private global::Gtk.VBox vbox4;
private global::Gtk.ScrolledWindow GtkScrolledWindow1;
private global::Gtk.TreeView treeFiles;
private global::Gtk.HBox hbox4;
private global::Gtk.Label lblProgressFiles1;
private global::Gtk.ProgressBar prgProgressFiles1;
private global::Gtk.HBox hbox5;
private global::Gtk.Label lblProgressFiles2;
private global::Gtk.ProgressBar prgProgressFiles2;
private global::Gtk.HBox hbox6;
private global::Gtk.Button btnPopulateFiles;
private global::Gtk.Button btnCheckInVirusTotal;
private global::Gtk.Button btnScanWithClamd;
private global::Gtk.Button btnMarkAsCrack;
private global::Gtk.Button btnStopFiles;
private global::Gtk.Label label3;
protected virtual void Build()
{
global::Stetic.Gui.Initialize(this);
@@ -58,14 +90,15 @@ namespace osrepodbmgr
this.vbox2.Name = "vbox2";
this.vbox2.Spacing = 6;
// Container child vbox2.Gtk.Box+BoxChild
this.frame1 = new global::Gtk.Frame();
this.frame1.Name = "frame1";
this.frame1.ShadowType = ((global::Gtk.ShadowType)(0));
// Container child frame1.Gtk.Container+ContainerChild
this.GtkAlignment = new global::Gtk.Alignment(0F, 0F, 1F, 1F);
this.GtkAlignment.Name = "GtkAlignment";
this.GtkAlignment.LeftPadding = ((uint)(12));
// Container child GtkAlignment.Gtk.Container+ContainerChild
this.notebook1 = new global::Gtk.Notebook();
this.notebook1.CanFocus = true;
this.notebook1.Name = "notebook1";
this.notebook1.CurrentPage = 1;
// Container child notebook1.Gtk.Notebook+NotebookChild
this.vbox3 = new global::Gtk.VBox();
this.vbox3.Name = "vbox3";
this.vbox3.Spacing = 6;
// Container child vbox3.Gtk.Box+BoxChild
this.GtkScrolledWindow = new global::Gtk.ScrolledWindow();
this.GtkScrolledWindow.Name = "GtkScrolledWindow";
this.GtkScrolledWindow.ShadowType = ((global::Gtk.ShadowType)(1));
@@ -75,17 +108,10 @@ namespace osrepodbmgr
this.treeOSes.CanFocus = true;
this.treeOSes.Name = "treeOSes";
this.GtkScrolledWindow.Add(this.treeOSes);
this.GtkAlignment.Add(this.GtkScrolledWindow);
this.frame1.Add(this.GtkAlignment);
this.lblOSes = new global::Gtk.Label();
this.lblOSes.Name = "lblOSes";
this.lblOSes.LabelProp = global::Mono.Unix.Catalog.GetString("<b>Operating systems</b>");
this.lblOSes.UseMarkup = true;
this.frame1.LabelWidget = this.lblOSes;
this.vbox2.Add(this.frame1);
global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.frame1]));
w4.Position = 0;
// Container child vbox2.Gtk.Box+BoxChild
this.vbox3.Add(this.GtkScrolledWindow);
global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.GtkScrolledWindow]));
w2.Position = 0;
// Container child vbox3.Gtk.Box+BoxChild
this.hbox2 = new global::Gtk.HBox();
this.hbox2.Name = "hbox2";
this.hbox2.Spacing = 6;
@@ -94,22 +120,22 @@ namespace osrepodbmgr
this.lblProgress.Name = "lblProgress";
this.lblProgress.LabelProp = global::Mono.Unix.Catalog.GetString("label1");
this.hbox2.Add(this.lblProgress);
global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.lblProgress]));
w5.Position = 0;
w5.Expand = false;
w5.Fill = false;
global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.lblProgress]));
w3.Position = 0;
w3.Expand = false;
w3.Fill = false;
// Container child hbox2.Gtk.Box+BoxChild
this.prgProgress = new global::Gtk.ProgressBar();
this.prgProgress.Name = "prgProgress";
this.hbox2.Add(this.prgProgress);
global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.prgProgress]));
w6.Position = 1;
this.vbox2.Add(this.hbox2);
global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox2]));
w7.Position = 1;
w7.Expand = false;
w7.Fill = false;
// Container child vbox2.Gtk.Box+BoxChild
global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.prgProgress]));
w4.Position = 1;
this.vbox3.Add(this.hbox2);
global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.hbox2]));
w5.Position = 1;
w5.Expand = false;
w5.Fill = false;
// Container child vbox3.Gtk.Box+BoxChild
this.hbox3 = new global::Gtk.HBox();
this.hbox3.Name = "hbox3";
this.hbox3.Spacing = 6;
@@ -118,22 +144,22 @@ namespace osrepodbmgr
this.lblProgress2.Name = "lblProgress2";
this.lblProgress2.LabelProp = global::Mono.Unix.Catalog.GetString("label2");
this.hbox3.Add(this.lblProgress2);
global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.lblProgress2]));
w8.Position = 0;
w8.Expand = false;
w8.Fill = false;
global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.lblProgress2]));
w6.Position = 0;
w6.Expand = false;
w6.Fill = false;
// Container child hbox3.Gtk.Box+BoxChild
this.prgProgress2 = new global::Gtk.ProgressBar();
this.prgProgress2.Name = "prgProgress2";
this.hbox3.Add(this.prgProgress2);
global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.prgProgress2]));
w9.Position = 1;
this.vbox2.Add(this.hbox3);
global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox3]));
w10.Position = 2;
w10.Expand = false;
w10.Fill = false;
// Container child vbox2.Gtk.Box+BoxChild
global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.prgProgress2]));
w7.Position = 1;
this.vbox3.Add(this.hbox3);
global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.hbox3]));
w8.Position = 2;
w8.Expand = false;
w8.Fill = false;
// Container child vbox3.Gtk.Box+BoxChild
this.hbox1 = new global::Gtk.HBox();
this.hbox1.Name = "hbox1";
this.hbox1.Spacing = 6;
@@ -145,10 +171,10 @@ namespace osrepodbmgr
this.btnAdd.UseUnderline = true;
this.btnAdd.Label = "gtk-add";
this.hbox1.Add(this.btnAdd);
global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.btnAdd]));
w11.Position = 0;
w11.Expand = false;
w11.Fill = false;
global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.btnAdd]));
w9.Position = 0;
w9.Expand = false;
w9.Fill = false;
// Container child hbox1.Gtk.Box+BoxChild
this.btnRemove = new global::Gtk.Button();
this.btnRemove.CanFocus = true;
@@ -157,10 +183,10 @@ namespace osrepodbmgr
this.btnRemove.UseUnderline = true;
this.btnRemove.Label = "gtk-remove";
this.hbox1.Add(this.btnRemove);
global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.btnRemove]));
w12.Position = 1;
w12.Expand = false;
w12.Fill = false;
global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.btnRemove]));
w10.Position = 1;
w10.Expand = false;
w10.Fill = false;
// Container child hbox1.Gtk.Box+BoxChild
this.btnQuit = new global::Gtk.Button();
this.btnQuit.CanFocus = true;
@@ -169,26 +195,26 @@ namespace osrepodbmgr
this.btnQuit.UseUnderline = true;
this.btnQuit.Label = "gtk-quit";
this.hbox1.Add(this.btnQuit);
global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.btnQuit]));
w13.PackType = ((global::Gtk.PackType)(1));
w13.Position = 2;
w13.Expand = false;
w13.Fill = false;
global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.btnQuit]));
w11.PackType = ((global::Gtk.PackType)(1));
w11.Position = 2;
w11.Expand = false;
w11.Fill = false;
// Container child hbox1.Gtk.Box+BoxChild
this.btnSettings = new global::Gtk.Button();
this.btnSettings.CanFocus = true;
this.btnSettings.Name = "btnSettings";
this.btnSettings.UseUnderline = true;
this.btnSettings.Label = global::Mono.Unix.Catalog.GetString("_Settings");
global::Gtk.Image w14 = new global::Gtk.Image();
w14.Pixbuf = global::Stetic.IconLoader.LoadIcon(this, "gtk-preferences", global::Gtk.IconSize.Menu);
this.btnSettings.Image = w14;
global::Gtk.Image w12 = new global::Gtk.Image();
w12.Pixbuf = global::Stetic.IconLoader.LoadIcon(this, "gtk-preferences", global::Gtk.IconSize.Menu);
this.btnSettings.Image = w12;
this.hbox1.Add(this.btnSettings);
global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.btnSettings]));
w15.PackType = ((global::Gtk.PackType)(1));
w15.Position = 3;
w15.Expand = false;
w15.Fill = false;
global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.btnSettings]));
w13.PackType = ((global::Gtk.PackType)(1));
w13.Position = 3;
w13.Expand = false;
w13.Fill = false;
// Container child hbox1.Gtk.Box+BoxChild
this.btnHelp = new global::Gtk.Button();
this.btnHelp.CanFocus = true;
@@ -197,41 +223,41 @@ namespace osrepodbmgr
this.btnHelp.UseUnderline = true;
this.btnHelp.Label = "gtk-help";
this.hbox1.Add(this.btnHelp);
global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.btnHelp]));
w16.PackType = ((global::Gtk.PackType)(1));
w16.Position = 4;
w16.Expand = false;
w16.Fill = false;
global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.btnHelp]));
w14.PackType = ((global::Gtk.PackType)(1));
w14.Position = 4;
w14.Expand = false;
w14.Fill = false;
// Container child hbox1.Gtk.Box+BoxChild
this.btnSave = new global::Gtk.Button();
this.btnSave.CanFocus = true;
this.btnSave.Name = "btnSave";
this.btnSave.UseUnderline = true;
this.btnSave.Label = global::Mono.Unix.Catalog.GetString("Save _As");
global::Gtk.Image w17 = new global::Gtk.Image();
w17.Pixbuf = global::Stetic.IconLoader.LoadIcon(this, "gtk-directory", global::Gtk.IconSize.Menu);
this.btnSave.Image = w17;
global::Gtk.Image w15 = new global::Gtk.Image();
w15.Pixbuf = global::Stetic.IconLoader.LoadIcon(this, "gtk-directory", global::Gtk.IconSize.Menu);
this.btnSave.Image = w15;
this.hbox1.Add(this.btnSave);
global::Gtk.Box.BoxChild w18 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.btnSave]));
w18.PackType = ((global::Gtk.PackType)(1));
w18.Position = 5;
w18.Expand = false;
w18.Fill = false;
global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.btnSave]));
w16.PackType = ((global::Gtk.PackType)(1));
w16.Position = 5;
w16.Expand = false;
w16.Fill = false;
// Container child hbox1.Gtk.Box+BoxChild
this.btnCompress = new global::Gtk.Button();
this.btnCompress.CanFocus = true;
this.btnCompress.Name = "btnCompress";
this.btnCompress.UseUnderline = true;
this.btnCompress.Label = global::Mono.Unix.Catalog.GetString("Compress to");
global::Gtk.Image w19 = new global::Gtk.Image();
w19.Pixbuf = global::Stetic.IconLoader.LoadIcon(this, "gtk-save", global::Gtk.IconSize.Menu);
this.btnCompress.Image = w19;
global::Gtk.Image w17 = new global::Gtk.Image();
w17.Pixbuf = global::Stetic.IconLoader.LoadIcon(this, "gtk-save", global::Gtk.IconSize.Menu);
this.btnCompress.Image = w17;
this.hbox1.Add(this.btnCompress);
global::Gtk.Box.BoxChild w20 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.btnCompress]));
w20.PackType = ((global::Gtk.PackType)(1));
w20.Position = 6;
w20.Expand = false;
w20.Fill = false;
global::Gtk.Box.BoxChild w18 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.btnCompress]));
w18.PackType = ((global::Gtk.PackType)(1));
w18.Position = 6;
w18.Expand = false;
w18.Fill = false;
// Container child hbox1.Gtk.Box+BoxChild
this.btnStop = new global::Gtk.Button();
this.btnStop.CanFocus = true;
@@ -240,16 +266,170 @@ namespace osrepodbmgr
this.btnStop.UseUnderline = true;
this.btnStop.Label = "gtk-stop";
this.hbox1.Add(this.btnStop);
global::Gtk.Box.BoxChild w21 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.btnStop]));
w21.PackType = ((global::Gtk.PackType)(1));
w21.Position = 7;
w21.Expand = false;
w21.Fill = false;
this.vbox2.Add(this.hbox1);
global::Gtk.Box.BoxChild w22 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox1]));
w22.Position = 3;
w22.Expand = false;
w22.Fill = false;
global::Gtk.Box.BoxChild w19 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.btnStop]));
w19.PackType = ((global::Gtk.PackType)(1));
w19.Position = 7;
w19.Expand = false;
w19.Fill = false;
this.vbox3.Add(this.hbox1);
global::Gtk.Box.BoxChild w20 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.hbox1]));
w20.Position = 3;
w20.Expand = false;
w20.Fill = false;
this.notebook1.Add(this.vbox3);
// Notebook tab
this.label1 = new global::Gtk.Label();
this.label1.Name = "label1";
this.label1.LabelProp = global::Mono.Unix.Catalog.GetString("Operating systems");
this.notebook1.SetTabLabel(this.vbox3, this.label1);
this.label1.ShowAll();
// Container child notebook1.Gtk.Notebook+NotebookChild
this.vbox4 = new global::Gtk.VBox();
this.vbox4.Name = "vbox4";
this.vbox4.Spacing = 6;
// Container child vbox4.Gtk.Box+BoxChild
this.GtkScrolledWindow1 = new global::Gtk.ScrolledWindow();
this.GtkScrolledWindow1.Name = "GtkScrolledWindow1";
this.GtkScrolledWindow1.ShadowType = ((global::Gtk.ShadowType)(1));
// Container child GtkScrolledWindow1.Gtk.Container+ContainerChild
this.treeFiles = new global::Gtk.TreeView();
this.treeFiles.Sensitive = false;
this.treeFiles.CanFocus = true;
this.treeFiles.Name = "treeFiles";
this.GtkScrolledWindow1.Add(this.treeFiles);
this.vbox4.Add(this.GtkScrolledWindow1);
global::Gtk.Box.BoxChild w23 = ((global::Gtk.Box.BoxChild)(this.vbox4[this.GtkScrolledWindow1]));
w23.Position = 0;
// Container child vbox4.Gtk.Box+BoxChild
this.hbox4 = new global::Gtk.HBox();
this.hbox4.Name = "hbox4";
this.hbox4.Spacing = 6;
// Container child hbox4.Gtk.Box+BoxChild
this.lblProgressFiles1 = new global::Gtk.Label();
this.lblProgressFiles1.Name = "lblProgressFiles1";
this.lblProgressFiles1.LabelProp = global::Mono.Unix.Catalog.GetString("label4");
this.hbox4.Add(this.lblProgressFiles1);
global::Gtk.Box.BoxChild w24 = ((global::Gtk.Box.BoxChild)(this.hbox4[this.lblProgressFiles1]));
w24.Position = 0;
w24.Expand = false;
w24.Fill = false;
// Container child hbox4.Gtk.Box+BoxChild
this.prgProgressFiles1 = new global::Gtk.ProgressBar();
this.prgProgressFiles1.Name = "prgProgressFiles1";
this.hbox4.Add(this.prgProgressFiles1);
global::Gtk.Box.BoxChild w25 = ((global::Gtk.Box.BoxChild)(this.hbox4[this.prgProgressFiles1]));
w25.Position = 1;
this.vbox4.Add(this.hbox4);
global::Gtk.Box.BoxChild w26 = ((global::Gtk.Box.BoxChild)(this.vbox4[this.hbox4]));
w26.Position = 1;
w26.Expand = false;
w26.Fill = false;
// Container child vbox4.Gtk.Box+BoxChild
this.hbox5 = new global::Gtk.HBox();
this.hbox5.Name = "hbox5";
this.hbox5.Spacing = 6;
// Container child hbox5.Gtk.Box+BoxChild
this.lblProgressFiles2 = new global::Gtk.Label();
this.lblProgressFiles2.Name = "lblProgressFiles2";
this.lblProgressFiles2.LabelProp = global::Mono.Unix.Catalog.GetString("label6");
this.hbox5.Add(this.lblProgressFiles2);
global::Gtk.Box.BoxChild w27 = ((global::Gtk.Box.BoxChild)(this.hbox5[this.lblProgressFiles2]));
w27.Position = 0;
w27.Expand = false;
w27.Fill = false;
// Container child hbox5.Gtk.Box+BoxChild
this.prgProgressFiles2 = new global::Gtk.ProgressBar();
this.prgProgressFiles2.Name = "prgProgressFiles2";
this.hbox5.Add(this.prgProgressFiles2);
global::Gtk.Box.BoxChild w28 = ((global::Gtk.Box.BoxChild)(this.hbox5[this.prgProgressFiles2]));
w28.Position = 1;
this.vbox4.Add(this.hbox5);
global::Gtk.Box.BoxChild w29 = ((global::Gtk.Box.BoxChild)(this.vbox4[this.hbox5]));
w29.Position = 2;
w29.Expand = false;
w29.Fill = false;
// Container child vbox4.Gtk.Box+BoxChild
this.hbox6 = new global::Gtk.HBox();
this.hbox6.Name = "hbox6";
this.hbox6.Spacing = 6;
// Container child hbox6.Gtk.Box+BoxChild
this.btnPopulateFiles = new global::Gtk.Button();
this.btnPopulateFiles.CanFocus = true;
this.btnPopulateFiles.Name = "btnPopulateFiles";
this.btnPopulateFiles.UseUnderline = true;
this.btnPopulateFiles.Label = global::Mono.Unix.Catalog.GetString("Populate");
this.hbox6.Add(this.btnPopulateFiles);
global::Gtk.Box.BoxChild w30 = ((global::Gtk.Box.BoxChild)(this.hbox6[this.btnPopulateFiles]));
w30.PackType = ((global::Gtk.PackType)(1));
w30.Position = 0;
w30.Expand = false;
w30.Fill = false;
// Container child hbox6.Gtk.Box+BoxChild
this.btnCheckInVirusTotal = new global::Gtk.Button();
this.btnCheckInVirusTotal.CanFocus = true;
this.btnCheckInVirusTotal.Name = "btnCheckInVirusTotal";
this.btnCheckInVirusTotal.UseUnderline = true;
this.btnCheckInVirusTotal.Label = global::Mono.Unix.Catalog.GetString("Check with VirusTotal");
this.hbox6.Add(this.btnCheckInVirusTotal);
global::Gtk.Box.BoxChild w31 = ((global::Gtk.Box.BoxChild)(this.hbox6[this.btnCheckInVirusTotal]));
w31.PackType = ((global::Gtk.PackType)(1));
w31.Position = 1;
w31.Expand = false;
w31.Fill = false;
// Container child hbox6.Gtk.Box+BoxChild
this.btnScanWithClamd = new global::Gtk.Button();
this.btnScanWithClamd.CanFocus = true;
this.btnScanWithClamd.Name = "btnScanWithClamd";
this.btnScanWithClamd.UseUnderline = true;
this.btnScanWithClamd.Label = global::Mono.Unix.Catalog.GetString("Scan with clamd");
this.hbox6.Add(this.btnScanWithClamd);
global::Gtk.Box.BoxChild w32 = ((global::Gtk.Box.BoxChild)(this.hbox6[this.btnScanWithClamd]));
w32.PackType = ((global::Gtk.PackType)(1));
w32.Position = 2;
w32.Expand = false;
w32.Fill = false;
// Container child hbox6.Gtk.Box+BoxChild
this.btnMarkAsCrack = new global::Gtk.Button();
this.btnMarkAsCrack.CanFocus = true;
this.btnMarkAsCrack.Name = "btnMarkAsCrack";
this.btnMarkAsCrack.UseUnderline = true;
this.btnMarkAsCrack.Label = global::Mono.Unix.Catalog.GetString("Mark as crack");
this.hbox6.Add(this.btnMarkAsCrack);
global::Gtk.Box.BoxChild w33 = ((global::Gtk.Box.BoxChild)(this.hbox6[this.btnMarkAsCrack]));
w33.PackType = ((global::Gtk.PackType)(1));
w33.Position = 3;
w33.Expand = false;
w33.Fill = false;
// Container child hbox6.Gtk.Box+BoxChild
this.btnStopFiles = new global::Gtk.Button();
this.btnStopFiles.CanFocus = true;
this.btnStopFiles.Name = "btnStopFiles";
this.btnStopFiles.UseStock = true;
this.btnStopFiles.UseUnderline = true;
this.btnStopFiles.Label = "gtk-stop";
this.hbox6.Add(this.btnStopFiles);
global::Gtk.Box.BoxChild w34 = ((global::Gtk.Box.BoxChild)(this.hbox6[this.btnStopFiles]));
w34.PackType = ((global::Gtk.PackType)(1));
w34.Position = 4;
w34.Expand = false;
w34.Fill = false;
this.vbox4.Add(this.hbox6);
global::Gtk.Box.BoxChild w35 = ((global::Gtk.Box.BoxChild)(this.vbox4[this.hbox6]));
w35.Position = 3;
w35.Expand = false;
w35.Fill = false;
this.notebook1.Add(this.vbox4);
global::Gtk.Notebook.NotebookChild w36 = ((global::Gtk.Notebook.NotebookChild)(this.notebook1[this.vbox4]));
w36.Position = 1;
// Notebook tab
this.label3 = new global::Gtk.Label();
this.label3.Name = "label3";
this.label3.LabelProp = global::Mono.Unix.Catalog.GetString("Files");
this.notebook1.SetTabLabel(this.vbox4, this.label3);
this.label3.ShowAll();
this.vbox2.Add(this.notebook1);
global::Gtk.Box.BoxChild w37 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.notebook1]));
w37.Position = 0;
this.Add(this.vbox2);
if((this.Child != null))
{
@@ -265,6 +445,14 @@ namespace osrepodbmgr
this.btnHelp.Hide();
this.btnSave.Hide();
this.btnStop.Hide();
this.lblProgressFiles1.Hide();
this.prgProgressFiles1.Hide();
this.lblProgressFiles2.Hide();
this.prgProgressFiles2.Hide();
this.btnCheckInVirusTotal.Hide();
this.btnScanWithClamd.Hide();
this.btnMarkAsCrack.Hide();
this.btnStopFiles.Hide();
this.Show();
this.DeleteEvent += new global::Gtk.DeleteEventHandler(this.OnDeleteEvent);
this.btnAdd.Clicked += new global::System.EventHandler(this.OnBtnAddClicked);
@@ -275,6 +463,11 @@ namespace osrepodbmgr
this.btnHelp.Clicked += new global::System.EventHandler(this.OnBtnHelpClicked);
this.btnSettings.Clicked += new global::System.EventHandler(this.OnBtnSettingsClicked);
this.btnQuit.Clicked += new global::System.EventHandler(this.OnBtnQuitClicked);
this.btnStopFiles.Clicked += new global::System.EventHandler(this.OnBtnStopFilesClicked);
this.btnMarkAsCrack.Clicked += new global::System.EventHandler(this.OnBtnMarkAsCrackClicked);
this.btnScanWithClamd.Clicked += new global::System.EventHandler(this.OnBtnScanWithClamdClicked);
this.btnCheckInVirusTotal.Clicked += new global::System.EventHandler(this.OnBtnCheckInVirusTotalClicked);
this.btnPopulateFiles.Clicked += new global::System.EventHandler(this.OnBtnPopulateFilesClicked);
}
}
}