Default theme is back. Container selection functionality etc.

This commit is contained in:
Burak Kaan Köse
2025-10-18 22:16:28 +02:00
parent ad135c5e32
commit ecff97419b
18 changed files with 205 additions and 655 deletions
@@ -6,6 +6,25 @@ public class MailItemContainer
{
public MailItemViewModel ItemViewModel { get; set; }
public ThreadMailItemViewModel ThreadViewModel { get; set; }
/// <summary>
/// Indicates whether the mail item is currently visible in the UI's Items collection.
/// For threaded items, this indicates if the individual mail item is visible (thread must be expanded).
/// </summary>
public bool IsItemVisible { get; set; }
/// <summary>
/// Indicates whether the thread expander (if applicable) is currently visible in the UI's Items collection.
/// Only relevant when ThreadViewModel is not null.
/// </summary>
public bool IsThreadVisible { get; set; }
/// <summary>
/// Indicates whether the container can be successfully navigated to in the UI.
/// For standalone items: true if IsItemVisible is true.
/// For threaded items: true if IsThreadVisible is true (the thread expander can be navigated to).
/// </summary>
public bool CanNavigate => ThreadViewModel != null ? IsThreadVisible : IsItemVisible;
public MailItemContainer(MailItemViewModel itemViewModel, ThreadMailItemViewModel threadViewModel) : this(itemViewModel)
{
@@ -110,4 +110,9 @@ public partial class ThreadMailItemViewModel : ObservableRecipient, IDisposable
NotifyPropertyChanges();
}
}
/// <summary>
/// Checks if this thread contains an email with the specified unique ID
/// </summary>
public bool HasUniqueId(Guid uniqueId) => _threadEmails.Any(email => email.MailCopy.UniqueId == uniqueId);
}