diff --git a/README.md b/README.md index 5cc2b8a59..6870cdc6e 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Welcome to the source repository for Greenshot What is Greenshot? ------------------ -Greenshot is a light-weight screenshot software tool for Windows with the following key features: +Greenshot is an open source, light-weight screenshot software tool for Windows with the following key features: * Quickly create screenshots of a selected region, window or fullscreen; you can even capture complete (scrolling) web pages from Internet Explorer. * Easily annotate, highlight or obfuscate parts of the screenshot. @@ -21,30 +21,45 @@ Being easy to understand and configurable, Greenshot is an efficient tool for pr About this repository --------------------- -This repository is for Greenshot 1.3.x +This repository is work in progress for the next Greenshot (2.0?). + + +Quick started for developers +---------------------------- +* Download the latest (!!!) dotnet core SDK from here: https://github.com/dotnet/core-sdk ([quick-link to download](https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-win-x64.exe)) + * Make sure you only have the latest dotnet core 3.0 installed! +* Make sure you have the latest Visual Studio 2017 (no need for previews), for 15.9.x enable [Use previews of the .NET Core SDK](https://blogs.msdn.microsoft.com/dotnet/2018/11/13/net-core-tooling-update-for-visual-studio-2017-version-15-9/) +* Clone the [repository](https://github.com/greenshot/greenshot/tree/feature/netcoreapp3.0), branch feature/netcoreapp3.0 +* Open the solution from the src directory in Visual Studio 2017 +* Rebuild and start... (you might need to rebuild 2x, looking into this) + For users the major changes since 1.2.x are: -* A newer and more modern configuration UI -* Due to the update of .NET 4.5 a lot of bugs are solved +* dotnet core 3.0 support (why, read here: https://blogs.msdn.microsoft.com/dotnet/2018/10/04/update-on-net-core-3-0-and-net-framework-4-8/ ) +* A newer and more modern configuration UI, using MahApps.Metro +* Due to the update of .NET 2.0 to .NET 4.7.1 a lot of bugs are solved * Added Windows 10 destinations, OCR & share * Better DPI support -* Faster development +* Simplified code should make development easier and quicker * Bug fixes For developers, the major changes since 1.2.x are: -* Updated to .NET 4.5.x -* Moved logging from log4net to [Dapplo.Log](https://github.com/dapplo/Dapplo.Log) which is a very simple logger -* Using Dependency Injection (Inversion of Control), via [Dapplo.Addons](https://github.com/dapplo/Dapplo.Addons) which bases upon MEF. -* Add-ins (formerly plug-ins) can just place attributes on classes to be loaded and injected. -* Started using WPF via MVVM, provided by Caliburn.Micro via [Dapplo.CaliburnMicro](https://github.com/dapplo/Dapplo.CaliburnMicro) +* Updated to .NET 4.7.1 and dotnet core 3.0 (multiple targets) +* Moved logging from log4net to [Dapplo.Log](https://github.com/dapplo/Dapplo.Log) which is a very simple logger (reviewing changing to Microsoft.Extensions.Logging) +* Using Dependency Injection (Inversion of Control) via [Dapplo.Addons](https://github.com/dapplo/Dapplo.Addons) which bases upon AutoFac. +* Using MVVM, provided by Caliburn.Micro via [Dapplo.CaliburnMicro](https://github.com/dapplo/Dapplo.CaliburnMicro) * Added [Dapplo.Config](https://github.com/dapplo/Dapplo.Config) which provides language & configuration support. * Added a configuration UI, which is build together via composition. Meaning add-ins just need to implement the correct class and use the correct attributes to be visible inside the new configuration. * Using [Dapplo.HttpExtensions](https://github.com/dapplo/Dapplo.HttpExtensions) as the default HTTP client library, which should make it easier to use cloud services. -* Fody-Costura is supported for add-ins, which make it possible to simply embed the needed dependencies as dlls. -* Moved most native windows code to a separate project called [Dapplo.Windows](https://github.com/dapplo/Dapplo.Windows) which makes it easier to test +* Moved most native windows code to a separate project called [Dapplo.Windows](https://github.com/dapplo/Dapplo.Windows) which makes it easier to develop & test * Moved graphics code to a separate project, where benchmark tests are possible. + Currently known errors: * The old .greenshot files cannot be loaded -* ... +* Not all Addons are active, the way they are found needs to be fixed. +* Office Addon (if referenced) will not work on dotnet core 3.0 yet +* Windows 10 Addon (if referenced) will not work on dotnet core 3.0 yet +* MahApps.Metro doesn't support dotnet core 3.0 yet, working on it (first step ControlzEx: https://github.com/ControlzEx/ControlzEx/pull/66 ) + diff --git a/src/CommonProject.properties b/src/CommonProject.properties deleted file mode 100644 index 1cfd12951..000000000 --- a/src/CommonProject.properties +++ /dev/null @@ -1,48 +0,0 @@ - - - - false - latest - OnBuildSuccess - - - 1685 - true - bin\Debug\ - DEBUG;TRACE - true - 4096 - pdbonly - x86 - Off - - - 1685 - true - bin\Debug\ - DEBUG;TRACE - true - 4096 - pdbonly - AnyCPU - Off - - - 1685 - bin\Release\ - true - 4096 - pdbonly - AnyCPU - Off - - - 1685 - bin\Release\ - true - 4096 - pdbonly - x86 - Off - - diff --git a/src/Directory.Build.props b/src/Directory.Build.props new file mode 100644 index 000000000..41d23e844 --- /dev/null +++ b/src/Directory.Build.props @@ -0,0 +1,58 @@ + + + Copyright © Greenshot 2004-2018 + Greenshot + https://getgreenshot.org/favicon.ico + https://github.com/greenshot/greenshot + git + https://github.com/greenshot/greenshot + https://www.gnu.org/licenses/gpl.html + latest + + true + 1.0.0 + 1.0.0 + 1.0.0 + {HintPathFromItem};{TargetFrameworkDirectory};{RawFileName};{GAC}; + true + false + $(registry:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion@ProductName) + + + + true + $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb + true + true + + + + false + false + + + + DEBUG;TRACE + True + true + Full + false + + + + true + pdbonly + True + + + + + all + runtime; build; native; contentfiles; analyzers + + + all + runtime; build; native; contentfiles; analyzers + + + diff --git a/src/Greenshot.Addon.Box/BoxAddonModule.cs b/src/Greenshot.Addon.Box/BoxAddonModule.cs index 604c08d5c..2b59028b0 100644 --- a/src/Greenshot.Addon.Box/BoxAddonModule.cs +++ b/src/Greenshot.Addon.Box/BoxAddonModule.cs @@ -24,8 +24,10 @@ using Autofac; using Dapplo.Addons; using Dapplo.CaliburnMicro.Configuration; -using Dapplo.Ini; -using Dapplo.Language; +using Dapplo.Config.Ini; +using Dapplo.Config.Language; +using Greenshot.Addon.Box.Configuration; +using Greenshot.Addon.Box.Configuration.Impl; using Greenshot.Addon.Box.ViewModels; using Greenshot.Addons.Components; @@ -37,13 +39,15 @@ namespace Greenshot.Addon.Box protected override void Load(ContainerBuilder builder) { builder - .Register(context => IniConfig.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder - .Register(context => LanguageLoader.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder diff --git a/src/Greenshot.Addon.Box/BoxDestination.cs b/src/Greenshot.Addon.Box/BoxDestination.cs index a5059f906..b1c0481e4 100644 --- a/src/Greenshot.Addon.Box/BoxDestination.cs +++ b/src/Greenshot.Addon.Box/BoxDestination.cs @@ -39,6 +39,7 @@ using Dapplo.HttpExtensions.OAuth; using Dapplo.Log; using Dapplo.Utils; using Dapplo.Windows.Clipboard; +using Greenshot.Addon.Box.Configuration; using Greenshot.Addon.Box.Entities; using Greenshot.Addons; using Greenshot.Addons.Components; diff --git a/src/Greenshot.Addon.Box/IBoxConfiguration.cs b/src/Greenshot.Addon.Box/Configuration/IBoxConfiguration.cs similarity index 90% rename from src/Greenshot.Addon.Box/IBoxConfiguration.cs rename to src/Greenshot.Addon.Box/Configuration/IBoxConfiguration.cs index 1f71beb71..d83f79b2b 100644 --- a/src/Greenshot.Addon.Box/IBoxConfiguration.cs +++ b/src/Greenshot.Addon.Box/Configuration/IBoxConfiguration.cs @@ -25,21 +25,20 @@ using System.ComponentModel; using System.Runtime.Serialization; +using Dapplo.Config.Ini; using Dapplo.HttpExtensions.OAuth; -using Dapplo.Ini; -using Dapplo.InterfaceImpl.Extensions; using Greenshot.Addons.Core; #endregion -namespace Greenshot.Addon.Box +namespace Greenshot.Addon.Box.Configuration { /// /// Description of ImgurConfiguration. /// [IniSection("Box")] [Description("Greenshot Box Plugin configuration")] - public interface IBoxConfiguration : IIniSection, IDestinationFileConfiguration, INotifyPropertyChanged, ITransactionalProperties, IOAuth2Token + public interface IBoxConfiguration : IIniSection, IDestinationFileConfiguration, IOAuth2Token { [Description("After upload send Box link to clipboard.")] [DefaultValue(true)] diff --git a/src/Greenshot.Addon.Box/IBoxLanguage.cs b/src/Greenshot.Addon.Box/Configuration/IBoxLanguage.cs similarity index 87% rename from src/Greenshot.Addon.Box/IBoxLanguage.cs rename to src/Greenshot.Addon.Box/Configuration/IBoxLanguage.cs index e94152d6e..4ae0e6803 100644 --- a/src/Greenshot.Addon.Box/IBoxLanguage.cs +++ b/src/Greenshot.Addon.Box/Configuration/IBoxLanguage.cs @@ -21,13 +21,12 @@ #endregion -using System.ComponentModel; -using Dapplo.Language; +using Dapplo.Config.Language; -namespace Greenshot.Addon.Box +namespace Greenshot.Addon.Box.Configuration { [Language("Box")] - public interface IBoxLanguage : ILanguage, INotifyPropertyChanged + public interface IBoxLanguage : ILanguage { string CommunicationWait { get; } diff --git a/src/Greenshot.Addon.Box/Configuration/Impl/BoxConfigurationImpl.cs b/src/Greenshot.Addon.Box/Configuration/Impl/BoxConfigurationImpl.cs new file mode 100644 index 000000000..ecc266164 --- /dev/null +++ b/src/Greenshot.Addon.Box/Configuration/Impl/BoxConfigurationImpl.cs @@ -0,0 +1,79 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System; +using System.ComponentModel; +using Dapplo.Config.Ini; +using Dapplo.Config.Ini.Converters; +using Greenshot.Core.Enums; + +namespace Greenshot.Addon.Box.Configuration.Impl +{ + internal class BoxConfigurationImpl : IniSectionBase, IBoxConfiguration + { + #region Implementation of IFileConfiguration + + public string OutputFilePath { get; set; } + public bool OutputFileAllowOverwrite { get; set; } + public string OutputFileFilenamePattern { get; set; } + public OutputFormats OutputFileFormat { get; set; } + public bool OutputFileReduceColors { get; set; } + public bool OutputFileAutoReduceColors { get; set; } + public int OutputFileReduceColorsTo { get; set; } + public int OutputFileJpegQuality { get; set; } + public bool OutputFilePromptQuality { get; set; } + public uint OutputFileIncrementingNumber { get; set; } + public string OptimizePNGCommand { get; set; } + public string OptimizePNGCommandArguments { get; set; } + + #endregion + + #region Implementation of IDestinationFileConfiguration + + public bool UseOwnSettings { get; set; } + + #endregion + + #region Implementation of IOAuth2Token + + [TypeConverter(typeof(StringEncryptionTypeConverter))] + public string OAuth2AccessToken { get; set; } + + public DateTimeOffset OAuth2AccessTokenExpires { get; set; } + + [TypeConverter(typeof(StringEncryptionTypeConverter))] + public string OAuth2RefreshToken { get; set; } + + #endregion + + #region Implementation of IBoxConfiguration + + public bool AfterUploadLinkToClipBoard { get; set; } + public bool UseSharedLink { get; set; } + public string FolderId { get; set; } + public string ClientId { get; set; } + public string ClientSecret { get; set; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.Box/Configuration/Impl/BoxLanguageImpl.cs b/src/Greenshot.Addon.Box/Configuration/Impl/BoxLanguageImpl.cs new file mode 100644 index 000000000..78d36f31a --- /dev/null +++ b/src/Greenshot.Addon.Box/Configuration/Impl/BoxLanguageImpl.cs @@ -0,0 +1,50 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System.Diagnostics.CodeAnalysis; +using Dapplo.Config.Language; + +namespace Greenshot.Addon.Box.Configuration.Impl +{ + /// + /// This implements IBoxLanguage and takes care of storing, all setters are replaced via AutoProperties.Fody + /// + [SuppressMessage("ReSharper", "UnassignedGetOnlyAutoProperty")] +#pragma warning disable CS1591 + public class BoxLanguageImpl : LanguageBase, IBoxLanguage + { + #region Implementation of IBoxLanguage + + public string CommunicationWait { get; } + public string Configure { get; } + public string LabelAfterUpload { get; } + public string LabelAfterUploadLinkToClipBoard { get; } + public string LabelUploadFormat { get; } + public string SettingsTitle { get; } + public string UploadFailure { get; } + public string UploadMenuItem { get; } + public string UploadSuccess { get; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.Box/FodyWeavers.xml b/src/Greenshot.Addon.Box/FodyWeavers.xml new file mode 100644 index 000000000..7f5a26669 --- /dev/null +++ b/src/Greenshot.Addon.Box/FodyWeavers.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.Box/FodyWeavers.xsd b/src/Greenshot.Addon.Box/FodyWeavers.xsd new file mode 100644 index 000000000..061979a03 --- /dev/null +++ b/src/Greenshot.Addon.Box/FodyWeavers.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + 'true' to run assembly verification on the target assembly after all weavers have been finished. + + + + + A comma separated list of error codes that can be safely ignored in assembly verification. + + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.Box/Greenshot.Addon.Box.csproj b/src/Greenshot.Addon.Box/Greenshot.Addon.Box.csproj index 8e0f824ac..feaaebdb0 100644 --- a/src/Greenshot.Addon.Box/Greenshot.Addon.Box.csproj +++ b/src/Greenshot.Addon.Box/Greenshot.Addon.Box.csproj @@ -1,237 +1,58 @@ - - - + + - {697CF066-9077-4F22-99D9-D989CCE7282B} - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Library Greenshot.Addon.Box Greenshot.Addon.Box - v4.6.1 - Properties - False - False - 4 - false - Always - - - - - - 3.5 - latest - false + net471;netcoreapp3.0 - + - - ..\packages\Autofac.4.8.1\lib\net45\Autofac.dll - - - ..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll - - - ..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll - - - ..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll - - - ..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll - - - ..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll - - - ..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll - - - ..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll - - - ..\packages\Dapplo.CaliburnMicro.Configuration.1.0.75\lib\net461\Dapplo.CaliburnMicro.Configuration.dll - - - ..\packages\Dapplo.CaliburnMicro.Dapp.1.0.75\lib\net461\Dapplo.CaliburnMicro.Dapp.dll - - - ..\packages\Dapplo.CaliburnMicro.Menu.1.0.75\lib\net461\Dapplo.CaliburnMicro.Menu.dll - - - ..\packages\Dapplo.CaliburnMicro.Security.1.0.75\lib\net461\Dapplo.CaliburnMicro.Security.dll - - - ..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll - - - ..\packages\Dapplo.HttpExtensions.0.8.46\lib\net46\Dapplo.HttpExtensions.dll - - - ..\packages\Dapplo.HttpExtensions.JsonNet.0.8.46\lib\net46\Dapplo.HttpExtensions.JsonNet.dll - - - ..\packages\Dapplo.HttpExtensions.OAuth.0.8.46\lib\net46\Dapplo.HttpExtensions.OAuth.dll - - - ..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll - - - ..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll - - - ..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll - - - ..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll - - - ..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll - - - ..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll - - - ..\packages\Dapplo.Windows.Clipboard.0.5.109\lib\net461\Dapplo.Windows.Clipboard.dll - - - ..\packages\Dapplo.Windows.Com.0.5.109\lib\net461\Dapplo.Windows.Com.dll - - - ..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll - - - ..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll - - - ..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll - - - ..\packages\Dapplo.Windows.EmbeddedBrowser.0.5.109\lib\net461\Dapplo.Windows.EmbeddedBrowser.dll - - - ..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll - - - ..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll - - - ..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll - - - ..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll - - - ..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll - + + PreserveNewest + + + + - - ..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll - - - - + - - ..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - - ..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\System.Windows.Interactivity.dll - + - - - + + + - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - + + + + - - {bf35190d-b2a7-4cfa-b397-51cb384cf0d7} - Greenshot.Core - - - {f041c685-eb96-4ed1-9ace-0f5bd836610f} - Greenshot.Gfx - - - {5B924697-4DCD-4F98-85F1-105CB84B7341} - Greenshot.Addons - + + + + + + + + + all + runtime; build; native; contentfiles; analyzers + - - - MSBuild:Compile - Designer - - - - mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).dll" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" -copy "$(ProjectDir)\Languages\*.xml" "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" - - - - \ No newline at end of file + diff --git a/src/Greenshot.Addon.Box/Properties/AssemblyInfo.cs b/src/Greenshot.Addon.Box/Properties/AssemblyInfo.cs deleted file mode 100644 index fb710cb08..000000000 --- a/src/Greenshot.Addon.Box/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,53 +0,0 @@ -#region Greenshot GNU General Public License - -// Greenshot - a free and open source screenshot tool -// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom -// -// For more information see: http://getgreenshot.org/ -// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 1 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -#endregion - -#region Usings - -using System.Reflection; -using System.Runtime.InteropServices; - -#endregion - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("Greenshot.Addon.Box")] -[assembly: AssemblyDescription("A plugin to upload images to Box")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Greenshot & F. Noel")] -[assembly: AssemblyProduct("Box Plugin")] -[assembly: AssemblyCopyright("Copyright (C) 2012")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// This sets the default COM visibility of types in the assembly to invisible. -// If you need to expose a type to COM, use [ComVisible(true)] on that type. - -[assembly: ComVisible(false)] - -// The assembly version, replaced by build scripts - -[assembly: AssemblyVersion("1.3.0.0")] -[assembly: AssemblyInformationalVersion("1.3.0.0")] -[assembly: AssemblyFileVersion("1.3.0.0")] \ No newline at end of file diff --git a/src/Greenshot.Addon.Box/ViewModels/BoxConfigViewModel.cs b/src/Greenshot.Addon.Box/ViewModels/BoxConfigViewModel.cs index 396b94d43..52599ae9c 100644 --- a/src/Greenshot.Addon.Box/ViewModels/BoxConfigViewModel.cs +++ b/src/Greenshot.Addon.Box/ViewModels/BoxConfigViewModel.cs @@ -24,6 +24,7 @@ using System.Reactive.Disposables; using Dapplo.CaliburnMicro.Configuration; using Dapplo.CaliburnMicro.Extensions; +using Greenshot.Addon.Box.Configuration; using Greenshot.Addons; using Greenshot.Addons.Core.Enums; using Greenshot.Addons.ViewModels; diff --git a/src/Greenshot.Addon.Box/packages.config b/src/Greenshot.Addon.Box/packages.config deleted file mode 100644 index 056ca4629..000000000 --- a/src/Greenshot.Addon.Box/packages.config +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.Addon.Confluence/IConfluenceConfiguration.cs b/src/Greenshot.Addon.Confluence/Configuration/IConfluenceConfiguration.cs similarity index 90% rename from src/Greenshot.Addon.Confluence/IConfluenceConfiguration.cs rename to src/Greenshot.Addon.Confluence/Configuration/IConfluenceConfiguration.cs index b2888bb83..0137f54d9 100644 --- a/src/Greenshot.Addon.Confluence/IConfluenceConfiguration.cs +++ b/src/Greenshot.Addon.Confluence/Configuration/IConfluenceConfiguration.cs @@ -24,20 +24,19 @@ #region Usings using System.ComponentModel; -using Dapplo.Ini; -using Dapplo.InterfaceImpl.Extensions; +using Dapplo.Config.Ini; using Greenshot.Core.Enums; #endregion -namespace Greenshot.Addon.Confluence +namespace Greenshot.Addon.Confluence.Configuration { /// /// Description of ConfluenceConfiguration. /// [IniSection("Confluence")] [Description("Greenshot Confluence Plugin configuration")] - public interface IConfluenceConfiguration : IIniSection, ITransactionalProperties, INotifyPropertyChanged + public interface IConfluenceConfiguration : IIniSection { [Description("Url to Confluence system, including wsdl.")] [DefaultValue("https://confluence")] diff --git a/src/Greenshot.Addon.Confluence/IConfluenceLanguage.cs b/src/Greenshot.Addon.Confluence/Configuration/IConfluenceLanguage.cs similarity index 89% rename from src/Greenshot.Addon.Confluence/IConfluenceLanguage.cs rename to src/Greenshot.Addon.Confluence/Configuration/IConfluenceLanguage.cs index a277c983b..dc9ed6b7d 100644 --- a/src/Greenshot.Addon.Confluence/IConfluenceLanguage.cs +++ b/src/Greenshot.Addon.Confluence/Configuration/IConfluenceLanguage.cs @@ -21,13 +21,12 @@ #endregion -using System.ComponentModel; -using Dapplo.Language; +using Dapplo.Config.Language; -namespace Greenshot.Addon.Confluence +namespace Greenshot.Addon.Confluence.Configuration { [Language("Confluence")] - public interface IConfluenceLanguage : ILanguage, INotifyPropertyChanged + public interface IConfluenceLanguage : ILanguage { string PluginSettings { get; } string LoginError { get; } diff --git a/src/Greenshot.Addon.Confluence/Configuration/Impl/ConfluenceConfigurationImpl.cs b/src/Greenshot.Addon.Confluence/Configuration/Impl/ConfluenceConfigurationImpl.cs new file mode 100644 index 000000000..0c04f17ce --- /dev/null +++ b/src/Greenshot.Addon.Confluence/Configuration/Impl/ConfluenceConfigurationImpl.cs @@ -0,0 +1,46 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using Dapplo.Config.Ini; +using Greenshot.Core.Enums; + +namespace Greenshot.Addon.Confluence.Configuration.Impl +{ + internal class ConfluenceConfigurationImpl : IniSectionBase, IConfluenceConfiguration + { + #region Implementation of IConfluenceConfiguration + + public string Url { get; set; } + public int Timeout { get; set; } + public OutputFormats UploadFormat { get; set; } + public int UploadJpegQuality { get; set; } + public bool UploadReduceColors { get; set; } + public string OutputFileFilenamePattern { get; set; } + public bool OpenPageAfterUpload { get; set; } + public bool CopyWikiMarkupForImageToClipboard { get; set; } + public string SearchSpaceKey { get; set; } + public bool IncludePersonSpaces { get; set; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.Confluence/Configuration/Impl/ConfluenceLanguageImpl.cs b/src/Greenshot.Addon.Confluence/Configuration/Impl/ConfluenceLanguageImpl.cs new file mode 100644 index 000000000..d187a34a7 --- /dev/null +++ b/src/Greenshot.Addon.Confluence/Configuration/Impl/ConfluenceLanguageImpl.cs @@ -0,0 +1,64 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System.Diagnostics.CodeAnalysis; +using Dapplo.Config.Language; + +namespace Greenshot.Addon.Confluence.Configuration.Impl +{ + /// + /// This implements IConfluenceLanguage and takes care of storing, all setters are replaced via AutoProperties.Fody + /// + [SuppressMessage("ReSharper", "UnassignedGetOnlyAutoProperty")] +#pragma warning disable CS1591 + public class ConfluenceLanguageImpl : LanguageBase, IConfluenceLanguage + { + #region Implementation of IConfluenceLanguage + + public string PluginSettings { get; } + public string LoginError { get; } + public string LabelUrl { get; } + public string LabelTimeout { get; } + public string LabelUser { get; } + public string LabelPassword { get; } + public string LoginTitle { get; } + public string Ok { get; } + public string Cancel { get; } + public string OpenPageAfterUpload { get; } + public string UploadFormat { get; } + public string CopyWikimarkup { get; } + public string Filename { get; } + public string Upload { get; } + public string UploadMenuItem { get; } + public string OpenPages { get; } + public string SearchPages { get; } + public string BrowsePages { get; } + public string SearchText { get; } + public string Search { get; } + public string Loading { get; } + public string IncludePersonSpaces { get; } + public string CommunicationWait { get; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.Confluence/ConfluenceAddonModule.cs b/src/Greenshot.Addon.Confluence/ConfluenceAddonModule.cs index 3df62fa52..8ccfdf5bc 100644 --- a/src/Greenshot.Addon.Confluence/ConfluenceAddonModule.cs +++ b/src/Greenshot.Addon.Confluence/ConfluenceAddonModule.cs @@ -24,8 +24,10 @@ using Autofac; using Dapplo.Addons; using Dapplo.CaliburnMicro.Configuration; -using Dapplo.Ini; -using Dapplo.Language; +using Dapplo.Config.Ini; +using Dapplo.Config.Language; +using Greenshot.Addon.Confluence.Configuration; +using Greenshot.Addon.Confluence.Configuration.Impl; using Greenshot.Addon.Confluence.ViewModels; using Greenshot.Addons.Components; @@ -37,19 +39,22 @@ namespace Greenshot.Addon.Confluence protected override void Load(ContainerBuilder builder) { builder - .Register(context => IniConfig.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder - .Register(context => LanguageLoader.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder .RegisterType() .As() .SingleInstance(); + builder .RegisterType() .As() diff --git a/src/Greenshot.Addon.Confluence/ConfluenceDestination.cs b/src/Greenshot.Addon.Confluence/ConfluenceDestination.cs index a93daddf0..a3bbc75ae 100644 --- a/src/Greenshot.Addon.Confluence/ConfluenceDestination.cs +++ b/src/Greenshot.Addon.Confluence/ConfluenceDestination.cs @@ -33,6 +33,7 @@ using Autofac.Features.OwnedInstances; using Dapplo.Confluence; using Dapplo.Confluence.Entities; using Dapplo.Log; +using Greenshot.Addon.Confluence.Configuration; using Greenshot.Addons; using Greenshot.Addons.Components; using Greenshot.Addons.Controls; diff --git a/src/Greenshot.Addon.Confluence/FodyWeavers.xml b/src/Greenshot.Addon.Confluence/FodyWeavers.xml index e258ea534..29037aa37 100644 --- a/src/Greenshot.Addon.Confluence/FodyWeavers.xml +++ b/src/Greenshot.Addon.Confluence/FodyWeavers.xml @@ -1,9 +1,10 @@ - - - - + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.Confluence/FodyWeavers.xsd b/src/Greenshot.Addon.Confluence/FodyWeavers.xsd new file mode 100644 index 000000000..061979a03 --- /dev/null +++ b/src/Greenshot.Addon.Confluence/FodyWeavers.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + 'true' to run assembly verification on the target assembly after all weavers have been finished. + + + + + A comma separated list of error codes that can be safely ignored in assembly verification. + + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.Confluence/Greenshot.Addon.Confluence.csproj b/src/Greenshot.Addon.Confluence/Greenshot.Addon.Confluence.csproj index 9f55faa00..18ab0ddff 100644 --- a/src/Greenshot.Addon.Confluence/Greenshot.Addon.Confluence.csproj +++ b/src/Greenshot.Addon.Confluence/Greenshot.Addon.Confluence.csproj @@ -1,140 +1,18 @@ - - - + + - {C3052651-598A-44E2-AAB3-2E41311D50F9} - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Library Greenshot.Addon.Confluence Greenshot.Addon.Confluence - v4.6.1 - Properties - False - False - 4 - false - - - - - - 3.5 - - + net471;netcoreapp3.0 - + - - ..\packages\Autofac.4.8.1\lib\net45\Autofac.dll - - - ..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll - - - ..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll - - - ..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll - - - ..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll - - - ..\packages\Costura.Fody.3.1.0\lib\net46\Costura.dll - - - ..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll - - - ..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll - - - ..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll - - - ..\packages\Dapplo.CaliburnMicro.Configuration.1.0.75\lib\net461\Dapplo.CaliburnMicro.Configuration.dll - - - ..\packages\Dapplo.CaliburnMicro.Dapp.1.0.75\lib\net461\Dapplo.CaliburnMicro.Dapp.dll - - - ..\packages\Dapplo.CaliburnMicro.Menu.1.0.75\lib\net461\Dapplo.CaliburnMicro.Menu.dll - - - ..\packages\Dapplo.CaliburnMicro.Security.1.0.75\lib\net461\Dapplo.CaliburnMicro.Security.dll - - - ..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll - - - ..\packages\Dapplo.Confluence.0.7.19\lib\net46\Dapplo.Confluence.dll - - - ..\packages\Dapplo.HttpExtensions.0.8.46\lib\net46\Dapplo.HttpExtensions.dll - - - ..\packages\Dapplo.HttpExtensions.JsonSimple.0.8.46\lib\net46\Dapplo.HttpExtensions.JsonSimple.dll - - - ..\packages\Dapplo.HttpExtensions.OAuth.0.8.46\lib\net46\Dapplo.HttpExtensions.OAuth.dll - - - ..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll - - - ..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll - - - ..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll - - - ..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll - - - ..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll - - - ..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll - - - ..\packages\Dapplo.Windows.Clipboard.0.5.109\lib\net461\Dapplo.Windows.Clipboard.dll - - - ..\packages\Dapplo.Windows.Com.0.5.109\lib\net461\Dapplo.Windows.Com.dll - - - ..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll - - - ..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll - - - ..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll - - - ..\packages\Dapplo.Windows.EmbeddedBrowser.0.5.109\lib\net461\Dapplo.Windows.EmbeddedBrowser.dll - - - ..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll - - - ..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll - - - ..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll - - - ..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll - - - ..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll - + + PreserveNewest + + + + @@ -142,110 +20,46 @@ - - 3.5 - + - - - ..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\System.Windows.Interactivity.dll - - - 3.5 - - - 3.0 - - - 3.0 - + + + + - - - - - - - - - - - - Never - - - Never - - - Never - + + - - MSBuild:Compile - Designer - + + + + + - - {4cca2717-b8a4-44f7-965b-5687107e4921} - Greenshot.Addon.InternetExplorer - - - {bf35190d-b2a7-4cfa-b397-51cb384cf0d7} - Greenshot.Core - - - {f041c685-eb96-4ed1-9ace-0f5bd836610f} - Greenshot.Gfx - - - {5B924697-4DCD-4F98-85F1-105CB84B7341} - Greenshot.Addons - False - + + + + + + + + + all + runtime; build; native; contentfiles; analyzers + - - - - - mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).dll" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" -copy "$(ProjectDir)\Languages\*.xml" "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - - \ No newline at end of file + diff --git a/src/Greenshot.Addon.Confluence/Properties/AssemblyInfo.cs b/src/Greenshot.Addon.Confluence/Properties/AssemblyInfo.cs deleted file mode 100644 index 2b8386382..000000000 --- a/src/Greenshot.Addon.Confluence/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,53 +0,0 @@ -#region Greenshot GNU General Public License - -// Greenshot - a free and open source screenshot tool -// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom -// -// For more information see: http://getgreenshot.org/ -// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 1 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -#endregion - -#region Usings - -using System.Reflection; -using System.Runtime.InteropServices; - -#endregion - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("Greenshot.Addon.Confluence")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Greenshot")] -[assembly: AssemblyProduct("Confluence Plugin")] -[assembly: AssemblyCopyright("Copyright (C) 2007-2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// This sets the default COM visibility of types in the assembly to invisible. -// If you need to expose a type to COM, use [ComVisible(true)] on that type. - -[assembly: ComVisible(false)] - -// The assembly version, replaced by build scripts - -[assembly: AssemblyVersion("1.3.0.0")] -[assembly: AssemblyInformationalVersion("1.3.0.0")] -[assembly: AssemblyFileVersion("1.3.0.0")] \ No newline at end of file diff --git a/src/Greenshot.Addon.Confluence/ViewModels/ConfluenceConfigViewModel.cs b/src/Greenshot.Addon.Confluence/ViewModels/ConfluenceConfigViewModel.cs index e18288339..88a69aa84 100644 --- a/src/Greenshot.Addon.Confluence/ViewModels/ConfluenceConfigViewModel.cs +++ b/src/Greenshot.Addon.Confluence/ViewModels/ConfluenceConfigViewModel.cs @@ -25,6 +25,7 @@ using System.Collections.Generic; using System.Reactive.Disposables; using Dapplo.CaliburnMicro.Configuration; using Dapplo.CaliburnMicro.Extensions; +using Greenshot.Addon.Confluence.Configuration; using Greenshot.Addons; using Greenshot.Addons.Core.Enums; using Greenshot.Addons.Extensions; diff --git a/src/Greenshot.Addon.Confluence/packages.config b/src/Greenshot.Addon.Confluence/packages.config deleted file mode 100644 index 9ab7b4f4d..000000000 --- a/src/Greenshot.Addon.Confluence/packages.config +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.Addon.Dropbox/IDropboxConfiguration.cs b/src/Greenshot.Addon.Dropbox/Configuration/IDropboxConfiguration.cs similarity index 89% rename from src/Greenshot.Addon.Dropbox/IDropboxConfiguration.cs rename to src/Greenshot.Addon.Dropbox/Configuration/IDropboxConfiguration.cs index 0281e2dc0..7db934fc6 100644 --- a/src/Greenshot.Addon.Dropbox/IDropboxConfiguration.cs +++ b/src/Greenshot.Addon.Dropbox/Configuration/IDropboxConfiguration.cs @@ -25,21 +25,20 @@ using System.ComponentModel; using System.Runtime.Serialization; +using Dapplo.Config.Ini; using Dapplo.HttpExtensions.OAuth; -using Dapplo.Ini; -using Dapplo.InterfaceImpl.Extensions; using Greenshot.Addons.Core; #endregion -namespace Greenshot.Addon.Dropbox +namespace Greenshot.Addon.Dropbox.Configuration { /// /// Description of ImgurConfiguration. /// [IniSection("Dropbox")] [Description("Greenshot Dropbox Plugin configuration")] - public interface IDropboxConfiguration : IIniSection, IDestinationFileConfiguration, IOAuth2Token, INotifyPropertyChanged, ITransactionalProperties + public interface IDropboxConfiguration : IIniSection, IDestinationFileConfiguration, IOAuth2Token { [Description("After upload send Dropbox link to clipboard.")] [DefaultValue(true)] diff --git a/src/Greenshot.Addon.Dropbox/IDropboxLanguage.cs b/src/Greenshot.Addon.Dropbox/Configuration/IDropboxLanguage.cs similarity index 86% rename from src/Greenshot.Addon.Dropbox/IDropboxLanguage.cs rename to src/Greenshot.Addon.Dropbox/Configuration/IDropboxLanguage.cs index 8d021b16e..a69f8c071 100644 --- a/src/Greenshot.Addon.Dropbox/IDropboxLanguage.cs +++ b/src/Greenshot.Addon.Dropbox/Configuration/IDropboxLanguage.cs @@ -19,15 +19,14 @@ #region Usings -using System.ComponentModel; -using Dapplo.Language; +using Dapplo.Config.Language; #endregion -namespace Greenshot.Addon.Dropbox +namespace Greenshot.Addon.Dropbox.Configuration { [Language("Dropbox")] - public interface IDropboxLanguage : ILanguage, INotifyPropertyChanged + public interface IDropboxLanguage : ILanguage { string CommunicationWait { get; } diff --git a/src/Greenshot.Addon.Dropbox/Configuration/Impl/DropboxConfigurationImpl.cs b/src/Greenshot.Addon.Dropbox/Configuration/Impl/DropboxConfigurationImpl.cs new file mode 100644 index 000000000..6a7726621 --- /dev/null +++ b/src/Greenshot.Addon.Dropbox/Configuration/Impl/DropboxConfigurationImpl.cs @@ -0,0 +1,73 @@ +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub: https://github.com/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +using System; +using System.ComponentModel; +using Dapplo.Config.Ini; +using Dapplo.Config.Ini.Converters; +using Greenshot.Core.Enums; + +namespace Greenshot.Addon.Dropbox.Configuration.Impl +{ + public class DropboxConfigurationImpl : IniSectionBase, IDropboxConfiguration + { + #region Implementation of IFileConfiguration + + public string OutputFilePath { get; set; } + public bool OutputFileAllowOverwrite { get; set; } + public string OutputFileFilenamePattern { get; set; } + public OutputFormats OutputFileFormat { get; set; } + public bool OutputFileReduceColors { get; set; } + public bool OutputFileAutoReduceColors { get; set; } + public int OutputFileReduceColorsTo { get; set; } + public int OutputFileJpegQuality { get; set; } + public bool OutputFilePromptQuality { get; set; } + public uint OutputFileIncrementingNumber { get; set; } + public string OptimizePNGCommand { get; set; } + public string OptimizePNGCommandArguments { get; set; } + + #endregion + + #region Implementation of IDestinationFileConfiguration + + public bool UseOwnSettings { get; set; } + + #endregion + + #region Implementation of IOAuth2Token + + [TypeConverter(typeof(StringEncryptionTypeConverter))] + public string OAuth2AccessToken { get; set; } + + public DateTimeOffset OAuth2AccessTokenExpires { get; set; } + + [TypeConverter(typeof(StringEncryptionTypeConverter))] + public string OAuth2RefreshToken { get; set; } + + #endregion + + #region Implementation of IDropboxConfiguration + + public bool AfterUploadLinkToClipBoard { get; set; } + public string ClientId { get; set; } + public string ClientSecret { get; set; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.Dropbox/Configuration/Impl/DropboxLanguageImpl.cs b/src/Greenshot.Addon.Dropbox/Configuration/Impl/DropboxLanguageImpl.cs new file mode 100644 index 000000000..62ffdb1e2 --- /dev/null +++ b/src/Greenshot.Addon.Dropbox/Configuration/Impl/DropboxLanguageImpl.cs @@ -0,0 +1,46 @@ +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub: https://github.com/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +using System.Diagnostics.CodeAnalysis; +using Dapplo.Config.Language; + +namespace Greenshot.Addon.Dropbox.Configuration.Impl +{ + /// + /// This implements IDropboxLanguage and takes care of storing, all setters are replaced via AutoProperties.Fody + /// +#pragma warning disable CS1591 + [SuppressMessage("ReSharper", "UnassignedGetOnlyAutoProperty")] + public class DropboxLanguageImpl: LanguageBase, IDropboxLanguage + { + #region Implementation of IDropboxLanguage + + public string CommunicationWait { get; } + public string Configure { get; } + public string LabelAfterUpload { get; } + public string LabelAfterUploadLinkToClipBoard { get; } + public string LabelUploadFormat { get; } + public string SettingsTitle { get; } + public string UploadFailure { get; } + public string UploadMenuItem { get; } + public string UploadSuccess { get; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.Dropbox/DropboxAddonModule.cs b/src/Greenshot.Addon.Dropbox/DropboxAddonModule.cs index f2dd1d482..550aa6074 100644 --- a/src/Greenshot.Addon.Dropbox/DropboxAddonModule.cs +++ b/src/Greenshot.Addon.Dropbox/DropboxAddonModule.cs @@ -24,8 +24,10 @@ using Autofac; using Dapplo.Addons; using Dapplo.CaliburnMicro.Configuration; -using Dapplo.Ini; -using Dapplo.Language; +using Dapplo.Config.Ini; +using Dapplo.Config.Language; +using Greenshot.Addon.Dropbox.Configuration; +using Greenshot.Addon.Dropbox.Configuration.Impl; using Greenshot.Addon.Dropbox.ViewModels; using Greenshot.Addons.Components; @@ -37,13 +39,15 @@ namespace Greenshot.Addon.Dropbox protected override void Load(ContainerBuilder builder) { builder - .Register(context => IniConfig.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder - .Register(context => LanguageLoader.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder diff --git a/src/Greenshot.Addon.Dropbox/DropboxDestination.cs b/src/Greenshot.Addon.Dropbox/DropboxDestination.cs index f032e72b5..3ec3bf145 100644 --- a/src/Greenshot.Addon.Dropbox/DropboxDestination.cs +++ b/src/Greenshot.Addon.Dropbox/DropboxDestination.cs @@ -39,6 +39,7 @@ using Dapplo.HttpExtensions.OAuth; using Dapplo.Log; using Dapplo.Utils; using Dapplo.Windows.Clipboard; +using Greenshot.Addon.Dropbox.Configuration; using Greenshot.Addon.Dropbox.Entities; using Greenshot.Addons; using Greenshot.Addons.Components; @@ -197,7 +198,7 @@ namespace Greenshot.Addon.Dropbox /// IProgress /// CancellationToken /// Url as string - private async Task UploadAsync(string filename, HttpContent content, IProgress progress = null, CancellationToken cancellationToken = default(CancellationToken)) + private async Task UploadAsync(string filename, HttpContent content, IProgress progress = null, CancellationToken cancellationToken = default) { var oAuthHttpBehaviour = _oAuthHttpBehaviour.ShallowClone(); // Use UploadProgress diff --git a/src/Greenshot.Addon.Dropbox/Entities/ErrorTag.cs b/src/Greenshot.Addon.Dropbox/Entities/ErrorTag.cs index b6099cb18..98f7c382c 100644 --- a/src/Greenshot.Addon.Dropbox/Entities/ErrorTag.cs +++ b/src/Greenshot.Addon.Dropbox/Entities/ErrorTag.cs @@ -1,4 +1,23 @@ -using Newtonsoft.Json; +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2017 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub: https://github.com/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +using Newtonsoft.Json; namespace Greenshot.Addon.Dropbox.Entities { diff --git a/src/Greenshot.Addon.Dropbox/Entities/SharingInfo.cs b/src/Greenshot.Addon.Dropbox/Entities/SharingInfo.cs index 90621d9ee..c29f22d14 100644 --- a/src/Greenshot.Addon.Dropbox/Entities/SharingInfo.cs +++ b/src/Greenshot.Addon.Dropbox/Entities/SharingInfo.cs @@ -1,4 +1,23 @@ -using Newtonsoft.Json; +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2017 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub: https://github.com/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +using Newtonsoft.Json; namespace Greenshot.Addon.Dropbox.Entities { diff --git a/src/Greenshot.Addon.Dropbox/FodyWeavers.xml b/src/Greenshot.Addon.Dropbox/FodyWeavers.xml new file mode 100644 index 000000000..7f5a26669 --- /dev/null +++ b/src/Greenshot.Addon.Dropbox/FodyWeavers.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.Dropbox/FodyWeavers.xsd b/src/Greenshot.Addon.Dropbox/FodyWeavers.xsd new file mode 100644 index 000000000..061979a03 --- /dev/null +++ b/src/Greenshot.Addon.Dropbox/FodyWeavers.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + 'true' to run assembly verification on the target assembly after all weavers have been finished. + + + + + A comma separated list of error codes that can be safely ignored in assembly verification. + + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.Dropbox/Greenshot.Addon.Dropbox.csproj b/src/Greenshot.Addon.Dropbox/Greenshot.Addon.Dropbox.csproj index 1a7825e90..22977b908 100644 --- a/src/Greenshot.Addon.Dropbox/Greenshot.Addon.Dropbox.csproj +++ b/src/Greenshot.Addon.Dropbox/Greenshot.Addon.Dropbox.csproj @@ -1,137 +1,20 @@ - - - + + - {AD7CFFE2-40E7-46CF-A172-D48CF7AE9A12} - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Library Greenshot.Addon.Dropbox Greenshot.Addon.Dropbox - v4.6.1 - Properties - False - False - 4 - false - - - - - - 3.5 + net471;netcoreapp3.0 - + - - ..\packages\Autofac.4.8.1\lib\net45\Autofac.dll - - - ..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll - - - ..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll - - - ..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll - - - ..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll - - - ..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll - - - ..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll - - - ..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll - - - ..\packages\Dapplo.CaliburnMicro.Configuration.1.0.75\lib\net461\Dapplo.CaliburnMicro.Configuration.dll - - - ..\packages\Dapplo.CaliburnMicro.Dapp.1.0.75\lib\net461\Dapplo.CaliburnMicro.Dapp.dll - - - ..\packages\Dapplo.CaliburnMicro.Menu.1.0.75\lib\net461\Dapplo.CaliburnMicro.Menu.dll - - - ..\packages\Dapplo.CaliburnMicro.Security.1.0.75\lib\net461\Dapplo.CaliburnMicro.Security.dll - - - ..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll - - - ..\packages\Dapplo.HttpExtensions.0.8.46\lib\net46\Dapplo.HttpExtensions.dll - - - ..\packages\Dapplo.HttpExtensions.JsonNet.0.8.46\lib\net46\Dapplo.HttpExtensions.JsonNet.dll - - - ..\packages\Dapplo.HttpExtensions.OAuth.0.8.46\lib\net46\Dapplo.HttpExtensions.OAuth.dll - - - ..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll - - - ..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll - - - ..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll - - - ..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll - - - ..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll - - - ..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll - - - ..\packages\Dapplo.Windows.Clipboard.0.5.109\lib\net461\Dapplo.Windows.Clipboard.dll - - - ..\packages\Dapplo.Windows.Com.0.5.109\lib\net461\Dapplo.Windows.Com.dll - - - ..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll - - - ..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll - - - ..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll - - - ..\packages\Dapplo.Windows.EmbeddedBrowser.0.5.109\lib\net461\Dapplo.Windows.EmbeddedBrowser.dll - - - ..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll - - - ..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll - - - ..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll - - - ..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll - - - ..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll - + + PreserveNewest + + + + - - ..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll - @@ -140,99 +23,38 @@ - - ..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\System.Windows.Interactivity.dll - + - - - - - - - - - - - - - - + + - - - - + + + + - - {bf35190d-b2a7-4cfa-b397-51cb384cf0d7} - Greenshot.Core - - - {f041c685-eb96-4ed1-9ace-0f5bd836610f} - Greenshot.Gfx - - - {5B924697-4DCD-4F98-85F1-105CB84B7341} - Greenshot.Addons - + + + + + + + + + all + runtime; build; native; contentfiles; analyzers + - - - MSBuild:Compile - Designer - - - - - - - - - - - - - - - - - - - - - - - mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).dll" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" -copy "$(ProjectDir)\Languages\*.xml" "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" - - - - \ No newline at end of file + diff --git a/src/Greenshot.Addon.Dropbox/Properties/AssemblyInfo.cs b/src/Greenshot.Addon.Dropbox/Properties/AssemblyInfo.cs deleted file mode 100644 index 803f5d137..000000000 --- a/src/Greenshot.Addon.Dropbox/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,53 +0,0 @@ -#region Greenshot GNU General Public License - -// Greenshot - a free and open source screenshot tool -// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom -// -// For more information see: http://getgreenshot.org/ -// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 1 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -#endregion - -#region Usings - -using System.Reflection; -using System.Runtime.InteropServices; - -#endregion - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("Greenshot.Addon.Dropbox")] -[assembly: AssemblyDescription("A plugin to upload images to Dropbox")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Greenshot & F. Noel")] -[assembly: AssemblyProduct("Dropbox Plugin")] -[assembly: AssemblyCopyright("Copyright (C) 2012")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// This sets the default COM visibility of types in the assembly to invisible. -// If you need to expose a type to COM, use [ComVisible(true)] on that type. - -[assembly: ComVisible(false)] - -// The assembly version, replaced by build scripts - -[assembly: AssemblyVersion("1.3.0.0")] -[assembly: AssemblyInformationalVersion("1.3.0.0")] -[assembly: AssemblyFileVersion("1.3.0.0")] \ No newline at end of file diff --git a/src/Greenshot.Addon.Dropbox/ViewModels/DropboxConfigViewModel.cs b/src/Greenshot.Addon.Dropbox/ViewModels/DropboxConfigViewModel.cs index 73fb04dcb..a374d28a2 100644 --- a/src/Greenshot.Addon.Dropbox/ViewModels/DropboxConfigViewModel.cs +++ b/src/Greenshot.Addon.Dropbox/ViewModels/DropboxConfigViewModel.cs @@ -24,6 +24,7 @@ using System.Reactive.Disposables; using Dapplo.CaliburnMicro.Configuration; using Dapplo.CaliburnMicro.Extensions; +using Greenshot.Addon.Dropbox.Configuration; using Greenshot.Addons.Core.Enums; using Greenshot.Addons.ViewModels; diff --git a/src/Greenshot.Addon.Dropbox/app.config b/src/Greenshot.Addon.Dropbox/app.config index c20c0c817..6a1ce8f95 100644 --- a/src/Greenshot.Addon.Dropbox/app.config +++ b/src/Greenshot.Addon.Dropbox/app.config @@ -1,27 +1,8 @@  - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + diff --git a/src/Greenshot.Addon.Dropbox/packages.config b/src/Greenshot.Addon.Dropbox/packages.config deleted file mode 100644 index 056ca4629..000000000 --- a/src/Greenshot.Addon.Dropbox/packages.config +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.Addon.ExternalCommand/ExternalCommandConfigurationExtensions.cs b/src/Greenshot.Addon.ExternalCommand/Configuration/ExternalCommandConfigurationExtensions.cs similarity index 96% rename from src/Greenshot.Addon.ExternalCommand/ExternalCommandConfigurationExtensions.cs rename to src/Greenshot.Addon.ExternalCommand/Configuration/ExternalCommandConfigurationExtensions.cs index 8b2377e46..09dd9177c 100644 --- a/src/Greenshot.Addon.ExternalCommand/ExternalCommandConfigurationExtensions.cs +++ b/src/Greenshot.Addon.ExternalCommand/Configuration/ExternalCommandConfigurationExtensions.cs @@ -26,7 +26,7 @@ using System.IO; using Greenshot.Addon.ExternalCommand.Entities; using Greenshot.Addons.Core; -namespace Greenshot.Addon.ExternalCommand +namespace Greenshot.Addon.ExternalCommand.Configuration { /// /// Helper extensions for the external command configuration diff --git a/src/Greenshot.Addon.ExternalCommand/IExternalCommandConfiguration.cs b/src/Greenshot.Addon.ExternalCommand/Configuration/IExternalCommandConfiguration.cs similarity index 85% rename from src/Greenshot.Addon.ExternalCommand/IExternalCommandConfiguration.cs rename to src/Greenshot.Addon.ExternalCommand/Configuration/IExternalCommandConfiguration.cs index 6d3796a38..73680e07e 100644 --- a/src/Greenshot.Addon.ExternalCommand/IExternalCommandConfiguration.cs +++ b/src/Greenshot.Addon.ExternalCommand/Configuration/IExternalCommandConfiguration.cs @@ -25,21 +25,22 @@ using System.Collections.Generic; using System.ComponentModel; -using Dapplo.Ini; -using Dapplo.InterfaceImpl.Extensions; +using System.Diagnostics.CodeAnalysis; +using Dapplo.Config.Ini; using Greenshot.Addon.ExternalCommand.Entities; using Greenshot.Addons.Core; #endregion -namespace Greenshot.Addon.ExternalCommand +namespace Greenshot.Addon.ExternalCommand.Configuration { /// /// Description of FlickrConfiguration. /// [IniSection("ExternalCommand")] [Description("Greenshot ExternalCommand Plugin configuration")] - public interface IExternalCommandConfiguration : IIniSection, IDestinationFileConfiguration, ITransactionalProperties, INotifyPropertyChanged + [SuppressMessage("ReSharper", "UnusedMember.Global")] + public interface IExternalCommandConfiguration : IIniSection, IDestinationFileConfiguration { [Description("The commands that are available.")] IList Commands { get; set; } diff --git a/src/Greenshot.Addon.ExternalCommand/IExternalCommandLanguage.cs b/src/Greenshot.Addon.ExternalCommand/Configuration/IExternalCommandLanguage.cs similarity index 84% rename from src/Greenshot.Addon.ExternalCommand/IExternalCommandLanguage.cs rename to src/Greenshot.Addon.ExternalCommand/Configuration/IExternalCommandLanguage.cs index 88f978307..66f2b991a 100644 --- a/src/Greenshot.Addon.ExternalCommand/IExternalCommandLanguage.cs +++ b/src/Greenshot.Addon.ExternalCommand/Configuration/IExternalCommandLanguage.cs @@ -21,13 +21,14 @@ #endregion -using System.ComponentModel; -using Dapplo.Language; +using System.Diagnostics.CodeAnalysis; +using Dapplo.Config.Language; -namespace Greenshot.Addon.ExternalCommand +namespace Greenshot.Addon.ExternalCommand.Configuration { [Language("ExternalCommand")] - public interface IExternalCommandLanguage : ILanguage, INotifyPropertyChanged + [SuppressMessage("ReSharper", "UnusedMember.Global")] + public interface IExternalCommandLanguage : ILanguage { string ContextmenuConfigure { get; } string SettingsEdit { get; } diff --git a/src/Greenshot.Addon.ExternalCommand/Configuration/Impl/ExternalCommandConfigurationImpl.cs b/src/Greenshot.Addon.ExternalCommand/Configuration/Impl/ExternalCommandConfigurationImpl.cs new file mode 100644 index 000000000..1c6ac8333 --- /dev/null +++ b/src/Greenshot.Addon.ExternalCommand/Configuration/Impl/ExternalCommandConfigurationImpl.cs @@ -0,0 +1,77 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System.Collections.Generic; +using Dapplo.Config.Ini; +using Greenshot.Addon.ExternalCommand.Entities; +using Greenshot.Core.Enums; + +namespace Greenshot.Addon.ExternalCommand.Configuration.Impl +{ + internal class ExternalCommandConfigurationImpl : IniSectionBase, IExternalCommandConfiguration + { + #region Overrides of IniSectionBase + + public override void AfterLoad() + { + ExternalCommandConfigurationExtensions.AfterLoad(this); + base.AfterLoad(); + } + + #endregion + + #region Implementation of IFileConfiguration + + public string OutputFilePath { get; set; } + public bool OutputFileAllowOverwrite { get; set; } + public string OutputFileFilenamePattern { get; set; } + public OutputFormats OutputFileFormat { get; set; } + public bool OutputFileReduceColors { get; set; } + public bool OutputFileAutoReduceColors { get; set; } + public int OutputFileReduceColorsTo { get; set; } + public int OutputFileJpegQuality { get; set; } + public bool OutputFilePromptQuality { get; set; } + public uint OutputFileIncrementingNumber { get; set; } + public string OptimizePNGCommand { get; set; } + public string OptimizePNGCommandArguments { get; set; } + + #endregion + + #region Implementation of IDestinationFileConfiguration + + public bool UseOwnSettings { get; set; } + + #endregion + + #region Implementation of IExternalCommandConfiguration + + public IList Commands { get; set; } + public IDictionary Commandline { get; set; } + public IDictionary Argument { get; set; } + public IDictionary RunInbackground { get; set; } + public IDictionary Behaviors { get; set; } + public IList DeletedBuildInCommands { get; set; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.ExternalCommand/Configuration/Impl/ExternalCommandLanguageImpl.cs b/src/Greenshot.Addon.ExternalCommand/Configuration/Impl/ExternalCommandLanguageImpl.cs new file mode 100644 index 000000000..33b59feab --- /dev/null +++ b/src/Greenshot.Addon.ExternalCommand/Configuration/Impl/ExternalCommandLanguageImpl.cs @@ -0,0 +1,51 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System.Diagnostics.CodeAnalysis; +using Dapplo.Config.Language; + +namespace Greenshot.Addon.ExternalCommand.Configuration.Impl +{ + /// + /// This implements IExternalCommandLanguage and takes care of storing, all setters are replaced via AutoProperties.Fody + /// + [SuppressMessage("ReSharper", "UnassignedGetOnlyAutoProperty")] +#pragma warning disable CS1591 + public class ExternalCommandLanguageImpl : LanguageBase, IExternalCommandLanguage + { + #region Implementation of IExternalCommandLanguage + + public string ContextmenuConfigure { get; } + public string SettingsEdit { get; } + public string SettingsDelete { get; } + public string SettingsNew { get; } + public string SettingsDetailTitle { get; } + public string SettingsTitle { get; } + public string LabelArgument { get; } + public string LabelCommand { get; } + public string LabelInformation { get; } + public string LabelName { get; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.ExternalCommand/ExternalCommandAddonModule.cs b/src/Greenshot.Addon.ExternalCommand/ExternalCommandAddonModule.cs index 0a40ef8f2..51e898cbd 100644 --- a/src/Greenshot.Addon.ExternalCommand/ExternalCommandAddonModule.cs +++ b/src/Greenshot.Addon.ExternalCommand/ExternalCommandAddonModule.cs @@ -24,8 +24,10 @@ using Autofac; using Dapplo.Addons; using Dapplo.CaliburnMicro.Configuration; -using Dapplo.Ini; -using Dapplo.Language; +using Dapplo.Config.Ini; +using Dapplo.Config.Language; +using Greenshot.Addon.ExternalCommand.Configuration; +using Greenshot.Addon.ExternalCommand.Configuration.Impl; using Greenshot.Addon.ExternalCommand.ViewModels; using Greenshot.Addons.Components; @@ -37,13 +39,15 @@ namespace Greenshot.Addon.ExternalCommand protected override void Load(ContainerBuilder builder) { builder - .Register(context => IniConfig.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder - .Register(context => LanguageLoader.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder @@ -60,20 +64,7 @@ namespace Greenshot.Addon.ExternalCommand .AsSelf() .SingleInstance(); - builder.RegisterType() - .As() - .SingleInstance(); - base.Load(builder); } - - /// - private class SetupConfig : IStartable - { - public void Start() - { - IniConfig.Current.AfterLoad(externalCommandConfiguration => externalCommandConfiguration.AfterLoad()); - } - } } } diff --git a/src/Greenshot.Addon.ExternalCommand/ExternalCommandDestination.cs b/src/Greenshot.Addon.ExternalCommand/ExternalCommandDestination.cs index bece4adc2..2264e41da 100644 --- a/src/Greenshot.Addon.ExternalCommand/ExternalCommandDestination.cs +++ b/src/Greenshot.Addon.ExternalCommand/ExternalCommandDestination.cs @@ -29,6 +29,7 @@ using System.Text.RegularExpressions; using System.Threading.Tasks; using CliWrap; using Dapplo.Windows.Clipboard; +using Greenshot.Addon.ExternalCommand.Configuration; using Greenshot.Addon.ExternalCommand.Entities; using Greenshot.Addons; using Greenshot.Addons.Components; @@ -83,31 +84,30 @@ namespace Greenshot.Addon.ExternalCommand var fullPath = captureDetails.Filename ?? surface.SaveNamedTmpFile(CoreConfiguration, _externalCommandConfiguration); - using (var cli = new Cli(_externalCommandDefinition.Command)) + var cli = new Cli(_externalCommandDefinition.Command); + var arguments = string.Format(_externalCommandDefinition.Arguments, fullPath); + // Execute + cli.SetArguments(arguments); + var output = await cli.ExecuteAsync().ConfigureAwait(true); + + if (_externalCommandDefinition.CommandBehavior.HasFlag(CommandBehaviors.ParseOutputForUris)) { - var arguments = string.Format(_externalCommandDefinition.Arguments, fullPath); - // Execute - var output = await cli.ExecuteAsync(arguments).ConfigureAwait(true); - - if (_externalCommandDefinition.CommandBehavior.HasFlag(CommandBehaviors.ParseOutputForUris)) + var uriMatches = UriRegexp.Matches(output.StandardOutput); + if (uriMatches.Count > 0) { - var uriMatches = UriRegexp.Matches(output.StandardOutput); - if (uriMatches.Count > 0) - { - exportInformation.Uri = uriMatches[0].Groups[1].Value; + exportInformation.Uri = uriMatches[0].Groups[1].Value; - using (var clipboardAccessToken = ClipboardNative.Access()) - { - clipboardAccessToken.ClearContents(); - clipboardAccessToken.SetAsUrl(exportInformation.Uri); - } + using (var clipboardAccessToken = ClipboardNative.Access()) + { + clipboardAccessToken.ClearContents(); + clipboardAccessToken.SetAsUrl(exportInformation.Uri); } } + } - if (_externalCommandDefinition.CommandBehavior.HasFlag(CommandBehaviors.DeleteOnExit)) - { - File.Delete(fullPath); - } + if (_externalCommandDefinition.CommandBehavior.HasFlag(CommandBehaviors.DeleteOnExit)) + { + File.Delete(fullPath); } _exportNotification.NotifyOfExport(this, exportInformation, surface); diff --git a/src/Greenshot.Addon.ExternalCommand/ExternalCommandDestinationProvider.cs b/src/Greenshot.Addon.ExternalCommand/ExternalCommandDestinationProvider.cs index c4c39158a..2547b00fc 100644 --- a/src/Greenshot.Addon.ExternalCommand/ExternalCommandDestinationProvider.cs +++ b/src/Greenshot.Addon.ExternalCommand/ExternalCommandDestinationProvider.cs @@ -30,6 +30,7 @@ using System.Linq; using Dapplo.Addons; using Dapplo.CaliburnMicro; using Dapplo.Log; +using Greenshot.Addon.ExternalCommand.Configuration; using Greenshot.Addons; using Greenshot.Addons.Components; using Greenshot.Addons.Core; @@ -41,7 +42,7 @@ namespace Greenshot.Addon.ExternalCommand /// /// Generate the external command destinations /// - [Service(nameof(ExternalCommandDestinationProvider), nameof(CaliburnServices.IniSectionService))] + [Service(nameof(ExternalCommandDestinationProvider), nameof(CaliburnServices.ConfigurationService))] public sealed class ExternalCommandDestinationProvider : IStartup, IDestinationProvider { private static readonly LogSource Log = new LogSource(); diff --git a/src/Greenshot.Addon.ExternalCommand/FodyWeavers.xml b/src/Greenshot.Addon.ExternalCommand/FodyWeavers.xml new file mode 100644 index 000000000..7f5a26669 --- /dev/null +++ b/src/Greenshot.Addon.ExternalCommand/FodyWeavers.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.ExternalCommand/FodyWeavers.xsd b/src/Greenshot.Addon.ExternalCommand/FodyWeavers.xsd new file mode 100644 index 000000000..061979a03 --- /dev/null +++ b/src/Greenshot.Addon.ExternalCommand/FodyWeavers.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + 'true' to run assembly verification on the target assembly after all weavers have been finished. + + + + + A comma separated list of error codes that can be safely ignored in assembly verification. + + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.ExternalCommand/Greenshot.Addon.ExternalCommand.csproj b/src/Greenshot.Addon.ExternalCommand/Greenshot.Addon.ExternalCommand.csproj index 6f8e23d56..c52ae3984 100644 --- a/src/Greenshot.Addon.ExternalCommand/Greenshot.Addon.ExternalCommand.csproj +++ b/src/Greenshot.Addon.ExternalCommand/Greenshot.Addon.ExternalCommand.csproj @@ -1,135 +1,18 @@ - - - + + - {47F23C86-604E-4CC3-8767-B3D4088F30BB} - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Library Greenshot.Addon.ExternalCommand Greenshot.Addon.ExternalCommand - v4.6.1 - Properties - False - False - 4 - false - OnBuildSuccess - - - - - - 3.5 + net471;netcoreapp3.0 - - false - latest - - - false - - - false - latest - - - false - - + - - ..\packages\Autofac.4.8.1\lib\net45\Autofac.dll - - - ..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll - - - ..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll - - - ..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll - - - ..\packages\CliWrap.1.8.5\lib\net45\CliWrap.dll - - - ..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll - - - ..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll - - - ..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll - - - ..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll - - - ..\packages\Dapplo.CaliburnMicro.Configuration.1.0.75\lib\net461\Dapplo.CaliburnMicro.Configuration.dll - - - ..\packages\Dapplo.CaliburnMicro.Dapp.1.0.75\lib\net461\Dapplo.CaliburnMicro.Dapp.dll - - - ..\packages\Dapplo.CaliburnMicro.Menu.1.0.75\lib\net461\Dapplo.CaliburnMicro.Menu.dll - - - ..\packages\Dapplo.CaliburnMicro.Security.1.0.75\lib\net461\Dapplo.CaliburnMicro.Security.dll - - - ..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll - - - ..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll - - - ..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll - - - ..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll - - - ..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll - - - ..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll - - - ..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll - - - ..\packages\Dapplo.Windows.Clipboard.0.5.109\lib\net461\Dapplo.Windows.Clipboard.dll - - - ..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll - - - ..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll - - - ..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll - - - ..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll - - - ..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll - - - ..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll - - - ..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll - - - ..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll - + + PreserveNewest + + + + @@ -138,128 +21,30 @@ - - ..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\System.Windows.Interactivity.dll - + - - - - - - - - - - - - - - - - + + + + - - {bf35190d-b2a7-4cfa-b397-51cb384cf0d7} - Greenshot.Core - - - {f041c685-eb96-4ed1-9ace-0f5bd836610f} - Greenshot.Gfx - - - {5B924697-4DCD-4F98-85F1-105CB84B7341} - Greenshot.Addons - + + + + + + + all + runtime; build; native; contentfiles; analyzers + - - - - - - - - - - - - - - - - - - - - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - - mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).dll" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -copy "$(ProjectDir)bin\$(Configuration)\CliWrap.dll" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" -copy "$(ProjectDir)\Languages\*.xml" "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" - - - False - Off - 4194304 - x86 - 4096 - - - False - Off - 4194304 - AnyCPU - 4096 - - - DEBUG;TRACE - False - True - Full - true - - - TRACE - True - False - None - false - - \ No newline at end of file + diff --git a/src/Greenshot.Addon.ExternalCommand/Properties/AssemblyInfo.cs b/src/Greenshot.Addon.ExternalCommand/Properties/AssemblyInfo.cs deleted file mode 100644 index 9290dcebc..000000000 --- a/src/Greenshot.Addon.ExternalCommand/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,53 +0,0 @@ -#region Greenshot GNU General Public License - -// Greenshot - a free and open source screenshot tool -// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom -// -// For more information see: http://getgreenshot.org/ -// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 1 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -#endregion - -#region Usings - -using System.Reflection; -using System.Runtime.InteropServices; - -#endregion - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("Greenshot.Addon.ExternalCommand")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Greenshot")] -[assembly: AssemblyProduct("External command Plugin")] -[assembly: AssemblyCopyright("Copyright (C) 2007-2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// This sets the default COM visibility of types in the assembly to invisible. -// If you need to expose a type to COM, use [ComVisible(true)] on that type. - -[assembly: ComVisible(false)] - -// The assembly version, replaced by build scripts - -[assembly: AssemblyVersion("1.3.0.0")] -[assembly: AssemblyInformationalVersion("1.3.0.0")] -[assembly: AssemblyFileVersion("1.3.0.0")] \ No newline at end of file diff --git a/src/Greenshot.Addon.ExternalCommand/ViewModels/ExternalCommandConfigViewModel.cs b/src/Greenshot.Addon.ExternalCommand/ViewModels/ExternalCommandConfigViewModel.cs index 739dd836f..d9d79f3e9 100644 --- a/src/Greenshot.Addon.ExternalCommand/ViewModels/ExternalCommandConfigViewModel.cs +++ b/src/Greenshot.Addon.ExternalCommand/ViewModels/ExternalCommandConfigViewModel.cs @@ -25,6 +25,7 @@ using System.Reactive.Disposables; using Caliburn.Micro; using Dapplo.CaliburnMicro.Configuration; using Dapplo.CaliburnMicro.Extensions; +using Greenshot.Addon.ExternalCommand.Configuration; using Greenshot.Addons; using Greenshot.Addons.Core.Enums; using Greenshot.Addons.ViewModels; diff --git a/src/Greenshot.Addon.ExternalCommand/ViewModels/ExternalCommandDetailsViewModel.cs b/src/Greenshot.Addon.ExternalCommand/ViewModels/ExternalCommandDetailsViewModel.cs index a4b48561d..567e5f782 100644 --- a/src/Greenshot.Addon.ExternalCommand/ViewModels/ExternalCommandDetailsViewModel.cs +++ b/src/Greenshot.Addon.ExternalCommand/ViewModels/ExternalCommandDetailsViewModel.cs @@ -22,6 +22,7 @@ #endregion using Caliburn.Micro; +using Greenshot.Addon.ExternalCommand.Configuration; using Greenshot.Addon.ExternalCommand.Entities; namespace Greenshot.Addon.ExternalCommand.ViewModels diff --git a/src/Greenshot.Addon.ExternalCommand/ViewModels/ExternalCommandMasterViewModel.cs b/src/Greenshot.Addon.ExternalCommand/ViewModels/ExternalCommandMasterViewModel.cs index e2abd8f67..b42a6abd4 100644 --- a/src/Greenshot.Addon.ExternalCommand/ViewModels/ExternalCommandMasterViewModel.cs +++ b/src/Greenshot.Addon.ExternalCommand/ViewModels/ExternalCommandMasterViewModel.cs @@ -23,6 +23,7 @@ using System.Linq; using Caliburn.Micro; +using Greenshot.Addon.ExternalCommand.Configuration; using Greenshot.Addon.ExternalCommand.Entities; namespace Greenshot.Addon.ExternalCommand.ViewModels diff --git a/src/Greenshot.Addon.ExternalCommand/packages.config b/src/Greenshot.Addon.ExternalCommand/packages.config deleted file mode 100644 index 8d64d41fb..000000000 --- a/src/Greenshot.Addon.ExternalCommand/packages.config +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.Addon.Flickr/IFlickrConfiguration.cs b/src/Greenshot.Addon.Flickr/Configuration/IFlickrConfiguration.cs similarity index 74% rename from src/Greenshot.Addon.Flickr/IFlickrConfiguration.cs rename to src/Greenshot.Addon.Flickr/Configuration/IFlickrConfiguration.cs index 98f90de05..7ea2f7848 100644 --- a/src/Greenshot.Addon.Flickr/IFlickrConfiguration.cs +++ b/src/Greenshot.Addon.Flickr/Configuration/IFlickrConfiguration.cs @@ -24,29 +24,23 @@ #region Usings using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; using System.Runtime.Serialization; +using Dapplo.Config.Ini; using Dapplo.HttpExtensions.OAuth; -using Dapplo.Ini; -using Dapplo.InterfaceImpl.Extensions; using Greenshot.Addons.Core; #endregion -namespace Greenshot.Addon.Flickr +namespace Greenshot.Addon.Flickr.Configuration { - public enum SafetyLevel - { - Safe = 1, - Moderate = 2, - Restricted = 3 - } - - /// - /// Description of FlickrConfiguration. + /// + /// This defines the configuration for the Flickr addon /// [IniSection("Flickr")] [Description("Greenshot Flickr Plugin configuration")] - public interface IFlickrConfiguration : IIniSection, IDestinationFileConfiguration, INotifyPropertyChanged, ITransactionalProperties, IOAuth1Token + [SuppressMessage("ReSharper", "UnusedMember.Global")] + public interface IFlickrConfiguration : IIniSection, IDestinationFileConfiguration, IOAuth1Token { [Description("IsPublic.")] [DefaultValue(true)] @@ -60,18 +54,30 @@ namespace Greenshot.Addon.Flickr [DefaultValue(true)] bool IsFriend { get; set; } + /// + /// + /// [Description("Safety level")] [DefaultValue(SafetyLevel.Safe)] SafetyLevel SafetyLevel { get; set; } + /// + /// Hide the image from the search results in Flickr + /// [Description("Hidden from search")] [DefaultValue(false)] bool HiddenFromSearch { get; set; } + /// + /// Place the link to Flickr onto the clipboard after it's uploaded + /// [Description("After upload send flickr link to clipboard.")] [DefaultValue(true)] bool AfterUploadLinkToClipBoard { get; set; } + /// + /// Defines if we use the pagelink or direct link on the clipboard + /// [Description("Use pagelink instead of direct link on the clipboard")] [DefaultValue(false)] bool UsePageLink { get; set; } diff --git a/src/Greenshot.Addon.Flickr/IFlickrLanguage.cs b/src/Greenshot.Addon.Flickr/Configuration/IFlickrLanguage.cs similarity index 84% rename from src/Greenshot.Addon.Flickr/IFlickrLanguage.cs rename to src/Greenshot.Addon.Flickr/Configuration/IFlickrLanguage.cs index a238f9f20..279e65656 100644 --- a/src/Greenshot.Addon.Flickr/IFlickrLanguage.cs +++ b/src/Greenshot.Addon.Flickr/Configuration/IFlickrLanguage.cs @@ -19,15 +19,16 @@ #region Usings -using System.ComponentModel; -using Dapplo.Language; +using System.Diagnostics.CodeAnalysis; +using Dapplo.Config.Language; #endregion -namespace Greenshot.Addon.Flickr +namespace Greenshot.Addon.Flickr.Configuration { [Language("Flickr")] - public interface IFlickrLanguage : ILanguage, INotifyPropertyChanged + [SuppressMessage("ReSharper", "UnusedMember.Global")] + public interface IFlickrLanguage : ILanguage { string CommunicationWait { get; } diff --git a/src/Greenshot.Addon.Flickr/Configuration/Impl/FlickrConfigurationImpl.cs b/src/Greenshot.Addon.Flickr/Configuration/Impl/FlickrConfigurationImpl.cs new file mode 100644 index 000000000..c45483262 --- /dev/null +++ b/src/Greenshot.Addon.Flickr/Configuration/Impl/FlickrConfigurationImpl.cs @@ -0,0 +1,83 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System.ComponentModel; +using Dapplo.Config.Ini; +using Dapplo.Config.Ini.Converters; +using Greenshot.Core.Enums; + +namespace Greenshot.Addon.Flickr.Configuration.Impl +{ + internal class FlickrConfigurationImpl : IniSectionBase, IFlickrConfiguration + { + #region Implementation of IFileConfiguration + + public string OutputFilePath { get; set; } + public bool OutputFileAllowOverwrite { get; set; } + public string OutputFileFilenamePattern { get; set; } + public OutputFormats OutputFileFormat { get; set; } + public bool OutputFileReduceColors { get; set; } + public bool OutputFileAutoReduceColors { get; set; } + public int OutputFileReduceColorsTo { get; set; } + public int OutputFileJpegQuality { get; set; } + public bool OutputFilePromptQuality { get; set; } + public uint OutputFileIncrementingNumber { get; set; } + public string OptimizePNGCommand { get; set; } + public string OptimizePNGCommandArguments { get; set; } + + #endregion + + #region Implementation of IDestinationFileConfiguration + + public bool UseOwnSettings { get; set; } + + #endregion + + #region Implementation of IOAuth1Token + + [TypeConverter(typeof(StringEncryptionTypeConverter))] + public string OAuthToken { get; set; } + + [TypeConverter(typeof(StringEncryptionTypeConverter))] + public string OAuthTokenSecret { get; set; } + + [TypeConverter(typeof(StringEncryptionTypeConverter))] + public string OAuthTokenVerifier { get; set; } + + #endregion + + #region Implementation of IFlickrConfiguration + + public bool IsPublic { get; set; } + public bool IsFamily { get; set; } + public bool IsFriend { get; set; } + public SafetyLevel SafetyLevel { get; set; } + public bool HiddenFromSearch { get; set; } + public bool AfterUploadLinkToClipBoard { get; set; } + public bool UsePageLink { get; set; } + public string ClientId { get; set; } + public string ClientSecret { get; set; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.Flickr/Configuration/Impl/FlickrLanguageImpl.cs b/src/Greenshot.Addon.Flickr/Configuration/Impl/FlickrLanguageImpl.cs new file mode 100644 index 000000000..d59572fad --- /dev/null +++ b/src/Greenshot.Addon.Flickr/Configuration/Impl/FlickrLanguageImpl.cs @@ -0,0 +1,55 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System.Diagnostics.CodeAnalysis; +using Dapplo.Config.Language; + +namespace Greenshot.Addon.Flickr.Configuration.Impl +{ + /// + /// This implements IFlickrLanguage and takes care of storing, all setters are replaced via AutoProperties.Fody + /// +#pragma warning disable CS1591 + [SuppressMessage("ReSharper", "UnassignedGetOnlyAutoProperty")] + public class FlickrLanguageImpl : LanguageBase, IFlickrLanguage + { + #region Implementation of IFlickrLanguage + + public string CommunicationWait { get; } + public string Configure { get; } + public string LabelAfterUpload { get; } + public string LabelAfterUploadLinkToClipBoard { get; } + public string LabelHiddenFromSearch { get; } + public string LabelSafetyLevel { get; } + public string LabelUploadFormat { get; } + public string SettingsTitle { get; } + public string UploadFailure { get; } + public string UploadMenuItem { get; } + public string UploadSuccess { get; } + public string Public { get; } + public string Family { get; } + public string Friend { get; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.Office/OfficeInterop/MsoScaleFrom.cs b/src/Greenshot.Addon.Flickr/Configuration/SafetyLevel.cs similarity index 75% rename from src/Greenshot.Addon.Office/OfficeInterop/MsoScaleFrom.cs rename to src/Greenshot.Addon.Flickr/Configuration/SafetyLevel.cs index 17abf08f1..6949bbf7d 100644 --- a/src/Greenshot.Addon.Office/OfficeInterop/MsoScaleFrom.cs +++ b/src/Greenshot.Addon.Flickr/Configuration/SafetyLevel.cs @@ -1,4 +1,4 @@ -#region Greenshot GNU General Public License +#region Greenshot GNU General Public License // Greenshot - a free and open source screenshot tool // Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom @@ -21,12 +21,15 @@ #endregion -namespace Greenshot.Addon.Office.OfficeInterop +namespace Greenshot.Addon.Flickr.Configuration { - public enum MsoScaleFrom - { - msoScaleFromTopLeft = 0, - msoScaleFromMiddle = 1, - msoScaleFromBottomRight = 2 - } + /// + /// The Flickr SafetyLevel + /// + public enum SafetyLevel + { + Safe = 1, + Moderate = 2, + Restricted = 3 + } } \ No newline at end of file diff --git a/src/Greenshot.Addon.Flickr/FlickrAddonModule.cs b/src/Greenshot.Addon.Flickr/FlickrAddonModule.cs index 6de005a52..b7f08a5a4 100644 --- a/src/Greenshot.Addon.Flickr/FlickrAddonModule.cs +++ b/src/Greenshot.Addon.Flickr/FlickrAddonModule.cs @@ -24,8 +24,10 @@ using Autofac; using Dapplo.Addons; using Dapplo.CaliburnMicro.Configuration; -using Dapplo.Ini; -using Dapplo.Language; +using Dapplo.Config.Ini; +using Dapplo.Config.Language; +using Greenshot.Addon.Flickr.Configuration; +using Greenshot.Addon.Flickr.Configuration.Impl; using Greenshot.Addon.Flickr.ViewModels; using Greenshot.Addons.Components; @@ -37,13 +39,15 @@ namespace Greenshot.Addon.Flickr protected override void Load(ContainerBuilder builder) { builder - .Register(context => IniConfig.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder - .Register(context => LanguageLoader.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder diff --git a/src/Greenshot.Addon.Flickr/FlickrDestination.cs b/src/Greenshot.Addon.Flickr/FlickrDestination.cs index b3b6da9eb..d2c899a5b 100644 --- a/src/Greenshot.Addon.Flickr/FlickrDestination.cs +++ b/src/Greenshot.Addon.Flickr/FlickrDestination.cs @@ -41,6 +41,7 @@ using Dapplo.HttpExtensions.Extensions; using Dapplo.HttpExtensions.OAuth; using Dapplo.Log; using Dapplo.Windows.Clipboard; +using Greenshot.Addon.Flickr.Configuration; using Greenshot.Addons; using Greenshot.Addons.Components; using Greenshot.Addons.Controls; diff --git a/src/Greenshot.Addon.Flickr/FodyWeavers.xml b/src/Greenshot.Addon.Flickr/FodyWeavers.xml new file mode 100644 index 000000000..7f5a26669 --- /dev/null +++ b/src/Greenshot.Addon.Flickr/FodyWeavers.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.Flickr/FodyWeavers.xsd b/src/Greenshot.Addon.Flickr/FodyWeavers.xsd new file mode 100644 index 000000000..061979a03 --- /dev/null +++ b/src/Greenshot.Addon.Flickr/FodyWeavers.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + 'true' to run assembly verification on the target assembly after all weavers have been finished. + + + + + A comma separated list of error codes that can be safely ignored in assembly verification. + + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.Flickr/Greenshot.Addon.Flickr.csproj b/src/Greenshot.Addon.Flickr/Greenshot.Addon.Flickr.csproj index 5ffdef800..bb922823c 100644 --- a/src/Greenshot.Addon.Flickr/Greenshot.Addon.Flickr.csproj +++ b/src/Greenshot.Addon.Flickr/Greenshot.Addon.Flickr.csproj @@ -1,144 +1,18 @@ - - - + + - {7EC72A5A-D73A-4B4B-9CA1-2216C7D92D5E} - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Library Greenshot.Addon.Flickr Greenshot.Addon.Flickr - v4.6.1 - Properties - False - False - 4 - false - Always - 3.5 - - - - - + net471;netcoreapp3.0 - - false - latest - - - false - - - false - latest - - - false - - + - - ..\packages\Autofac.4.8.1\lib\net45\Autofac.dll - - - ..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll - - - ..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll - - - ..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll - - - ..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll - - - ..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll - - - ..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll - - - ..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll - - - ..\packages\Dapplo.CaliburnMicro.Configuration.1.0.75\lib\net461\Dapplo.CaliburnMicro.Configuration.dll - - - ..\packages\Dapplo.CaliburnMicro.Dapp.1.0.75\lib\net461\Dapplo.CaliburnMicro.Dapp.dll - - - ..\packages\Dapplo.CaliburnMicro.Menu.1.0.75\lib\net461\Dapplo.CaliburnMicro.Menu.dll - - - ..\packages\Dapplo.CaliburnMicro.Security.1.0.75\lib\net461\Dapplo.CaliburnMicro.Security.dll - - - ..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll - - - ..\packages\Dapplo.HttpExtensions.0.8.46\lib\net46\Dapplo.HttpExtensions.dll - - - ..\packages\Dapplo.HttpExtensions.OAuth.0.8.46\lib\net46\Dapplo.HttpExtensions.OAuth.dll - - - ..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll - - - ..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll - - - ..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll - - - ..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll - - - ..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll - - - ..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll - - - ..\packages\Dapplo.Windows.Clipboard.0.5.109\lib\net461\Dapplo.Windows.Clipboard.dll - - - ..\packages\Dapplo.Windows.Com.0.5.109\lib\net461\Dapplo.Windows.Com.dll - - - ..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll - - - ..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll - - - ..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll - - - ..\packages\Dapplo.Windows.EmbeddedBrowser.0.5.109\lib\net461\Dapplo.Windows.EmbeddedBrowser.dll - - - ..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll - - - ..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll - - - ..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll - - - ..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll - - - ..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll - + + PreserveNewest + + + + @@ -149,94 +23,36 @@ - - ..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\System.Windows.Interactivity.dll - + - - - - - - - - - Always - Designer - - + + - + + + + - - {5B924697-4DCD-4F98-85F1-105CB84B7341} - Greenshot.Addons - - - {bf35190d-b2a7-4cfa-b397-51cb384cf0d7} - Greenshot.Core - - - {f041c685-eb96-4ed1-9ace-0f5bd836610f} - Greenshot.Gfx - + + + + + + + all + runtime; build; native; contentfiles; analyzers + - - - - - - - - - - - - - - - - - - - - - - MSBuild:Compile - Designer - - - - mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).dll" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" -copy "$(ProjectDir)\Languages\*.xml" "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" - - - - \ No newline at end of file + diff --git a/src/Greenshot.Addon.Flickr/Properties/AssemblyInfo.cs b/src/Greenshot.Addon.Flickr/Properties/AssemblyInfo.cs deleted file mode 100644 index d2d2e05f5..000000000 --- a/src/Greenshot.Addon.Flickr/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,53 +0,0 @@ -#region Greenshot GNU General Public License - -// Greenshot - a free and open source screenshot tool -// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom -// -// For more information see: http://getgreenshot.org/ -// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 1 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -#endregion - -#region Usings - -using System.Reflection; -using System.Runtime.InteropServices; - -#endregion - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("Greenshot.Addon.Flickr")] -[assembly: AssemblyDescription("A plugin to upload images to Flickr")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Greenshot & F. Noel")] -[assembly: AssemblyProduct("Flickr Plugin")] -[assembly: AssemblyCopyright("Copyright (C) 2012")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// This sets the default COM visibility of types in the assembly to invisible. -// If you need to expose a type to COM, use [ComVisible(true)] on that type. - -[assembly: ComVisible(false)] - -// The assembly version, replaced by build scripts - -[assembly: AssemblyVersion("1.3.0.0")] -[assembly: AssemblyInformationalVersion("1.3.0.0")] -[assembly: AssemblyFileVersion("1.3.0.0")] \ No newline at end of file diff --git a/src/Greenshot.Addon.Flickr/ViewModels/FlickrConfigViewModel.cs b/src/Greenshot.Addon.Flickr/ViewModels/FlickrConfigViewModel.cs index aebcc0814..d2cca2bcb 100644 --- a/src/Greenshot.Addon.Flickr/ViewModels/FlickrConfigViewModel.cs +++ b/src/Greenshot.Addon.Flickr/ViewModels/FlickrConfigViewModel.cs @@ -25,12 +25,16 @@ using System.Collections.Generic; using System.Reactive.Disposables; using Dapplo.CaliburnMicro.Configuration; using Dapplo.CaliburnMicro.Extensions; +using Greenshot.Addon.Flickr.Configuration; using Greenshot.Addons.Core.Enums; using Greenshot.Addons.Extensions; using Greenshot.Addons.ViewModels; namespace Greenshot.Addon.Flickr.ViewModels { + /// + /// This is the ViewModel for the configuration of the Flickr addon + /// public sealed class FlickrConfigViewModel : SimpleConfigScreen { /// @@ -38,10 +42,20 @@ namespace Greenshot.Addon.Flickr.ViewModels /// private CompositeDisposable _disposables; + /// + /// Configuration for the view + /// public IFlickrConfiguration FlickrConfiguration { get; } - + + /// + /// Translations for the view + /// public IFlickrLanguage FlickrLanguage { get; } - + + /// + /// FileConfigPartViewModel is used from the view + /// TODO: Check if this is really true and needed + /// public FileConfigPartViewModel FileConfigPartViewModel { get; } public FlickrConfigViewModel( @@ -54,6 +68,7 @@ namespace Greenshot.Addon.Flickr.ViewModels FileConfigPartViewModel = fileConfigPartViewModel; } + /// public override void Initialize(IConfig config) { FileConfigPartViewModel.DestinationFileConfiguration = FlickrConfiguration; @@ -75,12 +90,16 @@ namespace Greenshot.Addon.Flickr.ViewModels base.Initialize(config); } + /// protected override void OnDeactivate(bool close) { _disposables.Dispose(); base.OnDeactivate(close); } + /// + /// Used in the view for the dropdown + /// public SafetyLevel SelectedSafetyLevel { get => FlickrConfiguration.SafetyLevel; @@ -91,6 +110,9 @@ namespace Greenshot.Addon.Flickr.ViewModels } } + /// + /// Used for a dropdown in the view + /// public IDictionary SafetyLevels => FlickrLanguage.TranslationValuesForEnum(); } } diff --git a/src/Greenshot.Addon.Flickr/packages.config b/src/Greenshot.Addon.Flickr/packages.config deleted file mode 100644 index 4f4d2c4e1..000000000 --- a/src/Greenshot.Addon.Flickr/packages.config +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.Addon.GooglePhotos/IGooglePhotosConfiguration.cs b/src/Greenshot.Addon.GooglePhotos/Configuration/IGooglePhotosConfiguration.cs similarity index 87% rename from src/Greenshot.Addon.GooglePhotos/IGooglePhotosConfiguration.cs rename to src/Greenshot.Addon.GooglePhotos/Configuration/IGooglePhotosConfiguration.cs index 6441957a9..e43f7cd1b 100644 --- a/src/Greenshot.Addon.GooglePhotos/IGooglePhotosConfiguration.cs +++ b/src/Greenshot.Addon.GooglePhotos/Configuration/IGooglePhotosConfiguration.cs @@ -24,22 +24,23 @@ #region Usings using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; using System.Runtime.Serialization; +using Dapplo.Config.Ini; using Dapplo.HttpExtensions.OAuth; -using Dapplo.Ini; -using Dapplo.InterfaceImpl.Extensions; using Greenshot.Addons.Core; #endregion -namespace Greenshot.Addon.GooglePhotos +namespace Greenshot.Addon.GooglePhotos.Configuration { /// /// Description of GooglePhotosConfiguration. /// [IniSection("GooglePhotos")] [Description("Greenshot Google Photos Plugin configuration")] - public interface IGooglePhotosConfiguration : IIniSection, IDestinationFileConfiguration, IOAuth2Token, ITransactionalProperties + [SuppressMessage("ReSharper", "UnusedMember.Global")] + public interface IGooglePhotosConfiguration : IIniSection, IDestinationFileConfiguration, IOAuth2Token { [Description("After upload send Google Photos link to clipboard.")] [DefaultValue(true)] diff --git a/src/Greenshot.Addon.GooglePhotos/Configuration/IGooglePhotosLanguage.cs b/src/Greenshot.Addon.GooglePhotos/Configuration/IGooglePhotosLanguage.cs new file mode 100644 index 000000000..d80abff88 --- /dev/null +++ b/src/Greenshot.Addon.GooglePhotos/Configuration/IGooglePhotosLanguage.cs @@ -0,0 +1,51 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System.Diagnostics.CodeAnalysis; +using Dapplo.Config.Language; + +namespace Greenshot.Addon.GooglePhotos.Configuration +{ + [Language("GooglePhotos")] + [SuppressMessage("ReSharper", "UnusedMember.Global")] + public interface IGooglePhotosLanguage : ILanguage + { + string CommunicationWait { get; } + + string Configure { get; } + + string LabelAfterUpload { get; } + + string LabelAfterUploadLinkToClipBoard { get; } + + string LabelUploadFormat { get; } + + string SettingsTitle { get; } + + string UploadFailure { get; } + + string UploadMenuItem { get; } + + string UploadSuccess { get; } + } +} diff --git a/src/Greenshot.Addon.GooglePhotos/Configuration/Impl/GooglePhotosConfigurationImpl.cs b/src/Greenshot.Addon.GooglePhotos/Configuration/Impl/GooglePhotosConfigurationImpl.cs new file mode 100644 index 000000000..0ddeb83d4 --- /dev/null +++ b/src/Greenshot.Addon.GooglePhotos/Configuration/Impl/GooglePhotosConfigurationImpl.cs @@ -0,0 +1,80 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System; +using System.ComponentModel; +using Dapplo.Config.Ini; +using Dapplo.Config.Ini.Converters; +using Greenshot.Core.Enums; + +namespace Greenshot.Addon.GooglePhotos.Configuration.Impl +{ + internal class GooglePhotosConfigurationImpl : IniSectionBase, IGooglePhotosConfiguration + { + #region Implementation of IFileConfiguration + + public string OutputFilePath { get; set; } + public bool OutputFileAllowOverwrite { get; set; } + public string OutputFileFilenamePattern { get; set; } + public OutputFormats OutputFileFormat { get; set; } + public bool OutputFileReduceColors { get; set; } + public bool OutputFileAutoReduceColors { get; set; } + public int OutputFileReduceColorsTo { get; set; } + public int OutputFileJpegQuality { get; set; } + public bool OutputFilePromptQuality { get; set; } + public uint OutputFileIncrementingNumber { get; set; } + public string OptimizePNGCommand { get; set; } + public string OptimizePNGCommandArguments { get; set; } + + #endregion + + #region Implementation of IDestinationFileConfiguration + + public bool UseOwnSettings { get; set; } + + #endregion + + #region Implementation of IOAuth2Token + + [TypeConverter(typeof(StringEncryptionTypeConverter))] + public string OAuth2AccessToken { get; set; } + + public DateTimeOffset OAuth2AccessTokenExpires { get; set; } + + [TypeConverter(typeof(StringEncryptionTypeConverter))] + public string OAuth2RefreshToken { get; set; } + + #endregion + + #region Implementation of IGooglePhotosConfiguration + + public bool AfterUploadLinkToClipBoard { get; set; } + public bool AddFilename { get; set; } + public string UploadUser { get; set; } + public string UploadAlbum { get; set; } + public string ClientId { get; set; } + public string ClientSecret { get; set; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.GooglePhotos/Configuration/Impl/GooglePhotosLanguageImpl.cs b/src/Greenshot.Addon.GooglePhotos/Configuration/Impl/GooglePhotosLanguageImpl.cs new file mode 100644 index 000000000..22059919d --- /dev/null +++ b/src/Greenshot.Addon.GooglePhotos/Configuration/Impl/GooglePhotosLanguageImpl.cs @@ -0,0 +1,50 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System.Diagnostics.CodeAnalysis; +using Dapplo.Config.Language; + +namespace Greenshot.Addon.GooglePhotos.Configuration.Impl +{ + /// + /// This implements IGooglePhotosLanguage and takes care of storing, all setters are replaced via AutoProperties.Fody + /// + [SuppressMessage("ReSharper", "UnassignedGetOnlyAutoProperty")] +#pragma warning disable CS1591 + public class GooglePhotosLanguageImpl : LanguageBase, IGooglePhotosLanguage + { + #region Implementation of IGooglePhotosLanguage + + public string CommunicationWait { get; } + public string Configure { get; } + public string LabelAfterUpload { get; } + public string LabelAfterUploadLinkToClipBoard { get; } + public string LabelUploadFormat { get; } + public string SettingsTitle { get; } + public string UploadFailure { get; } + public string UploadMenuItem { get; } + public string UploadSuccess { get; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.GooglePhotos/FodyWeavers.xml b/src/Greenshot.Addon.GooglePhotos/FodyWeavers.xml new file mode 100644 index 000000000..7f5a26669 --- /dev/null +++ b/src/Greenshot.Addon.GooglePhotos/FodyWeavers.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.GooglePhotos/FodyWeavers.xsd b/src/Greenshot.Addon.GooglePhotos/FodyWeavers.xsd new file mode 100644 index 000000000..061979a03 --- /dev/null +++ b/src/Greenshot.Addon.GooglePhotos/FodyWeavers.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + 'true' to run assembly verification on the target assembly after all weavers have been finished. + + + + + A comma separated list of error codes that can be safely ignored in assembly verification. + + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.GooglePhotos/GooglePhotosAddonModule.cs b/src/Greenshot.Addon.GooglePhotos/GooglePhotosAddonModule.cs index b4484e816..68d76015e 100644 --- a/src/Greenshot.Addon.GooglePhotos/GooglePhotosAddonModule.cs +++ b/src/Greenshot.Addon.GooglePhotos/GooglePhotosAddonModule.cs @@ -24,8 +24,10 @@ using Autofac; using Dapplo.Addons; using Dapplo.CaliburnMicro.Configuration; -using Dapplo.Ini; -using Dapplo.Language; +using Dapplo.Config.Ini; +using Dapplo.Config.Language; +using Greenshot.Addon.GooglePhotos.Configuration; +using Greenshot.Addon.GooglePhotos.Configuration.Impl; using Greenshot.Addon.GooglePhotos.ViewModels; using Greenshot.Addons.Components; @@ -37,13 +39,15 @@ namespace Greenshot.Addon.GooglePhotos protected override void Load(ContainerBuilder builder) { builder - .Register(context => IniConfig.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder - .Register(context => LanguageLoader.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder diff --git a/src/Greenshot.Addon.GooglePhotos/GooglePhotosDestination.cs b/src/Greenshot.Addon.GooglePhotos/GooglePhotosDestination.cs index 369e5b552..920099295 100644 --- a/src/Greenshot.Addon.GooglePhotos/GooglePhotosDestination.cs +++ b/src/Greenshot.Addon.GooglePhotos/GooglePhotosDestination.cs @@ -39,6 +39,7 @@ using Dapplo.HttpExtensions.OAuth; using Dapplo.Log; using Dapplo.Utils; using Dapplo.Windows.Clipboard; +using Greenshot.Addon.GooglePhotos.Configuration; using Greenshot.Addons; using Greenshot.Addons.Components; using Greenshot.Addons.Controls; diff --git a/src/Greenshot.Addon.GooglePhotos/Greenshot.Addon.GooglePhotos.csproj b/src/Greenshot.Addon.GooglePhotos/Greenshot.Addon.GooglePhotos.csproj index 30596bf38..7072996bd 100644 --- a/src/Greenshot.Addon.GooglePhotos/Greenshot.Addon.GooglePhotos.csproj +++ b/src/Greenshot.Addon.GooglePhotos/Greenshot.Addon.GooglePhotos.csproj @@ -1,130 +1,18 @@ - - - + + - {1893A2E4-A78A-4713-A8E7-E70058DABEE0} - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Library Greenshot.Addon.GooglePhotos Greenshot.Addon.GooglePhotos - v4.6.1 - Properties - False - False - 4 - false - Always - - - 3.5 - - - + net471;netcoreapp3.0 - + - - ..\packages\Autofac.4.8.1\lib\net45\Autofac.dll - - - ..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll - - - ..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll - - - ..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll - - - ..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll - - - ..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll - - - ..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll - - - ..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll - - - ..\packages\Dapplo.CaliburnMicro.Configuration.1.0.75\lib\net461\Dapplo.CaliburnMicro.Configuration.dll - - - ..\packages\Dapplo.CaliburnMicro.Dapp.1.0.75\lib\net461\Dapplo.CaliburnMicro.Dapp.dll - - - ..\packages\Dapplo.CaliburnMicro.Menu.1.0.75\lib\net461\Dapplo.CaliburnMicro.Menu.dll - - - ..\packages\Dapplo.CaliburnMicro.Security.1.0.75\lib\net461\Dapplo.CaliburnMicro.Security.dll - - - ..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll - - - ..\packages\Dapplo.HttpExtensions.0.8.46\lib\net46\Dapplo.HttpExtensions.dll - - - ..\packages\Dapplo.HttpExtensions.OAuth.0.8.46\lib\net46\Dapplo.HttpExtensions.OAuth.dll - - - ..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll - - - ..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll - - - ..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll - - - ..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll - - - ..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll - - - ..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll - - - ..\packages\Dapplo.Windows.Clipboard.0.5.109\lib\net461\Dapplo.Windows.Clipboard.dll - - - ..\packages\Dapplo.Windows.Com.0.5.109\lib\net461\Dapplo.Windows.Com.dll - - - ..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll - - - ..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll - - - ..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll - - - ..\packages\Dapplo.Windows.EmbeddedBrowser.0.5.109\lib\net461\Dapplo.Windows.EmbeddedBrowser.dll - - - ..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll - - - ..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll - - - ..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll - - - ..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll - - - ..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll - + + PreserveNewest + + + + @@ -135,85 +23,36 @@ - - ..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\System.Windows.Interactivity.dll - + - - - - - - - - - - - - - - - - - - - - - - - - - + + - - {5B924697-4DCD-4F98-85F1-105CB84B7341} - Greenshot.Addons - - - {bf35190d-b2a7-4cfa-b397-51cb384cf0d7} - Greenshot.Core - - - {f041c685-eb96-4ed1-9ace-0f5bd836610f} - Greenshot.Gfx - + + + + - - MSBuild:Compile - Designer - + + + + + + + all + runtime; build; native; contentfiles; analyzers + - - mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).dll" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" -copy "$(ProjectDir)\Languages\*.xml" "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" - - - - \ No newline at end of file + diff --git a/src/Greenshot.Addon.GooglePhotos/IGooglePhotosLanguage.cs b/src/Greenshot.Addon.GooglePhotos/IGooglePhotosLanguage.cs deleted file mode 100644 index b21fbba72..000000000 --- a/src/Greenshot.Addon.GooglePhotos/IGooglePhotosLanguage.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System.ComponentModel; -using Dapplo.Language; - -namespace Greenshot.Addon.GooglePhotos -{ - [Language("GooglePhotos")] - public interface IGooglePhotosLanguage : ILanguage, INotifyPropertyChanged - { - string CommunicationWait { get; } - - string Configure { get; } - - string LabelAfterUpload { get; } - - string LabelAfterUploadLinkToClipBoard { get; } - - string LabelUploadFormat { get; } - - string SettingsTitle { get; } - - string UploadFailure { get; } - - string UploadMenuItem { get; } - - string UploadSuccess { get; } - } -} diff --git a/src/Greenshot.Addon.GooglePhotos/Properties/AssemblyInfo.cs b/src/Greenshot.Addon.GooglePhotos/Properties/AssemblyInfo.cs deleted file mode 100644 index 3affa2f93..000000000 --- a/src/Greenshot.Addon.GooglePhotos/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,53 +0,0 @@ -#region Greenshot GNU General Public License - -// Greenshot - a free and open source screenshot tool -// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom -// -// For more information see: http://getgreenshot.org/ -// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 1 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -#endregion - -#region Usings - -using System.Reflection; -using System.Runtime.InteropServices; - -#endregion - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("Greenshot.Addon.GooglePhotos")] -[assembly: AssemblyDescription("A plugin to upload images to Google Photos")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Greenshot & F. Noel")] -[assembly: AssemblyProduct("GooglePhotos Plugin")] -[assembly: AssemblyCopyright("Copyright (C) 2012")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// This sets the default COM visibility of types in the assembly to invisible. -// If you need to expose a type to COM, use [ComVisible(true)] on that type. - -[assembly: ComVisible(false)] - -// The assembly version, replaced by build scripts - -[assembly: AssemblyVersion("1.3.0.0")] -[assembly: AssemblyInformationalVersion("1.3.0.0")] -[assembly: AssemblyFileVersion("1.3.0.0")] \ No newline at end of file diff --git a/src/Greenshot.Addon.GooglePhotos/ViewModels/GooglePhotosConfigViewModel.cs b/src/Greenshot.Addon.GooglePhotos/ViewModels/GooglePhotosConfigViewModel.cs index 06d18fef9..6288c82d8 100644 --- a/src/Greenshot.Addon.GooglePhotos/ViewModels/GooglePhotosConfigViewModel.cs +++ b/src/Greenshot.Addon.GooglePhotos/ViewModels/GooglePhotosConfigViewModel.cs @@ -24,6 +24,7 @@ using System.Reactive.Disposables; using Dapplo.CaliburnMicro.Configuration; using Dapplo.CaliburnMicro.Extensions; +using Greenshot.Addon.GooglePhotos.Configuration; using Greenshot.Addons.Core.Enums; using Greenshot.Addons.ViewModels; @@ -36,8 +37,20 @@ namespace Greenshot.Addon.GooglePhotos.ViewModels /// private CompositeDisposable _disposables; + /// + /// Configuration for the view + /// public IGooglePhotosConfiguration GooglePhotosConfiguration { get; } + + /// + /// Translations for the view + /// public IGooglePhotosLanguage GooglePhotosLanguage { get; } + + /// + /// FileConfigPartViewModel is used from the view + /// TODO: Check if this is really true and needed + /// public FileConfigPartViewModel FileConfigPartViewModel { get; } public GooglePhotosConfigViewModel( @@ -50,6 +63,7 @@ namespace Greenshot.Addon.GooglePhotos.ViewModels FileConfigPartViewModel = fileConfigPartViewModel; } + /// public override void Initialize(IConfig config) { FileConfigPartViewModel.DestinationFileConfiguration = GooglePhotosConfiguration; @@ -71,6 +85,7 @@ namespace Greenshot.Addon.GooglePhotos.ViewModels base.Initialize(config); } + /// protected override void OnDeactivate(bool close) { _disposables.Dispose(); diff --git a/src/Greenshot.Addon.GooglePhotos/packages.config b/src/Greenshot.Addon.GooglePhotos/packages.config deleted file mode 100644 index 4f4d2c4e1..000000000 --- a/src/Greenshot.Addon.GooglePhotos/packages.config +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.Addon.Imgur/IImgurConfiguration.cs b/src/Greenshot.Addon.Imgur/Configuration/IImgurConfiguration.cs similarity index 92% rename from src/Greenshot.Addon.Imgur/IImgurConfiguration.cs rename to src/Greenshot.Addon.Imgur/Configuration/IImgurConfiguration.cs index 15d021fb3..d2791f6df 100644 --- a/src/Greenshot.Addon.Imgur/IImgurConfiguration.cs +++ b/src/Greenshot.Addon.Imgur/Configuration/IImgurConfiguration.cs @@ -26,22 +26,21 @@ using System.Collections.Generic; using System.ComponentModel; using System.Runtime.Serialization; +using Dapplo.Config.Ini; using Dapplo.HttpExtensions.OAuth; -using Dapplo.Ini; -using Dapplo.InterfaceImpl.Extensions; using Greenshot.Addon.Imgur.Entities; using Greenshot.Addons.Core; #endregion -namespace Greenshot.Addon.Imgur +namespace Greenshot.Addon.Imgur.Configuration { /// /// Description of ImgurConfiguration. /// [IniSection("Imgur")] [Description("Greenshot Imgur Plugin configuration")] - public interface IImgurConfiguration : IIniSection, IDestinationFileConfiguration, IOAuth2Token, ITransactionalProperties, INotifyPropertyChanged + public interface IImgurConfiguration : IIniSection, IDestinationFileConfiguration, IOAuth2Token { [Description("Url to Imgur system.")] [DefaultValue("https://api.imgur.com/3")] diff --git a/src/Greenshot.Addon.Imgur/IImgurLanguage.cs b/src/Greenshot.Addon.Imgur/Configuration/IImgurLanguage.cs similarity index 84% rename from src/Greenshot.Addon.Imgur/IImgurLanguage.cs rename to src/Greenshot.Addon.Imgur/Configuration/IImgurLanguage.cs index f012f8be5..84611849a 100644 --- a/src/Greenshot.Addon.Imgur/IImgurLanguage.cs +++ b/src/Greenshot.Addon.Imgur/Configuration/IImgurLanguage.cs @@ -19,15 +19,16 @@ #region Usings -using System.ComponentModel; -using Dapplo.Language; +using System.Diagnostics.CodeAnalysis; +using Dapplo.Config.Language; #endregion -namespace Greenshot.Addon.Imgur +namespace Greenshot.Addon.Imgur.Configuration { [Language("Imgur")] - public interface IImgurLanguage : ILanguage, INotifyPropertyChanged + [SuppressMessage("ReSharper", "UnusedMember.Global")] + public interface IImgurLanguage : ILanguage { string Cancel { get; } diff --git a/src/Greenshot.Addon.Imgur/Configuration/Impl/ImgurConfigurationImpl.cs b/src/Greenshot.Addon.Imgur/Configuration/Impl/ImgurConfigurationImpl.cs new file mode 100644 index 000000000..f24bdc4d2 --- /dev/null +++ b/src/Greenshot.Addon.Imgur/Configuration/Impl/ImgurConfigurationImpl.cs @@ -0,0 +1,90 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using Dapplo.Config.Ini; +using Dapplo.Config.Ini.Converters; +using Greenshot.Addon.Imgur.Entities; +using Greenshot.Core.Enums; + +namespace Greenshot.Addon.Imgur.Configuration.Impl +{ + internal class ImgurConfigurationImpl : IniSectionBase, IImgurConfiguration + { + #region Implementation of IFileConfiguration + + public string OutputFilePath { get; set; } + public bool OutputFileAllowOverwrite { get; set; } + public string OutputFileFilenamePattern { get; set; } + public OutputFormats OutputFileFormat { get; set; } + public bool OutputFileReduceColors { get; set; } + public bool OutputFileAutoReduceColors { get; set; } + public int OutputFileReduceColorsTo { get; set; } + public int OutputFileJpegQuality { get; set; } + public bool OutputFilePromptQuality { get; set; } + public uint OutputFileIncrementingNumber { get; set; } + public string OptimizePNGCommand { get; set; } + public string OptimizePNGCommandArguments { get; set; } + + #endregion + + #region Implementation of IDestinationFileConfiguration + + public bool UseOwnSettings { get; set; } + + #endregion + + #region Implementation of IOAuth2Token + + [TypeConverter(typeof(StringEncryptionTypeConverter))] + public string OAuth2AccessToken { get; set; } + + public DateTimeOffset OAuth2AccessTokenExpires { get; set; } + + [TypeConverter(typeof(StringEncryptionTypeConverter))] + public string OAuth2RefreshToken { get; set; } + + #endregion + + #region Implementation of IImgurConfiguration + + public string ImgurApi3Url { get; set; } + public bool CopyLinkToClipboard { get; set; } + public bool UsePageLink { get; set; } + public bool AnonymousAccess { get; set; } + public string ClientId { get; set; } + public string ClientSecret { get; set; } + public string ApiUrl { get; set; } + public bool AddTitle { get; set; } + public bool AddFilename { get; set; } + public string FilenamePattern { get; set; } + public bool TrackHistory { get; set; } + public IDictionary ImgurUploadHistory { get; set; } + public int Credits { get; set; } + public IDictionary RuntimeImgurHistory { get; set; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.Imgur/Configuration/Impl/ImgurLanguageImpl.cs b/src/Greenshot.Addon.Imgur/Configuration/Impl/ImgurLanguageImpl.cs new file mode 100644 index 000000000..1716e7955 --- /dev/null +++ b/src/Greenshot.Addon.Imgur/Configuration/Impl/ImgurLanguageImpl.cs @@ -0,0 +1,59 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System.Diagnostics.CodeAnalysis; +using Dapplo.Config.Language; + +namespace Greenshot.Addon.Imgur.Configuration.Impl +{ + /// + /// This implements IImgurLanguage and takes care of storing, all setters are replaced via AutoProperties.Fody + /// +#pragma warning disable CS1591 + [SuppressMessage("ReSharper", "UnassignedGetOnlyAutoProperty")] + public class ImgurLanguageImpl : LanguageBase, IImgurLanguage + { + #region Implementation of IImgurLanguage + + public string Cancel { get; } + public string ClearQuestion { get; } + public string CommunicationWait { get; } + public string Configure { get; } + public string DeleteQuestion { get; } + public string DeleteTitle { get; } + public string History { get; } + public string LabelClear { get; } + public string LabelUploadFormat { get; } + public string LabelUrl { get; } + public string Ok { get; } + public string SettingsTitle { get; } + public string UploadFailure { get; } + public string UploadMenuItem { get; } + public string UploadSuccess { get; } + public string UsePageLink { get; } + public string AnonymousAccess { get; } + public string ResetCredentialsButton { get; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.Imgur/FodyWeavers.xml b/src/Greenshot.Addon.Imgur/FodyWeavers.xml new file mode 100644 index 000000000..7f5a26669 --- /dev/null +++ b/src/Greenshot.Addon.Imgur/FodyWeavers.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.Imgur/FodyWeavers.xsd b/src/Greenshot.Addon.Imgur/FodyWeavers.xsd new file mode 100644 index 000000000..061979a03 --- /dev/null +++ b/src/Greenshot.Addon.Imgur/FodyWeavers.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + 'true' to run assembly verification on the target assembly after all weavers have been finished. + + + + + A comma separated list of error codes that can be safely ignored in assembly verification. + + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.Imgur/Greenshot.Addon.Imgur.csproj b/src/Greenshot.Addon.Imgur/Greenshot.Addon.Imgur.csproj index 5b74189b3..8d922e760 100644 --- a/src/Greenshot.Addon.Imgur/Greenshot.Addon.Imgur.csproj +++ b/src/Greenshot.Addon.Imgur/Greenshot.Addon.Imgur.csproj @@ -1,160 +1,20 @@ - - - + + - {80D8DEB9-94E3-4876-8CCA-2DF1ED5F2C50} - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Library Greenshot.Addon.Imgur Greenshot.Addon.Imgur - v4.6.1 - Properties - False - False - 4 - false - Always - - - - 3.5 - - - - + net471;netcoreapp3.0 - - false - latest - - - false - - - false - latest - - - false - - + - - ..\packages\Autofac.4.8.1\lib\net45\Autofac.dll - - - ..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll - - - ..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll - - - ..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll - - - ..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll - - - ..\packages\ControlzEx.3.0.2.4\lib\net45\ControlzEx.dll - - - ..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll - - - ..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll - - - ..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll - - - ..\packages\Dapplo.CaliburnMicro.Configuration.1.0.75\lib\net461\Dapplo.CaliburnMicro.Configuration.dll - - - ..\packages\Dapplo.CaliburnMicro.Dapp.1.0.75\lib\net461\Dapplo.CaliburnMicro.Dapp.dll - - - ..\packages\Dapplo.CaliburnMicro.Menu.1.0.75\lib\net461\Dapplo.CaliburnMicro.Menu.dll - - - ..\packages\Dapplo.CaliburnMicro.Security.1.0.75\lib\net461\Dapplo.CaliburnMicro.Security.dll - - - ..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll - - - ..\packages\Dapplo.HttpExtensions.0.8.46\lib\net46\Dapplo.HttpExtensions.dll - - - ..\packages\Dapplo.HttpExtensions.JsonNet.0.8.46\lib\net46\Dapplo.HttpExtensions.JsonNet.dll - - - ..\packages\Dapplo.HttpExtensions.OAuth.0.8.46\lib\net46\Dapplo.HttpExtensions.OAuth.dll - - - ..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll - - - ..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll - - - ..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll - - - ..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll - - - ..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll - - - ..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll - - - ..\packages\Dapplo.Windows.Clipboard.0.5.109\lib\net461\Dapplo.Windows.Clipboard.dll - - - ..\packages\Dapplo.Windows.Com.0.5.109\lib\net461\Dapplo.Windows.Com.dll - - - ..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll - - - ..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll - - - ..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll - - - ..\packages\Dapplo.Windows.EmbeddedBrowser.0.5.109\lib\net461\Dapplo.Windows.EmbeddedBrowser.dll - - - ..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll - - - ..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll - - - ..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll - - - ..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll - - - ..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll - - - ..\packages\MahApps.Metro.1.6.5\lib\net46\MahApps.Metro.dll - + + PreserveNewest + + + + - - ..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll - @@ -163,90 +23,38 @@ - - ..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll - - - ..\packages\ControlzEx.3.0.2.4\lib\net45\System.Windows.Interactivity.dll - + - - - - - - - - - - - - - Never - - - Never - - - Never - - - Never - - - + + - - {bf35190d-b2a7-4cfa-b397-51cb384cf0d7} - Greenshot.Core - - - {f041c685-eb96-4ed1-9ace-0f5bd836610f} - Greenshot.Gfx - - - {5B924697-4DCD-4F98-85F1-105CB84B7341} - Greenshot.Addons - + + + + - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - + + + + + + + + all + runtime; build; native; contentfiles; analyzers + + - - - - - mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).dll" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" -copy "$(ProjectDir)\Languages\*.xml" "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" - - \ No newline at end of file + diff --git a/src/Greenshot.Addon.Imgur/ImgurAddonModule.cs b/src/Greenshot.Addon.Imgur/ImgurAddonModule.cs index 5715462de..901d12f21 100644 --- a/src/Greenshot.Addon.Imgur/ImgurAddonModule.cs +++ b/src/Greenshot.Addon.Imgur/ImgurAddonModule.cs @@ -24,8 +24,10 @@ using Autofac; using Dapplo.Addons; using Dapplo.CaliburnMicro.Configuration; -using Dapplo.Ini; -using Dapplo.Language; +using Dapplo.Config.Ini; +using Dapplo.Config.Language; +using Greenshot.Addon.Imgur.Configuration; +using Greenshot.Addon.Imgur.Configuration.Impl; using Greenshot.Addon.Imgur.ViewModels; using Greenshot.Addons.Components; @@ -37,13 +39,15 @@ namespace Greenshot.Addon.Imgur protected override void Load(ContainerBuilder builder) { builder - .Register(context => IniConfig.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder - .Register(context => LanguageLoader.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder diff --git a/src/Greenshot.Addon.Imgur/ImgurApi.cs b/src/Greenshot.Addon.Imgur/ImgurApi.cs index c9f9d0066..3bb538680 100644 --- a/src/Greenshot.Addon.Imgur/ImgurApi.cs +++ b/src/Greenshot.Addon.Imgur/ImgurApi.cs @@ -37,6 +37,7 @@ using Dapplo.HttpExtensions.JsonNet; using Dapplo.HttpExtensions.OAuth; using Dapplo.Log; using Dapplo.Utils; +using Greenshot.Addon.Imgur.Configuration; using Greenshot.Addon.Imgur.Entities; using Greenshot.Addons.Core; using Greenshot.Addons.Extensions; diff --git a/src/Greenshot.Addon.Imgur/ImgurDestination.cs b/src/Greenshot.Addon.Imgur/ImgurDestination.cs index b5dec259d..e8a724fb7 100644 --- a/src/Greenshot.Addon.Imgur/ImgurDestination.cs +++ b/src/Greenshot.Addon.Imgur/ImgurDestination.cs @@ -33,6 +33,7 @@ using Dapplo.Addons; using Dapplo.Log; using Dapplo.Windows.Clipboard; using Dapplo.Windows.Extensions; +using Greenshot.Addon.Imgur.Configuration; using Greenshot.Addon.Imgur.Entities; using Greenshot.Addon.Imgur.ViewModels; using Greenshot.Addons; diff --git a/src/Greenshot.Addon.Imgur/Properties/AssemblyInfo.cs b/src/Greenshot.Addon.Imgur/Properties/AssemblyInfo.cs deleted file mode 100644 index 4b782793d..000000000 --- a/src/Greenshot.Addon.Imgur/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,53 +0,0 @@ -#region Greenshot GNU General Public License - -// Greenshot - a free and open source screenshot tool -// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom -// -// For more information see: http://getgreenshot.org/ -// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 1 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -#endregion - -#region Usings - -using System.Reflection; -using System.Runtime.InteropServices; - -#endregion - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("Greenshot.Addon.Imgur")] -[assembly: AssemblyDescription("A plugin to upload images to Imgur")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Greenshot")] -[assembly: AssemblyProduct("Imgur Plugin")] -[assembly: AssemblyCopyright("Copyright (C) 2007-2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// This sets the default COM visibility of types in the assembly to invisible. -// If you need to expose a type to COM, use [ComVisible(true)] on that type. - -[assembly: ComVisible(false)] - -// The assembly version, replaced by build scripts - -[assembly: AssemblyVersion("1.3.0.0")] -[assembly: AssemblyInformationalVersion("1.3.0.0")] -[assembly: AssemblyFileVersion("1.3.0.0")] \ No newline at end of file diff --git a/src/Greenshot.Addon.Imgur/ViewModels/ImgurConfigViewModel.cs b/src/Greenshot.Addon.Imgur/ViewModels/ImgurConfigViewModel.cs index f0dfccf97..cfa003269 100644 --- a/src/Greenshot.Addon.Imgur/ViewModels/ImgurConfigViewModel.cs +++ b/src/Greenshot.Addon.Imgur/ViewModels/ImgurConfigViewModel.cs @@ -28,6 +28,7 @@ using Caliburn.Micro; using Dapplo.CaliburnMicro.Configuration; using Dapplo.CaliburnMicro.Extensions; using Dapplo.HttpExtensions.OAuth; +using Greenshot.Addon.Imgur.Configuration; using Greenshot.Addons.Core.Enums; using Greenshot.Addons.ViewModels; diff --git a/src/Greenshot.Addon.Imgur/ViewModels/ImgurHistoryViewModel.cs b/src/Greenshot.Addon.Imgur/ViewModels/ImgurHistoryViewModel.cs index e8787450a..b25e9f508 100644 --- a/src/Greenshot.Addon.Imgur/ViewModels/ImgurHistoryViewModel.cs +++ b/src/Greenshot.Addon.Imgur/ViewModels/ImgurHistoryViewModel.cs @@ -32,6 +32,7 @@ using Caliburn.Micro; using Dapplo.CaliburnMicro.Extensions; using Dapplo.Log; using Dapplo.Windows.Clipboard; +using Greenshot.Addon.Imgur.Configuration; using Greenshot.Addon.Imgur.Entities; using Greenshot.Addons; using Greenshot.Addons.Extensions; @@ -44,16 +45,22 @@ namespace Greenshot.Addon.Imgur.ViewModels public sealed class ImgurHistoryViewModel : Screen { private static readonly LogSource Log = new LogSource(); + private readonly ImgurApi _imgurApi; /// /// Here all disposables are registered, so we can clean the up /// private CompositeDisposable _disposables; + /// + /// The configuration used in the view + /// public IImgurConfiguration ImgurConfiguration { get; } - public ImgurApi ImgurApi { get; } + /// + /// The translations used in the view + /// public IImgurLanguage ImgurLanguage { get; } /// @@ -61,6 +68,13 @@ namespace Greenshot.Addon.Imgur.ViewModels /// public IGreenshotLanguage GreenshotLanguage { get; } + /// + /// Constructor which accepts the dependencies for this class + /// + /// IImgurConfiguration + /// ImgurApi + /// IImgurLanguage + /// IGreenshotLanguage public ImgurHistoryViewModel( IImgurConfiguration imgurConfiguration, ImgurApi imgurApi, @@ -69,7 +83,7 @@ namespace Greenshot.Addon.Imgur.ViewModels ) { ImgurConfiguration = imgurConfiguration; - ImgurApi = imgurApi; + _imgurApi = imgurApi; ImgurLanguage = imgurLanguage; GreenshotLanguage = greenshotLanguage; } @@ -78,6 +92,7 @@ namespace Greenshot.Addon.Imgur.ViewModels /// public ObservableCollection ImgurHistory { get; } = new BindableCollection(); + /// protected override void OnActivate() { // Prepare disposables @@ -87,9 +102,10 @@ namespace Greenshot.Addon.Imgur.ViewModels { ImgurLanguage.CreateDisplayNameBinding(this, nameof(IImgurLanguage.History)) }; - var ignoringTask = LoadHistory(); + _ = LoadHistory(); } + /// protected override void OnDeactivate(bool close) { _disposables.Dispose(); @@ -116,10 +132,10 @@ namespace Greenshot.Addon.Imgur.ViewModels } try { - var imgurInfo = await ImgurApi.RetrieveImgurInfoAsync(hash, ImgurConfiguration.ImgurUploadHistory[hash], cancellationToken).ConfigureAwait(true); + var imgurInfo = await _imgurApi.RetrieveImgurInfoAsync(hash, ImgurConfiguration.ImgurUploadHistory[hash], cancellationToken).ConfigureAwait(true); if (imgurInfo != null) { - await ImgurApi.RetrieveImgurThumbnailAsync(imgurInfo, cancellationToken).ConfigureAwait(true); + await _imgurApi.RetrieveImgurThumbnailAsync(imgurInfo, cancellationToken).ConfigureAwait(true); ImgurConfiguration.RuntimeImgurHistory.Add(hash, imgurInfo); // Already loaded, only add it to the view ImgurHistory.Add(imgurInfo); @@ -137,6 +153,9 @@ namespace Greenshot.Addon.Imgur.ViewModels } } + /// + /// The selected Imgur entry + /// public ImgurImage SelectedImgur { get; private set; } /// @@ -149,7 +168,7 @@ namespace Greenshot.Addon.Imgur.ViewModels /// public async Task Delete() { - await ImgurApi.DeleteImgurImageAsync(SelectedImgur).ConfigureAwait(true); + await _imgurApi.DeleteImgurImageAsync(SelectedImgur).ConfigureAwait(true); } /// diff --git a/src/Greenshot.Addon.Imgur/packages.config b/src/Greenshot.Addon.Imgur/packages.config deleted file mode 100644 index 65c48eebc..000000000 --- a/src/Greenshot.Addon.Imgur/packages.config +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.Addon.InternetExplorer/AccessibleHelper.cs b/src/Greenshot.Addon.InternetExplorer/AccessibleHelper.cs index d116901ab..3cafdd2c2 100644 --- a/src/Greenshot.Addon.InternetExplorer/AccessibleHelper.cs +++ b/src/Greenshot.Addon.InternetExplorer/AccessibleHelper.cs @@ -27,7 +27,6 @@ using System; using System.Collections.Generic; using System.Runtime.InteropServices; using Accessibility; -using Dapplo.Log; #endregion @@ -43,7 +42,6 @@ namespace Greenshot.Addon.InternetExplorer { private const int IE_ACTIVE_TAB = 2097154; private const int CHILDID_SELF = 0; - private static readonly LogSource Log = new LogSource(); private readonly IAccessible accessible; public Accessible(IntPtr hWnd) @@ -74,8 +72,7 @@ namespace Greenshot.Addon.InternetExplorer var list = new List(res.Length); foreach (var obj in res) { - var accessible = obj as IAccessible; - if (accessible != null) + if (obj is IAccessible accessible) { list.Add(new Accessible(accessible)); } @@ -94,6 +91,9 @@ namespace Greenshot.Addon.InternetExplorer get { return accessible.accChildCount; } } + /// + /// Returns the URL for the active tab + /// public string IEActiveTabUrl { get @@ -126,6 +126,9 @@ namespace Greenshot.Addon.InternetExplorer } } + /// + /// Get the index of the active tab + /// public int IEActiveTabIndex { get @@ -151,6 +154,9 @@ namespace Greenshot.Addon.InternetExplorer } } + /// + /// Get the caption of the active tab + /// public string IEActiveTabCaption { get @@ -174,6 +180,9 @@ namespace Greenshot.Addon.InternetExplorer } } + /// + /// Get the captions of all tabs + /// public List IETabCaptions { get @@ -201,7 +210,9 @@ namespace Greenshot.Addon.InternetExplorer } } - + /// + /// Get the urls of all tabs + /// public IEnumerable IETabUrls { get @@ -228,6 +239,9 @@ namespace Greenshot.Addon.InternetExplorer } } + /// + /// Count the tabs + /// public int IETabCount { get @@ -246,6 +260,10 @@ namespace Greenshot.Addon.InternetExplorer } } + /// + /// Activate the specified tab + /// + /// string public void ActivateIETab(string tabCaptionToActivate) { foreach (var accessor in Children) @@ -264,6 +282,10 @@ namespace Greenshot.Addon.InternetExplorer } } + /// + /// Close the specified tabs + /// + /// string public void CloseIETab(string tabCaptionToClose) { foreach (var accessor in Children) @@ -285,6 +307,10 @@ namespace Greenshot.Addon.InternetExplorer } } + /// + /// Active the IE tab + /// + /// int public void ActivateIETab(int tabIndexToActivate) { var index = 0; @@ -334,7 +360,7 @@ namespace Greenshot.Addon.InternetExplorer OBJID_WINDOW = 0x00000000 } - #region Interop +#region Interop private static int AccessibleObjectFromWindow(IntPtr hWnd, OBJID idObject, ref IAccessible acc) { @@ -356,6 +382,6 @@ namespace Greenshot.Addon.InternetExplorer [return: MarshalAs(UnmanagedType.Interface)] public static extern object ObjectFromLresult(UIntPtr lResult, [MarshalAs(UnmanagedType.LPStruct)] Guid refiid, IntPtr wParam); - #endregion +#endregion } } \ No newline at end of file diff --git a/src/Greenshot.Addon.InternetExplorer/Greenshot.Addon.InternetExplorer.csproj b/src/Greenshot.Addon.InternetExplorer/Greenshot.Addon.InternetExplorer.csproj index 1d55aa232..c60c67ec7 100644 --- a/src/Greenshot.Addon.InternetExplorer/Greenshot.Addon.InternetExplorer.csproj +++ b/src/Greenshot.Addon.InternetExplorer/Greenshot.Addon.InternetExplorer.csproj @@ -1,99 +1,44 @@ - - - - + + - {4CCA2717-B8A4-44F7-965B-5687107E4921} - Library - Properties - Greenshot.Addon.InternetExplorer - Greenshot.Addon.InternetExplorer - v4.6.1 - 512 - true + net471;netcoreapp3.0 + true - - - - ..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll - - - ..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll - - - ..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll - - - ..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll - - - ..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll - - - ..\packages\Dapplo.Windows.Com.0.5.109\lib\net461\Dapplo.Windows.Com.dll - - - ..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll - - - ..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll - - - ..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll - - - ..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll - - - ..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll - - - ..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll - - - ..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll - - - True - - - - - - - + + - + + + + + - - ..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll - + - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll - + + + + + + + - - - - - - - + + 0.7.26 + + + 0.7.26 + + - + + {5b924697-4dcd-4f98-85f1-105cb84b7341} Greenshot.Addons @@ -107,9 +52,4 @@ Greenshot.Gfx - - - - - \ No newline at end of file diff --git a/src/Greenshot.Addon.InternetExplorer/IECaptureHelper.cs b/src/Greenshot.Addon.InternetExplorer/IECaptureHelper.cs index d7583933e..14e210269 100644 --- a/src/Greenshot.Addon.InternetExplorer/IECaptureHelper.cs +++ b/src/Greenshot.Addon.InternetExplorer/IECaptureHelper.cs @@ -29,7 +29,6 @@ using System.Drawing; using System.Drawing.Imaging; using System.Linq; using System.Runtime.InteropServices; -using Dapplo.Ini; using Dapplo.Log; using Dapplo.Windows.Com; using Dapplo.Windows.Common.Extensions; @@ -38,6 +37,7 @@ using Dapplo.Windows.Desktop; using Dapplo.Windows.Messages; using Dapplo.Windows.User32; using Greenshot.Addon.InternetExplorer.IEInterop; +using Greenshot.Addons.Config.Impl; using Greenshot.Addons.Controls; using Greenshot.Addons.Core; using Greenshot.Addons.Interfaces; @@ -57,21 +57,28 @@ namespace Greenshot.Addon.InternetExplorer public static class IeCaptureHelper { private static readonly LogSource Log = new LogSource(); - private static readonly ICoreConfiguration CoreConfig = IniConfig.Current.Get(); + // TODO: Solve, was static reference! + private static readonly ICoreConfiguration CoreConfig = new CoreConfigurationImpl(); - // Helper method to activate a certain IE Tab - public static void ActivateIeTab(IInteropWindow nativeIeWindow, int tabIndex) + /// + /// Helper method to activate a certain IE Tab + /// + /// IInteropWindow + /// int + public static void ActivateIeTab(IInteropWindow nativeIeWindow, int tabIndex) { var directUiInteropWindow = IEHelper.GetDirectUi(nativeIeWindow); - if (directUiInteropWindow != null) - { - // Bring window to the front - nativeIeWindow.Restore(); - // Get accessible - var ieAccessible = new Accessible(directUiInteropWindow.Handle); - // Activate Tab - ieAccessible.ActivateIETab(tabIndex); - } + if (directUiInteropWindow == null) + { + return; + } + + // Bring window to the front + nativeIeWindow.Restore(); + // Get accessible + var ieAccessible = new Accessible(directUiInteropWindow.Handle); + // Activate Tab + ieAccessible.ActivateIETab(tabIndex); } /// @@ -387,7 +394,7 @@ namespace Greenshot.Addon.InternetExplorer { if (windowToCapture == null) { - windowToCapture = InteropWindowQuery.GetActiveWindow(); + windowToCapture = InteropWindowQuery.GetForegroundWindow(); } // Show backgroundform after retrieving the active window.. var backgroundForm = new BackgroundForm("Internet Explorer", "Please wait while the page in Internet Explorer is captured..."); diff --git a/src/Greenshot.Addon.InternetExplorer/IEHelper.cs b/src/Greenshot.Addon.InternetExplorer/IEHelper.cs index abebb5d79..88a1a9648 100644 --- a/src/Greenshot.Addon.InternetExplorer/IEHelper.cs +++ b/src/Greenshot.Addon.InternetExplorer/IEHelper.cs @@ -108,13 +108,18 @@ namespace Greenshot.Addon.InternetExplorer { { continue; } - - var ieAccessible = new Accessible(directUiWd.Handle); +#if !NETCOREAPP3_0 + var ieAccessible = new Accessible(directUiWd.Handle); foreach (var url in ieAccessible.IETabUrls) { yield return url; } - } - } +#endif + + } +#if NETCOREAPP3_0 + return Enumerable.Empty(); +#endif + } } } diff --git a/src/Greenshot.Addon.InternetExplorer/IEInterop/IEContainer.cs b/src/Greenshot.Addon.InternetExplorer/IEInterop/IEContainer.cs index d2163c344..6c0beb688 100644 --- a/src/Greenshot.Addon.InternetExplorer/IEInterop/IEContainer.cs +++ b/src/Greenshot.Addon.InternetExplorer/IEInterop/IEContainer.cs @@ -87,7 +87,7 @@ namespace Greenshot.Addon.InternetExplorer.IEInterop // Calculate startLocation for the frames var window2 = document2.parentWindow; var window3 = (IHTMLWindow3) window2; - NativePoint contentWindowLocation = contentWindow.GetInfo().Bounds.Location; + var contentWindowLocation = contentWindow.GetInfo().Bounds.Location; var x = window3.screenLeft - contentWindowLocation.X; var y = window3.screenTop - contentWindowLocation.Y; @@ -247,7 +247,7 @@ namespace Greenshot.Addon.InternetExplorer.IEInterop // Do not release IHTMLDocument5 com object, as this also gives problems with the document2! //Marshal.ReleaseComObject(document5); - NativeRect clientRectangle = contentWindow.GetInfo().Bounds; + var clientRectangle = contentWindow.GetInfo().Bounds; try { var window2 = document2.parentWindow; @@ -334,7 +334,7 @@ namespace Greenshot.Addon.InternetExplorer.IEInterop { try { - IHTMLWindow2 frameWindow = frameCollection.item(frame); + var frameWindow = frameCollection.item(frame) as IHTMLWindow2; var frameData = new DocumentContainer(frameWindow, contentWindow, this); // check if frame is hidden if (!frameData.IsHidden) diff --git a/src/Greenshot.Addon.InternetExplorer/Properties/AssemblyInfo.cs b/src/Greenshot.Addon.InternetExplorer/Properties/AssemblyInfo.cs deleted file mode 100644 index 6e9ffac32..000000000 --- a/src/Greenshot.Addon.InternetExplorer/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Greenshot.Addon.InternetExplorer")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Greenshot.Addon.InternetExplorer")] -[assembly: AssemblyCopyright("Copyright © 2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("4cca2717-b8a4-44f7-965b-5687107e4921")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/Greenshot.Addon.InternetExplorer/app.config b/src/Greenshot.Addon.InternetExplorer/app.config index 4ce296638..dc12e2573 100644 --- a/src/Greenshot.Addon.InternetExplorer/app.config +++ b/src/Greenshot.Addon.InternetExplorer/app.config @@ -2,18 +2,6 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.Addon.InternetExplorer/packages.config b/src/Greenshot.Addon.InternetExplorer/packages.config deleted file mode 100644 index e81c467f4..000000000 --- a/src/Greenshot.Addon.InternetExplorer/packages.config +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.Addon.Jira/IJiraConfiguration.cs b/src/Greenshot.Addon.Jira/Configuration/IJiraConfiguration.cs similarity index 88% rename from src/Greenshot.Addon.Jira/IJiraConfiguration.cs rename to src/Greenshot.Addon.Jira/Configuration/IJiraConfiguration.cs index 4ed08b321..06a62eb5f 100644 --- a/src/Greenshot.Addon.Jira/IJiraConfiguration.cs +++ b/src/Greenshot.Addon.Jira/Configuration/IJiraConfiguration.cs @@ -24,20 +24,19 @@ #region Usings using System.ComponentModel; -using Dapplo.Ini; -using Dapplo.InterfaceImpl.Extensions; +using Dapplo.Config.Ini; using Greenshot.Addons.Core; #endregion -namespace Greenshot.Addon.Jira +namespace Greenshot.Addon.Jira.Configuration { /// /// Description of JiraConfiguration. /// [IniSection("Jira")] [Description("Greenshot Jira Plugin configuration")] - public interface IJiraConfiguration : IIniSection, IDestinationFileConfiguration, INotifyPropertyChanged, ITransactionalProperties + public interface IJiraConfiguration : IIniSection, IDestinationFileConfiguration { [Description("Base url to Jira system, without anything else")] [DefaultValue("https://jira")] diff --git a/src/Greenshot.Addon.Jira/IJiraLanguage.cs b/src/Greenshot.Addon.Jira/Configuration/IJiraLanguage.cs similarity index 92% rename from src/Greenshot.Addon.Jira/IJiraLanguage.cs rename to src/Greenshot.Addon.Jira/Configuration/IJiraLanguage.cs index 9618c2d28..7a4783b78 100644 --- a/src/Greenshot.Addon.Jira/IJiraLanguage.cs +++ b/src/Greenshot.Addon.Jira/Configuration/IJiraLanguage.cs @@ -20,11 +20,11 @@ #region Usings using System.ComponentModel; -using Dapplo.Language; +using Dapplo.Config.Language; #endregion -namespace Greenshot.Addon.Jira +namespace Greenshot.Addon.Jira.Configuration { [Language("Jira")] public interface IJiraLanguage : ILanguage, INotifyPropertyChanged diff --git a/src/Greenshot.Addon.Jira/Configuration/Impl/JiraConfigurationImpl.cs b/src/Greenshot.Addon.Jira/Configuration/Impl/JiraConfigurationImpl.cs new file mode 100644 index 000000000..8356e2f3a --- /dev/null +++ b/src/Greenshot.Addon.Jira/Configuration/Impl/JiraConfigurationImpl.cs @@ -0,0 +1,62 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using Dapplo.Config.Ini; +using Greenshot.Core.Enums; + +namespace Greenshot.Addon.Jira.Configuration.Impl +{ + internal class JiraConfigurationImpl : IniSectionBase, IJiraConfiguration + { + #region Implementation of IFileConfiguration + + public string OutputFilePath { get; set; } + public bool OutputFileAllowOverwrite { get; set; } + public string OutputFileFilenamePattern { get; set; } + public OutputFormats OutputFileFormat { get; set; } + public bool OutputFileReduceColors { get; set; } + public bool OutputFileAutoReduceColors { get; set; } + public int OutputFileReduceColorsTo { get; set; } + public int OutputFileJpegQuality { get; set; } + public bool OutputFilePromptQuality { get; set; } + public uint OutputFileIncrementingNumber { get; set; } + public string OptimizePNGCommand { get; set; } + public string OptimizePNGCommandArguments { get; set; } + + #endregion + + #region Implementation of IDestinationFileConfiguration + + public bool UseOwnSettings { get; set; } + + #endregion + + #region Implementation of IJiraConfiguration + + public string Url { get; set; } + public int Timeout { get; set; } + public int MaxEntries { get; set; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.Jira/Configuration/Impl/JiraLanguageImpl.cs b/src/Greenshot.Addon.Jira/Configuration/Impl/JiraLanguageImpl.cs new file mode 100644 index 000000000..e25c06d9f --- /dev/null +++ b/src/Greenshot.Addon.Jira/Configuration/Impl/JiraLanguageImpl.cs @@ -0,0 +1,61 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System.Diagnostics.CodeAnalysis; +using Dapplo.Config.Language; + +namespace Greenshot.Addon.Jira.Configuration.Impl +{ + /// + /// This implements IJiraLanguage and takes care of storing, all setters are replaced via AutoProperties.Fody + /// +#pragma warning disable CS1591 + [SuppressMessage("ReSharper", "UnassignedGetOnlyAutoProperty")] + public class JiraLanguageImpl : LanguageBase, IJiraLanguage + { + #region Implementation of IJiraLanguage + + public string Cancel { get; } + public string ColumnAssignee { get; } + public string ColumnCreated { get; } + public string ColumnId { get; } + public string ColumnReporter { get; } + public string ColumnSummary { get; } + public string CommunicationWait { get; } + public string LabelComment { get; } + public string LabelFilename { get; } + public string LabelJira { get; } + public string LabelJirafilter { get; } + public string LabelUploadFormat { get; } + public string LabelUrl { get; } + public string LoginError { get; } + public string LoginTitle { get; } + public string Ok { get; } + public string SettingsTitle { get; } + public string UploadFailure { get; } + public string UploadMenuItem { get; } + public string UploadSuccess { get; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.Jira/FodyWeavers.xml b/src/Greenshot.Addon.Jira/FodyWeavers.xml index 288d3ebdd..f13eee787 100644 --- a/src/Greenshot.Addon.Jira/FodyWeavers.xml +++ b/src/Greenshot.Addon.Jira/FodyWeavers.xml @@ -1,8 +1,9 @@ - - - - + + + + Dapplo.Jira - + + \ No newline at end of file diff --git a/src/Greenshot.Addon.Jira/FodyWeavers.xsd b/src/Greenshot.Addon.Jira/FodyWeavers.xsd new file mode 100644 index 000000000..061979a03 --- /dev/null +++ b/src/Greenshot.Addon.Jira/FodyWeavers.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + 'true' to run assembly verification on the target assembly after all weavers have been finished. + + + + + A comma separated list of error codes that can be safely ignored in assembly verification. + + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.Jira/Greenshot.Addon.Jira.csproj b/src/Greenshot.Addon.Jira/Greenshot.Addon.Jira.csproj index 5251d55f2..ca2761752 100644 --- a/src/Greenshot.Addon.Jira/Greenshot.Addon.Jira.csproj +++ b/src/Greenshot.Addon.Jira/Greenshot.Addon.Jira.csproj @@ -1,165 +1,22 @@ - - - + + - {19FEEF09-313F-43C7-819D-F1BCA782B08B} - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Library Greenshot.Addon.Jira Greenshot.Addon.Jira - v4.6.1 - Properties - False - False - 4 - false - OnBuildSuccess - - - - 3.5 - - - - + net471 - - false - latest - - - false - - - false - latest - - - false - - + - - ..\packages\Autofac.4.8.1\lib\net45\Autofac.dll - - - ..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll - - - ..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll - - - ..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll - - - ..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll - - - ..\packages\Costura.Fody.3.1.0\lib\net46\Costura.dll - - - ..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll - - - ..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll - - - ..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll - - - ..\packages\Dapplo.CaliburnMicro.Configuration.1.0.75\lib\net461\Dapplo.CaliburnMicro.Configuration.dll - - - ..\packages\Dapplo.CaliburnMicro.Dapp.1.0.75\lib\net461\Dapplo.CaliburnMicro.Dapp.dll - - - ..\packages\Dapplo.CaliburnMicro.Menu.1.0.75\lib\net461\Dapplo.CaliburnMicro.Menu.dll - - - ..\packages\Dapplo.CaliburnMicro.Security.1.0.75\lib\net461\Dapplo.CaliburnMicro.Security.dll - - - ..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll - - - ..\packages\Dapplo.HttpExtensions.0.8.46\lib\net46\Dapplo.HttpExtensions.dll - - - ..\packages\Dapplo.HttpExtensions.JsonNet.0.8.46\lib\net46\Dapplo.HttpExtensions.JsonNet.dll - - - ..\packages\Dapplo.HttpExtensions.OAuth.0.8.46\lib\net46\Dapplo.HttpExtensions.OAuth.dll - - - ..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll - - - ..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll - - - ..\packages\Dapplo.Jira.0.7.15\lib\net46\Dapplo.Jira.dll - - - ..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll - - - ..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll - - - ..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll - - - ..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll - - - ..\packages\Dapplo.Windows.Clipboard.0.5.109\lib\net461\Dapplo.Windows.Clipboard.dll - - - ..\packages\Dapplo.Windows.Com.0.5.109\lib\net461\Dapplo.Windows.Com.dll - - - ..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll - - - ..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll - - - ..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll - - - ..\packages\Dapplo.Windows.EmbeddedBrowser.0.5.109\lib\net461\Dapplo.Windows.EmbeddedBrowser.dll - - - ..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll - - - ..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll - - - ..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll - - - ..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll - - - ..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll - + + PreserveNewest + + + + - - ..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll - - - ..\packages\Svg.2.3.0\lib\net35\Svg.dll - @@ -167,152 +24,40 @@ - - ..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\System.Windows.Interactivity.dll - + - - - - - - - - - - - - - - - - - Always - - - Always - - - Always - - - Always - - - + + - - {5B924697-4DCD-4F98-85F1-105CB84B7341} - Greenshot.Addons - False - - - {bf35190d-b2a7-4cfa-b397-51cb384cf0d7} - Greenshot.Core - - - {f041c685-eb96-4ed1-9ace-0f5bd836610f} - Greenshot.Gfx - + + + + - + + + + + + + + + + all + runtime; build; native; contentfiles; analyzers + - - - - - - - - - - - - - - - - - - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - - mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).dll" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -copy "$(ProjectDir)bin\$(Configuration)\Svg.dll" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons" -mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" -copy "$(ProjectDir)\Languages\*.xml" "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" - - - - False - Off - 4194304 - x86 - 4096 - - - False - Off - 4194304 - AnyCPU - 4096 - - - DEBUG;TRACE - False - True - Full - true - - - TRACE - True - False - None - false - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - - \ No newline at end of file + diff --git a/src/Greenshot.Addon.Jira/JiraAddonModule.cs b/src/Greenshot.Addon.Jira/JiraAddonModule.cs index 885f82411..e78c9cd2c 100644 --- a/src/Greenshot.Addon.Jira/JiraAddonModule.cs +++ b/src/Greenshot.Addon.Jira/JiraAddonModule.cs @@ -24,8 +24,10 @@ using Autofac; using Dapplo.Addons; using Dapplo.CaliburnMicro.Configuration; -using Dapplo.Ini; -using Dapplo.Language; +using Dapplo.Config.Ini; +using Dapplo.Config.Language; +using Greenshot.Addon.Jira.Configuration; +using Greenshot.Addon.Jira.Configuration.Impl; using Greenshot.Addon.Jira.ViewModels; using Greenshot.Addons.Components; @@ -37,17 +39,19 @@ namespace Greenshot.Addon.Jira protected override void Load(ContainerBuilder builder) { builder - .Register(context => IniConfig.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder - .Register(context => LanguageLoader.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder - .RegisterType() + .RegisterType() .As() .SingleInstance(); builder diff --git a/src/Greenshot.Addon.Jira/JiraConnector.cs b/src/Greenshot.Addon.Jira/JiraConnector.cs index a1da3b5c6..9e195a747 100644 --- a/src/Greenshot.Addon.Jira/JiraConnector.cs +++ b/src/Greenshot.Addon.Jira/JiraConnector.cs @@ -34,9 +34,12 @@ using System.Windows.Media.Imaging; using Dapplo.HttpExtensions; using Dapplo.HttpExtensions.Extensions; using Dapplo.Jira; +#if !NETCOREAPP3_0 using Dapplo.Jira.Converters; +#endif using Dapplo.Jira.Entities; using Dapplo.Log; +using Greenshot.Addon.Jira.Configuration; using Greenshot.Addons.Core; using Greenshot.Addons.Core.Credentials; using Greenshot.Addons.Extensions; @@ -102,7 +105,9 @@ namespace Greenshot.Addon.Jira public void UpdateSvgSize(int size) { +#if !NETCOREAPP3_0 _jiraClient.Behaviour.SetConfig(new SvgConfiguration { Width = size, Height = size }); +#endif } /// diff --git a/src/Greenshot.Addon.Jira/JiraDestination.cs b/src/Greenshot.Addon.Jira/JiraDestination.cs index 3e72477f6..8e426e454 100644 --- a/src/Greenshot.Addon.Jira/JiraDestination.cs +++ b/src/Greenshot.Addon.Jira/JiraDestination.cs @@ -34,6 +34,7 @@ using Dapplo.Addons; using Dapplo.HttpExtensions; using Dapplo.Jira.Entities; using Dapplo.Log; +using Greenshot.Addon.Jira.Configuration; using Greenshot.Addon.Jira.ViewModels; using Greenshot.Addons; using Greenshot.Addons.Components; diff --git a/src/Greenshot.Addon.Jira/JiraMonitor.cs b/src/Greenshot.Addon.Jira/JiraMonitor.cs index 110db6bd6..e329c124d 100644 --- a/src/Greenshot.Addon.Jira/JiraMonitor.cs +++ b/src/Greenshot.Addon.Jira/JiraMonitor.cs @@ -36,6 +36,7 @@ using Dapplo.Jira; using Dapplo.Log; using Dapplo.Windows.Desktop; using Dapplo.Windows.User32; +using Greenshot.Addon.Jira.Configuration; #endregion @@ -46,7 +47,7 @@ namespace Greenshot.Addon.Jira /// It keeps a list of the last "accessed" jiras, and makes it easy to upload to one. /// Make sure this is instanciated on the UI thread! /// - [Service(nameof(JiraMonitor), nameof(CaliburnServices.IniSectionService), TaskSchedulerName = "ui")] + [Service(nameof(JiraMonitor), nameof(CaliburnServices.ConfigurationService), TaskSchedulerName = "ui")] public class JiraMonitor : IStartup, IShutdown { private readonly IJiraConfiguration _jiraConfiguration; diff --git a/src/Greenshot.Addon.Jira/ViewModels/JiraConfigViewModel.cs b/src/Greenshot.Addon.Jira/ViewModels/JiraConfigViewModel.cs index 4b1a2c2ca..58aa7ef00 100644 --- a/src/Greenshot.Addon.Jira/ViewModels/JiraConfigViewModel.cs +++ b/src/Greenshot.Addon.Jira/ViewModels/JiraConfigViewModel.cs @@ -24,6 +24,7 @@ using System.Reactive.Disposables; using Dapplo.CaliburnMicro.Configuration; using Dapplo.CaliburnMicro.Extensions; +using Greenshot.Addon.Jira.Configuration; using Greenshot.Addons.Core.Enums; using Greenshot.Addons.ViewModels; diff --git a/src/Greenshot.Addon.Jira/ViewModels/JiraViewModel.cs b/src/Greenshot.Addon.Jira/ViewModels/JiraViewModel.cs index e82d146ef..ea593fbbe 100644 --- a/src/Greenshot.Addon.Jira/ViewModels/JiraViewModel.cs +++ b/src/Greenshot.Addon.Jira/ViewModels/JiraViewModel.cs @@ -29,6 +29,7 @@ using System.Windows; using Caliburn.Micro; using Dapplo.CaliburnMicro.Extensions; using Dapplo.Jira.Entities; +using Greenshot.Addon.Jira.Configuration; namespace Greenshot.Addon.Jira.ViewModels { diff --git a/src/Greenshot.Addon.Jira/packages.config b/src/Greenshot.Addon.Jira/packages.config deleted file mode 100644 index 2bf3a3d07..000000000 --- a/src/Greenshot.Addon.Jira/packages.config +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.Addon.LegacyEditor/Colors.cs b/src/Greenshot.Addon.LegacyEditor/Colors.cs index de90b5f53..c69381185 100644 --- a/src/Greenshot.Addon.LegacyEditor/Colors.cs +++ b/src/Greenshot.Addon.LegacyEditor/Colors.cs @@ -30,13 +30,27 @@ using System.Drawing; namespace Greenshot.Addon.LegacyEditor { + /// + /// Utility class to work with System.Drawing.Colors + /// TODO: should be done differently + /// public static class Colors { + /// + /// Is the specified color visible? + /// + /// Color + /// bool true if visible public static bool IsVisible(Color c) { return !c.Equals(Color.Empty) && !c.Equals(Color.Transparent) && c.A > 0; } + /// + /// Mix all specified colors into one + /// + /// IEnumerable with Color + /// Color public static Color Mix(IEnumerable colors) { var a = 0; diff --git a/src/Greenshot.Addon.LegacyEditor/Configuration/Impl/EditorConfigurationImpl.cs b/src/Greenshot.Addon.LegacyEditor/Configuration/Impl/EditorConfigurationImpl.cs new file mode 100644 index 000000000..26bca1834 --- /dev/null +++ b/src/Greenshot.Addon.LegacyEditor/Configuration/Impl/EditorConfigurationImpl.cs @@ -0,0 +1,30 @@ +using System.Collections.Generic; +using System.Drawing; +using Dapplo.Config.Ini; +using Dapplo.Windows.Common.Structs; +using Dapplo.Windows.User32.Enums; +using Greenshot.Gfx.Effects; + +namespace Greenshot.Addon.LegacyEditor.Configuration.Impl +{ + internal class EditorConfigurationImpl : IniSectionBase, IEditorConfiguration + { + #region Implementation of IEditorConfiguration + + public IList RecentColors { get; set; } + public IDictionary LastUsedFieldValues { get; set; } + public bool MatchSizeToCapture { get; set; } + public WindowPlacementFlags WindowPlacementFlags { get; set; } + public ShowWindowCommands ShowWindowCommand { get; set; } + public NativePoint WindowMinPosition { get; set; } + public NativePoint WindowMaxPosition { get; set; } + public NativeRect WindowNormalPosition { get; set; } + public bool ReuseEditor { get; set; } + public int FreehandSensitivity { get; set; } + public bool SuppressSaveDialogAtClose { get; set; } + public DropShadowEffect DropShadowEffectSettings { get; set; } + public TornEdgeEffect TornEdgeEffectSettings { get; set; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.LegacyEditor/Configuration/Impl/EditorLanguageImpl.cs b/src/Greenshot.Addon.LegacyEditor/Configuration/Impl/EditorLanguageImpl.cs new file mode 100644 index 000000000..fd6ebc101 --- /dev/null +++ b/src/Greenshot.Addon.LegacyEditor/Configuration/Impl/EditorLanguageImpl.cs @@ -0,0 +1,107 @@ +using System.Diagnostics.CodeAnalysis; +using Dapplo.Config.Language; + +namespace Greenshot.Addon.LegacyEditor.Configuration.Impl +{ + /// + /// This implements IEditorLanguage and takes care of storing, all setters are replaced via AutoProperties.Fody + /// + [SuppressMessage("ReSharper", "UnassignedGetOnlyAutoProperty")] +#pragma warning disable CS1591 + public class EditorLanguageImpl : LanguageBase, IEditorLanguage + { + #region Implementation of IEditorLanguage + + public string SettingsDestinationEditor { get; } + public string EditorAlignBottom { get; } + public string EditorAlignCenter { get; } + public string EditorAlignHorizontal { get; } + public string EditorAlignLeft { get; } + public string EditorAlignMiddle { get; } + public string EditorAlignRight { get; } + public string EditorAlignTop { get; } + public string EditorAlignVertical { get; } + public string EditorArrange { get; } + public string EditorArrowheads { get; } + public string EditorArrowheadsBoth { get; } + public string EditorArrowheadsEnd { get; } + public string EditorArrowheadsNone { get; } + public string EditorArrowheadsStart { get; } + public string EditorAutocrop { get; } + public string EditorBackcolor { get; } + public string EditorBlurRadius { get; } + public string EditorBold { get; } + public string EditorBorder { get; } + public string EditorBrightness { get; } + public string EditorCancel { get; } + public string EditorClipboardfailed { get; } + public string EditorClose { get; } + public string EditorCloseOnSave { get; } + public string EditorCloseOnSaveTitle { get; } + public string EditorConfirm { get; } + public string EditorCopyimagetoclipboard { get; } + public string EditorCopypathtoclipboard { get; } + public string EditorCopytoclipboard { get; } + public string EditorCrop { get; } + public string EditorCursortool { get; } + public string EditorCuttoclipboard { get; } + public string EditorDeleteelement { get; } + public string EditorDownonelevel { get; } + public string EditorDowntobottom { get; } + public string EditorDrawarrow { get; } + public string EditorDrawellipse { get; } + public string EditorDrawfreehand { get; } + public string EditorDrawhighlighter { get; } + public string EditorDrawline { get; } + public string EditorDrawrectangle { get; } + public string EditorDrawtextbox { get; } + public string EditorDuplicate { get; } + public string EditorEdit { get; } + public string EditorEffects { get; } + public string EditorEmail { get; } + public string EditorFile { get; } + public string EditorFontsize { get; } + public string EditorForecolor { get; } + public string EditorGrayscale { get; } + public string EditorHighlightArea { get; } + public string EditorHighlightGrayscale { get; } + public string EditorHighlightMagnify { get; } + public string EditorHighlightMode { get; } + public string EditorHighlightText { get; } + public string EditorImagesaved { get; } + public string EditorInsertwindow { get; } + public string EditorItalic { get; } + public string EditorLoadObjects { get; } + public string EditorMagnificationFactor { get; } + public string EditorMatchCaptureSize { get; } + public string EditorObfuscate { get; } + public string EditorObfuscateBlur { get; } + public string EditorObfuscateMode { get; } + public string EditorObfuscatePixelize { get; } + public string EditorObject { get; } + public string EditorOpendirinexplorer { get; } + public string EditorPastefromclipboard { get; } + public string EditorPixelSize { get; } + public string EditorPreviewQuality { get; } + public string EditorPrint { get; } + public string EditorRedo { get; } + public string EditorResetsize { get; } + public string EditorResizePercent { get; } + public string EditorResizePixel { get; } + public string EditorSave { get; } + public string EditorSaveas { get; } + public string EditorSaveObjects { get; } + public string EditorSelectall { get; } + public string EditorSenttoprinter { get; } + public string EditorShadow { get; } + public string EditorStoredtoclipboard { get; } + public string EditorThickness { get; } + public string EditorTitle { get; } + public string EditorTornEdge { get; } + public string EditorUndo { get; } + public string EditorUponelevel { get; } + public string EditorUptotop { get; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.LegacyEditor/Controls/ColorDialog.Designer.cs b/src/Greenshot.Addon.LegacyEditor/Controls/ColorDialog.Designer.cs index 7ff1e7644..4632cf023 100644 --- a/src/Greenshot.Addon.LegacyEditor/Controls/ColorDialog.Designer.cs +++ b/src/Greenshot.Addon.LegacyEditor/Controls/ColorDialog.Designer.cs @@ -20,6 +20,7 @@ */ using Greenshot.Addons.Controls; +using Greenshot.Addons.Resources; namespace Greenshot.Addon.LegacyEditor.Controls { public partial class ColorDialog { @@ -49,7 +50,6 @@ namespace Greenshot.Addon.LegacyEditor.Controls { /// private void InitializeComponent() { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ColorDialog)); this.btnTransparent = new Greenshot.Addons.Controls.GreenshotButton(); this.colorPanel = new System.Windows.Forms.Panel(); this.labelHtmlColor = new Greenshot.Addons.Controls.GreenshotLabel(); @@ -233,7 +233,7 @@ namespace Greenshot.Addon.LegacyEditor.Controls { // this.pipette.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pipette.Cursor = System.Windows.Forms.Cursors.Arrow; - this.pipette.Image = ((System.Drawing.Image)(resources.GetObject("pipette.Image"))); + this.pipette.Image = GreenshotResources.Instance.GetBitmap("pipette.Image", GetType()); this.pipette.Location = new System.Drawing.Point(510, 56); this.pipette.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); this.pipette.Name = "pipette"; @@ -278,7 +278,7 @@ namespace Greenshot.Addon.LegacyEditor.Controls { this.Controls.Add(this.colorPanel); this.Controls.Add(this.btnTransparent); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Icon = GreenshotResources.Instance.GetGreenshotIcon(); this.LanguageKey = "colorpicker_title"; this.Margin = new System.Windows.Forms.Padding(6); this.MaximizeBox = false; diff --git a/src/Greenshot.Addon.LegacyEditor/Controls/ColorDialog.resx b/src/Greenshot.Addon.LegacyEditor/Controls/ColorDialog.resx deleted file mode 100644 index c94cb7263..000000000 --- a/src/Greenshot.Addon.LegacyEditor/Controls/ColorDialog.resx +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - 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 - AgAAAAAAAAAAAAACAAAAAAAAAAACAgAAIUpKSkpFAgAAAAAAAAAASkpDAAAMFQURBQAAAAACAAAAAgAA - AAAAAAAAAjBKSTACL0pKSkpKCQAAAAAAAAAASkohAAAAEUFKSS8CAAAAAAAAAAAAAAAAAAAAKkpKSkoo - HEpKSkpDAAAAAAAAAAAALhcAAAAAPUpKSkoeAAAAAAIAAAAAAh4zLAwAQUpKSko+ATFKSkYVAAAAAAAA - AAAACS09LgkHSkpKSkozAAAAAAAAAAAAL0pKSkYJOkpKSko5AAANFAMAAAAAAAAAAAAAPkpKSkEHRkpK - SkopAAIAAAwXBQIHSUpKSkojGEpKSkkXAAAAAAAAAAAAAAAAAAAASkpKSkoZHkpKSkMFAAAAKUpKSR4M - SkpKSkoqABAtLw8AAAAAAAAAAAAAAAAAAAAASkpKSkoaABQpIQcAAAATSkpKSkkMPUpKSkoUAAAAAAAA - AAAAAAAAAAAAAAAAAAAAQ0pKSkYHAAAAGz5DKwceSkpKSkoXDDlKQx4AAAAAAAAAAAAAAAAAAAAAAAAA - AAAAEThGORMAAAAXSkpKSjAUSkpKSkoMAAICAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAx - SkpKSkkCMEpKSSoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwSkpKSkUCABUhDgAC - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSkpKSisCAAAAAAAAAQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFTg9JgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAgAAAgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApEIAAAAAAACkQgAAAAAAAKRCAAAAAAAApEIA - AAAAAACkQgAAAAAAAKRCAAAAAAAApEIAAAAAAACkQgAAAAAAAKRCAAAAAAAApEIAAAAAAACkQgAAAAAA - AKRCAAAAAAAApEIAAAAAAACkQgAAAAAAAKRCAAAAAAAApEIAAAAAAACkQgAAAAAAAKRCAAAAAAAApEIA - AAAAAACkQgAAAAAAAKRCAAAAAAAApEIAAAAAAACkQgAAAAAAAKRCAAAAAAAApEIAAAAAAACkQgAAAAAA - AKRCAAAAAAAApEIAAAAAAACkQgAAAAAAAKRCAAAAAAAApEIAAAAAAACkQgAAAAAAAKRCAAAAAAAApEIA - AAAAAACkQgAAAAAAAKRCAAAAAAAApEIAAAAAAACkQgAAAAAAAKRCAAAAAAAApEIAAAAAAACkQgAAAAAA - AKRCAAAAAAAApEIAAAAAAACkQgAAAAAAAKRCAAAAAAAApEIAAAAAAACkQgAAAAAAAKRCKAAAACAAAABA - AAAAAQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADw9PQA6QT4AOkQ/ADlGQAA3TUMAN05EADhJQQA4 - TEMANVFFADRVRgAzWkgANFhIADJdSQAvZk0ALmlOADFhSgAwY0wAMGRMAC1tUAArc1IALHJRACp1UgAq - d1QAKXlUACh9VgAngFcAJoJYACWGWgAliVsAJItcACOOXAAkjFwAIZJeACGVXwAfmWEAHpxiAB2fZAAg - lmAAIJhhAByhZAAbp2cAHKVmABuoZwAaqWgAF7JrABezbAAXtWwAGLBqABa4bQAUvXAADs52ABLBcQAR - xXMAEch0AA7QdwAN0ngADNV5AAvaegAK3HwACeB9AAjlfwAH5oAABumBAAPyhQAE8YQAA/SFAAH4hwAB - +ogAAP6JAACwNgAAz0AAAPBKABH/WwAx/3EAUf+HAHH/nQCR/7IAsf/JANH/3wD///8AAAAAAAIvAAAE - UAAABnAAAAiQAAAKsAAAC88AAA7wAAAg/xIAPf8xAFv/UQB5/3EAmP+RALX/sQDU/9EA////AAAAAAAU - LwAAIlAAADBwAAA9kAAATLAAAFnPAABn8AAAeP8RAIr/MQCc/1EArv9xAMD/kQDS/7EA5P/RAP///wAA - AAAAJi8AAEBQAABacAAAdJAAAI6wAACpzwAAwvAAANH/EQDY/zEA3v9RAOP/cQDp/5EA7/+xAPb/0QD/ - //8AAAAAAC8mAABQQQAAcFsAAJB0AACwjgAAz6kAAPDDAAD/0hEA/9gxAP/dUQD/5HEA/+qRAP/wsQD/ - 9tEA////AAAAAAAvFAAAUCIAAHAwAACQPgAAsE0AAM9bAADwaQAA/3kRAP+KMQD/nVEA/69xAP/BkQD/ - 0rEA/+XRAP///wAAAAAALwMAAFAEAABwBgAAkAkAALAKAADPDAAA8A4AAP8gEgD/PjEA/1xRAP96cQD/ - l5EA/7axAP/U0QD///8AAAAAAC8ADgBQABcAcAAhAJAAKwCwADYAzwBAAPAASQD/EVoA/zFwAP9RhgD/ - cZwA/5GyAP+xyAD/0d8A////AAAAAAAvACAAUAA2AHAATACQAGIAsAB4AM8AjgDwAKQA/xGzAP8xvgD/ - UccA/3HRAP+R3AD/seUA/9HwAP///wAAAAAALAAvAEsAUABpAHAAhwCQAKUAsADEAM8A4QDwAPAR/wDy - Mf8A9FH/APZx/wD3kf8A+bH/APvR/wD///8AAAAAABsALwAtAFAAPwBwAFIAkABjALAAdgDPAIgA8ACZ - Ef8ApjH/ALRR/wDCcf8Az5H/ANyx/wDr0f8A////AAAAAAAIAC8ADgBQABUAcAAbAJAAIQCwACYAzwAs - APAAPhH/AFgx/wBxUf8AjHH/AKaR/wC/sf8A2tH/AP///wAAABg2KgdEQ0M2DzY4EgAANkRDHDpEQzkA - AAAAAAAAAAEIREREITZDQyYAAAAAAAdDREQ1ETg4EQAAAAAAAAAAOxJEREQpBx8WAAAAAAAAADpERCEA - AB81KQAAAAAAAABEGy1EOwUAAAAAAAAAAAAABx8YDAARQ0REGQAAAAAAAEQNAAIAAAAAAAAAAAAAAAAA - Cz5DORZDQ0MfAAAAAAAAGAAAAAAAAAAAAAAAAAAfKgsmQ0NDFjFDOAcAAAAAAAA+QBsAAAAAAAAAAAAA - JkRDQBlDQ0MLAAIAAAAAAAAAAEREPwAAAAAAAAAAAAAwQ0NDBRwuFAAAAAAAAAAAAAAAREQ+AAAAAAAA - AAAAABRDQzEAAAAAAAAAAAAAAAAAAAA0Ng4AAAAAAAAAAAAAAAcPAAAAAAAAAAAAAAAAAAAAAAAcOC4C - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACURERCYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAS - REREKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsrQzkFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAADQAAIS0RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABACFEREEDAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAEMcLURERAsAAAAAAAAAAAAAAAAAAAACJi4LAAAAAAAAREENQUQ0AAAAAAAAAAAAAAAAAAIA - ACpERDwAAAAAAABEPAAHER8YAAAAAAAAAAAAAAAYQUEXNURERAIAAAAAADURAAA2REQjAAAAAAAABx8W - ADxERDsUQ0QvAAAAAAAAHjsxB0RERDYAAAAAAAA6REQhOERENgAHCwAAAAAAAABEREQjNUREHgAAJjsw - CERERDULMzELAAAAAAAAAAAAAERERCQCFhYUAw9EREQhNkRDGwAAAAAAAAAAAAAAAAAAJEA1BwAIQEQ+ - FERERCYCFxEAAAAAAAAAAAAAAAAAAAAAAAAAACFEREQZKUA1AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - DUREQwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCcNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - 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 - - - \ No newline at end of file diff --git a/src/Greenshot.Addon.LegacyEditor/Controls/CustomToolStripProfessionalRenderer.cs b/src/Greenshot.Addon.LegacyEditor/Controls/CustomToolStripProfessionalRenderer.cs index ff59894e6..fd68d0e34 100644 --- a/src/Greenshot.Addon.LegacyEditor/Controls/CustomToolStripProfessionalRenderer.cs +++ b/src/Greenshot.Addon.LegacyEditor/Controls/CustomToolStripProfessionalRenderer.cs @@ -63,7 +63,7 @@ namespace Greenshot.Addon.LegacyEditor.Controls { int halfHeight = e.ArrowRectangle.Height / 2; int halfWidth = e.ArrowRectangle.Width / 2; - Point middle = new Point(dropDownRect.Left + halfWidth, dropDownRect.Top + halfHeight); + var middle = new Point(dropDownRect.Left + halfWidth, dropDownRect.Top + halfHeight); Point[] arrow; diff --git a/src/Greenshot.Addon.LegacyEditor/Controls/Pipette.cs b/src/Greenshot.Addon.LegacyEditor/Controls/Pipette.cs index dce9590ae..48431bfe0 100644 --- a/src/Greenshot.Addon.LegacyEditor/Controls/Pipette.cs +++ b/src/Greenshot.Addon.LegacyEditor/Controls/Pipette.cs @@ -33,6 +33,7 @@ using Dapplo.Windows.Icons.SafeHandles; using Dapplo.Windows.Messages; using Dapplo.Windows.User32; using Greenshot.Addons.Controls; +using Greenshot.Addons.Resources; #endregion @@ -54,7 +55,7 @@ namespace Greenshot.Addon.LegacyEditor.Controls { BorderStyle = BorderStyle.FixedSingle; _dragging = false; - _image = (Bitmap) new ComponentResourceManager(typeof(ColorDialog)).GetObject("pipette.Image"); + _image = GreenshotResources.Instance.GetBitmap("pipette.Image", GetType()); Image = _image; _cursor = CreateCursor(_image, 1, 14); _movableShowColorForm = new MovableShowColorForm(); @@ -91,7 +92,7 @@ namespace Greenshot.Addon.LegacyEditor.Controls public event EventHandler PipetteUsed; /// - /// Create a cursor from the supplied bitmap & hotspot coordinates + /// Create a cursor from the supplied bitmap and hotspot coordinates /// /// Bitmap to create an icon from /// Hotspot X coordinate diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/DrawableContainer.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/DrawableContainer.cs index 3c6854e1d..86e64c120 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/DrawableContainer.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/DrawableContainer.cs @@ -30,10 +30,10 @@ using System.Drawing; using System.Drawing.Drawing2D; using System.Runtime.Serialization; using System.Windows.Forms; -using Dapplo.Ini; using Dapplo.Log; using Dapplo.Windows.Common.Extensions; using Dapplo.Windows.Common.Structs; +using Greenshot.Addon.LegacyEditor.Configuration.Impl; using Greenshot.Addon.LegacyEditor.Drawing.Adorners; using Greenshot.Addon.LegacyEditor.Drawing.Fields; using Greenshot.Addon.LegacyEditor.Drawing.Filters; @@ -59,7 +59,8 @@ namespace Greenshot.Addon.LegacyEditor.Drawing private const int M11 = 0; private const int M22 = 3; private static readonly LogSource Log = new LogSource(); - protected static readonly IEditorConfiguration EditorConfig = IniConfig.Current.Get(); + // TODO: Solve, was static reference! + protected static readonly IEditorConfiguration EditorConfig = new EditorConfigurationImpl(); /// /// List of available Adorners diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/DrawableContainerList.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/DrawableContainerList.cs index dfdf5475b..2a8b14150 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/DrawableContainerList.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/DrawableContainerList.cs @@ -34,6 +34,7 @@ using Greenshot.Addon.LegacyEditor.Memento; using Greenshot.Addons.Core; using Greenshot.Addons.Interfaces; using Greenshot.Addons.Interfaces.Drawing; +using Greenshot.Addons.Resources; namespace Greenshot.Addon.LegacyEditor.Drawing { /// @@ -42,8 +43,6 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { [Serializable] public class DrawableContainerList : List, IDrawableContainerList { - private static readonly ComponentResourceManager EditorFormResources = new ComponentResourceManager(typeof(ImageEditorForm)); - public Guid ParentID { get; private set; @@ -468,7 +467,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { // Copy item = new ToolStripMenuItem(editorLanguage.EditorCopytoclipboard) { - Image = (Image) EditorFormResources.GetObject("copyToolStripMenuItem.Image") + Image = GreenshotResources.Instance.GetBitmap("copyToolStripMenuItem.Image", GetType()) }; item.Click += (sender, args) => ClipboardHelper.SetClipboardData(typeof(IDrawableContainerList), this); menu.Items.Add(item); @@ -476,7 +475,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { // Cut item = new ToolStripMenuItem(editorLanguage.EditorCuttoclipboard) { - Image = (Image) EditorFormResources.GetObject("btnCut.Image") + Image = GreenshotResources.Instance.GetBitmap("btnCut.Image", GetType()) }; item.Click += (sender, args) => { @@ -488,7 +487,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { // Delete item = new ToolStripMenuItem(editorLanguage.EditorDeleteelement) { - Image = (Image) EditorFormResources.GetObject("removeObjectToolStripMenuItem.Image") + Image = GreenshotResources.Instance.GetBitmap("removeObjectToolStripMenuItem.Image", GetType()) }; item.Click += (sender, args) => surface.RemoveElements(this); menu.Items.Add(item); @@ -522,7 +521,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { continue; } - Size defaultSize = container.DefaultSize; + var defaultSize = container.DefaultSize; container.MakeBoundsChangeUndoable(false); container.Width = defaultSize.Width; container.Height = defaultSize.Height; diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/AbstractFieldHolder.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/AbstractFieldHolder.cs index e2895a3ae..0e44a9437 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/AbstractFieldHolder.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/AbstractFieldHolder.cs @@ -24,8 +24,8 @@ using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Runtime.Serialization; -using Dapplo.Ini; using Dapplo.Log; +using Greenshot.Addon.LegacyEditor.Configuration.Impl; using Greenshot.Addons.Interfaces.Drawing; namespace Greenshot.Addon.LegacyEditor.Drawing.Fields @@ -37,8 +37,10 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Fields public abstract class AbstractFieldHolder : IFieldHolder { private static readonly LogSource Log = new LogSource(); - private static readonly IEditorConfiguration EditorConfig = IniConfig.Current.Get(); - [NonSerialized] + // TODO: Solve, was static reference! + private static readonly IEditorConfiguration EditorConfig = new EditorConfigurationImpl(); + + [NonSerialized] private readonly IDictionary _handlers = new Dictionary(); /// diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/Field.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/Field.cs index e0f028c2e..335b4bd00 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/Field.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/Field.cs @@ -119,8 +119,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Fields public override bool Equals(object obj) { - var other = obj as Field; - if (other == null) + if (!(obj is Field other)) { return false; } diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/FieldAggregator.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/FieldAggregator.cs index 194caee41..7e4773948 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/FieldAggregator.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/FieldAggregator.cs @@ -27,7 +27,7 @@ using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; -using Dapplo.Ini; +using Greenshot.Addon.LegacyEditor.Configuration.Impl; using Greenshot.Addons.Interfaces; using Greenshot.Addons.Interfaces.Drawing; @@ -49,7 +49,8 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Fields [Serializable] public sealed class FieldAggregator : AbstractFieldHolder { - private static readonly IEditorConfiguration EditorConfig = IniConfig.Current.Get(); + // TODO: Solve, was static reference! + private static readonly IEditorConfiguration EditorConfig = new EditorConfigurationImpl(); private readonly IDrawableContainerList _boundContainers; private bool _internalUpdateRunning; diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/IFieldHolder.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/IFieldHolder.cs deleted file mode 100644 index 063ca48d7..000000000 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/IFieldHolder.cs +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Greenshot - a free and open source screenshot tool - * Copyright (C) 2007-2015 Thomas Braun, Jens Klingen, Robin Krom - * - * For more information see: http://getgreenshot.org/ - * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 1 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -using System.Collections.Generic; - -namespace Greenshot.Drawing.Fields { - /// - /// Any element holding Fields must provide access to it. - /// AbstractFieldHolder is the basic implementation. - /// If you need the fieldHolder to have child fieldHolders, - /// you should consider using IFieldHolderWithChildren. - /// - public interface IFieldHolder { - - event FieldChangedEventHandler FieldChanged; - - void AddField(Field field); - void RemoveField(Field field); - List GetFields(); - Field GetField(FieldType fieldType); - bool HasField(FieldType fieldType); - void SetFieldValue(FieldType fieldType, object value); - } - - /// - /// Extended fieldHolder which has fieldHolder children. - /// Implementations should pass field values to and from - /// their children. - /// AbstractFieldHolderWithChildren is the basic implementation. - /// - public interface IFieldHolderWithChildren : IFieldHolder { - void AddChild(IFieldHolder fieldHolder); - void RemoveChild(IFieldHolder fieldHolder); - } -} diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/AbstractFilter.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/AbstractFilter.cs index be486e074..b2ae8feed 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/AbstractFilter.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/AbstractFilter.cs @@ -75,11 +75,6 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Filters set { parent = value; } } - public DrawableContainer GetParent() - { - return parent; - } - public abstract void Apply(Graphics graphics, Bitmap applyBitmap, NativeRect rect, RenderMode renderMode); protected void OnPropertyChanged(string propertyName) diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/IFilter.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/IFilter.cs index 6160f0ede..03a322691 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/IFilter.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/IFilter.cs @@ -32,11 +32,28 @@ using Greenshot.Addons.Interfaces.Drawing; namespace Greenshot.Addon.LegacyEditor.Drawing.Filters { + /// + /// This defines the interface for all filters + /// public interface IFilter : INotifyPropertyChanged, IFieldHolder { + /// + /// Filters are childen of DrawableContainers, this is the parent + /// DrawableContainer Parent { get; set; } + + /// + /// is the filtered area inverted? + /// bool Invert { get; set; } - void Apply(Graphics graphics, Bitmap bmp, NativeRect rect, RenderMode renderMode); - DrawableContainer GetParent(); - } + + /// + /// Apply this filter + /// + /// Graphics to use + /// Bitmap to apply to + /// NativeRect with the area + /// RenderMode to use + void Apply(Graphics graphics, Bitmap bmp, NativeRect rect, RenderMode renderMode); + } } \ No newline at end of file diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/FreehandContainer.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/FreehandContainer.cs index 5e8e71bee..e102a32a5 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/FreehandContainer.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/FreehandContainer.cs @@ -184,7 +184,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { graphics.PixelOffsetMode = PixelOffsetMode.HighQuality; int lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS); - Color lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR); + var lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR); using (var pen = new Pen(lineColor)) { pen.Width = lineThickness; if (!(pen.Width > 0)) @@ -199,7 +199,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { graphics.TranslateTransform(Left, Top); lock (_freehandPathLock) { - if (isRecalculated && Selected && renderMode == RenderMode.EDIT) + if (isRecalculated && Selected && renderMode == RenderMode.Edit) { DrawSelectionBorder(graphics, pen, freehandPath); } @@ -257,8 +257,8 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { { return false; } - var other = obj as FreehandContainer; - if (other != null && Equals(freehandPath, other.freehandPath)) { + + if (obj is FreehandContainer other && Equals(freehandPath, other.freehandPath)) { ret = true; } return ret; diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/RectangleContainer.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/RectangleContainer.cs index 009fa0e1a..ef54e388d 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/RectangleContainer.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/RectangleContainer.cs @@ -63,8 +63,8 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { public override void Draw(Graphics graphics, RenderMode rm) { int lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS); - Color lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR, Color.Red); - Color fillColor = GetFieldValueAsColor(FieldTypes.FILL_COLOR, Color.Transparent); + var lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR, Color.Red); + var fillColor = GetFieldValueAsColor(FieldTypes.FILL_COLOR, Color.Transparent); bool shadow = GetFieldValueAsBool(FieldTypes.SHADOW); var rect = new NativeRect(Left, Top, Width, Height).Normalize(); @@ -95,7 +95,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { int steps = 5; int currentStep = lineVisible ? 1 : 0; while (currentStep <= steps) { - using (Pen shadowPen = new Pen(Color.FromArgb(alpha, 100, 100, 100))) { + using (var shadowPen = new Pen(Color.FromArgb(alpha, 100, 100, 100))) { shadowPen.Width = lineVisible ? lineThickness : 1; var shadowRect = new NativeRect( rect.Left + currentStep, @@ -118,7 +118,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { graphics.SmoothingMode = SmoothingMode.HighSpeed; if (lineVisible) { - using (Pen pen = new Pen(lineColor, lineThickness)) { + using (var pen = new Pen(lineColor, lineThickness)) { graphics.DrawRectangle(pen, rect); } } @@ -127,7 +127,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { public override bool ClickableAt(int x, int y) { var rect = new NativeRect(Left, Top, Width, Height).Normalize(); int lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS) + 10; - Color fillColor = GetFieldValueAsColor(FieldTypes.FILL_COLOR); + var fillColor = GetFieldValueAsColor(FieldTypes.FILL_COLOR); return RectangleClickableAt(rect, lineThickness, fillColor, x, y); } @@ -144,8 +144,8 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { // check the rest of the lines if (lineThickness > 0) { - using (Pen pen = new Pen(Color.White, lineThickness)) { - using (GraphicsPath path = new GraphicsPath()) { + using (var pen = new Pen(Color.White, lineThickness)) { + using (var path = new GraphicsPath()) { path.AddRectangle(rect); return path.IsOutlineVisible(x, y, pen); } diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/SpeechbubbleContainer.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/SpeechbubbleContainer.cs index 15fed8338..3064769ba 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/SpeechbubbleContainer.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/SpeechbubbleContainer.cs @@ -229,7 +229,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing var lineVisible = lineThickness > 0 && Colors.IsVisible(lineColor); var rect = new NativeRect(Left, Top, Width, Height).Normalize(); - if (Selected && renderMode == RenderMode.EDIT) + if (Selected && renderMode == RenderMode.Edit) { DrawSelectionBorder(graphics, rect); } diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/Surface.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/Surface.cs index ff8c13b09..577677fdc 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/Surface.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/Surface.cs @@ -33,12 +33,12 @@ using System.IO; using System.Runtime.Serialization.Formatters.Binary; using System.Windows.Forms; using Dapplo.HttpExtensions; -using Dapplo.Ini; using Dapplo.Log; using Dapplo.Windows.Common.Extensions; using Dapplo.Windows.Common.Structs; using Greenshot.Addon.LegacyEditor.Drawing.Fields; using Greenshot.Addon.LegacyEditor.Memento; +using Greenshot.Addons.Config.Impl; using Greenshot.Addons.Controls; using Greenshot.Addons.Core; using Greenshot.Addons.Interfaces; @@ -57,12 +57,13 @@ namespace Greenshot.Addon.LegacyEditor.Drawing public sealed class Surface : Control, ISurface, INotifyPropertyChanged { private static readonly LogSource Log = new LogSource(); + // TODO: Solve, was static reference! + private static readonly ICoreConfiguration conf = new CoreConfigurationImpl(); - /// - /// The number of Surfaces in existance - /// - public static int Count { get; private set; } - private static readonly ICoreConfiguration conf = IniConfig.Current.Get(); + /// + /// The number of Surfaces in existance + /// + public static int Count { get; private set; } /// /// all elements on the surface, needed with serialization @@ -596,7 +597,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing /// public Bitmap GetBitmapForExport() { - return GetBitmap(RenderMode.EXPORT); + return GetBitmap(RenderMode.Export); } /// @@ -1645,7 +1646,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing DrawBackground(graphics, clipRectangle); graphics.DrawImage(Screenshot, clipRectangle, clipRectangle, GraphicsUnit.Pixel); graphics.SetClip(targetGraphics); - _elements.Draw(graphics, _buffer, RenderMode.EDIT, clipRectangle); + _elements.Draw(graphics, _buffer, RenderMode.Edit, clipRectangle); } targetGraphics.DrawImage(_buffer, clipRectangle, clipRectangle, GraphicsUnit.Pixel); } @@ -1653,7 +1654,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { DrawBackground(targetGraphics, clipRectangle); targetGraphics.DrawImage(Screenshot, clipRectangle, clipRectangle, GraphicsUnit.Pixel); - _elements.Draw(targetGraphics, null, RenderMode.EDIT, clipRectangle); + _elements.Draw(targetGraphics, null, RenderMode.Edit, clipRectangle); } // No clipping for the adorners diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/TextContainer.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/TextContainer.cs index 8b8bad73a..6b494f4c5 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/TextContainer.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/TextContainer.cs @@ -168,7 +168,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing public void FitToText() { - Size textSize = TextRenderer.MeasureText(text, _font); + var textSize = TextRenderer.MeasureText(text, _font); int lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS); Width = textSize.Width + lineThickness; Height = textSize.Height + lineThickness; @@ -288,7 +288,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { return; } - Color lc = GetFieldValueAsColor(FieldTypes.LINE_COLOR); + var lc = GetFieldValueAsColor(FieldTypes.LINE_COLOR); if (lc.R > 203 && lc.G > 203 && lc.B > 203) { _textBox.BackColor = Color.FromArgb(51, 51, 51); @@ -331,7 +331,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing private Font CreateFont(string fontFamilyName, bool fontBold, bool fontItalic, float fontSize) { - FontStyle fontStyle = FontStyle.Regular; + var fontStyle = FontStyle.Regular; bool hasStyle = false; using (var fontFamily = new FontFamily(fontFamilyName)) @@ -444,7 +444,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing lineWidth = 1; correction = -1; } - NativeRect absRectangle = new NativeRect(Left, Top, Width, Height).Normalize(); + var absRectangle = new NativeRect(Left, Top, Width, Height).Normalize(); _textBox.Left = absRectangle.Left + lineWidth; _textBox.Top = absRectangle.Top + lineWidth; if (lineThickness <= 1) @@ -534,8 +534,8 @@ namespace Greenshot.Addon.LegacyEditor.Drawing graphics.PixelOffsetMode = PixelOffsetMode.None; graphics.TextRenderingHint = TextRenderingHint.SystemDefault; - NativeRect rect = new NativeRect(Left, Top, Width, Height).Normalize(); - if (Selected && rm == RenderMode.EDIT) + var rect = new NativeRect(Left, Top, Width, Height).Normalize(); + if (Selected && rm == RenderMode.Edit) { DrawSelectionBorder(graphics, rect); } @@ -547,9 +547,9 @@ namespace Greenshot.Addon.LegacyEditor.Drawing // we only draw the shadow if there is no background bool shadow = GetFieldValueAsBool(FieldTypes.SHADOW); - Color fillColor = GetFieldValueAsColor(FieldTypes.FILL_COLOR); + var fillColor = GetFieldValueAsColor(FieldTypes.FILL_COLOR); int lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS); - Color lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR); + var lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR); bool drawShadow = shadow && (fillColor == Color.Transparent || fillColor == Color.Empty); DrawText(graphics, rect, lineThickness, lineColor, drawShadow, _stringFormat, text, _font); diff --git a/src/Greenshot.Addon.LegacyEditor/EditorAddonModule.cs b/src/Greenshot.Addon.LegacyEditor/EditorAddonModule.cs index ad5b1fe35..37fdb897d 100644 --- a/src/Greenshot.Addon.LegacyEditor/EditorAddonModule.cs +++ b/src/Greenshot.Addon.LegacyEditor/EditorAddonModule.cs @@ -24,8 +24,9 @@ using Autofac; using Dapplo.Addons; using Dapplo.CaliburnMicro.Configuration; -using Dapplo.Ini; -using Dapplo.Language; +using Dapplo.Config.Ini; +using Dapplo.Config.Language; +using Greenshot.Addon.LegacyEditor.Configuration.Impl; using Greenshot.Addon.LegacyEditor.Controls; using Greenshot.Addon.LegacyEditor.Drawing; using Greenshot.Addon.LegacyEditor.Forms; @@ -41,13 +42,15 @@ namespace Greenshot.Addon.LegacyEditor protected override void Load(ContainerBuilder builder) { builder - .Register(context => IniConfig.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder - .Register(context => LanguageLoader.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder diff --git a/src/Greenshot.Addon.LegacyEditor/EditorDestination.cs b/src/Greenshot.Addon.LegacyEditor/EditorDestination.cs index 417676afc..6bb5b2146 100644 --- a/src/Greenshot.Addon.LegacyEditor/EditorDestination.cs +++ b/src/Greenshot.Addon.LegacyEditor/EditorDestination.cs @@ -33,6 +33,7 @@ using Greenshot.Addons.Components; using Greenshot.Addons.Core; using Greenshot.Addons.Interfaces; using Greenshot.Addons.Interfaces.Forms; +using Greenshot.Addons.Resources; #endregion @@ -48,7 +49,7 @@ namespace Greenshot.Addon.LegacyEditor private readonly EditorFactory _editorFactory; private readonly IEditorLanguage _editorLanguage; private static readonly LogSource Log = new LogSource(); - private static readonly Bitmap greenshotIcon = GreenshotResources.GetGreenshotIcon().ToBitmap(); + private static readonly Bitmap greenshotIcon = GreenshotResources.Instance.GetGreenshotIcon().ToBitmap(); private readonly IImageEditor _editor; /// diff --git a/src/Greenshot.Addon.LegacyEditor/FodyWeavers.xml b/src/Greenshot.Addon.LegacyEditor/FodyWeavers.xml new file mode 100644 index 000000000..7f5a26669 --- /dev/null +++ b/src/Greenshot.Addon.LegacyEditor/FodyWeavers.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.LegacyEditor/FodyWeavers.xsd b/src/Greenshot.Addon.LegacyEditor/FodyWeavers.xsd new file mode 100644 index 000000000..061979a03 --- /dev/null +++ b/src/Greenshot.Addon.LegacyEditor/FodyWeavers.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + 'true' to run assembly verification on the target assembly after all weavers have been finished. + + + + + A comma separated list of error codes that can be safely ignored in assembly verification. + + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.LegacyEditor/Forms/DropShadowSettingsForm.cs b/src/Greenshot.Addon.LegacyEditor/Forms/DropShadowSettingsForm.cs index 2303aab85..6e93ec54d 100644 --- a/src/Greenshot.Addon.LegacyEditor/Forms/DropShadowSettingsForm.cs +++ b/src/Greenshot.Addon.LegacyEditor/Forms/DropShadowSettingsForm.cs @@ -34,11 +34,15 @@ using Greenshot.Gfx.Effects; namespace Greenshot.Addon.LegacyEditor.Forms { + /// + /// This form makes it possible to change the settings for a DropShadow effect + /// public partial class DropShadowSettingsForm : GreenshotForm { private readonly DropShadowEffect _effect; - public DropShadowSettingsForm(DropShadowEffect effect, IGreenshotLanguage greenshotLanguage) : base(greenshotLanguage) + /// + public DropShadowSettingsForm(DropShadowEffect effect, IGreenshotLanguage greenshotLanguage) : base(greenshotLanguage) { _effect = effect; InitializeComponent(); diff --git a/src/Greenshot.Addon.LegacyEditor/Forms/ImageEditorForm.cs b/src/Greenshot.Addon.LegacyEditor/Forms/ImageEditorForm.cs index 15ef13b72..2ccde638a 100644 --- a/src/Greenshot.Addon.LegacyEditor/Forms/ImageEditorForm.cs +++ b/src/Greenshot.Addon.LegacyEditor/Forms/ImageEditorForm.cs @@ -53,6 +53,7 @@ using Greenshot.Addons.Extensions; using Greenshot.Addons.Interfaces; using Greenshot.Addons.Interfaces.Drawing; using Greenshot.Addons.Interfaces.Forms; +using Greenshot.Addons.Resources; using Greenshot.Gfx; using Greenshot.Gfx.Effects; @@ -176,7 +177,7 @@ namespace Greenshot.Addon.LegacyEditor.Forms ScaleHandler.AddTarget(btnFreehand, "btnFreehand.Image"); ScaleHandler.AddTarget(btnText, "btnText.Image"); - ScaleHandler.AddTarget(btnSpeechBubble, "btnSpeechBubble.Image"); + ScaleHandler.AddTarget(btnSpeechBubble, "addSpeechBubbleToolStripMenuItem.Image"); ScaleHandler.AddTarget(btnHighlight, "btnHighlight.Image"); ScaleHandler.AddTarget(btnObfuscate, "btnObfuscate.Image"); @@ -226,19 +227,19 @@ namespace Greenshot.Addon.LegacyEditor.Forms ScaleHandler.AddTarget(btnLineColor, "btnLineColor.Image"); ScaleHandler.AddTarget(fontBoldButton, "fontBoldButton.Image"); ScaleHandler.AddTarget(fontItalicButton, "fontItalicButton.Image"); - ScaleHandler.AddTarget(textVerticalAlignmentButton, "textVerticalAlignmentButton.Image"); - ScaleHandler.AddTarget(alignTopToolStripMenuItem, "alignTopToolStripMenuItem.Image"); - ScaleHandler.AddTarget(alignMiddleToolStripMenuItem, "alignMiddleToolStripMenuItem.Image"); - ScaleHandler.AddTarget(alignBottomToolStripMenuItem, "alignBottomToolStripMenuItem.Image"); + ScaleHandler.AddTarget(textVerticalAlignmentButton, "btnAlignMiddle.Image"); + ScaleHandler.AddTarget(alignTopToolStripMenuItem, "btnAlignTop.Image"); + ScaleHandler.AddTarget(alignMiddleToolStripMenuItem, "btnAlignMiddle.Image"); + ScaleHandler.AddTarget(alignBottomToolStripMenuItem, "btnAlignBottom.Image"); ScaleHandler.AddTarget(arrowHeadsDropDownButton, "arrowHeadsDropDownButton.Image"); ScaleHandler.AddTarget(shadowButton, "shadowButton.Image"); ScaleHandler.AddTarget(btnConfirm, "btnConfirm.Image"); ScaleHandler.AddTarget(btnCancel, "btnCancel.Image"); ScaleHandler.AddTarget(closeToolStripMenuItem, "closeToolStripMenuItem.Image"); - ScaleHandler.AddTarget(textHorizontalAlignmentButton, "textHorizontalAlignmentButton.Image"); - ScaleHandler.AddTarget(alignLeftToolStripMenuItem, "alignLeftToolStripMenuItem.Image"); - ScaleHandler.AddTarget(alignCenterToolStripMenuItem, "alignCenterToolStripMenuItem.Image"); - ScaleHandler.AddTarget(alignRightToolStripMenuItem, "alignRightToolStripMenuItem.Image"); + ScaleHandler.AddTarget(textHorizontalAlignmentButton, "btnAlignCenter.Image"); + ScaleHandler.AddTarget(alignLeftToolStripMenuItem, "btnAlignLeft.Image"); + ScaleHandler.AddTarget(alignCenterToolStripMenuItem, "btnAlignCenter.Image"); + ScaleHandler.AddTarget(alignRightToolStripMenuItem, "btnAlignRight.Image"); } /// @@ -288,7 +289,7 @@ namespace Greenshot.Addon.LegacyEditor.Forms { panel1.Controls.Add(_surface); } - var backgroundForTransparency = GreenshotResources.GetBitmap("Checkerboard.Image"); + var backgroundForTransparency = GreenshotResources.Instance.GetBitmap("Checkerboard.Image"); if (_surface != null) { _surface.TransparencyBackgroundBrush = new TextureBrush(backgroundForTransparency, WrapMode.Tile); @@ -360,9 +361,8 @@ namespace Greenshot.Addon.LegacyEditor.Forms // Loop over all items in the propertiesToolStrip foreach (ToolStripItem item in propertiesToolStrip.Items) { - var cb = item as ToolStripComboBox; // Only ToolStripComboBox that are visible - if (cb == null || !cb.Visible) + if (!(item is ToolStripComboBox cb) || !cb.Visible) { continue; } @@ -1703,6 +1703,7 @@ namespace Greenshot.Addon.LegacyEditor.Forms #region key handling + /// protected override bool ProcessKeyPreview(ref Message msg) { // disable default key handling if surface has requested a lock @@ -1714,6 +1715,7 @@ namespace Greenshot.Addon.LegacyEditor.Forms return base.ProcessKeyPreview(ref msg); } + /// protected override bool ProcessCmdKey(ref Message msg, Keys keys) { // disable default key handling if surface has requested a lock diff --git a/src/Greenshot.Addon.LegacyEditor/Forms/ImageEditorForm.resx b/src/Greenshot.Addon.LegacyEditor/Forms/ImageEditorForm.resx deleted file mode 100644 index 88fd73b87..000000000 --- a/src/Greenshot.Addon.LegacyEditor/Forms/ImageEditorForm.resx +++ /dev/null @@ -1,1029 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAFMSURBVDhPY2BAAmFhYb4hISFayGIksQMCAjKKioqqyTYE - aEDmfyDIz8+v8fX11SbJdpBiT0/PbJABIJCVlVVLsiFubm65MANAdEZGRr2rq6sO0S5xcnLKRzYAxE5J - SWl0dnbWJcoQGxubQnQDQPz4+PhmoJweQUMsLS2LsRkAEouKimoxNzfHb4iJiUkpLgNA4uHh4W0GBgb6 - OF2ip6dXgWzAp0+fvjo4ONSDxGEYaEAUTgPU1dWrQAY8f/78fWdn50oQe+7cuTtVVVVx24psmoKCQh1I - MzDq+oHs+PPnz9/58OHDNyMjo3wVFRV2goEoKSnZaG9vP1FGRkZXTExMHBhwM0CumDJlyl4pKSlDggYI - CQkli4qKwp0L5AefOXPmHsgVsrKyhQQNQFfAxcUlAcwfs0GuAHpjMskGgDQICwv7AWNgKgcHhx02AwCj - LeXNW0xBiwAAAABJRU5ErkJggg== - - - - - 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 - cwAAAABJRU5ErkJggg== - - - - - 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 - sDv+AmJ7C7hZF4QaAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAIFSURBVDhPxZDdS1NhHID9ByLoJrrpIiGIMIy8MYVqrEhi - FpWCSUmmrCFzjPzooo0ZtiAzyD4u1k1hMLEtLTUUtlKwhrD8yGmWpWPamDr6OuLa2Pa0991VtF37wu/m - /J7nec85OTmbfspNJs1Zs1mbaWqsYbLthCdf/pTJdJks59y1QLYVwksHmpp0iWSSg7ehuB1Ud0HdAfpu - 0Bh8VD8FowNuDoHdCz1TIHjhyUBJQ0NdLJFA15UCndA6CG0uePQODl0cpWMY7o2k5ZF5GF8CwQtPBo7p - 9fpIPE7rwFucE6sMfYTBWfjwDfafeUVv6sZ+X1qeWIYvayB44cmASqczKLEYh1uqKW03Yh/zMR0E/3fY - fdyJZyHKmP8Pk8sxPq/GCf5KInjhyUBxba3xRzTKjvNF7K3XUGKt486AA/fMLLvUz3g9F8KdmtGvYaaC - CoGfUQQvPBkorKq6Eo5E2FZazvbTleRe0HLA0Ize9pjcoy8wPx/mwRsfnV4/vTMruBYUBC88GSioqGgM - bWxQoLVRVP8EdXM3J6/3c8MxyZ4TbiwvP3HLtchDT4jO6d/0LEaRfMqTgX1lZVeD6+v/BDSWPlrs46mf - 6KWxaw5LX4A29xr3PQq29zEELzwZ2KlSmVdS37SkKP9NYeV8xueCF54MbM3Pr9mSl2fNNEcuhci2E54M - bPr5CzGs8HBMuX66AAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAF0SURBVDhPY2DAAU5tYghHltq7jHEzLrUY4ruWMOgeXMm4 - CUQTrQmmcMschtgtsxh3vrub9h9Eg/gwOU9PTzUnJ6cCAwMDLbwGb5nPYLB0AsOh9VMYDNA1f/jw4b+q - qmoNTgNOrYf4fVYrQyouzTIyMti9BrQ5dut8xh0gGskGPyD7AcxmmGacgbqomyEZXXNZWdl/oNhzRUVF - woEaHh5+IDs7+395efl/EB0UFPTf2tr6v4mJyX8rK6v/bm5u/0NDQ/+npKT8z8/PP4ArLPxMTU1/vH37 - 9v+3b1//Hz165P/q1av/b9266//Jk1f+5+QUX8MXC2A/+/j4/MdtQMlNnDaDNKenp/9nZGT8GRcX97+k - pOQ/yDCgi/57eXn9h8rtxmYA2OakpCRwgAENuIHHgKPoBoA1gzSANANxENCA83gMOI9sAFhzVFQUXDNU - 8iYuA4DyKGHwABh16JpBZjzCY8AjZBdYwpyN5q9SIP8lDgySAwMASvXss8cC3BsAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAHWSURBVDhPY2CAgv1JLBkHEpm7QTi57c0BmDjR9N5E5t6/ - N5f9/3Vl4f+4hmf/idYIs3l3ItOZX5cX/L+/se5/aPmd/zDXYKNBeuAWwGy+0uf6/8fFef8/n5j63zv3 - ItgluDBID9yA3QnM/SCbL3Y7/f9+bvb/u+uq/9snHv3/9dR0sGuQaRAbhEF64AaYhe85YBq++39ZWPzL - L0DJdwf7/oP42PD9TfVgF+6KZZ6IEUYbI5lnfTo+5f+tVeX/dfw2YgQiSAzkwo9HJ/3fFsc8BcOAtZHM - cz8cnvD/5a72/6ruazAMAImBvAdy4ZZo5ukYBqwKZ17w7kDv/2vLiv8ruazGMAAkBnLhm33d/0GuxTBg - WSjjkjd7Ov8/2dzwX9l1HYYBILGbQO+BXAhyLYYBi4IZV7za2fb/ysI8oBe2YsUgFz7f3vI/1jnmHUiN - mtsWRIqd78+49gVQ8gHQny+2Nf+/sigfhdb23f//+tIisAv3lRv8f7O74z9ID9wlE70Ydz3f2vT/3ppK - rNgw+PR/kAsfbaj9v71Q+z9ILUgP3IA2Z8YpzQ6Mx3Bh88hrYFeBXDjFl+ktSB1ID9F5xjb+4f/XQBc8 - 29KIajOxJjglvzgAcx2yzQAGOo0BdV/WSAAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAGdSURBVDhPY2AYMiCp9fWy6JZXkiQ5OLL64f/g4usOIE0g - dmTVw0kEDXDPuKjumXPurFbOxT+uORcfeOVc/A/SBKIDCk69804/L43XEKuoA+vtEo6aghRZxRz475x8 - HOwCELtl3rULljEH8LvCIGibFzYbdPw2/b/68P0R46Ct7/S9N+N3BcSA/4za+Vs0tfM3g12g4rb6/4sP - 365U9Z2+quK6Gr8rNLLXCWvmbvRPn3miUiNnQyrIACWXtf/vvPh84sLd98dUnde8U3XC4gr7+v0sytnr - LO2qtmUtP3x/1vWHn46pZa3LBBmg7rnj//kHHw5eAuLS3kuX1Ty3o7pCPn25gmr6qoSKRafaj958s3Hr - 2aer9l1+sVU5bVUuyAD9wBP/Vx17vGzCtltT9lx4scUw6MQ7/ZBj0gyioVN4JGMX+jtVbaneevrJ2lO3 - 3xzac+XVjm3nnm5etP/uCsmYRWUgAyyibv5fsvfp/i3nnm06eP3V7vrpT66YRd2YxCAUPjsIiOvw4CCQ - AQ5Jz5Y5Jj//j4xBYgQT1uBXAAB4ctTtvOBX4gAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAGcSURBVDhPY2AYdCC65ZVkUuvrZWQ7LLLq4aTI6of/QQYE - F193gLGJMtA7/bx0QMGpd145F8EGgGjXnIsPtHIu/vHMOXfWPeOiOl6DLGMOTGqZd+2CVcwBsAHOyccd - YGy7hKOmVlEH1uM0QN97s7Rx0NZ3Vx++P6LjtwlsADowCNrmhdMAFdfVk6r6Tl998eHbFRW31WADtPM3 - O2jnb9FkYPjPiNfpqk6bpVWd17y7cPf9sTsvPp9QclkLNkAjZ0Nq+swTlZq5G/01stcJ4zREzXP7pNLe - S5cvPfhw8DwQq3vuABuglrUu8/rDT8eWH74/y65qW5Zy9jpL+/r9LCgG6YcckzYMOvFuz4UXWyZsuzVl - 1bHHy/QDT4ANUE5blbvv8outW88+XXX05puNFYtOtaumr0qQT1+uADfELOrGpPrpT64cvP5q95ZzzzYt - 2ft0v0XUTbABkjGLyhbtv7ti27mnm/dcebXj1O03h7aefrLWqWpLtWTsQn/R0Ck8DA5Jz5Y5Jj//j4xB - YiADhMJnBwFxHR4cRFQCG9yKAPGK1O3Fnfm/AAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAApJJREFUOE9jYKAG - sJ/3cqb93BcxILOs5ryWAvJzHOa9XAYUOwPCYDZQDCSH1T7bmU/OQHGr49xn+9P3fHzcfOnn14l3/v0H - YRAbJOa04Pl569lPfDEMsZz28MzMp///g+je67//t1349b/90u//XVf//O+4/Pt/y7lf/1vP//o/+d7f - /24Ln16ymPoQ1RCT/ltnuq78BNr253/VoU//QeyQ1U/vgMRB2H/J0zvFe99/rz3y5f/E23/+20y7e95w - 8nWEd/Q7r5xpO//1f9H2V/8n3P79H8Q36Lw8BeZUg64rUSCxrE0vvlfse/c/fuPzx/odV3LgXtFqOnum - 78bP/02nPoExyDsgMc2ms+CABQGtpnNR9hOu3slc++R/0f43X7UazyyHG6BWfWymatXRM+gYJI4cYCD5 - uKX3/5cdePsfxIbLyefvV8jc9co+ePFtB7nifca4koZ88b4zwYvu/s/e+fI/iA1XJ523WdVv8d0Qt0UP - crTqD1dIZm8yQjdEMmNrlG7j8TseSx7+D1nx4KtE1laEF0RS10oadp7ys1rxPNdl+aOJIsnrOkSS13jB - DBFOXhMlkrL+jNvKp9+tVrz4b9Rz5rFQ8jpEIDKErmITTlrtbLHlQ67W6g8THNa+3KTZcGgXX8zyg7wx - y89oNBy647Du5XetNR/+W2z++F8oec154aRlqKmSK3qxJG/C6njFTd8mSKz7tkVp07drBjt/fDTc+fO/ - 8ubv/4Fi/xU3ff/Pl7zmEmfkIszUCHIue9BcJbbwhRVcNceX8Sx4cZ5z4++PXJv+/OdZ8PIrd+3xx2zh - i86zBc3GrhkeaP7zBZh9Zvgy+kzvYfKZfpDJd8YZRp8Zy5h8p+cw+M3BnpkoydEAA0J2Ek+355UAAAAA - SUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAApJJREFUOE9jYKA2 - sJrzWsp+3ssch3kvl9nPfXEGhMFsoBhIDmQfUCwGyJ+JYbf17Ce+Tguen0/f8/Fx86WfXyfe+fcfhEFs - kJjj3Gf7bWc+aQXiMyCMYoDF1Ie+bgufXpp87+//1vO//rec+/W/4/Lv/11X//xvv/T7f9uFX/97r//+ - bznt4ZmZT/+DabgBhpOvS9lMu3t+4u0//2uPfPlfvPf9d/8lT++Y9N86A8Ihq5/e6bry83/VoU9AF/35 - D2KDxOEG6HdcyYnf+Pxxxb53/7M2vfiu33nljEHXlSiYAoPOy1NAYhNu//5ftP3V/7bzX/+D+HADtBrP - LC/a/+Zr5ton/+0nXL2j1XQOrlmz6WyMVtNZsLObTn0C474bP/+DxOAGqFYdPVN24O3/uKX3/4PYyIGj - Vn1sJkgMHYPE4erki/edyd758n/worv/QWxcSUOueJ9x8OLbDpm7XtnL5+9XgKuTyNq6PGTFg68eSx7+ - 1208fkcyYyvcCzBFktmbjLTqD1e4LXqQ47f4boh03mZVuAFCyetyjHrOPLZa8eK/28qn30VS1p8RTl4D - N0QkeY2XSPK6DpfljyZarXiea9h5yk8kda0k3ADhpGVSQslrzlts/vhfa82H/w7rXn7XaDh0hzdm+Rm+ - mOUHNRsO7XJY+3KT1uoPEyy2fMgVTlrtzBC6ig3Fq5yRi3z5ktdcUtz0/b/Eum//lTd//2+48+d/g50/ - Pipt+nYNKLZFcdO3CbwJq+O5ohcjbEc2hS1oti9b+KLz3LXHH/MsePmVa9Of/5wbf3/kWfDiPFfN8WVs - 4Qsr2IPmKuHPf35zpJh8p+cw+sxYxuQ74wyTz/SDjD7Te5h9Zvgy+M8XoHbmZQAAKzx2EneDTb0AAAAA - SUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAeJJREFUOE+lk71L - W1EYxt+z378gJUsgX9MdwhV0STJkCEmXpIvELaNLBhE5oyI6F0RqKbRbW0q/hlIqSAahUISIXAoNDgaV - DFlcOrSlnr6/k0YuRboYeHjP+3zdcy9EnHNyF0ir1ZJ2u31fETabTalWqxJFkRQKBUmn036yw6Pjw0+O - B3uy2+1a0Gg0wv8VoM+85HwBv2w2aweDget0OrZSqYS33QAeHR9+cjcFeg5zuZyN49jp1WypVAqTr8AO - j44P/78F7GE+n7fD4dDV63WrxpBvwGSHR5+FbwqWjZGeYkGBqE+2o9HIlctlm0qlHjDZ4dHx4SfnX+Gr - Hs4Ul4pX06KwWCza8XjsarXap36/79jh0fHhJ5csCC6MWVQ8VLx8bcz+RiYTTyYTdxgE8Ynu8H/1RS0I - kgXBqTGbk/n5o18rK1dua+vabW+7k17PHYh85+yhPDo+/FoQ+BscG7N0Pjc3wPQ2k/m2I3L0e33dfdSp - 2GWyw6Pjw0/OFxwa8yQZ/rG66t6p+b3I0gf9akx2+GSJz1HwRmRfxWvEn2tr7rnOF9OQUMBkh0fHh5+c - L3gksvclisbc4qmKz6ZmH5wVsMOj48NPzhfsidzT5bHis54xyW0F8Oj48JPzBXf5K5P9A150nLcmaqfe - AAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAiZJREFUOE+llF1I - U3EYxt9LP1IitohdlHUTa90oY4z1cSGBZCzWh9hFCJGSHxHM6byYzi7KuooG5mIok1IYg1CW4XJnCDLJ - PFSCFyoryjQvXBE1bfm1p/971s5VkOLFj5dzeJ73f34cziEAtBvoclubSoXbbRXc2AFWpXzB5cpSK54G - 6W3AOdGrJXGassTqdDL1m+k0Sj1AWacI+DLzopjX+4H6ANAnA6FpgHOcVxZUtLfTpdZWOmu33/y9tYV7 - L3/BN55G4A3wdBIIvgX8r4DHMUD+DMQTAOc4zwtU7/MtLYGhiQnYOppR5/XAF36NXklG/6iM7pHMHJJn - sZwEVjY2cKah4Ra778i7Z0TC15UUvq+t4XRNjV31fvdMg3+jVe+ztysYRTC+jkQqBXNVlUP1nhoowsyL - g5gb/kv4EN5Lh/Fh9AjikSLMiWv2djyR0DO1iaXVVZRUVjqJPdjnWukJ3K8z42NUj4UxPb6MH8fPhTKs - J6/g2+wpLMaOKd7+cBiLySSWhcLR8nIXsQf7nNTpcE6vh/tqCXpvGyH5LfiRaBRv+w4Sn6oxP2ZSvA02 - W2RvcfFdZp/RWE3swT6DD/IUQg/34LmnAMPeQkxHtFia0WFyQINod6Hqvd9spnyDgcQSIvZgn87GHJVH - jhx4m3Mx2JWPWKgAfR156GrKVb1Fh7QmU2YBe7APe/2PrLfocI8OWCxE7JF12s7kvEacnmVXnzL/Bv4A - nbSTNl0cgYcAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAApJJREFUOE+Nkl1I - FFEYhs+VBXlhUHlRXWW5WyratuoqtpIb5R+4thrrrrna2mRulu6aroIWWlYomj+ZWllmaaWpoRWGBCVo - 7oQ/QZmEGIlQN0WYiYJv55x0DKzo4pkzvOeb5/tm5hAAhFEVTCRsoXInnU4XTREWiWbZ7zWVakIY/OFF - QQ0tEBnnfMhQQ3ba1NjYezDYPcuW9ulas0JQoSbiu6okdBwPQF/fCAYHRzE+Pslh9yxje28rTGC1FGJL - oJelCcqCiPi61IhbCR6oO+iGm/Hb0XTYG3eTd6LR5Inrce64neiF4ZI4sFrzCRPR5eUtC0oCiDhUrEfv - 6Ug8tgZzrmRqUZqll6jOT8S1swKs+oAP9GGBEilNcNGfiK8uxOJZ7n6J8lwjHRBY+AMsj8rJSZEERUoi - 9hdq0X0qBHX2GFyyG5BpF/BkYAC6MgcOXXbAVO1AylUHap+OYn5hAeFWa6okKFAQkY3flb4bxZmx/+zc - 2NOP7/Pz2GuxpEmCfG8isvFbU3yRJ4TxDsNtGzgj7a4Y6aDQleXlD7vxZXYWQWZzuiTI9SDioww16g0y - ZCVqeIfzR5V40yXDxxdyfJ3QYOqlF8/tTT34NDMDX4PBJgmy5ERsS/XHDaMcNlMI76D3W48zCW7oqPTC - j+lkjD4P4nltZyc+z83BU6vNlgQZ24j4gAoa6DlIj9/DO9wpXMNpLnJGb6sLWoqdea7SBH5bp1QWuKpU - SZIgbQsVHPPjh8USp+YdJqenV8DyiMAdk5u8PQiVLB8kYfMvQbPZBycPKGAM/wsRCmhkrhNRW9eSQPeN - y4IYFyK2W1T8L7TQj3df2CVx74gCDHasGayWQhjSK4SuIjX7nIj4P7DasNWEMH4Cj2pW/p0+C6YAAAAA - SUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgdJREFUOE+lk71r - WmEYxV9xEPwAXVxapQRFiqaEKwRvMgiBIPU6+PUPOJVSOgWElrZDoIRCh5bYqUsDafYEp5hEMHIFr6Dx - Sm2oSa1c0+AuBZen77nEi5JsGQ7vwzm/c1BBRkTsPtLL8XicJRIJlkqlWDqd1t9sNityPbuROJuBRQfd - uYFkMrnCwef8fYB3MpnQeDymWQ/MnQOSJK3m8/lPo9GIcrncaw69uLoaEoQbHjIwYOc+QSwWY1wv+/0+ - KUqdhkONisXiL03TCMLd6/X0DAxYdIyvIIoii0ajDzOZzLuzsxa1Wk26vLygweCPLtzwkIEBi44xEIlE - otzYgHZ2vvU6HZX29r53Q6HQFwg3PGRTDh1jQBCEfKOhULl8QrWaTO12mxYXn2yZzWYG4YaHDAxYdIyB - YDD4qlqtUqlUIryq+oOWloRNk8nEINzwZhl0jAG/37/u8/neQNvbhd/NZocODo6a4fDyWwg3PGRTDh1j - wOv1Mo/H80gQwh9luUHHx6d0fq7R9fU/XbjhIQMDFh1jwO12M65NWW7R/v4hVSoNKhS+9uv1DkG44SED - AxYdY8DlcjGup2tr67uK8pMCgcefnU7ne1lWeUEl3PCQgQGLztwAh5jdbo/bbLYth8OxgLfb/ct/0AHN - emDA3jnAQWa1WnVZLBaJ68ONpKkP5tbAff7O/wFfbRPfU/HxPQAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAZxJREFUOE+llN0r - Q3EYx58/ggu5EkkkbyX3Lv0DJG9pzfuS1z/ArYUQQs0sr81h2FghWV62NRcrk06Ezd4wbOxuni+zzuTi - lItP31/PeT6/3/Orcw7FYjH6D1TSZy5l2pDFvbskB6kDoZ0nsCGZapkkHCrq2SljVFNmUeMLRc/kgF44 - cKmw2wRqvaHo6U0gYpYDeuHApYIuI6j3PH8ci76wSQ7ohQOX8ju3QMNt8N1y6XnbluK8exFOrh61+07/ - hOn8YXjT7lEDq/i0AAcu5akMoPHaHzlkwQAc1yH9ntM3vW51DwlnbvU39+q1OJbLoA4OXMrt2ACKK2/4 - wHETEo5cQR2Lo/rT+xEWRqSJNeCeRThwKadNAMoL9+sej6oVrO5xPhGM/cHXM4sruAwHLmW36EGzTXwy - 8phTfOokZxKo/dSRFldADwcuZSpXKKtptZXvtcG7z0qY4TVALWnNE6zDgUsZiqVyZqB/zj7Pm2zGMfzK - nzrSgF44cCm9TjuIVxnJ9Mgk4VBq1UxFSuX0GDKtRkNykDr/+pTxG/gEq8OGaNZeGVsAAAAASUVORK5C - YII= - - - - - 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 - QmCC - - - - - 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 - Jx8zDDjpQm/GAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAmNJREFUOE9j+P// - PwMlGKyZWWczA7PuVgZm/R1AvFOC2WBXChDPAuJtUAxip4DlQGpAaoF6QHrRDfDgtdi72THj5q307rcf - i6d9+VM09cuftM63H+3TbtwCyQEN8MBlgIeo3YFD6V1vP6e2v/4fUHQDBae2v/qf1Pbqs4jt/kNAAzzQ - XLBJktd0x5aUtpefI6sf/PfKuQR0HSoo6bv1HyQXVff4M4/J9i3MOpskEV7QWp9qk3jxdljFnf9+Bdf+ - e2Zf/D9x0VUw3nboGdikOWsfgOWCS2/9Nwo/eZsZqAduAJP66rlhlXc/uWee/w/DTimn/ptHHvhf2nHo - /5kzZ/6Xd+75r+K29r+614b/ZpEHP4H0IAxQXb4zsvruH5e0M/8dkk7+NwzZ+1/de+v/qOK9/8+fv/h/ - 6brj/9U8N/1X89oCxkD5P0xAPQgDlBfvCi2/+dc6/sR/naAD/7UC9v3X8Nv5//bt22Cs6bcLLAbD+qGH - /jIB9SAMUJg/zyn1wmeDyNP/9SMQWNN/z38QRhYDsbUCjn5mAupBGCA3O0PVfe9di+Sb/00TboCxQeTZ - /+/evQNjEBsmDqKlbHfcYwLqQRggPV2SQ3HODovEW1+sMp79t0p/+t8k/jrcABAbJAbChtE3vrApzNnB - BNSDMEBqKgOTxCQvbpW5x82SHn6xz//43w6IDaPOgzGIDcImCQ++cCnPPQ5SywTUg2qA+AQGRv4mbzbR - zj0KtjsemiU+/uJQ8PUvCIPYIDGQHEgNE1AtdgP4GhgY2EqlGFiLsoF4KRAfhmIQOxskxwhUg2EAJdkZ - AOypQZHMHzM4AAAAAElFTkSuQmCC - - - - - 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 - lrMAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAG8SURBVDhPrVM9SEJRFL6GgoGICoqEruqswxsFB8Uh1EUS - C6HZoaG1uYSGlpawv0EzKWwwiIIukYPE03wkVCAOvSBrcPPhIqdzxB4YZosPPt7hfj/vnPvuZWzWT56x - hVPG0kXG8ojKCHlaI27q9wqMLZ7Pz3NREOSvRKLH/f4B4RNr0euViSPNxJAcEiWTqdZJJpWPVArkZHIM - tPa+tKSUDIYaacdCsthaQa/nzXhceY3F4DkSmYiXaBSawaCS0+k4edSQA5zvHluUwmF4CASm4jEUgmuP - RyaPGrDH2MmT39/jggA/uPZ64cLthrzDAUc2G2QtliGoLrtcPfKoAbu427RZNz4f9Pt9aLfbUK/XQZIk - aLVa0Ol0oNvtDnFsNsOZ0zkgjxqwMwq4dLmg0WiAKIoTzRRQxICS3T4gjxqwje1wbKuMLRZQMA1l5HMG - Q488asAWHRyr9e0O57tFwX841Gpl8qgBGfwlGY2GXxmNShW7qGLIXyANackzdhY28HBszs3VSCBhiIQh - v0EcaUg78TSuIbGO6fvYIsc5udk8GAJrWiOONFPvwyq2tozzreBlwneFMKrTxM368rJvjEdIo/39bLwA - AAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAGbSURBVDhPrZGxSwJhGMbfb/c/uEUEEadzEiQQBBeRBqUl - bPIPEKdDvuXACJxrMJKgLWqQWiISwkEIQriIW5KWg+KIW1oKCvLrfb40VFQMOnh5732e3/vc93FE//EU - i8X1QqFgrpIFDvwUWy6XJSqfzy8NgT9mpwKi0ah0HEeVSiWZyWTmhkCHDw787GlNiK7rKj6iTCQSUyGY - ocMfLc/9iBmLxeRgMFC5XE4yqCF0zNDhs7T0mjrE8zyVTqelYRgb6JhXWdbXWuMvxONx6fu+ymazV91u - V2GGvvAvvRCFnok2n4TY5TptC9HZDofdIAhULxRy73iGDh8c+N8wl4dHIXaCVKr/Xqm82rY9VI2Guq9W - 1TXRG95R0OGDA489HeIQbXnJpAPoLBJ52CPqf9Xr6oL7JVETHTN0+ODAY08H9IQ4nFz+sCx1zjCXBtAx - Q58MwZ4OaBN1bMsawvys1dQx95Nx+uiimKHDBwcee9reJzq4NU0fpzhik+vnaDMPdPjgwGNPI00ig6vF - wk1rwfI4Cz448Nhb+Fv/YnwDm33pU4rOXh0AAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAH1SURBVDhPrdFPSJNxHMfx56iWRqCXHcq6xKrLRlRUXuwg - WcKKGB3yECnliGCu7aA4OpR1igbmYiiTUhiDUJbhchuCTDJHJXhQWdIfzYMzoqYt/+3d851tbhC0wB98 - +PI8fPj+ePFTlO08xpaWmot2+7V8I/2c+w1NTddRTzKPSE/6OQvOWa2m9WSSSgdUtcF51+a8oM6rPWDy - QHcEfBMgPennLDhjNt/4tbHBvZc/cY0k8byBp2PgfQvuV/A4DJHPEI2B9KSvZLtrbDZP/+gohlYrDU4H - Lv9ruoIReoYidAxuzv7IFAtxWFpb47TJdFP5X3fnYJDFpQTfVlY4VV9vVtLud89K+XvKMv/F3ewN4Y2u - EkskOFZba1HS7vHeciZf7GF64E/8e3kf3MfM0H6igXKm1W9xW54E6RxfZ355GZ3RaFPEIZ4rlSe533Cc - DyEts8Navowc5sdsFavxS3ydqmAufDDldvv9zMXjLKiEA9XVzYo4Uh6NhrNaLfbLerpuHyHoPsH3WKP6 - 2neIfazj0/DRlPuQwRDYpdPdlezW6+sUcYin70FRKr6HO3nuKGbAWcJEoIz5SQ1jvaWEOkq23NmPLw7x - tDUWZPLIUoDTWkhf+w7CvmK6W4tov1W45c5eIA7xiOtfybizF4gjbcpnptzbeX4DJ7oc/jCY5XUAAAAA - SUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAJrSURBVDhPjZJdSJNRGMfP1W7yQujDiy5T0mGWbanL1MhF - WQrqprE5c3PpMpfoctkSXaFhgmapZWrZl6WVpgutMCQoQXNv+BGUSYjREOqmCDNR2L89J3xvXosO/HgP - //Pwew7nfRhbZTnT5DKNRpOq1WotBO0pW61WzBrjWHNDLBOIynA23mbPn5ue/giC9pStnFOtREaHHy5n - w3V8J4aHJzE2NoWZGQ+H9pTR2fsGI6hWIrgQw4S3dQbcyQpF66FA3MqUo8O8DfdztqPduAVt+s24awrD - RK0eVCsR1KqYMF6jw9CZJDw9sZtz1Z6CuhKdSJPThOvnLLDpIj9py8stqWVlSaKoOooJb6rT8aJ0v0h9 - qQG0vKtAebLDkScKqpRMGKlMwcDJeLQ60nDJkQG7w4Jno6PQXnTj8BU3jE1u5F1zo+X5FJa9XiTYbPmi - oELBBLp+f1Esauzp/+zcPjiCn8vL2Gu1FogC51Ym0PW78yJQbjnAO0z0bOBM9gZg0uXD96W8/vEAvi0u - YpfZXCQKTsuZ8MQWhxsZwSgxqXmH80d34F1/MD6/CsH3WTXmXofx3NExiC8LC4jQ64tFgT2ECT35Ubhp - CEGxMZ530EWux9msQLgaw/BrPgdTL2N43tLXh69LSwhNTj4lCgqDmPDIJ7jtm4OizD28w73KNZzOKj8M - dfujq8aP5+Hq6B9rlcqKAJUqWxQUbPIJjkXyYbHq43gHz/y8BMoTo+UeySDlbvwj6DwSjkKNAoaDfyFR - AXXQulmJIM2fCb1WFf8LXb7He2hRijzIVYCgsSaoViJIkLHmfTIm/A9UuyL4DdOT5vYvoF58AAAAAElF - TkSuQmCC - - - - - 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 - 8GMN/QX6AQLKSmIufl07AAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAI3SURBVDhPY2CgOtDaIsFksCuF2WDnLEb9XdtAGMQGiTEA - 5fDax6y3w4PbfO9mx4ybt1I63n4srr/ypwiIQWz75Bu3QHIgNVgNYdbb4iFqs+9QfNfbz6ntr/8HFN1A - wantr/7Ht736LARUA1KLaojGWklukx1b4tvuf46sfvDfK+fSf3RQ0nfrP0guquT+Z26TrVsYgHrghjBp - rUu1ib9wO6zizn+/gmv/PbMv/p+46CoYbzv0DGzWnLUPwHLBpbf+G4WfvA3SAzeAUXXV3LDKu5/cM8// - h2GnlFP/zSMP/C/tOPT/zJkz/8s79/xXcVv7X91rw3/DiF2fQHqQDFi6M7L6yh+XtDP/HZJO/jcM2ftf - 3Xvr/6jivf/Pn7/4f+m64//VPDf9V/PaAsZaWnv/MKou3YkwQHnxLnv7/X+t40/81wk68F8rYN9/Db+d - /2/fvg3Gmn67wGIwrA9UywjUgzBAYf48p/iTnw0iT//Xj0BgTf89/0EYWQzElvc6+pkRqAcRiLKzMhTd - 9961SL753zThBhgbRJ79/+7dOzAGsWHiIFrKcus9JqAeRFTKzZDkUJyzwyLx1herjGf/rdKf/jeJvw43 - AMQGiYGwYeCNL6xyc3YwAPWgpAVmiQle3Epzj5sl3flin//xvx0QG0adB2MQG4RNEu584QKqAanFnqR5 - G71ZRdr3yNpue2iWCDQIGFggDGKDxEByDEA1+PMfZ6kUA0tRNhAvZWAtOAzGIDZIDCRHbQAAW754iHPl - f1UAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAHNJREFUOE9jYMAN - HIBSMMwGZMMwHi2oUgNjALJTDwAdBMPJQDYM4/XCwBtgB3QfDFcD2TC8GsiGYbxeGHgDDIHug2FxIBuG - 7wHZMIycPjC8MzAG+AHdAcNxQDYMI6eJyUBxGJ4DZMOwOsgPA28A0dkTm0IAEKI3YFhMEd0AAAAASUVO - RK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAFdSURBVDhPldO9K8VRHMdxSSklJRYGxIDyOCBE8pA85Slk - 8JAFkyIlg2KiFKFsBovBKGUwGmTHopRSovAfeL91SLqXe0+9+p1fv+/9nPP7nt9NSIg+0nhUFuT+URf1 - UQ5PutGLciTGE5JMcTPWsYsRpMcTkEXxNM5wiWUUxxrgViuxhms84RA9SIklJIOiFmzgCs+4wBzsy7+j - iIo2LOAAN3jEPuyL/Yk6UnnSgFZ4AvbhFK84D/f2J+rID6u4UkEI2+H6gHtsoQ5JkRJskD+cwAzswzD2 - YDPfw24muWZGCrBBnRhDP2pDyDzXE7zAfqyi5HeAq7u1PoyiPgQY0oWfJ3LE/QDs1/dw9aGg6le6hb7K - Md7g0S6hEJ+9yINbX4FfXDv8bP2g5NwVPdI73Ia5Oy39CmhiMoVxVEcI8PVmsYltLMJX+wyogAE2zz+N - xdlwe3Jeg8FQ4ylY24HGDwiaO4lDc1lzAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAFdSURBVDhPldO9K8VRHMdxSSklJRYGxIDyOCBE8pA85Slk - 8JAFkyIlg2KiFKFsBovBKGUwGmTHopRSovAfeL91SLqXe0+9+p1fv+/9nPP7nt9NSIg+0nhUFuT+URf1 - UQ5PutGLciTGE5JMcTPWsYsRpMcTkEXxNM5wiWUUxxrgViuxhms84RA9SIklJIOiFmzgCs+4wBzsy7+j - iIo2LOAAN3jEPuyL/Yk6UnnSgFZ4AvbhFK84D/f2J+rID6u4UkEI2+H6gHtsoQ5JkRJskD+cwAzswzD2 - YDPfw24muWZGCrBBnRhDP2pDyDzXE7zAfqyi5HeAq7u1PoyiPgQY0oWfJ3LE/QDs1/dw9aGg6le6hb7K - Md7g0S6hEJ+9yINbX4FfXDv8bP2g5NwVPdI73Ia5Oy39CmhiMoVxVEcI8PVmsYltLMJX+wyogAE2zz+N - xdlwe3Jeg8FQ4ylY24HGDwiaO4lDc1lzAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK9gAA - CvYBwq9wAwAAAPpJREFUOE9jYKAGcEv37EfCx6FsMSxiRkCxMqh4Hdxuz2zfj9lTS78BJe5DJc8B6QAg - Pp41peQ3EP9HMuwlSBzEp4bjIWYgmR4HMx1JTA9NzAvIb0dxAZADcjIsHOBOBDkfKK4BNQAkDlIDcj6Y - jdUL//8z/MeFcfoZanI4yGnnrjP8n76S4f+uYwz/8zogbBD+/JUBOSBBLgmAG4jkheMHzzD8Dy2BaIZh - EB9kICwsoF47TnUvgAMFaEs1UoCCnYrGB4mBvKuJzQugaAQpgIV4P9S54BhCYuOOBbJSF5oTzdH4LDi8 - gUgHWBIScqICsdETGlieLNeiawIAaZgQICy+wd4AAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK9gAA - CvYBwq9wAwAAAnZJREFUOE9dlF1PE0EUhpu4sztDqyTG6EVp96vGFgmiwRCVeCHRiEEuUEgRRGxREEwA - ETQiVEQTAZGoMXpP4l/xt/AvfM7sIuDFm5mer3nPOe82oyvZZhCDC6ATXNHlbCvIcz97yNaGrQhi0GbK - uaCpfPxEhoDzKjSzKjbbbmw+W4RmwfX1A8557N9VqemnisxrN9B1bC/BCv6HFAoyHq/ifEfQror1Lwp8 - cSPzhuAp7O+PlcxvsMt9jcRF/BtgiwI1CkQwyAWOr4ecUD9Tga7heAxG3aIedH0z7ISm7kRmGt84tiHP - NyPiVy3ebdifyVClwmtPbPXQvOL1LfDJsgrNCzcwE9hX7asR/kDP81sY1mR2UqCdH88xLhOwCn6Ar/S+ - 4cRNqzCbxrfuRlrsH7h/5Nx2Qz1lC5hytqAKXi/0BlRB91PwKuhwK9l2pzXX6lVyobAE15K2pEVvnBZ6 - KHAyacHXj6A6C5PRiwOd1VuTvTtgDPxJ7zv57mIb/gnbWmQaKjCjFCgkLTBAu5pAP7107/IMSXtpshQQ - 7HUOdi0QNyOtsbFvDHeOAufSFnSf0FN57wYFS7KeVFw+pwhKzg6Y3peXHdlOi+5BTKcOthDoSWZwl6A6 - Q2rIUKG6xEuLcoIVsA6WrUZavJv7M0i2EJg5kodJnGNlmxRZk16d2K60IclOyezQwiYxDYkVuR9uYQgG - d2QTOEUsIwrKiKxfFXUf9ypsalZQvh6X2KNCsvI18ykbEQtU+V3UVUmw30eiFZG0tDF2VEgiotC8TQP2 - TxGOKHTJfh+SnChy7V8BJnkatNvPtpztAtfT094RWrcV1//+5C+g+S/3C5lq0y853QAAAABJRU5ErkJg - gg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK9gAA - CvYBwq9wAwAAAONJREFUOE9jYKAGiIyM7EfCx6FsMSxiRkCxMqh4Hdzu2NjYjy0tLd+AEvehkueAdAAQ - H29ubv4NxP+RDHsJEgfxqeF4iBlIpsfBTEcS00MT8wLy21FcAOSAnAwLB7gTQc4HimtADQCJg9SAnA9m - U90L4SCnuaV7OgNxPxDHAfFxKBvEF0CLrQC4C5C8ANIQCsQvoZpBfBAG8eHhA/Xacap7ARwoQNdUozsV - jQ8KSJB3NbF5AeRMkAJYiPdDnQuOISQ2bWIBlg7M0ZzMAuSDkjVyfgGzsXkBxflIXkFPaKgGUBIdALJS - 5si8Z54VAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAfxJREFUOE9j+P// - P4Ofnx8GDgwMZAgJCREMDQ11AOIoIE6F0g4gcZA8SB8DHgMU4xKSk6Ys3th99Oqz9fdffTl+8/HbrYvW - bOsDiQMNUIQb4OPjw4CMfX19BaNi41PWHby68MiN14cevfl29snbb+dAGMTeceLmkujYhBSQOrALPD09 - 0bHzxPlr+3ZfenHg6uOPJ2CaYfS1J59OTF+yYSJQnzPYAGdnZ3ScsO30gzUgA3Dhg5efbALqSwAbYGdn - h47z9115uQ+mGd0FIP6J22+PAvXlgw2wsLBAx6l7zj/cCDIAm2aQ2Kkbz3cA9aWCDTA0NETHnpPnrpi+ - /+qrw/dffj2NbggwIM/NW7Z2LlCfJ9gABwcHsBdsbW0ZbGxsGMzNzVVc3Nyrj1y8t+/ms88oBjx7//3i - 5Zv3d1jb2JaoqamJYBhgbW0tDzSkeO3a9f81NLXbJ06fu/Txi3dH3n7+ee3pq/dH5y1YvFJDQ7NWUFBQ - S05ODpKQYC4AatRyc3Ov2bFjz39RUbFmFhYWLSAOA+JKIG6H0iC+GB8fHwOKAUDnWwQGBrcdOXLmv6Ki - Ug9QkSoQM+DCKAYA/e+dkJAy4eLFu//19AymATUZ49MMkkMxABhoJbduvfpvb+88j5WV1YWQZgwD9PT0 - tERERFqAmmOI0YxhACggycUArdOzkqbxIJ4AAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAEUSURBVDhPY2CgBnBN9+yHYbc0z+NgdoarGLqYe6q7EVCs - DCTulu5RB7fbM8X3Y/LU0m/OyZ73wZKpnueABgWADIufEv87a0rJf7hhSZ4vYZZQw/EQM+Cmp3vGwb0A - 9ZZHpocesphLuocXUH07SA/cBSAnY3MiyPluaW4aIAPcgE4Hew+JjdUL//8z/MeFcfoZanI4yGnnrjP8 - n76S4f+uYwz/8zogbBD+/JUBHpBQ9QEYXgA57+AZhv+hJRDNMAzigwyEhQXEa57HqesFWKgCE0g1WsIK - QObDvOuS6aWJ6QVgNIIVQEMcxAY5F2YAjA2Tp35CAtuU6mWO7GT7ensWULJG9wbehIScqGB5A10MxQBK - /AIAoo4O0fuXsPcAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - pgAADqYBh9ypbwAAAi1JREFUOE+lkV1o0lEYh1+/EEUICb0K68LMSPZvmH1RadtUpmaWSlAXIyxt1aib - YR+b/TGUDHYTYyUxGF4JdiUjgmRkgu5CtovdTEwcuASXGQRdv51zdINI6GMHHs7V8zu/877g9/uhD8dc - LtcdnU53Vq/Xg0QiAXpkMhkEn3XgRrwN16YbjH4y+Hy+kNPpBJVK9VSj0QRFIhH3TwFerzdgs9mC4XAY - O50OEvkWwfS3DTgqt9ttpAGlUgmbzS0UCARxuVx+7k9fYHKr1cJCocACMpkMZrNvcWWljmq1Oj4W+fQt - EPuS6DcDJjebTaxUKphMJrFcLmMiMYPz829wYSGL1epXHL40lbnysI7+cO2qd7IK4Ha7GVRuNBpMprVT - qRSS7ZCAOSYvLhZxc/MHWq3We/bxVSRUCAB0TRQ67Xq9zuRcLsdqb79M5Y2N70z2eDxHjf732KO7WwrZ - NUcGFSoWS7/JtVoHLRbLhMlkOnPKMQ0HhtLY45cAEAqFRkI4nX63U3t9fQu1Wu1djuMGjUYj7Bl8ScG9 - ptc8AQCDSfjonoThfYdpAG1yWiqVRpaWVnFt7TMqFIrHSqXyhMFggIPHx0FyaIbCKwZmYScAb74CDMzB - B8d9GCFBYrHYTHjew+zYfwSWR24DXuAhPxSF6MkY5M1PAK0Pug22A/D6LODYC8jbJyDKjUJ0wA758yHA - yzHAi1EWgM4I4OgUoP1RN4DneaTnf2/YjUwf3XWDnxi88DTgdn3hAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - pgAADqYBh9ypbwAAAZZJREFUOE+lkksoRFEch3//yWYWtpZWHgs7ZEXcokkT7ty88sjGY2iiMNEY06Q8 - I7JClNSQabIwsvJIZEOhyIqiCAvZUuPvHLc7TF2PmlNfZ/V95wmI0VJKMaxOEXaWdRwOxyd3RJKkMzGH - hWMg/ajcU/MlmgRyb4jWToiGTQNSDngRXfl7QFXVNEVROt7dbr612R7XgEIBJJ9jqEmXzQKGHIlEOBQK - XQSBg4BwDKKiWWA7QPnrc7RxeajxVjDrxWq1jnjFHSyKgMGPAUN+fejj8z31aagD+ynJCdAslr8DZrK/ - DVByLH8HfpJ9ztjAaUoeuKgXmOvWmXeLc/UiecGT2P981cybS9kPcttyZSkbgdX0AnCxF2zz6IFJl850 - O2jSRQP8fMydlbTYqpKnr5Gi8m6dAi7xg+2+2MCokyARTzl+f7HMLo1WnGVULH9nVy1ht6EQrA2CywbM - A/6sEuM7sBCDQsyY0FIRLreBq8bAFSO/B7h5Ftw0A3+mHeFqO7hhGlw/Ba6Z+F/g6PqN4wHxyNKNO/AB - NFrDjHczNdsAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAACKSURBVDhPY2AYBeghoM3IyLgGB54OVCxGTJA5AQ1YD8JA - xTpQDRFQfgQxBugBFW8BYaBiPaiGKCg/ihgD9IGKd2LDQM36xBhgANS8H4SBij2A2ACI46Fiy4FsLkKG - GAEVHwVhoEIjqGJsYjjN8QNqPgPCQBUmUFXIYir4XGAFlHyIBxcQcv5IlAcAm4MjD8DlZQQAAAAASUVO - RK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAABgSURBVDhPY2AYBfhCQJuRkXENMgYq1iY1yHSABqwH4h5S - NcLU6wE1bwFydMk1IA1owAZyNTMANW8Fas4k1wAjoAFHgZoNyTIAqHkJEJ8BajYh1QAroIaHaBgkNgpw - hAAAm8EOmTkm1pMAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAADMSURBVDhPY2AYBfAQsJ/9zMN2zvOZhIIEpAakFkWdxZT7 - HhaT750BYUIGwNSB9IDV6rVd8NBrv3Sm58bf/yCaGGy68ztELVAvg3Ll4TMT7vz/33j2z/+OK3/+N5// - +b/u1Pf/lUe//C/f//5/8a5X/3O2v/iftO3l/5Btb/+77vj0X3zt1//qu//8B+llkMja4SGWtRXsAhBN - DAa5AKQOpBfsDb74lR48McvPgDChMICpA+lBUcseONuDLXAOwVgAqQGpJWTRqDwJIQAAilGdHbgOJisA - AAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAEFSURBVDhPY2CgNqievPN/y9xj/8kyt2Xe8f83btwA44aZ - B0k3JDa/5z8MxBf2k25A5/xDcBc0TlpDmgHItsNckVA0AcWQpUd//E+vnv3fK7Lgf82U3agWYDMAJAYK - TJDiqJyO/6GpDf89wnL/57cs/7/k8DfiDABp9o0p+W/jHvXfwjkUzK6atAPTeyXd6//H5HUjArGg+39G - 9Zz/PlFF/03tA/6b2Pn/t/GIBrsEZxSnVs6AGxCV3f4/rrAPrBGEHXwS/ieXTcUfsMjhAGKDNIKcnVY5 - 839Rx2rCsYJsAEizW3Dm/6z6BYQ1wvyEbIC9d/z/kq51xGsGGQIyABmTlR/orgkAcvMB8BYVXdkAAAAA - SUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAG2SURBVDhPY2AYWmCNhDzDKtEzDCtFPUh3+Hx+AYZlIhvS - 3pX/Z1gucoZhGSmGrGJgY1gsPE/nmP3TqEfZ/+Pvx/9mWAQ0hCjwn4GRYb5wq8JWo3sBNxL/e1/1+cWz - XO4Sw0IRH1T9swU9GGYLngFiVP/NFsgUWKZ8w603/J/9fvu//EsUrzHMFUpG1TwFqGm64BmQAhDNAOKD - wDQBH465Epfl58v/Vqs3/8e3QP4Ww3SBakyXT+I/4/M095fHhcj/EVcy/zAA+QwT+XKZpgqeFlps8kNx - k9F/7tnS94FiPQz1DEyYBvTyeTD08pyxvxn/U2mP8X+zEwE/QHypTfKfpXfo/OdbJPeEoYdvHlAzB+5w - awMa0s5zRuuU8zeJw5r/Nc5Y/hc/pPGff7HcK4ZW3nUM/cBoJAiauTwYmrjPSB9Q+iJ8VuU/+zbx94yN - PLsZWjilCeqFK4hg92AoYD/DukDgBWMZ2xGGcDZNYjSDAoYfiOWBWJfBiCmNIZ7pDIMWQyiQDzJACYil - gFgYiHmAmA2IGZENBnFAAQTypzhUsSSULQqkBYGYF4i5oJqZ0Q0gxpVY1QAAJuuF6gTRvEgAAAAASUVO - RK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAIOSURBVDhPrZI9SCNRFIWvY2RUAskQ8qOIFjbisoUSSJk0 - Qpo0CzZiE5JO0cKAjcuyCxoDFmm0ELUyMQq7sqgY0kyhoEiC4h+M7WgRLFIs7DLs4tt7gvMgGqwcOPDm - 3XO+e+e9IXrvJ0/UvU00uUOUZx0/K4891N7sVyCKfe/o0MuhkFlNJq3fU1MCqiYSVnl42EQNnqaQHBd2 - 3e6KmJ0Vf6anxZrfb6RV9RzC+mRkpPZrYkLsOp0VeBsgazxaob1d/5dKib8zM2K9p8f4QjS3SOSCvhKF - +X3nx+DgfTUeF7m2Nh0ZCdng7zviER8TiXoYnThQZkVt0wKRB5DDYLBWGhgwkZGAVaItIxy2sm53vTPC - D+PjryCYJKOqRsnrtZCRgGU+7ZtYTMwryjlGRmdALiORBghq39hz0NcnkJGALL9cRKMCRZhQsCFnQ0MS - YgOKXV0CGQlY4nH0YNDKtrYaGNMu2JCT/n4bMgdP0eOxkJEAJk8WfD5zX9NqOCgc2EvIaSBQh/xU1dqm - w2EiIwEZvpJMS4t+1dsrcp2d94BgEvsa7YPNaNpTWdMEvMg0/Auf+edIK0rl1usVh9xlhUdd4DOBsMbe - NYfhgbfp3/iJCymmb/CIustl3XEAwhp7qMHTLOzgTT/rQ4CvMEKUHiXaGyM6hbDGHmrs+cjiJSEjH4VX - TpaPhW97S2gELzL0H9Dj5tei7xUOAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAUFJREFUOE+lk69L - Q1Ecxb//wmCra6uDlbXFwcJgYXVMXFkdD9y6BouGWRxM8BeiiGARFINJTFcwCApWMVisYvB4ztU3Bveu - +MLh8v2ezzn3vQfPAFgWZQrr4lnBsZmdmjUop1Pz4Z9iXvrU8wUKOYxG0Ek15gq89zkYzLyggLD7Hg7x - 2GziK0mgmVKJ5N57Pe+9djreCwr2Ce7R+Oj3cVOt4q3bhWbpqdXyu/t63e/EBgU0bIfGlMBLu43Lchl3 - tRquKxXsFgo4KRYhT4zYaAEBmxDYJnhRKuEgl/M6yuehnTwx0YJ1GpvUmNAW4XPeesZwKu3kiREbPIGW - G7+Au2IwJnliFhXIcLcMp9K8YBd+xFXCDwyn0rzG26SYF7zCCsGEoWeW6NTMoEkxLyhgyJYZWmJYp+a0 - IOYFBf/9IzP/jT+zZw/Woa9yPwAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAoklEQVQ4T7XTywqCQBSA4ZlH - b92qR2id2UXJIiQiIsRN7lz6JtN/oIkpDhKjCh8O6LnCGOecGWJQsBT+JLDWzrBCgjU22GKHDDkOOGLu - uw4TGD78TUsgVdOeql/JJ+lAZt0HsxacTzijxAVX3HCfpAPZcF/VcXZg3o82gjorXT1QoUZDfIsuage+ - ury1BAu/4Z+qT/5fhsFqgtgLNd5liu3gBRRIn3FPTkzqAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAoklEQVQ4T7WTywqDMBBFk093 - 7da/qGJf+ECklFJK6abddemfxBNwithGSqLCYQKSOXMHoowxKoSgy1b8aaC1jmADKWSQwxZ2cIAjFFBB - LFOPGyh+/M1cA5e1RtCIZJUJbNb9KGvJWawt5xOc4QLXVSaQBTqtmG/BO1DD9yuC3fBX1sF6pz7gxf03 - dF47ELutcw2SifUpVmrqjOD7oJZ7TL4T9ELIn+co5cQOAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAqklEQVQ4T7WTzQqCQBRG7zy6 - 6x7Ah0gpLfohIiJEoha1a+muTe8wngkcJrUYxhQOjsp857vCiNZahjBosxHbAKVUBFNIIIUZzCGDBSxh - BRuYNK3dAOGDNz4BbesWwQ72cPAJ+NmmL8DMmjuzrll/WHk+wgmKURq0K79nda2sSzjDdZQG9g9/sV54 - fxeRB1RBDdhoL5+AGKOx3hor9ye8IO8EhB6o/x2m0AY1iSqgdYRW23EAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABDElEQVQ4T2P4//8/AyWYIs0g - i+EGMDIyMuDC0sq2DCltb5DxfxCfaANABuvaFTJEVj+E4f8gNkkGgAzxyrkIw/9BbJINkNNPZLCKOQDC - /0E0ugGNQFtWA/FaIF4HxBuAeBMQbwXi7UDcA3KFjt8mEP4Pokl2AZeQDoOK22oQ/g+i0Q1YD7RhIxBv - htq6A0jvBuJ9sNgRUg5nUHJZC8L/QTQZLtBlUPfcAcL/QTS6ASC/Itt6EMg/AsQngPgMEF/hEzNlMAm7 - wKAfeOI/iCbJBQxAoO2yhMEi6uZ/IH4AotEN6AfaArL1KMxWoJ6rQLwcpBkErGLuMtjGP3RwTH7+H0Sj - GEBuhqJeZiLXBQDC0LFONyaX7QAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABLUlEQVQ4T2P4//8/AyUYrpmR - kZEBHzZ2KWdIbX8Lw/9BbJDFRBsAMjym7jEM/wexSTZA0yqHIaDoOgj/B9HoBjQCbVkNxGuBeB0QbwDi - TUC8FYi3A3GPrF48g03cQQanlBP/QTTJLtBw7GYwDd/1H4gfgGh0A9YDbdkIxJuhtu4A0ruBeB8scNXs - uxj0A7c6aPls+A+iSXYBAxBoem9mUHVfC6bRDQD5FdnWg0D+ESA+AcRngPgKp5Aug7LrBgcll7X/QTRJ - LgDZLmPWCbR9638gfgCi0Q3oB9oCsvUozFagnqtAvBykGQTUPLYzaHjtZtD2PfgfRBN0AUwjiOYTM2Uw - Dj0Pw/9BbJIMsI69y4CE/4PYRBugaFTK4Jj8Ehn/B/FRDCA3R1KUlUGWAgAiG3UaYBp/hAAAAABJRU5E - rkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABDUlEQVQ4T2P4//8/AyWYIs0g - i+EGMDIyNgLxaiBeC8TrgHgDEG8C4q1AvB2Ie/QdihniG587pLS9+Q+i0Q1gACrCi51jVjBEVj/8D8QP - QDS6AeuBBmwE4s1QW3cA6d1AvA9msGPUMoagkpsMXjkX/4Nokl0gIGHIYBVzAIT/g2h0A0B+Rbb1IJB/ - BIhPAPEZIL7CAAQ6fptA+D+IJskFIM2cgtoMKm6rQfg/iEY3oB9oC8jWozBbgXquAvFykGYQkDJuZlBy - WQvC/0E0QRfANIJoLmF9BnXPHTD8H8QmyQD9wBMMSPg/iE20ATK6uQwWUTeR8X8Qn2gDHJOfM6Dh/yA+ - igHkZijqZSZyXQAA4IG1TpHFZ2gAAAAASUVORK5CYII= - - - - ..\icons\notification-counter-01.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\icons\notification-counter-02.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\icons\notification-counter-03.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\icons\notification-counter-04.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\icons\notification-counter-05.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\icons\notification-counter-06.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\icons\notification-counter-07.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\icons\notification-counter-08.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\icons\notification-counter-09.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\icons\notification-counter-10.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\icons\notification-counter-11.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\icons\notification-counter-12.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\icons\notification-counter-13.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\icons\notification-counter-14.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\icons\notification-counter-15.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\icons\notification-counter-16.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\icons\notification-counter-17.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\icons\notification-counter-18.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\icons\notification-counter-19.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\icons\notification-counter-20-plus.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\icons\notification-counter-20.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\icons\balloon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\icons\resize.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - 551, 17 - - - 17, 54 - - - 662, 17 - - - 452, 17 - - - 116, 54 - - - 17, 17 - - \ No newline at end of file diff --git a/src/Greenshot.Addon.LegacyEditor/Greenshot.Addon.LegacyEditor.csproj b/src/Greenshot.Addon.LegacyEditor/Greenshot.Addon.LegacyEditor.csproj index 33efbc600..92d4646da 100644 --- a/src/Greenshot.Addon.LegacyEditor/Greenshot.Addon.LegacyEditor.csproj +++ b/src/Greenshot.Addon.LegacyEditor/Greenshot.Addon.LegacyEditor.csproj @@ -1,331 +1,146 @@ - - - - + + - Debug - AnyCPU - {9F89C5A0-EB75-4F01-97EB-FBC0725733F2} - Library - Properties Greenshot.Addon.LegacyEditor Greenshot.Addon.LegacyEditor - v4.6.1 - 512 + net471;netcoreapp3.0 true - - - - latest - - - latest + - - ..\packages\Autofac.4.8.1\lib\net45\Autofac.dll - - - ..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll - - - ..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll - - - ..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll - - - ..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll - - - ..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll - - - ..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll - - - ..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll - - - ..\packages\Dapplo.CaliburnMicro.Configuration.1.0.75\lib\net461\Dapplo.CaliburnMicro.Configuration.dll - - - ..\packages\Dapplo.CaliburnMicro.Dapp.1.0.75\lib\net461\Dapplo.CaliburnMicro.Dapp.dll - - - ..\packages\Dapplo.CaliburnMicro.Menu.1.0.75\lib\net461\Dapplo.CaliburnMicro.Menu.dll - - - ..\packages\Dapplo.CaliburnMicro.Security.1.0.75\lib\net461\Dapplo.CaliburnMicro.Security.dll - - - ..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll - - - ..\packages\Dapplo.HttpExtensions.0.8.46\lib\net46\Dapplo.HttpExtensions.dll - - - ..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll - - - ..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll - - - ..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll - - - ..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll - - - ..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll - - - ..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll - - - ..\packages\Dapplo.Windows.Clipboard.0.5.109\lib\net461\Dapplo.Windows.Clipboard.dll - - - ..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll - - - ..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll - - - ..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll - - - ..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll - - - ..\packages\Dapplo.Windows.Icons.0.5.109\lib\net461\Dapplo.Windows.Icons.dll - - - ..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll - - - ..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll - - - ..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll - - - ..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll - + + PreserveNewest + + + + + - - - - + + - - ..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - - ..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\System.Windows.Interactivity.dll - + + - - - - - + + + - - - Component - - - Component - - - Component - - - Component - - - Form - - - ColorDialog.cs - - - - - Component - - - Component - - - Component - - - Component - - - Component - - - Component - - - - Component - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Component - - - - - - - - Form - - - DropShadowSettingsForm.cs - - - Form - - - ImageEditorForm.cs - - - Form - - - ResizeSettingsForm.cs - - - Form - - - TornEdgeSettingsForm.cs - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - {5b924697-4dcd-4f98-85f1-105cb84b7341} - Greenshot.Addons - - - {bf35190d-b2a7-4cfa-b397-51cb384cf0d7} - Greenshot.Core - - - {f041c685-eb96-4ed1-9ace-0f5bd836610f} - Greenshot.Gfx - + + + + - - + + + + + + + + + all + runtime; build; native; contentfiles; analyzers + - - - ColorDialog.cs - - - ImageEditorForm.cs - Designer - - - - - MSBuild:Compile - Designer - - - - - mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).dll" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" -copy "$(ProjectDir)\Languages\*.xml" "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" - \ No newline at end of file diff --git a/src/Greenshot.Addon.LegacyEditor/IEditorConfiguration.cs b/src/Greenshot.Addon.LegacyEditor/IEditorConfiguration.cs index a9fd701a1..5b302f58d 100644 --- a/src/Greenshot.Addon.LegacyEditor/IEditorConfiguration.cs +++ b/src/Greenshot.Addon.LegacyEditor/IEditorConfiguration.cs @@ -26,8 +26,7 @@ using System.Collections.Generic; using System.ComponentModel; using System.Drawing; -using Dapplo.Ini; -using Dapplo.InterfaceImpl.Extensions; +using Dapplo.Config.Ini; using Dapplo.Windows.Common.Structs; using Dapplo.Windows.User32.Enums; using Greenshot.Gfx.Effects; @@ -41,7 +40,7 @@ namespace Greenshot.Addon.LegacyEditor /// [IniSection("Editor")] [Description("Greenshot editor configuration")] - public interface IEditorConfiguration : IIniSection, INotifyPropertyChanged, ITransactionalProperties + public interface IEditorConfiguration : IIniSection { [Description("Last used colors")] IList RecentColors { get; set; } diff --git a/src/Greenshot.Addon.LegacyEditor/IEditorLanguage.cs b/src/Greenshot.Addon.LegacyEditor/IEditorLanguage.cs index 1831d7ba3..4aa96dcaf 100644 --- a/src/Greenshot.Addon.LegacyEditor/IEditorLanguage.cs +++ b/src/Greenshot.Addon.LegacyEditor/IEditorLanguage.cs @@ -17,13 +17,12 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -using System.ComponentModel; -using Dapplo.Language; +using Dapplo.Config.Language; namespace Greenshot.Addon.LegacyEditor { [Language("Editor")] - public interface IEditorLanguage : ILanguage, INotifyPropertyChanged + public interface IEditorLanguage : ILanguage { string SettingsDestinationEditor { get; } diff --git a/src/Greenshot.Addon.LegacyEditor/Memento/DrawableContainerBoundsChangeMemento.cs b/src/Greenshot.Addon.LegacyEditor/Memento/DrawableContainerBoundsChangeMemento.cs index 6906ff64c..eb576873d 100644 --- a/src/Greenshot.Addon.LegacyEditor/Memento/DrawableContainerBoundsChangeMemento.cs +++ b/src/Greenshot.Addon.LegacyEditor/Memento/DrawableContainerBoundsChangeMemento.cs @@ -35,7 +35,7 @@ using Greenshot.Addons.Interfaces.Drawing; namespace Greenshot.Addon.LegacyEditor.Memento { /// - /// The DrawableContainerBoundsChangeMemento makes it possible to undo-redo an IDrawableContainer resize & move + /// The DrawableContainerBoundsChangeMemento makes it possible to undo-redo an IDrawableContainer resize and move /// public class DrawableContainerBoundsChangeMemento : IMemento { diff --git a/src/Greenshot.Addon.LegacyEditor/Memento/IMemento.cs b/src/Greenshot.Addon.LegacyEditor/Memento/IMemento.cs index c0a28417c..5e3588e20 100644 --- a/src/Greenshot.Addon.LegacyEditor/Memento/IMemento.cs +++ b/src/Greenshot.Addon.LegacyEditor/Memento/IMemento.cs @@ -19,7 +19,6 @@ * along with this program. If not, see . */ using System; -using Greenshot.Configuration; namespace Greenshot.Memento { /// @@ -40,12 +39,5 @@ namespace Greenshot.Memento { /// The memento to try to merge with /// bool Merge(IMemento other); - - /// - /// Returns the language key for the action which is performed - /// - LangKey ActionLanguageKey { - get; - } } } diff --git a/src/Greenshot.Addon.LegacyEditor/Properties/AssemblyInfo.cs b/src/Greenshot.Addon.LegacyEditor/Properties/AssemblyInfo.cs deleted file mode 100644 index 4d04d1dd6..000000000 --- a/src/Greenshot.Addon.LegacyEditor/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Greenshot.Addon.LegacyEditor")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Greenshot")] -[assembly: AssemblyProduct("Greenshot.Addon.LegacyEditor")] -[assembly: AssemblyCopyright("Copyright © 2007-2018 Greenshot")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("9f89c5a0-eb75-4f01-97eb-fbc0725733f2")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/addEllipseToolStripMenuItem.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/addEllipseToolStripMenuItem.Image.png new file mode 100644 index 000000000..f1ee831e7 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/addEllipseToolStripMenuItem.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/addRectangleToolStripMenuItem.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/addRectangleToolStripMenuItem.Image.png new file mode 100644 index 000000000..e250229cb Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/addRectangleToolStripMenuItem.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/balloon.png b/src/Greenshot.Addon.LegacyEditor/Resources/addSpeechBubbleToolStripMenuItem.Image.png similarity index 100% rename from src/Greenshot.Addon.LegacyEditor/icons/balloon.png rename to src/Greenshot.Addon.LegacyEditor/Resources/addSpeechBubbleToolStripMenuItem.Image.png diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/addTextBoxToolStripMenuItem.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/addTextBoxToolStripMenuItem.Image.png new file mode 100644 index 000000000..b736c0552 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/addTextBoxToolStripMenuItem.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/areaHighlightMenuItem.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/areaHighlightMenuItem.Image.png new file mode 100644 index 000000000..5637e5919 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/areaHighlightMenuItem.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/arrowHeadsDropDownButton.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/arrowHeadsDropDownButton.Image.png new file mode 100644 index 000000000..b1873ed42 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/arrowHeadsDropDownButton.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/blurToolStripMenuItem.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/blurToolStripMenuItem.Image.png new file mode 100644 index 000000000..7bb9e14d2 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/blurToolStripMenuItem.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnAlignBottom.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnAlignBottom.Image.png new file mode 100644 index 000000000..a7195d92f Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnAlignBottom.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnAlignCenter.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnAlignCenter.Image.png new file mode 100644 index 000000000..ac5f3bf14 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnAlignCenter.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnAlignLeft.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnAlignLeft.Image.png new file mode 100644 index 000000000..2c03aad48 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnAlignLeft.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnAlignMiddle.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnAlignMiddle.Image.png new file mode 100644 index 000000000..a180d98ad Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnAlignMiddle.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnAlignRight.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnAlignRight.Image.png new file mode 100644 index 000000000..1bf59bb80 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnAlignRight.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnAlignTop.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnAlignTop.Image.png new file mode 100644 index 000000000..ef8d591a1 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnAlignTop.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnArrow.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnArrow.Image.png new file mode 100644 index 000000000..42d30c009 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnArrow.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnCancel.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnCancel.Image.png new file mode 100644 index 000000000..d4a8337b2 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnCancel.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnClipboard.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnClipboard.Image.png new file mode 100644 index 000000000..ad064d8e5 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnClipboard.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnConfirm.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnConfirm.Image.png new file mode 100644 index 000000000..0cbaeee67 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnConfirm.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnCopy.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnCopy.Image.png new file mode 100644 index 000000000..42d070512 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnCopy.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnCrop.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnCrop.Image.png new file mode 100644 index 000000000..17e7d72fe Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnCrop.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnCursor.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnCursor.Image.png new file mode 100644 index 000000000..d095cf19c Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnCursor.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnCut.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnCut.Image.png new file mode 100644 index 000000000..b6c7711e8 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnCut.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnDelete.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnDelete.Image.png new file mode 100644 index 000000000..0028cc019 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnDelete.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnEllipse.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnEllipse.Image.png new file mode 100644 index 000000000..0b36f9571 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnEllipse.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnFillColor.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnFillColor.Image.png new file mode 100644 index 000000000..aba7b262e Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnFillColor.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnFreehand.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnFreehand.Image.png new file mode 100644 index 000000000..9b5178a6a Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnFreehand.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnHelp.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnHelp.Image.png new file mode 100644 index 000000000..5c72d0368 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnHelp.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnHighlight.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnHighlight.Image.png new file mode 100644 index 000000000..b37435b93 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnHighlight.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnLine.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnLine.Image.png new file mode 100644 index 000000000..a09a96d3c Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnLine.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnLineColor.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnLineColor.Image.png new file mode 100644 index 000000000..f37c8ce8a Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnLineColor.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnObfuscate.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnObfuscate.Image.png new file mode 100644 index 000000000..3e8836c93 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnObfuscate.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnPaste.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnPaste.Image.png new file mode 100644 index 000000000..74dbba1da Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnPaste.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnPrint.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnPrint.Image.png new file mode 100644 index 000000000..b30b46c3b Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnPrint.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnRect.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnRect.Image.png new file mode 100644 index 000000000..bdb20e97a Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnRect.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnRedo.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnRedo.Image.png new file mode 100644 index 000000000..fa8f1d0b6 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnRedo.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/resize.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnResize.Image.png similarity index 100% rename from src/Greenshot.Addon.LegacyEditor/icons/resize.png rename to src/Greenshot.Addon.LegacyEditor/Resources/btnResize.Image.png diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnSave.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnSave.Image.png new file mode 100644 index 000000000..1a109ed8f Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnSave.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnSettings.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnSettings.Image.png new file mode 100644 index 000000000..fd5698091 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnSettings.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel.Image.png new file mode 100644 index 000000000..5090c3760 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/notification-counter-01.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel01.Image.png similarity index 100% rename from src/Greenshot.Addon.LegacyEditor/icons/notification-counter-01.png rename to src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel01.Image.png diff --git a/src/Greenshot.Addon.LegacyEditor/icons/notification-counter-02.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel02.Image.png similarity index 100% rename from src/Greenshot.Addon.LegacyEditor/icons/notification-counter-02.png rename to src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel02.Image.png diff --git a/src/Greenshot.Addon.LegacyEditor/icons/notification-counter-03.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel03.Image.png similarity index 100% rename from src/Greenshot.Addon.LegacyEditor/icons/notification-counter-03.png rename to src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel03.Image.png diff --git a/src/Greenshot.Addon.LegacyEditor/icons/notification-counter-04.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel04.Image.png similarity index 100% rename from src/Greenshot.Addon.LegacyEditor/icons/notification-counter-04.png rename to src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel04.Image.png diff --git a/src/Greenshot.Addon.LegacyEditor/icons/notification-counter-05.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel05.Image.png similarity index 100% rename from src/Greenshot.Addon.LegacyEditor/icons/notification-counter-05.png rename to src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel05.Image.png diff --git a/src/Greenshot.Addon.LegacyEditor/icons/notification-counter-06.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel06.Image.png similarity index 100% rename from src/Greenshot.Addon.LegacyEditor/icons/notification-counter-06.png rename to src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel06.Image.png diff --git a/src/Greenshot.Addon.LegacyEditor/icons/notification-counter-07.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel07.Image.png similarity index 100% rename from src/Greenshot.Addon.LegacyEditor/icons/notification-counter-07.png rename to src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel07.Image.png diff --git a/src/Greenshot.Addon.LegacyEditor/icons/notification-counter-08.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel08.Image.png similarity index 100% rename from src/Greenshot.Addon.LegacyEditor/icons/notification-counter-08.png rename to src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel08.Image.png diff --git a/src/Greenshot.Addon.LegacyEditor/icons/notification-counter-09.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel09.Image.png similarity index 100% rename from src/Greenshot.Addon.LegacyEditor/icons/notification-counter-09.png rename to src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel09.Image.png diff --git a/src/Greenshot.Addon.LegacyEditor/icons/notification-counter-10.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel10.Image.png similarity index 100% rename from src/Greenshot.Addon.LegacyEditor/icons/notification-counter-10.png rename to src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel10.Image.png diff --git a/src/Greenshot.Addon.LegacyEditor/icons/notification-counter-11.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel11.Image.png similarity index 100% rename from src/Greenshot.Addon.LegacyEditor/icons/notification-counter-11.png rename to src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel11.Image.png diff --git a/src/Greenshot.Addon.LegacyEditor/icons/notification-counter-12.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel12.Image.png similarity index 100% rename from src/Greenshot.Addon.LegacyEditor/icons/notification-counter-12.png rename to src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel12.Image.png diff --git a/src/Greenshot.Addon.LegacyEditor/icons/notification-counter-13.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel13.Image.png similarity index 100% rename from src/Greenshot.Addon.LegacyEditor/icons/notification-counter-13.png rename to src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel13.Image.png diff --git a/src/Greenshot.Addon.LegacyEditor/icons/notification-counter-14.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel14.Image.png similarity index 100% rename from src/Greenshot.Addon.LegacyEditor/icons/notification-counter-14.png rename to src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel14.Image.png diff --git a/src/Greenshot.Addon.LegacyEditor/icons/notification-counter-15.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel15.Image.png similarity index 100% rename from src/Greenshot.Addon.LegacyEditor/icons/notification-counter-15.png rename to src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel15.Image.png diff --git a/src/Greenshot.Addon.LegacyEditor/icons/notification-counter-16.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel16.Image.png similarity index 100% rename from src/Greenshot.Addon.LegacyEditor/icons/notification-counter-16.png rename to src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel16.Image.png diff --git a/src/Greenshot.Addon.LegacyEditor/icons/notification-counter-17.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel17.Image.png similarity index 100% rename from src/Greenshot.Addon.LegacyEditor/icons/notification-counter-17.png rename to src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel17.Image.png diff --git a/src/Greenshot.Addon.LegacyEditor/icons/notification-counter-18.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel18.Image.png similarity index 100% rename from src/Greenshot.Addon.LegacyEditor/icons/notification-counter-18.png rename to src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel18.Image.png diff --git a/src/Greenshot.Addon.LegacyEditor/icons/notification-counter-19.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel19.Image.png similarity index 100% rename from src/Greenshot.Addon.LegacyEditor/icons/notification-counter-19.png rename to src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel19.Image.png diff --git a/src/Greenshot.Addon.LegacyEditor/icons/notification-counter-20-plus.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel20+.Image.png similarity index 100% rename from src/Greenshot.Addon.LegacyEditor/icons/notification-counter-20-plus.png rename to src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel20+.Image.png diff --git a/src/Greenshot.Addon.LegacyEditor/icons/notification-counter-20.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel20.Image.png similarity index 100% rename from src/Greenshot.Addon.LegacyEditor/icons/notification-counter-20.png rename to src/Greenshot.Addon.LegacyEditor/Resources/btnStepLabel20.Image.png diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnText.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnText.Image.png new file mode 100644 index 000000000..5090c3760 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnText.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/btnUndo.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/btnUndo.Image.png new file mode 100644 index 000000000..29570e782 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/btnUndo.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/closeToolStripMenuItem.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/closeToolStripMenuItem.Image.png new file mode 100644 index 000000000..e0d11f757 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/closeToolStripMenuItem.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/copyToolStripMenuItem.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/copyToolStripMenuItem.Image.png new file mode 100644 index 000000000..e424eb99c Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/copyToolStripMenuItem.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/cutToolStripMenuItem.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/cutToolStripMenuItem.Image.png new file mode 100644 index 000000000..c3429a1c2 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/cutToolStripMenuItem.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/drawArrowToolStripMenuItem.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/drawArrowToolStripMenuItem.Image.png new file mode 100644 index 000000000..98a2fae69 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/drawArrowToolStripMenuItem.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/drawFreehandToolStripMenuItem.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/drawFreehandToolStripMenuItem.Image.png new file mode 100644 index 000000000..fbb8f61af Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/drawFreehandToolStripMenuItem.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/drawLineToolStripMenuItem.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/drawLineToolStripMenuItem.Image.png new file mode 100644 index 000000000..b36732769 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/drawLineToolStripMenuItem.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/fontBoldButton.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/fontBoldButton.Image.png new file mode 100644 index 000000000..b87099ca7 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/fontBoldButton.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/fontItalicButton.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/fontItalicButton.Image.png new file mode 100644 index 000000000..13efb9f8d Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/fontItalicButton.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/grayscaleHighlightMenuItem.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/grayscaleHighlightMenuItem.Image.png new file mode 100644 index 000000000..3784224b6 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/grayscaleHighlightMenuItem.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/helpToolStripMenuItem1.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/helpToolStripMenuItem1.Image.png new file mode 100644 index 000000000..f4b1e4337 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/helpToolStripMenuItem1.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/highlightModeButton.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/highlightModeButton.Image.png new file mode 100644 index 000000000..21844b060 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/highlightModeButton.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/magnifyMenuItem.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/magnifyMenuItem.Image.png new file mode 100644 index 000000000..2f8a4c310 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/magnifyMenuItem.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/obfuscateModeButton.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/obfuscateModeButton.Image.png new file mode 100644 index 000000000..7bb9e14d2 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/obfuscateModeButton.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/pasteToolStripMenuItem.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/pasteToolStripMenuItem.Image.png new file mode 100644 index 000000000..d4a728016 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/pasteToolStripMenuItem.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/pipette.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/pipette.Image.png new file mode 100644 index 000000000..8c7f2092c Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/pipette.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/pixelizeToolStripMenuItem.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/pixelizeToolStripMenuItem.Image.png new file mode 100644 index 000000000..9e217f082 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/pixelizeToolStripMenuItem.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/preferencesToolStripMenuItem.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/preferencesToolStripMenuItem.Image.png new file mode 100644 index 000000000..913586a4e Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/preferencesToolStripMenuItem.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/redoToolStripMenuItem.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/redoToolStripMenuItem.Image.png new file mode 100644 index 000000000..2c9b65271 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/redoToolStripMenuItem.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/removeObjectToolStripMenuItem.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/removeObjectToolStripMenuItem.Image.png new file mode 100644 index 000000000..17db5107c Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/removeObjectToolStripMenuItem.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/rotateCcwToolstripButton.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/rotateCcwToolstripButton.Image.png new file mode 100644 index 000000000..bbd9b7d3c Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/rotateCcwToolstripButton.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/rotateCwToolstripButton.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/rotateCwToolstripButton.Image.png new file mode 100644 index 000000000..ef1e17399 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/rotateCwToolstripButton.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/shadowButton.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/shadowButton.Image.png new file mode 100644 index 000000000..dcab62f36 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/shadowButton.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/textHighlightMenuItem.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/textHighlightMenuItem.Image.png new file mode 100644 index 000000000..7ec3d61c8 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/textHighlightMenuItem.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/toolStripSplitButton1.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/toolStripSplitButton1.Image.png new file mode 100644 index 000000000..05cea7b7f Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/toolStripSplitButton1.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/Resources/undoToolStripMenuItem.Image.png b/src/Greenshot.Addon.LegacyEditor/Resources/undoToolStripMenuItem.Image.png new file mode 100644 index 000000000..2859363f8 Binary files /dev/null and b/src/Greenshot.Addon.LegacyEditor/Resources/undoToolStripMenuItem.Image.png differ diff --git a/src/Greenshot.Addon.LegacyEditor/app.config b/src/Greenshot.Addon.LegacyEditor/app.config index efd04e61c..b98217257 100644 --- a/src/Greenshot.Addon.LegacyEditor/app.config +++ b/src/Greenshot.Addon.LegacyEditor/app.config @@ -2,22 +2,6 @@ - - - - - - - - - - - - - - - - diff --git a/src/Greenshot.Addon.LegacyEditor/icons/arrow_redo.png b/src/Greenshot.Addon.LegacyEditor/icons/arrow_redo.png deleted file mode 100644 index b1a181923..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/arrow_redo.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/arrow_rollback.png b/src/Greenshot.Addon.LegacyEditor/icons/arrow_rollback.png deleted file mode 100644 index 6972c5e59..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/arrow_rollback.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/arrow_undo.png b/src/Greenshot.Addon.LegacyEditor/icons/arrow_undo.png deleted file mode 100644 index 5dc696781..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/arrow_undo.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/cancel.png b/src/Greenshot.Addon.LegacyEditor/icons/cancel.png deleted file mode 100644 index c149c2bc0..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/cancel.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/cross.png b/src/Greenshot.Addon.LegacyEditor/icons/cross.png deleted file mode 100644 index 1514d51a3..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/cross.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/cut.png b/src/Greenshot.Addon.LegacyEditor/icons/cut.png deleted file mode 100644 index f215d6f6b..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/cut.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/delete.png b/src/Greenshot.Addon.LegacyEditor/icons/delete.png deleted file mode 100644 index 08f249365..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/delete.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/filter_blur.png b/src/Greenshot.Addon.LegacyEditor/icons/filter_blur.png deleted file mode 100644 index 72f2f57e1..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/filter_blur.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/filter_pixelate.png b/src/Greenshot.Addon.LegacyEditor/icons/filter_pixelate.png deleted file mode 100644 index 130b51849..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/filter_pixelate.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/folder-open-image.png b/src/Greenshot.Addon.LegacyEditor/icons/folder-open-image.png deleted file mode 100644 index 6b21e1abb..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/folder-open-image.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/folder_explore.png b/src/Greenshot.Addon.LegacyEditor/icons/folder_explore.png deleted file mode 100644 index 0ba939184..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/folder_explore.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/font_color.png b/src/Greenshot.Addon.LegacyEditor/icons/font_color.png deleted file mode 100644 index c375d3407..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/font_color.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/freehand.png b/src/Greenshot.Addon.LegacyEditor/icons/freehand.png deleted file mode 100644 index 2aa4a2f8e..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/freehand.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/heart.png b/src/Greenshot.Addon.LegacyEditor/icons/heart.png deleted file mode 100644 index 3e01cd349..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/heart.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/help.png b/src/Greenshot.Addon.LegacyEditor/icons/help.png deleted file mode 100644 index 5c870176d..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/help.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/highlighter.png b/src/Greenshot.Addon.LegacyEditor/icons/highlighter.png deleted file mode 100644 index 7bae7ad1f..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/highlighter.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/layer-rotate-left.png b/src/Greenshot.Addon.LegacyEditor/icons/layer-rotate-left.png deleted file mode 100644 index b903bf133..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/layer-rotate-left.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/layer-rotate.png b/src/Greenshot.Addon.LegacyEditor/icons/layer-rotate.png deleted file mode 100644 index 914c5af0c..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/layer-rotate.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/page_copy.png b/src/Greenshot.Addon.LegacyEditor/icons/page_copy.png deleted file mode 100644 index 195dc6d6c..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/page_copy.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/palette.png b/src/Greenshot.Addon.LegacyEditor/icons/palette.png deleted file mode 100644 index 73c5b3f24..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/palette.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/picture_save.png b/src/Greenshot.Addon.LegacyEditor/icons/picture_save.png deleted file mode 100644 index 777fb5d2e..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/picture_save.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/picture_saveas.png b/src/Greenshot.Addon.LegacyEditor/icons/picture_saveas.png deleted file mode 100644 index 0af4a252e..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/picture_saveas.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/picture_to_clipboard.png b/src/Greenshot.Addon.LegacyEditor/icons/picture_to_clipboard.png deleted file mode 100644 index 00b5c0dda..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/picture_to_clipboard.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/pipette.png b/src/Greenshot.Addon.LegacyEditor/icons/pipette.png deleted file mode 100644 index 2a161faeb..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/pipette.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/printer.png b/src/Greenshot.Addon.LegacyEditor/icons/printer.png deleted file mode 100644 index a350d1871..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/printer.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/propertyitemcontainer.gif b/src/Greenshot.Addon.LegacyEditor/icons/propertyitemcontainer.gif deleted file mode 100644 index 2311b4e7e..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/propertyitemcontainer.gif and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/redo.png b/src/Greenshot.Addon.LegacyEditor/icons/redo.png deleted file mode 100644 index 94adf70a9..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/redo.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/ruler-crop.png b/src/Greenshot.Addon.LegacyEditor/icons/ruler-crop.png deleted file mode 100644 index de864ea63..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/ruler-crop.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/shadow.png b/src/Greenshot.Addon.LegacyEditor/icons/shadow.png deleted file mode 100644 index 2d67bccae..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/shadow.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/shape_arrow_add.png b/src/Greenshot.Addon.LegacyEditor/icons/shape_arrow_add.png deleted file mode 100644 index 503a4cb04..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/shape_arrow_add.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/shape_arrowheads.png b/src/Greenshot.Addon.LegacyEditor/icons/shape_arrowheads.png deleted file mode 100644 index 59b309034..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/shape_arrowheads.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/shape_copy.png b/src/Greenshot.Addon.LegacyEditor/icons/shape_copy.png deleted file mode 100644 index 218a5cc32..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/shape_copy.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/shape_ellipse_add.png b/src/Greenshot.Addon.LegacyEditor/icons/shape_ellipse_add.png deleted file mode 100644 index c3f5de326..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/shape_ellipse_add.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/shape_ellipse_delete.png b/src/Greenshot.Addon.LegacyEditor/icons/shape_ellipse_delete.png deleted file mode 100644 index a3f993a63..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/shape_ellipse_delete.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/shape_line.png b/src/Greenshot.Addon.LegacyEditor/icons/shape_line.png deleted file mode 100644 index 3f8e1000c..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/shape_line.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/shape_paste.png b/src/Greenshot.Addon.LegacyEditor/icons/shape_paste.png deleted file mode 100644 index f1ef5a878..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/shape_paste.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/shape_square_add.png b/src/Greenshot.Addon.LegacyEditor/icons/shape_square_add.png deleted file mode 100644 index 31edfce59..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/shape_square_add.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/shape_square_bordercolor.png b/src/Greenshot.Addon.LegacyEditor/icons/shape_square_bordercolor.png deleted file mode 100644 index d6570874e..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/shape_square_bordercolor.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/shape_square_delete.png b/src/Greenshot.Addon.LegacyEditor/icons/shape_square_delete.png deleted file mode 100644 index ede912de0..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/shape_square_delete.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/shape_square_fillcolor.png b/src/Greenshot.Addon.LegacyEditor/icons/shape_square_fillcolor.png deleted file mode 100644 index 71225b6c6..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/shape_square_fillcolor.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/text_bold.png b/src/Greenshot.Addon.LegacyEditor/icons/text_bold.png deleted file mode 100644 index 889ae80e3..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/text_bold.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/text_dropcaps.png b/src/Greenshot.Addon.LegacyEditor/icons/text_dropcaps.png deleted file mode 100644 index dd65786a7..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/text_dropcaps.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/text_italic.png b/src/Greenshot.Addon.LegacyEditor/icons/text_italic.png deleted file mode 100644 index 8482ac8cb..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/text_italic.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/text_underline.png b/src/Greenshot.Addon.LegacyEditor/icons/text_underline.png deleted file mode 100644 index 90d0df286..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/text_underline.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/textfield_delete.png b/src/Greenshot.Addon.LegacyEditor/icons/textfield_delete.png deleted file mode 100644 index c7bd58b21..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/textfield_delete.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/undo.png b/src/Greenshot.Addon.LegacyEditor/icons/undo.png deleted file mode 100644 index e55a304d6..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/undo.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/wand-hat.png b/src/Greenshot.Addon.LegacyEditor/icons/wand-hat.png deleted file mode 100644 index 6f4e24c11..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/wand-hat.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/wrench.png b/src/Greenshot.Addon.LegacyEditor/icons/wrench.png deleted file mode 100644 index 5c8213fef..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/wrench.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/wrench_orange.png b/src/Greenshot.Addon.LegacyEditor/icons/wrench_orange.png deleted file mode 100644 index 565a9330e..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/wrench_orange.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/icons/zoom.png b/src/Greenshot.Addon.LegacyEditor/icons/zoom.png deleted file mode 100644 index 908612e39..000000000 Binary files a/src/Greenshot.Addon.LegacyEditor/icons/zoom.png and /dev/null differ diff --git a/src/Greenshot.Addon.LegacyEditor/packages.config b/src/Greenshot.Addon.LegacyEditor/packages.config deleted file mode 100644 index aed919d50..000000000 --- a/src/Greenshot.Addon.LegacyEditor/packages.config +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.Addon.Lutim/ILutimConfiguration.cs b/src/Greenshot.Addon.Lutim/Configuration/ILutimConfiguration.cs similarity index 92% rename from src/Greenshot.Addon.Lutim/ILutimConfiguration.cs rename to src/Greenshot.Addon.Lutim/Configuration/ILutimConfiguration.cs index 1e193f83b..0428717fa 100644 --- a/src/Greenshot.Addon.Lutim/ILutimConfiguration.cs +++ b/src/Greenshot.Addon.Lutim/Configuration/ILutimConfiguration.cs @@ -21,17 +21,16 @@ using System.Collections.Generic; using System.ComponentModel; -using Dapplo.Ini; -using Dapplo.InterfaceImpl.Extensions; +using Dapplo.Config.Ini; using Greenshot.Addons.Core; -namespace Greenshot.Addon.Lutim { +namespace Greenshot.Addon.Lutim.Configuration { /// /// Description of LutimConfiguration. /// [IniSection("Lutim")] [Description("Greenshot Lutim Plugin configuration")] - public interface ILutimConfiguration : IIniSection, IDestinationFileConfiguration, ITransactionalProperties, INotifyPropertyChanged + public interface ILutimConfiguration : IIniSection, IDestinationFileConfiguration { [Description("Url to Lutim system.")] [DefaultValue("https://lut.im/")] diff --git a/src/Greenshot.Addon.Lutim/ILutimLanguage.cs b/src/Greenshot.Addon.Lutim/Configuration/ILutimLanguage.cs similarity index 94% rename from src/Greenshot.Addon.Lutim/ILutimLanguage.cs rename to src/Greenshot.Addon.Lutim/Configuration/ILutimLanguage.cs index 726b39934..6c4275296 100644 --- a/src/Greenshot.Addon.Lutim/ILutimLanguage.cs +++ b/src/Greenshot.Addon.Lutim/Configuration/ILutimLanguage.cs @@ -22,7 +22,7 @@ #endregion using System.ComponentModel; -using Dapplo.Language; +using Dapplo.Config.Language; namespace Greenshot.Addon.Lutim { diff --git a/src/Greenshot.Addon.Lutim/Configuration/Impl/LutimConfigurationImpl.cs b/src/Greenshot.Addon.Lutim/Configuration/Impl/LutimConfigurationImpl.cs new file mode 100644 index 000000000..cd0481f3c --- /dev/null +++ b/src/Greenshot.Addon.Lutim/Configuration/Impl/LutimConfigurationImpl.cs @@ -0,0 +1,65 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System.Collections.Generic; +using Dapplo.Config.Ini; +using Greenshot.Addon.Lutim.Entities; +using Greenshot.Core.Enums; + +namespace Greenshot.Addon.Lutim.Configuration.Impl +{ + internal class LutimConfigurationImpl : IniSectionBase, ILutimConfiguration + { + #region Implementation of IFileConfiguration + + public string OutputFilePath { get; set; } + public bool OutputFileAllowOverwrite { get; set; } + public string OutputFileFilenamePattern { get; set; } + public OutputFormats OutputFileFormat { get; set; } + public bool OutputFileReduceColors { get; set; } + public bool OutputFileAutoReduceColors { get; set; } + public int OutputFileReduceColorsTo { get; set; } + public int OutputFileJpegQuality { get; set; } + public bool OutputFilePromptQuality { get; set; } + public uint OutputFileIncrementingNumber { get; set; } + public string OptimizePNGCommand { get; set; } + public string OptimizePNGCommandArguments { get; set; } + + #endregion + + #region Implementation of IDestinationFileConfiguration + + public bool UseOwnSettings { get; set; } + + #endregion + + #region Implementation of ILutimConfiguration + + public string LutimUrl { get; set; } + public bool CopyLinkToClipboard { get; set; } + public IDictionary LutimUploadHistory { get; set; } + public IDictionary RuntimeLutimHistory { get; set; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.Lutim/Configuration/Impl/LutimLanguageImpl.cs b/src/Greenshot.Addon.Lutim/Configuration/Impl/LutimLanguageImpl.cs new file mode 100644 index 000000000..59887426f --- /dev/null +++ b/src/Greenshot.Addon.Lutim/Configuration/Impl/LutimLanguageImpl.cs @@ -0,0 +1,58 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System.Diagnostics.CodeAnalysis; +using Dapplo.Config.Language; + +namespace Greenshot.Addon.Lutim.Configuration.Impl +{ + /// + /// This implements ILutimLanguage and takes care of storing, all setters are replaced via AutoProperties.Fody + /// + [SuppressMessage("ReSharper", "UnassignedGetOnlyAutoProperty")] +#pragma warning disable CS1591 + public class LutimLanguageImpl : LanguageBase, ILutimLanguage + { + #region Implementation of ILutimLanguage + + public string Cancel { get; } + public string ClearQuestion { get; } + public string CommunicationWait { get; } + public string Configure { get; } + public string DeleteQuestion { get; } + public string DeleteTitle { get; } + public string History { get; } + public string LabelClear { get; } + public string LabelUploadFormat { get; } + public string LabelUrl { get; } + public string Ok { get; } + public string SettingsTitle { get; } + public string UploadFailure { get; } + public string UploadMenuItem { get; } + public string UploadSuccess { get; } + public string UsePageLink { get; } + public string AnonymousAccess { get; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.Lutim/FodyWeavers.xml b/src/Greenshot.Addon.Lutim/FodyWeavers.xml new file mode 100644 index 000000000..7f5a26669 --- /dev/null +++ b/src/Greenshot.Addon.Lutim/FodyWeavers.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.Lutim/FodyWeavers.xsd b/src/Greenshot.Addon.Lutim/FodyWeavers.xsd new file mode 100644 index 000000000..061979a03 --- /dev/null +++ b/src/Greenshot.Addon.Lutim/FodyWeavers.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + 'true' to run assembly verification on the target assembly after all weavers have been finished. + + + + + A comma separated list of error codes that can be safely ignored in assembly verification. + + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.Lutim/Greenshot.Addon.Lutim.csproj b/src/Greenshot.Addon.Lutim/Greenshot.Addon.Lutim.csproj index ea7b988c0..3b46c3669 100644 --- a/src/Greenshot.Addon.Lutim/Greenshot.Addon.Lutim.csproj +++ b/src/Greenshot.Addon.Lutim/Greenshot.Addon.Lutim.csproj @@ -1,149 +1,20 @@ - - - + + - {D106F86C-CD3D-44FF-B151-2A5D47268B5C} - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Library Greenshot.Addon.Lutim Greenshot.Addon.Lutim - v4.6.1 - Properties - False - False - 4 - false - Always - - - - 3.5 - - + net471;netcoreapp3.0 - - false - latest - - - false - - - false - latest - - - false - - + - - ..\packages\Autofac.4.8.1\lib\net45\Autofac.dll - - - ..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll - - - ..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll - - - ..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll - - - ..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll - - - ..\packages\ControlzEx.3.0.2.4\lib\net45\ControlzEx.dll - - - ..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll - - - ..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll - - - ..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll - - - ..\packages\Dapplo.CaliburnMicro.Configuration.1.0.75\lib\net461\Dapplo.CaliburnMicro.Configuration.dll - - - ..\packages\Dapplo.CaliburnMicro.Dapp.1.0.75\lib\net461\Dapplo.CaliburnMicro.Dapp.dll - - - ..\packages\Dapplo.CaliburnMicro.Menu.1.0.75\lib\net461\Dapplo.CaliburnMicro.Menu.dll - - - ..\packages\Dapplo.CaliburnMicro.Security.1.0.75\lib\net461\Dapplo.CaliburnMicro.Security.dll - - - ..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll - - - ..\packages\Dapplo.HttpExtensions.0.8.46\lib\net46\Dapplo.HttpExtensions.dll - - - ..\packages\Dapplo.HttpExtensions.JsonNet.0.8.46\lib\net46\Dapplo.HttpExtensions.JsonNet.dll - - - ..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll - - - ..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll - - - ..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll - - - ..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll - - - ..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll - - - ..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll - - - ..\packages\Dapplo.Windows.Clipboard.0.5.109\lib\net461\Dapplo.Windows.Clipboard.dll - - - ..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll - - - ..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll - - - ..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll - - - ..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll - - - ..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll - - - ..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll - - - ..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll - - - ..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll - - - ..\packages\MahApps.Metro.1.6.5\lib\net46\MahApps.Metro.dll - + + PreserveNewest + + + + - - ..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll - @@ -152,107 +23,38 @@ - - ..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll - - - ..\packages\ControlzEx.3.0.2.4\lib\net45\System.Windows.Interactivity.dll - + - - - - - - - - - - - - - Never - - - Never - - - Never - - - Never - - - + + - + + + + - - {bf35190d-b2a7-4cfa-b397-51cb384cf0d7} - Greenshot.Core - - - {f041c685-eb96-4ed1-9ace-0f5bd836610f} - Greenshot.Gfx - - - {5b924697-4dcd-4f98-85f1-105cb84b7341} - Greenshot.Addons - + + + + + + + + + all + runtime; build; native; contentfiles; analyzers + - - - - - - - - - - - - - - - - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - - - - mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).dll" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" -copy "$(ProjectDir)\Languages\*.xml" "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" - \ No newline at end of file diff --git a/src/Greenshot.Addon.Lutim/LutimAddonModule.cs b/src/Greenshot.Addon.Lutim/LutimAddonModule.cs index eb7fa3f57..3e7e483bb 100644 --- a/src/Greenshot.Addon.Lutim/LutimAddonModule.cs +++ b/src/Greenshot.Addon.Lutim/LutimAddonModule.cs @@ -24,8 +24,10 @@ using Autofac; using Dapplo.Addons; using Dapplo.CaliburnMicro.Configuration; -using Dapplo.Ini; -using Dapplo.Language; +using Dapplo.Config.Ini; +using Dapplo.Config.Language; +using Greenshot.Addon.Lutim.Configuration; +using Greenshot.Addon.Lutim.Configuration.Impl; using Greenshot.Addon.Lutim.ViewModels; using Greenshot.Addons.Components; @@ -37,17 +39,19 @@ namespace Greenshot.Addon.Lutim protected override void Load(ContainerBuilder builder) { builder - .Register(context => IniConfig.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder - .Register(context => LanguageLoader.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder - .RegisterType() + .RegisterType() .As() .SingleInstance(); builder diff --git a/src/Greenshot.Addon.Lutim/LutimApi.cs b/src/Greenshot.Addon.Lutim/LutimApi.cs index e82c73746..53b185615 100644 --- a/src/Greenshot.Addon.Lutim/LutimApi.cs +++ b/src/Greenshot.Addon.Lutim/LutimApi.cs @@ -27,6 +27,7 @@ using System.Threading; using System.Threading.Tasks; using Dapplo.HttpExtensions; using Dapplo.Log; +using Greenshot.Addon.Lutim.Configuration; using Greenshot.Addon.Lutim.Entities; using Greenshot.Addons.Core; using Greenshot.Addons.Interfaces; diff --git a/src/Greenshot.Addon.Lutim/LutimDestination.cs b/src/Greenshot.Addon.Lutim/LutimDestination.cs index 62a396451..dfbcb0668 100644 --- a/src/Greenshot.Addon.Lutim/LutimDestination.cs +++ b/src/Greenshot.Addon.Lutim/LutimDestination.cs @@ -28,6 +28,7 @@ using Autofac.Features.OwnedInstances; using Dapplo.Addons; using Dapplo.Log; using Dapplo.Windows.Clipboard; +using Greenshot.Addon.Lutim.Configuration; using Greenshot.Addon.Lutim.Entities; using Greenshot.Addons; using Greenshot.Addons.Components; diff --git a/src/Greenshot.Addon.Lutim/Properties/AssemblyInfo.cs b/src/Greenshot.Addon.Lutim/Properties/AssemblyInfo.cs deleted file mode 100644 index 23bd8e87a..000000000 --- a/src/Greenshot.Addon.Lutim/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Greenshot - a free and open source screenshot tool - * Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom - * - * For more information see: http://getgreenshot.org/ - * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 1 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Greenshot.Addon.Lutim")] -[assembly: AssemblyDescription("A plugin to upload images to Lutim")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Greenshot")] -[assembly: AssemblyProduct("Lutim Plugin")] -[assembly: AssemblyCopyright("Copyright (C) 2007-2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// This sets the default COM visibility of types in the assembly to invisible. -// If you need to expose a type to COM, use [ComVisible(true)] on that type. -[assembly: ComVisible(false)] - -// The assembly version, replaced by build scripts -[assembly: AssemblyVersion("1.3.0.0")] -[assembly: AssemblyInformationalVersion("1.3.0.0")] -[assembly: AssemblyFileVersion("1.3.0.0")] \ No newline at end of file diff --git a/src/Greenshot.Addon.Lutim/ViewModels/LutimConfigViewModel.cs b/src/Greenshot.Addon.Lutim/ViewModels/LutimConfigViewModel.cs index f31293de7..c047d4c16 100644 --- a/src/Greenshot.Addon.Lutim/ViewModels/LutimConfigViewModel.cs +++ b/src/Greenshot.Addon.Lutim/ViewModels/LutimConfigViewModel.cs @@ -24,6 +24,7 @@ using System.Reactive.Disposables; using Dapplo.CaliburnMicro.Configuration; using Dapplo.CaliburnMicro.Extensions; +using Greenshot.Addon.Lutim.Configuration; using Greenshot.Addons.Core.Enums; using Greenshot.Addons.ViewModels; diff --git a/src/Greenshot.Addon.Lutim/ViewModels/LutimHistoryViewModel.cs b/src/Greenshot.Addon.Lutim/ViewModels/LutimHistoryViewModel.cs index 1b2501f42..f1f0038da 100644 --- a/src/Greenshot.Addon.Lutim/ViewModels/LutimHistoryViewModel.cs +++ b/src/Greenshot.Addon.Lutim/ViewModels/LutimHistoryViewModel.cs @@ -31,6 +31,7 @@ using Caliburn.Micro; using Dapplo.CaliburnMicro.Extensions; using Dapplo.Log; using Dapplo.Windows.Clipboard; +using Greenshot.Addon.Lutim.Configuration; using Greenshot.Addon.Lutim.Entities; using Greenshot.Addons; using Greenshot.Addons.Extensions; diff --git a/src/Greenshot.Addon.Lutim/packages.config b/src/Greenshot.Addon.Lutim/packages.config deleted file mode 100644 index 4dac2319d..000000000 --- a/src/Greenshot.Addon.Lutim/packages.config +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.Addon.OCR/IOCRConfiguration.cs b/src/Greenshot.Addon.OCR/Configuration/IOcrConfiguration.cs similarity index 83% rename from src/Greenshot.Addon.OCR/IOCRConfiguration.cs rename to src/Greenshot.Addon.OCR/Configuration/IOcrConfiguration.cs index fe2ff9d84..352f95e5d 100644 --- a/src/Greenshot.Addon.OCR/IOCRConfiguration.cs +++ b/src/Greenshot.Addon.OCR/Configuration/IOcrConfiguration.cs @@ -24,18 +24,21 @@ #region Usings using System.ComponentModel; -using Dapplo.Ini; +using System.Diagnostics.CodeAnalysis; +using Dapplo.Config.Ini; #endregion -namespace Greenshot.Addon.OCR +namespace Greenshot.Addon.OCR.Configuration { /// /// OCR Configuration. /// [IniSection("OCR")] [Description("Greenshot OCR Plugin configuration")] - public interface IOCRConfiguration : IIniSection + [SuppressMessage("ReSharper", "UnusedMember.Global")] +#pragma warning disable CS1591 + public interface IOcrConfiguration : IIniSection { [Description("Language for OCR")] [DefaultValue ("miLANG_ENGLISH")] diff --git a/src/Greenshot.Addon.OCR/IOcrLanguage.cs b/src/Greenshot.Addon.OCR/Configuration/IOcrLanguage.cs similarity index 81% rename from src/Greenshot.Addon.OCR/IOcrLanguage.cs rename to src/Greenshot.Addon.OCR/Configuration/IOcrLanguage.cs index 7aa37cf84..6d436a516 100644 --- a/src/Greenshot.Addon.OCR/IOcrLanguage.cs +++ b/src/Greenshot.Addon.OCR/Configuration/IOcrLanguage.cs @@ -17,13 +17,15 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -using System.ComponentModel; -using Dapplo.Language; +using System.Diagnostics.CodeAnalysis; +using Dapplo.Config.Language; -namespace Greenshot.Addon.OCR +namespace Greenshot.Addon.OCR.Configuration { [Language("Ocr")] - public interface IOcrLanguage : ILanguage, INotifyPropertyChanged + [SuppressMessage("ReSharper", "UnusedMember.Global")] +#pragma warning disable CS1591 + public interface IOcrLanguage : ILanguage { string Language { get; } string OrientImage { get; } diff --git a/src/Greenshot.Addon.OCR/Configuration/Impl/OcrConfigurationImpl.cs b/src/Greenshot.Addon.OCR/Configuration/Impl/OcrConfigurationImpl.cs new file mode 100644 index 000000000..c37107396 --- /dev/null +++ b/src/Greenshot.Addon.OCR/Configuration/Impl/OcrConfigurationImpl.cs @@ -0,0 +1,38 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using Dapplo.Config.Ini; + +namespace Greenshot.Addon.OCR.Configuration.Impl +{ + internal class OcrConfigurationImpl : IniSectionBase, IOcrConfiguration + { + #region Implementation of IOcrConfiguration + + public string Language { get; set; } + public bool Orientimage { get; set; } + public bool StraightenImage { get; set; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.OCR/Configuration/Impl/OcrLanguageImpl.cs b/src/Greenshot.Addon.OCR/Configuration/Impl/OcrLanguageImpl.cs new file mode 100644 index 000000000..b3f90b33d --- /dev/null +++ b/src/Greenshot.Addon.OCR/Configuration/Impl/OcrLanguageImpl.cs @@ -0,0 +1,44 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System.Diagnostics.CodeAnalysis; +using Dapplo.Config.Language; + +namespace Greenshot.Addon.OCR.Configuration.Impl +{ + /// + /// This implements IOcrLanguage and takes care of storing, all setters are replaced via AutoProperties.Fody + /// +#pragma warning disable CS1591 + [SuppressMessage("ReSharper", "UnassignedGetOnlyAutoProperty")] + public class OcrLanguageImpl : LanguageBase, IOcrLanguage + { + #region Implementation of IOcrLanguage + + public string Language { get; } + public string OrientImage { get; } + public string StraightenImage { get; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.OCR/FodyWeavers.xml b/src/Greenshot.Addon.OCR/FodyWeavers.xml new file mode 100644 index 000000000..7f5a26669 --- /dev/null +++ b/src/Greenshot.Addon.OCR/FodyWeavers.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.OCR/FodyWeavers.xsd b/src/Greenshot.Addon.OCR/FodyWeavers.xsd new file mode 100644 index 000000000..061979a03 --- /dev/null +++ b/src/Greenshot.Addon.OCR/FodyWeavers.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + 'true' to run assembly verification on the target assembly after all weavers have been finished. + + + + + A comma separated list of error codes that can be safely ignored in assembly verification. + + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.OCR/Greenshot.Addon.OCR.csproj b/src/Greenshot.Addon.OCR/Greenshot.Addon.OCR.csproj index 8cb9b537d..a2c97f38c 100644 --- a/src/Greenshot.Addon.OCR/Greenshot.Addon.OCR.csproj +++ b/src/Greenshot.Addon.OCR/Greenshot.Addon.OCR.csproj @@ -1,133 +1,19 @@ - - - + + - {C6988EE8-2FEE-4349-9F09-F9628A0D8965} - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Library Greenshot.Addon.OCR Greenshot.Addon.OCR - v4.6.1 - Properties - False - False - 4 - false - OnBuildSuccess - - - - 3.5 - - + net471;netcoreapp3.0 - - false - latest - - - false - - - false - latest - - - false - - + - - ..\packages\Autofac.4.8.1\lib\net45\Autofac.dll - - - ..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll - - - ..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll - - - ..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll - - - ..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll - - - ..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll - - - ..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll - - - ..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll - - - ..\packages\Dapplo.CaliburnMicro.Configuration.1.0.75\lib\net461\Dapplo.CaliburnMicro.Configuration.dll - - - ..\packages\Dapplo.CaliburnMicro.Dapp.1.0.75\lib\net461\Dapplo.CaliburnMicro.Dapp.dll - - - ..\packages\Dapplo.CaliburnMicro.Menu.1.0.75\lib\net461\Dapplo.CaliburnMicro.Menu.dll - - - ..\packages\Dapplo.CaliburnMicro.Security.1.0.75\lib\net461\Dapplo.CaliburnMicro.Security.dll - - - ..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll - - - ..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll - - - ..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll - - - ..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll - - - ..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll - - - ..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll - - - ..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll - - - ..\packages\Dapplo.Windows.Clipboard.0.5.109\lib\net461\Dapplo.Windows.Clipboard.dll - - - ..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll - - - ..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll - - - ..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll - - - ..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll - - - ..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll - - - ..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll - - - ..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll - - - ..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll - - + + PreserveNewest + + + + + @@ -135,104 +21,29 @@ - - ..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\System.Windows.Interactivity.dll - + + - - - - - - - - Form - - - SettingsForm.cs - - - - Always - - - Always - - - Always - - - Always - - - + + + + - - {bf35190d-b2a7-4cfa-b397-51cb384cf0d7} - Greenshot.Core - - - {f041c685-eb96-4ed1-9ace-0f5bd836610f} - Greenshot.Gfx - - - {5B924697-4DCD-4F98-85F1-105CB84B7341} - Greenshot.Addons - + + + + + + all + runtime; build; native; contentfiles; analyzers + - - mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).dll" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" -copy "$(ProjectDir)\Languages\*.xml" "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" - - - False - Off - 4194304 - x86 - 4096 - - - False - Off - 4194304 - AnyCPU - 4096 - - - Full - true - DEBUG;TRACE - False - True - - - None - false - TRACE - True - False - - \ No newline at end of file + diff --git a/src/Greenshot.Addon.OCR/OCRDestination.cs b/src/Greenshot.Addon.OCR/OCRDestination.cs index e6e02e5ff..a96242fae 100644 --- a/src/Greenshot.Addon.OCR/OCRDestination.cs +++ b/src/Greenshot.Addon.OCR/OCRDestination.cs @@ -30,6 +30,7 @@ using System.IO; using System.Reflection; using System.Windows.Forms; using Dapplo.Log; +using Greenshot.Addon.OCR.Configuration; using Greenshot.Addons; using Greenshot.Addons.Components; using Greenshot.Addons.Core; @@ -51,11 +52,11 @@ namespace Greenshot.Addon.OCR private static readonly LogSource Log = new LogSource(); private const int MinWidth = 130; private const int MinHeight = 130; - private readonly IOCRConfiguration _ocrConfiguration; + private readonly IOcrConfiguration _ocrConfiguration; private readonly string _ocrCommand; public OcrDestination( - IOCRConfiguration ocrConfiguration, + IOcrConfiguration ocrConfiguration, ICoreConfiguration coreConfiguration, IGreenshotLanguage greenshotLanguage, ExportNotification exportNotification diff --git a/src/Greenshot.Addon.OCR/OcrAddonModule.cs b/src/Greenshot.Addon.OCR/OcrAddonModule.cs index af7bbda80..f8559fc68 100644 --- a/src/Greenshot.Addon.OCR/OcrAddonModule.cs +++ b/src/Greenshot.Addon.OCR/OcrAddonModule.cs @@ -26,8 +26,10 @@ using System.IO; using Autofac; using Dapplo.Addons; using Dapplo.Addons.Bootstrapper.Resolving; -using Dapplo.Ini; -using Dapplo.Language; +using Dapplo.Config.Ini; +using Dapplo.Config.Language; +using Greenshot.Addon.OCR.Configuration; +using Greenshot.Addon.OCR.Configuration.Impl; using Greenshot.Addons.Components; namespace Greenshot.Addon.OCR @@ -63,17 +65,19 @@ namespace Greenshot.Addon.OCR if (HasModi()) { builder - .Register(context => IniConfig.Current.Get()) - .As() + .RegisterType() + .As() + .As() .SingleInstance(); builder - .Register(context => LanguageLoader.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder - .RegisterType() + .RegisterType() .As() .SingleInstance(); } diff --git a/src/Greenshot.Addon.OCR/Properties/AssemblyInfo.cs b/src/Greenshot.Addon.OCR/Properties/AssemblyInfo.cs deleted file mode 100644 index 631cee31a..000000000 --- a/src/Greenshot.Addon.OCR/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,53 +0,0 @@ -#region Greenshot GNU General Public License - -// Greenshot - a free and open source screenshot tool -// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom -// -// For more information see: http://getgreenshot.org/ -// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 1 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -#endregion - -#region Usings - -using System.Reflection; -using System.Runtime.InteropServices; - -#endregion - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("Greenshot.Addon.OCR")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Greenshot")] -[assembly: AssemblyProduct("OCR Plugin")] -[assembly: AssemblyCopyright("Copyright (C) 2007-2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// This sets the default COM visibility of types in the assembly to invisible. -// If you need to expose a type to COM, use [ComVisible(true)] on that type. - -[assembly: ComVisible(false)] - -// The assembly version, replaced by build scripts - -[assembly: AssemblyVersion("1.3.0.0")] -[assembly: AssemblyInformationalVersion("1.3.0.0")] -[assembly: AssemblyFileVersion("1.3.0.0")] \ No newline at end of file diff --git a/src/Greenshot.Addon.OCR/SettingsForm.cs b/src/Greenshot.Addon.OCR/SettingsForm.cs index 37b09b7d0..f2b6bf18e 100644 --- a/src/Greenshot.Addon.OCR/SettingsForm.cs +++ b/src/Greenshot.Addon.OCR/SettingsForm.cs @@ -24,6 +24,7 @@ #region Usings using System; +using Greenshot.Addon.OCR.Configuration; using Greenshot.Addons.Controls; #endregion @@ -35,9 +36,9 @@ namespace Greenshot.Addon.OCR /// public partial class SettingsForm : GreenshotForm { - private readonly IOCRConfiguration config; + private readonly IOcrConfiguration config; - public SettingsForm(string[] languages, IOcrLanguage ocrLanguage, IOCRConfiguration config) : base(ocrLanguage) + public SettingsForm(string[] languages, IOcrLanguage ocrLanguage, IOcrConfiguration config) : base(ocrLanguage) { // // The InitializeComponent() call is required for Windows Forms designer support. diff --git a/src/Greenshot.Addon.OCR/packages.config b/src/Greenshot.Addon.OCR/packages.config deleted file mode 100644 index 2219eeae9..000000000 --- a/src/Greenshot.Addon.OCR/packages.config +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.Addon.OcrCommand/COMWrapper.cs b/src/Greenshot.Addon.OcrCommand/COMWrapper.cs index e94c6fdff..67f9c14db 100644 --- a/src/Greenshot.Addon.OcrCommand/COMWrapper.cs +++ b/src/Greenshot.Addon.OcrCommand/COMWrapper.cs @@ -515,7 +515,7 @@ namespace Greenshot.Addon.OcrCommand #region Clean up /// - /// If is not called, we need to make + /// If dispose() is not called, we need to make /// sure that the COM object is still cleaned up. /// ~COMWrapper() diff --git a/src/Greenshot.Addon.OcrCommand/Greenshot.Addon.OcrCommand.csproj b/src/Greenshot.Addon.OcrCommand/Greenshot.Addon.OcrCommand.csproj index 8f000b3ca..1eb22b4d6 100644 --- a/src/Greenshot.Addon.OcrCommand/Greenshot.Addon.OcrCommand.csproj +++ b/src/Greenshot.Addon.OcrCommand/Greenshot.Addon.OcrCommand.csproj @@ -1,43 +1,12 @@ - - - + + - Debug - AnyCPU - {7B8E9055-A054-4290-B537-075EBFDF8BDF} - WinExe + net471 Greenshot.Addon.OcrCommand GreenshotOCRCommand - v4.6.1 - 512 - true - - - x86 - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - latest - - - x86 - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - latest - - - - - + + @@ -51,32 +20,5 @@ - - - - - - - - - - - - - - - - - - - - - - - - - mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons" -copy "$(ProjectDir)bin\$(Configuration)\$(TargetFileName)" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -copy "$(ProjectDir)bin\$(Configuration)\$(TargetFileName).config" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" - - \ No newline at end of file + + diff --git a/src/Greenshot.Addon.OcrCommand/Properties/AssemblyInfo.cs b/src/Greenshot.Addon.OcrCommand/Properties/AssemblyInfo.cs deleted file mode 100644 index 5d6c1a08d..000000000 --- a/src/Greenshot.Addon.OcrCommand/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Greenshot.Addon.OcrCommand")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Greenshot")] -[assembly: AssemblyProduct("Greenshot.Addon.OcrCommand")] -[assembly: AssemblyCopyright("Copyright © Greenshot 2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("7b8e9055-a054-4290-b537-075ebfdf8bdf")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/Greenshot.Addon.Office/IOfficeConfiguration.cs b/src/Greenshot.Addon.Office/Configuration/IOfficeConfiguration.cs similarity index 90% rename from src/Greenshot.Addon.Office/IOfficeConfiguration.cs rename to src/Greenshot.Addon.Office/Configuration/IOfficeConfiguration.cs index 6cd1dc4a1..48391b1e5 100644 --- a/src/Greenshot.Addon.Office/IOfficeConfiguration.cs +++ b/src/Greenshot.Addon.Office/Configuration/IOfficeConfiguration.cs @@ -24,21 +24,21 @@ #region Usings using System.ComponentModel; -using Dapplo.Ini; -using Dapplo.InterfaceImpl.Extensions; +using Dapplo.Config.Ini; using Greenshot.Addon.Office.OfficeInterop; using Microsoft.Office.Interop.PowerPoint; #endregion -namespace Greenshot.Addon.Office +namespace Greenshot.Addon.Office.Configuration { /// /// Office configuration /// +#pragma warning disable CS1591 [IniSection("Office")] [Description("Greenshot Office configuration")] - public interface IOfficeConfiguration : IIniSection, ITransactionalProperties, INotifyPropertyChanged + public interface IOfficeConfiguration : IIniSection { [Description("Default type for emails. (Text, Html)")] [DefaultValue(EmailFormat.Html)] diff --git a/src/Greenshot.Addon.Office/IOfficeLanguage.cs b/src/Greenshot.Addon.Office/Configuration/IOfficeLanguage.cs similarity index 83% rename from src/Greenshot.Addon.Office/IOfficeLanguage.cs rename to src/Greenshot.Addon.Office/Configuration/IOfficeLanguage.cs index d9dcc257e..37b1cf872 100644 --- a/src/Greenshot.Addon.Office/IOfficeLanguage.cs +++ b/src/Greenshot.Addon.Office/Configuration/IOfficeLanguage.cs @@ -18,10 +18,14 @@ // along with this program. If not, see . using System.ComponentModel; -using Dapplo.Language; +using Dapplo.Config.Language; -namespace Greenshot.Addon.Office +namespace Greenshot.Addon.Office.Configuration { + /// + /// This implements IOfficeLanguage and takes care of storing, all setters are replaced via AutoProperties.Fody + /// +#pragma warning disable CS1591 [Language("Office")] public interface IOfficeLanguage : ILanguage, INotifyPropertyChanged { diff --git a/src/Greenshot.Addon.Office/Configuration/Impl/OfficeConfigurationImpl.cs b/src/Greenshot.Addon.Office/Configuration/Impl/OfficeConfigurationImpl.cs new file mode 100644 index 000000000..e8c1fd02b --- /dev/null +++ b/src/Greenshot.Addon.Office/Configuration/Impl/OfficeConfigurationImpl.cs @@ -0,0 +1,50 @@ +#region Greenshot GNU General License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General License for more details. +// +// You should have received a copy of the GNU General License +// along with this program. If not, see . + +#endregion + +using Dapplo.Config.Ini; +using Greenshot.Addon.Office.OfficeInterop; +using Microsoft.Office.Interop.PowerPoint; + +namespace Greenshot.Addon.Office.Configuration.Impl +{ + /// + /// This implements IOfficeConfiguration and takes care of storing, all setters are replaced via AutoProperties.Fody + /// +#pragma warning disable CS1591 + internal class OfficeConfigurationImpl : IniSectionBase, IOfficeConfiguration + { + #region Implementation of IOfficeConfiguration + + public EmailFormat OutlookEmailFormat { get; set; } + public string EmailSubjectPattern { get; set; } + public string EmailTo { get; set; } + public string EmailCC { get; set; } + public string EmailBCC { get; set; } + public bool OutlookAllowExportInMeetings { get; set; } + public bool WordLockAspectRatio { get; set; } + public bool PowerpointLockAspectRatio { get; set; } + public PpSlideLayout PowerpointSlideLayout { get; set; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.Office/Configuration/Impl/OfficeLanguageImpl.cs b/src/Greenshot.Addon.Office/Configuration/Impl/OfficeLanguageImpl.cs new file mode 100644 index 000000000..0039d2200 --- /dev/null +++ b/src/Greenshot.Addon.Office/Configuration/Impl/OfficeLanguageImpl.cs @@ -0,0 +1,52 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System.Diagnostics.CodeAnalysis; +using Dapplo.Config.Language; + +namespace Greenshot.Addon.Office.Configuration.Impl +{ + /// + /// This implements IOfficeLanguage and takes care of storing, all setters are replaced via AutoProperties.Fody + /// +#pragma warning disable CS1591 + [SuppressMessage("ReSharper", "UnassignedGetOnlyAutoProperty")] + public class OfficeLanguageImpl : LanguageBase, IOfficeLanguage + { + #region Implementation of IOfficeLanguage + + public string SettingsTitle { get; } + public string WordLockaspect { get; } + public string OutlookAllowmeetings { get; } + public string OutlookSubjectPattern { get; } + public string OutlookEmailFormat { get; } + public string OutlookEmailIncludeSignature { get; } + public string OutlookEmailTo { get; } + public string OutlookEmailCc { get; } + public string OutlookEmailBcc { get; } + public string PowerpointSlideLayout { get; } + public string PowerpointLockaspect { get; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.Office/Destinations/ExcelDestination.cs b/src/Greenshot.Addon.Office/Destinations/ExcelDestination.cs index 4ea0f7e83..cfc40cbab 100644 --- a/src/Greenshot.Addon.Office/Destinations/ExcelDestination.cs +++ b/src/Greenshot.Addon.Office/Destinations/ExcelDestination.cs @@ -50,6 +50,12 @@ namespace Greenshot.Addon.Office.Destinations private readonly string _exePath; private readonly string _workbookName; + /// + /// Constructor used to wire dependencies + /// + /// ICoreConfiguration + /// IGreenshotLanguage + /// ExportNotification public ExcelDestination( ICoreConfiguration coreConfiguration, IGreenshotLanguage greenshotLanguage, @@ -64,6 +70,13 @@ namespace Greenshot.Addon.Office.Destinations } } + /// + /// protected constructor to accept a workbook name too + /// + /// string + /// ICoreConfiguration + /// IGreenshotLanguage + /// ExportNotification protected ExcelDestination(string workbookName, ICoreConfiguration coreConfiguration, IGreenshotLanguage greenshotLanguage, @@ -73,17 +86,22 @@ namespace Greenshot.Addon.Office.Destinations _workbookName = workbookName; } + /// public override string Description => _workbookName ?? "Microsoft Excel"; + /// public override bool IsDynamic => true; + /// public override bool IsActive => base.IsActive && _exePath != null; + /// public override Bitmap GetDisplayIcon(double dpi) { return PluginUtils.GetCachedExeIcon(_exePath, !string.IsNullOrEmpty(_workbookName) ? IconWorkbook : IconApplication, dpi > 100); } + /// public override IEnumerable DynamicDestinations() { foreach (var workbookName in ExcelExporter.GetWorkbooks()) @@ -92,6 +110,7 @@ namespace Greenshot.Addon.Office.Destinations } } + /// protected override ExportInformation ExportCapture(bool manuallyInitiated, ISurface surface, ICaptureDetails captureDetails) { var exportInformation = new ExportInformation(Designation, Description); diff --git a/src/Greenshot.Addon.Office/Destinations/OneNoteDestination.cs b/src/Greenshot.Addon.Office/Destinations/OneNoteDestination.cs index b511fbed5..ca569839b 100644 --- a/src/Greenshot.Addon.Office/Destinations/OneNoteDestination.cs +++ b/src/Greenshot.Addon.Office/Destinations/OneNoteDestination.cs @@ -31,6 +31,7 @@ using System.Linq; using System.Runtime.InteropServices; using Dapplo.Log; using Greenshot.Addon.Office.OfficeExport; +using Greenshot.Addon.Office.OfficeExport.Entities; using Greenshot.Addons; using Greenshot.Addons.Components; using Greenshot.Addons.Core; @@ -40,6 +41,9 @@ using Greenshot.Addons.Interfaces; namespace Greenshot.Addon.Office.Destinations { + /// + /// This is the OneNote destination, taking care of exporting + /// [Destination("OneNote", DestinationOrder.OneNote)] public class OneNoteDestination : AbstractDestination { @@ -49,6 +53,12 @@ namespace Greenshot.Addon.Office.Destinations private readonly string _exePath; private readonly OneNotePage _page; + /// + /// Constructor used for dependency wiring + /// + /// ICoreConfiguration + /// IGreenshotLanguage + /// ExportNotification public OneNoteDestination( ICoreConfiguration coreConfiguration, IGreenshotLanguage greenshotLanguage, @@ -63,7 +73,14 @@ namespace Greenshot.Addon.Office.Destinations } } - protected OneNoteDestination(OneNotePage page, + /// + /// Constructor used for dependency wiring, and being able to specify a page + /// + /// OneNotePage + /// ICoreConfiguration + /// IGreenshotLanguage + /// ExportNotification + protected OneNoteDestination(OneNotePage page, ICoreConfiguration coreConfiguration, IGreenshotLanguage greenshotLanguage, ExportNotification exportNotification @@ -72,6 +89,7 @@ namespace Greenshot.Addon.Office.Destinations _page = page; } + /// public override string Description { get @@ -84,15 +102,19 @@ namespace Greenshot.Addon.Office.Destinations } } + /// public override bool IsDynamic => true; + /// public override bool IsActive => base.IsActive && _exePath != null; + /// public override Bitmap GetDisplayIcon(double dpi) { return PluginUtils.GetCachedExeIcon(_exePath, IconApplication, dpi > 100); } + /// public override IEnumerable DynamicDestinations() { try @@ -114,6 +136,7 @@ namespace Greenshot.Addon.Office.Destinations return Enumerable.Empty(); } + /// protected override ExportInformation ExportCapture(bool manuallyInitiated, ISurface surface, ICaptureDetails captureDetails) { var exportInformation = new ExportInformation(Designation, Description); diff --git a/src/Greenshot.Addon.Office/Destinations/OutlookDestination.cs b/src/Greenshot.Addon.Office/Destinations/OutlookDestination.cs index 25428d7d1..2feb71e9d 100644 --- a/src/Greenshot.Addon.Office/Destinations/OutlookDestination.cs +++ b/src/Greenshot.Addon.Office/Destinations/OutlookDestination.cs @@ -29,12 +29,14 @@ using System.IO; using System.Text.RegularExpressions; using System.Windows.Forms; using Dapplo.Log; +using Greenshot.Addon.Office.Configuration; using Greenshot.Addon.Office.OfficeExport; using Greenshot.Addons; using Greenshot.Addons.Components; using Greenshot.Addons.Core; using Greenshot.Addons.Interfaces; using Greenshot.Addons.Interfaces.Plugin; +using Greenshot.Addons.Resources; using Microsoft.Office.Interop.Outlook; #endregion @@ -54,13 +56,21 @@ namespace Greenshot.Addon.Office.Destinations private readonly IOfficeConfiguration _officeConfiguration; private readonly ExportNotification _exportNotification; - private static readonly Bitmap MailIcon = GreenshotResources.GetBitmap("Email.Image"); + private static readonly Bitmap MailIcon = GreenshotResources.Instance.GetBitmap("Email.Image"); private readonly string _exePath; private readonly bool _isActiveFlag; private readonly string _outlookInspectorCaption; private readonly OlObjectClass _outlookInspectorType; + private readonly OutlookExporter _outlookExporter; - public OutlookDestination( + /// + /// Constructor used for dependency injection + /// + /// IOfficeConfiguration + /// ICoreConfiguration + /// IGreenshotLanguage + /// ExportNotification + public OutlookDestination( IOfficeConfiguration officeConfiguration, ICoreConfiguration coreConfiguration, IGreenshotLanguage greenshotLanguage, @@ -68,6 +78,7 @@ namespace Greenshot.Addon.Office.Destinations ) : base(coreConfiguration, greenshotLanguage) { _officeConfiguration = officeConfiguration; + _outlookExporter = new OutlookExporter(officeConfiguration); _exportNotification = exportNotification; if (EmailConfigHelper.HasOutlook()) { @@ -84,7 +95,16 @@ namespace Greenshot.Addon.Office.Destinations } } - protected OutlookDestination( + /// + /// Constructor used for dependency injection + /// + /// OlObjectClass + /// OlObjectClass + /// IOfficeConfiguration + /// ICoreConfiguration + /// IGreenshotLanguage + /// ExportNotification + protected OutlookDestination( string outlookInspectorCaption, OlObjectClass outlookInspectorType, IOfficeConfiguration officeConfiguration, @@ -97,14 +117,19 @@ namespace Greenshot.Addon.Office.Destinations _outlookInspectorType = outlookInspectorType; } + /// public override string Description => _outlookInspectorCaption ?? MapiClient; + /// public override bool IsActive => base.IsActive && _isActiveFlag; + /// public override bool IsDynamic => true; + /// public override Keys EditorShortcutKeys => Keys.Control | Keys.E; + /// public override Bitmap GetDisplayIcon(double dpi) { if (_outlookInspectorCaption == null) @@ -119,9 +144,10 @@ namespace Greenshot.Addon.Office.Destinations return MailIcon; } + /// public override IEnumerable DynamicDestinations() { - var inspectorCaptions = OutlookExporter.RetrievePossibleTargets(); + var inspectorCaptions = _outlookExporter.RetrievePossibleTargets(); if (inspectorCaptions == null) { yield break; @@ -169,14 +195,14 @@ namespace Greenshot.Addon.Office.Destinations if (_outlookInspectorCaption != null) { - OutlookExporter.ExportToInspector(_outlookInspectorCaption, tmpFile, attachmentName); + _outlookExporter.ExportToInspector(_outlookInspectorCaption, tmpFile, attachmentName); exportInformation.ExportMade = true; } else { if (!manuallyInitiated) { - var inspectorCaptions = OutlookExporter.RetrievePossibleTargets(); + var inspectorCaptions = _outlookExporter.RetrievePossibleTargets(); if (inspectorCaptions != null && inspectorCaptions.Count > 0) { var destinations = new List @@ -193,7 +219,7 @@ namespace Greenshot.Addon.Office.Destinations } else { - exportInformation.ExportMade = OutlookExporter.ExportToOutlook(_officeConfiguration.OutlookEmailFormat, tmpFile, + exportInformation.ExportMade = _outlookExporter.ExportToOutlook(_officeConfiguration.OutlookEmailFormat, tmpFile, FilenameHelper.FillPattern(_officeConfiguration.EmailSubjectPattern, captureDetails, false), attachmentName, _officeConfiguration.EmailTo, _officeConfiguration.EmailCC, _officeConfiguration.EmailBCC, null); } diff --git a/src/Greenshot.Addon.Office/Destinations/PowerpointDestination.cs b/src/Greenshot.Addon.Office/Destinations/PowerpointDestination.cs index 03d1635a8..a9675415e 100644 --- a/src/Greenshot.Addon.Office/Destinations/PowerpointDestination.cs +++ b/src/Greenshot.Addon.Office/Destinations/PowerpointDestination.cs @@ -28,6 +28,7 @@ using System.Drawing; using System.IO; using System.Linq; using System.Text.RegularExpressions; +using Greenshot.Addon.Office.Configuration; using Greenshot.Addon.Office.OfficeExport; using Greenshot.Addons; using Greenshot.Addons.Components; @@ -45,21 +46,33 @@ namespace Greenshot.Addon.Office.Destinations [Destination("Powerpoint", DestinationOrder.Powerpoint)] public class PowerpointDestination : AbstractDestination { + private readonly IOfficeConfiguration _officeConfiguration; private readonly ExportNotification _exportNotification; - private const int IconApplication = 0; - private const int IconPresentation = 1; private readonly string _exePath; private readonly string _presentationName; + private readonly PowerpointExporter _powerpointExporter; + private const int IconApplication = 0; + private const int IconPresentation = 1; - public PowerpointDestination( + /// + /// Constructor used for dependency injection + /// + /// ICoreConfiguration + /// IGreenshotLanguage + /// IOfficeConfiguration + /// ExportNotification + public PowerpointDestination( ICoreConfiguration coreConfiguration, IGreenshotLanguage greenshotLanguage, + IOfficeConfiguration officeConfiguration, ExportNotification exportNotification ) : base(coreConfiguration, greenshotLanguage) { + _officeConfiguration = officeConfiguration; _exportNotification = exportNotification; + _powerpointExporter = new PowerpointExporter(officeConfiguration); _exePath = PluginUtils.GetExePath("POWERPNT.EXE"); if (_exePath != null && !File.Exists(_exePath)) { @@ -67,14 +80,24 @@ namespace Greenshot.Addon.Office.Destinations } } - public PowerpointDestination(string presentationName, + /// + /// Constructor used for dependency injection + /// + /// string with the name of the presentation + /// ICoreConfiguration + /// IGreenshotLanguage + /// IOfficeConfiguration + /// ExportNotification + public PowerpointDestination(string presentationName, ICoreConfiguration coreConfiguration, IGreenshotLanguage greenshotLanguage, - ExportNotification exportNotification) : this(coreConfiguration, greenshotLanguage, exportNotification) + IOfficeConfiguration officeConfiguration, + ExportNotification exportNotification) : this(coreConfiguration, greenshotLanguage, officeConfiguration, exportNotification) { _presentationName = presentationName; } + /// public override string Description { get @@ -87,10 +110,13 @@ namespace Greenshot.Addon.Office.Destinations } } + /// public override bool IsDynamic => true; + /// public override bool IsActive => base.IsActive && _exePath != null; + /// public override Bitmap GetDisplayIcon(double dpi) { if (!string.IsNullOrEmpty(_presentationName)) @@ -101,11 +127,13 @@ namespace Greenshot.Addon.Office.Destinations return PluginUtils.GetCachedExeIcon(_exePath, IconApplication, dpi > 100); } + /// public override IEnumerable DynamicDestinations() { - return PowerpointExporter.GetPowerpointPresentations().Select(presentationName => new PowerpointDestination(presentationName, CoreConfiguration, GreenshotLanguage, _exportNotification)); + return _powerpointExporter.GetPowerpointPresentations().Select(presentationName => new PowerpointDestination(presentationName, CoreConfiguration, GreenshotLanguage, _officeConfiguration, _exportNotification)); } + /// protected override ExportInformation ExportCapture(bool manuallyInitiated, ISurface surface, ICaptureDetails captureDetails) { var exportInformation = new ExportInformation(Designation, Description); @@ -118,22 +146,22 @@ namespace Greenshot.Addon.Office.Destinations } if (_presentationName != null) { - exportInformation.ExportMade = PowerpointExporter.ExportToPresentation(_presentationName, tmpFile, imageSize, captureDetails.Title); + exportInformation.ExportMade = _powerpointExporter.ExportToPresentation(_presentationName, tmpFile, imageSize, captureDetails.Title); } else { if (!manuallyInitiated) { - var presentations = PowerpointExporter.GetPowerpointPresentations().ToList(); + var presentations = _powerpointExporter.GetPowerpointPresentations().ToList(); if (presentations.Count > 0) { var destinations = new List { - new PowerpointDestination(CoreConfiguration, GreenshotLanguage, _exportNotification) + new PowerpointDestination(CoreConfiguration, GreenshotLanguage, _officeConfiguration, _exportNotification) }; foreach (var presentation in presentations) { - destinations.Add(new PowerpointDestination(presentation, CoreConfiguration, GreenshotLanguage, _exportNotification)); + destinations.Add(new PowerpointDestination(presentation, CoreConfiguration, GreenshotLanguage, _officeConfiguration, _exportNotification)); } // Return the ExportInformation from the picker without processing, as this indirectly comes from us self return ShowPickerMenu(false, surface, captureDetails, destinations); @@ -141,7 +169,7 @@ namespace Greenshot.Addon.Office.Destinations } else if (!exportInformation.ExportMade) { - exportInformation.ExportMade = PowerpointExporter.InsertIntoNewPresentation(tmpFile, imageSize, captureDetails.Title); + exportInformation.ExportMade = _powerpointExporter.InsertIntoNewPresentation(tmpFile, imageSize, captureDetails.Title); } } _exportNotification.NotifyOfExport(this, exportInformation, surface); diff --git a/src/Greenshot.Addon.Office/Destinations/WordDestination.cs b/src/Greenshot.Addon.Office/Destinations/WordDestination.cs index b74ed4c71..4ad6f5255 100644 --- a/src/Greenshot.Addon.Office/Destinations/WordDestination.cs +++ b/src/Greenshot.Addon.Office/Destinations/WordDestination.cs @@ -30,6 +30,7 @@ using System.IO; using System.Linq; using System.Text.RegularExpressions; using Dapplo.Log; +using Greenshot.Addon.Office.Configuration; using Greenshot.Addon.Office.OfficeExport; using Greenshot.Addons; using Greenshot.Addons.Components; @@ -47,20 +48,32 @@ namespace Greenshot.Addon.Office.Destinations [Destination("Word", DestinationOrder.Word)] public class WordDestination : AbstractDestination { + private readonly IOfficeConfiguration _officeConfiguration; private readonly ExportNotification _exportNotification; private const int IconApplication = 0; private const int IconDocument = 1; private static readonly LogSource Log = new LogSource(); private readonly string _exePath; private readonly string _documentCaption; + private readonly WordExporter _wordExporter; - public WordDestination( + /// + /// Constructor used for dependency injection + /// + /// ICoreConfiguration + /// IGreenshotLanguage + /// IOfficeConfiguration + /// ExportNotification + public WordDestination( ICoreConfiguration coreConfiguration, IGreenshotLanguage greenshotLanguage, + IOfficeConfiguration officeConfiguration, ExportNotification exportNotification ) : base(coreConfiguration, greenshotLanguage) { + _officeConfiguration = officeConfiguration; _exportNotification = exportNotification; + _wordExporter = new WordExporter(officeConfiguration); _exePath = PluginUtils.GetExePath("WINWORD.EXE"); if (_exePath != null && !File.Exists(_exePath)) { @@ -68,30 +81,45 @@ namespace Greenshot.Addon.Office.Destinations } } - protected WordDestination(string wordCaption, + /// + /// Constructor used for dependency injection + /// + /// string with the caption of the word document + /// ICoreConfiguration + /// IGreenshotLanguage + /// IOfficeConfiguration + /// ExportNotification + protected WordDestination(string wordCaption, ICoreConfiguration coreConfiguration, IGreenshotLanguage greenshotLanguage, - ExportNotification exportNotification) : this(coreConfiguration, greenshotLanguage, exportNotification) + IOfficeConfiguration officeConfiguration, + ExportNotification exportNotification) : this(coreConfiguration, greenshotLanguage, officeConfiguration, exportNotification) { _documentCaption = wordCaption; } - public override string Description => _documentCaption ?? "Microsoft Word"; + /// + public override string Description => _documentCaption ?? "Microsoft Word"; + /// public override bool IsDynamic => true; + /// public override bool IsActive => base.IsActive && _exePath != null; + /// public override Bitmap GetDisplayIcon(double dpi) { return PluginUtils.GetCachedExeIcon(_exePath, !string.IsNullOrEmpty(_documentCaption) ? IconDocument : IconApplication, dpi > 100); - } - - public override IEnumerable DynamicDestinations() - { - return WordExporter.GetWordDocuments().Select(wordCaption => new WordDestination(wordCaption, CoreConfiguration, GreenshotLanguage, _exportNotification)); } + /// + public override IEnumerable DynamicDestinations() + { + return _wordExporter.GetWordDocuments().Select(wordCaption => new WordDestination(wordCaption, CoreConfiguration, GreenshotLanguage, _officeConfiguration, _exportNotification)); + } + + /// protected override ExportInformation ExportCapture(bool manuallyInitiated, ISurface surface, ICaptureDetails captureDetails) { var exportInformation = new ExportInformation(Designation, Description); @@ -104,14 +132,14 @@ namespace Greenshot.Addon.Office.Destinations { try { - WordExporter.InsertIntoExistingDocument(_documentCaption, tmpFile); + _wordExporter.InsertIntoExistingDocument(_documentCaption, tmpFile); exportInformation.ExportMade = true; } catch (Exception) { try { - WordExporter.InsertIntoExistingDocument(_documentCaption, tmpFile); + _wordExporter.InsertIntoExistingDocument(_documentCaption, tmpFile); exportInformation.ExportMade = true; } catch (Exception ex) @@ -126,16 +154,16 @@ namespace Greenshot.Addon.Office.Destinations { if (!manuallyInitiated) { - var documents = WordExporter.GetWordDocuments().ToList(); + var documents = _wordExporter.GetWordDocuments().ToList(); if (documents.Count > 0) { var destinations = new List { - new WordDestination(CoreConfiguration, GreenshotLanguage, _exportNotification) + new WordDestination(CoreConfiguration, GreenshotLanguage, _officeConfiguration, _exportNotification) }; foreach (var document in documents) { - destinations.Add(new WordDestination(document, CoreConfiguration, GreenshotLanguage, _exportNotification)); + destinations.Add(new WordDestination(document, CoreConfiguration, GreenshotLanguage, _officeConfiguration, _exportNotification)); } // Return the ExportInformation from the picker without processing, as this indirectly comes from us self return ShowPickerMenu(false, surface, captureDetails, destinations); @@ -143,7 +171,7 @@ namespace Greenshot.Addon.Office.Destinations } try { - WordExporter.InsertIntoNewDocument(tmpFile, null, null); + _wordExporter.InsertIntoNewDocument(tmpFile, null, null); exportInformation.ExportMade = true; } catch (Exception) @@ -151,7 +179,7 @@ namespace Greenshot.Addon.Office.Destinations // Retry once, just in case try { - WordExporter.InsertIntoNewDocument(tmpFile, null, null); + _wordExporter.InsertIntoNewDocument(tmpFile, null, null); exportInformation.ExportMade = true; } catch (Exception ex) diff --git a/src/Greenshot.Addon.Office/FodyWeavers.xml b/src/Greenshot.Addon.Office/FodyWeavers.xml new file mode 100644 index 000000000..7f5a26669 --- /dev/null +++ b/src/Greenshot.Addon.Office/FodyWeavers.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.Office/FodyWeavers.xsd b/src/Greenshot.Addon.Office/FodyWeavers.xsd new file mode 100644 index 000000000..061979a03 --- /dev/null +++ b/src/Greenshot.Addon.Office/FodyWeavers.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + 'true' to run assembly verification on the target assembly after all weavers have been finished. + + + + + A comma separated list of error codes that can be safely ignored in assembly verification. + + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.Office/Greenshot.Addon.Office.csproj b/src/Greenshot.Addon.Office/Greenshot.Addon.Office.csproj index 54467a948..c40f064cf 100644 --- a/src/Greenshot.Addon.Office/Greenshot.Addon.Office.csproj +++ b/src/Greenshot.Addon.Office/Greenshot.Addon.Office.csproj @@ -1,219 +1,62 @@ - - - + + - {92599C09-FF29-4ABD-B6E6-C48ECD781BAB} - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Debug - x86 - Library Greenshot.Addon.Office Greenshot.Addon.Office - v4.6.1 - Properties - OnBuildSuccess - False - False - 4 - false - - - + net471;netcoreapp3.0 + - - ..\packages\Autofac.4.8.1\lib\net45\Autofac.dll - - - ..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll - - - ..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll - - - ..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll - - - ..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll - - - ..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll - - - ..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll - - - ..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll - - - ..\packages\Dapplo.CaliburnMicro.Configuration.1.0.75\lib\net461\Dapplo.CaliburnMicro.Configuration.dll - - - ..\packages\Dapplo.CaliburnMicro.Dapp.1.0.75\lib\net461\Dapplo.CaliburnMicro.Dapp.dll - - - ..\packages\Dapplo.CaliburnMicro.Menu.1.0.75\lib\net461\Dapplo.CaliburnMicro.Menu.dll - - - ..\packages\Dapplo.CaliburnMicro.Security.1.0.75\lib\net461\Dapplo.CaliburnMicro.Security.dll - - - ..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll - - - ..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll - - - ..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll - - - ..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll - - - ..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll - - - ..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll - - - ..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll - - - ..\packages\Dapplo.Windows.Clipboard.0.5.109\lib\net461\Dapplo.Windows.Clipboard.dll - - - ..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll - - - ..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll - - - ..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll - - - ..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll - - - ..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll - - - ..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll - - - ..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll - - - ..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll - - - ..\packages\Interop.Microsoft.Office.Interop.OneNote.1.1.0.0\lib\net40\Interop.Microsoft.Office.Interop.OneNote.dll - True - - + + PreserveNewest + + + + + + + + + True - - ..\packages\Microsoft.Office.Interop.Excel.15.0.4795.1000\lib\net20\Microsoft.Office.Interop.Excel.dll - True - - - ..\packages\Microsoft.Office.Interop.Outlook.15.0.4797.1003\lib\net20\Microsoft.Office.Interop.Outlook.dll - True - - - ..\packages\Microsoft.Office.Interop.PowerPoint.15.0.4420.1017\lib\net20\Microsoft.Office.Interop.PowerPoint.dll - True - - - ..\packages\Microsoft.Office.Interop.Word.15.0.4797.1003\lib\net20\Microsoft.Office.Interop.Word.dll - True - - - ..\packages\MicrosoftOfficeCore.15.0.0\lib\net35\Office.dll - True - - - ..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\System.Windows.Interactivity.dll - + - - - - - - - - - - - - - - - - - + + + + - - {5B924697-4DCD-4F98-85F1-105CB84B7341} - Greenshot.Addons - - - {bf35190d-b2a7-4cfa-b397-51cb384cf0d7} - Greenshot.Core - + + + + + + + + + + + + all + runtime; build; native; contentfiles; analyzers + - - - - - - - MSBuild:Compile - Designer - - - - - mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).dll" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" -copy "$(ProjectDir)\Languages\*.xml" "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" - - \ No newline at end of file + diff --git a/src/Greenshot.Addon.Office/OfficeAddonModule.cs b/src/Greenshot.Addon.Office/OfficeAddonModule.cs index b54f44be0..da83d0a9f 100644 --- a/src/Greenshot.Addon.Office/OfficeAddonModule.cs +++ b/src/Greenshot.Addon.Office/OfficeAddonModule.cs @@ -24,8 +24,10 @@ using Autofac; using Dapplo.Addons; using Dapplo.CaliburnMicro.Configuration; -using Dapplo.Ini; -using Dapplo.Language; +using Dapplo.Config.Ini; +using Dapplo.Config.Language; +using Greenshot.Addon.Office.Configuration; +using Greenshot.Addon.Office.Configuration.Impl; using Greenshot.Addon.Office.Destinations; using Greenshot.Addon.Office.ViewModels; using Greenshot.Addons.Components; @@ -36,6 +38,10 @@ namespace Greenshot.Addon.Office /// public class OfficeAddonModule : AddonModule { + /// + /// Define the dependencies of this project + /// + /// ContainerBuilder protected override void Load(ContainerBuilder builder) { var hasDestination = false; @@ -88,14 +94,16 @@ namespace Greenshot.Addon.Office if (hasDestination) { builder - .Register(context => IniConfig.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder - .Register(context => LanguageLoader.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder diff --git a/src/Greenshot.Addon.Office/OfficeExport/Entities/OneNoteNotebook.cs b/src/Greenshot.Addon.Office/OfficeExport/Entities/OneNoteNotebook.cs new file mode 100644 index 000000000..13c450d0b --- /dev/null +++ b/src/Greenshot.Addon.Office/OfficeExport/Entities/OneNoteNotebook.cs @@ -0,0 +1,46 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +#region Usings + + +#endregion + +namespace Greenshot.Addon.Office.OfficeExport.Entities +{ + /// + /// Container for transporting notebook information + /// + public class OneNoteNotebook + { + /// + /// ID of the notebook + /// + public string Id { get; set; } + + /// + /// Name of the notebook + /// + public string Name { get; set; } + } +} \ No newline at end of file diff --git a/src/Greenshot.Addon.Jira/Properties/AssemblyInfo.cs b/src/Greenshot.Addon.Office/OfficeExport/Entities/OneNotePage.cs similarity index 51% rename from src/Greenshot.Addon.Jira/Properties/AssemblyInfo.cs rename to src/Greenshot.Addon.Office/OfficeExport/Entities/OneNotePage.cs index 71bb42f97..794835774 100644 --- a/src/Greenshot.Addon.Jira/Properties/AssemblyInfo.cs +++ b/src/Greenshot.Addon.Office/OfficeExport/Entities/OneNotePage.cs @@ -1,53 +1,62 @@ -#region Greenshot GNU General Public License - -// Greenshot - a free and open source screenshot tool -// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom -// -// For more information see: http://getgreenshot.org/ -// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 1 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -#endregion - -#region Usings - -using System.Reflection; -using System.Runtime.InteropServices; - -#endregion - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("Greenshot.Addon.Jira")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Greenshot")] -[assembly: AssemblyProduct("Jira Plugin")] -[assembly: AssemblyCopyright("Copyright (C) 2007-2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// This sets the default COM visibility of types in the assembly to invisible. -// If you need to expose a type to COM, use [ComVisible(true)] on that type. - -[assembly: ComVisible(false)] - -// The assembly version, replaced by build scripts - -[assembly: AssemblyVersion("1.3.0.0")] -[assembly: AssemblyInformationalVersion("1.3.0.0")] -[assembly: AssemblyFileVersion("1.3.0.0")] \ No newline at end of file +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +#region Usings + + +#endregion + +namespace Greenshot.Addon.Office.OfficeExport.Entities +{ + /// + /// Container for transporting Page information + /// + public class OneNotePage + { + /// + public string DisplayName + { + get + { + var notebook = Parent.Parent; + if (string.IsNullOrEmpty(notebook.Name)) + { + return string.Format("{0} / {1}", Parent.Name, Name); + } + return string.Format("{0} / {1} / {2}", Parent.Parent.Name, Parent.Name, Name); + } + } + + /// + public string Id { get; set; } + + /// + public bool IsCurrentlyViewed { get; set; } + + /// + public string Name { get; set; } + + /// + public OneNoteSection Parent { get; set; } + } +} \ No newline at end of file diff --git a/src/Greenshot/Properties/AssemblyInfo.cs b/src/Greenshot.Addon.Office/OfficeExport/Entities/OneNoteSection.cs similarity index 52% rename from src/Greenshot/Properties/AssemblyInfo.cs rename to src/Greenshot.Addon.Office/OfficeExport/Entities/OneNoteSection.cs index da93269bd..3c64cef73 100644 --- a/src/Greenshot/Properties/AssemblyInfo.cs +++ b/src/Greenshot.Addon.Office/OfficeExport/Entities/OneNoteSection.cs @@ -1,53 +1,51 @@ -#region Greenshot GNU General Public License - -// Greenshot - a free and open source screenshot tool -// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom -// -// For more information see: http://getgreenshot.org/ -// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 1 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -#endregion - -#region Usings - -using System.Reflection; -using System.Runtime.InteropServices; - -#endregion - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("Greenshot")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Greenshot")] -[assembly: AssemblyProduct("Greenshot")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// This sets the default COM visibility of types in the assembly to invisible. -// If you need to expose a type to COM, use [ComVisible(true)] on that type. - -[assembly: ComVisible(false)] - -// The assembly version, replaced by build scripts - -[assembly: AssemblyVersion("1.3.0.0")] -[assembly: AssemblyInformationalVersion("1.3.0.0")] -[assembly: AssemblyFileVersion("1.3.0.0")] \ No newline at end of file +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +#region Usings + + +#endregion + +namespace Greenshot.Addon.Office.OfficeExport.Entities +{ + /// + /// Container for transporting section information + /// + public class OneNoteSection + { + /// + /// ID of the section + /// + public string Id { get; set; } + + /// + /// Name of the section + /// + public string Name { get; set; } + + /// + /// Parent notebook + /// + public OneNoteNotebook Parent { get; set; } + } +} \ No newline at end of file diff --git a/src/Greenshot.Addon.Office/OfficeExport/ExcelExporter.cs b/src/Greenshot.Addon.Office/OfficeExport/ExcelExporter.cs index 0e6f439d4..9d976e5ee 100644 --- a/src/Greenshot.Addon.Office/OfficeExport/ExcelExporter.cs +++ b/src/Greenshot.Addon.Office/OfficeExport/ExcelExporter.cs @@ -28,8 +28,8 @@ using System.Collections.Generic; using System.Drawing; using System.Runtime.InteropServices; using Dapplo.Log; +using Dapplo.Windows.Com; using Dapplo.Windows.Desktop; -using Dapplo.Windows.Interop; using Greenshot.Addon.Office.OfficeInterop; using Microsoft.Office.Core; using Microsoft.Office.Interop.Excel; @@ -56,14 +56,14 @@ namespace Greenshot.Addon.Office.OfficeExport IDisposableCom excelApplication; try { - excelApplication = DisposableCom.Create((Application)Marshal.GetActiveObject("Excel.Application")); + excelApplication = OleAut32Api.GetActiveObject("Excel.Application"); } catch { // Ignore, probably no excel running return null; } - if ((excelApplication != null) && (excelApplication.ComObject != null)) + if (excelApplication?.ComObject != null) { InitializeVariables(excelApplication); } @@ -76,7 +76,7 @@ namespace Greenshot.Addon.Office.OfficeExport /// ComDisposable for Excel.Application private static IDisposableCom GetOrCreateExcelApplication() { - IDisposableCom excelApplication = GetExcelApplication(); + var excelApplication = GetExcelApplication(); if (excelApplication == null) { excelApplication = DisposableCom.Create(new Application()); diff --git a/src/Greenshot.Addon.Office/OfficeExport/OneNoteExporter.cs b/src/Greenshot.Addon.Office/OfficeExport/OneNoteExporter.cs index 645246ff0..6a3333f55 100644 --- a/src/Greenshot.Addon.Office/OfficeExport/OneNoteExporter.cs +++ b/src/Greenshot.Addon.Office/OfficeExport/OneNoteExporter.cs @@ -29,7 +29,8 @@ using System.IO; using System.Runtime.InteropServices; using System.Xml; using Dapplo.Log; -using Dapplo.Windows.Interop; +using Dapplo.Windows.Com; +using Greenshot.Addon.Office.OfficeExport.Entities; using Greenshot.Addons.Core; using Greenshot.Addons.Interfaces; using Greenshot.Addons.Interfaces.Plugin; @@ -134,7 +135,7 @@ namespace Greenshot.Addon.Office.OfficeExport IDisposableCom oneNoteApplication; try { - oneNoteApplication = DisposableCom.Create((Application)Marshal.GetActiveObject("OneNote.Application")); + oneNoteApplication = OleAut32Api.GetActiveObject("OneNote.Application"); } catch { @@ -323,53 +324,4 @@ namespace Greenshot.Addon.Office.OfficeExport return null; } } - - /// - /// Container for transporting Page information - /// - public class OneNotePage - { - public string DisplayName - { - get - { - OneNoteNotebook notebook = Parent.Parent; - if (string.IsNullOrEmpty(notebook.Name)) - { - return string.Format("{0} / {1}", Parent.Name, Name); - } - return string.Format("{0} / {1} / {2}", Parent.Parent.Name, Parent.Name, Name); - } - } - - public string Id { get; set; } - - public bool IsCurrentlyViewed { get; set; } - - public string Name { get; set; } - - public OneNoteSection Parent { get; set; } - } - - /// - /// Container for transporting section information - /// - public class OneNoteSection - { - public string Id { get; set; } - - public string Name { get; set; } - - public OneNoteNotebook Parent { get; set; } - } - - /// - /// Container for transporting notebook information - /// - public class OneNoteNotebook - { - public string Id { get; set; } - - public string Name { get; set; } - } } \ No newline at end of file diff --git a/src/Greenshot.Addon.Office/OfficeExport/OutlookEmailExporter.cs b/src/Greenshot.Addon.Office/OfficeExport/OutlookEmailExporter.cs index 231fdf797..ac721e577 100644 --- a/src/Greenshot.Addon.Office/OfficeExport/OutlookEmailExporter.cs +++ b/src/Greenshot.Addon.Office/OfficeExport/OutlookEmailExporter.cs @@ -26,11 +26,10 @@ using System; using System.Collections.Generic; using System.IO; -using System.Runtime.InteropServices; using System.Text; -using Dapplo.Ini; using Dapplo.Log; -using Dapplo.Windows.Interop; +using Dapplo.Windows.Com; +using Greenshot.Addon.Office.Configuration; using Greenshot.Addon.Office.OfficeInterop; using mshtml; using Microsoft.Office.Interop.Outlook; @@ -49,6 +48,8 @@ namespace Greenshot.Addon.Office.OfficeExport /// public class OutlookExporter { + private readonly IOfficeConfiguration _officeConfiguration; + // The signature key can be found at: // HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\\9375CFF0413111d3B88A00104B2A6676\ [New Signature] private const string ProfilesKey = @"Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\"; @@ -58,10 +59,20 @@ namespace Greenshot.Addon.Office.OfficeExport // Schema definitions for the MAPI properties, see: http://msdn.microsoft.com/en-us/library/aa454438.aspx and: http://msdn.microsoft.com/en-us/library/bb446117.aspx private const string AttachmentContentId = @"http://schemas.microsoft.com/mapi/proptag/0x3712001E"; private static readonly LogSource Log = new LogSource(); - private static readonly IOfficeConfiguration Conf = IniConfig.Current.Get(); private static readonly string SignaturePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), @"Microsoft\Signatures"); private static Version _outlookVersion; private static string _currentUser; + private readonly WordExporter _wordExporter; + + /// + /// Constructor used for dependency injection + /// + /// + public OutlookExporter(IOfficeConfiguration officeConfiguration) + { + _officeConfiguration = officeConfiguration; + _wordExporter = new WordExporter(officeConfiguration); + } /// /// Export the image stored in tmpFile to the Inspector with the caption @@ -70,7 +81,7 @@ namespace Greenshot.Addon.Office.OfficeExport /// Path to image file /// name of the attachment (used as the tooltip of the image) /// true if it worked - public static bool ExportToInspector(string inspectorCaption, string tmpFile, string attachmentName) + public bool ExportToInspector(string inspectorCaption, string tmpFile, string attachmentName) { using (var outlookApplication = GetOrCreateOutlookApplication()) { @@ -100,7 +111,7 @@ namespace Greenshot.Addon.Office.OfficeExport } break; case AppointmentItem appointmentItem: - if ((_outlookVersion.Major >= (int)OfficeVersions.Office2010) && Conf.OutlookAllowExportInMeetings) + if ((_outlookVersion.Major >= (int)OfficeVersions.Office2010) && _officeConfiguration.OutlookAllowExportInMeetings) { if (!string.IsNullOrEmpty(appointmentItem.Organizer) && appointmentItem.Organizer.Equals(_currentUser)) { @@ -151,7 +162,7 @@ namespace Greenshot.Addon.Office.OfficeExport } break; case AppointmentItem appointmentItem: - if ((_outlookVersion.Major >= (int)OfficeVersions.Office2010) && Conf.OutlookAllowExportInMeetings) + if ((_outlookVersion.Major >= (int)OfficeVersions.Office2010) && _officeConfiguration.OutlookAllowExportInMeetings) { if (!string.IsNullOrEmpty(appointmentItem.Organizer) && !appointmentItem.Organizer.Equals(_currentUser)) { @@ -194,7 +205,7 @@ namespace Greenshot.Addon.Office.OfficeExport /// /// /// - private static bool ExportToInspector(IDisposableCom<_Inspector> inspector, IDisposableCom<_Explorer> explorer, OlObjectClass itemClass, MailItem mailItem, string tmpFile, string attachmentName) + private bool ExportToInspector(IDisposableCom<_Inspector> inspector, IDisposableCom<_Explorer> explorer, OlObjectClass itemClass, MailItem mailItem, string tmpFile, string attachmentName) { bool isMail = OlObjectClass.olMail.Equals(itemClass); bool isAppointment = OlObjectClass.olAppointment.Equals(itemClass); @@ -240,7 +251,7 @@ namespace Greenshot.Addon.Office.OfficeExport { try { - if (WordExporter.InsertIntoExistingDocument(application, wordDocument, tmpFile, null, null)) + if (_wordExporter.InsertIntoExistingDocument(application, wordDocument, tmpFile, null, null)) { Log.Info().WriteLine("Inserted into Wordmail"); return true; @@ -396,7 +407,7 @@ namespace Greenshot.Addon.Office.OfficeExport /// /// /// - private static void ExportToNewEmail(IDisposableCom outlookApplication, EmailFormat format, string tmpFile, string subject, string attachmentName, string to, string cc, string bcc, string url) + private void ExportToNewEmail(IDisposableCom outlookApplication, EmailFormat format, string tmpFile, string subject, string attachmentName, string to, string cc, string bcc, string url) { using (var newItem = DisposableCom.Create((MailItem)outlookApplication.ComObject.CreateItem(OlItemType.olMailItem))) { @@ -543,7 +554,7 @@ namespace Greenshot.Addon.Office.OfficeExport /// /// /// true if it worked, false if not - public static bool ExportToOutlook(EmailFormat format, string tmpFile, string subject, string attachmentName, string to, string cc, string bcc, string url) + public bool ExportToOutlook(EmailFormat format, string tmpFile, string subject, string attachmentName, string to, string cc, string bcc, string url) { bool exported = false; try @@ -569,9 +580,9 @@ namespace Greenshot.Addon.Office.OfficeExport /// Call this to get the running Outlook application, or create a new instance /// /// IDisposableCom for Outlook.Application - private static IDisposableCom GetOrCreateOutlookApplication() + private IDisposableCom GetOrCreateOutlookApplication() { - IDisposableCom outlookApplication = GetOutlookApplication(); + var outlookApplication = GetOutlookApplication(); if (outlookApplication == null) { outlookApplication = DisposableCom.Create(new Application()); @@ -584,12 +595,12 @@ namespace Greenshot.Addon.Office.OfficeExport /// Call this to get the running Outlook application, returns null if there isn't any. /// /// IDisposableCom for Outlook.Application or null - private static IDisposableCom GetOutlookApplication() + private IDisposableCom GetOutlookApplication() { IDisposableCom outlookApplication; try { - outlookApplication = DisposableCom.Create((Application)Marshal.GetActiveObject("Outlook.Application")); + outlookApplication = OleAut32Api.GetActiveObject("Outlook.Application"); } catch (Exception) { @@ -607,9 +618,9 @@ namespace Greenshot.Addon.Office.OfficeExport /// Helper method to get the Outlook signature /// /// - private static string GetOutlookSignature(EmailFormat format) + private string GetOutlookSignature(EmailFormat format) { - using (RegistryKey profilesKey = Registry.CurrentUser.OpenSubKey(ProfilesKey, false)) + using (var profilesKey = Registry.CurrentUser.OpenSubKey(ProfilesKey, false)) { if (profilesKey == null) { @@ -617,7 +628,7 @@ namespace Greenshot.Addon.Office.OfficeExport } string defaultProfile = (string)profilesKey.GetValue(DefaultProfileValue); Log.Debug().WriteLine("defaultProfile={0}", defaultProfile); - using (RegistryKey profileKey = profilesKey.OpenSubKey(defaultProfile + @"\" + AccountKey, false)) + using (var profileKey = profilesKey.OpenSubKey(defaultProfile + @"\" + AccountKey, false)) { if (profileKey != null) { @@ -625,7 +636,7 @@ namespace Greenshot.Addon.Office.OfficeExport foreach (string number in numbers) { Log.Debug().WriteLine("Found subkey {0}", number); - using (RegistryKey numberKey = profileKey.OpenSubKey(number, false)) + using (var numberKey = profileKey.OpenSubKey(number, false)) { if (numberKey != null) { @@ -673,7 +684,7 @@ namespace Greenshot.Addon.Office.OfficeExport /// Initialize static outlook variables like version and currentuser /// /// - private static void InitializeVariables(IDisposableCom outlookApplication) + private void InitializeVariables(IDisposableCom outlookApplication) { if ((outlookApplication == null) || (outlookApplication.ComObject == null) || (_outlookVersion != null)) { @@ -709,7 +720,7 @@ namespace Greenshot.Addon.Office.OfficeExport /// A method to retrieve all inspectors which can act as an export target /// /// IDictionary with inspector captions (window title) and object class - public static IDictionary RetrievePossibleTargets() + public IDictionary RetrievePossibleTargets() { IDictionary inspectorCaptions = new SortedDictionary(); try @@ -744,7 +755,7 @@ namespace Greenshot.Addon.Office.OfficeExport } break; case AppointmentItem appointmentItem: - if ((_outlookVersion.Major >= (int)OfficeVersions.Office2010) && Conf.OutlookAllowExportInMeetings) + if ((_outlookVersion.Major >= (int)OfficeVersions.Office2010) && _officeConfiguration.OutlookAllowExportInMeetings) { if (!string.IsNullOrEmpty(appointmentItem.Organizer) && appointmentItem.Organizer.Equals(_currentUser)) { @@ -787,7 +798,7 @@ namespace Greenshot.Addon.Office.OfficeExport inspectorCaptions.Add(caption, mailItem.Class); break; case AppointmentItem appointmentItem: - if ((_outlookVersion.Major >= (int)OfficeVersions.Office2010) && Conf.OutlookAllowExportInMeetings) + if ((_outlookVersion.Major >= (int)OfficeVersions.Office2010) && _officeConfiguration.OutlookAllowExportInMeetings) { if (!string.IsNullOrEmpty(appointmentItem.Organizer) && !appointmentItem.Organizer.Equals(_currentUser)) { diff --git a/src/Greenshot.Addon.Office/OfficeExport/PowerpointExporter.cs b/src/Greenshot.Addon.Office/OfficeExport/PowerpointExporter.cs index 15fa32215..0ef7ff3f5 100644 --- a/src/Greenshot.Addon.Office/OfficeExport/PowerpointExporter.cs +++ b/src/Greenshot.Addon.Office/OfficeExport/PowerpointExporter.cs @@ -27,9 +27,9 @@ using System; using System.Collections.Generic; using System.Drawing; using System.Runtime.InteropServices; -using Dapplo.Ini; using Dapplo.Log; -using Dapplo.Windows.Interop; +using Dapplo.Windows.Com; +using Greenshot.Addon.Office.Configuration; using Greenshot.Addon.Office.OfficeInterop; using Microsoft.Office.Core; using Microsoft.Office.Interop.PowerPoint; @@ -39,11 +39,23 @@ using Shape = Microsoft.Office.Interop.PowerPoint.Shape; namespace Greenshot.Addon.Office.OfficeExport { - public static class PowerpointExporter + /// + /// Export logic for powerpoint + /// + public class PowerpointExporter { private static readonly LogSource Log = new LogSource(); - private static readonly IOfficeConfiguration OfficeConfig = IniConfig.Current.Get(); - private static Version _powerpointVersion; + private readonly IOfficeConfiguration _officeConfiguration; + private Version _powerpointVersion; + + /// + /// Constructor used for dependency injection + /// + /// + public PowerpointExporter(IOfficeConfiguration officeConfiguration) + { + _officeConfiguration = officeConfiguration; + } /// /// Internal method to add a picture to a presentation @@ -52,7 +64,7 @@ namespace Greenshot.Addon.Office.OfficeExport /// /// /// - private static void AddPictureToPresentation(IDisposableCom presentation, string tmpFile, Size imageSize, string title) + private void AddPictureToPresentation(IDisposableCom presentation, string tmpFile, Size imageSize, string title) { if (presentation != null) { @@ -75,7 +87,7 @@ namespace Greenshot.Addon.Office.OfficeExport { using (var slides = DisposableCom.Create(presentation.ComObject.Slides)) { - slide = DisposableCom.Create(slides.ComObject.Add(slides.ComObject.Count + 1, OfficeConfig.PowerpointSlideLayout)); + slide = DisposableCom.Create(slides.ComObject.Add(slides.ComObject.Count + 1, _officeConfiguration.PowerpointSlideLayout)); } using (var shapes = DisposableCom.Create(slide.ComObject.Shapes)) @@ -122,7 +134,7 @@ namespace Greenshot.Addon.Office.OfficeExport { using (var shape = DisposableCom.Create(shapes.ComObject.AddPicture(tmpFile, MsoTriState.msoFalse, MsoTriState.msoTrue, 0, 0, width, height))) { - if (OfficeConfig.PowerpointLockAspectRatio) + if (_officeConfiguration.PowerpointLockAspectRatio) { shape.ComObject.LockAspectRatio = MsoTriState.msoTrue; } @@ -200,7 +212,7 @@ namespace Greenshot.Addon.Office.OfficeExport /// Size of the image /// A string with the image title /// - public static bool ExportToPresentation(string presentationName, string tmpFile, Size imageSize, string title) + public bool ExportToPresentation(string presentationName, string tmpFile, Size imageSize, string title) { using (var powerpointApplication = GetPowerPointApplication()) { @@ -243,9 +255,9 @@ namespace Greenshot.Addon.Office.OfficeExport /// Call this to get the running PowerPoint application, or create a new instance /// /// ComDisposable for PowerPoint.Application - private static IDisposableCom GetOrCreatePowerPointApplication() + private IDisposableCom GetOrCreatePowerPointApplication() { - IDisposableCom powerPointApplication = GetPowerPointApplication(); + var powerPointApplication = GetPowerPointApplication(); if (powerPointApplication == null) { powerPointApplication = DisposableCom.Create(new Application()); @@ -258,12 +270,12 @@ namespace Greenshot.Addon.Office.OfficeExport /// Call this to get the running PowerPoint application, returns null if there isn't any. /// /// ComDisposable for PowerPoint.Application or null - private static IDisposableCom GetPowerPointApplication() + private IDisposableCom GetPowerPointApplication() { IDisposableCom powerPointApplication; try { - powerPointApplication = DisposableCom.Create((Application)Marshal.GetActiveObject("PowerPoint.Application")); + powerPointApplication = OleAut32Api.GetActiveObject("PowerPoint.Application"); } catch (Exception) { @@ -281,7 +293,7 @@ namespace Greenshot.Addon.Office.OfficeExport /// Get the captions of all the open powerpoint presentations /// /// - public static IEnumerable GetPowerpointPresentations() + public IEnumerable GetPowerpointPresentations() { using (var powerpointApplication = GetPowerPointApplication()) { @@ -323,7 +335,7 @@ namespace Greenshot.Addon.Office.OfficeExport /// Initialize static powerpoint variables like version /// /// IPowerpointApplication - private static void InitializeVariables(IDisposableCom powerpointApplication) + private void InitializeVariables(IDisposableCom powerpointApplication) { if ((powerpointApplication == null) || (powerpointApplication.ComObject == null) || (_powerpointVersion != null)) { @@ -343,7 +355,7 @@ namespace Greenshot.Addon.Office.OfficeExport /// /// /// - public static bool InsertIntoNewPresentation(string tmpFile, Size imageSize, string title) + public bool InsertIntoNewPresentation(string tmpFile, Size imageSize, string title) { bool isPictureAdded = false; using (var powerpointApplication = GetOrCreatePowerPointApplication()) @@ -372,7 +384,7 @@ namespace Greenshot.Addon.Office.OfficeExport return isPictureAdded; } - private static bool IsAfter2003() + private bool IsAfter2003() { return _powerpointVersion.Major > (int)OfficeVersions.Office2003; } diff --git a/src/Greenshot.Addon.Office/OfficeExport/WordExporter.cs b/src/Greenshot.Addon.Office/OfficeExport/WordExporter.cs index c4152aae5..8e633d15f 100644 --- a/src/Greenshot.Addon.Office/OfficeExport/WordExporter.cs +++ b/src/Greenshot.Addon.Office/OfficeExport/WordExporter.cs @@ -21,10 +21,9 @@ using System; using System.Collections.Generic; -using System.Runtime.InteropServices; -using Dapplo.Ini; using Dapplo.Log; -using Dapplo.Windows.Interop; +using Dapplo.Windows.Com; +using Greenshot.Addon.Office.Configuration; using Greenshot.Addon.Office.OfficeInterop; using Microsoft.Office.Core; using Microsoft.Office.Interop.Word; @@ -34,11 +33,23 @@ using Version = System.Version; namespace Greenshot.Addon.Office.OfficeExport { - public static class WordExporter + /// + /// This makes it possible to export to word + /// + public class WordExporter { private static readonly LogSource Log = new LogSource(); private static Version _wordVersion; - private static readonly IOfficeConfiguration Config = IniConfig.Current.Get(); + private readonly IOfficeConfiguration _officeConfiguration; + + /// + /// Constructor used for dependency injection + /// + /// + public WordExporter(IOfficeConfiguration officeConfiguration) + { + _officeConfiguration = officeConfiguration; + } /// /// Helper method to add the file as image to the selection @@ -46,13 +57,13 @@ namespace Greenshot.Addon.Office.OfficeExport /// /// /// - private static IDisposableCom AddPictureToSelection(IDisposableCom selection, string tmpFile) + private IDisposableCom AddPictureToSelection(IDisposableCom selection, string tmpFile) { using (var shapes = DisposableCom.Create(selection.ComObject.InlineShapes)) { var shape = DisposableCom.Create(shapes.ComObject.AddPicture(tmpFile, false, true, Type.Missing)); // Lock aspect ratio - if (Config.WordLockAspectRatio) + if (_officeConfiguration.WordLockAspectRatio) { shape.ComObject.LockAspectRatio = MsoTriState.msoTrue; } @@ -66,9 +77,9 @@ namespace Greenshot.Addon.Office.OfficeExport /// Call this to get the running Word application, or create a new instance /// /// ComDisposable for Word.Application - private static IDisposableCom GetOrCreateWordApplication() + private IDisposableCom GetOrCreateWordApplication() { - IDisposableCom wordApplication = GetWordApplication(); + var wordApplication = GetWordApplication(); if (wordApplication == null) { wordApplication = DisposableCom.Create(new Application()); @@ -81,12 +92,12 @@ namespace Greenshot.Addon.Office.OfficeExport /// Call this to get the running Word application, returns null if there isn't any. /// /// ComDisposable for Word.Application or null - private static IDisposableCom GetWordApplication() + private IDisposableCom GetWordApplication() { IDisposableCom wordApplication; try { - wordApplication = DisposableCom.Create((Application)Marshal.GetActiveObject("Word.Application")); + wordApplication = OleAut32Api.GetActiveObject("Word.Application"); } catch (Exception) { @@ -104,7 +115,7 @@ namespace Greenshot.Addon.Office.OfficeExport /// Get the captions of all the open word documents /// /// - public static IEnumerable GetWordDocuments() + public IEnumerable GetWordDocuments() { using (var wordApplication = GetWordApplication()) { @@ -143,7 +154,7 @@ namespace Greenshot.Addon.Office.OfficeExport /// Initialize static word variables like version /// /// - private static void InitializeVariables(IDisposableCom wordApplication) + private void InitializeVariables(IDisposableCom wordApplication) { if ((wordApplication == null) || (wordApplication.ComObject == null) || (_wordVersion != null)) { @@ -161,8 +172,8 @@ namespace Greenshot.Addon.Office.OfficeExport /// /// /// - /// - public static bool InsertIntoExistingDocument(string wordCaption, string tmpFile) + /// bool + public bool InsertIntoExistingDocument(string wordCaption, string tmpFile) { using (var wordApplication = GetWordApplication()) { @@ -193,13 +204,13 @@ namespace Greenshot.Addon.Office.OfficeExport /// /// Internal method for the insert /// - /// - /// - /// - /// - /// tooltip of the image - /// - internal static bool InsertIntoExistingDocument(IDisposableCom wordApplication, IDisposableCom<_Document> wordDocument, string tmpFile, string address, string tooltip) + /// IDisposableCom with Application + /// IDisposableCom with _Document + /// string + /// string + /// string with the tooltip of the image + /// bool + internal bool InsertIntoExistingDocument(IDisposableCom wordApplication, IDisposableCom<_Document> wordDocument, string tmpFile, string address, string tooltip) { // Bug #1517: image will be inserted into that document, where the focus was last. It will not inserted into the chosen one. // Solution: Make sure the selected document is active, otherwise the insert will be made in a different document! @@ -289,7 +300,13 @@ namespace Greenshot.Addon.Office.OfficeExport } } - public static void InsertIntoNewDocument(string tmpFile, string address, string tooltip) + /// + /// Insert a capture into a new document + /// + /// string + /// string + /// string + public void InsertIntoNewDocument(string tmpFile, string address, string tooltip) { using (var wordApplication = GetOrCreateWordApplication()) { @@ -367,7 +384,7 @@ namespace Greenshot.Addon.Office.OfficeExport /// Check if the used version is higher than Office 2003 /// /// - private static bool IsAfter2003() + private bool IsAfter2003() { return _wordVersion.Major > (int)OfficeVersions.Office2003; } diff --git a/src/Greenshot.Addon.Office/OfficeInterop/EmailFormat.cs b/src/Greenshot.Addon.Office/OfficeInterop/EmailFormat.cs index b9b5510c2..a8a716d0b 100644 --- a/src/Greenshot.Addon.Office/OfficeInterop/EmailFormat.cs +++ b/src/Greenshot.Addon.Office/OfficeInterop/EmailFormat.cs @@ -28,7 +28,13 @@ namespace Greenshot.Addon.Office.OfficeInterop /// public enum EmailFormat { + /// + /// Use the plain text format + /// Text, + /// + /// Use HTML format + /// Html } } \ No newline at end of file diff --git a/src/Greenshot.Addon.Office/OfficeInterop/OfficeVersions.cs b/src/Greenshot.Addon.Office/OfficeInterop/OfficeVersions.cs index d28d8d31f..5f199efe2 100644 --- a/src/Greenshot.Addon.Office/OfficeInterop/OfficeVersions.cs +++ b/src/Greenshot.Addon.Office/OfficeInterop/OfficeVersions.cs @@ -28,12 +28,41 @@ namespace Greenshot.Addon.Office.OfficeInterop /// public enum OfficeVersions { + /// + /// Office 97 + /// Office97 = 8, + /// + /// Office 2000 + /// Office2000 = 9, + /// + /// Office 2002 + /// Office2002 = 10, + /// + /// Office 2003 + /// Office2003 = 11, + /// + /// Office 2007 + /// Office2007 = 12, + /// + /// Office 2010 + /// Office2010 = 14, - Office2013 = 15 + /// + /// Office 2013 + /// + Office2013 = 15, + /// + /// Office 2016 + /// + Office2016 = 16, + /// + /// Office 2019 + /// + Office2019 = 17 } } \ No newline at end of file diff --git a/src/Greenshot.Addon.Office/Properties/AssemblyInfo.cs b/src/Greenshot.Addon.Office/Properties/AssemblyInfo.cs deleted file mode 100644 index dc524c2bb..000000000 --- a/src/Greenshot.Addon.Office/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,53 +0,0 @@ -#region Greenshot GNU General Public License - -// Greenshot - a free and open source screenshot tool -// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom -// -// For more information see: http://getgreenshot.org/ -// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 1 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -#endregion - -#region Usings - -using System.Reflection; -using System.Runtime.InteropServices; - -#endregion - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("Greenshot.Addon.Office")] -[assembly: AssemblyDescription("A plugin to export images to Office applications")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Greenshot")] -[assembly: AssemblyProduct("Office Plugin")] -[assembly: AssemblyCopyright("Copyright (C) 2007-2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// This sets the default COM visibility of types in the assembly to invisible. -// If you need to expose a type to COM, use [ComVisible(true)] on that type. - -[assembly: ComVisible(false)] - -// The assembly version, replaced by build scripts - -[assembly: AssemblyVersion("1.3.0.0")] -[assembly: AssemblyInformationalVersion("1.3.0.0")] -[assembly: AssemblyFileVersion("1.3.0.0")] \ No newline at end of file diff --git a/src/Greenshot.Addon.Office/ViewModels/OfficeConfigViewModel.cs b/src/Greenshot.Addon.Office/ViewModels/OfficeConfigViewModel.cs index 475e31495..792dc6f19 100644 --- a/src/Greenshot.Addon.Office/ViewModels/OfficeConfigViewModel.cs +++ b/src/Greenshot.Addon.Office/ViewModels/OfficeConfigViewModel.cs @@ -25,6 +25,7 @@ using System.Collections.Generic; using System.Reactive.Disposables; using Dapplo.CaliburnMicro.Configuration; using Dapplo.CaliburnMicro.Extensions; +using Greenshot.Addon.Office.Configuration; using Greenshot.Addons; using Greenshot.Addons.Core.Enums; using Greenshot.Addons.Extensions; @@ -32,6 +33,9 @@ using Microsoft.Office.Interop.PowerPoint; namespace Greenshot.Addon.Office.ViewModels { + /// + /// View model for the office configuration + /// public sealed class OfficeConfigViewModel : SimpleConfigScreen { /// @@ -39,10 +43,26 @@ namespace Greenshot.Addon.Office.ViewModels /// private CompositeDisposable _disposables; + /// + /// Used to modify the office configuration from the view + /// public IOfficeConfiguration OfficeConfiguration { get; } + /// + /// Used to supply translations to the view + /// public IOfficeLanguage OfficeLanguage { get; } + + /// + /// Used to supply translations to the view + /// public IGreenshotLanguage GreenshotLanguage { get; } + /// + /// Constructor used for dependency injection + /// + /// IOfficeConfiguration + /// IOfficeLanguage + /// IGreenshotLanguage public OfficeConfigViewModel( IOfficeConfiguration officeConfiguration, IOfficeLanguage officeLanguage, @@ -53,6 +73,7 @@ namespace Greenshot.Addon.Office.ViewModels GreenshotLanguage = greenshotLanguage; } + /// public override void Initialize(IConfig config) { // Prepare disposables @@ -74,12 +95,16 @@ namespace Greenshot.Addon.Office.ViewModels base.Initialize(config); } + /// protected override void OnDeactivate(bool close) { _disposables.Dispose(); base.OnDeactivate(close); } + /// + /// The selected slide layout + /// public PpSlideLayout SelectedSlideLayout { get => OfficeConfiguration.PowerpointSlideLayout; @@ -90,6 +115,9 @@ namespace Greenshot.Addon.Office.ViewModels } } + /// + /// The available slide layouts + /// public IDictionary SlideLayouts => GreenshotLanguage.TranslationValuesForEnum(); } } diff --git a/src/Greenshot.Addon.Office/packages.config b/src/Greenshot.Addon.Office/packages.config deleted file mode 100644 index 9074a1870..000000000 --- a/src/Greenshot.Addon.Office/packages.config +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.Addon.OneDrive/IOneDriveConfiguration.cs b/src/Greenshot.Addon.OneDrive/Configuration/IOneDriveConfiguration.cs similarity index 88% rename from src/Greenshot.Addon.OneDrive/IOneDriveConfiguration.cs rename to src/Greenshot.Addon.OneDrive/Configuration/IOneDriveConfiguration.cs index f1c133630..d729dd396 100644 --- a/src/Greenshot.Addon.OneDrive/IOneDriveConfiguration.cs +++ b/src/Greenshot.Addon.OneDrive/Configuration/IOneDriveConfiguration.cs @@ -25,18 +25,17 @@ using System.ComponentModel; using System.Runtime.Serialization; +using Dapplo.Config.Ini; using Dapplo.HttpExtensions.OAuth; -using Dapplo.Ini; -using Dapplo.InterfaceImpl.Extensions; using Greenshot.Addons.Core; #endregion -namespace Greenshot.Addon.OneDrive +namespace Greenshot.Addon.OneDrive.Configuration { [IniSection("OneDrive")] [Description("Greenshot OneDrive Addon configuration")] - public interface IOneDriveConfiguration : IIniSection, IDestinationFileConfiguration, IOAuth2Token, ITransactionalProperties, INotifyPropertyChanged + public interface IOneDriveConfiguration : IIniSection, IDestinationFileConfiguration, IOAuth2Token { [Description("After upload copy OneDrive link to clipboard.")] [DefaultValue("true")] diff --git a/src/Greenshot.Addon.OneDrive/IOneDriveLanguage.cs b/src/Greenshot.Addon.OneDrive/Configuration/IOneDriveLanguage.cs similarity index 94% rename from src/Greenshot.Addon.OneDrive/IOneDriveLanguage.cs rename to src/Greenshot.Addon.OneDrive/Configuration/IOneDriveLanguage.cs index c924699e5..377bfd237 100644 --- a/src/Greenshot.Addon.OneDrive/IOneDriveLanguage.cs +++ b/src/Greenshot.Addon.OneDrive/Configuration/IOneDriveLanguage.cs @@ -24,11 +24,11 @@ #region Usings using System.ComponentModel; -using Dapplo.Language; +using Dapplo.Config.Language; #endregion -namespace Greenshot.Addon.OneDrive +namespace Greenshot.Addon.OneDrive.Configuration { [Language("OneDrive")] public interface IOneDriveLanguage : ILanguage, INotifyPropertyChanged diff --git a/src/Greenshot.Addon.OneDrive/Configuration/Impl/OneDriveConfigurationImpl.cs b/src/Greenshot.Addon.OneDrive/Configuration/Impl/OneDriveConfigurationImpl.cs new file mode 100644 index 000000000..6a09a13b8 --- /dev/null +++ b/src/Greenshot.Addon.OneDrive/Configuration/Impl/OneDriveConfigurationImpl.cs @@ -0,0 +1,77 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System; +using System.ComponentModel; +using Dapplo.Config.Ini; +using Dapplo.Config.Ini.Converters; +using Greenshot.Core.Enums; + +namespace Greenshot.Addon.OneDrive.Configuration.Impl +{ + internal class OneDriveConfigurationImpl : IniSectionBase, IOneDriveConfiguration + { + #region Implementation of IFileConfiguration + + public string OutputFilePath { get; set; } + public bool OutputFileAllowOverwrite { get; set; } + public string OutputFileFilenamePattern { get; set; } + public OutputFormats OutputFileFormat { get; set; } + public bool OutputFileReduceColors { get; set; } + public bool OutputFileAutoReduceColors { get; set; } + public int OutputFileReduceColorsTo { get; set; } + public int OutputFileJpegQuality { get; set; } + public bool OutputFilePromptQuality { get; set; } + public uint OutputFileIncrementingNumber { get; set; } + public string OptimizePNGCommand { get; set; } + public string OptimizePNGCommandArguments { get; set; } + + #endregion + + #region Implementation of IDestinationFileConfiguration + + public bool UseOwnSettings { get; set; } + + #endregion + + #region Implementation of IOAuth2Token + + [TypeConverter(typeof(StringEncryptionTypeConverter))] + public string OAuth2AccessToken { get; set; } + + public DateTimeOffset OAuth2AccessTokenExpires { get; set; } + + [TypeConverter(typeof(StringEncryptionTypeConverter))] + public string OAuth2RefreshToken { get; set; } + + #endregion + + #region Implementation of IOneDriveConfiguration + + public bool AfterUploadLinkToClipBoard { get; set; } + public OneDriveLinkType LinkType { get; set; } + public string ClientId { get; set; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.OneDrive/Configuration/Impl/OneDriveLanguageImpl.cs b/src/Greenshot.Addon.OneDrive/Configuration/Impl/OneDriveLanguageImpl.cs new file mode 100644 index 000000000..66a24d894 --- /dev/null +++ b/src/Greenshot.Addon.OneDrive/Configuration/Impl/OneDriveLanguageImpl.cs @@ -0,0 +1,49 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System.Diagnostics.CodeAnalysis; +using Dapplo.Config.Language; + +namespace Greenshot.Addon.OneDrive.Configuration.Impl +{ + /// + /// This implements IOneDriveLanguage and takes care of storing, all setters are replaced via AutoProperties.Fody + /// + [SuppressMessage("ReSharper", "UnassignedGetOnlyAutoProperty")] +#pragma warning disable CS1591 + public class OneDriveLanguageImpl : LanguageBase, IOneDriveLanguage + { + #region Implementation of IOneDriveLanguage + + public string CommunicationWait { get; } + public string LabelUploadFormat { get; } + public string LabelLinkType { get; } + public string SettingsTitle { get; } + public string UploadFailure { get; } + public string UploadMenuItem { get; } + public string UsePageLink { get; } + public string ResetCredentialsButton { get; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.OneDrive/FodyWeavers.xml b/src/Greenshot.Addon.OneDrive/FodyWeavers.xml new file mode 100644 index 000000000..7f5a26669 --- /dev/null +++ b/src/Greenshot.Addon.OneDrive/FodyWeavers.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.OneDrive/FodyWeavers.xsd b/src/Greenshot.Addon.OneDrive/FodyWeavers.xsd new file mode 100644 index 000000000..061979a03 --- /dev/null +++ b/src/Greenshot.Addon.OneDrive/FodyWeavers.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + 'true' to run assembly verification on the target assembly after all weavers have been finished. + + + + + A comma separated list of error codes that can be safely ignored in assembly verification. + + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.OneDrive/Greenshot.Addon.OneDrive.csproj b/src/Greenshot.Addon.OneDrive/Greenshot.Addon.OneDrive.csproj index 542e9ee7e..753945a78 100644 --- a/src/Greenshot.Addon.OneDrive/Greenshot.Addon.OneDrive.csproj +++ b/src/Greenshot.Addon.OneDrive/Greenshot.Addon.OneDrive.csproj @@ -1,158 +1,20 @@ - - - + + - {B35272D3-4631-4FA5-9A3E-85D70ECA9A8D} - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Library Greenshot.Addon.OneDrive Greenshot.Addon.OneDrive - v4.6.1 - Properties - False - False - 4 - false - Always - - - - 3.5 - - - - + net471;netcoreapp3.0 - + - - {bf35190d-b2a7-4cfa-b397-51cb384cf0d7} - Greenshot.Core - - - {f041c685-eb96-4ed1-9ace-0f5bd836610f} - Greenshot.Gfx - - - {5B924697-4DCD-4F98-85F1-105CB84B7341} - Greenshot.Addons - - - ..\packages\Autofac.4.8.1\lib\net45\Autofac.dll - - - ..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll - - - ..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll - - - ..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll - - - ..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll - - - ..\packages\ControlzEx.3.0.2.4\lib\net45\ControlzEx.dll - - - ..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll - - - ..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll - - - ..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll - - - ..\packages\Dapplo.CaliburnMicro.Configuration.1.0.75\lib\net461\Dapplo.CaliburnMicro.Configuration.dll - - - ..\packages\Dapplo.CaliburnMicro.Dapp.1.0.75\lib\net461\Dapplo.CaliburnMicro.Dapp.dll - - - ..\packages\Dapplo.CaliburnMicro.Menu.1.0.75\lib\net461\Dapplo.CaliburnMicro.Menu.dll - - - ..\packages\Dapplo.CaliburnMicro.Security.1.0.75\lib\net461\Dapplo.CaliburnMicro.Security.dll - - - ..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll - - - ..\packages\Dapplo.HttpExtensions.0.8.46\lib\net46\Dapplo.HttpExtensions.dll - - - ..\packages\Dapplo.HttpExtensions.JsonNet.0.8.46\lib\net46\Dapplo.HttpExtensions.JsonNet.dll - - - ..\packages\Dapplo.HttpExtensions.OAuth.0.8.46\lib\net46\Dapplo.HttpExtensions.OAuth.dll - - - ..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll - - - ..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll - - - ..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll - - - ..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll - - - ..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll - - - ..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll - - - ..\packages\Dapplo.Windows.Clipboard.0.5.109\lib\net461\Dapplo.Windows.Clipboard.dll - - - ..\packages\Dapplo.Windows.Com.0.5.109\lib\net461\Dapplo.Windows.Com.dll - - - ..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll - - - ..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll - - - ..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll - - - ..\packages\Dapplo.Windows.EmbeddedBrowser.0.5.109\lib\net461\Dapplo.Windows.EmbeddedBrowser.dll - - - ..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll - - - ..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll - - - ..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll - - - ..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll - - - ..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll - - - ..\packages\MahApps.Metro.1.6.5\lib\net46\MahApps.Metro.dll - + + PreserveNewest + + + + - - ..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll - @@ -161,58 +23,38 @@ - - ..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll - - - ..\packages\ControlzEx.3.0.2.4\lib\net45\System.Windows.Interactivity.dll - + - - - - - - - - - - - - - - + + - - MSBuild:Compile - Designer - + + + - - mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).dll" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" -copy "$(ProjectDir)\Languages\*.xml" "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" - - \ No newline at end of file + + + + + + + + + + + all + runtime; build; native; contentfiles; analyzers + + + diff --git a/src/Greenshot.Addon.OneDrive/OneDriveAddonModule.cs b/src/Greenshot.Addon.OneDrive/OneDriveAddonModule.cs index 6f3ef98ed..734202c9b 100644 --- a/src/Greenshot.Addon.OneDrive/OneDriveAddonModule.cs +++ b/src/Greenshot.Addon.OneDrive/OneDriveAddonModule.cs @@ -24,8 +24,10 @@ using Autofac; using Dapplo.Addons; using Dapplo.CaliburnMicro.Configuration; -using Dapplo.Ini; -using Dapplo.Language; +using Dapplo.Config.Ini; +using Dapplo.Config.Language; +using Greenshot.Addon.OneDrive.Configuration; +using Greenshot.Addon.OneDrive.Configuration.Impl; using Greenshot.Addon.OneDrive.ViewModels; using Greenshot.Addons.Components; @@ -37,13 +39,15 @@ namespace Greenshot.Addon.OneDrive protected override void Load(ContainerBuilder builder) { builder - .Register(context => IniConfig.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder - .Register(context => LanguageLoader.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder diff --git a/src/Greenshot.Addon.OneDrive/OneDriveDestination.cs b/src/Greenshot.Addon.OneDrive/OneDriveDestination.cs index 9efe97a1d..dfa9da5e1 100644 --- a/src/Greenshot.Addon.OneDrive/OneDriveDestination.cs +++ b/src/Greenshot.Addon.OneDrive/OneDriveDestination.cs @@ -39,6 +39,7 @@ using Dapplo.HttpExtensions.OAuth; using Dapplo.Log; using Dapplo.Utils; using Dapplo.Windows.Clipboard; +using Greenshot.Addon.OneDrive.Configuration; using Greenshot.Addon.OneDrive.Entities; using Greenshot.Addons; using Greenshot.Addons.Components; diff --git a/src/Greenshot.Addon.OneDrive/Properties/AssemblyInfo.cs b/src/Greenshot.Addon.OneDrive/Properties/AssemblyInfo.cs deleted file mode 100644 index dbfba15a1..000000000 --- a/src/Greenshot.Addon.OneDrive/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,54 +0,0 @@ -#region Greenshot GNU General Public License - -// Greenshot - a free and open source screenshot tool -// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom -// -// For more information see: http://getgreenshot.org/ -// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 1 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -#endregion - -#region Usings - -using System.Reflection; -using System.Runtime.InteropServices; - -#endregion - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("Greenshot.Addon.OneDrive")] -[assembly: AssemblyDescription("A plugin to upload images to OneDrive")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Greenshot")] -[assembly: AssemblyProduct("OneDrive plugin")] -[assembly: AssemblyCopyright("Copyright (C) 2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// This sets the default COM visibility of types in the assembly to invisible. -// If you need to expose a type to COM, use [ComVisible(true)] on that type. - -[assembly: ComVisible(false)] - -// The assembly version, replaced by build scripts - -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyInformationalVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] - diff --git a/src/Greenshot.Addon.OneDrive/ViewModels/OneDriveConfigViewModel.cs b/src/Greenshot.Addon.OneDrive/ViewModels/OneDriveConfigViewModel.cs index b4fdda484..f17d0c7e0 100644 --- a/src/Greenshot.Addon.OneDrive/ViewModels/OneDriveConfigViewModel.cs +++ b/src/Greenshot.Addon.OneDrive/ViewModels/OneDriveConfigViewModel.cs @@ -26,6 +26,7 @@ using System.Reactive.Disposables; using Dapplo.CaliburnMicro.Configuration; using Dapplo.CaliburnMicro.Extensions; using Dapplo.HttpExtensions.OAuth; +using Greenshot.Addon.OneDrive.Configuration; using Greenshot.Addons; using Greenshot.Addons.Core.Enums; using Greenshot.Addons.Extensions; diff --git a/src/Greenshot.Addon.OneDrive/packages.config b/src/Greenshot.Addon.OneDrive/packages.config deleted file mode 100644 index 65c48eebc..000000000 --- a/src/Greenshot.Addon.OneDrive/packages.config +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.Addon.Photobucket/IPhotobucketConfiguration.cs b/src/Greenshot.Addon.Photobucket/Configuration/IPhotobucketConfiguration.cs similarity index 89% rename from src/Greenshot.Addon.Photobucket/IPhotobucketConfiguration.cs rename to src/Greenshot.Addon.Photobucket/Configuration/IPhotobucketConfiguration.cs index e19120598..c34adaa80 100644 --- a/src/Greenshot.Addon.Photobucket/IPhotobucketConfiguration.cs +++ b/src/Greenshot.Addon.Photobucket/Configuration/IPhotobucketConfiguration.cs @@ -25,22 +25,21 @@ using System.ComponentModel; using System.Runtime.Serialization; +using Dapplo.Config.Ini; +using Dapplo.Config.Ini.Converters; using Dapplo.HttpExtensions.OAuth; -using Dapplo.Ini; -using Dapplo.Ini.Converters; -using Dapplo.InterfaceImpl.Extensions; using Greenshot.Addons.Core; #endregion -namespace Greenshot.Addon.Photobucket +namespace Greenshot.Addon.Photobucket.Configuration { /// /// The Photobucket configuration. /// [IniSection("Photobucket")] [Description("Greenshot Photobucket Plugin configuration")] - public interface IPhotobucketConfiguration : IIniSection, IDestinationFileConfiguration, INotifyPropertyChanged, ITransactionalProperties, IOAuth1Token + public interface IPhotobucketConfiguration : IIniSection, IDestinationFileConfiguration, IOAuth1Token { [Description("Use pagelink instead of direct link on the clipboard")] [DefaultValue(false)] diff --git a/src/Greenshot.Addon.Photobucket/IPhotobucketLanguage.cs b/src/Greenshot.Addon.Photobucket/Configuration/IPhotobucketLanguage.cs similarity index 91% rename from src/Greenshot.Addon.Photobucket/IPhotobucketLanguage.cs rename to src/Greenshot.Addon.Photobucket/Configuration/IPhotobucketLanguage.cs index a76cb2f31..3a3eb9b8b 100644 --- a/src/Greenshot.Addon.Photobucket/IPhotobucketLanguage.cs +++ b/src/Greenshot.Addon.Photobucket/Configuration/IPhotobucketLanguage.cs @@ -20,11 +20,11 @@ #region Usings using System.ComponentModel; -using Dapplo.Language; +using Dapplo.Config.Language; #endregion -namespace Greenshot.Addon.Photobucket +namespace Greenshot.Addon.Photobucket.Configuration { [Language("Photobucket")] public interface IPhotobucketLanguage : ILanguage, INotifyPropertyChanged diff --git a/src/Greenshot.Addon.Photobucket/Configuration/Impl/PhotobucketConfigurationImpl.cs b/src/Greenshot.Addon.Photobucket/Configuration/Impl/PhotobucketConfigurationImpl.cs new file mode 100644 index 000000000..ffe5a28cb --- /dev/null +++ b/src/Greenshot.Addon.Photobucket/Configuration/Impl/PhotobucketConfigurationImpl.cs @@ -0,0 +1,81 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System.ComponentModel; +using Dapplo.Config.Ini; +using Dapplo.Config.Ini.Converters; +using Greenshot.Core.Enums; + +namespace Greenshot.Addon.Photobucket.Configuration.Impl +{ + internal class PhotobucketConfigurationImpl : IniSectionBase, IPhotobucketConfiguration + { + #region Implementation of IFileConfiguration + + public string OutputFilePath { get; set; } + public bool OutputFileAllowOverwrite { get; set; } + public string OutputFileFilenamePattern { get; set; } + public OutputFormats OutputFileFormat { get; set; } + public bool OutputFileReduceColors { get; set; } + public bool OutputFileAutoReduceColors { get; set; } + public int OutputFileReduceColorsTo { get; set; } + public int OutputFileJpegQuality { get; set; } + public bool OutputFilePromptQuality { get; set; } + public uint OutputFileIncrementingNumber { get; set; } + public string OptimizePNGCommand { get; set; } + public string OptimizePNGCommandArguments { get; set; } + + #endregion + + #region Implementation of IDestinationFileConfiguration + + public bool UseOwnSettings { get; set; } + + #endregion + + #region Implementation of IOAuth1Token + + [TypeConverter(typeof(StringEncryptionTypeConverter))] + public string OAuthToken { get; set; } + + [TypeConverter(typeof(StringEncryptionTypeConverter))] + public string OAuthTokenSecret { get; set; } + + [TypeConverter(typeof(StringEncryptionTypeConverter))] + public string OAuthTokenVerifier { get; set; } + + #endregion + + #region Implementation of IPhotobucketConfiguration + + public bool UsePageLink { get; set; } + public string SubDomain { get; set; } + public string Username { get; set; } + public string Album { get; set; } + public int Credits { get; set; } + public string ClientId { get; set; } + public string ClientSecret { get; set; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.Photobucket/Configuration/Impl/PhotobucketLanguageImpl.cs b/src/Greenshot.Addon.Photobucket/Configuration/Impl/PhotobucketLanguageImpl.cs new file mode 100644 index 000000000..c145ef19d --- /dev/null +++ b/src/Greenshot.Addon.Photobucket/Configuration/Impl/PhotobucketLanguageImpl.cs @@ -0,0 +1,50 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System.Diagnostics.CodeAnalysis; +using Dapplo.Config.Language; + +namespace Greenshot.Addon.Photobucket.Configuration.Impl +{ + /// + /// This implements IPhotobucketLanguage and takes care of storing, all setters are replaced via AutoProperties.Fody + /// +#pragma warning disable CS1591 + [SuppressMessage("ReSharper", "UnassignedGetOnlyAutoProperty")] + public class PhotobucketLanguageImpl : LanguageBase, IPhotobucketLanguage + { + #region Implementation of IPhotobucketLanguage + + public string CommunicationWait { get; } + public string Configure { get; } + public string LabelClear { get; } + public string LabelUploadFormat { get; } + public string SettingsTitle { get; } + public string UploadFailure { get; } + public string UploadMenuItem { get; } + public string UploadSuccess { get; } + public string UsePageLink { get; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.Photobucket/FodyWeavers.xml b/src/Greenshot.Addon.Photobucket/FodyWeavers.xml new file mode 100644 index 000000000..7f5a26669 --- /dev/null +++ b/src/Greenshot.Addon.Photobucket/FodyWeavers.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.Photobucket/FodyWeavers.xsd b/src/Greenshot.Addon.Photobucket/FodyWeavers.xsd new file mode 100644 index 000000000..061979a03 --- /dev/null +++ b/src/Greenshot.Addon.Photobucket/FodyWeavers.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + 'true' to run assembly verification on the target assembly after all weavers have been finished. + + + + + A comma separated list of error codes that can be safely ignored in assembly verification. + + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.Photobucket/Greenshot.Addon.Photobucket.csproj b/src/Greenshot.Addon.Photobucket/Greenshot.Addon.Photobucket.csproj index cbe225d88..1b5242fc7 100644 --- a/src/Greenshot.Addon.Photobucket/Greenshot.Addon.Photobucket.csproj +++ b/src/Greenshot.Addon.Photobucket/Greenshot.Addon.Photobucket.csproj @@ -1,144 +1,18 @@ - - - + + - {9C0ECC4C-7807-4111-916A-4F57BB29788A} - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Library Greenshot.Addon.Photobucket Greenshot.Addon.Photobucket - v4.6.1 - Properties - False - False - 4 - false - OnBuildSuccess - - - - - - 3.5 + net471;netcoreapp3.0 - - false - latest - - - false - - - false - latest - - - false - - + - - ..\packages\Autofac.4.8.1\lib\net45\Autofac.dll - - - ..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll - - - ..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll - - - ..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll - - - ..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll - - - ..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll - - - ..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll - - - ..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll - - - ..\packages\Dapplo.CaliburnMicro.Configuration.1.0.75\lib\net461\Dapplo.CaliburnMicro.Configuration.dll - - - ..\packages\Dapplo.CaliburnMicro.Dapp.1.0.75\lib\net461\Dapplo.CaliburnMicro.Dapp.dll - - - ..\packages\Dapplo.CaliburnMicro.Menu.1.0.75\lib\net461\Dapplo.CaliburnMicro.Menu.dll - - - ..\packages\Dapplo.CaliburnMicro.Security.1.0.75\lib\net461\Dapplo.CaliburnMicro.Security.dll - - - ..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll - - - ..\packages\Dapplo.HttpExtensions.0.8.46\lib\net46\Dapplo.HttpExtensions.dll - - - ..\packages\Dapplo.HttpExtensions.OAuth.0.8.46\lib\net46\Dapplo.HttpExtensions.OAuth.dll - - - ..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll - - - ..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll - - - ..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll - - - ..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll - - - ..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll - - - ..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll - - - ..\packages\Dapplo.Windows.Clipboard.0.5.109\lib\net461\Dapplo.Windows.Clipboard.dll - - - ..\packages\Dapplo.Windows.Com.0.5.109\lib\net461\Dapplo.Windows.Com.dll - - - ..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll - - - ..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll - - - ..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll - - - ..\packages\Dapplo.Windows.EmbeddedBrowser.0.5.109\lib\net461\Dapplo.Windows.EmbeddedBrowser.dll - - - ..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll - - - ..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll - - - ..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll - - - ..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll - - - ..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll - + + PreserveNewest + + + + @@ -149,100 +23,36 @@ - - ..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\System.Windows.Interactivity.dll - + - - - - - - - - - - Never - - - Never - - - Never - - - Never - - - + + - - {5B924697-4DCD-4F98-85F1-105CB84B7341} - Greenshot.Addons - - - {bf35190d-b2a7-4cfa-b397-51cb384cf0d7} - Greenshot.Core - - - {f041c685-eb96-4ed1-9ace-0f5bd836610f} - Greenshot.Gfx - + + + + - + + + + + + + all + runtime; build; native; contentfiles; analyzers + - - - - - - - - - - - - - - - - - - MSBuild:Compile - Designer - - - - - - mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).dll" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" -copy "$(ProjectDir)\Languages\*.xml" "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" - - \ No newline at end of file + diff --git a/src/Greenshot.Addon.Photobucket/PhotobucketAddonModule.cs b/src/Greenshot.Addon.Photobucket/PhotobucketAddonModule.cs index c7c78fa33..e79619b5d 100644 --- a/src/Greenshot.Addon.Photobucket/PhotobucketAddonModule.cs +++ b/src/Greenshot.Addon.Photobucket/PhotobucketAddonModule.cs @@ -24,8 +24,10 @@ using Autofac; using Dapplo.Addons; using Dapplo.CaliburnMicro.Configuration; -using Dapplo.Ini; -using Dapplo.Language; +using Dapplo.Config.Ini; +using Dapplo.Config.Language; +using Greenshot.Addon.Photobucket.Configuration; +using Greenshot.Addon.Photobucket.Configuration.Impl; using Greenshot.Addon.Photobucket.ViewModels; using Greenshot.Addons.Components; @@ -37,13 +39,15 @@ namespace Greenshot.Addon.Photobucket protected override void Load(ContainerBuilder builder) { builder - .Register(context => IniConfig.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder - .Register(context => LanguageLoader.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder diff --git a/src/Greenshot.Addon.Photobucket/PhotobucketDestination.cs b/src/Greenshot.Addon.Photobucket/PhotobucketDestination.cs index a9aa15a51..507857e52 100644 --- a/src/Greenshot.Addon.Photobucket/PhotobucketDestination.cs +++ b/src/Greenshot.Addon.Photobucket/PhotobucketDestination.cs @@ -37,6 +37,7 @@ using Dapplo.HttpExtensions.Extensions; using Dapplo.HttpExtensions.OAuth; using Dapplo.Log; using Dapplo.Utils; +using Greenshot.Addon.Photobucket.Configuration; using Greenshot.Addons; using Greenshot.Addons.Components; using Greenshot.Addons.Core; diff --git a/src/Greenshot.Addon.Photobucket/Properties/AssemblyInfo.cs b/src/Greenshot.Addon.Photobucket/Properties/AssemblyInfo.cs deleted file mode 100644 index 4fa76ff4c..000000000 --- a/src/Greenshot.Addon.Photobucket/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,53 +0,0 @@ -#region Greenshot GNU General Public License - -// Greenshot - a free and open source screenshot tool -// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom -// -// For more information see: http://getgreenshot.org/ -// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 1 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -#endregion - -#region Usings - -using System.Reflection; -using System.Runtime.InteropServices; - -#endregion - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("Greenshot.Addon.Photobucket")] -[assembly: AssemblyDescription("A plugin to upload images to Photobucket")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Greenshot")] -[assembly: AssemblyProduct("Photobucket Plugin")] -[assembly: AssemblyCopyright("Copyright (C) 2007-2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// This sets the default COM visibility of types in the assembly to invisible. -// If you need to expose a type to COM, use [ComVisible(true)] on that type. - -[assembly: ComVisible(false)] - -// The assembly version, replaced by build scripts - -[assembly: AssemblyVersion("1.3.0.0")] -[assembly: AssemblyInformationalVersion("1.3.0.0")] -[assembly: AssemblyFileVersion("1.3.0.0")] \ No newline at end of file diff --git a/src/Greenshot.Addon.Photobucket/ViewModels/PhotobucketConfigViewModel.cs b/src/Greenshot.Addon.Photobucket/ViewModels/PhotobucketConfigViewModel.cs index 3c5d61214..5ffcad8f5 100644 --- a/src/Greenshot.Addon.Photobucket/ViewModels/PhotobucketConfigViewModel.cs +++ b/src/Greenshot.Addon.Photobucket/ViewModels/PhotobucketConfigViewModel.cs @@ -24,6 +24,7 @@ using System.Reactive.Disposables; using Dapplo.CaliburnMicro.Configuration; using Dapplo.CaliburnMicro.Extensions; +using Greenshot.Addon.Photobucket.Configuration; using Greenshot.Addons; using Greenshot.Addons.Core.Enums; using Greenshot.Addons.ViewModels; diff --git a/src/Greenshot.Addon.Photobucket/packages.config b/src/Greenshot.Addon.Photobucket/packages.config deleted file mode 100644 index 4f4d2c4e1..000000000 --- a/src/Greenshot.Addon.Photobucket/packages.config +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.Addon.Tfs/ITfsConfiguration.cs b/src/Greenshot.Addon.Tfs/Configuration/ITfsConfiguration.cs similarity index 88% rename from src/Greenshot.Addon.Tfs/ITfsConfiguration.cs rename to src/Greenshot.Addon.Tfs/Configuration/ITfsConfiguration.cs index c8b9fac76..5a32ff1b3 100644 --- a/src/Greenshot.Addon.Tfs/ITfsConfiguration.cs +++ b/src/Greenshot.Addon.Tfs/Configuration/ITfsConfiguration.cs @@ -25,9 +25,8 @@ using System; using System.ComponentModel; -using Dapplo.Ini; -using Dapplo.Ini.Converters; -using Dapplo.InterfaceImpl.Extensions; +using Dapplo.Config.Ini; +using Dapplo.Config.Ini.Converters; using Greenshot.Addons.Core; #endregion @@ -36,7 +35,7 @@ namespace Greenshot.Addon.Tfs { [IniSection("Tfs")] [Description("Greenshot Tfs Addon configuration")] - public interface ITfsConfiguration : IIniSection, IDestinationFileConfiguration, ITransactionalProperties, INotifyPropertyChanged + public interface ITfsConfiguration : IIniSection, IDestinationFileConfiguration { [Description("After upload copy OneDrive link to clipboard.")] [DefaultValue("true")] diff --git a/src/Greenshot.Addon.Tfs/ITfsLanguage.cs b/src/Greenshot.Addon.Tfs/Configuration/ITfsLanguage.cs similarity index 97% rename from src/Greenshot.Addon.Tfs/ITfsLanguage.cs rename to src/Greenshot.Addon.Tfs/Configuration/ITfsLanguage.cs index a40c99144..df724c5bf 100644 --- a/src/Greenshot.Addon.Tfs/ITfsLanguage.cs +++ b/src/Greenshot.Addon.Tfs/Configuration/ITfsLanguage.cs @@ -24,7 +24,7 @@ #region Usings using System.ComponentModel; -using Dapplo.Language; +using Dapplo.Config.Language; #endregion diff --git a/src/Greenshot.Addon.Tfs/Configuration/Impl/TfsConfigurationImpl.cs b/src/Greenshot.Addon.Tfs/Configuration/Impl/TfsConfigurationImpl.cs new file mode 100644 index 000000000..82611e9f3 --- /dev/null +++ b/src/Greenshot.Addon.Tfs/Configuration/Impl/TfsConfigurationImpl.cs @@ -0,0 +1,63 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System; +using Dapplo.Config.Ini; +using Greenshot.Core.Enums; + +namespace Greenshot.Addon.Tfs.Configuration.Impl +{ + internal class TfsConfigurationImpl : IniSectionBase, ITfsConfiguration + { + #region Implementation of IFileConfiguration + + public string OutputFilePath { get; set; } + public bool OutputFileAllowOverwrite { get; set; } + public string OutputFileFilenamePattern { get; set; } + public OutputFormats OutputFileFormat { get; set; } + public bool OutputFileReduceColors { get; set; } + public bool OutputFileAutoReduceColors { get; set; } + public int OutputFileReduceColorsTo { get; set; } + public int OutputFileJpegQuality { get; set; } + public bool OutputFilePromptQuality { get; set; } + public uint OutputFileIncrementingNumber { get; set; } + public string OptimizePNGCommand { get; set; } + public string OptimizePNGCommandArguments { get; set; } + + #endregion + + #region Implementation of IDestinationFileConfiguration + + public bool UseOwnSettings { get; set; } + + #endregion + + #region Implementation of ITfsConfiguration + + public bool AfterUploadLinkToClipBoard { get; set; } + public Uri TfsUri { get; set; } + public string ApiKey { get; set; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.Tfs/Configuration/Impl/TfsLanguageImpl.cs b/src/Greenshot.Addon.Tfs/Configuration/Impl/TfsLanguageImpl.cs new file mode 100644 index 000000000..6ed612ed9 --- /dev/null +++ b/src/Greenshot.Addon.Tfs/Configuration/Impl/TfsLanguageImpl.cs @@ -0,0 +1,48 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System.Diagnostics.CodeAnalysis; +using Dapplo.Config.Language; + +namespace Greenshot.Addon.Tfs.Configuration.Impl +{ + /// + /// This implements ITfsLanguage and takes care of storing, all setters are replaced via AutoProperties.Fody + /// + [SuppressMessage("ReSharper", "UnassignedGetOnlyAutoProperty")] +#pragma warning disable CS1591 + public class TfsLanguageImpl : LanguageBase, ITfsLanguage + { + #region Implementation of ITfsLanguage + + public string CommunicationWait { get; } + public string LabelUrl { get; } + public string LabelApiKey { get; } + public string SettingsTitle { get; } + public string UploadFailure { get; } + public string UploadMenuItem { get; } + public string UsePageLink { get; } + + #endregion + } +} diff --git a/src/Greenshot.Addon.Tfs/FodyWeavers.xml b/src/Greenshot.Addon.Tfs/FodyWeavers.xml new file mode 100644 index 000000000..7f5a26669 --- /dev/null +++ b/src/Greenshot.Addon.Tfs/FodyWeavers.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.Tfs/FodyWeavers.xsd b/src/Greenshot.Addon.Tfs/FodyWeavers.xsd new file mode 100644 index 000000000..061979a03 --- /dev/null +++ b/src/Greenshot.Addon.Tfs/FodyWeavers.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + 'true' to run assembly verification on the target assembly after all weavers have been finished. + + + + + A comma separated list of error codes that can be safely ignored in assembly verification. + + + + + \ No newline at end of file diff --git a/src/Greenshot.Addon.Tfs/Greenshot.Addon.Tfs.csproj b/src/Greenshot.Addon.Tfs/Greenshot.Addon.Tfs.csproj index 2f6afa236..ddfa88c55 100644 --- a/src/Greenshot.Addon.Tfs/Greenshot.Addon.Tfs.csproj +++ b/src/Greenshot.Addon.Tfs/Greenshot.Addon.Tfs.csproj @@ -1,149 +1,20 @@ - - - + + - {8B3643A5-AFED-49FF-8D66-6348FB102EB2} - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Library Greenshot.Addon.Tfs Greenshot.Addon.Tfs - v4.6.1 - Properties - False - False - 4 - false - Always - - - - 3.5 - - - - + net471;netcoreapp3.0 - + - - {bf35190d-b2a7-4cfa-b397-51cb384cf0d7} - Greenshot.Core - - - {f041c685-eb96-4ed1-9ace-0f5bd836610f} - Greenshot.Gfx - - - {5B924697-4DCD-4F98-85F1-105CB84B7341} - Greenshot.Addons - - - ..\packages\Autofac.4.8.1\lib\net45\Autofac.dll - - - ..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll - - - ..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll - - - ..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll - - - ..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll - - - ..\packages\ControlzEx.3.0.2.4\lib\net45\ControlzEx.dll - - - ..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll - - - ..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll - - - ..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll - - - ..\packages\Dapplo.CaliburnMicro.Configuration.1.0.75\lib\net461\Dapplo.CaliburnMicro.Configuration.dll - - - ..\packages\Dapplo.CaliburnMicro.Dapp.1.0.75\lib\net461\Dapplo.CaliburnMicro.Dapp.dll - - - ..\packages\Dapplo.CaliburnMicro.Menu.1.0.75\lib\net461\Dapplo.CaliburnMicro.Menu.dll - - - ..\packages\Dapplo.CaliburnMicro.Security.1.0.75\lib\net461\Dapplo.CaliburnMicro.Security.dll - - - ..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll - - - ..\packages\Dapplo.HttpExtensions.0.8.46\lib\net46\Dapplo.HttpExtensions.dll - - - ..\packages\Dapplo.HttpExtensions.JsonNet.0.8.46\lib\net46\Dapplo.HttpExtensions.JsonNet.dll - - - ..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll - - - ..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll - - - ..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll - - - ..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll - - - ..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll - - - ..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll - - - ..\packages\Dapplo.Windows.Clipboard.0.5.109\lib\net461\Dapplo.Windows.Clipboard.dll - - - ..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll - - - ..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll - - - ..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll - - - ..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll - - - ..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll - - - ..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll - - - ..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll - - - ..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll - - - ..\packages\MahApps.Metro.1.6.5\lib\net46\MahApps.Metro.dll - + + PreserveNewest + + + + - - ..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll - @@ -152,64 +23,38 @@ - - ..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll - - - ..\packages\ControlzEx.3.0.2.4\lib\net45\System.Windows.Interactivity.dll - + - - - - - - - - - - - - - - - - - - - + + - - MSBuild:Compile - Designer - + + + + + + + + + + + + + + + all + runtime; build; native; contentfiles; analyzers + - - - mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).dll" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" -copy "$(ProjectDir)\Languages\*.xml" "$(SolutionDir)Greenshot\bin\$(Configuration)\Languages\$(ProjectName)" - \ No newline at end of file diff --git a/src/Greenshot.Addon.Tfs/Properties/AssemblyInfo.cs b/src/Greenshot.Addon.Tfs/Properties/AssemblyInfo.cs deleted file mode 100644 index 2b0625fa5..000000000 --- a/src/Greenshot.Addon.Tfs/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,54 +0,0 @@ -#region Greenshot GNU General Public License - -// Greenshot - a free and open source screenshot tool -// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom -// -// For more information see: http://getgreenshot.org/ -// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 1 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -#endregion - -#region Usings - -using System.Reflection; -using System.Runtime.InteropServices; - -#endregion - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("Greenshot.Addon.Tfs")] -[assembly: AssemblyDescription("A plugin to upload screenshots to Tfs")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Greenshot")] -[assembly: AssemblyProduct("Tfs plugin")] -[assembly: AssemblyCopyright("Copyright (C) Greenshot 2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// This sets the default COM visibility of types in the assembly to invisible. -// If you need to expose a type to COM, use [ComVisible(true)] on that type. - -[assembly: ComVisible(false)] - -// The assembly version, replaced by build scripts - -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyInformationalVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] - diff --git a/src/Greenshot.Addon.Tfs/TfsAddonModule.cs b/src/Greenshot.Addon.Tfs/TfsAddonModule.cs index 4db22afbf..52b8d3413 100644 --- a/src/Greenshot.Addon.Tfs/TfsAddonModule.cs +++ b/src/Greenshot.Addon.Tfs/TfsAddonModule.cs @@ -24,8 +24,9 @@ using Autofac; using Dapplo.Addons; using Dapplo.CaliburnMicro.Configuration; -using Dapplo.Ini; -using Dapplo.Language; +using Dapplo.Config.Ini; +using Dapplo.Config.Language; +using Greenshot.Addon.Tfs.Configuration.Impl; using Greenshot.Addon.Tfs.ViewModels; using Greenshot.Addons.Components; @@ -37,13 +38,15 @@ namespace Greenshot.Addon.Tfs protected override void Load(ContainerBuilder builder) { builder - .Register(context => IniConfig.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder - .Register(context => LanguageLoader.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); diff --git a/src/Greenshot.Addon.Tfs/TfsClient.cs b/src/Greenshot.Addon.Tfs/TfsClient.cs index 89d3524a7..9554d46b1 100644 --- a/src/Greenshot.Addon.Tfs/TfsClient.cs +++ b/src/Greenshot.Addon.Tfs/TfsClient.cs @@ -94,7 +94,7 @@ namespace Greenshot.Addon.Tfs public async Task GetOwnWorkitems() { _tfsHttpBehaviour.MakeCurrent(); - Uri apiUri = _tfsConfiguration.TfsUri.AppendSegments("_apis").ExtendQuery("api-version", "3.0"); + var apiUri = _tfsConfiguration.TfsUri.AppendSegments("_apis").ExtendQuery("api-version", "3.0"); var client = HttpClientFactory.Create(_tfsConfiguration.TfsUri).SetBasicAuthorization("", _tfsConfiguration.ApiKey); var workitemsQueryUri = apiUri.AppendSegments("wit", "wiql"); @@ -127,7 +127,7 @@ namespace Greenshot.Addon.Tfs _tfsHttpBehaviour.MakeCurrent(); var client = HttpClientFactory.Create(_tfsConfiguration.TfsUri).SetBasicAuthorization("", _tfsConfiguration.ApiKey); - Uri apiUri = _tfsConfiguration.TfsUri.AppendSegments("_apis").ExtendQuery("api-version", "3.0"); + var apiUri = _tfsConfiguration.TfsUri.AppendSegments("_apis").ExtendQuery("api-version", "3.0"); var filename = surface.GenerateFilename(_coreConfiguration, _tfsConfiguration); var attachmentUri = apiUri.AppendSegments("wit", "attachments").ExtendQuery("fileName", filename); @@ -159,7 +159,7 @@ namespace Greenshot.Addon.Tfs _tfsHttpBehaviour.MakeCurrent(); var client = HttpClientFactory.Create(_tfsConfiguration.TfsUri).SetBasicAuthorization("", _tfsConfiguration.ApiKey); - Uri apiUri = _tfsConfiguration.TfsUri.AppendSegments("_apis").ExtendQuery("api-version", "3.0"); + var apiUri = _tfsConfiguration.TfsUri.AppendSegments("_apis").ExtendQuery("api-version", "3.0"); // https://docs.microsoft.com/en-us/rest/api/vsts/wit/work%20items/update#add_an_attachment var linkAttachmentUri = apiUri.AppendSegments("wit", "workItems", workItem.Id); var linkAttachmentRequest = new List diff --git a/src/Greenshot.Addon.Tfs/packages.config b/src/Greenshot.Addon.Tfs/packages.config deleted file mode 100644 index 4dac2319d..000000000 --- a/src/Greenshot.Addon.Tfs/packages.config +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.Addon.Win10/Greenshot.Addon.Win10.csproj b/src/Greenshot.Addon.Win10/Greenshot.Addon.Win10.csproj index 2fad3504f..36e68b158 100644 --- a/src/Greenshot.Addon.Win10/Greenshot.Addon.Win10.csproj +++ b/src/Greenshot.Addon.Win10/Greenshot.Addon.Win10.csproj @@ -1,176 +1,25 @@ - - - + + - Debug - AnyCPU - {9801F62C-540F-4BFE-9211-6405DEDE563B} - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Library - Properties Greenshot.Addon.Win10 Greenshot.Addon.Win10 - v4.6.1 - 512 - - 8.1 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 + net471;netcoreapp3.0 + - - ..\packages\Autofac.4.8.1\lib\net45\Autofac.dll - - - ..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll - - - ..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll - - - ..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll - - - ..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll - - - ..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll - - - ..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll - - - ..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll - - - ..\packages\Dapplo.CaliburnMicro.Configuration.1.0.75\lib\net461\Dapplo.CaliburnMicro.Configuration.dll - - - ..\packages\Dapplo.CaliburnMicro.Dapp.1.0.75\lib\net461\Dapplo.CaliburnMicro.Dapp.dll - - - ..\packages\Dapplo.CaliburnMicro.Menu.1.0.75\lib\net461\Dapplo.CaliburnMicro.Menu.dll - - - ..\packages\Dapplo.CaliburnMicro.Security.1.0.75\lib\net461\Dapplo.CaliburnMicro.Security.dll - - - ..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll - - - ..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll - - - ..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll - - - ..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll - - - ..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll - - - ..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll - - - ..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll - - - ..\packages\Dapplo.Windows.Clipboard.0.5.109\lib\net461\Dapplo.Windows.Clipboard.dll - - - ..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll - - - ..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll - - - ..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll - - - ..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll - - - ..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll - - - ..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll - - - ..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll - - - ..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll - - - - - - - - - - - ..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll - - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - - ..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll - - - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\System.Windows.Interactivity.dll - - - - - - - - + + PreserveNewest + - - - - - - - - - - + + + + + C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.16299.0\Windows.winmd + - - + + False @@ -180,28 +29,36 @@ C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.16299.0\Windows.winmd - - {bf35190d-b2a7-4cfa-b397-51cb384cf0d7} - Greenshot.Core - - - {f041c685-eb96-4ed1-9ace-0f5bd836610f} - Greenshot.Gfx - - - {5B924697-4DCD-4F98-85F1-105CB84B7341} - Greenshot.Addons - + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + - - - mkdir "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).dll" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" -copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)Greenshot\bin\$(Configuration)\Addons\" - - \ No newline at end of file diff --git a/src/Greenshot.Addon.Win10/Properties/AssemblyInfo.cs b/src/Greenshot.Addon.Win10/Properties/AssemblyInfo.cs deleted file mode 100644 index ed29b9b22..000000000 --- a/src/Greenshot.Addon.Win10/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Greenshot.Addon.Win10")] -[assembly: AssemblyDescription("A plug-in for Windows 10 only functionality")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Greenshot")] -[assembly: AssemblyProduct("Windown 10 Plug-in")] -[assembly: AssemblyCopyright("Copyright © Greenshot 2007-2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("9801f62c-540f-4bfe-9211-6405dede563b")] - -// The assembly version, replaced by build scripts -[assembly: AssemblyVersion("1.2.0.0")] -[assembly: AssemblyInformationalVersion("1.2.0.0")] -[assembly: AssemblyFileVersion("1.2.0.0")] diff --git a/src/Greenshot.Addon.Win10/Win10ShareDestination.cs b/src/Greenshot.Addon.Win10/Win10ShareDestination.cs index b912265b7..5a6f23402 100644 --- a/src/Greenshot.Addon.Win10/Win10ShareDestination.cs +++ b/src/Greenshot.Addon.Win10/Win10ShareDestination.cs @@ -41,6 +41,7 @@ using Greenshot.Addons.Interfaces.Plugin; using Greenshot.Core.Enums; using Greenshot.Gfx; using Color = Windows.UI.Color; +using Greenshot.Addons.Resources; namespace Greenshot.Addon.Win10 { @@ -78,7 +79,7 @@ namespace Greenshot.Addon.Win10 public bool IsDestroyed { get; set; } public bool IsShareCompleted { get; set; } - public TaskCompletionSource ShareTask { get; } = new TaskCompletionSource(); + public TaskCompletionSource ShareTask { get; } = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); public bool IsDataRequested { get; set; } } @@ -89,7 +90,7 @@ namespace Greenshot.Addon.Win10 /// /// /// ExportInformation - protected override ExportInformation ExportCapture(bool manuallyInitiated, ISurface surface, ICaptureDetails captureDetails) + public override async Task ExportCaptureAsync(bool manuallyInitiated, ISurface surface, ICaptureDetails captureDetails) { var exportInformation = new ExportInformation(Designation, Description); try @@ -120,7 +121,7 @@ namespace Greenshot.Addon.Win10 }); var windowHandle = new WindowInteropHelper(triggerWindow).Handle; - Share(shareInfo, windowHandle, surface, captureDetails).Wait(); + await Share(shareInfo, windowHandle, surface, captureDetails); Log.Debug().WriteLine("Sharing finished, closing window."); triggerWindow.Close(); if (string.IsNullOrWhiteSpace(shareInfo.ApplicationName)) @@ -180,7 +181,7 @@ namespace Greenshot.Addon.Win10 // Create logo RandomAccessStreamReference logoRandomAccessStreamReference; - using (var logo = GreenshotResources.GetGreenshotIcon().ToBitmap()) + using (var logo = GreenshotResources.Instance.GetGreenshotIcon().ToBitmap()) using (var logoThumbnail = logo.CreateThumbnail(30, 30)) { ImageOutput.SaveToStream(logoThumbnail, null, logoStream, outputSettings); @@ -215,6 +216,8 @@ namespace Greenshot.Addon.Win10 } // Signal that the stream is ready streamedFileDataRequest.Dispose(); + // Signal that the action is ready, bitmap was exported + shareInfo.ShareTask.TrySetResult(true); } catch (Exception) { diff --git a/src/Greenshot.Addon.Win10/packages.config b/src/Greenshot.Addon.Win10/packages.config deleted file mode 100644 index 2219eeae9..000000000 --- a/src/Greenshot.Addon.Win10/packages.config +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.Addons/AddonsModule.cs b/src/Greenshot.Addons/AddonsModule.cs index 34e964617..09f128f08 100644 --- a/src/Greenshot.Addons/AddonsModule.cs +++ b/src/Greenshot.Addons/AddonsModule.cs @@ -24,11 +24,13 @@ using Autofac; using Dapplo.Addons; using Dapplo.CaliburnMicro.Configuration; -using Dapplo.Ini; -using Dapplo.Language; +using Dapplo.Config.Ini; +using Dapplo.Config.Language; using Greenshot.Addons.Components; +using Greenshot.Addons.Config.Impl; using Greenshot.Addons.Controls; using Greenshot.Addons.Core; +using Greenshot.Addons.Resources; using Greenshot.Addons.ViewModels; namespace Greenshot.Addons @@ -39,28 +41,28 @@ namespace Greenshot.Addons protected override void Load(ContainerBuilder builder) { builder - .Register(context => IniConfig.Current.Get()) - .As() - .SingleInstance(); - - builder - .Register(context => IniConfig.Current.Get()) + .RegisterType() .As() + .As() + .As() .SingleInstance(); builder - .Register(context => LanguageLoader.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder - .Register(context => IniConfig.Current.Get()) + .RegisterType() .As() + .As() .SingleInstance(); builder .RegisterType() .AsSelf(); + builder .RegisterType() .AsSelf(); @@ -69,26 +71,19 @@ namespace Greenshot.Addons .RegisterType() .AsSelf(); - builder.RegisterType() - .As() - .SingleInstance(); - builder.RegisterType() .AsSelf() .SingleInstance(); + builder.RegisterType() .AsSelf(); - base.Load(builder); - } - /// - private class SetupConfig : IStartable - { - public void Start() - { - // Register the after load, so it's called when the configuration is created - IniConfig.Current.AfterLoad(coreConfiguration => coreConfiguration.AfterLoad()); - } + builder + .RegisterType() + .AsSelf() + .SingleInstance(); + + base.Load(builder); } } } diff --git a/src/Greenshot.Addons/Animation/EasePower.cs b/src/Greenshot.Addons/Animation/EasePower.cs index 82abe6d93..d13ab152f 100644 --- a/src/Greenshot.Addons/Animation/EasePower.cs +++ b/src/Greenshot.Addons/Animation/EasePower.cs @@ -34,11 +34,23 @@ namespace Greenshot.Addons.Animation /// public static class EasePower { + /// + /// Calculate EaseIn + /// + /// double + /// int + /// double public static double EaseIn(double s, int power) { return Math.Pow(s, power); } + /// + /// Calculate EaseInOut + /// + /// double + /// int + /// double public static double EaseInOut(double s, int power) { s *= 2; @@ -50,6 +62,12 @@ namespace Greenshot.Addons.Animation return sign / 2.0 * (Math.Pow(s - 2, power) + sign * 2); } + /// + /// Calculate EaseOut + /// + /// double + /// int + /// double public static double EaseOut(double s, int power) { var sign = power % 2 == 0 ? -1 : 1; diff --git a/src/Greenshot.Addons/Config/Impl/CoreConfigurationImpl.cs b/src/Greenshot.Addons/Config/Impl/CoreConfigurationImpl.cs new file mode 100644 index 000000000..1eac3c3e4 --- /dev/null +++ b/src/Greenshot.Addons/Config/Impl/CoreConfigurationImpl.cs @@ -0,0 +1,164 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Windows; +using Dapplo.Config.Ini; +using Dapplo.Windows.Common.Structs; +using Dapplo.Windows.User32.Structs; +using Greenshot.Addons.Core; +using Greenshot.Addons.Core.Enums; +using Greenshot.Core.Enums; + +namespace Greenshot.Addons.Config.Impl +{ + public class CoreConfigurationImpl : IniSectionBase, ICoreConfiguration + { + #region Overrides of IniSectionBase + + public override void AfterLoad() + { + CoreConfigurationExtensions.AfterLoad(this); + } + + #endregion + + #region Implementation of IFileConfiguration + + public string OutputFilePath { get; set; } + public bool OutputFileAllowOverwrite { get; set; } + public string OutputFileFilenamePattern { get; set; } + public OutputFormats OutputFileFormat { get; set; } + public bool OutputFileReduceColors { get; set; } + public bool OutputFileAutoReduceColors { get; set; } + public int OutputFileReduceColorsTo { get; set; } + public int OutputFileJpegQuality { get; set; } + public bool OutputFilePromptQuality { get; set; } + public uint OutputFileIncrementingNumber { get; set; } + public string OptimizePNGCommand { get; set; } + public string OptimizePNGCommandArguments { get; set; } + + #endregion + + #region Implementation of ICaptureConfiguration + + public NativeSize Win10BorderCrop { get; set; } + public bool CaptureMousepointer { get; set; } + public bool CaptureWindowsInteractive { get; set; } + public int CaptureDelay { get; set; } + public ScreenCaptureMode ScreenCaptureMode { get; set; } + public int ScreenToCapture { get; set; } + public WindowCaptureModes WindowCaptureMode { get; set; } + public Color DWMBackgroundColor { get; set; } + public IList NoGDICaptureForProduct { get; set; } + public IList NoDWMCaptureForProduct { get; set; } + public bool WindowCaptureRemoveCorners { get; set; } + public IList WindowCornerCutShape { get; set; } + + #endregion + + #region Implementation of ICoreConfiguration + + public string Language { get; set; } + public string RegionHotkey { get; set; } + public string WindowHotkey { get; set; } + public string FullscreenHotkey { get; set; } + public string LastregionHotkey { get; set; } + public string IEHotkey { get; set; } + public bool IsFirstLaunch { get; set; } + public IList OutputDestinations { get; set; } + public IList PickerDestinations { get; set; } + public IList ClipboardFormats { get; set; } + public bool WindowCaptureAllChildLocations { get; set; } + public bool PlayCameraSound { get; set; } + public bool ShowTrayNotification { get; set; } + public bool OutputFileCopyPathToClipboard { get; set; } + public string OutputFileAsFullpath { get; set; } + public bool OutputPrintPromptOptions { get; set; } + public bool OutputPrintAllowRotate { get; set; } + public bool OutputPrintAllowEnlarge { get; set; } + public bool OutputPrintAllowShrink { get; set; } + public bool OutputPrintCenter { get; set; } + public bool OutputPrintInverted { get; set; } + public bool OutputPrintGrayscale { get; set; } + public bool OutputPrintMonochrome { get; set; } + public byte OutputPrintMonochromeThreshold { get; set; } + public bool OutputPrintFooter { get; set; } + public string OutputPrintFooterPattern { get; set; } + public string NotificationSound { get; set; } + public bool UseProxy { get; set; } + public bool IECapture { get; set; } + public bool IEFieldCapture { get; set; } + public IList WindowClassesToCheckForIE { get; set; } + public int AutoCropDifference { get; set; } + public IList IncludePlugins { get; set; } + public IList ExcludePlugins { get; set; } + public IList ExcludeDestinations { get; set; } + public bool CheckForUpdates { get; set; } + public int UpdateCheckInterval { get; set; } + public DateTime LastUpdateCheck { get; set; } + public bool DisableSettings { get; set; } + public bool DisableQuickSettings { get; set; } + public bool HideTrayicon { get; set; } + public bool HideExpertSettings { get; set; } + public bool ThumnailPreview { get; set; } + public bool OptimizeForRDP { get; set; } + public bool DisableRDPOptimizing { get; set; } + public bool MinimizeWorkingSetSize { get; set; } + public bool CheckForUnstable { get; set; } + public IList ActiveTitleFixes { get; set; } + public IDictionary TitleFixMatcher { get; set; } + public IDictionary TitleFixReplacer { get; set; } + public IList ExperimentalFeatures { get; set; } + public bool EnableSpecialDIBClipboardReader { get; set; } + public ClickActions LeftClickAction { get; set; } + public ClickActions DoubleClickAction { get; set; } + public bool ZoomerEnabled { get; set; } + public float ZoomerOpacity { get; set; } + public int MaxMenuItemLength { get; set; } + public string MailApiTo { get; set; } + public string MailApiCC { get; set; } + public string MailApiBCC { get; set; } + public string LastSaveWithVersion { get; set; } + public bool ProcessEXIFOrientation { get; set; } + public NativeRect LastCapturedRegion { get; set; } + public NativeSize IconSize { get; set; } + public int WebRequestTimeout { get; set; } + public int WebRequestReadWriteTimeout { get; set; } + public bool IsScrollingCaptureEnabled { get; set; } + public bool IsPortable { get; set; } + public ISet Permissions { get; set; } + + #endregion + + #region Implementation of IUiConfiguration + + public WindowStartupLocation DefaultWindowStartupLocation { get; set; } + public bool AreWindowLocationsStored { get; set; } + public IDictionary WindowLocations { get; set; } + + #endregion + } +} diff --git a/src/Greenshot.Addons/Config/Impl/GreenshotLanguageImpl.cs b/src/Greenshot.Addons/Config/Impl/GreenshotLanguageImpl.cs new file mode 100644 index 000000000..19ebfaaba --- /dev/null +++ b/src/Greenshot.Addons/Config/Impl/GreenshotLanguageImpl.cs @@ -0,0 +1,184 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System.Diagnostics.CodeAnalysis; +using Dapplo.Config.Language; + +namespace Greenshot.Addons.Config.Impl +{ + /// + /// This implements IGreenshotLanguage and takes care of storing, all setters are replaced via AutoProperties.Fody + /// + [SuppressMessage("ReSharper", "UnassignedGetOnlyAutoProperty")] +#pragma warning disable CS1591 + internal class GreenshotLanguageImpl : LanguageBase, IGreenshotLanguage + { + #region Implementation of ICoreTranslations + + public string Cancel { get; } + public string Ok { get; } + + #endregion + + #region Implementation of IGreenshotLanguage + + public string None { get; } + public string AboutBugs { get; } + public string AboutDonations { get; } + public string AboutHost { get; } + public string AboutIcons { get; } + public string AboutLicense { get; } + public string AboutTitle { get; } + public string AboutTranslation { get; } + public string ApplicationTitle { get; } + public string BugreportCancel { get; } + public string BugreportInfo { get; } + public string BugreportTitle { get; } + public string ClipboardError { get; } + public string ClipboardInuse { get; } + public string Close { get; } + public string ColorpickerAlpha { get; } + public string ColorpickerApply { get; } + public string ColorpickerBlue { get; } + public string ColorpickerGreen { get; } + public string ColorpickerHtmlcolor { get; } + public string ColorpickerRecentcolors { get; } + public string ColorpickerRed { get; } + public string ColorpickerTitle { get; } + public string ColorpickerTransparent { get; } + public string ConfigUnauthorizedaccessWrite { get; } + public string ContextmenuAbout { get; } + public string ContextmenuCapturearea { get; } + public string ContextmenuCaptureclipboard { get; } + public string ContextmenuCapturefullscreen { get; } + public string ContextmenuCapturefullscreenAll { get; } + public string ContextmenuCapturefullscreenLeft { get; } + public string ContextmenuCapturefullscreenTop { get; } + public string ContextmenuCapturefullscreenRight { get; } + public string ContextmenuCapturefullscreenBottom { get; } + public string ContextmenuCapturelastregion { get; } + public string ContextmenuCapturewindow { get; } + public string ContextmenuDonate { get; } + public string ContextmenuExit { get; } + public string ContextmenuHelp { get; } + public string ContextmenuOpenfile { get; } + public string ContextmenuQuicksettings { get; } + public string ContextmenuSettings { get; } + public string ContextmenuCaptureie { get; } + public string ContextmenuOpenrecentcapture { get; } + public string Error { get; } + public string ErrorMultipleinstances { get; } + public string ErrorNowriteaccess { get; } + public string ErrorOpenfile { get; } + public string ErrorOpenlink { get; } + public string ErrorSave { get; } + public string ErrorSaveInvalidChars { get; } + public string HelpTitle { get; } + public string JpegqualitydialogChoosejpegquality { get; } + public string QualitydialogDontaskagain { get; } + public string QualitydialogTitle { get; } + public string SettingsReducecolors { get; } + public string PrintError { get; } + public string PrintoptionsAllowcenter { get; } + public string PrintoptionsAllowenlarge { get; } + public string PrintoptionsAllowrotate { get; } + public string PrintoptionsAllowshrink { get; } + public string PrintoptionsColors { get; } + public string PrintoptionsDontaskagain { get; } + public string PrintoptionsPagelayout { get; } + public string PrintoptionsPrintcolor { get; } + public string PrintoptionsPrintgrayscale { get; } + public string PrintoptionsPrintmonochrome { get; } + public string PrintoptionsTimestamp { get; } + public string PrintoptionsInverted { get; } + public string PrintoptionsTitle { get; } + public string QuicksettingsDestinationFile { get; } + public string SettingsAlwaysshowqualitydialog { get; } + public string SettingsAlwaysshowprintoptionsdialog { get; } + public string SettingsApplicationsettings { get; } + public string SettingsAutostartshortcut { get; } + public string SettingsCapture { get; } + public string SettingsCaptureMousepointer { get; } + public string SettingsCaptureWindowsInteractive { get; } + public string SettingsCopypathtoclipboard { get; } + public string SettingsDestination { get; } + public string SettingsDestinationClipboard { get; } + public string SettingsDestinationEditor { get; } + public string SettingsDestinationEmail { get; } + public string SettingsDestinationFile { get; } + public string SettingsDestinationFileas { get; } + public string SettingsDestinationPrinter { get; } + public string SettingsDestinationPicker { get; } + public string SettingsEditor { get; } + public string SettingsFilenamepattern { get; } + public string SettingsGeneral { get; } + public string SettingsIecapture { get; } + public string SettingsJpegquality { get; } + public string SettingsQualitysettings { get; } + public string SettingsLanguage { get; } + public string SettingsMessageFilenamepattern { get; } + public string SettingsOutput { get; } + public string SettingsPlaysound { get; } + public string SettingsPlugins { get; } + public string SettingsPluginsName { get; } + public string SettingsPluginsVersion { get; } + public string SettingsPluginsCreatedby { get; } + public string SettingsPluginsDllpath { get; } + public string SettingsPreferredfilesettings { get; } + public string SettingsPrimaryimageformat { get; } + public string SettingsPrinter { get; } + public string SettingsPrintoptions { get; } + public string SettingsRegisterhotkeys { get; } + public string SettingsShowflashlight { get; } + public string SettingsStoragelocation { get; } + public string SettingsTitle { get; } + public string SettingsTooltipFilenamepattern { get; } + public string SettingsTooltipLanguage { get; } + public string SettingsTooltipPrimaryimageformat { get; } + public string SettingsTooltipRegisterhotkeys { get; } + public string SettingsTooltipStoragelocation { get; } + public string SettingsVisualization { get; } + public string SettingsShownotify { get; } + public string SettingsWaittime { get; } + public string SettingsZoom { get; } + public string SettingsWindowscapture { get; } + public string SettingsWindowCaptureMode { get; } + public string SettingsScreenCaptureMode { get; } + public string SettingsNetwork { get; } + public string SettingsCheckperiod { get; } + public string SettingsUsedefaultproxy { get; } + public string TooltipFirststart { get; } + public string Warning { get; } + public string WarningHotkeys { get; } + public string Hotkeys { get; } + public string WaitIeCapture { get; } + public string UpdateFound { get; } + public string ExportedTo { get; } + public string LatestVersion { get; } + public string CurrentVersion { get; } + public string Expert { get; } + public string DestinationExportFailed { get; } + + #endregion + } +} diff --git a/src/Greenshot.Addons/Config/Impl/HttpConfigurationImpl.cs b/src/Greenshot.Addons/Config/Impl/HttpConfigurationImpl.cs new file mode 100644 index 000000000..bf1a2f62e --- /dev/null +++ b/src/Greenshot.Addons/Config/Impl/HttpConfigurationImpl.cs @@ -0,0 +1,76 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System; +using System.Net; +using System.Net.Cache; +using System.Net.Http; +using System.Net.Security; +using System.Security.Cryptography.X509Certificates; +using System.Security.Principal; +using Dapplo.Config.Ini; +using Dapplo.HttpExtensions; +using Greenshot.Addons.Core; + +namespace Greenshot.Addons.Config.Impl +{ + internal class HttpConfigurationImpl : IniSectionBase, IHttpConfiguration + { + public bool AllowAutoRedirect { get; set; } + public ICredentials Credentials { get; set; } + public ClientCertificateOption ClientCertificateOptions { get; set; } + public DecompressionMethods DefaultDecompressionMethods { get; set; } + public string DefaultUserAgent { get; set; } + public bool Expect100Continue { get; set; } + public int MaxAutomaticRedirections { get; set; } + public long MaxResponseContentBufferSize { get; set; } + public bool PreAuthenticate { get; set; } + public TimeSpan RequestTimeout { get; set; } + public bool UseCookies { get; set; } + public bool UseDefaultCredentials { get; set; } + public AuthenticationLevel AuthenticationLevel { get; set; } + public X509CertificateCollection ClientCertificates { get; set; } + public int MaxConnectionsPerServer { get; set; } + public Uri ProxyUri { get; set; } + public string[] ProxyBypassList { get; set; } + public bool ProxyBypassOnLocal { get; set; } + public ICredentials ProxyCredentials { get; set; } + public long MaxRequestContentBufferSize { get; set; } + public int MaxResponseHeadersLength { get; set; } + public bool UseProxy { get; set; } + public bool IgnoreSslCertificateErrors { get; set; } + public bool UseDefaultCredentialsForProxy { get; set; } + public bool UseDefaultProxy { get; set; } + public TimeSpan ContinueTimeout { get; set; } + public bool AllowPipelining { get; set; } + + public TokenImpersonationLevel ImpersonationLevel { get; set; } + public RequestCacheLevel RequestCacheLevel { get; set; } + public int ReadWriteTimeout { get; set; } + + IHttpSettings IHttpSettings.ShallowClone() + { + return ShallowClone() as IHttpSettings; + } + } +} diff --git a/src/Greenshot.Addons/Controls/AnimatingForm.cs b/src/Greenshot.Addons/Controls/AnimatingForm.cs index 606f9521d..3f007f65e 100644 --- a/src/Greenshot.Addons/Controls/AnimatingForm.cs +++ b/src/Greenshot.Addons/Controls/AnimatingForm.cs @@ -25,7 +25,7 @@ using System; using System.Windows.Forms; -using Dapplo.Language; +using Dapplo.Config.Language; using Dapplo.Log; using Dapplo.Windows.Gdi32; using Dapplo.Windows.Gdi32.Enums; @@ -41,7 +41,7 @@ namespace Greenshot.Addons.Controls /// public class AnimatingForm : GreenshotForm { - private readonly ICoreConfiguration _coreConfiguration; + protected readonly ICoreConfiguration _coreConfiguration; private const int DefaultVerticalRefresh = 60; private static readonly LogSource Log = new LogSource(); private Timer _timer; diff --git a/src/Greenshot.Addons/Controls/BackgroundForm.cs b/src/Greenshot.Addons/Controls/BackgroundForm.cs index d96007089..e9958a493 100644 --- a/src/Greenshot.Addons/Controls/BackgroundForm.cs +++ b/src/Greenshot.Addons/Controls/BackgroundForm.cs @@ -28,6 +28,7 @@ using System.Drawing; using System.Threading; using System.Windows.Forms; using Greenshot.Addons.Core; +using Greenshot.Addons.Resources; #endregion @@ -46,7 +47,7 @@ namespace Greenshot.Addons.Controls // The InitializeComponent() call is required for Windows Forms designer support. // InitializeComponent(); - Icon = GreenshotResources.GetGreenshotIcon(); + Icon = GreenshotResources.Instance.GetGreenshotIcon(); _shouldClose = false; Text = title; label_pleasewait.Text = text; diff --git a/src/Greenshot.Addons/Controls/ContextMenuToolStripProfessionalRenderer.cs b/src/Greenshot.Addons/Controls/ContextMenuToolStripProfessionalRenderer.cs index 4121b6cc0..7ba5aaeee 100644 --- a/src/Greenshot.Addons/Controls/ContextMenuToolStripProfessionalRenderer.cs +++ b/src/Greenshot.Addons/Controls/ContextMenuToolStripProfessionalRenderer.cs @@ -25,7 +25,8 @@ using System.Drawing; using System.Windows.Forms; -using Dapplo.Ini; +using Dapplo.Windows.Common.Structs; +using Greenshot.Addons.Config.Impl; using Greenshot.Addons.Core; using Greenshot.Gfx; @@ -38,12 +39,14 @@ namespace Greenshot.Addons.Controls /// public class ContextMenuToolStripProfessionalRenderer : ToolStripProfessionalRenderer { - private static readonly ICoreConfiguration CoreConfig = IniConfig.Current.Get(); - private Image _scaledCheckbox; + // TODO: Solve, was static reference! + private static readonly ICoreConfiguration CoreConfig = new CoreConfigurationImpl(); + + private Image _scaledCheckbox; private bool _newImage; protected override void OnRenderItemCheck(ToolStripItemImageRenderEventArgs e) { - if (_scaledCheckbox == null || _scaledCheckbox.Size != CoreConfig.IconSize) + if (_scaledCheckbox == null || (NativeSize)_scaledCheckbox.Size != CoreConfig.IconSize) { if (_newImage) { diff --git a/src/Greenshot.Addons/Controls/GreenshotComboBox.cs b/src/Greenshot.Addons/Controls/GreenshotComboBox.cs index f806fb477..e95b1e014 100644 --- a/src/Greenshot.Addons/Controls/GreenshotComboBox.cs +++ b/src/Greenshot.Addons/Controls/GreenshotComboBox.cs @@ -25,8 +25,9 @@ using System; using System.ComponentModel; +using System.Linq; using System.Windows.Forms; -using Dapplo.Language; +using Dapplo.Config.Language; #endregion diff --git a/src/Greenshot.Addons/Controls/GreenshotForm.cs b/src/Greenshot.Addons/Controls/GreenshotForm.cs index 3a911e7a2..b7885413f 100644 --- a/src/Greenshot.Addons/Controls/GreenshotForm.cs +++ b/src/Greenshot.Addons/Controls/GreenshotForm.cs @@ -26,16 +26,19 @@ using System; using System.Collections.Generic; using System.ComponentModel; +using System.Linq; using System.Reflection; using System.Windows.Forms; -using Dapplo.Ini; -using Dapplo.InterfaceImpl.Extensions; -using Dapplo.Language; +using Dapplo.Config.Ini; +using Dapplo.Config.Interfaces; +using Dapplo.Config.Language; using Dapplo.Log; +using Dapplo.Utils; using Dapplo.Windows.Desktop; using Dapplo.Windows.Dpi; using Dapplo.Windows.Dpi.Forms; using Greenshot.Addons.Core; +using Greenshot.Addons.Resources; using Greenshot.Gfx; #endregion @@ -66,7 +69,7 @@ namespace Greenshot.Addons.Controls { _language = language; // Add the Dapplo.Windows DPI change handler - ScaleHandler = BitmapScaleHandler.WithComponentResourceManager(FormDpiHandler, GetType(), (bitmap, dpi) => bitmap.ScaleIconForDisplaying(dpi)); + ScaleHandler = BitmapScaleHandler.Create(FormDpiHandler, (imageName, dpi) => GreenshotResources.Instance.GetBitmap(imageName, GetType()), (bitmap, dpi) => bitmap.ScaleIconForDisplaying(dpi)); } protected bool ManualLanguageApply { get; set; } @@ -87,7 +90,7 @@ namespace Greenshot.Addons.Controls { // Every GreenshotForm should have it's default icon // And it might not ne needed for a Tool Window, but still for the task manager / switcher it's important - Icon = GreenshotResources.GetGreenshotIcon(); + Icon = GreenshotResources.Instance.GetGreenshotIcon(); if (!ManualLanguageApply) { ApplyLanguage(); @@ -142,17 +145,33 @@ namespace Greenshot.Addons.Controls return; } - if (!string.IsNullOrEmpty(languageKey) && _language.Keys().Contains(languageKey)) + string translation; + if (!string.IsNullOrEmpty(languageKey)) { - applyTo.Text = _language[languageKey]; + if (_language.TryGetTranslation(languageKey, out translation)) + { + applyTo.Text = translation; + return; + } + + var dotIndex = languageKey.IndexOf('.'); + if (dotIndex >= 0) + { + var alternativeKey = languageKey.Substring(dotIndex + 1); + if (_language.TryGetTranslation(alternativeKey, out translation)) + { + applyTo.Text = translation; + return; + } + } + } + + if (_language.TryGetTranslation(applyTo.Name, out translation)) + { + applyTo.Text = translation; return; } - if (_language.Keys().Contains(applyTo.Name)) - { - applyTo.Text = _language[applyTo.Name]; - return; - } Log.Warn().WriteLine("Unknown language key '{0}' configured for control '{1}'", languageKey, applyTo.Name); } @@ -194,7 +213,8 @@ namespace Greenshot.Addons.Controls return; } - var section = IniConfig.Current[configBindable.SectionName]; + // TODO: Fix this + IIniSection section = null; // IniConfig.Current[configBindable.SectionName]; if (section == null) { return; @@ -202,7 +222,7 @@ namespace Greenshot.Addons.Controls // Only update the language, so get the actual value and than repopulate var currentValue = comboxBox.GetSelectedEnum(); - comboxBox.Populate(section[configBindable.PropertyName].ValueType); + comboxBox.Populate(section.GetIniValue(configBindable.PropertyName).ValueType); comboxBox.SetValue(currentValue); } @@ -234,7 +254,7 @@ namespace Greenshot.Addons.Controls try { // Set title of the form - if (!string.IsNullOrEmpty(LanguageKey) && _language.Keys().Contains(LanguageKey)) + if (!string.IsNullOrEmpty(LanguageKey) && _language.Keys().Contains(LanguageKey, AbcComparer.Instance)) { Text = _language[LanguageKey]; } @@ -280,15 +300,30 @@ namespace Greenshot.Addons.Controls return; } - if (!string.IsNullOrEmpty(languageKey) && _language.Keys().Contains(languageKey)) + string translation; + if (!string.IsNullOrEmpty(languageKey)) { - applyTo.Text = _language[languageKey]; - return; + if (_language.TryGetTranslation(languageKey, out translation)) + { + applyTo.Text = translation; + return; + } + + var dotIndex = languageKey.IndexOf('.'); + if (dotIndex >= 0) + { + var alternativeKey = languageKey.Substring(dotIndex + 1); + if (_language.TryGetTranslation(alternativeKey, out translation)) + { + applyTo.Text = translation; + return; + } + } } - if (_language.Keys().Contains(applyTo.Name)) + if (_language.TryGetTranslation(applyTo.Name, out translation)) { - applyTo.Text = _language[applyTo.Name]; + applyTo.Text = translation; return; } Log.Warn().WriteLine("Wrong language key '{0}' configured for control '{1}'", languageKey, applyTo.Name); @@ -308,7 +343,8 @@ namespace Greenshot.Addons.Controls continue; } - var section = IniConfig.Current[configBindable.SectionName]; + // TODO: Fix this + IIniSection section = null;//IniConfig.Current[configBindable.SectionName]; if (section == null) { continue; @@ -375,7 +411,8 @@ namespace Greenshot.Addons.Controls continue; } - var section = IniConfig.Current[configBindable.SectionName]; + // TODO: Fix this + IIniSection section = null;//IniConfig.Current[configBindable.SectionName]; if (section == null) { continue; diff --git a/src/Greenshot.Addons/Controls/InvertedBoolenConverter.cs b/src/Greenshot.Addons/Controls/InvertedBooleanConverter.cs similarity index 93% rename from src/Greenshot.Addons/Controls/InvertedBoolenConverter.cs rename to src/Greenshot.Addons/Controls/InvertedBooleanConverter.cs index 7c42d8b75..bc45d5a97 100644 --- a/src/Greenshot.Addons/Controls/InvertedBoolenConverter.cs +++ b/src/Greenshot.Addons/Controls/InvertedBooleanConverter.cs @@ -27,7 +27,7 @@ using System.Windows.Data; namespace Greenshot.Addons.Controls { - public class InvertedBoolenConverter : IValueConverter + public class InvertedBooleanConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { diff --git a/src/Greenshot.Addons/Controls/PleaseWaitForm.cs b/src/Greenshot.Addons/Controls/PleaseWaitForm.cs index 4084e0c36..04d74c3c7 100644 --- a/src/Greenshot.Addons/Controls/PleaseWaitForm.cs +++ b/src/Greenshot.Addons/Controls/PleaseWaitForm.cs @@ -29,6 +29,7 @@ using System.Threading.Tasks; using System.Windows.Forms; using Dapplo.Log; using Greenshot.Addons.Core; +using Greenshot.Addons.Resources; #endregion @@ -57,7 +58,7 @@ namespace Greenshot.Addons.Controls // The InitializeComponent() call is required for Windows Forms designer support. // InitializeComponent(); - Icon = GreenshotResources.GetGreenshotIcon(); + Icon = GreenshotResources.Instance.GetGreenshotIcon(); } public PleaseWaitForm(IGreenshotLanguage greenshotLanguage, CancellationTokenSource cancellationTokenSource = default) : this(greenshotLanguage) diff --git a/src/Greenshot.Addons/Controls/ResourceImageManager.cs b/src/Greenshot.Addons/Controls/ResourceImageManager.cs index 50b0b7a81..04fb9ea29 100644 --- a/src/Greenshot.Addons/Controls/ResourceImageManager.cs +++ b/src/Greenshot.Addons/Controls/ResourceImageManager.cs @@ -25,6 +25,7 @@ using System; using System.Collections.Generic; using System.Drawing; using System.Linq; +using Greenshot.Addons.Resources; using Greenshot.Gfx; namespace Greenshot.Addons.Controls @@ -34,12 +35,12 @@ namespace Greenshot.Addons.Controls /// public class ResourceImageManager : IDisposable { - private readonly System.ComponentModel.ComponentResourceManager _resources; + private readonly Type _resourceType; private readonly IList _images = new List(); public ResourceImageManager(Type resourceType) { - _resources = new System.ComponentModel.ComponentResourceManager(resourceType); - } + _resourceType = resourceType; + } /// /// Get icons for displaying @@ -48,7 +49,7 @@ namespace Greenshot.Addons.Controls /// Bitmap public Bitmap GetIcon(string imageName) { - var bitmap = (Bitmap)_resources.GetObject(imageName); + var bitmap = GreenshotResources.Instance.GetBitmap(imageName, _resourceType); var result = bitmap.ScaleIconForDisplaying(96); if (Equals(bitmap, result)) { diff --git a/src/Greenshot.Addons/Controls/SaveImageFileDialog.cs b/src/Greenshot.Addons/Controls/SaveImageFileDialog.cs index 8671b2468..7a6de3ad1 100644 --- a/src/Greenshot.Addons/Controls/SaveImageFileDialog.cs +++ b/src/Greenshot.Addons/Controls/SaveImageFileDialog.cs @@ -26,8 +26,8 @@ using System; using System.IO; using System.Windows.Forms; -using Dapplo.Ini; using Dapplo.Log; +using Greenshot.Addons.Config.Impl; using Greenshot.Addons.Core; using Greenshot.Addons.Interfaces; using Greenshot.Core.Enums; @@ -43,8 +43,9 @@ namespace Greenshot.Addons.Controls public class SaveImageFileDialog : IDisposable { private static readonly LogSource Log = new LogSource(); - private static readonly ICoreConfiguration conf = IniConfig.Current.Get(); - private readonly ICaptureDetails _captureDetails; + // TODO: Solve, was static reference! + private static readonly ICoreConfiguration CoreConfiguration = new CoreConfigurationImpl(); + private readonly ICaptureDetails _captureDetails; private DirectoryInfo _eagerlyCreatedDirectory; private FilterOption[] _filterOptions; protected SaveFileDialog SaveFileDialog; @@ -145,21 +146,21 @@ namespace Greenshot.Addons.Controls string initialDirectory = null; try { - conf.ValidateAndCorrect(); - initialDirectory = Path.GetDirectoryName(conf.OutputFileAsFullpath); + CoreConfiguration.ValidateAndCorrect(); + initialDirectory = Path.GetDirectoryName(CoreConfiguration.OutputFileAsFullpath); } catch { - Log.Warn().WriteLine("OutputFileAsFullpath was set to {0}, ignoring due to problem in path.", conf.OutputFileAsFullpath); + Log.Warn().WriteLine("OutputFileAsFullpath was set to {0}, ignoring due to problem in path.", CoreConfiguration.OutputFileAsFullpath); } if (!string.IsNullOrEmpty(initialDirectory) && Directory.Exists(initialDirectory)) { SaveFileDialog.InitialDirectory = initialDirectory; } - else if (Directory.Exists(conf.OutputFilePath)) + else if (Directory.Exists(CoreConfiguration.OutputFilePath)) { - SaveFileDialog.InitialDirectory = conf.OutputFilePath; + SaveFileDialog.InitialDirectory = CoreConfiguration.OutputFilePath; } // The following property fixes a problem that the directory where we save is locked (bug #2899790) SaveFileDialog.RestoreDirectory = true; @@ -174,7 +175,7 @@ namespace Greenshot.Addons.Controls PrepareFilterOptions(); var fdf = ""; var preselect = 0; - var outputFileFormatAsString = Enum.GetName(typeof(OutputFormats), conf.OutputFileFormat); + var outputFileFormatAsString = Enum.GetName(typeof(OutputFormats), CoreConfiguration.OutputFileFormat); for (var i = 0; i < _filterOptions.Length; i++) { var fo = _filterOptions[i]; @@ -223,7 +224,7 @@ namespace Greenshot.Addons.Controls private void ApplySuggestedValues() { // build the full path and set dialog properties - FileName = FilenameHelper.GetFilenameWithoutExtensionFromPattern(conf.OutputFileFilenamePattern, _captureDetails); + FileName = FilenameHelper.GetFilenameWithoutExtensionFromPattern(CoreConfiguration.OutputFileFilenamePattern, _captureDetails); } private void CleanUp() diff --git a/src/Greenshot.Addons/Controls/ThumbnailForm.cs b/src/Greenshot.Addons/Controls/ThumbnailForm.cs index cd9aade6e..5b1b490b1 100644 --- a/src/Greenshot.Addons/Controls/ThumbnailForm.cs +++ b/src/Greenshot.Addons/Controls/ThumbnailForm.cs @@ -26,13 +26,14 @@ using System; using System.Drawing; using System.Windows.Forms; -using Dapplo.Ini; using Dapplo.Windows.Common.Extensions; using Dapplo.Windows.Common.Structs; using Dapplo.Windows.Desktop; using Dapplo.Windows.DesktopWindowsManager; +using Dapplo.Windows.DesktopWindowsManager.Structs; using Dapplo.Windows.User32; using Dapplo.Windows.User32.Enums; +using Greenshot.Addons.Config.Impl; using Greenshot.Addons.Core; using Greenshot.Core.Enums; @@ -47,9 +48,10 @@ namespace Greenshot.Addons.Controls /// public sealed class ThumbnailForm : FormWithoutActivation { - private static readonly ICoreConfiguration conf = IniConfig.Current.Get(); + // TODO: Solve, was static reference! + private static readonly ICoreConfiguration coreConfiguration = new CoreConfigurationImpl(); - private IntPtr _thumbnailHandle = IntPtr.Zero; + private IntPtr _thumbnailHandle = IntPtr.Zero; public ThumbnailForm() { @@ -57,9 +59,9 @@ namespace Greenshot.Addons.Controls FormBorderStyle = FormBorderStyle.None; TopMost = false; Enabled = false; - if (conf.WindowCaptureMode == WindowCaptureModes.Auto || conf.WindowCaptureMode == WindowCaptureModes.Aero) + if (coreConfiguration.WindowCaptureMode == WindowCaptureModes.Auto || coreConfiguration.WindowCaptureMode == WindowCaptureModes.Aero) { - BackColor = Color.FromArgb(255, conf.DWMBackgroundColor.R, conf.DWMBackgroundColor.G, conf.DWMBackgroundColor.B); + BackColor = Color.FromArgb(255, coreConfiguration.DWMBackgroundColor.R, coreConfiguration.DWMBackgroundColor.G, coreConfiguration.DWMBackgroundColor.B); } else { diff --git a/src/Greenshot.Addons/Core/AbstractDestination.cs b/src/Greenshot.Addons/Core/AbstractDestination.cs index f65cd915c..5b44ef420 100644 --- a/src/Greenshot.Addons/Core/AbstractDestination.cs +++ b/src/Greenshot.Addons/Core/AbstractDestination.cs @@ -40,6 +40,7 @@ using Dapplo.Windows.Extensions; using Greenshot.Addons.Components; using Greenshot.Addons.Extensions; using Greenshot.Addons.Interfaces; +using Greenshot.Addons.Resources; using Greenshot.Gfx; #endregion @@ -390,7 +391,7 @@ namespace Greenshot.Addons.Core menu.Items.Add(new ToolStripSeparator()); var closeItem = new ToolStripMenuItem(GreenshotLanguage.ContextmenuExit) { - Image = GreenshotResources.GetBitmap("Close.Image") + Image = GreenshotResources.Instance.GetBitmap("Close.Image") }; closeItem.Click += (sender, args) => { diff --git a/src/Greenshot.Addons/Core/AbstractProcessor.cs b/src/Greenshot.Addons/Core/AbstractProcessor.cs index 1f64a9008..c84b4726d 100644 --- a/src/Greenshot.Addons/Core/AbstractProcessor.cs +++ b/src/Greenshot.Addons/Core/AbstractProcessor.cs @@ -36,12 +36,11 @@ namespace Greenshot.Addons.Core { public virtual int CompareTo(object obj) { - var other = obj as IProcessor; - if (other == null) - { - return 1; - } - if (Priority == other.Priority) + if (!(obj is IProcessor other)) + { + return 1; + } + if (Priority == other.Priority) { return Description.CompareTo(other.Description); } @@ -52,22 +51,16 @@ namespace Greenshot.Addons.Core public abstract string Description { get; } - public virtual int Priority - { - get { return 10; } - } + public virtual int Priority => 10; - public void Dispose() + public void Dispose() { Dispose(true); } - public virtual bool IsActive - { - get { return true; } - } + public virtual bool IsActive => true; - public abstract bool ProcessCapture(ISurface surface, ICaptureDetails captureDetails); + public abstract bool ProcessCapture(ISurface surface, ICaptureDetails captureDetails); protected virtual void Dispose(bool disposing) { diff --git a/src/Greenshot.Addons/Core/CaptureDetails.cs b/src/Greenshot.Addons/Core/CaptureDetails.cs index 69c70aa63..b272cc2ad 100644 --- a/src/Greenshot.Addons/Core/CaptureDetails.cs +++ b/src/Greenshot.Addons/Core/CaptureDetails.cs @@ -38,23 +38,31 @@ namespace Greenshot.Addons.Core /// public class CaptureDetails : ICaptureDetails { + /// public CaptureDetails() { DateTime = DateTime.Now; } - public string Title { get; set; } + /// + public string Title { get; set; } + /// public string Filename { get; set; } + /// public DateTime DateTime { get; set; } + /// public float DpiX { get; set; } + /// public float DpiY { get; set; } + /// public Dictionary MetaData { get; } = new Dictionary(); + /// public void AddMetaData(string key, string value) { if (MetaData.ContainsKey(key)) @@ -67,15 +75,19 @@ namespace Greenshot.Addons.Core } } + /// public CaptureMode CaptureMode { get; set; } + /// public List CaptureDestinations { get; set; } = new List(); + /// public void ClearDestinations() { CaptureDestinations.Clear(); } + /// public void RemoveDestination(IDestination destination) { if (CaptureDestinations.Contains(destination)) @@ -84,6 +96,7 @@ namespace Greenshot.Addons.Core } } + /// public void AddDestination(IDestination captureDestination) { if (!CaptureDestinations.Contains(captureDestination)) @@ -92,6 +105,7 @@ namespace Greenshot.Addons.Core } } + /// public bool HasDestination(string designation) { foreach (var destination in CaptureDestinations) diff --git a/src/Greenshot.Addons/Core/ClipboardHelper.cs b/src/Greenshot.Addons/Core/ClipboardHelper.cs index 15a9854b4..a503b3afa 100644 --- a/src/Greenshot.Addons/Core/ClipboardHelper.cs +++ b/src/Greenshot.Addons/Core/ClipboardHelper.cs @@ -34,13 +34,13 @@ using System.Runtime.InteropServices; using System.Text; using System.Threading; using System.Windows.Forms; -using Dapplo.Ini; using Dapplo.Log; using Dapplo.Windows.Clipboard; using Dapplo.Windows.Common.Structs; using Dapplo.Windows.Gdi32.Enums; using Dapplo.Windows.Gdi32.Structs; using Dapplo.Windows.User32; +using Greenshot.Addons.Config.Impl; using Greenshot.Addons.Core.Enums; using Greenshot.Addons.Interfaces; using Greenshot.Addons.Interfaces.Plugin; @@ -101,8 +101,9 @@ EndSelection:<<<<<<<4 private const int BITMAPFILEHEADER_LENGTH = 14; private static readonly LogSource Log = new LogSource(); private static readonly object ClipboardLockObject = new object(); - private static readonly ICoreConfiguration CoreConfig = IniConfig.Current.Get(); - private static readonly string FORMAT_FILECONTENTS = "FileContents"; + // TODO: Solve, was static reference! + private static readonly ICoreConfiguration CoreConfig = new CoreConfigurationImpl(); + private static readonly string FORMAT_FILECONTENTS = "FileContents"; private static readonly string FORMAT_PNG = "PNG"; private static readonly string FORMAT_PNG_OFFICEART = "PNG+Office Art"; private static readonly string FORMAT_17 = "Format17"; @@ -191,11 +192,11 @@ EndSelection:<<<<<<<4 var clipboardOwner = GetClipboardOwner(); if (clipboardOwner != null) { - messageText = Language.GetFormattedString("clipboard_inuse", clipboardOwner); + messageText = "in use"; // Language.GetFormattedString("clipboard_inuse", clipboardOwner); } else { - messageText = Language.GetString("Core","clipboard_error"); + messageText = "error"; // Language.GetString("Core","clipboard_error"); } Log.Error().WriteLine(clipboardSetException, messageText); } @@ -222,13 +223,14 @@ EndSelection:<<<<<<<4 { string messageText; var clipboardOwner = GetClipboardOwner(); + // TODO: Translations if (clipboardOwner != null) { - messageText = Language.GetFormattedString("clipboard_inuse", clipboardOwner); + messageText = "In use"; // Language.GetFormattedString("clipboard_inuse", clipboardOwner); } else { - messageText = Language.GetString("Core", "clipboard_error"); + messageText = "Error"; // Language.GetString("Core", "clipboard_error"); } Log.Error().WriteLine(ee, messageText); } diff --git a/src/Greenshot.Addons/Core/CoreConfigurationExtensions.cs b/src/Greenshot.Addons/Core/CoreConfigurationExtensions.cs index 763c8c1f1..70e838201 100644 --- a/src/Greenshot.Addons/Core/CoreConfigurationExtensions.cs +++ b/src/Greenshot.Addons/Core/CoreConfigurationExtensions.cs @@ -131,7 +131,7 @@ namespace Greenshot.Addons.Core // Make sure we have clipboard formats, otherwise a paste doesn't make sense! if (coreConfiguration.ClipboardFormats == null || coreConfiguration.ClipboardFormats.Count == 0) { - coreConfiguration.ClipboardFormats = new List { Enums.ClipboardFormats.PNG, Enums.ClipboardFormats.HTML, Enums.ClipboardFormats.DIB }; + coreConfiguration.ClipboardFormats = new List { ClipboardFormats.PNG, ClipboardFormats.HTML, ClipboardFormats.DIB }; } // Make sure the lists are lowercase, to speedup the check diff --git a/src/Greenshot.Addons/Core/FilenameHelper.cs b/src/Greenshot.Addons/Core/FilenameHelper.cs index 1ec7ac53b..27ec291a9 100644 --- a/src/Greenshot.Addons/Core/FilenameHelper.cs +++ b/src/Greenshot.Addons/Core/FilenameHelper.cs @@ -29,8 +29,8 @@ using System.Collections.Generic; using System.IO; using System.Text.RegularExpressions; using System.Windows.Forms; -using Dapplo.Ini; using Dapplo.Log; +using Greenshot.Addons.Config.Impl; using Greenshot.Addons.Interfaces; using Greenshot.Core.Enums; @@ -53,14 +53,15 @@ namespace Greenshot.Addons.Core private static readonly Regex CmdVarRegexp = new Regex(@"%(?[^%]+)%", RegexOptions.Compiled); private static readonly Regex SplitRegexp = new Regex(";(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)", RegexOptions.Compiled); - private static readonly ICoreConfiguration CoreConfig = IniConfig.Current.Get(); + // TODO: Solve, was static reference! + private static readonly ICoreConfiguration CoreConfig = new CoreConfigurationImpl(); - /// - /// Remove invalid characters from the fully qualified filename - /// - /// string with the full path to a file - /// string with the full path to a file, without invalid characters - public static string MakeFqFilenameSafe(string fullPath) + /// + /// Remove invalid characters from the fully qualified filename + /// + /// string with the full path to a file + /// string with the full path to a file, without invalid characters + public static string MakeFqFilenameSafe(string fullPath) { var path = MakePathSafe(Path.GetDirectoryName(fullPath)); var filename = MakeFilenameSafe(Path.GetFileName(fullPath)); diff --git a/src/Greenshot.Addons/Core/GreenshotResources.cs b/src/Greenshot.Addons/Core/GreenshotResources.cs deleted file mode 100644 index c0052caab..000000000 --- a/src/Greenshot.Addons/Core/GreenshotResources.cs +++ /dev/null @@ -1,70 +0,0 @@ -#region Greenshot GNU General Public License - -// Greenshot - a free and open source screenshot tool -// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom -// -// For more information see: http://getgreenshot.org/ -// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 1 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -#endregion - -#region Usings - -using System.ComponentModel; -using System.Drawing; -using System.Windows.Media.Imaging; -using Dapplo.Windows.Icons; - -#endregion - -namespace Greenshot.Addons.Core -{ - /// - /// Centralized storage of the icons & bitmaps - /// - public static class GreenshotResources - { - private static readonly ComponentResourceManager greenshotResources = new ComponentResourceManager(typeof(GreenshotResources)); - - public static Bitmap GetBitmap(string imageName) - { - return (Bitmap) greenshotResources.GetObject(imageName); - } - - public static Icon GetIcon(string imageName) - { - return (Icon) greenshotResources.GetObject(imageName); - } - - public static BitmapSource GreenshotIconAsBitmapSource() - { - using (var icon = GetGreenshotIcon()) - { - return icon.ToBitmapSource(); - } - } - - public static Icon GetGreenshotIcon() - { - return GetIcon("Greenshot.Icon"); - } - - public static Image GetGreenshotImage() - { - return GetBitmap("Greenshot.Image"); - } - } -} \ No newline at end of file diff --git a/src/Greenshot.Addons/Core/GreenshotResources.resx b/src/Greenshot.Addons/Core/GreenshotResources.resx deleted file mode 100644 index dce181b2b..000000000 --- a/src/Greenshot.Addons/Core/GreenshotResources.resx +++ /dev/null @@ -1,471 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - 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 - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSkpKSisCAAAAAAAAAQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFTg9JgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAgAAAgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApEIAAAAAAACkQgAAAAAAAKRCAAAAAAAApEIA - AAAAAACkQgAAAAAAAKRCAAAAAAAApEIAAAAAAACkQgAAAAAAAKRCAAAAAAAApEIAAAAAAACkQgAAAAAA - AKRCAAAAAAAApEIAAAAAAACkQgAAAAAAAKRCAAAAAAAApEIAAAAAAACkQgAAAAAAAKRCAAAAAAAApEIA - AAAAAACkQgAAAAAAAKRCAAAAAAAApEIAAAAAAACkQgAAAAAAAKRCAAAAAAAApEIAAAAAAACkQgAAAAAA - AKRCAAAAAAAApEIAAAAAAACkQgAAAAAAAKRCAAAAAAAApEIAAAAAAACkQgAAAAAAAKRCAAAAAAAApEIA - AAAAAACkQgAAAAAAAKRCAAAAAAAApEIAAAAAAACkQgAAAAAAAKRCAAAAAAAApEIAAAAAAACkQgAAAAAA - AKRCAAAAAAAApEIAAAAAAACkQgAAAAAAAKRCAAAAAAAApEIAAAAAAACkQgAAAAAAAKRCKAAAACAAAABA - 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 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAwBQTFRFgICA//// - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAODgHVgAAAAlwSFlzAAAOvgAA - Dr4B6kKxwAAAABZJREFUGFdjYAABRhAAs4hlkq4DZDgACywAM12jTsYAAAAASUVORK5CYII= - - - - - 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 - mXizAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAXJJREFUOE+lk0FL - AkEYhlvwv3jzoiDoQdCbdEnYf6CrqCgoHgRRAk/9EQVLdEGyFiQNMS+dvHnoEkgglGAmCL7NO6RMIZvU - wsMO3zzzzGk0ACf/+hjQNO1ccKlXKsYx0OUZeflXoFmtVsUS2P4CHboi0FQDrXK5jM12i/VmYwsduiLQ - UgNmqVTCuzj8tlrZQoeuCJhqoFMsFvG6XmO2WNhCh64IdNRAt1Ao4EXc/jSf20KHrgh01YCVy+Uwnkzw - vFzaQoeuCFhqoJfJZBCLxY6Crgj01EA/lUrB4/HA7XYfhHs78vk8A301MIzH4/B6vRiNHjAY3H+DM+7p - ug6fz4dsNsvAUA2Mo9Eo/H4/LOsOTqdTYprXEs64x0AwGEQ6nWZgrAYeDcNAIBBAu30r/6Reb0t2MwbC - 4TCSySQDj/uAeEyngqnL5fpoNG4QCoUktVpHspsxEIlEkEgk+AKnaoAP8kwwczgcF4fg3g+u9gEu/son - bfJW/NwRDyIAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAUNJREFUOE+lk79L - QlEcxW9/gqCrm6vg4uYoOAgOrqLk4ioP0r2Glhp0SSjoF1FE0BIUDU3RdIOGoKBVGlpapaHTObeuCPe6 - 9ITD5fs9n3Pue8JbAWBS/VSQRvPwKR/j3JgaZXVqPv5TzPOXLhYoZDEcQidVWyhw3qzfn3tBAWH7PRjg - uV7HV5JAM6USyX50u86btlrOCwoOCR7Q+Oz1cFcu473dhmbppdFwu8dq1e3EBgU0zB6NXQJvzSaui0U8 - VCq4LZWwn8vhLJ+HPDFiowUEzITADsGrQgFHmYzTSTYL7eSJiRZs0timRoTGhC956wXDXtrJEyM2eAIt - t34Be8NgTPLELCuQYe8Z9tK8ZBf+ieuEnxj20rzB26SYF7zCGsGEoVeW6NTMoJFiXlDAkFllqMOwTs2+ - IOYFBf/9oFJ9ibr0B4f94vVG3bWDAAAAAElFTkSuQmCC - - - \ No newline at end of file diff --git a/src/Greenshot.Addons/Core/ICoreConfiguration.cs b/src/Greenshot.Addons/Core/ICoreConfiguration.cs index c7f3a0128..f866ec414 100644 --- a/src/Greenshot.Addons/Core/ICoreConfiguration.cs +++ b/src/Greenshot.Addons/Core/ICoreConfiguration.cs @@ -27,8 +27,9 @@ using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; -using Dapplo.Ini; -using Dapplo.InterfaceImpl.Extensions; +using Dapplo.CaliburnMicro.Configuration; +using Dapplo.Config.Attributes; +using Dapplo.Config.Ini; using Dapplo.Windows.Common.Structs; using Greenshot.Addons.Core.Enums; using Greenshot.Core.Configuration; @@ -42,7 +43,7 @@ namespace Greenshot.Addons.Core /// [IniSection("Core")] [Description("Greenshot core configuration")] - public interface ICoreConfiguration : IIniSection, IFileConfiguration, ICaptureConfiguration, INotifyPropertyChanged, IWriteProtectProperties, IDefaultValue, ITagging, ITransactionalProperties + public interface ICoreConfiguration : IIniSection, IFileConfiguration, ICaptureConfiguration, IUiConfiguration { [Description("The language in IETF format (e.g. en-US)")] string Language { get; set; } @@ -294,7 +295,7 @@ namespace Greenshot.Addons.Core [Description("Defines the base size of the icons (e.g. for the buttons in the editor), default value 16,16 anything bigger will cause scaling")] [DefaultValue("16,16")] - Size IconSize { get; set; } + NativeSize IconSize { get; set; } [Description("The connect timeout value for webrequets, these are seconds")] [DefaultValue(100)] diff --git a/src/Greenshot.Addons/Core/IHttpConfiguration.cs b/src/Greenshot.Addons/Core/IHttpConfiguration.cs index 9efd1d60e..dfb804751 100644 --- a/src/Greenshot.Addons/Core/IHttpConfiguration.cs +++ b/src/Greenshot.Addons/Core/IHttpConfiguration.cs @@ -24,9 +24,8 @@ #region Usings using System.ComponentModel; +using Dapplo.Config.Ini; using Dapplo.HttpExtensions; -using Dapplo.Ini; -using Dapplo.InterfaceImpl.Extensions; #endregion @@ -37,7 +36,7 @@ namespace Greenshot.Addons.Core /// [IniSection("Network")] [Description("Greenshot network configuration")] - public interface IHttpConfiguration : IIniSection, IHttpSettings, INotifyPropertyChanged, IWriteProtectProperties, IDefaultValue, ITransactionalProperties + public interface IHttpConfiguration : IIniSection, IHttpSettings { } } \ No newline at end of file diff --git a/src/Greenshot.Addons/Core/ImageOutput.cs b/src/Greenshot.Addons/Core/ImageOutput.cs index 3fdecedc2..eae932b08 100644 --- a/src/Greenshot.Addons/Core/ImageOutput.cs +++ b/src/Greenshot.Addons/Core/ImageOutput.cs @@ -35,11 +35,10 @@ using System.Runtime.InteropServices; using System.Text; using System.Text.RegularExpressions; using System.Windows.Forms; -using Dapplo.Ini; -using Dapplo.Language; using Dapplo.Log; using Dapplo.Windows.Clipboard; using Dapplo.Windows.Common; +using Greenshot.Addons.Config.Impl; using Greenshot.Addons.Controls; using Greenshot.Addons.Interfaces; using Greenshot.Addons.Interfaces.Plugin; @@ -58,7 +57,8 @@ namespace Greenshot.Addons.Core public static class ImageOutput { private static readonly LogSource Log = new LogSource(); - private static readonly ICoreConfiguration CoreConfig = IniConfig.Current.Get(); + // TODO: Solve, was static reference! + private static readonly ICoreConfiguration CoreConfig = new CoreConfigurationImpl(); private static readonly int PROPERTY_TAG_SOFTWARE_USED = 0x0131; private static readonly Cache TmpFileCache = new Cache(10 * 60 * 60, RemoveExpiredTmpFile); @@ -139,8 +139,8 @@ namespace Greenshot.Addons.Core var outputSettings = new SurfaceOutputSettings(FormatForFilename(fileNameWithExtension)); if (CoreConfig.OutputFilePromptQuality) { - // TODO: Resolve - var qualityDialog = new QualityDialog(outputSettings, CoreConfig, LanguageLoader.Current.Get()); + // TODO: Resolve, was static reference + var qualityDialog = new QualityDialog(outputSettings, CoreConfig, new GreenshotLanguageImpl()); qualityDialog.ShowDialog(); } // TODO: For now we always overwrite, should be changed @@ -149,7 +149,9 @@ namespace Greenshot.Addons.Core } catch (ExternalException) { - MessageBox.Show(Language.GetFormattedString("error_nowriteaccess", saveImageFileDialog.FileName).Replace(@"\\", @"\"), Language.GetString("error")); + MessageBox.Show("Can't write to " + saveImageFileDialog.FileName.Replace(@"\\", @"\"), "Error"); + // TODO: Fix + //MessageBox.Show(Language.GetFormattedString("error_nowriteaccess", saveImageFileDialog.FileName).Replace(@"\\", @"\"), Language.GetString("error")); } } } @@ -543,10 +545,12 @@ namespace Greenshot.Addons.Core } else if (Equals(imageFormat, ImageFormat.Icon)) { - // FEATURE-916: Added Icon support - IList bitmaps = new List(); - bitmaps.Add(bitmapToSave); - WriteIcon(stream, bitmaps); + // FEATURE-916: Added Icon support + IList bitmaps = new List + { + bitmapToSave + }; + WriteIcon(stream, bitmaps); } else { diff --git a/src/Greenshot.Addons/Core/InteropWindowCaptureExtensions.cs b/src/Greenshot.Addons/Core/InteropWindowCaptureExtensions.cs index 4f574c1dd..9a9836120 100644 --- a/src/Greenshot.Addons/Core/InteropWindowCaptureExtensions.cs +++ b/src/Greenshot.Addons/Core/InteropWindowCaptureExtensions.cs @@ -28,7 +28,6 @@ using System.Diagnostics; using System.Drawing; using System.Drawing.Imaging; using System.Windows.Forms; -using Dapplo.Ini; using Dapplo.Log; using Dapplo.Windows.App; using Dapplo.Windows.Common; @@ -36,10 +35,12 @@ using Dapplo.Windows.Common.Extensions; using Dapplo.Windows.Common.Structs; using Dapplo.Windows.Desktop; using Dapplo.Windows.DesktopWindowsManager; +using Dapplo.Windows.DesktopWindowsManager.Structs; using Dapplo.Windows.Gdi32; using Dapplo.Windows.Icons; using Dapplo.Windows.Kernel32; using Dapplo.Windows.User32.Enums; +using Greenshot.Addons.Config.Impl; using Greenshot.Addons.Interfaces; using Greenshot.Core.Enums; using Greenshot.Gfx; @@ -55,7 +56,8 @@ namespace Greenshot.Addons.Core public static class InteropWindowCaptureExtensions { private static readonly LogSource Log = new LogSource(); - private static readonly ICoreConfiguration CoreConfiguration = IniConfig.Current.Get(); + // TODO: Solve, was static reference! + private static readonly ICoreConfiguration CoreConfiguration = new CoreConfigurationImpl(); private static Color _transparentColor = Color.Transparent; /// diff --git a/src/Greenshot.Addons/Core/Language.cs b/src/Greenshot.Addons/Core/Language.cs deleted file mode 100644 index a9e0bce23..000000000 --- a/src/Greenshot.Addons/Core/Language.cs +++ /dev/null @@ -1,231 +0,0 @@ -#region Greenshot GNU General Public License - -// Greenshot - a free and open source screenshot tool -// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom -// -// For more information see: http://getgreenshot.org/ -// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 1 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -#endregion - -#region Usings - -using System; -using System.Collections.Generic; -using System.Linq; -using Dapplo.Language; - -#endregion - -namespace Greenshot.Addons.Core -{ - public delegate void LanguageChangedHandler(object sender, EventArgs e); - - /// - /// This class supplies the GUI with translations, based upon keys. - /// The language resources are loaded from the language files found on fixed or supplied paths - /// - public class Language - { - private static LanguageLoader languageLoader = LanguageLoader.Current; - /// - /// Get or set the current language - /// - public static string CurrentLanguage - { - get => languageLoader.CurrentLanguage; - set { languageLoader.ChangeLanguageAsync(value); } - } - - /// - /// Return a list of all the supported languages - /// - public static IDictionary SupportedLanguages => languageLoader.AvailableLanguages; - - - /// - /// Check if a resource with prefix.key exists - /// - /// - /// - /// true if available - public static bool HasKey(string prefix, string key) - { - return languageLoader[prefix].Keys().Contains(key); - } - - /// - /// Check if a resource with prefix.key exists - /// - /// - /// - /// true if available - public static bool HasKey(string prefix, Enum key) - { - return languageLoader[prefix].Keys().Contains(key.ToString()); - } - - public static string Translate(object key) - { - var typename = key.GetType().Name; - var enumKey = typename + "." + key; - if (HasKey("Core", enumKey)) - { - return GetString("Core", enumKey); - } - return key.ToString(); - } - - /// - /// TryGet method which combines HasKey & GetString - /// - /// string with prefix - /// string with key - /// out string - /// bool - public static bool TryGetString(string prefix, string key, out string languageString) - { - if (languageLoader.Any(l => l.PrefixName() == prefix) && languageLoader[prefix].Keys().Contains(key)) - { - languageString = languageLoader[prefix][key]; - return true; - } - - languageString = null; - return false; - } - - /// - /// TryGet method which combines HasKey & GetString - /// - /// string with key - /// out string - /// bool - public static bool TryGetString(string key, out string languageString) - { - return TryGetString("Core", key, out languageString); - } - - /// - /// Get the resource for prefix.key - /// - /// - /// - /// resource or a "string ###prefix.key### not found" - public static string GetString(string prefix, string key) - { - if (key == null) - { - return null; - } - return languageLoader[prefix][key]; - } - - /// - /// Get the resource for key - /// - /// - /// resource or a "string ###prefix.key### not found" - public static string GetString(string key) - { - if (key == null) - { - return null; - } - return languageLoader["Core"][key]; - } - - /// - /// Get the resource for key - /// - /// Enum - /// resource or a "string ###prefix.key### not found" - public static string GetString(Enum key) - { - if (key == null) - { - return null; - } - return languageLoader["Core"][key.ToString()]; - } - - /// - /// Get the resource for prefix.key - /// - /// - /// - /// resource or a "string ###prefix.key### not found" - public static string GetString(string prefix, Enum key) - { - if (key == null) - { - return null; - } - return GetString(prefix, key.ToString()); - } - - /// - /// Get the resource for key, format with with string.format an supply the parameters - /// - /// - /// - /// formatted resource or a "string ###key### not found" - public static string GetFormattedString(Enum key, object param) - { - return GetFormattedString(key.ToString(), param); - } - - /// - /// Get the resource for prefix.key, format with with string.format an supply the parameters - /// - /// - /// - /// - /// formatted resource or a "string ###prefix.key### not found" - public static string GetFormattedString(string prefix, Enum key, object param) - { - return GetFormattedString(prefix, key.ToString(), param); - } - - /// - /// Get the resource for prefix.key, format with with string.format an supply the parameters - /// - /// - /// - /// - /// formatted resource or a "string ###prefix.key### not found" - public static string GetFormattedString(string prefix, string key, object param) - { - if (TryGetString(prefix, key, out var value)) - { - return string.Format(value, param); - } - - return $"string ###{prefix}.{key}### not found"; - } - - /// - /// Get the resource for key, format with with string.format an supply the parameters - /// - /// - /// - /// formatted resource or a "string ###key### not found" - public static string GetFormattedString(string key, object param) - { - return GetFormattedString("Core", key, param); - } - } -} \ No newline at end of file diff --git a/src/Greenshot.Addons/Core/PluginUtils.cs b/src/Greenshot.Addons/Core/PluginUtils.cs index 6cc252c02..50ea53b39 100644 --- a/src/Greenshot.Addons/Core/PluginUtils.cs +++ b/src/Greenshot.Addons/Core/PluginUtils.cs @@ -29,10 +29,10 @@ using System.ComponentModel; using System.Drawing; using System.IO; using System.Windows.Forms; -using Dapplo.Ini; using Dapplo.Log; using Dapplo.Windows.Icons; using Dapplo.Windows.Icons.Enums; +using Greenshot.Addons.Config.Impl; using Greenshot.Addons.Interfaces.Forms; using Microsoft.Win32; @@ -61,7 +61,7 @@ namespace Greenshot.Addons.Core } _isHooked = true; - var coreConfiguration = IniConfig.Current.Get(); + var coreConfiguration = new CoreConfigurationImpl(); coreConfiguration.PropertyChanged += OnIconSizeChanged; } diff --git a/src/Greenshot.Addons/Core/WindowCapture.cs b/src/Greenshot.Addons/Core/WindowCapture.cs index d1b2248a7..fc009b81d 100644 --- a/src/Greenshot.Addons/Core/WindowCapture.cs +++ b/src/Greenshot.Addons/Core/WindowCapture.cs @@ -30,7 +30,6 @@ using System.Drawing; using System.Drawing.Imaging; using System.Runtime.InteropServices; using System.Windows.Forms; -using Dapplo.Ini; using Dapplo.Log; using Dapplo.Windows.Common; using Dapplo.Windows.Common.Extensions; @@ -43,6 +42,7 @@ using Dapplo.Windows.Icons; using Dapplo.Windows.User32; using Dapplo.Windows.User32.Enums; using Dapplo.Windows.User32.Structs; +using Greenshot.Addons.Config.Impl; using Greenshot.Addons.Interfaces; using Greenshot.Gfx; @@ -56,7 +56,8 @@ namespace Greenshot.Addons.Core public static class WindowCapture { private static readonly LogSource Log = new LogSource(); - private static readonly ICoreConfiguration Configuration = IniConfig.Current.Get(); + // TODO: Solve, was static reference! + private static readonly ICoreConfiguration Configuration = new CoreConfigurationImpl(); /// /// Used to cleanup the unmanged resource in the iconInfo for the CaptureCursor method diff --git a/src/Greenshot.Addons/Extensions/LanguageExtensions.cs b/src/Greenshot.Addons/Extensions/LanguageExtensions.cs index a4d69f986..bbbbc7f99 100644 --- a/src/Greenshot.Addons/Extensions/LanguageExtensions.cs +++ b/src/Greenshot.Addons/Extensions/LanguageExtensions.cs @@ -24,7 +24,7 @@ using System; using System.Collections.Generic; using System.Linq; -using Dapplo.Language; +using Dapplo.Config.Language; using Dapplo.Utils.Extensions; namespace Greenshot.Addons.Extensions diff --git a/src/Greenshot.Addons/FodyWeavers.xml b/src/Greenshot.Addons/FodyWeavers.xml new file mode 100644 index 000000000..7f5a26669 --- /dev/null +++ b/src/Greenshot.Addons/FodyWeavers.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/Greenshot.Addons/FodyWeavers.xsd b/src/Greenshot.Addons/FodyWeavers.xsd new file mode 100644 index 000000000..061979a03 --- /dev/null +++ b/src/Greenshot.Addons/FodyWeavers.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + 'true' to run assembly verification on the target assembly after all weavers have been finished. + + + + + A comma separated list of error codes that can be safely ignored in assembly verification. + + + + + \ No newline at end of file diff --git a/src/Greenshot.Addons/Greenshot.Addons.csproj b/src/Greenshot.Addons/Greenshot.Addons.csproj index cf272b4d1..f1e57114a 100644 --- a/src/Greenshot.Addons/Greenshot.Addons.csproj +++ b/src/Greenshot.Addons/Greenshot.Addons.csproj @@ -1,387 +1,84 @@ - - - - + + - {5B924697-4DCD-4F98-85F1-105CB84B7341} - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Library - Greenshot.Addons - Greenshot.Addons - v4.6.1 - Properties - OnBuildSuccess - True - False - 4 - false - + net471;netcoreapp3.0 + true - - - ..\packages\Autofac.4.8.1\lib\net45\Autofac.dll - - - ..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll - - - ..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll - - - ..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll - - - ..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll - - - ..\packages\ControlzEx.3.0.2.4\lib\net45\ControlzEx.dll - - - - ..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll - - - ..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll - - - ..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll - - - ..\packages\Dapplo.CaliburnMicro.Configuration.1.0.75\lib\net461\Dapplo.CaliburnMicro.Configuration.dll - - - ..\packages\Dapplo.CaliburnMicro.Dapp.1.0.75\lib\net461\Dapplo.CaliburnMicro.Dapp.dll - - - ..\packages\Dapplo.CaliburnMicro.Menu.1.0.75\lib\net461\Dapplo.CaliburnMicro.Menu.dll - - - ..\packages\Dapplo.CaliburnMicro.Security.1.0.75\lib\net461\Dapplo.CaliburnMicro.Security.dll - - - ..\packages\Dapplo.CaliburnMicro.Toasts.1.0.75\lib\net461\Dapplo.CaliburnMicro.Toasts.dll - - - ..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll - - - ..\packages\Dapplo.HttpExtensions.0.8.46\lib\net46\Dapplo.HttpExtensions.dll - - - ..\packages\Dapplo.HttpExtensions.JsonNet.0.8.46\lib\net46\Dapplo.HttpExtensions.JsonNet.dll - - - ..\packages\Dapplo.HttpExtensions.OAuth.0.8.46\lib\net46\Dapplo.HttpExtensions.OAuth.dll - - - ..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll - - - ..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll - - - ..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll - - - ..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll - - - ..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll - - - ..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll - - - ..\packages\Dapplo.Windows.Clipboard.0.5.109\lib\net461\Dapplo.Windows.Clipboard.dll - - - ..\packages\Dapplo.Windows.Com.0.5.109\lib\net461\Dapplo.Windows.Com.dll - - - ..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll - - - ..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll - - - ..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll - - - ..\packages\Dapplo.Windows.EmbeddedBrowser.0.5.109\lib\net461\Dapplo.Windows.EmbeddedBrowser.dll - - - ..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll - - - ..\packages\Dapplo.Windows.Icons.0.5.109\lib\net461\Dapplo.Windows.Icons.dll - - - ..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll - - - ..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll - - - ..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll - - - ..\packages\Dapplo.Windows.Shell32.0.5.109\lib\net461\Dapplo.Windows.Shell32.dll - - - ..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll - - - ..\packages\MahApps.Metro.IconPacks.2.3.0\lib\net46\MahApps.Metro.IconPacks.dll - + + + + + + - - ..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll - - - - - ..\packages\Svg.2.3.0\lib\net35\Svg.dll - - + - - ..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - - ..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll - - - ..\packages\ControlzEx.3.0.2.4\lib\net45\System.Windows.Interactivity.dll - - + + - - ..\packages\ToastNotifications.2.3.4\lib\net40\ToastNotifications.dll - + + + - - - - - - - - - - - - - - - - - - - Form - - - - - Component - - - Form - - - MovableShowColorForm.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Form - - - Component - - - Component - - - - Component - - - Form - - - Component - - - Component - - - Component - - - Component - - - Component - - - Form - - - BackgroundForm.cs - - - - - Component - - - Component - - - Component - - - Form - - - PleaseWaitForm.cs - - - Form - - - QualityDialog.cs - - - - Form - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GreenshotResources.cs - + + + + + + + + - - + + + 1.2.7 + + + 1.2.7 + + + 1.2.7 + + + 0.9.18 + + + 0.9.18 + + + 0.9.18 + + + 0.7.26 + + + 0.7.26 + + + all + runtime; build; native; contentfiles; analyzers + + + 3.0.0-alpha0089 + + + 2.3.0 + + {bf35190d-b2a7-4cfa-b397-51cb384cf0d7} @@ -392,24 +89,5 @@ Greenshot.Gfx - - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - - - - - + \ No newline at end of file diff --git a/src/Greenshot.Addons/IGreenshotLanguage.cs b/src/Greenshot.Addons/IGreenshotLanguage.cs index 74dd0e39f..25d9001c2 100644 --- a/src/Greenshot.Addons/IGreenshotLanguage.cs +++ b/src/Greenshot.Addons/IGreenshotLanguage.cs @@ -24,14 +24,14 @@ #region Usings using System.ComponentModel; -using Dapplo.Language; +using Dapplo.Config.Language; #endregion namespace Greenshot.Addons { [Language("Core")] - public interface IGreenshotLanguage : ILanguage, INotifyPropertyChanged, Dapplo.CaliburnMicro.Translations.ICoreTranslations + public interface IGreenshotLanguage : ILanguage, Dapplo.CaliburnMicro.Translations.ICoreTranslations { string None { get; } string AboutBugs { get; } diff --git a/src/Greenshot.Addons/Interfaces/Drawing/RenderMode.cs b/src/Greenshot.Addons/Interfaces/Drawing/RenderMode.cs index 40e12d024..de811c6df 100644 --- a/src/Greenshot.Addons/Interfaces/Drawing/RenderMode.cs +++ b/src/Greenshot.Addons/Interfaces/Drawing/RenderMode.cs @@ -23,9 +23,18 @@ namespace Greenshot.Addons.Interfaces.Drawing { + /// + /// Specifies how something needs to be rendered, the idea was that export needs more details and no "edit" adorners. + /// public enum RenderMode { - EDIT, - EXPORT + /// + /// Render for editing + /// + Edit, + /// + /// Render for exporting + /// + Export } } \ No newline at end of file diff --git a/src/Greenshot.Addons/Interfaces/IGreenshotContract.cs b/src/Greenshot.Addons/Interfaces/IGreenshotContract.cs index e394f36e9..745487308 100644 --- a/src/Greenshot.Addons/Interfaces/IGreenshotContract.cs +++ b/src/Greenshot.Addons/Interfaces/IGreenshotContract.cs @@ -21,6 +21,8 @@ #endregion +#if !NETCOREAPP3_0 + using System.ServiceModel; namespace Greenshot.Addons.Interfaces @@ -58,3 +60,5 @@ namespace Greenshot.Addons.Interfaces void OpenFile(string filename); } } + +#endif \ No newline at end of file diff --git a/src/Greenshot.Addons/Interfaces/Plugin/SurfaceOutputSettings.cs b/src/Greenshot.Addons/Interfaces/Plugin/SurfaceOutputSettings.cs index 99f947ea5..cebb2de72 100644 --- a/src/Greenshot.Addons/Interfaces/Plugin/SurfaceOutputSettings.cs +++ b/src/Greenshot.Addons/Interfaces/Plugin/SurfaceOutputSettings.cs @@ -24,7 +24,7 @@ #region Usings using System.Collections.Generic; -using Dapplo.Ini; +using Greenshot.Addons.Config.Impl; using Greenshot.Addons.Core; using Greenshot.Core.Enums; using Greenshot.Gfx.Effects; @@ -35,8 +35,9 @@ namespace Greenshot.Addons.Interfaces.Plugin { public class SurfaceOutputSettings { - private static readonly ICoreConfiguration CoreConfig = IniConfig.Current.Get(); - private bool _disableReduceColors; + // TODO: Solve, was static reference! + private static readonly ICoreConfiguration CoreConfig = new CoreConfigurationImpl(); + private bool _disableReduceColors; private bool _reduceColors; public SurfaceOutputSettings() diff --git a/src/Greenshot.Addons/Properties/AssemblyInfo.cs b/src/Greenshot.Addons/Properties/AssemblyInfo.cs deleted file mode 100644 index b2d51b603..000000000 --- a/src/Greenshot.Addons/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,53 +0,0 @@ -#region Greenshot GNU General Public License - -// Greenshot - a free and open source screenshot tool -// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom -// -// For more information see: http://getgreenshot.org/ -// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 1 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -#endregion - -#region Usings - -using System.Reflection; -using System.Runtime.InteropServices; - -#endregion - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("Greenshot.Addons")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Greenshot")] -[assembly: AssemblyProduct("Greenshot.Addons")] -[assembly: AssemblyCopyright("Copyright (C) 2007-2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// This sets the default COM visibility of types in the assembly to invisible. -// If you need to expose a type to COM, use [ComVisible(true)] on that type. - -[assembly: ComVisible(false)] - -// The assembly version, replaced by build scripts - -[assembly: AssemblyVersion("1.3.0.0")] -[assembly: AssemblyInformationalVersion("1.3.0.0")] -[assembly: AssemblyFileVersion("1.3.0.0")] \ No newline at end of file diff --git a/src/Greenshot.Addons/Resources/Checkerboard.Image.png b/src/Greenshot.Addons/Resources/Checkerboard.Image.png new file mode 100644 index 000000000..798455aa5 Binary files /dev/null and b/src/Greenshot.Addons/Resources/Checkerboard.Image.png differ diff --git a/src/Greenshot.Addons/Resources/Clipboard.Image.png b/src/Greenshot.Addons/Resources/Clipboard.Image.png new file mode 100644 index 000000000..2bb5e89ac Binary files /dev/null and b/src/Greenshot.Addons/Resources/Clipboard.Image.png differ diff --git a/src/Greenshot.Addons/Resources/Close.Image.png b/src/Greenshot.Addons/Resources/Close.Image.png new file mode 100644 index 000000000..35ba52b6d Binary files /dev/null and b/src/Greenshot.Addons/Resources/Close.Image.png differ diff --git a/src/Greenshot.Addons/Resources/Email.Image.png b/src/Greenshot.Addons/Resources/Email.Image.png new file mode 100644 index 000000000..89d03aa99 Binary files /dev/null and b/src/Greenshot.Addons/Resources/Email.Image.png differ diff --git a/src/Greenshot.Addons/Resources/Greenshot.Icon.ico b/src/Greenshot.Addons/Resources/Greenshot.Icon.ico new file mode 100644 index 000000000..fd1312dec Binary files /dev/null and b/src/Greenshot.Addons/Resources/Greenshot.Icon.ico differ diff --git a/src/Greenshot.Addons/Resources/GreenshotResources.cs b/src/Greenshot.Addons/Resources/GreenshotResources.cs new file mode 100644 index 000000000..6ac41ef40 --- /dev/null +++ b/src/Greenshot.Addons/Resources/GreenshotResources.cs @@ -0,0 +1,132 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +#region Usings + +using System; +using System.Drawing; +using System.IO; +using System.Windows.Media.Imaging; +using Dapplo.Addons; +using Dapplo.Windows.Icons; +using Greenshot.Gfx; + +#endregion + +namespace Greenshot.Addons.Resources +{ + /// + /// Centralized storage of the icons & bitmaps + /// + public class GreenshotResources + { + private readonly IResourceProvider _resourceProvider; + // TODO: Remove all usages + public static GreenshotResources Instance; + + public GreenshotResources(IResourceProvider resourceProvider) + { + _resourceProvider = resourceProvider; + Instance = this; + } + + /// + /// Get the Greenshot icon as BitmapSource + /// + /// BitmapSource + public BitmapSource GreenshotIconAsBitmapSource() + { + using (var icon = GetGreenshotIcon()) + { + return icon.ToBitmapSource(); + } + } + + /// + /// Get the Greenshot logo as an Icon + /// + /// Icon + public Icon GetGreenshotIcon() + { + return GetIcon("Greenshot", GetType()); + } + + /// + /// Get an embedded icon + /// + /// string + /// Type + /// Icon + public Icon GetIcon(string name, Type type = null) + { + using (var iconStream = _resourceProvider.ResourceAsStream((type ?? GetType()).Assembly, "Resources", $"{name}.Icon.ico")) + { + return new Icon(iconStream); + } + } + + /// + /// Get the Greenshot logo as a Bitmap + /// + /// Bitmap + public Bitmap GetGreenshotImage() + { + return GetBitmap("Greenshot.Image.png", GetType()); + } + + /// + /// Get a bitmap from an embedded resource + /// + /// string + /// Type + /// Bitmap + public Bitmap GetBitmap(string name, Type type = null) + { + if (name.EndsWith(".Image")) + { + name = name + ".png"; + + } + using (var imageStream = _resourceProvider.ResourceAsStream((type ?? GetType()).Assembly, "Resources", name)) + { + return BitmapHelper.FromStream(imageStream); + } + } + + /// + /// Get a byte[] from an embedded resource + /// + /// string + /// Type + /// bate[] + public byte[] GetBytes(string name, Type type = null) + { + using (var stream = _resourceProvider.ResourceAsStream((type ?? GetType()).Assembly, "Resources", name)) + using (var memoryStream = new MemoryStream()) + { + stream.CopyTo(memoryStream); + return memoryStream.ToArray(); + } + } + } +} \ No newline at end of file diff --git a/src/Greenshot.Addons/Resources/Printer.Image.png b/src/Greenshot.Addons/Resources/Printer.Image.png new file mode 100644 index 000000000..18738f6c5 Binary files /dev/null and b/src/Greenshot.Addons/Resources/Printer.Image.png differ diff --git a/src/Greenshot.Addons/Resources/Save.Image.png b/src/Greenshot.Addons/Resources/Save.Image.png new file mode 100644 index 000000000..797826109 Binary files /dev/null and b/src/Greenshot.Addons/Resources/Save.Image.png differ diff --git a/src/Greenshot.Addons/ViewModels/ExportNotificationViewModel.cs b/src/Greenshot.Addons/ViewModels/ExportNotificationViewModel.cs index 4a0829520..7a75e756d 100644 --- a/src/Greenshot.Addons/ViewModels/ExportNotificationViewModel.cs +++ b/src/Greenshot.Addons/ViewModels/ExportNotificationViewModel.cs @@ -32,6 +32,7 @@ using Dapplo.Windows.Extensions; using Greenshot.Addons.Components; using Greenshot.Addons.Core; using Greenshot.Addons.Interfaces; +using Greenshot.Addons.Resources; namespace Greenshot.Addons.ViewModels { @@ -42,6 +43,7 @@ namespace Greenshot.Addons.ViewModels private readonly Config _configViewModel; private readonly IConfigScreen _configScreen; private static readonly LogSource Log = new LogSource(); + public ExportNotificationViewModel( IDestination source, ExportInformation exportInformation, @@ -62,7 +64,7 @@ namespace Greenshot.Addons.ViewModels } } - public ImageSource GreenshotIcon => GreenshotResources.GreenshotIconAsBitmapSource(); + public ImageSource GreenshotIcon => GreenshotResources.Instance.GreenshotIconAsBitmapSource(); public ImageSource ExportBitmapSource { get; } diff --git a/src/Greenshot.Addons/app.config b/src/Greenshot.Addons/app.config index c20c0c817..b98217257 100644 --- a/src/Greenshot.Addons/app.config +++ b/src/Greenshot.Addons/app.config @@ -2,26 +2,6 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/src/Greenshot.Addons/packages.config b/src/Greenshot.Addons/packages.config deleted file mode 100644 index 349060502..000000000 --- a/src/Greenshot.Addons/packages.config +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.Core/Extensions/InteropWindowCaptureExtensions.cs b/src/Greenshot.Core/Extensions/InteropWindowCaptureExtensions.cs index bace08038..38a935c57 100644 --- a/src/Greenshot.Core/Extensions/InteropWindowCaptureExtensions.cs +++ b/src/Greenshot.Core/Extensions/InteropWindowCaptureExtensions.cs @@ -37,6 +37,7 @@ using Dapplo.Windows.Common.Extensions; using Dapplo.Windows.Common.Structs; using Dapplo.Windows.Desktop; using Dapplo.Windows.DesktopWindowsManager; +using Dapplo.Windows.DesktopWindowsManager.Structs; using Dapplo.Windows.Gdi32; using Dapplo.Windows.User32; using Dapplo.Windows.User32.Structs; @@ -74,7 +75,7 @@ namespace Greenshot.Core.Extensions public static ICaptureElement CaptureFromScreen(this IInteropWindow interopWindow, bool clientBounds = false) { var bounds = clientBounds ? interopWindow.GetInfo().ClientBounds: interopWindow.GetInfo().Bounds; - ICaptureElement result = ScreenSource.CaptureRectangle(bounds); + var result = ScreenSource.CaptureRectangle(bounds); return result; } diff --git a/src/Greenshot.Core/Greenshot.Core.csproj b/src/Greenshot.Core/Greenshot.Core.csproj index dea6a2888..fb2fe5c33 100644 --- a/src/Greenshot.Core/Greenshot.Core.csproj +++ b/src/Greenshot.Core/Greenshot.Core.csproj @@ -1,110 +1,40 @@ - - - - + + - {BF35190D-B2A7-4CFA-B397-51CB384CF0D7} - Library - Properties - Greenshot.Core - Greenshot.Core - v4.6.1 - 512 - - + net471;netcoreapp3.0 true - - true - - - - ..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll - - - ..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll - - - ..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll - - - ..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll - - - ..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll - - - ..\packages\Dapplo.Windows.Icons.0.5.109\lib\net461\Dapplo.Windows.Icons.dll - - - ..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll - - - ..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll - - - ..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll - - - ..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll - + + - - + - - - - ..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + 0.7.26 + + - - + - - - {f041c685-eb96-4ed1-9ace-0f5bd836610f} - Greenshot.Gfx - - - + \ No newline at end of file diff --git a/src/Greenshot.Core/Properties/AssemblyInfo.cs b/src/Greenshot.Core/Properties/AssemblyInfo.cs deleted file mode 100644 index d5e9309ab..000000000 --- a/src/Greenshot.Core/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Greenshot.Core")] -[assembly: AssemblyDescription("Core capture functionality for Greenshot")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Greenshot")] -[assembly: AssemblyProduct("Greenshot.Core")] -[assembly: AssemblyCopyright("Copyright © Greenshot 2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("bf35190d-b2a7-4cfa-b397-51cb384cf0d7")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/Greenshot.Core/Sources/DwmWindowSource.cs b/src/Greenshot.Core/Sources/DwmWindowSource.cs index 21d5ae708..afd7baf61 100644 --- a/src/Greenshot.Core/Sources/DwmWindowSource.cs +++ b/src/Greenshot.Core/Sources/DwmWindowSource.cs @@ -43,7 +43,7 @@ namespace Greenshot.Core.Sources public DwmWindowSource(ICaptureConfiguration captureConfiguration, Func retrieveWindowFunc = null) { _captureConfiguration = captureConfiguration; - _retrieveWindowFunc = retrieveWindowFunc ?? InteropWindowQuery.GetActiveWindow; + _retrieveWindowFunc = retrieveWindowFunc ?? InteropWindowQuery.GetForegroundWindow; } public ValueTask> Import(CancellationToken cancellationToken = default) diff --git a/src/Greenshot.Core/app.config b/src/Greenshot.Core/app.config index 4ce296638..dc12e2573 100644 --- a/src/Greenshot.Core/app.config +++ b/src/Greenshot.Core/app.config @@ -2,18 +2,6 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.Core/packages.config b/src/Greenshot.Core/packages.config deleted file mode 100644 index 3fb8454d9..000000000 --- a/src/Greenshot.Core/packages.config +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.Gfx.Experimental/Greenshot.Gfx.Experimental.csproj b/src/Greenshot.Gfx.Experimental/Greenshot.Gfx.Experimental.csproj index 012f15b46..d991ba5e9 100644 --- a/src/Greenshot.Gfx.Experimental/Greenshot.Gfx.Experimental.csproj +++ b/src/Greenshot.Gfx.Experimental/Greenshot.Gfx.Experimental.csproj @@ -1,79 +1,56 @@ - - - + + - Debug - AnyCPU - {14894A45-AA2C-4BC3-85A3-E388D0BDC1CA} - Library - Properties - Greenshot.Gfx.Experimental - Greenshot.Gfx.Experimental - v4.6.1 - 512 - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - latest + net471;netcoreapp3.0 true - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - latest - true - - - - - ..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll - - - - - ..\packages\System.Memory.4.5.1\lib\netstandard2.0\System.Memory.dll - - - - ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - + + - + + + + + + + + + + + + + + + + + - - - - - + + + + + 4.5.0 + + + 4.5.1 + + + 4.5.0 + + + 4.5.2 + + + {f041c685-eb96-4ed1-9ace-0f5bd836610f} Greenshot.Gfx - - - - - + \ No newline at end of file diff --git a/src/Greenshot.Gfx.Experimental/Properties/AssemblyInfo.cs b/src/Greenshot.Gfx.Experimental/Properties/AssemblyInfo.cs deleted file mode 100644 index 5b43d1766..000000000 --- a/src/Greenshot.Gfx.Experimental/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Greenshot.Gfx.Experimental")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Greenshot.Gfx.Experimental")] -[assembly: AssemblyCopyright("Copyright © 2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("14894a45-aa2c-4bc3-85a3-e388d0bdc1ca")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/Greenshot.Gfx.Experimental/app.config b/src/Greenshot.Gfx.Experimental/app.config index b64150bec..b3e5dcbbe 100644 --- a/src/Greenshot.Gfx.Experimental/app.config +++ b/src/Greenshot.Gfx.Experimental/app.config @@ -2,22 +2,9 @@ - - - - - - - - - - - - - - - - - + + + + diff --git a/src/Greenshot.Gfx.Experimental/packages.config b/src/Greenshot.Gfx.Experimental/packages.config deleted file mode 100644 index bac5c5225..000000000 --- a/src/Greenshot.Gfx.Experimental/packages.config +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.Gfx/BitmapHelper.cs b/src/Greenshot.Gfx/BitmapHelper.cs index 11fa1d29d..3c8b6bacc 100644 --- a/src/Greenshot.Gfx/BitmapHelper.cs +++ b/src/Greenshot.Gfx/BitmapHelper.cs @@ -57,8 +57,7 @@ namespace Greenshot.Gfx { using (var tmpImage = Image.FromStream(stream, true, true)) { - var bitmap = tmpImage as Bitmap; - if (bitmap == null) + if (!(tmpImage is Bitmap bitmap)) { return null; } @@ -69,8 +68,6 @@ namespace Greenshot.Gfx static BitmapHelper() { - - // Fallback StreamConverters[""] = FromStreamReader; diff --git a/src/Greenshot.Gfx/Greenshot.Gfx.csproj b/src/Greenshot.Gfx/Greenshot.Gfx.csproj index ce72ed38f..9dc228c0f 100644 --- a/src/Greenshot.Gfx/Greenshot.Gfx.csproj +++ b/src/Greenshot.Gfx/Greenshot.Gfx.csproj @@ -1,184 +1,38 @@ - - - - + + - Debug - AnyCPU - {F041C685-EB96-4ED1-9ACE-0F5BD836610F} - Library - Properties - Greenshot.Gfx - Greenshot.Gfx - v4.6.1 - 512 + net471;netcoreapp3.0 true - - - - ..\packages\Autofac.4.8.1\lib\net45\Autofac.dll - - - ..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll - - - ..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll - - - ..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll - - - ..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll - - - ..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll - - - ..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll - - - ..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll - - - ..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll - - - ..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll - - - ..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll - - - ..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll - - - ..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll - - - ..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll - - - ..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll - - - ..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll - - - ..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll - - - ..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll - - - ..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll - - - ..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll - - - ..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll - - - ..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll - - - ..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll - + + + - - - - ..\packages\Svg.2.3.0\lib\net35\Svg.dll - - - - - ..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll - + + + - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\System.Windows.Interactivity.dll - + + - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + 1.2.7 + + + 2.3.0 + - - - - - - \ No newline at end of file + diff --git a/src/Greenshot.Gfx/Properties/AssemblyInfo.cs b/src/Greenshot.Gfx/Properties/AssemblyInfo.cs deleted file mode 100644 index d8e5b7c49..000000000 --- a/src/Greenshot.Gfx/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Greenshot.Gfx")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Greenshot")] -[assembly: AssemblyProduct("Greenshot.Gfx")] -[assembly: AssemblyCopyright("Copyright © Greenshot 2007-2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("f041c685-eb96-4ed1-9ace-0f5bd836610f")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/Greenshot.Gfx/app.config b/src/Greenshot.Gfx/app.config index 8fca7d315..b3e5dcbbe 100644 --- a/src/Greenshot.Gfx/app.config +++ b/src/Greenshot.Gfx/app.config @@ -2,18 +2,9 @@ - - - - - - - - - - - - - + + + + diff --git a/src/Greenshot.Gfx/packages.config b/src/Greenshot.Gfx/packages.config deleted file mode 100644 index 0838eca01..000000000 --- a/src/Greenshot.Gfx/packages.config +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.PerformanceTests/App.config b/src/Greenshot.PerformanceTests/App.config index fa3ddd4fe..320e26190 100644 --- a/src/Greenshot.PerformanceTests/App.config +++ b/src/Greenshot.PerformanceTests/App.config @@ -1,126 +1,10 @@  - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Greenshot.PerformanceTests/GfxPerformanceShort.cs b/src/Greenshot.PerformanceTests/GfxPerformanceShort.cs new file mode 100644 index 000000000..a986a5e14 --- /dev/null +++ b/src/Greenshot.PerformanceTests/GfxPerformanceShort.cs @@ -0,0 +1,49 @@ +using System.Drawing; +using System.Drawing.Imaging; +using BenchmarkDotNet.Attributes; +using Greenshot.Gfx; +using Greenshot.Gfx.Experimental; + +namespace Greenshot.PerformanceTests +{ + /// + /// This defines the benchmarks which can be done + /// + [MinColumn, MaxColumn, MemoryDiagnoser] + public class GfxPerformanceShort + { + [Benchmark] + [Arguments(PixelFormat.Format24bppRgb)] + [Arguments(PixelFormat.Format32bppRgb)] + [Arguments(PixelFormat.Format32bppArgb)] + public void Blur(PixelFormat pixelFormat) + { + using (var bitmap = BitmapFactory.CreateEmpty(400, 400, pixelFormat, Color.White)) + { + using (var graphics = Graphics.FromImage(bitmap)) + using (var pen = new SolidBrush(Color.Blue)) + { + graphics.FillRectangle(pen, new Rectangle(30, 30, 340, 340)); + } + bitmap.ApplyBoxBlur(10); + } + } + + [Benchmark] + [Arguments(PixelFormat.Format24bppRgb)] + [Arguments(PixelFormat.Format32bppRgb)] + [Arguments(PixelFormat.Format32bppArgb)] + public void BlurSpan(PixelFormat pixelFormat) + { + using (var bitmap = BitmapFactory.CreateEmpty(400, 400, pixelFormat, Color.White)) + { + using (var graphics = Graphics.FromImage(bitmap)) + using (var pen = new SolidBrush(Color.Blue)) + { + graphics.FillRectangle(pen, new Rectangle(30, 30, 340, 340)); + } + bitmap.ApplyBoxBlurSpan(10); + } + } + } +} diff --git a/src/Greenshot.PerformanceTests/Greenshot.PerformanceTests.csproj b/src/Greenshot.PerformanceTests/Greenshot.PerformanceTests.csproj index 627bf0e50..53d92bab8 100644 --- a/src/Greenshot.PerformanceTests/Greenshot.PerformanceTests.csproj +++ b/src/Greenshot.PerformanceTests/Greenshot.PerformanceTests.csproj @@ -1,246 +1,42 @@ - - - - + + - {5D594C8A-2137-46E1-8D01-B83662825C7B} - Exe Greenshot.PerformanceTests Greenshot.PerformanceTests - v4.6.1 - 512 - - true + Exe + net471;netcoreapp3.0 + true - - - ..\packages\Autofac.4.8.1\lib\net45\Autofac.dll - - - ..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll - - - ..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll - - - ..\packages\BenchmarkDotNet.0.11.1\lib\net46\BenchmarkDotNet.dll - - - ..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll - - - ..\packages\CommandLineParser.2.3.0\lib\net45\CommandLine.dll - - - ..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll - - - ..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll - - - ..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll - - - ..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll - - - ..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll - - - ..\packages\Dapplo.HttpExtensions.0.8.46\lib\net46\Dapplo.HttpExtensions.dll - - - ..\packages\Dapplo.HttpExtensions.OAuth.0.8.46\lib\net46\Dapplo.HttpExtensions.OAuth.dll - - - ..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll - - - ..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll - - - ..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll - - - ..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll - - - ..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll - - - ..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll - - - ..\packages\Dapplo.Windows.Com.0.5.109\lib\net461\Dapplo.Windows.Com.dll - - - ..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll - - - ..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll - - - ..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll - - - ..\packages\Dapplo.Windows.EmbeddedBrowser.0.5.109\lib\net461\Dapplo.Windows.EmbeddedBrowser.dll - - - ..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll - - - ..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll - - - ..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll - - - ..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll - - - ..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll - - - ..\packages\JeremyAnsel.ColorQuant.1.0.55\lib\net40\JeremyAnsel.ColorQuant.dll - - - ..\packages\Microsoft.CodeAnalysis.Common.2.9.0\lib\netstandard1.3\Microsoft.CodeAnalysis.dll - - - ..\packages\Microsoft.CodeAnalysis.CSharp.2.9.0\lib\netstandard1.3\Microsoft.CodeAnalysis.CSharp.dll - - - ..\packages\Microsoft.DotNet.InternalAbstractions.1.0.0\lib\net451\Microsoft.DotNet.InternalAbstractions.dll - - - ..\packages\Microsoft.DotNet.PlatformAbstractions.2.1.0\lib\net45\Microsoft.DotNet.PlatformAbstractions.dll - + + + + + + + + + + + + + + - - ..\packages\Microsoft.Win32.Registry.4.5.0\lib\net461\Microsoft.Win32.Registry.dll - - - ..\packages\System.AppContext.4.3.0\lib\net46\System.AppContext.dll - - - ..\packages\System.Collections.Immutable.1.5.0\lib\netstandard2.0\System.Collections.Immutable.dll - - - ..\packages\System.Console.4.3.1\lib\net46\System.Console.dll - True - True - - - ..\packages\System.Diagnostics.FileVersionInfo.4.3.0\lib\net46\System.Diagnostics.FileVersionInfo.dll - True - True - - - ..\packages\System.Diagnostics.StackTrace.4.3.0\lib\net46\System.Diagnostics.StackTrace.dll - True - True - - - ..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll - True - True - - - ..\packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll - True - True - - - ..\packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll - True - True - - - ..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll - - - ..\packages\System.Reflection.Metadata.1.6.0\lib\netstandard2.0\System.Reflection.Metadata.dll - - - ..\packages\System.Reflection.TypeExtensions.4.1.0\lib\net46\System.Reflection.TypeExtensions.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll - True - True - - - ..\packages\System.Runtime.Serialization.Primitives.4.3.0\lib\net46\System.Runtime.Serialization.Primitives.dll - True - True - - - ..\packages\System.Security.AccessControl.4.5.0\lib\net461\System.Security.AccessControl.dll - - - ..\packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net461\System.Security.Cryptography.Algorithms.dll - True - True - - - ..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll - True - True - - - ..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll - True - True - - - ..\packages\System.Security.Cryptography.X509Certificates.4.3.2\lib\net461\System.Security.Cryptography.X509Certificates.dll - True - True - - - ..\packages\System.Security.Principal.Windows.4.5.0\lib\net461\System.Security.Principal.Windows.dll - - - ..\packages\System.Text.Encoding.CodePages.4.5.0\lib\net461\System.Text.Encoding.CodePages.dll - - - ..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.Threading.Thread.4.3.0\lib\net46\System.Threading.Thread.dll - True - True - - - ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\System.Windows.Interactivity.dll - @@ -248,57 +44,29 @@ - - ..\packages\System.Xml.ReaderWriter.4.3.1\lib\net46\System.Xml.ReaderWriter.dll - True - True - - - ..\packages\System.Xml.XmlDocument.4.3.0\lib\net46\System.Xml.XmlDocument.dll - True - True - - - ..\packages\System.Xml.XPath.4.3.0\lib\net46\System.Xml.XPath.dll - True - True - - - ..\packages\System.Xml.XPath.XDocument.4.3.0\lib\net46\System.Xml.XPath.XDocument.dll - True - True - - - ..\packages\System.Xml.XPath.XmlDocument.4.3.0\lib\net46\System.Xml.XPath.XmlDocument.dll - + - - - + + + + + + - - + + + + + 2.6.2 + runtime; build; native; contentfiles; analyzers + all + + + + + - - - {14894a45-aa2c-4bc3-85a3-e388d0bdc1ca} - Greenshot.Gfx.Experimental - - - {F041C685-EB96-4ED1-9ACE-0F5BD836610F} - Greenshot.Gfx - - - {9b162e60-12d8-44fd-8093-7d40392f23fa} - Greenshot.Tests - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.PerformanceTests/Program.cs b/src/Greenshot.PerformanceTests/Program.cs index d065bb97a..45f6d2e46 100644 --- a/src/Greenshot.PerformanceTests/Program.cs +++ b/src/Greenshot.PerformanceTests/Program.cs @@ -1,4 +1,7 @@ using System; +using BenchmarkDotNet.Configs; +using BenchmarkDotNet.Environments; +using BenchmarkDotNet.Jobs; using BenchmarkDotNet.Running; namespace Greenshot.PerformanceTests @@ -11,7 +14,9 @@ namespace Greenshot.PerformanceTests // ReSharper disable once UnusedParameter.Local private static void Main(string[] args) { - BenchmarkRunner.Run(); + var job = Job.Default.With(Platform.X64); + var config = DefaultConfig.Instance.With(job).KeepBenchmarkFiles(true); + BenchmarkRunner.Run(config); Console.ReadLine(); } } diff --git a/src/Greenshot.PerformanceTests/Properties/AssemblyInfo.cs b/src/Greenshot.PerformanceTests/Properties/AssemblyInfo.cs deleted file mode 100644 index 2cdf6affd..000000000 --- a/src/Greenshot.PerformanceTests/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Greenshot.PerformanceTests")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Greenshot")] -[assembly: AssemblyProduct("Greenshot.PerformanceTests")] -[assembly: AssemblyCopyright("Copyright © Greenshot 2007-2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("5d594c8a-2137-46e1-8d01-b83662825c7b")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/Greenshot.PerformanceTests/packages.config b/src/Greenshot.PerformanceTests/packages.config deleted file mode 100644 index 182b12837..000000000 --- a/src/Greenshot.PerformanceTests/packages.config +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.Tests/CaptureTests.cs b/src/Greenshot.Tests/CaptureTests.cs index b5b97176a..bbca527c5 100644 --- a/src/Greenshot.Tests/CaptureTests.cs +++ b/src/Greenshot.Tests/CaptureTests.cs @@ -26,8 +26,8 @@ using System.Linq; using System.Threading.Tasks; using System.Windows.Media.Imaging; using Dapplo.CaliburnMicro.Extensions; -using Dapplo.Ini; using Dapplo.Windows.Desktop; +using Greenshot.Addons.Config.Impl; using Greenshot.Addons.Core; using Greenshot.Core; using Greenshot.Core.Enums; @@ -81,8 +81,7 @@ namespace Greenshot.Tests [WpfFact] public async Task Test_CaptureFlow_DwmWindowSource() { - var iniConfig = new IniConfig("Greenshot.Tests", "Greenshot.Tests"); - var config = iniConfig.Get(); + ICoreConfiguration config = new CoreConfigurationImpl(); var windowToCapture = InteropWindowQuery.GetTopLevelWindows().First(window => window.GetCaption().Contains("Notepad")); var bounds = windowToCapture.GetInfo().Bounds; diff --git a/src/Greenshot.Tests/FilterTests.cs b/src/Greenshot.Tests/FilterTests.cs index 63933952c..36905abe1 100644 --- a/src/Greenshot.Tests/FilterTests.cs +++ b/src/Greenshot.Tests/FilterTests.cs @@ -3,6 +3,7 @@ using System.Drawing.Imaging; using Dapplo.Log; using Dapplo.Log.XUnit; using Greenshot.Gfx; +using Greenshot.Tests.Implementation; using Xunit; using Xunit.Abstractions; diff --git a/src/Greenshot.Tests/Greenshot.Tests.csproj b/src/Greenshot.Tests/Greenshot.Tests.csproj index 355c220d7..ed2663672 100644 --- a/src/Greenshot.Tests/Greenshot.Tests.csproj +++ b/src/Greenshot.Tests/Greenshot.Tests.csproj @@ -1,275 +1,39 @@ - - - - - + + - Debug - AnyCPU - {9B162E60-12D8-44FD-8093-7D40392F23FA} - Library - Properties - Greenshot.Tests - Greenshot.Tests - v4.6.1 - 512 - - - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 + net471;netcoreapp3.0 true - latest - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - true - latest - - - - ..\packages\Autofac.4.8.1\lib\net45\Autofac.dll - - - ..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll - - - ..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll - - - ..\packages\BenchmarkDotNet.0.11.1\lib\net46\BenchmarkDotNet.dll - - - ..\packages\BenchmarkDotNet.Core.0.10.14\lib\net46\BenchmarkDotNet.Core.dll - - - ..\packages\BenchmarkDotNet.Toolchains.Roslyn.0.10.14\lib\net46\BenchmarkDotNet.Toolchains.Roslyn.dll - - - ..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll - - - ..\packages\CommandLineParser.2.3.0\lib\net45\CommandLine.dll - - - ..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll - - - ..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll - - - ..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll - - - ..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll - - - ..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll - - - ..\packages\Dapplo.HttpExtensions.0.8.46\lib\net46\Dapplo.HttpExtensions.dll - - - ..\packages\Dapplo.HttpExtensions.OAuth.0.8.46\lib\net46\Dapplo.HttpExtensions.OAuth.dll - - - ..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll - - - ..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll - - - ..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll - - - ..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll - - - ..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll - - - ..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll - - - ..\packages\Dapplo.Windows.Com.0.5.109\lib\net461\Dapplo.Windows.Com.dll - - - ..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll - - - ..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll - - - ..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll - - - ..\packages\Dapplo.Windows.EmbeddedBrowser.0.5.109\lib\net461\Dapplo.Windows.EmbeddedBrowser.dll - - - ..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll - - - ..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll - - - ..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll - - - ..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll - - - ..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll - - - ..\packages\Microsoft.CodeAnalysis.Common.2.9.0\lib\netstandard1.3\Microsoft.CodeAnalysis.dll - - - ..\packages\Microsoft.CodeAnalysis.CSharp.2.9.0\lib\netstandard1.3\Microsoft.CodeAnalysis.CSharp.dll - - - ..\packages\Microsoft.DotNet.InternalAbstractions.1.0.0\lib\net451\Microsoft.DotNet.InternalAbstractions.dll - - - ..\packages\Microsoft.DotNet.PlatformAbstractions.2.1.0\lib\net45\Microsoft.DotNet.PlatformAbstractions.dll - + + + + + + + + + + + + + + - - ..\packages\Microsoft.Win32.Registry.4.5.0\lib\net461\Microsoft.Win32.Registry.dll - - - ..\packages\System.AppContext.4.3.0\lib\net46\System.AppContext.dll - - - ..\packages\System.Collections.Immutable.1.5.0\lib\netstandard2.0\System.Collections.Immutable.dll - - - ..\packages\System.Console.4.3.1\lib\net46\System.Console.dll - True - True - - - ..\packages\System.Diagnostics.FileVersionInfo.4.3.0\lib\net46\System.Diagnostics.FileVersionInfo.dll - True - True - - - ..\packages\System.Diagnostics.StackTrace.4.3.0\lib\net46\System.Diagnostics.StackTrace.dll - True - True - - - ..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll - True - True - - - ..\packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll - True - True - - - ..\packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll - True - True - - - ..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll - - - ..\packages\System.Reflection.Metadata.1.6.0\lib\netstandard2.0\System.Reflection.Metadata.dll - - - ..\packages\System.Reflection.TypeExtensions.4.5.0\lib\net461\System.Reflection.TypeExtensions.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll - True - True - - - ..\packages\System.Runtime.Serialization.Primitives.4.3.0\lib\net46\System.Runtime.Serialization.Primitives.dll - True - True - - - ..\packages\System.Security.AccessControl.4.5.0\lib\net461\System.Security.AccessControl.dll - - - ..\packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net461\System.Security.Cryptography.Algorithms.dll - True - True - - - ..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll - True - True - - - ..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll - True - True - - - ..\packages\System.Security.Cryptography.X509Certificates.4.3.2\lib\net461\System.Security.Cryptography.X509Certificates.dll - True - True - - - ..\packages\System.Security.Principal.Windows.4.5.0\lib\net461\System.Security.Principal.Windows.dll - - - ..\packages\System.Text.Encoding.CodePages.4.5.0\lib\net461\System.Text.Encoding.CodePages.dll - - - ..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.Threading.Thread.4.3.0\lib\net46\System.Threading.Thread.dll - True - True - - - ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\System.Windows.Interactivity.dll - @@ -277,93 +41,11 @@ - - ..\packages\System.Xml.ReaderWriter.4.3.1\lib\net46\System.Xml.ReaderWriter.dll - True - True - - - ..\packages\System.Xml.XmlDocument.4.3.0\lib\net46\System.Xml.XmlDocument.dll - True - True - - - ..\packages\System.Xml.XPath.4.3.0\lib\net46\System.Xml.XPath.dll - True - True - - - ..\packages\System.Xml.XPath.XDocument.4.3.0\lib\net46\System.Xml.XPath.XDocument.dll - True - True - - - ..\packages\System.Xml.XPath.XmlDocument.4.3.0\lib\net46\System.Xml.XPath.XmlDocument.dll - - - ..\packages\xunit.abstractions.2.0.3\lib\net35\xunit.abstractions.dll - True - - - ..\packages\xunit.assert.2.4.0\lib\netstandard2.0\xunit.assert.dll - - - ..\packages\xunit.extensibility.core.2.4.0\lib\net452\xunit.core.dll - - - ..\packages\xunit.extensibility.execution.2.4.0\lib\net452\xunit.execution.desktop.dll - - - ..\packages\Xunit.StaFact.0.2.17\lib\net452\Xunit.StaFact.dll - + - - - - - - - - - - - - - - - {ad7cffe2-40e7-46cf-a172-d48cf7ae9a12} - Greenshot.Addon.Dropbox - - - {5b924697-4dcd-4f98-85f1-105cb84b7341} - Greenshot.Addons - - - {bf35190d-b2a7-4cfa-b397-51cb384cf0d7} - Greenshot.Core - - - {14894a45-aa2c-4bc3-85a3-e388d0bdc1ca} - Greenshot.Gfx.Experimental - - - {f041c685-eb96-4ed1-9ace-0f5bd836610f} - Greenshot.Gfx - - - {cd642bf4-d815-4d67-a0b5-c69f0b8231af} - Greenshot - - - - - - - - - + PreserveNewest @@ -378,26 +60,42 @@ PreserveNewest - - PreserveNewest Designer + - - - + + + + + + + runtime; build; native; contentfiles; analyzers + all + + + + + + + + + runtime; build; native; contentfiles; analyzers + all + + - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/src/Greenshot.Tests/IniTests.cs b/src/Greenshot.Tests/IniTests.cs index 4baa04ddb..b151ddd0e 100644 --- a/src/Greenshot.Tests/IniTests.cs +++ b/src/Greenshot.Tests/IniTests.cs @@ -21,10 +21,8 @@ #endregion -using System.Threading.Tasks; -using Dapplo.Ini; -using Dapplo.Ini.Converters; -using Greenshot.Addon.Dropbox; +using Dapplo.Config.Ini.Converters; +using Greenshot.Addon.Dropbox.Configuration.Impl; using Xunit; namespace Greenshot.Tests @@ -32,19 +30,15 @@ namespace Greenshot.Tests public class IniTests { [Fact] - public async Task ConstIniTest() + public void ConstIniTest() { // TODO: Set via build StringEncryptionTypeConverter.RgbIv = "dlgjowejgogkklwj"; StringEncryptionTypeConverter.RgbKey = "lsjvkwhvwujkagfauguwcsjgu2wueuff"; - using (var iniConfig = new IniConfig("greenshot", "greenshot")) - { - await iniConfig.LoadIfNeededAsync(); - var dropboxConfiguration = iniConfig.Get(); - // TODO: Fix this!! - Assert.NotEqual("@credentials_dropbox_consumer_key@", dropboxConfiguration.ClientId); - } + var dropboxConfiguration = new DropboxConfigurationImpl(); + // TODO: Fix this!! + Assert.NotEqual("@credentials_dropbox_consumer_key@", dropboxConfiguration.ClientId); } } } diff --git a/src/Greenshot.Tests/Properties/AssemblyInfo.cs b/src/Greenshot.Tests/Properties/AssemblyInfo.cs deleted file mode 100644 index e314bba58..000000000 --- a/src/Greenshot.Tests/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Greenshot.Tests")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Greenshot")] -[assembly: AssemblyProduct("Greenshot.Tests")] -[assembly: AssemblyCopyright("Copyright © Greenshot 2007-2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("9b162e60-12d8-44fd-8093-7d40392f23fa")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/Greenshot.Tests/UpdateTests.cs b/src/Greenshot.Tests/UpdateTests.cs index cb115cfa4..3e8ef09c3 100644 --- a/src/Greenshot.Tests/UpdateTests.cs +++ b/src/Greenshot.Tests/UpdateTests.cs @@ -21,6 +21,7 @@ #endregion +#if !NETCOREAPP3_0 using System; using System.ServiceModel.Syndication; using System.Threading.Tasks; @@ -55,3 +56,4 @@ namespace Greenshot.Tests } } } +#endif \ No newline at end of file diff --git a/src/Greenshot.Tests/app.config b/src/Greenshot.Tests/app.config index bf9c7a032..b3e5dcbbe 100644 --- a/src/Greenshot.Tests/app.config +++ b/src/Greenshot.Tests/app.config @@ -2,110 +2,9 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + diff --git a/src/Greenshot.Tests/packages.config b/src/Greenshot.Tests/packages.config deleted file mode 100644 index 447ff05a6..000000000 --- a/src/Greenshot.Tests/packages.config +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot.sln b/src/Greenshot.sln index e7a9fe6be..b493f13c7 100644 --- a/src/Greenshot.sln +++ b/src/Greenshot.sln @@ -3,55 +3,55 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 VisualStudioVersion = 15.0.27130.2027 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot", "Greenshot\Greenshot.csproj", "{CD642BF4-D815-4D67-A0B5-C69F0B8231AF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot", "Greenshot\Greenshot.csproj", "{CD642BF4-D815-4D67-A0B5-C69F0B8231AF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot.Addons", "Greenshot.Addons\Greenshot.Addons.csproj", "{5B924697-4DCD-4F98-85F1-105CB84B7341}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot.Addons", "Greenshot.Addons\Greenshot.Addons.csproj", "{5B924697-4DCD-4F98-85F1-105CB84B7341}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot.Addon.ExternalCommand", "Greenshot.Addon.ExternalCommand\Greenshot.Addon.ExternalCommand.csproj", "{47F23C86-604E-4CC3-8767-B3D4088F30BB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot.Addon.ExternalCommand", "Greenshot.Addon.ExternalCommand\Greenshot.Addon.ExternalCommand.csproj", "{47F23C86-604E-4CC3-8767-B3D4088F30BB}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot.Addon.Confluence", "Greenshot.Addon.Confluence\Greenshot.Addon.Confluence.csproj", "{C3052651-598A-44E2-AAB3-2E41311D50F9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot.Addon.Confluence", "Greenshot.Addon.Confluence\Greenshot.Addon.Confluence.csproj", "{C3052651-598A-44E2-AAB3-2E41311D50F9}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot.Addon.Imgur", "Greenshot.Addon.Imgur\Greenshot.Addon.Imgur.csproj", "{80D8DEB9-94E3-4876-8CCA-2DF1ED5F2C50}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot.Addon.Imgur", "Greenshot.Addon.Imgur\Greenshot.Addon.Imgur.csproj", "{80D8DEB9-94E3-4876-8CCA-2DF1ED5F2C50}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot.Addon.Jira", "Greenshot.Addon.Jira\Greenshot.Addon.Jira.csproj", "{19FEEF09-313F-43C7-819D-F1BCA782B08B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot.Addon.Jira", "Greenshot.Addon.Jira\Greenshot.Addon.Jira.csproj", "{19FEEF09-313F-43C7-819D-F1BCA782B08B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot.Addon.OCR", "Greenshot.Addon.OCR\Greenshot.Addon.OCR.csproj", "{C6988EE8-2FEE-4349-9F09-F9628A0D8965}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot.Addon.OCR", "Greenshot.Addon.OCR\Greenshot.Addon.OCR.csproj", "{C6988EE8-2FEE-4349-9F09-F9628A0D8965}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot.Addon.Box", "Greenshot.Addon.Box\Greenshot.Addon.Box.csproj", "{697CF066-9077-4F22-99D9-D989CCE7282B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot.Addon.Box", "Greenshot.Addon.Box\Greenshot.Addon.Box.csproj", "{697CF066-9077-4F22-99D9-D989CCE7282B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot.Addon.Dropbox", "Greenshot.Addon.Dropbox\Greenshot.Addon.Dropbox.csproj", "{AD7CFFE2-40E7-46CF-A172-D48CF7AE9A12}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot.Addon.Dropbox", "Greenshot.Addon.Dropbox\Greenshot.Addon.Dropbox.csproj", "{AD7CFFE2-40E7-46CF-A172-D48CF7AE9A12}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot.Addon.Flickr", "Greenshot.Addon.Flickr\Greenshot.Addon.Flickr.csproj", "{7EC72A5A-D73A-4B4B-9CA1-2216C7D92D5E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot.Addon.Flickr", "Greenshot.Addon.Flickr\Greenshot.Addon.Flickr.csproj", "{7EC72A5A-D73A-4B4B-9CA1-2216C7D92D5E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot.Addon.GooglePhotos", "Greenshot.Addon.GooglePhotos\Greenshot.Addon.GooglePhotos.csproj", "{1893A2E4-A78A-4713-A8E7-E70058DABEE0}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot.Addon.GooglePhotos", "Greenshot.Addon.GooglePhotos\Greenshot.Addon.GooglePhotos.csproj", "{1893A2E4-A78A-4713-A8E7-E70058DABEE0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot.Addon.Office", "Greenshot.Addon.Office\Greenshot.Addon.Office.csproj", "{92599C09-FF29-4ABD-B6E6-C48ECD781BAB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot.Addon.Office", "Greenshot.Addon.Office\Greenshot.Addon.Office.csproj", "{92599C09-FF29-4ABD-B6E6-C48ECD781BAB}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot.Addon.Photobucket", "Greenshot.Addon.Photobucket\Greenshot.Addon.Photobucket.csproj", "{9C0ECC4C-7807-4111-916A-4F57BB29788A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot.Addon.Photobucket", "Greenshot.Addon.Photobucket\Greenshot.Addon.Photobucket.csproj", "{9C0ECC4C-7807-4111-916A-4F57BB29788A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot.Addon.Win10", "Greenshot.Addon.Win10\Greenshot.Addon.Win10.csproj", "{9801F62C-540F-4BFE-9211-6405DEDE563B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot.Addon.Win10", "Greenshot.Addon.Win10\Greenshot.Addon.Win10.csproj", "{9801F62C-540F-4BFE-9211-6405DEDE563B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot.Addon.Lutim", "Greenshot.Addon.Lutim\Greenshot.Addon.Lutim.csproj", "{D106F86C-CD3D-44FF-B151-2A5D47268B5C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot.Addon.Lutim", "Greenshot.Addon.Lutim\Greenshot.Addon.Lutim.csproj", "{D106F86C-CD3D-44FF-B151-2A5D47268B5C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot.Gfx", "Greenshot.Gfx\Greenshot.Gfx.csproj", "{F041C685-EB96-4ED1-9ACE-0F5BD836610F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot.Gfx", "Greenshot.Gfx\Greenshot.Gfx.csproj", "{F041C685-EB96-4ED1-9ACE-0F5BD836610F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot.PerformanceTests", "Greenshot.PerformanceTests\Greenshot.PerformanceTests.csproj", "{5D594C8A-2137-46E1-8D01-B83662825C7B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot.PerformanceTests", "Greenshot.PerformanceTests\Greenshot.PerformanceTests.csproj", "{5D594C8A-2137-46E1-8D01-B83662825C7B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot.Tests", "Greenshot.Tests\Greenshot.Tests.csproj", "{9B162E60-12D8-44FD-8093-7D40392F23FA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot.Tests", "Greenshot.Tests\Greenshot.Tests.csproj", "{9B162E60-12D8-44FD-8093-7D40392F23FA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot.Addon.LegacyEditor", "Greenshot.Addon.LegacyEditor\Greenshot.Addon.LegacyEditor.csproj", "{9F89C5A0-EB75-4F01-97EB-FBC0725733F2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot.Addon.LegacyEditor", "Greenshot.Addon.LegacyEditor\Greenshot.Addon.LegacyEditor.csproj", "{9F89C5A0-EB75-4F01-97EB-FBC0725733F2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot.Gfx.Experimental", "Greenshot.Gfx.Experimental\Greenshot.Gfx.Experimental.csproj", "{14894A45-AA2C-4BC3-85A3-E388D0BDC1CA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot.Gfx.Experimental", "Greenshot.Gfx.Experimental\Greenshot.Gfx.Experimental.csproj", "{14894A45-AA2C-4BC3-85A3-E388D0BDC1CA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot.Addon.OneDrive", "Greenshot.Addon.OneDrive\Greenshot.Addon.OneDrive.csproj", "{B35272D3-4631-4FA5-9A3E-85D70ECA9A8D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot.Addon.OneDrive", "Greenshot.Addon.OneDrive\Greenshot.Addon.OneDrive.csproj", "{B35272D3-4631-4FA5-9A3E-85D70ECA9A8D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot.Addon.Tfs", "Greenshot.Addon.Tfs\Greenshot.Addon.Tfs.csproj", "{8B3643A5-AFED-49FF-8D66-6348FB102EB2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot.Addon.Tfs", "Greenshot.Addon.Tfs\Greenshot.Addon.Tfs.csproj", "{8B3643A5-AFED-49FF-8D66-6348FB102EB2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot.Addon.OcrCommand", "Greenshot.Addon.OcrCommand\Greenshot.Addon.OcrCommand.csproj", "{7B8E9055-A054-4290-B537-075EBFDF8BDF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot.Addon.OcrCommand", "Greenshot.Addon.OcrCommand\Greenshot.Addon.OcrCommand.csproj", "{7B8E9055-A054-4290-B537-075EBFDF8BDF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot.Core", "Greenshot.Core\Greenshot.Core.csproj", "{BF35190D-B2A7-4CFA-B397-51CB384CF0D7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot.Core", "Greenshot.Core\Greenshot.Core.csproj", "{BF35190D-B2A7-4CFA-B397-51CB384CF0D7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Greenshot.Addon.InternetExplorer", "Greenshot.Addon.InternetExplorer\Greenshot.Addon.InternetExplorer.csproj", "{4CCA2717-B8A4-44F7-965B-5687107E4921}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Greenshot.Addon.InternetExplorer", "Greenshot.Addon.InternetExplorer\Greenshot.Addon.InternetExplorer.csproj", "{4CCA2717-B8A4-44F7-965B-5687107E4921}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -63,98 +63,110 @@ Global GlobalSection(ProjectConfigurationPlatforms) = postSolution {CD642BF4-D815-4D67-A0B5-C69F0B8231AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CD642BF4-D815-4D67-A0B5-C69F0B8231AF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CD642BF4-D815-4D67-A0B5-C69F0B8231AF}.Debug|x86.ActiveCfg = Debug|x86 - {CD642BF4-D815-4D67-A0B5-C69F0B8231AF}.Debug|x86.Build.0 = Debug|x86 + {CD642BF4-D815-4D67-A0B5-C69F0B8231AF}.Debug|x86.ActiveCfg = Debug|Any CPU + {CD642BF4-D815-4D67-A0B5-C69F0B8231AF}.Debug|x86.Build.0 = Debug|Any CPU {CD642BF4-D815-4D67-A0B5-C69F0B8231AF}.Release|Any CPU.ActiveCfg = Release|Any CPU {CD642BF4-D815-4D67-A0B5-C69F0B8231AF}.Release|Any CPU.Build.0 = Release|Any CPU - {CD642BF4-D815-4D67-A0B5-C69F0B8231AF}.Release|x86.ActiveCfg = Release|x86 + {CD642BF4-D815-4D67-A0B5-C69F0B8231AF}.Release|x86.ActiveCfg = Release|Any CPU + {CD642BF4-D815-4D67-A0B5-C69F0B8231AF}.Release|x86.Build.0 = Release|Any CPU {5B924697-4DCD-4F98-85F1-105CB84B7341}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5B924697-4DCD-4F98-85F1-105CB84B7341}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5B924697-4DCD-4F98-85F1-105CB84B7341}.Debug|x86.ActiveCfg = Debug|x86 - {5B924697-4DCD-4F98-85F1-105CB84B7341}.Debug|x86.Build.0 = Debug|x86 + {5B924697-4DCD-4F98-85F1-105CB84B7341}.Debug|x86.ActiveCfg = Debug|Any CPU + {5B924697-4DCD-4F98-85F1-105CB84B7341}.Debug|x86.Build.0 = Debug|Any CPU {5B924697-4DCD-4F98-85F1-105CB84B7341}.Release|Any CPU.ActiveCfg = Release|Any CPU {5B924697-4DCD-4F98-85F1-105CB84B7341}.Release|Any CPU.Build.0 = Release|Any CPU - {5B924697-4DCD-4F98-85F1-105CB84B7341}.Release|x86.ActiveCfg = Release|x86 + {5B924697-4DCD-4F98-85F1-105CB84B7341}.Release|x86.ActiveCfg = Release|Any CPU + {5B924697-4DCD-4F98-85F1-105CB84B7341}.Release|x86.Build.0 = Release|Any CPU {47F23C86-604E-4CC3-8767-B3D4088F30BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {47F23C86-604E-4CC3-8767-B3D4088F30BB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {47F23C86-604E-4CC3-8767-B3D4088F30BB}.Debug|x86.ActiveCfg = Debug|x86 - {47F23C86-604E-4CC3-8767-B3D4088F30BB}.Debug|x86.Build.0 = Debug|x86 + {47F23C86-604E-4CC3-8767-B3D4088F30BB}.Debug|x86.ActiveCfg = Debug|Any CPU + {47F23C86-604E-4CC3-8767-B3D4088F30BB}.Debug|x86.Build.0 = Debug|Any CPU {47F23C86-604E-4CC3-8767-B3D4088F30BB}.Release|Any CPU.ActiveCfg = Release|Any CPU {47F23C86-604E-4CC3-8767-B3D4088F30BB}.Release|Any CPU.Build.0 = Release|Any CPU - {47F23C86-604E-4CC3-8767-B3D4088F30BB}.Release|x86.ActiveCfg = Release|x86 + {47F23C86-604E-4CC3-8767-B3D4088F30BB}.Release|x86.ActiveCfg = Release|Any CPU + {47F23C86-604E-4CC3-8767-B3D4088F30BB}.Release|x86.Build.0 = Release|Any CPU {C3052651-598A-44E2-AAB3-2E41311D50F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C3052651-598A-44E2-AAB3-2E41311D50F9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C3052651-598A-44E2-AAB3-2E41311D50F9}.Debug|x86.ActiveCfg = Debug|x86 - {C3052651-598A-44E2-AAB3-2E41311D50F9}.Debug|x86.Build.0 = Debug|x86 + {C3052651-598A-44E2-AAB3-2E41311D50F9}.Debug|x86.ActiveCfg = Debug|Any CPU + {C3052651-598A-44E2-AAB3-2E41311D50F9}.Debug|x86.Build.0 = Debug|Any CPU {C3052651-598A-44E2-AAB3-2E41311D50F9}.Release|Any CPU.ActiveCfg = Release|Any CPU {C3052651-598A-44E2-AAB3-2E41311D50F9}.Release|Any CPU.Build.0 = Release|Any CPU - {C3052651-598A-44E2-AAB3-2E41311D50F9}.Release|x86.ActiveCfg = Release|x86 + {C3052651-598A-44E2-AAB3-2E41311D50F9}.Release|x86.ActiveCfg = Release|Any CPU + {C3052651-598A-44E2-AAB3-2E41311D50F9}.Release|x86.Build.0 = Release|Any CPU {80D8DEB9-94E3-4876-8CCA-2DF1ED5F2C50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {80D8DEB9-94E3-4876-8CCA-2DF1ED5F2C50}.Debug|Any CPU.Build.0 = Debug|Any CPU - {80D8DEB9-94E3-4876-8CCA-2DF1ED5F2C50}.Debug|x86.ActiveCfg = Debug|x86 - {80D8DEB9-94E3-4876-8CCA-2DF1ED5F2C50}.Debug|x86.Build.0 = Debug|x86 + {80D8DEB9-94E3-4876-8CCA-2DF1ED5F2C50}.Debug|x86.ActiveCfg = Debug|Any CPU + {80D8DEB9-94E3-4876-8CCA-2DF1ED5F2C50}.Debug|x86.Build.0 = Debug|Any CPU {80D8DEB9-94E3-4876-8CCA-2DF1ED5F2C50}.Release|Any CPU.ActiveCfg = Release|Any CPU {80D8DEB9-94E3-4876-8CCA-2DF1ED5F2C50}.Release|Any CPU.Build.0 = Release|Any CPU - {80D8DEB9-94E3-4876-8CCA-2DF1ED5F2C50}.Release|x86.ActiveCfg = Release|x86 + {80D8DEB9-94E3-4876-8CCA-2DF1ED5F2C50}.Release|x86.ActiveCfg = Release|Any CPU + {80D8DEB9-94E3-4876-8CCA-2DF1ED5F2C50}.Release|x86.Build.0 = Release|Any CPU {19FEEF09-313F-43C7-819D-F1BCA782B08B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {19FEEF09-313F-43C7-819D-F1BCA782B08B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {19FEEF09-313F-43C7-819D-F1BCA782B08B}.Debug|x86.ActiveCfg = Debug|x86 - {19FEEF09-313F-43C7-819D-F1BCA782B08B}.Debug|x86.Build.0 = Debug|x86 + {19FEEF09-313F-43C7-819D-F1BCA782B08B}.Debug|x86.ActiveCfg = Debug|Any CPU + {19FEEF09-313F-43C7-819D-F1BCA782B08B}.Debug|x86.Build.0 = Debug|Any CPU {19FEEF09-313F-43C7-819D-F1BCA782B08B}.Release|Any CPU.ActiveCfg = Release|Any CPU {19FEEF09-313F-43C7-819D-F1BCA782B08B}.Release|Any CPU.Build.0 = Release|Any CPU - {19FEEF09-313F-43C7-819D-F1BCA782B08B}.Release|x86.ActiveCfg = Release|x86 + {19FEEF09-313F-43C7-819D-F1BCA782B08B}.Release|x86.ActiveCfg = Release|Any CPU + {19FEEF09-313F-43C7-819D-F1BCA782B08B}.Release|x86.Build.0 = Release|Any CPU {C6988EE8-2FEE-4349-9F09-F9628A0D8965}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C6988EE8-2FEE-4349-9F09-F9628A0D8965}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C6988EE8-2FEE-4349-9F09-F9628A0D8965}.Debug|x86.ActiveCfg = Debug|x86 - {C6988EE8-2FEE-4349-9F09-F9628A0D8965}.Debug|x86.Build.0 = Debug|x86 + {C6988EE8-2FEE-4349-9F09-F9628A0D8965}.Debug|x86.ActiveCfg = Debug|Any CPU + {C6988EE8-2FEE-4349-9F09-F9628A0D8965}.Debug|x86.Build.0 = Debug|Any CPU {C6988EE8-2FEE-4349-9F09-F9628A0D8965}.Release|Any CPU.ActiveCfg = Release|Any CPU {C6988EE8-2FEE-4349-9F09-F9628A0D8965}.Release|Any CPU.Build.0 = Release|Any CPU - {C6988EE8-2FEE-4349-9F09-F9628A0D8965}.Release|x86.ActiveCfg = Release|x86 + {C6988EE8-2FEE-4349-9F09-F9628A0D8965}.Release|x86.ActiveCfg = Release|Any CPU + {C6988EE8-2FEE-4349-9F09-F9628A0D8965}.Release|x86.Build.0 = Release|Any CPU {697CF066-9077-4F22-99D9-D989CCE7282B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {697CF066-9077-4F22-99D9-D989CCE7282B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {697CF066-9077-4F22-99D9-D989CCE7282B}.Debug|x86.ActiveCfg = Debug|x86 - {697CF066-9077-4F22-99D9-D989CCE7282B}.Debug|x86.Build.0 = Debug|x86 + {697CF066-9077-4F22-99D9-D989CCE7282B}.Debug|x86.ActiveCfg = Debug|Any CPU + {697CF066-9077-4F22-99D9-D989CCE7282B}.Debug|x86.Build.0 = Debug|Any CPU {697CF066-9077-4F22-99D9-D989CCE7282B}.Release|Any CPU.ActiveCfg = Release|Any CPU {697CF066-9077-4F22-99D9-D989CCE7282B}.Release|Any CPU.Build.0 = Release|Any CPU - {697CF066-9077-4F22-99D9-D989CCE7282B}.Release|x86.ActiveCfg = Release|x86 + {697CF066-9077-4F22-99D9-D989CCE7282B}.Release|x86.ActiveCfg = Release|Any CPU + {697CF066-9077-4F22-99D9-D989CCE7282B}.Release|x86.Build.0 = Release|Any CPU {AD7CFFE2-40E7-46CF-A172-D48CF7AE9A12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AD7CFFE2-40E7-46CF-A172-D48CF7AE9A12}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AD7CFFE2-40E7-46CF-A172-D48CF7AE9A12}.Debug|x86.ActiveCfg = Debug|x86 - {AD7CFFE2-40E7-46CF-A172-D48CF7AE9A12}.Debug|x86.Build.0 = Debug|x86 + {AD7CFFE2-40E7-46CF-A172-D48CF7AE9A12}.Debug|x86.ActiveCfg = Debug|Any CPU + {AD7CFFE2-40E7-46CF-A172-D48CF7AE9A12}.Debug|x86.Build.0 = Debug|Any CPU {AD7CFFE2-40E7-46CF-A172-D48CF7AE9A12}.Release|Any CPU.ActiveCfg = Release|Any CPU {AD7CFFE2-40E7-46CF-A172-D48CF7AE9A12}.Release|Any CPU.Build.0 = Release|Any CPU - {AD7CFFE2-40E7-46CF-A172-D48CF7AE9A12}.Release|x86.ActiveCfg = Release|x86 + {AD7CFFE2-40E7-46CF-A172-D48CF7AE9A12}.Release|x86.ActiveCfg = Release|Any CPU + {AD7CFFE2-40E7-46CF-A172-D48CF7AE9A12}.Release|x86.Build.0 = Release|Any CPU {7EC72A5A-D73A-4B4B-9CA1-2216C7D92D5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7EC72A5A-D73A-4B4B-9CA1-2216C7D92D5E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7EC72A5A-D73A-4B4B-9CA1-2216C7D92D5E}.Debug|x86.ActiveCfg = Debug|x86 - {7EC72A5A-D73A-4B4B-9CA1-2216C7D92D5E}.Debug|x86.Build.0 = Debug|x86 + {7EC72A5A-D73A-4B4B-9CA1-2216C7D92D5E}.Debug|x86.ActiveCfg = Debug|Any CPU + {7EC72A5A-D73A-4B4B-9CA1-2216C7D92D5E}.Debug|x86.Build.0 = Debug|Any CPU {7EC72A5A-D73A-4B4B-9CA1-2216C7D92D5E}.Release|Any CPU.ActiveCfg = Release|Any CPU {7EC72A5A-D73A-4B4B-9CA1-2216C7D92D5E}.Release|Any CPU.Build.0 = Release|Any CPU - {7EC72A5A-D73A-4B4B-9CA1-2216C7D92D5E}.Release|x86.ActiveCfg = Release|x86 + {7EC72A5A-D73A-4B4B-9CA1-2216C7D92D5E}.Release|x86.ActiveCfg = Release|Any CPU + {7EC72A5A-D73A-4B4B-9CA1-2216C7D92D5E}.Release|x86.Build.0 = Release|Any CPU {1893A2E4-A78A-4713-A8E7-E70058DABEE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1893A2E4-A78A-4713-A8E7-E70058DABEE0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1893A2E4-A78A-4713-A8E7-E70058DABEE0}.Debug|x86.ActiveCfg = Debug|x86 - {1893A2E4-A78A-4713-A8E7-E70058DABEE0}.Debug|x86.Build.0 = Debug|x86 + {1893A2E4-A78A-4713-A8E7-E70058DABEE0}.Debug|x86.ActiveCfg = Debug|Any CPU + {1893A2E4-A78A-4713-A8E7-E70058DABEE0}.Debug|x86.Build.0 = Debug|Any CPU {1893A2E4-A78A-4713-A8E7-E70058DABEE0}.Release|Any CPU.ActiveCfg = Release|Any CPU {1893A2E4-A78A-4713-A8E7-E70058DABEE0}.Release|Any CPU.Build.0 = Release|Any CPU - {1893A2E4-A78A-4713-A8E7-E70058DABEE0}.Release|x86.ActiveCfg = Release|x86 + {1893A2E4-A78A-4713-A8E7-E70058DABEE0}.Release|x86.ActiveCfg = Release|Any CPU + {1893A2E4-A78A-4713-A8E7-E70058DABEE0}.Release|x86.Build.0 = Release|Any CPU {92599C09-FF29-4ABD-B6E6-C48ECD781BAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {92599C09-FF29-4ABD-B6E6-C48ECD781BAB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {92599C09-FF29-4ABD-B6E6-C48ECD781BAB}.Debug|x86.ActiveCfg = Debug|x86 - {92599C09-FF29-4ABD-B6E6-C48ECD781BAB}.Debug|x86.Build.0 = Debug|x86 + {92599C09-FF29-4ABD-B6E6-C48ECD781BAB}.Debug|x86.ActiveCfg = Debug|Any CPU + {92599C09-FF29-4ABD-B6E6-C48ECD781BAB}.Debug|x86.Build.0 = Debug|Any CPU {92599C09-FF29-4ABD-B6E6-C48ECD781BAB}.Release|Any CPU.ActiveCfg = Release|Any CPU {92599C09-FF29-4ABD-B6E6-C48ECD781BAB}.Release|Any CPU.Build.0 = Release|Any CPU - {92599C09-FF29-4ABD-B6E6-C48ECD781BAB}.Release|x86.ActiveCfg = Release|x86 - {92599C09-FF29-4ABD-B6E6-C48ECD781BAB}.Release|x86.Build.0 = Release|x86 + {92599C09-FF29-4ABD-B6E6-C48ECD781BAB}.Release|x86.ActiveCfg = Release|Any CPU + {92599C09-FF29-4ABD-B6E6-C48ECD781BAB}.Release|x86.Build.0 = Release|Any CPU {9C0ECC4C-7807-4111-916A-4F57BB29788A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9C0ECC4C-7807-4111-916A-4F57BB29788A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9C0ECC4C-7807-4111-916A-4F57BB29788A}.Debug|x86.ActiveCfg = Debug|x86 - {9C0ECC4C-7807-4111-916A-4F57BB29788A}.Debug|x86.Build.0 = Debug|x86 + {9C0ECC4C-7807-4111-916A-4F57BB29788A}.Debug|x86.ActiveCfg = Debug|Any CPU + {9C0ECC4C-7807-4111-916A-4F57BB29788A}.Debug|x86.Build.0 = Debug|Any CPU {9C0ECC4C-7807-4111-916A-4F57BB29788A}.Release|Any CPU.ActiveCfg = Release|Any CPU {9C0ECC4C-7807-4111-916A-4F57BB29788A}.Release|Any CPU.Build.0 = Release|Any CPU - {9C0ECC4C-7807-4111-916A-4F57BB29788A}.Release|x86.ActiveCfg = Release|x86 - {9C0ECC4C-7807-4111-916A-4F57BB29788A}.Release|x86.Build.0 = Release|x86 + {9C0ECC4C-7807-4111-916A-4F57BB29788A}.Release|x86.ActiveCfg = Release|Any CPU + {9C0ECC4C-7807-4111-916A-4F57BB29788A}.Release|x86.Build.0 = Release|Any CPU {9801F62C-540F-4BFE-9211-6405DEDE563B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9801F62C-540F-4BFE-9211-6405DEDE563B}.Debug|Any CPU.Build.0 = Debug|Any CPU {9801F62C-540F-4BFE-9211-6405DEDE563B}.Debug|x86.ActiveCfg = Debug|Any CPU {9801F62C-540F-4BFE-9211-6405DEDE563B}.Debug|x86.Build.0 = Debug|Any CPU {9801F62C-540F-4BFE-9211-6405DEDE563B}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -162,12 +174,12 @@ Global {9801F62C-540F-4BFE-9211-6405DEDE563B}.Release|x86.Build.0 = Release|Any CPU {D106F86C-CD3D-44FF-B151-2A5D47268B5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D106F86C-CD3D-44FF-B151-2A5D47268B5C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D106F86C-CD3D-44FF-B151-2A5D47268B5C}.Debug|x86.ActiveCfg = Debug|x86 - {D106F86C-CD3D-44FF-B151-2A5D47268B5C}.Debug|x86.Build.0 = Debug|x86 + {D106F86C-CD3D-44FF-B151-2A5D47268B5C}.Debug|x86.ActiveCfg = Debug|Any CPU + {D106F86C-CD3D-44FF-B151-2A5D47268B5C}.Debug|x86.Build.0 = Debug|Any CPU {D106F86C-CD3D-44FF-B151-2A5D47268B5C}.Release|Any CPU.ActiveCfg = Release|Any CPU {D106F86C-CD3D-44FF-B151-2A5D47268B5C}.Release|Any CPU.Build.0 = Release|Any CPU - {D106F86C-CD3D-44FF-B151-2A5D47268B5C}.Release|x86.ActiveCfg = Release|x86 - {D106F86C-CD3D-44FF-B151-2A5D47268B5C}.Release|x86.Build.0 = Release|x86 + {D106F86C-CD3D-44FF-B151-2A5D47268B5C}.Release|x86.ActiveCfg = Release|Any CPU + {D106F86C-CD3D-44FF-B151-2A5D47268B5C}.Release|x86.Build.0 = Release|Any CPU {F041C685-EB96-4ED1-9ACE-0F5BD836610F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F041C685-EB96-4ED1-9ACE-0F5BD836610F}.Debug|Any CPU.Build.0 = Debug|Any CPU {F041C685-EB96-4ED1-9ACE-0F5BD836610F}.Debug|x86.ActiveCfg = Debug|Any CPU @@ -210,20 +222,20 @@ Global {14894A45-AA2C-4BC3-85A3-E388D0BDC1CA}.Release|x86.Build.0 = Release|Any CPU {B35272D3-4631-4FA5-9A3E-85D70ECA9A8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B35272D3-4631-4FA5-9A3E-85D70ECA9A8D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B35272D3-4631-4FA5-9A3E-85D70ECA9A8D}.Debug|x86.ActiveCfg = Debug|x86 - {B35272D3-4631-4FA5-9A3E-85D70ECA9A8D}.Debug|x86.Build.0 = Debug|x86 + {B35272D3-4631-4FA5-9A3E-85D70ECA9A8D}.Debug|x86.ActiveCfg = Debug|Any CPU + {B35272D3-4631-4FA5-9A3E-85D70ECA9A8D}.Debug|x86.Build.0 = Debug|Any CPU {B35272D3-4631-4FA5-9A3E-85D70ECA9A8D}.Release|Any CPU.ActiveCfg = Release|Any CPU {B35272D3-4631-4FA5-9A3E-85D70ECA9A8D}.Release|Any CPU.Build.0 = Release|Any CPU - {B35272D3-4631-4FA5-9A3E-85D70ECA9A8D}.Release|x86.ActiveCfg = Release|x86 - {B35272D3-4631-4FA5-9A3E-85D70ECA9A8D}.Release|x86.Build.0 = Release|x86 + {B35272D3-4631-4FA5-9A3E-85D70ECA9A8D}.Release|x86.ActiveCfg = Release|Any CPU + {B35272D3-4631-4FA5-9A3E-85D70ECA9A8D}.Release|x86.Build.0 = Release|Any CPU {8B3643A5-AFED-49FF-8D66-6348FB102EB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8B3643A5-AFED-49FF-8D66-6348FB102EB2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8B3643A5-AFED-49FF-8D66-6348FB102EB2}.Debug|x86.ActiveCfg = Debug|x86 - {8B3643A5-AFED-49FF-8D66-6348FB102EB2}.Debug|x86.Build.0 = Debug|x86 + {8B3643A5-AFED-49FF-8D66-6348FB102EB2}.Debug|x86.ActiveCfg = Debug|Any CPU + {8B3643A5-AFED-49FF-8D66-6348FB102EB2}.Debug|x86.Build.0 = Debug|Any CPU {8B3643A5-AFED-49FF-8D66-6348FB102EB2}.Release|Any CPU.ActiveCfg = Release|Any CPU {8B3643A5-AFED-49FF-8D66-6348FB102EB2}.Release|Any CPU.Build.0 = Release|Any CPU - {8B3643A5-AFED-49FF-8D66-6348FB102EB2}.Release|x86.ActiveCfg = Release|x86 - {8B3643A5-AFED-49FF-8D66-6348FB102EB2}.Release|x86.Build.0 = Release|x86 + {8B3643A5-AFED-49FF-8D66-6348FB102EB2}.Release|x86.ActiveCfg = Release|Any CPU + {8B3643A5-AFED-49FF-8D66-6348FB102EB2}.Release|x86.Build.0 = Release|Any CPU {7B8E9055-A054-4290-B537-075EBFDF8BDF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7B8E9055-A054-4290-B537-075EBFDF8BDF}.Debug|Any CPU.Build.0 = Debug|Any CPU {7B8E9055-A054-4290-B537-075EBFDF8BDF}.Debug|x86.ActiveCfg = Debug|Any CPU diff --git a/src/Greenshot/App.config b/src/Greenshot/App.config index 66aa08b87..1345cf5df 100644 --- a/src/Greenshot/App.config +++ b/src/Greenshot/App.config @@ -10,34 +10,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Greenshot/Components/CommandlineParser.cs b/src/Greenshot/Components/CommandlineParser.cs index 7ca035a6f..be13ecd2d 100644 --- a/src/Greenshot/Components/CommandlineParser.cs +++ b/src/Greenshot/Components/CommandlineParser.cs @@ -127,7 +127,7 @@ namespace Greenshot.Components { Log.Info().WriteLine("Sending all instances the exit command."); // Pass Exit to running instance, if any - GreenshotClient.Exit(); + //GreenshotClient.Exit(); } catch (Exception e) { @@ -146,7 +146,7 @@ namespace Greenshot.Components try { // Update running instances - GreenshotClient.ReloadConfig(); + //GreenshotClient.ReloadConfig(); } catch (Exception ex) { @@ -253,7 +253,7 @@ namespace Greenshot.Components } else { - GreenshotClient.Capture(arguments[1]); + //GreenshotClient.Capture(arguments[1]); } // TODO: //FreeMutex(); @@ -269,7 +269,7 @@ namespace Greenshot.Components // We didn't initialize the language yet, do it here just for the message box if (filesToOpen.Count > 0) { - GreenshotClient.OpenFiles(filesToOpen); + //GreenshotClient.OpenFiles(filesToOpen); } else { diff --git a/src/Greenshot/Components/GreenshotClient.cs b/src/Greenshot/Components/GreenshotClient.cs index da6ce4ad8..d154a93de 100644 --- a/src/Greenshot/Components/GreenshotClient.cs +++ b/src/Greenshot/Components/GreenshotClient.cs @@ -21,6 +21,8 @@ #endregion +#if !NETCOREAPP3_0 + using System.Collections.Generic; using System.ServiceModel; using Greenshot.Addons.Interfaces; @@ -78,3 +80,4 @@ namespace Greenshot.Components } } } +#endif \ No newline at end of file diff --git a/src/Greenshot/Components/GreenshotServer.cs b/src/Greenshot/Components/GreenshotServer.cs index 3bcdb6ca4..214ba25fe 100644 --- a/src/Greenshot/Components/GreenshotServer.cs +++ b/src/Greenshot/Components/GreenshotServer.cs @@ -21,6 +21,8 @@ #endregion +#if !NETCOREAPP3_0 + #region Usings using System; @@ -32,7 +34,6 @@ using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; using Dapplo.Addons; -using Dapplo.Ini; using Dapplo.Log; using Greenshot.Addons.Components; using Greenshot.Addons.Core; @@ -102,7 +103,7 @@ namespace Greenshot.Components return Task.Factory.FromAsync((callback, stateObject) => _host.BeginClose(callback, stateObject), asyncResult => _host.EndClose(asyncResult), null); } - #region IGreenshotContract +#region IGreenshotContract /// public void Exit() @@ -116,7 +117,8 @@ namespace Greenshot.Components Log.Info().WriteLine("Reload requested"); try { - IniConfig.Current?.ReloadAsync().Wait(); + // TODO: Fix + //IniConfig.Current?.ReloadAsync().Wait(); _mainForm.Invoke((MethodInvoker)(() => { // Even update language when needed, this should be done automatically :) @@ -178,6 +180,7 @@ namespace Greenshot.Components break; } } - #endregion +#endregion } } +#endif \ No newline at end of file diff --git a/src/Greenshot/Components/HotkeyHandler.cs b/src/Greenshot/Components/HotkeyHandler.cs index 9edeb2896..c6fc90e43 100644 --- a/src/Greenshot/Components/HotkeyHandler.cs +++ b/src/Greenshot/Components/HotkeyHandler.cs @@ -51,7 +51,7 @@ namespace Greenshot.Components /// string with the property of the ICoreConfiguration to use public HotKeyHandler(ICoreConfiguration coreConfiguration, string propertyName) { - string RetrieveFunc() => coreConfiguration[propertyName].Value as string; + string RetrieveFunc() => coreConfiguration.GetIniValue(propertyName).Value as string; _propertyChangeSubscription = coreConfiguration .OnPropertyChanged(propertyName) .Subscribe(pc => UpdateKeyCombination(RetrieveFunc)); diff --git a/src/Greenshot/Components/MainFormStartup.cs b/src/Greenshot/Components/MainFormStartup.cs index 895407e59..682e9a493 100644 --- a/src/Greenshot/Components/MainFormStartup.cs +++ b/src/Greenshot/Components/MainFormStartup.cs @@ -40,7 +40,7 @@ namespace Greenshot.Components /// /// This startup action starts the MainForm /// - [Service(nameof(MainFormStartup), nameof(FormsStartup), nameof(CaliburnServices.IniSectionService), TaskSchedulerName = "ui")] + [Service(nameof(MainFormStartup), nameof(FormsStartup), nameof(CaliburnServices.ConfigurationService), TaskSchedulerName = "ui")] public class MainFormStartup : IStartup, IShutdown { private static readonly LogSource Log = new LogSource(); diff --git a/src/Greenshot/Components/SoundHelper.cs b/src/Greenshot/Components/SoundHelper.cs index 93252ab56..6bcee30ea 100644 --- a/src/Greenshot/Components/SoundHelper.cs +++ b/src/Greenshot/Components/SoundHelper.cs @@ -25,14 +25,14 @@ using System; using System.IO; -using System.Reflection; -using System.Resources; using System.Runtime.InteropServices; using Dapplo.Addons; using Dapplo.CaliburnMicro; using Dapplo.Log; using Dapplo.Windows.Multimedia; +using Dapplo.Windows.Multimedia.Enums; using Greenshot.Addons.Core; +using Greenshot.Addons.Resources; #endregion @@ -42,7 +42,7 @@ namespace Greenshot.Components /// Create to fix the sometimes wrongly played sample, especially after first start from IDE /// See: http://www.codeproject.com/KB/audio-video/soundplayerbug.aspx?msg=2487569 /// - [Service(nameof(SoundHelper), nameof(CaliburnServices.IniSectionService))] + [Service(nameof(SoundHelper), nameof(CaliburnServices.ConfigurationService))] public class SoundHelper : IStartup, IShutdown { private readonly ICoreConfiguration _coreConfiguration; @@ -68,8 +68,7 @@ namespace Greenshot.Components try { - var resources = new ResourceManager("Greenshot.Sounds", Assembly.GetExecutingAssembly()); - _soundBuffer = (byte[]) resources.GetObject("camera"); + _soundBuffer = GreenshotResources.Instance.GetBytes("camera.wav", GetType()); if (_coreConfiguration.NotificationSound != null && _coreConfiguration.NotificationSound.EndsWith(".wav")) { diff --git a/src/Greenshot/Components/UpdateService.cs b/src/Greenshot/Components/UpdateService.cs index a35369e59..7055a1e72 100644 --- a/src/Greenshot/Components/UpdateService.cs +++ b/src/Greenshot/Components/UpdateService.cs @@ -97,9 +97,8 @@ namespace Greenshot.Components /// public void Startup() { - //var ignore = BackgroundTask(() => TimeSpan.FromDays(_coreConfiguration.UpdateCheckInterval), UpdateCheck, _cancellationTokenSource.Token); - var ignore = BackgroundTask(() => TimeSpan.FromSeconds(20), UpdateCheck, _cancellationTokenSource.Token); - } + var ignore = BackgroundTask(() => TimeSpan.FromDays(_coreConfiguration.UpdateCheckInterval), UpdateCheck, _cancellationTokenSource.Token); + } /// public void Shutdown() diff --git a/src/Greenshot/Configuration/IConfigTranslations.cs b/src/Greenshot/Configuration/IConfigTranslations.cs index c006ad943..869b381cc 100644 --- a/src/Greenshot/Configuration/IConfigTranslations.cs +++ b/src/Greenshot/Configuration/IConfigTranslations.cs @@ -22,12 +22,12 @@ #endregion using System.ComponentModel; -using Dapplo.Language; +using Dapplo.Config.Language; namespace Greenshot.Configuration { [Language("Config")] - public interface IConfigTranslations : Dapplo.CaliburnMicro.Translations.IConfigTranslations, ILanguage, INotifyPropertyChanged + public interface IConfigTranslations : Dapplo.CaliburnMicro.Translations.IConfigTranslations, ILanguage { [DefaultValue("Theme")] string Theme { get; } diff --git a/src/Greenshot/Configuration/IMetroConfiguration.cs b/src/Greenshot/Configuration/IMetroConfiguration.cs index 6f4d390e7..cea89ffdc 100644 --- a/src/Greenshot/Configuration/IMetroConfiguration.cs +++ b/src/Greenshot/Configuration/IMetroConfiguration.cs @@ -1,17 +1,40 @@ -using System.ComponentModel; +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System.ComponentModel; using Dapplo.CaliburnMicro.Metro; -using Dapplo.Ini; -using Dapplo.InterfaceImpl.Extensions; +using Dapplo.CaliburnMicro.Metro.Configuration; +using Dapplo.Config.Ini; namespace Greenshot.Configuration { [IniSection("Metro")] - public interface IMetroConfiguration : IIniSection, ITransactionalProperties + public interface IMetroConfiguration : IIniSection, IMetroUiConfiguration { - [DefaultValue(Themes.BaseLight)] - Themes Theme { get; set; } + [DefaultValue(Themes.Light)] + new Themes Theme { get; set; } - [DefaultValue(ThemeAccents.Orange)] - ThemeAccents ThemeAccent { get; set; } + [DefaultValue(ThemeAccents.Olive)] + new ThemeAccents ThemeAccent { get; set; } } } diff --git a/src/Greenshot/Configuration/Impl/ConfigTranslationsImpl.cs b/src/Greenshot/Configuration/Impl/ConfigTranslationsImpl.cs new file mode 100644 index 000000000..cad8fa563 --- /dev/null +++ b/src/Greenshot/Configuration/Impl/ConfigTranslationsImpl.cs @@ -0,0 +1,40 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using System.Diagnostics.CodeAnalysis; +using Dapplo.Config.Language; + +namespace Greenshot.Configuration.Impl +{ + /// + /// This implements IConfigTranslations and takes care of storing, all setters are replaced via AutoProperties.Fody + /// + [SuppressMessage("ReSharper", "UnassignedGetOnlyAutoProperty")] +#pragma warning disable CS1591 + internal class ConfigTranslationsImpl : LanguageBase, IConfigTranslations + { + public string Filter { get; } + + public string Theme { get; } + } +} diff --git a/src/Greenshot/Configuration/Impl/MetroConfigurationImpl.cs b/src/Greenshot/Configuration/Impl/MetroConfigurationImpl.cs new file mode 100644 index 000000000..397f29203 --- /dev/null +++ b/src/Greenshot/Configuration/Impl/MetroConfigurationImpl.cs @@ -0,0 +1,34 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +using Dapplo.CaliburnMicro.Metro; +using Dapplo.Config.Ini; + +namespace Greenshot.Configuration.Impl +{ + internal class MetroConfigurationImpl : IniSectionBase, IMetroConfiguration + { + public Themes Theme { get; set; } + public ThemeAccents ThemeAccent { get; set; } + } +} diff --git a/src/Greenshot/Configuration/LanguageKeys.cs b/src/Greenshot/Configuration/LanguageKeys.cs deleted file mode 100644 index f39f51d8e..000000000 --- a/src/Greenshot/Configuration/LanguageKeys.cs +++ /dev/null @@ -1,65 +0,0 @@ -#region Greenshot GNU General Public License - -// Greenshot - a free and open source screenshot tool -// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom -// -// For more information see: http://getgreenshot.org/ -// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 1 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -#endregion - -#region Usings - -using System.Diagnostics.CodeAnalysis; - -#endregion - -namespace Greenshot.Configuration -{ - [SuppressMessage("ReSharper", "InconsistentNaming")] - public enum LangKey - { - contextmenu_capturefullscreen_all, - contextmenu_capturefullscreen_left, - contextmenu_capturefullscreen_top, - contextmenu_capturefullscreen_right, - contextmenu_capturefullscreen_bottom, - contextmenu_captureie, - editor_clipboardfailed, - editor_email, - error, - error_openfile, - error_openlink, - print_error, - settings_destination, - settings_destination_fileas, - settings_destination_printer, - settings_filenamepattern, - settings_message_filenamepattern, - settings_printoptions, - settings_tooltip_filenamepattern, - settings_tooltip_language, - settings_tooltip_primaryimageformat, - settings_tooltip_storagelocation, - settings_visualization, - settings_window_capture_mode, - tooltip_firststart, - warning, - warning_hotkeys, - wait_ie_capture, - update_found - } -} \ No newline at end of file diff --git a/src/Greenshot/Destinations/ClipboardDestination.cs b/src/Greenshot/Destinations/ClipboardDestination.cs index fdc2eec07..6a24944b1 100644 --- a/src/Greenshot/Destinations/ClipboardDestination.cs +++ b/src/Greenshot/Destinations/ClipboardDestination.cs @@ -34,6 +34,7 @@ using Greenshot.Addons.Core.Enums; using Greenshot.Addons.Extensions; using Greenshot.Addons.Interfaces; using Greenshot.Addons.Interfaces.Plugin; +using Greenshot.Addons.Resources; using Greenshot.Core.Enums; #endregion @@ -61,7 +62,7 @@ namespace Greenshot.Destinations public override Keys EditorShortcutKeys => Keys.Control | Keys.Shift | Keys.C; - public override Bitmap DisplayIcon => GreenshotResources.GetBitmap("Clipboard.Image"); + public override Bitmap DisplayIcon => GreenshotResources.Instance.GetBitmap("Clipboard.Image"); protected override ExportInformation ExportCapture(bool manuallyInitiated, ISurface surface, ICaptureDetails captureDetails) { diff --git a/src/Greenshot/Destinations/EmailDestination.cs b/src/Greenshot/Destinations/EmailDestination.cs index c06590e21..947186107 100644 --- a/src/Greenshot/Destinations/EmailDestination.cs +++ b/src/Greenshot/Destinations/EmailDestination.cs @@ -30,6 +30,7 @@ using Greenshot.Addons; using Greenshot.Addons.Components; using Greenshot.Addons.Core; using Greenshot.Addons.Interfaces; +using Greenshot.Addons.Resources; using Greenshot.Helpers; #endregion @@ -43,7 +44,7 @@ namespace Greenshot.Destinations public class EmailDestination : AbstractDestination { private readonly ExportNotification _exportNotification; - private static readonly Bitmap MailIcon = GreenshotResources.GetBitmap("Email.Image"); + private static readonly Bitmap MailIcon = GreenshotResources.Instance.GetBitmap("Email.Image"); private static bool _isActiveFlag; private static string _mapiClient; diff --git a/src/Greenshot/Destinations/FileDestination.cs b/src/Greenshot/Destinations/FileDestination.cs index 970126d56..cb00fb2ad 100644 --- a/src/Greenshot/Destinations/FileDestination.cs +++ b/src/Greenshot/Destinations/FileDestination.cs @@ -34,6 +34,7 @@ using Greenshot.Addons.Controls; using Greenshot.Addons.Core; using Greenshot.Addons.Interfaces; using Greenshot.Addons.Interfaces.Plugin; +using Greenshot.Addons.Resources; #endregion @@ -60,7 +61,7 @@ namespace Greenshot.Destinations public override Keys EditorShortcutKeys => Keys.Control | Keys.S; - public override Bitmap DisplayIcon => GreenshotResources.GetBitmap("Save.Image"); + public override Bitmap DisplayIcon => GreenshotResources.Instance.GetBitmap("Save.Image"); protected override ExportInformation ExportCapture(bool manuallyInitiated, ISurface surface, ICaptureDetails captureDetails) { diff --git a/src/Greenshot/Destinations/FileWithDialogDestination.cs b/src/Greenshot/Destinations/FileWithDialogDestination.cs index 261fb3c2f..fb3cd81a1 100644 --- a/src/Greenshot/Destinations/FileWithDialogDestination.cs +++ b/src/Greenshot/Destinations/FileWithDialogDestination.cs @@ -29,6 +29,7 @@ using Greenshot.Addons; using Greenshot.Addons.Components; using Greenshot.Addons.Core; using Greenshot.Addons.Interfaces; +using Greenshot.Addons.Resources; #endregion @@ -57,7 +58,7 @@ namespace Greenshot.Destinations public override Keys EditorShortcutKeys => Keys.Control | Keys.Shift | Keys.S; - public override Bitmap DisplayIcon => GreenshotResources.GetBitmap("Save.Image"); + public override Bitmap DisplayIcon => GreenshotResources.Instance.GetBitmap("Save.Image"); protected override ExportInformation ExportCapture(bool manuallyInitiated, ISurface surface, ICaptureDetails captureDetails) { diff --git a/src/Greenshot/Destinations/PrinterDestination.cs b/src/Greenshot/Destinations/PrinterDestination.cs index 0efe4c392..e8eedf3eb 100644 --- a/src/Greenshot/Destinations/PrinterDestination.cs +++ b/src/Greenshot/Destinations/PrinterDestination.cs @@ -33,6 +33,7 @@ using Greenshot.Addons; using Greenshot.Addons.Components; using Greenshot.Addons.Core; using Greenshot.Addons.Interfaces; +using Greenshot.Addons.Resources; using Greenshot.Helpers; #endregion @@ -86,7 +87,7 @@ namespace Greenshot.Destinations public override Keys EditorShortcutKeys => Keys.Control | Keys.P; - public override Bitmap DisplayIcon => GreenshotResources.GetBitmap("Printer.Image"); + public override Bitmap DisplayIcon => GreenshotResources.Instance.GetBitmap("Printer.Image"); public override bool IsDynamic => true; diff --git a/src/Greenshot/FodyWeavers.xml b/src/Greenshot/FodyWeavers.xml index d099b051c..7f5a26669 100644 --- a/src/Greenshot/FodyWeavers.xml +++ b/src/Greenshot/FodyWeavers.xml @@ -1,4 +1,4 @@  - - + + \ No newline at end of file diff --git a/src/Greenshot/FodyWeavers.xsd b/src/Greenshot/FodyWeavers.xsd new file mode 100644 index 000000000..061979a03 --- /dev/null +++ b/src/Greenshot/FodyWeavers.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + 'true' to run assembly verification on the target assembly after all weavers have been finished. + + + + + A comma separated list of error codes that can be safely ignored in assembly verification. + + + + + \ No newline at end of file diff --git a/src/Greenshot/Forms/AboutForm.cs b/src/Greenshot/Forms/AboutForm.cs index 9afd4d488..f6ffe5d8e 100644 --- a/src/Greenshot/Forms/AboutForm.cs +++ b/src/Greenshot/Forms/AboutForm.cs @@ -33,7 +33,6 @@ using System.Security.Permissions; using System.Windows.Forms; using Dapplo.CaliburnMicro; using Greenshot.Helpers; -using Dapplo.Ini; using Dapplo.Log; using Dapplo.Windows.Common.Structs; using Greenshot.Addons; @@ -387,20 +386,21 @@ namespace Greenshot.Forms } */ break; - case Keys.I: - try - { - using (Process.Start("\"" + IniConfig.Current.IniLocation + "\"")) - { - // Ignore - } - } - catch (Exception) - { - MessageBox.Show("Couldn't open the greenshot.ini, it's located here: " + IniConfig.Current.IniLocation, "Error opening greeenshot.ini", MessageBoxButtons.OK, - MessageBoxIcon.Asterisk); - } - break; + // TODO: Open configuration location + // case Keys.I: + //try + //{ + // using (Process.Start("\"" + IniConfig.Current.IniLocation + "\"")) + // { + // // Ignore + // } + //} + //catch (Exception) + //{ + // MessageBox.Show("Couldn't open the greenshot.ini, it's located here: " + IniConfig.Current.IniLocation, "Error opening greeenshot.ini", MessageBoxButtons.OK, + // MessageBoxIcon.Asterisk); + //} + //break; default: return base.ProcessCmdKey(ref msg, keyData); } diff --git a/src/Greenshot/Forms/CaptureForm.cs b/src/Greenshot/Forms/CaptureForm.cs index 8a0a2929a..78224fa9d 100644 --- a/src/Greenshot/Forms/CaptureForm.cs +++ b/src/Greenshot/Forms/CaptureForm.cs @@ -44,6 +44,7 @@ using Greenshot.Addons.Animation; using Greenshot.Addons.Controls; using Greenshot.Addons.Core; using Greenshot.Addons.Interfaces; +using Greenshot.Addons.Resources; using Greenshot.Gfx.Legacy; #endregion @@ -60,7 +61,6 @@ namespace Greenshot.Forms private static readonly Brush ScrollingOverlayBrush = new SolidBrush(Color.FromArgb(50, Color.GreenYellow)); private static readonly Pen OverlayPen = new Pen(Color.FromArgb(50, Color.Black)); - private readonly ICoreConfiguration _coreConfiguration; private static readonly Brush BackgroundBrush; private readonly ICapture _capture; private readonly bool _isZoomerTransparent; @@ -85,7 +85,7 @@ namespace Greenshot.Forms /// static CaptureForm() { - var backgroundForTransparency = GreenshotResources.GetBitmap("Checkerboard.Image"); + var backgroundForTransparency = GreenshotResources.Instance.GetBitmap("Checkerboard.Image"); BackgroundBrush = new TextureBrush(backgroundForTransparency, WrapMode.Tile); } @@ -97,7 +97,6 @@ namespace Greenshot.Forms /// IList of IInteropWindow public CaptureForm(ICoreConfiguration coreConfiguration, ICapture capture, IList windows) : base(coreConfiguration, null) { - _coreConfiguration = coreConfiguration; _isZoomerTransparent = _coreConfiguration.ZoomerOpacity < 1; ManualLanguageApply = true; ManualStoreFields = true; diff --git a/src/Greenshot/Forms/ColorPickerToolStripButton.cs b/src/Greenshot/Forms/ColorPickerToolStripButton.cs deleted file mode 100644 index f1160bd43..000000000 --- a/src/Greenshot/Forms/ColorPickerToolStripButton.cs +++ /dev/null @@ -1,78 +0,0 @@ -using System; -using System.Drawing; -using System.Drawing.Imaging; -using System.Windows.Forms; -using System.Diagnostics; - -namespace GreenShot -{ - public delegate void ColorPickerEventHandler(object o, ColorPickerEventArgs e); - - public class ColorPickerToolStripButton : System.Windows.Forms.ToolStripButton - { - private Color color; - public Point Offset = new Point(0,0); - public event ColorPickerEventHandler ColorPicked; - private ColorDialog cd; - - - public ColorPickerToolStripButton() - { - cd = ColorDialog.GetInstance(); - this.Click += new System.EventHandler(this.ToolStripButton1Click); - } - - public Color Color { - set {color = value;this.Invalidate();} - get {return color;} - } - - protected override void OnPaint (PaintEventArgs e) { - base.OnPaint(e); - if(color != null) { - // replace transparent color with selected color - Graphics g = e.Graphics; - //Graphics g = Graphics.FromImage(Image); - ColorMap[] colorMap = new ColorMap[1]; - colorMap[0] = new ColorMap(); - colorMap[0].OldColor = Color.Magenta;//this.ImageTransparentColor; - colorMap[0].NewColor = color; - ImageAttributes attr = new ImageAttributes(); - attr.SetRemapTable(colorMap); - Rectangle rect = new Rectangle(0, 0, Image.Width, Image.Height); - // todo find a way to retrieve transparency offset automatically - // for now, we use the public variable Offset to define this manually - rect.Offset(Offset.X,Offset.Y); - //Image. - Debug.WriteLine("paint!"+this.Text+": "+color); - //ssif(color.Equals(Color.Transparent)) ((Bitmap)Image).MakeTransparent(Color.Magenta); - g.DrawImage(Image, rect, 0, 0, rect.Width, rect.Height, GraphicsUnit.Pixel, attr); - //this.Image.In - - } - } - - void ToolStripButton1Click(object sender, System.EventArgs e) - { - cd.ShowDialog(this.Owner); - Color = cd.Color; - if(ColorPicked != null) { - ColorPicked(this, new ColorPickerEventArgs(Color, cd.RecentColors)); - } - } - } - - public class ColorPickerEventArgs : System.EventArgs { - public Color Color; - public Color[] RecentColors; - public ColorPickerEventArgs(Color color, Color[] recentColors) { - Color = color; - RecentColors = recentColors; - } - - } - - - - -} diff --git a/src/Greenshot/Forms/LanguageDialog.Designer.cs b/src/Greenshot/Forms/LanguageDialog.Designer.cs index c179cb7fa..3af037d55 100644 --- a/src/Greenshot/Forms/LanguageDialog.Designer.cs +++ b/src/Greenshot/Forms/LanguageDialog.Designer.cs @@ -46,7 +46,6 @@ namespace Greenshot.Forms { /// private void InitializeComponent() { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LanguageDialog)); this.comboBoxLanguage = new System.Windows.Forms.ComboBox(); this.btnOK = new System.Windows.Forms.Button(); this.SuspendLayout(); diff --git a/src/Greenshot/Forms/LanguageDialog.cs b/src/Greenshot/Forms/LanguageDialog.cs index 5898bab27..99434c97f 100644 --- a/src/Greenshot/Forms/LanguageDialog.cs +++ b/src/Greenshot/Forms/LanguageDialog.cs @@ -27,9 +27,9 @@ using System; using System.Linq; using System.Threading; using System.Windows.Forms; -using Dapplo.Language; using Dapplo.Log; using Greenshot.Addons.Core; +using Greenshot.Addons.Resources; #endregion @@ -49,7 +49,7 @@ namespace Greenshot.Forms // The InitializeComponent() call is required for Windows Forms designer support. // InitializeComponent(); - Icon = GreenshotResources.GetGreenshotIcon(); + Icon = GreenshotResources.Instance.GetGreenshotIcon(); Load += FormLoad; FormClosing += PreventFormClose; } @@ -70,11 +70,12 @@ namespace Greenshot.Forms comboBoxLanguage.DisplayMember = "Value"; comboBoxLanguage.ValueMember = "Key"; - // Set datasource last to prevent problems - // See: http://www.codeproject.com/KB/database/scomlistcontrolbinding.aspx?fid=111644 - comboBoxLanguage.DataSource = LanguageLoader.Current.AvailableLanguages.ToList(); + // Set datasource last to prevent problems + // See: http://www.codeproject.com/KB/database/scomlistcontrolbinding.aspx?fid=111644 + // TODO: Get languages + //comboBoxLanguage.DataSource = LanguageLoader.Current.AvailableLanguages.ToList(); - var currentLanguage = LanguageLoader.Current.CurrentLanguage; + var currentLanguage = "en-US"; // LanguageLoader.Current.CurrentLanguage; if (currentLanguage != null) { @@ -88,14 +89,14 @@ namespace Greenshot.Forms // Close again when there is only one language, this shows the form briefly! // But the use-case is not so interesting, only happens once, to invest a lot of time here. - if (LanguageLoader.Current.AvailableLanguages.Count != 1) + if (false) //LanguageLoader.Current.AvailableLanguages.Count != 1) { return; } - comboBoxLanguage.SelectedValue = LanguageLoader.Current.AvailableLanguages.Keys.FirstOrDefault(); - // TODO: Check - var ignoreTask = LanguageLoader.Current.ChangeLanguageAsync(SelectedLanguage); + comboBoxLanguage.SelectedValue = "en-US"; // LanguageLoader.Current.AvailableLanguages.Keys.FirstOrDefault(); + // TODO: Change language + //var ignoreTask = LanguageLoader.Current.ChangeLanguageAsync(SelectedLanguage); _properOkPressed = true; Close(); } @@ -104,7 +105,8 @@ namespace Greenshot.Forms { _properOkPressed = true; // Fix for Bug #3431100 - Language.CurrentLanguage = SelectedLanguage; + // TODO: Change language + //Language.CurrentLanguage = SelectedLanguage; Close(); } } diff --git a/src/Greenshot/Forms/MainForm.cs b/src/Greenshot/Forms/MainForm.cs index 06f525d34..5da89403b 100644 --- a/src/Greenshot/Forms/MainForm.cs +++ b/src/Greenshot/Forms/MainForm.cs @@ -34,7 +34,6 @@ using System.Reflection; using System.Windows.Forms; using Autofac.Features.OwnedInstances; using Caliburn.Micro; -using Dapplo.Ini; using Dapplo.Windows.Desktop; using Greenshot.Destinations; using Greenshot.Help; @@ -60,13 +59,16 @@ using Greenshot.Gfx; using Greenshot.Ui.Configuration.ViewModels; using Message = System.Windows.Forms.Message; using Screen = System.Windows.Forms.Screen; +using Dapplo.Config.Ini; +using Dapplo.Addons; +using Greenshot.Addons.Resources; #endregion namespace Greenshot.Forms { /// - /// Description of MainForm. + /// The MainForm provides the "shell" of the application /// public partial class MainForm : GreenshotForm { @@ -89,6 +91,7 @@ namespace Greenshot.Forms public MainForm(ICoreConfiguration coreConfiguration, IWindowManager windowManager, IGreenshotLanguage greenshotLanguage, + GreenshotResources greenshotResources, Func> configViewModelFactory, Func> aboutFormFactory, DestinationHolder destinationHolder) : base(greenshotLanguage) @@ -119,7 +122,8 @@ namespace Greenshot.Forms ex.Data.Add("more information here", "http://support.microsoft.com/kb/943140"); throw; } - notifyIcon.Icon = GreenshotResources.GetGreenshotIcon(); + + notifyIcon.Icon = GreenshotResources.Instance.GetGreenshotIcon(); // Disable access to the settings, for feature #3521446 contextmenu_settings.Visible = !_coreConfiguration.DisableSettings; @@ -367,7 +371,6 @@ namespace Greenshot.Forms } - /// /// Setup the Bitmap scaling (for icons) /// @@ -386,10 +389,10 @@ namespace Greenshot.Forms contextmenu_quicksettings.Size = new Size(170, width + 8); contextMenu.ResumeLayout(true); contextMenu.Refresh(); - notifyIcon.Icon = GreenshotResources.GetGreenshotIcon(); + notifyIcon.Icon = GreenshotResources.Instance.GetGreenshotIcon(); }); - var contextMenuResourceScaleHandler = BitmapScaleHandler.WithComponentResourceManager(ContextMenuDpiHandler, GetType(), (bitmap, dpi) => bitmap.ScaleIconForDisplaying(dpi)); + var contextMenuResourceScaleHandler = BitmapScaleHandler.Create(ContextMenuDpiHandler, (imageName, dpi) => GreenshotResources.Instance.GetBitmap(imageName, GetType()), (bitmap, dpi) => bitmap.ScaleIconForDisplaying(dpi)); contextMenuResourceScaleHandler.AddTarget(contextmenu_capturewindow, "contextmenu_capturewindow.Image"); contextMenuResourceScaleHandler.AddTarget(contextmenu_capturearea, "contextmenu_capturearea.Image"); @@ -512,8 +515,7 @@ namespace Greenshot.Forms now.Month == 3 && now.Day > 13 && now.Day < 21) { // birthday - var resources = new ComponentResourceManager(typeof(MainForm)); - contextmenu_donate.Image = (Image) resources.GetObject("contextmenu_present.Image"); + contextmenu_donate.Image = GreenshotResources.Instance.GetBitmap("contextmenu_present.Image", GetType()); } } @@ -923,6 +925,7 @@ namespace Greenshot.Forms contextmenu_quicksettings.DropDownItems.Add(selectList); } + var languageKeys = _greenshotLanguage.Keys().ToList(); if (!_coreConfiguration.IsWriteProtected("WindowCaptureMode")) { // Capture Modes @@ -933,7 +936,15 @@ namespace Greenshot.Forms var enumTypeName = typeof(WindowCaptureModes).Name; foreach (WindowCaptureModes captureMode in Enum.GetValues(typeof(WindowCaptureModes))) { - selectList.AddItem(Language.GetString(enumTypeName + "." + captureMode), captureMode, _coreConfiguration.WindowCaptureMode == captureMode); + var key = enumTypeName + "." + captureMode; + if (languageKeys.Contains(key)) + { + selectList.AddItem(_greenshotLanguage[key], captureMode, _coreConfiguration.WindowCaptureMode == captureMode); + } + else + { + Log.Warn().WriteLine("Missing translation for {0}", key); + } } selectList.CheckedChanged += QuickSettingCaptureModeChanged; contextmenu_quicksettings.DropDownItems.Add(selectList); @@ -947,7 +958,15 @@ namespace Greenshot.Forms foreach (var outputPrintIniValue in _coreConfiguration.GetIniValues().Values.Where(value => value.PropertyName.StartsWith("OutputPrint") && value.ValueType == typeof(bool) && !_coreConfiguration.IsWriteProtected(value.PropertyName))) { - selectList.AddItem(Language.GetString(outputPrintIniValue.PropertyName), outputPrintIniValue, (bool) outputPrintIniValue.Value); + var key = outputPrintIniValue.PropertyName; + if (languageKeys.Contains(key)) + { + selectList.AddItem(_greenshotLanguage[key], outputPrintIniValue, (bool)outputPrintIniValue.Value); + } + else + { + Log.Warn().WriteLine("Missing translation for {0}", key); + } } if (selectList.DropDownItems.Count > 0) { @@ -965,18 +984,32 @@ namespace Greenshot.Forms Text = _greenshotLanguage.SettingsVisualization }; - var iniValue = _coreConfiguration["PlayCameraSound"]; + var iniValue = _coreConfiguration.GetIniValue("PlayCameraSound"); var languageKey = _coreConfiguration.GetTagValue(iniValue.PropertyName, ConfigTags.LanguageKey) as string; if (!_coreConfiguration.IsWriteProtected(iniValue.PropertyName)) { - selectList.AddItem(Language.GetString(languageKey), iniValue, (bool) iniValue.Value); + if (languageKeys.Contains(languageKey)) + { + selectList.AddItem(_greenshotLanguage[languageKey], iniValue, (bool)iniValue.Value); + } + else + { + Log.Warn().WriteLine("Missing translation for {0}", languageKey); + } } - iniValue = _coreConfiguration["ShowTrayNotification"]; + iniValue = _coreConfiguration.GetIniValue("ShowTrayNotification"); languageKey = _coreConfiguration.GetTagValue(iniValue.PropertyName, ConfigTags.LanguageKey) as string; if (!_coreConfiguration.IsWriteProtected(iniValue.PropertyName)) { - selectList.AddItem(Language.GetString(languageKey), iniValue, (bool) iniValue.Value); + if (languageKeys.Contains(languageKey)) + { + selectList.AddItem(_greenshotLanguage[languageKey], iniValue, (bool)iniValue.Value); + } + else + { + Log.Warn().WriteLine("Missing translation for {0}", languageKey); + } } if (selectList.DropDownItems.Count > 0) { diff --git a/src/Greenshot/Forms/MainForm.resx b/src/Greenshot/Forms/MainForm.resx deleted file mode 100644 index 41c34bc68..000000000 --- a/src/Greenshot/Forms/MainForm.resx +++ /dev/null @@ -1,299 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 293, 17 - - - - - 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 - gg== - - - - - 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 - AOypQZHMHzM4AAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACbUlEQVQ4T6WTXUjTYRTGn33Z - lwVqrZZNZyrqioI2s0hbUAp9WxdBRDqjEsGEbqwYWl2URReR0geFF0EUFEh1UQuXJeVYma6NLXBBrLZF - JULIPlxjnt4znGzmXRc/ODzn+Z3/e/MHEeF/gAtaRurGqibBS4FV8FxwTOQyhuepjHfcaWKHXThQBie0 - Ro9668eJK3dD9MBM4Y7u4GdNtVPkJxmewxe7g3TfTNzhLjvsYhilEjtKLaFzN4J/TNcpcqiNIofbacLU - GXXIV9uYyKmrUc54x52QqSvIDrv4gJKMIbl2MHrhDo3taqGxHc0JxhvayV9zNOCvPhIYr2+bzrkTMXXR - kKxskF3YUCx/Jym2jbd0TPqq6slXWZfAb2ign3tOxH/sbo77DcbpnDujB1sn2WEXAyjEGxQ+/VV3OvhF - f4CSjKzdR/aiGrLmVlH/kgrqy9Yn6FduIJd+f5AddvEKGsb0SbfXG9jeSJ41tTSsNtCAKL/N0v3De/Vm - si0t97LDLizIQy/yCi3yAuu3ncfDzuWbaFiIs2FfvJ4cBVvCvdJ8a8IRLl5AneAZVhj7MkscX3W1MY8o - jogjqXjEizy5lTGLYqWDu0kPT6BKInkMVatlQZH7e/G2WCCnnALiSAIh+5QVsd4MjZs7wpEkvdQD6MEy - 6SMoz5jn5LvGVBtjv4XIjGbrYma52sU77qR8FDMP4B5ypLexyNSjULrDWeviTI9c6eaMd+JAmjPbAVzD - PNllKLosc1VehmfOxAF+ZfqBW1iIJDeRiU7MxyUocB4S1VngNcMzZ7zjTqqT/BvxEEqI8kwaRcak5dyd - +ovxF8BPsQ+FYS+HAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAUFJREFUOE+lk69L - Q1Ecxb//wmCra6uDlbXFwcJgYXVMXFkdD9y6BouGWRxM8BeiiGARFINJTFcwCApWMVisYvB4ztU3Bveu - +MLh8v2ezzn3vQfPAFgWZQrr4lnBsZmdmjUop1Pz4Z9iXvrU8wUKOYxG0Ek15gq89zkYzLyggLD7Hg7x - 2GziK0mgmVKJ5N57Pe+9djreCwr2Ce7R+Oj3cVOt4q3bhWbpqdXyu/t63e/EBgU0bIfGlMBLu43Lchl3 - tRquKxXsFgo4KRYhT4zYaAEBmxDYJnhRKuEgl/M6yuehnTwx0YJ1GpvUmNAW4XPeesZwKu3kiREbPIGW - G7+Au2IwJnliFhXIcLcMp9K8YBd+xFXCDwyn0rzG26SYF7zCCsGEoWeW6NTMoEkxLyhgyJYZWmJYp+a0 - IOYFBf/9IzP/jT+zZw/Woa9yPwAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALQSURBVDhPTZJrSJNhFMefpyyQQUgNP/RhiOi8bN4Y - gqF5SURSRIb4TUW8jGlGJiOco0Wm4YdCIoYIXUCICMoZJIlkGpVic455n2nuomIup+LdtZ2e87xs9OHH - /33+57z/5+Wcl/yilGOn9KqT0ncuSt/OUfpsjJD8EULId6bTlL5wUGrEOvYF3gEAQp5mZhILOzA+QF8f - nLa3w3ZFxfaESGRiARM/RCKzp6xs57S1FfxGI2Af9t8IDxcClDoduVVZST5SOgRdXeApLYW5nBywJSTY - oaMDFuRyO57R9xsMgH3pcjkhMpkQUKzVFrEQ1WOJxDjMbgzQHxq6/r8GeCAWvw9LT29kAcU84Ep1tcrn - 94PX5+P8KSkBaGvj+nNtLehjj21zk7OyswNn4uKaeMDlvDzV7tERuDwezqZSCaDXc7UsLwd97PlssXCs - TieclUrv8YDzKSlFIUlJqjeDg/CSDXFCoQC/Tsf1SU8PPO/thdcDA9DR3R3knFT6KCQqSsUDLrEtiLOy - VLbVVZhnyauFheBrbuY6Pj/PPayNsmdkyuWCkOjo+wxhiNc1GkS17/XCzuEh2PPz4a9Gw3XO4eAe1r7O - zHAmV1aAymT1DCGgVK9H1LsnJ+De24Ol3FzwNjZynbbbuYe1EauVY1paArYBdXCNypYWpN5zfAzrbLq2 - 7GzwNjRwtbLb0MPa0OQkZ2xhAUh8fANDCChsakJuutmUHVtbMJuRAadqNVfcAnpYGzSZON9mZ4GwFTKE - gGt1dcjtjYMDWHa7wZqWBie1tVzN7HPRw9rA+Djny9QUkJgYLUMISCsvR+6s7e+DbWODr++4qoqraXGR - e1jrHx3l4H9AoqNbGUJATEEBcvc3G5STDWxYKgVvTQ1XCxsielj7ZDZzcJA0MrKTIQSIU1PJRYWiJiw5 - +SFiYP97gICHXEhM7AyNjTWERES8ohKJlsECgPwD74Vfj6xWOBYAAAAASUVORK5CYII= - - - - 193, 17 - - - 17, 17 - - \ No newline at end of file diff --git a/src/Greenshot/Forms/ToolStripMenuSelectList.cs b/src/Greenshot/Forms/ToolStripMenuSelectList.cs index 5544d1e6e..38bfab424 100644 --- a/src/Greenshot/Forms/ToolStripMenuSelectList.cs +++ b/src/Greenshot/Forms/ToolStripMenuSelectList.cs @@ -29,8 +29,8 @@ using System.Drawing; using System.Drawing.Imaging; using System.Windows.Forms; using Greenshot.Gfx; -using Dapplo.Ini; using Greenshot.Addons.Core; +using Greenshot.Addons.Config.Impl; #endregion @@ -41,8 +41,9 @@ namespace Greenshot.Forms /// public sealed class ToolStripMenuSelectList : ToolStripMenuItem { - private static readonly ICoreConfiguration CoreConfig = IniConfig.Current.Get(); - private static Image _defaultImage; + // TODO: Solve, was static reference! + private static readonly ICoreConfiguration CoreConfig = new CoreConfigurationImpl(); + private static Image _defaultImage; private readonly bool _multiCheckAllowed; private bool _updateInProgress; diff --git a/src/Greenshot/Greenshot.csproj b/src/Greenshot/Greenshot.csproj index 81e7174e5..63e18ae53 100644 --- a/src/Greenshot/Greenshot.csproj +++ b/src/Greenshot/Greenshot.csproj @@ -1,577 +1,127 @@ - - - + + - {CD642BF4-D815-4D67-A0B5-C69F0B8231AF} - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} WinExe - Greenshot - Greenshot - OnBuildSuccess - icons\applicationIcon\icon.ico - Properties - True - False - 4 - false - v4.6.1 - greenshot.manifest - 3.5 - - + net471;netcoreapp3.0 latest - + icons\applicationIcon\icon.ico + True + greenshot.manifest + Greenshot + Greenshot + - - ..\packages\Autofac.4.8.1\lib\net45\Autofac.dll - - - ..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll - - - ..\packages\Autofac.Extras.CommonServiceLocator.5.0.0\lib\net45\Autofac.Extras.CommonServiceLocator.dll - - - ..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll - - - ..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll - - - ..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll - - - ..\packages\CommandLineParser.2.3.0\lib\net45\CommandLine.dll - - - ..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll - - - ..\packages\ControlzEx.3.0.2.4\lib\net45\ControlzEx.dll - - - ..\packages\Costura.Fody.3.1.0\lib\net46\Costura.dll - - - ..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll - - - ..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll - - - ..\packages\Dapplo.Addons.Config.1.0.79\lib\net461\Dapplo.Addons.Config.dll - - - ..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll - - - ..\packages\Dapplo.CaliburnMicro.Configuration.1.0.75\lib\net461\Dapplo.CaliburnMicro.Configuration.dll - - - ..\packages\Dapplo.CaliburnMicro.Dapp.1.0.75\lib\net461\Dapplo.CaliburnMicro.Dapp.dll - - - ..\packages\Dapplo.CaliburnMicro.Menu.1.0.75\lib\net461\Dapplo.CaliburnMicro.Menu.dll - - - ..\packages\Dapplo.CaliburnMicro.Metro.1.0.75\lib\net461\Dapplo.CaliburnMicro.Metro.dll - - - ..\packages\Dapplo.CaliburnMicro.Security.1.0.75\lib\net461\Dapplo.CaliburnMicro.Security.dll - - - ..\packages\Dapplo.CaliburnMicro.Toasts.1.0.75\lib\net461\Dapplo.CaliburnMicro.Toasts.dll - - - ..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll - - - ..\packages\Dapplo.HttpExtensions.0.8.46\lib\net46\Dapplo.HttpExtensions.dll - - - ..\packages\Dapplo.HttpExtensions.JsonNet.0.8.46\lib\net46\Dapplo.HttpExtensions.JsonNet.dll - - - ..\packages\Dapplo.HttpExtensions.OAuth.0.8.46\lib\net46\Dapplo.HttpExtensions.OAuth.dll - - - ..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll - - - ..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll - - - ..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll - - - ..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll - - - ..\packages\Dapplo.Log.LogFile.1.2.1\lib\net45\Dapplo.Log.LogFile.dll - - - ..\packages\Dapplo.Log.Loggers.1.2.1\lib\net45\Dapplo.Log.Loggers.dll - - - ..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll - - - ..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll - - - ..\packages\Dapplo.Windows.Clipboard.0.5.109\lib\net461\Dapplo.Windows.Clipboard.dll - - - ..\packages\Dapplo.Windows.Com.0.5.109\lib\net461\Dapplo.Windows.Com.dll - - - ..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll - - - ..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll - - - ..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll - - - ..\packages\Dapplo.Windows.EmbeddedBrowser.0.5.109\lib\net461\Dapplo.Windows.EmbeddedBrowser.dll - - - ..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll - - - ..\packages\Dapplo.Windows.Icons.0.5.109\lib\net461\Dapplo.Windows.Icons.dll - - - ..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll - - - ..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll - - - ..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll - - - ..\packages\Dapplo.Windows.Multimedia.0.5.109\lib\net461\Dapplo.Windows.Multimedia.dll - - - ..\packages\Dapplo.Windows.Shell32.0.5.109\lib\net461\Dapplo.Windows.Shell32.dll - - - ..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll - - - ..\packages\gong-wpf-dragdrop.1.1.0\lib\net46\GongSolutions.Wpf.DragDrop.dll - - - ..\packages\MahApps.Metro.1.6.5\lib\net46\MahApps.Metro.dll - - - ..\packages\MahApps.Metro.IconPacks.2.3.0\lib\net46\MahApps.Metro.IconPacks.dll - + + PreserveNewest + + + + + + + + + + + + + + + + + + + + + + - - True - - - ..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll - - - - - ..\packages\Svg.2.3.0\lib\net35\Svg.dll - - - - ..\packages\System.Console.4.0.0\lib\net46\System.Console.dll - - + + - - ..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll - - - ..\packages\System.Reflection.TypeExtensions.4.5.0\lib\net461\System.Reflection.TypeExtensions.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - - ..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll - - - ..\packages\ControlzEx.3.0.2.4\lib\net45\System.Windows.Interactivity.dll - - + + - - ..\packages\ToastNotifications.2.3.4\lib\net40\ToastNotifications.dll - + + + - - - - - - - - - - - - - - - - - - - - Form - - - AboutForm.cs - - - Form - - - CaptureForm.cs - - - Form - - - LanguageDialog.cs - - - Form - - - MainForm.cs - - - Form - - - PrintOptionsDialog.cs - - - Component - - - Form - - - BugReportForm.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MainForm.cs - - - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - + + + + + + + + + + + + + + - - {4cca2717-b8a4-44f7-965b-5687107e4921} - Greenshot.Addon.InternetExplorer - - - {bf35190d-b2a7-4cfa-b397-51cb384cf0d7} - Greenshot.Core - - - {f041c685-eb96-4ed1-9ace-0f5bd836610f} - Greenshot.Gfx - - - {5B924697-4DCD-4F98-85F1-105CB84B7341} - Greenshot.Addons - + + + + + + + + + + + + + + + + + + all + runtime; build; native; contentfiles; analyzers + + + + + - - Always - + + + + + + + + + + + + + + + + + + + - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - + + - - - Designer - - - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - - - - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - \ No newline at end of file diff --git a/src/Greenshot/GreenshotAutofacModule.cs b/src/Greenshot/GreenshotAutofacModule.cs index cbf43592c..006cbdd74 100644 --- a/src/Greenshot/GreenshotAutofacModule.cs +++ b/src/Greenshot/GreenshotAutofacModule.cs @@ -21,16 +21,20 @@ #endregion +using System.Collections.Generic; +using System.IO; +using System.Linq; using Autofac; using Autofac.Features.AttributeFilters; using Dapplo.Addons; using Dapplo.CaliburnMicro.Configuration; using Dapplo.CaliburnMicro.Security; -using Dapplo.Ini; -using Dapplo.Language; +using Dapplo.Config.Ini; +using Dapplo.Config.Language; using Greenshot.Addons.Components; using Greenshot.Components; using Greenshot.Configuration; +using Greenshot.Configuration.Impl; using Greenshot.Forms; using Greenshot.Helpers; using Greenshot.Ui.Configuration.ViewModels; @@ -45,14 +49,31 @@ namespace Greenshot { protected override void Load(ContainerBuilder builder) { - builder - .Register(context => IniConfig.Current.Get()) - .As() + // Specify the directories for the translations manually, this is a workaround + builder.Register(context => LanguageConfigBuilder.Create() + .WithSpecificDirectories(GenerateScanDirectories( +#if NET471 + "net471", +#else + "netcoreapp3.0", +#endif + "Greenshot.Addon.LegacyEditor", + "Greenshot").ToArray() + ) + .BuildLanguageConfig()) + .As() .SingleInstance(); builder - .Register(context => LanguageLoader.Current.Get()) + .RegisterType() + .As() + .As() + .SingleInstance(); + + builder + .RegisterType() .As() + .As() .SingleInstance(); builder @@ -130,5 +151,28 @@ namespace Greenshot base.Load(builder); } + + + /// + /// Helper method to create a list of paths where the files can be located + /// + /// string with the platform + /// + /// IEnumerable with paths + private IEnumerable GenerateScanDirectories(string platform, params string[] addons) + { + var location = GetType().Assembly.Location; + foreach (var addon in addons) + { + yield return Path.Combine(location, @"..\..\..\..\..\", addon, "bin", +#if DEBUG + "Debug", +#else + "Release", +#endif + platform + ); + } + } } } diff --git a/src/Greenshot/Help/HelpFileLoader.cs b/src/Greenshot/Help/HelpFileLoader.cs index 8c1843527..cb0e9d1d6 100644 --- a/src/Greenshot/Help/HelpFileLoader.cs +++ b/src/Greenshot/Help/HelpFileLoader.cs @@ -44,7 +44,7 @@ namespace Greenshot.Help public static void LoadHelp() { - var uri = FindOnlineHelpUrl(Language.CurrentLanguage);// ?? Language.HelpFilePath; + var uri = FindOnlineHelpUrl("en-US");// Language.CurrentLanguage);// ?? Language.HelpFilePath; Process.Start(uri); } diff --git a/src/Greenshot/Helpers/CaptureHelper.cs b/src/Greenshot/Helpers/CaptureHelper.cs index ec9287759..72208a745 100644 --- a/src/Greenshot/Helpers/CaptureHelper.cs +++ b/src/Greenshot/Helpers/CaptureHelper.cs @@ -31,7 +31,6 @@ using System.IO; using System.Linq; using System.Threading; using System.Windows.Forms; -using Dapplo.Ini; using Dapplo.Windows.App; using Dapplo.Windows.Desktop; using Greenshot.Destinations; @@ -50,7 +49,7 @@ using Greenshot.Addons.Interfaces; using Greenshot.Components; using Greenshot.Core.Enums; using Greenshot.Gfx; -using LangKey = Greenshot.Configuration.LangKey; +using Greenshot.Addons.Config.Impl; #endregion @@ -62,7 +61,8 @@ namespace Greenshot.Helpers public class CaptureHelper : IDisposable { private static readonly LogSource Log = new LogSource(); - private static readonly ICoreConfiguration CoreConfig = IniConfig.Current.Get(); + // TODO: Solve, was static reference! + private static readonly ICoreConfiguration CoreConfig = new CoreConfigurationImpl(); private readonly bool _captureMouseCursor; private ICapture _capture; private CaptureMode _captureMode; @@ -425,7 +425,8 @@ namespace Greenshot.Helpers } else { - MessageBox.Show(Language.GetString("clipboard_noimage")); + // TODO: Translation + //MessageBox.Show(Language.GetString("clipboard_noimage")); } break; case CaptureMode.File: @@ -449,7 +450,8 @@ namespace Greenshot.Helpers catch (Exception e) { Log.Error().WriteLine(e, e.Message); - MessageBox.Show(Language.GetFormattedString(LangKey.error_openfile, filename)); + // TODO: Translation + //MessageBox.Show(Language.GetFormattedString(LangKey.error_openfile, filename)); } try { @@ -458,7 +460,8 @@ namespace Greenshot.Helpers catch (Exception e) { Log.Error().WriteLine(e, e.Message); - MessageBox.Show(Language.GetFormattedString(LangKey.error_openfile, filename)); + // TODO: Translation + //MessageBox.Show(Language.GetFormattedString(LangKey.error_openfile, filename)); } } if (fileImage != null) @@ -678,7 +681,7 @@ namespace Greenshot.Helpers } else { - SelectedCaptureWindow = InteropWindowQuery.GetActiveWindow(); + SelectedCaptureWindow = InteropWindowQuery.GetForegroundWindow(); if (SelectedCaptureWindow != null) { if (Log.IsDebugEnabled()) @@ -720,7 +723,7 @@ namespace Greenshot.Helpers /// WindowDetails with the target Window OR a replacement public static IInteropWindow SelectCaptureWindow(IInteropWindow windowToCapture) { - NativeRect windowRectangle = windowToCapture.GetInfo().Bounds; + var windowRectangle = windowToCapture.GetInfo().Bounds; if (windowRectangle.Width == 0 || windowRectangle.Height == 0) { Log.Warn().WriteLine("Window {0} has nothing to capture, using workaround to find other window of same process.", windowToCapture.Text); @@ -781,7 +784,7 @@ namespace Greenshot.Helpers { captureForWindow = new Capture(); } - NativeRect windowRectangle = windowToCapture.GetInfo().Bounds; + var windowRectangle = windowToCapture.GetInfo().Bounds; // When Vista & DWM (Aero) enabled var dwmEnabled = Dwm.IsDwmEnabled; @@ -997,7 +1000,7 @@ namespace Greenshot.Helpers private void SetDpi() { // Workaround for proble with DPI retrieval, the FromHwnd activates the window... - var previouslyActiveWindow = InteropWindowQuery.GetActiveWindow(); + var previouslyActiveWindow = InteropWindowQuery.GetForegroundWindow(); // Workaround for changed DPI settings in Windows 7 using (var graphics = Graphics.FromHwnd(MainForm.Instance.Handle)) { diff --git a/src/Greenshot/Helpers/MailHelper.cs b/src/Greenshot/Helpers/MailHelper.cs index f9d068095..bb4cb0b32 100644 --- a/src/Greenshot/Helpers/MailHelper.cs +++ b/src/Greenshot/Helpers/MailHelper.cs @@ -31,8 +31,8 @@ using System.IO; using System.Runtime.InteropServices; using System.Threading; using System.Windows.Forms; -using Dapplo.Ini; using Dapplo.Log; +using Greenshot.Addons.Config.Impl; using Greenshot.Addons.Core; using Greenshot.Addons.Interfaces; using Greenshot.Addons.Interfaces.Plugin; @@ -77,11 +77,12 @@ namespace Greenshot.Helpers #endregion Enums private static readonly LogSource Log = new LogSource(); - private static readonly ICoreConfiguration CoreConfig = IniConfig.Current.Get(); + // TODO: Solve, was static reference! + private static readonly ICoreConfiguration CoreConfig = new CoreConfigurationImpl(); - #region Member Variables + #region Member Variables - private readonly ManualResetEvent _manualResetEvent; + private readonly ManualResetEvent _manualResetEvent; #endregion Member Variables diff --git a/src/Greenshot/Helpers/PrintHelper.cs b/src/Greenshot/Helpers/PrintHelper.cs index 5441528a9..fc14725f6 100644 --- a/src/Greenshot/Helpers/PrintHelper.cs +++ b/src/Greenshot/Helpers/PrintHelper.cs @@ -39,7 +39,6 @@ using Greenshot.Addons.Interfaces.Plugin; using Greenshot.Core.Enums; using Greenshot.Gfx.Effects; using Greenshot.Gfx.Legacy; -using LangKey = Greenshot.Configuration.LangKey; #endregion @@ -131,9 +130,10 @@ namespace Greenshot.Helpers catch (Exception e) { Log.Error().WriteLine(e, "An error ocurred while trying to print"); - MessageBox.Show(Language.GetString(LangKey.print_error), Language.GetString(LangKey.error)); - } - return returnPrinterSettings; + // TODO: Translation + //MessageBox.Show(Language.GetString(LangKey.print_error), Language.GetString(LangKey.error)); + } + return returnPrinterSettings; } /// @@ -164,9 +164,10 @@ namespace Greenshot.Helpers catch (Exception e) { Log.Error().WriteLine(e, "An error ocurred while trying to print"); - MessageBox.Show(Language.GetString(LangKey.print_error), Language.GetString(LangKey.error)); - } - return returnPrinterSettings; + // TODO: Translation + //MessageBox.Show(Language.GetString(LangKey.print_error), Language.GetString(LangKey.error)); + } + return returnPrinterSettings; } private bool IsColorPrint() diff --git a/src/Greenshot/Processors/TitleFixProcessor.cs b/src/Greenshot/Processors/TitleFixProcessor.cs index ca313ef06..f6980cc97 100644 --- a/src/Greenshot/Processors/TitleFixProcessor.cs +++ b/src/Greenshot/Processors/TitleFixProcessor.cs @@ -25,8 +25,8 @@ using System.Collections.Generic; using System.Text.RegularExpressions; -using Dapplo.Ini; using Dapplo.Log; +using Greenshot.Addons.Config.Impl; using Greenshot.Addons.Core; using Greenshot.Addons.Interfaces; @@ -40,9 +40,10 @@ namespace Greenshot.Processors public class TitleFixProcessor : AbstractProcessor { private static readonly LogSource Log = new LogSource(); - private static readonly ICoreConfiguration config = IniConfig.Current.Get(); + // TODO: Solve, was static reference! + private static readonly ICoreConfiguration config = new CoreConfigurationImpl(); - public TitleFixProcessor() + public TitleFixProcessor() { var corruptKeys = new List(); foreach (var key in config.ActiveTitleFixes) diff --git a/src/Greenshot/sounds/camera.wav b/src/Greenshot/Resources/camera.wav similarity index 100% rename from src/Greenshot/sounds/camera.wav rename to src/Greenshot/Resources/camera.wav diff --git a/src/Greenshot/Resources/contextmenu_capturearea.Image.png b/src/Greenshot/Resources/contextmenu_capturearea.Image.png new file mode 100644 index 000000000..9e0637204 Binary files /dev/null and b/src/Greenshot/Resources/contextmenu_capturearea.Image.png differ diff --git a/src/Greenshot/Resources/contextmenu_captureclipboard.Image.png b/src/Greenshot/Resources/contextmenu_captureclipboard.Image.png new file mode 100644 index 000000000..e5f66dd05 Binary files /dev/null and b/src/Greenshot/Resources/contextmenu_captureclipboard.Image.png differ diff --git a/src/Greenshot/Resources/contextmenu_capturefullscreen.Image.png b/src/Greenshot/Resources/contextmenu_capturefullscreen.Image.png new file mode 100644 index 000000000..033670000 Binary files /dev/null and b/src/Greenshot/Resources/contextmenu_capturefullscreen.Image.png differ diff --git a/src/Greenshot/Resources/contextmenu_capturelastregion.Image.png b/src/Greenshot/Resources/contextmenu_capturelastregion.Image.png new file mode 100644 index 000000000..80ce1ee20 Binary files /dev/null and b/src/Greenshot/Resources/contextmenu_capturelastregion.Image.png differ diff --git a/src/Greenshot/Resources/contextmenu_capturewindow.Image.png b/src/Greenshot/Resources/contextmenu_capturewindow.Image.png new file mode 100644 index 000000000..45e505f6f Binary files /dev/null and b/src/Greenshot/Resources/contextmenu_capturewindow.Image.png differ diff --git a/src/Greenshot/Resources/contextmenu_donate.Image.png b/src/Greenshot/Resources/contextmenu_donate.Image.png new file mode 100644 index 000000000..3c045def0 Binary files /dev/null and b/src/Greenshot/Resources/contextmenu_donate.Image.png differ diff --git a/src/Greenshot/Resources/contextmenu_exit.Image.png b/src/Greenshot/Resources/contextmenu_exit.Image.png new file mode 100644 index 000000000..35ba52b6d Binary files /dev/null and b/src/Greenshot/Resources/contextmenu_exit.Image.png differ diff --git a/src/Greenshot/Resources/contextmenu_help.Image.png b/src/Greenshot/Resources/contextmenu_help.Image.png new file mode 100644 index 000000000..44b3247e2 Binary files /dev/null and b/src/Greenshot/Resources/contextmenu_help.Image.png differ diff --git a/src/Greenshot/Resources/contextmenu_openfile.Image.png b/src/Greenshot/Resources/contextmenu_openfile.Image.png new file mode 100644 index 000000000..e52406d10 Binary files /dev/null and b/src/Greenshot/Resources/contextmenu_openfile.Image.png differ diff --git a/src/Greenshot/Resources/contextmenu_present.Image.png b/src/Greenshot/Resources/contextmenu_present.Image.png new file mode 100644 index 000000000..55e74e08d Binary files /dev/null and b/src/Greenshot/Resources/contextmenu_present.Image.png differ diff --git a/src/Greenshot/Resources/contextmenu_settings.Image.png b/src/Greenshot/Resources/contextmenu_settings.Image.png new file mode 100644 index 000000000..913586a4e Binary files /dev/null and b/src/Greenshot/Resources/contextmenu_settings.Image.png differ diff --git a/src/Greenshot/Resources/icon.ico b/src/Greenshot/Resources/icon.ico new file mode 100644 index 000000000..fd1312dec Binary files /dev/null and b/src/Greenshot/Resources/icon.ico differ diff --git a/src/Greenshot/Sounds.resx b/src/Greenshot/Sounds.resx deleted file mode 100644 index 56901a7fe..000000000 --- a/src/Greenshot/Sounds.resx +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - UklGRiRAAABXQVZFZm10IBAAAAABAAEAESsAACJWAAACABAAZGF0YQBAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAID/gACA/4AAgP+AAAAAAAAAAIAAgP8AAAAAAAAAAID/gAAAAID/ - gAAAAID/gAAAAID/gAAAAAAAAAAAAID/gAAAAAAAAAAAAID/gACA/wABAP+AAAAAAAAAAAAAgAAAAID/ - AACAAAAAgP8AAAAAAAAAAAAAgP+AAAAAAAAAAAAAAAAAAAAAAAAAAID/gAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAgP8AAYD/AAAAAAAAgP8AAAABAACA/wAAgP+AAAAAgP8AAAAAAACAAAAAAAAAAIAAgP8AAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAID/gAAAAID/gACA/4AAAACA/4AAAACA/4AAAAAAAAAAgP+AAAAA - AAAAAAAAAAAAAID/gAAAAAAAAAAAAID/gACA/4AAAAAAAAAAAAAAAAAAAAAAAID/AACAAID/gAAAAAAA - AAAAAID/AACAAAAAgP+AAAAAAAAAAID/gACA/4AAgP8AAIAAAACA/wAAAACAAAAAAACA/wABgP8AAAAA - AACA/4AAAACA/wAAgAAAAID/AAAAAIAAAAAAAAAAAAAAAAAAAACA/4AAgP+AAID/gAAAAAAAAACA/wAA - AAAAAAAAgAAAAID/gAAAAID/AACAAID/AACAAAAAAAAAAAAAAAAAAAAAgP+AAID/AAAAAIAAAACA/wAA - gAAAAID/AAAAAAAAgACA/wAAgAAAAAAAgP+AAAAAgP8AAIAAgP8AAAAAAAAAAAAAAACAAID/AAAAAAAA - AAAAAAAAAACAAID/AAAAAAAAAACAAAAAgP8AAIAAAACA/wAAAAAAAIAAgP8AAAAAAAAAAIAAgP+AAAAA - gAAAAAAAgAAAAID/gACA/4D/AAAAAAABAAGA/4D/gP+AAYD/gP6AA4D/gACAAgD9gP4AAID9AAKAAwAB - gACAAID+gP8A/4D9gP8ABIABAACAAID/gP4A/wAAgACAAQACgAAAAID+gP0A/wABgAEAAQACAP8A/gD9 - AAAAAYABgP2AAQADgAMA/AD8gP8AAQADAAGA/YADgPyAAAD/gP+A/4ACgP+AAoD7gP8AAIACAACAAID/ - AAGA/YAAAACA/4AAAAOA/wD/AACAAYD/AACA/4ABgAKA/4D/gP8A/wABgAGA/gACgAAA/gD9gP6AAAD8 - AP0ABwD9gAUA94AFgPwACoDygAQABYD8AAGA9oAIgP6AAIABAAsA5IAEAOaA5YD6gDUA0QAFgBiAPYAF - gN0AEYDkAMaAIoAugNEA6YASAPYALAA7gP4A34D/ABgAEoACgOAA5wAVAPaA9IACAPyACIALAP2A64Aj - AAkA04DPgC2AGID1APKAEYAxAPAABAD8gOUA+wAdgOyA1YAFAAgA/IATAAGAAIABAPWAE4ANAOEACAAI - gPMA+oADAAGAF4D4gPEA+oAJAAGAAYDtgASAAYD+APOABQATgP2A/4D/gPeA/YABAPmA94ASAAuA/QAA - APyABAD0gPIACYAEAPGAAgACAP0A/QAMAAOA+4ABgAMAAQD9gPmA/gACgAQAAAADAAGA/gD+gPoAA4AC - gP+A+AAAAASA/YD7gAmABAACAPcAAQABAAGAAIAAAPwAAQAHgACA+oD+AAQAA4D3gP6ABoD/AP2AAgD9 - gAUAAIAAAAMA/oD8gAQA/wD+gACAAgAAgAIA/gD/AP0AAgAAgAKA/gD+APwA+QD9gAQAAQAUgAOAAAAC - gAaAAAABgAYA/YD/gP4A9gDxgPoA+AD7AAgAEQAEgNcAJ4DIgBeA2IAAgPcAHwD5gO+A7IAngCYA2IAb - ABKABgDhgAoACIDlgOYANAD8APKAJgD4AOQA3QAggBmA6YACgCgAzQD8gC0AC4DwAAyA6IAJgOMADAAi - AOoA8QAQAAEAHwDygOwA/oD8AAgAEgD7gPaA+YABAB0A94D5gAiA74D/AAUA/AAKAPkAAoAPgPQAAgD8 - gAQA+4DygPwACIAMgAQA8ID/AAAABIACgASA+wD+AAGABAADgAEA/QD+gPyABQAFgPwA/AADgP0A/wD+ - AAIA/wD8AAgA/QD+gAUA+4D+AP+AAAAJgAAA/ID6gP4AAwADAAGA/YD6AP2ABoAEgAEAAQD/gP+A/QAA - gAOA/oD/gAQA/oAAAACA/ID6gP+AAQABAAGAAQAAAP0A/QAAAACAAAAAAP8AAwABAAKAAAD/AP0AAQAD - AP+A/oD+gACAAQD/gACA/oAAAAKA/gD/gAGA/wD/gAAA/4D/gACA/wD/AACAAIADAP8A/4AAgP0AAoAB - AP6A/wD/AAGAAIABgAAAAAD+gAKAAID/gP+A/4AAAAEAAYD+gP4AAQD/AACA/wADgAKA/oAAAACA/wD+ - AAGA/gAAAAIA/4D+AAEAAgAAgP8AAQAAgACAAAD/gP6AAAABgACAAgAAgP+A/4D/AP8A/wACAAAA/gD+ - AAIAAYACAAEAAIAAgP6AAAAAgAAAAID+AAGA/QAAgAEA/wAAgACAAQD/gP4AAIAAgACAAIAAAACA/gAB - AAAA/wACAAIAAAD/AAAAAID/gAAAAIAAgP+AAID/AAEAAYD/gACA/gD/AAEAAQAAAACA/QAAgAEAAYD/ - gP8A/4ACAP+A/gAAgACAAID/AP8AAYD/gP+AAAD+gACAAQAAgP+A/oD/AAGAAAD/gP8AAQAAgAAAAAAA - gACA/gD/AP6AAgABgP8A/4ABAP8AAQAAAAAAAAAAgACA/4D/gP8A/4AAgP8A/4D/AACA/4AAAAAA/wAB - gP+AAIABAAEAAAD/gAAAAYD/AACAAID/gP6A/4D/AAEAAAABAP+A/4AAAACA/wAAgACAAIABAACAAAAB - AP+A/oAAAAGAAQD/AACA/wAAAAEAAID/gP8A/wABgAEAAAAAgP8AAAAAAACAAYD/AAAA/wAAgAAAAID/ - AAEAAAD/gAGA/4AAgP8AAAABAP4AAAABgP+A/4D/gAAAAYD+gACAAQAAgP+AAID/AAGA/4ABgP+A/wAA - AAKA/4AAgP8AAAAAgP8AAIAAAP8AAAD/AACAAAABgP4AAIAAgAAAAAAAgP8AAID/AACA/wABgP+A/4AA - gAAA/wAAgACA/4AAAAGA/wAAgACA/wAAgAAAAAAAAP+AAAAAAAAA/wABAACAAID+AAEA/4ABgP6AAYD+ - gAMAAAACgPyA/wD/gPwABgAFAAEA/AD7AAMA/AAEgPoA/AAAAAUAAoACgAKAAAD8gP2AAID+gP+A/wAC - gAIAAgD/AAEA/QD8AAEA/gD9AAMABgABgPsA/QACAAOA/4AAgP6A/AADAP8A/4D/AAOABAADAACA/QD9 - gAAA/4D7AAGAAoAAAP+A/4D/AAOAAID9gAAAAIAAAP6A/oAAAAAAAwACAAAA/wABgP2A/gD+gAAAAAAB - gACA/wAAgACA/wAAgP8AAQACgAEAAID/AP8A/wD/AAAAAAABAACAAIAAgACAAID/gP8AAAAAgP8AAIAA - gP8A/wAAgP8AAID/AP+A/oD/AAGAAAABAACAAAADgAEAAoABgAIABAAAAP6A/gD+APyA/wD6APwAAQD4 - AASABgABAPgAA4D+AAAA9AAMgA0ADID9gPqAAoD9APwA/gAFAAeA+ID+APuA/oD3AAaA+IAAAP2ABwAD - APwAAYAMgAOA/ID8gAEABgAGAAWABQACgACA/YD8APwAAAABgP4A+gD4APyA/ID5APyA/gAEgAIA/AD7 - APsA/YD+gAIAAwADgASAAoD/gP6AAAAAAP8AAwAFAAOAAIABAP6A/gAAAACAAYADgAOAAoACgACAAgAC - gAQABYADAAKAAwABgAGAAYACgAGA/gAAgP2A/ID8AP0A/YD5APqA+oD6gPoA+4D9gP4AAID/gP6A/gAA - AAGAAQACAAGAAYADgAIAAQAAgAEAAQABAP8AAQABAP+AAIAAgAGAAYACAAIAAgACgAKAAoABAAKAAQAC - gAGAAYABAACAAAD/gP6A/gD+gP0A/gD9gP2A/YD9gPwA/QD9gP4A/gD/AP8A/wD/AP8A/4D+gP4AAID/ - gAAA/4D/AACA/4D+AP+AAAAAgAAAAYAAAAAAAYABAAGAAgABgAEAAwACAAOAAQACAAEAAIAAAAGAAAAA - gACAAID/gP6A/4D+AP4A/wD/gP4A/wD/AP8A/oD/AACAAAAAgAAA/4ABAACAAAAAAAAAAQABAAGAAQAB - gAAAAAAAgAEAAAABAACA/4AAgP+AAYAAgAGAAAACgAGAAAACAAAAAAAFAAMAAwD/gPsA/IABAP6AA4D3 - gP+A/wAEAACA/4AAgPyA/QD+AP4AAID+AAEAA4ABAACAAQADgAAAAAABgP+AAYABgAEAAQD/gAKAAoD/ - AP4A/4D9AAKAAIAAAACAAQD+gP2A/YD+gPyA/gD/gAGA/4D/AP4A/oD/AACA/wABgP4AAIAAAAGA/wAA - AAEAAQAAgP8A/wAAgP8AAAAAgP+AAID/AP+AAAD/gAAAAIAAAAAAAID/gP+A/4ABgAAAAYD/gAEAAIAA - gP8AAQAAgAAAAIAAgP+A/oD+gP8A/4D/AP8AAAD/gP8A/wAAAACA/4AAgACAAQABAAKAAQAAgAGAAYAB - gAEAAQACgAAAAQABAAGAAAAAgP8AAIAAAAAAAQABgP4AAQD+AP8AAAD/AAMAAID/AAOAAID7APoAAwAF - gACACwADAP+AAAD/AAiA+AD7AAYA/ID1gPwACAAAAAGA+AD0gAAABYD5AAqAAQAFAP4A+4D0gAEAAIAD - gAOAAQADgAKAAAAAAP8ABAAFgAGA+YD8gP4ABAD9gPoA/oADgASA+QD6gAIABIADgAIA/ID+AP6A/wD/ - AP0A/wACAAQAAAD+AACAAAD+gAAAAgAAAACAAYD+gP8AAIAAAAEAAAD/gP8A/oD9gPyA/gAAgAKA/gAB - gP6A/oAAgP8A/oAAgAKAAoAAAP8AAQABgACAAgABgAEAAYAAgP8A/4D/AAKAAQABAAAAAIABgP6AAIAA - gP+AAYABAP8AAAAAAAGAAIAAAACAAQAAAAAAAAAAgAGA/wAAgP+AAQAAgAAAAAD/AAAAAAAAgACAAAAB - gAAAAAD+AAAA/wD/AAAAAIAAgAGAAQABgAAAAQD/AP+A/oD9gP+AAIAAgACAAAABAP8AAAAAgP8A/wAA - AACAAAD/gP8AAAAAAP4A/4D/AP+AAQAAAP8AAYAAgAEAAQABAAAAAID/gP8AAAD/gACA/4AAAACA/oAB - gP6A/wD/AP4AAID+gACA/wAAAAEAAIAAgP4AAAABgP6AAAD/gP+A/4AAgP+A/4AAgACA/YD/gP4AAAAB - gP8A/4AEAP8AAgD7gACA/QACAPwAAoABgP+AA4ABgAGA/gACAACAAQAAgACAAIAAgAEAAAABAACAAQAD - AAIAAwABgACAAYAAgP4A/4D+gACA+wD/gAGA/4D/AASAAAD9AAAA/4AAgP6A/gD+AP4A/4AAAAKAAIAB - gAGAAAAAAP+A/wD/AAGA/4D/AAGA/4ABAAAA/4AAAAAAAgAAAAAAA4AAAACAAAD+gP4A/wABAAIA/wAB - gAGAAgAAAP4A/4D9AAAAAgAAAAEAAID/AAAAAQD/APwA/oD9AAKA/gD+AAOAAoAAgP4AAAAAAP4AAID/ - AACAAAAAAAGA/oD9AAKA/4D9gP+AAIABgP6A/oAAgAIAAQD+AP8AAIAAgP4A/4D/gAEAAQD+AAQAAgD/ - AAGA/oAAgP6AAAAAgAAAAgACAAKA/gABgP0A/4D+AP8A/YD+AAAAA4ABgASAAAD/gAAAAAD9gP0AAAAB - gP+AAAADAAMAAIACAP8AAAAAAP8AAgADgAAAAIABAP4AAQD/gPyA/IAAAAAAA4ABgAGAAoAAgP4AAID/ - gP2A/AD/AP+ABQABAP4ABQABgP+AAYD7AAIAAID/gP+ABIAAgACA/ID+gACA/4D8gACAAoAAAAKAAQD/ - AP2A/gD/gACA/gD/gAMA/YABgAEAAIAAAACAAAADAP2A/wD/gP+AAQAAAP2A/YD9AAGA/4AAAP+A/wAA - gP8A/4D+AP+AAAACAP4A/wADAP6AAoD/gAGAAYD+AACAAQABgP+A/YAAgP6A/4AAAAKAAAABgAKAAAD+ - AP+A/4AAgP4ABIAAAAEAAAADgP6A/YABAASA/AACgP+AAID/gP6A/4D7APuAAYACgAQAAAD9AAEAAQD9 - AP+AA4D9gAEA/wAAgP6A/wACAAEAAwD/gAGAAIABgP6A/QD9gAIAAYAAAACAAYABgAEAAYD9AP+AAQAA - AP8AAoABAAAAAgABgP4A/wACgP+AAIABAP6A/wD/AAIAAID+AP4AAQD/gP+AAYD9AP+AAYD+gAIAAID/ - AAKAAYD+gP+AAoD/gP+A/gD+gAIAAoD6gP+A/wD/gACAA4D+gP+AAID+gAOAAAD9AAKA/4D+gP8AAID/ - AACAAAACAAIAAwD9gP0A/oD9gACAAAD+AAMA/YD/gAAAAYD+gAGA/QACgP6AAQAAAAMA/YAAAAGA/oD/ - gACAAYD/AP+AAYABgACA/oABgP4AAAD/gACAAAD9gAGAA4D/gP+AAQADgP4AAAD/gAKA/QD/AAMAA4D8 - AP+A/gD/AAOAAgD8gPuABYAGAP4A/YACAPuA/YABgAQAA4D4gAIAAAD6gAEABQD+gPwAA4AIAAAA/AD+ - AACA/IADAPYACQD8gAAA/wAPAPUACADzAAgAAwD7gAoABQAJgOOA6IA8AN8A94AagOkAGID/AOAAKADk - APwAFAD+APeABIDtACYAFoDUAMYAFoAygP8A84D3gCSAGQDKgPcA1YApAAGACADmACiA4QAEABCAGIDn - APqA/QA4AN+A4oAPgA6A/wDvACyA/ADZAOEAFgD/gD8A7AD2APWACIAEAMUA8YA/gAWA1ADmgD+AC4DY - gOwAJADxgOcA/QAfgA4ABgD7AO6ABYD+gOGAEAAOAAqA3gAFgCwA8wD5gNyACQAJAPiABoDvgO+ALAD6 - AASA5wADABQA+ID6gAKABgAGgPcA+QAXgOWACoD7AAGAAIAOAOmAEwD1gP8A8YAWAAyABADjAAoAAoD3 - APgAEgAAgP+A7wAIAAUAAwAEgP6A+QAEgAkA9oD+gP0ABQAEgP8A/QAEgPyAA4ACAP0A/oAOAPYA/QAI - gAGA/4D+AAKAAYAAAPmA/wD+gP0A/4D+gACABoD9gAGA/YADgAUA/YD6gAOA+QD/gP8AAgD+gP+AAQAG - gP8A/oD+gAAA/ID+gAKAAAABgPwA/YADAPyABIACAAAABID9gPyAAgD/AAWA+QACAP8A/4DvAAwAFYD0 - AOUA8wAJgCGAEwDoAN+A+YATgAoAAAD+AOkABAAcgAeACAAGgO+ADoAGgAoACYD3AO8ACwAFAAQA/oAA - AAAAAIAFAAEA7oAKAAeA/YD/gP0A+gAGgPsA9gABgP8ABoD+gPaA9wD/AAuAAwD8gAgAAQAAAP8A8IDv - gAKAA4D7AAMAA4AFAAKAAwD8AACA/oAAgPuA/YD2AAKA/4AEAAIAAoD5AAaAAYADAAGA/4D9AAMAAQD+ - APsA+YD6AACA/gADgPuAAwAFAAEABAAHgAGABAD+gP2A/AADgPkA+wD/gAGAAID/AAAAAIABAAKA/wAB - AAQAAQADAP8AAoAAAP+A/wD6AP+A/4ACAASAA4AAAP+AAQAAAPyA/4D/APyAAwABAACAAwD/gACA/wAH - gAGA+4AAAP2AA4AGgP6A+YAAAAAA/AAAgP4AAAAAgAEAAwABAACAAYD+gASAAYD8gAEAAAD8gASA/AD/ - gP8AAAD/gP0AAYAAgP0AAYAEgP8AAoD/AASAAIAAgPyAAYD/AACAAAABgAIA/YAAAAAAAQAAgP+A+gD+ - AAmA+gABgAMAAYAAAP2ACAD8AP8A/ID+AAMAAwADAPuAAIAAAP4A/wD/gP8A/QABgAAA+wAEAP6A/wAF - AP6A/AACgAGAAID/gP2AAYD/gAAAAAD/AP8AAgD8AAAAAoD/gAMAAoAAAACA/wD9gAGA/gD/AAIAAQAA - gACAAAAEgAAA/IAAAPwAAoACAPyAA4D8AAMA+4ACAAAA+oACAP4AAIADAAAAAIABgAAA/YABAP+A/4D7 - gP4ABID+AP4AAgD8AAOAAQD8gACAAgD9AAAABAD9AACA/oAAAP+AAID/gAKA+4ADAAAAA4ACAAAA/wAB - AP8A/QABgAAA/oACgAEAAYABgAEAAoAAgAAA/YD9gAMAA4D/gAEAAID+gAEAAgABgPmAAYD9gAEABYD/ - APwAAAABAAEAAgABgPyA/oD+AAIA/4D/AACA+wAEAAIA+QD8AAgAAQD4gPiA+gAKAAmABAD2APWA+4D+ - gP6ABIACAPsABQAKAAUAAQAIgPmAAoAFAAgAAQAGAPwA+gAKgAAA+AD+AAaA/QD2gAuAAgD/gAGAB4D6 - gP4AA4D4gPgA+4ADgP+ABID+gPyA/ID+gASABoABgPwA/wD/AP2A+QD5gPoABYD/gACA/YAAAAOABYAB - gACAAgD8AAKA/oD7AP4AAID6gAAAAgADgP6AAIAEgAOAAoD+gAEA/oAAAP+AAYD9gP8AAID+AP6A/4AB - APwACQAFAP+ABYABgAAA+wAFgPoA/gD/AAAAAYABAAGA/4D8AAOAAgAAgAAA/ID8gAOABYD8AACAAQAA - AAYA/YD7gP4AAwD8AAMA/4D+gP8AAwD/AAEA/oD+AP+A/gAAgAAAAYAAgAOA/4ACAP2A/YACgPwAAgAD - gP6AAAABgAEAAQD/APyA/wAAgAMAAQAAAAKAAQD+gAKABAD6gPwAAoD9gAEABAD8gP+A/wD9gAIAAAD/ - gPwA/wD/gAIA/4D/AAAA/wAFgP0A/4AAAP4A/4ADgP2AAQD9AAQA/gABgP+A/wD9AAAAAoAAAAGAAQAB - AAAAAgD8AAIA/QABgAYA/gD+AAKABoD3AAOABAD8gPiAA4ABAPuACAAAAP0A+4AAgAcA/QAAAP8A/YD6 - gP+AAYD9AAKA/QD+AAgABID4gASAAoAFAP8ABoD+AAMABAD9gP0A/oD9gAKAAYD+AAAAAIAEAAOA/gD+ - AAGA/IAFgP2A/IABAAKA+4ACgP+A+4ACgP6A/YADAAWAAYACAAOA/gD8gPsA+oD7AAWA/AAAgAIA/wAC - gP8ABwD8gP0AAoD9gAKAAAD+AACA/YAAAAKA/wD/gP2A+wACAAKA/AD9AACA/wAHAAIA/oD+AAEA/QAE - AAEA/YD/AAEAAYABgP8A/wD+AAEAAYD+AAQAAID+gAGAAID8gAAAAYD/AAIABAD+gAEAAQABgAIA/YD/ - gP0AAIABgP8AA4D+AP+AAQADAAGA+YD+AAQA/AAHAAOA+QD/AP+AAIADAAGA+gD9gACAA4ADAPwA/4D+ - AP0AAwD/gP0AAoD+AP6ACoD+gP6AAgAAAAOAAYD/AAIA/gD/AASA/gADAP6AAAAAgAGA+wAAAAMA/ID/ - AAQAAoD6gAEAAoAAgPyAAAAAgP6AAID/AACA/IAAAASA/4ADAPwA/wD/gPwAAQD/AAKA+4AAgP+AAgAA - AP0A/oD/gAKAAID8gAEAAIAAgASA/YD7AAAAAQD/AAGA/AD/gP+AAAACAP+A/4ABgPuAAwAAgP8AAoD9 - gAIAAQAAAP8A/oD9AAAAAIAAgAAAAwD/gAOAAwD/gP+A/wABgAOAAIAFgPyABAD9gAEAAoD5gAAAAIAB - AAOA/wD/AP+AA4D+AAUA/ID8gP6A/QADAACA/AADgAAAA4D/AP+A/QD+gP4AAwABAAAA/4D9gAGA/4D/ - gP+A/4D8gAKAAYD+AAKA/oABAAGAAQD8gAAAAoAAAAKAAoD/AAEA/4AFAAAA/oD9AP4A/4AAgAGAAoD9 - gAMAAQABgAMA9gACAAIA/QAFAP8A+gAAgAGA/4ABgAAA/AD8gP4AAYAAgPwAAoD/AAMAA4D8AP4A/gAA - AAAABID/gP2AAAABAACA/wD/gP+A/YD/gASA/wADAP2ABYABAP8AAQD5AAGA/oAIgPyA/wABgAEA/oAF - gAKA+QD8gAOA/gAAgAUA/oD+gAGAAQAFgPkA+wAFAP4ABAABgP4A/oD/AAGAAIACAP6A/YD9gACAAgD/ - gP6AAYD/gAMAAQD/APyA/4ABAAMAAAD/AP+AAgD/gAEAAAD+AP4A/4AEgACAAgD+AAIAA4D+gACA+wAA - gACAAgACAAOA/oABgP8AAgD/AP2A/IAAgAIAAIABgAAA/wADgP4ABYD9APiAAgAAgAGAAoAAAPyA/oAC - AP+AAoD/gPuA/oAAAAOA/YD/AAAAAYAEAACA/AD9gAAA/wABgAKA/4D8AAKAAAAAAAEA/gD/AP+AAoD/ - AAOAAYD+AAOA/gAAgPqA/wAAgP+AA4ACAP8AAYD/gAIAAID+APsA/4ADgAEAAID/AAAA/4ADAAEAAgD3 - AAAAAQD+AAUAAQD9gP4AAAABAAMAAoD9AP6A/wD+gAOA/YD+gAIAAIADgP8A/QD/gP6AAAAFgP0AAAAA - gAIA/YAAgAKA/YD8gP0AB4D/AAAA/4AGAP2AAYABgPuA/4D9AAQAAwD9AAGAA4D8gASAAAD5gPwAAwAA - AAOABAD6gP+AAQAEgAMA+oD7AAMA/YAAgAIA/wD+AACA/wACgAGAAAD9gP2A/4D/gACA/oABAP6AAoAB - gP0A/wD9AP8AA4ADgP6A/4ACAP8A/4D/AP0AAID9AAWA/gACgP+AAgD/AAOA/4D7gAGA/YACAAOAAYD+ - gAGA/wABgP+A/oD6AAIAAwD8gAQA/oAAAAEAAQAFgPmA/IAAAP4AAYADAP4A/YD/AAOAAIABgPyA/ID+ - gAEAAoD9AAEA/wACgASA/4D8AP0AAQD+AAUAAQAAAP6AAYD/gAEAAID/AP4A/4ACAACAAoD/gAIAAAAC - AP+A/AD/AAAAA4ADgP+A/wABgAMAAYAAAPyA+4ACAAEAAAACgP6AAAAFAAEABYD5gPqABAD8gAIABID/ - APyAAoABgAAAAgD/APsA/wAAAASA/oD/gAAAAQADgP+A/AD/AP4A/wAEAAEAAQAAAP6AAoABAP4A+QAF - gP+A/QD/gAgA+wABgAIAAgD9gPuA/4D/gAIABQAAAPsABAD/gAMA/4D6AP6AAwAAgP4ABAD+gP+AAwAD - AAMA/AD5AAOA+gADAASA/gD9AAAAAQACgAOA+oD9gP6AAYABAP0AAIABAAAABAD+gPuA/gD+AAAAAgAD - AP6AAIAAgACAAAABgP2A/YD/AAOA/4ADgP0AAgABAAAAAAD8AACAAAACAAKAAAAAgAAAAoABgP4A/gD+ - AAEAA4D7AASA/QADAAIAAYAEAPkA/YACgP2AAgABAACA/IACgAEAAIAAAP2A/AAAAAKAAQD9gAEA/oAE - gAMA/wD7gP0AAYAAAAKAAwD+AP+AAQACAP+AAID9AP4AAAAFgPyABAAAAAEAAIABAP0A+4ABAAEAAAAF - AAEA/YABgAOA/wD/gP6A+gAAgAKA/wAAgACA/wAEAAIAAgD7gPmAAwD8gAMAAwAAAPsAAQABgAEAAgD+ - APqA/gAAAAQA/QAAAACAAYAEAP4A/QD9gP6AAgABAAIAAgD8gPwABgAGAPcA/oAFAPyA/wACgAUA/AD/ - AAMAAoD9APyAAwD9AAEABYAAgP6AAQD/AASAAgD8gPoAAQADgP0AAwAAgP0ABQADgACA/YD5gAKA/gAB - AASA/oD+AACAAQABgAKA+4D+AP+AAQAAAAGA/gD/AASAAoD/AP6A/YD/AACAAIACAAAA/YAAAAMAAAAA - AP2A/gABgAAAAoAAAAEA/YAFAP+AAYD6AP4AAQAAAAEABAAAAP+AAAACAAIA/YD8AP2ABID/AACAAAAA - AAMA/4ADgACA9gABAAGA/4ADgAEA/QD+gAIAAQABAP8A+4D+gAAAA4D/gP0AAYAAAAQAAAD/gPqAAIAA - gP+AAgADgPqAAAAEgP6A/4D/AP2AAYAAgAIA/4ACgP6AAoAAAAAA/QD6AAQAAIABAAMAAoD/AAGAAIAB - AAAA/gD4AAIAA4ACgP6AAQD/gAQA/4AFAPwA94AEAP6AAQAFgP6A+gABgAGA/4ADAP6A+wD/AAGAAoD/ - gP+AAIAAAAQA/oD+gP0AAAD+gAIABID+gP6AAQAAgACA/wD/gP2AAYABAAGA/gADAP6ABoD7gAIA+oD+ - gP8ABIACgAIA+wAEAAIA+wACgAKA+QD9AAYAAAABAP4A/wABAAQA/oAGgPeA+gAEAP0ABYABgP0A/QAC - AP6AAoABgP2A/AD7gAWA/wD+gP8AAAAEgAAA/wD+gP2AAID/gAIAAQD+gP4AAgD+AAKA/4D9AAAAAYD/ - AAKAAIABAACAAwD8gAOA+YD/AAIAAYAAgAUA/gABAP+AAYD+AAKA+oD/AAMA/4ABAAGA/wADgACAAoD/ - APqAAAACgP6AAgADgPoA/QAEgP8AAoD/AP0A/wAAAAEAAAD+AAIAAIADAAAAAwD5gP+AAIAAgAGABID6 - gP8AAgD/gAAAAoD8gP+A/4AEAP6AAoABgAAAAID/AP0A/YABAAGAAAABgAUA/oAAAP8AAQAAAAEA+wD+ - AAIAAQD/gAGAAAABAAIAAQACgPeAA4D9gACABIAAAPuA/gACAAAAAgACgPsA/oD+gAKAAAD+gAEA/wAE - AP8AAQD+gP2AAAAAgAIAAID+AAAAAAD/gP8AAID+gP8AAIACgAAAAAABgAEAAwAAgPiA/gADgAEA/IAF - AAUA/QAAAAAAAoD9AP+A/QD/AP8AAwAEgP2AAAAAgAQA/YAFgPuA/QADAPmAB4AAAP2A/QACAAEAAYAB - APyA/YD/AAOA/gD+gAGAAAAEAACA/4D/gPwAAIABgAEAAgD+AACAAAD9gAIA/gD+AAEA/gACAAMAAIAC - gP0ABYD9gAAA+4D8AAQAAID/gASAAAD/gACAAQD+AAGA/AD9gAKAAQD+AAEAAAABAAKAAIAAAP6A+4AE - gP+AAIABAP8A/IABAAGA/wABgPsA/4D/gP8AAwD8AAMA/4AEgP4AAID/APoAAgABgP+AAgD/gPuAAoAA - gP6AAQD+gP8AAIACgAEA/wACAAEAAoD/gP2A/gD6gAMABAD/gAKABID8AACAAIAAAAAA/4D6AP+AAwAA - AAGAAYAAAAIAAgD+AASA9wACAACA/gAFAACA+wD+gAIAAYACgAAA/ID9gP+AAgAAgP+AAID/AASA/oAA - gP6A/YABgAAAA4AAgPwA/wADgP2AAAD/gAEA/QABAAKAAQD/AAOAAIAGgPUABAD9gP4A/wAFgAOA+wAG - AP0AAgD5gAaA/YD8gP4AAwACAP8AAwACgPyABQD7gAKAAoD5gAEA/oAEAASA+YABAP6AAAACgAMA+oAA - gPuAAgABgP2AAYABgAOAAAD9gAEA/AAAAAIAAoD+AAGA/IABgPwAAwAAAP4AAQD9AP+ABAAAgAGA/4AC - AP+A/gD/gPmAAgAEAACAAAAEgP0AAQD/gP6AAgD+APyA/oADAACA/4ADAAGAAYABAP4AAgD5AACABYD8 - gAOA/wD9AP2AAwAAgAKA/QD+AP2A/oADAAEA/gACgACABAD/gAAA/QD8gAOAAIABgAAA/gD7gAUA/IAD - AP8A/oD+gACABIAAAAIAAYD/AAKA/gD9gPyA/AAGAAAAAIAEgACA/YAAgP0AAQABgP6A+YABgASA/wAA - AAIAAYAAAAOA/IACAPmAAYAAgP4ABgD+gPsA/YABAAKAA4D/AP6A/QD9AASA/oD/AAIAAAADAP+AAID9 - AP+AAoD+AAGAAAD8AAEAAAD+gAGA/4ABgP2A/wAEgAGA/YD9gAiAAoD3AAAAAQD7AAOABoAAAACA/gAA - APyA/gAHAP+A/YD7AAMAAAABAAAAAoD+gAaA+4D/AASA9wADAP4AA4ABAP6A+wD/gACAAwADAPsA/4D8 - gACAAwD9gAEA/4ADAAIA/QADgPqA/wADAAGA/4D+AP0A/4AAAAGAAQD+AACA/AAAAASA/wABgAKA/4AD - APsAAgD6gP8ABQAAAAGAA4D+gACA/oD/AAOA/oD8APyAA4ABgP8AA4ABAAEAA4D9AAIA/gD7AAUAAIAA - AAGA/YD8AAIAAYACgP+A/YD7gP0ABIABgP4AAoAAAASA/4D+AAEA+wACgACAAYAAgP6A/YABAP8AAIAB - gP2AAAD/gAGAAgD+gAIAAgABgAAA/AABAPoAAwAFAP4AAwADAPwAAID+AAGAAQD+AP2A/AAEAACAAgAB - gAEAAYADAP4AAgD7gPwAB4D6gAIAAgD9APoABAABAAOAAID9gPyA/IACAAEAAIABAAAABID/gP8AAQD6 - gAKAAIAAAAIA/QD9AAKA/wABgP0AAQAAAP4AAAAEAASA/AD/AAYAAgD4gAMA+wACgACAA4ABAACA/oAB - gPoAAgADAP+A/ID+AAOA/4AEgACA/oAAAAaA/IABgP6A+wAEgP2ABQD9AP8A/oABgACAAwD/AP0A/gD/ - AAGAAYD8AAQAAIAFgP2A/wABgPoAAIACgAIA/gD+gP6AAYD+gAIA/wD/gP+A/YACAAKA/wACgACAAQAA - gPyAAQD5gAQAAoACAACAAQD+AACA/wABgP8A/wD8AP6ABAAAAACAAoAAgAIAAYD8AAOA+oD/AAQA/wAB - AP4A/4D8AAQAAQABgP2A/YD7AAGAAoD/AP6AAgD/gAOA/oABgP0A+4ACAAIAAQD/gP+A/AACAP8AAAAB - AP4A/wD/AAQAAAABAAIAAQAAAP+A/ID/gPqABoAAgAEAAoACgPuAAAD+gACAAID/gPyA/YAFAAAAAIAB - gAGAAIADgP2AAAD+gPwABoD7AASAAAD9APwAAwAAgASAAQD9APqAAYABAAAA/4ACgACAAYABgAAA/4D6 - AAEAAgAAAAOA/QD/AAOA/oD6AAcAAQD5gPwACAABAP6ABAABAP+AAID7AAKA+AAFAAMAAgAAAAOA/gD8 - gP2AAAABgAIA+4D+AASAAQD/gAGAAoD9AASA/gAAgP6A+4AHAPsAAQADAP0A/YD/AAGAAYABgP0A/YD/ - AAKA/gAAAAOA/oAEgP+A/4D9gPyA/4ACAAIA/QACgP4AAQD/gACA/wD+AACA/IABAAQAAIABgAAAAgAB - gPoAAQD5gASAAgADgP8AA4D+gP4A/gAAgP8AAQD+gPyABYACgPyAAQADAAEAAoD8AAMA+4D8AAiA/oAB - AP+A/4D8gACAAoABgP6A/oD7gAGAAYAAgP4AAoAAAAOAAYD+gP8A+4ABAAIAAoD+gAGA/IABAAAA/4AA - gP4AAAD/gAKAAgAAAAKAAYAAgAGA+gABgPqAAoAFgAEAAQACgP+A/YD+AAAAAAABAP0A/AAGAAGA/wAC - AAKA/wACgP2AAQAAgPiAB4D9gACAAYD+APuAAAABgAGAAID/APwA/oAAgAGA/QACgAAAA4AAAP6AAAD7 - gACAAQD/gAEAAgD6AAAAAYD/gP+A/IABgP8AAgABAP+AAoABgP6AA4D5gAAA/QAAAAQABAABgACA/QD+ - AP6A/gACgP8AAID8gAQA/4AAAAGAA4D9gAMA/YD/AAOA+AAEgAAA/wADgP8A+gD/gAMAAIADAP4A/gD9 - AAKAAID9AAKAAIACgAOA+gADgPyA/gAAgAIAAYD/gP8A/gABAP8AAgAAAP8A/gAAgAKAAAACAAGAAQAD - APoA/4D9gPuABwADgAIA/QAEgP2A/YD7AAMAAAADAPkAA4AEgP4A/gAFgP+AAgD+gP6AAgD4AAQAAoD+ - AAEAAID8AP2AA4ABAAIAAAD+APuAAQADgP4AAAACgP4ABgD+gAGA+wD8gAGAAoABAP+AAAD+AAIA/QAB - gP+AAAD+AAAAAwABAAAABQAAgAIA/ID9AP0A/wAGgAGAAQACAAIA/QAAgPwAAQD/AAOA+gACAAWA/oD+ - gAOAAAABAAKA/YABgPoAA4ACAPwABAAAgPwA/QABAAEABYAAgPwA/YD/AAEAAID+gASA/gAFAP8A/4D/ - APsAA4D/AAKAAoD9AP2ABID+AP6AA4D+AP+A/IABgAKAAIACAAIABAD8AP0AAYD6AAOABAADAAKAAYD7 - AP4A/QACgP8AAYD9AAEAAgD/gAKAAYABAP6AAoD8gAQA/ID9gAQA/AADAAGA+wD+gAAAAAAEgAGA+wD9 - gP0AAwD+AACAAwD/AAMA/wADgPsA+wACAAKAAAAAgAAA/IADgPwA/wACgP0A/wD+AAIAAgABAAOA/oAE - APwA/gD/APuABIACgAGAAgABgP4A/4D7gP8AAAACgPsAAYAEAP4A/gAEgAEAAoD/gPyAAoD6gAAABAD+ - gAKA/wD9AP2A/4ABAAOA/4D8AP2A/gADgP8A/4ADAP6ABoD9gAEA+4D9AAGAAwAAgAEA/4D+AAEA/QD/ - gACA/wAAAPwABQACgP+AAwAAAASA+oD/gPyA+4AEgAOAAwABgAAA/YD+gPwA/4ABAAWA/YD4AAMABAAE - AAUA94D+AAOAAoANAPGA7wANgAmABYD6gPAAA4AGAP6AAYADAPYA/oACAAOA9wACgAeAA4ABAPyA/oAB - gP8A/ID8AAiAB4D4gPsABID+gP6ABAD+gP2A+gAEAAKAAgADgAGAAgD7gAIA+4D7AAQAAwAFgAOA+wD+ - gP+A/AACAAGA/QD/gASA/4AAAACAA4AAAASA/YD/gAEA+gADAACA/wAFAP4A/IAAAACAAIAEAPyA/wD9 - gAAAAoD+AAMAAAAGAP8AAgD9APuA/4ABAAOAAQABAP2AAgD/gP6AAQD/gP8A/QABAAaAAAADgP4ABgD+ - gP6A/YD6gAOAAwACgAOAAwD8AAGA/AAAAAAAAID6AAIABAABAP8AA4ABAAOA/4D8AAGA+oABAASA/AAF - gAGA/ID8gAEAAAACAAGA+wD8AACABYD9AACAAYD/gAYA/gD/gPmA/4D/gAOAAAACgP0A/oACAP2AAYAA - APyA/wD/gAOAAAACgAGAAIADgPqA/oD5gAAABAACAAMABoD8gP8A/gD9AP4AAoD9gPoABQAEAP8AAAAE - AP4AAoD+gACA/wD8gP+AAoD/AAUA/QD9AP0A/4ADgASA/AD8gPwA/4AEgPyAA4D8gASAAYACAPoA/QAE - APwAAIAFAACA/IAFAP6A+wD/AAEA/gD8gAGABYD/AAOA/4AEAPwA/gD/APuAA4ABgAOAAoAAAP4AAQD7 - gAOA/4D9AP0ABAD+gASA/4ABAP4ABAD+AP8AAgD4gAIAAwD+AAWA/oD6AAGAAQD/AAMA/YD8gP2AAQAB - AP6AAoAAgAOAAYD+gP8A+4D/AAIAAAAAgAKA/AABgAGA/oABgP0A/oD/gP+ABAD/gAKAAYABAACA+oAA - gPoAAAAFgAGAAIAFgPwAAAD+gP8AAYD/APsA/gADgACAAAABgAKAAgD/gPyAA4D6AP8AAwD/gAAAA4D8 - AP2AAgABgAEA/4D9gPyA/YAEgAKA/YACAACABQD9AAOA+wD8gAEAAgABgAAA/gAAAASA/QAAgP8A/4D+ - AP8AAoACAP8AB4D9gAMA+4D9gP4A/QACgASA/4AEgAAA/oD/gP6AAQD9gAGA+gABgAGABAD/gAGA/4AD - gP4AAID/APoAA4AAAAGA/wACAPyAAoAAAAEAAQD/APyA/QAAgAKAAIAAAAEAAwAEgPgABID8AAAA/QAE - AAQA/YD8gAKAA4D4gAaAAID+gPoAAoAAAAMABAADAPwABgD6gP6A/IAAAAOAAQAIgP8A/gD+gAKA+gAF - gP6A+4D7AAYA/gACAAOABwAAgAGA/YD7AAKA94ACAP6AAQAFAP8A/AACAAMA/oACgP6A+4D9AAGA/gAC - gP8ACAABgASA9AAIgPyA+YD9AAaA/oD+AASA/QAEgP6ABID/AP0A/oD/gAAAAIAFgP6AA4ABAACA+YAE - APkAA4ABgAGAAIABgP4A/gADAAEAAQD/AP4A/IACAAEAAQABgAIAAoADAPqAAYD/gPmABAABAAGA+gAC - gPwAA4ADgACA/wD+AP2AAoD3AASAAYABgP8AAoAEgPwAAQD8AAAA/4ABgAGA/ID/APwABoD7gAMAAYAA - APwABAD7gASAA4D/AAAAAYD8AAAA/wD6gAMABIAAAP+AAgD8AP6ABAD7gASAAID9APeABYACgAMA9wAG - gAiA9QABgAKAAgD6AP6ABAD9gP8A/4D9gAIA+gAHgAMA+QD/gP6A/IACAAyA+gACAP4ABoD7AP4A/4D7 - gAMABID/gPsAAYD8AAQA+gAEgAIA/wD6AAUA/wADgAAA/4AFAAEA/gD5AAUA+4D/AAWAAgD+AP+AAAD7 - AAAA/QAHgACA/YD8gAMA/gAGAP2AAwAAAAKA/oD9gAOA94AFAP8AAQD9gACA/QAAAAOAAAADAP0A+gAA - AAGA/gAEAACAAwAAAASA+QACgP0A/YADAAAAAQD6gAEA/YACgP4AAgAEAP2A/4D+gP+AAIAFgP2AAYD/ - gAGA+oADAPwA/wAFAAAAAID+AAMA+oACAP+AAoACgPsA/AACgP8AA4ACgP8AA4D/gAMA+QAGAPiAAoAD - gACA/AABgP4A/YADAAIAAgABAPqA/IABgP8AA4ABAAEAAoABgAEA/QAEgPeABQD/gAKA/QD+gP6A/gAD - AP6ABAABgPwAAYABgP2ABQABgP8AAQABAP+A/oADAPiABoACAAKA/YACgPwA/gACgP+AA4ACgPqA/QAF - AP4ABYABAAEAAIABAAEA/AAEgPmABID/AAKA+gACgP2A/QAEAAMAAAAAgPwA/wD9APyADAD8AAEA/oAI - APeABAACAPmAAYD+AASA+4D/AP0AA4D+AAGAAwD+APwAAQACAP4ABYD9gAOA/gAEAPsA/4AAAPsABoD/ - AAIA/IACAPyA/oD/gAKAA4D+APoAAgABgP2ABgAAgAKA+wAFAPwA/wAAgP2AAoD8gAMA/QAAgPuAAYAD - AAIAAoD8APoAAoD9gAAABQD+AASA/gAFgPmABID8AP8A/4AAgAKA+gAAgP2AAgAAAAIABQD9AP2AAAAB - gP8ABQD+AAMA/wAAgPwAAgD+gP0ABAABAAOA+oAFAPoAAYD+gAQAAQAAAPmAAgAAgAGAA4ACAAGA/gAD - APuAAwD8gP4ABID/gP8A/wABgPqABQABgAMAAID8APoAAwD9AAOAAwAAAAAAAAAEgPuABQD3AAGAAAAC - gACA/ID/gPwAAwD+AAQAAYD+APwAAYACgACAAoABAACAAAD+gPyAAgD7AAMAAYABAAGAAoD+gPsAAQD+ - gAMAAAABAPkAA4AAAP0ABYAQgBMACQDwgPOACAD8gO0AAQD6gPyA5QAHgDsA4AACgAOAEoD9APqA7wDl - ACYA7YD3ABkA5IACAOKAH4AYgO4A74ALgPYAFAD+ABSA5QAFgAuA7oD7AAOA8gABgA2AEwD6gO0A9oAa - APyA4IAOgBqADAAFgPyA9gAEAASAAQDwAAGA8oAQAP2ADwDqgAuA/oADAP4ADID1ABGA+QD3APmACgD5 - gAQABoD+AAoAAwD5gPyA+YD+AO+A/4DOgBKAHYDdAAIA8wANgAAAEIDKgCQA5IAdgPCA2IA8AMYABAAG - gPCAJoAlgO2A1QD9ABEAIIDAgBIAOoDKgOQADIANACmAGwD5gN6A5AAPgCCA+AD1gAiA4YAmgAoACoAC - gPWACoD0AAgA+IABAAGACoD3APSAEoDygBKAAQDxgA6A8AAAgAAA/YD7AAiAB4AGgPwA9wAHAPmAAgAA - AAmA/QD5gA6A+wD4AAYA+gADgP4A/AD+gAGABYAEgAkA+IANAP2AAYAIAPYA/AAOAPUA/wD4AA0ABQAK - AOcAEoAJAP4AAQD2gP2ADAD1gASAC4D5gAkAAAD+APoAAYAIgP6A9oAHAAEAAIABgP8ABQD6gAOAAoD6 - AAKA/gAAAAOAB4D0AASAAAD+APyADIAAgP+A/AD8gAgA+oABgPyA+4AGAP4A+YAQgPKABYD+AAiA/QDw - ABGACQDwgAKA/AAQAP6A+4D8gPuACIAFgPaA+AAEgAMAAwD6AACACQAHgPUA+QAIgAGA/oD4AAEABoAA - AP0AAgD6gPsABIAFAP4A+wAAgAQAAwD0APwABAAMAAKA+AABAP4ABoD+gPeA/4ACgAGA/IAAAAIA/4AA - gASAAIAAAP+A/wD7AASAAwADgP+A/oD7gAAA/QABAACA/oABgAMAAQD+gP0A/wADAAAAAoABAP8A/YAA - gAIAAAD+gAIA/4D9AAEA/YACgPyA/YAEAAGAAQD/gP8AAoACgP0A/QACAACA/wACAAGAAQD9gP4AAIAA - AAEAAIABgP2AAAABgPsABAABAAAAAgD9gP6AAgABAAUA/4AAgP2A+wAAgP0ABQACAPwAAQD+AP0AAIAB - gP6AAAD+AAaAAQAAAP0AAQD/AAMA/AD/gAGA/YD/gPyA+gD6gAOABwD5AAQAC4AFgPuA/QAAgACA9YD7 - gAYAAoD+gAGA/4ACgPsA/wD5gAAABoAEgP+A/wD9gP+A/wAKAP8A+gADAACA+4D8gAKABIACAP6A/gAC - gPuAAAD7AAMAA4D/AAGAAoD/APqA/4D+gAMA/QABAAUAAYADgPsA/QADgP0A/4ADAP8AAYD+AP8AA4AA - gP+A/4D+gAKA/oD+AAUA/oD7gP+A/oABAP2A/4AEgAGAAoD/AAIAAQD+gAAAAwABAPyA/gAAgAGA/IAB - AAUA/4ACAAEA/wD/AAAA/gACAAAA/wABgP2A/wD/gP6AAIAAAAEAAYD9gAOA/QABAAEAAQABgPuAAYAB - gPsA/wABAP+A/wD/AP8A/wAAAAMAAYD+AAGAAYD/gAEA/QD/gP8AAIAAAP8AAID9AACAAIACgAAA/oAD - AACAAYD/AACAAQD/AP6A/gAAgP6AAYACAAMA/wACgACA/YAAAP8A/gD/AP+A/4D+AAAAAQAAgP8A/4AC - gP8AAAAAgP4AAID+gP+AAAD/AACAAID/gP6A/4AAgACA/oABAAGA/4ABAACAAAAAAAIA/oACAP4AAAAC - AP8AAgABgACAAID/gP8AAQAAAAIAAID/AAKAAIAAgAEA/4AAgP+A/oABgP8AAQAAgAGAAYAAAP8AAYD/ - AP8A/wD/gAEA/4D/AAGA/4AAgAAAAID/AACA/4D/AAEAAAD/AAAAAAAAAP8AAYD/AP8AAQD/gP+AAAAB - gP+AAID/gP8A/wABgP8AAID/AP4AAYD/AACAAYD/AAAAAIAAAACAAID/AAAAAQAAAAAA/wAAAACA/wAA - AACAAAABgP+A/wAAAP8AAAAAAP8AAYD/gP+A/4D/AACA/4AAAACAAID/AACAAAD/gP8A/wAAgP8AAAAA - AAAAAID/gAAAAIAAgAAAAAAAgP+A/wABgP8AAYD/AAAAAYAAgACAAID/AACAAIAAAAGA/4AAgACAAIAA - gAAAAAAAgACAAIAAgAAAAAABgP+AAAABgAAAAAAAgAAAAID/gP8AAQAAgP8AAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAID/gACA/4AAgP+AAAAAAAAAAIAAgP8AAAAAAAAAAID/gAAAAID/ - gAAAAID/gAAAAID/gAAAAAAAAAAAAID/gAAAAAAAAAAAAID/gACA/wABAP+AAAAAAAAAAAAAgAAAAID/ - AACAAAAAgP8AAAAAAAAAAAAAgP+AAAAAAAAAAAAAAAAAAAAAAAAAAID/gAAAAAAA - - - \ No newline at end of file diff --git a/src/Greenshot/Startup.cs b/src/Greenshot/Startup.cs index c21beefa1..8f8e770d5 100644 --- a/src/Greenshot/Startup.cs +++ b/src/Greenshot/Startup.cs @@ -32,8 +32,8 @@ using Autofac.Features.OwnedInstances; using Caliburn.Micro; using Dapplo.Addons.Bootstrapper; using Dapplo.CaliburnMicro.Dapp; -using Dapplo.Ini.Converters; -using Dapplo.Language; +using Dapplo.Config.Ini.Converters; +using Dapplo.Config.Language; using Dapplo.Log; using Dapplo.Log.Loggers; using Dapplo.Utils; @@ -42,6 +42,7 @@ using Dapplo.Windows.Dpi.Forms; using Dapplo.Windows.Kernel32; using Greenshot.Addons; using Greenshot.Addons.Core; +using Greenshot.Addons.Resources; using Greenshot.Ui.Misc.ViewModels; namespace Greenshot @@ -65,15 +66,17 @@ namespace Greenshot //LogSettings.ExceptionToStacktrace = exception => exception.ToStringDemystified(); #if DEBUG // Initialize a debug logger for Dapplo packages - LogSettings.RegisterDefaultLogger(LogLevels.Debug); + LogSettings.RegisterDefaultLogger(LogLevels.Verbose); #endif var applicationConfig = ApplicationConfigBuilder .Create() .WithApplicationName("Greenshot") .WithMutex("F48E86D3-E34C-4DB7-8F8F-9A0EA55F0D08") - .WithConfigSupport() .WithCaliburnMicro() .WithoutCopyOfEmbeddedAssemblies() +#if !NETCOREAPP3_0 + .WithoutCopyOfAssembliesToProbingPath() +#endif .WithAssemblyPatterns("Greenshot.Addon*") .BuildApplicationConfig(); @@ -92,7 +95,7 @@ namespace Greenshot return -1; } - RegisterErrorHandlers(application); + //RegisterErrorHandlers(application); application.Run(); return 0; @@ -171,7 +174,9 @@ namespace Greenshot // A dirty fix to make sure the messagebox is visible as a Greenshot window on the taskbar using (var multiInstanceForm = new DpiAwareForm { - Icon = GreenshotResources.GetGreenshotIcon(), + + // TODO: Fix a problem that in this case instance is null + Icon = GreenshotResources.Instance.GetGreenshotIcon(), ShowInTaskbar = true, MaximizeBox = false, MinimizeBox = false, diff --git a/src/Greenshot/Ui/Configuration/ViewModels/UiConfigViewModel.cs b/src/Greenshot/Ui/Configuration/ViewModels/UiConfigViewModel.cs index 53dbf409c..676016190 100644 --- a/src/Greenshot/Ui/Configuration/ViewModels/UiConfigViewModel.cs +++ b/src/Greenshot/Ui/Configuration/ViewModels/UiConfigViewModel.cs @@ -30,7 +30,6 @@ using Caliburn.Micro; using Dapplo.CaliburnMicro.Configuration; using Dapplo.CaliburnMicro.Extensions; using Dapplo.CaliburnMicro.Metro; -using Dapplo.Language; using Dapplo.Utils.Extensions; using Greenshot.Addons; using Greenshot.Addons.Core; @@ -60,13 +59,15 @@ namespace Greenshot.Ui.Configuration.ViewModels /// Used from the View /// // ReSharper disable once UnusedMember.Global - public IDictionary AvailableLanguages => LanguageLoader.Current.AvailableLanguages; + // TODO: Fix + public IDictionary AvailableLanguages => new Dictionary();//LanguageLoader.Current.AvailableLanguages; /// /// Can the login button be pressed? /// + // TODO: Fix public bool CanChangeLanguage - => !string.IsNullOrWhiteSpace(CoreConfiguration.Language) && CoreConfiguration.Language != LanguageLoader.Current.CurrentLanguage; + => !string.IsNullOrWhiteSpace(CoreConfiguration.Language); // && CoreConfiguration.Language != LanguageLoader.Current.CurrentLanguage; public IMetroConfiguration MetroConfiguration { get; } @@ -98,11 +99,11 @@ namespace Greenshot.Ui.Configuration.ViewModels { // Manually commit MetroConfiguration.CommitTransaction(); - MetroWindowManager.ChangeTheme(MetroConfiguration.Theme); - MetroWindowManager.ChangeThemeAccent(MetroConfiguration.ThemeAccent); + MetroWindowManager.ChangeTheme(MetroConfiguration.Theme, MetroConfiguration.ThemeAccent); CoreConfiguration.CommitTransaction(); - Execute.OnUIThread(async () => { await LanguageLoader.Current.ChangeLanguageAsync(CoreConfiguration.Language).ConfigureAwait(false); }); + // TODO: Fix + //Execute.OnUIThread(async () => { await LanguageLoader.Current.ChangeLanguageAsync(CoreConfiguration.Language).ConfigureAwait(false); }); } diff --git a/src/Greenshot/Ui/Configuration/Views/CaptureConfigView.xaml b/src/Greenshot/Ui/Configuration/Views/CaptureConfigView.xaml index ff9824bd6..76b551a8f 100644 --- a/src/Greenshot/Ui/Configuration/Views/CaptureConfigView.xaml +++ b/src/Greenshot/Ui/Configuration/Views/CaptureConfigView.xaml @@ -10,7 +10,7 @@ d:DataContext="{d:DesignInstance viewModels:CaptureConfigViewModel,IsDesignTimeCreatable=False}" > - + @@ -24,7 +24,7 @@ - + diff --git a/src/Greenshot/Ui/Notifications/ViewModels/UpdateNotificationViewModel.cs b/src/Greenshot/Ui/Notifications/ViewModels/UpdateNotificationViewModel.cs index 39ce40c0a..53799eea1 100644 --- a/src/Greenshot/Ui/Notifications/ViewModels/UpdateNotificationViewModel.cs +++ b/src/Greenshot/Ui/Notifications/ViewModels/UpdateNotificationViewModel.cs @@ -28,6 +28,7 @@ using Dapplo.CaliburnMicro.Toasts.ViewModels; using Dapplo.Log; using Greenshot.Addons; using Greenshot.Addons.Core; +using Greenshot.Addons.Resources; namespace Greenshot.Ui.Notifications.ViewModels { @@ -50,7 +51,7 @@ namespace Greenshot.Ui.Notifications.ViewModels public string Message => string.Format(_greenshotLanguage.UpdateFound, LatestVersion); - public ImageSource GreenshotIcon => GreenshotResources.GreenshotIconAsBitmapSource(); + public ImageSource GreenshotIcon => GreenshotResources.Instance.GreenshotIconAsBitmapSource(); /// /// Handle the click diff --git a/src/Greenshot/packages.config b/src/Greenshot/packages.config deleted file mode 100644 index bb052a7a9..000000000 --- a/src/Greenshot/packages.config +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot/tools/7zip/7za.exe b/src/Greenshot/tools/7zip/7za.exe deleted file mode 100644 index 12b9499a2..000000000 Binary files a/src/Greenshot/tools/7zip/7za.exe and /dev/null differ diff --git a/src/Greenshot/tools/ILMerge/ILMerge License.rtf b/src/Greenshot/tools/ILMerge/ILMerge License.rtf deleted file mode 100644 index 41f5b6ada..000000000 --- a/src/Greenshot/tools/ILMerge/ILMerge License.rtf +++ /dev/null @@ -1,104 +0,0 @@ -{\rtf1\ansi\ansicpg1252\uc1\deff0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f37\fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Tahoma;} -{\f39\froman\fcharset0\fprq2{\*\panose 02040602050305030304}Book Antiqua;}{\f40\fswiss\fcharset0\fprq2{\*\panose 020b0706030402020204}Franklin Gothic Demi Cond;}{\f41\fswiss\fcharset0\fprq2{\*\panose 020b0503020102020204}Franklin Gothic Book;} -{\f42\froman\fcharset238\fprq2 Times New Roman CE;}{\f43\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f45\froman\fcharset161\fprq2 Times New Roman Greek;}{\f46\froman\fcharset162\fprq2 Times New Roman Tur;} -{\f47\froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f48\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f49\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f50\froman\fcharset163\fprq2 Times New Roman (Vietnamese);} -{\f412\fswiss\fcharset238\fprq2 Tahoma CE;}{\f413\fswiss\fcharset204\fprq2 Tahoma Cyr;}{\f415\fswiss\fcharset161\fprq2 Tahoma Greek;}{\f416\fswiss\fcharset162\fprq2 Tahoma Tur;}{\f417\fswiss\fcharset177\fprq2 Tahoma (Hebrew);} -{\f418\fswiss\fcharset178\fprq2 Tahoma (Arabic);}{\f419\fswiss\fcharset186\fprq2 Tahoma Baltic;}{\f420\fswiss\fcharset163\fprq2 Tahoma (Vietnamese);}{\f421\fswiss\fcharset222\fprq2 Tahoma (Thai);}{\f432\froman\fcharset238\fprq2 Book Antiqua CE;} -{\f433\froman\fcharset204\fprq2 Book Antiqua Cyr;}{\f435\froman\fcharset161\fprq2 Book Antiqua Greek;}{\f436\froman\fcharset162\fprq2 Book Antiqua Tur;}{\f439\froman\fcharset186\fprq2 Book Antiqua Baltic;} -{\f442\fswiss\fcharset238\fprq2 Franklin Gothic Demi Cond CE;}{\f443\fswiss\fcharset204\fprq2 Franklin Gothic Demi Cond Cyr;}{\f445\fswiss\fcharset161\fprq2 Franklin Gothic Demi Cond Greek;}{\f446\fswiss\fcharset162\fprq2 Franklin Gothic Demi Cond Tur;} -{\f449\fswiss\fcharset186\fprq2 Franklin Gothic Demi Cond Baltic;}{\f452\fswiss\fcharset238\fprq2 Franklin Gothic Book CE;}{\f453\fswiss\fcharset204\fprq2 Franklin Gothic Book Cyr;}{\f455\fswiss\fcharset161\fprq2 Franklin Gothic Book Greek;} -{\f456\fswiss\fcharset162\fprq2 Franklin Gothic Book Tur;}{\f459\fswiss\fcharset186\fprq2 Franklin Gothic Book Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255; -\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;} -{\stylesheet{\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 Normal;}{\*\cs10 \additive \ssemihidden Default Paragraph Font;}{\* -\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv -\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1024\langfe1024\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden Normal Table;}{\s15\ql \fi-274\li274\ri0\sb120\sl460\slmult0 -\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin274\itap0 \f40\fs44\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext15 \styrsid9786739 1sectionhead;}{\s16\ql \li0\ri0\sb120\sl200\slmult0 -\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \caps\f40\fs16\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext16 \styrsid9786739 4laparahead;}{\s17\ql \li0\ri-18\sb120\sl240\slmult0 -\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-18\lin0\itap0 \f40\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext17 \styrsid9786739 2lasubhead;}{\s18\ql \fi-187\li187\ri0\sb60\sl180\slmult0 -\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin187\itap0 \f41\fs16\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext18 \styrsid9786739 3cnumbered;}{\s19\ql \fi-340\li624\ri0\sb60\sl160\slmult0 -\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin624\itap0 \f41\fs14\cf1\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext19 \styrsid9786739 3inumbered2ndlevel;}{\s20\ql \li0\ri0\sb240\sl240\slmult0 -\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f40\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext20 \styrsid9786739 2afrenchsubhead;}{\s21\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 -\cbpat9 \f37\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext21 \ssemihidden \styrsid7154712 Document Map;}}{\*\latentstyles\lsdstimax156\lsdlockeddef0}{\*\pgptbl {\pgp\ipgp2\itap0\li0\ri0\sb0\sa0\brdrt\brdrs\brdrw20 }{\pgp\ipgp0 -\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid2099452\rsid4207571\rsid5465292\rsid5510097\rsid5510644\rsid7154712\rsid7241305\rsid7672529\rsid7735936\rsid9179139\rsid9786739\rsid10440675\rsid11303133\rsid13130884\rsid14028235\rsid14100361\rsid14113652 -\rsid15276140\rsid16213514}{\*\generator Microsoft Word 11.0.6359;}{\info{\title ILMerge EULA}{\author Ken Leppert}{\operator mbarnett}{\creatim\yr2005\mo3\dy16\hr15\min43}{\revtim\yr2005\mo3\dy16\hr15\min43}{\printim\yr2004\mo4\dy30\hr13\min9}{\version2} -{\edmins0}{\nofpages3}{\nofwords1188}{\nofchars6775}{\*\company Microsoft Corporation}{\nofcharsws7948}{\vern24703}}\widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180 -\dghorigin1800\dgvorigin1440\dghshow1\dgvshow1\jexpand\viewkind1\viewscale68\viewzk2\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel -\wrppunct\asianbrkrule\rsidroot9786739\newtblstyruls\nogrowautofit \fet0\sectd \linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang -{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang -{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain -\s15\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0\pararsid7154712 \f40\fs44\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\b\f39\fs28\insrsid9786739 MICROSOFT }{ -\b\f39\fs28\insrsid5465292 ILMerge}{\insrsid9786739 -\par }{\b\f39\fs22\insrsid9786739 END-USER LICENSE AGREEMENT FOR MICROSOFT SOFTWARE}{\insrsid9786739 -\par }\pard\plain \s17\qj \li0\ri-17\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-17\lin0\itap0\pararsid14100361 \f40\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\b\f39\insrsid9786739 IMPORTANT\emdash -READ CAREFULLY: }{\f39\insrsid9786739 This End-User License Agreement (\'93EULA\'94) is a legal agreement between you (either an individual or a single entity) and Microsoft Corporation (\'93Microsoft\'94) for th -e Microsoft software that accompanies this EULA, which includes computer software and may include associated media, printed materials, \'93online\'94 or electronic documentation, and Internet-based services (\'93Software\'94).\~ - An amendment or addendum to this EULA may accompany the Software.\~ }{\b\f39\insrsid9786739 -YOU AGREE TO BE BOUND BY THE TERMS OF THIS EULA BY INSTALLING, COPYING, OR OTHERWISE USING THE SOFTWARE. IF YOU DO NOT AGREE, DO NOT INSTALL, COPY, OR USE THE SOFTWARE.}{\insrsid9786739 -\par }\pard\plain \qj \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14100361 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f39\fs22\insrsid9786739 1.\~\~\~\~\~\~\~\~ }{ -\b\f39\fs22\insrsid9786739 GRANTS OF LICENSE}{\f39\fs22\insrsid9786739 . Microsoft grants you the rights described in this EULA provided that you comply with all terms and conditions of this EULA.\~ }{\insrsid9786739 -\par }\pard\plain \s19\qj \fi720\li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14100361 \f41\fs14\cf1\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f39\fs22\cf0\insrsid9786739 1.1\~\~\~\~\~\~ }{ -\b\i\f39\fs22\cf0\insrsid9786739 License Grant}{\f39\fs22\cf0\insrsid9786739 . Microsoft grants to you a personal, nonexclusive, nontransferable, limited license to }{\f39\fs22\insrsid9786739 install and use a reasonable number of copies of -the Software on computers residing on your premises }{\f39\fs22\cf0\insrsid9786739 for the purposes of designing, developing, and testing, your software product(s), provided that you are the only individual using the Software.\~ }{\insrsid9786739 -\par }\pard\plain \s18\qj \fi720\li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14100361 \f41\fs16\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f39\fs22\insrsid9786739 1.2\~\~\~\~\~\~ }{ -\b\i\f39\fs22\insrsid9786739 Documentation}{\f39\fs22\insrsid9786739 .}{\b\f39\fs22\insrsid9786739 \~ }{\f39\fs22\insrsid9786739 You may make and use a reasonabl -e number of copies of any documentation, provided that such copies shall be used only for your personal purposes and are not to be republished or distributed (either in hard copy or electronic form) beyond your premises.}{\insrsid9786739 -\par }\pard \s18\qj \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14100361 {\f39\fs22\insrsid9786739 2.\~\~\~\~\~\~\~\~ }{\b\f39\fs22\insrsid9786739 RESERVATION OF RIGHTS AND OWNERSHIP.\~ }{ -\f39\fs22\insrsid9786739 The Software is licensed as a single product.\~ Its component parts may not be separated. Microsoft reserves all rights not expressly granted to you in this EULA.\~ - The Software is protected by copyright and other intellectual property laws and treaties}{\f39\fs22\insrsid14028235 , and}{\f39\fs22\insrsid9786739 Microsoft }{\f39\fs22\insrsid14028235 (}{\f39\fs22\insrsid9786739 or its suppliers}{ -\f39\fs22\insrsid14028235 , where applicable)}{\f39\fs22\insrsid9786739 own }{\f39\fs22\insrsid14028235 all right, }{\f39\fs22\insrsid9786739 title, }{\f39\fs22\insrsid14028235 and interest in all }{\f39\fs22\insrsid9786739 -intellectual property rights in the Software.\~ }{\b\f39\fs22\insrsid9786739 The Software is licensed, not sold.}{\insrsid9786739 -\par }\pard\plain \s19\qj \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14100361 \f41\fs14\cf1\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f39\fs22\cf0\insrsid9786739 3.\~\~\~\~\~\~\~\~ }{ -\b\f39\fs22\cf0\insrsid9786739 LIMITATIONS ON REVERSE ENGINEERING, DECOMPILATION, AND DISASSEMBLY}{\b\i\f39\fs22\cf0\insrsid9786739 .}{\f39\fs22\cf0\insrsid9786739 \~ - You may not reverse engineer, decompile, or disassemble the Software, except and only to the extent that such activity is expressly permitted by applicable law notwithstanding this limitation.}{\insrsid9786739 -\par }\pard\plain \s18\qj \li0\ri0\sb100\sa100\sbauto1\saauto1\sl220\slmult0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14100361 \f41\fs16\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f39\fs22\insrsid9786739 4.\~\~\~\~\~\~\~\~ -}{\b\f39\fs22\insrsid9786739 NO RENTAL/COMMERCIAL HOSTING.}{\b\i\f39\fs22\insrsid9786739 }{\f39\fs22\insrsid9786739 You may not rent, lease, lend or provide commercial hosting services with the Software.}{\insrsid9786739 -\par }\pard\plain \s19\qj \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14100361 \f41\fs14\cf1\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f39\fs22\cf0\insrsid9786739 5.\~\~\~\~\~\~\~\~ }{ -\b\f39\fs22\cf0\insrsid9786739 NO SOFTWARE TRANSFER.\~ }{\f39\fs22\cf0\insrsid9786739 You may not assign or otherwise transfer the SOFTWARE or any of your rights hereunder to any third party.}{\insrsid9786739 -\par }{\f39\fs22\cf0\insrsid9786739 6.\~\~\~\~\~\~\~\~ }{\b\f39\fs22\cf0\insrsid9786739 CONSENT TO USE OF DATA.\~ }{\f39\fs22\cf0\insrsid9786739 You - agree that Microsoft and its affiliates may collect and use technical information gathered as part of the product support services provided to you, if any, related to the Software.\~ - Microsoft may use this information solely to improve our products or to provide customized services or technologies to you and will not disclose this information in a form that personally identifies you.\~\~ }{\insrsid9786739 -\par }{\f39\fs22\cf0\insrsid5510644 7}{\f39\fs22\cf0\insrsid9786739 .\~\~\~\~\~\~\~\~ }{\b\f39\fs22\cf0\insrsid9786739 ADDITIONAL SOFTWARE/SERVICES.\~ }{\f39\fs22\insrsid9786739 Microsoft is not obligated to provide maintenance, technical supplements}{ -\f39\fs22\insrsid14028235 , updates,}{\f39\fs22\insrsid9786739 or other support to you for the Software licensed under this EULA. }{\f39\fs22\insrsid7241305 }{\f39\fs22\insrsid9786739 In the event that Microsoft does provide such supplements or updates} -{\b\f39\fs22\insrsid9786739 , }{\f39\fs22\insrsid9786739 this EULA applies to such updates, supplements, or add-on components of the Software that Microsoft may provide to -you or make available to you after the date you obtain your initial copy of the Software, unless we provide other terms along with the update, supplement, or add-on component}{\f39\fs22\cf0\insrsid9786739 .\~ - Microsoft reserves the right to discontinue any Internet-based services provided to you or made available to you through the use of the Software.\~ }{\insrsid9786739 -\par }\pard\plain \s18\qj \li0\ri0\sb100\sa100\sbauto1\saauto1\sl220\slmult0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14100361 \f41\fs16\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f39\fs22\insrsid5510644 8}{ -\f39\fs22\insrsid9786739 .\~\~\~\~\~\~\~\~ }{\b\f39\fs22\insrsid9786739 EXPORT RESTRICTIONS}{\f39\fs22\insrsid9786739 .\~ }{\f39\fs22\cgrid0\insrsid9786739 You acknowledge that the Software is subject to U.S. export jurisdiction.\~ - You agree to comply with all applicable international and national laws that apply to the Software, including the U.S. Export Administration Regulations, as well as end-user, end-use, and destination restrictions issued by U.S. and other governments.\~\~ - For additional information see }{\f39\fs22\ul\cgrid0\insrsid9786739 http://www.microsoft.com/exporting/}{\f39\fs22\cgrid0\insrsid9786739 .}{\insrsid9786739 -\par }\pard\plain \s19\qj \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14100361 \f41\fs14\cf1\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f39\fs22\cf0\insrsid14113652 9}{ -\f39\fs22\cf0\insrsid9786739 .\~\~\~\~\~\~ }{\b\f39\fs22\cf0\insrsid9786739 TERMINATION.}{\f39\fs22\cf0\insrsid9786739 \~ Without prejudice to any other rights, Microsoft may terminate this EULA if you fail to comply with }{\f39\fs22\cf0\insrsid7241305 -any }{\f39\fs22\cf0\insrsid9786739 term}{\f39\fs22\cf0\insrsid7241305 or}{\f39\fs22\cf0\insrsid9786739 condition of this EULA. }{\f39\fs22\cf0\insrsid7241305 }{\f39\fs22\cf0\insrsid9786739 -In such event, you must destroy all copies of the Software and all of its component parts.}{\insrsid9786739 -\par }\pard\plain \s18\qj \li0\ri0\sb100\sa100\sbauto1\saauto1\sl220\slmult0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14100361 \f41\fs16\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f39\fs22\insrsid9786739 1}{ -\f39\fs22\insrsid14113652 0}{\f39\fs22\insrsid9786739 .\~\~\~\~\~\~ }{\b\f39\fs22\ul\insrsid9786739 DISCLAIMER OF WARRANTIES}{\b\f39\fs22\insrsid9786739 .\~ - TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, MICROSOFT AND ITS SUPPLIERS PROVIDE THE SOFTWARE}{\f39\fs22\insrsid9786739 }{\b\f39\fs22\insrsid9786739 AND SUPPORT SERVICES (IF ANY) }{\b\i\f39\fs22\insrsid9786739 AS IS AND WITH ALL FAULTS}{ -\b\f39\fs22\insrsid9786739 , AND HEREBY DISCLAIM ALL OTHER WARRANTIES AND CONDITIONS, WHETHER EXPRESS, IMPLIED - OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE, OF RELIABILITY OR AVAILABILITY, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF WORKMANLI -K -E EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE, ALL WITH REGARD TO THE SOFTWARE, AND THE PROVISION OF OR FAILURE TO PROVIDE SUPPORT OR OTHER SERVICES, INFORMATION, SOFTWARE, AND RELATED CONTENT THROUGH THE SOFTWARE OR OTHERWISE ARISING OUT OF THE - USE OF THE SOFTWARE.\~ ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT WITH REGARD TO THE SOFTWARE.}{\insrsid9786739 -\par }{\f39\fs22\insrsid9786739 1}{\f39\fs22\insrsid14113652 1}{\f39\fs22\insrsid9786739 .}{\b\f39\fs22\insrsid9786739 \~\~\~\~\~\~ }{\b\f39\fs22\ul\insrsid9786739 EXCLUSION OF INCIDENTAL, CONSEQUENTIAL AND CERTAIN OTHER DAMAGES}{\b\f39\fs22\insrsid9786739 .\~ - }{\b\caps\f39\fs22\insrsid9786739 -To the maximum extent permitted by applicable law, in no event shall Microsoft or its suppliers be liable for any special, incidental, punitive, indirect, or consequential damages whatsoever (including, but not limited to, damages for loss of profit -s, LOSS OF DATA, or confidential or other information}{\b\f39\fs22\insrsid9786739 , }{\b\caps\f39\fs22\insrsid9786739 -for business interruption, for personal injury, for loss of privacy, for failure to meet any duty including of good faith or of reasonable care, for negligence, and}{\b\f39\fs22\insrsid9786739 }{\b\caps\f39\fs22\insrsid9786739 -for any other pecuniary or other los -s whatsoever) arising out of or in any way related to the use of or inability to use the SOFTWARE, the provision of or failure to provide Support OR OTHER Services, informatIon, software, and related CONTENT through the software or otherwise arising out o -f - the use of the software, or otherwise under or in connection with any provision of this EULA, even in the event of the fault, tort (including negligence), misrepresentation, strict liability, breach of contract or breach of warranty of Microsoft or any s -upplier, and even if Microsoft or any supplier has been advised of the possibility of such damages. }{\insrsid9786739 -\par }{\f39\fs22\insrsid9786739 1}{\f39\fs22\insrsid14113652 2}{\f39\fs22\insrsid9786739 .}{\b\f39\fs22\insrsid9786739 \~\~\~\~\~\~ }{\b\f39\fs22\ul\insrsid9786739 LIMITATION OF LIABILITY AND REMEDIES}{\b\f39\fs22\insrsid9786739 -. NOTWITHSTANDING ANY DAMAGES THAT YOU MIGHT INCUR FOR ANY REASON WHATSOEVER (INCLUDING, WITHOUT LIMITATION, A -LL DAMAGES REFERENCED HEREIN AND ALL DIRECT OR GENERAL DAMAGES IN CONTRACT OR ANYTHING ELSE), THE ENTIRE LIABILITY OF MICROSOFT AND ANY OF ITS SUPPLIERS UNDER ANY PROVISION OF THIS EULA AND YOUR EXCLUSIVE REMEDY HEREUNDER SHALL BE LIMITED TO THE GREATER O -F THE ACTUAL DAMAGES YOU INCUR IN REASONABLE RELIANCE ON THE SOFTWARE UP TO THE AMOUNT ACTUALLY PAID BY YOU FOR THE SOFTWARE}{\f39\fs22\insrsid9786739 }{\b\f39\fs22\insrsid9786739 OR US$5.00.\~ - THE FOREGOING LIMITATIONS, EXCLUSIONS AND DISCLAIMERS SHALL APPLY TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, EVEN IF ANY REMEDY FAILS ITS ESSENTIAL PURPOSE.}{\insrsid9786739 -\par }{\f39\fs22\insrsid9786739 1}{\f39\fs22\insrsid14113652 3}{\f39\fs22\insrsid9786739 .\~\~\~\~\~\~ }{\b\f39\fs22\insrsid9786739 APPLICABLE LAW.\~ }{\f39\fs22\insrsid7735936 T}{\f39\fs22\insrsid9786739 his EULA }{\f39\fs22\insrsid7735936 -shall be construed under and }{\f39\fs22\insrsid9786739 governed by the laws of the State of Washington}{\f39\fs22\insrsid7735936 , without regard to conflicts of law principles}{\f39\fs22\insrsid9786739 .\~ }{\insrsid9786739 -\par }\pard\plain \s20\qj \li0\ri0\sb100\sa100\sbauto1\saauto1\sl240\slmult0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14100361 \f40\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f39\insrsid9786739 1}{\f39\insrsid14113652 -4}{\f39\insrsid9786739 .\~\~\~\~ }{\b\f39\insrsid9786739 ENTIRE AGREEMENT; SEVERABILITY.\~ }{\f39\insrsid9786739 This -EULA (including any addendum or amendment to this EULA which is included with the Software) are the entire agreement between you and Microsoft relating to the Software and the support services (if any) and they supersede all prior or contemporaneous oral -or written communications,\~proposals and representations with respect to the Software or any other subject matter covered by this EULA.\~ - If any provision of this EULA is held to be void, invalid, unenforceable or illegal, the other provisions shall continue in full force and effect}{\insrsid9786739 -\par }\pard\plain \qj \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14100361 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\insrsid10440675 -\par }} \ No newline at end of file diff --git a/src/Greenshot/tools/ILMerge/ILMerge.doc b/src/Greenshot/tools/ILMerge/ILMerge.doc deleted file mode 100644 index f3ac50149..000000000 Binary files a/src/Greenshot/tools/ILMerge/ILMerge.doc and /dev/null differ diff --git a/src/Greenshot/tools/ILMerge/ILMerge.exe b/src/Greenshot/tools/ILMerge/ILMerge.exe deleted file mode 100644 index bdd546a86..000000000 Binary files a/src/Greenshot/tools/ILMerge/ILMerge.exe and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/7zip/7z.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/7zip/7z.dll deleted file mode 100644 index 48bd32f24..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/7zip/7z.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/7zip/7z.exe b/src/Greenshot/tools/PortableApps.comInstaller/App/7zip/7z.exe deleted file mode 100644 index 5ec90671e..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/7zip/7z.exe and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/AppInfo/appicon.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/AppInfo/appicon.ico deleted file mode 100644 index d0981620d..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/AppInfo/appicon.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/AppInfo/appicon_128.png b/src/Greenshot/tools/PortableApps.comInstaller/App/AppInfo/appicon_128.png deleted file mode 100644 index b7fcd1d8f..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/AppInfo/appicon_128.png and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/AppInfo/appicon_16.png b/src/Greenshot/tools/PortableApps.comInstaller/App/AppInfo/appicon_16.png deleted file mode 100644 index 3a7151ffe..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/AppInfo/appicon_16.png and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/AppInfo/appicon_32.png b/src/Greenshot/tools/PortableApps.comInstaller/App/AppInfo/appicon_32.png deleted file mode 100644 index 5830fd50a..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/AppInfo/appicon_32.png and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/AppInfo/appinfo.ini b/src/Greenshot/tools/PortableApps.comInstaller/App/AppInfo/appinfo.ini deleted file mode 100644 index 694557244..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/AppInfo/appinfo.ini +++ /dev/null @@ -1,29 +0,0 @@ -[Format] -Type=PortableApps.comFormat -Version=3.0 - -[Details] -Name=PortableApps.com Installer -AppID=PortableApps.comInstaller -Publisher=PortableApps.com -Homepage=PortableApps.com/go/PortableApps.comInstaller -Category=Development -Description=PortableApps.com Format installer creator -Language=Multilingual - -[License] -Shareable=true -OpenSource=true -Freeware=true -CommercialUse=true - -[Version] -PackageVersion=3.0.6.0 -DisplayVersion=3.0.6 - -[Control] -Icons=1 -Start=PortableApps.comInstaller.exe - -[Associations] -SendTo=true \ No newline at end of file diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/DefaultData/settings.ini b/src/Greenshot/tools/PortableApps.comInstaller/App/DefaultData/settings.ini deleted file mode 100644 index 8a4e3981d..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/DefaultData/settings.ini +++ /dev/null @@ -1 +0,0 @@ -[InstallerWizard] diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/bin/MakeHeader.exe b/src/Greenshot/tools/PortableApps.comInstaller/App/bin/MakeHeader.exe deleted file mode 100644 index dc8ec8e7e..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/bin/MakeHeader.exe and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/default_bits/PortableApps.comInstallerHeader.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/default_bits/PortableApps.comInstallerHeader.bmp deleted file mode 100644 index c592db187..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/default_bits/PortableApps.comInstallerHeader.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/default_bits/PortableApps.comInstallerHeaderRTL.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/default_bits/PortableApps.comInstallerHeaderRTL.bmp deleted file mode 100644 index d5eef3fe1..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/default_bits/PortableApps.comInstallerHeaderRTL.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/default_bits/appicon.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/default_bits/appicon.ico deleted file mode 100644 index d17e7fb97..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/default_bits/appicon.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/default_bits/appicon_16.png b/src/Greenshot/tools/PortableApps.comInstaller/App/default_bits/appicon_16.png deleted file mode 100644 index 31a96bf01..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/default_bits/appicon_16.png and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/default_bits/appicon_32.png b/src/Greenshot/tools/PortableApps.comInstaller/App/default_bits/appicon_32.png deleted file mode 100644 index 5c742d60d..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/default_bits/appicon_32.png and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/default_bits/appinfo.ini b/src/Greenshot/tools/PortableApps.comInstaller/App/default_bits/appinfo.ini deleted file mode 100644 index 844686deb..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/default_bits/appinfo.ini +++ /dev/null @@ -1,12 +0,0 @@ -[Format] -Type=PortableApps.comFormat -Version=X.XX - -[Details] - -[License] - -[Version] - -[Control] -Icons=1 \ No newline at end of file diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstaller.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstaller.bmp deleted file mode 100644 index 220f605c3..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstaller.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstaller.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstaller.ico deleted file mode 100644 index d0981620d..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstaller.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstaller.nsi b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstaller.nsi deleted file mode 100644 index a6e80f7f3..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstaller.nsi +++ /dev/null @@ -1,1358 +0,0 @@ -;Copyright 2007-2013 John T. Haller of PortableApps.com -;Website: http://PortableApps.com/ - -;This software is OSI Certified Open Source Software. -;OSI Certified is a certification mark of the Open Source Initiative. - -;This program is free software; you can redistribute it and/or -;modify it under the terms of the GNU General Public License -;as published by the Free Software Foundation; either version 2 -;of the License, or (at your option) any later version. - -;This program is distributed in the hope that it will be useful, -;but WITHOUT ANY WARRANTY; without even the implied warranty of -;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;GNU General Public License for more details. - -;You should have received a copy of the GNU General Public License -;along with this program; if not, write to the Free Software -;Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -;EXCEPTION: The PortableApps.com Installer can be used with open source -;applications licensed under OSI-approved licenses as well as freeware provided -;it is unmodified and it adheres to the current PortableApps.com Format Specification -;as published at PortableApps.com/development. It may also be used with commercial -;software by contacting PortableApps.com. - -!define PORTABLEAPPSINSTALLERVERSION "3.0.6.0" -!define PORTABLEAPPS.COMFORMATVERSION "3.0.6" - -!if ${__FILE__} == "PortableApps.comInstallerPlugin.nsi" - !include PortableApps.comInstallerPluginConfig.nsh - !define PLUGININSTALLER -!else - !include PortableApps.comInstallerConfig.nsh -!endif - -!define MAINSECTIONIDX 0 -!ifdef MAINSECTIONTITLE - !define OPTIONALSECTIONIDX 1 -!endif - -;=== Program Details -Name "${PORTABLEAPPNAME}" "${PORTABLEAPPNAMEDOUBLEDAMPERSANDS}" -OutFile "..\..\..\${FILENAME}.paf.exe" -!ifdef COMMONFILESPLUGIN - InstallDir "\CommonFiles\${APPID}" -!else - InstallDir "\${APPID}" -!endif -Caption "${PORTABLEAPPNAME} | PortableApps.com Installer" -VIProductVersion "${VERSION}" -VIAddVersionKey ProductName "${PORTABLEAPPNAME}" -VIAddVersionKey Comments "${INSTALLERCOMMENTS}" -VIAddVersionKey CompanyName "PortableApps.com" -VIAddVersionKey LegalCopyright "PortableApps.com Installer Copyright 2007-2012 PortableApps.com." -VIAddVersionKey FileDescription "${PORTABLEAPPNAME}" -VIAddVersionKey FileVersion "${VERSION}" -VIAddVersionKey ProductVersion "${VERSION}" -VIAddVersionKey InternalName "${PORTABLEAPPNAME}" -VIAddVersionKey LegalTrademarks "${INSTALLERADDITIONALTRADEMARKS}PortableApps.com is a registered trademark of Rare Ideas, LLC." -VIAddVersionKey OriginalFilename "${FILENAME}.paf.exe" -VIAddVersionKey PortableApps.comInstallerVersion "${PORTABLEAPPSINSTALLERVERSION}" -VIAddVersionKey PortableApps.comFormatVersion "${PORTABLEAPPS.COMFORMATVERSION}" -VIAddVersionKey PortableApps.comAppID "${APPID}" -!ifdef DownloadURL ;advertise the needed bits to the PA.c Updater - VIAddVersionKey PortableApps.comDownloadURL "${DownloadURL}" - VIAddVersionKey PortableApps.comDownloadName "${DownloadName}" - VIAddVersionKey PortableApps.comDownloadFileName "${DownloadFileName}" - VIAddVersionKey PortableApps.comDownloadMD5 "${DownloadMD5}" -!endif - -;=== Runtime Switches -SetCompress Auto -SetCompressor /SOLID lzma -SetCompressorDictSize 32 -SetDatablockOptimize On -CRCCheck on -AutoCloseWindow True -RequestExecutionLevel user -AllowRootDirInstall true - -;=== Include -!include MUI.nsh -!include FileFunc.nsh -!include LogicLib.nsh -!ifdef PRESERVEFILE1 - !include PortableApps.comInstallerMoveFiles.nsh -!endif -!ifdef COPYLOCALFILES - !include Registry.nsh -!endif -!include TextFunc.nsh -!include WordFunc.nsh -!include PortableApps.comInstallerDumpLogToFile.nsh -!include PortableApps.comInstallerTBProgress.nsh - -;=== Program Icon -Icon "PortableApps.comInstaller.ico" -!define MUI_ICON "PortableApps.comInstaller.ico" -!define MUI_UNICON "PortableApps.comInstaller.ico" -!define MUI_HEADERIMAGE -!define MUI_HEADERIMAGE_BITMAP "PortableApps.comInstallerHeader.bmp" -!define MUI_HEADERIMAGE_BITMAP_RTL "PortableApps.comInstallerHeaderRTL.bmp" -!define MUI_HEADERIMAGE_RIGHT - -;=== Icon & Stye === -BrandingText "PortableApps.com®" - -;=== Pages -!ifdef COPYLOCALFILES - !define MUI_CUSTOMFUNCTION_ABORT CustomAbortFunction -!endif -!define MUI_LANGDLL_WINDOWTITLE "${PORTABLEAPPNAME}" -!define MUI_LANGDLL_INFO "Please select a language for the installer." -!define MUI_WELCOMEFINISHPAGE_BITMAP "PortableApps.comInstaller.bmp" -!ifdef PLUGINNAME - !define MUI_WELCOMEPAGE_TITLE "${PORTABLEAPPNAMEDOUBLEDAMPERSANDS}" -!else - !define MUI_WELCOMEPAGE_TITLE "${PORTABLEAPPNAMEDOUBLEDAMPERSANDS}" -!endif -!define MUI_WELCOMEPAGE_TEXT "$(welcome)" -!define MUI_PAGE_CUSTOMFUNCTION_PRE PreWelcome -!define MUI_COMPONENTSPAGE_SMALLDESC -!insertmacro MUI_PAGE_WELCOME -!ifdef LICENSEAGREEMENT - ;!define MUI_LICENSEPAGE_CHECKBOX - !define MUI_PAGE_CUSTOMFUNCTION_PRE PreLicense - !define MUI_PAGE_CUSTOMFUNCTION_SHOW ShowLicense - !define MUI_PAGE_CUSTOMFUNCTION_LEAVE LeaveLicense - !insertmacro MUI_PAGE_LICENSE "..\..\App\AppInfo\${LICENSEAGREEMENT}" -!endif -!ifdef MAINSECTIONTITLE - !define MUI_PAGE_CUSTOMFUNCTION_PRE PreComponents - !insertmacro MUI_PAGE_COMPONENTS -!endif -!define MUI_DIRECTORYPAGE_VERIFYONLEAVE -!define MUI_PAGE_CUSTOMFUNCTION_PRE PreDirectory -!define MUI_PAGE_CUSTOMFUNCTION_LEAVE LeaveDirectory -!insertmacro MUI_PAGE_DIRECTORY -!define MUI_PAGE_CUSTOMFUNCTION_SHOW ShowInstFiles -!insertmacro MUI_PAGE_INSTFILES -!define MUI_FINISHPAGE_TEXT "$(finish)" -!define MUI_PAGE_CUSTOMFUNCTION_PRE PreFinish -!define MUI_FINISHPAGE_TITLE_3LINES -!define MUI_FINISHPAGE_CANCEL_ENABLED -!ifndef PLUGINNAME - !define MUI_FINISHPAGE_RUN_NOTCHECKED - !define MUI_FINISHPAGE_RUN "$INSTDIR\${FINISHPAGERUN}" -!endif -!insertmacro MUI_PAGE_FINISH - -;=== Languages -!ifndef INSTALLERMULTILINGUAL - !insertmacro MUI_LANGUAGE "${INSTALLERLANGUAGE}" - !include PortableApps.comInstallerLanguages\${INSTALLERLANGUAGE}.nsh -!else - !tempfile LangAutoDetectFile - !macro IncludeLang _LANG_NAME - ; define and filename are all uppercase but both case insensitive - !ifdef USES_${_LANG_NAME} - !insertmacro MUI_LANGUAGE "${_LANG_NAME}" - !include PortableApps.comInstallerLanguages\${_LANG_NAME}.nsh - !appendfile "${LangAutoDetectFile}" "${Case} ${LANG_${_LANG_NAME}}$\n" - !endif - !macroend - !define IncludeLang "!insertmacro IncludeLang" - - ${IncludeLang} English - ${IncludeLang} EnglishGB - ${IncludeLang} Afrikaans - ${IncludeLang} Albanian - ${IncludeLang} Arabic - ${IncludeLang} Armenian - ${IncludeLang} Basque - ${IncludeLang} Belarusian - ${IncludeLang} Bosnian - ${IncludeLang} Breton - ${IncludeLang} Bulgarian - ${IncludeLang} Catalan - ${IncludeLang} Cibemba - ${IncludeLang} Croatian - ${IncludeLang} Czech - ${IncludeLang} Danish - ${IncludeLang} Dutch - ${IncludeLang} Efik - ${IncludeLang} Esperanto - ${IncludeLang} Estonian - ${IncludeLang} Farsi - ${IncludeLang} Finnish - ${IncludeLang} French - ${IncludeLang} Galician - ${IncludeLang} Georgian - ${IncludeLang} German - ${IncludeLang} Greek - ${IncludeLang} Hebrew - ${IncludeLang} Hungarian - ${IncludeLang} Icelandic - ${IncludeLang} Igbo - ${IncludeLang} Indonesian - ${IncludeLang} Irish - ${IncludeLang} Italian - ${IncludeLang} Japanese - ${IncludeLang} Khmer - ${IncludeLang} Korean - ${IncludeLang} Kurdish - ${IncludeLang} Latvian - ${IncludeLang} Lithuanian - ${IncludeLang} Luxembourgish - ${IncludeLang} Macedonian - ${IncludeLang} Malagasy - ${IncludeLang} Malay - ${IncludeLang} Mongolian - ${IncludeLang} Norwegian - ${IncludeLang} NorwegianNynorsk - ${IncludeLang} Pashto - ${IncludeLang} Polish - ${IncludeLang} Portuguese - ${IncludeLang} PortugueseBR - ${IncludeLang} Romanian - ${IncludeLang} Russian - ${IncludeLang} Serbian - ${IncludeLang} SerbianLatin - ${IncludeLang} SimpChinese - ${IncludeLang} Slovak - ${IncludeLang} Slovenian - ${IncludeLang} Spanish - ${IncludeLang} SpanishInternational - ${IncludeLang} Swahili - ${IncludeLang} Swedish - ${IncludeLang} Thai - ${IncludeLang} TradChinese - ${IncludeLang} Turkish - ${IncludeLang} Ukrainian - ${IncludeLang} Uzbek - ${IncludeLang} Valencia - ${IncludeLang} Vietnamese - ${IncludeLang} Welsh - ${IncludeLang} Yoruba - - !insertmacro MUI_RESERVEFILE_LANGDLL -!endif - -;=== Macros -!macro !insertmacro1-10 _m -!insertmacro ${_m} 1 -!insertmacro ${_m} 2 -!insertmacro ${_m} 3 -!insertmacro ${_m} 4 -!insertmacro ${_m} 5 -!insertmacro ${_m} 6 -!insertmacro ${_m} 7 -!insertmacro ${_m} 8 -!insertmacro ${_m} 9 -!insertmacro ${_m} 10 -!macroend -!define !insertmacro1-10 "!insertmacro !insertmacro1-10" - -;=== Variables -Var FOUNDPORTABLEAPPSPATH -!ifdef MAINSECTIONTITLE - Var OPTIONAL1DONE -!endif -Var AUTOMATEDINSTALL -Var AUTOCLOSE -Var SILENTLANGUAGEMODE -Var HIDEINSTALLER -Var MINIMIZEINSTALLER -!ifdef LICENSEAGREEMENT - Var EULAVERSIONMATCH -!endif -!ifdef COPYLOCALFILES - Var CopyLocalFilesFrom - Var CopyLocalFilesTo - Var MISSINGFILEORPATH -!endif -!ifdef DOWNLOADURL - Var MD5MISMATCH - Var DOWNLOADRESULT - Var DOWNLOADEDFILE - Var DOWNLOADALREADYEXISTED - Var SECONDDOWNLOADATTEMPT - Var DownloadURLActual -!endif -Var INTERNALEULAVERSION -Var InstallingStatusString -Var bolAppUpgrade -Var bolLogFile - -;=== Custom Code -!ifdef USESCUSTOMCODE - !if ${__FILE__} == "PortableApps.comInstallerPlugin.nsi" - !include PortableApps.comInstallerPluginCustom.nsh - !else - !include PortableApps.comInstallerCustom.nsh - !endif -!endif - -!ifdef INSTALLERMULTILINGUAL - !macro CaseLang _LANG_NAME _LANG_ID - !ifdef USES_${_LANG_NAME} - ${Case} ${_LANG_ID} - !endif - !macroend - !define CaseLang "!insertmacro CaseLang" -!endif - -Function .onInit - SetSilent normal - - !ifdef DownloadURL - StrCpy $R0 $EXEFILE "" -15 - ${If} $R0 != "_online.paf.exe" - ${AndIf} $R0 != "line.paf[1].exe" ;Handle IE's renaming of files when run directly from a download - ${AndIf} $R0 != "line.paf[2].exe" - ${AndIf} $R0 != "line.paf[3].exe" - ${AndIf} $R0 != "line.paf[4].exe" - ${AndIf} $R0 != "line.paf[5].exe" - ${AndIf} $R0 != "line.paf[6].exe" - ${AndIf} $R0 != "line.paf[7].exe" - ${AndIf} $R0 != "line.paf[8].exe" - ${AndIf} $R0 != "line.paf[9].exe" - MessageBox MB_OK|MB_ICONSTOP `PortableApps.com Installers that download files must end with "_online.paf.exe". This is to ensure that users always know that an installer downloads files before it is run. Please rename the file to end in _online.paf.exe before running.` - Abort - ${EndIf} - !endif - - InitPluginsDir - - !ifdef INSTALLERMULTILINGUAL - ReadEnvStr $0 "PortableApps.comLocaleID" - ${Switch} $0 - ; Use the Case statements formed earlier. - !include "${LangAutoDetectFile}" - !delfile "${LangAutoDetectFile}" - !undef LangAutoDetectFile - StrCpy $LANGUAGE $0 - ${Break} - ${Default} - !insertmacro MUI_LANGDLL_DISPLAY - ${EndSwitch} - !endif - - ;=== Check for logging mode - ${GetOptions} $CMDLINE "/LOG=" $0 - - ${IfNot} ${Errors} - ${AndIf} $0 == "true" - StrCpy $bolLogFile true - ${Else} - ClearErrors - ${EndIf} - - ;=== Check for a specified installation directory - ${GetOptions} $CMDLINE "/DESTINATION=" $0 - - ${IfNot} ${Errors} - !ifdef COMMONFILESPLUGIN - StrCpy $INSTDIR "$0CommonFiles\${APPID}" - !else - ${GetOptions} $CMDLINE "/COPYNUMBER=" $1 - ${IfNot} ${Errors} - StrCpy $INSTDIR "$0${APPID}_Copy_$1" - ${Else} - StrCpy $INSTDIR "$0${APPID}" - ${EndIf} - !endif - - !ifdef LICENSEAGREEMENT - !ifndef EULAVERSION - StrCpy $INTERNALEULAVERSION "1" - !else - StrCpy $INTERNALEULAVERSION ${EULAVERSION} - !endif - ${If} ${FileExists} "$INSTDIR\Data\PortableApps.comInstaller\license.ini" - ReadINIStr $0 "$INSTDIR\Data\PortableApps.comInstaller\license.ini" "PortableApps.comInstaller" "EULAVersion" - ClearErrors - ${If} $0 == $INTERNALEULAVERSION - StrCpy $EULAVERSIONMATCH "true" - ${EndIf} - ${EndIf} - !endif - - ;=== Check for PortableApps.com Platform - ${GetParent} $INSTDIR $0 - !ifdef COMMONFILESPLUGIN - ${GetParent} $0 $0 - !endif - - ;=== Check that it exists at the right location - DetailPrint '$(checkforplatform)' - - ${If} ${FileExists} `$0\PortableApps.com\PortableAppsPlatform.exe` - ;=== Check that it's the real deal - MoreInfo::GetProductName `$0\PortableApps.com\PortableAppsPlatform.exe` - Pop $1 - ${If} $1 == "PortableApps.com Platform" - MoreInfo::GetCompanyName `$0\PortableApps.com\PortableAppsPlatform.exe` - Pop $1 - ${If} $1 == "PortableApps.com" - ;=== Check that it's running - FindProcDLL::FindProc "PortableAppsPlatform.exe" - ${If} $R0 == 1 - ;=== Do a partially automated install - StrCpy $AUTOMATEDINSTALL "true" - - ClearErrors - ${GetOptions} $CMDLINE "/AUTOCLOSE=" $R0 - ${IfNot} ${Errors} - ${AndIf} $R0 == "true" - StrCpy $AUTOCLOSE "true" - ${EndIf} - - ClearErrors - ${GetOptions} $CMDLINE "/HIDEINSTALLER=" $R0 - ${IfNot} ${Errors} - ${AndIf} $R0 == "true" - StrCpy $HIDEINSTALLER "true" - ${EndIf} - - ClearErrors - ${GetOptions} $CMDLINE "/MINIMIZEINSTALLER=" $R0 - ${IfNot} ${Errors} - ${AndIf} $R0 == "true" - StrCpy $MINIMIZEINSTALLER "true" - ${EndIf} - - ClearErrors - ${GetOptions} $CMDLINE "/SILENT=" $R0 - ${IfNot} ${Errors} - ${AndIf} $R0 == "true" - ;Duplicate of the size calculation code, to be functionalized later - SectionGetSize ${MAINSECTIONIDX} $1 ;=== Space Required for App - !ifdef MAINSECTIONTITLE - SectionGetFlags ${OPTIONALSECTIONIDX} $9 - IntOp $9 $9 & ${SF_SELECTED} - ${If} $9 >= ${SF_SELECTED} - SectionGetSize ${OPTIONALSECTIONIDX} $2 ;=== Space Required for App - IntOp $1 $1 + $2 - ${EndIf} - !endif - ${GetRoot} $INSTDIR $2 - ${DriveSpace} `$2\` "/D=F /S=M" $3 ;=== Space Free on Device - - IntOp $1 $1 / 1024 - - ${If} $3 <= $1 - IntOp $1 $1 * 1024 - IntOp $3 $3 * 1024 - !ifndef PLUGININSTALLER ;=== If not a plugin installer, add the current install size to free space - ${If} ${FileExists} $INSTDIR - ${GetSize} `$INSTDIR` "/M=*.* /S=0K /G=0" $4 $5 $6 ;=== Current installation size - IntOp $3 $3 + $4 ;=== Space Free + Current Root Install Size - ${GetSize} `$INSTDIR\App` "/M=*.* /S=0K /G=1" $4 $5 $6 ;=== Current installation size - IntOp $3 $3 + $4 ;=== Space Free + Current App Install Size - ${GetSize} `$INSTDIR\Other` "/M=*.* /S=0K /G=1" $4 $5 $6 ;=== Current installation size - IntOp $3 $3 + $4 ;=== Space Free + Current Other Install Size - - ${If} `${ADDONSDIRECTORYPRESERVE}` != "NONE" - ${AndIf} ${FileExists} `$INSTDIR\${ADDONSDIRECTORYPRESERVE}` - ${GetSize} `$INSTDIR\${ADDONSDIRECTORYPRESERVE}` "/M=*.* /S=0K /G=1" $4 $5 $6 ;=== Size of Data directory - IntOp $3 $3 - $4 ;=== Remove the plugins directory from the free space calculation - ${EndIf} - ${EndIf} - !else - !ifdef COMMONFILESPLUGIN ;Duplicate code for now, to do above for CommonFiles as well - ${If} ${FileExists} $INSTDIR - ${GetSize} `$INSTDIR` "/M=*.* /S=0K /G=1" $4 $5 $6 ;=== Current installation size - IntOp $3 $3 + $4 ;=== Space Free + Current Install Size - ${EndIf} - !endif - !endif - ${If} $3 <= $1 - MessageBox MB_OK|MB_ICONEXCLAMATION $(notenoughspace) - Abort - ${EndIf} - ${EndIf} - - !ifdef LICENSEAGREEMENT - ${If} $EULAVERSIONMATCH == "true" - SetSilent silent - ${EndIf} - !else - SetSilent silent - !endif - ${EndIf} - - ClearErrors - ${GetOptions} $CMDLINE "/SILENTLANGUAGEMODE=" $R0 - ${IfNot} ${Errors} - ${If} $R0 == "auto" - ${OrIf} $R0 == "never" - ${OrIf} $R0 == "always" - StrCpy $SILENTLANGUAGEMODE $R0 - ${Else} - StrCpy $SILENTLANGUAGEMODE "auto" - ${EndIf} - ${Else} - StrCpy $SILENTLANGUAGEMODE "auto" - ${EndIf} - - ${EndIf} - ${EndIf} - ${EndIf} - ${EndIf} - ${Else} - ClearErrors - ;=== Check legacy location - ${GetOptions} $CMDLINE "-o" $R0 - ${IfNot} ${Errors} - !ifdef COMMONFILESPLUGIN - StrCpy $INSTDIR "$R0CommonFiles\${APPID}" - !else - StrCpy $INSTDIR "$R0${APPID}" - !endif - ${Else} - ;=== No installation directory found - ClearErrors - ${If} ${FileExists} "$PROFILE\PortableApps\*.*" - StrCpy $FOUNDPORTABLEAPPSPATH "$Profile\PortableApps" - ${Else} - ${GetDrives} "HDD+FDD" GetDrivesCallBack - ${EndIf} - ${If} $FOUNDPORTABLEAPPSPATH != "" - !ifdef COMMONFILESPLUGIN - StrCpy $INSTDIR "$FOUNDPORTABLEAPPSPATH\CommonFiles\${APPID}" - !else - StrCpy $INSTDIR "$FOUNDPORTABLEAPPSPATH\${APPID}" - !endif - ${Else} - !ifdef COMMONFILESPLUGIN - StrCpy $INSTDIR "$EXEDIR\CommonFiles\${APPID}" - !else - StrCpy $INSTDIR "$EXEDIR\${APPID}" - !endif - ${EndIf} - ${EndIf} - ${EndIf} - - !ifdef MAINSECTIONTITLE - !ifdef OPTIONALSECTIONPRESELECTEDIFNONENGLISHINSTALL - ;=== If it's not English, select the optional component (languages) by default - ${IfThen} $LANGUAGE != 1033 ${|} SectionSetFlags 1 ${OPTIONALSECTIONIDX} ${|} - !endif - ${If} ${Silent} - ${If} "${OPTIONALSECTIONINSTALLEDWHENSILENT}" == "true" - SectionSetFlags 1 ${OPTIONALSECTIONIDX} - ${ElseIf} "${OptionalSectionSelectedInstallType}" == "Multilingual" - ${If} $SILENTLANGUAGEMODE != "never" - ${If} $SILENTLANGUAGEMODE == "always" - SectionSetFlags 1 ${OPTIONALSECTIONIDX} - ${Else} - ${IfThen} $LANGUAGE != 1033 ${|} SectionSetFlags 1 ${OPTIONALSECTIONIDX} ${|} - ${EndIf} - ${EndIf} - ${EndIf} - ${EndIf} - - !endif - - !ifdef COPYLOCALFILES - StrCpy $CopyLocalFilesFrom "" - - ${If} "${CopyFromRegPath}" != "" - ${registry::Read} "${CopyFromRegPath}" "${CopyFromRegKey}" $R0 $R1 - ${If} $R0 != "" - ;Strip trailing slash if there - StrCpy $1 $R0 "" -1 - ${If} $1 == "\" - StrCpy $R0 $R0 -1 - ${EndIf} - - ;Go up directories if needed - ${If} "${CopyFromRegRemoveDirectories}" != "" - StrCpy $1 1 - ${Do} - ${GetParent} $R0 $R0 - IntOp $1 $1 + 1 - ${LoopUntil} $1 > "${CopyFromRegRemoveDirectories}" - ${EndIf} - - ;Check for existence - ${If} ${FileExists} "$R0\*.*" - StrCpy $CopyLocalFilesFrom $R0 - ${EndIf} - ${EndIf} - ${EndIf} - - ;Fallback to direct entry - ${If} $CopyLocalFilesFrom == "" - ${AndIf} "${CopyFromDirectory}" != "" - StrCpy $CopyLocalFilesFrom "${CopyFromDirectory}" - ${WordReplace} $CopyLocalFilesFrom "%PROGRAMFILES%" $PROGRAMFILES + $CopyLocalFilesFrom - ${WordReplace} $CopyLocalFilesFrom "%PROGRAMFILES32%" $PROGRAMFILES32 + $CopyLocalFilesFrom - ${WordReplace} $CopyLocalFilesFrom "%PROGRAMFILES64%" $PROGRAMFILES64 + $CopyLocalFilesFrom - ${WordReplace} $CopyLocalFilesFrom "%COMMONFILES%" $COMMONFILES + $CopyLocalFilesFrom - ${WordReplace} $CopyLocalFilesFrom "%COMMONFILES32%" $COMMONFILES32 + $CopyLocalFilesFrom - ${WordReplace} $CopyLocalFilesFrom "%COMMONFILES64%" $COMMONFILES64 + $CopyLocalFilesFrom - ${WordReplace} $CopyLocalFilesFrom "%DESKTOP%" $DESKTOP + $CopyLocalFilesFrom - ${WordReplace} $CopyLocalFilesFrom "%WINDIR%" $WINDIR + $CopyLocalFilesFrom - ${WordReplace} $CopyLocalFilesFrom "%SYSDIR%" $SYSDIR + $CopyLocalFilesFrom - ${WordReplace} $CopyLocalFilesFrom "%APPDATA%" $APPDATA + $CopyLocalFilesFrom - ${WordReplace} $CopyLocalFilesFrom "%LOCALAPPDATA%" $LOCALAPPDATA + $CopyLocalFilesFrom - ${WordReplace} $CopyLocalFilesFrom "%TEMP%" $TEMP + $CopyLocalFilesFrom - ${EndIf} - ${If} ${FileExists} "$CopyLocalFilesFrom\*.*" - SectionGetSize ${MAINSECTIONIDX} $0 - ${GetSize} $CopyLocalFilesFrom "/M=*.* /S=0K /G=1" $1 $2 $3 - IntOp $0 $0 + $1 - SectionSetSize ${MAINSECTIONIDX} $0 - ${EndIf} - !endif - !ifdef AdditionalInstallSize - SectionGetSize ${MAINSECTIONIDX} $0 - IntOp $0 $0 + ${AdditionalInstallSize} - SectionSetSize ${MAINSECTIONIDX} $0 - !endif - - ${If} "${CHECKRUNNING}" != "NONE" - ;=== Check if app is running? - RunningTryAgain: - FindProcDLL::FindProc "${CHECKRUNNING}" - ${If} $R0 == 1 - MessageBox MB_OKCANCEL|MB_ICONINFORMATION $(runwarning) IDOK RunningTryAgain IDCANCEL RunningCancel - - RunningCancel: - Abort - ${EndIf} - ${EndIf} -FunctionEnd - -Function PreWelcome - ${IfThen} $AUTOMATEDINSTALL == "true" ${|} Abort ${|} -FunctionEnd - -!ifdef LICENSEAGREEMENT -Function PreLicense - ${If} $AUTOMATEDINSTALL == "true" - ${AndIf} $EULAVERSIONMATCH == "true" - Abort - ${EndIf} - - !ifndef EULAVERSION - StrCpy $INTERNALEULAVERSION "1" - !else - StrCpy $INTERNALEULAVERSION "${EULAVERSION}" - !endif - ${If} ${FileExists} "$INSTDIR\Data\PortableApps.comInstaller\license.ini" - ReadINIStr $0 "$INSTDIR\Data\PortableApps.comInstaller\license.ini" "PortableApps.comInstaller" "EULAVersion" - ClearErrors - ${If} $0 == $INTERNALEULAVERSION - ${AndIf} $AUTOMATEDINSTALL == "true" - Abort - ${EndIf} - ${EndIf} -FunctionEnd -Function ShowLicense - ${If} $AUTOMATEDINSTALL == "true" - ${TBProgress} 20 - ${TBProgress_State} Paused - ${EndIf} -FunctionEnd -Function LeaveLicense - ${If} $AUTOMATEDINSTALL == "true" - ${TBProgress_State} NoProgress - ${EndIf} -FunctionEnd -!endif - -Function ShowInstFiles - w7tbp::Start -FunctionEnd - -!ifdef MAINSECTIONTITLE - Function PreComponents - ${If} $AUTOCLOSE != "true" - ${OrIfNot} ${FileExists} "$INSTDIR\App\AppInfo\appinfo.ini" - Return - ${EndIf} - - ReadINIStr $0 "$INSTDIR\App\AppInfo\appinfo.ini" "Details" "InstallType" - ClearErrors - ${If} $0 == "${OPTIONALSECTIONSELECTEDINSTALLTYPE}" - SectionSetFlags 1 ${OPTIONALSECTIONIDX} - Abort - ${EndIf} - - ;=== Check not selected - ${If} $0 == "${OPTIONALSECTIONNOTSELECTEDINSTALLTYPE}" - SectionSetFlags 0 ${OPTIONALSECTIONIDX} - Abort - ${EndIf} - FunctionEnd -!endif - -Function PreDirectory - ${IfThen} $AUTOMATEDINSTALL != "true" ${|} Return ${|} - - SectionGetSize ${MAINSECTIONIDX} $1 ;=== Space Required for App - !ifdef MAINSECTIONTITLE - SectionGetFlags ${OPTIONALSECTIONIDX} $9 - IntOp $9 $9 & ${SF_SELECTED} - ${If} $9 >= ${SF_SELECTED} - SectionGetSize ${OPTIONALSECTIONIDX} $2 ;=== Space Required for App - IntOp $1 $1 + $2 - ${EndIf} - !endif - ${GetRoot} $INSTDIR $2 - ${DriveSpace} `$2\` "/D=F /S=M" $3 ;=== Space Free on Device - - IntOp $1 $1 / 1024 - - ${If} $3 <= $1 - IntOp $1 $1 * 1024 - IntOp $3 $3 * 1024 - - !ifndef PLUGININSTALLER ;=== If not a plugin installer, add the current install size to free space - ${If} ${FileExists} $INSTDIR - ${GetSize} $INSTDIR "/M=*.* /S=0K /G=1" $4 $5 $6 ;=== Current installation size - IntOp $3 $3 + $4 ;=== Space Free + Current Install Size - - ${If} ${FileExists} `$INSTDIR\Data` - ${GetSize} `$INSTDIR\Data` "/M=*.* /S=0K /G=1" $4 $5 $6 ;=== Size of Data directory - IntOp $3 $3 - $4 ;=== Remove the data directory from the free space calculation - ${EndIf} - - ${If} `${ADDONSDIRECTORYPRESERVE}` != "NONE" - ${AndIf} ${FileExists} `$INSTDIR\${ADDONSDIRECTORYPRESERVE}` - ${GetSize} `$INSTDIR\${ADDONSDIRECTORYPRESERVE}` "/M=*.* /S=0K /G=1" $4 $5 $6 ;=== Size of Data directory - IntOp $3 $3 - $4 ;=== Remove the plugins directory from the free space calculation - ${EndIf} - ${EndIf} - !else - !ifdef COMMONFILESPLUGIN ;Duplicate code for now, to do above for CommonFiles as well - ${If} ${FileExists} $INSTDIR - ${GetSize} `$INSTDIR` "/M=*.* /S=0K /G=1" $4 $5 $6 ;=== Current installation size - IntOp $3 $3 + $4 ;=== Space Free + Current Install Size - ${EndIf} - !endif - !endif - - ${If} $3 <= $1 - MessageBox MB_OK|MB_ICONEXCLAMATION "$(notenoughspace)" - Return - ${EndIf} - ${EndIf} - - ;=== Check if app is running? - ${IfThen} "${CHECKRUNNING}" == "NONE" ${|} Abort ${|} - FindProcDLL::FindProc "${CHECKRUNNING}" - ${IfThen} $R0 != "1" ${|} Abort ${|} - MessageBox MB_OK|MB_ICONINFORMATION $(runwarning) -FunctionEnd - -Function LeaveDirectory - GetInstDirError $0 - - ;=== Does it already exist? (upgrade) - ${If} ${FileExists} $INSTDIR - ${AndIf} "${CHECKRUNNING}" != "NONE" - ;=== Check if app is running? - FindProcDLL::FindProc "${CHECKRUNNING}" - ${If} $R0 = 1 - MessageBox MB_OK|MB_ICONINFORMATION $(runwarning) - Abort - ${EndIf} - ${EndIf} - - ; 0 is valid, enough space, all fine - ${Select} $0 - ${Case} 1 - MessageBox MB_OK|MB_ICONINFORMATION $(invaliddirectory) - Abort - - ${Case} 2 - ${IfNot} ${FileExists} $INSTDIR ;=== Is upgrade - MessageBox MB_OK|MB_ICONEXCLAMATION $(notenoughspace) - Abort - ${EndIf} - - SectionGetSize ${MAINSECTIONIDX} $1 ;=== Space Required for App - !ifdef MAINSECTIONTITLE - SectionGetFlags ${OPTIONALSECTIONIDX} $9 - IntOp $9 $9 & ${SF_SELECTED} - ${If} $9 >= ${SF_SELECTED} - SectionGetSize ${OPTIONALSECTIONIDX} $2 ;=== Space Required for App - IntOp $1 $1 + $2 - ${EndIf} - !endif - ${GetRoot} $INSTDIR $2 - ${DriveSpace} `$2\` "/D=F /S=K" $3 ;=== Space Free on Device - - - !ifndef PLUGININSTALLER ;=== If not a plugin installer, add the current install size to free space - ${GetSize} `$INSTDIR` "/M=*.* /S=0K /G=0" $4 $5 $6 ;=== Current installation size - IntOp $3 $3 + $4 ;=== Space Free + Current Root Install Size - ${GetSize} `$INSTDIR\App` "/M=*.* /S=0K /G=1" $4 $5 $6 ;=== Current installation size - IntOp $3 $3 + $4 ;=== Space Free + Current App Install Size - ${GetSize} `$INSTDIR\Other` "/M=*.* /S=0K /G=1" $4 $5 $6 ;=== Current installation size - IntOp $3 $3 + $4 ;=== Space Free + Current Other Install Size - - ${If} `${ADDONSDIRECTORYPRESERVE}` != "NONE" - ${AndIf} ${FileExists} `$INSTDIR\${ADDONSDIRECTORYPRESERVE}` - ${GetSize} `$INSTDIR\${ADDONSDIRECTORYPRESERVE}` "/M=*.* /S=0K /G=1" $4 $5 $6 ;=== Size of Data directory - IntOp $3 $3 - $4 ;=== Remove the plugins directory from the free space calculation - ${EndIf} - !else - !ifdef COMMONFILESPLUGIN ;Duplicate code for now, to do above for CommonFiles as well - ${GetSize} `$INSTDIR` "/M=*.* /S=0K /G=1" $4 $5 $6 ;=== Current installation size - IntOp $3 $3 + $4 ;=== Space Free + Current Install Size - !endif - !endif - - ${If} $3 <= $1 - MessageBox MB_OK|MB_ICONEXCLAMATION "$(notenoughspace)" - Abort - ${EndIf} - ${EndSelect} - - ;Check for Program Files - ReadEnvStr $0 IPromiseNotToComplainWhenPortableAppsDontWorkRightInProgramFiles - ${If} $0 != "I understand that this may not work and that I can not ask for help with any of my apps when operating in this fashion." - ${WordFind} "$INSTDIR\" "$PROGRAMFILES\" "*" $R0 - ${If} $R0 > 0 - MessageBox MB_OK|MB_ICONINFORMATION "$(invaliddirectory) [$PROGRAMFILES or sub-directories]" - Abort - ${EndIf} - ${WordFind} "$INSTDIR\" "$PROGRAMFILES64\" "*" $R0 - ${If} $R0 > 0 - MessageBox MB_OK|MB_ICONINFORMATION "$(invaliddirectory) [$PROGRAMFILES64 or sub-directories]" - Abort - ${EndIf} - ${EndIf} -FunctionEnd - -Function PreFinish - ${IfThen} $AUTOCLOSE == "true" ${|} Abort ${|} -FunctionEnd - -Function GetDrivesCallBack - ;=== Skip usual floppy letters - ${If} $8 == "FDD" - ${If} $9 == "A:\" - ${OrIf} $9 == "B:\" - Push $0 - Return - ${EndIf} - ${EndIf} - - ${If} ${FileExists} $9PortableApps - StrCpy $FOUNDPORTABLEAPPSPATH $9PortableApps - ${EndIf} - - Push $0 -FunctionEnd - -!ifdef MAINSECTIONTITLE - Section "${MAINSECTIONTITLE}" -!else - Section "App Portable (required)" -!endif - - ${If} $MINIMIZEINSTALLER == "true" - ShowWindow $HWNDPARENT ${SW_MINIMIZE} - ${EndIf} - ${If} $HIDEINSTALLER == "true" - ShowWindow $HWNDPARENT ${SW_HIDE} - ${EndIf} - - ${If} ${FileExists} "$INSTDIR\*.*" - StrCpy $bolAppUpgrade true - ${EndIf} - - ${If} $(installingstatus) != "" - StrCpy $InstallingStatusString "$(installingstatus)" - ${Else} - StrCpy $InstallingStatusString "$(MUI_TEXT_INSTALLING_TITLE)" - ${EndIf} - - SectionIn RO - SetOutPath $INSTDIR - - ${If} $bolAppUpgrade == true - ${If} $(prepareupgrade) == "" - DetailPrint $InstallingStatusString - ${Else} - DetailPrint $(prepareupgrade) - ${EndIf} - ${Else} - DetailPrint $InstallingStatusString - ${EndIf} - SetDetailsPrint ListOnly - - ;=== Download Files -!ifdef DownloadURL - ${If} ${FileExists} `$EXEDIR\${DownloadFileName}` - !ifdef DownloadMD5 - md5dll::GetMD5File "$EXEDIR\${DownloadFileName}" - Pop $R0 - ${If} $R0 == ${DownloadMD5} - StrCpy $DOWNLOADALREADYEXISTED "true" - StrCpy $DOWNLOADRESULT "OK" - ${EndIf} - !else - StrCpy $DOWNLOADALREADYEXISTED "true" - StrCpy $DOWNLOADRESULT "OK" - !endif - ${EndIf} - - ${If} $DOWNLOADALREADYEXISTED == "true" - StrCpy $DOWNLOADEDFILE "$EXEDIR\${DownloadFileName}" - ${Else} - StrCpy $DownloadURLActual ${DownloadURL} - DownloadTheFile: - CreateDirectory `$PLUGINSDIR\Downloaded` - SetDetailsPrint both - ${If} $(downloading) != "" - DetailPrint $(downloading) - ${Else} - DetailPrint "Downloading ${DownloadName}..." - ${EndIf} - - SetDetailsPrint none - Delete "$PLUGINSDIR\Downloaded\${DownloadName}" - Delete "$PLUGINSDIR\Downloaded\${DownloadFilename}" - - ${If} $(downloading) != "" - inetc::get /CONNECTTIMEOUT 30 /NOCOOKIES /TRANSLATE $(downloading) $(downloadconnecting) $(downloadsecond) $(downloadminute) $(downloadhour) $(downloadplural) "%dkB (%d%%) of %dkB @ %d.%01dkB/s" " (%d %s%s $(downloadremaining))" "$DownloadURLActual" "$PLUGINSDIR\Downloaded\${DownloadName}" /END - ${Else} - inetc::get /CONNECTTIMEOUT 30 /NOCOOKIES /TRANSLATE "Downloading %s..." "Connecting..." second minute hour s "%dkB (%d%%) of %dkB @ %d.%01dkB/s" " (%d %s%s remaining)" "$DownloadURLActual" "$PLUGINSDIR\Downloaded\${DownloadName}" /END - ${EndIf} - SetDetailsPrint both - DetailPrint $InstallingStatusString - SetDetailsPrint ListOnly - Pop $DOWNLOADRESULT - ${If} $DOWNLOADRESULT == "OK" - Rename "$PLUGINSDIR\Downloaded\${DownloadName}" "$PLUGINSDIR\Downloaded\${DownloadFilename}" - StrCpy $DOWNLOADEDFILE "$PLUGINSDIR\Downloaded\${DownloadFilename}" - !ifdef DownloadMD5 - md5dll::GetMD5File "$DOWNLOADEDFILE" - Pop $R0 - ${If} $R0 != ${DownloadMD5} - ${If} $SECONDDOWNLOADATTEMPT != true - StrCpy $SECONDDOWNLOADATTEMPT true - Goto DownloadTheFile - ${EndIf} - StrCpy $MD5MISMATCH "true" - - Delete "$INTERNET_CACHE\${DownloadFileName}" - Delete "$PLUGINSDIR\Downloaded\${DownloadFilename}" - SetDetailsPrint textonly - DetailPrint "" - SetDetailsPrint listonly - ${TBProgress_State} Error - ${If} $(downloadfilemismatch) != "" - MessageBox MB_OK|MB_ICONEXCLAMATION $(downloadfilemismatch) - DetailPrint $(downloadfilemismatch) - ${Else} - MessageBox MB_OK|MB_ICONEXCLAMATION `The downloaded copy of ${DownloadName} is not valid and can not be installed. Please try installing again.` - DetailPrint `The downloaded copy of ${DownloadName} is not valid and can not be installed. Please try installing again.` - ${EndIf} - ${TBProgress_State} NoProgress - Abort - ${EndIf} - !endif - ${Else} - Delete "$INTERNET_CACHE\${DownloadFileName}" - Delete "$PLUGINSDIR\Downloaded\${DownloadFilename}" - StrCpy $0 $DownloadURLActual - - ;Use backup PA.c download server if necessary - ${WordFind} "$DownloadURLActual" "http://download2.portableapps.com" "#" $R0 - ${If} $R0 == 1 - ${WordReplace} "$DownloadURLActual" "http://download2.portableapps.com" "http://download.portableapps.com" "+" $DownloadURLActual - Goto DownloadTheFile - ${EndIf} - - ${If} $SECONDDOWNLOADATTEMPT != true - ${AndIf} $DOWNLOADRESULT != "Cancelled" - StrCpy $SECONDDOWNLOADATTEMPT true - Goto DownloadTheFile - ${EndIf} - SetDetailsPrint textonly - DetailPrint "" - SetDetailsPrint listonly - ${TBProgress_State} Error - ${If} $(downloadfailed) != "" - MessageBox MB_OK|MB_ICONEXCLAMATION $(downloadfailed) - DetailPrint $(downloadfailed) - ${Else} - MessageBox MB_OK|MB_ICONEXCLAMATION `The installer was unable to download ${DownloadName}. The installation of the portable app will be incomplete without it. Please try installing again. (ERROR: $DOWNLOADRESULT)` - DetailPrint `The installer was unable to download ${DownloadName}. The installation of the portable app will be incomplete without it. Please try installing again. (ERROR: $DOWNLOADRESULT)` - ${EndIf} - ${TBProgress_State} NoProgress - Abort - ${EndIf} - ${EndIf} -!endif - -!ifdef MAINSECTIONTITLE - SectionGetFlags 1 $0 - IntOp $0 $0 & ${SF_SELECTED} - ${If} $0 != ${SF_SELECTED} - ;=== BEGIN: OPTIONAL NOT SELECTED CLEANUP CODE === - ;This will be executed before install if the optional section (additional languages, etc) is not selected - !ifmacrodef CustomCodeOptionalCleanup - !insertmacro CustomCodeOptionalCleanup - !endif - ;=== END: OPTIONAL NOT SELECTED CLEANUP CODE === - ${EndIf} -!endif - - ;=== BEGIN: PRE-INSTALL CODE === - ;This will be executed before the app is installed. Useful for cleaning up files no longer used. - !ifmacrodef CustomCodePreInstall - !insertmacro CustomCodePreInstall - !endif - ;=== END: PRE-INSTALL CODE === - - ;=== Remove specific files - !macro RemoveFile _n - !ifdef REMOVEFILE${_n} - Delete `$INSTDIR\${REMOVEFILE${_n}}` - !endif - !macroend - ${!insertmacro1-10} RemoveFile - - ;=== Rename the preserved files so they're not deleted in the next part - !macro PreserveFilePre _n - !ifdef PRESERVEFILE${_n} - ${GetFileName} `$INSTDIR\${PRESERVEFILE${_n}}` $1 - ${GetParent} `$INSTDIR\${PRESERVEFILE${_n}}` $2 - CreateDirectory `$INSTDIR\~PRESERVEFILE${_n}` - ${MoveFiles} DOS $1 $2 `$INSTDIR\~PRESERVEFILE${_n}` - !endif - !macroend - ${!insertmacro1-10} PreserveFilePre - - ;=== Remove specific directories - !macro RemoveDirectory _n - !ifdef REMOVEDIRECTORY${_n} - RMDir /r `$INSTDIR\${REMOVEDIRECTORY${_n}}` - !endif - !macroend - ${!insertmacro1-10} RemoveDirectory - - ;=== Rename the preserved directories so they're not deleted in the next part - !macro PreserveDirectoryPre _n - !ifdef PRESERVEDIRECTORY${_n} - Rename `$INSTDIR\${PRESERVEDIRECTORY${_n}}\` `$INSTDIR\~PRESERVEDIRECTORY${_n}\` - !endif - !macroend - ${!insertmacro1-10} PreserveDirectoryPre - - ;=== Remove main directories if necessary - !ifdef REMOVEAPPDIRECTORY - !ifdef COMMONFILESPLUGIN - ${GetParent} $INSTDIR $0 - ${For} $1 1 10 - Rename `$INSTDIR\~PRESERVEFILE$1\` `$0\~PRESERVEFILE$1\` - Rename `$INSTDIR\~PRESERVEDIRECTORY$1\` `$0\~PRESERVEDIRECTORY$1\` - ${Next} - RMDir /r $INSTDIR - CreateDirectory $INSTDIR - ${For} $1 1 10 - Rename `$0\~PRESERVEFILE$1\` `$INSTDIR\~PRESERVEFILE$1\` - Rename `$0\~PRESERVEDIRECTORY$1\` `$INSTDIR\~PRESERVEDIRECTORY$1\` - ${Next} - !else - RMDir /r `$INSTDIR\App` - !endif - !endif - !ifdef REMOVEDATADIRECTORY - RMDir /r `$INSTDIR\Data` - !endif - !ifdef REMOVEOTHERDIRECTORY - RMDir /r `$INSTDIR\Other` - !endif - - ;=== Rename the preserved directories back to their proper names - !macro PreserveDirectoryPost _n - !ifdef PRESERVEDIRECTORY${_n} - ${GetParent} `$INSTDIR\${PRESERVEDIRECTORY${_n}}\` $R0 - CreateDirectory $R0 - Rename `$INSTDIR\~PRESERVEDIRECTORY${_n}\` `$INSTDIR\${PRESERVEDIRECTORY${_n}}\` - !endif - !macroend - ${!insertmacro1-10} PreserveDirectoryPost - - ;=== Rename the preserved files back to their proper names - !macro PreserveFilePost _n - !ifdef PRESERVEFILE${_n} - ${GetFileName} `$INSTDIR\${PRESERVEFILE${_n}}` $1 - ${GetParent} `$INSTDIR\${PRESERVEFILE${_n}}` $2 - CreateDirectory $2 - ${MoveFiles} DOS $1 `$INSTDIR\~PRESERVEFILE${_n}` $2 - RMDir `$INSTDIR\~PRESERVEFILE${_n}` - !endif - !macroend - ${!insertmacro1-10} PreserveFilePost - - ${If} $bolAppUpgrade == true - SetDetailsPrint both - DetailPrint $InstallingStatusString - SetDetailsPrint ListOnly - ${EndIf} - - !ifndef PLUGININSTALLER - File /x thumbs.db "..\..\*.exe" - File /x thumbs.db "..\..\*.html" - SetOutPath $INSTDIR\App - File /r /x thumbs.db "..\..\App\*.*" - !else ifdef COMMONFILESPLUGIN - SetOutPath $INSTDIR - File /r /x thumbs.db /x PortableApps.comInstaller*.* "..\..\*.*" - !else ; non-CommonFiles plugin installer - SetOutPath $INSTDIR\Data - File /nonfatal /r /x thumbs.db "..\..\Data\*.*" - SetOutPath $INSTDIR\App - File /nonfatal /r /x thumbs.db "..\..\App\*.*" - !endif - - SetOutPath $INSTDIR\Other - File /nonfatal /r /x thumbs.db /x PortableApps.comInstaller*.* "..\..\Other\*.*" - - SetOutPath $INSTDIR\Other\Source - !ifdef USESCUSTOMCODE - !if ${__FILE__} == "PortableApps.comInstallerPlugin.nsi" - File "..\..\Other\Source\PortableApps.comInstallerPluginCustom.nsh" - !else - File "..\..\Other\Source\PortableApps.comInstallerCustom.nsh" - !endif - !endif - !ifndef PLUGININSTALLER - CreateDirectory "$INSTDIR\Data" - !endif - - !ifdef INCLUDEINSTALLERSOURCE - File /r /x PortableApps.comInstallerCustom.nsh /x PortableApps.comInstallerPluginCustom.nsh "..\..\Other\Source\PortableApps.comInstaller*.*" - !endif - - ;=== Extract Download Files - !ifdef DownloadURL - !ifdef DownloadTo - ;Just copy the file - CopyFiles /SILENT "$DOWNLOADEDFILE" "$INSTDIR\${DownloadTo}" - !else - ;Process the file - !ifdef Extract1To - ;Standard extract - - !macro ExtractTo _n - !ifdef Extract${_n}To - CreateDirectory "$INSTDIR\${Extract${_n}To}" - nsisunz::UnzipToLog /file "${Extract${_n}File}" "$DOWNLOADEDFILE" "$INSTDIR\${Extract${_n}To}" - Pop $R0 - ${If} $R0 <> "OK" - DetailPrint "ERROR: $R0 (${DownloadFilename} - ${Extract${_n}File})" - Abort - ${EndIf} - !endif - !macroend - ${!insertmacro1-10} ExtractTo - !endif - !ifdef AdvancedExtract1To - ;Advanced extract with 7zip - CreateDirectory "$INSTDIR\7zTemp" - SetOutPath "$INSTDIR\7zTemp" - File "${NSISDIR}\..\7zip\7z.exe" - File "${NSISDIR}\..\7zip\7z.dll" - SetOutPath $INSTDIR - - ; The original code didn't have a !ifdef for 1, but we - ; know it will be defined, and it doesn't matter if we - ; check if it is because it will be. - !macro AdvancedExtractFilter _n - !ifdef AdvancedExtract${_n}To - CreateDirectory "$INSTDIR\${AdvancedExtract${_n}To}" - ${If} "${AdvancedExtract${_n}Filter}" == "**" - ExecDOS::exec `"$INSTDIR\7zTemp\7z.exe" x -r "$DOWNLOADEDFILE" -o"$INSTDIR\${AdvancedExtract${_n}To}" * -aoa -y` "" "" - ${Else} - ExecDOS::exec `"$INSTDIR\7zTemp\7z.exe" x "$DOWNLOADEDFILE" -o"$INSTDIR\${AdvancedExtract${_n}To}" "${AdvancedExtract${_n}Filter}" -aoa -y` "" "" - ${EndIf} - Pop $R0 - ${If} $R0 <> 0 - DetailPrint "ERROR: (${DownloadFilename} > ${AdvancedExtract${_n}To})" - Abort - ${EndIf} - !endif - !macroend - ${!insertmacro1-10} AdvancedExtractFilter - - Delete "$INSTDIR\7zTemp\7z.dll" - Delete "$INSTDIR\7zTemp\7z.exe" - RMDir "$INSTDIR\7zTemp" - !endif - !ifdef DoubleExtractFilename - ;Double extract using 7zip - CreateDirectory "$INSTDIR\7zTemp" - SetOutPath "$INSTDIR\7zTemp" - File "${NSISDIR}\..\7zip\7z.exe" - File "${NSISDIR}\..\7zip\7z.dll" - SetOutPath $INSTDIR - - CreateDirectory "$PLUGINSDIR\Downloaded2" - ExecDOS::exec `"$INSTDIR\7zTemp\7z.exe" x "$DOWNLOADEDFILE" -o"$PLUGINSDIR\Downloaded2" "${DoubleExtractFilename}" -aoa -y` "" "" - Pop $R0 - ${If} $R0 <> 0 - DetailPrint "ERROR: (${DownloadFilename} > ${DoubleExtractFilename})" - Abort - ${EndIf} - - ; The original code didn't have a !ifdef for 1, but we - ; know it will be defined, and it doesn't matter if we - ; check if it is because it will be. - !macro DoubleExtractTo _n - !ifdef DoubleExtract${_n}To - CreateDirectory "$INSTDIR\${DoubleExtract${_n}To}" - ${If} "${DoubleExtract${_n}Filter}" == "**" - ExecDOS::exec `"$INSTDIR\7zTemp\7z.exe" x -r "$PLUGINSDIR\Downloaded2\${DoubleExtractFilename}" -o"$INSTDIR\${DoubleExtract${_n}To}" * -aoa -y` "" "" - ${Else} - ExecDOS::exec `"$INSTDIR\7zTemp\7z.exe" x "$PLUGINSDIR\Downloaded2\${DoubleExtractFilename}" -o"$INSTDIR\${DoubleExtract${_n}To}" "${DoubleExtract${_n}Filter}" -aoa -y` "" "" - ${EndIf} - Pop $R0 - ${If} $R0 <> 0 - DetailPrint "ERROR: (${DoubleExtractFilename} > ${DoubleExtract${_n}To})" - Abort - ${EndIf} - !endif - !macroend - ${!insertmacro1-10} DoubleExtractTo - - Delete "$INSTDIR\7zTemp\7z.exe" - Delete "$INSTDIR\7zTemp\7z.dll" - RMDir "$INSTDIR\7zTemp" - !endif - !endif - !endif - - ;=== Copy Local Files - !ifdef COPYLOCALFILES - ${If} ${FileExists} "$CopyLocalFilesFrom\*.*" - CreateDirectory "$INSTDIR\${CopyToDirectory}" - CopyFiles /SILENT "$CopyLocalFilesFrom\*.*" "$INSTDIR\${CopyToDirectory}" - ${Else} - StrCpy $MISSINGFILEORPATH $CopyLocalFilesFrom - ${If} $(copylocalfilesnotfound) != "" - MessageBox MB_OK|MB_ICONINFORMATION $(copylocalfilesnotfound) - ${Else} - MessageBox MB_OK|MB_ICONINFORMATION `This installer copies a local version of the application and makes it portable. Unfortunately, a local copy of the application was not found. You may reinstall or copy the files yourself to complete the installation at a later time. (ERROR: $MISSINGFILEORPATH could not be found.)` - ${EndIf} - ${EndIf} - !endif - - ;=== BEGIN: POST-INSTALL CODE === - ;This will be executed after the app is installed. Useful for updating configuration files. - !ifmacrodef CustomCodePostInstall - !insertmacro CustomCodePostInstall - !endif - ;=== END: POST-INSTALL CODE === - - !ifndef PLUGININSTALLER - ;=== Refresh PortableApps.com Menu (not final version) - ${GetParent} $INSTDIR $0 - ;=== Check that it exists at the right location - SetDetailsPrint both - DetailPrint '$(checkforplatform)' - ${If} ${FileExists} `$0\PortableApps.com\PortableAppsPlatform.exe` - ;=== Check that it's the real deal so we aren't hanging with no response - MoreInfo::GetProductName `$0\PortableApps.com\PortableAppsPlatform.exe` - Pop $1 - ${If} $1 == "PortableApps.com Platform" - MoreInfo::GetCompanyName `$0\PortableApps.com\PortableAppsPlatform.exe` - Pop $1 - ${If} $1 == "PortableApps.com" - - ;=== Check that it's running - FindProcDLL::FindProc "PortableAppsPlatform.exe" - ${If} $R0 == "1" - - ;=== Send message for the Menu to refresh - CreateDirectory "$0\PortableApps.com\Data" - WriteINIStr "$0\PortableApps.com\Data\NewApp.ini" "NewApp" "AppID" "${APPID}" - - DetailPrint '$(refreshmenu)' - ${IfNot} ${FileExists} `$0\PortableApps.com\App\PortableAppsPlatform.exe` - StrCpy $2 'PortableApps.comPlatformWindowMessageToRefresh$0\PortableApps.com\PortableAppsPlatform.exe' - System::Call "user32::RegisterWindowMessage(t r2) i .r3" - SendMessage 65535 $3 0 0 /TIMEOUT=1 - ${Else} ; old message - StrCpy $2 'PortableApps.comPlatformWindowMessageToRefresh$0\PortableApps.com\App\PortableAppsPlatform.exe' - System::Call "user32::RegisterWindowMessage(t r2) i .r3" - SendMessage 65535 $3 0 0 /TIMEOUT=1 - ${EndIf} - ${EndIf} - ${EndIf} - ${EndIf} - ${EndIf} - !endif - DetailPrint $InstallingStatusString - SetDetailsPrint listonly - Delete "$INSTDIR\7zTemp\7z.exe" - Delete "$INSTDIR\7zTemp\7z.dll" - RMDir "$INSTDIR\7zTemp" - -!ifdef LICENSEAGREEMENT - CreateDirectory "$INSTDIR\Data\PortableApps.comInstaller" - WriteINIStr "$INSTDIR\Data\PortableApps.comInstaller\license.ini" "PortableApps.comInstaller" "EULAVersion" $INTERNALEULAVERSION - ClearErrors -!endif - -!ifdef DownloadURL - Delete "$INTERNET_CACHE\${DownloadFileName}" -!endif - ${If} $bolLogFile == true - ${DumpLogToFile} "$EXEDIR\$EXEFILE.log" - ${EndIf} - SetOutPath $INSTDIR -SectionEnd - -!ifdef MAINSECTIONTITLE - Section /o "${OPTIONALSECTIONTITLE}" - SetOutPath $INSTDIR - File /r "..\..\Optional1\*.*" - StrCpy $OPTIONAL1DONE "true" - SectionEnd - - Section "-UpdateAppInfo" SecUpdateAppInfo - !ifndef PLUGININSTALLER - ${If} $OPTIONAL1DONE != "true" - ${AndIf} "${OPTIONALSECTIONNOTSELECTEDINSTALLTYPE}" != "" - WriteINIStr "$INSTDIR\App\AppInfo\appinfo.ini" "Details" "InstallType" "${OPTIONALSECTIONNOTSELECTEDINSTALLTYPE}" - ${ElseIf} "${OPTIONALSECTIONSELECTEDINSTALLTYPE}" != "" - WriteINIStr "$INSTDIR\App\AppInfo\appinfo.ini" "Details" "InstallType" "${OPTIONALSECTIONSELECTEDINSTALLTYPE}" - ${EndIf} - !endif - SectionEnd - - !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${MAINSECTIONIDX} "${MAINSECTIONDESCRIPTION}" - !insertmacro MUI_DESCRIPTION_TEXT ${OPTIONALSECTIONIDX} "${OPTIONALSECTIONDESCRIPTION}" - !insertmacro MUI_FUNCTION_DESCRIPTION_END -!endif - -Function .onInstFailed - !ifdef COPYLOCALFILES - ${registry::Unload} - !endif - RMDir $INSTDIR ;remove directory if empty -FunctionEnd - -!ifdef COPYLOCALFILES - Function .onInstSuccess - ${registry::Unload} - FunctionEnd - Function CustomAbortFunction - ${registry::Unload} - FunctionEnd -!endif \ No newline at end of file diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerConfig.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerConfig.nsh deleted file mode 100644 index bbf1e31c7..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerConfig.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerCustom.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerCustom.nsh deleted file mode 100644 index 25dbbad43..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerCustom.nsh +++ /dev/null @@ -1,5 +0,0 @@ -!macro CustomCodePostInstall -CopyFiles /SILENT "$INSTDIR\App\Greenshot\Greenshot.exe.config" "$INSTDIR\" -ReadINIStr $0 "$INSTDIR\App\AppInfo\appinfo.ini" "Version" "PackageVersion" -ExecShell "open" "http://getgreenshot.org/thank-you/?language=en-US&version=$0" -!macroend \ No newline at end of file diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerDumpLogToFile.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerDumpLogToFile.nsh deleted file mode 100644 index 180cd81a8..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerDumpLogToFile.nsh +++ /dev/null @@ -1,62 +0,0 @@ -;http://nsis.sourceforge.net/Docs/AppendixD.html#D.4 -;Define added by John T. Haller of PortableApps.com - -;NOTE - Not yet used. Added for future reference. - -!ifndef DumpLogToFile - -!define DumpLogToFile "!insertmacro DumpLogToFile" -!macro DumpLogToFile logfilename - Delete `${logfilename}` - push `${logfilename}` - call DumpLog -!macroend - -!define LVM_GETITEMCOUNT 0x1004 -!define LVM_GETITEMTEXT 0x1073 - -Function DumpLog - Exch $5 - Push $0 - Push $1 - Push $2 - Push $3 - Push $4 - Push $6 - - FindWindow $0 "#32770" "" $HWNDPARENT - GetDlgItem $0 $0 1016 - StrCmp $0 0 error - FileOpen $5 $5 "w" - FileWriteWord $5 0xfeff ; Write the BOM - StrCmp $5 0 error - SendMessage $0 ${LVM_GETITEMCOUNT} 0 0 $6 - System::StrAlloc ${NSIS_MAX_STRLEN} - Pop $3 - StrCpy $2 0 - System::Call "*(i, i, i, i, i, i, i, i, i) i \ - (0, 0, 0, 0, 0, r3, ${NSIS_MAX_STRLEN}) .r1" - loop: StrCmp $2 $6 done - System::Call "User32::SendMessageW(i, i, i, i) i \ - ($0, ${LVM_GETITEMTEXT}, $2, r1)" - System::Call "*$3(&t${NSIS_MAX_STRLEN} .r4)" - FileWriteUTF16LE $5 "$4$\r$\n" - IntOp $2 $2 + 1 - Goto loop - done: - FileClose $5 - System::Free $1 - System::Free $3 - Goto exit - error: - ;MessageBox MB_OK error - exit: - Pop $6 - Pop $4 - Pop $3 - Pop $2 - Pop $1 - Pop $0 - Exch $5 -FunctionEnd -!endif \ No newline at end of file diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Afrikaans.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Afrikaans.nsh deleted file mode 100644 index 1ab502355..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Afrikaans.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Albanian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Albanian.nsh deleted file mode 100644 index e08e0c985..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Albanian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Arabic.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Arabic.nsh deleted file mode 100644 index 961c7ec12..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Arabic.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Armenian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Armenian.nsh deleted file mode 100644 index be22d1312..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Armenian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Basque.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Basque.nsh deleted file mode 100644 index 549999952..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Basque.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Belarusian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Belarusian.nsh deleted file mode 100644 index 5c453841c..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Belarusian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Bosnian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Bosnian.nsh deleted file mode 100644 index 60e537169..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Bosnian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Breton.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Breton.nsh deleted file mode 100644 index ceda00b58..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Breton.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Bulgarian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Bulgarian.nsh deleted file mode 100644 index 29f08efaa..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Bulgarian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Catalan.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Catalan.nsh deleted file mode 100644 index e648e87f8..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Catalan.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Cibemba.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Cibemba.nsh deleted file mode 100644 index 27414b458..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Cibemba.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Croatian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Croatian.nsh deleted file mode 100644 index a05268fad..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Croatian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Czech.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Czech.nsh deleted file mode 100644 index e59f3cfdb..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Czech.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Danish.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Danish.nsh deleted file mode 100644 index 2806d4835..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Danish.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Dutch.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Dutch.nsh deleted file mode 100644 index 31ceeba6c..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Dutch.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Efik.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Efik.nsh deleted file mode 100644 index 08f2d22e8..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Efik.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/English.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/English.nsh deleted file mode 100644 index f78c3ee50..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/English.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/EnglishGB.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/EnglishGB.nsh deleted file mode 100644 index ea4278e08..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/EnglishGB.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Esperanto.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Esperanto.nsh deleted file mode 100644 index 5bcff5e2f..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Esperanto.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Estonian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Estonian.nsh deleted file mode 100644 index fd68a3416..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Estonian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Farsi.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Farsi.nsh deleted file mode 100644 index 9ccedd431..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Farsi.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Finnish.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Finnish.nsh deleted file mode 100644 index 1229b5be8..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Finnish.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/French.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/French.nsh deleted file mode 100644 index c1bff71ff..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/French.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Galician.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Galician.nsh deleted file mode 100644 index 35162c3f3..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Galician.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Georgian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Georgian.nsh deleted file mode 100644 index 8980079b4..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Georgian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/German.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/German.nsh deleted file mode 100644 index c36e18416..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/German.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Greek.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Greek.nsh deleted file mode 100644 index e999dc67d..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Greek.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Hebrew.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Hebrew.nsh deleted file mode 100644 index dcbbea08a..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Hebrew.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Hungarian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Hungarian.nsh deleted file mode 100644 index be2ce378b..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Hungarian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Icelandic.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Icelandic.nsh deleted file mode 100644 index 894c08b3b..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Icelandic.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Igbo.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Igbo.nsh deleted file mode 100644 index f98f7476e..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Igbo.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Indonesian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Indonesian.nsh deleted file mode 100644 index ee41db8c0..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Indonesian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Irish.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Irish.nsh deleted file mode 100644 index a50c78bd1..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Irish.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Italian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Italian.nsh deleted file mode 100644 index 1e2f2d1b2..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Italian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Japanese.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Japanese.nsh deleted file mode 100644 index 43274e06d..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Japanese.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Khmer.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Khmer.nsh deleted file mode 100644 index 4397ebb1b..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Khmer.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Korean.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Korean.nsh deleted file mode 100644 index b88ef5510..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Korean.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Kurdish.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Kurdish.nsh deleted file mode 100644 index 0deedd644..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Kurdish.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Latvian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Latvian.nsh deleted file mode 100644 index ee02c8429..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Latvian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Lithuanian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Lithuanian.nsh deleted file mode 100644 index eeff7057d..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Lithuanian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Luxembourgish.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Luxembourgish.nsh deleted file mode 100644 index a674cf2d2..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Luxembourgish.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Macedonian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Macedonian.nsh deleted file mode 100644 index 43363ebc0..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Macedonian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Malagasy.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Malagasy.nsh deleted file mode 100644 index 498b87dcf..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Malagasy.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Malay.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Malay.nsh deleted file mode 100644 index d128c19fc..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Malay.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Mongolian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Mongolian.nsh deleted file mode 100644 index 8155e94a4..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Mongolian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Norwegian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Norwegian.nsh deleted file mode 100644 index 98fffbd43..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Norwegian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/NorwegianNynorsk.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/NorwegianNynorsk.nsh deleted file mode 100644 index 12aed3819..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/NorwegianNynorsk.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Pashto.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Pashto.nsh deleted file mode 100644 index 732b06e37..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Pashto.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Polish.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Polish.nsh deleted file mode 100644 index 04a98f24d..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Polish.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Portuguese.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Portuguese.nsh deleted file mode 100644 index 9fadcd98f..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Portuguese.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/PortugueseBR.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/PortugueseBR.nsh deleted file mode 100644 index 3e96593a6..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/PortugueseBR.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Romanian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Romanian.nsh deleted file mode 100644 index fa6bfea23..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Romanian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Russian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Russian.nsh deleted file mode 100644 index 772cc4ff6..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Russian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Serbian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Serbian.nsh deleted file mode 100644 index 36db0a76a..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Serbian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/SerbianLatin.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/SerbianLatin.nsh deleted file mode 100644 index 0042eada3..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/SerbianLatin.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/SimpChinese.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/SimpChinese.nsh deleted file mode 100644 index 373016efa..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/SimpChinese.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Slovak.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Slovak.nsh deleted file mode 100644 index 338bb0dc4..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Slovak.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Slovenian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Slovenian.nsh deleted file mode 100644 index 6ac04ea3d..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Slovenian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Spanish.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Spanish.nsh deleted file mode 100644 index 962549440..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Spanish.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/SpanishInternational.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/SpanishInternational.nsh deleted file mode 100644 index be9738f74..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/SpanishInternational.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Swahili.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Swahili.nsh deleted file mode 100644 index 9659d04e5..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Swahili.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Swedish.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Swedish.nsh deleted file mode 100644 index 4519c17d7..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Swedish.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Thai.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Thai.nsh deleted file mode 100644 index d0578b00f..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Thai.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/TradChinese.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/TradChinese.nsh deleted file mode 100644 index 914c4ce64..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/TradChinese.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Turkish.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Turkish.nsh deleted file mode 100644 index eb3ece757..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Turkish.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Ukrainian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Ukrainian.nsh deleted file mode 100644 index 6ad7c263e..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Ukrainian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Uzbek.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Uzbek.nsh deleted file mode 100644 index 297e6a3bd..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Uzbek.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Valencian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Valencian.nsh deleted file mode 100644 index 05e1e1366..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Valencian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Vietnamese.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Vietnamese.nsh deleted file mode 100644 index 59afdcdef..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Vietnamese.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Welsh.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Welsh.nsh deleted file mode 100644 index f00460a44..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Welsh.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Yoruba.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Yoruba.nsh deleted file mode 100644 index be845c758..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerLanguages/Yoruba.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerMoveFiles.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerMoveFiles.nsh deleted file mode 100644 index 451ab65ee..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerMoveFiles.nsh +++ /dev/null @@ -1,104 +0,0 @@ -; Copyright (c) 2008, Harold E Austin Jr -; 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 Harold E Austin Jr ``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 Harold E Austin Jr 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. - -/* - MoveFiles.nsh -- version 1.0 (May 5, 2008) - move files matching "filespec" from "source-directory" to "destination-directory" - - usage: - !include MoveFiles.nsh - - ${MoveFiles} mode "filespec" "source-directory" "destination-directory" - - where: - mode can be DOS, DIR, FORCE or DIR+FORCE (anything else = DOS): - DOS means act like the DOS MOVE command (move only files) - DIR means move files AND directories - FORCE means overwrite destination files (like MOVE/Y) - - example: - CreateDirectory "C:\NEW\DIR" - DetailPrint "Moving files and directories..." - ${MoveFiles} DIR+FORCE "*" "C:\OLD\DIR" "C:\NEW\DIR" - DetailPrint `"Processing"...` - Sleep 2000 - DetailPrint "Moving only the files back..." - ${MoveFiles} DOS "*" "C:\NEW\DIR" "C:\OLD\DIR" - DetailPrint "Moving the directories back..." - ${MoveFiles} DIR "*" "C:\NEW\DIR" "C:\OLD\DIR" -*/ -!ifndef MoveFiles -!define MoveFiles "!insertmacro MoveFiles" -!macro MoveFiles mode filespec sourcedir destdir - push `${destdir}` - push `${sourcedir}` - push `${filespec}` - push `${mode}` - call MoveFiles -!macroend - -Function MoveFiles ; mode filespec sourcedir destdir - Exch $0 ; mode, directory mode - Exch - Exch $1 ; filespec, force mode - Exch 2 - Exch $2 ; source directory - Exch 3 - Exch $3 ; destination directory - Push $4 ; FindFirst/FindNext search handle - Push $5 ; current filename matching filespec in sourcedir - FindFirst $4 $5 "$2\$1" - StrCpy $1 "" ; FORCE mode disabled by default - StrCmp $0 FORCE 0 +2 - StrCpy $1 FORCE - StrCmp $0 DIR+FORCE 0 +3 - StrCpy $0 DIR - StrCpy $1 FORCE - loop: - StrCmp $5 "" done ; $5 == "", if no more matching files - StrCmp $5 . next - StrCmp $5 .. next - StrCmp $0 DIR +2 - ; DIR mode disabled: ignore directories that match ${filespec} - IfFileExists "$2\$5\*.*" next - StrCmp $1 FORCE 0 +4 - ; FORCE mode: make sure destination doesn't exist - Delete "$3\$5" - StrCmp $0 DIR 0 +2 - RMDir /R "$3\$5" - Rename "$2\$5" "$3\$5" - next: - FindNext $4 $5 - Goto loop - done: - FindClose $4 ; finished with this search; close handle - Pop $5 - Pop $4 - Pop $3 - Pop $0 - Pop $1 - Pop $2 -FunctionEnd -!endif diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerTBProgress.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerTBProgress.nsh deleted file mode 100644 index 7fa976961..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/installer/PortableApps.comInstallerTBProgress.nsh +++ /dev/null @@ -1,59 +0,0 @@ -!include "LogicLib.nsh" - -!ifndef CLSCTX_INPROC_SERVER - !define CLSCTX_INPROC_SERVER 1 -!endif - -!define CLSID_ITaskbarList {56fdf344-fd6d-11d0-958a-006097c9a090} - -!define IID_ITaskbarList3 {ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf} -!define ITaskbarList3->SetProgressState $ITaskbarList3->10 -!define ITaskbarList3->SetProgressValue $ITaskbarList3->9 - -!define TBPF_NOPROGRESS 0x00000000 ; Normal state / no progress bar -!define TBPF_INDETERMINATE 0x00000001 ; Marquee style progress bar -!define TBPF_NORMAL 0x00000002 ; Standard progress bar -!define TBPF_ERROR 0x00000004 ; Red taskbar button to indicate an error occurred -!define TBPF_PAUSED 0x00000008 ; Yellow taskbar button to indicate user attention - ; (input) is required to resume progress - -Var ITaskbarList3 - -!macro TBProgress_Init - !ifndef TBProgressInitialized - !define TBProgressInitialized - ${Unless} ${Silent} - System::Call "ole32::CoCreateInstance( \ - g '${CLSID_ITaskbarList}', \ - i 0, \ - i ${CLSCTX_INPROC_SERVER}, \ - g '${IID_ITaskbarList3}', \ - *i .s)" - Pop $ITaskbarList3 - ${Else} - StrCpy $ITaskbarList3 0 - ${EndIf} - !endif -!macroend -!define TBProgress_Init `!insertmacro TBProgress_Init` - -!macro TBProgress_Progress Val Max - ${TBProgress_Init} - ${If} $ITaskbarList3 <> 0 - System::Call "${ITaskbarList3->SetProgressValue}(i$HWNDPARENT, l${Val}, l${Max})" - ${EndIf} -!macroend -!define TBProgress_Progress `!insertmacro TBProgress_Progress` - -!macro TBProgress Val - ${TBProgress_Progress} ${Val} 100 -!macroend -!define TBProgress `!insertmacro TBProgress` - -!macro TBProgress_State State - ${TBProgress_Init} - ${If} $ITaskbarList3 <> 0 - System::Call "${ITaskbarList3->SetProgressState}(i$HWNDPARENT, i${TBPF_${State}})" - ${EndIf} -!macroend -!define TBProgress_State `!insertmacro TBProgress_State` \ No newline at end of file diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Bin/GenPat.exe b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Bin/GenPat.exe deleted file mode 100644 index 04373fcb5..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Bin/GenPat.exe and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Bin/LibraryLocal.exe b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Bin/LibraryLocal.exe deleted file mode 100644 index 39063e90a..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Bin/LibraryLocal.exe and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Bin/MakeLangId.exe b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Bin/MakeLangId.exe deleted file mode 100644 index 16ade1390..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Bin/MakeLangId.exe and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Bin/RegTool.bin b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Bin/RegTool.bin deleted file mode 100644 index 5d11756f2..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Bin/RegTool.bin and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Bin/zip2exe.exe b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Bin/zip2exe.exe deleted file mode 100644 index 6a3354093..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Bin/zip2exe.exe and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/COPYING b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/COPYING deleted file mode 100644 index afd4902ab..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/COPYING and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/ExDll/exdll.h b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/ExDll/exdll.h deleted file mode 100644 index 0e69c1cdd..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/ExDll/exdll.h +++ /dev/null @@ -1,116 +0,0 @@ -#ifndef _EXDLL_H_ -#define _EXDLL_H_ - -// only include this file from one place in your DLL. -// (it is all static, if you use it in two places it will fail) - -#define EXDLL_INIT() { \ - g_stringsize=string_size; \ - g_stacktop=stacktop; \ - g_variables=variables; } - -// For page showing plug-ins -#define WM_NOTIFY_OUTER_NEXT (WM_USER+0x8) -#define WM_NOTIFY_CUSTOM_READY (WM_USER+0xd) -#define NOTIFY_BYE_BYE 'x' - -typedef struct _stack_t { - struct _stack_t *next; - TCHAR text[1]; // this should be the length of string_size -} stack_t; - - -static unsigned int g_stringsize; -static stack_t **g_stacktop; -static TCHAR *g_variables; - -static int __stdcall popstring(TCHAR *str); // 0 on success, 1 on empty stack -static void __stdcall pushstring(const TCHAR *str); - -enum -{ -INST_0, // $0 -INST_1, // $1 -INST_2, // $2 -INST_3, // $3 -INST_4, // $4 -INST_5, // $5 -INST_6, // $6 -INST_7, // $7 -INST_8, // $8 -INST_9, // $9 -INST_R0, // $R0 -INST_R1, // $R1 -INST_R2, // $R2 -INST_R3, // $R3 -INST_R4, // $R4 -INST_R5, // $R5 -INST_R6, // $R6 -INST_R7, // $R7 -INST_R8, // $R8 -INST_R9, // $R9 -INST_CMDLINE, // $CMDLINE -INST_INSTDIR, // $INSTDIR -INST_OUTDIR, // $OUTDIR -INST_EXEDIR, // $EXEDIR -INST_LANG, // $LANGUAGE -__INST_LAST -}; - -typedef struct { - int autoclose; - int all_user_var; - int exec_error; - int abort; - int exec_reboot; - int reboot_called; - int cur_insttype; - int insttype_changed; - int silent; - int instdir_error; - int rtl; - int errlvl; -} exec_flags; - -typedef struct { - exec_flags *exec_flags; - int (__stdcall *ExecuteCodeSegment)(int, HWND); -} extra_parameters; - -// utility functions (not required but often useful) -static int __stdcall popstring(TCHAR *str) -{ - stack_t *th; - if (!g_stacktop || !*g_stacktop) return 1; - th=(*g_stacktop); - lstrcpy(str,th->text); - *g_stacktop = th->next; - GlobalFree((HGLOBAL)th); - return 0; -} - -static void __stdcall pushstring(const TCHAR *str) -{ - stack_t *th; - if (!g_stacktop) return; - th=(stack_t*)GlobalAlloc(GPTR,sizeof(stack_t)+g_stringsize*sizeof(TCHAR)); - lstrcpyn(th->text,str,g_stringsize); - th->next=*g_stacktop; - *g_stacktop=th; -} - -static TCHAR * __stdcall getuservariable(const int varnum) -{ - if (varnum < 0 || varnum >= __INST_LAST) return NULL; - return g_variables+varnum*g_stringsize; -} - -static void __stdcall setuservariable(const int varnum, const TCHAR *var) -{ - if (var != NULL && varnum >= 0 && varnum < __INST_LAST) - lstrcpy(g_variables + varnum*g_stringsize, var); -} - - - -#endif//_EXDLL_H_ \ No newline at end of file diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/big.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/big.bmp deleted file mode 100644 index d6db07793..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/big.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/classic-cross.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/classic-cross.bmp deleted file mode 100644 index a4d37a14a..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/classic-cross.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/classic.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/classic.bmp deleted file mode 100644 index 83e3cf565..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/classic.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/colorful.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/colorful.bmp deleted file mode 100644 index 7713942e0..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/colorful.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/grey-cross.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/grey-cross.bmp deleted file mode 100644 index b28b59bbc..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/grey-cross.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/grey.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/grey.bmp deleted file mode 100644 index b374432b7..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/grey.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/modern.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/modern.bmp deleted file mode 100644 index 62468dedc..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/modern.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/red-round.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/red-round.bmp deleted file mode 100644 index 31d3c0252..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/red-round.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/red.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/red.bmp deleted file mode 100644 index e14e6b4a0..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/red.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/simple-round.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/simple-round.bmp deleted file mode 100644 index 695023224..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/simple-round.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/simple-round2.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/simple-round2.bmp deleted file mode 100644 index ee1ec8427..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/simple-round2.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/simple.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/simple.bmp deleted file mode 100644 index c687a1d92..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Checks/simple.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/nsis-r.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/nsis-r.bmp deleted file mode 100644 index eb3650f7d..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/nsis-r.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/nsis.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/nsis.bmp deleted file mode 100644 index cbb52312f..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/nsis.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/orange-nsis.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/orange-nsis.bmp deleted file mode 100644 index b4a0cf94b..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/orange-nsis.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/orange-r-nsis.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/orange-r-nsis.bmp deleted file mode 100644 index 2da34f174..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/orange-r-nsis.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/orange-r.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/orange-r.bmp deleted file mode 100644 index c74fbdd51..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/orange-r.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/orange-uninstall-nsis.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/orange-uninstall-nsis.bmp deleted file mode 100644 index 635596b20..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/orange-uninstall-nsis.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/orange-uninstall-r-nsis.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/orange-uninstall-r-nsis.bmp deleted file mode 100644 index 5f215d774..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/orange-uninstall-r-nsis.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/orange-uninstall-r.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/orange-uninstall-r.bmp deleted file mode 100644 index 1672afa6d..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/orange-uninstall-r.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/orange-uninstall.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/orange-uninstall.bmp deleted file mode 100644 index 97be6746e..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/orange-uninstall.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/orange.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/orange.bmp deleted file mode 100644 index 4ac1413b3..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/orange.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/win.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/win.bmp deleted file mode 100644 index 6612357a3..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Header/win.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/arrow-install.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/arrow-install.ico deleted file mode 100644 index 0441d5cef..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/arrow-install.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/arrow-uninstall.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/arrow-uninstall.ico deleted file mode 100644 index f3e7bfed3..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/arrow-uninstall.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/arrow2-install.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/arrow2-install.ico deleted file mode 100644 index e047f7db4..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/arrow2-install.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/arrow2-uninstall.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/arrow2-uninstall.ico deleted file mode 100644 index fa6064fab..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/arrow2-uninstall.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/box-install.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/box-install.ico deleted file mode 100644 index fd6c7c1f3..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/box-install.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/box-uninstall.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/box-uninstall.ico deleted file mode 100644 index bc275415f..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/box-uninstall.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/classic-install.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/classic-install.ico deleted file mode 100644 index 5afcc62e8..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/classic-install.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/classic-uninstall.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/classic-uninstall.ico deleted file mode 100644 index 09532909e..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/classic-uninstall.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/llama-blue.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/llama-blue.ico deleted file mode 100644 index 08288b6dd..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/llama-blue.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/llama-grey.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/llama-grey.ico deleted file mode 100644 index 4749479fa..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/llama-grey.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-install-blue-full.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-install-blue-full.ico deleted file mode 100644 index 8f1c51222..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-install-blue-full.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-install-blue.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-install-blue.ico deleted file mode 100644 index fecdc2739..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-install-blue.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-install-colorful.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-install-colorful.ico deleted file mode 100644 index 2908f58be..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-install-colorful.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-install-full.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-install-full.ico deleted file mode 100644 index 3aa83e9f4..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-install-full.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-install.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-install.ico deleted file mode 100644 index f8fbd5ffa..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-install.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-uninstall-blue-full.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-uninstall-blue-full.ico deleted file mode 100644 index cd9227971..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-uninstall-blue-full.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-uninstall-blue.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-uninstall-blue.ico deleted file mode 100644 index 77031b58e..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-uninstall-blue.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-uninstall-colorful.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-uninstall-colorful.ico deleted file mode 100644 index 461035cc2..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-uninstall-colorful.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-uninstall-full.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-uninstall-full.ico deleted file mode 100644 index a134f586c..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-uninstall-full.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-uninstall.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-uninstall.ico deleted file mode 100644 index 6c7410c2f..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/modern-uninstall.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/nsis1-install.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/nsis1-install.ico deleted file mode 100644 index e18044928..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/nsis1-install.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/nsis1-uninstall.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/nsis1-uninstall.ico deleted file mode 100644 index a37774cf3..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/nsis1-uninstall.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/orange-install-nsis.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/orange-install-nsis.ico deleted file mode 100644 index ef3975f56..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/orange-install-nsis.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/orange-install.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/orange-install.ico deleted file mode 100644 index 1db75f8e4..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/orange-install.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/orange-uninstall-nsis.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/orange-uninstall-nsis.ico deleted file mode 100644 index 431eb2e0f..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/orange-uninstall-nsis.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/orange-uninstall.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/orange-uninstall.ico deleted file mode 100644 index 59c79f32b..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/orange-uninstall.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/pixel-install.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/pixel-install.ico deleted file mode 100644 index f2106d611..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/pixel-install.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/pixel-uninstall.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/pixel-uninstall.ico deleted file mode 100644 index 2003b2df8..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/pixel-uninstall.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/win-install.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/win-install.ico deleted file mode 100644 index a5eb774b3..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/win-install.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/win-uninstall.ico b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/win-uninstall.ico deleted file mode 100644 index 932917696..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Icons/win-uninstall.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/arrow.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/arrow.bmp deleted file mode 100644 index 9f7426bc8..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/arrow.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/llama.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/llama.bmp deleted file mode 100644 index 1e1d94251..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/llama.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/nsis.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/nsis.bmp deleted file mode 100644 index dcc38094c..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/nsis.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/nullsoft.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/nullsoft.bmp deleted file mode 100644 index d4145d4ff..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/nullsoft.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/orange-nsis.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/orange-nsis.bmp deleted file mode 100644 index ec46bd852..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/orange-nsis.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/orange-uninstall-nsis.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/orange-uninstall-nsis.bmp deleted file mode 100644 index 661e70232..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/orange-uninstall-nsis.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/orange-uninstall.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/orange-uninstall.bmp deleted file mode 100644 index 097d09429..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/orange-uninstall.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/orange.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/orange.bmp deleted file mode 100644 index 196a5b7a7..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/orange.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/win.bmp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/win.bmp deleted file mode 100644 index 5524eef94..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Graphics/Wizard/win.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/Example.nsi b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/Example.nsi deleted file mode 100644 index 2f95e06b6..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/Example.nsi +++ /dev/null @@ -1,53 +0,0 @@ - -;-------------------------------- -; General Attributes - -Name "Inetc plug-in Test" -OutFile "inetc.exe" -;SilentInstall silent - - -;-------------------------------- -;Interface Settings - - !include "MUI.nsh" - !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install-colorful.ico" - !insertmacro MUI_PAGE_WELCOME - !insertmacro MUI_PAGE_INSTFILES - !insertmacro MUI_LANGUAGE "English" - -;SetFont 14 - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - - SetDetailsView hide - -; two files download, popup mode - inetc::get /caption "2003-2004 reports" /popup "" "http://ineum.narod.ru/spr_2003.htm" "$EXEDIR\spr3.htm" "http://ineum.narod.ru/spr_2004.htm" "$EXEDIR\spr4.htm" /end - Pop $0 # return value = exit code, "OK" means OK - -; single file, NSISdl-style embedded progress bar with specific cancel button text - inetc::get /caption "2005 report" /canceltext "interrupt!" "http://ineum.narod.ru/spr_2005.htm" "$EXEDIR\spr5.htm" /end - Pop $1 # return value = exit code, "OK" means OK - -; banner with 2 text lines and disabled Cancel button - inetc::get /caption "2006 report" /banner "Banner mode with /nocancel option setten$\nSecond Line" /nocancel "http://ineum.narod.ru/spr_2006.htm" "$EXEDIR\spr6.htm" /end - Pop $2 # return value = exit code, "OK" means OK - - MessageBox MB_OK "Download Status: $0, $1, $2" -SectionEnd - - -;-------------------------------- -;Installer Functions - -Function .onInit - -; plug-in auto-recognizes 'no parent dlg' in onInit and works accordingly -; inetc::head /RESUME "Network error. Retry?" "http://ineum.narod.ru/spr_2003.htm" "$EXEDIR\spr3.txt" -; Pop $4 - -FunctionEnd \ No newline at end of file diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/Readme.htm b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/Readme.htm deleted file mode 100644 index 40e0f4766..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/Readme.htm +++ /dev/null @@ -1,140 +0,0 @@ -
-

Contents

-
    -
  • 1 Links -
  • 2 Description -
  • 3 Command line -
      -
    • 3.1 get DLL Function -
    • 3.2 post DLL Function -
    • 3.3 head DLL Function -
    • 3.4 put DLL Function -
    -
  • 4 Examples -
  • 5 Credits -
-
- -

Links

-Download: http://nsis.sourceforge.net/Inetc_plug-in - -

Description

-Internet client plug-in for files download and upload. Based on the InetLoad plug-in. -Network implementation uses MS WinInet API, supports http/https and ftp protocols. -Plugin has better proxy support compare to NSISdl plug-in. Command line may include -few URL/File pairs to be transfered. If server or proxy login/password are not setten in the script, -displays IE-style authentication dialog (except silent mode). Plug-in supports 3 -"transfer in progress" display modes: -
    -
  • old NSISdl style - additional embedded progress bar and text on the INSTFILES page; -
  • POPUP dialog mode with detailed info; -
  • BANNER mode with simple popup window. -
-Plug-in recognizes Installer's Silent mode and this case hides any output (this feature -requires NSIS 2.03 or later). Program implements simple re-get functionality - host -reconnect and download from current position after short pause. While program depends on IE settings, -it changes current IE mode to online. NSISdl code fragment was used for progress bar displaying -in the "old style" mode. For ftp use "host/path" for file location relative to user's home dir and -"host//path" for absolute path. - -

Command line

- -Plug-in DLL functions (entry points): get, post, head, put - -

get DLL Function

- -inetc::get [/PROXY IP:PORT] [/USERNAME PROXY_LOGIN /PASSWORD PROXY_PASSWD] [/NOCOOKIES] - [/NOPROXY] [/NOCANCEL] [/CONNECTTIMEOUT TO_SEC] [/RECEIVETIMEOUT TO_SEC] [/SILENT] - [/CAPTION TEXT] [/NOCOOKIES] [/RESUME RETRY_QUESTION] [/POPUP HOST_ALIAS | /BANNER TEXT] - [/CANCELTEXT CANCEL_TEXT] [/QUESTION CANCEL_QUESTION] [/USER_AGENT USER_AGENT_TEXT] - [/HEADER HEADER_TEXT] [/TRANSLATE LANG_PARAMS] - URL1 local_file1 [URL2 local_file2 [...]] [/END] -

This call returns "OK" string if successful, error description string if failed (see included InetLoad.cpp file for a full set of status strings). Usage and result processing samples are included to the package. -

/PROXY - -Overwrites current proxy settings, not required in most cases. IE settings will be used by default. -

/USERNAME - -Proxy username (http only). -

/PASSWORD - -Proxy password (http only). For server (http/ftp) authentication it is possible to use URL encoded name and password, for example http://username:password@nsis.sourceforge.net. -

/NOPROXY - -Disables proxy settings for this connection (if any) -

/NOCANCEL - -Prevents download from being interrupted by user (locks Esc, Alt-F4, Cancel handling, removes sysmenu) -

/CONNECTTIMEOUT - -Sets INTERNET_OPTION_CONNECT_TIMEOUT, seconds, default - IE current parameter value. -

/RECEIVETIMEOUT - -Sets INTERNET_OPTION_RECEIVE_TIMEOUT, seconds, default - IE current parameter value. -

/SILENT - -Key hides plug-in' output (both popup dialog and embedded progress bar). Not required if 'SilentInstall silent' mode was defined in script (NSIS 2.03 or later). -

/RESUME - -On the permanent connection/transfer error instead of exit first displays message box with "resume download" question. Useful for dial-up connections and big files - allows user to restore connection and resume download. Default is "Your internet connection seems to have dropped out!\nPlease reconnect and click Retry to resume downloading...". -

/CAPTION - -Defines caption text for /BANNER mode, caption prefix (left of '-') for /POPUP mode and caption for RESUME MessageBox. Default is "InetLoad plug-in" if not set or "". 127 chars maximum. -

/POPUP - -This mode displays detailed download dialog instead of embedded progress bar. Also useful in .onInit function (i.e. not in Section). If HOST_ALIAS is not "", text will replace URL in the dialog - this allows to hide real URL (including password). -

/BANNER - -Displays simple popup dialog (MSI Banner mode) and sets dialog TEXT (up to 3 lines using $\n). -

/CANCELTEXT - -Text for the Cancel button in the NSISdl mode. Default is NSIS dialog Cancel button text (current lang). -

/QUESTION - -Text for the optional MessageBox if user tries to cancel download. If /QUESTION "" was used default -"Are you sure that you want to stop download?" will be substituted. -

/USERAGENT - -UserAgent http request header value. Default is "NSIS_Inetc (Mozilla)". 256 chars maximum. -

/HEADER - -Adds or replaces http request header. Common HEADER_TEXT format is "header: value". -

/NOCOOKIES - -Removes cookies from http request -

/END - -Allows to limit plug-in stack reading (optional, required if you stores other vars in the stack). -

/TRANSLATE - -Allows translating plug-in text in the POPUP or NSISdl modes. 8 parameters both cases.
- -NSISdl mode parameters:
- /TRANSLATE downloading connecting second minute hour plural progress remaining
-With default values:
- "Downloading %s" "Connecting ..." second minute hour s "%dkB (%d%%) of %dkB @ %d.%01dkB/s" "(%d %s%s remaining)"
- -POPUP mode parameters:
- /TRANSLATE url downloading connecting file_name received file_size remaining_time total_time
-With default values:
- URL Downloading Connecting "File Name" Received "File Size" "Remaining Time" "Total Time"
- -

post DLL Function

- -inetc::post TEXT2POST [/FILE] [/PROXY IP:PORT] [/NOPROXY] [/NOCANCEL] - [/USERNAME PROXY_LOGIN /PASSWORD PROXY_PASSWD] [/TIMEOUT INT_MS] [/SILENT] - [/CAPTION TEXT] [/POPUP | /BANNER TEXT] [/CANCELTEXT CANCEL_TEXT] - [/USER_AGENT USER_AGENT_TEXT] [/TRANSLATE LANG_PARAMS] - URL1 local_file1 [URL2 local_file2 [...]] [/END] -

Sets POST http mode and defines text string to be used in the POST (http only). Disables auto re-get. No char replaces used (%20 and others). -If /FILE presents in command line, TEXT2POST is filename to be sent in POST request. Also 'Filename:' header will be added to HTTP headers. - -

head DLL Function

- -The same as get, but requests http headers only. Writes raw headers to file. - -

put DLL Function

- -inetc::put [/PROXY IP:PORT] [/USERNAME PROXY_LOGIN /PASSWORD PROXY_PASSWD] [/NOPROXY] - [/NOCANCEL] [/TIMEOUT INT_MS] [/SILENT] [/CAPTION TEXT] [/POPUP | /BANNER TEXT] - [/CANCELTEXT CANCEL_TEXT] [/USER_AGENT USER_AGENT_TEXT] - [/TRANSLATE LANG_PARAMS] URL1 local_file1 [URL2 local_file2 [...]] [/END] -

Return value and parameters (if applicable) are the same as for previous entry point. - -

Examples

-
  inetc::get "http://dl.zvuki.ru/6306/mp3/12.mp3" "$EXEDIR\12.mp3" \
-     "ftp://dl.zvuki.ru/6306/mp3/11.mp3" "$EXEDIR\11.mp3"
-  Pop $0
-  inetc::put /BANNER "Cameron Diaz upload in progress..." \
-    "http://www.dreamgirlswallpaper.co.uk/fiveyearsonline/wallpaper/Cameron_Diaz/camerond09big.JPG" \
-    "$EXEDIR\cd.jpg"
-  Pop $0
-  StrCmp $0 "OK" dlok
-  MessageBox MB_OK|MB_ICONEXCLAMATION "http upload Error, click OK to abort installation" /SD IDOK
-  Abort
-dlok:
-  ...
- -

Credits

-Many thanks to Backland who offered a simple way to fix NSISdl mode crashes and added 'center parent' function. diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/auth_dlg.nsi b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/auth_dlg.nsi deleted file mode 100644 index b322f421b..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/auth_dlg.nsi +++ /dev/null @@ -1,31 +0,0 @@ - -;-------------------------------- -; General Attributes - -Name "Inetc http auth Test" -OutFile "auth_dlg.exe" - - -;-------------------------------- -;Interface Settings - - !include "MUI.nsh" - !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install-colorful.ico" - !insertmacro MUI_PAGE_INSTFILES - !insertmacro MUI_LANGUAGE "English" - - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - -; Displays IE auth dialog. -; Both server and proxy auth. -; Please test this with your own link. - - inetc::get "http://www.cnt.ru/personal" "$EXEDIR\auth.html" - Pop $0 # return value = exit code, "OK" if OK - MessageBox MB_OK "Download Status: $0" - -SectionEnd diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/ftp_auth.nsi b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/ftp_auth.nsi deleted file mode 100644 index 5e15776f1..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/ftp_auth.nsi +++ /dev/null @@ -1,31 +0,0 @@ - -;-------------------------------- -; General Attributes - -Name "Inetc ftp authentication Test" -OutFile "ftp_auth.exe" - - -;-------------------------------- -;Interface Settings - - !include "MUI.nsh" - !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install-colorful.ico" - !insertmacro MUI_PAGE_INSTFILES - !insertmacro MUI_LANGUAGE "English" - - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - -; use your own URL and login@pwd. Password hidden from user with /popup "ALIAS" - - inetc::get /caption "service pack download" /popup "ftp://localhost/" "ftp://login:pwd@localhost/W2Ksp3.exe" "$EXEDIR\sp3.exe" -; inetc::put /caption "service pack upload" /popup "" "ftp://login:pwd@localhost/W2Ksp3.bu.exe" "$EXEDIR\sp3.exe" - Pop $0 # return value = exit code, "OK" if OK - MessageBox MB_OK "Download Status: $0" - -SectionEnd - diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/head.nsi b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/head.nsi deleted file mode 100644 index 2ad7ff702..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/head.nsi +++ /dev/null @@ -1,29 +0,0 @@ - -;-------------------------------- -; General Attributes - -Name "Inetc Head Test" -OutFile "head.exe" - - -;-------------------------------- -;Interface Settings - - !include "MUI.nsh" - !insertmacro MUI_PAGE_INSTFILES - !insertmacro MUI_LANGUAGE "English" - - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - - DetailPrint "New version check out (internet connection)" - inetc::head /silent "http://ineum.narod.ru/spr_2006.htm" "$EXEDIR\head.txt" - Pop $0 # return value = exit code, "OK" if OK - MessageBox MB_OK "Download Status: $0" - -SectionEnd - - diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/headers.nsi b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/headers.nsi deleted file mode 100644 index 1eb77c2a0..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/headers.nsi +++ /dev/null @@ -1,31 +0,0 @@ - -;-------------------------------- -; General Attributes - -Name "Headers Test" -OutFile "headers.exe" - - -;-------------------------------- -;Interface Settings - - !include "MUI.nsh" - !insertmacro MUI_PAGE_INSTFILES - !insertmacro MUI_LANGUAGE "English" - - - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - -; additional headers. Sample php returns raw headers - inetc::get /useragent "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1)" /header "SOAPAction: urn:anonOutInOpe" "http://localhost/headers.php" "$EXEDIR\headers.html" - Pop $0 - - MessageBox MB_OK "Download Status: $0" - -SectionEnd - - diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/headers.php b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/headers.php deleted file mode 100644 index e33b0d8ed..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/headers.php +++ /dev/null @@ -1,7 +0,0 @@ - $value) { - echo "$header: $value
\n"; -} -?> \ No newline at end of file diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/https.nsi b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/https.nsi deleted file mode 100644 index ccf7c58b3..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/https.nsi +++ /dev/null @@ -1,26 +0,0 @@ - -;-------------------------------- -; General Attributes - -Name "Inetc https Test" -OutFile "https.exe" - - -;-------------------------------- -;Interface Settings - - !include "MUI.nsh" - !insertmacro MUI_PAGE_INSTFILES - !insertmacro MUI_LANGUAGE "English" - - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - - inetc::get /POPUP "" /CAPTION "bending_property_demo.zip" "https://secure.codeproject.com/cs/miscctrl/bending_property/bending_property_src.zip" "$EXEDIR\bending_property_src.zip" - Pop $0 # return value = exit code, "OK" if OK - MessageBox MB_OK "Download Status: $0" - -SectionEnd diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/inetc.cpp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/inetc.cpp deleted file mode 100644 index fcea2778b..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/inetc.cpp +++ /dev/null @@ -1,1622 +0,0 @@ -/******************************************************* -* FILE NAME: inetc.cpp -* -* Copyright 2004 - Present NSIS -* -* PURPOSE: -* ftp/http file download plug-in -* on the base of MS Inet API -* 4 GB limit (http support?) -* -* CHANGE HISTORY -* -* Author Date Modifications -* Takhir Bedertdinov -* Nov 11, 2004 Original -* Dec 17, 2004 Embedded edition - -* NSISdl GUI style as default -* (nsisdl.cpp code was partly used) -* Dec 17, 2004 MSI Banner style -* Feb 20, 2005 Resume download -* feature for big files and bad connections -* Mar 05, 2005 Proxy authentication -* and /POPUP caption prefix option -* Mar 25, 2005 Connect timeout option -* and FTP switched to passive mode -* Apr 18, 2005 Crack URL buffer size -* bug fixed (256->string_size) -* HTTP POST added -* Jun 06, 2005 IDOK on "Enter" key locked -* POST HTTP header added -* Jun 22, 2005 non-interaptable mode /nocancel -* and direct connect /noproxy -* Jun 29, 2005 post.php written and tested -* Jul 05, 2005 60 sec delay on WinInet detach problem -* solved (not fine, but works including -* installer exit and system reboot) -* Jul 08, 2005 'set foreground' finally removed -* Jul 26, 2005 POPUP translate option -* Aug 23, 2005 https service type in InternetConnect -* and "ignore certificate" flags -* Sep 30, 2005 https with bad certificate from old OS; -* Forbidden handling -* Dec 23, 2005 'put' entry point, new names, 12003 -* ftp error handling (on ftp write permission) -* 405 http error (method not allowed) -* Mar 12, 2006 Internal authorization via InternetErrorDlg() -* and Unauthorized (401) handling. -* Jun 10, 2006 Caption text option for Resume download -* MessageBox -* Jun 24, 2006 HEAD method, silent mode clean up -* Sep 05, 2006 Center dialog code from Backland -* Sep 07, 2006 NSISdl crash fix /Backland idea/ -* Sep 08, 2006 POST as dll entry point. -* Sep 21, 2006 parent dlg progr.bar style and font, -* nocancel via ws_sysmenu -* Sep 22, 2006 current lang IDCANCEL text, /canceltext -* and /useragent options -* Sep 24, 2006 .onInit improvements and defaults -* Nov 11, 2006 FTP path creation, root|current dir mgmt -* Jan 01, 2007 Global char[] cleanup, GetLastError() to -* status string on ERR_DIALOG, few MSVCRT replaces -* Jan 13, 2007 /HEADER option added -* Jan 28, 2007 _open -> CreateFile and related -* Feb 18, 2007 Speed calculating improved (pauses), -* /popup text parameter to hide URL -* Jun 07, 2007 Local file truncation added for download -* (CREATE_ALWAYS) -* Jun 11, 2007 FTP download permitted even if server rejects -* SIZE request (ProFTPD). -* Aug 11, 2007 Backland' fix for progress bar redraw/style -* issue in NSISdl display mode. -* Jan 09, 2008 {_trueparuex^}' fix - InternetSetFilePointer() -* returns -1 on error. -* /question option added for cancel question. -* Feb 15, 2008 PUT content-length file size fix -* Feb 17, 2008 char -> TCHAR replace for UNICODE option -* Feb 19, 2008 janekschwarz fix for HTTP PUT with auth -* CreateFile INVALID_HANDLE_VALUE on error fix -* Feb 20, 2008 base64 encoder update for unicode -* Feb 27, 2008 Unicode configurations added to VS 6 dsp -* Mar 20, 2008 HTTP PUT with proxy auth finally fixed -* FTP errors handling improved. -* HEAD bug fixed -* Mar 27, 2008 Details window hide/show in NSISdl mode -* Apr 10, 2008 Auth test method changed to HEAD for -* old proxy's -* Apr 30, 2008 InternetErrorDlg() ERROR_SUCESS on cancel -* click patched -* 3xx errors added to status list. -* May 20, 2008 InternetReadFile on cable disconnect patched -* May 20, 2008 Reply status "0" patch (name resolution?) -* Jul 15, 2008 HTTP 304 parsing. Incorrect size reported fix. -* Aug 21, 2009 Escape sequence convertion removed (caused -* error in signature with %2b requests) -* Marqueue progess bar style for unknown file size. -* Feb 04, 2010 Unicode POST patch - body converted to multibyte -* Jul 11, 2010 /FILE POST option added -* Nov 04, 2010 Disabled cookies and cache for cleanliness -* Feb 14, 2011 Fixed reget bug introduced in previous commit -* Feb 18, 2011 /NOCOOKIES option added -* Mar 02, 2011 User-agent buffer increased. Small memory leak fix -* Mar 23, 2011 Use caption on embedded progressbar - zenpoy -* Apr 05, 2011 reget fix - INTERNET_FLAG_RELOAD for first connect only -* Apr 27, 2011 /receivetimeout option added for big files and antivirus -* Jun 15, 2011 Stack clean up fix on cancel - zenpoy -* Oct 19, 2011 FTP PUT error parsing fix - tperquin -*******************************************************/ - - -#define _WIN32_WINNT 0x0500 - -#include -#include -#include -#include -#include "exdll.h" -#include "resource.h" - -#ifndef PBM_SETMARQUEE -#define PBM_SETMARQUEE (WM_USER + 10) -#define PBS_MARQUEE 0x08 -#endif - -// IE 4 safety and VS 6 compatibility -typedef BOOL (__stdcall *FTP_CMD)(HINTERNET,BOOL,DWORD,LPCTSTR,DWORD,HINTERNET *); -FTP_CMD myFtpCommand; - -#define PLUGIN_NAME _T("Inetc plug-in") -#define INETC_USERAGENT _T("NSIS_Inetc (Mozilla)") -#define PB_RANGE 400 // progress bar values range -#define PAUSE1_SEC 2 // transfer error indication time, for reget only -#define PAUSE2_SEC 3 // paused state time, increase this if need (60?) -#define PAUSE3_SEC 1 // pause after resume button pressed -#define NOT_AVAILABLE 0xffffffff -#define POST_HEADER _T("Content-Type: application/x-www-form-urlencoded") -#define PUT_HEADER _T("Content-Type: octet-stream\nContent-Length: %d") -#define INTERNAL_OK 0xFFEE -#define PROGRESS_MS 1000 // screen values update interval -#define DEF_QUESTION _T("Are you sure that you want to stop download?") -#define HOST_AUTH_HDR _T("Authorization: basic %s") -#define PROXY_AUTH_HDR _T("Proxy-authorization: basic %s") - -//#define MY_CERT_FLAGS SECURITY_FLAG_IGNORE_UNKNOWN_CA | SECURITY_FLAG_IGNORE_REVOCATION | SECURITY_FLAG_IGNORE_CERT_DATE_INVALID | SECURITY_FLAG_IGNORE_CERT_CN_INVALID -#define MY_CERT_FLAGS SECURITY_FLAG_IGNORE_UNKNOWN_CA | SECURITY_FLAG_IGNORE_REVOCATION -#define MY_REDIR_FLAGS INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP | INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS -#define MY_HTTPS_FLAGS (MY_CERT_FLAGS | MY_REDIR_FLAGS | INTERNET_FLAG_SECURE) - -enum STATUS_CODES { - ST_OK = 0, - ST_CONNECTING, - ST_DOWNLOAD, - ST_CANCELLED, - ST_URLOPEN, - // ST_OPENING, - ST_PAUSE, - ERR_TERMINATED, - ERR_DIALOG, - ERR_INETOPEN, - ERR_URLOPEN, - ERR_TRANSFER, - ERR_FILEOPEN, - ERR_FILEWRITE, - ERR_FILEREAD, - ERR_REGET, - ERR_CONNECT, - ERR_OPENREQUEST, - ERR_SENDREQUEST, - ERR_CRACKURL, - ERR_NOTFOUND, - ERR_THREAD, - ERR_PROXY, - ERR_FORBIDDEN, - ERR_NOTALLOWED, - ERR_REQUEST, - ERR_SERVER, - ERR_AUTH, - ERR_CREATEDIR, - ERR_PATH, - ERR_NOTMODIFIED, - ERR_REDIRECTION -}; - - -static TCHAR szStatus[][32] = { - _T("OK"),_T("Connecting"),_T("Downloading"),_T("Cancelled"),_T("Connecting"), //_T("Opening URL")), - _T("Reconnect Pause"),_T("Terminated"),_T("Dialog Error"),_T("Open Internet Error"), - _T("Open URL Error"),_T("Transfer Error"),_T("File Open Error"),_T("File Write Error"),_T("File Read Error"), - _T("Reget Error"),_T("Connection Error"),_T("OpenRequest Error"),_T("SendRequest Error"), - _T("URL Parts Error"),_T("File Not Found (404)"),_T("CreateThread Error"),_T("Proxy Error (407)"), - _T("Access Forbidden (403)"),_T("Not Allowed (405)"),_T("Request Error"),_T("Server Error"), - _T("Unauthorized (401)"),_T("FtpCreateDir failed (550)"),_T("Error FTP path (550)"),_T("Not Modified"), - _T("Redirection") -}; - -HINSTANCE g_hInstance; -TCHAR fn[MAX_PATH]=_T(""), -*url = NULL, -*szAlias = NULL, -*szProxy = NULL, -*szHeader = NULL, -*szBanner = NULL, -*szQuestion = NULL, -szCancel[64]=_T(""), -szCaption[128]=_T(""), -szUserAgent[256]=_T(""), -szResume[256] = _T("Your internet connection seems to be not permitted or dropped out!\nPlease reconnect and click Retry to resume installation."); -CHAR *szPost = NULL, -post_fname[MAX_PATH] = ""; -DWORD fSize = 0; - -int status; -DWORD cnt = 0, -fs = 0, -timeout = 0, -receivetimeout = 0; -DWORD startTime, transfStart, openType; -bool silent, popup, resume, nocancel, noproxy, nocookies; - -HWND childwnd; -HWND hDlg; -bool fput = false, fhead = false; - - -/***************************************************** -* FUNCTION NAME: sf(HWND) -* PURPOSE: -* moves HWND to top and activates it -* SPECIAL CONSIDERATIONS: -* commented because annoying -*****************************************************/ -/* -void sf(HWND hw) -{ -DWORD ctid = GetCurrentThreadId(); -DWORD ftid = GetWindowThreadProcessId(GetForegroundWindow(), NULL); -AttachThreadInput(ftid, ctid, TRUE); -SetForegroundWindow(hw); -AttachThreadInput(ftid, ctid, FALSE); -} -*/ - -static TCHAR szUrl[64] = _T(""); -static TCHAR szDownloading[64] = _T("Downloading %s"); -static TCHAR szConnecting[64] = _T("Connecting ..."); -static TCHAR szSecond[64] = _T("second"); -static TCHAR szMinute[32] = _T("minute"); -static TCHAR szHour[32] = _T("hour"); -static TCHAR szPlural[32] = _T("s"); -static TCHAR szProgress[128] = _T("%dkB (%d%%) of %dkB @ %d.%01dkB/s"); -static TCHAR szRemaining[64] = _T(" (%d %s%s remaining)"); -static TCHAR szBasic[128] = _T(""); -static TCHAR szAuth[128] = _T(""); - -// is it possible to make it working with unicode strings? - -/* Base64 encode one byte */ -static TCHAR encode(unsigned char u) { - - if(u < 26) return _T('A')+u; - if(u < 52) return _T('a')+(u-26); - if(u < 62) return _T('0')+(u-52); - if(u == 62) return _T('+'); - return _T('/'); -} - -TCHAR *encode_base64(int size, TCHAR *src, TCHAR *dst) { - - int i; - TCHAR *p; - - if(!src) - return NULL; - - if(!size) - size= lstrlen(src); - - p = dst; - - for(i=0; i>2; - b5= ((b1&0x3)<<4)|(b2>>4); - b6= ((b2&0xf)<<2)|(b3>>6); - b7= b3&0x3f; - - *p++= encode(b4); - *p++= encode(b5); - - if(i+1 0) - { - dw = data_buf; - if(!InternetWriteFile(hFile, dw, bytesDone, &rslt) || rslt == 0) - { - status = ERR_TRANSFER; - break; - } - dw += rslt; - cnt += rslt; - bytesDone -= rslt; - } - } - else - { - if(!InternetReadFile(hFile, data_buf, sizeof(data_buf), &rslt)) - { - status = ERR_TRANSFER; - break; - } - if(rslt == 0) // EOF reached or cable disconnect - { -// on cable disconnect returns TRUE and 0 bytes. is cnt == 0 OK (zero file size)? -// cannot check this if reply is chunked (no content-length, http 1.1) - status = (fs != NOT_AVAILABLE && cnt < fs) ? ERR_TRANSFER : ST_OK; - break; - } - if(!WriteFile(localFile, data_buf, rslt, &bytesDone, NULL) || - rslt != bytesDone) - { - status = ERR_FILEWRITE; - break; - } - cnt += rslt; - } - } -} - -/***************************************************** -* FUNCTION NAME: mySendRequest() -* PURPOSE: -* HttpSendRequestEx() sends headers only - for PUT -* We also can use InetWriteFile for POST body I guess -* SPECIAL CONSIDERATIONS: -* -*****************************************************/ -int mySendRequest(HINTERNET hFile) -{ - INTERNET_BUFFERS BufferIn = {0}; - if(fput) - { - BufferIn.dwStructSize = sizeof( INTERNET_BUFFERS ); - BufferIn.dwBufferTotal = fs; - return HttpSendRequestEx( hFile, &BufferIn, NULL, HSR_INITIATE, 0); - } - return HttpSendRequest(hFile, NULL, 0, szPost, fSize); -} - -/***************************************************** -* FUNCTION NAME: queryStatus() -* PURPOSE: -* http status code comes before download (get) and -* after upload (put), so this is called from 2 places -* SPECIAL CONSIDERATIONS: -* -*****************************************************/ -bool queryStatus(HINTERNET hFile) -{ - TCHAR buf[256] = _T(""); - DWORD rslt; - if(HttpQueryInfo(hFile, HTTP_QUERY_STATUS_CODE, - buf, &(rslt = sizeof(buf)), NULL)) - { - buf[3] = 0; - if(lstrcmp(buf, _T("0")) == 0 || *buf == 0) - status = ERR_SENDREQUEST; - else if(lstrcmp(buf, _T("401")) == 0) - status = ERR_AUTH; - else if(lstrcmp(buf, _T("403")) == 0) - status = ERR_FORBIDDEN; - else if(lstrcmp(buf, _T("404")) == 0) - status = ERR_NOTFOUND; - else if(lstrcmp(buf, _T("407")) == 0) - status = ERR_PROXY; - else if(lstrcmp(buf, _T("405")) == 0) - status = ERR_NOTALLOWED; - else if(lstrcmp(buf, _T("304")) == 0) - status = ERR_NOTMODIFIED; - else if(*buf == _T('3')) - { - status = ERR_REDIRECTION; - wsprintf(szStatus[status] + lstrlen(szStatus[status]), _T(" (%s)"), buf); - } - else if(*buf == _T('4')) - { - status = ERR_REQUEST; - wsprintf(szStatus[status] + lstrlen(szStatus[status]), _T(" (%s)"), buf); - } - else if(*buf == _T('5')) - { - status = ERR_SERVER; - wsprintf(szStatus[status] + lstrlen(szStatus[status]), _T(" (%s)"), buf); - } - return true; - } - return false; -} - -/***************************************************** -* FUNCTION NAME: openFtpFile() -* PURPOSE: -* control connection, size request, re-get lseek -* SPECIAL CONSIDERATIONS: -* -*****************************************************/ -HINTERNET openFtpFile(HINTERNET hConn, - TCHAR *path) -{ - TCHAR buf[256] = _T(""), *movp; - HINTERNET hFile; - DWORD rslt, err, gle; - bool https_req_ok = false; - - /* reads connection / auth responce info and cleares 'control' buffer this way */ - InternetGetLastResponseInfo(&err, buf, &(rslt = sizeof(buf))); - if(cnt == 0) - { - if(!fput) // we know local file size already - { - /* too clever myFtpCommand returnes false on the valid _T("550 Not found/Not permitted" server answer, - to read answer I had to ignory returned false (!= 999999) :-( - GetLastError also possible, but MSDN description of codes is very limited */ - wsprintf(buf, _T("SIZE %s"), path + 1); - if(myFtpCommand != NULL && - myFtpCommand(hConn, false, FTP_TRANSFER_TYPE_ASCII, buf, 0, &hFile) != 9999 && - memset(buf, 0, sizeof(buf)) != NULL && - InternetGetLastResponseInfo(&err, buf, &(rslt = sizeof(buf)))) - { - if(_tcsstr(buf, _T("213 "))) - { - fs = _tcstol(_tcschr(buf, _T(' ')) + 1, NULL, 0); - } - /* stupid ProFTPD returns error on SIZE request. let's continue without size. - But IE knows some trick to get size from ProFTPD...... - else if(_tcsstr(buf, _T("550 _T(")) - { - status = ERR_SIZE_NOT_PERMITTED; - return NULL; - } - */ - } - if(fs == 0) - { - fs = NOT_AVAILABLE; - } - - } - } - else - { - wsprintf(buf, _T("REST %d"), cnt); - if(myFtpCommand == NULL || - !myFtpCommand(hConn, false, FTP_TRANSFER_TYPE_BINARY, buf, 0, &hFile) || - memset(buf, 0, sizeof(buf)) == NULL || - !InternetGetLastResponseInfo(&err, buf, &(rslt = sizeof(buf))) || - (_tcsstr(buf, _T("350")) == NULL && _tcsstr(buf, _T("110")) == NULL)) - { - status = ERR_REGET; - return NULL; - } - } - if((hFile = FtpOpenFile(hConn, path + 1, fput ? GENERIC_WRITE : GENERIC_READ, - FTP_TRANSFER_TYPE_BINARY|INTERNET_FLAG_RELOAD,0)) == NULL) - { - gle = GetLastError(); - *buf = 0; - InternetGetLastResponseInfo(&err, buf, &(rslt = sizeof(buf))); - // wrong path - dir may not exist or upload may be not allowed - // we use ftp://host//path (double /) to define path from FS root - if(fput && (_tcsstr(buf, _T("550")) != NULL || _tcsstr(buf, _T("553")) != NULL)) - { - - movp = path + 1; - if(*movp == _T('/')) movp++; // don't need to creat root - while(_tcschr(movp, _T('/'))) - { - *_tcschr(movp,_T('/')) = 0; - FtpCreateDirectory(hConn, path + 1); - InternetGetLastResponseInfo(&err, buf, &(rslt = sizeof(buf))); - *(movp + lstrlen(movp)) = _T('/'); - movp = _tcschr(movp, _T('/')) + 1; - } - if(status != ERR_CREATEDIR && - (hFile = FtpOpenFile(hConn, path + 1, GENERIC_WRITE, - FTP_TRANSFER_TYPE_BINARY|INTERNET_FLAG_RELOAD,0)) == NULL) - { - status = ERR_PATH; - if(InternetGetLastResponseInfo(&err, buf, &(rslt = sizeof(buf)))) - lstrcpyn(szStatus[status], _tcsstr(buf, _T("550")), sizeof(szStatus[0]) / sizeof(TCHAR)); - } - } - // may be firewall related error, let's give user time to disable it - else if(gle == 12003) - { - if(_tcsstr(buf, _T("550"))) - { - status = ERR_NOTFOUND; - lstrcpyn(szStatus[status], _tcsstr(buf, _T("550")), sizeof(szStatus[0]) / sizeof(TCHAR)); - } - else - { - lstrcpyn(szStatus[status], buf, sizeof(szStatus[0]) / sizeof(TCHAR)); - } - } - // timeout (firewall or dropped connection problem) - else if(gle == 12002) - { - if(!silent) - resume = true; - status = ERR_URLOPEN; - } - } - else InternetGetLastResponseInfo(&err, buf, &(rslt = sizeof(buf))); - return hFile; -} - - -/***************************************************** -* FUNCTION NAME: openHttpFile() -* PURPOSE: -* file open, size request, re-get lseek -* SPECIAL CONSIDERATIONS: -* -*****************************************************/ -HINTERNET openHttpFile(HINTERNET hConn, - INTERNET_SCHEME nScheme, - TCHAR *path) -{ - TCHAR buf[256] = _T(""); - HINTERNET hFile; - DWORD rslt, err; - bool first_attempt = true;; - -// test connection for PUT, the only way to do this before sending data -// OPTIONS fails on HttpOpenRequest step for HTTPS -// but works for HEAD I guess - if(fput)// && nScheme != INTERNET_SCHEME_HTTPS) - { -// old proxy's may not support OPTIONS request, so changed to HEAD.... - if((hFile = HttpOpenRequest(hConn, _T("HEAD"), path, NULL, NULL, NULL, -// if((hFile = HttpOpenRequest(hConn, _T("OPTIONS"), path, NULL, NULL, NULL, - INTERNET_FLAG_RELOAD | INTERNET_FLAG_KEEP_CONNECTION | - (nocookies ? (INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_NO_COOKIES) : 0), 0)) != NULL) - { - if(*szAuth) - { - wsprintf(buf, PROXY_AUTH_HDR, szAuth); - HttpAddRequestHeaders(hFile, buf, -1, - HTTP_ADDREQ_FLAG_ADD | HTTP_ADDREQ_FLAG_REPLACE); - } -resend_proxy1: - if(*szBasic) - { - wsprintf(buf, HOST_AUTH_HDR, szBasic); - HttpAddRequestHeaders(hFile, buf, -1, - HTTP_ADDREQ_FLAG_ADD | HTTP_ADDREQ_FLAG_REPLACE); - } -resend_auth1: - if(HttpSendRequest(hFile, NULL, 0, NULL, 0)) - { - queryStatus(hFile); -// may be don't need to read all from socket, but this looks safer - while(InternetReadFile(hFile, buf, sizeof(buf), &rslt) && rslt > 0) {} - if(!silent && (status == ERR_PROXY || status == ERR_AUTH))// || status == ERR_FORBIDDEN)) - { - rslt = InternetErrorDlg(hDlg, hFile, - ERROR_INTERNET_INCORRECT_PASSWORD, - FLAGS_ERROR_UI_FILTER_FOR_ERRORS | - FLAGS_ERROR_UI_FLAGS_GENERATE_DATA | - FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS, - NULL); - if (rslt == ERROR_INTERNET_FORCE_RETRY) - { - status = ST_URLOPEN; - if(status == ERR_PROXY) goto resend_proxy1; - else goto resend_auth1; - } - else - { - status = ST_CANCELLED; - } - - } - // no such file is OK for PUT. server first checks authentication - if(status == ERR_NOTFOUND || status == ERR_FORBIDDEN || status == ERR_NOTALLOWED) - { -// MessageBox(childwnd, _T("NOT_FOUND"), "", 0); - status = ST_URLOPEN; - } - // parameters might be updated during dialog popup - if(status == ST_URLOPEN) - { - *buf = 0; - if(HttpQueryInfo(hFile, HTTP_QUERY_AUTHORIZATION, buf, &(rslt = sizeof(buf)), NULL) && *buf) - lstrcpyn(szBasic, buf, rslt); - *buf = 0; - if(HttpQueryInfo(hFile, HTTP_QUERY_PROXY_AUTHORIZATION, buf, &(rslt = sizeof(buf)), NULL) && *buf) - lstrcpyn(szAuth, buf, rslt); - } - } - else status = ERR_SENDREQUEST; - InternetCloseHandle(hFile); - } - else status = ERR_OPENREQUEST; - } -// request itself - if(status == ST_URLOPEN) - { - if((hFile = HttpOpenRequest(hConn, fput ? _T("PUT") : (fhead ? _T("HEAD") : (szPost ? _T("POST") : NULL)), - path, NULL, NULL, NULL, - // INTERNET_FLAG_RELOAD conflicts with reget - hidden re-read from beginning has place - // INTERNET_FLAG_RESYNCHRONIZE // note - sync may not work with some http servers - // reload on first connect (and any req. except GET), just continue on resume. - // HTTP Proxy still is a problem for reget - (cnt ? 0 : INTERNET_FLAG_RELOAD) - | INTERNET_FLAG_KEEP_CONNECTION | - (nocookies ? (INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_NO_COOKIES) : 0) | - (nScheme == INTERNET_SCHEME_HTTPS ? MY_HTTPS_FLAGS : 0), 0)) != NULL) - { - if(*szAuth) - { - wsprintf(buf, PROXY_AUTH_HDR, szAuth); - HttpAddRequestHeaders(hFile, buf, -1, - HTTP_ADDREQ_FLAG_ADD | HTTP_ADDREQ_FLAG_REPLACE); - } -resend_proxy2: - if(szPost != NULL) - HttpAddRequestHeaders(hFile, POST_HEADER, - -1, HTTP_ADDREQ_FLAG_ADD | HTTP_ADDREQ_FLAG_REPLACE); - if(*post_fname) - HttpAddRequestHeadersA(hFile, post_fname, - -1, HTTP_ADDREQ_FLAG_ADD | HTTP_ADDREQ_FLAG_REPLACE); - if(szHeader != NULL) - HttpAddRequestHeaders(hFile, szHeader, -1, - HTTP_ADDREQ_FLAG_ADD | HTTP_ADDREQ_FLAG_REPLACE); - if(*szBasic) - { - wsprintf(buf, HOST_AUTH_HDR, szBasic); - HttpAddRequestHeaders(hFile, buf, -1, - HTTP_ADDREQ_FLAG_ADD | HTTP_ADDREQ_FLAG_REPLACE); - } - if(fput) - { - wsprintf(buf, PUT_HEADER, fs); - HttpAddRequestHeaders(hFile, buf, -1, - HTTP_ADDREQ_FLAG_ADD | HTTP_ADDREQ_FLAG_REPLACE); - } -resend_auth2: - first_attempt = true; - if(nScheme == INTERNET_SCHEME_HTTPS) - { - if(!mySendRequest(hFile)) - { - InternetQueryOption (hFile, INTERNET_OPTION_SECURITY_FLAGS, - (LPVOID)&rslt, &(err = sizeof(rslt))); - rslt |= MY_CERT_FLAGS; - InternetSetOption (hFile, INTERNET_OPTION_SECURITY_FLAGS, - &rslt, sizeof(rslt) ); - } - else first_attempt = false; - } -// https Request answer may be after optional second Send only on Win98 - if(!first_attempt || mySendRequest(hFile)) - { -// no status for PUT - headers were sent only. And not need to get size / set position - if(!fput) - { - queryStatus(hFile); - if(!silent && (status == ERR_PROXY || status == ERR_AUTH)) - { - rslt = InternetErrorDlg(hDlg, hFile, - ERROR_INTERNET_INCORRECT_PASSWORD, - FLAGS_ERROR_UI_FILTER_FOR_ERRORS | - FLAGS_ERROR_UI_FLAGS_GENERATE_DATA | - FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS, - NULL); - if (rslt == ERROR_INTERNET_FORCE_RETRY) - { - status = ST_URLOPEN; - if(status == ERR_PROXY) goto resend_proxy2; - else goto resend_auth2; - } - else - status = ST_CANCELLED; - - } -// get size / set position - if(status == ST_URLOPEN) - { - if(cnt == 0) - { - if(HttpQueryInfo(hFile, HTTP_QUERY_CONTENT_LENGTH, buf, - &(rslt = sizeof(buf)), NULL)) - fs = _tcstoul(buf, NULL, 0); - else fs = NOT_AVAILABLE; - } - else - { - if((int)InternetSetFilePointer(hFile, cnt, NULL, FILE_BEGIN, 0) == -1) - status = ERR_REGET; - } - } - } - - } - else - { - if(!queryStatus(hFile)) - status = ERR_SENDREQUEST; - } - } - else status = ERR_OPENREQUEST; - } - return hFile; -} - -/***************************************************** -* FUNCTION NAME: inetTransfer() -* PURPOSE: -* http/ftp file transfer -* SPECIAL CONSIDERATIONS: -* -*****************************************************/ -DWORD __stdcall inetTransfer(void *hw) -{ - HINTERNET hSes, hConn, hFile; - HINSTANCE hInstance = NULL; - HANDLE localFile = NULL; - HWND hDlg = (HWND)hw; - DWORD lastCnt, rslt, err; - TCHAR hdr[2048]; - TCHAR *host = (TCHAR*)GlobalAlloc(GPTR, g_stringsize * sizeof(TCHAR)), - *path = (TCHAR*)GlobalAlloc(GPTR, g_stringsize * sizeof(TCHAR)), - *params = (TCHAR*)GlobalAlloc(GPTR, g_stringsize * sizeof(TCHAR)), - *user = (TCHAR*)GlobalAlloc(GPTR, g_stringsize * sizeof(TCHAR)), - *passwd = (TCHAR*)GlobalAlloc(GPTR, g_stringsize * sizeof(TCHAR)); - - URL_COMPONENTS uc = {sizeof(URL_COMPONENTS), NULL, 0, - (INTERNET_SCHEME)0, host, g_stringsize, 0 , user, g_stringsize, - passwd, g_stringsize, path, g_stringsize, params, g_stringsize}; - - if((hSes = InternetOpen(szUserAgent, openType, szProxy, NULL, 0)) != NULL) - { - if(InternetQueryOption(hSes, INTERNET_OPTION_CONNECTED_STATE, &(rslt=0), - &(lastCnt=sizeof(DWORD))) && - (rslt & INTERNET_STATE_DISCONNECTED_BY_USER)) - { - INTERNET_CONNECTED_INFO ci = {INTERNET_STATE_CONNECTED, 0}; - InternetSetOption(hSes, - INTERNET_OPTION_CONNECTED_STATE, &ci, sizeof(ci)); - } - if(timeout > 0) - lastCnt = InternetSetOption(hSes, INTERNET_OPTION_CONNECT_TIMEOUT, &timeout, sizeof(timeout)); - if(receivetimeout > 0) - InternetSetOption(hSes, INTERNET_OPTION_RECEIVE_TIMEOUT, &receivetimeout, sizeof(receivetimeout)); - // 60 sec WinInet.dll detach delay on socket time_wait fix - // if(hInstance = GetModuleHandle("wininet.dll")) - if(hInstance = LoadLibrary(_T("wininet.dll"))) - myFtpCommand = (FTP_CMD)GetProcAddress(hInstance, -#ifdef UNICODE - "FtpCommandW" -#else - "FtpCommandA" -#endif - ); - while(!popstring(url) && lstrcmpi(url, _T("/end")) != 0) - { - // too many customers requested not to do this - // sf(hDlg); - if(popstring(fn) != 0 || lstrcmpi(url, _T("/end")) == 0) break; - status = ST_CONNECTING; - cnt = fs = *host = *user = *passwd = *path = *params = 0; - PostMessage(hDlg, WM_TIMER, 1, 0); // show url & fn, do it sync - if((localFile = CreateFile(fn, fput ? GENERIC_READ : GENERIC_WRITE, FILE_SHARE_READ, - NULL, fput ? OPEN_EXISTING : CREATE_ALWAYS, 0, NULL)) != INVALID_HANDLE_VALUE) - { - uc.dwHostNameLength = uc.dwUserNameLength = uc.dwPasswordLength = - uc.dwUrlPathLength = uc.dwExtraInfoLength = g_stringsize; - if(fput) - { - fs = GetFileSize(localFile, NULL); - } - if(InternetCrackUrl(url, 0, 0/*ICU_ESCAPE*/ , &uc)) - { - // auth headers for HTTP PUT seems to be lost, preparing encoded login:password - if(*user && *passwd) - { - wsprintf(hdr, _T("%s:%s"), user, passwd); - // does unicode version of encoding works correct? - // are user and passwd ascii only? - encode_base64(lstrlen(hdr), hdr, szBasic); - *hdr = 0; - } - lstrcat(path, params); - transfStart = GetTickCount(); - do - { - // re-PUT to already deleted tmp file on http server is not possible. - // the same with POST - must re-send data to server. for 'resume' loop - if((fput && uc.nScheme != INTERNET_SCHEME_FTP) || szPost) - { - cnt = 0; - SetFilePointer(localFile, 0, NULL, SEEK_SET); - } - status = ST_CONNECTING; - lastCnt = cnt; - if((hConn = InternetConnect(hSes, host, uc.nPort, - lstrlen(user) > 0 ? user : NULL, - lstrlen(passwd) > 0 ? passwd : NULL, - uc.nScheme == INTERNET_SCHEME_FTP ? INTERNET_SERVICE_FTP : INTERNET_SERVICE_HTTP, - uc.nScheme == INTERNET_SCHEME_FTP ? INTERNET_FLAG_PASSIVE : 0, 0)) != NULL) - { - status = ST_URLOPEN; - hFile = uc.nScheme == INTERNET_SCHEME_FTP ? - openFtpFile(hConn, path) : openHttpFile(hConn, uc.nScheme, path); - if(status != ST_URLOPEN && hFile != NULL) - { - InternetCloseHandle(hFile); - hFile = NULL; - } - if(hFile != NULL) - { - if(fhead) - {// repeating calls clear headers.. - if(HttpQueryInfo(hFile, HTTP_QUERY_RAW_HEADERS_CRLF, hdr, &(rslt=2048), NULL)) - WriteFile(localFile, hdr, rslt, &lastCnt, NULL); - status = ST_OK; - } - else - { - HWND hBar = GetDlgItem(hDlg, IDC_PROGRESS1); - SendDlgItemMessage(hDlg, IDC_PROGRESS1, PBM_SETPOS, 0, 0); - SetWindowText(GetDlgItem(hDlg, IDC_STATIC5), fs == NOT_AVAILABLE ? _T("Not Available") : _T("")); - SetWindowText(GetDlgItem(hDlg, IDC_STATIC4), fs == NOT_AVAILABLE ? _T("Unknown") : _T("")); - SetWindowLong(hBar, GWL_STYLE, fs == NOT_AVAILABLE ? - (GetWindowLong(hBar, GWL_STYLE) | PBS_MARQUEE) : (GetWindowLong(hBar, GWL_STYLE) & ~PBS_MARQUEE)); - SendDlgItemMessage(hDlg, IDC_PROGRESS1, PBM_SETMARQUEE, (WPARAM)(fs == NOT_AVAILABLE ? 1 : 0), (LPARAM)50 ); - fileTransfer(localFile, hFile); - if(fput && uc.nScheme != INTERNET_SCHEME_FTP) - { - rslt = HttpEndRequest(hFile, NULL, 0, 0); - queryStatus(hFile); - } - } - InternetCloseHandle(hFile); - } - InternetCloseHandle(hConn); - } - else - { - status = ERR_CONNECT; - if(uc.nScheme == INTERNET_SCHEME_FTP && - InternetGetLastResponseInfo(&err, hdr, &(rslt = sizeof(hdr))) && - _tcsstr(hdr, _T("530"))) - { - lstrcpyn(szStatus[status], _tcsstr(hdr, _T("530")), sizeof(szStatus[0]) / sizeof(TCHAR)); - } - else - { - rslt = GetLastError(); - if((rslt == 12003 || rslt == 12002) && !silent) - resume = true; - } - } - } while(((!fput || uc.nScheme == INTERNET_SCHEME_FTP) && - cnt > lastCnt && - status == ERR_TRANSFER && - SleepEx(PAUSE1_SEC * 1000, false) == 0 && - (status = ST_PAUSE) != ST_OK && - SleepEx(PAUSE2_SEC * 1000, false) == 0) - || (resume && - status != ST_OK && - status != ST_CANCELLED && - status != ERR_NOTFOUND && - ShowWindow(hDlg, SW_HIDE) != -1 && - MessageBox(GetParent(hDlg), szResume, *szCaption ? szCaption : PLUGIN_NAME, MB_RETRYCANCEL|MB_ICONWARNING) == IDRETRY && - (status = ST_PAUSE) != ST_OK && - ShowWindow(hDlg, silent ? SW_HIDE : SW_SHOW) == false && - SleepEx(PAUSE3_SEC * 1000, false) == 0)); - } - else status = ERR_CRACKURL; - CloseHandle(localFile); - if(!fput && status != ST_OK) - { - rslt = DeleteFile(fn); - break; - } - } - else status = ERR_FILEOPEN; - } - InternetCloseHandle(hSes); - if (lstrcmpi(url, _T("/end"))==0) - pushstring(url); - } - else status = ERR_INETOPEN; - GlobalFree(host); - GlobalFree(path); - GlobalFree(user); - GlobalFree(passwd); - GlobalFree(params); - if(IsWindow(hDlg)) - PostMessage(hDlg, WM_COMMAND, MAKELONG(IDOK, INTERNAL_OK), 0); - return status; -} - -/***************************************************** -* FUNCTION NAME: fsFormat() -* PURPOSE: -* formats DWORD (max 4 GB) file size for dialog, big MB -* SPECIAL CONSIDERATIONS: -* -*****************************************************/ -void fsFormat(DWORD bfs, - TCHAR *b) -{ - if(bfs == NOT_AVAILABLE) - lstrcpy(b, _T("???")); - else if(bfs == 0) - lstrcpy(b, _T("0")); - else if(bfs < 10 * 1024) - wsprintf(b, _T("%u bytes"), bfs); - else if(bfs < 10 * 1024 * 1024) - wsprintf(b, _T("%u kB"), bfs / 1024); - else wsprintf(b, _T("%u MB"), (bfs / 1024 / 1024)); -} - - -/***************************************************** -* FUNCTION NAME: progress_callback -* PURPOSE: -* old-style progress bar text updates -* SPECIAL CONSIDERATIONS: -* -*****************************************************/ - -void progress_callback(void) -{ - TCHAR buf[1024] = _T(""), b[1024] = _T(""); - int time_sofar = max(1, (GetTickCount() - transfStart) / 1000); - int bps = cnt / time_sofar; - int remain = (cnt > 0 && fs != NOT_AVAILABLE) ? (MulDiv(time_sofar, fs, cnt) - time_sofar) : 0; - TCHAR *rtext=szSecond; - if(remain < 0) remain = 0; - if (remain >= 60) - { - remain/=60; - rtext=szMinute; - if (remain >= 60) - { - remain/=60; - rtext=szHour; - } - } - wsprintf(buf, - szProgress, - cnt/1024, - fs > 0 && fs != NOT_AVAILABLE ? MulDiv(100, cnt, fs) : 0, - fs != NOT_AVAILABLE ? fs/1024 : 0, - bps/1024,((bps*10)/1024)%10 - ); - if (remain) wsprintf(buf + lstrlen(buf), - szRemaining, - remain, - rtext, - remain==1?_T(""):szPlural - ); - SetDlgItemText(hDlg, IDC_STATIC1, (cnt == 0 || status == ST_CONNECTING) ? szConnecting : buf); - if(fs > 0 && fs != NOT_AVAILABLE) - SendMessage(GetDlgItem(hDlg, IDC_PROGRESS1), PBM_SETPOS, MulDiv(cnt, PB_RANGE, fs), 0); - if (*szCaption == 0) - wsprintf(buf, szDownloading, - _tcschr(fn, _T('\\')) ? _tcsrchr(fn, _T('\\')) + 1 : fn); - else wsprintf(buf, _T("%s"),szCaption); - HWND hwndS = GetDlgItem(childwnd, 1006); - if(!silent && hwndS != NULL && IsWindow(hwndS)) - { - GetWindowText(hwndS, b, sizeof(b)); - if(lstrcmp(b, buf) != 0) - SetWindowText(hwndS, buf); - } -} - -/***************************************************** -* FUNCTION NAME: onTimer() -* PURPOSE: -* updates text fields every second -* SPECIAL CONSIDERATIONS: -* -*****************************************************/ -void onTimer(HWND hDlg) -{ - TCHAR b[128]; - DWORD ct = (GetTickCount() - transfStart) / 1000, - tt = (GetTickCount() - startTime) / 1000; - // dialog window caption - wsprintf(b, _T("%s - %s"), *szCaption ? szCaption : PLUGIN_NAME, szStatus[status]); - if(fs > 0 && fs != NOT_AVAILABLE && status == ST_DOWNLOAD) - { - wsprintf(b + lstrlen(b), _T(" %d%%"), MulDiv(100, cnt, fs)); - } - if(szBanner == NULL) SetWindowText(hDlg, b); - // current file and url - SetDlgItemText(hDlg, IDC_STATIC1, (szAlias && *szAlias) ? szAlias : url); - SetDlgItemText(hDlg, IDC_STATIC2, /*_tcschr(fn, '\\') ? _tcsrchr(fn, '\\') + 1 : */fn); - // bytes done and rate - if(cnt > 0) - { - fsFormat(cnt, b); - if(ct > 1 && status == ST_DOWNLOAD) - { - lstrcat(b, _T(" ( ")); - fsFormat(cnt / ct, b + lstrlen(b)); - lstrcat(b, _T("/sec )")); - } - } - else *b = 0; - SetDlgItemText(hDlg, IDC_STATIC3, b); - // total download time - wsprintf(b, _T("%d:%02d:%02d"), tt / 3600, (tt / 60) % 60, tt % 60); - SetDlgItemText(hDlg, IDC_STATIC6, b); - // file size, time remaining, progress bar - if(fs > 0 && fs != NOT_AVAILABLE) - { - fsFormat(fs, b); - SetDlgItemText(hDlg, IDC_STATIC5, b); - SendDlgItemMessage(hDlg, IDC_PROGRESS1, PBM_SETPOS, MulDiv(cnt, PB_RANGE, fs), 0); - if(cnt > 5000) - { - ct = MulDiv(fs - cnt, ct, cnt); - wsprintf(b, _T("%d:%02d:%02d"), ct / 3600, (ct / 60) % 60, ct % 60); - } - else *b = 0; - SetWindowText(GetDlgItem(hDlg, IDC_STATIC4), b); - } -} - -/***************************************************** -* FUNCTION NAME: centerDlg() -* PURPOSE: -* centers dlg on NSIS parent -* SPECIAL CONSIDERATIONS: -* -*****************************************************/ -void centerDlg(HWND hDlg) -{ - HWND hwndParent = GetParent(hDlg); - RECT nsisRect, dlgRect, waRect; - int dlgX, dlgY, dlgWidth, dlgHeight; - - if(hwndParent == NULL || silent) - return; - if(popup) - GetWindowRect(hwndParent, &nsisRect); - else GetClientRect(hwndParent, &nsisRect); - GetWindowRect(hDlg, &dlgRect); - - dlgWidth = dlgRect.right - dlgRect.left; - dlgHeight = dlgRect.bottom - dlgRect.top; - dlgX = (nsisRect.left + nsisRect.right - dlgWidth) / 2; - dlgY = (nsisRect.top + nsisRect.bottom - dlgHeight) / 2; - - if(popup) - { - SystemParametersInfo(SPI_GETWORKAREA, 0, &waRect, 0); - if(dlgX > waRect.right - dlgWidth) - dlgX = waRect.right - dlgWidth; - if(dlgX < waRect.left) dlgX = waRect.left; - if(dlgY > waRect.bottom - dlgHeight) - dlgY = waRect.bottom - dlgHeight; - if(dlgY < waRect.top) dlgY = waRect.top; - } - else dlgY += 20; - - SetWindowPos(hDlg, HWND_TOP, dlgX, dlgY, 0, 0, SWP_NOSIZE); -} - -/***************************************************** -* FUNCTION NAME: onInitDlg() -* PURPOSE: -* dlg init -* SPECIAL CONSIDERATIONS: -* -*****************************************************/ -void onInitDlg(HWND hDlg) -{ - HFONT hFont; - HWND hPrbNew; - HWND hPrbOld; - HWND hCan = GetDlgItem(hDlg, IDCANCEL); - - if(childwnd) - { - hPrbNew = GetDlgItem(hDlg, IDC_PROGRESS1); - hPrbOld = GetDlgItem(childwnd, 0x3ec); - - // Backland' fix for progress bar redraw/style issue. - // Original bar may be hidden because of interfernce with other plug-ins. - LONG prbStyle = WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN; - if(hPrbOld != NULL) - { - prbStyle |= GetWindowLong(hPrbOld, GWL_STYLE); - } - SetWindowLong(hPrbNew, GWL_STYLE, prbStyle); - - if(!popup) - { - if((hFont = (HFONT)SendMessage(childwnd, WM_GETFONT, 0, 0)) != NULL) - { - SendDlgItemMessage(hDlg, IDC_STATIC1, WM_SETFONT, (WPARAM)hFont, 0); - SendDlgItemMessage(hDlg, IDCANCEL, WM_SETFONT, (WPARAM)hFont, 0); - } - if(*szCancel == 0) - GetWindowText(GetDlgItem(GetParent(childwnd), IDCANCEL), szCancel, sizeof(szCancel)); - SetWindowText(hCan, szCancel); - SetWindowPos(hPrbNew, HWND_TOP, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE); - } - } - - if(nocancel) - { - if(hCan != NULL) - ShowWindow(hCan, SW_HIDE); - if(popup) - SetWindowLong(hDlg, GWL_STYLE, GetWindowLong(hDlg, GWL_STYLE) ^ WS_SYSMENU); - } - SendDlgItemMessage(hDlg, IDC_PROGRESS1, PBM_SETRANGE, - 0, MAKELPARAM(0, PB_RANGE)); - if(szBanner != NULL) - { - SendDlgItemMessage(hDlg, IDC_STATIC13, STM_SETICON, - (WPARAM)LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(103)), 0); - SetDlgItemText(hDlg, IDC_STATIC12, szBanner); - SetWindowText(hDlg, *szCaption ? szCaption : PLUGIN_NAME); - } - SetTimer(hDlg, 1, 1000, NULL); - if(*szUrl != 0) - { - SetDlgItemText(hDlg, IDC_STATIC20, szUrl); - SetDlgItemText(hDlg, IDC_STATIC21, szDownloading); - SetDlgItemText(hDlg, IDC_STATIC22, szConnecting); - SetDlgItemText(hDlg, IDC_STATIC23, szProgress); - SetDlgItemText(hDlg, IDC_STATIC24, szSecond); - SetDlgItemText(hDlg, IDC_STATIC25, szRemaining); - } -} - -/***************************************************** -* FUNCTION NAME: dlgProc() -* PURPOSE: -* dlg message handling procedure -* SPECIAL CONSIDERATIONS: -* todo: better dialog design -*****************************************************/ -BOOL WINAPI dlgProc(HWND hDlg, - UINT message, - WPARAM wParam, - LPARAM lParam ) { - switch(message) { - case WM_INITDIALOG: - onInitDlg(hDlg); - centerDlg(hDlg); - break; - case WM_PAINT: - // child dialog redraw problem. return false is important - RedrawWindow(GetDlgItem(hDlg, IDC_STATIC1), NULL, NULL, RDW_INVALIDATE); - RedrawWindow(GetDlgItem(hDlg, IDCANCEL), NULL, NULL, RDW_INVALIDATE); - RedrawWindow(GetDlgItem(hDlg, IDC_PROGRESS1), NULL, NULL, RDW_INVALIDATE); - UpdateWindow(GetDlgItem(hDlg, IDC_STATIC1)); - UpdateWindow(GetDlgItem(hDlg, IDCANCEL)); - UpdateWindow(GetDlgItem(hDlg, IDC_PROGRESS1)); - return false; - case WM_TIMER: - if(!silent && IsWindow(hDlg)) - { - // long connection period and paused state updates - if(status != ST_DOWNLOAD && GetTickCount() - transfStart > PROGRESS_MS) - transfStart += PROGRESS_MS; - if(popup) onTimer(hDlg); - else progress_callback(); - RedrawWindow(GetDlgItem(hDlg, IDC_STATIC1), NULL, NULL, RDW_INVALIDATE); - RedrawWindow(GetDlgItem(hDlg, IDCANCEL), NULL, NULL, RDW_INVALIDATE); - RedrawWindow(GetDlgItem(hDlg, IDC_PROGRESS1), NULL, NULL, RDW_INVALIDATE); - } - break; - case WM_COMMAND: - switch(LOWORD(wParam)) - { - case IDCANCEL: - if(nocancel) break; - if(szQuestion && - MessageBox(hDlg, szQuestion, *szCaption ? szCaption : PLUGIN_NAME, MB_ICONWARNING|MB_YESNO) == IDNO) - break; - status = ST_CANCELLED; - case IDOK: - if(status != ST_CANCELLED && HIWORD(wParam) != INTERNAL_OK) break; - // otherwise in the silent mode next banner windows may go to background - // if(silent) sf(hDlg); - KillTimer(hDlg, 1); - DestroyWindow(hDlg); - break; - } - default: return false; - } - return true; -} - -/***************************************************** -* FUNCTION NAME: get() -* PURPOSE: -* http/https/ftp file download entry point -* SPECIAL CONSIDERATIONS: -* -*****************************************************/ -extern "C" -void __declspec(dllexport) get(HWND hwndParent, - int string_size, - TCHAR *variables, - stack_t **stacktop, - extra_parameters *extra - ) -{ - HANDLE hThread; - DWORD dwThreadId; - MSG msg; - TCHAR szUsername[64]=_T(""), // proxy params - szPassword[64]=_T(""); - - - EXDLL_INIT(); - -// for repeating /nounload plug-un calls - global vars clean up - silent = popup = resume = nocancel = noproxy = nocookies = false; - myFtpCommand = NULL; - openType = INTERNET_OPEN_TYPE_PRECONFIG; - status = ST_CONNECTING; - *szCaption = *szCancel = *szUserAgent = *szBasic = *szAuth = 0; - - url = (TCHAR*)GlobalAlloc(GPTR, string_size * sizeof(TCHAR)); - if(szPost) - { - popstring(url); -#ifdef UNICODE - WideCharToMultiByte(CP_ACP, 0, url, -1, szPost, string_size, NULL, NULL); -#else - lstrcpy(szPost, url); -#endif - fSize = strlen(szPost); - } - // global silent option - if(extra->exec_flags->silent != 0) - silent = true; - // we must take this from stack, or push url back - while(!popstring(url) && *url == _T('/')) - { - if(lstrcmpi(url, _T("/silent")) == 0) - silent = true; - else if(lstrcmpi(url, _T("/caption")) == 0) - popstring(szCaption); - else if(lstrcmpi(url, _T("/username")) == 0) - popstring(szUsername); - else if(lstrcmpi(url, _T("/password")) == 0) - popstring(szPassword); - else if(lstrcmpi(url, _T("/nocancel")) == 0) - nocancel = true; - else if(lstrcmpi(url, _T("/nocookies")) == 0) - nocookies = true; - else if(lstrcmpi(url, _T("/noproxy")) == 0) - openType = INTERNET_OPEN_TYPE_DIRECT; - else if(lstrcmpi(url, _T("/popup")) == 0) - { - popup = true; - szAlias = (TCHAR*)GlobalAlloc(GPTR, string_size); - popstring(szAlias); - } - else if(lstrcmpi(url, _T("/resume")) == 0) - { - popstring(url); - if(lstrlen(url) > 0) - lstrcpy(szResume, url); - resume = true; - } - else if(lstrcmpi(url, _T("/translate")) == 0) - { - if(popup) - { - popstring(szUrl); - popstring(szStatus[ST_DOWNLOAD]); // Downloading - popstring(szStatus[ST_CONNECTING]); // Connecting - lstrcpy(szStatus[ST_URLOPEN], szStatus[ST_CONNECTING]); - popstring(szDownloading);// file name - popstring(szConnecting);// received - popstring(szProgress);// file size - popstring(szSecond);// remaining time - popstring(szRemaining);// total time - } - else - { - popstring(szDownloading); - popstring(szConnecting); - popstring(szSecond); - popstring(szMinute); - popstring(szHour); - popstring(szPlural); - popstring(szProgress); - popstring(szRemaining); - } - } - else if(lstrcmpi(url, _T("/banner")) == 0) - { - popup = true; - szBanner = (TCHAR*)GlobalAlloc(GPTR, string_size); - popstring(szBanner); - } - else if(lstrcmpi(url, _T("/canceltext")) == 0) - { - popstring(szCancel); - } - else if(lstrcmpi(url, _T("/question")) == 0) - { - szQuestion = (TCHAR*)GlobalAlloc(GPTR, string_size); - popstring(szQuestion); - if(*szQuestion == 0) lstrcpy(szQuestion, DEF_QUESTION); - } - else if(lstrcmpi(url, _T("/useragent")) == 0) - { - popstring(szUserAgent); - } - else if(lstrcmpi(url, _T("/proxy")) == 0) - { - szProxy = (TCHAR*)GlobalAlloc(GPTR, string_size * sizeof(TCHAR)); - popstring(szProxy); - openType = INTERNET_OPEN_TYPE_PROXY; - } - else if(lstrcmpi(url, _T("/connecttimeout")) == 0) - { - popstring(url); - timeout = _tcstol(url, NULL, 10) * 1000; - } - else if(lstrcmpi(url, _T("/receivetimeout")) == 0) - - { - popstring(url); - receivetimeout = _tcstol(url, NULL, 10) * 1000; - } - else if(lstrcmpi(url, _T("/header")) == 0) - { - szHeader = (TCHAR*)GlobalAlloc(GPTR, string_size); - popstring(szHeader); - } - else if(lstrcmpi(url, _T("/file")) == 0) - { - HANDLE hFile = CreateFileA(szPost, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); - DWORD rslt; - if(hFile == INVALID_HANDLE_VALUE) - { - status = ERR_FILEOPEN; - goto cleanup; - } - if((fSize = GetFileSize(hFile, NULL)) == 0) - { - CloseHandle(hFile); - status = ERR_FILEREAD; - goto cleanup; - } - wsprintfA(post_fname, "Filename: %s", - strchr(szPost, '\\') ? strrchr(szPost, '\\') + 1 : szPost); - GlobalFree(szPost); - szPost = (char*)GlobalAlloc(GPTR, fSize); - if(ReadFile(hFile, szPost, fSize, &rslt, NULL) == 0 || rslt != fSize) - { - CloseHandle(hFile); - status = ERR_FILEREAD; - goto cleanup; - } - CloseHandle(hFile); - } - } - pushstring(url); -// if(*szCaption == 0) lstrcpy(szCaption, PLUGIN_NAME); - if(*szUserAgent == 0) lstrcpy(szUserAgent, INETC_USERAGENT); - if(*szPassword && *szUsername) - { - wsprintf(url, _T("%s:%s"), szUsername, szPassword); - encode_base64(lstrlen(url), url, szAuth); - } - // may be silent for plug-in, but not so for installer itself - let's try to define 'progress text' - if(hwndParent != NULL && - (childwnd = FindWindowEx(hwndParent, NULL, _T("#32770"), NULL)) != NULL && - !silent) - SetDlgItemText(childwnd, 1006, *szCaption ? szCaption : PLUGIN_NAME); - else InitCommonControls(); // or NSIS do this before .onInit? - // cannot embed child dialog to non-existing parent. Using 'silent' to hide it - if(childwnd == NULL && !popup) silent = true; - // let's use hidden popup dlg in the silent mode - works both on .onInit and Page - if(silent) { resume = false; popup = true; } - // google says WS_CLIPSIBLINGS helps to redraw... not in my tests... - if(!popup) - { - unsigned int wstyle = GetWindowLong(childwnd, GWL_STYLE); - wstyle |= WS_CLIPSIBLINGS; - SetWindowLong(childwnd, GWL_STYLE, wstyle); - } - startTime = GetTickCount(); - if((hDlg = CreateDialog(g_hInstance, - MAKEINTRESOURCE(szBanner ? IDD_DIALOG2 : (popup ? IDD_DIALOG1 : IDD_DIALOG3)), - (popup ? hwndParent : childwnd), dlgProc)) != NULL) - { - - if((hThread = CreateThread(NULL, 0, inetTransfer, (LPVOID)hDlg, 0, - &dwThreadId)) != NULL) - { - HWND hButton = GetDlgItem(childwnd, 0x403); - HWND hList = GetDlgItem(childwnd, 0x3f8); - DWORD dwStyleButton = 0; - BOOL fVisibleList = false; - if(!silent) - { - ShowWindow(hDlg, SW_NORMAL); - if(childwnd && !popup) - { - if(hButton) - { - dwStyleButton = GetWindowLong(hButton, GWL_STYLE); - EnableWindow(hButton, false); - } - if(hList) - { - fVisibleList = IsWindowVisible(hList); - ShowWindow(hList, SW_HIDE); - } - } - } - - while(IsWindow(hDlg) && - GetMessage(&msg, NULL, 0, 0) > 0) - { - if(!IsDialogMessage(hDlg, &msg) && - !IsDialogMessage(hwndParent, &msg) && - !TranslateMessage(&msg)) - DispatchMessage(&msg); - } - - if(WaitForSingleObject(hThread, 3000) == WAIT_TIMEOUT) - { - TerminateThread(hThread, 1); - status = ERR_TERMINATED; - } - CloseHandle(hThread); - if(!silent && childwnd) - { - SetDlgItemText(childwnd, 1006, _T("")); - if(!popup) - { - if(hButton) - SetWindowLong(hButton, GWL_STYLE, dwStyleButton); - if(hList && fVisibleList) - ShowWindow(hList, SW_SHOW); - } - // RedrawWindow(childwnd, NULL, NULL, RDW_INVALIDATE|RDW_ERASE); - } - } - else - { - status = ERR_THREAD; - DestroyWindow(hDlg); - } - } - else { - status = ERR_DIALOG; - wsprintf(szStatus[status] + lstrlen(szStatus[status]), _T(" (Err=%d)"), GetLastError()); - } -cleanup: - // we need to clean up stack from remaining url/file pairs. - // this multiple files download head pain and may be not safe - while(!popstring(url) && lstrcmpi(url, _T("/end")) != 0) - { - /* nothing MessageBox(NULL, url, _T(""), 0);*/ - } - GlobalFree(url); - if(szAlias) GlobalFree(szAlias); - if(szBanner) GlobalFree(szAlias); - if(szQuestion) GlobalFree(szQuestion); - if(szProxy) GlobalFree(szProxy); - if(szPost) GlobalFree(szPost); - if(szHeader) GlobalFree(szHeader); - - url = szProxy = szHeader = szAlias = szQuestion = NULL; - szPost = NULL; - fput = fhead = false; - - pushstring(szStatus[status]); -} - -/***************************************************** -* FUNCTION NAME: put() -* PURPOSE: -* http/ftp file upload entry point -* SPECIAL CONSIDERATIONS: -* re-put not works with http, but ftp REST - may be. -*****************************************************/ -extern "C" -void __declspec(dllexport) put(HWND hwndParent, - int string_size, - TCHAR *variables, - stack_t **stacktop, - extra_parameters *extra - ) -{ - fput = true; - lstrcpy(szDownloading, _T("Uploading %s")); - lstrcpy(szStatus[2], _T("Uploading")); - get(hwndParent, string_size, variables, stacktop, extra); -} - -/***************************************************** -* FUNCTION NAME: post() -* PURPOSE: -* http post entry point -* SPECIAL CONSIDERATIONS: -* -*****************************************************/ -extern "C" -void __declspec(dllexport) post(HWND hwndParent, - int string_size, - TCHAR *variables, - stack_t **stacktop, - extra_parameters *extra - ) -{ - szPost = (CHAR*)GlobalAlloc(GPTR, string_size); - get(hwndParent, string_size, variables, stacktop, extra); -} - -/***************************************************** -* FUNCTION NAME: head() -* PURPOSE: -* http/ftp file upload entry point -* SPECIAL CONSIDERATIONS: -* re-put not works with http, but ftp REST - may be. -*****************************************************/ -extern "C" -void __declspec(dllexport) head(HWND hwndParent, - int string_size, - TCHAR *variables, - stack_t **stacktop, - extra_parameters *extra - ) -{ - fhead = true; - get(hwndParent, string_size, variables, stacktop, extra); -} - -/***************************************************** -* FUNCTION NAME: DllMain() -* PURPOSE: -* Dll main (initialization) entry point -* SPECIAL CONSIDERATIONS: -* -*****************************************************/ -BOOL WINAPI DllMain(HANDLE hInst, - ULONG ul_reason_for_call, - LPVOID lpReserved) -{ - g_hInstance=(HINSTANCE)hInst; - return TRUE; -} diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/inetc.dsp b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/inetc.dsp deleted file mode 100644 index 2a4d46410..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/inetc.dsp +++ /dev/null @@ -1,175 +0,0 @@ -# Microsoft Developer Studio Project File - Name="inetc" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=inetc - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "inetc.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "inetc.mak" CFG="inetc - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "inetc - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "inetc - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "inetc - Win32 Release_Unicode" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "inetc - Win32 Debug_Unicode" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "inetc - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "debug" -# PROP Intermediate_Dir "debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "inetc_EXPORTS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O1 /I "..\ExDll" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "inetc_EXPORTS" /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 msvcrt.lib kernel32.lib user32.lib gdi32.lib wininet.lib comctl32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /nodefaultlib /out:"..\..\plugins\inetc.dll" /opt:nowin98 -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "inetc - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "inetc_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\ExDll" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "inetc_EXPORTS" /YX /FD /GZ /c -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib wininet.lib comctl32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /out:"..\..\plugins\inetc.dll" /pdbtype:sept -# SUBTRACT LINK32 /incremental:no /debug - -!ELSEIF "$(CFG)" == "inetc - Win32 Release_Unicode" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release_Unicode" -# PROP BASE Intermediate_Dir "Release_Unicode" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Debug_Unicode" -# PROP Intermediate_Dir "Debug_Unicode" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_UNICODE" /D "_USRDLL" /D "inetc_EXPORTS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O1 /I "..\ExDll" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_UNICODE" /D "UNICODE" /D "_USRDLL" /D "inetc_EXPORTS" /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 msvcrt.lib kernel32.lib user32.lib gdi32.lib wininet.lib comctl32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /nodefaultlib /out:"..\..\Unicode\plugins\inetc.dll" /opt:nowin98 -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "inetc - Win32 Debug_Unicode" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug_Unicode" -# PROP BASE Intermediate_Dir "Debug_Unicode" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug_Unicode" -# PROP Intermediate_Dir "Debug_Unicode" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_UNICODE" /D "_USRDLL" /D "inetc_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\ExDll" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_UNICODE" /D "UNICODE" /D "_USRDLL" /D "inetc_EXPORTS" /YX /FD /GZ /c -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib wininet.lib comctl32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /out:"..\..\Unicode\plugins\inetc.dll" /pdbtype:sept -# SUBTRACT LINK32 /incremental:no /debug - -!ENDIF - -# Begin Target - -# Name "inetc - Win32 Release" -# Name "inetc - Win32 Debug" -# Name "inetc - Win32 Release_Unicode" -# Name "inetc - Win32 Debug_Unicode" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\inetc.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# Begin Source File - -SOURCE="..\Graphics\Icons\classic-install.ico" -# End Source File -# Begin Source File - -SOURCE=.\inetc.rc -# End Source File -# End Group -# End Target -# End Project diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/inetc.dsw b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/inetc.dsw deleted file mode 100644 index 98a25c5b2..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/inetc.dsw +++ /dev/null @@ -1,29 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "ftpc"=".\inetc.dsp" - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/inetc.rc b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/inetc.rc deleted file mode 100644 index 6a29a56f3..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/inetc.rc +++ /dev/null @@ -1,170 +0,0 @@ -//Microsoft Developer Studio generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "afxres.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// Russian resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS) -#ifdef _WIN32 -LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT -#pragma code_page(1251) -#endif //_WIN32 - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#include ""afxres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - -#endif // Russian resources -///////////////////////////////////////////////////////////////////////////// - - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_DIALOG1 DIALOGEX 0, 0, 286, 71 -STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Inetc plug-in" -FONT 8, "MS Sans Serif" -BEGIN - LTEXT "",IDC_STATIC1,50,4,230,12,SS_CENTERIMAGE, - WS_EX_STATICEDGE - LTEXT "",IDC_STATIC2,50,18,230,12,SS_CENTERIMAGE, - WS_EX_STATICEDGE - CTEXT "",IDC_STATIC3,50,32,102,12,SS_CENTERIMAGE, - WS_EX_STATICEDGE - CTEXT "",IDC_STATIC4,220,32,60,12,SS_CENTERIMAGE, - WS_EX_STATICEDGE - CONTROL "Progress1",IDC_PROGRESS1,"msctls_progress32",NOT - WS_VISIBLE,5,62,275,7 - CTEXT "",IDC_STATIC5,50,46,102,12,SS_CENTERIMAGE, - WS_EX_STATICEDGE - CTEXT "",IDC_STATIC6,220,46,60,12,SS_CENTERIMAGE, - WS_EX_STATICEDGE - CONTROL "URL",IDC_STATIC20,"Static",SS_LEFTNOWORDWRAP | WS_GROUP, - 5,6,44,10 - CONTROL "File name",IDC_STATIC21,"Static",SS_LEFTNOWORDWRAP | - WS_GROUP,5,20,44,10 - CONTROL "Transfered",IDC_STATIC22,"Static",SS_LEFTNOWORDWRAP | - WS_GROUP,5,34,44,10 - CONTROL "File size",IDC_STATIC23,"Static",SS_LEFTNOWORDWRAP | - WS_GROUP,5,48,44,10 - CONTROL "Remaining time",IDC_STATIC24,"Static",SS_LEFTNOWORDWRAP | - WS_GROUP,164,34,55,10 - CONTROL "Total time",IDC_STATIC25,"Static",SS_LEFTNOWORDWRAP | - WS_GROUP,164,48,55,10 -END - -IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 226, 62 -STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Inetc plug-in" -FONT 8, "MS Sans Serif" -BEGIN - ICON 103,IDC_STATIC13,4,4,20,20 - LTEXT "Please wait",IDC_STATIC12,35,6,184,28 - CONTROL "Progress1",IDC_PROGRESS1,"msctls_progress32",NOT - WS_VISIBLE,12,40,201,11 -END - -IDD_DIALOG3 DIALOG DISCARDABLE 0, 0, 266, 62 -STYLE DS_CONTROL | WS_CHILD | WS_VISIBLE -FONT 8, "MS Sans Serif" -BEGIN - CONTROL "Progress1",IDC_PROGRESS1,"msctls_progress32",0x0,0,23, - 266,11 - CTEXT "",IDC_STATIC1,0,8,266,11 - PUSHBUTTON "Cancel",IDCANCEL,166,41,80,16 -END - - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO DISCARDABLE -BEGIN - IDD_DIALOG1, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 279 - TOPMARGIN, 7 - BOTTOMMARGIN, 64 - END - - IDD_DIALOG2, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 219 - TOPMARGIN, 7 - BOTTOMMARGIN, 55 - END - - IDD_DIALOG3, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 259 - TOPMARGIN, 7 - BOTTOMMARGIN, 55 - END -END -#endif // APSTUDIO_INVOKED - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/inetc_local.nsi b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/inetc_local.nsi deleted file mode 100644 index 845a18d64..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/inetc_local.nsi +++ /dev/null @@ -1,80 +0,0 @@ - -;-------------------------------- -; General Attributes - -Name "Inetc Local Test" -OutFile "inetc_local.exe" - - -;-------------------------------- -;Interface Settings - - !include "MUI.nsh" - !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install-colorful.ico" - !insertmacro MUI_PAGE_INSTFILES - !insertmacro MUI_LANGUAGE "English" - - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - - -; PUT test - -; FTP requires anonymous access in sample below. -; HTTP sample put.php included to package. Stores test.jpg as m2.bmp -; check server files present after upload - - inetc::put "http://localhost/put.php" "$EXEDIR\test.jpg" - Pop $0 - - inetc::put "ftp://localhost/test.jpg" "$EXEDIR\test.jpg" -; not anonymous format -; inetc::put "ftp://login:password@localhost/test.jpg" "$EXEDIR\test.jpg" - Pop $1 - - DetailPrint "PUT: HTTP $0, FTP $1 (verify server files)" - - -; POST test - -; HTTP sample post.php and post_form.htm (to compare results) included - - inetc::post "login=ami&passwd=333" "http://localhost/post.php?lg=iam&pw=44" "$EXEDIR\post_reply.htm" - Pop $2 - - DetailPrint "POST: $2 (post_reply.htm)" - - -; HEAD test - -; uses uploaded earlier test.jpg - - inetc::head /silent "http://localhost/m2.bmp" "$EXEDIR\head.txt" - Pop $3 - - DetailPrint "HEAD: $3 (head.txt)" - - -; GET test - -; 2 files download in nsisdl mode - inetc::get "http://localhost/m2.bmp" "$EXEDIR\get1.jpg" "http://localhost/m2.bmp" "$EXEDIR\get2.jpg" - Pop $4 - - inetc::get /popup "Localhost:GET with Popup" "http://localhost/m2.bmp" "$EXEDIR\get3.jpg" - Pop $5 - - inetc::get /banner "Local Test GET with Banner" "http://localhost/m2.bmp" "$EXEDIR\get4.jpg" - Pop $6 - - inetc::get /silent "ftp://localhost/test.jpg" "$EXEDIR\get5.jpg" - Pop $7 - - DetailPrint "GET: NSISDL $4, POPUP $5, BANNER $6, FTP $7 (get1-5.jpg)" - - SetDetailsView show - -SectionEnd diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/post.nsi b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/post.nsi deleted file mode 100644 index 9dcf0d2bb..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/post.nsi +++ /dev/null @@ -1,30 +0,0 @@ - -;-------------------------------- -; General Attributes - -Name "Inetc Post Test" -OutFile "post.exe" - - -;-------------------------------- -;Interface Settings - - !include "MUI.nsh" - !insertmacro MUI_PAGE_INSTFILES - !insertmacro MUI_LANGUAGE "English" - - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - -; this is my LAN sample, use your own URL for tests. Sample post.php included - - inetc::post "login=ami&passwd=333" "http://localhost/post.php?lg=iam&pw=44" "$EXEDIR\post_reply.htm" - Pop $0 # return value = exit code, "OK" if OK - MessageBox MB_OK "Download Status: $0" - -SectionEnd - - diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/post.php b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/post.php deleted file mode 100644 index f6a894964..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/post.php +++ /dev/null @@ -1,13 +0,0 @@ - - - - -"; -echo "post.passwd=".$_POST['passwd']."
"; -echo "get.lg=".$_GET['lg']."
"; -echo "get.pw=".$_GET['pw']."
"; -?> - - - diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/post_file.nsi b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/post_file.nsi deleted file mode 100644 index 7bb7b7704..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/post_file.nsi +++ /dev/null @@ -1,30 +0,0 @@ - -;-------------------------------- -; General Attributes - -Name "Inetc Post Test" -OutFile "post_file.exe" - - -;-------------------------------- -;Interface Settings - - !include "MUI.nsh" - !insertmacro MUI_PAGE_INSTFILES - !insertmacro MUI_LANGUAGE "English" - - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - -; this is my LAN sample, use your own URL for tests. Sample post.php included - - inetc::post "$EXEDIR\inetc.cpp" /file "http://localhost/post_file.php" "$EXEDIR\post_file.htm" - Pop $0 # return value = exit code, "OK" if OK - MessageBox MB_OK "Download Status: $0" - -SectionEnd - - diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/post_file.php b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/post_file.php deleted file mode 100644 index 07ab4fbf2..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/post_file.php +++ /dev/null @@ -1,10 +0,0 @@ - $value) { - echo "$header: $value
\n"; -} -echo "new
"; -foreach ($_FILES as $key => $value) echo $key . "<>" . $value . "
\n"; -echo file_get_contents('php://input'); -?> \ No newline at end of file diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/post_form.html b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/post_form.html deleted file mode 100644 index 046d60533..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/post_form.html +++ /dev/null @@ -1,18 +0,0 @@ - - -Registration form for post.php test - - -This form sends POST request to server. It was interesting to compare server echo
-reply (by included post.php) for this form and InetLoad plug-in - in my
-tests server did not see any difference between them :)
-
- -
-
- - -
- - - diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/put.nsi b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/put.nsi deleted file mode 100644 index 95cc8dda4..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/put.nsi +++ /dev/null @@ -1,30 +0,0 @@ - -;-------------------------------- -; General Attributes - -Name "Inetc Test" -OutFile "put.exe" - - -;-------------------------------- -;Interface Settings - - !include "MUI.nsh" - !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install-colorful.ico" - !insertmacro MUI_PAGE_INSTFILES - !insertmacro MUI_LANGUAGE "English" - - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - -; this is my LAN sample, use your own URL for tests. Login/pwd hidden from user. Sample put.php (for http request) included - - inetc::put "http://localhost/put.php" "$EXEDIR\test.jpg" -; inetc::put /POPUP "ftp://localhost/" /CAPTION "my local ftp upload" "ftp://localhost/test.jpg" "$EXEDIR\test.jpg" - Pop $0 - MessageBox MB_OK "Upload Status: $0" - -SectionEnd diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/put.php b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/put.php deleted file mode 100644 index 7bb2bf526..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/put.php +++ /dev/null @@ -1,19 +0,0 @@ - diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/recursive.nsi b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/recursive.nsi deleted file mode 100644 index 52e032663..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/recursive.nsi +++ /dev/null @@ -1,64 +0,0 @@ -Name "Inetc Recursive Dir Upload Test" -OutFile "recursive.exe" - -!include "MUI.nsh" -!insertmacro MUI_PAGE_INSTFILES -!insertmacro MUI_LANGUAGE "English" -!include "FileFunc.nsh" -!insertmacro GetFileAttributes - -var url -var path - -Function dirul - - Push $0 ; search handle - Push $1 ; file name - Push $2 ; attributes - - FindFirst $0 $1 "$path\*" -loop: - StrCmp $1 "" done - ${GetFileAttributes} "$path\$1" DIRECTORY $2 - IntCmp $2 1 isdir -retry: - Inetc::put $url/$1 "$path\$1" /end - Pop $2 - DetailPrint "$2 $path\$1" - StrCmp $2 "OK" cont - MessageBox MB_YESNO "$path\$1 file upload failed. Retry?" IDYES retry - Abort "terminated by user" - Goto cont -isdir: - StrCmp $1 . cont - StrCmp $1 .. cont - Push $path - Push $url - StrCpy $path "$path\$1" - StrCpy $url "$url/$1" - Call dirul - Pop $url - Pop $path -cont: - FindNext $0 $1 - Goto loop -done: - FindClose $0 - - Pop $2 - Pop $1 - Pop $0 - -FunctionEnd - - -Section "Dummy Section" SecDummy - - SetDetailsView hide - StrCpy $path "$EXEDIR" -; put is dir in the user's ftp home, use //put for root-relative path - StrCpy $url ftp://takhir:pwd@localhost/put - Call dirul - SetDetailsView show - -SectionEnd diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/redirect.nsi b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/redirect.nsi deleted file mode 100644 index cd2943420..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/redirect.nsi +++ /dev/null @@ -1,30 +0,0 @@ - -;-------------------------------- -; General Attributes - -Name "Redirect Test" -OutFile "redirect.exe" - - -;-------------------------------- -;Interface Settings - - !include "MUI.nsh" - !insertmacro MUI_PAGE_INSTFILES - !insertmacro MUI_LANGUAGE "English" - - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - - SetDetailsView hide - - inetc::get "http://localhost/redirect.php" "$EXEDIR\redirect.htm" /end - Pop $1 - - MessageBox MB_OK "Download Status: $1" - -SectionEnd - diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/redirect.php b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/redirect.php deleted file mode 100644 index afe455283..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/redirect.php +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/resource.h b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/resource.h deleted file mode 100644 index d7fc835a6..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/resource.h +++ /dev/null @@ -1,47 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Developer Studio generated include file. -// Used by inetc.rc -// -#define IDC_SLOGIN 8 -#define IDC_PROGRESS 10 -#define IDC_SUBTEXT 11 -#define IDC_SPWD 11 -#define IDC_ICON1 12 -#define IDD_DIALOG1 101 -#define IDI_ICON1 102 -#define IDI_ICON2 103 -#define IDD_AUTH 104 -#define IDI_ICON3 105 -#define IDI_ICON4 106 -#define IDI_ICON5 107 -#define IDD_DIALOG2 108 -#define IDI_ICON6 109 -#define IDD_DIALOG3 110 -#define IDC_STATIC1 1001 -#define IDC_STATIC2 1002 -#define IDC_STATIC3 1003 -#define IDC_STATIC4 1004 -#define IDC_PROGRESS1 1005 -#define IDC_STATIC5 1006 -#define IDC_STATIC6 1007 -#define IDC_STATIC12 1008 -#define IDC_STATIC13 1009 -#define IDC_STATIC20 1009 -#define IDC_STATIC21 1010 -#define IDC_STATIC22 1011 -#define IDC_STATIC23 1012 -#define IDC_STATIC24 1013 -#define IDC_STATIC25 1014 -#define IDC_ELOGIN 1015 -#define IDC_EPWD 1016 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 111 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1018 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/timeout.nsi b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/timeout.nsi deleted file mode 100644 index 7ff5688af..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/timeout.nsi +++ /dev/null @@ -1,31 +0,0 @@ - -;-------------------------------- -; General Attributes - -Name "Timeout Test" -OutFile "to.exe" - - -;-------------------------------- -;Interface Settings - - !include "MUI.nsh" - !insertmacro MUI_PAGE_INSTFILES - !insertmacro MUI_LANGUAGE "English" - - - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - -; additional headers. Sample php returns raw headers - inetc::get /receivetimeout 12 "http://localhost/to.php" "$EXEDIR\to.html" - Pop $0 - - MessageBox MB_OK "Download Status: $0" - -SectionEnd - - diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/translate.nsi b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/translate.nsi deleted file mode 100644 index 053a8155e..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/translate.nsi +++ /dev/null @@ -1,32 +0,0 @@ - -;-------------------------------- -; General Attributes - -Name "Inetc Translate Test" -OutFile "Translate.exe" - - -;-------------------------------- -;Interface Settings - - !include "MUI.nsh" - !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install-colorful.ico" - !insertmacro MUI_PAGE_WELCOME - !insertmacro MUI_PAGE_INSTFILES - !insertmacro MUI_PAGE_FINISH - !insertmacro MUI_LANGUAGE "Russian" - - -;-------------------------------- -;Installer Sections - -Section "Dummy Section" SecDummy - -; This is russian variant. See Readme.txt for a list of parameters. -; Use LangStrings as TRANSLATE parameters for multilang options - - inetc::load /POPUP "" /CAPTION " " /TRANSLATE "URL" "" " " " " "" "" "" "http://ineum.narod.ru/g06s.htm" "$EXEDIR\g06s.htm" - Pop $0 # return value = exit code, "OK" if OK - MessageBox MB_OK "Download Status: $0" - -SectionEnd diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/wiki.txt b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/wiki.txt deleted file mode 100644 index f7fccb58e..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Inetc/wiki.txt +++ /dev/null @@ -1,169 +0,0 @@ -{{PageAuthor|Takhir}} - -== Links == - -Download:
-Inetc.zip
- -[http://forums.winamp.com/showthread.php?threadid=198596 Forum thread] - -== Description == - -Internet client plug-in for files download and upload. Based on the InetLoad plug-in. Network implementation uses MS WinInet API, supports http/https and ftp protocols. Plugin has better proxy support compared to NSISdl plug-in. Command line may include few URL/File pairs to be transfered. If server or proxy login/password are not set in the script, it displays IE-style authentication dialog (except silent mode). Plug-in supports 3 "transfer in progress" display modes: - -# old NSISdl style - additional embedded progress bar and text on the INSTFILES page; -# POPUP dialog mode with detailed info; -# BANNER mode with simple popup window. - -Plug-in recognizes Installer's Silent mode and this case hides any output (this feature requires NSIS 2.03 or later). Program implements simple re-get functionality - host reconnect and download from current position after short pause. While program depends on IE settings, it changes current IE mode to online. NSISdl code fragment was used for progress bar displaying in the "old style" mode. -For ftp use "host/path" for file location relative to user's home dir and -"host//path" for absolute path. - -== Command line == - -Plug-in DLL functions (entry points): get, post, head, put - -=== get DLL Function === - -inetc::get [/PROXY IP:PORT] [/USERNAME PROXY_LOGIN /PASSWORD PROXY_PASSWD] - [/NOPROXY] [/NOCANCEL] [/CONNECTTIMEOUT TO_SEC] [/RECEIVETIMEOUT TO_SEC] [/SILENT] - [/CAPTION TEXT] [/NOCOOKIES] [/RESUME RETRY_QUESTION] [/POPUP HOST_ALIAS | /BANNER TEXT] - [/CANCELTEXT CANCEL_TEXT] [/QUESTION CANCEL_QUESTION] [/USER_AGENT USER_AGENT_TEXT] - [/HEADER HEADER_TEXT] [/TRANSLATE LANG_PARAMS] - URL1 local_file1 [URL2 local_file2 [...]] [/END] -This call returns "OK" string if successful, error description string if failed (see included InetLoad.cpp file for a full set of status strings). Usage and result processing samples are included to the package. - -; /PROXY -: Overwrites current proxy settings, not required in most cases. IE settings will be used by default. - -; /USERNAME -: Proxy username (http only). - -; /PASSWORD -: Proxy password (http only). For server (http/ftp) authentication it is possible to use URL encoded name and password, for example http://username:password@nsis.sourceforge.net. - -;/NOPROXY -: Disables proxy settings for this connection (if any) - -;/NOCANCEL -: Prevents download from being interrupted by user (locks Esc, Alt-F4, Cancel handling) - -;/CONNECTTIMEOUT - -:Sets INTERNET_OPTION_CONNECT_TIMEOUT, seconds, default - IE current parameter value. - -;/RECEIVETIMEOUT - -:Sets INTERNET_OPTION_RECEIVE_TIMEOUT, seconds, default - IE current parameter value. - -; /SILENT -: Key hides plug-in' output (both popup dialog and embedded progress bar). Not required if 'SilentInstall silent' mode was defined in script (NSIS 2.03 or later). - -; /RESUME -: On the permanent connection/transfer error instead of exit first displays message box with "resume download" question. Useful for dial-up connections and big files - allows user to restore connection and resume download. Default is "Your internet connection seems to have dropped out!\nPlease reconnect and click Retry to resume downloading...". - -; /CAPTION -: Defines caption text for /BANNER mode, caption prefix (left of '-') for /POPUP mode and caption for RESUME MessageBox. Default is "InetLoad plug-in" if not set or "". - -; /POPUP -: This mode displays detailed download dialog instead of embedded progress bar. Also useful in .onInit function (i.e. not in Section). If HOST_ALIAS is not "", text will replace URL in the dialog - this allows to hide real URL (including password). - -; /BANNER -: Displays simple popup dialog (MSI Banner mode) and sets dialog TEXT (up to 3 lines using $\n). - -; /CANCELTEXT -: Text for the Cancel button in the NSISdl mode. Default is NSIS dialog Cancel button text (current lang). - -; /QUESTION -: Text for the optional MessageBox if user tries to cancel download. If /QUESTION "" was used default "Are you sure that you want to stop download?" will be substituted. - -; /USERAGENT -: UserAgent http request header value. Default is "NSIS_Inetc (Mozilla)". - -; /HEADER -: Adds or replaces http request header. Common HEADER_TEXT format is "header: value". - -; /NOCOOKIES -: Removes cookies from http request - -; /END -: Allows to limit plug-in stack reading (optional, required if you stores other vars in the stack). - -; /TRANSLATE -: Allows translating plug-in text in the POPUP or "old style" (NSISdl) modes (see Readme for parameters). In the BANNER mode text is also customizable. - -=== post DLL Function === - -inetc::post TEXT2POST [/PROXY IP:PORT] [/USERNAME PROXY_LOGIN /PASSWORD PROXY_PASSWD] - [/NOPROXY] [/NOCANCEL] [/CONNECTTIMEOUT TO_SEC] [/RECEIVETIMEOUT TO_SEC] [/SILENT] - [/FILE] [/CAPTION TEXT] [/NOCOOKIES] [/POPUP HOST_ALIAS | /BANNER TEXT] - [/CANCELTEXT CANCEL_TEXT] [/USER_AGENT USER_AGENT_TEXT] [/TRANSLATE LANG_PARAMS] - URL1 local_file1 [URL2 local_file2 [...]] [/END] -Sets POST http mode and defines text string or file name to be used in the POST (http only). Disables auto re-get. No char replaces used (%20 and others). /FILE option allows to send TEXT2POST file content to server, additional 'Filename:' header added to request this case. - -=== head DLL Function === - -The same as get, but requests http headers only. Writes raw headers to file. - -=== put DLL Function === - -inetc::put [/PROXY IP:PORT] [/USERNAME PROXY_LOGIN /PASSWORD PROXY_PASSWD] [/NOPROXY] - [/NOCANCEL] [/CONNECTTIMEOUT TO_SEC] [/RECEIVETIMEOUT TO_SEC] [/SILENT] [/CAPTION TEXT] - [/POPUP HOST_ALIAS | /BANNER TEXT] [/CANCELTEXT CANCEL_TEXT] [/USER_AGENT USER_AGENT_TEXT] - [/TRANSLATE LANG_PARAMS] [/NOCOOKIES] - URL1 local_file1 [URL2 local_file2 [...]] [/END] -Return value and parameters (if applicable) are the same as for previous entry point. - -== Examples == - - -inetc::get "http://dl.zvuki.ru/6306/mp3/12.mp3" "$EXEDIR\12.mp3" \ - "ftp://dl.zvuki.ru/6306/mp3/11.mp3" "$EXEDIR\11.mp3" -Pop $0 - - - -inetc::put /BANNER "Cameron Diaz upload in progress..." \ -"http://www.dreamgirlswallpaper.co.uk/fiveyearsonline/wallpaper/Cameron_Diaz/camerond09big.JPG" \ -"$EXEDIR\cd.jpg" - Pop $0 - StrCmp $0 "OK" dlok - MessageBox MB_OK|MB_ICONEXCLAMATION "http upload Error, click OK to abort installation" /SD IDOK - Abort -dlok: - ... - - - -;installer window restoring after silent calls from .onGUIInit -;by Edward Marshall & Jonathan Beddoes -;temporarily makes the installer window topmost so that inetc doesn't drop our focus - -Function .onGUIInit - - ; Get window handle of installer into register 0. - ; This only works in onGUIInit! (so you still can't silently call inetc from onInit) - StrCpy $0 $HWNDPARENT - - ; Make window always-on-top. Yes, this is bad but we are only doing it temporarily! - ; This prevents inetc's hidden dialog from getting foreground precedence over the installer. - ; This must be done before any inetc calls. - ; -1 = HWND_TOPMOST, 3 = SWP_NOSIZE|SWP_NOMOVE - System::Call "user32::SetWindowPos(i r0, i -1, i 0, i 0, i 0, i 0, i 3)" - - ; Now do whatever you want with inetc. - inetc::head /silent "http://ineum.narod.ru/spr_2006.htm" "$EXEDIR\head.txt" - - ; Now set the installer window back to normal (not always-on-top). - ; -2 = HWND_NOTOPMOST, 3 = SWP_NOSIZE|SWP_NOMOVE - System::Call "user32::SetWindowPos(i r0, i -2, i 0, i 0, i 0, i 0, i 3)" - -FunctionEnd - - -; Following attribute also can restore installer Window -; BGGradient 000000 000080 FFFFFF - -== Credits == - -Many thanks to Backland who offered a simple way to fix NSISdl mode crashes, added 'center parent' function, offers few nice design ideas and spent a lot of time testing the plug-in. - -[[Category:Plugins]] diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Afrikaans.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Afrikaans.nlf deleted file mode 100644 index 1ec535899..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Afrikaans.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Afrikaans.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Afrikaans.nsh deleted file mode 100644 index 154afb60a..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Afrikaans.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Albanian.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Albanian.nlf deleted file mode 100644 index a27dbd8d6..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Albanian.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Albanian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Albanian.nsh deleted file mode 100644 index faf9224e7..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Albanian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Arabic.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Arabic.nlf deleted file mode 100644 index e8ba22303..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Arabic.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Arabic.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Arabic.nsh deleted file mode 100644 index 1f6f3b51c..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Arabic.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Armenian.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Armenian.nlf deleted file mode 100644 index 182ce50a9..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Armenian.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Armenian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Armenian.nsh deleted file mode 100644 index 67884c57a..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Armenian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Basque.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Basque.nlf deleted file mode 100644 index 2f46f500e..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Basque.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Basque.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Basque.nsh deleted file mode 100644 index bf5939bcd..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Basque.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Belarusian.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Belarusian.nlf deleted file mode 100644 index 3730e75a5..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Belarusian.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Belarusian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Belarusian.nsh deleted file mode 100644 index 57089408c..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Belarusian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Bosnian.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Bosnian.nlf deleted file mode 100644 index d7d7ebb34..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Bosnian.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Bosnian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Bosnian.nsh deleted file mode 100644 index e9df25470..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Bosnian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Breton.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Breton.nlf deleted file mode 100644 index a908febc6..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Breton.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Breton.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Breton.nsh deleted file mode 100644 index e80cb1b94..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Breton.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Bulgarian.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Bulgarian.nlf deleted file mode 100644 index de8fe4ad3..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Bulgarian.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Bulgarian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Bulgarian.nsh deleted file mode 100644 index d8d9fdbc8..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Bulgarian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Catalan.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Catalan.nlf deleted file mode 100644 index 8800ef074..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Catalan.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Catalan.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Catalan.nsh deleted file mode 100644 index 931cc43ce..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Catalan.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Cibemba.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Cibemba.nlf deleted file mode 100644 index 8faaec4bf..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Cibemba.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Cibemba.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Cibemba.nsh deleted file mode 100644 index 038825ddb..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Cibemba.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Croatian.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Croatian.nlf deleted file mode 100644 index 97a7f2b14..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Croatian.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Croatian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Croatian.nsh deleted file mode 100644 index 0670d63b6..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Croatian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Czech.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Czech.nlf deleted file mode 100644 index 2a337ea73..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Czech.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Czech.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Czech.nsh deleted file mode 100644 index ae1f19b10..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Czech.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Danish.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Danish.nlf deleted file mode 100644 index 943749e5d..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Danish.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Danish.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Danish.nsh deleted file mode 100644 index ae4ebd45f..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Danish.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Dutch.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Dutch.nlf deleted file mode 100644 index a556efa3a..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Dutch.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Dutch.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Dutch.nsh deleted file mode 100644 index b3fb5c232..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Dutch.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Efik.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Efik.nlf deleted file mode 100644 index 70b9cd88c..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Efik.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Efik.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Efik.nsh deleted file mode 100644 index bf8ae0ee3..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Efik.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/English.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/English.nlf deleted file mode 100644 index 09cc0b80c..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/English.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/English.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/English.nsh deleted file mode 100644 index cc8cdc911..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/English.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/EnglishGB.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/EnglishGB.nlf deleted file mode 100644 index 61d26c34c..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/EnglishGB.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/EnglishGB.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/EnglishGB.nsh deleted file mode 100644 index 771eb24ab..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/EnglishGB.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Esperanto.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Esperanto.nlf deleted file mode 100644 index 2636fce9d..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Esperanto.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Esperanto.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Esperanto.nsh deleted file mode 100644 index c01b319f7..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Esperanto.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Estonian.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Estonian.nlf deleted file mode 100644 index 5317a1c8b..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Estonian.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Estonian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Estonian.nsh deleted file mode 100644 index b75660f6c..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Estonian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Farsi.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Farsi.nlf deleted file mode 100644 index 0f62cf696..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Farsi.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Farsi.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Farsi.nsh deleted file mode 100644 index 44f6b4e64..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Farsi.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Finnish.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Finnish.nlf deleted file mode 100644 index 8d64dd3c1..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Finnish.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Finnish.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Finnish.nsh deleted file mode 100644 index 2c003fbde..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Finnish.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/French.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/French.nlf deleted file mode 100644 index 613491767..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/French.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/French.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/French.nsh deleted file mode 100644 index 81b6b2afc..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/French.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Galician.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Galician.nlf deleted file mode 100644 index 456b9d878..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Galician.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Galician.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Galician.nsh deleted file mode 100644 index ac5b8846d..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Galician.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Georgian.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Georgian.nlf deleted file mode 100644 index 8f49e35ad..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Georgian.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Georgian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Georgian.nsh deleted file mode 100644 index 730b550be..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Georgian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/German.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/German.nlf deleted file mode 100644 index 16969cb68..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/German.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/German.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/German.nsh deleted file mode 100644 index 807bc8fbe..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/German.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Greek.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Greek.nlf deleted file mode 100644 index a7fbcd542..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Greek.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Greek.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Greek.nsh deleted file mode 100644 index c8b07c661..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Greek.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Hebrew.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Hebrew.nlf deleted file mode 100644 index 22781ff24..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Hebrew.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Hebrew.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Hebrew.nsh deleted file mode 100644 index b95289f81..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Hebrew.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Hindi.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Hindi.nlf deleted file mode 100644 index 5f95e49e8..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Hindi.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Hindi.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Hindi.nsh deleted file mode 100644 index f68f90697..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Hindi.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Hungarian.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Hungarian.nlf deleted file mode 100644 index dde9b3191..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Hungarian.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Hungarian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Hungarian.nsh deleted file mode 100644 index e117f7fb4..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Hungarian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Icelandic.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Icelandic.nlf deleted file mode 100644 index 565d05a5d..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Icelandic.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Icelandic.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Icelandic.nsh deleted file mode 100644 index 5806041d4..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Icelandic.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Igbo.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Igbo.nlf deleted file mode 100644 index f7c914238..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Igbo.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Igbo.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Igbo.nsh deleted file mode 100644 index 80ef89868..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Igbo.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Indonesian.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Indonesian.nlf deleted file mode 100644 index 2e18276f1..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Indonesian.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Indonesian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Indonesian.nsh deleted file mode 100644 index daaba7f34..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Indonesian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Irish.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Irish.nlf deleted file mode 100644 index a89970ab7..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Irish.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Irish.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Irish.nsh deleted file mode 100644 index fe46098eb..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Irish.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Italian.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Italian.nlf deleted file mode 100644 index 617d4af82..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Italian.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Italian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Italian.nsh deleted file mode 100644 index 5f7077881..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Italian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Japanese.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Japanese.nlf deleted file mode 100644 index 9b94418ba..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Japanese.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Japanese.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Japanese.nsh deleted file mode 100644 index d52b12c27..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Japanese.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Khmer.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Khmer.nlf deleted file mode 100644 index 17010c2f0..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Khmer.nlf +++ /dev/null @@ -1,191 +0,0 @@ -# Header, don't edit -NLF v6 -# Start editing here -# Language ID -10311 -# Font and size - dash (-) means default -- -- -# Codepage - dash (-) means ANSI code page -1200 -# RTL - anything else than RTL means LTR -- -# Translation by .....សុផល្លី (yi sophally, yi.sophally at gmail dot com) -# ^Branding -Nullsoft Install System %s -# ^SetupCaption -ដំឡើងកម្មវិធី $(^Name) -# ^UninstallCaption -លុប​ $(^Name) ចេញ -#^LicenseSubCaption -: កិច្ចសន្យា​អាជ្ញាបប័ណ្ណ -# ^ComponentsSubCaption -: ជំរើស​នៃ​ការ​ដំឡើង -# ^DirSubCaption -: ថត​ដើម្បី​ដំឡើង -# ^InstallingSubCaption -: កំពុងដំឡើង​ -# ^CompletedSubCaption -: ដំឡើង​រួចរាល់​ -# ^UnComponentsSubCaption -: ជំរើស​នៃការ​លុបកម្មវិធី​ចេញ​ -# ^UnDirSubCaption -: ថត​ដែល​ត្រូវលុបកម្មវិធី​ចេញ​ -# ^ConfirmSubCaption -: ការបញ្ជាក់​ទទួលយក​ -# ^UninstallingSubCaption -: កំពុង​លុប​ចេញ​ -# ^UnCompletedSubCaption -: លុបចេញ​រួចរាល់​ -# ^BackBtn -< &ត្រលប់​ក្រោយ​ -# ^NextBtn -&ទៅ​មុខ​​ > -# ^AgreeBtn -I &យល់​ព្រម​ -# ^AcceptBtn -ខ្ញុំ​ &យល់ព្រមតាម​កិច្ច​ព្រម​ព្រាង​អាជ្ញាប័ណ្ណ -# ^DontAcceptBtn -&ខ្ញុំ​មិន​យល់ព្រមតាម​កិច្ច​ព្រម​ព្រាង​អាជ្ញាប័ណ្ណទេ​ -# ^InstallBtn -&ដំឡើង​ -# ^UninstallBtn -&លុប​ចេញ​ -# ^CancelBtn -បដិសេធ​ -# ^CloseBtn -&បិទ​ -# ^BrowseBtn -ស្វែង​&រក​... -# ^ShowDetailsBtn -បង្ហាញ​ &​លំអិត​សេចក្តី​ -# ^ClickNext -ចុច​ទៅមុខ​ដើម្បី​បន្ត​ -# ^ClickInstall -ចុច​លើ​ដំឡើង​ដើម្បី​ចាប់​ផ្តើម​ដំណើរ​ការ -# ^ClickUninstall -ចុច​លើ​លុប​ចេញ​ដើម្បី​ចាប់​ផ្តើម​លុប​​ -# ^Name -ឈ្មោះ​ -# ^Completed -រួចរាល់​ -# ^LicenseText -សូម​អាន​កិច្ចព្រមព្រាង​អាជ្ញាប័ណ្ណ​មុន​ពេល​ដំឡើង​កម្មវិធី​​ $(^NameDA) នេះ។ ប្រសិន​បើ​អ្នក​យល់​ស្រប​សូម​ចុច​យក​ ខ្ញុំ​យល់​ព្រម​ -# ^LicenseTextCB -សូម​អាន​កិច្ចព្រមព្រាង​អាជ្ញាប័ណ្ណ​មុន​ពេល​ដំឡើង​កម្មវិធី​​ $(^NameDA) នេះ។ ប្រសិន​បើ​អ្នក​យល់​ស្រប​សូម​ធិក​យក​ប្រអប់​ខាង​ក្រោម​$_CLICK -# ^LicenseTextRB -សូម​អាន​កិច្ចព្រមព្រាង​អាជ្ញាប័ណ្ណ​មុន​ពេល​ដំឡើង​កម្មវិធី​​ $(^NameDA) នេះ។ ប្រសិន​បើ​អ្នក​យល់​ស្រប​សូម​ជ្រើស​​យក​ជំរើស​ទី​មួយ​​ខាង​ក្រោម​ $_CLICK -# ^UnLicenseText -សូម​អាន​កិច្ចព្រមព្រាង​អាជ្ញាប័ណ្ណ​មុន​ពេលលុប​កម្មវិធី​​ $(^NameDA) នេះ។ ប្រសិន​បើ​អ្នក​យល់​ស្រប​សូម​ចុច​យក​ ខ្ញុំ​យល់​ព្រម​ -# ^UnLicenseTextCB -សូម​អាន​កិច្ចព្រមព្រាង​អាជ្ញាប័ណ្ណ​មុន​ពេល​លុប​កម្មវិធី​​ $(^NameDA) នេះ។ ប្រសិន​បើ​អ្នក​យល់​ស្រប​សូម​ធិក​យក​ប្រអប់​ខាង​ក្រោម​$_CLICK -# ^UnLicenseTextRB -សូម​អាន​កិច្ចព្រមព្រាង​អាជ្ញាប័ណ្ណ​មុន​ពេល​លុប​កម្មវិធី​​ $(^NameDA) នេះ។ ប្រសិន​បើ​អ្នក​យល់​ស្រប​សូម​ជ្រើស​​យក​ជំរើស​ទី​មួយ​​ខាង​ក្រោម​ $_CLICK -# ^Custom -ជំរើសផ្ទាល់​ខ្លួន​ -# ^ComponentsText -ធិក​យកសមាសភាគ​ដែល​អ្នក​ចង់​ដំឡើង​និង​ដោះធិក​ពី​សមាស​ភាគ​ដែល​អ្នក​មិន​ចង់​ដំឡើង​ ​$_CLICK -# ^ComponentsSubText1 -សូមជ្រើស​រើស​ប្រភេទ​នៃ​ការ​ដំឡើង​: -# ^ComponentsSubText2_NoInstTypes -សូមជ្រើសរើស​សមាសភាគ​ដើម្បី​ដំឡើង​: -# ^ComponentsSubText2 -ឬ ជ្រើស​រើស​សមាសភាគ​ជាជំរើស​ណាមួយ​ដែល​អ្នក​ចង់​ដំឡើង​: -# ^UnComponentsText -ធិក​យកសមាសភាគ​ដែល​អ្នក​ចង់លុបចេញ​និង​ដោះធិក​ពី​សមាស​ភាគ​ដែល​អ្នក​មិន​ចង់លុបចេញ​​ ​$_CLICK -# ^UnComponentsSubText1 -សូមជ្រើស​រើស​ប្រភេទ​នៃ​ការលុបកម្មវិធី​: -# ^UnComponentsSubText2_NoInstTypes -សូមជ្រើសរើស​សមាសភាគ​ដើម្បីកាត់ចេញ​​: -# ^UnComponentsSubText2 -ឬ ជ្រើស​រើស​សមាសភាគ​ជាជំរើស​ណាមួយ​ដែល​អ្នក​ចង់​កាត់ចេញ​​: -# ^DirText -កម្មវិធី​ជំនួយ​នេះ​នឹង​ដំឡើង​$(^NameDA)នៅក្នុង​ថត​ខាង​ក្រោម​នេះ​។ ដើម្បី​ដំឡើង​នៅ​ក្នុង​ថត​ដទៃ​ទៀត​សូម​ចុច​លើ​ស្វែងរក​ ហើយ​ជ្រើសរើស​ថត​ផ្សេង​ទៀត​។ ​$_CLICK -# ^DirSubText -ថត​គោល​ដៅ​ -# ^DirBrowseText -ជ្រើសរើស​ថត​ដើម្បី​ដំឡើង​កម្មវិធី​$(^NameDA): -# ^UnDirText -កម្មវិធី​ជំនួយ​នេះ​នឹងលុប​​$(^NameDA)ចេញពី​ថត​ខាង​ក្រោម​នេះ​។ ដើម្បី​ចេញពី​ក្នុង​ថត​ដទៃ​ទៀត​សូម​ចុច​លើ​ស្វែងរក​ ហើយ​ជ្រើសរើស​ថត​ផ្សេង​ទៀត​។ ​$_CLICK -# ^UnDirSubText -"" -# ^UnDirBrowseText -ជ្រើសរើស​ថត​ដើម្បី​លុប​​កម្មវិធី​$(^NameDA)ចេញ​: -# ^SpaceAvailable -"ចណ្លោះទំហំ​ដែលអាចប្រើប្រាស់បាន​: " -# ^SpaceRequired -"តំរូវការ​ទំហំ​: " -# ^UninstallingText -$(^NameDA) នឹង​ត្រូវ​បាន​លុប​ចេញ​ពី​ថត​ខាង​ក្រោម​នេះ​។ $_CLICK -# ^UninstallingSubText -កំពុង​លុប​ចេញពី:​ -# ^FileError -មាន​កំហុស​ក្នុង​ការ​បើក​ឯកសារ​ដើម្បី​សរសេរ​ចូល​:\r\n\r\n$0\r\n\r\n​ សូមចុចលើ​ បញ្ឈប់​ ដើម្បី​បញ្ចប់ការ​ដំឡើង​ \r\n Retry ដើម្បី​ព្យាយាម​ម្តង​ទៀត​ ឫ បដិសេធ​ដើម្បី​បញ្ឈប់​ឯកសារនេះ​។​ -# ^FileError_NoIgnore -មាន​កំហុស​ក្នុង​ការ​បើក​ឯកសារ​ដើម្បី​សរសេរ​ចូល​:​\r\n\r\n$0\r\n\r\n សូមចុចលើ​ Retry ដើម្បី​ព្យាយាម​ម្តង​ទៀត ឫ \r\nបដិសេធ ដើម្បី​បញ្ឈប់​ការ​ដំឡើង​។​ -# ^CantWrite -"មិនអាច​សរសេរ​ចូល​បាន​: " -# ^CopyFailed -ការចំលងបរាជ័យ -​# ^CopyTo -"ចំលង​ទៅកាន់ " -# ^Registering -"កំពុង​ចុះឈ្មោះ​: " -# ^Unregistering -"កំពុង​លុប​ឈ្មោះ​: " -# ^SymbolNotFound -"មិនអាច​រក​និមិត្ត​សញ្ញាឃើញ​: " -# ^CouldNotLoad -"មិន​អាច​ទាញមក​បាន: " -# ^CreateFolder -"​បង្កើត​ថត​: " -# ^CreateShortcut -"បង្កើត​ផ្លូវកាត់​: " -# ^CreatedUninstaller -"កម្មវិធី​ដើម្បី​លុប​ត្រូវបាន​បង្កើត​: " -# ^Delete -"លុប​ឯកសា​: " -# ^DeleteOnReboot -"លុប​ពេលកុំព្យូទ័រ​​ដំណើរការ​ឡើង​វិញ: " -# ^ErrorCreatingShortcut -"មានកំហុស​ក្នុងការ​បង្កើត​ផ្លូវកាត់​: " -# ^ErrorCreating -"មាន​កំហុស​ក្នុង​ការ​បង្កើត​: " -# ^ErrorDecompressing -មាន​កំហុស​ក្នុង​ការ​ពន្លា​ទិន្នន័យ! កម្មវិធី​ដំឡើង​មាន​បញ្ហា​? -# ^ErrorRegistering -មាន​កំហុស​ក្នុង​ការ​ចុះឈ្មោះ​ ឌីអិល​អិល​ -# ^ExecShell -"ប្រតិប័ត្តសែល​: " -# ^Exec -"ប្រតិប័ត្ត: " -# ^Extract -"ពន្លា: " -# ^ErrorWriting -"ពន្លា​ឯកសារ​: មាន​បញ្ហាពេល​សរសេរ​ចូល​ឯកសារ​ " -# ^InvalidOpcode -កម្មវិធី​ដំឡើង​មាន​បញ្ហា​: opcode មិនត្រឹមត្រូវ​ -# ^NoOLE -"អត់មាន​ OLE សំរាប់​: " -# ^OutputFolder -"ថតសំរាប់ដាក់​ទិន្នផល​: " -# ^RemoveFolder -"លុបថត​ឯកសារ​: " -# ^RenameOnReboot -"ប្តូរឈ្មោះ​នៅពេល​កុំព្យូទ័រ​ដំណើរ​ការ​ឡើង​វិញ​: " -# ^Rename -"ប្តូរ​ឈ្មោះ​: " -# ^Skipped -"ត្រូវបាន​រំលង​: " -# ^CopyDetails -ចំលង​ពិពណ៌នាទៅ​ Clipboard -# ^LogInstall -កត់ត្រា​ដំណើរការ​ដំឡើង​ -# ^Byte -B -# ^Kilo -K -# ^Mega -M -# ^Giga -G \ No newline at end of file diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Khmer.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Khmer.nsh deleted file mode 100644 index ec33eead1..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Khmer.nsh +++ /dev/null @@ -1,129 +0,0 @@ -;Language: Khmer (1033) -;By yi.sophally - -!insertmacro LANGFILE "Khmer" "ភាសាខ្មែរ" - -!ifdef MUI_WELCOMEPAGE - ${LangFileString} MUI_TEXT_WELCOME_INFO_TITLE "សូមស្វាគមន៍ចំពោះការ​ដំឡើង​កម្មវិធី​ $(^NameDA)" - ${LangFileString} MUI_TEXT_WELCOME_INFO_TEXT "កម្មវិធីជំនួយនេះនឹងនាំអ្នកដល់​ការ​ដំឡើង​កម្មវិធី​នៃកម្មវិធី $(^NameDA).$\r$\n$\r$\nIt ដែល​សូម​អោយ​អ្នក​បិទ​នូវ​កម្ម​វិធី​ទាំងឡាយ​ផ្សេង​ទៀត​មុន​ពេល​ចាប់ផ្តើម​ការ​ដំឡើង​។ ដើម្បី​ងាយ​ស្រួល​ក្នុង​ការ​កែប្រែ​ឯកសារ​នៃប្រព័ន្ធប្រតិបត្តការ​ដោយ​មិន​ចាំបាច់​ចាប់​ផ្តើម​ដំណើរ​ការ​ម៉ាស៊ីនរបស់​អ្នក​​សារ​ជា​ថ្មី។​ $\r$\n$\r$\n$_CLICK" -!endif - -!ifdef MUI_UNWELCOMEPAGE - ${LangFileString} MUI_UNTEXT_WELCOME_INFO_TITLE "ស្វាគមន៍​ចំពោះ​ការ​លុបកម្មវិធី​ $(^NameDA)​ នេះ" - ${LangFileString} MUI_UNTEXT_WELCOME_INFO_TEXT "កម្មវិធីជំនួយនេះនឹងនាំអ្នកដល់​ការលុបចេញ​​នៃកម្មវិធី$(^NameDA).$\r$\n$\r$\n​ មុន​ពេល​ចាប់​ផ្តើម​លុប​ចេញ​ សូម​អោយ​ប្រាកដ​ថា​កម្មវិធី​ $(^NameDA) មិនមែន​កំពុង​ដំណើរ​ការ​$\r$\n$\r$\n$_CLICK" -!endif - -!ifdef MUI_LICENSEPAGE - ${LangFileString} MUI_TEXT_LICENSE_TITLE "កិច្ចព្រមព្រាង​អាជ្ញា​ប័ណ្ណ" - ${LangFileString} MUI_TEXT_LICENSE_SUBTITLE "សូម​អាន​អាជ្ញាប័ណ្ណ​អោយ​បាន​ត្រឹម​ត្រូវ​មុន​ពេល​ដំឡើង​កម្មវិធី​ $(^NameDA)។​" - ${LangFileString} MUI_INNERTEXT_LICENSE_BOTTOM "ប្រសិន​បើ​អ្នក​យល់​ព្រម​តាម​កិច្ចព្រម​ព្រាង​ សូម​ចុច​ ខ្ញុំយល់ព្រម​ ដើម្បី​ដំណើរការ​បន្ត។ ដើម្បីដំឡើង​​កម្មវិធី​ $(^NameDA) នេះ​អ្នក​ត្រូវ​តែ​យល់ព្រម​តាម​កិច្ចព្រមព្រាង​។" - ${LangFileString} MUI_INNERTEXT_LICENSE_BOTTOM_CHECKBOX "ប្រសិន​បើ​អ្នក​យល់​ព្រម​តាម​កិច្ចព្រម​ព្រាង​សូម​ចុច​ធិច​ប្រអប់​ខាងក្រោម​។ ដើម្បីដំឡើង​កម្មវិធី​ $(^NameDA) នេះ​អ្នក​ត្រូវ​តែ​យល់ព្រម​តាម​កិច្ចព្រមព្រាង​ $_CLICK" - ${LangFileString} MUI_INNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS "ប្រសិន​បើ​អ្នក​យល់​ព្រម​តាម​កិច្ចព្រម​ព្រាង​សូមជ្រើសរើស​ជំរើស​ទីមួយ​ខាង​ក្រោម​។ ដើម្បីដំឡើង​កម្មវិធី​ $(^NameDA) នេះ​អ្នក​ត្រូវ​តែ​យល់ព្រម​តាម​កិច្ចព្រមព្រាង $_CLICK" -!endif - -!ifdef MUI_UNLICENSEPAGE - ${LangFileString} MUI_UNTEXT_LICENSE_TITLE "កិច្ចព្រមព្រាង​អាជ្ញា​ប័ណ្ណ" - ${LangFileString} MUI_UNTEXT_LICENSE_SUBTITLE "សូម​អាន​អាជ្ញាប័ណ្ណ​អោយ​បាន​ត្រឹម​ត្រូវ​មុន​ពេល​លុប​កម្មវិធី​ $(^NameDA)ចេញ។​" - ${LangFileString} MUI_UNINNERTEXT_LICENSE_BOTTOM "ប្រសិន​បើ​អ្នក​យល់​ព្រម​តាម​កិច្ចព្រម​ព្រាង​ សូម​ចុច​ I Agree ដើម្បី​ដំណើរការ​បន្ត។ ដើម្បីលុប​កម្មវិធី​ $(^NameDA) នេះ​អ្នក​ត្រូវ​តែ​យល់ព្រម​តាម​កិច្ចព្រមព្រាង​ $_CLICK" - ${LangFileString} MUI_UNINNERTEXT_LICENSE_BOTTOM_CHECKBOX "ប្រសិន​បើ​អ្នក​យល់​ព្រម​តាម​កិច្ចព្រម​ព្រាង​សូម​ចុច​ធិច​ប្រអប់​ខាងក្រោម​។ ដើម្បីលុបកម្មវិធី​ $(^NameDA) នេះ​អ្នក​ត្រូវ​តែ​យល់ព្រម​តាម​កិច្ចព្រមព្រាង​ $_CLICK" - ${LangFileString} MUI_UNINNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS "ប្រសិន​បើ​អ្នក​យល់​ព្រម​តាម​កិច្ចព្រម​ព្រាង​សូមជ្រើសរើស​ជំរើស​ទីមួយ​ខាង​ក្រោម​។ ដើម្បីលុប​កម្មវិធី​ $(^NameDA) នេះ​អ្នក​ត្រូវ​តែ​យល់ព្រម​តាម​កិច្ចព្រមព្រាង $_CLICK" -!endif - -!ifdef MUI_LICENSEPAGE | MUI_UNLICENSEPAGE - ${LangFileString} MUI_INNERTEXT_LICENSE_TOP "សូម​ចុច Page Down ដើម្បី​មើល​កិច្ច​ព្រម​ព្រាង​ដែល​នៅសល់​" -!endif - -!ifdef MUI_COMPONENTSPAGE - ${LangFileString} MUI_TEXT_COMPONENTS_TITLE "ជ្រើសរើស​សមាសភាគ" - ${LangFileString} MUI_TEXT_COMPONENTS_SUBTITLE "ជ្រើសរើស​ដំណើរ​ការ​នៃកម្មវិធី​ $(^NameDA) ​ដែល​អ្នក​ចង់​ដំឡើង​" -!endif - -!ifdef MUI_UNCOMPONENTSPAGE - ${LangFileString} MUI_UNTEXT_COMPONENTS_TITLE "ជ្រើសរើស​សមាសភាគ" - ${LangFileString} MUI_UNTEXT_COMPONENTS_SUBTITLE "ជ្រើសរើស​ដំណើរ​ការ​នៃកម្មវិធី​ $(^NameDA) ​ដែល​អ្នក​ចង់​លប់​​" -!endif - -!ifdef MUI_COMPONENTSPAGE | MUI_UNCOMPONENTSPAGE - ${LangFileString} MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE "ការពិពណ័នា" - !ifndef NSIS_CONFIG_COMPONENTPAGE_ALTERNATIVE - ${LangFileString} MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO "ដាក់កណ្តុរ​បញ្ជារបស់​អ្នក​លើ​សមាសភាគ​ណា​មួយ​ដើម្បី​មើល​ការ​ពិពណ៍នារបស់​វា​​។" - !else - ${LangFileString} MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO "ដាក់កណ្តុរ​បញ្ជារបស់​អ្នក​លើ​សមាសភាគ​ណា​មួយ​ដើម្បី​មើល​ការ​ពិពណ៍នារបស់​វា​​។" - !endif -!endif - -!ifdef MUI_DIRECTORYPAGE - ${LangFileString} MUI_TEXT_DIRECTORY_TITLE "ជ្រើសរើស​កន្លែង​ដើម្បី​ដំឡើង​" - ${LangFileString} MUI_TEXT_DIRECTORY_SUBTITLE "ជ្រើសរើសថត​ដើម្បី​ដំឡើង​កម្មវិធី​ $(^NameDA)​ ។" -!endif - -!ifdef MUI_UNDIRECTORYPAGE - ${LangFileString} MUI_UNTEXT_DIRECTORY_TITLE "ជ្រើសរើស​កន្លែង​ដែលត្រូវ​លប់​ចេញ​" - ${LangFileString} MUI_UNTEXT_DIRECTORY_SUBTITLE "ជ្រើសរើសថត​ដើម្បី​លប់​កម្មវិធី​ $(^NameDA)​ ចេញ។" -!endif - -!ifdef MUI_INSTFILESPAGE - ${LangFileString} MUI_TEXT_INSTALLING_TITLE "កំពុងដំឡើង​" - ${LangFileString} MUI_TEXT_INSTALLING_SUBTITLE "សូម​មេត្តា​រង់ចាំ​ខណះដែល​កម្មវិធី​ $(^NameDA) កំពុង​ត្រូវបាន​ដំឡើង​។" - ${LangFileString} MUI_TEXT_FINISH_TITLE "ការដំឡើង​រួចរាល់​" - ${LangFileString} MUI_TEXT_FINISH_SUBTITLE "ការ​ដំឡើង​ត្រូវ​បាន​បញ្ចប់ដោយ​ជោគជ័យ​" - ${LangFileString} MUI_TEXT_ABORT_TITLE "ការដំឡើង​ត្រូវបាន​បញ្ឈប់​" - ${LangFileString} MUI_TEXT_ABORT_SUBTITLE "ការ​ដំឡើង​ត្រូវបានបរាជ័យ។" -!endif - -!ifdef MUI_UNINSTFILESPAGE - ${LangFileString} MUI_UNTEXT_UNINSTALLING_TITLE "កំពុងដំណើរការ​លុប​" - ${LangFileString} MUI_UNTEXT_UNINSTALLING_SUBTITLE "សូមមេត្តារង់ចាំ​ខណះដែល​កម្មវិធី​ $(^NameDA) កំពុង​ត្រូវ​បាន​លុប​។" - ${LangFileString} MUI_UNTEXT_FINISH_TITLE "ការ​លុប​ចេញ​រួច​រាល់​" - ${LangFileString} MUI_UNTEXT_FINISH_SUBTITLE "ការ​លុប​ចេញ​ត្រូវបាន​បរាជ័យ​​។" - ${LangFileString} MUI_UNTEXT_ABORT_TITLE "ការ​លុប​ចេញ​ត្រូវបាន​បញ្ឈប់​" - ${LangFileString} MUI_UNTEXT_ABORT_SUBTITLE "ការ​លុប​ចេញ​ត្រូវបាន​បរាជ័យ" -!endif - -!ifdef MUI_FINISHPAGE - ${LangFileString} MUI_TEXT_FINISH_INFO_TITLE "កម្មវិធី​ជំនួយ​ក្នុងការ​ដំឡើង​ $(^NameDA) កំពុងត្រូវ​បាន​បញ្ចប់​" - ${LangFileString} MUI_TEXT_FINISH_INFO_TEXT "កម្មវិធី​ $(^NameDA) បាន​ត្រូវ​ដំឡើង​រួចរាល់​នៅក្នុង​កុំព្យូទ័រ​របស់​អ្នក​។ $\r$\n$\r$\nចុច​ Finish ដើម្បីបិទកម្មវិធីជំនួយ​នេះ​" - ${LangFileString} MUI_TEXT_FINISH_INFO_REBOOT "កុំព្យូទ័រ​របស់​អ្នក​ត្រូវតែ​ចាប់​ដំណើរ​ការ​សារ​ជាថ្មី​ដើម្បី​បំពេញ​ការ​ដំឡើង​កម្មវិធី​ $(^NameDA)​ នេះ។ តើ​អ្នក​ចង់ចាប់ផ្តើមដំណើរការ​​កុំព្យូទ័រអ្នក​ឡើង​វិញ​ពេល​នេះ​?" -!endif - -!ifdef MUI_UNFINISHPAGE - ${LangFileString} MUI_UNTEXT_FINISH_INFO_TITLE "កម្មវិធី​ជំនួយ​ក្នុងការ​លុប​ $(^NameDA) កំពុងត្រូវ​បាន​បញ្ចប់" - ${LangFileString} MUI_UNTEXT_FINISH_INFO_TEXT "កម្មវិធី​ $(^NameDA) បាន​ត្រូវ​លុប​រួចរាល់​ពី​ក្នុង​កុំព្យូទ័រ​របស់​អ្នក​។ $\r$\n$\r$\nចុច​ Finish ដើម្បីបិទកម្មវិធីជំនួយ​នេះ​" - ${LangFileString} MUI_UNTEXT_FINISH_INFO_REBOOT "កុំព្យូទ័រ​របស់​អ្នក​ត្រូវតែ​ចាប់​ដំណើរ​ការ​សារ​ជាថ្មី​ដើម្បី​បំពេញ​ការ​ដំឡើង​កម្មវិធី​ $(^NameDA)​ នេះ។ តើ​អ្នក​ចង់ចាប់ផ្តើមដំណើរការ​​កុំព្យូទ័រអ្នក​ឡើង​វិញ​ពេល​នេះ​?" -!endif - -!ifdef MUI_FINISHPAGE | MUI_UNFINISHPAGE - ${LangFileString} MUI_TEXT_FINISH_REBOOTNOW "ចាប់ផ្តើមដំណើរការ​​កុំព្យូទ័រឡើង​វិញ​ពេល​នេះ​" - ${LangFileString} MUI_TEXT_FINISH_REBOOTLATER "ចង់​ដំណើរការ​កុំព្យូទ័រ​ដោយ​ខ្លួន​ឯង​ពេល​ក្រោយ​" - ${LangFileString} MUI_TEXT_FINISH_RUN "&Run $(^NameDA)" - ${LangFileString} MUI_TEXT_FINISH_SHOWREADME "&Show Readme" - ${LangFileString} MUI_BUTTONTEXT_FINISH "&Finish" -!endif - -!ifdef MUI_STARTMENUPAGE - ${LangFileString} MUI_TEXT_STARTMENU_TITLE "ជ្រើសរើស​ថត​ម៉ឺនុយ Start " - ${LangFileString} MUI_TEXT_STARTMENU_SUBTITLE "ជ្រើសរើស​ថត​ម៉ឺនុយ Start ដើម្បី​បង្កើត​ផ្លូវ​កាត់​ទៅ​កម្ម​វិធី​ $(^NameDA) ។" - ${LangFileString} MUI_INNERTEXT_STARTMENU_TOP "ជ្រើសរើស​ថត​ម៉ឺនុយ Start ដែល​អ្នក​ចង់​បង្កើត​ផ្លូវកាត់​ទៅ​កម្មវិធី​​នេះ​។​ អ្នក​ក៏​អាច​បញ្ចូលឈ្មោះមួយ​ដើម្បី​បង្កើត​ថត​ថ្មីមួយទៀត​។" - ${LangFileString} MUI_INNERTEXT_STARTMENU_CHECKBOX "មិនបាច់​បង្កើត​ផ្លូវកាត់​" -!endif - -!ifdef MUI_UNCONFIRMPAGE - ${LangFileString} MUI_UNTEXT_CONFIRM_TITLE "លុបកម្មវិធី​ $(^NameDA)​​ ចេញ​" - ${LangFileString} MUI_UNTEXT_CONFIRM_SUBTITLE "លុបកម្មវិធី​ $(^NameDA) ចេញពីកុំព្យូទ័រ​របស់​អ្នក​។​" -!endif - -!ifdef MUI_ABORTWARNING - ${LangFileString} MUI_TEXT_ABORTWARNING "តើ​អ្នក​ប្រាកដ​ថា​នឹង​ចាក​ចេញ​ពី​ការ​ដំឡើង​កម្មវិធី​​ $(^Name) នេះ​មែន​ទេ​?" -!endif - -!ifdef MUI_UNABORTWARNING - ${LangFileString} MUI_UNTEXT_ABORTWARNING "តើ​អ្នក​ប្រាកដ​ថា​នឹង​ចាក​ចេញ​ពី​ការ​លុបកម្មវិធី​​ $(^Name) នេះ​មែន​ទេ​?" -!endif - -!ifdef MULTIUSER_INSTALLMODEPAGE - ${LangFileString} MULTIUSER_TEXT_INSTALLMODE_TITLE "ជ្រើសរើស​អ្នក​ប្រើប្រាស់​" - ${LangFileString} MULTIUSER_TEXT_INSTALLMODE_SUBTITLE "ជ្រើសរើស​អ្នក​ប្រើប្រាស់​ទាំង​ឡាយណា​ដែល​អ្នក​ចង់​អោយ​ប្រើ​កម្មវិធី​ $(^NameDA)​ នេះ។​" - ${LangFileString} MULTIUSER_INNERTEXT_INSTALLMODE_TOP "សូមជ្រើសរើស​ថាតើ​អ្នក​ចង់​ដំឡើង​កម្មវិធី $(^NameDA) សំរាប់​តែខ្លួន​អ្នក​ រឺ សំរាប់​អ្នករាល់​គ្នា​ដែល​ប្រើ​កុំព្យូទ័រ​នេះ​។ $(^ClickNext)" - ${LangFileString} MULTIUSER_INNERTEXT_INSTALLMODE_ALLUSERS "ដំឡើង​សំរាប់​អ្នកទាំង​ឡាយដែល​ប្រើ​កុំព្យូទ័រនេះ" - ${LangFileString} MULTIUSER_INNERTEXT_INSTALLMODE_CURRENTUSER "ដំឡើងសំរាប់តែខ្ញុំម្នាក់​" -!endif diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Korean.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Korean.nlf deleted file mode 100644 index 6160fd837..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Korean.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Korean.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Korean.nsh deleted file mode 100644 index 615227f7b..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Korean.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Kurdish.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Kurdish.nlf deleted file mode 100644 index 5f244548d..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Kurdish.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Kurdish.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Kurdish.nsh deleted file mode 100644 index c5d33d2be..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Kurdish.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Latvian.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Latvian.nlf deleted file mode 100644 index 03a5baeff..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Latvian.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Latvian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Latvian.nsh deleted file mode 100644 index 273331eae..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Latvian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Lithuanian.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Lithuanian.nlf deleted file mode 100644 index bc3dd775f..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Lithuanian.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Lithuanian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Lithuanian.nsh deleted file mode 100644 index 78880deac..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Lithuanian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Luxembourgish.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Luxembourgish.nlf deleted file mode 100644 index 20c879bc3..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Luxembourgish.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Luxembourgish.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Luxembourgish.nsh deleted file mode 100644 index c18a407ed..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Luxembourgish.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Macedonian.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Macedonian.nlf deleted file mode 100644 index 69bd7d890..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Macedonian.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Macedonian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Macedonian.nsh deleted file mode 100644 index f1d4fae8d..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Macedonian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Malagasy.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Malagasy.nlf deleted file mode 100644 index dd73961a1..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Malagasy.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Malagasy.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Malagasy.nsh deleted file mode 100644 index d84573eda..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Malagasy.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Malay.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Malay.nlf deleted file mode 100644 index 8072d5454..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Malay.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Malay.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Malay.nsh deleted file mode 100644 index feaea4134..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Malay.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Mongolian.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Mongolian.nlf deleted file mode 100644 index c9f7fe38f..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Mongolian.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Mongolian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Mongolian.nsh deleted file mode 100644 index b9a6d4938..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Mongolian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Norwegian.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Norwegian.nlf deleted file mode 100644 index eef204b46..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Norwegian.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Norwegian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Norwegian.nsh deleted file mode 100644 index 4ae470a68..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Norwegian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/NorwegianNynorsk.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/NorwegianNynorsk.nlf deleted file mode 100644 index 4536a8c8a..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/NorwegianNynorsk.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/NorwegianNynorsk.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/NorwegianNynorsk.nsh deleted file mode 100644 index dd6f8fb6c..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/NorwegianNynorsk.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Pashto.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Pashto.nlf deleted file mode 100644 index 884e2b7d6..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Pashto.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Pashto.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Pashto.nsh deleted file mode 100644 index 4cabf6b90..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Pashto.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Polish.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Polish.nlf deleted file mode 100644 index 491629bc6..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Polish.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Polish.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Polish.nsh deleted file mode 100644 index d92e470e5..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Polish.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Portuguese.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Portuguese.nlf deleted file mode 100644 index 082fb1b4e..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Portuguese.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Portuguese.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Portuguese.nsh deleted file mode 100644 index 2974313fa..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Portuguese.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/PortugueseBR.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/PortugueseBR.nlf deleted file mode 100644 index 505844b70..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/PortugueseBR.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/PortugueseBR.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/PortugueseBR.nsh deleted file mode 100644 index 01d6183f9..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/PortugueseBR.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Romanian.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Romanian.nlf deleted file mode 100644 index b69ebe91f..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Romanian.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Romanian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Romanian.nsh deleted file mode 100644 index 9898022f1..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Romanian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Russian.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Russian.nlf deleted file mode 100644 index 253fa5995..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Russian.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Russian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Russian.nsh deleted file mode 100644 index df536bb51..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Russian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Serbian.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Serbian.nlf deleted file mode 100644 index 32404fd08..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Serbian.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Serbian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Serbian.nsh deleted file mode 100644 index aa3d93edb..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Serbian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/SerbianLatin.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/SerbianLatin.nlf deleted file mode 100644 index 5ef26d210..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/SerbianLatin.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/SerbianLatin.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/SerbianLatin.nsh deleted file mode 100644 index 66b443176..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/SerbianLatin.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Sesotho.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Sesotho.nlf deleted file mode 100644 index ad66c887b..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Sesotho.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Sesotho.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Sesotho.nsh deleted file mode 100644 index 59a5e295d..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Sesotho.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/SimpChinese.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/SimpChinese.nlf deleted file mode 100644 index 344bb35fd..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/SimpChinese.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/SimpChinese.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/SimpChinese.nsh deleted file mode 100644 index 68d1dcc00..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/SimpChinese.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Slovak.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Slovak.nlf deleted file mode 100644 index 8020787ae..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Slovak.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Slovak.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Slovak.nsh deleted file mode 100644 index eac523832..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Slovak.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Slovenian.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Slovenian.nlf deleted file mode 100644 index ba985650c..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Slovenian.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Slovenian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Slovenian.nsh deleted file mode 100644 index 52db6a368..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Slovenian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Spanish.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Spanish.nlf deleted file mode 100644 index f78148893..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Spanish.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Spanish.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Spanish.nsh deleted file mode 100644 index 15281a0d3..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Spanish.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/SpanishInternational.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/SpanishInternational.nlf deleted file mode 100644 index 6134f11fd..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/SpanishInternational.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/SpanishInternational.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/SpanishInternational.nsh deleted file mode 100644 index 4a4b59010..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/SpanishInternational.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Sundanese.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Sundanese.nlf deleted file mode 100644 index 143ba7a9d..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Sundanese.nlf +++ /dev/null @@ -1,191 +0,0 @@ -# Header, Ulah diropa -NLF v6 -# mimitian ti dieu -# ID Sundanese -33 -# Font and size - dash (-) means default -- -- -# Codepage - dash (-) means ANSI code page -- -# RTL - anything else than RTL means LTR -- -# Translation sukma gemala [http://facebook.com/sukma.gemala] -# ^Branding -Sistem Pamasang Nullsoft %s -# ^SetupCaption -Masangkeun $(^Name) -# ^UninstallCaption -Miceun $(^Name) -# ^LicenseSubCaption -: Aturan jeung Kasapukan -# ^ComponentsSubCaption -: Pilihan Instalasi -# ^DirSubCaption -: Map Instalasi -# ^InstallingSubCaption -: Masangkeun -# ^CompletedSubCaption -: Rngs -# ^UnComponentsSubCaption -: Pilihan Miceun -# ^UnDirSubCaption -: Map Miceun -# ^ConfirmSubCaption -: Muguhkeun -# ^UninstallingSubCaption -: Miceun instalasi -# ^UnCompletedSubCaption -: Rngs -# ^BackBtn -< Sam&mhna -# ^NextBtn -Tulu&ykeun > -# ^AgreeBtn -&Sapuk -# ^AcceptBtn -S&apuk -# ^DontAcceptBtn -Te&u sapuk -# ^InstallBtn -&Pasang -# ^UninstallBtn -Pi&ceun -# ^CancelBtn -&Bolay -# ^CloseBtn -&Tutup -# ^BrowseBtn -Pili&h... -# ^ShowDetailsBtn -&Detil -# ^ClickNext -Klik Tuluykeun pikeun nuluykeun. -# ^ClickInstall -Klik Pasang pikeun ngamimitian masang $(^Name). -# ^ClickUninstall -Klik Piceun pikeun ngamimitian miceun $(^Name). -# ^Name -Ngaran -# ^Completed -Rngs -# ^LicenseText -Imeutan ieu kasapukan sammh masangkeun $(^NameDA). Lamun anjeun narima sakabh anu dipedar dina kasapukan, klik Sapuk. -# ^LicenseTextCB -Imeutan ieu kasapukan sammh masangkeun $(^NameDA). Lamun anjeun narima sakabh anu dipedar dina kasapukan, br contrng. $_CLICK -# ^LicenseTextRB -Imeutan ieu kasapukan sammh masangkeun $(^NameDA). Lamun anjeun narima sakabh anu dipedar dina kasapukan, pilih salah sahiji anu aya di handap. $_CLICK -# ^UnLicenseText -Imeutan ieu kasapukan sammh miceun $(^NameDA). Lamun anjeun narima sakabh anu dipedar dina kasapukan, klik Sapuk. -# ^UnLicenseTextCB -Imeutan ieu kasapukan sammh miceun $(^NameDA). Lamun anjeun narima sakabh anu dipedar dina kasapukan, br contrng. $_CLICK -# ^UnLicenseTextRB -Imeutan ieu kasapukan sammh miceun $(^NameDA). Lamun anjeun narima sakabh anu dipedar dina kasapukan, pilih salah sahiji anu aya di handap. $_CLICK -# ^Custom -Reka -# ^ComponentsText -Contrng dina komponn anu rk dipasang atawa piceun contrngna lamun teu pati perlu. $_CLICK -# ^ComponentsSubText1 -Pilih tipeu instalasi: -# ^ComponentsSubText2_NoInstTypes -Pilih komponn-komponn anu bakal dipasang: -# ^ComponentsSubText2 -Atawa, pilih ieu komponn anu bakal dipasang: -# ^UnComponentsText -Contrng dina komponn anu rk dipiceun. $_CLICK -# ^UnComponentsSubText1 -Pilih tipeu miceun: -# ^UnComponentsSubText2_NoInstTypes -Pilih komponn-komponn anu rk dipiceun: -# ^UnComponentsSubText2 -Atawa, pilih ieu komponn anu rk dipiceun: -# ^DirText -$(^NameDA) bakal dipasang dina ieu map. Pikeun milih map sjn, klik Pilih tuluy tangtukeun map nu dipikahayang ku ajeun. $_CLICK -# ^DirSubText -Map anu dituju -# ^DirBrowseText -Pilih map pikeun tempat masangkeun $(^NameDA): -# ^UnDirText -$(^NameDA) bakal dipiceun tina ieu map. Pikeun milih map sjn, klik Pilih tuluy tangtukeun map nu dipikahayang ku ajeun. $_CLICK -# ^UnDirSubText -"" -# ^UnDirBrowseText -Pilih map pikeun tempat miceun $(^NameDA): -# ^SpaceAvailable -"Rohang disk anu nyampak: " -# ^SpaceRequired -"Rohang disk anu dibutuhkeun: " -# ^UninstallingText -$(^NameDA) bakal dipiceun tina ieu map. $_CLICK -# ^UninstallingSubText -Miceun instalasi: -# ^FileError -Henteu bisa nulis koropak: \r\n\t"$0"\r\nKlik abort pikeun ngabolaykeun instalasi,\r\nretry pikeun nyoba deui, atawa\r\nignore lamun moal dipalir. -# ^FileError_NoIgnore -Henteu bisa nulis koropak: \r\n\t"$0"\r\nKlik retry pikeun nyobaan deui, atawa\r\ncancel pikeun ngabolaykeun instalasi -# ^CantWrite -"Henteu bisa nulis dina: " -# ^CopyFailed -Pross niron gagal -# ^CopyTo -"Ditiron kana " -# ^Registering -"Ngadaftarkeun modul: " -# ^Unregistering -"Ngudar modul: " -# ^SymbolNotFound -"Henteu manggih : " -# ^CouldNotLoad -"Henteu bisa muka: " -# ^CreateFolder -"Nyieun map: " -# ^CreateShortcut -"Nyieun tumbu: " -# ^CreatedUninstaller -"Nyieun aplikasi pamiceun instalasi: " -# ^Delete -"Mupus koropak: " -# ^DeleteOnReboot -"Bakal dipupus nalika komputer dimimitian-deui: " -# ^ErrorCreatingShortcut -"Henteu bisa nyieun tumbu: " -# ^ErrorCreating -"Kasalahan dina nyieun: " -# ^ErrorDecompressing -Kasalahan nalika muka gmbolan data! Aplikasi Pamasang ruksak -# ^ErrorRegistering -Kasalahan nalika ngadaftarkeun modul DLL -# ^ExecShell -"ExecShell: " -# ^Exec -"Ngajalankeun: " -# ^Extract -"Muka gmbolan: " -# ^ErrorWriting -"Gmbolan: kasalahan nalika nulis koropak " -# ^InvalidOpcode -Program Pamasang: opcode henteu lengkep -# ^NoOLE -"OLE henteu kapanggih: " -# ^OutputFolder -"Map anu dituju: " -# ^RemoveFolder -"Mupus map: " -# ^RenameOnReboot -"Bakal diganti ngaranna nalika dimimitian-deui (restart): " -# ^Rename -"Ngaganti ngaran: " -# ^Skipped -Diliwat: " -# ^CopyDetails -Tiron Detil kana Clipboard -# ^LogInstall -Catet pross instalasi -# ^Byte -B -# ^Kilo -K -# ^Mega -M -# ^Giga -G \ No newline at end of file diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Sundanese.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Sundanese.nsh deleted file mode 100644 index 2397ec9ad..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Sundanese.nsh +++ /dev/null @@ -1,129 +0,0 @@ -;Language: Sundanese (33) -;By sukma gemala - http://facebook.com/sukma.gemala - -!insertmacro LANGFILE "Sundanese" "Basa Sunda" - -!ifdef MUI_WELCOMEPAGE - ${LangFileString} MUI_TEXT_WELCOME_INFO_TITLE "Baga, ieu th Apingan Masang $(^NameDA)" - ${LangFileString} MUI_TEXT_WELCOME_INFO_TEXT "Apingan Masang bakal ngaping anjeun dina pross masangkeun $(^NameDA).$\r$\n$\r$\nAlusna mah tutupkeun heula program sjn anu ayeuna keur dijalankeun sammh nuluykeun masang ieu program. Eta hal aya patalina jeung kaperluan ngarobah file anu keur dipak ku sistem tanpa kudu ngamimitian-deui (restart) komputer anjeun.$\r$\n$\r$\n$_CLICK" -!endif - -!ifdef MUI_UNWELCOMEPAGE - ${LangFileString} MUI_UNTEXT_WELCOME_INFO_TITLE "Baga, ieu th Apingan Miceun $(^NameDA)" - ${LangFileString} MUI_UNTEXT_WELCOME_INFO_TEXT "Apingan Miceun bakal ngaping anjeun dina pross miceun $(^NameDA).$\r$\n$\r$\nSamemeh ngamimitian miceun instalasina, anjeun kudu yakin heula yn $(^NameDA) henteu eukeur dijalankeun.$\r$\n$\r$\n$_CLICK" -!endif - -!ifdef MUI_LICENSEPAGE - ${LangFileString} MUI_TEXT_LICENSE_TITLE "Aturan jeung Kasapukan" - ${LangFileString} MUI_TEXT_LICENSE_SUBTITLE "Imeutan ieu aturan jeung kasapukan sammh masangkeun $(^NameDA)." - ${LangFileString} MUI_INNERTEXT_LICENSE_BOTTOM "Lamun anjeun narima sakabh anu dipedar, klik Sapuk pikeun nuluykeun. Anjeun kudu satuju sangkan bisa masangkeun $(^NameDA)." - ${LangFileString} MUI_INNERTEXT_LICENSE_BOTTOM_CHECKBOX "Lamun anjeun narima sakabh anu dipedar dina kasapukan, br contrng. Anjeun kudu satuju sangkan bisa masangkeun $(^NameDA). $_CLICK" - ${LangFileString} MUI_INNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS "Lamun anjeun narima sakabh anu dipedar dina kasapukan, pilih salah sahiji anu aya dihandap. Anjeun kudu satuju sangkan bisa masangkeun $(^NameDA). $_CLICK" -!endif - -!ifdef MUI_UNLICENSEPAGE - ${LangFileString} MUI_UNTEXT_LICENSE_TITLE "Aturan jeung Kasapukan" - ${LangFileString} MUI_UNTEXT_LICENSE_SUBTITLE "Imeutan ieu aturan jeung kasapukan sammh miceun $(^NameDA)." - ${LangFileString} MUI_UNINNERTEXT_LICENSE_BOTTOM "Lamun anjeun narima sakabh anu dipedar, klik Sapuk pikeun nuluykeun. Anjeun kudu satuju sangkan bisa miceun $(^NameDA)." - ${LangFileString} MUI_UNINNERTEXT_LICENSE_BOTTOM_CHECKBOX "Lamun anjeun narima sakabh anu dipedar dina kasapukan, br contrng. Anjeun kudu satuju sangkan bisa miceun $(^NameDA). $_CLICK" - ${LangFileString} MUI_UNINNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS "Lamun anjeun narima sakabh anu dipedar dina kasapukan, pilih salah sahiji anu aya dihandap. Anjeun kudu satuju sangkan bisa miceun $(^NameDA). $_CLICK" -!endif - -!ifdef MUI_LICENSEPAGE | MUI_UNLICENSEPAGE - ${LangFileString} MUI_INNERTEXT_LICENSE_TOP "Penct Page Down pikeun ningali tuluyanana." -!endif - -!ifdef MUI_COMPONENTSPAGE - ${LangFileString} MUI_TEXT_COMPONENTS_TITLE "Milih Komponn" - ${LangFileString} MUI_TEXT_COMPONENTS_SUBTITLE "Pilih fitur ti $(^NameDA) anu rk dipasang." - ${LangFileString} MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE "Wangenan" -!endif - -!ifdef MUI_UNCOMPONENTSPAGE - ${LangFileString} MUI_UNTEXT_COMPONENTS_TITLE "Milih Komponn" - ${LangFileString} MUI_UNTEXT_COMPONENTS_SUBTITLE "Pilih fitur ti $(^NameDA) anu rk dipiceun." -!endif - -!ifdef MUI_COMPONENTSPAGE | MUI_UNCOMPONENTSPAGE - !ifndef NSIS_CONFIG_COMPONENTPAGE_ALTERNATIVE - ${LangFileString} MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO "Tunjuk salah sahiji pikeun ningali kateranganana." - !else - ${LangFileString} MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO "Tunjuk salah sahiji pikeun ningali kateranganana." - !endif -!endif - -!ifdef MUI_DIRECTORYPAGE - ${LangFileString} MUI_TEXT_DIRECTORY_TITLE "Milih Lokasi Masang" - ${LangFileString} MUI_TEXT_DIRECTORY_SUBTITLE "Pilih map pikeun tempat masangkeun $(^NameDA)." -!endif - -!ifdef MUI_UNDIRECTORYSPAGE - ${LangFileString} MUI_UNTEXT_DIRECTORY_TITLE "Milih Lokasi Miceun" - ${LangFileString} MUI_UNTEXT_DIRECTORY_SUBTITLE "Pilih map pikeun tempat miceun $(^NameDA)." -!endif - -!ifdef MUI_INSTFILESPAGE - ${LangFileString} MUI_TEXT_INSTALLING_TITLE "Masang" - ${LangFileString} MUI_TEXT_INSTALLING_SUBTITLE "Tungguan, $(^NameDA) eukeur dipasangkeun." - ${LangFileString} MUI_TEXT_FINISH_TITLE "Pross Masangkeun Rngs" - ${LangFileString} MUI_TEXT_FINISH_SUBTITLE "$(^NameDA) rngs dipasangkeun." - ${LangFileString} MUI_TEXT_ABORT_TITLE "Pross Masang Dibolaykeun" - ${LangFileString} MUI_TEXT_ABORT_SUBTITLE "Masangkeun rngs tapi can sampurna." -!endif - -!ifdef MUI_UNINSTFILESPAGE - ${LangFileString} MUI_UNTEXT_UNINSTALLING_TITLE "Miceun" - ${LangFileString} MUI_UNTEXT_UNINSTALLING_SUBTITLE "Tungguan, $(^NameDA) eukeur dipiceun." - ${LangFileString} MUI_UNTEXT_FINISH_TITLE "Pross Miceun Rngs" - ${LangFileString} MUI_UNTEXT_FINISH_SUBTITLE "$(^NameDA) rngs dipiceun." - ${LangFileString} MUI_UNTEXT_ABORT_TITLE "Pross Miceun Dibolaykeun" - ${LangFileString} MUI_UNTEXT_ABORT_SUBTITLE "Miceun rngs tapi can sampurna." -!endif - -!ifdef MUI_FINISHPAGE - ${LangFileString} MUI_TEXT_FINISH_INFO_TITLE "Ngarngskeun Apingan Masang $(^NameDA)" - ${LangFileString} MUI_TEXT_FINISH_INFO_TEXT "$(^NameDA) geus dipasangkeun kana komputer anjeun.$\r$\n$\r$\nKlik Rngs pikeun nutup Apingan Masang." - ${LangFileString} MUI_TEXT_FINISH_INFO_REBOOT "Komputer anjeun kudu dimimitian-deui (restart) pikeun ngarngskeun pross instalasi $(^NameDA). Mmimitian-deui ayeuna?" -!endif - -!ifdef MUI_UNFINISHPAGE - ${LangFileString} MUI_UNTEXT_FINISH_INFO_TITLE "Ngarngskeun Apingan Miceun $(^NameDA)" - ${LangFileString} MUI_UNTEXT_FINISH_INFO_TEXT "$(^NameDA) geus dipiceun tina komputer anjeun.$\r$\n$\r$\nKlik Rngs pikeun nutup Apingan Miceun." - ${LangFileString} MUI_UNTEXT_FINISH_INFO_REBOOT "Komputer anjeun kudu dimimitian-deui (restart) pikeun ngarngskeun pross uninstall $(^NameDA). Mmimitian-deui ayeuna?" -!endif - -!ifdef MUI_FINISHPAGE | MUI_UNFINISHPAGE - ${LangFileString} MUI_TEXT_FINISH_REBOOTNOW "Mimitian-deui" - ${LangFileString} MUI_TEXT_FINISH_REBOOTLATER "Moal waka" - ${LangFileString} MUI_TEXT_FINISH_RUN "&Jalankeun $(^NameDA)" - ${LangFileString} MUI_TEXT_FINISH_SHOWREADME "&Buka Koropak Bacaheula" - ${LangFileString} MUI_BUTTONTEXT_FINISH "&Rngs" -!endif - -!ifdef MUI_STARTMENUPAGE - ${LangFileString} MUI_TEXT_STARTMENU_TITLE "Milih Menu Mimiti" - ${LangFileString} MUI_TEXT_STARTMENU_SUBTITLE "Pilih map Menu Mimiti (Start Menu) pikeun nempatkeun tumbu $(^NameDA)." - ${LangFileString} MUI_INNERTEXT_STARTMENU_TOP "Pilih map Menu Mimiti (Start Menu) pikeun nempatkeun tumbu ieu program. Og bisa nyieun ngaran map anyar." - ${LangFileString} MUI_INNERTEXT_STARTMENU_CHECKBOX "Ulah nyieun tumbu" -!endif - -!ifdef MUI_UNCONFIRMPAGE - ${LangFileString} MUI_UNTEXT_CONFIRM_TITLE "Miceun $(^NameDA)" - ${LangFileString} MUI_UNTEXT_CONFIRM_SUBTITLE "Miceun $(^NameDA) tina komputer anjeun." -!endif - -!ifdef MUI_ABORTWARNING - ${LangFileString} MUI_TEXT_ABORTWARNING "Bener, rk kaluar tina pross masangkeun $(^Name)?" -!endif - -!ifdef MUI_UNABORTWARNING - ${LangFileString} MUI_UNTEXT_ABORTWARNING "Bener, rk kaluar tina pross miceun $(^Name)?" -!endif - -!ifdef MULTIUSER_INSTALLMODEPAGE - ${LangFileString} MULTIUSER_TEXT_INSTALLMODE_TITLE "Milih Pamak" - ${LangFileString} MULTIUSER_TEXT_INSTALLMODE_SUBTITLE "Milih pamak anu rk dipasangkeun $(^NameDA)." - ${LangFileString} MULTIUSER_INNERTEXT_INSTALLMODE_TOP "Pilih tujuan masangkeun $(^NameDA) keur soranganeun atawa keur kabh pamak komputer ieu. $(^ClickNext)" - ${LangFileString} MULTIUSER_INNERTEXT_INSTALLMODE_ALLUSERS "Pasangkeun keur kabh pamak komputer ieu" - ${LangFileString} MULTIUSER_INNERTEXT_INSTALLMODE_CURRENTUSER "Kuring wungkul" -!endif diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Swahili.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Swahili.nlf deleted file mode 100644 index 4a498ed90..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Swahili.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Swahili.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Swahili.nsh deleted file mode 100644 index 0bb6cbceb..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Swahili.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Swedish.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Swedish.nlf deleted file mode 100644 index 20e1b4ee0..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Swedish.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Swedish.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Swedish.nsh deleted file mode 100644 index f1525fc8d..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Swedish.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Tamil.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Tamil.nlf deleted file mode 100644 index d1dce0540..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Tamil.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Tamil.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Tamil.nsh deleted file mode 100644 index b47ad88e7..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Tamil.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Thai.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Thai.nlf deleted file mode 100644 index 34ec33370..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Thai.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Thai.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Thai.nsh deleted file mode 100644 index 29e74dce9..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Thai.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/TradChinese.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/TradChinese.nlf deleted file mode 100644 index 90700348b..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/TradChinese.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/TradChinese.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/TradChinese.nsh deleted file mode 100644 index b46dd6fd5..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/TradChinese.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Turkish.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Turkish.nlf deleted file mode 100644 index bd1968b4b..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Turkish.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Turkish.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Turkish.nsh deleted file mode 100644 index 2f5586df2..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Turkish.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Twi.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Twi.nlf deleted file mode 100644 index 5d2a6bc2c..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Twi.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Twi.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Twi.nsh deleted file mode 100644 index 8aeea8f4e..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Twi.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Ukrainian.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Ukrainian.nlf deleted file mode 100644 index e556221fd..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Ukrainian.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Ukrainian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Ukrainian.nsh deleted file mode 100644 index 7111d5193..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Ukrainian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Uyghur.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Uyghur.nlf deleted file mode 100644 index 6d0aed542..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Uyghur.nlf +++ /dev/null @@ -1,191 +0,0 @@ -# Header, don't edit -NLF v6 -# Start editing here -# Language ID -1152 -# Font and size - dash (-) means default فونت نامى ۋە چوڭلىقى -Arial -9 -# Codepage - dash (-) means ANSI code page كودبېتى -65001 -# RTL - anything else than RTL means LTR ئوڭدىن سولغا يېزىش -RTL -# Translation by Yasinjan Ghupur (yasenghupur@sina.com) 26 April 2012 -# ^Branding -Nullsoft Install System %s -# ^SetupCaption -$(^Name) قاچىلاش -# ^UninstallCaption -$(^Name) ئۆچۈرۈش -# ^LicenseSubCaption -: ئىجازەت كېلىشىمى -# ^ComponentsSubCaption -: قاچىلاش تاللاشلىرى -# ^DirSubCaption -: قاچىلايدىغان قىسقۇچ -# ^InstallingSubCaption -: قاچىلاۋاتىدۇ -# ^CompletedSubCaption -: تاماملاندى -# ^UnComponentsSubCaption -: ئۆچۈرۈش تاللاشلىرى -# ^UnDirSubCaption -: ئۆچۈرۈدىغان قىسقۇچ -# ^ConfirmSubCaption -: جەزىملەش -# ^UninstallingSubCaption -: ئۆچۈرۈۋاتىدۇ -# ^UnCompletedSubCaption -: تاماملاندى -# ^BackBtn -< &كەينىگە -# ^NextBtn -&ئالدىغا > -# ^AgreeBtn -قوشۇلىمەن -# ^AcceptBtn - ئىجازەت كېلىشىمىدىكى تۈرلەرگە قوشۇلىمەن -# ^DontAcceptBtn - ئىجازەت كېلىشىمىدىكى تۈرلەرگە قوشۇلمايمەن -# ^InstallBtn -&قاچىلاش -# ^UninstallBtn -& ئۆچۈرۈش -# ^CancelBtn -قالدۇرۇش -# ^CloseBtn -&يېپىش -# ^BrowseBtn -كۆرۈش... -# ^ShowDetailsBtn -تەپسىلاتىنى كۆرۈش -# ^ClickNext -ئالدىغا نى چېكىپ داۋاملاشتۇرۇڭ. -# ^ClickInstall -قاچىلاش نى چېكىپ قاچىلاشنى باشلاڭ. -# ^ClickUninstall -ئۆچۈرۈش نى چېكىپ ئۆچۈرۈشنى باشلاڭ. -# ^Name -نامى -# ^Completed -تاماملاندى -# ^LicenseText -$(^NameDA) نى قاچىلاشتىن بۇرۇن ئىجازەت كېلىشىمىنى كۆرۈپ چىقىڭ. كېلىشىم تۈرلىرىگە قوشۇلسىڭىز،قوشۇلىمەن نى بېسىڭ . -# ^LicenseTextCB -$(^NameDA) نى قاچىلاشتىن بۇرۇن ئىجازەت كېلىشىمىنى كۆرۈپ چىقىڭ. كېلىشىم تۈرلىرىگە قوشۇلسىڭىز،تاللاش كاتەكچىسى نى چېكىڭ . $_CLICK -# ^LicenseTextRB -$(^NameDA) نى قاچىلاشتىن بۇرۇن ئىجازەت كېلىشىمىنى كۆرۈپ چىقىڭ. كېلىشىم تۈرلىرىگە قوشۇلسىڭىز،بىرىنجى تاللاش نى تاللاڭ . $_CLICK -# ^UnLicenseText -$(^NameDA) نى ئۆچۈرۈشتىن بۇرۇن ئىجازەت كېلىشىمىنى كۆرۈپ. كېلىشىم تۈرلىرىگە قوشۇلسىڭىز،قوشۇلىمەن نى بېسىڭ . -# ^UnLicenseTextCB -$(^NameDA) نى ئۆچۈرۈشتىن بۇرۇن ئىجازەت كېلىشىمىنى كۆرۈپ چىقىڭ. كېلىشىم تۈرلىرىگە قوشۇلسىڭىز،تاللاش كاتەكچىسى نى چېكىڭ . $_CLICK -# ^UnLicenseTextRB -$(^NameDA) نى ئۆچۈرۈشتىن بۇرۇن ئىجازەت كېلىشىمىنى كۆرۈپ چىقىڭ. كېلىشىم تۈرلىرىگە قوشۇلسىڭىز،بىرىنجى تاللاش نى تاللاڭ . $_CLICK -# ^Custom -ئۆزى بېكىتىش -# ^ComponentsText -قاچىلايدىغان بۆلەكلەرنى تاللاڭ ۋە قاچىلىمايدىغان بۆلەكلەرنى تاللىماڭ. $_CLICK -# ^ComponentsSubText1 -قاچىلاش ئۇسلۇبىنى تاللاڭ: -# ^ComponentsSubText2_NoInstTypes -قاچىلاش بۆلىكىنى تاللاڭ: -# ^ComponentsSubText2 -ياكى قاچىلىماقچى بولغان بۆلەكنى تاللاڭ: -# ^UnComponentsText -ئۆچۈرمەكچى بولغان بۆلەكنى تاللاڭ ھەمدە ئۆچۈرمەيدىغان بۆلەكنى تاللىماڭ. $_CLICK -# ^UnComponentsSubText1 -ئۆچۈرۈش ئۇسلۇبىنى تاللاڭ: -# ^UnComponentsSubText2_NoInstTypes -ئۆچۈرۈش بۆلىكىنى تاللاڭ: -# ^UnComponentsSubText2 -ياكى ئۆچۈرمەكچى بولغان بۆلەكنى تاللاڭ: -# ^DirText - قاچىلاش يېتەكچىسى $(^NameDA) نى بۇ قىسقۇچنىڭ ئاستىغا قاچىلايدۇ.باشقا قىسقۇچقا قاچىلماقچى بولسىڭىز،كۆرۈش نى چېكىپ باشقا قىسقۇچنى تاللاڭ . $_CLICK -# ^DirSubText -نىشان قىسقۇچ -# ^DirBrowseText -نى قاچىلايدىغان قىسقۇچنى تاللاڭ $(^NameDA): -# ^UnDirText -قاچىلاش يېتەكچىسى $(^NameDA) نى بۇ قىسقۇچنىڭ ئاستىدىن ئۆچۈرۈدۇ.باشقا قىسقۇچتىن ئۆچۈرمەكچى بولسىڭىز،كۆرۈش نى چېكىپ باشقا قىسقۇچنى تاللاڭ . $_CLICK -# ^UnDirSubText -"" -# ^UnDirBrowseText - $(^NameDA) نى ئۆچۈرۈدىغان قىسقۇچنى تاللاڭ : -# ^SpaceAvailable -"قاچىلاش بوشلۇقى يېتەرلىك: " -# ^SpaceRequired -" ئېھتىياجلىق قاچىلاش بوشلۇقى : " -# ^UninstallingText -$(^NameDA) نى تۆۋەندىكى قىسقۇچتىن ئۆچۈرۈدۇ. $_CLICK -# ^UninstallingSubText -دىن ئۆچۈرۈۋاتىدۇ: -# ^FileError -يازىدىغان ھۆججەتنى ئېچىش خاتالىقى: \r\n\r\n$0\r\n\r\nتوختىتۇش نى بېسىپ قاچىلاشنى توختۇتۇش,\r\nقايتىلاش ياكى \r\nبۇ ھۆججەتتىن ئاتلاپ ئۆتۈپ كېتىش. -# ^FileError_NoIgnore -يازىدىغان ھۆججەتنى ئېچىش خاتالىقى: \r\n\r\n$0\r\n\r\nقايتىلاش نى بېسىپ قاچىلاشنى قايتىلاش ياكى \r\n قاچىلاشنى قالدۇرۇش . -# ^CantWrite -"يازالمىدى: " -# ^CopyFailed -كۆچۈرەلمىدى -# ^CopyTo -"گە كۆچۈرۈش " -# ^Registering -"رۇيخەتكە ئېلىۋاتىدۇ: " -# ^Unregistering -"رۇيخەتتىن ئۆچۈرۈۋاتىدۇ: " -# ^SymbolNotFound -"بەلگىنى تاپالمىدى: " -# ^CouldNotLoad -"يۈكلىيەلمىدى: " -# ^CreateFolder -"قىسقۇچ قۇرۇش: " -# ^CreateShortcut -"تېزكۆرگۈچ قۇرۇش: " -# ^CreatedUninstaller -" ئۆچۈرۈش يېتەكچىسى ياسالدى: " -# ^Delete -"ھۆججەت ئۆچۈرۈش: " -# ^DeleteOnReboot -"قايتا قوزغالغاندا ئۆچۈرۈش: " -# ^ErrorCreatingShortcut -"تېزكۆرگۈچ قۇرۇش خاتالىقى: " -# ^ErrorCreating -"قۇرۇش خاتالىقى: " -# ^ErrorDecompressing -مەلۇماتلارنى ئەسلىگە قايتۇرۇش خاتالىقى! قاچىلاش يېتەكچىسى بۇزۇلغانمۇ؟ -# ^ErrorRegistering -DLL نى رۇيخەتكە ئېلىش خاتالىقى -# ^ExecShell -"قاپلىنىش بۇيرۇقى ئىجرا قىلىش : " -# ^Exec -"ئىجرا قىلىش: " -# ^Extract -"يېيىش: " -# ^ErrorWriting -"يېيىش : ھۆججەتكە يېزىش خاتالىقى " -# ^InvalidOpcode -قاچىلاش يېتەكچىسى بۇزۇلغان : ئىناۋەتسىز كود -# ^NoOLE -"گە OLE يوق : " -# ^OutputFolder -"چىقىرىدىغان قىسقۇچ: " -# ^RemoveFolder -"قىسقۇچنى ئۆچۈرۈش: " -# ^RenameOnReboot -" قايتا قوزغالغاندا نامىنى ئۆزگەرتىش: " -# ^Rename -"نامىنى ئۆزگەرتىش: " -# ^Skipped -"ئاتلاپ ئۆتتى: " -# ^CopyDetails -تەپسىلاتىنى ئىشتاختىغا كۆچۈرۈش -# ^LogInstall -قاچىلاش جەريانى خاتىرسى -# ^Byte -بايىت -# ^Kilo - كىلو -# ^Mega - مېگا -# ^Giga - گىگا \ No newline at end of file diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Uyghur.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Uyghur.nsh deleted file mode 100644 index 76bf6a615..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Uyghur.nsh +++ /dev/null @@ -1,129 +0,0 @@ -;Language: Uyghur (1152) -;Uyghur(China), Translated By Yasinjan Ghupur (yasenghupur@sina.com) - -!insertmacro LANGFILE "Uyghur" "Uyghur" - -!ifdef MUI_WELCOMEPAGE - ${LangFileString} MUI_TEXT_WELCOME_INFO_TITLE " $(^NameDA) نى قاچىلاش يېتەكچىسىنى ئىشلىتىشىڭىزنى قارشى ئالىدۇ" - ${LangFileString} MUI_TEXT_WELCOME_INFO_TEXT "قاچىلاش يېتەكچىسى $(^NameDA)نى قاچىلاش جەريانىغا يېتەكچىلىك قىلىدۇ .$\r$\n$\r$\nقاچىلاشتىن بۇرۇن بارلىق پروگراممىلارنى يېپىۋېتىشنى تەۋسىيە قىلىدۇ،بۇنىڭ بىلەن قاچىلاپ بولغاندىن كېيىن كومپيۇتېرىڭىزنى قايتا قوزغاتمىسىڭىزمۇ بولىدۇ.$\r$\n$\r$\n$_CLICK" -!endif - -!ifdef MUI_UNWELCOMEPAGE - ${LangFileString} MUI_UNTEXT_WELCOME_INFO_TITLE " $(^NameDA) نى ئۆچۈرۈش يېتەكچىسىنى ئىشلىتىشىڭىزنى قارشى ئالىدۇ" - ${LangFileString} MUI_UNTEXT_WELCOME_INFO_TEXT "ئۆچۈرۈش يېتەكچىسى$(^NameDA)نى ئۆچۈرۈش جەريانىغا يېتەكچىلىك قىلىدۇ .$\r$\n$\r$\n ئۆچۈرۈشتىن بۇرۇن $(^NameDA)نىڭ قوزغىتىلمىغانلىقىنى جەزىملەشتۈرۈڭ.$\r$\n$\r$\n$_CLICK" -!endif - -!ifdef MUI_LICENSEPAGE - ${LangFileString} MUI_TEXT_LICENSE_TITLE "ئىجازەت كېلىشىمى" - ${LangFileString} MUI_TEXT_LICENSE_SUBTITLE "$(^NameDA)نى قاچىلىشتىن بۇرۇن ئىجازەت تۈرلىرىنى كۆرۈپ چىقىڭ ." - ${LangFileString} MUI_INNERTEXT_LICENSE_BOTTOM "$(^NameDA)نى قاچىلىش ئۈچۈن،كېلىشىم تۈرلىرىگە قوشۇلىشىڭىز كېرەك. قوشۇلسىڭىز،قوشۇلىمەن نى بېسىپ داۋاملاشتۇرۇڭ ." - ${LangFileString} MUI_INNERTEXT_LICENSE_BOTTOM_CHECKBOX "$(^NameDA)نى قاچىلاش ئۈچۈن كېلىشىمگە قوشۇلىشىڭىز كېرەك كېلىشىم تۈرلىرىگە قوشۇلسىڭىز،تاللاش كاتىكىنى بېسىڭ. $_CLICK" - ${LangFileString} MUI_INNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS "$(^NameDA)نى قاچىلىش ئۈچۈن،كېلىشىم تۈرلىرىگە قوشۇلىشىڭىز كېرەك. قوشۇلسىڭىز،بىرىنجى تاللاشنى تاللاڭ. $_CLICK" -!endif - -!ifdef MUI_UNLICENSEPAGE - ${LangFileString} MUI_UNTEXT_LICENSE_TITLE "ئىجازەت كېلىشىمى" - ${LangFileString} MUI_UNTEXT_LICENSE_SUBTITLE " $(^NameDA)نى ئۆچۈرۈشتىن بۇرۇن ئىجازەت كېلىشىم تۈرلىرىنى كۆرۈپ چىقىڭ ." - ${LangFileString} MUI_UNINNERTEXT_LICENSE_BOTTOM "$(^NameDA)نى ئۆچۈرۈش ئۈچۈن، كېلىشىمگە قوشۇلىشىڭىز كېرەك .كېلىشىم تۈرلىرىگە قوشۇلسىڭىز, قوشۇلىمەن نى بېسىپ داۋاملاشتۇرۇڭ ." - ${LangFileString} MUI_UNINNERTEXT_LICENSE_BOTTOM_CHECKBOX "$(^NameDA) نى ئۆچۈرۈش ئۈچۈن كېلىشىم تۈرلىرىگە قوشۇلىشىڭىز كېرەك .قوشۇلسىڭىز, تاللاش كاتەكچىسىنى چېكىڭ. $_CLICK" - ${LangFileString} MUI_UNINNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS "$(^NameDA)نى ئۆچۈرۈش ئۈچۈن كېلىشىم تۈرلىرىگە قوشۇلىشىڭىز كېرەك. قوشۇلسىڭىز،بىرىنجى تاللاشنى تاللاڭ . $_CLICK" -!endif - -!ifdef MUI_LICENSEPAGE | MUI_UNLICENSEPAGE - ${LangFileString} MUI_INNERTEXT_LICENSE_TOP "كېلىشىمنىڭ قالغان قىسمىنى كۆرۈش ئۈچۈن Page Down نى بېسىڭ ." -!endif - -!ifdef MUI_COMPONENTSPAGE - ${LangFileString} MUI_TEXT_COMPONENTS_TITLE "بۆلەك تاللاش" - ${LangFileString} MUI_TEXT_COMPONENTS_SUBTITLE "$(^NameDA) نى قاچىلاش ئۈچۈن ،ئېھتىياجىلىق ئىقتىدارلارنى تاللاڭ" -!endif - -!ifdef MUI_UNCOMPONENTSPAGE - ${LangFileString} MUI_UNTEXT_COMPONENTS_TITLE "بۆلەك تاللاش" - ${LangFileString} MUI_UNTEXT_COMPONENTS_SUBTITLE "$(^NameDA) نى ئۆچۈرۈش ئۈچۈن ،ئېھتىياجىلىق ئىقتىدارلارنى تاللاڭ." -!endif - -!ifdef MUI_COMPONENTSPAGE | MUI_UNCOMPONENTSPAGE - ${LangFileString} MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE "چۈشەندۈرۈش" - !ifndef NSIS_CONFIG_COMPONENTPAGE_ALTERNATIVE - ${LangFileString} MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO "بۆلەكنىڭ چۈشەندۈرۈشىنى كۆرۈش ئۈچۈن،مائوسنى بۆلەكنىڭ ئۈستىگە ئاپىرىڭ." - !else - ${LangFileString} MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO "بۆلەكنىڭ چۈشەندۈرۈشىنى كۆرۈش ئۈچۈن،مائوسنى بۆلەكنىڭ ئۈستىگە ئاپىرىڭ." - !endif -!endif - -!ifdef MUI_DIRECTORYPAGE - ${LangFileString} MUI_TEXT_DIRECTORY_TITLE "قاچىلايدىغان ئورۇننى تاللاڭ" - ${LangFileString} MUI_TEXT_DIRECTORY_SUBTITLE "$(^NameDA)نى قاچىلاش ئۈچۈن قاچىلايدىغان قىسقۇچنى تاللاڭ." -!endif - -!ifdef MUI_UNDIRECTORYPAGE - ${LangFileString} MUI_UNTEXT_DIRECTORY_TITLE " ئۆچۈرۈدىغان ئورۇننى تاللاڭ" - ${LangFileString} MUI_UNTEXT_DIRECTORY_SUBTITLE "$(^NameDA)نى ئۆچۈرۈش ئۈچۈن ئۆچۈرۈدىغان قىسقۇچنى تاللاڭ." -!endif - -!ifdef MUI_INSTFILESPAGE - ${LangFileString} MUI_TEXT_INSTALLING_TITLE "قاچىلاۋاتىدۇ" - ${LangFileString} MUI_TEXT_INSTALLING_SUBTITLE "$(^NameDA)نى قاچىلاۋاتىدۇ...تەخىر قىلىڭ ." - ${LangFileString} MUI_TEXT_FINISH_TITLE "قاچىلاش تاماملاندى" - ${LangFileString} MUI_TEXT_FINISH_SUBTITLE "مۇۋەپپىقىيەتلىك قاچىلاندى." - ${LangFileString} MUI_TEXT_ABORT_TITLE "قاچىليالمىدى" - ${LangFileString} MUI_TEXT_ABORT_SUBTITLE "قاچىلاش مەغلۇپ بولدى." -!endif - -!ifdef MUI_UNINSTFILESPAGE - ${LangFileString} MUI_UNTEXT_UNINSTALLING_TITLE "ئۆچۈرۈش" - ${LangFileString} MUI_UNTEXT_UNINSTALLING_SUBTITLE " $(^NameDA)نى ئۆچۈرۈۋاتىدۇ... تەخىر قىلىڭ ." - ${LangFileString} MUI_UNTEXT_FINISH_TITLE "ئۆچۈرۈش تاماملاندى" - ${LangFileString} MUI_UNTEXT_FINISH_SUBTITLE "مۇۋەپپىقىيەتلىك ئۆچۈرۈلدى." - ${LangFileString} MUI_UNTEXT_ABORT_TITLE "ئۆچۈرەلمىدى" - ${LangFileString} MUI_UNTEXT_ABORT_SUBTITLE "ئۆچۈرۈش مەغلۇپ بولدى." -!endif - -!ifdef MUI_FINISHPAGE - ${LangFileString} MUI_TEXT_FINISH_INFO_TITLE "قاچىلاش يېتەكچىسى$(^NameDA)نى قاچىلاشنى تاماملىدى " - ${LangFileString} MUI_TEXT_FINISH_INFO_TEXT "$(^NameDA)كومپيۇتېرىڭىزغا قاچىلاندى .$\r$\n$\r$\nتامام نى بېسىپ قاچىلاش يېتەكچىسىنى يېپىڭ." - ${LangFileString} MUI_TEXT_FINISH_INFO_REBOOT " $(^NameDA) نى قاچىلاشنى تاماملاش ئۈچۈن،كومپيۇتېرىڭىزنى قايتا قوزغىتىڭ كومپيۇتېرىڭىزنى قايتا قوزغىتامسىز؟ ." -!endif - -!ifdef MUI_UNFINISHPAGE - ${LangFileString} MUI_UNTEXT_FINISH_INFO_TITLE "ئۆچۈرۈش يېتەكچىسى$(^NameDA)نى ئۆچۈرۈشنى تاماملىدى " - ${LangFileString} MUI_UNTEXT_FINISH_INFO_TEXT "$(^NameDA)كومپيۇتېرىڭىزدىن ئۆچۈرۈلدى .$\r$\n$\r$\nئۆچۈرۈش يېتەكچىسىنى يېپىش ئۈچۈن تامام نى بېسىڭ." - ${LangFileString} MUI_UNTEXT_FINISH_INFO_REBOOT " $(^NameDA) نى ئۆچۈرۈشنى تاماملاش ئۈچۈن،كومپيۇتېرىڭىزنى قايتا قوزغىتىڭ كومپيۇتېرىڭىزنى قايتا قوزغىتامسىز؟ " -!endif - -!ifdef MUI_FINISHPAGE | MUI_UNFINISHPAGE - ${LangFileString} MUI_TEXT_FINISH_REBOOTNOW "ھازىرلا قايتا قوزغۇتۇش" - ${LangFileString} MUI_TEXT_FINISH_REBOOTLATER "كېيىنرەك كومپيۇتېرنى قولدا قايتا قوزغىتاي" - ${LangFileString} MUI_TEXT_FINISH_RUN "&$(^NameDA)نى ئىجرا قىلىش " - ${LangFileString} MUI_TEXT_FINISH_SHOWREADME "&ياردەمنى كۆرۈش" - ${LangFileString} MUI_BUTTONTEXT_FINISH "&تامام" -!endif - -!ifdef MUI_STARTMENUPAGE - ${LangFileString} MUI_TEXT_STARTMENU_TITLE "باشلاش تىزىملىكى قىسقۇچى تاللاش" - ${LangFileString} MUI_TEXT_STARTMENU_SUBTITLE "$(^NameDA)تېزكۆرگۈچى ئۈچۈن باشلاش تىزىملىكى قىسقۇچى تاللاش ." - ${LangFileString} MUI_INNERTEXT_STARTMENU_TOP "پروگراممىنىڭ تېزكۆرگۈچىنى ياسايدىغان باشلاش تىزىملىك قىسقۇچىنى تاللاڭ ھەم يېڭى قىسقۇچقا ئىسىم كىرگۈزۈڭ." - ${LangFileString} MUI_INNERTEXT_STARTMENU_CHECKBOX "تېزكۆرگۈچ ياسىمىسۇن" -!endif - -!ifdef MUI_UNCONFIRMPAGE - ${LangFileString} MUI_UNTEXT_CONFIRM_TITLE "$(^NameDA)نى ئۆچۈرۈش " - ${LangFileString} MUI_UNTEXT_CONFIRM_SUBTITLE "$(^NameDA)نى كومپيۇتېردىن ئۆچۈرۈش ." -!endif - -!ifdef MUI_ABORTWARNING - ${LangFileString} MUI_TEXT_ABORTWARNING " $(^NameDA)نى قاچىلاشتىن چېكىنەمسىز؟" -!endif - -!ifdef MUI_UNABORTWARNING - ${LangFileString} MUI_UNTEXT_ABORTWARNING " $(^NameDA)نى ئۆچۈرۈشتىن چېكىنەمسىز؟" -!endif - -!ifdef MULTIUSER_INSTALLMODEPAGE - ${LangFileString} MULTIUSER_TEXT_INSTALLMODE_TITLE "ئىشلەتكۈچى تاللاش" - ${LangFileString} MULTIUSER_TEXT_INSTALLMODE_SUBTITLE " $(^NameDA) نى قاچىلاش ئۈچۈن ئىشلەتكۈچىلەرنى تاللاڭ." - ${LangFileString} MULTIUSER_INNERTEXT_INSTALLMODE_TOP " $(^NameDA) نى ئۆزى ئۈچۈنلا قاچىلاش ياكى بارلىق ئىشلەتكۈچىلەر ئۈچۈن قاچىلاشنى تاللاش. $(^ClickNext)" - ${LangFileString} MULTIUSER_INNERTEXT_INSTALLMODE_ALLUSERS "بارلىق ئىشلەتكۈچىلەرگە قاچىلاش" - ${LangFileString} MULTIUSER_INNERTEXT_INSTALLMODE_CURRENTUSER "ماڭىلا قاچىلاش" -!endif diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Uzbek.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Uzbek.nlf deleted file mode 100644 index e5c40ce72..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Uzbek.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Uzbek.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Uzbek.nsh deleted file mode 100644 index 79beed70a..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Uzbek.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Valencian.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Valencian.nlf deleted file mode 100644 index 79609e1c4..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Valencian.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Valencian.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Valencian.nsh deleted file mode 100644 index 84a8f7def..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Valencian.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Vietnamese.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Vietnamese.nlf deleted file mode 100644 index d5bb8e8b2..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Vietnamese.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Vietnamese.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Vietnamese.nsh deleted file mode 100644 index 7c0850adf..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Vietnamese.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Welsh.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Welsh.nlf deleted file mode 100644 index d28bf3221..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Welsh.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Welsh.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Welsh.nsh deleted file mode 100644 index 8af9f1bc5..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Welsh.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Yoruba.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Yoruba.nlf deleted file mode 100644 index c22f1af84..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Yoruba.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Yoruba.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Yoruba.nsh deleted file mode 100644 index a2782cff3..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Yoruba.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Zulu.nlf b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Zulu.nlf deleted file mode 100644 index d2de2f204..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Zulu.nlf and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Zulu.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Zulu.nsh deleted file mode 100644 index 113d7d138..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Language files/Zulu.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Deprecated.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Deprecated.nsh deleted file mode 100644 index ddde664e8..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Deprecated.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Interface.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Interface.nsh deleted file mode 100644 index 2fba6a0d8..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Interface.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Localization.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Localization.nsh deleted file mode 100644 index aa7fc2a70..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Localization.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/MUI2.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/MUI2.nsh deleted file mode 100644 index e571bd028..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/MUI2.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages.nsh deleted file mode 100644 index 76b033f41..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages/Components.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages/Components.nsh deleted file mode 100644 index eeeeb5714..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages/Components.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages/Directory.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages/Directory.nsh deleted file mode 100644 index dafe19494..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages/Directory.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages/Finish.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages/Finish.nsh deleted file mode 100644 index 1f6250d54..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages/Finish.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages/InstallFiles.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages/InstallFiles.nsh deleted file mode 100644 index 00796c16b..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages/InstallFiles.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages/License.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages/License.nsh deleted file mode 100644 index 2979cc9ca..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages/License.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages/StartMenu.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages/StartMenu.nsh deleted file mode 100644 index b1403b205..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages/StartMenu.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages/UninstallConfirm.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages/UninstallConfirm.nsh deleted file mode 100644 index 9b01ed378..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages/UninstallConfirm.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages/Welcome.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages/Welcome.nsh deleted file mode 100644 index b80beb92f..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI 2/Pages/Welcome.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI/System.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI/System.nsh deleted file mode 100644 index e58d6d214..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI/System.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI/ioSpecial.ini b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI/ioSpecial.ini deleted file mode 100644 index 9dba15455..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/Modern UI/ioSpecial.ini and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/nsis_ansi/api.h b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/nsis_ansi/api.h deleted file mode 100644 index 7418b873c..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/nsis_ansi/api.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * apih - * - * This file is a part of NSIS. - * - * Copyright (C) 1999-2009 Nullsoft and Contributors - * - * Licensed under the zlib/libpng license (the "License"); - * you may not use this file except in compliance with the License. - * - * Licence details can be found in the file COPYING. - * - * This software is provided 'as-is', without any express or implied - * warranty. - */ - -#ifndef _NSIS_EXEHEAD_API_H_ -#define _NSIS_EXEHEAD_API_H_ - -// Starting with NSIS 2.42, you can check the version of the plugin API in exec_flags->plugin_api_version -// The format is 0xXXXXYYYY where X is the major version and Y is the minor version (MAKELONG(y,x)) -// When doing version checks, always remember to use >=, ex: if (pX->exec_flags->plugin_api_version >= NSISPIAPIVER_1_0) {} - -#define NSISPIAPIVER_1_0 0x00010000 -#define NSISPIAPIVER_CURR NSISPIAPIVER_1_0 - -// NSIS Plug-In Callback Messages -enum NSPIM -{ - NSPIM_UNLOAD, // This is the last message a plugin gets, do final cleanup - NSPIM_GUIUNLOAD, // Called after .onGUIEnd -}; - -// Prototype for callbacks registered with extra_parameters->RegisterPluginCallback() -// Return NULL for unknown messages -// Should always be __cdecl for future expansion possibilities -typedef UINT_PTR (*NSISPLUGINCALLBACK)(enum NSPIM); - -// extra_parameters data structures containing other interesting stuff -// but the stack, variables and HWND passed on to plug-ins. -typedef struct -{ - int autoclose; - int all_user_var; - int exec_error; - int abort; - int exec_reboot; // NSIS_SUPPORT_REBOOT - int reboot_called; // NSIS_SUPPORT_REBOOT - int XXX_cur_insttype; // depreacted - int plugin_api_version; // see NSISPIAPIVER_CURR - // used to be XXX_insttype_changed - int silent; // NSIS_CONFIG_SILENT_SUPPORT - int instdir_error; - int rtl; - int errlvl; - int alter_reg_view; - int status_update; -} exec_flags_t; - -#ifndef NSISCALL -# define NSISCALL __stdcall -#endif - -typedef struct { - exec_flags_t *exec_flags; - int (NSISCALL *ExecuteCodeSegment)(int, HWND); - void (NSISCALL *validate_filename)(char *); - int (NSISCALL *RegisterPluginCallback)(HMODULE, NSISPLUGINCALLBACK); // returns 0 on success, 1 if already registered and < 0 on errors -} extra_parameters; - -// Definitions for page showing plug-ins -// See Ui.c to understand better how they're used - -// sent to the outer window to tell it to go to the next inner window -#define WM_NOTIFY_OUTER_NEXT (WM_USER+0x8) - -// custom pages should send this message to let NSIS know they're ready -#define WM_NOTIFY_CUSTOM_READY (WM_USER+0xd) - -// sent as wParam with WM_NOTIFY_OUTER_NEXT when user cancels - heed its warning -#define NOTIFY_BYE_BYE 'x' - -#endif /* _PLUGIN_H_ */ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/nsis_ansi/pluginapi.h b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/nsis_ansi/pluginapi.h deleted file mode 100644 index 63b8b8467..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/nsis_ansi/pluginapi.h +++ /dev/null @@ -1,74 +0,0 @@ -#ifndef ___NSIS_PLUGIN__H___ -#define ___NSIS_PLUGIN__H___ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "api.h" - -#ifndef NSISCALL -# define NSISCALL __stdcall -#endif - -#define EXDLL_INIT() { \ - g_stringsize=string_size; \ - g_stacktop=stacktop; \ - g_variables=variables; } - -typedef struct _stack_t { - struct _stack_t *next; - char text[1]; // this should be the length of string_size -} stack_t; - -enum -{ -INST_0, // $0 -INST_1, // $1 -INST_2, // $2 -INST_3, // $3 -INST_4, // $4 -INST_5, // $5 -INST_6, // $6 -INST_7, // $7 -INST_8, // $8 -INST_9, // $9 -INST_R0, // $R0 -INST_R1, // $R1 -INST_R2, // $R2 -INST_R3, // $R3 -INST_R4, // $R4 -INST_R5, // $R5 -INST_R6, // $R6 -INST_R7, // $R7 -INST_R8, // $R8 -INST_R9, // $R9 -INST_CMDLINE, // $CMDLINE -INST_INSTDIR, // $INSTDIR -INST_OUTDIR, // $OUTDIR -INST_EXEDIR, // $EXEDIR -INST_LANG, // $LANGUAGE -__INST_LAST -}; - -extern unsigned int g_stringsize; -extern stack_t **g_stacktop; -extern char *g_variables; - -int NSISCALL popstring(char *str); // 0 on success, 1 on empty stack -int NSISCALL popstringn(char *str, int maxlen); // with length limit, pass 0 for g_stringsize -int NSISCALL popint(); // pops an integer -int NSISCALL popint_or(); // with support for or'ing (2|4|8) -int NSISCALL myatoi(const char *s); // converts a string to an integer -unsigned NSISCALL myatou(const char *s); // converts a string to an unsigned integer, decimal only -int NSISCALL myatoi_or(const char *s); // with support for or'ing (2|4|8) -void NSISCALL pushstring(const char *str); -void NSISCALL pushint(int value); -char * NSISCALL getuservariable(const int varnum); -void NSISCALL setuservariable(const int varnum, const char *var); - -#ifdef __cplusplus -} -#endif - -#endif//!___NSIS_PLUGIN__H___ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/nsis_ansi/pluginapi.lib b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/nsis_ansi/pluginapi.lib deleted file mode 100644 index ea64b80d8..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/nsis_ansi/pluginapi.lib and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/nsis_unicode/api.h b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/nsis_unicode/api.h deleted file mode 100644 index bab952224..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/nsis_unicode/api.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * apih - * - * This file is a part of NSIS. - * - * Copyright (C) 1999-2009 Nullsoft and Contributors - * - * Licensed under the zlib/libpng license (the "License"); - * you may not use this file except in compliance with the License. - * - * Licence details can be found in the file COPYING. - * - * This software is provided 'as-is', without any express or implied - * warranty. - */ - -#ifndef _NSIS_EXEHEAD_API_H_ -#define _NSIS_EXEHEAD_API_H_ - -// Starting with NSIS 2.42, you can check the version of the plugin API in exec_flags->plugin_api_version -// The format is 0xXXXXYYYY where X is the major version and Y is the minor version (MAKELONG(y,x)) -// When doing version checks, always remember to use >=, ex: if (pX->exec_flags->plugin_api_version >= NSISPIAPIVER_1_0) {} - -#define NSISPIAPIVER_1_0 0x00010000 -#define NSISPIAPIVER_CURR NSISPIAPIVER_1_0 - -// NSIS Plug-In Callback Messages -enum NSPIM -{ - NSPIM_UNLOAD, // This is the last message a plugin gets, do final cleanup - NSPIM_GUIUNLOAD, // Called after .onGUIEnd -}; - -// Prototype for callbacks registered with extra_parameters->RegisterPluginCallback() -// Return NULL for unknown messages -// Should always be __cdecl for future expansion possibilities -typedef UINT_PTR (*NSISPLUGINCALLBACK)(enum NSPIM); - -// extra_parameters data structures containing other interesting stuff -// but the stack, variables and HWND passed on to plug-ins. -typedef struct -{ - int autoclose; - int all_user_var; - int exec_error; - int abort; - int exec_reboot; // NSIS_SUPPORT_REBOOT - int reboot_called; // NSIS_SUPPORT_REBOOT - int XXX_cur_insttype; // depreacted - int plugin_api_version; // see NSISPIAPIVER_CURR - // used to be XXX_insttype_changed - int silent; // NSIS_CONFIG_SILENT_SUPPORT - int instdir_error; - int rtl; - int errlvl; - int alter_reg_view; - int status_update; -} exec_flags_t; - -#ifndef NSISCALL -# define NSISCALL __stdcall -#endif - -typedef struct { - exec_flags_t *exec_flags; - int (NSISCALL *ExecuteCodeSegment)(int, HWND); - void (NSISCALL *validate_filename)(TCHAR *); - int (NSISCALL *RegisterPluginCallback)(HMODULE, NSISPLUGINCALLBACK); // returns 0 on success, 1 if already registered and < 0 on errors -} extra_parameters; - -// Definitions for page showing plug-ins -// See Ui.c to understand better how they're used - -// sent to the outer window to tell it to go to the next inner window -#define WM_NOTIFY_OUTER_NEXT (WM_USER+0x8) - -// custom pages should send this message to let NSIS know they're ready -#define WM_NOTIFY_CUSTOM_READY (WM_USER+0xd) - -// sent as wParam with WM_NOTIFY_OUTER_NEXT when user cancels - heed its warning -#define NOTIFY_BYE_BYE 'x' - -#endif /* _PLUGIN_H_ */ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/nsis_unicode/nsis_tchar.h b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/nsis_unicode/nsis_tchar.h deleted file mode 100644 index 9532d4e4c..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/nsis_unicode/nsis_tchar.h +++ /dev/null @@ -1,214 +0,0 @@ -/* - * nsis_tchar.h - * - * This file is a part of NSIS. - * - * Copyright (C) 1999-2007 Nullsoft and Contributors - * - * This software is provided 'as-is', without any express or implied - * warranty. - * - * For Unicode support by Jim Park -- 08/30/2007 - */ - -// Jim Park: Only those we use are listed here. - -#pragma once - -#ifdef _UNICODE - -#ifndef _T -#define __T(x) L ## x -#define _T(x) __T(x) -#define _TEXT(x) __T(x) -#endif -typedef wchar_t TCHAR; -typedef wchar_t _TUCHAR; - -// program -#define _tmain wmain -#define _tWinMain wWinMain -#define _tenviron _wenviron -#define __targv __wargv - -// printfs -#define _ftprintf fwprintf -#define _sntprintf _snwprintf -#define _stprintf _swprintf -#define _tprintf wprintf -#define _vftprintf vfwprintf -#define _vsntprintf _vsnwprintf -#define _vstprintf _vswprintf - -// scanfs -#define _tscanf wscanf -#define _stscanf swscanf - -// string manipulations -#define _tcscat wcscat -#define _tcschr wcschr -#define _tcsclen wcslen -#define _tcscpy wcscpy -#define _tcsdup _wcsdup -#define _tcslen wcslen -#define _tcsnccpy wcsncpy -#define _tcsncpy wcsncpy -#define _tcsrchr wcsrchr -#define _tcsstr wcsstr -#define _tcstok wcstok - -// string comparisons -#define _tcscmp wcscmp -#define _tcsicmp _wcsicmp -#define _tcsncicmp _wcsnicmp -#define _tcsncmp wcsncmp -#define _tcsnicmp _wcsnicmp - -// upper / lower -#define _tcslwr _wcslwr -#define _tcsupr _wcsupr -#define _totlower towlower -#define _totupper towupper - -// conversions to numbers -#define _tcstoi64 _wcstoi64 -#define _tcstol wcstol -#define _tcstoul wcstoul -#define _tstof _wtof -#define _tstoi _wtoi -#define _tstoi64 _wtoi64 -#define _ttoi _wtoi -#define _ttoi64 _wtoi64 -#define _ttol _wtol - -// conversion from numbers to strings -#define _itot _itow -#define _ltot _ltow -#define _i64tot _i64tow -#define _ui64tot _ui64tow - -// file manipulations -#define _tfopen _wfopen -#define _topen _wopen -#define _tremove _wremove -#define _tunlink _wunlink - -// reading and writing to i/o -#define _fgettc fgetwc -#define _fgetts fgetws -#define _fputts fputws -#define _gettchar getwchar - -// directory -#define _tchdir _wchdir - -// environment -#define _tgetenv _wgetenv -#define _tsystem _wsystem - -// time -#define _tcsftime wcsftime - -#else // ANSI - -#ifndef _T -#define _T(x) x -#define _TEXT(x) x -#endif -typedef char TCHAR; -typedef unsigned char _TUCHAR; - -// program -#define _tmain main -#define _tWinMain WinMain -#define _tenviron environ -#define __targv __argv - -// printfs -#define _ftprintf fprintf -#define _sntprintf _snprintf -#define _stprintf sprintf -#define _tprintf printf -#define _vftprintf vfprintf -#define _vsntprintf _vsnprintf -#define _vstprintf vsprintf - -// scanfs -#define _tscanf scanf -#define _stscanf sscanf - -// string manipulations -#define _tcscat strcat -#define _tcschr strchr -#define _tcsclen strlen -#define _tcscnlen strnlen -#define _tcscpy strcpy -#define _tcsdup _strdup -#define _tcslen strlen -#define _tcsnccpy strncpy -#define _tcsrchr strrchr -#define _tcsstr strstr -#define _tcstok strtok - -// string comparisons -#define _tcscmp strcmp -#define _tcsicmp _stricmp -#define _tcsncmp strncmp -#define _tcsncicmp _strnicmp -#define _tcsnicmp _strnicmp - -// upper / lower -#define _tcslwr _strlwr -#define _tcsupr _strupr - -#define _totupper toupper -#define _totlower tolower - -// conversions to numbers -#define _tcstol strtol -#define _tcstoul strtoul -#define _tstof atof -#define _tstoi atoi -#define _tstoi64 _atoi64 -#define _tstoi64 _atoi64 -#define _ttoi atoi -#define _ttoi64 _atoi64 -#define _ttol atol - -// conversion from numbers to strings -#define _i64tot _i64toa -#define _itot _itoa -#define _ltot _ltoa -#define _ui64tot _ui64toa - -// file manipulations -#define _tfopen fopen -#define _topen _open -#define _tremove remove -#define _tunlink _unlink - -// reading and writing to i/o -#define _fgettc fgetc -#define _fgetts fgets -#define _fputts fputs -#define _gettchar getchar - -// directory -#define _tchdir _chdir - -// environment -#define _tgetenv getenv -#define _tsystem system - -// time -#define _tcsftime strftime - -#endif - -// is functions (the same in Unicode / ANSI) -#define _istgraph isgraph -#define _istascii __isascii - -#define __TFILE__ _T(__FILE__) -#define __TDATE__ _T(__DATE__) -#define __TTIME__ _T(__TIME__) diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/nsis_unicode/pluginapi.h b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/nsis_unicode/pluginapi.h deleted file mode 100644 index e762bbfc4..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/nsis_unicode/pluginapi.h +++ /dev/null @@ -1,101 +0,0 @@ -#ifndef ___NSIS_PLUGIN__H___ -#define ___NSIS_PLUGIN__H___ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "api.h" -#include "nsis_tchar.h" - -#ifndef NSISCALL -# define NSISCALL __stdcall -#endif - -#define EXDLL_INIT() { \ - g_stringsize=string_size; \ - g_stacktop=stacktop; \ - g_variables=variables; } - -typedef struct _stack_t { - struct _stack_t *next; - TCHAR text[1]; // this should be the length of string_size -} stack_t; - -enum -{ -INST_0, // $0 -INST_1, // $1 -INST_2, // $2 -INST_3, // $3 -INST_4, // $4 -INST_5, // $5 -INST_6, // $6 -INST_7, // $7 -INST_8, // $8 -INST_9, // $9 -INST_R0, // $R0 -INST_R1, // $R1 -INST_R2, // $R2 -INST_R3, // $R3 -INST_R4, // $R4 -INST_R5, // $R5 -INST_R6, // $R6 -INST_R7, // $R7 -INST_R8, // $R8 -INST_R9, // $R9 -INST_CMDLINE, // $CMDLINE -INST_INSTDIR, // $INSTDIR -INST_OUTDIR, // $OUTDIR -INST_EXEDIR, // $EXEDIR -INST_LANG, // $LANGUAGE -__INST_LAST -}; - -extern unsigned int g_stringsize; -extern stack_t **g_stacktop; -extern TCHAR *g_variables; - -int NSISCALL popstring(TCHAR *str); // 0 on success, 1 on empty stack -int NSISCALL popstringn(TCHAR *str, int maxlen); // with length limit, pass 0 for g_stringsize -int NSISCALL popint(); // pops an integer -int NSISCALL popint_or(); // with support for or'ing (2|4|8) -int NSISCALL myatoi(const TCHAR *s); // converts a string to an integer -unsigned NSISCALL myatou(const TCHAR *s); // converts a string to an unsigned integer, decimal only -int NSISCALL myatoi_or(const TCHAR *s); // with support for or'ing (2|4|8) -void NSISCALL pushstring(const TCHAR *str); -void NSISCALL pushint(int value); -TCHAR * NSISCALL getuservariable(const int varnum); -void NSISCALL setuservariable(const int varnum, const TCHAR *var); - -#ifdef _UNICODE -#define PopStringW(x) popstring(x) -#define PushStringW(x) pushstring(x) -#define SetUserVariableW(x,y) setuservariable(x,y) - -int NSISCALL PopStringA(char* ansiStr); -void NSISCALL PushStringA(const char* ansiStr); -void NSISCALL GetUserVariableW(const int varnum, wchar_t* wideStr); -void NSISCALL GetUserVariableA(const int varnum, char* ansiStr); -void NSISCALL SetUserVariableA(const int varnum, const char* ansiStr); - -#else -// ANSI defs - -#define PopStringA(x) popstring(x) -#define PushStringA(x) pushstring(x) -#define SetUserVariableA(x,y) setuservariable(x,y) - -int NSISCALL PopStringW(wchar_t* wideStr); -void NSISCALL PushStringW(wchar_t* wideStr); -void NSISCALL GetUserVariableW(const int varnum, wchar_t* wideStr); -void NSISCALL GetUserVariableA(const int varnum, char* ansiStr); -void NSISCALL SetUserVariableW(const int varnum, const wchar_t* wideStr); - -#endif - -#ifdef __cplusplus -} -#endif - -#endif//!___NSIS_PLUGIN__H___ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/nsis_unicode/pluginapi.lib b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/nsis_unicode/pluginapi.lib deleted file mode 100644 index 5a208423f..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/nsis_unicode/pluginapi.lib and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/resource.h b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/resource.h deleted file mode 100644 index baf8b2829..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/resource.h +++ /dev/null @@ -1,14 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by selfdel.rc - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 101 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1001 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/selfdel.c b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/selfdel.c deleted file mode 100644 index dbd88354b..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/selfdel.c +++ /dev/null @@ -1,324 +0,0 @@ -/*************************************************** -* FILE NAME: selfdel.c -* -* PURPOSE: -* NSIS plug-in for self deleting uninstaller for -* Win9x/WinNT (all versions) -* -* CONSIDERATIONS -* -* MSVC6: works with Release built only, because source -* file must be compiled with /GZ turned OFF, but in -* Debug builds it is always on (basically, disable -* run-time stack checks) -* -* CHANGE HISTORY -* -* James Brown - Oct 01 2003 -* - Original http://www.catch22.net/tuts/selfdel.asp -* -* Takhir Bedertdinov - Jan 21 2006 -* - Converted to NSIS plug-in, rmdir implementation, MSVCRT -* dependencies removed -* -* Stuart Welch - Jul 17 2011 -* - Fixed for x64 by specifying full path to explorer.exe -* - Ensures WOW64 file system redirection is enabled -* - Reduced deletion retry to 500ms -* - Built with VS2010 -* - Added Unicode build -* - Added version information resource -* - Calls MoveFileEx with MOVEFILE_DELAY_UNTIL_REBOOT on failure -* -* Stuart Welch - Aug 10 2011 -* - Added /REBOOT -* -**************************************************/ - -#define WINVER 0x0400 -#define _WIN32_WINNT 0x0400 -#include - -#ifdef UNICODE -#include "nsis_unicode\pluginapi.h" -#else -#include "nsis_ansi\pluginapi.h" -#endif - -#ifdef MoveFileEx -#undef MoveFileEx -#endif - -#ifndef EWX_FORCEIFHUNG -#define EWX_FORCEIFHUNG 0x00000010 -#endif - -#pragma pack(push, 1) - -#define CODESIZE 0x200 -#define SWITCH_RMDIR TEXT("/RMDIR") -#define SWITCH_REBOOT TEXT("/REBOOT") - -// -// Structure to inject into remote process. Contains -// function pointers and code to execute. -// -typedef struct _SELFDEL -{ - struct _SELFDEL *Arg0; // pointer to self - - BYTE opCodes[CODESIZE]; // code - - HANDLE hParent; // parent process handle - - FARPROC fnWaitForSingleObject; - FARPROC fnCloseHandle; - FARPROC fnDeleteFile; - FARPROC fnSleep; - FARPROC fnExitProcess; - FARPROC fnRemoveDirectory; - FARPROC fnGetLastError; - FARPROC fnExitWindowsEx; - - TCHAR szFileName[MAX_PATH]; // file to delete - BOOL fRemDir; - BOOL fReboot; - -} SELFDEL; - -#pragma pack(pop) - -#define NSISFUNC(name) void __declspec(dllexport) name(HWND hWndParent, int string_size, TCHAR* variables, stack_t** stacktop, extra_parameters* extra) -#define DLL_INIT() EXDLL_INIT(); - -typedef BOOLEAN (WINAPI* PWow64EnableWow64FsRedirection)(BOOLEAN Wow64FsEnableRedirection); -typedef BOOL (WINAPI* PMoveFileEx)(LPCTSTR lpExistingFileName, LPCTSTR lpNewFileName, DWORD dwFlags); - -#ifdef _DEBUG -#define FUNC_ADDR(func) (PVOID)(*(DWORD *)((BYTE *)func + 1) + (DWORD)((BYTE *)func + 5)) -#else -#define FUNC_ADDR(func) func -#endif - -/***************************************************** - * FUNCTION NAME: remote_thread() - * PURPOSE: - * Routine to execute in remote process - * SPECIAL CONSIDERATIONS: - * Takhir: I hope it still less then CODESIZE after - * I added rmdir - *****************************************************/ -static void remote_thread(SELFDEL *remote) -{ - TCHAR *p = remote->szFileName, *e; - - // Wait for parent process to terminate - remote->fnWaitForSingleObject(remote->hParent, INFINITE); - remote->fnCloseHandle(remote->hParent); - - // Try to delete the executable file - while(!remote->fnDeleteFile(remote->szFileName)) - { - // Failed - try again in a bit - remote->fnSleep(500); - } - - // Takhir: my rmdir add-on :) - // Do we have at least one back slash in full path-name - // strrchr() implementation - if(remote->fRemDir) - { - while(*++p != 0) - { - if(*p == '\\') - e = p; - } - - *e = 0; - - // Root install safe, rmdir on Wins doesn't delete 'c:' - remote->fnRemoveDirectory(remote->szFileName); - } - - // Afrow UK: reboot add-on - if (remote->fReboot) - { - remote->fnExitWindowsEx(EWX_REBOOT|EWX_FORCEIFHUNG, 0); - } - - // Finished! Exit so that we don't execute garbage code - remote->fnExitProcess(0); -} - -/***************************************************** - * FUNCTION NAME: my_memcpy() - * PURPOSE: - * msvcrt replacement - * SPECIAL CONSIDERATIONS: - * - *****************************************************/ -void my_memcpy(BYTE* dst, BYTE* src, int len) -{ - int i; - for(i=0;i -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=selfdel - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "selfdel.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "selfdel.mak" CFG="selfdel - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "selfdel - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "selfdel - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "selfdel - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "../debug" -# PROP Intermediate_Dir "../debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "selfdel_EXPORTS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "selfdel_EXPORTS" /FD /c -# SUBTRACT CPP /YX -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib /nologo /entry:"DllMain" /dll /machine:I386 /nodefaultlib /out:"..\..\plugins\SelfDel.dll" /opt:nowin98 -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "selfdel - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "../Debug" -# PROP Intermediate_Dir "../Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "selfdel_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "selfdel_EXPORTS" /YX /FD /GZ /c -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:no /machine:I386 /out:"..\..\plugins\selfdel.dll" /pdbtype:sept -# SUBTRACT LINK32 /debug - -!ENDIF - -# Begin Target - -# Name "selfdel - Win32 Release" -# Name "selfdel - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\selfdel.c -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# End Target -# End Project diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/selfdel.dsw b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/selfdel.dsw deleted file mode 100644 index 787b607df..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/selfdel.dsw +++ /dev/null @@ -1,29 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "selfdel"=".\selfdel.dsp" - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/selfdel.rc b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/selfdel.rc deleted file mode 100644 index d22bc07fe..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/selfdel.rc and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/selfdel.sln b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/selfdel.sln deleted file mode 100644 index a8b81b637..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/selfdel.sln +++ /dev/null @@ -1,23 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "selfdel", "selfdel.vcxproj", "{7A296601-9716-5C64-8D09-09D1C67BF8B1}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release Unicode|Win32 = Release Unicode|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7A296601-9716-5C64-8D09-09D1C67BF8B1}.Debug|Win32.ActiveCfg = Debug|Win32 - {7A296601-9716-5C64-8D09-09D1C67BF8B1}.Debug|Win32.Build.0 = Debug|Win32 - {7A296601-9716-5C64-8D09-09D1C67BF8B1}.Release Unicode|Win32.ActiveCfg = Release Unicode|Win32 - {7A296601-9716-5C64-8D09-09D1C67BF8B1}.Release Unicode|Win32.Build.0 = Release Unicode|Win32 - {7A296601-9716-5C64-8D09-09D1C67BF8B1}.Release|Win32.ActiveCfg = Release|Win32 - {7A296601-9716-5C64-8D09-09D1C67BF8B1}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/selfdel.vcxproj b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/selfdel.vcxproj deleted file mode 100644 index 9ad1f4203..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/selfdel.vcxproj +++ /dev/null @@ -1,184 +0,0 @@ - - - - - Debug - Win32 - - - Release Unicode - Win32 - - - Release - Win32 - - - - - - - - - DynamicLibrary - false - MultiByte - - - DynamicLibrary - false - Unicode - - - DynamicLibrary - false - MultiByte - - - - - - - - - - - - - - - - - - - false - false - - - false - $(SolutionDir)..\..\Plugins\ - false - - - false - $(SolutionDir)..\..\Unicode\Plugins\ - false - - - - MultiThreadedDebugDLL - Default - false - Disabled - true - Level3 - true - EditAndContinue - WIN32;_DEBUG;_WINDOWS;_USRDLL;selfdel_EXPORTS;%(PreprocessorDefinitions) - EnableFastChecks - - - true - _DEBUG;%(PreprocessorDefinitions) - .\../Debug\selfdel.tlb - true - Win32 - - - 0x0409 - _DEBUG;%(PreprocessorDefinitions) - - - true - .\../Debug\selfdel.bsc - - - true - true - true - nsis_ansi\pluginapi.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - MultiThreadedDLL - OnlyExplicitInline - true - true - MinSpace - true - Level3 - WIN32;NDEBUG;_WINDOWS;_USRDLL;selfdel_EXPORTS;%(PreprocessorDefinitions) - false - - - true - NDEBUG;%(PreprocessorDefinitions) - .\../debug\selfdel.tlb - true - Win32 - - - 0x0409 - NDEBUG;%(PreprocessorDefinitions) - - - true - .\../debug\selfdel.bsc - - - true - true - true - nsis_ansi\pluginapi.lib;kernel32.lib;user32.lib;%(AdditionalDependencies) - DllMain - - - - - MultiThreadedDLL - OnlyExplicitInline - true - true - MinSpace - true - Level3 - WIN32;NDEBUG;_WINDOWS;_USRDLL;selfdel_EXPORTS;%(PreprocessorDefinitions) - false - - - true - NDEBUG;%(PreprocessorDefinitions) - .\../debug\selfdel.tlb - true - Win32 - - - 0x0409 - NDEBUG;%(PreprocessorDefinitions) - - - true - .\../debug\selfdel.bsc - - - true - true - true - nsis_unicode\pluginapi.lib;kernel32.lib;user32.lib;%(AdditionalDependencies) - DllMain - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/selfdel.vcxproj.filters b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/selfdel.vcxproj.filters deleted file mode 100644 index 34e02bd50..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/SelfDel/selfdel.vcxproj.filters +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/UIs/default.exe b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/UIs/default.exe deleted file mode 100644 index fd11f0133..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/UIs/default.exe and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/UIs/modern.exe b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/UIs/modern.exe deleted file mode 100644 index 61dc1fb21..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/UIs/modern.exe and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/UIs/modern_headerbmp.exe b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/UIs/modern_headerbmp.exe deleted file mode 100644 index a4393b1e1..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/UIs/modern_headerbmp.exe and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/UIs/modern_headerbmpr.exe b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/UIs/modern_headerbmpr.exe deleted file mode 100644 index eef8fa442..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/UIs/modern_headerbmpr.exe and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/UIs/modern_nodesc.exe b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/UIs/modern_nodesc.exe deleted file mode 100644 index 3b628a679..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/UIs/modern_nodesc.exe and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/UIs/modern_smalldesc.exe b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/UIs/modern_smalldesc.exe deleted file mode 100644 index 52000ad1b..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/UIs/modern_smalldesc.exe and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/UIs/sdbarker_tiny.exe b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/UIs/sdbarker_tiny.exe deleted file mode 100644 index ec5b4ba6c..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/UIs/sdbarker_tiny.exe and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/zip2exe/Base.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/zip2exe/Base.nsh deleted file mode 100644 index 47219c370..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/zip2exe/Base.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/zip2exe/Classic.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/zip2exe/Classic.nsh deleted file mode 100644 index adfd8dfcd..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/zip2exe/Classic.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/zip2exe/Modern.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/zip2exe/Modern.nsh deleted file mode 100644 index 1ed8c2a65..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Contrib/zip2exe/Modern.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Colors.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Colors.nsh deleted file mode 100644 index 01f933793..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Colors.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/FileFunc.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/FileFunc.nsh deleted file mode 100644 index 30307a544..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/FileFunc.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/InstallOptions.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/InstallOptions.nsh deleted file mode 100644 index c51b2ddde..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/InstallOptions.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/LangFile.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/LangFile.nsh deleted file mode 100644 index 565ab7d05..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/LangFile.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Library.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Library.nsh deleted file mode 100644 index 9ba01258b..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Library.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/LogicLib.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/LogicLib.nsh deleted file mode 100644 index 295978f9c..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/LogicLib.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/MUI.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/MUI.nsh deleted file mode 100644 index 79b53ac24..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/MUI.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/MUI2.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/MUI2.nsh deleted file mode 100644 index 7a76129ec..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/MUI2.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Memento.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Memento.nsh deleted file mode 100644 index cf9ca4853..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Memento.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/MultiUser.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/MultiUser.nsh deleted file mode 100644 index 9feb3a7c5..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/MultiUser.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/NewTextReplace.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/NewTextReplace.nsh deleted file mode 100644 index 584503c13..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/NewTextReplace.nsh +++ /dev/null @@ -1,77 +0,0 @@ -/***************************************************************** - * NewTextReplace NSIS plugin v0.4 * - * by Gringoloco023, 2010 * - * http://portableapps.com/node/21840 * - * Based on: * - * TextReplace NSIS plugin v1.5 * - * * - * 2006 Shengalts Aleksander aka Instructor (Shengalts@mail.ru) * - *****************************************************************/ - - -!define ReplaceInFileUTF16LECS '!insertmacro "ReplaceInFileUTF16LECS"' ;${ReplaceInFileUTF16LECS} SOURCE_FILE SEARCH_TEXT REPLACEMENT -!define ReplaceInFileUTF16LE '!insertmacro "ReplaceInFileUTF16LE"' ;${ReplaceInFileUTF16LE} SOURCE_FILE SEARCH_TEXT REPLACEMENT - - -!define textreplace::FindInFile `!insertmacro textreplace::FindInFile` - -!macro textreplace::FindInFile _INPUTFILE _FINDIT _OPTIONS _COUNT - newtextreplace::_FindInFile /NOUNLOAD `${_INPUTFILE}` `${_FINDIT}` `${_OPTIONS}` - Pop ${_COUNT} -!macroend - - -!define textreplace::ReplaceInFile `!insertmacro textreplace::ReplaceInFile` - -!macro textreplace::ReplaceInFile _INPUTFILE _OUTPUTFILE _REPLACEIT _REPLACEWITH _OPTIONS _COUNT - newtextreplace::_ReplaceInFile /NOUNLOAD `${_INPUTFILE}` `${_OUTPUTFILE}` `${_REPLACEIT}` `${_REPLACEWITH}` `${_OPTIONS}` - Pop ${_COUNT} -!macroend - - -!define textreplace::FillReadBuffer `!insertmacro textreplace::FillReadBuffer` - -!macro textreplace::FillReadBuffer _FILE _POINTER - newtextreplace::_FillReadBuffer /NOUNLOAD `${_FILE}` - Pop ${_POINTER} -!macroend - - - -!define textreplace::FreeReadBuffer `!insertmacro textreplace::FreeReadBuffer` - -!macro textreplace::FreeReadBuffer _POINTER - newtextreplace::_FreeReadBuffer /NOUNLOAD `${_POINTER}` -!macroend - - - -!define textreplace::Unload `!insertmacro textreplace::Unload` - -!macro textreplace::Unload - newtextreplace::_Unload -!macroend - -/***************************************************************** - *** The following is meant to *** - *** be used in combination with *** - *** ReplaceInFileWithTextReplace.nsh *** - *****************************************************************/ - -!macro ReplaceInFileUTF16LECS SOURCE_FILE SEARCH_TEXT REPLACEMENT - Push `/U=1 /S=1` - Push `${SOURCE_FILE}` - Push `${SEARCH_TEXT}` - Push `${REPLACEMENT}` - Call ReplaceInFile - -!macroend - -!macro ReplaceInFileUTF16LE SOURCE_FILE SEARCH_TEXT REPLACEMENT - Push `/U=1 /S=0` - Push `${SOURCE_FILE}` - Push `${SEARCH_TEXT}` - Push `${REPLACEMENT}` - Call ReplaceInFile -!macroend - diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Registry.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Registry.nsh deleted file mode 100644 index d6dfd138a..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Registry.nsh +++ /dev/null @@ -1,195 +0,0 @@ -!define registry::Open `!insertmacro registry::Open` - -!macro registry::Open _PATH _OPTIONS _HANDLE - registry::_Open /NOUNLOAD `${_PATH}` `${_OPTIONS}` - Pop ${_HANDLE} -!macroend - - -!define registry::Find `!insertmacro registry::Find` - -!macro registry::Find _HANDLE _PATH _VALUEORKEY _STRING _TYPE - registry::_Find /NOUNLOAD `${_HANDLE}` - Pop ${_PATH} - Pop ${_VALUEORKEY} - Pop ${_STRING} - Pop ${_TYPE} -!macroend - - -!define registry::Close `!insertmacro registry::Close` - -!macro registry::Close _HANDLE - registry::_Close /NOUNLOAD `${_HANDLE}` -!macroend - - -!define registry::KeyExists `!insertmacro registry::KeyExists` - -!macro registry::KeyExists _PATH _ERR - registry::_KeyExists /NOUNLOAD `${_PATH}` - Pop ${_ERR} -!macroend - - -!define registry::Read `!insertmacro registry::Read` - -!macro registry::Read _PATH _VALUE _STRING _TYPE - registry::_Read /NOUNLOAD `${_PATH}` `${_VALUE}` - Pop ${_STRING} - Pop ${_TYPE} -!macroend - - -!define registry::Write `!insertmacro registry::Write` - -!macro registry::Write _PATH _VALUE _STRING _TYPE _ERR - registry::_Write /NOUNLOAD `${_PATH}` `${_VALUE}` `${_STRING}` `${_TYPE}` - Pop ${_ERR} -!macroend - - -!define registry::ReadExtra `!insertmacro registry::ReadExtra` - -!macro registry::ReadExtra _PATH _VALUE _NUMBER _STRING _TYPE - registry::_ReadExtra /NOUNLOAD `${_PATH}` `${_VALUE}` `${_NUMBER}` - Pop ${_STRING} - Pop ${_TYPE} -!macroend - - -!define registry::WriteExtra `!insertmacro registry::WriteExtra` - -!macro registry::WriteExtra _PATH _VALUE _STRING _ERR - registry::_WriteExtra /NOUNLOAD `${_PATH}` `${_VALUE}` `${_STRING}` - Pop ${_ERR} -!macroend - - -!define registry::CreateKey `!insertmacro registry::CreateKey` - -!macro registry::CreateKey _PATH _ERR - registry::_CreateKey /NOUNLOAD `${_PATH}` - Pop ${_ERR} -!macroend - - -!define registry::DeleteValue `!insertmacro registry::DeleteValue` - -!macro registry::DeleteValue _PATH _VALUE _ERR - registry::_DeleteValue /NOUNLOAD `${_PATH}` `${_VALUE}` - Pop ${_ERR} -!macroend - - -!define registry::DeleteKey `!insertmacro registry::DeleteKey` - -!macro registry::DeleteKey _PATH _ERR - registry::_DeleteKey /NOUNLOAD `${_PATH}` - Pop ${_ERR} -!macroend - - -!define registry::DeleteKeyEmpty `!insertmacro registry::DeleteKeyEmpty` - -!macro registry::DeleteKeyEmpty _PATH _ERR - registry::_DeleteKeyEmpty /NOUNLOAD `${_PATH}` - Pop ${_ERR} -!macroend - - -!define registry::CopyValue `!insertmacro registry::CopyValue` - -!macro registry::CopyValue _PATH_SOURCE _VALUE_SOURCE _PATH_TARGET _VALUE_TARGET _ERR - registry::_CopyValue /NOUNLOAD `${_PATH_SOURCE}` `${_VALUE_SOURCE}` `${_PATH_TARGET}` `${_VALUE_TARGET}` - Pop ${_ERR} -!macroend - - -!define registry::MoveValue `!insertmacro registry::MoveValue` - -!macro registry::MoveValue _PATH_SOURCE _VALUE_SOURCE _PATH_TARGET _VALUE_TARGET _ERR - registry::_MoveValue /NOUNLOAD `${_PATH_SOURCE}` `${_VALUE_SOURCE}` `${_PATH_TARGET}` `${_VALUE_TARGET}` - Pop ${_ERR} -!macroend - - -!define registry::CopyKey `!insertmacro registry::CopyKey` - -!macro registry::CopyKey _PATH_SOURCE _PATH_TARGET _ERR - registry::_CopyKey /NOUNLOAD `${_PATH_SOURCE}` `${_PATH_TARGET}` - Pop ${_ERR} -!macroend - - -!define registry::MoveKey `!insertmacro registry::MoveKey` - -!macro registry::MoveKey _PATH_SOURCE _PATH_TARGET _ERR - registry::_MoveKey /NOUNLOAD `${_PATH_SOURCE}` `${_PATH_TARGET}` - Pop ${_ERR} -!macroend - - -!define registry::SaveKey `!insertmacro registry::SaveKey` - -!macro registry::SaveKey _PATH _FILE _OPTIONS _ERR - registry::_SaveKey /NOUNLOAD `${_PATH}` `${_FILE}` `${_OPTIONS}` - Pop ${_ERR} -!macroend - - -!define registry::RestoreKey `!insertmacro registry::RestoreKey` - -!macro registry::RestoreKey _FILE _ERR - registry::_RestoreKey /NOUNLOAD `${_FILE}` - Pop ${_ERR} - IntCmp ${_ERR} -2 0 0 +10 ;REGEDIT4 ansi file - SetDetailsPrint none - IfFileExists "$SYSDIR\reg.exe" 0 +4 ;reg.exe used in Windows2K/XP/Vista/7 - nsExec::ExecToStack `"$SYSDIR\reg.exe" import "${_FILE}"` - Pop ${_ERR} - StrCmp ${_ERR} 0 +5 0 - IfFileExists "$WINDIR\regedit.exe" 0 +3 ;regedit.exe used in Wine - ExecWait `"$WINDIR\regedit.exe" /s "${_FILE}"` ${_ERR} - IfErrors 0 +2 - StrCpy ${_ERR} -1 - SetDetailsPrint lastused -!macroend - -!define registry::StrToHex `!insertmacro registry::StrToHex` - -!macro registry::StrToHex _STRING _HEX_STRING - registry::_StrToHex /NOUNLOAD `${_STRING}` - Pop ${_HEX_STRING} -!macroend - - -!define registry::HexToStr `!insertmacro registry::HexToStr` - -!macro registry::HexToStr _HEX_STRING _STRING - registry::_HexToStr /NOUNLOAD `${_HEX_STRING}` - Pop ${_STRING} -!macroend - - -!define registry::StrToHexUTF16LE `!insertmacro registry::StrToHexUTF16LE` - -!macro registry::StrToHexUTF16LE _STRING _HEX_STRING - registry::_StrToHexUTF16LE /NOUNLOAD `${_STRING}` - Pop ${_HEX_STRING} -!macroend - - -!define registry::HexToStrUTF16LE `!insertmacro registry::HexToStrUTF16LE` - -!macro registry::HexToStrUTF16LE _HEX_STRING _STRING - registry::_HexToStrUTF16LE /NOUNLOAD `${_HEX_STRING}` - Pop ${_STRING} -!macroend - - -!define registry::Unload `!insertmacro registry::Unload` - -!macro registry::Unload - registry::_Unload -!macroend diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Sections.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Sections.nsh deleted file mode 100644 index f5ca6214a..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Sections.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/StrFunc.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/StrFunc.nsh deleted file mode 100644 index 41081643d..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/StrFunc.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/TBProgress.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/TBProgress.nsh deleted file mode 100644 index f72eb616c..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/TBProgress.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/TextFunc.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/TextFunc.nsh deleted file mode 100644 index 287631be2..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/TextFunc.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/TextReplace.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/TextReplace.nsh deleted file mode 100644 index e5bec680a..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/TextReplace.nsh +++ /dev/null @@ -1,77 +0,0 @@ -/***************************************************************** - * NewTextReplace NSIS plugin v0.4 * - * by Gringoloco023, 2010 * - * http://portableapps.com/node/21840 * - * Based on: * - * TextReplace NSIS plugin v1.5 * - * * - * 2006 Shengalts Aleksander aka Instructor (Shengalts@mail.ru) * - *****************************************************************/ -;This file named TextReplace.nsh, for compatibility of old scripts ! - -!define ReplaceInFileUTF16LECS '!insertmacro "ReplaceInFileUTF16LECS"' ;${ReplaceInFileUTF16LECS} SOURCE_FILE SEARCH_TEXT REPLACEMENT -!define ReplaceInFileUTF16LE '!insertmacro "ReplaceInFileUTF16LE"' ;${ReplaceInFileUTF16LE} SOURCE_FILE SEARCH_TEXT REPLACEMENT - - -!define textreplace::FindInFile `!insertmacro textreplace::FindInFile` - -!macro textreplace::FindInFile _INPUTFILE _FINDIT _OPTIONS _COUNT - newtextreplace::_FindInFile /NOUNLOAD `${_INPUTFILE}` `${_FINDIT}` `${_OPTIONS}` - Pop ${_COUNT} -!macroend - - -!define textreplace::ReplaceInFile `!insertmacro textreplace::ReplaceInFile` - -!macro textreplace::ReplaceInFile _INPUTFILE _OUTPUTFILE _REPLACEIT _REPLACEWITH _OPTIONS _COUNT - newtextreplace::_ReplaceInFile /NOUNLOAD `${_INPUTFILE}` `${_OUTPUTFILE}` `${_REPLACEIT}` `${_REPLACEWITH}` `${_OPTIONS}` - Pop ${_COUNT} -!macroend - - -!define textreplace::FillReadBuffer `!insertmacro textreplace::FillReadBuffer` - -!macro textreplace::FillReadBuffer _FILE _POINTER - newtextreplace::_FillReadBuffer /NOUNLOAD `${_FILE}` - Pop ${_POINTER} -!macroend - - - -!define textreplace::FreeReadBuffer `!insertmacro textreplace::FreeReadBuffer` - -!macro textreplace::FreeReadBuffer _POINTER - newtextreplace::_FreeReadBuffer /NOUNLOAD `${_POINTER}` -!macroend - - - -!define textreplace::Unload `!insertmacro textreplace::Unload` - -!macro textreplace::Unload - newtextreplace::_Unload -!macroend - -/***************************************************************** - *** The following is meant to *** - *** be used in combination with *** - *** ReplaceInFileWithTextReplace.nsh *** - *****************************************************************/ - -!macro ReplaceInFileUTF16LECS SOURCE_FILE SEARCH_TEXT REPLACEMENT - Push `/U=1 /S=1` - Push `${SOURCE_FILE}` - Push `${SEARCH_TEXT}` - Push `${REPLACEMENT}` - Call ReplaceInFile - -!macroend - -!macro ReplaceInFileUTF16LE SOURCE_FILE SEARCH_TEXT REPLACEMENT - Push `/U=1 /S=0` - Push `${SOURCE_FILE}` - Push `${SEARCH_TEXT}` - Push `${REPLACEMENT}` - Call ReplaceInFile -!macroend - diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/UpgradeDLL.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/UpgradeDLL.nsh deleted file mode 100644 index 8e88c3ce3..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/UpgradeDLL.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Util.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Util.nsh deleted file mode 100644 index b05d9ea70..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Util.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/VB6RunTime.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/VB6RunTime.nsh deleted file mode 100644 index 759124051..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/VB6RunTime.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/VPatchLib.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/VPatchLib.nsh deleted file mode 100644 index 42ed923b4..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/VPatchLib.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Win/WinDef.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Win/WinDef.nsh deleted file mode 100644 index db7b6c74a..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Win/WinDef.nsh +++ /dev/null @@ -1,74 +0,0 @@ -!ifndef __WIN_WINDEF__INC -!define __WIN_WINDEF__INC -!verbose push -!verbose 3 -!ifndef __WIN_NOINC_WINDEF - - -!ifndef MAX_PATH -!define MAX_PATH 260 -!endif -#define NULL 0 - - -!macro _Win_MINMAX _intcmp _j1 _j2 _outvar _a _b -${_intcmp} "${_a}" "${_b}" ${_j1} ${_j1} ${_j2} -StrCpy ${_outvar} "${_a}" -goto +2 -StrCpy ${_outvar} "${_b}" -!macroend -!ifndef __WIN_MS_NOMINMAX & min & max & min_u & max_u -!define min "!insertmacro _Win_MINMAX IntCmp +1 +3 " -!define max "!insertmacro _Win_MINMAX IntCmp +3 +1 " -!define min_u "!insertmacro _Win_MINMAX IntCmpU +1 +3 " -!define max_u "!insertmacro _Win_MINMAX IntCmpU +3 +1 " -!endif - -!macro _Win_LOBYTE _outvar _in -IntOp ${_outvar} "${_in}" & 0xFF -!macroend -!define LOBYTE "!insertmacro _Win_LOBYTE " - -!macro _Win_HIBYTE _outvar _in -IntOp ${_outvar} "${_in}" >> 8 -${LOBYTE} ${_outvar} ${_outvar} -!macroend -!define HIBYTE "!insertmacro _Win_HIBYTE " - -!macro _Win_LOWORD _outvar _in -IntOp ${_outvar} "${_in}" & 0xFFFF -!macroend -!define LOWORD "!insertmacro _Win_LOWORD " - -!macro _Win_HIWORD _outvar _in -IntOp ${outvar} "${_in}" >> 16 ;sign extended :( -${LOWORD} ${_outvar} ${outvar} ;make sure we strip off the upper word -!macroend -!define HIWORD "!insertmacro _Win_HIWORD " - -!macro _Win_MAKEWORD _outvar _tmpvar _lo _hi -${LOBYTE} ${_outvar} "${_hi}" -${LOBYTE} ${_tmpvar} "${_lo}" -IntOp ${_outvar} ${_outvar} << 8 -IntOp ${_outvar} ${_outvar} | ${_tmpvar} -!macroend -!define MAKEWORD "!insertmacro _Win_MAKEWORD " - -!macro _Win_MAKELONG32 _outvar _tmpvar _wlo _whi -${LOWORD} ${_outvar} "${_wlo}" -IntOp ${_tmpvar} "${_whi}" << 16 -IntOp ${_outvar} ${_outvar} | ${_tmpvar} -!macroend -!define MAKELONG "!insertmacro _Win_MAKELONG32 " -!if "${__WIN_PTRSIZE}" <= 4 -!define MAKEWPARAM "${MAKELONG}" -!define MAKELPARAM "${MAKELONG}" -!define MAKELRESULT "${MAKELONG}" -!else -!error "Missing 64bit imp!" -!endif - - -!endif /* __WIN_NOINC_WINDEF */ -!verbose pop -!endif /* __WIN_WINDEF__INC */ \ No newline at end of file diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Win/WinError.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Win/WinError.nsh deleted file mode 100644 index 4fec78052..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Win/WinError.nsh +++ /dev/null @@ -1,64 +0,0 @@ -!ifndef __WIN_WINERROR__INC -!define __WIN_WINERROR__INC -!verbose push -!verbose 3 -!ifndef __WIN_NOINC_WINERROR - -#define NO_ERROR 0 -!define ERROR_SUCCESS 0 -!define ERROR_INVALID_FUNCTION 1 -!define ERROR_FILE_NOT_FOUND 2 -!define ERROR_PATH_NOT_FOUND 3 -!define ERROR_TOO_MANY_OPEN_FILES 4 -!define ERROR_ACCESS_DENIED 5 -!define ERROR_INVALID_HANDLE 6 -!define ERROR_ARENA_TRASHED 7 -!define ERROR_NOT_ENOUGH_MEMORY 8 -!define ERROR_INVALID_BLOCK 9 -!define ERROR_BAD_ENVIRONMENT 10 -!define ERROR_BAD_FORMAT 11 -!define ERROR_INVALID_ACCESS 12 -!define ERROR_INVALID_DATA 13 -!define ERROR_OUTOFMEMORY 14 -!define ERROR_INVALID_DRIVE 15 -!define ERROR_CURRENT_DIRECTORY 16 -!define ERROR_NOT_SAME_DEVICE 17 -!define ERROR_NO_MORE_FILES 18 -!define ERROR_WRITE_PROTECT 19 -!define ERROR_BAD_UNIT 20 -!define ERROR_NOT_READY 21 -!define ERROR_BAD_COMMAND 22 -!define ERROR_CRC 23 -!define ERROR_BAD_LENGTH 24 -!define ERROR_SEEK 25 -!define ERROR_NOT_DOS_DISK 26 -!define ERROR_SECTOR_NOT_FOUND 27 -!define ERROR_OUT_OF_PAPER 28 -!define ERROR_WRITE_FAULT 29 -!define ERROR_READ_FAULT 30 -!define ERROR_GEN_FAILURE 31 -!define ERROR_SHARING_VIOLATION 32 -!define ERROR_LOCK_VIOLATION 33 -!define ERROR_WRONG_DISK 34 -!define ERROR_SHARING_BUFFER_EXCEEDED 36 -!define ERROR_HANDLE_EOF 38 -!define ERROR_HANDLE_DISK_FULL 39 -!define ERROR_NOT_SUPPORTED 50 - -!define SEVERITY_SUCCESS 0 -!define SEVERITY_ERROR 1 -!define E_UNEXPECTED 0x8000FFFF -!define E_NOTIMPL 0x80004001 -!define E_OUTOFMEMORY 0x8007000E -!define E_INVALIDARG 0x80070057 -!define E_NOINTERFACE 0x80004002 -!define E_POINTER 0x80004003 -!define E_HANDLE 0x80070006 -!define E_ABORT 0x80004004 -!define E_FAIL 0x80004005 -!define E_ACCESSDENIED 0x80070005 -!define E_PENDING 0x8000000A - -!endif /* __WIN_NOINC_WINERROR */ -!verbose pop -!endif /* __WIN_WINERROR__INC */ \ No newline at end of file diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Win/WinNT.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Win/WinNT.nsh deleted file mode 100644 index bec1c1445..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Win/WinNT.nsh +++ /dev/null @@ -1,209 +0,0 @@ -!ifndef __WIN_WINNT__INC -!define __WIN_WINNT__INC -!verbose push -!verbose 3 -!ifndef __WIN_NOINC_WINNT - - -#define MINCHAR 0x80 -#define MAXCHAR 0x7f -!define MINSHORT 0x8000 -!define MAXSHORT 0x7fff -!define MINLONG 0x80000000 -!define MAXLONG 0x7fffffff -!define MAXBYTE 0xff -!define MAXWORD 0xffff -!define MAXDWORD 0xffffffff - -!ifndef WIN32_NO_STATUS -!define STATUS_WAIT_0 0x00000000 -!define STATUS_ABANDONED_WAIT_0 0x00000080 -!define STATUS_USER_APC 0x000000C0 -!define STATUS_TIMEOUT 0x00000102 -!define STATUS_PENDING 0x00000103 -!define DBG_EXCEPTION_HANDLED 0x00010001 -!define DBG_CONTINUE 0x00010002 -!define STATUS_SEGMENT_NOTIFICATION 0x40000005 -!define DBG_TERMINATE_THREAD 0x40010003 -!define DBG_TERMINATE_PROCESS 0x40010004 -!define DBG_CONTROL_C 0x40010005 -!define DBG_CONTROL_BREAK 0x40010008 -!define DBG_COMMAND_EXCEPTION 0x40010009 -!define STATUS_GUARD_PAGE_VIOLATION 0x80000001 -!define STATUS_DATATYPE_MISALIGNMENT 0x80000002 -!define STATUS_BREAKPOINT 0x80000003 -!define STATUS_SINGLE_STEP 0x80000004 -!define DBG_EXCEPTION_NOT_HANDLED 0x80010001 -!define STATUS_ACCESS_VIOLATION 0xC0000005 -!define STATUS_IN_PAGE_ERROR 0xC0000006 -!define STATUS_INVALID_HANDLE 0xC0000008 -!define STATUS_NO_MEMORY 0xC0000017 -!define STATUS_ILLEGAL_INSTRUCTION 0xC000001D -!define STATUS_NONCONTINUABLE_EXCEPTION 0xC0000025 -!define STATUS_INVALID_DISPOSITION 0xC0000026 -!define STATUS_ARRAY_BOUNDS_EXCEEDED 0xC000008C -!define STATUS_FLOAT_DENORMAL_OPERAND 0xC000008D -!define STATUS_FLOAT_DIVIDE_BY_ZERO 0xC000008E -!define STATUS_FLOAT_INEXACT_RESULT 0xC000008F -!define STATUS_FLOAT_INVALID_OPERATION 0xC0000090 -!define STATUS_FLOAT_OVERFLOW 0xC0000091 -!define STATUS_FLOAT_STACK_CHECK 0xC0000092 -!define STATUS_FLOAT_UNDERFLOW 0xC0000093 -!define STATUS_INTEGER_DIVIDE_BY_ZERO 0xC0000094 -!define STATUS_INTEGER_OVERFLOW 0xC0000095 -!define STATUS_PRIVILEGED_INSTRUCTION 0xC0000096 -!define STATUS_STACK_OVERFLOW 0xC00000FD -!define STATUS_CONTROL_C_EXIT 0xC000013A -!define STATUS_FLOAT_MULTIPLE_FAULTS 0xC00002B4 -!define STATUS_FLOAT_MULTIPLE_TRAPS 0xC00002B5 -!define STATUS_REG_NAT_CONSUMPTION 0xC00002C9 -!define STATUS_SXS_EARLY_DEACTIVATION 0xC015000F -!define STATUS_SXS_INVALID_DEACTIVATION 0xC0150010 -!endif /*WIN32_NO_STATUS*/ - -#define MAXIMUM_WAIT_OBJECTS 64 - -!define DELETE 0x00010000 -!define READ_CONTROL 0x00020000 -!define WRITE_DAC 0x00040000 -!define WRITE_OWNER 0x00080000 -!define SYNCHRONIZE 0x00100000 -!define STANDARD_RIGHTS_REQUIRED 0x000F0000 -!define STANDARD_RIGHTS_READ ${READ_CONTROL} -!define STANDARD_RIGHTS_WRITE ${READ_CONTROL} -!define STANDARD_RIGHTS_EXECUTE ${READ_CONTROL} -!define STANDARD_RIGHTS_ALL 0x001F0000 -!define SPECIFIC_RIGHTS_ALL 0x0000FFFF -!define ACCESS_SYSTEM_SECURITY 0x01000000 -!define MAXIMUM_ALLOWED 0x02000000 -!define GENERIC_READ 0x80000000 -!define GENERIC_WRITE 0x40000000 -!define GENERIC_EXECUTE 0x20000000 -!define GENERIC_ALL 0x10000000 - -!define SE_PRIVILEGE_ENABLED_BY_DEFAULT 0x00000001 -!define SE_PRIVILEGE_ENABLED 0x00000002 -!define SE_PRIVILEGE_REMOVED 0x00000004 -!define SE_PRIVILEGE_USED_FOR_ACCESS 0x80000000 - -!define SE_CREATE_TOKEN_NAME "SeCreateTokenPrivilege" -!define SE_ASSIGNPRIMARYTOKEN_NAME "SeAssignPrimaryTokenPrivilege" -!define SE_LOCK_MEMORY_NAME "SeLockMemoryPrivilege" -!define SE_INCREASE_QUOTA_NAME "SeIncreaseQuotaPrivilege" -!define SE_UNSOLICITED_INPUT_NAME "SeUnsolicitedInputPrivilege" -!define SE_MACHINE_ACCOUNT_NAME "SeMachineAccountPrivilege" -!define SE_TCB_NAME "SeTcbPrivilege" -!define SE_SECURITY_NAME "SeSecurityPrivilege" -!define SE_TAKE_OWNERSHIP_NAME "SeTakeOwnershipPrivilege" -!define SE_LOAD_DRIVER_NAME "SeLoadDriverPrivilege" -!define SE_SYSTEM_PROFILE_NAME "SeSystemProfilePrivilege" -!define SE_SYSTEMTIME_NAME "SeSystemtimePrivilege" -!define SE_PROF_SINGLE_PROCESS_NAME "SeProfileSingleProcessPrivilege" -!define SE_INC_BASE_PRIORITY_NAME "SeIncreaseBasePriorityPrivilege" -!define SE_CREATE_PAGEFILE_NAME "SeCreatePagefilePrivilege" -!define SE_CREATE_PERMANENT_NAME "SeCreatePermanentPrivilege" -!define SE_BACKUP_NAME "SeBackupPrivilege" -!define SE_RESTORE_NAME "SeRestorePrivilege" -!define SE_SHUTDOWN_NAME "SeShutdownPrivilege" -!define SE_DEBUG_NAME "SeDebugPrivilege" -!define SE_AUDIT_NAME "SeAuditPrivilege" -!define SE_SYSTEM_ENVIRONMENT_NAME "SeSystemEnvironmentPrivilege" -!define SE_CHANGE_NOTIFY_NAME "SeChangeNotifyPrivilege" -!define SE_REMOTE_SHUTDOWN_NAME "SeRemoteShutdownPrivilege" -!define SE_UNDOCK_NAME "SeUndockPrivilege" -!define SE_SYNC_AGENT_NAME "SeSyncAgentPrivilege" -!define SE_ENABLE_DELEGATION_NAME "SeEnableDelegationPrivilege" -!define SE_MANAGE_VOLUME_NAME "SeManageVolumePrivilege" -!define SE_IMPERSONATE_NAME "SeImpersonatePrivilege" -!define SE_CREATE_GLOBAL_NAME "SeCreateGlobalPrivilege" - -!define TOKEN_ASSIGN_PRIMARY 0x0001 -!define TOKEN_DUPLICATE 0x0002 -!define TOKEN_IMPERSONATE 0x0004 -!define TOKEN_QUERY 0x0008 -!define TOKEN_QUERY_SOURCE 0x0010 -!define TOKEN_ADJUST_PRIVILEGES 0x0020 -!define TOKEN_ADJUST_GROUPS 0x0040 -!define TOKEN_ADJUST_DEFAULT 0x0080 -!define TOKEN_ADJUST_SESSIONID 0x0100 -!define TOKEN_ALL_ACCESS_P 0xF00FF -!define /math TOKEN_ALL_ACCESS ${TOKEN_ALL_ACCESS_P} | ${TOKEN_ADJUST_SESSIONID} -!define /math TOKEN_READ ${STANDARD_RIGHTS_READ} | ${TOKEN_QUERY} -!define TOKEN_WRITE 0x200E0 ;(STANDARD_RIGHTS_WRITE|TOKEN_ADJUST_PRIVILEGES|TOKEN_ADJUST_GROUPS|TOKEN_ADJUST_DEFAULT) -!define TOKEN_EXECUTE ${STANDARD_RIGHTS_EXECUTE} - -!define PROCESS_TERMINATE 0x0001 -!define PROCESS_CREATE_THREAD 0x0002 -!define PROCESS_SET_SESSIONID 0x0004 -!define PROCESS_VM_OPERATION 0x0008 -!define PROCESS_VM_READ 0x0010 -!define PROCESS_VM_WRITE 0x0020 -!define PROCESS_DUP_HANDLE 0x0040 -!define PROCESS_CREATE_PROCESS 0x0080 -!define PROCESS_SET_QUOTA 0x0100 -!define PROCESS_SET_INFORMATION 0x0200 -!define PROCESS_QUERY_INFORMATION 0x0400 -!define PROCESS_SUSPEND_RESUME 0x0800 -!define PROCESS_ALL_ACCESS 0x1F0FFF ;(STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFF) -!define THREAD_TERMINATE 0x0001 -!define THREAD_SUSPEND_RESUME 0x0002 -!define THREAD_GET_CONTEXT 0x0008 -!define THREAD_SET_CONTEXT 0x0010 -!define THREAD_SET_INFORMATION 0x0020 -!define THREAD_QUERY_INFORMATION 0x0040 -!define THREAD_SET_THREAD_TOKEN 0x0080 -!define THREAD_IMPERSONATE 0x0100 -!define THREAD_DIRECT_IMPERSONATION 0x0200 -!define THREAD_ALL_ACCESS 0x1F03FF ;(STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3FF) -!define JOB_OBJECT_ASSIGN_PROCESS 0x0001 -!define JOB_OBJECT_SET_ATTRIBUTES 0x0002 -!define JOB_OBJECT_QUERY 0x0004 -!define JOB_OBJECT_TERMINATE 0x0008 -!define JOB_OBJECT_SET_SECURITY_ATTRIBUTES 0x0010 -!define JOB_OBJECT_ALL_ACCESS 0x1F001F ;(STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1F ) -!define EVENT_MODIFY_STATE 0x0002 -!define EVENT_ALL_ACCESS 0x1F0003 ;(STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3) -!define MUTANT_QUERY_STATE 0x0001 -!define MUTANT_ALL_ACCESS 0x1F0001 ;(STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|MUTANT_QUERY_STATE) - -!define FILE_SHARE_READ 0x00000001 -!define FILE_SHARE_WRITE 0x00000002 -!define FILE_SHARE_DELETE 0x00000004 -!define FILE_ATTRIBUTE_READONLY 0x00000001 -!define FILE_ATTRIBUTE_HIDDEN 0x00000002 -!define FILE_ATTRIBUTE_SYSTEM 0x00000004 -!define FILE_ATTRIBUTE_DIRECTORY 0x00000010 -!define FILE_ATTRIBUTE_ARCHIVE 0x00000020 -!define FILE_ATTRIBUTE_DEVICE 0x00000040 -!define FILE_ATTRIBUTE_NORMAL 0x00000080 -!define FILE_ATTRIBUTE_TEMPORARY 0x00000100 -!define FILE_ATTRIBUTE_SPARSE_FILE 0x00000200 -!define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400 -!define FILE_ATTRIBUTE_COMPRESSED 0x00000800 -!define FILE_ATTRIBUTE_OFFLINE 0x00001000 -!define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000 -!define FILE_ATTRIBUTE_ENCRYPTED 0x00004000 - -!define DUPLICATE_CLOSE_SOURCE 0x00000001 -!define DUPLICATE_SAME_ACCESS 0x00000002 - -!define VER_PLATFORM_WIN32s 0 -!define VER_PLATFORM_WIN32_WINDOWS 1 -!define VER_PLATFORM_WIN32_NT 2 - -!ifndef REG_SZ & NSIS_WINDOWS__NO_REGTYPES -!define REG_NONE 0 -!define REG_SZ 1 -!define REG_EXPAND_SZ 2 -!define REG_BINARY 3 -!define REG_DWORD 4 -!define REG_DWORD_LITTLE_ENDIAN 4 -!define REG_DWORD_BIG_ENDIAN 5 -!define REG_LINK 6 -!define REG_MULTI_SZ 7 -!endif - - -!endif /* __WIN_NOINC_WINNT */ -!verbose pop -!endif /* __WIN_WINNT__INC */ \ No newline at end of file diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Win/WinUser.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Win/WinUser.nsh deleted file mode 100644 index 7a217c27d..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/Win/WinUser.nsh +++ /dev/null @@ -1,199 +0,0 @@ -!ifndef __WIN_WINUSER__INC -!define __WIN_WINUSER__INC -!verbose push -!verbose 3 -!ifndef __WIN_MS_NOUSER & __WIN_NOINC_WINUSER - -!ifndef __WIN_MS_NOVIRTUALKEYCODES -!define VK_LBUTTON 0x01 -!define VK_RBUTTON 0x02 -!define VK_CANCEL 0x03 -!define VK_MBUTTON 0x04 /* NOT contiguous with L & RBUTTON */ -!define VK_XBUTTON1 0x05 /* NOT contiguous with L & RBUTTON */ -!define VK_XBUTTON2 0x06 /* NOT contiguous with L & RBUTTON */ -!define VK_BACK 0x08 -!define VK_TAB 0x09 -!define VK_CLEAR 0x0C -!define VK_RETURN 0x0D -!define VK_SHIFT 0x10 -!define VK_CONTROL 0x11 -!define VK_MENU 0x12 -!define VK_PAUSE 0x13 -!define VK_CAPITAL 0x14 -!define VK_ESCAPE 0x1B -!define VK_CONVERT 0x1C -!define VK_NONCONVERT 0x1D -!define VK_ACCEPT 0x1E -!define VK_MODECHANGE 0x1F -!define VK_SPACE 0x20 -!define VK_PRIOR 0x21 -!define VK_NEXT 0x22 -!define VK_END 0x23 -!define VK_HOME 0x24 -!define VK_LEFT 0x25 -!define VK_UP 0x26 -!define VK_RIGHT 0x27 -!define VK_DOWN 0x28 -!define VK_SELECT 0x29 -!define VK_PRINT 0x2A -!define VK_EXECUTE 0x2B -!define VK_SNAPSHOT 0x2C -!define VK_INSERT 0x2D -!define VK_DELETE 0x2E -!define VK_HELP 0x2F -; VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39) -; VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A) -!define VK_LWIN 0x5B -!define VK_RWIN 0x5C -!define VK_APPS 0x5D -!define VK_SLEEP 0x5F -!define VK_NUMPAD0 0x60 -!define VK_NUMPAD1 0x61 -!define VK_NUMPAD2 0x62 -!define VK_NUMPAD3 0x63 -!define VK_NUMPAD4 0x64 -!define VK_NUMPAD5 0x65 -!define VK_NUMPAD6 0x66 -!define VK_NUMPAD7 0x67 -!define VK_NUMPAD8 0x68 -!define VK_NUMPAD9 0x69 -!define VK_MULTIPLY 0x6A -!define VK_ADD 0x6B -!define VK_SEPARATOR 0x6C -!define VK_SUBTRACT 0x6D -!define VK_DECIMAL 0x6E -!define VK_DIVIDE 0x6F -!define VK_F1 0x70 -!define VK_F2 0x71 -!define VK_F3 0x72 -!define VK_F4 0x73 -!define VK_F5 0x74 -!define VK_F6 0x75 -!define VK_F7 0x76 -!define VK_F8 0x77 -!define VK_F9 0x78 -!define VK_F10 0x79 -!define VK_F11 0x7A -!define VK_F12 0x7B -!define VK_NUMLOCK 0x90 -!define VK_SCROLL 0x91 -!define VK_OEM_NEC_EQUAL 0x92 ; '=' key on numpad -!define VK_LSHIFT 0xA0 -!define VK_RSHIFT 0xA1 -!define VK_LCONTROL 0xA2 -!define VK_RCONTROL 0xA3 -!define VK_LMENU 0xA4 -!define VK_RMENU 0xA5 -!endif - -!ifndef __WIN_MS_NOWINOFFSETS -/* in nsDialogs.nsh... -!define GWL_STYLE -16 -!define GWL_EXSTYLE -20 */ -!define GWLP_WNDPROC -4 -!define GWLP_HINSTANCE -6 -!define GWLP_HWNDPARENT -8 -!define GWLP_USERDATA -21 -!define GWLP_ID -12 -!define DWLP_MSGRESULT 0 -!define /math DWLP_DLGPROC ${DWLP_MSGRESULT} + ${__WIN_PTRSIZE} ;DWLP_MSGRESULT + sizeof(LRESULT) -!define /math DWLP_USER ${DWLP_DLGPROC} + ${__WIN_PTRSIZE} ;DWLP_DLGPROC + sizeof(DLGPROC) -!endif - -!ifndef __WIN_MS_NONCMESSAGES -!define HTERROR -2 -!define HTTRANSPARENT -1 -!define HTNOWHERE 0 -!define HTCLIENT 1 -!define HTCAPTION 2 -!define HTSYSMENU 3 -!define HTGROWBOX 4 -!define HTSIZE ${HTGROWBOX} -!define HTMENU 5 -!define HTHSCROLL 6 -!define HTVSCROLL 7 -!define HTMINBUTTON 8 -!define HTMAXBUTTON 9 -!define HTLEFT 10 -!define HTRIGHT 11 -!define HTTOP 12 -!define HTTOPLEFT 13 -!define HTTOPRIGHT 14 -!define HTBOTTOM 15 -!define HTBOTTOMLEFT 16 -!define HTBOTTOMRIGHT 17 -!define HTBORDER 18 -!define HTREDUCE ${HTMINBUTTON} -!define HTZOOM ${HTMAXBUTTON} -!define HTSIZEFIRST ${HTLEFT} -!define HTSIZELAST ${HTBOTTOMRIGHT} -!define HTOBJECT 19 -!define HTCLOSE 20 -!define HTHELP 21 -!endif - -!ifndef __WIN_MS_NOSYSCOMMANDS -!define SC_SIZE 0xF000 -!define SC_MOVE 0xF010 -!define SC_MINIMIZE 0xF020 -!define SC_MAXIMIZE 0xF030 -!define SC_NEXTWINDOW 0xF040 -!define SC_PREVWINDOW 0xF050 -!define SC_CLOSE 0xF060 -!define SC_VSCROLL 0xF070 -!define SC_HSCROLL 0xF080 -!define SC_MOUSEMENU 0xF090 -!define SC_KEYMENU 0xF100 -!define SC_ARRANGE 0xF110 -!define SC_RESTORE 0xF120 -!define SC_TASKLIST 0xF130 -!define SC_SCREENSAVE 0xF140 -!define SC_HOTKEY 0xF150 -!define SC_DEFAULT 0xF160 -!define SC_MONITORPOWER 0xF170 -!define SC_CONTEXTHELP 0xF180 -!define SC_SEPARATOR 0xF00F -!endif - -!define IDC_ARROW 32512 -!define IDC_IBEAM 32513 -!define IDC_WAIT 32514 -!define IDC_CROSS 32515 -!define IDC_UPARROW 32516 -!define IDC_SIZENWSE 32642 -!define IDC_SIZENESW 32643 -!define IDC_SIZEWE 32644 -!define IDC_SIZENS 32645 -!define IDC_SIZEALL 32646 -!define IDC_NO 32648 -!define IDC_HAND 32649 -!define IDC_APPSTARTING 32650 -!define IDC_HELP 32651 - -/* in nsDialogs.nsh... -!define IMAGE_BITMAP 0 -!define IMAGE_ICON 1 -!define IMAGE_CURSOR 2*/ - -/* in nsDialogs.nsh... -!define LR_DEFAULTCOLOR 0x0000 -!define LR_MONOCHROME 0x0001 -!define LR_COLOR 0x0002 -!define LR_COPYRETURNORG 0x0004 -!define LR_COPYDELETEORG 0x0008 -!define LR_LOADFROMFILE 0x0010 -!define LR_LOADTRANSPARENT 0x0020 -!define LR_DEFAULTSIZE 0x0040 -!define LR_VGACOLOR 0x0080 -!define LR_LOADMAP3DCOLORS 0x1000 -!define LR_CREATEDIBSECTION 0x2000 -!define LR_COPYFROMRESOURCE 0x4000 -!define LR_SHARED 0x8000*/ - -!define GA_PARENT 1 -!define GA_ROOT 2 -!define GA_ROOTOWNER 3 - -!endif /* __WIN_MS_NOUSER & __WIN_NOINC_WINUSER */ -!verbose pop -!endif /* __WIN_WINUSER__INC */ \ No newline at end of file diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/WinCore.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/WinCore.nsh deleted file mode 100644 index 6767847fe..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/WinCore.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/WinMessages.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/WinMessages.nsh deleted file mode 100644 index cbfb54a8b..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/WinMessages.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/WinVer.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/WinVer.nsh deleted file mode 100644 index 91640c6e7..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/WinVer.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/WordFunc.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/WordFunc.nsh deleted file mode 100644 index 875a00b65..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/WordFunc.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/dialogs.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/dialogs.nsh deleted file mode 100644 index 555b0226d..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/dialogs.nsh +++ /dev/null @@ -1,56 +0,0 @@ -# "Dialogs header file by Joel Almeida Garca" - -#include once this header file -!ifndef DIALOGS_NSH - !define DIALOGS_NSH - !verbose push - !verbose 3 - - !ifndef LOGICLIB - #Add logic library - !include "LogicLib.nsh" - !endif - - # Global stuff - !define ISTRUE 1 - !define ISFALSE 0 - !define NULL "" - - # Returning Vars - !define VAR_0 0 # $0 - !define VAR_1 1 # $1 - !define VAR_2 2 # $2 - !define VAR_3 3 # $3 - !define VAR_4 4 # $4 - !define VAR_5 5 # $5 - !define VAR_6 6 # $6 - !define VAR_7 7 # $7 - !define VAR_8 8 # $8 - !define VAR_9 9 # $9 - !define VAR_R0 10 # $R0 - !define VAR_R1 11 # $R1 - !define VAR_R2 12 # $R2 - !define VAR_R3 13 # $R3 - !define VAR_R4 14 # $R4 - !define VAR_R5 15 # $R5 - !define VAR_R6 16 # $R6 - !define VAR_R7 17 # $R7 - !define VAR_R8 18 # $R8 - !define VAR_R9 19 # $R9 - !define VAR_CMDLINE 20 # $CMDLINE - !define VAR_INSTDIR 21 # $INSTDIR - !define VAR_OUTDIR 22 # $OUTDIR - !define VAR_EXEDIR 23 # $EXEDIR - !define VAR_LANG 24 # $LANGUAGE - - # Function prototypes - !define OpenBox 'dialogsEx::FileBox ""' - !define SaveBox 'dialogsEx::FileBox "1"' - !define ClassicFolderBox 'dialogsEx::FolderBox ""' - !define ModernFolderBox 'dialogsEx::FolderBox "1"' - !define InputTextBox 'dialogsEx::InputBox ""' - !define InputPwdBox 'dialogsEx::InputBox "1"' - !define InputRegBox 'dialogsEx::InputRegBox' - - !verbose pop -!endif \ No newline at end of file diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/nsDialogs.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/nsDialogs.nsh deleted file mode 100644 index ef4e17861..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/nsDialogs.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/x64.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/x64.nsh deleted file mode 100644 index 5f78a1d91..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Include/x64.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/AdvSplash.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/AdvSplash.dll deleted file mode 100644 index 9d40006fb..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/AdvSplash.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/Banner.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/Banner.dll deleted file mode 100644 index 7cbc3a1d9..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/Banner.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/BgImage.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/BgImage.dll deleted file mode 100644 index d79334f97..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/BgImage.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/Dialer.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/Dialer.dll deleted file mode 100644 index 4d163e1fd..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/Dialer.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/EmbeddedLists.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/EmbeddedLists.dll deleted file mode 100644 index 5a27af02b..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/EmbeddedLists.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/EnumINI.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/EnumINI.dll deleted file mode 100644 index 168cc5053..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/EnumINI.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/FindProcDLL.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/FindProcDLL.dll deleted file mode 100644 index 22c8398f1..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/FindProcDLL.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/InstallOptions.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/InstallOptions.dll deleted file mode 100644 index b6de1b684..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/InstallOptions.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/KillProcDLL.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/KillProcDLL.dll deleted file mode 100644 index 8119afa2b..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/KillProcDLL.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/LangDLL.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/LangDLL.dll deleted file mode 100644 index 35b0b4611..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/LangDLL.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/Math.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/Math.dll deleted file mode 100644 index d5a6d4e52..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/Math.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/MoreInfo.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/MoreInfo.dll deleted file mode 100644 index 274d98198..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/MoreInfo.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/NSISdl.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/NSISdl.dll deleted file mode 100644 index 5747dc6b6..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/NSISdl.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/RealProgress.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/RealProgress.dll deleted file mode 100644 index 12292166b..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/RealProgress.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/SelfDel.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/SelfDel.dll deleted file mode 100644 index 3cb288c2d..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/SelfDel.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/Splash.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/Splash.dll deleted file mode 100644 index bd1ec597c..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/Splash.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/StartMenu.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/StartMenu.dll deleted file mode 100644 index 0f69f3a98..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/StartMenu.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/System.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/System.dll deleted file mode 100644 index 19a876efe..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/System.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/TypeLib.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/TypeLib.dll deleted file mode 100644 index b4440fdf3..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/TypeLib.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/UserInfo.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/UserInfo.dll deleted file mode 100644 index 586871cdb..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/UserInfo.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/VPatch.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/VPatch.dll deleted file mode 100644 index af1b4e69f..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/VPatch.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/dialogsEx.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/dialogsEx.dll deleted file mode 100644 index 0a582159b..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/dialogsEx.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/execDos.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/execDos.dll deleted file mode 100644 index 0234253e6..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/execDos.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/inetc.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/inetc.dll deleted file mode 100644 index f35cd6a08..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/inetc.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/md5dll.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/md5dll.dll deleted file mode 100644 index d265788b1..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/md5dll.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/newadvsplash.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/newadvsplash.dll deleted file mode 100644 index 5e58c3917..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/newadvsplash.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/newtextreplace.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/newtextreplace.dll deleted file mode 100644 index 206dc2c64..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/newtextreplace.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/nsDialogs.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/nsDialogs.dll deleted file mode 100644 index 1f142a27b..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/nsDialogs.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/nsExec.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/nsExec.dll deleted file mode 100644 index 788bfe377..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/nsExec.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/registry.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/registry.dll deleted file mode 100644 index 180598051..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/registry.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/w7tbp.dll b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/w7tbp.dll deleted file mode 100644 index 0b71718ce..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Plugins/w7tbp.dll and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Stubs/bzip2 b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Stubs/bzip2 deleted file mode 100644 index 0a63d0556..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Stubs/bzip2 and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Stubs/bzip2_solid b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Stubs/bzip2_solid deleted file mode 100644 index 313d679f6..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Stubs/bzip2_solid and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Stubs/lzma b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Stubs/lzma deleted file mode 100644 index a4038f9fa..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Stubs/lzma and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Stubs/lzma_solid b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Stubs/lzma_solid deleted file mode 100644 index f992aec84..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Stubs/lzma_solid and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Stubs/uninst b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Stubs/uninst deleted file mode 100644 index 90d7d2252..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Stubs/uninst and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Stubs/zlib b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Stubs/zlib deleted file mode 100644 index ad55bb1dd..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Stubs/zlib and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Stubs/zlib_solid b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Stubs/zlib_solid deleted file mode 100644 index 5855cff84..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/Stubs/zlib_solid and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/makensis.exe b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/makensis.exe deleted file mode 100644 index 6845bb2ca..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/makensis.exe and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/nsisconf.nsh b/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/nsisconf.nsh deleted file mode 100644 index ded5b9aa3..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/App/nsis/nsisconf.nsh and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/Data/settings.ini b/src/Greenshot/tools/PortableApps.comInstaller/Data/settings.ini deleted file mode 100644 index 8a4e3981d..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/Data/settings.ini +++ /dev/null @@ -1 +0,0 @@ -[InstallerWizard] diff --git a/src/Greenshot/tools/PortableApps.comInstaller/Other/Help/images/donation_button.png b/src/Greenshot/tools/PortableApps.comInstaller/Other/Help/images/donation_button.png deleted file mode 100644 index f19dea7a1..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/Other/Help/images/donation_button.png and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/Other/Help/images/favicon.ico b/src/Greenshot/tools/PortableApps.comInstaller/Other/Help/images/favicon.ico deleted file mode 100644 index ed849b2de..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/Other/Help/images/favicon.ico and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/Other/Help/images/help_background_footer.png b/src/Greenshot/tools/PortableApps.comInstaller/Other/Help/images/help_background_footer.png deleted file mode 100644 index 5ebdc028c..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/Other/Help/images/help_background_footer.png and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/Other/Help/images/help_background_header.png b/src/Greenshot/tools/PortableApps.comInstaller/Other/Help/images/help_background_header.png deleted file mode 100644 index cf1ebf762..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/Other/Help/images/help_background_header.png and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/Other/Help/images/help_logo_top.png b/src/Greenshot/tools/PortableApps.comInstaller/Other/Help/images/help_logo_top.png deleted file mode 100644 index 1a705050e..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/Other/Help/images/help_logo_top.png and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/InstallerWizard.nsi b/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/InstallerWizard.nsi deleted file mode 100644 index 6432f87a6..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/InstallerWizard.nsi +++ /dev/null @@ -1,1141 +0,0 @@ -;Copyright (C) 2006-2013 John T. Haller - -;Website: http://PortableApps.com/Installer - -;This software is OSI Certified Open Source Software. -;OSI Certified is a certification mark of the Open Source Initiative. - -;This program is free software; you can redistribute it and/or -;modify it under the terms of the GNU General Public License -;as published by the Free Software Foundation; either version 2 -;of the License, or (at your option) any later version. - -;This program is distributed in the hope that it will be useful, -;but WITHOUT ANY WARRANTY; without even the implied warranty of -;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;GNU General Public License for more details. - -;You should have received a copy of the GNU General Public License -;along with this program; if not, write to the Free Software -;Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -!define APPNAME "PortableApps.com Installer" -!define VER "3.0.6.0" -!define WEBSITE "PortableApps.com/Installer" -!define FRIENDLYVER "3.0.6" -!define PORTABLEAPPS.COMFORMATVERSION "3.0" - -;=== Program Details -Name "${APPNAME}" -OutFile "..\..\PortableApps.comInstaller.exe" -Caption "${APPNAME}" -VIProductVersion "${VER}" -VIAddVersionKey ProductName "${APPNAME}" -VIAddVersionKey Comments "For additional details, visit ${WEBSITE}" -VIAddVersionKey CompanyName "PortableApps.com" -VIAddVersionKey LegalCopyright "John T. Haller" -VIAddVersionKey FileDescription "${APPNAME}" -VIAddVersionKey FileVersion "${VER}" -VIAddVersionKey ProductVersion "${VER}" -VIAddVersionKey InternalName "${APPNAME}" -VIAddVersionKey LegalTrademarks "PortableApps.com is a trademark of Rare Ideas, LLC." -VIAddVersionKey OriginalFilename "PortableApps.comInstaller.exe" - -;=== Runtime Switches -CRCCheck On -RequestExecutionLevel user - -; Best Compression -SetCompress Auto -SetCompressor /SOLID lzma -SetCompressorDictSize 32 -SetDatablockOptimize On - -;=== Include -;(Standard) -!include WordFunc.nsh -!insertmacro WordReplace -!include FileFunc.nsh -!insertmacro GetFileName -!insertmacro GetParameters -!insertmacro GetParent -!insertmacro GetSize -!include LogicLib.nsh -!include MUI.nsh - -;(Addons) -!include dialogs.nsh - -;(Custom) -!include MoveFiles.nsh -!include ReadINIStrWithDefault.nsh -!include TBProgress.nsh - -;=== Icon & Stye === -!define MUI_ICON "..\..\App\AppInfo\appicon.ico" -!define MUI_HEADERIMAGE -!define MUI_HEADERIMAGE_RIGHT -!define MUI_HEADERIMAGE_BITMAP header.bmp -!define MUI_HEADERIMAGE_BITMAP_RTL header_rtl.bmp - -BrandingText "PortableApps.com®" -InstallButtonText "Go >" -ShowInstDetails show -SubCaption 3 " | Processing Files" - -;=== Variables -Var FINISHTEXT -Var FINISHTITLE -Var INSTALLAPPDIRECTORY -Var SKIPWELCOMEPAGE -Var AUTOMATICCOMPILE - -Var INCLUDESOURCE -Var PORTABLEAPPNAME -Var PORTABLEAPPNAMEDOUBLEDAMPERSANDS -Var PLUGINNAME -Var APPID -Var SHORTNAME -Var APPLANGUAGE -Var ALLLANGUAGES -Var INSTALLERFILENAME -Var OPTIONALCOMPONENTS -Var DISPLAYVERSION -Var COMMONFILESPLUGIN -Var USEEXTRACTEDICON -Var INTERACTIVEMODE -Var EULAVERSION - -Var ERROROCCURED - -Var AppInfoINIFile -Var InstallerINIFile -Var PluginInstaller -Var OptionalSectionSelectedInstallType - -;=== Pages -!define MUI_WELCOMEFINISHPAGE_BITMAP welcomefinish.bmp -!define MUI_WELCOMEPAGE_TITLE "PortableApps.com Installer ${FRIENDLYVER}" -!define MUI_WELCOMEPAGE_TEXT "Welcome to the PortableApps.com Installer.\r\n\r\nThis utility allows you to create a PortableApps.com Installer package for an app in PortableApps.com Format. Just click next and select the application to package.\r\n\r\nLICENSE: The PortableApps.com Installer can be used with open source and freeware apps provided the installer is unmodified and the app adheres to the current PortableApps.com Format Specification as published at PortableApps.com/development. It may also be used with commercial software by contacting PortableApps.com." -!define MUI_PAGE_CUSTOMFUNCTION_PRE ShowWelcomeWindow -!insertmacro MUI_PAGE_WELCOME -Page custom ShowOptionsWindow LeaveOptionsWindow " | Portable App Folder Selection" -!insertmacro MUI_PAGE_INSTFILES -!define MUI_PAGE_CUSTOMFUNCTION_PRE ShowFinishPage -!define MUI_FINISHPAGE_TITLE "$FINISHTITLE" -!define MUI_FINISHPAGE_TEXT "$FINISHTEXT" -!define MUI_FINISHPAGE_RUN -!define MUI_FINISHPAGE_RUN_NOTCHECKED -!define MUI_FINISHPAGE_RUN_TEXT "Test Installer" -!define MUI_FINISHPAGE_RUN_FUNCTION "RunOnFinish" -!define MUI_FINISHPAGE_SHOWREADME "$EXEDIR\Data\PortableApps.comInstallerLog.txt" -!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED -!define MUI_FINISHPAGE_SHOWREADME_TEXT "View log file" -!define MUI_FINISHPAGE_CANCEL_ENABLED -!insertmacro MUI_PAGE_FINISH - -;=== Languages -!insertmacro MUI_LANGUAGE "English" - -Function .onInit - !insertmacro MUI_INSTALLOPTIONS_EXTRACT "InstallerWizardForm.ini" - - ;=== Check for settings.ini - ${IfNot} ${FileExists} $EXEDIR\Data\settings.ini - CreateDirectory $EXEDIR\Data - CopyFiles /SILENT $EXEDIR\App\DefaultData\settings.ini $EXEDIR\Data - ${EndIf} - - ; Get settings - ReadINIStr $SKIPWELCOMEPAGE "$EXEDIR\Data\settings.ini" "InstallerWizard" "SkipWelcomePage" - ReadINIStr $INSTALLAPPDIRECTORY "$EXEDIR\Data\settings.ini" "InstallerWizard" "INSTALLAPPDIRECTORY" - - ${GetParameters} $R0 - ${If} $R0 != "" - StrCpy $INSTALLAPPDIRECTORY $R0 - StrCpy $SKIPWELCOMEPAGE "true" - StrCpy $AUTOMATICCOMPILE "true" - ;Strip quotes from $INSTALLAPPDIRECTORY - StrCpy $R0 $INSTALLAPPDIRECTORY 1 - ${If} $R0 == `"` - StrCpy $INSTALLAPPDIRECTORY $INSTALLAPPDIRECTORY "" 1 - StrCpy $INSTALLAPPDIRECTORY $INSTALLAPPDIRECTORY -1 - ${EndIf} - ${EndIf} - - ;=== Pre-Fill Path with Directory - WriteINIStr $PLUGINSDIR\InstallerWizardForm.ini "Field 2" "State" "$INSTALLAPPDIRECTORY" -FunctionEnd - -Function ShowWelcomeWindow - ${If} $SKIPWELCOMEPAGE == "true" - Abort - ${EndIf} -FunctionEnd - -Function ShowOptionsWindow - !insertmacro MUI_HEADER_TEXT "PortableApps.com Installer ${FRIENDLYVER}" "the open portable software standard" - ${If} $AUTOMATICCOMPILE == "true" - ${If} ${FileExists} "$INSTALLAPPDIRECTORY\App\AppInfo\appinfo.ini" - StrCpy $AppInfoINIFile "$INSTALLAPPDIRECTORY\App\AppInfo\appinfo.ini" - StrCpy $InstallerINIFile "$INSTALLAPPDIRECTORY\App\AppInfo\installer.ini" - StrCpy $PluginInstaller "false" - Abort - ${ElseIf} ${FileExists} "$INSTALLAPPDIRECTORY\App\AppInfo\plugininstaller.ini" - StrCpy $AppInfoINIFile "$INSTALLAPPDIRECTORY\App\AppInfo\plugininstaller.ini" - StrCpy $InstallerINIFile "$INSTALLAPPDIRECTORY\App\AppInfo\plugininstaller.ini" - StrCpy $PluginInstaller "true" - Abort - ${ElseIf} ${FileExists} "$INSTALLAPPDIRECTORY\Other\Source\plugininstaller.ini" - CreateDirectory "$INSTALLAPPDIRECTORY\App" - CreateDirectory "$INSTALLAPPDIRECTORY\App\AppInfo" - Rename "$INSTALLAPPDIRECTORY\Other\Source\plugininstaller.ini" "$INSTALLAPPDIRECTORY\App\AppInfo\plugininstaller.ini" - StrCpy $AppInfoINIFile "$INSTALLAPPDIRECTORY\App\AppInfo\plugininstaller.ini" - StrCpy $InstallerINIFile "$INSTALLAPPDIRECTORY\App\AppInfo\plugininstaller.ini" - StrCpy $PluginInstaller "true" - Abort - ${EndIf} - ${EndIf} - ${ReadINIStrWithDefault} $INTERACTIVEMODE "$EXEDIR\Data\settings.ini" "InstallerWizard" "InteractiveMode" "1" - WriteINIStr "$PLUGINSDIR\InstallerWizardForm.ini" "Field 3" "State" "$INTERACTIVEMODE" - InstallOptions::InitDialog /NOUNLOAD "$PLUGINSDIR\InstallerWizardForm.ini" - Pop $0 - InstallOptions::Show -FunctionEnd - -Function LeaveOptionsWindow - ;=== Blank - ReadINIStr $INSTALLAPPDIRECTORY $PLUGINSDIR\InstallerWizardForm.ini "Field 2" "State" - ReadINIStr $INTERACTIVEMODE "$PLUGINSDIR\InstallerWizardForm.ini" "Field 3" "State" - - StrCmp $INSTALLAPPDIRECTORY "" NoInstallAppDirectoryError - ${If} ${FileExists} "$INSTALLAPPDIRECTORY\App\AppInfo\appinfo.ini" - StrCpy $AppInfoINIFile "$INSTALLAPPDIRECTORY\App\AppInfo\appinfo.ini" - StrCpy $InstallerINIFile "$INSTALLAPPDIRECTORY\App\AppInfo\installer.ini" - StrCpy $PluginInstaller "false" - ${ElseIf} ${FileExists} "$INSTALLAPPDIRECTORY\App\AppInfo\plugininstaller.ini" - StrCpy $AppInfoINIFile "$INSTALLAPPDIRECTORY\App\AppInfo\plugininstaller.ini" - StrCpy $InstallerINIFile "$INSTALLAPPDIRECTORY\App\AppInfo\plugininstaller.ini" - StrCpy $PluginInstaller "true" - ${ElseIf} ${FileExists} "$INSTALLAPPDIRECTORY\Other\Source\plugininstaller.ini" - CreateDirectory "$INSTALLAPPDIRECTORY\App" - CreateDirectory "$INSTALLAPPDIRECTORY\App\AppInfo" - Rename "$INSTALLAPPDIRECTORY\Other\Source\plugininstaller.ini" "$INSTALLAPPDIRECTORY\App\AppInfo\plugininstaller.ini" - StrCpy $AppInfoINIFile "$INSTALLAPPDIRECTORY\App\AppInfo\plugininstaller.ini" - StrCpy $InstallerINIFile "$INSTALLAPPDIRECTORY\App\AppInfo\plugininstaller.ini" - StrCpy $PluginInstaller "true" - ${ElseIf} $INTERACTIVEMODE = 1 - ; No AppInfo found - ${IfNot} ${FileExists} "$INSTALLAPPDIRECTORY\*.exe" - ${AndIf} $PluginInstaller != "true" - Goto NoInstallAppDirectoryError - ${EndIf} - - MessageBox MB_ICONQUESTION|MB_YESNO "The app does not appear to have the necessary files within the App\AppInfo directory required by PortableApps.com Format. Would you like to create the settings interactively and use a set of default icons for now for testing?" IDNO NoInstallAppDirectoryError - - ;Find EXE file - FindFirst $2 $3 "$INSTALLAPPDIRECTORY\*.exe" - StrCpy $4 0 - - ${DoWhile} $3 != "" - StrCpy $5 $3 - IntOp $4 $4 + 1 - FindNext $2 $3 - ${Loop} - FindClose $2 - - ${If} $4 > 1 - MessageBox MB_OK|MB_ICONEXCLAMATION `Multiple EXEs were found in the directory you selected. The PortableApps.com Installer can only generate default information for applications with a single EXE. Please review the information at PortableApps.com/development for details on creating the configuration files.` - Abort - ${EndIf} - - CreateDirectory "$INSTALLAPPDIRECTORY\App\AppInfo" - CopyFiles /SILENT "$EXEDIR\App\default_bits\appicon_16.png" "$INSTALLAPPDIRECTORY\App\AppInfo" - CopyFiles /SILENT "$EXEDIR\App\default_bits\appicon_32.png" "$INSTALLAPPDIRECTORY\App\AppInfo" - CopyFiles /SILENT "$EXEDIR\App\default_bits\appicon.ico" "$INSTALLAPPDIRECTORY\App\AppInfo" - CopyFiles /SILENT "$EXEDIR\App\default_bits\appinfo.ini" "$INSTALLAPPDIRECTORY\App\AppInfo" - WriteINIStr "$INSTALLAPPDIRECTORY\App\AppInfo\appinfo.ini" "Format" "Version" "${PORTABLEAPPS.COMFORMATVERSION}" - WriteINIStr "$INSTALLAPPDIRECTORY\App\AppInfo\appinfo.ini" "Control" "Start" "$5" - - MessageBox MB_ICONINFORMATION "Before releasing this application, please be sure to create a set of proper icons in App\AppInfo." - ${Else} - Goto NoInstallAppDirectoryError - ${EndIf} - - ; Store settings - WriteINIStr "$EXEDIR\Data\settings.ini" "InstallerWizard" "INSTALLAPPDIRECTORY" $INSTALLAPPDIRECTORY - WriteINIStr "$EXEDIR\Data\settings.ini" "InstallerWizard" "InteractiveMode" $INTERACTIVEMODE - Goto EndLeaveOptionsWindow - - NoInstallAppDirectoryError: - MessageBox MB_OK|MB_ICONEXCLAMATION `Please select a valid portable app's base directory to create an installer for.` - Abort - - EndLeaveOptionsWindow: -FunctionEnd - -!define SetIndividualLanguage "!insertmacro SetIndividualLanguage" - -!define WriteConfig "!insertmacro WriteConfig" - -!macro WriteConfig Variable Value - FileWriteUTF16LE $0 `!define ${Variable} "${Value}"$\r$\n` -!macroend - -!macro SetIndividualLanguage IndividualLanguage - StrCpy $2 "${IndividualLanguage}" - ${ReadINIStrWithDefault} $1 $InstallerINIFile "Languages" "$2" "false" - ${If} $1 == "true" - ${OrIf} $ALLLANGUAGES == "true" - ${WriteConfig} USES_$2 "true" - ${EndIf} -!macroend - -!define WriteErrorToLog "!insertmacro WriteErrorToLog" - -!macro WriteErrorToLog ErrorToWrite - FileOpen $9 "$EXEDIR\Data\PortableApps.comInstallerLog.txt" a - FileSeek $9 0 END - FileWriteUTF16LE $9 `ERROR: ${ErrorToWrite}$\r$\n` - FileClose $9 - StrCpy $ERROROCCURED "true" -!macroend - -!define TransferInstallerINIToConfig "!insertmacro TransferInstallerINIToConfig" - -!macro TransferInstallerINIToConfig Section Key Required - ${ReadINIStrWithDefault} $1 $InstallerINIFile ${Section} ${Key} "" - ${If} $1 != "" - ${WriteConfig} ${Key} "$1" - !if ${Required} == required - ${Else} - ${WriteErrorToLog} "Installer.ini - ${Section} - ${Key} is missing." - !endif - ${EndIf} -!macroend - -Section Main - !insertmacro MUI_HEADER_TEXT "PortableApps.com Installer ${FRIENDLYVER}" "the open portable software standard" - ${TBProgress} 33 - SetDetailsPrint ListOnly - DetailPrint "App: $INSTALLAPPDIRECTORY" - DetailPrint " " - ;FindWindow $0 "#32770" "" $HWNDPARENT - ;FindWindow $1 "msctls_progress32" "" $0 - - ;DetailPrint "Hanlde: $1" - RealProgress::SetProgress /NOUNLOAD 1 - RealProgress::GradualProgress /NOUNLOAD 2 1 90 "Processing complete." - DetailPrint "Generating installer code..." - SetDetailsPrint none - - ;Ensure the source directory exists - CreateDirectory "$INSTALLAPPDIRECTORY\Other\Source" - - ;Remove any existing installer files (leaving custom intact) - RMDir /r "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerLanguages" - Delete "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstaller.bmp" - Delete "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstaller.ico" - Delete "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstaller.nsi" - Delete "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerConfig-EXAMPLE.nsh" - Delete "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerConfig.nsh" - Delete "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerDumpLogToFile.nsh" - Delete "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerHeader.bmp" - Delete "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerMoveFiles.nsh" - Delete "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerStrRep.nsh" - Delete "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerHeaderRTL.bmp" - Delete "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerPlugin.nsi" - Delete "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerPluginConfig.nsh" - Delete "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerTBProgress.nsh" - - ;Copy the current PortableApps.com Installer in - CopyFiles /SILENT "$EXEDIR\App\installer\*.*" "$INSTALLAPPDIRECTORY\Other\Source" - ${If} $PluginInstaller == "true" - Rename "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstaller.nsi" "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerPlugin.nsi" - Rename "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerConfig.nsh" "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerPluginConfig.nsh" - ${EndIf} - - ;Generate the configuration file - Delete "$EXEDIR\Data\PortableApps.comInstallerLog.txt" - - ;Determine icon type - ${ReadINIStrWithDefault} $1 $AppInfoINIFile "Control" "ExtractIcon" "" - ${If} $1 != "" - StrCpy $USEEXTRACTEDICON "true" - ${EndIf} - - ;Check for content - ${IfNot} ${FileExists} "$INSTALLAPPDIRECTORY\*.exe" - ${AndIf} $PluginInstaller != "true" - ${WriteErrorToLog} "No EXE in $INSTALLAPPDIRECTORY." - ${EndIf} - - ${IfNot} ${FileExists} "$INSTALLAPPDIRECTORY\help.html" - ${AndIf} $PluginInstaller != "true" - ${WriteErrorToLog} "No help.html in $INSTALLAPPDIRECTORY." - ${EndIf} - - !macro AppInfoFileMissingAskInsertDefault FileName FileDescription - ${IfNot} ${FileExists} "$INSTALLAPPDIRECTORY\App\AppInfo\${FileName}" - ${AndIf} $PluginInstaller != "true" - ${If} $USEEXTRACTEDICON == "true" - !if ${FileName} == appicon.ico - ;Copy the default icon in (appicon_*.png don't get included) - CopyFiles /SILENT "$EXEDIR\App\default_bits\${FileName}" "$INSTALLAPPDIRECTORY\App\AppInfo" - !endif - ${ElseIf} $INTERACTIVEMODE = 1 - ${AndIf} ${Cmd} ${|} MessageBox MB_ICONQUESTION|MB_YESNO "The app does not have ${FileDescription} (${FileName}) in the App\AppInfo directory. Would you like to use a default icon for test purposes for now?" IDYES ${|} - CopyFiles /SILENT "$EXEDIR\App\default_bits\${FileName}" "$INSTALLAPPDIRECTORY\App\AppInfo" - MessageBox MB_ICONINFORMATION "Before releasing this application, please be sure to create a proper ${FileName} app icon in App\AppInfo." - ${Else} - ${WriteErrorToLog} "No ${FileName} in $INSTALLAPPDIRECTORY\App\AppInfo." - ${EndIf} - ${EndIf} - !macroend - - !insertmacro AppInfoFileMissingAskInsertDefault appicon_16.png "a 16x16 PNG icon" - !insertmacro AppInfoFileMissingAskInsertDefault appicon_32.png "a 32x32 PNG icon" - !insertmacro AppInfoFileMissingAskInsertDefault appicon.ico "an icon" - - ${If} $PluginInstaller == "true" - FileOpen $0 "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerPluginConfig.nsh" a - ${Else} - FileOpen $0 "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerConfig.nsh" a - ${EndIf} - FileSeek $0 0 END - FileWriteUTF16LE $0 `;Code generated by PortableApps.com Installer ${FRIENDLYVER}. DO NOT EDIT.$\r$\n$\r$\n` - - ;PortableApps.comFormat Version - ${ReadINIStrWithDefault} $1 $AppInfoINIFile "Format" "Version" "" - ${If} $1 == "0.9.8" - ;Preserve old installer config in case it's needed - Rename "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerConfig.nsh" "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerConfigOld.nsh" - - ;Autogenerate App ID is handled normally when interactive - - ;Language selection is handled normally when in interactive - - ;This brings it up to 0.90 - StrCpy $1 "0.90" - ${EndIf} - ${If} $1 == "0.90" - ;0.90 to 0.91 needs no changes, so it brings it to 0.91 - StrCpy $1 "0.91" - ${EndIf} - ${If} $1 == "0.91" - ;0.91 to 1.0 needs no changes, so it brings it to 1.0 - StrCpy $1 "1.0" - ${EndIf} - ${If} $1 == "1.0" - ${OrIf} $1 == "2.0" - ;1.0 to 2.0 needs no changes, so it brings it to 2.0 - WriteINIStr $AppInfoINIFile "Format" "Version" "${PORTABLEAPPS.COMFORMATVERSION}" - ${EndIf} - - !macro GetValueFromAppInfo Section Key Prompt DefaultValue Variable Required - ReadINIStr ${Variable} $AppInfoINIFile ${Section} ${Key} - ${If} ${Variable} == "" - ${If} $INTERACTIVEMODE = 1 - ${InputTextBox} "${APPNAME}" "${Prompt}" "${DefaultValue}" "255" "OK" "Cancel" 9 - ${If} $9 != "" - StrCpy ${Variable} $9 - WriteINIStr $AppInfoINIFile ${Section} ${Key} $9 - !if ${Required} == required - ${Else} - ${WriteErrorToLog} "AppInfo.ini - ${Section} - ${Key} is missing." - !endif - ${EndIf} - !if ${Required} == required - ${Else} - ${WriteErrorToLog} "AppInfo.ini - ${Section} - ${Key} is missing." - !endif - ${EndIf} - ${EndIf} - !macroend - - ;App Name - !insertmacro GetValueFromAppInfo \ - Details \ - Name \ - "Enter the portable app's name (e.g. FileZilla Portable):" \ - "AppName Portable" \ - $PORTABLEAPPNAME \ - required - - ${If} $PluginInstaller != "true" - ${WriteConfig} PORTABLEAPPNAME "$PORTABLEAPPNAME" - ${WordReplace} $PORTABLEAPPNAME "&" "~~~@@@~~~" + $PORTABLEAPPNAMEDOUBLEDAMPERSANDS - ${WordReplace} $PORTABLEAPPNAMEDOUBLEDAMPERSANDS "~~~@@@~~~" "&&" + $PORTABLEAPPNAMEDOUBLEDAMPERSANDS - ${WriteConfig} PORTABLEAPPNAMEDOUBLEDAMPERSANDS "$PORTABLEAPPNAMEDOUBLEDAMPERSANDS" - ${EndIf} - - ;Plugin Name - ${If} $PluginInstaller == "true" - !insertmacro GetValueFromAppInfo \ - Details \ - PluginName \ - "Enter the plugin's name (e.g. Acme Plugin):" \ - "Plugin" \ - $PLUGINNAME \ - required - - ${WriteConfig} PLUGINNAME "$PLUGINNAME" - ${WriteConfig} PORTABLEAPPNAME "$PLUGINNAME" - ${WordReplace} $PLUGINNAME "&" "~~~@@@~~~" + $PORTABLEAPPNAMEDOUBLEDAMPERSANDS - ${WordReplace} $PORTABLEAPPNAMEDOUBLEDAMPERSANDS "~~~@@@~~~" "&&" + $PORTABLEAPPNAMEDOUBLEDAMPERSANDS - ${WriteConfig} PORTABLEAPPNAMEDOUBLEDAMPERSANDS "$PORTABLEAPPNAMEDOUBLEDAMPERSANDS" - ${ReadINIStrWithDefault} $1 $AppInfoINIFile "Details" "PluginType" "App" - ${If} $1 == "CommonFiles" - StrCpy $COMMONFILESPLUGIN "true" - ${WriteConfig} COMMONFILESPLUGIN "true" - ${EndIf} - ${EndIf} - - - ;App ID - ${WordReplace} $PORTABLEAPPNAME " " "" + $8 - ${WordReplace} $8 " " "_" + $8 - ${WordReplace} $8 "(" "" + $8 - ${WordReplace} $8 ")" "" + $8 - ${WordReplace} $8 "[" "" + $8 - ${WordReplace} $8 "]" "" + $8 - ${WordReplace} $8 "~" "-" + $8 - ${WordReplace} $8 "&" "+" + $8 - ${WordReplace} $8 "#" "+" + $8 - ${WordReplace} $8 "$\"" "-" + $8 - ${WordReplace} $8 "*" "+" + $8 - ${WordReplace} $8 "/" "_" + $8 - ${WordReplace} $8 "\" "_" + $8 - ${WordReplace} $8 ":" "." + $8 - ${WordReplace} $8 "<" "-" + $8 - ${WordReplace} $8 ">" "-" + $8 - ${WordReplace} $8 "?" "" + $8 - ${WordReplace} $8 "|" "-" + $8 - ${WordReplace} $8 "=" "-" + $8 - ${WordReplace} $8 "," "." + $8 - ${WordReplace} $8 ";" "." + $8 - !insertmacro GetValueFromAppInfo \ - Details \ - AppID \ - "Enter the portable app's App ID (usually the name with no spaces or symbols):" \ - $8 \ - $APPID \ - required - - ${WriteConfig} APPID "$APPID" - StrCpy $SHORTNAME $APPID - - ;Publisher - !insertmacro GetValueFromAppInfo \ - Details \ - Publisher \ - "Enter the publisher ('App Developer && PortableApps.com' for our apps):" \ - "No Publisher Specified" \ - $1 \ - optional - - ;Homepage - !insertmacro GetValueFromAppInfo \ - Details \ - Homepage \ - "Enter the app's homepage (e.g. portableapps.com):" \ - "example.com" \ - $1 \ - optional - - ;Category - !insertmacro GetValueFromAppInfo \ - Details \ - Category \ - "Enter the app's category *exactly* (Accessibility, Development, Education, Games, Graphics && Pictures, Internet, Music && Video, Office, Operating Systems, Utilities):" \ - "" \ - $1 \ - optional - - ;Description - !insertmacro GetValueFromAppInfo \ - Details \ - Description \ - "Enter the app's description (e.g. Simple FTP program.):" \ - "" \ - $1 \ - optional - - ;Language - !insertmacro GetValueFromAppInfo \ - Details \ - Language \ - "Enter the portable app's language as expected by NSIS (e.g. English or Multilingual):" \ - "English" \ - $APPLANGUAGE \ - optional - ${If} $APPLANGUAGE == "" - StrCpy $APPLANGUAGE "English" - ${EndIf} - - !macro GetLicenseValueFromAppInfo Key Prompt - ReadINIStr $1 $AppInfoINIFile License ${Key} - ${If} $1 == "" - ${If} $INTERACTIVEMODE = 1 - ${If} ${Cmd} ${|} MessageBox MB_ICONQUESTION|MB_YESNO "License Question: ${Prompt}" IDYES ${|} - StrCpy $1 "true" - ${Else} - StrCpy $1 "false" - ${EndIf} - WriteINIStr $AppInfoINIFile License ${Key} $1 - ${EndIf} - ${EndIf} - !macroend - - ;License - !insertmacro GetLicenseValueFromAppInfo Shareable "Can this application be legally shared from one user to another?" - !insertmacro GetLicenseValueFromAppInfo OpenSource "Is this application 100% open source under an OSI-approved license?" - !insertmacro GetLicenseValueFromAppInfo Freeware "Is this application freeware (it can be used without payment)?" - !insertmacro GetLicenseValueFromAppInfo CommercialUse "Can this app be used in a commercial environment?" - - ;EULA Version - ${ReadINIStrWithDefault} $EULAVERSION $AppInfoINIFile "License" "EULAVersion" "" - - ;Display Version - !insertmacro GetValueFromAppInfo \ - Version \ - DisplayVersion \ - "Enter the portable app's display version (e.g. 1.0 or 2.2 Beta 1):" \ - "0.1" \ - $DISPLAYVERSION \ - required - - ;Package Version - !insertmacro GetValueFromAppInfo \ - Version \ - PackageVersion \ - "Enter the portable app's package version as all numbers in the form X.X.X.X (e.g. 1.0.0.0 or 2.2.0.1):" \ - "0.1.0.0" \ - $1 \ - required - - ${WriteConfig} VERSION "$1" - - ;Filename should only be alpha, numbers as well as: + . - _ - ${If} $PluginInstaller == "true" - StrCpy $INSTALLERFILENAME "$PLUGINNAME_$DISPLAYVERSION" - ${Else} - StrCpy $INSTALLERFILENAME "$APPID_$DISPLAYVERSION" - ${EndIf} - - ${If} $APPLANGUAGE != "Multilingual" - StrCpy $INSTALLERFILENAME "$INSTALLERFILENAME_$APPLANGUAGE" - ${EndIf} - - ${WordReplace} $INSTALLERFILENAME " " "_" + $INSTALLERFILENAME - ${WordReplace} $INSTALLERFILENAME "(" "" + $INSTALLERFILENAME - ${WordReplace} $INSTALLERFILENAME ")" "" + $INSTALLERFILENAME - ${WordReplace} $INSTALLERFILENAME "[" "" + $INSTALLERFILENAME - ${WordReplace} $INSTALLERFILENAME "]" "" + $INSTALLERFILENAME - ${WordReplace} $INSTALLERFILENAME "~" "-" + $INSTALLERFILENAME - ${WordReplace} $INSTALLERFILENAME "&" "-" + $INSTALLERFILENAME - ${WordReplace} $INSTALLERFILENAME "#" "-" + $INSTALLERFILENAME - ${WordReplace} $INSTALLERFILENAME "$\"" "-" + $INSTALLERFILENAME - ${WordReplace} $INSTALLERFILENAME "*" "-" + $INSTALLERFILENAME - ${WordReplace} $INSTALLERFILENAME "/" "_" + $INSTALLERFILENAME - ${WordReplace} $INSTALLERFILENAME "\" "_" + $INSTALLERFILENAME - ${WordReplace} $INSTALLERFILENAME ":" "." + $INSTALLERFILENAME - ${WordReplace} $INSTALLERFILENAME "<" "-" + $INSTALLERFILENAME - ${WordReplace} $INSTALLERFILENAME ">" "-" + $INSTALLERFILENAME - ${WordReplace} $INSTALLERFILENAME "?" "" + $INSTALLERFILENAME - ${WordReplace} $INSTALLERFILENAME "|" "-" + $INSTALLERFILENAME - ${WordReplace} $INSTALLERFILENAME "=" "-" + $INSTALLERFILENAME - ${WordReplace} $INSTALLERFILENAME "," "." + $INSTALLERFILENAME - ${WordReplace} $INSTALLERFILENAME ";" "." + $INSTALLERFILENAME - ${WordReplace} $INSTALLERFILENAME "+" "Plus" + $INSTALLERFILENAME - - ${ReadINIStrWithDefault} $1 $InstallerINIFile "DownloadFiles" "DownloadURL" "" - ${If} $1 != "" - StrCpy $INSTALLERFILENAME "$INSTALLERFILENAME_online" - ${EndIf} - - ${WriteConfig} FILENAME "$INSTALLERFILENAME" - - - ${ReadINIStrWithDefault} $1 $AppInfoINIFile "Control" "Start" "" - ${If} $1 == "" - ${WriteErrorToLog} "AppInfo.ini - Control - Start is missing." - ${Else} - ${WriteConfig} FINISHPAGERUN "$1" - ${EndIf} - ${IfNot} ${FileExists} "$INSTALLAPPDIRECTORY\$1" - ${AndIf} $PluginInstaller != "true" - ${WriteErrorToLog} "AppInfo.ini - Control - Start=$1, file is missing." - ${EndIf} - - ${ReadINIStrWithDefault} $2 $InstallerINIFile "CheckRunning" "CloseEXE" "$1" - ${WriteConfig} CHECKRUNNING "$2" - ${ReadINIStrWithDefault} $1 $InstallerINIFile "CheckRunning" "CloseName" "$PORTABLEAPPNAME" - ${WriteConfig} CLOSENAME "$1" - ${ReadINIStrWithDefault} $1 $AppInfoINIFile "SpecialPaths" "Plugins" "NONE" - ${WriteConfig} ADDONSDIRECTORYPRESERVE "$1" - ${WriteConfig} INSTALLERCOMMENTS "For additional details, visit PortableApps.com" - ${ReadINIStrWithDefault} $1 $AppInfoINIFile "Details" "Trademarks" "" - ${If} $1 != "" - StrCpy $1 "$1. " - ${EndIf} - ${WriteConfig} INSTALLERADDITIONALTRADEMARKS "$1" - - ;Source Code - ${ReadINIStrWithDefault} $INCLUDESOURCE $InstallerINIFile "Source" "IncludeInstallerSource" "false" - ${If} $INCLUDESOURCE == "true" - ${WriteConfig} INCLUDEINSTALLERSOURCE "true" - ${EndIf} - - ;Languages - ${If} $APPLANGUAGE != "Multilingual" - ${WriteConfig} INSTALLERLANGUAGE "$APPLANGUAGE" - ${Else} - ${WriteConfig} INSTALLERMULTILINGUAL "true" - - ${ReadINIStrWithDefault} $1 $InstallerINIFile "Languages" "English" "" - ${If} $1 == "" - StrCpy $ALLLANGUAGES "true" - ${EndIf} - - ${SetIndividualLanguage} "ENGLISH" - ${SetIndividualLanguage} "ENGLISHGB" - ${SetIndividualLanguage} "AFRIKAANS" - ${SetIndividualLanguage} "ALBANIAN" - ${SetIndividualLanguage} "ARABIC" - ${SetIndividualLanguage} "ARMENIAN" - ${SetIndividualLanguage} "BASQUE" - ${SetIndividualLanguage} "BELARUSIAN" - ${SetIndividualLanguage} "BOSNIAN" - ${SetIndividualLanguage} "BRETON" - ${SetIndividualLanguage} "BULGARIAN" - ${SetIndividualLanguage} "CATALAN" - ${SetIndividualLanguage} "CROATIAN" - ${SetIndividualLanguage} "CZECH" - ${SetIndividualLanguage} "DANISH" - ${SetIndividualLanguage} "DUTCH" - ${SetIndividualLanguage} "ESPERANTO" - ${SetIndividualLanguage} "ESTONIAN" - ${SetIndividualLanguage} "FARSI" - ${SetIndividualLanguage} "FINNISH" - ${SetIndividualLanguage} "FRENCH" - ${SetIndividualLanguage} "GALICIAN" - ${SetIndividualLanguage} "GERMAN" - ${SetIndividualLanguage} "GREEK" - ${SetIndividualLanguage} "HEBREW" - ${SetIndividualLanguage} "HUNGARIAN" - ${SetIndividualLanguage} "ICELANDIC" - ${SetIndividualLanguage} "INDONESIAN" - ${SetIndividualLanguage} "IRISH" - ${SetIndividualLanguage} "ITALIAN" - ${SetIndividualLanguage} "JAPANESE" - ${SetIndividualLanguage} "KOREAN" - ${SetIndividualLanguage} "KURDISH" - ${SetIndividualLanguage} "LATVIAN" - ${SetIndividualLanguage} "LITHUANIAN" - ${SetIndividualLanguage} "LUXEMBOURGISH" - ${SetIndividualLanguage} "MACEDONIAN" - ${SetIndividualLanguage} "MALAY" - ${SetIndividualLanguage} "MONGOLIAN" - ${SetIndividualLanguage} "NORWEGIAN" - ${SetIndividualLanguage} "NORWEGIANNYNORSK" - ${SetIndividualLanguage} "POLISH" - ${SetIndividualLanguage} "PORTUGUESE" - ${SetIndividualLanguage} "PORTUGUESEBR" - ${SetIndividualLanguage} "ROMANIAN" - ${SetIndividualLanguage} "RUSSIAN" - ${SetIndividualLanguage} "SERBIAN" - ${SetIndividualLanguage} "SERBIANLATIN" - ${SetIndividualLanguage} "SIMPCHINESE" - ${SetIndividualLanguage} "SLOVAK" - ${SetIndividualLanguage} "SLOVENIAN" - ${SetIndividualLanguage} "SPANISH" - ${SetIndividualLanguage} "SPANISHINTERNATIONAL" - ${SetIndividualLanguage} "SWEDISH" - ${SetIndividualLanguage} "THAI" - ${SetIndividualLanguage} "TRADCHINESE" - ${SetIndividualLanguage} "TURKISH" - ${SetIndividualLanguage} "UKRAINIAN" - ${SetIndividualLanguage} "UZBEK" - ${SetIndividualLanguage} "WELSH" - ${EndIf} - - ;EULA - ${If} $PluginInstaller == "true" - ${If} ${FileExists} "$INSTALLAPPDIRECTORY\App\AppInfo\PluginEULA.txt" - ${WriteConfig} LICENSEAGREEMENT "PluginEULA.txt" - ${ElseIf} ${FileExists} "$INSTALLAPPDIRECTORY\Other\Source\PluginEULA.txt" - Rename "$INSTALLAPPDIRECTORY\Other\Source\PluginEULA.txt" "$INSTALLAPPDIRECTORY\App\AppInfo\PluginEULA.txt" - ${WriteConfig} LICENSEAGREEMENT "PluginEULA.txt" - ${ElseIf} ${FileExists} "$INSTALLAPPDIRECTORY\Other\Source\PluginEULA.rtf" - ${WriteErrorToLog} "EULA - Other\Source\PluginEULA.rtf is no longer supported. Use App\AppInfo\PluginEULA.txt instead." - ${ElseIf} ${FileExists} "$INSTALLAPPDIRECTORY\App\AppInfo\PluginEULA.rtf" - ${WriteErrorToLog} "EULA - App\AppInfo\PluginEULA.rtf is not supported. Use App\AppInfo\PluginEULA.txt instead." - ${EndIf} - ${Else} - ${If} ${FileExists} "$INSTALLAPPDIRECTORY\App\AppInfo\EULA.txt" - ${WriteConfig} LICENSEAGREEMENT "eula.txt" - ${ElseIf} ${FileExists} "$INSTALLAPPDIRECTORY\Other\Source\EULA.txt" - Rename "$INSTALLAPPDIRECTORY\Other\Source\EULA.txt" "$INSTALLAPPDIRECTORY\App\AppInfo\EULA.txt" - ${WriteConfig} LICENSEAGREEMENT "eula.txt" - ${ElseIf} ${FileExists} "$INSTALLAPPDIRECTORY\Other\Source\EULA.rtf" - ${WriteErrorToLog} "EULA - Other\Source\EULA.rtf is no longer supported. Use App\AppInfo\EULA.txt instead." - ${ElseIf} ${FileExists} "$INSTALLAPPDIRECTORY\App\AppInfo\EULA.rtf" - ${WriteErrorToLog} "EULA - App\AppInfo\EULA.rtf is not supported. Use App\AppInfo\EULA.txt instead." - ${EndIf} - ${EndIf} - - ${If} $EULAVERSION != "" - ${WriteConfig} EULAVERSION "$EULAVERSION" - ${EndIf} - - ;OptionalComponents - ${ReadINIStrWithDefault} $OPTIONALCOMPONENTS $InstallerINIFile "OptionalComponents" "OptionalComponents" "false" - ${If} $OPTIONALCOMPONENTS == "true" - ${ReadINIStrWithDefault} $1 $InstallerINIFile "OptionalComponents" "MainSectionTitle" "$PORTABLEAPPNAME (English) [Required]" - ${WriteConfig} MAINSECTIONTITLE "$1" - ${ReadINIStrWithDefault} $1 $InstallerINIFile "OptionalComponents" "MainSectionDescription" "Install the portable app" - ${WriteConfig} MAINSECTIONDESCRIPTION "$1" - ${ReadINIStrWithDefault} $1 $InstallerINIFile "OptionalComponents" "OptionalSectionTitle" "Additional Languages" - ${WriteConfig} OPTIONALSECTIONTITLE "$1" - ${ReadINIStrWithDefault} $1 $InstallerINIFile "OptionalComponents" "OptionalSectionDescription" "Add multilingual support for this app" - ${WriteConfig} OPTIONALSECTIONDESCRIPTION "$1" - ${ReadINIStrWithDefault} $OptionalSectionSelectedInstallType $InstallerINIFile "OptionalComponents" "OptionalSectionSelectedInstallType" "Multilingual" - ${WriteConfig} OPTIONALSECTIONSELECTEDINSTALLTYPE "$OptionalSectionSelectedInstallType" - ${ReadINIStrWithDefault} $1 $InstallerINIFile "OptionalComponents" "OptionalSectionNotSelectedInstallType" "English" - ${WriteConfig} OPTIONALSECTIONNOTSELECTEDINSTALLTYPE "$1" - ${ReadINIStrWithDefault} $1 $InstallerINIFile "OptionalComponents" "OptionalSectionPreSelectedIfNonEnglishInstall" "true" - ${If} $1 == "true" - ${WriteConfig} OPTIONALSECTIONPRESELECTEDIFNONENGLISHINSTALL "$1" - ${EndIf} - - ${If} $OptionalSectionSelectedInstallType == "Multilingual" - ${ReadINIStrWithDefault} $1 $InstallerINIFile "OptionalComponents" "OptionalSectionInstalledWhenSilent" "false" - ${Else} - ${ReadINIStrWithDefault} $1 $InstallerINIFile "OptionalComponents" "OptionalSectionInstalledWhenSilent" "true" - ${EndIf} - - ${If} $1 == "true" - ${WriteConfig} OPTIONALSECTIONINSTALLEDWHENSILENT "$1" - ${EndIf} - ${EndIf} - - ;Main directories - ${If} $PluginInstaller == "true" - ${AndIf} $COMMONFILESPLUGIN != "true" - ${ReadINIStrWithDefault} $1 $InstallerINIFile "MainDirectories" "RemoveAppDirectory" "false" - ${Else} - ${ReadINIStrWithDefault} $1 $InstallerINIFile "MainDirectories" "RemoveAppDirectory" "true" - ${EndIf} - ${If} $1 == "true" - ${WriteConfig} REMOVEAPPDIRECTORY "true" - ${EndIf} - ${ReadINIStrWithDefault} $1 $InstallerINIFile "MainDirectories" "RemoveDataDirectory" "false" - ${If} $1 == "true" - ${WriteConfig} REMOVEDATADIRECTORY "true" - ${EndIf} - ${If} $PluginInstaller == "true" - ${ReadINIStrWithDefault} $1 $InstallerINIFile "MainDirectories" "RemoveOtherDirectory" "false" - ${Else} - ${ReadINIStrWithDefault} $1 $InstallerINIFile "MainDirectories" "RemoveOtherDirectory" "true" - ${EndIf} - ${If} $1 == "true" - ${WriteConfig} REMOVEOTHERDIRECTORY "true" - ${EndIf} - - ;Preserve directories - StrCpy $R1 1 - ${Do} - ${ReadINIStrWithDefault} $1 $InstallerINIFile "DirectoriesToPreserve" "PreserveDirectory$R1" "" - ${If} $1 != "" - ${WriteConfig} PRESERVEDIRECTORY$R1 "$1" - ${EndIf} - IntOp $R1 $R1 + 1 - ${LoopUntil} $R1 > 10 - - ;Remove directories - StrCpy $R1 1 - ${Do} - ${ReadINIStrWithDefault} $1 $InstallerINIFile "DirectoriesToRemove" "RemoveDirectory$R1" "" - ${If} $1 != "" - ${WriteConfig} REMOVEDIRECTORY$R1 "$1" - ${EndIf} - IntOp $R1 $R1 + 1 - ${LoopUntil} $R1 > 10 - - ;Preserve files - StrCpy $R1 1 - ${Do} - ${ReadINIStrWithDefault} $1 $InstallerINIFile "FilesToPreserve" "PreserveFile$R1" "" - ${If} $1 != "" - ${WriteConfig} PRESERVEFILE$R1 "$1" - ${EndIf} - IntOp $R1 $R1 + 1 - ${LoopUntil} $R1 > 10 - - ;Remove files - StrCpy $R1 1 - ${Do} - ${ReadINIStrWithDefault} $1 $InstallerINIFile "FilesToRemove" "RemoveFile$R1" "" - ${If} $1 != "" - ${WriteConfig} REMOVEFILE$R1 "$1" - ${EndIf} - IntOp $R1 $R1 + 1 - ${LoopUntil} $R1 > 10 - - ;Custom code - ${If} $PluginInstaller == "true" - StrCpy $9 "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerPluginCustom.nsh" - ${Else} - StrCpy $9 "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerCustom.nsh" - ${EndIf} - ${If} ${FileExists} $9 - ${WriteConfig} USESCUSTOMCODE "true" - ${EndIf} - - ;Local Files - ${ReadINIStrWithDefault} $1 $InstallerINIFile "CopyLocalFiles" "CopyLocalFiles" "false" - ${If} $1 == "true" - ${WriteConfig} COPYLOCALFILES "true" - - !insertmacro TransferInstallerINIToConfig CopyLocalFiles CopyFromRegPath - - !insertmacro TransferInstallerINIToConfig CopyLocalFiles CopyFromRegKey - - !insertmacro TransferInstallerINIToConfig CopyLocalFiles CopyFromRegRemoveDirectories - - !insertmacro TransferInstallerINIToConfig CopyLocalFiles CopyFromDirectory - - !insertmacro TransferInstallerINIToConfig CopyLocalFiles CopyToDirectory - - ${EndIf} - - ;Download files - ${ReadINIStrWithDefault} $1 $InstallerINIFile "DownloadFiles" "DownloadURL" "" - ${If} $1 != "" - StrCpy $2 $1 7 - - ${If} $2 == "http://" - ${WriteConfig} DownloadURL "$1" - - !insertmacro TransferInstallerINIToConfig DownloadFiles DownloadName required - !insertmacro TransferInstallerINIToConfig DownloadFiles DownloadFilename required - !insertmacro TransferInstallerINIToConfig DownloadFiles DownloadMD5 - - !insertmacro TransferInstallerINIToConfig DownloadFiles DownloadTo - - !insertmacro TransferInstallerINIToConfig DownloadFiles AdditionalInstallSize required - - ${For} $R1 1 10 - ${ReadINIStrWithDefault} $1 $InstallerINIFile "DownloadFiles" "Extract$R1To" "" - ${If} $1 != "" - ${If} $1 == "" - StrCpy $1 "" - ${EndIf} - ${WriteConfig} Extract$R1To "$1" - ${EndIf} - ${Next} - - ${For} $R1 1 10 - ${ReadINIStrWithDefault} $1 $InstallerINIFile "DownloadFiles" "Extract$R1File" "" - ${If} $1 != "" - ${WriteConfig} Extract$R1File "$1" - ${EndIf} - ${Next} - - ${For} $R1 1 10 - ${ReadINIStrWithDefault} $1 $InstallerINIFile "DownloadFiles" "AdvancedExtract$R1To" "" - ${If} $1 != "" - ${If} $1 == "" - StrCpy $1 "" - ${EndIf} - ${WriteConfig} AdvancedExtract$R1To "$1" - ${EndIf} - ${Next} - - ${For} $R1 1 10 - ${ReadINIStrWithDefault} $1 $InstallerINIFile "DownloadFiles" "AdvancedExtract$R1Filter" "" - ${If} $1 != "" - ${WriteConfig} AdvancedExtract$R1Filter "$1" - ${EndIf} - ${Next} - - ${ReadINIStrWithDefault} $1 $InstallerINIFile "DownloadFiles" "DoubleExtractFilename" "" - ${If} $1 != "" - ${WriteConfig} DoubleExtractFilename "$1" - - ${For} $R1 1 10 - ${ReadINIStrWithDefault} $1 $InstallerINIFile "DownloadFiles" "DoubleExtract$R1To" "" - ${If} $1 != "" - ${If} $1 == "" - StrCpy $1 "" - ${EndIf} - ${WriteConfig} DoubleExtract$R1To "$1" - ${EndIf} - ${Next} - - ${For} $R1 1 10 - ${ReadINIStrWithDefault} $1 $InstallerINIFile "DownloadFiles" "DoubleExtract$R1Filter" "" - ${If} $1 != "" - ${WriteConfig} DoubleExtract$R1Filter "$1" - ${EndIf} - ${Next} - - ${EndIf} - ${Else} - ${WriteErrorToLog} "Installer.ini - DownloadFiles - DownloadURL must begin with http://" - ${EndIf} - ${EndIf} - - FileClose $0 - - ; If errors have occurred, there's no point in going on to the actual generation of it. - ${If} $ERROROCCURED != "true" - ;Make the installer header - ${If} $USEEXTRACTEDICON == "true" - ${OrIf} $PluginInstaller == "true" - CopyFiles /SILENT "$EXEDIR\App\default_bits\PortableApps.comInstallerHeader.bmp" "$INSTALLAPPDIRECTORY\Other\Source" - CopyFiles /SILENT "$EXEDIR\App\default_bits\PortableApps.comInstallerHeaderRTL.bmp" "$INSTALLAPPDIRECTORY\Other\Source" - ${Else} - ExecWait `"$EXEDIR\App\bin\MakeHeader.exe" "$INSTALLAPPDIRECTORY"` - ${EndIf} - - ;Move optional component files - ${If} $OPTIONALCOMPONENTS == "true" - CreateDirectory "$INSTALLAPPDIRECTORY\Optional1" - - ;Move directories - StrCpy $R1 1 - ${Do} - ${ReadINIStrWithDefault} $1 $InstallerINIFile "OptionalComponents" "OptionalDirectory$R1" "\COMPLETED\" - ${If} $1 != "" - ${AndIf} $1 != "\COMPLETED\" - ${GetParent} "$INSTALLAPPDIRECTORY\Optional1\$1" $2 - CreateDirectory $2 - Rename "$INSTALLAPPDIRECTORY\$1" "$INSTALLAPPDIRECTORY\Optional1\$1" - ${EndIf} - IntOp $R1 $R1 + 1 - ${LoopUntil} $1 == "\COMPLETED\" - - ;Move files - StrCpy $R1 1 - ${Do} - ${ReadINIStrWithDefault} $1 $InstallerINIFile "OptionalComponents" "OptionalFile$R1" "\COMPLETED\" - ${If} $1 != "" - ${AndIf} $1 != "\COMPLETED\" - ${GetParent} "$INSTALLAPPDIRECTORY\Optional1\$1" $2 - CreateDirectory $2 - ${GetParent} "$INSTALLAPPDIRECTORY\$1" $3 - ${GetFileName} "$INSTALLAPPDIRECTORY\Optional1\$1" $4 - ${MoveFiles} DOS "$4" "$3" "$2" - ${EndIf} - IntOp $R1 $R1 + 1 - ${LoopUntil} $1 == "\COMPLETED\" - - ${EndIf} - - ;Compile the installer - SetDetailsPrint ListOnly - ${If} $PluginInstaller == "true" - DetailPrint "Creating $PLUGINNAME installer..." - ${Else} - DetailPrint "Creating $PORTABLEAPPNAME installer..." - ${EndIf} - SetDetailsPrint none - ${TBProgress} 66 - - ;Delete existing installer if there is one - ${GetParent} $INSTALLAPPDIRECTORY $0 - Delete "$0\$INSTALLERFILENAME.paf.exe" - ${If} ${FileExists} "$0\$INSTALLERFILENAME.paf.exe" - MessageBox MB_OK|MB_ICONEXCLAMATION "Unable to delete file: $0\$INSTALLERFILENAME.paf.exe. Please be sure the file is not in use" - ${WriteErrorToLog} "Unable to delete file: $0\$INSTALLERFILENAME.paf.exe. Please be sure the file is not in use." - ${Else} - SetOutPath "$EXEDIR\App\nsis" - ${If} $PluginInstaller == "true" - ExecDos::exec `"$EXEDIR\App\nsis\makensis.exe" /O"$EXEDIR\Data\PortableApps.comInstallerLog.txt" "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerPlugin.nsi"` "" "" - ${Else} - ExecDos::exec `"$EXEDIR\App\nsis\makensis.exe" /O"$EXEDIR\Data\PortableApps.comInstallerLog.txt" "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstaller.nsi"` "" "" - ${EndIf} - ${EndIf} - - ;Move optional component files back - ${If} $OPTIONALCOMPONENTS == "true" - ;Move directories - StrCpy $R1 1 - ${Do} - ${ReadINIStrWithDefault} $1 $InstallerINIFile "OptionalComponents" "OptionalDirectory$R1" "\COMPLETED\" - ${If} $1 != "" - ${AndIf} $1 != "\COMPLETED\" - Rename "$INSTALLAPPDIRECTORY\Optional1\$1" "$INSTALLAPPDIRECTORY\$1" - ${EndIf} - IntOp $R1 $R1 + 1 - ${LoopUntil} $1 == "\COMPLETED\" - - ;Move files - StrCpy $R1 1 - ${Do} - ${ReadINIStrWithDefault} $1 $InstallerINIFile "OptionalComponents" "OptionalFile$R1" "\COMPLETED\" - ${If} $1 != "" - ${AndIf} $1 != "\COMPLETED\" - ${GetParent} "$INSTALLAPPDIRECTORY\Optional1\$1" $2 - ${GetParent} "$INSTALLAPPDIRECTORY\$1" $3 - ${GetFileName} "$INSTALLAPPDIRECTORY\Optional1\$1" $4 - ${MoveFiles} DOS "$4" "$2" "$3" - ${EndIf} - IntOp $R1 $R1 + 1 - ${LoopUntil} $1 == "\COMPLETED\" - - RMDir /r "$INSTALLAPPDIRECTORY\Optional1" - ${EndIf} - ${EndIf} - - ; Done - SetDetailsPrint ListOnly - DetailPrint " " - DetailPrint "Processing complete." - - ${If} ${FileExists} "$0\$INSTALLERFILENAME.paf.exe" - ${AndIf} $ERROROCCURED != "true" - StrCpy $FINISHTITLE "Installer Created" - StrCpy $FINISHTEXT "The installer has been created. Installer location:\r\n$0\r\n\r\nInstaller name:\r\n$INSTALLERFILENAME.paf.exe" - ${Else} - StrCpy $FINISHTITLE "An Error Occured" - StrCpy $FINISHTEXT "The installer was not created. You can view the log file for more information." - StrCpy $ERROROCCURED "true" - ${EndIf} - - SetDetailsPrint none - ;Remove the installer files if not included - ${If} $INCLUDESOURCE != "true" - ${AndIf} $ERROROCCURED != "true" - RMDir /r "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerLanguages\" - Delete "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstaller.bmp" - Delete "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstaller.ico" - Delete "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstaller.nsi" - Delete "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerConfig.nsh" - Delete "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerDumpLogToFile.nsh" - Delete "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerHeader.bmp" - Delete "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerHeaderRTL.bmp" - Delete "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerMoveFiles.nsh" - Delete "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerPlugin.nsi" - Delete "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerPluginConfig.nsh" - Delete "$INSTALLAPPDIRECTORY\Other\Source\PortableApps.comInstallerTBProgress.nsh" - ${EndIf} - - ;Remove the Source and Other directories if empty - RMDir "$INSTALLAPPDIRECTORY\Other\Source" - RMDir "$INSTALLAPPDIRECTORY\Other" - ${TBProgress_State} NoProgress -SectionEnd - -Function ShowFinishPage - ${If} $AUTOMATICCOMPILE == "true" - ${AndIf} $ERROROCCURED != "true" - Abort - ${ElseIf} $ERROROCCURED == "true" - !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 4" "Flags" "DISABLED" - !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 5" "State" "1" - ${EndIf} -FunctionEnd - -Function RunOnFinish - Exec `"$0\$INSTALLERFILENAME.paf.exe"` -FunctionEnd - -Function .onGUIEnd - RealProgress::Unload -FunctionEnd \ No newline at end of file diff --git a/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/InstallerWizardForm.ini b/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/InstallerWizardForm.ini deleted file mode 100644 index 3f3bc0b01..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/InstallerWizardForm.ini and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/License.txt b/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/License.txt deleted file mode 100644 index d6a3987f4..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/License.txt +++ /dev/null @@ -1,344 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, -THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT -PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED -IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, -EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY -AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL -NECESSARY SERVICING, REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR -AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY -OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM -AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING -ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM -(INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY -OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS -BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. \ No newline at end of file diff --git a/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/MoveFiles.nsh b/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/MoveFiles.nsh deleted file mode 100644 index 451ab65ee..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/MoveFiles.nsh +++ /dev/null @@ -1,104 +0,0 @@ -; Copyright (c) 2008, Harold E Austin Jr -; 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 Harold E Austin Jr ``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 Harold E Austin Jr 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. - -/* - MoveFiles.nsh -- version 1.0 (May 5, 2008) - move files matching "filespec" from "source-directory" to "destination-directory" - - usage: - !include MoveFiles.nsh - - ${MoveFiles} mode "filespec" "source-directory" "destination-directory" - - where: - mode can be DOS, DIR, FORCE or DIR+FORCE (anything else = DOS): - DOS means act like the DOS MOVE command (move only files) - DIR means move files AND directories - FORCE means overwrite destination files (like MOVE/Y) - - example: - CreateDirectory "C:\NEW\DIR" - DetailPrint "Moving files and directories..." - ${MoveFiles} DIR+FORCE "*" "C:\OLD\DIR" "C:\NEW\DIR" - DetailPrint `"Processing"...` - Sleep 2000 - DetailPrint "Moving only the files back..." - ${MoveFiles} DOS "*" "C:\NEW\DIR" "C:\OLD\DIR" - DetailPrint "Moving the directories back..." - ${MoveFiles} DIR "*" "C:\NEW\DIR" "C:\OLD\DIR" -*/ -!ifndef MoveFiles -!define MoveFiles "!insertmacro MoveFiles" -!macro MoveFiles mode filespec sourcedir destdir - push `${destdir}` - push `${sourcedir}` - push `${filespec}` - push `${mode}` - call MoveFiles -!macroend - -Function MoveFiles ; mode filespec sourcedir destdir - Exch $0 ; mode, directory mode - Exch - Exch $1 ; filespec, force mode - Exch 2 - Exch $2 ; source directory - Exch 3 - Exch $3 ; destination directory - Push $4 ; FindFirst/FindNext search handle - Push $5 ; current filename matching filespec in sourcedir - FindFirst $4 $5 "$2\$1" - StrCpy $1 "" ; FORCE mode disabled by default - StrCmp $0 FORCE 0 +2 - StrCpy $1 FORCE - StrCmp $0 DIR+FORCE 0 +3 - StrCpy $0 DIR - StrCpy $1 FORCE - loop: - StrCmp $5 "" done ; $5 == "", if no more matching files - StrCmp $5 . next - StrCmp $5 .. next - StrCmp $0 DIR +2 - ; DIR mode disabled: ignore directories that match ${filespec} - IfFileExists "$2\$5\*.*" next - StrCmp $1 FORCE 0 +4 - ; FORCE mode: make sure destination doesn't exist - Delete "$3\$5" - StrCmp $0 DIR 0 +2 - RMDir /R "$3\$5" - Rename "$2\$5" "$3\$5" - next: - FindNext $4 $5 - Goto loop - done: - FindClose $4 ; finished with this search; close handle - Pop $5 - Pop $4 - Pop $3 - Pop $0 - Pop $1 - Pop $2 -FunctionEnd -!endif diff --git a/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/ReadINIStrWithDefault.nsh b/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/ReadINIStrWithDefault.nsh deleted file mode 100644 index 2d3b3a10b..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/ReadINIStrWithDefault.nsh +++ /dev/null @@ -1,55 +0,0 @@ -; ReadINIStrWithDefault 1.1 (2009-05-12) -; -; Substitutes a default value if the INI is undefined -; Copyright 2008-2009 John T. Haller of PortableApps.com -; Released under the BSD -; -; Usage: ${ReadINIStrWithDefault} OUTPUT_VALUE INI_FILENAME SECTION_NAME ENTRY_NAME DEFAULT_VALUE -; -; History: -; 1.1 (2009-05-12): Fixed error with $0 and $2 being swapped - -Function ReadINIStrWithDefault - ;Start with a clean slate - ClearErrors - - ;Get our parameters - Exch $0 ;DEFAULT_VALUE - Exch - Exch $1 ;ENTRY_NAME - Exch 2 - Exch $2 ;SECTION_NAME - Exch 3 - Exch $3 ;INI_FILENAME - Push $4 ;OUTPUT_VALUE - - ;Read from the INI - ReadINIStr $4 $3 $2 $1 - IfErrors 0 +3 - StrCpy $4 $0 - ClearErrors - - ;Keep the variable for last - StrCpy $0 $4 - - ;Clear the stack - Pop $4 - Pop $3 - Exch 2 - Pop $2 - Pop $1 - - ;Reset the last variable and leave our result on the stack - Exch $0 -FunctionEnd - -!macro ReadINIStrWithDefault OUTPUT_VALUE INI_FILENAME SECTION_NAME ENTRY_NAME DEFAULT_VALUE - Push `${INI_FILENAME}` - Push `${SECTION_NAME}` - Push `${ENTRY_NAME}` - Push `${DEFAULT_VALUE}` - Call ReadINIStrWithDefault - Pop `${OUTPUT_VALUE}` -!macroend - -!define ReadINIStrWithDefault '!insertmacro "ReadINIStrWithDefault"' diff --git a/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/Readme.txt b/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/Readme.txt deleted file mode 100644 index c725c6ea3..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/Readme.txt +++ /dev/null @@ -1,41 +0,0 @@ -PortableApps.com Installer -========================== -Copyright 2006-2009 John T. Haller - -Website: http://PortableApps.com/Installer - -This software is OSI Certified Open Source Software. -OSI Certified is a certification mark of the Open Source Initiative. - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - - -About PortableApps.com Installer -================================ -PortableApps.com Installer allows you to easily package apps in PortableApps.com -Format as a PortableApps.com Installer. - - -LICENSE -======= -This code is released under the GPL. Within the Other\Source directory -you will find the code as well as the full GPL license (License.txt). If you use the -code in your own product, please give proper and prominent attribution. - - -PortableApps.com Installer CONFIGURATION -======================================== -Configuration options are included in the appropriate appinfo.ini and installer.ini -files in the app's AppInfo directory as detailed at PortableApps.com/development \ No newline at end of file diff --git a/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/TBProgress.nsh b/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/TBProgress.nsh deleted file mode 100644 index 7fa976961..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/TBProgress.nsh +++ /dev/null @@ -1,59 +0,0 @@ -!include "LogicLib.nsh" - -!ifndef CLSCTX_INPROC_SERVER - !define CLSCTX_INPROC_SERVER 1 -!endif - -!define CLSID_ITaskbarList {56fdf344-fd6d-11d0-958a-006097c9a090} - -!define IID_ITaskbarList3 {ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf} -!define ITaskbarList3->SetProgressState $ITaskbarList3->10 -!define ITaskbarList3->SetProgressValue $ITaskbarList3->9 - -!define TBPF_NOPROGRESS 0x00000000 ; Normal state / no progress bar -!define TBPF_INDETERMINATE 0x00000001 ; Marquee style progress bar -!define TBPF_NORMAL 0x00000002 ; Standard progress bar -!define TBPF_ERROR 0x00000004 ; Red taskbar button to indicate an error occurred -!define TBPF_PAUSED 0x00000008 ; Yellow taskbar button to indicate user attention - ; (input) is required to resume progress - -Var ITaskbarList3 - -!macro TBProgress_Init - !ifndef TBProgressInitialized - !define TBProgressInitialized - ${Unless} ${Silent} - System::Call "ole32::CoCreateInstance( \ - g '${CLSID_ITaskbarList}', \ - i 0, \ - i ${CLSCTX_INPROC_SERVER}, \ - g '${IID_ITaskbarList3}', \ - *i .s)" - Pop $ITaskbarList3 - ${Else} - StrCpy $ITaskbarList3 0 - ${EndIf} - !endif -!macroend -!define TBProgress_Init `!insertmacro TBProgress_Init` - -!macro TBProgress_Progress Val Max - ${TBProgress_Init} - ${If} $ITaskbarList3 <> 0 - System::Call "${ITaskbarList3->SetProgressValue}(i$HWNDPARENT, l${Val}, l${Max})" - ${EndIf} -!macroend -!define TBProgress_Progress `!insertmacro TBProgress_Progress` - -!macro TBProgress Val - ${TBProgress_Progress} ${Val} 100 -!macroend -!define TBProgress `!insertmacro TBProgress` - -!macro TBProgress_State State - ${TBProgress_Init} - ${If} $ITaskbarList3 <> 0 - System::Call "${ITaskbarList3->SetProgressState}(i$HWNDPARENT, i${TBPF_${State}})" - ${EndIf} -!macroend -!define TBProgress_State `!insertmacro TBProgress_State` \ No newline at end of file diff --git a/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/header.bmp b/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/header.bmp deleted file mode 100644 index 46414e810..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/header.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/header_rtl.bmp b/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/header_rtl.bmp deleted file mode 100644 index 25b91490b..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/header_rtl.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/welcomefinish.bmp b/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/welcomefinish.bmp deleted file mode 100644 index 220f605c3..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/Other/Source/welcomefinish.bmp and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/PortableApps.comInstaller.exe b/src/Greenshot/tools/PortableApps.comInstaller/PortableApps.comInstaller.exe deleted file mode 100644 index ce6cb438a..000000000 Binary files a/src/Greenshot/tools/PortableApps.comInstaller/PortableApps.comInstaller.exe and /dev/null differ diff --git a/src/Greenshot/tools/PortableApps.comInstaller/help.html b/src/Greenshot/tools/PortableApps.comInstaller/help.html deleted file mode 100644 index d4fe83fe2..000000000 --- a/src/Greenshot/tools/PortableApps.comInstaller/help.html +++ /dev/null @@ -1,175 +0,0 @@ - -PortableApps.com Installer Help - - - - - - -
-

PortableApps.com Installer Help

-

package your portable apps right

-

PortableApps.com Installer compiles PortableApps.com Format apps into easy-to-use installers. They're small, easy to use, automatically work with the PortableApps.com Platform and require no coding or compiling. -Learn more about the PortableApps.com Installer...

- -Make a Donation - Support PortableApps.com's Hosting and Development - -

Go to the PortableApps.com Installer Homepage >>

- -

Get more portable apps at PortableApps.com

- -

This software is OSI Certified Open Source Software. OSI Certified is a certification mark of the Open Source Initiative.

- -

PortableApps.com Installer-Specific Issues

-SourceForge.net -

For support questions, see the PortableApps.com Installer Homepage

- - -
- - - \ No newline at end of file diff --git a/src/Greenshot/tools/WinSCP/WinSCP.com b/src/Greenshot/tools/WinSCP/WinSCP.com deleted file mode 100644 index 959299ecd..000000000 Binary files a/src/Greenshot/tools/WinSCP/WinSCP.com and /dev/null differ diff --git a/src/Greenshot/tools/WinSCP/WinSCP.exe b/src/Greenshot/tools/WinSCP/WinSCP.exe deleted file mode 100644 index db0326b35..000000000 Binary files a/src/Greenshot/tools/WinSCP/WinSCP.exe and /dev/null differ diff --git a/src/Greenshot/tools/WinSCP/WinSCPnet.dll b/src/Greenshot/tools/WinSCP/WinSCPnet.dll deleted file mode 100644 index fff0b8d83..000000000 Binary files a/src/Greenshot/tools/WinSCP/WinSCPnet.dll and /dev/null differ diff --git a/src/Greenshot/tools/WinSCP/license-dotnet.txt b/src/Greenshot/tools/WinSCP/license-dotnet.txt deleted file mode 100644 index 14e2f777f..000000000 --- a/src/Greenshot/tools/WinSCP/license-dotnet.txt +++ /dev/null @@ -1,373 +0,0 @@ -Mozilla Public License Version 2.0 -================================== - -1. Definitions --------------- - -1.1. "Contributor" - means each individual or legal entity that creates, contributes to - the creation of, or owns Covered Software. - -1.2. "Contributor Version" - means the combination of the Contributions of others (if any) used - by a Contributor and that particular Contributor's Contribution. - -1.3. "Contribution" - means Covered Software of a particular Contributor. - -1.4. "Covered Software" - means Source Code Form to which the initial Contributor has attached - the notice in Exhibit A, the Executable Form of such Source Code - Form, and Modifications of such Source Code Form, in each case - including portions thereof. - -1.5. "Incompatible With Secondary Licenses" - means - - (a) that the initial Contributor has attached the notice described - in Exhibit B to the Covered Software; or - - (b) that the Covered Software was made available under the terms of - version 1.1 or earlier of the License, but not also under the - terms of a Secondary License. - -1.6. "Executable Form" - means any form of the work other than Source Code Form. - -1.7. "Larger Work" - means a work that combines Covered Software with other material, in - a separate file or files, that is not Covered Software. - -1.8. "License" - means this document. - -1.9. "Licensable" - means having the right to grant, to the maximum extent possible, - whether at the time of the initial grant or subsequently, any and - all of the rights conveyed by this License. - -1.10. "Modifications" - means any of the following: - - (a) any file in Source Code Form that results from an addition to, - deletion from, or modification of the contents of Covered - Software; or - - (b) any new file in Source Code Form that contains any Covered - Software. - -1.11. "Patent Claims" of a Contributor - means any patent claim(s), including without limitation, method, - process, and apparatus claims, in any patent Licensable by such - Contributor that would be infringed, but for the grant of the - License, by the making, using, selling, offering for sale, having - made, import, or transfer of either its Contributions or its - Contributor Version. - -1.12. "Secondary License" - means either the GNU General Public License, Version 2.0, the GNU - Lesser General Public License, Version 2.1, the GNU Affero General - Public License, Version 3.0, or any later versions of those - licenses. - -1.13. "Source Code Form" - means the form of the work preferred for making modifications. - -1.14. "You" (or "Your") - means an individual or a legal entity exercising rights under this - License. For legal entities, "You" includes any entity that - controls, is controlled by, or is under common control with You. For - purposes of this definition, "control" means (a) the power, direct - or indirect, to cause the direction or management of such entity, - whether by contract or otherwise, or (b) ownership of more than - fifty percent (50%) of the outstanding shares or beneficial - ownership of such entity. - -2. License Grants and Conditions --------------------------------- - -2.1. Grants - -Each Contributor hereby grants You a world-wide, royalty-free, -non-exclusive license: - -(a) under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or - as part of a Larger Work; and - -(b) under Patent Claims of such Contributor to make, use, sell, offer - for sale, have made, import, and otherwise transfer either its - Contributions or its Contributor Version. - -2.2. Effective Date - -The licenses granted in Section 2.1 with respect to any Contribution -become effective for each Contribution on the date the Contributor first -distributes such Contribution. - -2.3. Limitations on Grant Scope - -The licenses granted in this Section 2 are the only rights granted under -this License. No additional rights or licenses will be implied from the -distribution or licensing of Covered Software under this License. -Notwithstanding Section 2.1(b) above, no patent license is granted by a -Contributor: - -(a) for any code that a Contributor has removed from Covered Software; - or - -(b) for infringements caused by: (i) Your and any other third party's - modifications of Covered Software, or (ii) the combination of its - Contributions with other software (except as part of its Contributor - Version); or - -(c) under Patent Claims infringed by Covered Software in the absence of - its Contributions. - -This License does not grant any rights in the trademarks, service marks, -or logos of any Contributor (except as may be necessary to comply with -the notice requirements in Section 3.4). - -2.4. Subsequent Licenses - -No Contributor makes additional grants as a result of Your choice to -distribute the Covered Software under a subsequent version of this -License (see Section 10.2) or under the terms of a Secondary License (if -permitted under the terms of Section 3.3). - -2.5. Representation - -Each Contributor represents that the Contributor believes its -Contributions are its original creation(s) or it has sufficient rights -to grant the rights to its Contributions conveyed by this License. - -2.6. Fair Use - -This License is not intended to limit any rights You have under -applicable copyright doctrines of fair use, fair dealing, or other -equivalents. - -2.7. Conditions - -Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted -in Section 2.1. - -3. Responsibilities -------------------- - -3.1. Distribution of Source Form - -All distribution of Covered Software in Source Code Form, including any -Modifications that You create or to which You contribute, must be under -the terms of this License. You must inform recipients that the Source -Code Form of the Covered Software is governed by the terms of this -License, and how they can obtain a copy of this License. You may not -attempt to alter or restrict the recipients' rights in the Source Code -Form. - -3.2. Distribution of Executable Form - -If You distribute Covered Software in Executable Form then: - -(a) such Covered Software must also be made available in Source Code - Form, as described in Section 3.1, and You must inform recipients of - the Executable Form how they can obtain a copy of such Source Code - Form by reasonable means in a timely manner, at a charge no more - than the cost of distribution to the recipient; and - -(b) You may distribute such Executable Form under the terms of this - License, or sublicense it under different terms, provided that the - license for the Executable Form does not attempt to limit or alter - the recipients' rights in the Source Code Form under this License. - -3.3. Distribution of a Larger Work - -You may create and distribute a Larger Work under terms of Your choice, -provided that You also comply with the requirements of this License for -the Covered Software. If the Larger Work is a combination of Covered -Software with a work governed by one or more Secondary Licenses, and the -Covered Software is not Incompatible With Secondary Licenses, this -License permits You to additionally distribute such Covered Software -under the terms of such Secondary License(s), so that the recipient of -the Larger Work may, at their option, further distribute the Covered -Software under the terms of either this License or such Secondary -License(s). - -3.4. Notices - -You may not remove or alter the substance of any license notices -(including copyright notices, patent notices, disclaimers of warranty, -or limitations of liability) contained within the Source Code Form of -the Covered Software, except that You may alter any license notices to -the extent required to remedy known factual inaccuracies. - -3.5. Application of Additional Terms - -You may choose to offer, and to charge a fee for, warranty, support, -indemnity or liability obligations to one or more recipients of Covered -Software. However, You may do so only on Your own behalf, and not on -behalf of any Contributor. You must make it absolutely clear that any -such warranty, support, indemnity, or liability obligation is offered by -You alone, and You hereby agree to indemnify every Contributor for any -liability incurred by such Contributor as a result of warranty, support, -indemnity or liability terms You offer. You may include additional -disclaimers of warranty and limitations of liability specific to any -jurisdiction. - -4. Inability to Comply Due to Statute or Regulation ---------------------------------------------------- - -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Software due to -statute, judicial order, or regulation then You must: (a) comply with -the terms of this License to the maximum extent possible; and (b) -describe the limitations and the code they affect. Such description must -be placed in a text file included with all distributions of the Covered -Software under this License. Except to the extent prohibited by statute -or regulation, such description must be sufficiently detailed for a -recipient of ordinary skill to be able to understand it. - -5. Termination --------------- - -5.1. The rights granted under this License will terminate automatically -if You fail to comply with any of its terms. However, if You become -compliant, then the rights granted under this License from a particular -Contributor are reinstated (a) provisionally, unless and until such -Contributor explicitly and finally terminates Your grants, and (b) on an -ongoing basis, if such Contributor fails to notify You of the -non-compliance by some reasonable means prior to 60 days after You have -come back into compliance. Moreover, Your grants from a particular -Contributor are reinstated on an ongoing basis if such Contributor -notifies You of the non-compliance by some reasonable means, this is the -first time You have received notice of non-compliance with this License -from such Contributor, and You become compliant prior to 30 days after -Your receipt of the notice. - -5.2. If You initiate litigation against any entity by asserting a patent -infringement claim (excluding declaratory judgment actions, -counter-claims, and cross-claims) alleging that a Contributor Version -directly or indirectly infringes any patent, then the rights granted to -You by any and all Contributors for the Covered Software under Section -2.1 of this License shall terminate. - -5.3. In the event of termination under Sections 5.1 or 5.2 above, all -end user license agreements (excluding distributors and resellers) which -have been validly granted by You or Your distributors under this License -prior to termination shall survive termination. - -************************************************************************ -* * -* 6. Disclaimer of Warranty * -* ------------------------- * -* * -* Covered Software is provided under this License on an "as is" * -* basis, without warranty of any kind, either expressed, implied, or * -* statutory, including, without limitation, warranties that the * -* Covered Software is free of defects, merchantable, fit for a * -* particular purpose or non-infringing. The entire risk as to the * -* quality and performance of the Covered Software is with You. * -* Should any Covered Software prove defective in any respect, You * -* (not any Contributor) assume the cost of any necessary servicing, * -* repair, or correction. This disclaimer of warranty constitutes an * -* essential part of this License. No use of any Covered Software is * -* authorized under this License except under this disclaimer. * -* * -************************************************************************ - -************************************************************************ -* * -* 7. Limitation of Liability * -* -------------------------- * -* * -* Under no circumstances and under no legal theory, whether tort * -* (including negligence), contract, or otherwise, shall any * -* Contributor, or anyone who distributes Covered Software as * -* permitted above, be liable to You for any direct, indirect, * -* special, incidental, or consequential damages of any character * -* including, without limitation, damages for lost profits, loss of * -* goodwill, work stoppage, computer failure or malfunction, or any * -* and all other commercial damages or losses, even if such party * -* shall have been informed of the possibility of such damages. This * -* limitation of liability shall not apply to liability for death or * -* personal injury resulting from such party's negligence to the * -* extent applicable law prohibits such limitation. Some * -* jurisdictions do not allow the exclusion or limitation of * -* incidental or consequential damages, so this exclusion and * -* limitation may not apply to You. * -* * -************************************************************************ - -8. Litigation -------------- - -Any litigation relating to this License may be brought only in the -courts of a jurisdiction where the defendant maintains its principal -place of business and such litigation shall be governed by laws of that -jurisdiction, without reference to its conflict-of-law provisions. -Nothing in this Section shall prevent a party's ability to bring -cross-claims or counter-claims. - -9. Miscellaneous ----------------- - -This License represents the complete agreement concerning the subject -matter hereof. If any provision of this License is held to be -unenforceable, such provision shall be reformed only to the extent -necessary to make it enforceable. Any law or regulation which provides -that the language of a contract shall be construed against the drafter -shall not be used to construe this License against a Contributor. - -10. Versions of the License ---------------------------- - -10.1. New Versions - -Mozilla Foundation is the license steward. Except as provided in Section -10.3, no one other than the license steward has the right to modify or -publish new versions of this License. Each version will be given a -distinguishing version number. - -10.2. Effect of New Versions - -You may distribute the Covered Software under the terms of the version -of the License under which You originally received the Covered Software, -or under the terms of any subsequent version published by the license -steward. - -10.3. Modified Versions - -If you create software not governed by this License, and you want to -create a new license for such software, you may create and use a -modified version of this License if you rename the license and remove -any references to the name of the license steward (except to note that -such modified license differs from this License). - -10.4. Distributing Source Code Form that is Incompatible With Secondary -Licenses - -If You choose to distribute Source Code Form that is Incompatible With -Secondary Licenses under the terms of this version of the License, the -notice described in Exhibit B of this License must be attached. - -Exhibit A - Source Code Form License Notice -------------------------------------------- - - This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular -file, then You may include the notice in a location (such as a LICENSE -file in a relevant directory) where a recipient would be likely to look -for such a notice. - -You may add additional accurate notices of copyright ownership. - -Exhibit B - "Incompatible With Secondary Licenses" Notice ---------------------------------------------------------- - - This Source Code Form is "Incompatible With Secondary Licenses", as - defined by the Mozilla Public License, v. 2.0. diff --git a/src/Greenshot/tools/WinSCP/license.txt b/src/Greenshot/tools/WinSCP/license.txt deleted file mode 100644 index 3c03f9b59..000000000 --- a/src/Greenshot/tools/WinSCP/license.txt +++ /dev/null @@ -1,722 +0,0 @@ - A. GNU General Public License - B. License of WinSCP Icon Set - C. Privacy Policy - - - A. GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. - - - B. License of WinSCP Icon Set - -Note that all images distributed in or with WinSCP application are NOT -published under the GNU General Public License. It means that it is not -allowed to redistribute or reuse these images or parts of them or modifications -of them without WinSCP separately or in or with another software. - -You agree that all ownership and copyright of the licensed stock icons remain -the property of York Technologies Limited. WinSCP was granted a license to -display this graphical media royalty-free in WinSCP software applications, -web design, presentations, and multimedia projects that WinSCP creates and/or -distributes. - - - C. WinSCP Privacy Policy - -Please take time to read WinSCP Privacy policy at -http://winscp.net/eng/docs/privacy - -WinSCP includes functionality to collect and send non-personal WinSCP -Usage statistics and to automatically check for application updates. The only -potentially personal information sent to WinSCP is IP addresses. Users can -opt-out from using this functionality in the installer or anytime later -in WinSCP Preferences. WinSCP Usage statistics help improve future versions -of WinSCP. Once sent, usage statistics are stored for analysis (except -IP addresses) and made available to the core WinSCP team only. - -Before disabling WinSCP Usage statistics, be so kind and consider that it -plays very important role in the WinSCP development. We work very hard -to make WinSCP reliable and useful. We also love improving WinSCP with every -release. And last but not least, we provide WinSCP application to you -for free and we want this to stay so! However our resources and time are -unfortunately very limited. We want to focus our effort on improving -the right features for you. That is why we need to learn more about how you -use WinSCP. - -If you still want to disable WinSCP Usage statistics already during -installation, you may do so using Custom installation. - -Thank you! - diff --git a/src/Greenshot/tools/WinSCP/readme.txt b/src/Greenshot/tools/WinSCP/readme.txt deleted file mode 100644 index 77f09feea..000000000 --- a/src/Greenshot/tools/WinSCP/readme.txt +++ /dev/null @@ -1,11 +0,0 @@ -This is the README file for standalone package of WinSCP for portable use. - -For portable use of WinSCP see -http://winscp.net/eng/docs/portable - -The package includes two executables, .exe and .com. For details see -http://winscp.net/eng/docs/executables - -WinSCP homepage is http://winscp.net/ - -See the file 'license.txt' for the license conditions. diff --git a/src/Greenshot/tools/WinSCP/readme_automation.txt b/src/Greenshot/tools/WinSCP/readme_automation.txt deleted file mode 100644 index efd8a7d60..000000000 --- a/src/Greenshot/tools/WinSCP/readme_automation.txt +++ /dev/null @@ -1,19 +0,0 @@ -This is the README file for automation package of WinSCP. - -For use of WinSCP automation package see -http://winscp.net/eng/docs/library -http://winscp.net/eng/docs/library_install - -To use this package you must unpack it to the WinSCP installation folder -or to a folder, where you have already unpacked the WinSCP standalone package. -http://winscp.net/eng/docs/installation or -http://winscp.net/eng/docs/portable - -To use the WinSCP assembly via COM interop, register it using: -%WINDIR%\Microsoft.NET\Framework\\RegAsm.exe WinSCPnet.dll /codebase /tlb -where is typically either v4.0.30319 or v2.0.50727. -http://winscp.net/eng/docs/library_install#registering - -WinSCP homepage is http://winscp.net/ - -See the file 'license-dotnet.txt' for the license conditions. \ No newline at end of file diff --git a/src/NuGet.Config b/src/NuGet.Config index 2b5005fdb..1246f1e65 100644 --- a/src/NuGet.Config +++ b/src/NuGet.Config @@ -1,9 +1,10 @@  - + + \ No newline at end of file diff --git a/src/version.json b/src/version.json new file mode 100644 index 000000000..25bf59dda --- /dev/null +++ b/src/version.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://raw.githubusercontent.com/AArnott/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", + "version": "2.0", + "publicReleaseRefSpec": [ + ".*/master$", // we release out of master + ".*/develop$" // we release out of develop + ], + "nugetPackageVersion": { + "semVer": 2 // optional. Set to either 1 or 2 to control how the NuGet package version string is generated. Default is 1. + }, + "cloudBuild": { + "setVersionVariables": true, + "buildNumber": { + "enabled": true, + "includeCommitId": { + "when": "nonPublicReleaseOnly", + "where": "buildMetadata" + } + } + }, + "inherit": false +} \ No newline at end of file