Browse Source

Merge branch 'classbrowser' into newNR.

pull/48/head
Andreas Weizel 12 years ago
parent
commit
9f909046c5
  1. 155
      data/resources/StringResources.fr.resx
  2. 12
      data/resources/StringResources.nl.resx
  3. 6
      data/resources/StringResources.resx
  4. 3
      samples/PInvokeAddIn/Project/PInvoke.nuspec
  5. 2
      samples/PInvokeAddIn/Project/Src/PInvokeCodeGenerator.cs
  6. 131
      src/AddIns/Misc/AddInManager2/AddInManager2.Tests/AvailableAddInsViewModelTests.cs
  7. 5
      src/AddIns/Misc/AddInManager2/AddInManager2.Tests/Fakes/FakePackage.cs
  8. 47
      src/AddIns/Misc/AddInManager2/Project/Src/Model/AddInSetup.cs
  9. 6
      src/AddIns/Misc/AddInManager2/Project/Src/UpdateNotifier.cs
  10. 14
      src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/AvailableAddInsViewModel.cs
  11. 3
      src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/InstalledAddInsViewModel.cs
  12. 5
      src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/NuGetAddInsViewModelBase.cs

155
data/resources/StringResources.fr.resx

@ -229,6 +229,146 @@ Téléchargez un AddIn depuis l'Internet, cliquez ensuite sur 'Installer un AddI @@ -229,6 +229,146 @@ Téléchargez un AddIn depuis l'Internet, cliquez ensuite sur 'Installer un AddI
<data name="AddInManager.UnknownFileFormat" xml:space="preserve">
<value>Format de fichier inconnu:</value>
</data>
<data name="AddInManager2.AddInsView.InstallFromArchive" xml:space="preserve">
<value>Installer depuis un fichier...</value>
</data>
<data name="AddInManager2.AddInsView.Repository" xml:space="preserve">
<value>Dépôt:</value>
</data>
<data name="AddInManager2.AddInsView.Search" xml:space="preserve">
<value>Rechercher:</value>
</data>
<data name="AddInManager2.AddInsView.ShowPreinstalledAddIns" xml:space="preserve">
<value>Voir les Add-Ins pré-installés</value>
</data>
<data name="AddInManager2.AddInsView.ShowPrereleaseAddIns" xml:space="preserve">
<value>Voir les pré-releases</value>
</data>
<data name="AddInManager2.CannotRemoveAddInManager" xml:space="preserve">
<value>Impossible de désinstaller le gestionnaire d'Add-In, car il est nécessaire pour ré-installer des Add-Ins.</value>
</data>
<data name="AddInManager2.DefaultRepository" xml:space="preserve">
<value>Dépôt des Add-Ins SharpDevelop</value>
</data>
<data name="AddInManager2.Details.CreatedBy" xml:space="preserve">
<value>Auteur:</value>
</data>
<data name="AddInManager2.Details.Dependencies" xml:space="preserve">
<value>Dépendances:</value>
</data>
<data name="AddInManager2.Details.DownloadCount" xml:space="preserve">
<value>Téléchargements:</value>
</data>
<data name="AddInManager2.Details.FileName" xml:space="preserve">
<value>Nom de fichier:</value>
</data>
<data name="AddInManager2.Details.InstalledVersion" xml:space="preserve">
<value>Version installée:</value>
</data>
<data name="AddInManager2.Details.LastUpdated" xml:space="preserve">
<value>Dernière mise à jour:</value>
</data>
<data name="AddInManager2.Details.MoreInformation" xml:space="preserve">
<value>Plus d'informations</value>
</data>
<data name="AddInManager2.Details.NewVersion" xml:space="preserve">
<value>Nouvelle version:</value>
</data>
<data name="AddInManager2.Details.Rating" xml:space="preserve">
<value>Evaluation:</value>
</data>
<data name="AddInManager2.Details.ReportAbuse" xml:space="preserve">
<value>Signaler un abus</value>
</data>
<data name="AddInManager2.Details.Version" xml:space="preserve">
<value>Version:</value>
</data>
<data name="AddInManager2.Details.ViewLicenseTerms" xml:space="preserve">
<value>Voir le contrat de license</value>
</data>
<data name="AddInManager2.DisableDependentWarning" xml:space="preserve">
<value>Les Add-Ins installés suivant sont dépendant de "{0}"
{1}
Ils ne fonctionneront plus si vous désactivez cet Add-In! Souhaitez-vous continuer?</value>
</data>
<data name="AddInManager2.InstallDependentMessage" xml:space="preserve">
<value>Package "{0}" nécessite au moins une dépendance:
{1}
L'application va essayer de les télécharger et de les installer. Souhaitez-vous continuer?</value>
</data>
<data name="AddInManager2.InvalidPackage" xml:space="preserve">
<value>Le package sélectionné ne contient pas un Add-In SharpDevelop.</value>
</data>
<data name="AddInManager2.LicenseAcceptance.AcceptButton" xml:space="preserve">
<value>J'&amp;Accepte</value>
</data>
<data name="AddInManager2.LicenseAcceptance.DeclineButton" xml:space="preserve">
<value>Je &amp;Décline</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Explanation.Package" xml:space="preserve">
<value>En cliquant "J'accepte", vous êtes d'accord pour la license du package suivant.
Si vous ne le souhaitez pas, veuillez cliquer "Je décline".</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Explanation.Packages" xml:space="preserve">
<value>En cliquant "J'accepte", vous êtes d'accord pour la license des packages suivant.
Si vous ne le souhaitez pas, veuillez cliquer "Je décline".</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Introduction.Package" xml:space="preserve">
<value>Le package suivant nécessite que vous acceptiez sa license:</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Introduction.Packages" xml:space="preserve">
<value>Le package suivant nécessite que vous acceptiez sa license:</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Title" xml:space="preserve">
<value>Contrat de license</value>
</data>
<data name="AddInManager2.OptionPanel.Add" xml:space="preserve">
<value>Ajouter</value>
</data>
<data name="AddInManager2.OptionPanel.MoveDown" xml:space="preserve">
<value>Descendre</value>
</data>
<data name="AddInManager2.OptionPanel.MoveUp" xml:space="preserve">
<value>Monter</value>
</data>
<data name="AddInManager2.OptionPanel.Name" xml:space="preserve">
<value>Nom:</value>
</data>
<data name="AddInManager2.OptionPanel.Remove" xml:space="preserve">
<value>Supprimer</value>
</data>
<data name="AddInManager2.OptionPanel.Source" xml:space="preserve">
<value>Source:</value>
</data>
<data name="AddInManager2.OptionPanel.Tree.AddIns" xml:space="preserve">
<value>Add-Ins</value>
</data>
<data name="AddInManager2.OptionPanel.Tree.Repositories" xml:space="preserve">
<value>Dépots</value>
</data>
<data name="AddInManager2.RemoveDependentWarning" xml:space="preserve">
<value>Les Add-Ins installés suivant sont dépendant de "{0}"
{1}
Ils ne fonctionneront plus si vous désinstallez cet Add-In! Souhaitez-vous continuer?</value>
</data>
<data name="AddInManager2.SDAddInFileFilter" xml:space="preserve">
<value>SharpDevelop Add-Ins|*.sdaddin;*.addin|Tous les fichiers|*.*</value>
</data>
<data name="AddInManager2.Views.Available" xml:space="preserve">
<value>Disponible</value>
</data>
<data name="AddInManager2.Views.Installed" xml:space="preserve">
<value>Installées</value>
</data>
<data name="AddInManager2.Views.Updates" xml:space="preserve">
<value>Mises à jour</value>
</data>
<data name="AddIns.AvalonEdit.InconsistentNewlines.Description" xml:space="preserve">
<value>Ce fichier contient des retour-chariots inconsistents.</value>
</data>
@ -4467,6 +4607,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -4467,6 +4607,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="ICSharpCode.WixBinding.WixNetFxExtensionTitle" xml:space="preserve">
<value>Extension du framework .NET</value>
</data>
<data name="ICSharpCode.WixBinding.WixNotInstalled" xml:space="preserve">
<value>WiX n'est pas installé. Téléchargez le depuis http://wixtoolset.org/</value>
</data>
<data name="ICSharpCode.WixBinding.WixPackageFilesDiffControl.NoDiffFound" xml:space="preserve">
<value>Aucune différence n'a été trouvée.</value>
</data>
@ -5745,6 +5888,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -5745,6 +5888,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="ResourceEditor.ResourceCodeGeneratorTool.CouldNotGenerateResourceProperty" xml:space="preserve">
<value>Générateur de code ressource: aucune propriété de ressource ne peut être générée pour la ressource '{0}'.</value>
</data>
<data name="ResourceEditor.ResourceEdit.CommentColumn" xml:space="preserve">
<value>Commentaire</value>
</data>
<data name="ResourceEditor.ResourceEdit.ContentColumn" xml:space="preserve">
<value>Contenu</value>
</data>
@ -5757,6 +5903,12 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -5757,6 +5903,12 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="ResourceEditor.ResourceEdit.ContextMenu.CopyResourceName" xml:space="preserve">
<value>Copier le nom de la ressource</value>
</data>
<data name="ResourceEditor.ResourceEdit.ContextMenu.EditComment" xml:space="preserve">
<value>Editer le commentaire</value>
</data>
<data name="ResourceEditor.ResourceEdit.ContextMenu.EditCommentText" xml:space="preserve">
<value>Saisissez le nouveau texte pour le commentaire de cette ressource:</value>
</data>
<data name="ResourceEditor.ResourceEdit.ContextMenu.Rename" xml:space="preserve">
<value>&amp;Renommer</value>
</data>
@ -5772,6 +5924,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -5772,6 +5924,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="SharpDevelop.FileFilter.AllFiles" xml:space="preserve">
<value>Tous les fichiers (*.*)</value>
</data>
<data name="SharpDevelop.FileFilter.AllKnownFiles" xml:space="preserve">
<value>Toutes les extensions connues</value>
</data>
<data name="SharpDevelop.FileFilter.AssemblyFiles" xml:space="preserve">
<value>Fichiers d'Assemblies (*.exe;*.dll)</value>
</data>

12
data/resources/StringResources.nl.resx

@ -4608,6 +4608,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v @@ -4608,6 +4608,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<data name="ICSharpCode.WixBinding.WixNetFxExtensionTitle" xml:space="preserve">
<value>.NET Raamwerk uitbreiding</value>
</data>
<data name="ICSharpCode.WixBinding.WixNotInstalled" xml:space="preserve">
<value>WiX is niet geïnstalleerd. Download a.u.b. WiX van http://wixtoolset.org/</value>
</data>
<data name="ICSharpCode.WixBinding.WixPackageFilesDiffControl.NoDiffFound" xml:space="preserve">
<value>Geen verschil gevonden.</value>
</data>
@ -5886,6 +5889,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v @@ -5886,6 +5889,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<data name="ResourceEditor.ResourceCodeGeneratorTool.CouldNotGenerateResourceProperty" xml:space="preserve">
<value>Hulpbron code generator: er kon geen eigenschap gegenereerd worden voor hulpbron '{0}',</value>
</data>
<data name="ResourceEditor.ResourceEdit.CommentColumn" xml:space="preserve">
<value>Commentaar</value>
</data>
<data name="ResourceEditor.ResourceEdit.ContentColumn" xml:space="preserve">
<value>Inhoud</value>
</data>
@ -5898,6 +5904,12 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v @@ -5898,6 +5904,12 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<data name="ResourceEditor.ResourceEdit.ContextMenu.CopyResourceName" xml:space="preserve">
<value>Kopieer naam van hulpbron</value>
</data>
<data name="ResourceEditor.ResourceEdit.ContextMenu.EditComment" xml:space="preserve">
<value>Commentaar redigeren</value>
</data>
<data name="ResourceEditor.ResourceEdit.ContextMenu.EditCommentText" xml:space="preserve">
<value>Voer de nieuwe tekst voor het hulpbron commentaar in:</value>
</data>
<data name="ResourceEditor.ResourceEdit.ContextMenu.Rename" xml:space="preserve">
<value>&amp;Hernoemen</value>
</data>

6
data/resources/StringResources.resx

@ -360,6 +360,12 @@ They will stop working after removing this AddIn! Are you sure you want to conti @@ -360,6 +360,12 @@ They will stop working after removing this AddIn! Are you sure you want to conti
<data name="AddInManager2.SDAddInFileFilter" xml:space="preserve">
<value>SharpDevelop AddIns|*.sdaddin;*.addin|All files|*.*</value>
</data>
<data name="AddInManager2.UpdateNotifier.BubbleText" xml:space="preserve">
<value>Click here to see the updates.</value>
</data>
<data name="AddInManager2.UpdateNotifier.BubbleTitle" xml:space="preserve">
<value>Updates for SharpDevelop are available</value>
</data>
<data name="AddInManager2.Views.Available" xml:space="preserve">
<value>Available</value>
</data>

3
samples/PInvokeAddIn/Project/PInvoke.nuspec

@ -2,11 +2,12 @@ @@ -2,11 +2,12 @@
<package xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<metadata xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<id>PInvoke</id>
<version>0.2</version>
<version>0.3</version>
<authors>Matt Ward</authors>
<owners>SharpDevelop</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>PInvoke.Net integration for SharpDevelop.</description>
<iconUrl>http://community.sharpdevelop.net/blogs/mattward/SharpDevelop.png</iconUrl>
<summary>PInvoke.Net integration for SharpDevelop.</summary>
<releaseNotes></releaseNotes>
<language>en-US</language>

2
samples/PInvokeAddIn/Project/Src/PInvokeCodeGenerator.cs

@ -21,7 +21,7 @@ namespace ICSharpCode.PInvokeAddIn @@ -21,7 +21,7 @@ namespace ICSharpCode.PInvokeAddIn
{
using (editor.Document.OpenUndoGroup()) {
int startLine = editor.Document.GetLineByOffset(editor.SelectionStart).LineNumber;
editor.SelectedText = DocumentUtilitites.NormalizeNewLines(signature, editor.Document, startLine);
editor.SelectedText = DocumentUtilities.NormalizeNewLines(signature, editor.Document, startLine);
int endLine = editor.Document.GetLineByOffset(editor.SelectionStart + editor.SelectionLength).LineNumber;
editor.Language.FormattingStrategy.IndentLines(editor, startLine, endLine);
}

131
src/AddIns/Misc/AddInManager2/AddInManager2.Tests/AvailableAddInsViewModelTests.cs

@ -88,19 +88,22 @@ namespace ICSharpCode.AddInManager2.Tests @@ -88,19 +88,22 @@ namespace ICSharpCode.AddInManager2.Tests
{
Id = _addIn1.Manifest.PrimaryIdentity,
Version = new SemanticVersion(_addIn1.Version),
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag,
IsLatestVersion = false
};
FakePackage fakePackage1_new = new FakePackage()
{
Id = _addIn1_new.Manifest.PrimaryIdentity,
Version = new SemanticVersion(_addIn1_new.Version),
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag,
IsLatestVersion = true
};
FakePackage fakePackage2 = new FakePackage()
{
Id = _addIn2.Manifest.PrimaryIdentity,
Version = new SemanticVersion(_addIn2.Version),
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag,
IsLatestVersion = true
};
// List of NuGet repositories
@ -155,13 +158,15 @@ namespace ICSharpCode.AddInManager2.Tests @@ -155,13 +158,15 @@ namespace ICSharpCode.AddInManager2.Tests
{
Id = _addIn1.Manifest.PrimaryIdentity,
Version = new SemanticVersion(_addIn1.Version),
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag,
IsLatestVersion = true
};
FakePackage fakePackage2 = new FakePackage()
{
Id = _addIn2.Manifest.PrimaryIdentity,
Version = new SemanticVersion(_addIn2.Version),
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag,
IsLatestVersion = true
};
// List of NuGet repositories
@ -225,18 +230,20 @@ namespace ICSharpCode.AddInManager2.Tests @@ -225,18 +230,20 @@ namespace ICSharpCode.AddInManager2.Tests
CreateAddIns();
_addIn1.Enabled = true;
// Package to be shown in repository
// Packages to be shown in repository
FakePackage fakePackage1 = new FakePackage()
{
Id = _addIn1.Manifest.PrimaryIdentity,
Version = new SemanticVersion(_addIn1.Version),
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag,
IsLatestVersion = true
};
FakePackage fakePackage2 = new FakePackage()
{
Id = _addIn2.Manifest.PrimaryIdentity,
Version = new SemanticVersion(_addIn2.Version),
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag,
IsLatestVersion = true
};
// List of NuGet repositories
@ -272,12 +279,78 @@ namespace ICSharpCode.AddInManager2.Tests @@ -272,12 +279,78 @@ namespace ICSharpCode.AddInManager2.Tests
Assert.That(firstAddIn.Version, Is.EqualTo(_addIn2.Version), "Version of 1st AddIn");
}
[Test]
public void SearchInstallableAddInsWithMultipleReleasesAndDownloadCountSorting()
{
CreateAddIns();
_addIn1.Enabled = true;
// Packages to be shown in repository
// To test correct sorting we let the newer release of addIn2 appear before the older one.
FakePackage fakePackage2_new = new FakePackage()
{
Id = _addIn2_new.Manifest.PrimaryIdentity,
Version = new SemanticVersion(_addIn2_new.Version),
Tags = SharpDevelopAddInTag,
DownloadCount = 30,
IsLatestVersion = true
};
FakePackage fakePackage1 = new FakePackage()
{
Id = _addIn1.Manifest.PrimaryIdentity,
Version = new SemanticVersion(_addIn1.Version),
Tags = SharpDevelopAddInTag,
DownloadCount = 10,
IsLatestVersion = true
};
FakePackage fakePackage2 = new FakePackage()
{
Id = _addIn2.Manifest.PrimaryIdentity,
Version = new SemanticVersion(_addIn2.Version),
Tags = SharpDevelopAddInTag,
IsLatestVersion = false
};
// List of NuGet repositories
List<PackageSource> registeredPackageSources = new List<PackageSource>();
registeredPackageSources.Add(new PackageSource("", "Test Repository"));
_services.FakeRepositories.RegisteredPackageSources = registeredPackageSources;
List<IPackageRepository> registeredPackageRepositories = new List<IPackageRepository>();
FakeCorePackageRepository remoteRepository = new FakeCorePackageRepository();
remoteRepository.Source = registeredPackageSources[0].Source;
remoteRepository.ReturnedPackages = (new IPackage[] { fakePackage2_new, fakePackage1, fakePackage2 }).AsQueryable();
_services.FakeRepositories.RegisteredPackageRepositories = registeredPackageRepositories;
// PackageRepository service should return remoteRepository instance
_services.FakeRepositories.GetRepositoryFromSourceCallback = delegate(PackageSource packageSource)
{
return remoteRepository;
};
FakeCorePackageRepository localRepository = new FakeCorePackageRepository();
_services.FakeNuGet.FakeCorePackageManager.LocalRepository = localRepository;
localRepository.ReturnedPackages = (new IPackage[] { }).AsQueryable();
var viewModel = new AvailableAddInsViewModel(_services);
viewModel.ReadPackagesAndWaitForUpdate();
// There must be only 2 packages in list, because user should see only latest releases
Assert.That(viewModel.AddInPackages.Count, Is.EqualTo(2), "AddIn list must contain 2 items.");
// fakePackage2_new is the first one, because it has a greater download count
AddInPackageViewModelBase firstAddIn = viewModel.AddInPackages[0];
Assert.That(firstAddIn.Id, Is.EqualTo(_addIn2_new.Manifest.PrimaryIdentity), "Primary identity of 1st AddIn");
Assert.That(firstAddIn.Name, Is.EqualTo(_addIn2_new.Manifest.PrimaryIdentity), "Name of 1st AddIn");
Assert.That(firstAddIn.Version, Is.EqualTo(_addIn2_new.Version), "Version of 1st AddIn");
}
// [Test]
// public void FilteringOutNonSharpDevelopPackages()
// {
// CreateAddIns();
// _addIn1.Enabled = true;
//
//
// // Package to be shown in repository
// FakePackage fakePackage1 = new FakePackage()
// {
@ -290,33 +363,33 @@ namespace ICSharpCode.AddInManager2.Tests @@ -290,33 +363,33 @@ namespace ICSharpCode.AddInManager2.Tests
// Version = new SemanticVersion(_addIn2.Version),
// Tags = SharpDevelopAddInTag
// };
//
//
// // List of NuGet repositories
// List<PackageSource> registeredPackageSources = new List<PackageSource>();
// registeredPackageSources.Add(new PackageSource("", "Test Repository"));
// _services.FakeRepositories.RegisteredPackageSources = registeredPackageSources;
//
//
// List<IPackageRepository> registeredPackageRepositories = new List<IPackageRepository>();
// FakeCorePackageRepository remoteRepository = new FakeCorePackageRepository();
// remoteRepository.Source = registeredPackageSources[0].Source;
// remoteRepository.ReturnedPackages = (new IPackage[] { fakePackage1, fakePackage2 }).AsQueryable();
// _services.FakeRepositories.RegisteredPackageRepositories = registeredPackageRepositories;
//
//
// // PackageRepository service should return remoteRepository instance
// _services.FakeRepositories.GetRepositoryFromSourceCallback = delegate(PackageSource packageSource)
// {
// return remoteRepository;
// };
//
//
// FakeCorePackageRepository localRepository = new FakeCorePackageRepository();
// _services.FakeNuGet.FakeCorePackageManager.LocalRepository = localRepository;
// localRepository.ReturnedPackages = (new IPackage[] { }).AsQueryable();
//
//
// var viewModel = new AvailableAddInsViewModel(_services);
// viewModel.ReadPackagesAndWaitForUpdate();
//
//
// Assert.That(viewModel.AddInPackages.Count, Is.EqualTo(1), "AddIn list must contain 1 item.");
//
//
// AddInPackageViewModelBase firstAddIn = viewModel.AddInPackages[0];
// Assert.That(firstAddIn.Id, Is.EqualTo(_addIn2.Manifest.PrimaryIdentity), "Primary identity of 1st AddIn");
// Assert.That(firstAddIn.Name, Is.EqualTo(_addIn2.Manifest.PrimaryIdentity), "Name of 1st AddIn");
@ -335,9 +408,10 @@ namespace ICSharpCode.AddInManager2.Tests @@ -335,9 +408,10 @@ namespace ICSharpCode.AddInManager2.Tests
{
fakePackages[i] = new FakePackage()
{
Id = _addIn1.Manifest.PrimaryIdentity + i.ToString(),
Id = _addIn1.Manifest.PrimaryIdentity + i.ToString("00"),
Version = new SemanticVersion(_addIn1.Version),
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag,
IsLatestVersion = true
};
}
@ -415,13 +489,15 @@ namespace ICSharpCode.AddInManager2.Tests @@ -415,13 +489,15 @@ namespace ICSharpCode.AddInManager2.Tests
{
Id = _addIn1.Manifest.PrimaryIdentity,
Version = new SemanticVersion(_addIn1.Version),
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag,
IsLatestVersion = true
};
FakePackage fakePackage2 = new FakePackage()
{
Id = _addIn2.Manifest.PrimaryIdentity,
Version = new SemanticVersion(_addIn2.Version),
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag,
IsLatestVersion = true
};
_addIn1.Properties.Set(ManagedAddIn.NuGetPackageIDManifestAttribute, fakePackage1.Id);
@ -512,13 +588,15 @@ namespace ICSharpCode.AddInManager2.Tests @@ -512,13 +588,15 @@ namespace ICSharpCode.AddInManager2.Tests
{
Id = _addIn_noVersion.Manifest.PrimaryIdentity,
Version = new SemanticVersion("1.0.2.0"),
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag,
IsLatestVersion = true
};
FakePackage fakePackage2 = new FakePackage()
{
Id = _addIn2.Manifest.PrimaryIdentity,
Version = new SemanticVersion(_addIn2.Version),
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag,
IsLatestVersion = true
};
_addIn_noVersion.Properties.Set(ManagedAddIn.NuGetPackageIDManifestAttribute, fakePackage1.Id);
@ -609,19 +687,22 @@ namespace ICSharpCode.AddInManager2.Tests @@ -609,19 +687,22 @@ namespace ICSharpCode.AddInManager2.Tests
{
Id = _addIn1.Manifest.PrimaryIdentity,
Version = new SemanticVersion(_addIn1.Version),
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag,
IsLatestVersion = false
};
FakePackage fakePackage1_new = new FakePackage()
{
Id = _addIn1_new.Manifest.PrimaryIdentity,
Version = new SemanticVersion(_addIn1_new.Version),
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag,
IsLatestVersion = true
};
FakePackage fakePackage2 = new FakePackage()
{
Id = _addIn2.Manifest.PrimaryIdentity,
Version = new SemanticVersion(_addIn2.Version),
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag,
IsLatestVersion = true
};
_addIn1.Properties.Set(ManagedAddIn.NuGetPackageIDManifestAttribute, fakePackage1_old.Id);

5
src/AddIns/Misc/AddInManager2/AddInManager2.Tests/Fakes/FakePackage.cs

@ -182,5 +182,10 @@ namespace ICSharpCode.AddInManager2.Tests.Fakes @@ -182,5 +182,10 @@ namespace ICSharpCode.AddInManager2.Tests.Fakes
throw new NotImplementedException();
}
}
public override string ToString()
{
return string.Format("[FakePackage Id={0}, Version={1}]", Id, Version);
}
}
}

47
src/AddIns/Misc/AddInManager2/Project/Src/Model/AddInSetup.cs

@ -417,11 +417,20 @@ namespace ICSharpCode.AddInManager2.Model @@ -417,11 +417,20 @@ namespace ICSharpCode.AddInManager2.Model
{
Directory.Delete(targetDir, true);
}
Directory.CreateDirectory(targetDir);
var directoryInfo = Directory.CreateDirectory(targetDir);
FastZip fastZip = new FastZip();
fastZip.CreateEmptyDirectories = true;
fastZip.ExtractZip(zipFile, targetDir, null);
if (addIn.FileName == null) {
// Find .addin file to set it in AddIn object
var addInFiles = directoryInfo.GetFiles("*.addin", SearchOption.TopDirectoryOnly);
var addInFile = addInFiles.FirstOrDefault();
if (addInFile != null) {
addIn.FileName = addInFile.FullName;
}
}
return true;
}
catch (Exception)
@ -445,20 +454,7 @@ namespace ICSharpCode.AddInManager2.Model @@ -445,20 +454,7 @@ namespace ICSharpCode.AddInManager2.Model
{
Directory.Delete(targetDir, true);
}
Directory.CreateDirectory(targetDir);
var packageContentsFiles = Directory.EnumerateFiles(packageDirectory, "*.*", SearchOption.TopDirectoryOnly);
if (packageContentsFiles != null)
{
foreach (var file in packageContentsFiles)
{
// Don't copy the .nupkg file
FileInfo fileInfo = new FileInfo(file);
if (fileInfo.Extension != ".nupkg")
{
File.Copy(file, Path.Combine(targetDir, fileInfo.Name));
}
}
}
DeepCopy(packageDirectory, targetDir);
return true;
}
@ -467,6 +463,27 @@ namespace ICSharpCode.AddInManager2.Model @@ -467,6 +463,27 @@ namespace ICSharpCode.AddInManager2.Model
return false;
}
}
void DeepCopy(string packageDirectory, string targetDirectory)
{
Directory.CreateDirectory(targetDirectory);
foreach (string file in Directory.EnumerateFiles(packageDirectory, "*.*", SearchOption.TopDirectoryOnly))
{
// Don't copy the .nupkg file
FileInfo fileInfo = new FileInfo(file);
if (fileInfo.Extension != ".nupkg")
{
File.Copy(file, Path.Combine(targetDirectory, fileInfo.Name));
}
}
foreach (string packageSubDirectory in Directory.EnumerateDirectories(packageDirectory))
{
string newTargetDirectory = Path.Combine(targetDirectory, Path.GetFileName(packageSubDirectory));
DeepCopy(packageSubDirectory, newTargetDirectory);
}
}
public void CancelUpdate(AddIn addIn)
{

6
src/AddIns/Misc/AddInManager2/Project/Src/UpdateNotifier.cs

@ -128,9 +128,9 @@ namespace ICSharpCode.AddInManager2 @@ -128,9 +128,9 @@ namespace ICSharpCode.AddInManager2
_notifyIcon.Click += NotifyIcon_Click;
_notifyIcon.BalloonTipClicked += NotifyIcon_Click;
_notifyIcon.Text = "Updates for SharpDevelop are available";
_notifyIcon.BalloonTipTitle = "Updates for SharpDevelop are available";
_notifyIcon.BalloonTipText = "Click here to see the updates";
_notifyIcon.Text = SD.ResourceService.GetString("AddInManager2.UpdateNotifier.BubbleTitle");
_notifyIcon.BalloonTipTitle = _notifyIcon.Text;
_notifyIcon.BalloonTipText = SD.ResourceService.GetString("AddInManager2.UpdateNotifier.BubbleText");
_notifyIcon.Visible = true;
_notifyIcon.ShowBalloonTip(40000);

14
src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/AvailableAddInsViewModel.cs

@ -9,7 +9,7 @@ using ICSharpCode.SharpDevelop; @@ -9,7 +9,7 @@ using ICSharpCode.SharpDevelop;
using NuGet;
namespace ICSharpCode.AddInManager2.ViewModel
{
{
public class AvailableAddInsViewModel : NuGetAddInsViewModelBase
{
public AvailableAddInsViewModel()
@ -44,19 +44,15 @@ namespace ICSharpCode.AddInManager2.ViewModel @@ -44,19 +44,15 @@ namespace ICSharpCode.AddInManager2.ViewModel
protected override IQueryable<IPackage> GetAllPackages()
{
return (ActiveRepository ?? AddInManager.Repositories.AllRegistered).GetPackages();
return (ActiveRepository ?? AddInManager.Repositories.AllRegistered).GetPackages()
.Where(package => package.IsLatestVersion);
}
protected override IEnumerable<IPackage> GetFilteredPackagesBeforePagingResults(IQueryable<IPackage> allPackages)
{
return base.GetFilteredPackagesBeforePagingResults(allPackages)
.Where(package => package.IsReleaseVersion())
.DistinctLast(PackageEqualityComparer.Id);
}
protected override IQueryable<IPackage> OrderPackages(IQueryable<IPackage> packages)
{
return packages.OrderByDescending(package => package.DownloadCount);
.OrderByDescending(package => package.DownloadCount)
.ThenBy(package => package.Id);
}
protected override void UpdatePrereleaseFilter()

3
src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/InstalledAddInsViewModel.cs

@ -159,6 +159,9 @@ namespace ICSharpCode.AddInManager2.ViewModel @@ -159,6 +159,9 @@ namespace ICSharpCode.AddInManager2.ViewModel
protected override void InstallFromArchive()
{
// Notify about new operation
AddInManager.Events.OnOperationStarted();
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = SD.ResourceService.GetString("AddInManager2.SDAddInFileFilter");
dlg.Multiselect = true;

5
src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/NuGetAddInsViewModelBase.cs

@ -143,10 +143,11 @@ namespace ICSharpCode.AddInManager2.ViewModel @@ -143,10 +143,11 @@ namespace ICSharpCode.AddInManager2.ViewModel
return _allPackages;
}
protected virtual IQueryable<IPackage> OrderPackages(IQueryable<IPackage> packages)
private IQueryable<IPackage> OrderPackages(IQueryable<IPackage> packages)
{
return packages
.OrderBy(package => package.Id);
.OrderBy(package => package.Id)
.ThenBy(package => package.Version);
}
private IQueryable<IPackage> FilterPackagesBySearchCriteria(IQueryable<IPackage> packages)

Loading…
Cancel
Save