...in vertical mode. This is a simplication that is possible because
I am confident that the drag region is the right size at this point
so we don't have to lookup the window width or app width setting.
This led to further code simplications to vertical frame sizing.
Use MenuBar frame for right dimension always because it is set even
if fTrayLocation were to be set to 0.
Added a new message constant to Deskbar kRealignReplicants which
is called to realign replicant icons. Add routing so that if you knock on
Deskbar's front door (Application) it will get routed to the right view, in
this case the repliant tray that knows how to realign replicants.
Send a message with this newly created constant in PowerStatus when
the width changes because you turned the label on or off. This makes
it so that when you show or hide the battery percentage it will not overrun
the clock.
Realign Replicants is a common case.
Fixes the rest of #8641
This fixes some subtle layout issues. The replicant icon
positions and clock position has been made more consistent
in both vertical mode, and horizontal mode.
There is a fixed amount of space between the last replicant
and the clock before it wraps to next row. This now works
at different font sizes.
Use matching 3px of space between the clock and the dragger
on one side and and between the replicant and the dragger
on the other side.
Reparent ResizeControl from ReplicantTray onto DragRegion and
readjust everything.
... fixing oversight in hrev51512.
Erase the file and write all settings to disk each time.
When Workspaces is running in a window WorkspacesSettings
is destroyed first, then WorkspacesView is destroyed.
WorkspacesSettings saves all settings except for 'switch on
wheel', then WorkspacesView reads the settings in from
disk, tacks the switch on wheel setting on, then writes
the settings back to disk.
If WorkspacesView is a (Deskbar) replicant instead the
WorkspacesSettings steps are skipped. WorkspacesView reads
in the settings from disk, tacks 'switch on wheel' on, erases the
file, then saves all settings back to disk. Use ReplaceBool to
ensure that the 'switch on wheel' settings is added just once.
Create the file if it doesn't exist in either case.
Don't check Unflatten status because will fail on empty file.
SaveSettings on the view before opening Deskbar replicant
so that 'switch on wheel' gets loaded.
Renaming of the temporary repo file failed when used with a relative
target path. The path was appended twice in such a case. Also when
used with a specified base directory, the relative temporary repo file
wasn't reachable from the changed working directory.
To fix both cases, create the BEntry pointing at the temporary repo
file before changing the directory and rename it using only the target
leaf name.
BListView's property_info list lacked termination, resulting in
garbage output at the and of 'hey getsuites'.
Use { 0 } everywhere for sake of consistency.
Thanks to waddlesplash for spotting the bug an providing the easy fix.
The application had previously no means to control the verbosity of
logging. This excessive logging meant that it was bit hard to
understand what is going on. Now it is possible to define the level
of logging that is output; especially as the application pulls-down
data from the remote server system.
* Make string-splitting UTF8-aware
* If the window size is too small for the full string, mid-truncate it
* Ensure the string is long enough if the window size is large.
* Rework flushing strategy slightly.
Fixes#13750, as well as taos' unrelated issue he reported there.
(last commit with same title only included new files - added those now)
Previously the desktop application would make a number of JSON-RPC calls
over HTTP to get the repositories. Now it will make a single call to get
the repositories and cache the result. This uses standard HTTP cache
signalling techniques and allows the server-side the ability to cache
the generated data as well. Note that the model classes and parse-
related classes are generated and may not be code-style compliant. They
are generated from JSON schema files in the server-side project.
Information about this as well as the python files used to generate the
C++ classes and headers are included in the server-side project.
... and re-enable it. Off by default. The view controls just this
one setting while the window controls the rest. However they both
share a common settings file on disk. This means that a change in
one view's wheel setting will affect all others when relaunched,
but won't affect already running instances, this is intentional.
WorkspacesSettings::_Open() method has been moved to a static
function OpenSettingsFile() and is used both by WorkspacesSettings
and WorkspacesView classes.
The switch on wheel setting was disabled for view-only (replicant)
Workspaces instances in hrev50796, this seeks to restore it.
That commit says:
"A cleaner solution would be to read the settings once if there is
no WorkspacesWindow, and use the setting from there instead."
Instead of that, we read the setting from the file on disk and
write it to disk too bypassing the window entirely.
Used local pointer style.
Some style fixes mixed in.
* With the amd64 architecture, the stack fault exception got a new
meaning: it is raised when an instruction tries to access a
non-canonical address, and the stack is referenced in the
instruction (e.g. by its addressing mode).
So unlike on x86, this is not a fatal exception and shouldn't
trigger a KDL -- instead, it is to be treated like a general
protection fault, terminating the team which caused it.
* Fixes#13744
Previous hardcoded checks were only aware of VP8 lossy chunk format,
leading to rejecting lossless or newer extended WebP images, while
the libwebp bellow could have handle them fine.
Fix#13712.
* Fix bug reported by humdinger: when the volume which is
currently shown in the file panel is unmounted, the file
panel's window was closed and even deleted. This is not only
inconvenient but also a use-after-free bug waiting to happen:
an application which keeps the BFilePanel around to show it
again later (as recommended in the BeBook) cannot know that
it has become invalid while it was hidden (the destruction of
the window happens even when it's not shown).
* When receiving an unmount event for the currently shown volume,
we now reset the view to the home directory.
* Remove the Unicode progress characters, instead change terminal
background color
* Include downloaded/total size in the displayed information
* Include transfer rate (over the last 1s)
Here's a quick screenshot of what it looks like now:
https://i.imgur.com/x4II3Fu.png
"Inspired" by a very old patch by Axel, but almost all of this is my own work.
Fixes#13424.
FTDI chips send packets of at most 62 bytes of data, with a 2 byte
header. The code assumed that the chip would return at most 64 bytes,
but with new (USB2) chips this is not the case anymore. As a result,
it was skipping only the first header in a packet and leaving the other
ones in the data stream.
libmedia.so was used by at least 2 apps included in the minimum image,
Activity Monitor and Deskcalc which subsequently failed to load on minimum.
Deskcalc wasn't actually using libmedia.so so I managed to get it to link and
run on minimum, however, Activity Monitor is using libmedia.so so needed it
to be present.
To fix this I added libmedia.so to the minimum image, I hope this does not blow
its size budget. (adds 1.0MB)
Previously the desktop application would make a number of JSON-RPC calls
over HTTP to get the repositories. Now it will make a single call to get
the repositories and cache the result. This uses standard HTTP cache
signalling techniques and allows the server-side the ability to cache
the generated data as well. Note that the model classes and parse-
related classes are generated and may not be code-style compliant. They
are generated from JSON schema files in the server-side project.
Information about this as well as the python files used to generate the
C++ classes and headers are included in the server-side project.