Remove unneeded files
This commit is contained in:
145
ChangeLog
145
ChangeLog
@@ -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.
|
|
||||||
|
|
||||||
@@ -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("")]
|
|
||||||
@@ -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; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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>
|
|
||||||
159
dlgAdd.xeto
159
dlgAdd.xeto
@@ -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>
|
|
||||||
1235
dlgAdd.xeto.cs
1235
dlgAdd.xeto.cs
File diff suppressed because it is too large
Load Diff
@@ -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>
|
|
||||||
@@ -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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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>
|
|
||||||
@@ -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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
145
dlgSettings.xeto
145
dlgSettings.xeto
@@ -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>
|
|
||||||
@@ -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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
85
frmMain.xeto
85
frmMain.xeto
@@ -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="&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>
|
|
||||||
1088
frmMain.xeto.cs
1088
frmMain.xeto.cs
File diff suppressed because it is too large
Load Diff
@@ -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>
|
|
||||||
@@ -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>
|
|
||||||
@@ -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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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>
|
|
||||||
@@ -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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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>
|
|
||||||
@@ -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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user