refactor(desktop): clean up some code

This commit is contained in:
Anna 2020-11-14 15:09:23 -05:00
parent f86bb6a516
commit 0637b7e516
5 changed files with 14 additions and 42 deletions

View File

@ -8,7 +8,9 @@ namespace XIVChat_Desktop {
public partial class ConnectDialog { public partial class ConnectDialog {
public App App => (App)Application.Current; public App App => (App)Application.Current;
public ConnectDialog() { public ConnectDialog(Window owner) {
this.Owner = owner;
this.InitializeComponent(); this.InitializeComponent();
this.DataContext = this; this.DataContext = this;
} }

View File

@ -1,5 +1,4 @@
using System.Windows; using System.Windows;
using System.Windows.Controls;
using XIVChatCommon; using XIVChatCommon;
namespace XIVChat_Desktop.Controls { namespace XIVChat_Desktop.Controls {
@ -40,7 +39,7 @@ namespace XIVChat_Desktop.Controls {
set => this.SetValue(ShowTimestampsProperty, value); set => this.SetValue(ShowTimestampsProperty, value);
} }
public static void PropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { private static void PropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) {
// Clear current textBlock // Clear current textBlock
if (!(d is MessageTextBlock textBlock)) { if (!(d is MessageTextBlock textBlock)) {
return; return;

View File

@ -127,10 +127,7 @@ namespace XIVChat_Desktop {
} }
private void Connect_Click(object sender, RoutedEventArgs e) { private void Connect_Click(object sender, RoutedEventArgs e) {
var dialog = new ConnectDialog { new ConnectDialog(this).ShowDialog();
Owner = this,
};
dialog.ShowDialog();
} }
private void Disconnect_Click(object sender, RoutedEventArgs e) { private void Disconnect_Click(object sender, RoutedEventArgs e) {

View File

@ -343,12 +343,18 @@ namespace XIVChat_Desktop {
var isLeft = false; var isLeft = false;
var isRight = false; var isRight = false;
// A left-flanking delimiter run is a delimiter run that is (1) not followed by Unicode whitespace, and either (2a) not followed by a punctuation character, or (2b) followed by a punctuation character and preceded by Unicode whitespace or a punctuation character. For purposes of this definition, the beginning and the end of the line count as Unicode whitespace. // A left-flanking delimiter run is a delimiter run that is (1) not followed by Unicode whitespace, and
// either (2a) not followed by a punctuation character, or (2b) followed by a punctuation character and
// preceded by Unicode whitespace or a punctuation character. For purposes of this definition, the beginning
// and the end of the line count as Unicode whitespace.
if (!followedByWhitespace && (!followedByPunctuation || (followedByPunctuation && (precededByWhitespace || precededByPunctuation)))) { if (!followedByWhitespace && (!followedByPunctuation || (followedByPunctuation && (precededByWhitespace || precededByPunctuation)))) {
isLeft = true; isLeft = true;
} }
// A right-flanking delimiter run is a delimiter run that is (1) not preceded by Unicode whitespace, and either (2a) not preceded by a punctuation character, or (2b) preceded by a punctuation character and followed by Unicode whitespace or a punctuation character. For purposes of this definition, the beginning and the end of the line count as Unicode whitespace. // A right-flanking delimiter run is a delimiter run that is (1) not preceded by Unicode whitespace, and
// either (2a) not preceded by a punctuation character, or (2b) preceded by a punctuation character and
// followed by Unicode whitespace or a punctuation character. For purposes of this definition, the beginning
// and the end of the line count as Unicode whitespace.
if (!precededByWhitespace && (!precededByPunctuation || (precededByPunctuation && (followedByWhitespace || followedByPunctuation)))) { if (!precededByWhitespace && (!precededByPunctuation || (precededByPunctuation && (followedByWhitespace || followedByPunctuation)))) {
isRight = true; isRight = true;
} }

View File

@ -11,39 +11,7 @@ using Inline = System.Windows.Documents.Inline;
namespace XIVChat_Desktop { namespace XIVChat_Desktop {
public class MessageFormatter { public class MessageFormatter {
private static readonly BitmapFrame FontIcon = private static readonly BitmapFrame FontIcon = BitmapFrame.Create(new Uri("pack://application:,,,/Resources/fonticon_ps4.tex.png"));
BitmapFrame.Create(new Uri("pack://application:,,,/Resources/fonticon_ps4.tex.png"));
public static readonly DependencyProperty FormattedTextProperty = DependencyProperty.RegisterAttached(
"FormattedText",
typeof(ServerMessage),
typeof(MessageFormatter)
// new PropertyMetadata(null, FormattedTextPropertyChanged)
);
public static void SetFormattedText(DependencyObject textBlock, ServerMessage value) {
textBlock.SetValue(FormattedTextProperty, value);
}
public static string GetFormattedText(DependencyObject textBlock) {
return (string)textBlock.GetValue(FormattedTextProperty);
}
// private static void FormattedTextPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) {
// // Clear current textBlock
// if (!(d is TextBlock textBlock)) {
// return;
// }
//
// textBlock.ClearValue(TextBlock.TextProperty);
// textBlock.Inlines.Clear();
//
// // Create new formatted text
// var lineHeight = textBlock.FontFamily.LineSpacing * textBlock.FontSize;
// foreach (var inline in ChunksToTextBlock(lineHeight, (ServerMessage)e.NewValue)) {
// textBlock.Inlines.Add(inline);
// }
// }
public static IEnumerable<Inline> ChunksToTextBlock(ServerMessage message, double lineHeight, bool processMarkdown, bool showTimestamp) { public static IEnumerable<Inline> ChunksToTextBlock(ServerMessage message, double lineHeight, bool processMarkdown, bool showTimestamp) {
var elements = new List<Inline>(); var elements = new List<Inline>();