There were 3 setting files, each an archived BMessage. Now there is only
one with all the data inside.
* Rework the SettingsPane class to save and load settings from a
message, rather than having each panel pick a file path on its own
* Move saving the app filters to the preference app, rather than the
server (so it's done at the same place as other settings)
* Rework loading prefs in the server so the settings message is read
from the file once and all settings are loaded from it.
This turns out to be more changes than I anticipated.
Fixes#9424.
* Since DNS are normally restricted to ASCII, the use of UTF-8 in domain
names is implemented using a "punycode" encoding.
* The request to the DNS server must be sent with the ASCII
representation of the domain name, however the Unicode one should be
used for user-visible parts.
* ICU provides an implementation of the conversion, which we use here.
* Conversion is currently done in-place and modifies the BUrl object
(this is similar to UrlEncode/UrlDecode).
* Adjust existing IDN test to make use of these methods. It's passing
now.
* Negative and null values, big values, thousands separators (in
different languages), string with no format, non-printable and non-utf8
charcaters, format not using # for the number.
* This is most likely dead code currently (it is used only when the
framebuffer is big endian, and the the cpu is little endian)
* Fixes a warning.
* Can't confirm if B_SWAP_INT32 is really supposed to swap the value
in-place, or if this is a bug in Chart. Probably the latter.
* jam has been updated in btrev43095, which will now
track multiple generated files from a single action
correctly
* this also partially undoes the change introduced in
hrev48061
* Previously, debugging jam, it would output a warning along the
lines of 'warning: using independent target ... grammar.c'. To
fix the dependency, it needs to be declared from object file
to the generated source file.
* With the correct dependency (scanner.o on grammar.c), this
warning is eliminated, and the dependency graph shown is now
correct
* This should address #4091
* Update pseudo cache with minimal set of block cache API.
* Update Inode, Journal and Volume stubs to current API.
* Add stubs for remaining VFS functions.
* Extend tests to also call BPlusTree::Validate() and bail on errors.
* Change duplicate tests to fill in the same value. While this isn't
strictly allowed, the tree validation can't work unless the values
match up.
* Lots of coding style cleanup, but much more should still be done...
The tests run through without errors.
In ba32021824 the key comparison was fixed
to use a compatible version. Since then the check can actually return
results other than -1. The check done on the result was too strict
however. The child nodes may never contain keys that are larger than the
keys they are reached by. But the last key of a child node may be equal
to the one in the parent. This change fixes the check to take this
special case into account.
Fixes#11026 and #11289. The issue was unproblematic in so far that it
was only hit during a filesystem check and, since BPlusTree does not
yet attempt to correct corrupted trees, did not result in any actual
actions.
* The layout does not need to change. The label may change in
SetLabelFromMarked mode, but this only affects the layout of the parent
menu.
* This would crash when programatically changing the menu marked item
while the menu is open.
Due to the missing include, the builtin new and delete operators were
used in those two files instead of the ones from the include used
everywhere else in the runtime_loader.
The list went up to 24 already, but was capped by the previous max size
of 18. Adding 16 to the arbitrary list of font sizes closes the rather
large gap between font sizes 14 and 18 that were already in the list.
Providing a slider or text field for the font size would probably be
better in the long run.
When loading firmware, check the system non-packaged data dir first,
then the system data directory (as before). This allows loading of
firmware that doesn't reside in the system package.
* Add FLAC, which works
* Remove raw audio, ogg and AC3, as they are crashing the current ffmpeg
version.
Now it's possible to use MediaConvert to convert to FLAC, at least. For
other formats we will need to either fix ffmpeg, or write encoders using
the respective libraries (musepack, libvorbis, ...) for each format we
want to support.
Note that there are also some problems at the reading side, so using
MediaConvert, the output will be truncated and about 2 seconds of audio
will be missing at the end of the file in several cases. When this
happens, the input file is not removed from the list. Watch out for this
and don't delete the source files until you're very sure the output is
correct!
The allocation of fImpl can fail, and some methods used it without
checking. Return an error code (or NULL or 0) instead of crashing in
these cases.
Also InitCheck the fInputBuffer in BHttpRequest before trying to use it.
Fixes#11350.
Even when BDirectWindow is used, the back buffer data can be copied to
the front buffer. This happens when resizing or moving the window, and
when moving the cursor above it.
Since Charts does not touch the whole window when redrawing (it only
erases previous stars and draws new ones) this led to the last frame
drawn on the back buffer to stay visible until stars erased it.
Clearing the back buffer view with the current "sapce color" makes this
much less visible.
Fixes#96.
* It seems hex floats are not allowed in C++.
* I will fix this more cleanly, but it needs another rebuild of the gcc2
package. Until then, this lets haiku compile.
* They will be updated by a cron job once per day.
This improves the reproducability of non-current builds, as the ID-files
will no longer change over time.
* Increase sniffing rule priority to 0.251, otherwise files are detected
as text/plain (for anything lower than 0.25)
* Add sniffing pattern for utf-16 xml.
* this provides parity with the gcc_x86_syslibs packages, so
that special handling isn't required for the gcc4hybrid
builds when a recipe depends on libstdc++ (e.g. haikuwebkit)
Locking the GL context from a GLView subclass constructor can't work, as
it isn't ready yet. Move the initial setup to AttachedToWindow instead.
Fixes#8898, #10469.
The screensaver add-ons are properly linked against libGL. The libGL
code tries to load the swrast add-on. But this fails because the
BGLRenderer constructor (which is provided by libGL) is not found.
It seems that when loading an add-on, libraries linked to by other
add-ons (and not the app itself) are not searched to resolve symbols. To
avoid this issue, we now link ScreenSaver and screen_blanker to libGL,
so the GL renderer add-on can find it.
Fixes#10206
These errors do not necessarily need to be reported to the user via alerts.
They are more of an indication that HaikuDepot needs to be smarter when
figuring out what package actions to present at all.
BDragger use some tricks to draw as a partially transparent view, it
calls the parent Draw method, then draws a partially transparent bitmap
over the resulting drawing.
This only works if the parent does somthing in the dragger area. In case
it doesn't, first fill the dragger with the parent view color, so there
is at least "something" in those pixels.
Fixes#5906.
* We archive views using "managed" archives, and the children are not
attached in the BView(BMessage*) constructor, but later. So it's not
possible to find the target and scrollbars in the constructor of
BScrollView.
* Make BScrollView override AllUnarchived and find the target and
scrollbars again there. The code is slightly different as there is no
guarantee that the first child will be the target in that case. The
existing code in the constructor is preserved for non-managed archives.
* When opening .hpkg files, shows just the PackageInfoView in a smaller
window.
* PackageInfo constructor with BPackageInfo argument
* Default pkg icon has a single instance only. Before, there would be another
instance for each repository refresh.
TODO:
* Install button on single package view is non functional
* Probably needs to do someting different when opening .hpkg from an
installed packages folder (show the regular list and focus that package?).
* The filter view and list view are still constructed for the single package
mode.
* ...
PackageFileHeapWriter::_UnwriteLastPartialChunk() used ReadData() to
extract the last partial chunk into the pending buffer. This indirectly
calls PackageFileHeapWriter::ReadAndDecompressChunk(), which assumes
data past the last full chunk to come from the pending data buffer.
Since the pending data buffer is not filled in at that point, the call
to ReadAndDecompressChunk() simply did nothing, leaving the object with
a correctly sized but completely nulled pending data buffer. The last
partial chunk of a package would therefore always get corrupted when
updating a package.
Fixes#11306 that provided a reduced test case that happened to corrupt
the only chunk of a package, nulling the .PackageInfo and therefore
making the error more obvious as subsequent parsing of the info failed.
UpdateText must return a pointer to a fixed buffer, whcih BString.String
isn't, if the sctring is modified.
Copy the data to a char* we can use as a fixed position buffer.
This was removed in hrev17147, because our implementation of BMenuItem
does not uses it anymore. However, we must keep it in order to properly
unarchive BMenuFields that were archived in BeOS.
One application that was crashing because of this is VNCViewer.
* Instead of parsing the pattern everytime Format() is called, parse it
only once when the object is created.
* Adjust all callers to make use of the feature and reuse the instance
as much as possible. This also allows calling B_TRANSLATE only once
instead of everytime the formatting needs to be done. We use either a
static instance (when the message pattern is constant) or a field (when
it is not known to be constant).
* Since the BMessageFormat instances are now reused, add locking to
avoid race conditions (ICU itself is thread safe, but the format pattern
is recreated when the locale is changed)
The "j" format pattern selects a 12 or 24 hours clock automatically
depending on the locale, but it doesn't work when the format is forced
in the locale preflet or through the BFormattingConventions API. So we
manually pick either K or H depending on that setting.
This can be used to format complex messages properly. It moves the
complexity of handling plural forms, gender, and anything else needed
into the localizable string, rather than hardcoding it in the code.
This moves the difficulty of handling these things properly to people
doing translations, rather than relying on developers to do it.
Fixes#10755, but our localization must now be updated to make use of
the feature.
* Timezone names have changed. Test the medium time format which doesn't
include them, as we aren't forcing a specific one.
* French date format also changed to use 4 digit year name.