Commit Graph
39 Commits
Author SHA1 Message Date
Tomás Romero c49ec1762c fix: shut down the runtime before the process exits 2026-11-05 22:11:11 +01:00
Tomás Romero d900a52f7e feat: default to the frameless window 2026-11-03 02:38:49 +01:00
Tomás Romero 2cdc2a24ba feat: add a setting to turn conversation view off 2026-11-02 23:52:21 +01:00
Tomás Romero e6f5efa05b feat: add a setting to turn tabs off 2026-11-02 19:37:04 +01:00
Tomás Romero 5b89350cbb Merge pull request #101 from RayTrunk/feature/default-download-location
feat: add a setting for the default download location
2026-11-02 19:17:17 +01:00
Tomás Romero adab2a654e fix: run folder pickers on the runtime 2026-11-02 17:44:14 +01:00
Tomás Romero a6a30c6286 chore: merge main 2026-11-02 15:33:20 +01:00
Tomás Romero aabd902ce8 chore: merge main 2026-10-25 15:20:34 +01:00
Tomás Romero f25af4d19d feat: show local mail 2026-10-25 13:42:45 +01:00
Tomás Romero d1d7a5aea3 fix: treat Gmail address spellings as one account 2026-10-25 02:27:06 +01:00
Tomás Romero 795ebace35 feat: choose the app icon in settings 2026-10-24 19:06:22 +02:00
Tomás Romero 06a17daeff feat: add a 12/24-hour time format setting 2026-10-24 15:59:06 +02:00
Tomás Romero f909398833 feat: set up POP3 accounts in the app 2026-10-22 23:29:48 +02:00
Tomás Romero 0360670464 refactor: store account protocols and connection security explicitly 2026-10-22 23:28:48 +02:00
neomodeandClaude Opus 5 15c6c0c256 feat: add a setting for the default download location
Attachment and file downloads always opened the folder the platform
suggests, with no way to change it (#71). The save dialog is built in a
single place, `DocumentDialog::file_dialog`, which never called
`set_directory`.

Settings → General now carries a Download location card to pick a folder
or reset to the platform default. The stored path is resolved when a
download is saved, not when the path is stored: a location can become
unavailable later, such as an unmounted network share, so a download
falls back to the platform default instead of failing.

The setting covers mail attachments and the Files view, which share
`DocumentProvider::export`. Import dialogs keep the platform default,
since a download location does not describe where files are read from.

Tests cover path resolution (empty, missing, a file instead of a
directory, and a usable directory), the dialog built from the setting,
and that settings blobs written before this field still load.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-10-21 20:28:24 +02:00
Tomás Romero 6cf9bc3ad5 feat: focus the mail view on a profile 2026-10-21 19:55:28 +02:00
Tomás Romero 2b9402f547 feat: import accounts from other mail apps 2026-10-21 00:46:48 +02:00
Tomás Romero d4aeff813c refactor: route document requests through one helper 2026-10-18 14:31:41 +02:00
Tomás Romero adaca97c43 fix: report document picker errors 2026-10-18 03:51:33 +02:00
Tomás Romero decaaa0900 fix: guard document exports and cap mobile snapshots 2026-10-18 03:46:11 +02:00
Tomás Romero f1f9364b90 fix: restore desktop dialog titles and filters 2026-10-18 03:40:02 +02:00
Tomás Romero f185ffa812 style: format data_controller 2026-10-18 03:36:26 +02:00
Tomás Romero 2f759a0488 fix: run backup and snapshot exports on the runtime 2026-10-18 03:36:22 +02:00
springmin 21169095e6 documents: route attachments, backups and snapshots through the host provider
Compose attachments, account-backup export/import and database-snapshot
export still opened desktop file dialogs directly, so on mobile they
reported "no picker" even though the host provides a DocumentProvider.

- DocumentProvider::import_many() imports several documents for one action
  (default: repeat import() until the picker is cancelled; the desktop
  provider uses one multi-select dialog). Imported documents stay alive in
  the composer until Core has staged the attachments.
- Compose attachments use import_many() instead of rfd::FileDialog.
- Backup export/import stage one app-private file and hand it to the
  provider; the existing import logic keeps its synchronous shape on the UI
  thread executor.
- Database snapshots keep Core's verified snapshot, archive it as one zip
  (hosts export files, not folders) and pass it to the provider. Staging
  stays outside the data/cache roots Core requires.
- Desktop behavior is unchanged: same dialogs and file names.
2026-10-18 00:51:57 +08:00
Tomás Romero b28091e488 chore: route platform code through capability aliases 2026-10-16 16:04:13 +02:00
Tomás Romero 9f6204222d feat: add frameless window, tabs and sender identities 2026-10-11 02:47:08 +00:00
Tomás Romero 115ebd8e29 feat: add message appearance 2026-09-30 22:11:28 +00:00
Tomás Romero 6c5eb1efc7 fix: preserve sent recipient suggestions 2026-09-22 02:38:12 +00:00
Tomás Romero 650f9cc00c chore: modernize contact suggestions 2026-09-22 01:21:18 +00:00
Tomás Romero 5c7ab425a6 feat: resize list panes 2026-09-22 01:11:20 +00:00
Tomás Romero 8180413789 chore: format rust sources 2026-09-21 02:17:37 +00:00
Tomás Romero d31bbccda6 chore: refine settings 2026-09-17 12:07:48 +00:00
Tomás Romero 1272f9ad31 chore: update mail organization 2026-09-17 01:37:19 +00:00
Tomás Romero 9a97efb1a8 chore: simplify workspace headers 2026-09-14 16:49:39 +00:00
Tomás Romero 692be05057 chore: add carddav sync 2026-09-13 19:30:20 +00:00
Tomás Romero c05619b30b fix: account removal 2026-09-12 21:14:36 +00:00
Tomás Romero dabdda0e41 build: publish RPM and Flatpak preview packages 2026-09-11 02:16:24 +00:00
Tomás Romero d0abbaaa4f chore: improve files and account controls 2026-09-10 18:58:14 +00:00
Tomás Romero 8ea4d7f966 initial commit 2026-09-03 00:08:29 +00:00