Remove unneeded files

This commit is contained in:
2018-07-30 22:18:52 +01:00
parent 7f040db5a5
commit 21de1e763c
21 changed files with 0 additions and 4775 deletions

145
ChangeLog
View File

@@ -1,145 +0,0 @@
* packages.config:
* osrepodbmgr.Eto.csproj:
Updated nuget packages.
* dlgAdd.xeto.cs:
* frmMain.xeto.cs:
* dlgMetadata.xeto.cs:
Corrected progress bars when value is outside of int bounds.
* dlgMetadata.xeto:
* dlgMetadata.xeto.cs:
* dlgOpticalDisc.xeto:
* dlgBlockMedia.xeto.cs:
* dlgOpticalDisc.xeto.cs:
Updated DIC and Metadata code.
2017-05-21 Natalia Portillo <claunia@claunia.com>
* dlgAdd.xeto.cs:
* dlgOpticalDisc.xeto.cs:
Corrected some NULL exceptions on GUI.
2017-05-19 Natalia Portillo <claunia@claunia.com>
* frmMain.xeto.cs:
Don't readd delegates every time.
2017-05-19 Natalia Portillo <claunia@claunia.com>
* dlgAdd.xeto:
* frmMain.xeto:
* dlgAdd.xeto.cs:
* frmMain.xeto.cs:
* packages.config:
* dlgSettings.xeto.cs:
Refactor: Format document.
2017-05-19 Natalia Portillo <claunia@claunia.com>
* dlgAdd.xeto.cs:
* frmMain.xeto.cs:
Corrected delegate.
2017-05-19 Natalia Portillo <claunia@claunia.com>
* dlgAdd.xeto:
* frmMain.xeto:
* dlgAdd.xeto.cs:
* frmMain.xeto.cs:
Added status fields.
2017-05-19 Natalia Portillo <claunia@claunia.com>
* dlgAdd.xeto.cs:
* dlgBlockMedia.xeto:
* dlgBlockMedia.xeto.cs:
* dlgOpticalDisc.xeto.cs:
Corrected GUI behaviour.
2017-05-19 Natalia Portillo <claunia@claunia.com>
* dlgAdd.xeto:
* dlgHelp.xeto:
* frmMain.xeto:
* dlgMetadata.xeto:
* dlgSettings.xeto:
* dlgFilesystem.xeto:
Added window titles.
2017-05-19 Natalia Portillo <claunia@claunia.com>
* dlgAdd.xeto.cs:
* frmMain.xeto.cs:
Do not color OS tables. Has no sense to be on the opaque
repo.
2017-05-19 Natalia Portillo <claunia@claunia.com>
* frmMain.xeto:
* frmMain.xeto.cs:
Added code to clean database and repository.
2017-05-19 Natalia Portillo <claunia@claunia.com>
* frmMain.xeto.cs:
Make sure the OnBtnPopulateFilesClicked() is called.
2017-05-19 Natalia Portillo <claunia@claunia.com>
* frmMain.xeto:
* frmMain.xeto.cs:
Added an option to scan all pending files with clamd.
2017-05-19 Natalia Portillo <claunia@claunia.com>
* dlgAdd.xeto.cs:
* frmMain.xeto.cs:
Corrected GUI behaviour.
2017-05-19 Natalia Portillo <claunia@claunia.com>
* frmMain.xeto.cs:
2017-05-19 Natalia Portillo <claunia@claunia.com>
* frmMain.xeto.cs:
Added progress messages to clamd core.
2017-05-19 Natalia Portillo <claunia@claunia.com>
* frmMain.xeto.cs:
* dlgSettings.xeto:
* dlgSettings.xeto.cs:
Added support for VirusTotal.
2017-05-18 Natalia Portillo <claunia@claunia.com>
* frmMain.xeto:
* frmMain.xeto.cs:
* dlgSettings.xeto:
* dlgSettings.xeto.cs:
Added support for clamd scanning.
2017-05-18 Natalia Portillo <claunia@claunia.com>
* dlgAdd.xeto:
* frmMain.xeto:
* dlgAdd.xeto.cs:
* frmMain.xeto.cs:
Added support for marking/unmarking/detecting cracks.
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:
If program files folder does not exist do not try to create
an Uri from null.

View File

@@ -1,53 +0,0 @@
//
// Author:
// Natalia Portillo claunia@claunia.com
//
// Copyright (c) 2017, © Claunia.com
//
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
//
// * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in
// the documentation and/or other materials provided with the distribution.
// * Neither the name of the [ORGANIZATION] nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
using System.Reflection;
// Information about this assembly is defined by the following attributes.
// Change them to the values specific to your project.
[assembly: AssemblyTitle("apprepodbmgr.Eto")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Claunia.com")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("© Claunia.com")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
// The form "{Major}.{Minor}.*" will automatically update the build and revision,
// and "{Major}.{Minor}.{Build}.*" will update just the revision.
[assembly: AssemblyVersion("1.0.*")]
// The following attributes are used to specify the signing key for the assembly,
// if desired. See the Mono documentation for more information about signing.
//[assembly: AssemblyDelaySign(false)]
//[assembly: AssemblyKeyFile("")]

View File

@@ -1,169 +0,0 @@
//
// Author:
// Natalia Portillo claunia@claunia.com
//
// Copyright (c) 2017, © Claunia.com
//
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
//
// * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in
// the documentation and/or other materials provided with the distribution.
// * Neither the name of the [ORGANIZATION] nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
using apprepodbmgr.Core;
using Schemas;
namespace apprepodbmgr.Eto
{
class DBEntryForEto
{
DbEntry _item;
public DBEntryForEto(DbEntry item)
{
_item = item;
}
public long id
{
get { return _item.Id; }
set { }
}
public string developer
{
get { return _item.Developer; }
set { }
}
public string product
{
get { return _item.Product; }
set { }
}
public string version
{
get { return _item.Version; }
set { }
}
public string languages
{
get { return _item.Languages; }
set { }
}
public string architecture
{
get { return _item.Architecture; }
set { }
}
public string targetos
{
get { return _item.TargetOs; }
set { }
}
public string format
{
get { return _item.Format; }
set { }
}
public string description
{
get { return _item.Description; }
set { }
}
public bool oem
{
get { return _item.Oem; }
set { }
}
public bool upgrade
{
get { return _item.Upgrade; }
set { }
}
public bool update
{
get { return _item.Update; }
set { }
}
public bool source
{
get { return _item.Source; }
set { }
}
public bool files
{
get { return _item.Files; }
set { }
}
public bool Installer
{
get { return _item.Installer; }
set { }
}
public byte[] xml
{
get { return _item.Xml; }
set { }
}
public byte[] json
{
get { return _item.Json; }
set { }
}
public string mdid
{
get { return _item.Mdid; }
set { }
}
public DbEntry original
{
get { return _item; }
set { }
}
}
class StringEntry
{
public string str { get; set; }
}
class BarcodeEntry
{
public string code { get; set; }
public BarcodeTypeType type { get; set; }
}
class DiscEntry
{
public string path { get; set; }
public OpticalDiscType disc { get; set; }
}
class DiskEntry
{
public string path { get; set; }
public BlockMediaType disk { get; set; }
}
class TargetOsEntry
{
public string name { get; set; }
public string version { get; set; }
}
}

View File

@@ -1,143 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{E805559F-89AE-47B4-926D-5B63A4F3A123}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>apprepodbmgr.Eto</RootNamespace>
<AssemblyName>apprepodbmgr.Eto</AssemblyName>
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>true</Optimize>
<OutputPath>bin\Release</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="frmMain.xeto.cs">
<DependentUpon>frmMain.xeto</DependentUpon>
</Compile>
<Compile Include="dlgSettings.xeto.cs">
<DependentUpon>dlgSettings.xeto</DependentUpon>
</Compile>
<Compile Include="dlgAdd.xeto.cs">
<DependentUpon>dlgAdd.xeto</DependentUpon>
</Compile>
<Compile Include="dlgMetadata.xeto.cs">
<DependentUpon>dlgMetadata.xeto</DependentUpon>
</Compile>
<Compile Include="dlgFilesystem.xeto.cs">
<DependentUpon>dlgFilesystem.xeto</DependentUpon>
</Compile>
<Compile Include="dlgBlockMedia.xeto.cs">
<DependentUpon>dlgBlockMedia.xeto</DependentUpon>
</Compile>
<Compile Include="dlgOpticalDisc.xeto.cs">
<DependentUpon>dlgOpticalDisc.xeto</DependentUpon>
</Compile>
<Compile Include="WrappersForEto.cs" />
<Compile Include="dlgImportMetadata.xeto.cs">
<DependentUpon>dlgImportMetadata.xeto</DependentUpon>
</Compile>
<Compile Include="pnlDescription.xeto.cs">
<DependentUpon>pnlDescription.xeto</DependentUpon>
</Compile>
<Compile Include="pnlStrings.xeto.cs">
<DependentUpon>pnlStrings.xeto</DependentUpon>
</Compile>
<Compile Include="pnlVersions.xeto.cs">
<DependentUpon>pnlVersions.xeto</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<Reference Include="Claunia.Encoding, Version=1.6.1.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\packages\Claunia.Encoding.1.6.1\lib\portable40-net40+sl5+win8+wp8\Claunia.Encoding.dll</HintPath>
</Reference>
<Reference Include="Eto, Version=2.4.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\packages\Eto.Forms.2.4.1\lib\netstandard1.0\Eto.dll</HintPath>
</Reference>
<Reference Include="Eto.Serialization.Xaml, Version=2.4.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\packages\Eto.Serialization.Xaml.2.4.1\lib\netstandard1.0\Eto.Serialization.Xaml.dll</HintPath>
</Reference>
<Reference Include="libexeinfo, Version=1.0.6649.29678, Culture=neutral, PublicKeyToken=null">
<HintPath>..\packages\libexeinfo.0.5.0\lib\net46\libexeinfo.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed">
<HintPath>..\packages\Newtonsoft.Json.11.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="Portable.Xaml, Version=0.21.0.0, Culture=neutral, PublicKeyToken=ba4456acace7dab7">
<HintPath>..\packages\Portable.Xaml.0.21.0\lib\netstandard1.0\Portable.Xaml.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.Primitives, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>..\packages\System.ComponentModel.Primitives.4.3.0\lib\net45\System.ComponentModel.Primitives.dll</HintPath>
</Reference>
<Reference Include="System.ComponentModel.TypeConverter, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>..\packages\System.ComponentModel.TypeConverter.4.3.0\lib\net45\System.ComponentModel.TypeConverter.dll</HintPath>
</Reference>
<Reference Include="System.Net.Http, Version=4.1.1.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>..\packages\System.Net.Http.4.3.2\lib\net46\System.Net.Http.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
</Reference>
<Reference Include="System.Security.Cryptography.Algorithms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net46\System.Security.Cryptography.Algorithms.dll</HintPath>
</Reference>
<Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath>
</Reference>
<Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
</Reference>
<Reference Include="System.Security.Cryptography.X509Certificates, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net46\System.Security.Cryptography.X509Certificates.dll</HintPath>
</Reference>
<Reference Include="System.ValueTuple, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51">
<HintPath>..\packages\System.ValueTuple.4.4.0\lib\netstandard1.0\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="frmMain.xeto" />
<EmbeddedResource Include="dlgSettings.xeto" />
<EmbeddedResource Include="dlgAdd.xeto" />
<EmbeddedResource Include="dlgMetadata.xeto" />
<EmbeddedResource Include="dlgFilesystem.xeto" />
<EmbeddedResource Include="dlgBlockMedia.xeto" />
<EmbeddedResource Include="dlgOpticalDisc.xeto" />
<EmbeddedResource Include="dlgImportMetadata.xeto" />
<EmbeddedResource Include="pnlDescription.xeto" />
<EmbeddedResource Include="pnlStrings.xeto" />
<EmbeddedResource Include="pnlVersions.xeto" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\apprepodbmgr.Core\apprepodbmgr.Core.csproj">
<Project>{076D5C4D-9601-4164-B979-0DABACB56BB8}</Project>
<Name>apprepodbmgr.Core</Name>
</ProjectReference>
<ProjectReference Include="..\DiscImageChef\DiscImageChef.Metadata\DiscImageChef.Metadata.csproj">
<Project>{9F213318-5CB8-4066-A757-074489C9F818}</Project>
<Name>DiscImageChef.Metadata</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\Eto.Forms.2.4.1\build\Eto.Forms.targets" Condition="Exists('..\packages\Eto.Forms.2.4.1\build\Eto.Forms.targets')" />
<Import Project="..\packages\Eto.Serialization.Xaml.2.4.1\build\Eto.Serialization.Xaml.targets" Condition="Exists('..\packages\Eto.Serialization.Xaml.2.4.1\build\Eto.Serialization.Xaml.targets')" />
<Import Project="..\packages\NETStandard.Library.2.0.1\build\NETStandard.Library.targets" Condition="Exists('..\packages\NETStandard.Library.2.0.1\build\NETStandard.Library.targets')" />
</Project>

View File

@@ -1,159 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Dialog xmlns="http://schema.picoe.ca/eto.forms" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="544" Width="857" Closing="OnDeleteEvent" Resizable="True" Title="Add application">
<StackLayout Orientation="Vertical">
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<Label>Developer</Label>
<StackLayoutItem Expand="True" HorizontalAlignment="Stretch">
<TextBox ID="txtDeveloper" />
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<Label>Product</Label>
<StackLayoutItem Expand="True">
<TextBox ID="txtProduct" />
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<Label>Version</Label>
<StackLayoutItem Expand="True">
<TextBox ID="txtVersion" />
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<Label>Languages</Label>
<StackLayoutItem Expand="True">
<TextBox ID="txtLanguages" />
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<Label>Architecture</Label>
<StackLayoutItem Expand="True">
<TextBox ID="txtArchitecture" />
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<Label>Target OS</Label>
<StackLayoutItem Expand="True">
<TextBox ID="txtTargetOs" />
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<Label>Format</Label>
<StackLayoutItem Expand="True">
<TextBox ID="txtFormat" />
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<Label>Description</Label>
<StackLayoutItem Expand="True">
<TextArea ID="txtDescription" />
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<StackLayoutItem Expand="True" HorizontalAlignment="Left">
<CheckBox ID="chkOem">oem</CheckBox>
</StackLayoutItem>
<StackLayoutItem Expand="True" HorizontalAlignment="Right">
<CheckBox ID="chkUpdate">update</CheckBox>
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<StackLayoutItem Expand="True" HorizontalAlignment="Left">
<CheckBox ID="chkUpgrade">upgrade</CheckBox>
</StackLayoutItem>
<StackLayoutItem Expand="True" HorizontalAlignment="Right">
<CheckBox ID="chkFiles">files</CheckBox>
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<StackLayoutItem Expand="True" HorizontalAlignment="Left">
<CheckBox ID="chkSource">source</CheckBox>
</StackLayoutItem>
<StackLayoutItem Expand="True" HorizontalAlignment="Right">
<CheckBox ID="chkInstaller">installer</CheckBox>
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem Expand="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<StackLayoutItem Expand="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<TabControl>
<TabPage Text="Files">
<GridView ID="treeFiles" SelectionChanged="treeFilesSelectionChanged" />
</TabPage>
<TabPage Text="Applications" ID="tabApps" Visible="False">
<GridView ID="treeApps" />
</TabPage>
</TabControl>
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Center">
<Label ID="lblStatus" Visible="False">lblStatus</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<Label ID="lblProgress" Visible="False">Progress</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<ProgressBar ID="prgProgress" Visible="False" />
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<Label ID="lblProgress2" Visible="False">Progress2</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<ProgressBar ID="prgProgress2" Visible="False" />
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Center">
<StackLayout Orientation="Horizontal">
<StackLayoutItem HorizontalAlignment="Left">
<Button ID="btnRemoveFile" Click="OnBtnRemoveFileClicked" Visible="False">Remove</Button>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Left">
<Button ID="btnToggleCrack" Click="OnBtnToggleCrackClicked" Visible="False">Mark as crack</Button>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Left">
<Button ID="btnMetadata" Click="OnBtnMetadataClicked" Visible="False">Metadata</Button>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Left">
<Button ID="btnStop" Click="OnBtnStopClicked" Visible="False">Stop</Button>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Left">
<Button ID="btnFolder" Click="OnBtnFolderClicked">Open folder</Button>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Left">
<Button ID="btnArchive" Click="OnBtnArchiveClicked">Open archive</Button>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Left">
<Button ID="btnPack" Click="OnBtnPackClicked" Visible="False">Add to repository...</Button>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Left">
<Button ID="btnClose" Click="OnBtnCloseClicked" Visible="False">Close</Button>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Left">
<Button ID="btnExit" Click="OnBtnExitClicked">OK</Button>
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
</StackLayout>
</Dialog>

File diff suppressed because it is too large Load Diff

View File

@@ -1,145 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Dialog xmlns="http://schema.picoe.ca/eto.forms" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Edit filesystem metadata">
<StackLayout Orientation="Vertical">
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<Label>Filesystem type</Label>
<StackLayoutItem Expand="True">
<TextBox ID="txtType" />
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<StackLayoutItem Expand="True">
<TextBox ID="txtFiles" />
</StackLayoutItem>
<Label>files</Label>
<CheckBox ID="chkBootable" ThreeState="False">Bootable</CheckBox>
<CheckBox ID="chkDirty" ThreeState="False">Dirty</CheckBox>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<NumericUpDown ID="spClusterSize" MaxValue="1048576" />
<Label>bytes per cluster</Label>
<StackLayoutItem Expand="True">
<TextBox ID="txtClusters" />
</StackLayoutItem>
<Label>clusters</Label>
<StackLayoutItem Expand="True">
<TextBox ID="txtFreeClusters" />
</StackLayoutItem>
<Label>free clusters</Label>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<CheckBox ID="chkCreationDate" ThreeState="False" CheckedChanged="OnChkCreationDateToggled">Creation date</CheckBox>
<StackLayoutItem Expand="True">
<DateTimePicker ID="cldCreationDate" Mode="DateTime" Enabled="False" />
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<CheckBox ID="chkModificationDate" ThreeState="False" CheckedChanged="OnChkModificationDateToggled">Modification date</CheckBox>
<StackLayoutItem Expand="True">
<DateTimePicker ID="cldModificationDate" Mode="DateTime" Enabled="False" />
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<CheckBox ID="chkEffectiveDate" ThreeState="False" CheckedChanged="OnChkEffectiveDateToggled">Effective date</CheckBox>
<StackLayoutItem Expand="True">
<DateTimePicker ID="cldEffectiveDate" Mode="DateTime" Enabled="False" />
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<CheckBox ID="chkExpirationDate" ThreeState="False" CheckedChanged="OnChkExpirationDateToggled">Expiration date</CheckBox>
<StackLayoutItem Expand="True">
<DateTimePicker ID="cldExpirationDate" Mode="DateTime" Enabled="False" />
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<CheckBox ID="chkBackupDate" ThreeState="False" CheckedChanged="OnChkBackupDateToggled">Last backup date</CheckBox>
<StackLayoutItem Expand="True">
<DateTimePicker ID="cldBackupDate" Mode="DateTime" Enabled="False" />
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<Label>Volume label</Label>
<StackLayoutItem Expand="True">
<TextBox ID="txtLabel" />
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<Label>Volume serial</Label>
<StackLayoutItem Expand="True">
<TextBox ID="txtSerial" />
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch" Expand="True">
<GroupBox Text="ISO9660 information">
<StackLayout Orientation="Vertical">
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<Label>System identifier</Label>
<StackLayoutItem Expand="True">
<TextBox ID="txtSysId" />
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<Label>Volume identifier</Label>
<StackLayoutItem Expand="True">
<TextBox ID="txtVolId" />
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<Label>Publisher identifier</Label>
<StackLayoutItem Expand="True">
<TextBox ID="txtPubId" />
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<Label>Data preparer identifier</Label>
<StackLayoutItem Expand="True">
<TextBox ID="txtDataId" />
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<Label>Application identifier</Label>
<StackLayoutItem Expand="True">
<TextBox ID="txtAppId" />
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
</StackLayout>
</GroupBox>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Center">
<StackLayout Orientation="Horizontal">
<Button ID="btnCancel" Click="OnBtnCancelClicked">Cancel</Button>
<Button ID="btnSave" Click="OnBtnSaveClicked">Save</Button>
</StackLayout>
</StackLayoutItem>
</StackLayout>
</Dialog>

View File

@@ -1,245 +0,0 @@
//
// Author:
// Natalia Portillo claunia@claunia.com
//
// Copyright (c) 2017, © Claunia.com
//
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
//
// * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in
// the documentation and/or other materials provided with the distribution.
// * Neither the name of the [ORGANIZATION] nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
using System;
using Eto.Forms;
using Eto.Serialization.Xaml;
using Schemas;
namespace apprepodbmgr.Eto
{
public class dlgFilesystem : Dialog
{
public FileSystemType Metadata;
public bool Modified;
public dlgFilesystem()
{
XamlReader.Load(this);
Modified = false;
}
public void FillFields()
{
if(Metadata == null) return;
if(Metadata.Type != null) txtType.Text = Metadata.Type;
if(Metadata.CreationDateSpecified)
{
chkCreationDate.Checked = true;
cldCreationDate.Enabled = true;
cldCreationDate.Value = Metadata.CreationDate;
}
if(Metadata.ModificationDateSpecified)
{
chkModificationDate.Checked = true;
cldModificationDate.Enabled = true;
cldModificationDate.Value = Metadata.ModificationDate;
}
if(Metadata.BackupDateSpecified)
{
chkBackupDate.Checked = true;
cldBackupDate.Enabled = true;
cldBackupDate.Value = Metadata.BackupDate;
}
spClusterSize.Value = Metadata.ClusterSize;
txtClusters.Text = Metadata.Clusters.ToString();
if(Metadata.FilesSpecified) txtFiles.Text = Metadata.Files.ToString();
chkBootable.Checked = Metadata.Bootable;
if(Metadata.VolumeSerial != null) txtSerial.Text = Metadata.VolumeSerial;
if(Metadata.VolumeName != null) txtLabel.Text = Metadata.VolumeName;
if(Metadata.FreeClustersSpecified) txtFreeClusters.Text = Metadata.FreeClusters.ToString();
chkDirty.Checked = Metadata.Dirty;
if(Metadata.ExpirationDateSpecified)
{
chkExpirationDate.Checked = true;
cldExpirationDate.Enabled = true;
cldExpirationDate.Value = Metadata.ExpirationDate;
}
if(Metadata.EffectiveDateSpecified)
{
chkEffectiveDate.Checked = true;
cldEffectiveDate.Enabled = true;
cldEffectiveDate.Value = Metadata.EffectiveDate;
}
if(Metadata.SystemIdentifier != null) txtSysId.Text = Metadata.SystemIdentifier;
if(Metadata.VolumeSetIdentifier != null) txtVolId.Text = Metadata.VolumeSetIdentifier;
if(Metadata.PublisherIdentifier != null) txtPubId.Text = Metadata.PublisherIdentifier;
if(Metadata.DataPreparerIdentifier != null) txtDataId.Text = Metadata.DataPreparerIdentifier;
if(Metadata.ApplicationIdentifier != null) txtAppId.Text = Metadata.ApplicationIdentifier;
}
protected void OnChkCreationDateToggled(object sender, EventArgs e)
{
cldCreationDate.Enabled = chkCreationDate.Checked.Value;
}
protected void OnChkModificationDateToggled(object sender, EventArgs e)
{
cldModificationDate.Enabled = chkModificationDate.Checked.Value;
}
protected void OnChkEffectiveDateToggled(object sender, EventArgs e)
{
cldEffectiveDate.Enabled = chkEffectiveDate.Checked.Value;
}
protected void OnChkExpirationDateToggled(object sender, EventArgs e)
{
cldExpirationDate.Enabled = chkExpirationDate.Checked.Value;
}
protected void OnChkBackupDateToggled(object sender, EventArgs e)
{
cldBackupDate.Enabled = chkBackupDate.Checked.Value;
}
protected void OnBtnCancelClicked(object sender, EventArgs e)
{
Modified = false;
Close();
}
protected void OnBtnSaveClicked(object sender, EventArgs e)
{
if(string.IsNullOrWhiteSpace(txtType.Text))
MessageBox.Show("Filesystem type cannot be empty", MessageBoxType.Error);
if(spClusterSize.Value < 1) MessageBox.Show("Clusters must be bigger than 0 bytes", MessageBoxType.Error);
if(!long.TryParse(txtClusters.Text, out long temp))
MessageBox.Show("Clusters must be a number", MessageBoxType.Error);
if(temp < 1) MessageBox.Show("Filesystem must have more than 0 clusters", MessageBoxType.Error);
if(!string.IsNullOrWhiteSpace(txtFiles.Text) && !long.TryParse(txtFiles.Text, out temp))
MessageBox.Show("Files must be a number, or empty for unknown", MessageBoxType.Error);
if(!string.IsNullOrWhiteSpace(txtFiles.Text) && temp < 0)
MessageBox.Show("Files must be positive", MessageBoxType.Error);
if(!string.IsNullOrWhiteSpace(txtFreeClusters.Text) && !long.TryParse(txtFreeClusters.Text, out temp))
MessageBox.Show("Free clusters must be a number or empty for unknown", MessageBoxType.Error);
if(!string.IsNullOrWhiteSpace(txtFreeClusters.Text) && temp < 0)
MessageBox.Show("Free clusters must be positive", MessageBoxType.Error);
Metadata = new FileSystemType {Type = txtType.Text};
if(chkCreationDate.Checked.Value)
{
Metadata.CreationDateSpecified = true;
Metadata.CreationDate = cldCreationDate.Value.Value;
}
if(chkModificationDate.Checked.Value)
{
Metadata.ModificationDateSpecified = true;
Metadata.ModificationDate = cldModificationDate.Value.Value;
}
if(chkBackupDate.Checked.Value)
{
Metadata.BackupDateSpecified = true;
Metadata.BackupDate = cldBackupDate.Value.Value;
}
Metadata.ClusterSize = (int)spClusterSize.Value;
Metadata.Clusters = long.Parse(txtClusters.Text);
if(!string.IsNullOrWhiteSpace(txtFiles.Text))
{
Metadata.FilesSpecified = true;
Metadata.Files = long.Parse(txtFiles.Text);
}
Metadata.Bootable = chkBootable.Checked.Value;
if(!string.IsNullOrWhiteSpace(txtSerial.Text)) Metadata.VolumeSerial = txtSerial.Text;
if(!string.IsNullOrWhiteSpace(txtLabel.Text)) Metadata.VolumeName = txtLabel.Text;
if(!string.IsNullOrWhiteSpace(txtFreeClusters.Text))
{
Metadata.FreeClustersSpecified = true;
Metadata.FreeClusters = long.Parse(txtFreeClusters.Text);
}
Metadata.Dirty = chkDirty.Checked.Value;
if(chkExpirationDate.Checked.Value)
{
Metadata.ExpirationDateSpecified = true;
Metadata.ExpirationDate = cldExpirationDate.Value.Value;
}
if(chkEffectiveDate.Checked.Value)
{
Metadata.EffectiveDateSpecified = true;
Metadata.EffectiveDate = cldEffectiveDate.Value.Value;
}
if(!string.IsNullOrWhiteSpace(txtSysId.Text)) Metadata.SystemIdentifier = txtSysId.Text;
if(!string.IsNullOrWhiteSpace(txtVolId.Text)) Metadata.VolumeSetIdentifier = txtVolId.Text;
if(!string.IsNullOrWhiteSpace(txtPubId.Text)) Metadata.PublisherIdentifier = txtPubId.Text;
if(!string.IsNullOrWhiteSpace(txtDataId.Text)) Metadata.DataPreparerIdentifier = txtDataId.Text;
if(!string.IsNullOrWhiteSpace(txtAppId.Text)) Metadata.ApplicationIdentifier = txtAppId.Text;
Modified = true;
Close();
}
#region XAML UI elements
#pragma warning disable 0649
TextBox txtType;
TextBox txtFiles;
CheckBox chkBootable;
CheckBox chkDirty;
NumericUpDown spClusterSize;
TextBox txtClusters;
TextBox txtFreeClusters;
CheckBox chkCreationDate;
DateTimePicker cldCreationDate;
CheckBox chkModificationDate;
DateTimePicker cldModificationDate;
CheckBox chkEffectiveDate;
DateTimePicker cldEffectiveDate;
CheckBox chkExpirationDate;
DateTimePicker cldExpirationDate;
CheckBox chkBackupDate;
DateTimePicker cldBackupDate;
TextBox txtLabel;
TextBox txtSerial;
TextBox txtSysId;
TextBox txtVolId;
TextBox txtPubId;
TextBox txtDataId;
TextBox txtAppId;
#pragma warning restore 0649
#endregion XAML UI elements
}
}

View File

@@ -1,27 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Dialog xmlns="http://schema.picoe.ca/eto.forms" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="544" Width="857" Resizable="True" Title="Import metadata">
<StackLayout Orientation="Vertical">
<StackLayoutItem HorizontalAlignment="Center">
<Label ID="lblPanelName">Panel name goes here</Label>
</StackLayoutItem>
<StackLayoutItem Expand="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Panel ID="pnlPanel" />
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<ProgressBar ID="prgProgress"/>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Right">
<StackLayout Orientation="Horizontal">
<StackLayoutItem HorizontalAlignment="Right">
<Button ID="btnCancel" Click="OnBtnCancelClick">Cancel</Button>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Right">
<Button ID="btnPrevious" Click="OnBtnPreviousClick">Previous</Button>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Right">
<Button ID="btnNext" Click="OnBtnNextClick">Next</Button>
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
</StackLayout>
</Dialog>

View File

@@ -1,421 +0,0 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using apprepodbmgr.Core;
using Eto.Forms;
using Eto.Serialization.Xaml;
using libexeinfo;
using Schemas;
namespace apprepodbmgr.Eto
{
public class dlgImportMetadata : Dialog
{
List<string> architectures;
internal bool canceled;
internal List<ArchitecturesTypeArchitecture> chosenArchitectures;
internal List<TargetOsEntry> chosenOses;
Panels currentPanel;
internal string description;
internal string developer;
Panels maximumPanel;
Panels minimumPanel;
List<TargetOsEntry> operatingSystems;
pnlDescription panelDescription;
pnlStrings panelStrings;
pnlVersions panelVersions;
internal string product;
internal string publisher;
List<string> strings;
internal string version;
List<string> versions;
public dlgImportMetadata()
{
XamlReader.Load(this);
Topmost = true;
canceled = true;
AbortButton = btnCancel;
DefaultButton = btnNext;
DisplayMode = DialogDisplayMode.Attached;
panelDescription = new pnlDescription();
panelStrings = new pnlStrings();
panelVersions = new pnlVersions();
strings = new List<string>();
architectures = new List<string>();
operatingSystems = new List<TargetOsEntry>();
versions = new List<string>();
chosenArchitectures = new List<ArchitecturesTypeArchitecture>();
chosenOses = new List<TargetOsEntry>();
LoadComplete += OnLoadComplete;
// TODO: Show relative path only
panelDescription.treeFiles.DataStore = Context.Readmes;
//pnlPanel.Content = panelDescription;
//pnlPanel.Content = panelStrings;
//pnlPanel.Content = panelVersions;
minimumPanel = Context.Readmes?.Count > 0 ? Panels.Description : Panels.Strings;
maximumPanel = Context.Readmes?.Count > 0 ? Panels.Description : Panels.Strings;
}
// TODO: Icons
void OnLoadComplete(object sender, EventArgs eventArgs)
{
if(Context.Executables?.Count > 0)
{
lblPanelName.Text = "Please wait while reading executables found";
prgProgress.MaxValue = Context.Executables.Count;
prgProgress.MinValue = 0;
prgProgress.Value = 0;
foreach(string file in Context.Executables)
{
FileStream exeStream = new FileStream(file, FileMode.Open, FileAccess.Read);
MZ mzExe = new MZ(exeStream);
NE neExe = new NE(exeStream);
AtariST stExe = new AtariST(exeStream);
LX lxExe = new LX(exeStream);
COFF coffExe = new COFF(exeStream);
PE peExe = new PE(exeStream);
Geos geosExe = new Geos(exeStream);
ELF elfExe = new ELF(exeStream);
IExecutable recognizedExe;
if(neExe.Recognized) recognizedExe = neExe;
else if(lxExe.Recognized) recognizedExe = lxExe;
else if(peExe.Recognized) recognizedExe = peExe;
else if(mzExe.Recognized) recognizedExe = mzExe;
else if(coffExe.Recognized) recognizedExe = coffExe;
else if(stExe.Recognized) recognizedExe = stExe;
else if(elfExe.Recognized) recognizedExe = elfExe;
else if(geosExe.Recognized) recognizedExe = geosExe;
else
{
exeStream.Close();
continue;
}
if(recognizedExe.Strings != null) strings.AddRange(recognizedExe.Strings);
foreach(Architecture exeArch in recognizedExe.Architectures)
{
ArchitecturesTypeArchitecture? arch = ExeArchToSchemaArch(exeArch);
if(arch.HasValue && !architectures.Contains($"{arch.Value}"))
architectures.Add($"{arch.Value}");
}
operatingSystems.Add(new TargetOsEntry
{
name = recognizedExe.RequiredOperatingSystem.Name,
version =
$"{recognizedExe.RequiredOperatingSystem.MajorVersion}.{recognizedExe.RequiredOperatingSystem.MinorVersion}"
});
switch(recognizedExe)
{
case NE _:
if(neExe.Versions != null)
foreach(NE.Version exeVersion in neExe.Versions)
{
versions.Add(exeVersion.FileVersion);
versions.Add(exeVersion.ProductVersion);
version = exeVersion.ProductVersion;
foreach(KeyValuePair<string, Dictionary<string, string>> kvp in exeVersion
.StringsByLanguage)
{
if(kvp.Value.TryGetValue("CompanyName", out string tmpValue))
developer = tmpValue;
if(kvp.Value.TryGetValue("ProductName", out string tmpValue2))
product = tmpValue2;
}
}
break;
case PE _:
if(peExe.Versions != null)
foreach(PE.Version exeVersion in peExe.Versions)
{
versions.Add(exeVersion.FileVersion);
versions.Add(exeVersion.ProductVersion);
version = exeVersion.ProductVersion;
foreach(KeyValuePair<string, Dictionary<string, string>> kvp in exeVersion
.StringsByLanguage)
{
if(kvp.Value.TryGetValue("CompanyName", out string tmpValue))
developer = tmpValue;
if(kvp.Value.TryGetValue("ProductName", out string tmpValue2))
product = tmpValue2;
}
}
break;
case LX _:
if(lxExe.WinVersion != null)
{
versions.Add(lxExe.WinVersion.FileVersion);
versions.Add(lxExe.WinVersion.ProductVersion);
version = lxExe.WinVersion.ProductVersion;
foreach(KeyValuePair<string, Dictionary<string, string>> kvp in lxExe
.WinVersion
.StringsByLanguage)
{
if(kvp.Value.TryGetValue("CompanyName", out string tmpValue)) developer = tmpValue;
if(kvp.Value.TryGetValue("ProductName", out string tmpValue2)) product = tmpValue2;
}
}
break;
}
exeStream.Close();
prgProgress.Value++;
}
strings = strings.Distinct().ToList();
strings.Sort();
if(strings.Count == 0 && minimumPanel == Panels.Strings) minimumPanel = Panels.Versions;
else maximumPanel = Panels.Strings;
panelStrings.treeStrings.DataStore = strings;
versions = versions.Distinct().ToList();
versions.Sort();
panelVersions.treeVersions.DataStore = versions;
architectures = architectures.Distinct().ToList();
architectures.Sort();
panelVersions.treeArchs.DataStore = architectures;
Dictionary<string, List<string>> osEntriesDictionary = new Dictionary<string, List<string>>();
foreach(TargetOsEntry osEntry in operatingSystems)
{
if(string.IsNullOrEmpty(osEntry.name)) continue;
osEntriesDictionary.TryGetValue(osEntry.name, out List<string> osvers);
if(osvers == null) osvers = new List<string>();
osvers.Add(osEntry.version);
osEntriesDictionary.Remove(osEntry.name);
osEntriesDictionary.Add(osEntry.name, osvers);
}
operatingSystems = new List<TargetOsEntry>();
foreach(KeyValuePair<string, List<string>> kvp in osEntriesDictionary.OrderBy(t => t.Key))
{
kvp.Value.Sort();
foreach(string s in kvp.Value.Distinct())
operatingSystems.Add(new TargetOsEntry {name = kvp.Key, version = s});
}
panelVersions.treeOs.DataStore = operatingSystems;
if(versions.Count > 0 || architectures.Count > 0 || operatingSystems.Count > 0)
maximumPanel = Panels.Versions;
}
prgProgress.Visible = false;
btnPrevious.Enabled = false;
switch(minimumPanel)
{
case Panels.Description:
pnlPanel.Content = panelDescription;
currentPanel = Panels.Description;
break;
case Panels.Strings:
pnlPanel.Content = panelStrings;
currentPanel = Panels.Strings;
break;
case Panels.Versions:
pnlPanel.Content = panelVersions;
currentPanel = Panels.Versions;
break;
}
if(currentPanel == maximumPanel) btnNext.Text = "Finish";
lblPanelName.Visible = false;
}
static ArchitecturesTypeArchitecture? ExeArchToSchemaArch(Architecture arch)
{
switch(arch)
{
case Architecture.Aarch64: return ArchitecturesTypeArchitecture.aarch64;
case Architecture.Alpha: return ArchitecturesTypeArchitecture.axp;
case Architecture.Amd64: return ArchitecturesTypeArchitecture.amd64;
case Architecture.Arm: return ArchitecturesTypeArchitecture.arm;
case Architecture.Avr: return ArchitecturesTypeArchitecture.avr;
case Architecture.Avr32: return ArchitecturesTypeArchitecture.avr32;
case Architecture.Clipper: return ArchitecturesTypeArchitecture.clipper;
case Architecture.Hobbit: return ArchitecturesTypeArchitecture.hobbit;
case Architecture.I286: return ArchitecturesTypeArchitecture.i86;
case Architecture.I386: return ArchitecturesTypeArchitecture.ia32;
case Architecture.I8051: return ArchitecturesTypeArchitecture.Item8051;
case Architecture.I86: return ArchitecturesTypeArchitecture.i86;
case Architecture.I860: return ArchitecturesTypeArchitecture.i860;
case Architecture.I960: return ArchitecturesTypeArchitecture.i960;
case Architecture.IA64: return ArchitecturesTypeArchitecture.ia64;
case Architecture.M68HC05: return ArchitecturesTypeArchitecture.m6805;
case Architecture.M68K: return ArchitecturesTypeArchitecture.m68k;
case Architecture.M88K: return ArchitecturesTypeArchitecture.m88k;
case Architecture.Mips: return ArchitecturesTypeArchitecture.mips32;
case Architecture.Mips16: return ArchitecturesTypeArchitecture.mips32;
case Architecture.Mips3: return ArchitecturesTypeArchitecture.mips64;
case Architecture.NIOS2: return ArchitecturesTypeArchitecture.nios2;
case Architecture.OpenRisc: return ArchitecturesTypeArchitecture.openrisc;
case Architecture.PaRisc: return ArchitecturesTypeArchitecture.parisc;
case Architecture.Pdp10: return ArchitecturesTypeArchitecture.pdp10;
case Architecture.Pdp11: return ArchitecturesTypeArchitecture.pdp11;
case Architecture.Power: return ArchitecturesTypeArchitecture.power;
case Architecture.PowerPc: return ArchitecturesTypeArchitecture.ppc;
case Architecture.PowerPc64: return ArchitecturesTypeArchitecture.ppc64;
case Architecture.Prism: return ArchitecturesTypeArchitecture.prism;
case Architecture.RiscV: return ArchitecturesTypeArchitecture.riscv;
case Architecture.S370: return ArchitecturesTypeArchitecture.s360;
case Architecture.S390: return ArchitecturesTypeArchitecture.esa390;
case Architecture.Sh2: return ArchitecturesTypeArchitecture.sh2;
case Architecture.Sh3: return ArchitecturesTypeArchitecture.sh3;
case Architecture.Sh4: return ArchitecturesTypeArchitecture.sh4;
case Architecture.Sh5: return ArchitecturesTypeArchitecture.sh5;
case Architecture.Sparc: return ArchitecturesTypeArchitecture.sparc;
case Architecture.Sparc64: return ArchitecturesTypeArchitecture.sparc64;
case Architecture.Thumb: return ArchitecturesTypeArchitecture.arm;
case Architecture.Thumb2: return ArchitecturesTypeArchitecture.arm;
case Architecture.Vax: return ArchitecturesTypeArchitecture.vax;
case Architecture.We32000: return ArchitecturesTypeArchitecture.we32000;
case Architecture.Z80: return ArchitecturesTypeArchitecture.z80;
default: return null;
}
}
void OnBtnCancelClick(object sender, EventArgs eventArgs)
{
canceled = true;
Close();
// throw new NotImplementedException();
}
void OnBtnPreviousClick(object sender, EventArgs eventArgs)
{
switch(currentPanel)
{
case Panels.Description:
// Ok...
break;
case Panels.Strings:
if(minimumPanel == Panels.Strings) return;
pnlPanel.Content = panelDescription;
currentPanel = Panels.Description;
btnPrevious.Enabled = currentPanel != minimumPanel;
break;
case Panels.Versions:
if(minimumPanel == Panels.Versions) return;
pnlPanel.Content = panelStrings;
currentPanel = Panels.Strings;
btnPrevious.Enabled = currentPanel != minimumPanel;
break;
}
if(currentPanel != maximumPanel) btnNext.Text = "Next";
}
void OnBtnNextClick(object sender, EventArgs eventArgs)
{
if(currentPanel != maximumPanel)
{
switch(currentPanel)
{
case Panels.Description:
if(maximumPanel == Panels.Description) return;
pnlPanel.Content = panelStrings;
currentPanel = Panels.Strings;
btnPrevious.Enabled = currentPanel != minimumPanel;
break;
case Panels.Strings:
if(maximumPanel == Panels.Strings) return;
pnlPanel.Content = panelVersions;
currentPanel = Panels.Versions;
btnPrevious.Enabled = currentPanel != minimumPanel;
break;
case Panels.Versions:
if(minimumPanel == Panels.Versions) return;
pnlPanel.Content = panelStrings;
currentPanel = Panels.Strings;
btnPrevious.Enabled = currentPanel != minimumPanel;
break;
}
if(currentPanel == maximumPanel) btnNext.Text = "Finish";
return;
}
if(Context.Readmes?.Count > 0 && !string.IsNullOrWhiteSpace(panelDescription.description))
description = panelDescription.description;
if(!(Context.Executables?.Count > 0)) return;
if(!string.IsNullOrWhiteSpace(panelStrings.txtDeveloper.Text)) developer = panelStrings.txtDeveloper.Text;
if(!string.IsNullOrWhiteSpace(panelStrings.txtPublisher.Text)) publisher = panelStrings.txtPublisher.Text;
if(!string.IsNullOrWhiteSpace(panelStrings.txtProduct.Text)) product = panelStrings.txtProduct.Text;
if(!string.IsNullOrWhiteSpace(panelStrings.txtVersion.Text)) version = panelStrings.txtVersion.Text;
foreach(object archsSelectedItem in panelVersions.treeArchs.SelectedItems)
{
if(!(archsSelectedItem is string arch)) continue;
if(Enum.TryParse(arch, true, out ArchitecturesTypeArchitecture realArch))
chosenArchitectures.Add(realArch);
}
foreach(object osesSelectedItem in panelVersions.treeOs.SelectedItems)
{
if(!(osesSelectedItem is TargetOsEntry os)) continue;
chosenOses.Add(os);
}
if(panelVersions.treeVersions.SelectedItem is string chosenVersion) version = chosenVersion;
canceled = false;
Close();
}
enum Panels
{
Description,
Strings,
Versions
}
#region XAML UI elements
#pragma warning disable 0649
Label lblPanelName;
Panel pnlPanel;
ProgressBar prgProgress;
Button btnCancel;
Button btnPrevious;
Button btnNext;
#pragma warning restore 0649
#endregion XAML UI elements
}
}

View File

@@ -1,145 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Dialog xmlns="http://schema.picoe.ca/eto.forms" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="650" Height="225" xmlns:e="clr-namespace:apprepodbmgr.Core;assembly=apprepodbmgr.Core" Title="Settings">
<StackLayout Orientation="Vertical">
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<StackLayout Orientation="Vertical">
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<StackLayoutItem HorizontalAlignment="Left">
<Label>Database file</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch" Expand="True">
<TextBox ID="txtDatabase" />
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Right">
<Button ID="btnDatabase" Click="OnBtnDatabaseClicked">Choose...</Button>
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<StackLayoutItem HorizontalAlignment="Left">
<Label>Repository folder</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch" Expand="True">
<TextBox ID="txtRepository" />
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Right">
<Button ID="btnRepository" Click="OnBtnRepositoryClicked">Choose...</Button>
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<StackLayoutItem HorizontalAlignment="Left">
<Label>Temporary folder</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch" Expand="True">
<TextBox ID="txtTmp" />
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Right">
<Button ID="btnTmp" Click="OnBtnTmpClicked">Choose...</Button>
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<StackLayout Orientation="Horizontal">
<StackLayoutItem HorizontalAlignment="Left">
<Label>Path to unar</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch" Expand="True">
<TextBox ID="txtUnar" />
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Right">
<Button ID="btnUnar" Click="OnBtnUnarClicked">Choose...</Button>
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayout Orientation="Horizontal">
<StackLayoutItem HorizontalAlignment="Center">
<Label ID="lblUnarVersion" Visible="False">lblUnarVersion</Label>
</StackLayoutItem>
</StackLayout>
<StackLayout Orientation="Horizontal" ID="StackLayoutForAlgoEnum">
<StackLayoutItem HorizontalAlignment="Left">
<Label>Compression algorithm</Label>
</StackLayoutItem>
</StackLayout>
</StackLayout>
<StackLayout Orientation="Vertical">
<CheckBox ID="chkAntivirus" CheckedChanged="OnChkAntivirusToggled" ThreeState="False">Use antivirus?</CheckBox>
<StackLayoutItem HorizontalAlignment="Stretch">
<GroupBox Text="clamd" ID="frmClamd">
<StackLayout Orientation="Vertical">
<StackLayoutItem HorizontalAlignment="Stretch" Expand="True">
<CheckBox ID="chkClamd" CheckedChanged="OnChkClamdToggled" ThreeState="False">Use clamd?</CheckBox>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch" Expand="True">
<StackLayout Orientation="Horizontal">
<StackLayoutItem HorizontalAlignment="Stretch" Expand="True">
<Label>Host</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch" Expand="True">
<TextBox ID="txtClamdHost" Enabled="False" />
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch" Expand="True">
<Label>port</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch" Expand="True">
<NumericUpDown ID="spClamdPort" MaxValue="65535" MinValue="1" Value="3310" Enabled="False" />
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<Button ID="btnClamdTest" Click="OnBtnClamdTestClicked" Enabled="False">Test</Button>
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch" Expand="True">
<Label Visible="False" ID="lblClamdVersion" />
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch" Expand="True">
<CheckBox ID="chkClamdIsLocal" ThreeState="False" Enabled="False">Clamd is local?</CheckBox>
</StackLayoutItem>
</StackLayout>
</GroupBox>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<GroupBox Text="VirusTotal" ID="frmVirusTotal">
<StackLayout Orientation="Vertical">
<StackLayoutItem HorizontalAlignment="Stretch" Expand="True">
<CheckBox ID="chkVirusTotal" CheckedChanged="OnChkVirusTotalToggled" ThreeState="False">Use VirusTotal?</CheckBox>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch" Expand="True">
<StackLayout Orientation="Horizontal">
<StackLayoutItem HorizontalAlignment="Stretch" Expand="True">
<Label>API Key</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch" Expand="True">
<TextBox ID="txtVirusTotal" Enabled="False" />
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch">
<Button ID="btnVirusTotal" Click="OnBtnVirusTotalClicked" Enabled="False">Test</Button>
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch" Expand="True">
<Label Visible="False" ID="lblVirusTotal" />
</StackLayoutItem>
</StackLayout>
</GroupBox>
</StackLayoutItem>
</StackLayout>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Center">
<StackLayout Orientation="Horizontal">
<StackLayoutItem HorizontalAlignment="Left">
<Button ID="btnCancel" Click="OnBtnCancelClicked">Cancel</Button>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Right">
<Button ID="btnApply" Click="OnBtnApplyClicked">Apply</Button>
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
</StackLayout>
</Dialog>

View File

@@ -1,329 +0,0 @@
//
// Author:
// Natalia Portillo claunia@claunia.com
//
// Copyright (c) 2017, © Claunia.com
//
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
//
// * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in
// the documentation and/or other materials provided with the distribution.
// * Neither the name of the [ORGANIZATION] nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
using System;
using System.IO;
using System.Threading;
using apprepodbmgr.Core;
using Eto.Forms;
using Eto.Serialization.Xaml;
namespace apprepodbmgr.Eto
{
public class dlgSettings : Dialog
{
string oldUnarPath;
public dlgSettings()
{
XamlReader.Load(this);
txtTmp.Text = Settings.Current.TemporaryFolder;
txtUnar.Text = Settings.Current.UnArchiverPath;
txtDatabase.Text = Settings.Current.DatabasePath;
txtRepository.Text = Settings.Current.RepositoryPath;
if(!string.IsNullOrWhiteSpace(txtUnar.Text)) CheckUnar();
cmbCompAlg = new EnumDropDown<AlgoEnum>();
StackLayoutForAlgoEnum.Items.Add(new StackLayoutItem(cmbCompAlg, HorizontalAlignment.Stretch, true));
cmbCompAlg.SelectedValue = Settings.Current.CompressionAlgorithm;
spClamdPort.Value = 3310;
chkAntivirus.Checked = Settings.Current.UseAntivirus;
frmClamd.Visible = chkAntivirus.Checked.Value;
if(Settings.Current.UseAntivirus && Settings.Current.UseClamd)
{
chkClamd.Checked = Settings.Current.UseClamd;
txtClamdHost.Text = Settings.Current.ClamdHost;
spClamdPort.Value = Settings.Current.ClamdPort;
chkClamdIsLocal.Checked = Settings.Current.ClamdIsLocal;
}
if(!Settings.Current.UseAntivirus || !Settings.Current.UseVirusTotal) return;
chkVirusTotal.Checked = true;
chkVirusTotal.Enabled = true;
txtVirusTotal.Enabled = true;
txtVirusTotal.Text = Settings.Current.VirusTotalKey;
btnVirusTotal.Enabled = true;
}
protected void OnBtnCancelClicked(object sender, EventArgs e)
{
Close();
}
protected void OnBtnApplyClicked(object sender, EventArgs e)
{
// TODO: Check sanity
Settings.Current.TemporaryFolder = txtTmp.Text;
Settings.Current.UnArchiverPath = txtUnar.Text;
Settings.Current.DatabasePath = txtDatabase.Text;
Settings.Current.RepositoryPath = txtRepository.Text;
Settings.Current.CompressionAlgorithm = cmbCompAlg.SelectedValue;
if(!chkClamd.Checked.Value || !chkAntivirus.Checked.Value)
{
Settings.Current.UseClamd = false;
Settings.Current.ClamdHost = null;
Settings.Current.ClamdPort = 3310;
Settings.Current.ClamdIsLocal = false;
}
if(chkVirusTotal.Checked.Value && chkAntivirus.Checked.Value)
{
Settings.Current.UseVirusTotal = true;
Settings.Current.VirusTotalKey = txtVirusTotal.Text;
Workers.InitVirusTotal(Settings.Current.VirusTotalKey);
}
else
{
Settings.Current.UseVirusTotal = false;
Settings.Current.VirusTotalKey = null;
}
Settings.SaveSettings();
Workers.CloseDB();
Workers.InitDB();
Context.ClamdVersion = null;
Workers.InitClamd();
Context.CheckUnar();
Close();
}
protected void OnBtnUnarClicked(object sender, EventArgs e)
{
OpenFileDialog dlgFile = new OpenFileDialog {Title = "Choose UnArchiver executable", MultiSelect = false};
if(!string.IsNullOrWhiteSpace(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)))
dlgFile.Directory = new Uri(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles));
if(dlgFile.ShowDialog(this) != DialogResult.Ok) return;
txtUnar.Text = dlgFile.FileName;
lblUnarVersion.Visible = false;
CheckUnar();
}
protected void OnBtnTmpClicked(object sender, EventArgs e)
{
SelectFolderDialog dlgFolder =
new SelectFolderDialog {Title = "Choose temporary folder", Directory = Path.GetTempPath()};
if(dlgFolder.ShowDialog(this) == DialogResult.Ok) txtTmp.Text = dlgFolder.Directory;
}
protected void OnBtnRepositoryClicked(object sender, EventArgs e)
{
SelectFolderDialog dlgFolder =
new SelectFolderDialog {Title = "Choose repository folder", Directory = Path.GetTempPath()};
if(dlgFolder.ShowDialog(this) == DialogResult.Ok) txtRepository.Text = dlgFolder.Directory;
}
protected void OnBtnDatabaseClicked(object sender, EventArgs e)
{
SaveFileDialog dlgFile = new SaveFileDialog
{
Title = "Choose database to open/create",
Directory = new Uri(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)),
CheckFileExists = false,
FileName = "apprepodbmgr.db"
};
if(dlgFile.ShowDialog(this) != DialogResult.Ok) return;
if(File.Exists(dlgFile.FileName))
{
DbCore dbCore = new SQLite();
bool notDb = false;
try { notDb |= !dbCore.OpenDb(dlgFile.FileName, null, null, null); }
catch { notDb = true; }
if(notDb)
{
MessageBox.Show("Cannot open specified file as a database, please choose another.",
MessageBoxType.Error);
return;
}
dbCore.CloseDb();
}
else
{
DbCore dbCore = new SQLite();
bool notDb = false;
try { notDb |= !dbCore.CreateDb(dlgFile.FileName, null, null, null); }
catch { notDb = true; }
if(notDb)
{
MessageBox.Show("Cannot create a database in the specified file as a database.",
MessageBoxType.Error);
return;
}
dbCore.CloseDb();
}
txtDatabase.Text = dlgFile.FileName;
}
void CheckUnar()
{
Workers.FinishedWithText += CheckUnarFinished;
Workers.Failed += CheckUnarFailed;
oldUnarPath = Settings.Current.UnArchiverPath;
Settings.Current.UnArchiverPath = txtUnar.Text;
Thread thdCheckUnar = new Thread(Workers.CheckUnar);
thdCheckUnar.Start();
}
void CheckUnarFinished(string text)
{
Application.Instance.Invoke(delegate
{
Workers.FinishedWithText -= CheckUnarFinished;
Workers.Failed -= CheckUnarFailed;
lblUnarVersion.Text = text;
lblUnarVersion.Visible = true;
Settings.Current.UnArchiverPath = oldUnarPath;
});
}
void CheckUnarFailed(string text)
{
Application.Instance.Invoke(delegate
{
Workers.FinishedWithText -= CheckUnarFinished;
Workers.Failed -= CheckUnarFailed;
txtUnar.Text = string.IsNullOrWhiteSpace(oldUnarPath) ? "" : oldUnarPath;
Settings.Current.UnArchiverPath = oldUnarPath;
MessageBox.Show(text, MessageBoxType.Error);
});
}
protected void OnChkAntivirusToggled(object sender, EventArgs e)
{
frmClamd.Visible = chkAntivirus.Checked.Value;
frmVirusTotal.Visible = chkAntivirus.Checked.Value;
}
protected void OnChkClamdToggled(object sender, EventArgs e)
{
txtClamdHost.Enabled = chkClamd.Checked.Value;
spClamdPort.Enabled = chkClamd.Checked.Value;
btnClamdTest.Enabled = chkClamd.Checked.Value;
lblClamdVersion.Visible = false;
chkClamdIsLocal.Enabled = chkClamd.Checked.Value;
}
protected void OnBtnClamdTestClicked(object sender, EventArgs e)
{
lblClamdVersion.Visible = false;
if(string.IsNullOrEmpty(txtClamdHost.Text))
{
MessageBox.Show("clamd host cannot be empty", MessageBoxType.Error);
return;
}
string oldVersion = Context.ClamdVersion;
Context.ClamdVersion = null;
string oldHost = Settings.Current.ClamdHost;
ushort oldPort = Settings.Current.ClamdPort;
Settings.Current.ClamdHost = txtClamdHost.Text;
Settings.Current.ClamdPort = (ushort)spClamdPort.Value;
Workers.TestClamd();
Settings.Current.ClamdHost = oldHost;
Settings.Current.ClamdPort = oldPort;
if(string.IsNullOrEmpty(Context.ClamdVersion))
{
MessageBox.Show("Cannot connect to clamd", MessageBoxType.Error);
return;
}
lblClamdVersion.Text = Context.ClamdVersion;
Context.ClamdVersion = oldVersion;
lblClamdVersion.Visible = true;
}
protected void OnChkVirusTotalToggled(object sender, EventArgs e)
{
txtVirusTotal.Enabled = chkVirusTotal.Checked.Value;
btnVirusTotal.Enabled = chkVirusTotal.Checked.Value;
lblVirusTotal.Visible = false;
}
protected void OnBtnVirusTotalClicked(object sender, EventArgs e)
{
Workers.Failed += VirusTotalTestFailed;
if(!Workers.TestVirusTotal(txtVirusTotal.Text)) return;
lblVirusTotal.Visible = true;
lblVirusTotal.Text = "Working!";
}
static void VirusTotalTestFailed(string text)
{
MessageBox.Show(text, MessageBoxType.Error);
}
#region XAML UI elements
#pragma warning disable 0649
TextBox txtTmp;
TextBox txtUnar;
TextBox txtDatabase;
TextBox txtRepository;
Label lblUnarVersion;
EnumDropDown<AlgoEnum> cmbCompAlg;
StackLayout StackLayoutForAlgoEnum;
GroupBox frmClamd;
CheckBox chkAntivirus;
CheckBox chkClamd;
TextBox txtClamdHost;
NumericUpDown spClamdPort;
Button btnClamdTest;
Label lblClamdVersion;
CheckBox chkClamdIsLocal;
GroupBox frmVirusTotal;
CheckBox chkVirusTotal;
TextBox txtVirusTotal;
Button btnVirusTotal;
Label lblVirusTotal;
#pragma warning restore 0649
#endregion XAML UI elements
}
}

View File

@@ -1,85 +0,0 @@
<?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" Title="App Repository DB Manager">
<TabControl>
<TabPage Text="Operating systems" ID="tabApps">
<StackLayout Orientation="Vertical">
<StackLayoutItem Expand="True" HorizontalAlignment="Stretch">
<GridView ID="treeApps" Enabled="False" />
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Center">
<Label ID="lblAppStatus" Visible="False">lblAppStatus</Label>
</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>
</TabPage>
<TabPage Text="Files" ID="tabFiles">
<StackLayout Orientation="Vertical">
<StackLayoutItem Expand="True" HorizontalAlignment="Stretch">
<GridView ID="treeFiles" Enabled="False" SelectionChanged="treeFilesSelectionChanged" />
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Center">
<Label ID="lblFileStatus" Visible="False">lblFileStatus</Label>
</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="btnCleanFiles" Click="OnBtnCleanFilesClicked" Visible="False">Clean files</Button>
<Button x:Name="btnToggleCrack" Click="OnBtnToggleCrackClicked" Visible="False">Mark as crack</Button>
<Button x:Name="btnScanAllPending" Click="OnBtnScanAllPendingClicked" Visible="False">Scan all with clamd</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">
<ButtonMenuItem Text="Add" Click="OnBtnAddClicked" Shortcut="CommonModifier+A" />
<ButtonMenuItem Text="Remove" Click="OnBtnRemoveClicked" Shortcut="CommonModifier+R" />
<ButtonMenuItem Text="Save As" Click="OnBtnSaveClicked" Shortcut="CommonModifier+S" />
<ButtonMenuItem ID="mnuCompress" Text="Compress" Click="OnBtnCompressClicked" Shortcut="CommonModifier+E" />
</ButtonMenuItem>
<MenuBar.ApplicationItems>
<ButtonMenuItem ID="btnSettings" Text="Preferences..." Click="OnBtnSettingsClicked" Shortcut="{On Control+O, Mac=Application+Comma}" />
</MenuBar.ApplicationItems>
<MenuBar.QuitItem>
<ButtonMenuItem ID="btnQuit" Text="Quit" Click="OnBtnQuitClicked" Shortcut="CommonModifier+Q" />
</MenuBar.QuitItem>
</MenuBar>
</Form.Menu>
</Form>

File diff suppressed because it is too large Load Diff

View File

@@ -1,49 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Claunia.Encoding" version="1.6.1" targetFramework="net46" />
<package id="Eto.Forms" version="2.4.1" targetFramework="net45" />
<package id="Eto.Serialization.Xaml" version="2.4.1" targetFramework="net45" />
<package id="libexeinfo" version="0.5.0" targetFramework="net46" />
<package id="Microsoft.NETCore.Platforms" version="2.0.1" targetFramework="net45" />
<package id="NETStandard.Library" version="2.0.1" targetFramework="net45" />
<package id="Newtonsoft.Json" version="11.0.1" targetFramework="net45" />
<package id="Portable.Xaml" version="0.21.0" targetFramework="net45" />
<package id="System.Collections" version="4.3.0" targetFramework="net45" />
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net45" />
<package id="System.ComponentModel" version="4.3.0" targetFramework="net45" />
<package id="System.ComponentModel.Primitives" version="4.3.0" targetFramework="net45" />
<package id="System.ComponentModel.TypeConverter" version="4.3.0" targetFramework="net45" />
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net45" />
<package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="net45" />
<package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="net45" />
<package id="System.Globalization" version="4.3.0" targetFramework="net45" />
<package id="System.IO" version="4.3.0" targetFramework="net45" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net45" />
<package id="System.Linq" version="4.3.0" targetFramework="net45" />
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="net45" />
<package id="System.Net.Http" version="4.3.2" targetFramework="net46" />
<package id="System.Net.Primitives" version="4.3.0" targetFramework="net45" />
<package id="System.ObjectModel" version="4.3.0" targetFramework="net45" />
<package id="System.Reflection" version="4.3.0" targetFramework="net45" />
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="net45" />
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="net45" />
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="net45" />
<package id="System.Runtime" version="4.3.0" targetFramework="net45" />
<package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net45" />
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net45" />
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net45" />
<package id="System.Runtime.Numerics" version="4.3.0" targetFramework="net45" />
<package id="System.Runtime.Serialization.Primitives" version="4.3.0" targetFramework="net45" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net46" />
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net46" />
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net46" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net46" />
<package id="System.Text.Encoding" version="4.3.0" targetFramework="net45" />
<package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="net45" />
<package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="net45" />
<package id="System.Threading" version="4.3.0" targetFramework="net45" />
<package id="System.Threading.Tasks" version="4.3.0" targetFramework="net45" />
<package id="System.ValueTuple" version="4.4.0" targetFramework="net46" />
<package id="System.Xml.ReaderWriter" version="4.3.1" targetFramework="net45" />
<package id="System.Xml.XDocument" version="4.3.0" targetFramework="net45" />
</packages>

View File

@@ -1,38 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Panel xmlns="http://schema.picoe.ca/eto.forms" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StackLayout Orientation="Horizontal">
<StackLayoutItem Expand="True" HorizontalAlignment="Left" VerticalAlignment="Stretch">
<StackLayout Orientation="Vertical">
<StackLayoutItem HorizontalAlignment="Center">
<Label>Files with description</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch" Expand="True" VerticalAlignment="Stretch">
<GridView ID="treeFiles"/>
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem Expand="True" HorizontalAlignment="Right" VerticalAlignment="Stretch">
<StackLayout>
<StackLayoutItem HorizontalAlignment="Center">
<Label>Description</Label>
</StackLayoutItem>
<StackLayoutItem Expand="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<TextArea ID="txtDescription" ReadOnly="True"/>
</StackLayoutItem>
<StackLayoutItem VerticalAlignment="Bottom">
<StackLayout Orientation="Horizontal">
<StackLayoutItem HorizontalAlignment="Left">
<Label>Codepage:</Label>
</StackLayoutItem>
<StackLayoutItem Expand="True" HorizontalAlignment="Center">
<DropDown ID="cmbCodepages"/>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Right">
<Button ID="btnClear" Click="OnBtnClearClick">Clear</Button>
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
</StackLayout>
</Panel>

View File

@@ -1,86 +0,0 @@
using System;
using System.Collections.ObjectModel;
using System.IO;
using System.Linq;
using System.Text;
using Eto.Forms;
using Eto.Serialization.Xaml;
using EncodingInfo = Claunia.Encoding.EncodingInfo;
namespace apprepodbmgr.Eto
{
public class pnlDescription : Panel
{
ObservableCollection<ListItem> cmbCodepagesItems;
Encoding currentEncoding;
public string description;
public pnlDescription()
{
XamlReader.Load(this);
treeFiles.Columns.Add(new GridColumn
{
DataCell = new TextBoxCell {Binding = Binding.Property<string, string>(r => r)},
HeaderText = "File"
});
treeFiles.AllowMultipleSelection = false;
treeFiles.SelectionChanged += TreeFilesOnSelectionChanged;
cmbCodepagesItems = new ObservableCollection<ListItem>();
foreach(EncodingInfo enc in Claunia.Encoding.Encoding.GetEncodings())
cmbCodepagesItems.Add(new ListItem {Key = enc.Name, Text = enc.DisplayName});
foreach(System.Text.EncodingInfo enc in Encoding.GetEncodings())
cmbCodepagesItems.Add(new ListItem {Key = enc.Name, Text = enc.GetEncoding().EncodingName});
cmbCodepages.DataStore = cmbCodepagesItems.OrderBy(t => t.Text);
try
{
currentEncoding = Claunia.Encoding.Encoding.GetEncoding("ibm437");
cmbCodepages.SelectedKey = currentEncoding.BodyName;
}
catch { currentEncoding = Encoding.ASCII; }
cmbCodepages.SelectedIndexChanged += CmbCodepagesOnSelectedIndexChanged;
}
void CmbCodepagesOnSelectedIndexChanged(object sender, EventArgs eventArgs)
{
try { currentEncoding = Claunia.Encoding.Encoding.GetEncoding(cmbCodepages.SelectedKey); }
catch
{
currentEncoding = Encoding.ASCII;
cmbCodepages.SelectedKey = currentEncoding.BodyName;
}
TreeFilesOnSelectionChanged(sender, eventArgs);
}
void TreeFilesOnSelectionChanged(object sender, EventArgs eventArgs)
{
txtDescription.Text = "";
description = null;
if(!(treeFiles.SelectedItem is string file)) return;
StreamReader sr = new StreamReader(file, currentEncoding);
description = sr.ReadToEnd();
txtDescription.Text = description;
sr.Close();
}
void OnBtnClearClick(object sender, EventArgs eventArgs)
{
txtDescription.Text = "";
description = null;
treeFiles.UnselectAll();
}
#region XAML UI elements
#pragma warning disable 0649
public GridView treeFiles;
TextArea txtDescription;
DropDown cmbCodepages;
Button btnClear;
#pragma warning restore 0649
#endregion XAML UI elements
}
}

View File

@@ -1,55 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Panel xmlns="http://schema.picoe.ca/eto.forms" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StackLayout Orientation="Horizontal">
<StackLayoutItem VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Expand="True">
<StackLayout Orientation="Vertical">
<StackLayoutItem>
<Label>Strings found in executables</Label>
</StackLayoutItem>
<StackLayoutItem Expand="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<GridView ID="treeStrings"/>
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem>
<StackLayout Orientation="Vertical">
<StackLayoutItem>
<Button Click="OnBtnDeveloperClick">Set as developer</Button>
</StackLayoutItem>
<StackLayoutItem>
<Button Click="OnBtnPublisherClick">Set as publisher</Button>
</StackLayoutItem>
<StackLayoutItem>
<Button Click="OnBtnProductClick">Set as product</Button>
</StackLayoutItem>
<StackLayoutItem>
<Button Click="OnBtnVersionClick">Set as version</Button>
</StackLayoutItem>
<StackLayoutItem>
<Label>Developer</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch" Expand="True">
<TextBox ID="txtDeveloper" ReadOnly="True" />
</StackLayoutItem>
<StackLayoutItem>
<Label>Publisher</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch" Expand="True">
<TextBox ID="txtPublisher" ReadOnly="True" />
</StackLayoutItem>
<StackLayoutItem>
<Label>Product</Label>
</StackLayoutItem>
<StackLayoutItem Expand="True" HorizontalAlignment="Stretch">
<TextBox ID="txtProduct" ReadOnly="True" />
</StackLayoutItem>
<StackLayoutItem>
<Label>Version</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Stretch" Expand="True">
<TextBox ID="txtVersion" ReadOnly="True" />
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
</StackLayout>
</Panel>

View File

@@ -1,64 +0,0 @@
using System;
using Eto.Forms;
using Eto.Serialization.Xaml;
namespace apprepodbmgr.Eto
{
public class pnlStrings : Panel
{
public pnlStrings()
{
XamlReader.Load(this);
treeStrings.AllowMultipleSelection = false;
treeStrings.ShowHeader = false;
treeStrings.Columns.Add(new GridColumn
{
DataCell = new TextBoxCell {Binding = Binding.Property<string, string>(r => r)},
HeaderText = "String"
});
}
void OnBtnDeveloperClick(object sender, EventArgs eventArgs)
{
txtDeveloper.Text = "";
if(!(treeStrings.SelectedItem is string str)) return;
txtDeveloper.Text = str;
}
void OnBtnPublisherClick(object sender, EventArgs eventArgs)
{
txtPublisher.Text = "";
if(!(treeStrings.SelectedItem is string str)) return;
txtPublisher.Text = str;
}
void OnBtnProductClick(object sender, EventArgs eventArgs)
{
txtProduct.Text = "";
if(!(treeStrings.SelectedItem is string str)) return;
txtProduct.Text = str;
}
void OnBtnVersionClick(object sender, EventArgs eventArgs)
{
txtVersion.Text = "";
if(!(treeStrings.SelectedItem is string str)) return;
txtVersion.Text = str;
}
#region XAML UI elements
#pragma warning disable 0649
public TextBox txtDeveloper;
public TextBox txtPublisher;
public TextBox txtProduct;
public TextBox txtVersion;
public GridView treeStrings;
#pragma warning restore 0649
#endregion XAML UI elements
}
}

View File

@@ -1,44 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Panel xmlns="http://schema.picoe.ca/eto.forms" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StackLayout Orientation="Horizontal" VerticalContentAlignment="Stretch">
<StackLayoutItem Expand="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<StackLayout>
<StackLayoutItem HorizontalAlignment="Center">
<Label>Select architectures</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Center">
<Label>(multiple selection)</Label>
</StackLayoutItem>
<StackLayoutItem Expand="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<GridView ID="treeArchs"/>
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem Expand="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<StackLayout>
<StackLayoutItem HorizontalAlignment="Center">
<Label>Select OSes</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Center">
<Label>(multiple selection)</Label>
</StackLayoutItem>
<StackLayoutItem Expand="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<GridView ID="treeOs"/>
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
<StackLayoutItem Expand="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<StackLayout>
<StackLayoutItem HorizontalAlignment="Center">
<Label>Select version</Label>
</StackLayoutItem>
<StackLayoutItem HorizontalAlignment="Center">
<Label>(single selection)</Label>
</StackLayoutItem>
<StackLayoutItem Expand="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<GridView ID="treeVersions"/>
</StackLayoutItem>
</StackLayout>
</StackLayoutItem>
</StackLayout>
</Panel>

View File

@@ -1,50 +0,0 @@
using Eto.Forms;
using Eto.Serialization.Xaml;
namespace apprepodbmgr.Eto
{
public class pnlVersions : Panel
{
public pnlVersions()
{
XamlReader.Load(this);
treeArchs.AllowMultipleSelection = true;
treeOs.AllowMultipleSelection = true;
treeVersions.AllowMultipleSelection = false;
treeArchs.ShowHeader = false;
treeOs.ShowHeader = true;
treeVersions.ShowHeader = false;
treeArchs.Columns.Add(new GridColumn
{
DataCell = new TextBoxCell {Binding = Binding.Property<string, string>(r => r)},
HeaderText = "Arch"
});
treeOs.Columns.Add(new GridColumn
{
DataCell = new TextBoxCell {Binding = Binding.Property<TargetOsEntry, string>(r => r.name)},
HeaderText = "Name"
});
treeOs.Columns.Add(new GridColumn
{
DataCell = new TextBoxCell {Binding = Binding.Property<TargetOsEntry, string>(r => r.version)},
HeaderText = "Version"
});
treeVersions.Columns.Add(new GridColumn
{
DataCell = new TextBoxCell {Binding = Binding.Property<string, string>(r => r)},
HeaderText = "Version"
});
}
#region XAML UI elements
#pragma warning disable 0649
public GridView treeArchs;
public GridView treeOs;
public GridView treeVersions;
#pragma warning restore 0649
#endregion XAML UI elements
}
}