diff --git a/CHANGELOG.md b/CHANGELOG.md
index 749d9d177..da0b438c4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -16,6 +16,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
## [Unreleased]
+## [14.1.1] - 2024-05-23
+
+### Fixed
+
+- [SIL.Windows.Forms.DblBundle] Fixed bug in ProjectsListBase that made it impossible to select a project after double-clicking a column header. (See HT-475)
+
## [14.1.0] - 2024-05-13
### Added
@@ -391,7 +397,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
- [SIL.NUnit3Compatibility] new project/package that allows to use NUnit3 syntax with NUnit2
projects
-[Unreleased]: https://github.com/sillsdev/libpalaso/compare/v14.1.0...master
+[Unreleased]: https://github.com/sillsdev/libpalaso/compare/v14.1.1...master
+[14.1.1]: https://github.com/sillsdev/libpalaso/compare/v14.1.0...v14.1.1
[14.1.0]: https://github.com/sillsdev/libpalaso/compare/v14.0.0...v14.1.0
[14.0.0]: https://github.com/sillsdev/libpalaso/compare/v13.0.1...v14.0.0
[13.0.1]: https://github.com/sillsdev/libpalaso/compare/v13.0.0...v13.0.1
diff --git a/Palaso.sln.DotSettings b/Palaso.sln.DotSettings
index b55cbf111..8ee3e7046 100644
--- a/Palaso.sln.DotSettings
+++ b/Palaso.sln.DotSettings
@@ -26,6 +26,7 @@
True
True
True
+ True
True
True
True
diff --git a/SIL.Windows.Forms.DblBundle/ProjectsListBase.cs b/SIL.Windows.Forms.DblBundle/ProjectsListBase.cs
index b254ec76c..a92beff3f 100644
--- a/SIL.Windows.Forms.DblBundle/ProjectsListBase.cs
+++ b/SIL.Windows.Forms.DblBundle/ProjectsListBase.cs
@@ -1,10 +1,11 @@
-using System;
+using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Windows.Forms;
+using JetBrains.Annotations;
using L10NSharp;
using SIL.DblBundle;
using SIL.DblBundle.Text;
@@ -36,7 +37,7 @@ public abstract partial class ProjectsListBase : UserControl
private bool m_projectSelected; // The value of this boolean is only reliable if m_sorting is true.
private bool m_sorting;
- public ProjectsListBase()
+ protected ProjectsListBase()
{
InitializeComponent();
}
@@ -44,7 +45,7 @@ public ProjectsListBase()
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public string SelectedProject
{
- get { return m_selectedProject; }
+ get => m_selectedProject;
set
{
m_selectedProject = value;
@@ -61,6 +62,7 @@ public string SelectedProject
}
}
+ [PublicAPI]
public void AddReadOnlyProject(string projectFilePath)
{
m_readOnlyProjects.Add(projectFilePath);
@@ -68,7 +70,7 @@ public void AddReadOnlyProject(string projectFilePath)
public virtual bool IncludeHiddenProjects
{
- get { return m_includeHiddenProjects; }
+ get => m_includeHiddenProjects;
set
{
m_includeHiddenProjects = value;
@@ -76,23 +78,23 @@ public virtual bool IncludeHiddenProjects
}
}
- protected virtual DataGridViewColumn InactiveColumn { get { return null; } }
+ protected virtual DataGridViewColumn InactiveColumn => null;
+ [PublicAPI]
protected void OverrideColumnHeaderText(int columnIndex, string displayName)
{
m_list.Columns[columnIndex].HeaderText = displayName;
}
+ [PublicAPI]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
- public bool HiddenProjectsExist
- {
- get { return m_hiddenProjectsExist; }
- }
+ public bool HiddenProjectsExist => m_hiddenProjectsExist;
+ [PublicAPI]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public GridSettings GridSettings
{
- get { return GridSettings.Create(m_list); }
+ get => GridSettings.Create(m_list);
set
{
if (value == null)
@@ -134,15 +136,18 @@ protected override void OnLoad(EventArgs e)
// don't change the AutoSizeMode of the fill column
if (m_list.Columns[i] == FillColumn)
continue;
- int colw = m_list.Columns[i].Width;
+ int colWidth = m_list.Columns[i].Width;
m_list.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
- m_list.Columns[i].Width = colw;
+ m_list.Columns[i].Width = colWidth;
}
}
}
- protected virtual DataGridViewColumn FillColumn { get { return colRecordingProjectName; } }
+ protected virtual DataGridViewColumn FillColumn => colRecordingProjectName;
+ ///
+ /// Enumeration of folders where existing project files are stored
+ ///
protected abstract IEnumerable AllProjectFolders { get; }
protected abstract string ProjectFileExtension { get; }
@@ -167,8 +172,7 @@ protected virtual IEnumerable> Projects
protected virtual IProjectInfo GetProjectInfo(string path)
{
- Exception exception;
- var metadata = DblMetadataBase.Load(path, out exception);
+ var metadata = DblMetadataBase.Load(path, out var exception);
return exception == null ? metadata : null;
}
@@ -215,10 +219,12 @@ private void LoadExistingProjects()
(m_filterBundleId != null && m_filterBundleId != project.Item2.Id))
continue;
- List