Dotnet core 3.0 support (#104)

The changes in the PR are pretty much:
* Migrated to PackageReference and a new .csproj structure
* Updated GitVersioning, added a developer getting started to the README.md
* Made multi targeting (471 & dotnet core 3.0) possible
This commit is contained in:
Robin Krom 2018-12-05 10:34:31 +01:00 committed by GitHub
commit 44b3611c13
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
1008 changed files with 5761 additions and 23163 deletions

View file

@ -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 )

View file

@ -1,48 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<Project ToolsVersion="3.5" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Prefer32Bit>false</Prefer32Bit>
<LangVersion>latest</LangVersion>
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<NoWarn>1685</NoWarn>
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
<FileAlignment>4096</FileAlignment>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<NoWarn>1685</NoWarn>
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
<FileAlignment>4096</FileAlignment>
<DebugType>pdbonly</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<NoWarn>1685</NoWarn>
<OutputPath>bin\Release\</OutputPath>
<Optimize>true</Optimize>
<FileAlignment>4096</FileAlignment>
<DebugType>pdbonly</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<NoWarn>1685</NoWarn>
<OutputPath>bin\Release\</OutputPath>
<Optimize>true</Optimize>
<FileAlignment>4096</FileAlignment>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
</PropertyGroup>
</Project>

58
src/Directory.Build.props Normal file
View file

@ -0,0 +1,58 @@
<Project>
<PropertyGroup>
<Copyright>Copyright © Greenshot 2004-2018</Copyright>
<Authors>Greenshot</Authors>
<PackageIconUrl>https://getgreenshot.org/favicon.ico</PackageIconUrl>
<RepositoryUrl>https://github.com/greenshot/greenshot</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageProjectUrl>https://github.com/greenshot/greenshot</PackageProjectUrl>
<PackageLicenseUrl>https://www.gnu.org/licenses/gpl.html</PackageLicenseUrl>
<LangVersion>latest</LangVersion>
<!-- <DisableImplicitFrameworkReferences Condition="'$(TargetFramework)' == 'net471'">true</DisableImplicitFrameworkReferences> -->
<CopyLocalLockFileAssemblies Condition="'$(TargetFramework)' != 'net471'">true</CopyLocalLockFileAssemblies>
<Version>1.0.0</Version>
<AssemblyVersion>1.0.0</AssemblyVersion>
<FileVersion>1.0.0</FileVersion>
<AssemblySearchPaths Condition="'$(TargetFramework)' == 'net471'">{HintPathFromItem};{TargetFrameworkDirectory};{RawFileName};{GAC};</AssemblySearchPaths>
<UseWPF>true</UseWPF>
<UseWindowsForms>false</UseWindowsForms>
<OsProductName>$(registry:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion@ProductName)</OsProductName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' != 'Debug' And !$(MSBuildProjectName.Contains('Test')) And !$(MSBuildProjectName.Contains('Demo'))">
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
<IsPackable>true</IsPackable>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>
<PropertyGroup Condition="$(MSBuildProjectName.Contains('Tests')) Or $(MSBuildProjectName.Contains('Demo'))">
<GenerateDocumentationFile>false</GenerateDocumentationFile>
<IsPackable>false</IsPackable>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugSymbols>True</DebugSymbols>
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
<DebugType>Full</DebugType>
<Optimize>false</Optimize>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<DebugSymbols>True</DebugSymbols>
</PropertyGroup>
<ItemGroup Condition="!$(MSBuildProjectName.Contains('Test')) And !$(MSBuildProjectName.Contains('Demo'))">
<PackageReference Include="Nerdbank.GitVersioning" Version="2.2.33">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Include="PdbGit" Version="3.0.41">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
</ItemGroup>
</Project>

View file

@ -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<IBoxConfiguration>())
.RegisterType<BoxConfigurationImpl>()
.As<IBoxConfiguration>()
.As<IIniSection>()
.SingleInstance();
builder
.Register(context => LanguageLoader.Current.Get<IBoxLanguage>())
.RegisterType<BoxLanguageImpl>()
.As<IBoxLanguage>()
.As<ILanguage>()
.SingleInstance();
builder

View file

@ -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;

View file

@ -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
{
/// <summary>
/// Description of ImgurConfiguration.
/// </summary>
[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)]

View file

@ -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; }

View file

@ -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 <http://www.gnu.org/licenses/>.
#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>, 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
}
}

View file

@ -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 <http://www.gnu.org/licenses/>.
#endregion
using System.Diagnostics.CodeAnalysis;
using Dapplo.Config.Language;
namespace Greenshot.Addon.Box.Configuration.Impl
{
/// <summary>
/// This implements IBoxLanguage and takes care of storing, all setters are replaced via AutoProperties.Fody
/// </summary>
[SuppressMessage("ReSharper", "UnassignedGetOnlyAutoProperty")]
#pragma warning disable CS1591
public class BoxLanguageImpl : LanguageBase<IBoxLanguage>, 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
}
}

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
<AutoProperties />
</Weavers>

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuild. -->
<xs:element name="Weavers">
<xs:complexType>
<xs:all>
<xs:element name="AutoProperties" minOccurs="0" maxOccurs="1" type="xs:anyType" />
</xs:all>
<xs:attribute name="VerifyAssembly" type="xs:boolean">
<xs:annotation>
<xs:documentation>'true' to run assembly verification on the target assembly after all weavers have been finished.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VerifyIgnoreCodes" type="xs:string">
<xs:annotation>
<xs:documentation>A comma separated list of error codes that can be safely ignored in assembly verification.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>

View file

@ -1,237 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\CommonProject.properties" />
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<ProjectGuid>{697CF066-9077-4F22-99D9-D989CCE7282B}</ProjectGuid>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<RootNamespace>Greenshot.Addon.Box</RootNamespace>
<AssemblyName>Greenshot.Addon.Box</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<AppDesignerFolder>Properties</AppDesignerFolder>
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
<NoStdLib>False</NoStdLib>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<RunPostBuildEvent>Always</RunPostBuildEvent>
<TargetFrameworkProfile />
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>3.5</OldToolsVersion>
<LangVersion>latest</LangVersion>
<Prefer32Bit>false</Prefer32Bit>
<TargetFrameworks>net471;netcoreapp3.0</TargetFrameworks>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
<ItemGroup>
<Reference Include="Autofac, Version=4.8.1.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.4.8.1\lib\net45\Autofac.dll</HintPath>
</Reference>
<Reference Include="Autofac.Extras.AttributeMetadata, Version=4.0.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll</HintPath>
</Reference>
<Reference Include="Autofac.Integration.Mef, Version=4.0.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll</HintPath>
</Reference>
<Reference Include="Caliburn.Micro, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll</HintPath>
</Reference>
<Reference Include="Caliburn.Micro.Platform, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll</HintPath>
</Reference>
<Reference Include="Caliburn.Micro.Platform.Core, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll</HintPath>
</Reference>
<Reference Include="CommonServiceLocator, Version=2.0.4.0, Culture=neutral, PublicKeyToken=489b6accfaf20ef0, processorArchitecture=MSIL">
<HintPath>..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Addons, Version=1.0.79.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Addons.Bootstrapper, Version=1.0.79.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Configuration, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Configuration.1.0.75\lib\net461\Dapplo.CaliburnMicro.Configuration.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Dapp, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Dapp.1.0.75\lib\net461\Dapplo.CaliburnMicro.Dapp.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Menu, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Menu.1.0.75\lib\net461\Dapplo.CaliburnMicro.Menu.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Security, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Security.1.0.75\lib\net461\Dapplo.CaliburnMicro.Security.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Translations, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll</HintPath>
</Reference>
<Reference Include="Dapplo.HttpExtensions, Version=0.8.46.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.HttpExtensions.0.8.46\lib\net46\Dapplo.HttpExtensions.dll</HintPath>
</Reference>
<Reference Include="Dapplo.HttpExtensions.JsonNet, Version=0.8.46.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.HttpExtensions.JsonNet.0.8.46\lib\net46\Dapplo.HttpExtensions.JsonNet.dll</HintPath>
</Reference>
<Reference Include="Dapplo.HttpExtensions.OAuth, Version=0.8.46.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.HttpExtensions.OAuth.0.8.46\lib\net46\Dapplo.HttpExtensions.OAuth.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Ini, Version=0.5.31.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll</HintPath>
</Reference>
<Reference Include="Dapplo.InterfaceImpl, Version=0.2.12.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Language, Version=0.5.31.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Log, Version=1.2.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Utils, Version=1.0.161.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Clipboard, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Clipboard.0.5.109\lib\net461\Dapplo.Windows.Clipboard.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Com, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Com.0.5.109\lib\net461\Dapplo.Windows.Com.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Common, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.DesktopWindowsManager, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Dpi, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.EmbeddedBrowser, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.EmbeddedBrowser.0.5.109\lib\net461\Dapplo.Windows.EmbeddedBrowser.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Gdi32, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Input, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Kernel32, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Messages, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.User32, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll</HintPath>
</Reference>
<None Include="Languages\language*.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net471' ">
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Drawing" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Net.Http.WebRequest" />
<Reference Include="System.Reactive, Version=4.1.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL">
<HintPath>..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Caching" />
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Windows" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.3.2.0\lib\net45\System.Windows.Interactivity.dll</HintPath>
</Reference>
<Reference Include="System.Core" />
<Reference Include="System.Xaml" />
<Reference Include="System.Xml" />
<Reference Include="System.ServiceModel.Web" />
<Reference Include="System.Xml.Linq" />
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
</ItemGroup>
<ItemGroup>
<Compile Include="BoxAddonModule.cs" />
<Compile Include="Entities\BoxEntity.cs" />
<Compile Include="Entities\BoxFile.cs" />
<Compile Include="Entities\BoxItem.cs" />
<Compile Include="Entities\BoxSharedLink.cs" />
<Compile Include="IBoxConfiguration.cs" />
<Compile Include="BoxDestination.cs" />
<Compile Include="IBoxLanguage.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ViewModels\BoxConfigViewModel.cs" />
<EmbeddedResource Include="box.png" />
</ItemGroup>
<ItemGroup />
<ItemGroup>
<None Include="packages.config" />
<Resource Include="Languages\language_boxplugin-fr-FR.xml" />
<Resource Include="Languages\language_boxplugin-id-ID.xml" />
<Resource Include="Languages\language_boxplugin-it-IT.xml" />
<Resource Include="Languages\language_boxplugin-ja-JP.xml" />
<Resource Include="Languages\language_boxplugin-kab-DZ.xml" />
<Resource Include="Languages\language_boxplugin-ko-KR.xml" />
<Resource Include="Languages\language_boxplugin-lv-LV.xml" />
<Resource Include="Languages\language_boxplugin-pl-PL.xml" />
<Resource Include="Languages\language_boxplugin-pt-PT.xml" />
<Resource Include="Languages\language_boxplugin-ru-RU.xml" />
<Resource Include="Languages\language_boxplugin-sr-Cyrl-RS.xml" />
<Resource Include="Languages\language_boxplugin-sv-SE.xml" />
<Resource Include="Languages\language_boxplugin-uk-UA.xml" />
<Resource Include="Languages\language_boxplugin-zh-CN.xml" />
<Resource Include="Languages\language_boxplugin-zh-TW.xml" />
<None Include="app.config" />
<EmbeddedResource Include="box.png" />
<Resource Include="Languages\language_boxplugin-cs-CZ.xml" />
<Resource Include="Languages\language_boxplugin-de-DE.xml" />
<Content Include="Languages\language_boxplugin-en-US.xml" />
<ProjectReference Include="..\Greenshot.Addons\Greenshot.Addons.csproj" />
<ProjectReference Include="..\Greenshot.Core\Greenshot.Core.csproj" />
<ProjectReference Include="..\Greenshot.Gfx\Greenshot.Gfx.csproj" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Greenshot.Core\Greenshot.Core.csproj">
<Project>{bf35190d-b2a7-4cfa-b397-51cb384cf0d7}</Project>
<Name>Greenshot.Core</Name>
</ProjectReference>
<ProjectReference Include="..\Greenshot.Gfx\Greenshot.Gfx.csproj">
<Project>{f041c685-eb96-4ed1-9ace-0f5bd836610f}</Project>
<Name>Greenshot.Gfx</Name>
</ProjectReference>
<ProjectReference Include="..\Greenshot.Addons\Greenshot.Addons.csproj">
<Project>{5B924697-4DCD-4F98-85F1-105CB84B7341}</Project>
<Name>Greenshot.Addons</Name>
</ProjectReference>
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.7" />
<PackageReference Include="Dapplo.HttpExtensions" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.7.26" />
<PackageReference Include="Fody" Version="3.3.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<Page Include="Views\BoxConfigView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<PropertyGroup>
<PostBuildEvent>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)"</PostBuildEvent>
<PreBuildEvent>
</PreBuildEvent>
</PropertyGroup>
</Project>

View file

@ -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 <http://www.gnu.org/licenses/>.
#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")]

View file

@ -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;

View file

@ -1,42 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Autofac" version="4.8.1" targetFramework="net461" />
<package id="Autofac.Extras.AttributeMetadata" version="4.0.1" targetFramework="net461" />
<package id="Autofac.Mef" version="4.0.0" targetFramework="net461" />
<package id="Caliburn.Micro" version="3.2.0" targetFramework="net461" />
<package id="Caliburn.Micro.Core" version="3.2.0" targetFramework="net461" />
<package id="CommonServiceLocator" version="2.0.4" targetFramework="net461" />
<package id="Dapplo.Addons" version="1.0.79" targetFramework="net461" />
<package id="Dapplo.Addons.Bootstrapper" version="1.0.79" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Configuration" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Dapp" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Menu" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Security" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Translations" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.HttpExtensions" version="0.8.46" targetFramework="net461" />
<package id="Dapplo.HttpExtensions.JsonNet" version="0.8.46" targetFramework="net461" />
<package id="Dapplo.HttpExtensions.OAuth" version="0.8.46" targetFramework="net461" />
<package id="Dapplo.Ini" version="0.5.31" targetFramework="net461" />
<package id="Dapplo.InterfaceImpl" version="0.2.12" targetFramework="net461" />
<package id="Dapplo.Language" version="0.5.31" targetFramework="net461" />
<package id="Dapplo.Log" version="1.2.1" targetFramework="net461" />
<package id="Dapplo.Utils" version="1.0.161" targetFramework="net461" />
<package id="Dapplo.Windows" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Clipboard" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Com" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Common" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.DesktopWindowsManager" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Dpi" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.EmbeddedBrowser" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Gdi32" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Input" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Kernel32" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Messages" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.User32" version="0.5.109" targetFramework="net461" />
<package id="Newtonsoft.Json" version="11.0.2" targetFramework="net461" />
<package id="System.Reactive" version="4.1.0" targetFramework="net461" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.1" targetFramework="net461" />
<package id="System.Threading.Tasks.Extensions" version="4.5.1" targetFramework="net461" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net461" />
</packages>

View file

@ -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
{
/// <summary>
/// Description of ConfluenceConfiguration.
/// </summary>
[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")]

View file

@ -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; }

View file

@ -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 <http://www.gnu.org/licenses/>.
#endregion
using Dapplo.Config.Ini;
using Greenshot.Core.Enums;
namespace Greenshot.Addon.Confluence.Configuration.Impl
{
internal class ConfluenceConfigurationImpl : IniSectionBase<IConfluenceConfiguration>, 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
}
}

View file

@ -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 <http://www.gnu.org/licenses/>.
#endregion
using System.Diagnostics.CodeAnalysis;
using Dapplo.Config.Language;
namespace Greenshot.Addon.Confluence.Configuration.Impl
{
/// <summary>
/// This implements IConfluenceLanguage and takes care of storing, all setters are replaced via AutoProperties.Fody
/// </summary>
[SuppressMessage("ReSharper", "UnassignedGetOnlyAutoProperty")]
#pragma warning disable CS1591
public class ConfluenceLanguageImpl : LanguageBase<IConfluenceLanguage>, 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
}
}

View file

@ -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<IConfluenceConfiguration>())
.RegisterType<ConfluenceConfigurationImpl>()
.As<IConfluenceConfiguration>()
.As<IIniSection>()
.SingleInstance();
builder
.Register(context => LanguageLoader.Current.Get<IConfluenceLanguage>())
.RegisterType<ConfluenceLanguageImpl>()
.As<IConfluenceLanguage>()
.As<ILanguage>()
.SingleInstance();
builder
.RegisterType<ConfluenceDestination>()
.As<IDestination>()
.SingleInstance();
builder
.RegisterType<ConfluenceConfigViewModel>()
.As<IConfigScreen>()

View file

@ -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;

View file

@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<Weavers>
<Costura IncludeDebugSymbols='false'>
<IncludeAssemblies>
<?xml version="1.0" encoding="utf-8"?>
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
<!--Costura IncludeDebugSymbols="false">
<IncludeAssemblies>
Dapplo.Confluence
Dapplo.HttpExtensions.JsonSimple
</IncludeAssemblies>
</Costura>
</Costura-->
<AutoProperties />
</Weavers>

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuild. -->
<xs:element name="Weavers">
<xs:complexType>
<xs:all>
<xs:element name="AutoProperties" minOccurs="0" maxOccurs="1" type="xs:anyType" />
</xs:all>
<xs:attribute name="VerifyAssembly" type="xs:boolean">
<xs:annotation>
<xs:documentation>'true' to run assembly verification on the target assembly after all weavers have been finished.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VerifyIgnoreCodes" type="xs:string">
<xs:annotation>
<xs:documentation>A comma separated list of error codes that can be safely ignored in assembly verification.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>

View file

@ -1,140 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\CommonProject.properties" />
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<ProjectGuid>{C3052651-598A-44E2-AAB3-2E41311D50F9}</ProjectGuid>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<RootNamespace>Greenshot.Addon.Confluence</RootNamespace>
<AssemblyName>Greenshot.Addon.Confluence</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<AppDesignerFolder>Properties</AppDesignerFolder>
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
<NoStdLib>False</NoStdLib>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<TargetFrameworkProfile />
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>3.5</OldToolsVersion>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<TargetFrameworks>net471;netcoreapp3.0</TargetFrameworks>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
<ItemGroup>
<Reference Include="Autofac, Version=4.8.1.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.4.8.1\lib\net45\Autofac.dll</HintPath>
</Reference>
<Reference Include="Autofac.Extras.AttributeMetadata, Version=4.0.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll</HintPath>
</Reference>
<Reference Include="Autofac.Integration.Mef, Version=4.0.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll</HintPath>
</Reference>
<Reference Include="Caliburn.Micro, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll</HintPath>
</Reference>
<Reference Include="Caliburn.Micro.Platform, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll</HintPath>
</Reference>
<Reference Include="Caliburn.Micro.Platform.Core, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll</HintPath>
</Reference>
<Reference Include="CommonServiceLocator, Version=2.0.4.0, Culture=neutral, PublicKeyToken=489b6accfaf20ef0, processorArchitecture=MSIL">
<HintPath>..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll</HintPath>
</Reference>
<Reference Include="Costura, Version=3.1.0.0, Culture=neutral, PublicKeyToken=9919ef960d84173d, processorArchitecture=MSIL">
<HintPath>..\packages\Costura.Fody.3.1.0\lib\net46\Costura.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Addons, Version=1.0.79.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Addons.Bootstrapper, Version=1.0.79.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Configuration, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Configuration.1.0.75\lib\net461\Dapplo.CaliburnMicro.Configuration.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Dapp, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Dapp.1.0.75\lib\net461\Dapplo.CaliburnMicro.Dapp.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Menu, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Menu.1.0.75\lib\net461\Dapplo.CaliburnMicro.Menu.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Security, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Security.1.0.75\lib\net461\Dapplo.CaliburnMicro.Security.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Translations, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Confluence, Version=0.7.19.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Confluence.0.7.19\lib\net46\Dapplo.Confluence.dll</HintPath>
</Reference>
<Reference Include="Dapplo.HttpExtensions, Version=0.8.46.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.HttpExtensions.0.8.46\lib\net46\Dapplo.HttpExtensions.dll</HintPath>
</Reference>
<Reference Include="Dapplo.HttpExtensions.JsonSimple, Version=0.8.46.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.HttpExtensions.JsonSimple.0.8.46\lib\net46\Dapplo.HttpExtensions.JsonSimple.dll</HintPath>
</Reference>
<Reference Include="Dapplo.HttpExtensions.OAuth, Version=0.8.46.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.HttpExtensions.OAuth.0.8.46\lib\net46\Dapplo.HttpExtensions.OAuth.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Ini, Version=0.5.31.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll</HintPath>
</Reference>
<Reference Include="Dapplo.InterfaceImpl, Version=0.2.12.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Language, Version=0.5.31.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Log, Version=1.2.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Utils, Version=1.0.161.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Clipboard, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Clipboard.0.5.109\lib\net461\Dapplo.Windows.Clipboard.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Com, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Com.0.5.109\lib\net461\Dapplo.Windows.Com.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Common, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.DesktopWindowsManager, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Dpi, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.EmbeddedBrowser, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.EmbeddedBrowser.0.5.109\lib\net461\Dapplo.Windows.EmbeddedBrowser.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Gdi32, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Input, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Kernel32, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Messages, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.User32, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll</HintPath>
</Reference>
<None Include="Languages\language*.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net471'">
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="PresentationCore" />
@ -142,110 +20,46 @@
<Reference Include="System" />
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.EnterpriseServices" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Net.Http.WebRequest" />
<Reference Include="System.Reactive, Version=4.1.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL">
<HintPath>..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Caching" />
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Web.Services" />
<Reference Include="System.Windows" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.3.2.0\lib\net45\System.Windows.Interactivity.dll</HintPath>
</Reference>
<Reference Include="System.Xaml" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="UIAutomationClient">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="UIAutomationTypes">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="WindowsBase" />
<Reference Include="UIAutomationClient" />
<Reference Include="UIAutomationTypes" />
</ItemGroup>
<ItemGroup>
<Compile Include="ConfluenceAddonModule.cs" />
<Compile Include="IConfluenceLanguage.cs" />
<Compile Include="IConfluenceConfiguration.cs" />
<Compile Include="ConfluenceDestination.cs" />
<Compile Include="ConfluenceUtils.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ViewModels\ConfluenceConfigViewModel.cs" />
<None Include="packages.config" />
<Resource Include="Images\Confluence.ico" />
<None Include="app.config" />
<None Include="Languages\language_confluence-de-DE.xml">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</None>
<None Include="Languages\language_confluence-en-US.xml">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</None>
<None Include="Languages\language_confluence-nl-NL.xml">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</None>
<Resource Include="Images\Confluence.ico" />
</ItemGroup>
<ItemGroup>
<Page Include="Views\ConfluenceConfigView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<ProjectReference Include="..\Greenshot.Addon.InternetExplorer\Greenshot.Addon.InternetExplorer.csproj" />
<ProjectReference Include="..\Greenshot.Addons\Greenshot.Addons.csproj" />
<ProjectReference Include="..\Greenshot.Core\Greenshot.Core.csproj" />
<ProjectReference Include="..\Greenshot.Gfx\Greenshot.Gfx.csproj" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Greenshot.Addon.InternetExplorer\Greenshot.Addon.InternetExplorer.csproj">
<Project>{4cca2717-b8a4-44f7-965b-5687107e4921}</Project>
<Name>Greenshot.Addon.InternetExplorer</Name>
</ProjectReference>
<ProjectReference Include="..\Greenshot.Core\Greenshot.Core.csproj">
<Project>{bf35190d-b2a7-4cfa-b397-51cb384cf0d7}</Project>
<Name>Greenshot.Core</Name>
</ProjectReference>
<ProjectReference Include="..\Greenshot.Gfx\Greenshot.Gfx.csproj">
<Project>{f041c685-eb96-4ed1-9ace-0f5bd836610f}</Project>
<Name>Greenshot.Gfx</Name>
</ProjectReference>
<ProjectReference Include="..\Greenshot.Addons\Greenshot.Addons.csproj">
<Project>{5B924697-4DCD-4F98-85F1-105CB84B7341}</Project>
<Name>Greenshot.Addons</Name>
<Private>False</Private>
</ProjectReference>
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.7" />
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.7.26" />
<PackageReference Include="Dapplo.Confluence" Version="0.8.16" />
<PackageReference Include="Fody" Version="3.3.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<Resource Include="FodyWeavers.xml" />
</ItemGroup>
<PropertyGroup>
<PostBuildEvent>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)"</PostBuildEvent>
</PropertyGroup>
<Import Project="..\packages\Fody.3.1.4\build\Fody.targets" Condition="Exists('..\packages\Fody.3.1.4\build\Fody.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>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}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Fody.3.1.4\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.3.1.4\build\Fody.targets'))" />
<Error Condition="!Exists('..\packages\Costura.Fody.3.1.0\build\Costura.Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Costura.Fody.3.1.0\build\Costura.Fody.targets'))" />
</Target>
<Import Project="..\packages\Costura.Fody.3.1.0\build\Costura.Fody.targets" Condition="Exists('..\packages\Costura.Fody.3.1.0\build\Costura.Fody.targets')" />
</Project>

View file

@ -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 <http://www.gnu.org/licenses/>.
#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")]

View file

@ -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;

View file

@ -1,44 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Autofac" version="4.8.1" targetFramework="net461" />
<package id="Autofac.Extras.AttributeMetadata" version="4.0.1" targetFramework="net461" />
<package id="Autofac.Mef" version="4.0.0" targetFramework="net461" />
<package id="Caliburn.Micro" version="3.2.0" targetFramework="net461" />
<package id="Caliburn.Micro.Core" version="3.2.0" targetFramework="net461" />
<package id="CommonServiceLocator" version="2.0.4" targetFramework="net461" />
<package id="Costura.Fody" version="3.1.0" targetFramework="net461" />
<package id="Dapplo.Addons" version="1.0.79" targetFramework="net461" />
<package id="Dapplo.Addons.Bootstrapper" version="1.0.79" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Configuration" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Dapp" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Menu" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Security" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Translations" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.Confluence" version="0.7.19" targetFramework="net461" />
<package id="Dapplo.HttpExtensions" version="0.8.46" targetFramework="net461" />
<package id="Dapplo.HttpExtensions.JsonSimple" version="0.8.46" targetFramework="net461" />
<package id="Dapplo.HttpExtensions.OAuth" version="0.8.46" targetFramework="net461" />
<package id="Dapplo.Ini" version="0.5.31" targetFramework="net461" />
<package id="Dapplo.InterfaceImpl" version="0.2.12" targetFramework="net461" />
<package id="Dapplo.Language" version="0.5.31" targetFramework="net461" />
<package id="Dapplo.Log" version="1.2.1" targetFramework="net461" />
<package id="Dapplo.Utils" version="1.0.161" targetFramework="net461" />
<package id="Dapplo.Windows" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Clipboard" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Com" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Common" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.DesktopWindowsManager" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Dpi" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.EmbeddedBrowser" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Gdi32" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Input" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Kernel32" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Messages" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.User32" version="0.5.109" targetFramework="net461" />
<package id="Fody" version="3.1.4" targetFramework="net461" developmentDependency="true" />
<package id="System.Reactive" version="4.1.0" targetFramework="net461" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.1" targetFramework="net461" />
<package id="System.Threading.Tasks.Extensions" version="4.5.1" targetFramework="net461" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net461" />
</packages>

View file

@ -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
{
/// <summary>
/// Description of ImgurConfiguration.
/// </summary>
[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)]

View file

@ -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; }

View file

@ -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 <http://www.gnu.org/licenses/>.
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>, 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
}
}

View file

@ -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 <http://www.gnu.org/licenses/>.
using System.Diagnostics.CodeAnalysis;
using Dapplo.Config.Language;
namespace Greenshot.Addon.Dropbox.Configuration.Impl
{
/// <summary>
/// This implements IDropboxLanguage and takes care of storing, all setters are replaced via AutoProperties.Fody
/// </summary>
#pragma warning disable CS1591
[SuppressMessage("ReSharper", "UnassignedGetOnlyAutoProperty")]
public class DropboxLanguageImpl: LanguageBase<IDropboxLanguage>, 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
}
}

View file

@ -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<IDropboxConfiguration>())
.RegisterType<DropboxConfigurationImpl>()
.As<IDropboxConfiguration>()
.As<IIniSection>()
.SingleInstance();
builder
.Register(context => LanguageLoader.Current.Get<IDropboxLanguage>())
.RegisterType<DropboxLanguageImpl>()
.As<IDropboxLanguage>()
.As<ILanguage>()
.SingleInstance();
builder

View file

@ -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
/// <param name="progress">IProgress</param>
/// <param name="cancellationToken">CancellationToken</param>
/// <returns>Url as string</returns>
private async Task<string> UploadAsync(string filename, HttpContent content, IProgress<int> progress = null, CancellationToken cancellationToken = default(CancellationToken))
private async Task<string> UploadAsync(string filename, HttpContent content, IProgress<int> progress = null, CancellationToken cancellationToken = default)
{
var oAuthHttpBehaviour = _oAuthHttpBehaviour.ShallowClone();
// Use UploadProgress

View file

@ -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 <http://www.gnu.org/licenses/>.
using Newtonsoft.Json;
namespace Greenshot.Addon.Dropbox.Entities
{

View file

@ -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 <http://www.gnu.org/licenses/>.
using Newtonsoft.Json;
namespace Greenshot.Addon.Dropbox.Entities
{

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
<AutoProperties />
</Weavers>

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuild. -->
<xs:element name="Weavers">
<xs:complexType>
<xs:all>
<xs:element name="AutoProperties" minOccurs="0" maxOccurs="1" type="xs:anyType" />
</xs:all>
<xs:attribute name="VerifyAssembly" type="xs:boolean">
<xs:annotation>
<xs:documentation>'true' to run assembly verification on the target assembly after all weavers have been finished.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VerifyIgnoreCodes" type="xs:string">
<xs:annotation>
<xs:documentation>A comma separated list of error codes that can be safely ignored in assembly verification.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>

View file

@ -1,137 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\CommonProject.properties" />
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<ProjectGuid>{AD7CFFE2-40E7-46CF-A172-D48CF7AE9A12}</ProjectGuid>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<RootNamespace>Greenshot.Addon.Dropbox</RootNamespace>
<AssemblyName>Greenshot.Addon.Dropbox</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<AppDesignerFolder>Properties</AppDesignerFolder>
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
<NoStdLib>False</NoStdLib>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<TargetFrameworkProfile />
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>3.5</OldToolsVersion>
<TargetFrameworks>net471;netcoreapp3.0</TargetFrameworks>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
<ItemGroup>
<Reference Include="Autofac, Version=4.8.1.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.4.8.1\lib\net45\Autofac.dll</HintPath>
</Reference>
<Reference Include="Autofac.Extras.AttributeMetadata, Version=4.0.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll</HintPath>
</Reference>
<Reference Include="Autofac.Integration.Mef, Version=4.0.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll</HintPath>
</Reference>
<Reference Include="Caliburn.Micro, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll</HintPath>
</Reference>
<Reference Include="Caliburn.Micro.Platform, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll</HintPath>
</Reference>
<Reference Include="Caliburn.Micro.Platform.Core, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll</HintPath>
</Reference>
<Reference Include="CommonServiceLocator, Version=2.0.4.0, Culture=neutral, PublicKeyToken=489b6accfaf20ef0, processorArchitecture=MSIL">
<HintPath>..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Addons, Version=1.0.79.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Addons.Bootstrapper, Version=1.0.79.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Configuration, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Configuration.1.0.75\lib\net461\Dapplo.CaliburnMicro.Configuration.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Dapp, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Dapp.1.0.75\lib\net461\Dapplo.CaliburnMicro.Dapp.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Menu, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Menu.1.0.75\lib\net461\Dapplo.CaliburnMicro.Menu.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Security, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Security.1.0.75\lib\net461\Dapplo.CaliburnMicro.Security.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Translations, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll</HintPath>
</Reference>
<Reference Include="Dapplo.HttpExtensions, Version=0.8.46.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.HttpExtensions.0.8.46\lib\net46\Dapplo.HttpExtensions.dll</HintPath>
</Reference>
<Reference Include="Dapplo.HttpExtensions.JsonNet, Version=0.8.46.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.HttpExtensions.JsonNet.0.8.46\lib\net46\Dapplo.HttpExtensions.JsonNet.dll</HintPath>
</Reference>
<Reference Include="Dapplo.HttpExtensions.OAuth, Version=0.8.46.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.HttpExtensions.OAuth.0.8.46\lib\net46\Dapplo.HttpExtensions.OAuth.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Ini, Version=0.5.31.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll</HintPath>
</Reference>
<Reference Include="Dapplo.InterfaceImpl, Version=0.2.12.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Language, Version=0.5.31.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Log, Version=1.2.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Utils, Version=1.0.161.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Clipboard, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Clipboard.0.5.109\lib\net461\Dapplo.Windows.Clipboard.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Com, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Com.0.5.109\lib\net461\Dapplo.Windows.Com.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Common, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.DesktopWindowsManager, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Dpi, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.EmbeddedBrowser, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.EmbeddedBrowser.0.5.109\lib\net461\Dapplo.Windows.EmbeddedBrowser.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Gdi32, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Input, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Kernel32, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Messages, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.User32, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll</HintPath>
</Reference>
<None Include="Languages\language*.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net471'">
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
@ -140,99 +23,38 @@
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Net.Http.WebRequest" />
<Reference Include="System.Reactive, Version=4.1.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL">
<HintPath>..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Caching" />
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Windows" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.3.2.0\lib\net45\System.Windows.Interactivity.dll</HintPath>
</Reference>
<Reference Include="System.Xaml" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq" />
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<Compile Include="DropboxAddonModule.cs" />
<Compile Include="Entities\CreateLinkReply.cs" />
<Compile Include="Entities\CreateLinkRequest.cs" />
<Compile Include="Entities\Error.cs" />
<Compile Include="Entities\ErrorTag.cs" />
<Compile Include="Entities\SharingInfo.cs" />
<Compile Include="Entities\Upload.cs" />
<Compile Include="Entities\UploadReply.cs" />
<Compile Include="Entities\UploadRequest.cs" />
<Compile Include="IDropboxLanguage.cs" />
<Compile Include="IDropboxConfiguration.cs" />
<Compile Include="DropboxDestination.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ViewModels\DropboxConfigViewModel.cs" />
<EmbeddedResource Include="Dropbox.gif" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Dropbox.gif" />
<None Include="app.config" />
<None Include="Languages\language_dropboxplugin-en-US.xml" />
<None Include="packages.config" />
<ProjectReference Include="..\Greenshot.Addons\Greenshot.Addons.csproj" />
<ProjectReference Include="..\Greenshot.Core\Greenshot.Core.csproj" />
<ProjectReference Include="..\Greenshot.Gfx\Greenshot.Gfx.csproj" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Greenshot.Core\Greenshot.Core.csproj">
<Project>{bf35190d-b2a7-4cfa-b397-51cb384cf0d7}</Project>
<Name>Greenshot.Core</Name>
</ProjectReference>
<ProjectReference Include="..\Greenshot.Gfx\Greenshot.Gfx.csproj">
<Project>{f041c685-eb96-4ed1-9ace-0f5bd836610f}</Project>
<Name>Greenshot.Gfx</Name>
</ProjectReference>
<ProjectReference Include="..\Greenshot.Addons\Greenshot.Addons.csproj">
<Project>{5B924697-4DCD-4F98-85F1-105CB84B7341}</Project>
<Name>Greenshot.Addons</Name>
</ProjectReference>
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.7" />
<PackageReference Include="Dapplo.HttpExtensions" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.7.26" />
<PackageReference Include="Fody" Version="3.3.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<Page Include="Views\DropboxConfigView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<ItemGroup>
<Resource Include="Languages\language_dropboxplugin-cs-CZ.xml" />
<Resource Include="Languages\language_dropboxplugin-de-DE.xml" />
<Resource Include="Languages\language_dropboxplugin-fr-FR.xml" />
<Resource Include="Languages\language_dropboxplugin-id-ID.xml" />
<Resource Include="Languages\language_dropboxplugin-it-IT.xml" />
<Resource Include="Languages\language_dropboxplugin-ja-JP.xml" />
<Resource Include="Languages\language_dropboxplugin-kab-DZ.xml" />
<Resource Include="Languages\language_dropboxplugin-ko-KR.xml" />
<Resource Include="Languages\language_dropboxplugin-lv-LV.xml" />
<Resource Include="Languages\language_dropboxplugin-pl-PL.xml" />
<Resource Include="Languages\language_dropboxplugin-pt-PT.xml" />
<Resource Include="Languages\language_dropboxplugin-ru-RU.xml" />
<Resource Include="Languages\language_dropboxplugin-sr-Cyrl-RS.xml" />
<Resource Include="Languages\language_dropboxplugin-sv-SE.xml" />
<Resource Include="Languages\language_dropboxplugin-uk-UA.xml" />
<Resource Include="Languages\language_dropboxplugin-zh-CN.xml" />
<Resource Include="Languages\language_dropboxplugin-zh-TW.xml" />
</ItemGroup>
<PropertyGroup>
<PostBuildEvent>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)"</PostBuildEvent>
<PreBuildEvent>
</PreBuildEvent>
</PropertyGroup>
</Project>

View file

@ -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 <http://www.gnu.org/licenses/>.
#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")]

View file

@ -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;

View file

@ -1,27 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="CommonServiceLocator" publicKeyToken="489b6accfaf20ef0" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.3.0" newVersion="2.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.8.1.0" newVersion="4.8.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="ToastNotifications" publicKeyToken="e89d9d7314a7c797" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.3.4.0" newVersion="2.3.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Reactive" publicKeyToken="94bc3704cddfc263" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /></startup></configuration>
<runtime>
</runtime>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.1" />
</startup>
</configuration>

View file

@ -1,42 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Autofac" version="4.8.1" targetFramework="net461" />
<package id="Autofac.Extras.AttributeMetadata" version="4.0.1" targetFramework="net461" />
<package id="Autofac.Mef" version="4.0.0" targetFramework="net461" />
<package id="Caliburn.Micro" version="3.2.0" targetFramework="net461" />
<package id="Caliburn.Micro.Core" version="3.2.0" targetFramework="net461" />
<package id="CommonServiceLocator" version="2.0.4" targetFramework="net461" />
<package id="Dapplo.Addons" version="1.0.79" targetFramework="net461" />
<package id="Dapplo.Addons.Bootstrapper" version="1.0.79" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Configuration" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Dapp" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Menu" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Security" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Translations" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.HttpExtensions" version="0.8.46" targetFramework="net461" />
<package id="Dapplo.HttpExtensions.JsonNet" version="0.8.46" targetFramework="net461" />
<package id="Dapplo.HttpExtensions.OAuth" version="0.8.46" targetFramework="net461" />
<package id="Dapplo.Ini" version="0.5.31" targetFramework="net461" />
<package id="Dapplo.InterfaceImpl" version="0.2.12" targetFramework="net461" />
<package id="Dapplo.Language" version="0.5.31" targetFramework="net461" />
<package id="Dapplo.Log" version="1.2.1" targetFramework="net461" />
<package id="Dapplo.Utils" version="1.0.161" targetFramework="net461" />
<package id="Dapplo.Windows" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Clipboard" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Com" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Common" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.DesktopWindowsManager" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Dpi" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.EmbeddedBrowser" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Gdi32" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Input" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Kernel32" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Messages" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.User32" version="0.5.109" targetFramework="net461" />
<package id="Newtonsoft.Json" version="11.0.2" targetFramework="net461" />
<package id="System.Reactive" version="4.1.0" targetFramework="net461" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.1" targetFramework="net461" />
<package id="System.Threading.Tasks.Extensions" version="4.5.1" targetFramework="net461" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net461" />
</packages>

View file

@ -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
{
/// <summary>
/// Helper extensions for the external command configuration

View file

@ -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
{
/// <summary>
/// Description of FlickrConfiguration.
/// </summary>
[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<string> Commands { get; set; }

View file

@ -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; }

View file

@ -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 <http://www.gnu.org/licenses/>.
#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>, IExternalCommandConfiguration
{
#region Overrides of IniSectionBase<IExternalCommandConfiguration>
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<string> Commands { get; set; }
public IDictionary<string, string> Commandline { get; set; }
public IDictionary<string, string> Argument { get; set; }
public IDictionary<string, bool> RunInbackground { get; set; }
public IDictionary<string, CommandBehaviors> Behaviors { get; set; }
public IList<string> DeletedBuildInCommands { get; set; }
#endregion
}
}

View file

@ -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 <http://www.gnu.org/licenses/>.
#endregion
using System.Diagnostics.CodeAnalysis;
using Dapplo.Config.Language;
namespace Greenshot.Addon.ExternalCommand.Configuration.Impl
{
/// <summary>
/// This implements IExternalCommandLanguage and takes care of storing, all setters are replaced via AutoProperties.Fody
/// </summary>
[SuppressMessage("ReSharper", "UnassignedGetOnlyAutoProperty")]
#pragma warning disable CS1591
public class ExternalCommandLanguageImpl : LanguageBase<IExternalCommandLanguage>, 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
}
}

View file

@ -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<IExternalCommandConfiguration>())
.RegisterType<ExternalCommandConfigurationImpl>()
.As<IExternalCommandConfiguration>()
.As<IIniSection>()
.SingleInstance();
builder
.Register(context => LanguageLoader.Current.Get<IExternalCommandLanguage>())
.RegisterType<ExternalCommandLanguageImpl>()
.As<IExternalCommandLanguage>()
.As<ILanguage>()
.SingleInstance();
builder
@ -60,20 +64,7 @@ namespace Greenshot.Addon.ExternalCommand
.AsSelf()
.SingleInstance();
builder.RegisterType<SetupConfig>()
.As<IStartable>()
.SingleInstance();
base.Load(builder);
}
/// <inheritdoc />
private class SetupConfig : IStartable
{
public void Start()
{
IniConfig.Current.AfterLoad<IExternalCommandConfiguration>(externalCommandConfiguration => externalCommandConfiguration.AfterLoad());
}
}
}
}

View file

@ -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);

View file

@ -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
/// <summary>
/// Generate the external command destinations
/// </summary>
[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();

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
<AutoProperties />
</Weavers>

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuild. -->
<xs:element name="Weavers">
<xs:complexType>
<xs:all>
<xs:element name="AutoProperties" minOccurs="0" maxOccurs="1" type="xs:anyType" />
</xs:all>
<xs:attribute name="VerifyAssembly" type="xs:boolean">
<xs:annotation>
<xs:documentation>'true' to run assembly verification on the target assembly after all weavers have been finished.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VerifyIgnoreCodes" type="xs:string">
<xs:annotation>
<xs:documentation>A comma separated list of error codes that can be safely ignored in assembly verification.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>

View file

@ -1,135 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\CommonProject.properties" />
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<ProjectGuid>{47F23C86-604E-4CC3-8767-B3D4088F30BB}</ProjectGuid>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<RootNamespace>Greenshot.Addon.ExternalCommand</RootNamespace>
<AssemblyName>Greenshot.Addon.ExternalCommand</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<AppDesignerFolder>Properties</AppDesignerFolder>
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
<NoStdLib>False</NoStdLib>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
<TargetFrameworkProfile />
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>3.5</OldToolsVersion>
<TargetFrameworks>net471;netcoreapp3.0</TargetFrameworks>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<Prefer32Bit>false</Prefer32Bit>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<Prefer32Bit>false</Prefer32Bit>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
<ItemGroup>
<Reference Include="Autofac, Version=4.8.1.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.4.8.1\lib\net45\Autofac.dll</HintPath>
</Reference>
<Reference Include="Autofac.Extras.AttributeMetadata, Version=4.0.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll</HintPath>
</Reference>
<Reference Include="Autofac.Integration.Mef, Version=4.0.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll</HintPath>
</Reference>
<Reference Include="Caliburn.Micro, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll</HintPath>
</Reference>
<Reference Include="Caliburn.Micro.Platform, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll</HintPath>
</Reference>
<Reference Include="Caliburn.Micro.Platform.Core, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll</HintPath>
</Reference>
<Reference Include="CliWrap, Version=1.8.5.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\CliWrap.1.8.5\lib\net45\CliWrap.dll</HintPath>
</Reference>
<Reference Include="CommonServiceLocator, Version=2.0.4.0, Culture=neutral, PublicKeyToken=489b6accfaf20ef0, processorArchitecture=MSIL">
<HintPath>..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Addons, Version=1.0.79.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Addons.Bootstrapper, Version=1.0.79.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Configuration, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Configuration.1.0.75\lib\net461\Dapplo.CaliburnMicro.Configuration.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Dapp, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Dapp.1.0.75\lib\net461\Dapplo.CaliburnMicro.Dapp.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Menu, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Menu.1.0.75\lib\net461\Dapplo.CaliburnMicro.Menu.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Security, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Security.1.0.75\lib\net461\Dapplo.CaliburnMicro.Security.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Translations, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Ini, Version=0.5.31.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll</HintPath>
</Reference>
<Reference Include="Dapplo.InterfaceImpl, Version=0.2.12.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Language, Version=0.5.31.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Log, Version=1.2.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Utils, Version=1.0.161.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Clipboard, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Clipboard.0.5.109\lib\net461\Dapplo.Windows.Clipboard.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Common, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.DesktopWindowsManager, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Dpi, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Gdi32, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Input, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Kernel32, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Messages, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.User32, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll</HintPath>
</Reference>
<None Include="Languages\language*.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net471'">
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="PresentationCore" />
@ -138,128 +21,30 @@
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Drawing" />
<Reference Include="System.Reactive, Version=4.1.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL">
<HintPath>..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Caching" />
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Windows" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.3.2.0\lib\net45\System.Windows.Interactivity.dll</HintPath>
</Reference>
<Reference Include="System.Xaml" />
<Reference Include="System.Xml" />
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<Compile Include="Entities\CommandBehaviors.cs" />
<Compile Include="Entities\ExternalCommandDefinition.cs" />
<Compile Include="ExternalCommandConfigurationExtensions.cs" />
<Compile Include="ExternalCommandDestination.cs" />
<Compile Include="ExternalCommandDestinationProvider.cs" />
<Compile Include="IExternalCommandLanguage.cs" />
<Compile Include="IconCache.cs" />
<Compile Include="ExternalCommandAddonModule.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="IExternalCommandConfiguration.cs" />
<Compile Include="ViewModels\ExternalCommandConfigViewModel.cs" />
<Compile Include="ViewModels\ExternalCommandDetailsViewModel.cs" />
<Compile Include="ViewModels\ExternalCommandMasterViewModel.cs" />
<None Include="app.config" />
<None Include="Languages\language_externalcommandplugin-en-US.xml" />
<None Include="packages.config" />
<ProjectReference Include="..\Greenshot.Addons\Greenshot.Addons.csproj" />
<ProjectReference Include="..\Greenshot.Core\Greenshot.Core.csproj" />
<ProjectReference Include="..\Greenshot.Gfx\Greenshot.Gfx.csproj" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Greenshot.Core\Greenshot.Core.csproj">
<Project>{bf35190d-b2a7-4cfa-b397-51cb384cf0d7}</Project>
<Name>Greenshot.Core</Name>
</ProjectReference>
<ProjectReference Include="..\Greenshot.Gfx\Greenshot.Gfx.csproj">
<Project>{f041c685-eb96-4ed1-9ace-0f5bd836610f}</Project>
<Name>Greenshot.Gfx</Name>
</ProjectReference>
<ProjectReference Include="..\Greenshot.Addons\Greenshot.Addons.csproj">
<Project>{5B924697-4DCD-4F98-85F1-105CB84B7341}</Project>
<Name>Greenshot.Addons</Name>
</ProjectReference>
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.7" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.7.26" />
<PackageReference Include="CliWrap" Version="2.1.0" />
<PackageReference Include="Fody" Version="3.3.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<Content Include="Languages\language_externalcommandplugin-cs-CZ.xml" />
<Content Include="Languages\language_externalcommandplugin-de-DE.xml" />
<Content Include="Languages\language_externalcommandplugin-fr-FR.xml" />
<Content Include="Languages\language_externalcommandplugin-id-ID.xml" />
<Content Include="Languages\language_externalcommandplugin-it-IT.xml" />
<Content Include="Languages\language_externalcommandplugin-kab-DZ.xml" />
<Content Include="Languages\language_externalcommandplugin-ko-KR.xml" />
<Content Include="Languages\language_externalcommandplugin-lv-LV.xml" />
<Content Include="Languages\language_externalcommandplugin-pl-PL.xml" />
<Content Include="Languages\language_externalcommandplugin-pt-PT.xml" />
<Content Include="Languages\language_externalcommandplugin-ru-RU.xml" />
<Content Include="Languages\language_externalcommandplugin-sk-SK.xml" />
<Content Include="Languages\language_externalcommandplugin-sr-RS.xml" />
<Content Include="Languages\language_externalcommandplugin-sv-SE.xml" />
<Content Include="Languages\language_externalcommandplugin-uk-UA.xml" />
<Content Include="Languages\language_externalcommandplugin-zh-CN.xml" />
<Content Include="Languages\language_externalcommandplugin-zh-TW.xml" />
</ItemGroup>
<ItemGroup>
<Page Include="Views\ExternalCommandConfigView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\ExternalCommandDetailsView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Views\ExternalCommandMasterView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
</ItemGroup>
<PropertyGroup>
<PostBuildEvent>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)"</PostBuildEvent>
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'x86' ">
<RegisterForComInterop>False</RegisterForComInterop>
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
<BaseAddress>4194304</BaseAddress>
<PlatformTarget>x86</PlatformTarget>
<FileAlignment>4096</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'AnyCPU' ">
<RegisterForComInterop>False</RegisterForComInterop>
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
<BaseAddress>4194304</BaseAddress>
<PlatformTarget>AnyCPU</PlatformTarget>
<FileAlignment>4096</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<DefineConstants>DEBUG;TRACE</DefineConstants>
<Optimize>False</Optimize>
<CheckForOverflowUnderflow>True</CheckForOverflowUnderflow>
<DebugType>Full</DebugType>
<DebugSymbols>true</DebugSymbols>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<DefineConstants>TRACE</DefineConstants>
<Optimize>True</Optimize>
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
<DebugType>None</DebugType>
<DebugSymbols>false</DebugSymbols>
</PropertyGroup>
</Project>

View file

@ -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 <http://www.gnu.org/licenses/>.
#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")]

View file

@ -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;

View file

@ -22,6 +22,7 @@
#endregion
using Caliburn.Micro;
using Greenshot.Addon.ExternalCommand.Configuration;
using Greenshot.Addon.ExternalCommand.Entities;
namespace Greenshot.Addon.ExternalCommand.ViewModels

View file

@ -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

View file

@ -1,37 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Autofac" version="4.8.1" targetFramework="net461" />
<package id="Autofac.Extras.AttributeMetadata" version="4.0.1" targetFramework="net461" />
<package id="Autofac.Mef" version="4.0.0" targetFramework="net461" />
<package id="Caliburn.Micro" version="3.2.0" targetFramework="net461" />
<package id="Caliburn.Micro.Core" version="3.2.0" targetFramework="net461" />
<package id="CliWrap" version="1.8.5" targetFramework="net461" />
<package id="CommonServiceLocator" version="2.0.4" targetFramework="net461" />
<package id="Dapplo.Addons" version="1.0.79" targetFramework="net461" />
<package id="Dapplo.Addons.Bootstrapper" version="1.0.79" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Configuration" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Dapp" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Menu" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Security" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Translations" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.Ini" version="0.5.31" targetFramework="net461" />
<package id="Dapplo.InterfaceImpl" version="0.2.12" targetFramework="net461" />
<package id="Dapplo.Language" version="0.5.31" targetFramework="net461" />
<package id="Dapplo.Log" version="1.2.1" targetFramework="net461" />
<package id="Dapplo.Utils" version="1.0.161" targetFramework="net461" />
<package id="Dapplo.Windows" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Clipboard" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Common" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.DesktopWindowsManager" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Dpi" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Gdi32" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Input" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Kernel32" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Messages" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.User32" version="0.5.109" targetFramework="net461" />
<package id="System.Reactive" version="4.1.0" targetFramework="net461" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.1" targetFramework="net461" />
<package id="System.Threading.Tasks.Extensions" version="4.5.1" targetFramework="net461" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net461" />
</packages>

View file

@ -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
}
/// <summary>
/// Description of FlickrConfiguration.
/// <summary>
/// This defines the configuration for the Flickr addon
/// </summary>
[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; }
/// <summary>
///
/// </summary>
[Description("Safety level")]
[DefaultValue(SafetyLevel.Safe)]
SafetyLevel SafetyLevel { get; set; }
/// <summary>
/// Hide the image from the search results in Flickr
/// </summary>
[Description("Hidden from search")]
[DefaultValue(false)]
bool HiddenFromSearch { get; set; }
/// <summary>
/// Place the link to Flickr onto the clipboard after it's uploaded
/// </summary>
[Description("After upload send flickr link to clipboard.")]
[DefaultValue(true)]
bool AfterUploadLinkToClipBoard { get; set; }
/// <summary>
/// Defines if we use the pagelink or direct link on the clipboard
/// </summary>
[Description("Use pagelink instead of direct link on the clipboard")]
[DefaultValue(false)]
bool UsePageLink { get; set; }

View file

@ -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; }

View file

@ -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 <http://www.gnu.org/licenses/>.
#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>, 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
}
}

View file

@ -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 <http://www.gnu.org/licenses/>.
#endregion
using System.Diagnostics.CodeAnalysis;
using Dapplo.Config.Language;
namespace Greenshot.Addon.Flickr.Configuration.Impl
{
/// <summary>
/// This implements IFlickrLanguage and takes care of storing, all setters are replaced via AutoProperties.Fody
/// </summary>
#pragma warning disable CS1591
[SuppressMessage("ReSharper", "UnassignedGetOnlyAutoProperty")]
public class FlickrLanguageImpl : LanguageBase<IFlickrLanguage>, 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
}
}

View file

@ -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
}
/// <summary>
/// The Flickr SafetyLevel
/// </summary>
public enum SafetyLevel
{
Safe = 1,
Moderate = 2,
Restricted = 3
}
}

View file

@ -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<IFlickrConfiguration>())
.RegisterType<FlickrConfigurationImpl>()
.As<IFlickrConfiguration>()
.As<IIniSection>()
.SingleInstance();
builder
.Register(context => LanguageLoader.Current.Get<IFlickrLanguage>())
.RegisterType<FlickrLanguageImpl>()
.As<IFlickrLanguage>()
.As<ILanguage>()
.SingleInstance();
builder

View file

@ -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;

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
<AutoProperties />
</Weavers>

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuild. -->
<xs:element name="Weavers">
<xs:complexType>
<xs:all>
<xs:element name="AutoProperties" minOccurs="0" maxOccurs="1" type="xs:anyType" />
</xs:all>
<xs:attribute name="VerifyAssembly" type="xs:boolean">
<xs:annotation>
<xs:documentation>'true' to run assembly verification on the target assembly after all weavers have been finished.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VerifyIgnoreCodes" type="xs:string">
<xs:annotation>
<xs:documentation>A comma separated list of error codes that can be safely ignored in assembly verification.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>

View file

@ -1,144 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\CommonProject.properties" />
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<ProjectGuid>{7EC72A5A-D73A-4B4B-9CA1-2216C7D92D5E}</ProjectGuid>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<RootNamespace>Greenshot.Addon.Flickr</RootNamespace>
<AssemblyName>Greenshot.Addon.Flickr</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<AppDesignerFolder>Properties</AppDesignerFolder>
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
<NoStdLib>False</NoStdLib>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<RunPostBuildEvent>Always</RunPostBuildEvent>
<OldToolsVersion>3.5</OldToolsVersion>
<TargetFrameworkProfile />
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<TargetFrameworks>net471;netcoreapp3.0</TargetFrameworks>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<Prefer32Bit>false</Prefer32Bit>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<Prefer32Bit>false</Prefer32Bit>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
<ItemGroup>
<Reference Include="Autofac, Version=4.8.1.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.4.8.1\lib\net45\Autofac.dll</HintPath>
</Reference>
<Reference Include="Autofac.Extras.AttributeMetadata, Version=4.0.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll</HintPath>
</Reference>
<Reference Include="Autofac.Integration.Mef, Version=4.0.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll</HintPath>
</Reference>
<Reference Include="Caliburn.Micro, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll</HintPath>
</Reference>
<Reference Include="Caliburn.Micro.Platform, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll</HintPath>
</Reference>
<Reference Include="Caliburn.Micro.Platform.Core, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll</HintPath>
</Reference>
<Reference Include="CommonServiceLocator, Version=2.0.4.0, Culture=neutral, PublicKeyToken=489b6accfaf20ef0, processorArchitecture=MSIL">
<HintPath>..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Addons, Version=1.0.79.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Addons.Bootstrapper, Version=1.0.79.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Configuration, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Configuration.1.0.75\lib\net461\Dapplo.CaliburnMicro.Configuration.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Dapp, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Dapp.1.0.75\lib\net461\Dapplo.CaliburnMicro.Dapp.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Menu, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Menu.1.0.75\lib\net461\Dapplo.CaliburnMicro.Menu.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Security, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Security.1.0.75\lib\net461\Dapplo.CaliburnMicro.Security.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Translations, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll</HintPath>
</Reference>
<Reference Include="Dapplo.HttpExtensions, Version=0.8.46.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.HttpExtensions.0.8.46\lib\net46\Dapplo.HttpExtensions.dll</HintPath>
</Reference>
<Reference Include="Dapplo.HttpExtensions.OAuth, Version=0.8.46.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.HttpExtensions.OAuth.0.8.46\lib\net46\Dapplo.HttpExtensions.OAuth.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Ini, Version=0.5.31.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll</HintPath>
</Reference>
<Reference Include="Dapplo.InterfaceImpl, Version=0.2.12.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Language, Version=0.5.31.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Log, Version=1.2.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Utils, Version=1.0.161.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Clipboard, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Clipboard.0.5.109\lib\net461\Dapplo.Windows.Clipboard.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Com, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Com.0.5.109\lib\net461\Dapplo.Windows.Com.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Common, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.DesktopWindowsManager, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Dpi, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.EmbeddedBrowser, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.EmbeddedBrowser.0.5.109\lib\net461\Dapplo.Windows.EmbeddedBrowser.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Gdi32, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Input, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Kernel32, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Messages, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.User32, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll</HintPath>
</Reference>
<None Include="Languages\language*.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net471'">
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="PresentationCore" />
@ -149,94 +23,36 @@
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Net.Http.WebRequest" />
<Reference Include="System.Reactive, Version=4.1.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL">
<HintPath>..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Caching" />
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Windows" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.3.2.0\lib\net45\System.Windows.Interactivity.dll</HintPath>
</Reference>
<Reference Include="System.Xaml" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq" />
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<Compile Include="FlickrAddonModule.cs" />
<Compile Include="FlickrDestination.cs" />
<Compile Include="IFlickrConfiguration.cs" />
<Compile Include="IFlickrLanguage.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ViewModels\FlickrConfigViewModel.cs" />
<None Include="app.config" />
<None Include="Languages\language_flickrplugin-en-US.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<SubType>Designer</SubType>
</None>
<None Include="packages.config" />
<EmbeddedResource Include="flickr.png" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="flickr.png" />
<ProjectReference Include="..\Greenshot.Addons\Greenshot.Addons.csproj" />
<ProjectReference Include="..\Greenshot.Core\Greenshot.Core.csproj" />
<ProjectReference Include="..\Greenshot.Gfx\Greenshot.Gfx.csproj" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Greenshot.Addons\Greenshot.Addons.csproj">
<Project>{5B924697-4DCD-4F98-85F1-105CB84B7341}</Project>
<Name>Greenshot.Addons</Name>
</ProjectReference>
<ProjectReference Include="..\Greenshot.Core\Greenshot.Core.csproj">
<Project>{bf35190d-b2a7-4cfa-b397-51cb384cf0d7}</Project>
<Name>Greenshot.Core</Name>
</ProjectReference>
<ProjectReference Include="..\Greenshot.Gfx\Greenshot.Gfx.csproj">
<Project>{f041c685-eb96-4ed1-9ace-0f5bd836610f}</Project>
<Name>Greenshot.Gfx</Name>
</ProjectReference>
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.7" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.7.26" />
<PackageReference Include="Fody" Version="3.3.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<Resource Include="Languages\language_flickrplugin-cs-CZ.xml" />
<Resource Include="Languages\language_flickrplugin-de-DE.xml" />
<Resource Include="Languages\language_flickrplugin-fr-FR.xml" />
<Resource Include="Languages\language_flickrplugin-id-ID.xml" />
<Resource Include="Languages\language_flickrplugin-it-IT.xml" />
<Resource Include="Languages\language_flickrplugin-ja-JP.xml" />
<Resource Include="Languages\language_flickrplugin-kab-DZ.xml" />
<Resource Include="Languages\language_flickrplugin-ko-KR.xml" />
<Resource Include="Languages\language_flickrplugin-lv-LV.xml" />
<Resource Include="Languages\language_flickrplugin-pl-PL.xml" />
<Resource Include="Languages\language_flickrplugin-pt-PT.xml" />
<Resource Include="Languages\language_flickrplugin-ru-RU.xml" />
<Resource Include="Languages\language_flickrplugin-sr-Cyrl-RS.xml" />
<Resource Include="Languages\language_flickrplugin-sv-SE.xml" />
<Resource Include="Languages\language_flickrplugin-uk-UA.xml" />
<Resource Include="Languages\language_flickrplugin-zh-CN.xml" />
<Resource Include="Languages\language_flickrplugin-zh-TW.xml" />
</ItemGroup>
<ItemGroup>
<Page Include="Views\FlickrConfigView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<PropertyGroup>
<PostBuildEvent>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)"</PostBuildEvent>
<PreBuildEvent>
</PreBuildEvent>
</PropertyGroup>
</Project>

View file

@ -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 <http://www.gnu.org/licenses/>.
#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")]

View file

@ -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
{
/// <summary>
/// This is the ViewModel for the configuration of the Flickr addon
/// </summary>
public sealed class FlickrConfigViewModel : SimpleConfigScreen
{
/// <summary>
@ -38,10 +42,20 @@ namespace Greenshot.Addon.Flickr.ViewModels
/// </summary>
private CompositeDisposable _disposables;
/// <summary>
/// Configuration for the view
/// </summary>
public IFlickrConfiguration FlickrConfiguration { get; }
/// <summary>
/// Translations for the view
/// </summary>
public IFlickrLanguage FlickrLanguage { get; }
/// <summary>
/// FileConfigPartViewModel is used from the view
/// TODO: Check if this is really true and needed
/// </summary>
public FileConfigPartViewModel FileConfigPartViewModel { get; }
public FlickrConfigViewModel(
@ -54,6 +68,7 @@ namespace Greenshot.Addon.Flickr.ViewModels
FileConfigPartViewModel = fileConfigPartViewModel;
}
/// <inheritdoc />
public override void Initialize(IConfig config)
{
FileConfigPartViewModel.DestinationFileConfiguration = FlickrConfiguration;
@ -75,12 +90,16 @@ namespace Greenshot.Addon.Flickr.ViewModels
base.Initialize(config);
}
/// <inheritdoc />
protected override void OnDeactivate(bool close)
{
_disposables.Dispose();
base.OnDeactivate(close);
}
/// <summary>
/// Used in the view for the dropdown
/// </summary>
public SafetyLevel SelectedSafetyLevel
{
get => FlickrConfiguration.SafetyLevel;
@ -91,6 +110,9 @@ namespace Greenshot.Addon.Flickr.ViewModels
}
}
/// <summary>
/// Used for a dropdown in the view
/// </summary>
public IDictionary<SafetyLevel, string> SafetyLevels => FlickrLanguage.TranslationValuesForEnum<SafetyLevel>();
}
}

View file

@ -1,40 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Autofac" version="4.8.1" targetFramework="net461" />
<package id="Autofac.Extras.AttributeMetadata" version="4.0.1" targetFramework="net461" />
<package id="Autofac.Mef" version="4.0.0" targetFramework="net461" />
<package id="Caliburn.Micro" version="3.2.0" targetFramework="net461" />
<package id="Caliburn.Micro.Core" version="3.2.0" targetFramework="net461" />
<package id="CommonServiceLocator" version="2.0.4" targetFramework="net461" />
<package id="Dapplo.Addons" version="1.0.79" targetFramework="net461" />
<package id="Dapplo.Addons.Bootstrapper" version="1.0.79" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Configuration" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Dapp" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Menu" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Security" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Translations" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.HttpExtensions" version="0.8.46" targetFramework="net461" />
<package id="Dapplo.HttpExtensions.OAuth" version="0.8.46" targetFramework="net461" />
<package id="Dapplo.Ini" version="0.5.31" targetFramework="net461" />
<package id="Dapplo.InterfaceImpl" version="0.2.12" targetFramework="net461" />
<package id="Dapplo.Language" version="0.5.31" targetFramework="net461" />
<package id="Dapplo.Log" version="1.2.1" targetFramework="net461" />
<package id="Dapplo.Utils" version="1.0.161" targetFramework="net461" />
<package id="Dapplo.Windows" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Clipboard" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Com" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Common" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.DesktopWindowsManager" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Dpi" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.EmbeddedBrowser" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Gdi32" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Input" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Kernel32" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Messages" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.User32" version="0.5.109" targetFramework="net461" />
<package id="System.Reactive" version="4.1.0" targetFramework="net461" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.1" targetFramework="net461" />
<package id="System.Threading.Tasks.Extensions" version="4.5.1" targetFramework="net461" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net461" />
</packages>

View file

@ -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
{
/// <summary>
/// Description of GooglePhotosConfiguration.
/// </summary>
[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)]

View file

@ -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 <http://www.gnu.org/licenses/>.
#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; }
}
}

View file

@ -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 <http://www.gnu.org/licenses/>.
#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>, 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
}
}

View file

@ -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 <http://www.gnu.org/licenses/>.
#endregion
using System.Diagnostics.CodeAnalysis;
using Dapplo.Config.Language;
namespace Greenshot.Addon.GooglePhotos.Configuration.Impl
{
/// <summary>
/// This implements IGooglePhotosLanguage and takes care of storing, all setters are replaced via AutoProperties.Fody
/// </summary>
[SuppressMessage("ReSharper", "UnassignedGetOnlyAutoProperty")]
#pragma warning disable CS1591
public class GooglePhotosLanguageImpl : LanguageBase<IGooglePhotosLanguage>, 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
}
}

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
<AutoProperties />
</Weavers>

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuild. -->
<xs:element name="Weavers">
<xs:complexType>
<xs:all>
<xs:element name="AutoProperties" minOccurs="0" maxOccurs="1" type="xs:anyType" />
</xs:all>
<xs:attribute name="VerifyAssembly" type="xs:boolean">
<xs:annotation>
<xs:documentation>'true' to run assembly verification on the target assembly after all weavers have been finished.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VerifyIgnoreCodes" type="xs:string">
<xs:annotation>
<xs:documentation>A comma separated list of error codes that can be safely ignored in assembly verification.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>

View file

@ -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<IGooglePhotosConfiguration>())
.RegisterType<GooglePhotosConfigurationImpl>()
.As<IGooglePhotosConfiguration>()
.As<IIniSection>()
.SingleInstance();
builder
.Register(context => LanguageLoader.Current.Get<IGooglePhotosLanguage>())
.RegisterType<GooglePhotosLanguageImpl>()
.As<IGooglePhotosLanguage>()
.As<ILanguage>()
.SingleInstance();
builder

View file

@ -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;

View file

@ -1,130 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\CommonProject.properties" />
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<ProjectGuid>{1893A2E4-A78A-4713-A8E7-E70058DABEE0}</ProjectGuid>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<RootNamespace>Greenshot.Addon.GooglePhotos</RootNamespace>
<AssemblyName>Greenshot.Addon.GooglePhotos</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<AppDesignerFolder>Properties</AppDesignerFolder>
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
<NoStdLib>False</NoStdLib>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<RunPostBuildEvent>Always</RunPostBuildEvent>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion>
<TargetFrameworkProfile />
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<TargetFrameworks>net471;netcoreapp3.0</TargetFrameworks>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
<ItemGroup>
<Reference Include="Autofac, Version=4.8.1.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.4.8.1\lib\net45\Autofac.dll</HintPath>
</Reference>
<Reference Include="Autofac.Extras.AttributeMetadata, Version=4.0.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll</HintPath>
</Reference>
<Reference Include="Autofac.Integration.Mef, Version=4.0.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll</HintPath>
</Reference>
<Reference Include="Caliburn.Micro, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll</HintPath>
</Reference>
<Reference Include="Caliburn.Micro.Platform, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll</HintPath>
</Reference>
<Reference Include="Caliburn.Micro.Platform.Core, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll</HintPath>
</Reference>
<Reference Include="CommonServiceLocator, Version=2.0.4.0, Culture=neutral, PublicKeyToken=489b6accfaf20ef0, processorArchitecture=MSIL">
<HintPath>..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Addons, Version=1.0.79.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Addons.Bootstrapper, Version=1.0.79.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Configuration, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Configuration.1.0.75\lib\net461\Dapplo.CaliburnMicro.Configuration.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Dapp, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Dapp.1.0.75\lib\net461\Dapplo.CaliburnMicro.Dapp.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Menu, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Menu.1.0.75\lib\net461\Dapplo.CaliburnMicro.Menu.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Security, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Security.1.0.75\lib\net461\Dapplo.CaliburnMicro.Security.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Translations, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll</HintPath>
</Reference>
<Reference Include="Dapplo.HttpExtensions, Version=0.8.46.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.HttpExtensions.0.8.46\lib\net46\Dapplo.HttpExtensions.dll</HintPath>
</Reference>
<Reference Include="Dapplo.HttpExtensions.OAuth, Version=0.8.46.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.HttpExtensions.OAuth.0.8.46\lib\net46\Dapplo.HttpExtensions.OAuth.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Ini, Version=0.5.31.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll</HintPath>
</Reference>
<Reference Include="Dapplo.InterfaceImpl, Version=0.2.12.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Language, Version=0.5.31.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Log, Version=1.2.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Utils, Version=1.0.161.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Clipboard, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Clipboard.0.5.109\lib\net461\Dapplo.Windows.Clipboard.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Com, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Com.0.5.109\lib\net461\Dapplo.Windows.Com.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Common, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.DesktopWindowsManager, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Dpi, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.EmbeddedBrowser, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.EmbeddedBrowser.0.5.109\lib\net461\Dapplo.Windows.EmbeddedBrowser.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Gdi32, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Input, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Kernel32, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Messages, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.User32, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll</HintPath>
</Reference>
<None Include="Languages\language*.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net471'">
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="PresentationCore" />
@ -135,85 +23,36 @@
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Net.Http.WebRequest" />
<Reference Include="System.Reactive, Version=4.1.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL">
<HintPath>..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Caching" />
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Windows" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.3.2.0\lib\net45\System.Windows.Interactivity.dll</HintPath>
</Reference>
<Reference Include="System.Xaml" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq" />
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<Compile Include="GooglePhotosAddonModule.cs" />
<Compile Include="IGooglePhotosLanguage.cs" />
<Compile Include="IGooglePhotosConfiguration.cs" />
<Compile Include="GooglePhotosDestination.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ViewModels\GooglePhotosConfigViewModel.cs" />
<Content Include="Languages\language_googlephotosplugin-en-US.xml" />
<None Include="Languages\language_googlephotosplugin-cs-CZ.xml" />
<None Include="Languages\language_googlephotosplugin-de-DE.xml" />
<None Include="Languages\language_googlephotosplugin-id-ID.xml" />
<None Include="Languages\language_googlephotosplugin-kab-DZ.xml" />
<None Include="Languages\language_googlephotosplugin-ko-KR.xml" />
<None Include="Languages\language_googlephotosplugin-lv-LV.xml" />
<None Include="Languages\language_googlephotosplugin-pl-PL.xml" />
<None Include="Languages\language_googlephotosplugin-pt-PT.xml" />
<None Include="Languages\language_googlephotosplugin-sv-SE.xml" />
<None Include="Languages\language_googlephotosplugin-zh-TW.xml" />
<None Include="Languages\language_googlephotosplugin-fr-FR.xml" />
<None Include="Languages\language_googlephotosplugin-it-IT.xml" />
<None Include="Languages\language_googlephotosplugin-ru-RU.xml" />
<None Include="Languages\language_googlephotosplugin-uk-UA.xml" />
<None Include="Languages\language_googlephotosplugin-zh-CN.xml" />
<EmbeddedResource Include="GooglePhotos.png" />
<None Include="packages.config" />
<EmbeddedResource Include="GooglePhotos.png" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Greenshot.Addons\Greenshot.Addons.csproj">
<Project>{5B924697-4DCD-4F98-85F1-105CB84B7341}</Project>
<Name>Greenshot.Addons</Name>
</ProjectReference>
<ProjectReference Include="..\Greenshot.Core\Greenshot.Core.csproj">
<Project>{bf35190d-b2a7-4cfa-b397-51cb384cf0d7}</Project>
<Name>Greenshot.Core</Name>
</ProjectReference>
<ProjectReference Include="..\Greenshot.Gfx\Greenshot.Gfx.csproj">
<Project>{f041c685-eb96-4ed1-9ace-0f5bd836610f}</Project>
<Name>Greenshot.Gfx</Name>
</ProjectReference>
<ProjectReference Include="..\Greenshot.Addons\Greenshot.Addons.csproj" />
<ProjectReference Include="..\Greenshot.Core\Greenshot.Core.csproj" />
<ProjectReference Include="..\Greenshot.Gfx\Greenshot.Gfx.csproj" />
</ItemGroup>
<ItemGroup>
<Page Include="Views\GooglePhotosConfigView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.7" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.7.26" />
<PackageReference Include="Fody" Version="3.3.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
</ItemGroup>
<PropertyGroup>
<PostBuildEvent>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)"</PostBuildEvent>
<PreBuildEvent>
</PreBuildEvent>
</PropertyGroup>
</Project>

View file

@ -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; }
}
}

View file

@ -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 <http://www.gnu.org/licenses/>.
#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")]

View file

@ -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
/// </summary>
private CompositeDisposable _disposables;
/// <summary>
/// Configuration for the view
/// </summary>
public IGooglePhotosConfiguration GooglePhotosConfiguration { get; }
/// <summary>
/// Translations for the view
/// </summary>
public IGooglePhotosLanguage GooglePhotosLanguage { get; }
/// <summary>
/// FileConfigPartViewModel is used from the view
/// TODO: Check if this is really true and needed
/// </summary>
public FileConfigPartViewModel FileConfigPartViewModel { get; }
public GooglePhotosConfigViewModel(
@ -50,6 +63,7 @@ namespace Greenshot.Addon.GooglePhotos.ViewModels
FileConfigPartViewModel = fileConfigPartViewModel;
}
/// <inheritdoc />
public override void Initialize(IConfig config)
{
FileConfigPartViewModel.DestinationFileConfiguration = GooglePhotosConfiguration;
@ -71,6 +85,7 @@ namespace Greenshot.Addon.GooglePhotos.ViewModels
base.Initialize(config);
}
/// <inheritdoc />
protected override void OnDeactivate(bool close)
{
_disposables.Dispose();

View file

@ -1,40 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Autofac" version="4.8.1" targetFramework="net461" />
<package id="Autofac.Extras.AttributeMetadata" version="4.0.1" targetFramework="net461" />
<package id="Autofac.Mef" version="4.0.0" targetFramework="net461" />
<package id="Caliburn.Micro" version="3.2.0" targetFramework="net461" />
<package id="Caliburn.Micro.Core" version="3.2.0" targetFramework="net461" />
<package id="CommonServiceLocator" version="2.0.4" targetFramework="net461" />
<package id="Dapplo.Addons" version="1.0.79" targetFramework="net461" />
<package id="Dapplo.Addons.Bootstrapper" version="1.0.79" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Configuration" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Dapp" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Menu" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Security" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Translations" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.HttpExtensions" version="0.8.46" targetFramework="net461" />
<package id="Dapplo.HttpExtensions.OAuth" version="0.8.46" targetFramework="net461" />
<package id="Dapplo.Ini" version="0.5.31" targetFramework="net461" />
<package id="Dapplo.InterfaceImpl" version="0.2.12" targetFramework="net461" />
<package id="Dapplo.Language" version="0.5.31" targetFramework="net461" />
<package id="Dapplo.Log" version="1.2.1" targetFramework="net461" />
<package id="Dapplo.Utils" version="1.0.161" targetFramework="net461" />
<package id="Dapplo.Windows" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Clipboard" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Com" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Common" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.DesktopWindowsManager" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Dpi" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.EmbeddedBrowser" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Gdi32" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Input" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Kernel32" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Messages" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.User32" version="0.5.109" targetFramework="net461" />
<package id="System.Reactive" version="4.1.0" targetFramework="net461" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.1" targetFramework="net461" />
<package id="System.Threading.Tasks.Extensions" version="4.5.1" targetFramework="net461" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net461" />
</packages>

View file

@ -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
{
/// <summary>
/// Description of ImgurConfiguration.
/// </summary>
[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")]

View file

@ -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; }

View file

@ -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 <http://www.gnu.org/licenses/>.
#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>, 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<string, string> ImgurUploadHistory { get; set; }
public int Credits { get; set; }
public IDictionary<string, ImgurImage> RuntimeImgurHistory { get; set; }
#endregion
}
}

View file

@ -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 <http://www.gnu.org/licenses/>.
#endregion
using System.Diagnostics.CodeAnalysis;
using Dapplo.Config.Language;
namespace Greenshot.Addon.Imgur.Configuration.Impl
{
/// <summary>
/// This implements IImgurLanguage and takes care of storing, all setters are replaced via AutoProperties.Fody
/// </summary>
#pragma warning disable CS1591
[SuppressMessage("ReSharper", "UnassignedGetOnlyAutoProperty")]
public class ImgurLanguageImpl : LanguageBase<IImgurLanguage>, 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
}
}

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
<AutoProperties />
</Weavers>

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuild. -->
<xs:element name="Weavers">
<xs:complexType>
<xs:all>
<xs:element name="AutoProperties" minOccurs="0" maxOccurs="1" type="xs:anyType" />
</xs:all>
<xs:attribute name="VerifyAssembly" type="xs:boolean">
<xs:annotation>
<xs:documentation>'true' to run assembly verification on the target assembly after all weavers have been finished.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VerifyIgnoreCodes" type="xs:string">
<xs:annotation>
<xs:documentation>A comma separated list of error codes that can be safely ignored in assembly verification.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>

View file

@ -1,160 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\CommonProject.properties" />
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<ProjectGuid>{80D8DEB9-94E3-4876-8CCA-2DF1ED5F2C50}</ProjectGuid>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<RootNamespace>Greenshot.Addon.Imgur</RootNamespace>
<AssemblyName>Greenshot.Addon.Imgur</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<AppDesignerFolder>Properties</AppDesignerFolder>
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
<NoStdLib>False</NoStdLib>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<RunPostBuildEvent>Always</RunPostBuildEvent>
<TargetFrameworkProfile />
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<TargetFrameworks>net471;netcoreapp3.0</TargetFrameworks>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<Prefer32Bit>false</Prefer32Bit>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<Prefer32Bit>false</Prefer32Bit>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
<ItemGroup>
<Reference Include="Autofac, Version=4.8.1.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.4.8.1\lib\net45\Autofac.dll</HintPath>
</Reference>
<Reference Include="Autofac.Extras.AttributeMetadata, Version=4.0.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.Extras.AttributeMetadata.4.0.1\lib\net45\Autofac.Extras.AttributeMetadata.dll</HintPath>
</Reference>
<Reference Include="Autofac.Integration.Mef, Version=4.0.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.Mef.4.0.0\lib\net45\Autofac.Integration.Mef.dll</HintPath>
</Reference>
<Reference Include="Caliburn.Micro, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.Core.3.2.0\lib\net45\Caliburn.Micro.dll</HintPath>
</Reference>
<Reference Include="Caliburn.Micro.Platform, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.dll</HintPath>
</Reference>
<Reference Include="Caliburn.Micro.Platform.Core, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.3.2.0\lib\net45\Caliburn.Micro.Platform.Core.dll</HintPath>
</Reference>
<Reference Include="CommonServiceLocator, Version=2.0.4.0, Culture=neutral, PublicKeyToken=489b6accfaf20ef0, processorArchitecture=MSIL">
<HintPath>..\packages\CommonServiceLocator.2.0.4\lib\net46\CommonServiceLocator.dll</HintPath>
</Reference>
<Reference Include="ControlzEx, Version=3.0.2.4, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\ControlzEx.3.0.2.4\lib\net45\ControlzEx.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Addons, Version=1.0.79.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Addons.1.0.79\lib\net461\Dapplo.Addons.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Addons.Bootstrapper, Version=1.0.79.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Addons.Bootstrapper.1.0.79\lib\net461\Dapplo.Addons.Bootstrapper.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.1.0.75\lib\net461\Dapplo.CaliburnMicro.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Configuration, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Configuration.1.0.75\lib\net461\Dapplo.CaliburnMicro.Configuration.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Dapp, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Dapp.1.0.75\lib\net461\Dapplo.CaliburnMicro.Dapp.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Menu, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Menu.1.0.75\lib\net461\Dapplo.CaliburnMicro.Menu.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Security, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Security.1.0.75\lib\net461\Dapplo.CaliburnMicro.Security.dll</HintPath>
</Reference>
<Reference Include="Dapplo.CaliburnMicro.Translations, Version=1.0.75.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.CaliburnMicro.Translations.1.0.75\lib\net461\Dapplo.CaliburnMicro.Translations.dll</HintPath>
</Reference>
<Reference Include="Dapplo.HttpExtensions, Version=0.8.46.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.HttpExtensions.0.8.46\lib\net46\Dapplo.HttpExtensions.dll</HintPath>
</Reference>
<Reference Include="Dapplo.HttpExtensions.JsonNet, Version=0.8.46.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.HttpExtensions.JsonNet.0.8.46\lib\net46\Dapplo.HttpExtensions.JsonNet.dll</HintPath>
</Reference>
<Reference Include="Dapplo.HttpExtensions.OAuth, Version=0.8.46.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.HttpExtensions.OAuth.0.8.46\lib\net46\Dapplo.HttpExtensions.OAuth.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Ini, Version=0.5.31.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll</HintPath>
</Reference>
<Reference Include="Dapplo.InterfaceImpl, Version=0.2.12.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Language, Version=0.5.31.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Language.0.5.31\lib\net45\Dapplo.Language.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Log, Version=1.2.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Utils, Version=1.0.161.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Clipboard, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Clipboard.0.5.109\lib\net461\Dapplo.Windows.Clipboard.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Com, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Com.0.5.109\lib\net461\Dapplo.Windows.Com.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Common, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.DesktopWindowsManager, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Dpi, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Dpi.0.5.109\lib\net461\Dapplo.Windows.Dpi.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.EmbeddedBrowser, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.EmbeddedBrowser.0.5.109\lib\net461\Dapplo.Windows.EmbeddedBrowser.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Gdi32, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Input, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Kernel32, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Messages, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.User32, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll</HintPath>
</Reference>
<Reference Include="MahApps.Metro, Version=1.6.5.1, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MahApps.Metro.1.6.5\lib\net46\MahApps.Metro.dll</HintPath>
</Reference>
<None Include="Languages\language*.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net471'">
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
@ -163,90 +23,38 @@
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Net.Http.WebRequest" />
<Reference Include="System.Reactive, Version=4.1.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL">
<HintPath>..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Caching" />
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Windows" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\ControlzEx.3.0.2.4\lib\net45\System.Windows.Interactivity.dll</HintPath>
</Reference>
<Reference Include="System.Xaml" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq" />
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<Compile Include="Entities\ImgurData.cs" />
<Compile Include="Entities\ImgurImage.cs" />
<Compile Include="ImgurAddonModule.cs" />
<Compile Include="IImgurLanguage.cs" />
<Compile Include="ImgurApi.cs" />
<Compile Include="ImgurDestination.cs" />
<Compile Include="IImgurConfiguration.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ViewModels\ImgurHistoryViewModel.cs" />
<Compile Include="ViewModels\ImgurConfigViewModel.cs" />
<None Include="app.config" />
<None Include="Languages\language_imgurplugin-de-DE.xml">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</None>
<None Include="Languages\language_imgurplugin-en-US.xml">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</None>
<None Include="Languages\language_imgurplugin-fr-FR.xml">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</None>
<None Include="Languages\language_imgurplugin-nl-NL.xml">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</None>
<None Include="Languages\language_imgurplugin-zh-CN.xml" />
<None Include="packages.config" />
<EmbeddedResource Include="Imgur.png" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Greenshot.Core\Greenshot.Core.csproj">
<Project>{bf35190d-b2a7-4cfa-b397-51cb384cf0d7}</Project>
<Name>Greenshot.Core</Name>
</ProjectReference>
<ProjectReference Include="..\Greenshot.Gfx\Greenshot.Gfx.csproj">
<Project>{f041c685-eb96-4ed1-9ace-0f5bd836610f}</Project>
<Name>Greenshot.Gfx</Name>
</ProjectReference>
<ProjectReference Include="..\Greenshot.Addons\Greenshot.Addons.csproj">
<Project>{5B924697-4DCD-4F98-85F1-105CB84B7341}</Project>
<Name>Greenshot.Addons</Name>
</ProjectReference>
<ProjectReference Include="..\Greenshot.Addons\Greenshot.Addons.csproj" />
<ProjectReference Include="..\Greenshot.Core\Greenshot.Core.csproj" />
<ProjectReference Include="..\Greenshot.Gfx\Greenshot.Gfx.csproj" />
</ItemGroup>
<ItemGroup>
<Page Include="Views\ImgurHistoryView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\ImgurConfigView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.7" />
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.7" />
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.7.26" />
<PackageReference Include="Fody" Version="3.3.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Include="MahApps.Metro" Version="2.0.0-alpha0121" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Imgur.png" />
</ItemGroup>
<PropertyGroup>
<PostBuildEvent>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)"</PostBuildEvent>
</PropertyGroup>
</Project>

View file

@ -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<IImgurConfiguration>())
.RegisterType<ImgurConfigurationImpl>()
.As<IImgurConfiguration>()
.As<IIniSection>()
.SingleInstance();
builder
.Register(context => LanguageLoader.Current.Get<IImgurLanguage>())
.RegisterType<ImgurLanguageImpl>()
.As<IImgurLanguage>()
.As<ILanguage>()
.SingleInstance();
builder

View file

@ -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;

View file

@ -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;

View file

@ -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 <http://www.gnu.org/licenses/>.
#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")]

View file

@ -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;

View file

@ -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;
/// <summary>
/// Here all disposables are registered, so we can clean the up
/// </summary>
private CompositeDisposable _disposables;
/// <summary>
/// The configuration used in the view
/// </summary>
public IImgurConfiguration ImgurConfiguration { get; }
public ImgurApi ImgurApi { get; }
/// <summary>
/// The translations used in the view
/// </summary>
public IImgurLanguage ImgurLanguage { get; }
/// <summary>
@ -61,6 +68,13 @@ namespace Greenshot.Addon.Imgur.ViewModels
/// </summary>
public IGreenshotLanguage GreenshotLanguage { get; }
/// <summary>
/// Constructor which accepts the dependencies for this class
/// </summary>
/// <param name="imgurConfiguration">IImgurConfiguration</param>
/// <param name="imgurApi">ImgurApi</param>
/// <param name="imgurLanguage">IImgurLanguage</param>
/// <param name="greenshotLanguage">IGreenshotLanguage</param>
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
/// </summary>
public ObservableCollection<ImgurImage> ImgurHistory { get; } = new BindableCollection<ImgurImage>();
/// <inheritdoc />
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();
}
/// <inheritdoc />
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
}
}
/// <summary>
/// The selected Imgur entry
/// </summary>
public ImgurImage SelectedImgur { get; private set; }
/// <summary>
@ -149,7 +168,7 @@ namespace Greenshot.Addon.Imgur.ViewModels
/// </summary>
public async Task Delete()
{
await ImgurApi.DeleteImgurImageAsync(SelectedImgur).ConfigureAwait(true);
await _imgurApi.DeleteImgurImageAsync(SelectedImgur).ConfigureAwait(true);
}
/// <summary>

View file

@ -1,44 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Autofac" version="4.8.1" targetFramework="net461" />
<package id="Autofac.Extras.AttributeMetadata" version="4.0.1" targetFramework="net461" />
<package id="Autofac.Mef" version="4.0.0" targetFramework="net461" />
<package id="Caliburn.Micro" version="3.2.0" targetFramework="net461" />
<package id="Caliburn.Micro.Core" version="3.2.0" targetFramework="net461" />
<package id="CommonServiceLocator" version="2.0.4" targetFramework="net461" />
<package id="ControlzEx" version="3.0.2.4" targetFramework="net461" />
<package id="Dapplo.Addons" version="1.0.79" targetFramework="net461" />
<package id="Dapplo.Addons.Bootstrapper" version="1.0.79" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Configuration" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Dapp" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Menu" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Security" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.CaliburnMicro.Translations" version="1.0.75" targetFramework="net461" />
<package id="Dapplo.HttpExtensions" version="0.8.46" targetFramework="net461" />
<package id="Dapplo.HttpExtensions.JsonNet" version="0.8.46" targetFramework="net461" />
<package id="Dapplo.HttpExtensions.OAuth" version="0.8.46" targetFramework="net461" />
<package id="Dapplo.Ini" version="0.5.31" targetFramework="net461" />
<package id="Dapplo.InterfaceImpl" version="0.2.12" targetFramework="net461" />
<package id="Dapplo.Language" version="0.5.31" targetFramework="net461" />
<package id="Dapplo.Log" version="1.2.1" targetFramework="net461" />
<package id="Dapplo.Utils" version="1.0.161" targetFramework="net461" />
<package id="Dapplo.Windows" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Clipboard" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Com" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Common" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.DesktopWindowsManager" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Dpi" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.EmbeddedBrowser" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Gdi32" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Input" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Kernel32" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.Messages" version="0.5.109" targetFramework="net461" />
<package id="Dapplo.Windows.User32" version="0.5.109" targetFramework="net461" />
<package id="MahApps.Metro" version="1.6.5" targetFramework="net461" />
<package id="Newtonsoft.Json" version="11.0.2" targetFramework="net461" />
<package id="System.Reactive" version="4.1.0" targetFramework="net461" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.1" targetFramework="net461" />
<package id="System.Threading.Tasks.Extensions" version="4.5.1" targetFramework="net461" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net461" />
</packages>

View file

@ -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<Accessible>(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; }
}
/// <summary>
/// Returns the URL for the active tab
/// </summary>
public string IEActiveTabUrl
{
get
@ -126,6 +126,9 @@ namespace Greenshot.Addon.InternetExplorer
}
}
/// <summary>
/// Get the index of the active tab
/// </summary>
public int IEActiveTabIndex
{
get
@ -151,6 +154,9 @@ namespace Greenshot.Addon.InternetExplorer
}
}
/// <summary>
/// Get the caption of the active tab
/// </summary>
public string IEActiveTabCaption
{
get
@ -174,6 +180,9 @@ namespace Greenshot.Addon.InternetExplorer
}
}
/// <summary>
/// Get the captions of all tabs
/// </summary>
public List<string> IETabCaptions
{
get
@ -201,7 +210,9 @@ namespace Greenshot.Addon.InternetExplorer
}
}
/// <summary>
/// Get the urls of all tabs
/// </summary>
public IEnumerable<string> IETabUrls
{
get
@ -228,6 +239,9 @@ namespace Greenshot.Addon.InternetExplorer
}
}
/// <summary>
/// Count the tabs
/// </summary>
public int IETabCount
{
get
@ -246,6 +260,10 @@ namespace Greenshot.Addon.InternetExplorer
}
}
/// <summary>
/// Activate the specified tab
/// </summary>
/// <param name="tabCaptionToActivate">string</param>
public void ActivateIETab(string tabCaptionToActivate)
{
foreach (var accessor in Children)
@ -264,6 +282,10 @@ namespace Greenshot.Addon.InternetExplorer
}
}
/// <summary>
/// Close the specified tabs
/// </summary>
/// <param name="tabCaptionToClose">string</param>
public void CloseIETab(string tabCaptionToClose)
{
foreach (var accessor in Children)
@ -285,6 +307,10 @@ namespace Greenshot.Addon.InternetExplorer
}
}
/// <summary>
/// Active the IE tab
/// </summary>
/// <param name="tabIndexToActivate">int</param>
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
}
}

View file

@ -1,99 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\CommonProject.properties" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<ProjectGuid>{4CCA2717-B8A4-44F7-965B-5687107E4921}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Greenshot.Addon.InternetExplorer</RootNamespace>
<AssemblyName>Greenshot.Addon.InternetExplorer</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<TargetFrameworks>net471;netcoreapp3.0</TargetFrameworks>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup>
<Reference Include="Accessibility" />
<Reference Include="Dapplo.Ini, Version=0.5.31.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Ini.0.5.31\lib\net45\Dapplo.Ini.dll</HintPath>
</Reference>
<Reference Include="Dapplo.InterfaceImpl, Version=0.2.12.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.InterfaceImpl.0.2.12\lib\net45\Dapplo.InterfaceImpl.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Log, Version=1.2.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Log.1.2.1\lib\net45\Dapplo.Log.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Utils, Version=1.0.161.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Utils.1.0.161\lib\net45\Dapplo.Utils.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.0.5.109\lib\net461\Dapplo.Windows.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Com, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Com.0.5.109\lib\net461\Dapplo.Windows.Com.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Common, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Common.0.5.109\lib\net461\Dapplo.Windows.Common.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.DesktopWindowsManager, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.DesktopWindowsManager.0.5.109\lib\net461\Dapplo.Windows.DesktopWindowsManager.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Gdi32, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Gdi32.0.5.109\lib\net461\Dapplo.Windows.Gdi32.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Input, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Input.0.5.109\lib\net461\Dapplo.Windows.Input.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Kernel32, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Kernel32.0.5.109\lib\net461\Dapplo.Windows.Kernel32.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.Messages, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.Messages.0.5.109\lib\net461\Dapplo.Windows.Messages.dll</HintPath>
</Reference>
<Reference Include="Dapplo.Windows.User32, Version=0.5.109.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapplo.Windows.User32.0.5.109\lib\net461\Dapplo.Windows.User32.dll</HintPath>
</Reference>
<Reference Include="Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Core" />
<ItemGroup Condition="'$(TargetFramework)' == 'net471' ">
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Drawing" />
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="System" />
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Reactive, Version=4.1.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL">
<HintPath>..\packages\System.Reactive.4.1.0\lib\net46\System.Reactive.dll</HintPath>
</Reference>
<Reference Include="System.Net.Http.WebRequest" />
<Reference Include="System.Runtime.Caching" />
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Windows" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="System.Xaml" />
<Reference Include="System.Xml.Linq" />
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="Accessibility" />
</ItemGroup>
<ItemGroup>
<Compile Include="AccessibleHelper.cs" />
<Compile Include="IECaptureHelper.cs" />
<Compile Include="IEHelper.cs" />
<Compile Include="IEInterop\IEContainer.cs" />
<Compile Include="IEInterop\IWebBrowser2.cs" />
<Compile Include="InternetExplorerSource.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<PackageReference Include="Dapplo.Windows">
<Version>0.7.26</Version>
</PackageReference>
<PackageReference Include="Dapplo.Windows.Com">
<Version>0.7.26</Version>
</PackageReference>
<PackageReference Include="Unofficial.Microsoft.mshtml" Version="7.0.3300" />
</ItemGroup>
<ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Greenshot.Addons\Greenshot.Addons.csproj">
<Project>{5b924697-4dcd-4f98-85f1-105cb84b7341}</Project>
<Name>Greenshot.Addons</Name>
@ -107,9 +52,4 @@
<Name>Greenshot.Gfx</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

Some files were not shown because too many files have changed in this diff Show more