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

View File

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

View File

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

View File

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

View File

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