Expand description
The object behind the window.
It hands QML the coreβs views as JSON (sioul_core::view), already in your
language, and runs everything slow on background threads: fetching mail,
finding servers, testing logins. Results come back to Qtβs thread through
qt_thread().queue. Each mail account has a watcher that keeps its inbox
open with IDLE, so a verified code becomes a notification within seconds.
ModulesΒ§
StructsΒ§
- Found
View π - The settings found, as the form shows them.
- Job π
- A page computed on a thread, one computation at a time: asked again while one runs, it runs once more after it, with everything changed meanwhile. Fetches and changes ask often; a thread each would pile up on a slow disk.
- Shared π
- What the background threads and the window share.
- Sioul
Rust - Views π
- Everything the window shows, computed off Qtβs thread.
- World π
- What the Porch and the budgets read: the configuration and its lists.
EnumsΒ§
- Afterwards π
- What happens to an attachment once the antivirus found it clean. One the
desktop would run rather than show (
links::is_program: programs, scripts, shortcuts, installers, disk images) is only saved.
ConstantsΒ§
- REPLAN_
EVERY π - The plan is made again every twelve hours, and when the day changes: a task not done by its planned day moves on, and what waits for it follows.
- SAID_
FOR π - How long what you did stays in the status line before routine news.
- WEATHER_
FRESH π - A forecast is kept half an hour.
StaticsΒ§
- AWAY π
- Sioul put away on a phone: the pages are not computed for nobody (Android
stops an app that works in the background); each job asked meanwhile runs
once when it is back (
back_here).
FunctionsΒ§
- add_
mail π - A mail account added: tested with its password (given, or,
None, the one its addressβs calendars and contacts use), then kept; its watcher started. - attachment_
cache π - Where attachments are written to be opened:
<cache>/sioul/attachments/<message>/. - call_
Sioul_ πsignal_ handler_ account Added - call_
Sioul_ πsignal_ handler_ account Password Done - call_
Sioul_ πsignal_ handler_ accounts Changed - call_
Sioul_ πsignal_ handler_ agenda Changed - call_
Sioul_ πsignal_ handler_ away Changed - call_
Sioul_ πsignal_ handler_ bitwarden Answered - call_
Sioul_ πsignal_ handler_ bitwarden Found - call_
Sioul_ πsignal_ handler_ blocked Changed - call_
Sioul_ πsignal_ handler_ budgets Changed - call_
Sioul_ πsignal_ handler_ busy Changed - call_
Sioul_ πsignal_ handler_ compose Requested - call_
Sioul_ πsignal_ handler_ contacts Changed - call_
Sioul_ πsignal_ handler_ copy Requested - call_
Sioul_ πsignal_ handler_ draft Files Arrived - call_
Sioul_ πsignal_ handler_ drafts Changed - call_
Sioul_ πsignal_ handler_ duplicates Changed - call_
Sioul_ πsignal_ handler_ focus Session Changed - call_
Sioul_ πsignal_ handler_ forecast Changed - call_
Sioul_ πsignal_ handler_ form Busy Changed - call_
Sioul_ πsignal_ handler_ form Error Changed - call_
Sioul_ πsignal_ handler_ found Changed - call_
Sioul_ πsignal_ handler_ health View Changed - call_
Sioul_ πsignal_ handler_ keys Changed - call_
Sioul_ πsignal_ handler_ letters Changed - call_
Sioul_ πsignal_ handler_ links Changed - call_
Sioul_ πsignal_ handler_ mail Accounts Changed - call_
Sioul_ πsignal_ handler_ mail Filters Found - call_
Sioul_ πsignal_ handler_ mail Folder Changed - call_
Sioul_ πsignal_ handler_ mail Search Changed - call_
Sioul_ πsignal_ handler_ message Read - call_
Sioul_ πsignal_ handler_ missed View Changed - call_
Sioul_ πsignal_ handler_ mode Changed - call_
Sioul_ πsignal_ handler_ needs View Changed - call_
Sioul_ πsignal_ handler_ notes Changed - call_
Sioul_ πsignal_ handler_ open Url - call_
Sioul_ πsignal_ handler_ overlaps Changed - call_
Sioul_ πsignal_ handler_ paper Kept - call_
Sioul_ πsignal_ handler_ phone Account Chosen - call_
Sioul_ πsignal_ handler_ places Changed - call_
Sioul_ πsignal_ handler_ places Found Changed - call_
Sioul_ πsignal_ handler_ porch Changed - call_
Sioul_ πsignal_ handler_ reading Changed - call_
Sioul_ πsignal_ handler_ realtime Changed - call_
Sioul_ πsignal_ handler_ reminder Opened - call_
Sioul_ πsignal_ handler_ scan Unavailable - call_
Sioul_ πsignal_ handler_ scouted Changed - call_
Sioul_ πsignal_ handler_ scouting Changed - call_
Sioul_ πsignal_ handler_ security KeyChanged - call_
Sioul_ πsignal_ handler_ share Estimated - call_
Sioul_ πsignal_ handler_ share Listed - call_
Sioul_ πsignal_ handler_ share PutBack Done - call_
Sioul_ πsignal_ handler_ share Started - call_
Sioul_ πsignal_ handler_ shared In - call_
Sioul_ πsignal_ handler_ sites Changed - call_
Sioul_ πsignal_ handler_ spam Changed - call_
Sioul_ πsignal_ handler_ status Changed - call_
Sioul_ πsignal_ handler_ task Done - call_
Sioul_ πsignal_ handler_ tasks Changed - call_
Sioul_ πsignal_ handler_ undo Line Changed - checked_
attachment π - Writes an attachment to the cache, has the antivirus check it, then opens or
saves it; a threat, or no antivirus, and the copy is deleted. On a phone,
which has no antivirus Sioul can call, nothing is scanned and nothing
claims it: the attachment opens in the app you choose, or Android asks
where to save it (
attachments). - coalesced π
- Runs
workon a thread for the jobwhichpicks out (seeJob). - compute π
- config_
path π - downloads π
- The downloads folder the desktop names.
- end_
work_ πnow - Work time or quiet time, as the window shows it. βWork nowβ taken back, as Sioul starts or closes; the rest of the overrides kept.
- file_
url π - A fileβs address for Qt and the desktop: βfile:///home/me/A%20b.pdfβ, and βfile:///C:/Users/me/A%20b.pdfβ on Windows; what an address cannot hold as is (β#β, β?β, spaces, accents) percent-encoded, so the file itself is reached.
- forget_
opened_ πattachments - Attachments written to be opened in an earlier session, taken out of the cache once a day old: a decrypted one would stay readable there otherwise.
- free_
path π name, else βname (2).extβ, βname (3).extββ¦ so nothing is overwritten.- give_
password π - An accountβs password given on this device: tested with its server (its
mail, or its calendars and contacts), kept in the keyring, its sync started
again;
account_password_donesays how it went. - json π
- learn π
- Learns the providerβs authserv-id once per session, while it is unknown.
- load_
config π - local_
path π - The file a
file://address names (from a file dialog, a drop), its percent-escapes undone; βfile:///C:/β¦β is βC:\β¦β on Windows. Anything else is a path already. - mark_
from_ πmail - A file come by mail marked as the system marks what comes from the Internet: the Mark of the Web on Windows, the quarantine on macOS. Office then opens it in Protected View, Gatekeeper checks it. A disk that cannot keep the mark leaves the file as it is.
- message_
json π - A message laid out for reading, as JSON (
view::MessageView); empty if it cannot be read. Read on a thread of its own (read_message). - mode_
json π - mode_
now π - The time now: what it is for, and until when (docs/areas.md;
hours). - notify_
codes π - One quiet notification per verified code among new mail, with a copy button.
- offline π
- Whether Sioul stays off the network:
SIOUL_DEMOset, for a demo profile and its pictures. Nothing is fetched or sent by itself; what is kept on this computer is shown. - one_
at_ πa_ time - The lock of something done one at a time, when nothing holds it; a panic in an earlier run (bad data in a file) does not stop it for the session.
- one_
file_ πname - An attachmentβs name as one file in a folder. The core takes any path out of it; Windows also reads βC:xβ as a drive, βa:bβ as a hidden stream and βCONβ, βNULββ¦ as devices: those characters become β_β, those names get one in front, and the dots and spaces it would drop at the end go.
- pace_of π
- The pace of an address: its own, else everyoneβs.
- read_
shielded π - A shielded address that allows the AI: what it has not read yet, read now, before the Porch shows it again. Nothing is sent without a key.
- reading_
json π - How long text reads, for the windowβs theme; and whether the places show their names.
- reported π
- What a watcher said: the accountβs status, the providerβs id to learn, notifications for new codes, and the views again.
- retie_
project π - A projectβs routes changed: the mail already here that only its text or an
attachment ties to it, tied now, on a thread (routes on the sender and the
subject are matched again each time the project shows). Each message as
the Porch takes it (
porch::Gate): never one it sets aside (a blocked sender, forged, a borrowed name, spam a route does not protect). - say π
- session_
language π - The sessionβs language: its variables (LC_ALL, LC_MESSAGES, LANG) when it has them, as on Linux; else the systemβs own setting, as Qt reads it on Windows and macOS, where a window started from the desktop gets none.
- set_
status π - show π
- Computes the views on a thread and shows them, unless newer ones came first.
- sort_
on_ πserver - After a fetch of
account(new: its inboxβs arrivals, maybe none), on a thread of its own (it reaches the server; this is the watcherβs): what your own spam filter moves, as you chose, into the Junk folder; then your mail filters (docs/client.md, βFiltersβ), on the arrivals still unread and what waits for another look, never on what the spam filter reviews. What a filter could not act on is told as new mail, and why said in the status line; the Porch is read again when something moved. - start_
new_ πwatchers - Syncs for the accounts not started yet this session: those another deviceβs settings just brought. One that stopped (a password refused) is not tried again here: retries can lock an account.
- start_
watcher π - start_
watchers π - Starts a watcher for every mail account that has none running.
- system_
locale π - Elsewhere the sessionβs variables say it all.
- tell π
- Says what became of something you did; it stays a while (
SAID_FOR). - tie_
to_ πprojects - Mail just fetched that a project takes, by its routes or its conversation: tied to the project, so its page shows it whatever its routes need, and the replies that come later follow it.
- tr π
- One translator for the session: the configurationβs language, else the sessionβs.
- update_
paces π - Gives every running watcher its pace from the configuration, and real time.
- update_
weather π - The weather applet, from the forecast kept, fetched again when it is half an hour old; nothing without a place.
- want_
password π - Notes whether an accountβs password is wanted after what its sync said: none here, or refused. Its card then offers to give one.
- weather_
cache π - Where the forecast is kept between fetches (the phoneβs card reads it too,
homecard).
Type AliasesΒ§
- QtThread π