Compare commits

..

No commits in common. "main" and "v0.4.8" have entirely different histories.
main ... v0.4.8

9 changed files with 12 additions and 30 deletions

View File

@ -6,11 +6,6 @@ The format follows [Keep a Changelog](https://keepachangelog.com/) and [Semantic
## [Unreleased]
## [0.4.9] - 2026-11-05
### Changed
- Sidebar **All emails** renamed to **All inboxes**, with a tooltip that it only combines each account's Inbox (not labels or other folders).
## [0.4.8] - 2026-11-05
Sidebar **All emails** combines every Inbox. Sharing an account moves its archive and sign-in secrets with the setting. IMAP no longer stalls mid-folder after a partial FETCH.

View File

@ -3,7 +3,7 @@
<LangVersion>latest</LangVersion>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<Version>0.4.9</Version>
<Version>0.4.8</Version>
<Product>Postclient</Product>
<AssemblyTitle>Postclient</AssemblyTitle>
<Authors>Maksym Sadovnychyy</Authors>

View File

@ -332,9 +332,7 @@ public sealed partial class UiCopy {
public string Folders { get; init; } = "";
public string AllInboxes { get; init; } = "";
public string AllInboxesHint { get; init; } = "";
public string AllEmails { get; init; } = "";
public string SearchPlaceholder { get; init; } = "";
@ -848,8 +846,7 @@ public sealed partial class UiCopy {
Delete = "Delete",
MoveTo = "Move To",
Folders = "Folders",
AllInboxes = "All inboxes",
AllInboxesHint = "Only each account's Inbox - not labels or other folders - so this list stays about what needs attention across mailboxes.",
AllEmails = "All emails",
SearchPlaceholder = "Search subject, body, attachments, labels, meaning",
ClearSearch = "Clear search",
Label = "Label",
@ -1156,8 +1153,7 @@ public sealed partial class UiCopy {
Delete = "Elimina",
MoveTo = "Sposta in",
Folders = "Cartelle",
AllInboxes = "Tutte le caselle",
AllInboxesHint = "Solo la Posta in arrivo di ogni account - non etichette o altre cartelle - cosi l'elenco resta su cio che richiede attenzione tra le caselle.",
AllEmails = "Tutte le email",
SearchPlaceholder = "Cerca oggetto, corpo, allegati, etichette, significato",
ClearSearch = "Cancella ricerca",
Label = "Etichetta",

View File

@ -170,8 +170,7 @@ public sealed partial class UiCopy {
Delete = "Löschen",
MoveTo = "Verschieben nach",
Folders = "Ordner",
AllInboxes = "Alle Posteingange",
AllInboxesHint = "Nur der Posteingang jedes Kontos - keine Labels oder anderen Ordner - damit die Liste bei dem bleibt, was uber Konten hinweg Aufmerksamkeit braucht.",
AllEmails = "Alle E-Mails",
SearchPlaceholder = "Betreff, Text, Anlagen, Kennzeichen, Bedeutung suchen",
ClearSearch = "Suche leeren",
Label = "Kennzeichen",

View File

@ -170,8 +170,7 @@ public sealed partial class UiCopy {
Delete = "Eliminar",
MoveTo = "Mover a",
Folders = "Carpetas",
AllInboxes = "Todas las bandejas",
AllInboxesHint = "Solo la bandeja de entrada de cada cuenta - no etiquetas u otras carpetas - para que la lista se centre en lo que requiere atencion entre cuentas.",
AllEmails = "Todos los correos",
SearchPlaceholder = "Buscar asunto, cuerpo, adjuntos, etiquetas, significado",
ClearSearch = "Borrar búsqueda",
Label = "Etiqueta",

View File

@ -170,8 +170,7 @@ public sealed partial class UiCopy {
Delete = "Supprimer",
MoveTo = "Déplacer vers",
Folders = "Dossiers",
AllInboxes = "Toutes les boites",
AllInboxesHint = "Uniquement la boite de reception de chaque compte - pas les libelles ni les autres dossiers - pour garder la liste sur ce qui demande de l'attention.",
AllEmails = "Tous les courriers",
SearchPlaceholder = "Rechercher objet, corps, pièces, étiquettes, sens",
ClearSearch = "Effacer la recherche",
Label = "Étiquette",

View File

@ -3277,7 +3277,7 @@ public partial class MainViewModel : ObservableObject, IAsyncDisposable {
if (existing is null) {
var folder = new FolderRowViewModel {
FullName = FolderNodeViewModel.AllEmailsId,
Name = Copy.AllInboxes
Name = Copy.AllEmails
};
FolderTree.Insert(0, FolderNodeViewModel.AllEmails(folder));
return;
@ -3289,7 +3289,7 @@ public partial class MainViewModel : ObservableObject, IAsyncDisposable {
}
if (existing.Folder is { } row)
row.Name = Copy.AllInboxes;
row.Name = Copy.AllEmails;
existing.NotifyCounts();
}
@ -3312,7 +3312,7 @@ public partial class MainViewModel : ObservableObject, IAsyncDisposable {
node.Folder.Total = total;
node.Folder.Unread = unread;
node.Folder.Name = Copy.AllInboxes;
node.Folder.Name = Copy.AllEmails;
node.NotifyCounts();
}

View File

@ -131,16 +131,11 @@ public sealed partial class FolderNodeViewModel : ObservableObject {
public string Title =>
IsAllEmails
? UiLocale.Copy.AllInboxes
? UiLocale.Copy.AllEmails
: IsAccount
? Mailbox?.Label ?? UiLocale.Copy.Mailbox
: Folder?.Name ?? "";
public string Tip =>
IsAllEmails
? UiLocale.Copy.AllInboxesHint
: QuotaTip;
public string Glyph =>
IsAllEmails
? "📥"
@ -198,7 +193,6 @@ public sealed partial class FolderNodeViewModel : ObservableObject {
public void NotifyCounts() {
OnPropertyChanged(nameof(Title));
OnPropertyChanged(nameof(Tip));
OnPropertyChanged(nameof(Unread));
OnPropertyChanged(nameof(UnreadLabel));
OnPropertyChanged(nameof(HasUnread));

View File

@ -72,7 +72,7 @@
<TextBlock Text="{Binding Title}"
FontWeight="{Binding Weight}"
TextTrimming="CharacterEllipsis"
ToolTip.Tip="{Binding Tip}" />
ToolTip.Tip="{Binding QuotaTip}" />
<ProgressBar Height="3"
Minimum="0"
Maximum="100"