Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions RetailCoder.VBE/Rubberduck.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,13 @@
<Compile Include="Inspections\VariableNotAssignedInspection.cs" />
<Compile Include="Inspections\IdentifierNotAssignedInspectionResult.cs" />
<Compile Include="UI\FolderBrowser.cs" />
<Compile Include="UI\Settings\AddMarkerForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="UI\Settings\AddMarkerForm.Designer.cs">
<DependentUpon>AddMarkerForm.cs</DependentUpon>
</Compile>
<Compile Include="UI\Settings\IAddTodoSettingsView.cs" />
<Compile Include="UI\SourceControl\App.cs" />
<Compile Include="Properties\Annotations.cs" />
<Compile Include="Properties\Resources.Designer.cs">
Expand Down Expand Up @@ -591,6 +598,9 @@
<DependentUpon>FindSymbolDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UI\RubberduckUI.sv.resx" />
<EmbeddedResource Include="UI\Settings\AddMarkerForm.resx">
<DependentUpon>AddMarkerForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UI\SimpleListControl.resx">
<DependentUpon>SimpleListControl.cs</DependentUpon>
</EmbeddedResource>
Expand Down
2 changes: 1 addition & 1 deletion RetailCoder.VBE/Settings/ConfigurationLoader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ public Configuration GetDefaultConfiguration()
public ToDoMarker[] GetDefaultTodoMarkers()
{
var note = new ToDoMarker(RubberduckUI.ToDoMarkerNote, TodoPriority.Low);
var todo = new ToDoMarker(RubberduckUI.ToDoMarkerToDo, TodoPriority.Normal);
var todo = new ToDoMarker(RubberduckUI.ToDoMarkerToDo, TodoPriority.Medium);
var bug = new ToDoMarker(RubberduckUI.ToDoMarkerBug, TodoPriority.High);

return new[] { note, todo, bug };
Expand Down
23 changes: 21 additions & 2 deletions RetailCoder.VBE/Settings/ToDoMarkers.cs
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
using System.Xml.Serialization;
using System;
using System.Xml.Serialization;
using Rubberduck.UI;

namespace Rubberduck.Settings
{
public enum TodoPriority
{
Low,
Normal,
Medium,
High
}

Expand All @@ -25,6 +27,23 @@ public class ToDoMarker : IToDoMarker
[XmlAttribute]
public TodoPriority Priority { get; set; }

[XmlIgnore]
public string PriorityLabel
{
get { return RubberduckUI.ResourceManager.GetString("ToDoPriority_" + Priority, RubberduckUI.Culture); }
set
{
foreach (var priority in Enum.GetValues(typeof(TodoPriority)))
{
if (value == RubberduckUI.ResourceManager.GetString("ToDoPriority_" + priority, RubberduckUI.Culture))
{
Priority = (TodoPriority)priority;
return;
}
}
}
}

/// <summary> Default constructor is required for serialization. DO NOT USE. </summary>
public ToDoMarker()
{
Expand Down
165 changes: 165 additions & 0 deletions RetailCoder.VBE/UI/Settings/AddMarkerForm.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

99 changes: 99 additions & 0 deletions RetailCoder.VBE/UI/Settings/AddMarkerForm.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using Rubberduck.Settings;

namespace Rubberduck.UI.Settings
{
public partial class AddMarkerForm : Form, IAddTodoMarkerView
{
public AddMarkerForm()
{
InitializeComponent();

IsValidMarker = false;

OkButton.Click += OKButtonClick;
CancelButton.Click += CancelButtonClick;
TodoMarkerTextBox.TextChanged += MarkerTextChanged;
TodoMarkerPriorityComboBox.DataSource = TodoLabels();
}

public List<ToDoMarker> TodoMarkers { get; set; }

public string MarkerText
{
get { return TodoMarkerTextBox.Text; }
set { TodoMarkerTextBox.Text = value; }
}

private bool _isValidMarker;
public bool IsValidMarker
{
get { return _isValidMarker; }
set
{
_isValidMarker = value;

InvalidNameValidationIcon.Visible = !_isValidMarker;
OkButton.Enabled = _isValidMarker;
}
}

private List<string> TodoLabels()
{
return (from object priority in Enum.GetValues(typeof(TodoPriority))
select
RubberduckUI.ResourceManager.GetString("ToDoPriority_" + priority, RubberduckUI.Culture))
.ToList();
}

public TodoPriority MarkerPriority
{
get
{
return Enum.GetValues(typeof (TodoPriority))
.Cast<TodoPriority>()
.FirstOrDefault(
p =>
Equals(TodoMarkerPriorityComboBox.SelectedItem, RubberduckUI.ResourceManager.GetString("ToDoPriority_" + p, RubberduckUI.Culture)));
}
set
{
TodoMarkerPriorityComboBox.SelectedItem = RubberduckUI.ResourceManager.GetString("ToDoPriority_" + value, RubberduckUI.Culture);

}
}

public event EventHandler AddMarker;
private void OKButtonClick(object sender, EventArgs e)
{
var handler = AddMarker;
if (handler != null)
{
handler(sender, e);
}
}

public event EventHandler Cancel;
private void CancelButtonClick(object sender, EventArgs e)
{
var handler = Cancel;
if (handler != null)
{
handler(sender, e);
}
}

public event EventHandler TextChanged;
private void MarkerTextChanged(object sender, EventArgs e)
{
var handler = TextChanged;
if (handler != null)
{
handler(sender, e);
}
}
}
}
48 changes: 48 additions & 0 deletions RetailCoder.VBE/UI/Settings/IAddTodoSettingsView.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
using System;
using System.Collections.Generic;
using Rubberduck.Settings;

namespace Rubberduck.UI.Settings
{
public interface IAddTodoMarkerView
{
/// <summary>
/// List of all current TodoMarkers.
/// </summary>
List<ToDoMarker> TodoMarkers { get; set; }

/// <summary>
/// Current text of new marker.
/// </summary>
string MarkerText { get; set; }

/// <summary>
/// Current priority of new marker.
/// </summary>
TodoPriority MarkerPriority { get; set; }

/// <summary>
/// Sets UI display based on validity of marker.
/// </summary>
bool IsValidMarker { get; set; }

/// <summary>
/// Request to add the currently active marker to BindingList{TodoMarker}.
/// </summary>
event EventHandler AddMarker;

/// <summary>
/// Cancel adding marker.
/// </summary>
event EventHandler Cancel;

/// <summary>
/// Cancel adding marker.
/// </summary>
event EventHandler TextChanged;

void Show();
void Hide();
void Close();
}
}
Loading