Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorVsevolod Kukol <sevoku@microsoft.com>2019-11-27 00:55:46 +0300
committerGitHub <noreply@github.com>2019-11-27 00:55:46 +0300
commita9a857c5fca1fcda54adf5ae911dc353c2dc12d5 (patch)
tree4b40b7737e24d95bfc87af24088b0f26e6b3bf89 /main
parentc02dc2e4ac562048699b5ce87bde54a1d9097ab0 (diff)
parentdbb128a37c55a1dc61464a447ddc6b4d8223ec03 (diff)
Merge pull request #9379 from mono/nuget-manage-packages-dialog-accessibility
[NuGet] Manage packages dialog accessibility
Diffstat (limited to 'main')
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/ManagePackagesDialog.UI.cs28
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/ManagePackagesDialog.cs39
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/PackageReferenceNodeDescriptor.cs4
3 files changed, 58 insertions, 13 deletions
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/ManagePackagesDialog.UI.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/ManagePackagesDialog.UI.cs
index 08f0404871..b2761fc54f 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/ManagePackagesDialog.UI.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/ManagePackagesDialog.UI.cs
@@ -61,6 +61,7 @@ namespace MonoDevelop.PackageManagement
Label errorMessageLabel;
Label loadingSpinnerLabel;
FrameBox noPackagesFoundFrame;
+ Label noPackagesFoundLabel;
ComboBox packageVersionComboBox;
HBox packageVersionsHBox;
Label packageVersionsLabel;
@@ -94,9 +95,19 @@ namespace MonoDevelop.PackageManagement
var topHBox = new HBox ();
topHBox.Margin = new WidgetSpacing (8, 5, 6, 5);
+ // HACK: VoiceOver does not work when using Accessible.Label so workaround this by using
+ // Accessible.LabelWidget and hide the label since we do not need it.
+ var packageSourceLabel = new Label ();
+ packageSourceLabel.Text = GettextCatalog.GetString ("Package source");
+ packageSourceLabel.Visible = false;
+ topHBox.PackStart (packageSourceLabel);
+
packageSourceComboBox = new ComboBox ();
packageSourceComboBox.Name = "packageSourceComboBox";
packageSourceComboBox.MinWidth = 200;
+ // Does not work:
+ //packageSourceComboBox.Accessible.Label = GettextCatalog.GetString ("Package source");
+ packageSourceComboBox.Accessible.LabelWidget = packageSourceLabel;
topHBox.PackStart (packageSourceComboBox);
int tabLabelMinWidth = 60;
@@ -137,6 +148,7 @@ namespace MonoDevelop.PackageManagement
packageSearchEntry = new SearchTextEntry ();
packageSearchEntry.Name = "managePackagesDialogSearchEntry";
packageSearchEntry.WidthRequest = 187;
+ packageSearchEntry.PlaceholderText = GettextCatalog.GetString ("Search");
packageSearchEntry.Accessible.Label = GettextCatalog.GetString ("Package Search");
topHBox.PackEnd (packageSearchEntry);
@@ -179,6 +191,7 @@ namespace MonoDevelop.PackageManagement
packagesListView = new ListView ();
packagesListView.BorderVisible = false;
packagesListView.HeadersVisible = false;
+ packagesListView.Accessible.Label = GettextCatalog.GetString ("Packages");
packagesListVBox.PackStart (packagesListView, true, true);
// Loading spinner.
@@ -204,7 +217,7 @@ namespace MonoDevelop.PackageManagement
var noPackagesFoundHBox = new HBox ();
noPackagesFoundHBox.HorizontalPlacement = WidgetPlacement.Center;
- var noPackagesFoundLabel = new Label ();
+ noPackagesFoundLabel = new Label ();
noPackagesFoundLabel.Text = GettextCatalog.GetString ("No matching packages found.");
noPackagesFoundHBox.PackEnd (noPackagesFoundLabel);
@@ -273,17 +286,19 @@ namespace MonoDevelop.PackageManagement
var packageIdLabel = new Label ();
packageIdLabel.Font = packageInfoBoldFont;
- packageIdLabel.Text = GettextCatalog.GetString ("Id");
+ packageIdLabel.Text = GettextCatalog.GetString ("ID");
packageIdHBox.PackStart (packageIdLabel);
packageId = new Label ();
packageId.Ellipsize = EllipsizeMode.End;
packageId.TextAlignment = Alignment.End;
packageId.Font = packageInfoSmallFont;
+ packageId.Accessible.LabelWidget = packageIdLabel;
packageIdLink = new LinkLabel ();
packageIdLink.Ellipsize = EllipsizeMode.End;
packageIdLink.TextAlignment = Alignment.End;
packageIdLink.Font = packageInfoSmallFont;
+ packageIdLink.Accessible.LabelWidget = packageIdLabel;
packageIdHBox.PackEnd (packageIdLink, true);
packageIdHBox.PackEnd (packageId, true);
@@ -300,6 +315,7 @@ namespace MonoDevelop.PackageManagement
packageAuthor.TextAlignment = Alignment.End;
packageAuthor.Ellipsize = EllipsizeMode.End;
packageAuthor.Font = packageInfoSmallFont;
+ packageAuthor.Accessible.LabelWidget = packageAuthorLabel;
packageAuthorHBox.PackEnd (packageAuthor, true);
// Package published
@@ -313,6 +329,7 @@ namespace MonoDevelop.PackageManagement
packagePublishedDate = new Label ();
packagePublishedDate.Font = packageInfoSmallFont;
+ packagePublishedDate.Accessible.LabelWidget = packagePublishedLabel;
packagePublishedHBox.PackEnd (packagePublishedDate);
// Package downloads
@@ -326,6 +343,7 @@ namespace MonoDevelop.PackageManagement
packageDownloads = new Label ();
packageDownloads.Font = packageInfoSmallFont;
+ packageDownloads.Accessible.LabelWidget = packageDownloadsLabel;
packageDownloadsHBox.PackEnd (packageDownloads);
// Package license.
@@ -354,6 +372,7 @@ namespace MonoDevelop.PackageManagement
packageProjectPageLink = new LinkLabel ();
packageProjectPageLink.Text = GettextCatalog.GetString ("Visit Page");
packageProjectPageLink.Font = packageInfoSmallFont;
+ packageProjectPageLink.Accessible.Label = GettextCatalog.GetString ("Visit Project Page");
packageProjectPageHBox.PackEnd (packageProjectPageLink);
// Package dependencies
@@ -368,6 +387,7 @@ namespace MonoDevelop.PackageManagement
packageDependenciesNoneLabel = new Label ();
packageDependenciesNoneLabel.Text = GettextCatalog.GetString ("None");
packageDependenciesNoneLabel.Font = packageInfoSmallFont;
+ packageDependenciesNoneLabel.Accessible.LabelWidget = packageDependenciesLabel;
packageDependenciesHBox.PackEnd (packageDependenciesNoneLabel);
// Package dependencies list.
@@ -379,6 +399,7 @@ namespace MonoDevelop.PackageManagement
packageDependenciesList.Wrap = WrapMode.WordAndCharacter;
packageDependenciesList.Margin = new WidgetSpacing (5);
packageDependenciesList.Font = packageInfoSmallFont;
+ packageDependenciesList.Accessible.LabelWidget = packageDependenciesLabel;
packageDependenciesListHBox.PackStart (packageDependenciesList, true);
// Current package version.
@@ -400,11 +421,13 @@ namespace MonoDevelop.PackageManagement
currentPackageVersion = new Label ();
currentPackageVersion.Font = packageInfoSmallFont;
+ currentPackageVersion.Accessible.LabelWidget = currentPackageVersionLabel;
currentPackageVersionWithInfoPopoverHBox.PackStart (currentPackageVersion);
currentPackageVersionInfoPopoverWidget = new InformationPopoverWidget ();
currentPackageVersionInfoPopoverWidget.Severity = Ide.Tasks.TaskSeverity.Information;
currentPackageVersionInfoPopoverWidget.Margin = new WidgetSpacing (5, 0, 0, 2);
+ currentPackageVersionInfoPopoverWidget.Accessible.LabelWidget = currentPackageVersionLabel;
currentPackageVersionWithInfoPopoverHBox.PackStart (currentPackageVersionInfoPopoverWidget);
currentPackageVersionHBox.PackStart (currentPackageVersionWithInfoPopoverHBox);
@@ -422,6 +445,7 @@ namespace MonoDevelop.PackageManagement
packageVersionComboBox = new ComboBox ();
packageVersionComboBox.Name = "packageVersionComboBox";
+ packageVersionComboBox.Accessible.LabelWidget = packageVersionsLabel;
packageVersionsHBox.Spacing = 15;
packageVersionsHBox.PackStart (packageVersionComboBox, true, true);
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/ManagePackagesDialog.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/ManagePackagesDialog.cs
index 136ef23a9a..ac6f6b1641 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/ManagePackagesDialog.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/ManagePackagesDialog.cs
@@ -27,6 +27,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using MonoDevelop.Components.AtkCocoaHelper;
using MonoDevelop.Core;
using MonoDevelop.Ide;
using MonoDevelop.Projects;
@@ -240,6 +241,7 @@ namespace MonoDevelop.PackageManagement
projectsListView = new ListView ();
projectsListView.DataSource = projectStore;
+ projectsListView.Accessible.LabelWidget = projectsListViewLabel;
// Selected project check box column.
if (projectCheckBoxCellView != null)
@@ -248,16 +250,15 @@ namespace MonoDevelop.PackageManagement
projectCheckBoxCellView.ActiveField = projectCheckedField;
projectCheckBoxCellView.Editable = true;
projectCheckBoxCellView.Toggled += ProjectCheckBoxCellViewToggled;
- var column = new ListViewColumn (string.Empty, projectCheckBoxCellView);
- projectsListView.Columns.Add (column);
-
- // Project column.
- var textCellView = new TextCellView ();
- textCellView.TextField = projectNameField;
- column = new ListViewColumn (GettextCatalog.GetString ("Project"), textCellView) {
+ var column = new ListViewColumn (GettextCatalog.GetString ("Project"), projectCheckBoxCellView) {
CanResize = true,
SortDataField = projectNameField
};
+
+ // Project name.
+ var textCellView = new TextCellView ();
+ textCellView.TextField = projectNameField;
+ column.Views.Add (textCellView);
projectsListView.Columns.Add (column);
// Package version column
@@ -304,6 +305,8 @@ namespace MonoDevelop.PackageManagement
if (!String.IsNullOrWhiteSpace (packageSearchEntry.Text)) {
packagesListView.Visible = false;
noPackagesFoundFrame.Visible = true;
+
+ IdeApp.Workbench.RootWindow.Accessible.MakeAccessibilityAnnouncement (noPackagesFoundLabel.Text);
}
}
@@ -553,6 +556,7 @@ namespace MonoDevelop.PackageManagement
// Show spinner?
} else if (viewModel.IsReadingPackages) {
ClearPackages ();
+ IdeApp.Workbench.RootWindow.Accessible.MakeAccessibilityAnnouncement (loadingSpinnerLabel.Text);
} else {
HideLoadingMessage ();
}
@@ -607,6 +611,11 @@ namespace MonoDevelop.PackageManagement
if (packagesListViewWasEmpty && (packageStore.RowCount > 0)) {
packagesListView.SelectRow (0);
+
+ string message = string.IsNullOrWhiteSpace (packageSearchEntry.Text)
+ ? GettextCatalog.GetString ("Packages loaded")
+ : GettextCatalog.GetString ("Search completed");
+ IdeApp.Workbench.RootWindow.Accessible.MakeAccessibilityAnnouncement (message);
}
if (!viewModel.IsReadingPackages && (packageStore.RowCount == 0)) {
@@ -618,8 +627,18 @@ namespace MonoDevelop.PackageManagement
{
int row = packageStore.AddRow ();
var accessibleDescription = StringBuilderCache.Allocate (packageViewModel.Id);
- if (packageViewModel.HasDownloadCount)
- accessibleDescription.Append (", ").Append (packageViewModel.GetDownloadCountDisplayText ()).Append (" ").Append (GettextCatalog.GetString ("Downloads"));
+ if (packageViewModel.HasDownloadCount) {
+ accessibleDescription.Append (", ");
+ if (packageViewModel.ShowVersionInsteadOfDownloadCount) {
+ accessibleDescription.Append (GettextCatalog.GetString ("Version"));
+ accessibleDescription.Append (" ");
+ accessibleDescription.Append (packageViewModel.GetDownloadCountOrVersionDisplayText ());
+ } else {
+ accessibleDescription.Append (packageViewModel.GetDownloadCountOrVersionDisplayText ());
+ accessibleDescription.Append (" ");
+ accessibleDescription.Append (GettextCatalog.GetString ("Downloads"));
+ }
+ }
if (!string.IsNullOrEmpty (packageViewModel.Summary))
accessibleDescription.Append (", ").Append (packageViewModel.Summary);
packageStore.SetValues (row,
@@ -876,6 +895,8 @@ namespace MonoDevelop.PackageManagement
viewModel.SearchTerms = this.packageSearchEntry.Text;
viewModel.Search ();
+ IdeApp.Workbench.RootWindow.Accessible.MakeAccessibilityAnnouncement (loadingSpinnerLabel.Text);
+
return false;
}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/PackageReferenceNodeDescriptor.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/PackageReferenceNodeDescriptor.cs
index 2b59b1b3a1..3106486c6e 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/PackageReferenceNodeDescriptor.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.NodeBuilders/PackageReferenceNodeDescriptor.cs
@@ -41,8 +41,8 @@ namespace MonoDevelop.PackageManagement.NodeBuilders
}
[LocalizedCategory ("Package")]
- [LocalizedDisplayName ("Id")]
- [LocalizedDescription ("Package Id.")]
+ [LocalizedDisplayName ("ID")]
+ [LocalizedDescription ("Package ID.")]
public string Id {
get { return packageReferenceNode.Id; }
}