Fixed text editor not working.

This commit is contained in:
Tiberiu Chibici 2014-09-08 22:53:00 +03:00
parent fd166fe814
commit b6d8730783
5 changed files with 36 additions and 32 deletions

View File

@ -16,9 +16,9 @@ namespace RainmeterStudio.TextEditorPlugin
/// <summary> /// <summary>
/// Gets or sets the text associated with this document /// Gets or sets the text associated with this document
/// </summary> /// </summary>
public List<string> Lines public string Text
{ {
get; private set; get; set;
} }
/// <summary> /// <summary>
@ -67,7 +67,7 @@ namespace RainmeterStudio.TextEditorPlugin
/// </summary> /// </summary>
public TextDocument() public TextDocument()
{ {
Lines = new List<string>(); Text = String.Empty;
} }
} }
} }

View File

@ -6,7 +6,6 @@
mc:Ignorable="d" mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300"> d:DesignHeight="300" d:DesignWidth="300">
<Grid> <Grid>
<TextBox Name="text" AcceptsReturn="True" <TextBox Name="textBox" AcceptsReturn="True" />
TextChanged="text_TextChanged"/>
</Grid> </Grid>
</UserControl> </UserControl>

View File

@ -24,18 +24,17 @@ namespace RainmeterStudio.TextEditorPlugin
public TextEditorControl(TextDocument document) public TextEditorControl(TextDocument document)
{ {
InitializeComponent(); InitializeComponent();
DataContext = this;
_document = document; _document = document;
textBox.Text = _document.Text;
StringBuilder txt = new StringBuilder(); textBox.TextChanged += text_TextChanged;
document.Lines.ForEach((line) => txt.AppendLine(line));
text.Text = txt.ToString();
} }
private void text_TextChanged(object sender, TextChangedEventArgs e) private void text_TextChanged(object sender, TextChangedEventArgs e)
{ {
_document.IsDirty = true; _document.IsDirty = true;
_document.Text = textBox.Text;
} }
} }
} }

View File

@ -17,7 +17,7 @@ namespace RainmeterStudio.TextEditorPlugin
{ {
TextDocument document = new TextDocument(); TextDocument document = new TextDocument();
document.Reference = new Reference(Path.GetFileName(path), path); document.Reference = new Reference(Path.GetFileName(path), path);
document.Lines.AddRange(File.ReadAllLines(path)); document.Text = File.ReadAllText(path);
return document; return document;
} }
@ -30,7 +30,7 @@ namespace RainmeterStudio.TextEditorPlugin
if (textDocument == null) if (textDocument == null)
throw new ArgumentException("Provided document is not supported by this storage."); throw new ArgumentException("Provided document is not supported by this storage.");
File.WriteAllLines(path, textDocument.Lines); File.WriteAllText(path, textDocument.Text);
} }
/// <inheritdoc /> /// <inheritdoc />

View File

@ -66,6 +66,7 @@ namespace RainmeterStudio.UI
document.Content = e.Editor.EditorUI; document.Content = e.Editor.EditorUI;
document.Closing += document_Closing; document.Closing += document_Closing;
document.Closed += document_Closed; document.Closed += document_Closed;
document.Title = GetDocumentTitle(e.Document);
document.IsActiveChanged += new EventHandler((sender2, e2) => document.IsActiveChanged += new EventHandler((sender2, e2) =>
{ {
if (document.IsActive) if (document.IsActive)
@ -76,28 +77,33 @@ namespace RainmeterStudio.UI
documentPane.SelectedContentIndex = documentPane.IndexOf(document); documentPane.SelectedContentIndex = documentPane.IndexOf(document);
e.Document.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler((obj, args) => e.Document.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler((obj, args) =>
{
// Update document title
document.Title = GetDocumentTitle(e.Document);
});
}
private string GetDocumentTitle(IDocument document)
{ {
string documentName; string documentName;
// Get title // Get title
if (ProjectController.ActiveProject == null || !ProjectController.ActiveProject.Contains(e.Document.Reference)) if (ProjectController.ActiveProject == null || !ProjectController.ActiveProject.Contains(document.Reference))
{ {
documentName = e.Document.Reference.StoragePath ?? "New document"; documentName = document.Reference.StoragePath ?? "New document";
} }
else else
{ {
documentName = e.Document.Reference.Name; documentName = document.Reference.Name;
} }
// Is document dirty? Append star // Is document dirty? Append star
if (e.Document.IsDirty) if (document.IsDirty)
{ {
documentName += "*"; documentName += "*";
} }
// Set document title return documentName;
document.Title = documentName;
});
} }
void document_Closed(object sender, EventArgs e) void document_Closed(object sender, EventArgs e)