Compare commits

..

1 Commits
v0.4.8 ... main

Author SHA1 Message Date
Maksym Sadovnychyy
07f4b61668 (feature): rename All emails to All inboxes with Inbox-only hint 2026-11-05 19:43:17 +01:00
9 changed files with 30 additions and 12 deletions

View File

@ -6,6 +6,11 @@ The format follows [Keep a Changelog](https://keepachangelog.com/) and [Semantic
## [Unreleased] ## [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 ## [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. 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> <LangVersion>latest</LangVersion>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Version>0.4.8</Version> <Version>0.4.9</Version>
<Product>Postclient</Product> <Product>Postclient</Product>
<AssemblyTitle>Postclient</AssemblyTitle> <AssemblyTitle>Postclient</AssemblyTitle>
<Authors>Maksym Sadovnychyy</Authors> <Authors>Maksym Sadovnychyy</Authors>

View File

@ -332,7 +332,9 @@ public sealed partial class UiCopy {
public string Folders { get; init; } = ""; public string Folders { get; init; } = "";
public string AllEmails { get; init; } = ""; public string AllInboxes { get; init; } = "";
public string AllInboxesHint { get; init; } = "";
public string SearchPlaceholder { get; init; } = ""; public string SearchPlaceholder { get; init; } = "";
@ -846,7 +848,8 @@ public sealed partial class UiCopy {
Delete = "Delete", Delete = "Delete",
MoveTo = "Move To", MoveTo = "Move To",
Folders = "Folders", Folders = "Folders",
AllEmails = "All emails", AllInboxes = "All inboxes",
AllInboxesHint = "Only each account's Inbox - not labels or other folders - so this list stays about what needs attention across mailboxes.",
SearchPlaceholder = "Search subject, body, attachments, labels, meaning", SearchPlaceholder = "Search subject, body, attachments, labels, meaning",
ClearSearch = "Clear search", ClearSearch = "Clear search",
Label = "Label", Label = "Label",
@ -1153,7 +1156,8 @@ public sealed partial class UiCopy {
Delete = "Elimina", Delete = "Elimina",
MoveTo = "Sposta in", MoveTo = "Sposta in",
Folders = "Cartelle", Folders = "Cartelle",
AllEmails = "Tutte le email", 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.",
SearchPlaceholder = "Cerca oggetto, corpo, allegati, etichette, significato", SearchPlaceholder = "Cerca oggetto, corpo, allegati, etichette, significato",
ClearSearch = "Cancella ricerca", ClearSearch = "Cancella ricerca",
Label = "Etichetta", Label = "Etichetta",

View File

@ -170,7 +170,8 @@ public sealed partial class UiCopy {
Delete = "Löschen", Delete = "Löschen",
MoveTo = "Verschieben nach", MoveTo = "Verschieben nach",
Folders = "Ordner", Folders = "Ordner",
AllEmails = "Alle E-Mails", 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.",
SearchPlaceholder = "Betreff, Text, Anlagen, Kennzeichen, Bedeutung suchen", SearchPlaceholder = "Betreff, Text, Anlagen, Kennzeichen, Bedeutung suchen",
ClearSearch = "Suche leeren", ClearSearch = "Suche leeren",
Label = "Kennzeichen", Label = "Kennzeichen",

View File

@ -170,7 +170,8 @@ public sealed partial class UiCopy {
Delete = "Eliminar", Delete = "Eliminar",
MoveTo = "Mover a", MoveTo = "Mover a",
Folders = "Carpetas", Folders = "Carpetas",
AllEmails = "Todos los correos", 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.",
SearchPlaceholder = "Buscar asunto, cuerpo, adjuntos, etiquetas, significado", SearchPlaceholder = "Buscar asunto, cuerpo, adjuntos, etiquetas, significado",
ClearSearch = "Borrar búsqueda", ClearSearch = "Borrar búsqueda",
Label = "Etiqueta", Label = "Etiqueta",

View File

@ -170,7 +170,8 @@ public sealed partial class UiCopy {
Delete = "Supprimer", Delete = "Supprimer",
MoveTo = "Déplacer vers", MoveTo = "Déplacer vers",
Folders = "Dossiers", Folders = "Dossiers",
AllEmails = "Tous les courriers", 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.",
SearchPlaceholder = "Rechercher objet, corps, pièces, étiquettes, sens", SearchPlaceholder = "Rechercher objet, corps, pièces, étiquettes, sens",
ClearSearch = "Effacer la recherche", ClearSearch = "Effacer la recherche",
Label = "Étiquette", Label = "Étiquette",

View File

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

View File

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

View File

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