Exploring can take a while, and if we hold the device manager
lock the whole time, we'll block a lot of other things on the
system (including open() calls to anything in devfs.)
So, instead of holding the lock continuously, we now lock it
only temporarily, and instead add protection against deadlocks
when called by other threads besides the explore thread.
Tweaking the colors for the character view.
* Don't use hard coded colors, but B_LIST_* colors.
B_LIST_* has the advantage over B_DOCUMENT_* that there's a
*_SELECTED_COLOR, too, for the the currently selected char.
* Make the disabled characters - those not part of the currently set
font, but taken from a fallback font - a bit darker. Those lacked
contrast before IMO.
* Dark themes need some special consideration when using disable_color.
They need to be lightened where bright themes get darkened.
* Added special treatment for the color of selected items. Needed
for people (e.g. me) that run a bright theme (= dark text on light
background), but have light text on dark background for selected items.
Fixes #18948
Change-Id: I44e5be6a38e1d531238889b96ca65db0cf49b83f
Change-Id: Ic02ced0540edf29808fcead5dec64758a963e7e3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7841
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
* Zero-test sectorsPerCluster.
* This value will be checked more thoroughly later by parse_bpb().
* Fixes #11119.
Change-Id: I2318fbf3ea7f3c6c49b317ddd7d895757cf5944d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7840
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
This commit introduces enhancements to the Find Panel, focusing
on improving user experience and functionality. The primary
changes include:
1. Menu Bar Integration
- Added a Menu Bar and migrated the more-options section into this
Menu Bar for a more organized and intuitive interface.
2. Saving a Query
- Save as Option: This allows users to save a query to any location
on their storage drive. A save panel enables marking the saved
query as a template or a query file.
- Save Option: Treats Queries and templates as documents, enabling users
to override changes to the file without opening the Save as Panel
repeatedly. Context-sensitive activation of this option is also enabled.
3. Opening a Query:
- Users can open a query via the Find Panel, which brings up a File Panel for
Selection, streamlining query/query template management.
4. Templates Menu:
- Provides a convenient way to select templates. Newly saved templates
immediately updated in this menu.
5. Options Menu:
- Clear Templates: Deletes all the templates from the filesystem and
refreshes the template menu.
- Clear History: Deletes either all query files or only temporary query
files from the filesystem.
6. Improved User Flow For Saving Queries:
- Queries are treated similarly to document files, containing properties
specific to the search. Users can override and save details using the
same file.
7. History Menu:
- The History menu has also been moved into the menu bar. Here it is
segregated into temporary and saved query files. This is helpful to
slowly shift the chain of thought to only show the saved queries in the
history menu.
Summing up, these changes aim to shift parts of the Find Panel into the
Menu Bar, fitting it along the newer design. It also adds in the required
features to treat queries and query template files as mutable documents
which can be easily saved or retrieved.
Change-Id: I9c13ddd77a7628a0440e59c57b6bb22dab6437c0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7817
Reviewed-by: Niels Sascha Reedijk <niels.reedijk@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
* B_ABSOLUTE_REAL_TIME_TIMEOUT is used for kernel timers, and
must be used for absolute timeout values, rather than the
B_ABSOLUTE_TIMEOUT flag. Discovered whilst implementing
`pthread_timedjoin_np`.
Change-Id: I37ae057073ff5efeecc00406b132abf51bebbdc2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5100
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
It's now at HaikuArchives and supplied in a package at HaikuPorts.
EXR images are rare and mostly used in pretty specific cases, so it
isn't re-added to the default install.
Catalogs are left in-tree until they are purged from Pootle.
Change-Id: I54e478a30e02bdefd1b8fa53c4b66d84ffb04185
We already used it for the individual date and time formats, so it
only makes sense to use it for the combined datetime format.
This fixes failures to initialize datetime data for non-POSIX locales
after the ICU upgrade, as the "full" format is now longer and contains
characters such as U+202F (NARROW NO-BREAK SPACE) which result in the
UTF-8 encoding being too large to fit in the fixed-size buffer.
This menu item has extra decorations around the label, that need the
menu to be a bit wider than just what would be needed to fit the string.
Otherwise, the string can be truncated.
The problem is not visible in the current usage in Tracker (in open
panel favorite menu) because other items force the menu to be wide
enough. However, I tried to reuse this code in another app and hit this
problem.
Change-Id: If5d2475c22d9943e26b45c415fcd6e4df3d5fc4c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7834
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
FreeBSD's equivalent routine (lapic_write_icr) does not read
these registers; in fact the only thing that does read them
are its initialzation routines, and then its code to check
the interrupt delivery status (same as we do.)
Additionally, APIC_INTR_COMMAND_1_MASK only contains the bits
that are set by the OS, not the ones set by the APIC, which
means that APIC_DELIVERY_STATUS (bit 12) isn't included
and we are thus writing it back here, which doesn't
seem correct.
Change-Id: I2c74b7b8de3cd8295c8dd86e5a7c6530dc5648ed
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7827
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Since we always compile the kernel with modern GCC, we might as well
take advantage of modern C++ features. In addition to providing
a sanity check, "final" is also an optimization, since it allows
the compiler to devirtualize calls made directly to a "final" class.
Change-Id: Iedb0ee8834637771f5b6113c17342dbf67e99042
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7826
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
* Rewrite most hook functions, modeling many after FreeBSD hooks and
making use of support functions ported from FreeBSD. As it stands
now, most of the FreeBSD driver files are present with minimal
changes, with a pseudo-BSD compatability layer added to make them
work in Haiku. Performance is not what it could be if the BSD code
was rewritten to interface directly with the Haiku kernel, but under
the current approach the driver might be easier to maintain in terms
of porting future FreeBSD bugfixes.
* Add support for FAT in userlandfs. Aside from being useful for
debugging, the userlandfs module provides better filename support
for characters that are not in code page 850, because it can link
libiconv.
* Update the fat_test.sh script to use dosfstools to format the tested
device, instead of the internal dosfs_initialize hook. The script
is written to test specific cluster sizes, but the initialize hook
still does not support user-specified cluster sizes.
* Coding guidelines: lightly-modified BSD files and lightly-modified
original Haiku driver files have not been revised to adhere to the
Haiku style guidelines. For BSD files, this is meant to make it
easier to compare with the FreeBSD repository when merging future
FreeBSD patches. For existing driver files, this is to highlight the
functional changes made in this change request (I can submit a
separate patch later to clean up style in these files). Also, some
#include lines are not alphbetized (they are instead ordered like
they would be in FreeBSD, because one header relies on another).
Change-Id: I92521d4b700d7aa52fe6c664cf8f83a4d9395809
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7660
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
- Setting word wrapping and resizing the BTextView to the video size
before adding the text moves the subtitles to where they are supposed
to be, and breaks long lines that would be cut off.
- Show last subtitle entry: _IndexFor returns the index at which to
insert a new subtitle for some start time, so when getting an existing
one, we always need the previous index. Before the change we would do
that after checking the time of the subtitle at the returned index,
which for the times of the last one would be outside the list.
- Improve charset detection by using the whole file. Just the first line
of subtitle text may be too short to be useful, and to get there we
should have decoded the file first. The refactor also fixes not getting
the last entry from the file.
- While not subtitle related, fix typo in aspect ratio menu shortcuts.
Fixes: 18151
Change-Id: I83fae735d31bce4616da9128a46be15763c30591
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7833
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
This shows that the profiler is still pretty broken, because we
are missing quite a lot of ticks on average. One run of
"profile pkgman search" here produced an output with 66 total ticks
and 423 (!) missed ticks. A brief run of WebPositive was not quite
as bad (main thread: 1078 total ticks, 157 missed ticks.)
Change-Id: Idfc34534e66eff0fe7e948fcc3576be09db879a3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7820
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
This way we can take advantage of the writev() optimization
added in the preceding commit.
Should also help with #15585.
Change-Id: Ib3b8d2c72b4a36cfb75d7c17b91d442161b2dbdd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7825
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
We can only do this if the underlying I/O will not be cached,
since the I/O hook bypasses any cache. But that should be fine,
as in the event that reads and writes are going through the file cache,
calling read and write multiple times isn't especially expensive.
On the other hand, when the underlying device is not a file
or something else cache-backed, making many I/O calls instead
of just one can be very expensive. The BFS journal flush seems
to routinely call writev() with over 100 iovecs on a regular basis
during high disk activity, and doing 100+ separate writes to
an external drive vs. just one makes a big difference.
Should help with #15585.
Change-Id: I433e9d9948634f8cdccf7999710c6c5e6b6c8850
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7824
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
* If realloc returns NULL, we still need to free the original pointer.
* If get_memory_map returns with B_BAD_VALUE and entries is 0,
this is really the same as B_BUFFER_OVERFLOW.
Fixes spurious I/O failures when writing the BFS journal directly
with vectored I/O (as the next commit will enable.)
Change-Id: I56b63ea2f6b82716719570f1e35d9b425a49b64e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7823
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
We now have just one rather than three (common_user_vector_io,
_kern_readv, kern_writev.)
No behavioral change intended, though there is some slight
functional change (syscall flags are now set/unset much earlier.)
Change-Id: I6c3c26cab1c19755ef15c8b3c9e38afe9b1d145c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7822
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
There seem to be no obvious alternatives to the URLs for:
* Bitstream Charter
* GLU
* Ralink
Those URLs were removed.
Fixes #18932
Change-Id: I20a1a9e4d4808f5f6cbaa0f34f2aaf24be8f90f3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7831
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
- Don't add the insets twice for the preferred width when it is clamped
to the minimum one.
- Set the minimum size to the preferred one.
- Line breaking depends on text content, not available width, so can be
done without a valid text rect.
Change-Id: I511d07a8e0ed78330a232679495a1564bfcd22cb
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7818
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Some of the Unicode blocks correspond to the union of two blocks as
defined in BeOS (for example, "Arabic" includes B_BASIC_ARABIC_BLOCK and
B_ARABIC_EXTENDED_BLOCK), making the `Includes` test inadequate.
Change-Id: Ib1a358f6be8a8f517c6b8a3642536b3e75d365a4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7828
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
HaikuDepot had an image loading system that was well
suited to handling standard icon sizes on standard
unscaled resolution displays. The new mechanism
introduced in this commit will better support UI
scaling in the application.
Change-Id: I23a4c31387fa35f62d8ed18e411b89444c966a2f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7794
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
- Enable use of `find_directory()` when searching for "etc/makefile".
- Fixed a missing return statement on `_l::str()`;
- Fix "STATIC" typo on gAppTypes.
- Removed some superfluous spaces on the output makefile, added a couple
of missing ones.
- Avoid adding library paths as include dirs.
- Replace BeOS header paths with Haiku's.
- Some minor code style changes, here and there.
Change-Id: I03f221c39e894fb6ab6ffebd95ffe5e749678540
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7786
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
It seems to be possible that in case of USB issues a Device
is destroyed before it is registered with the device manager.
In such a case fNode of the device is NULL and there is a
page fault followed by a panic.
Fixes #18922.
Change-Id: I0a363a0ff85e6a74788701738e0cb85a90e99a05
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7821
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
This amends 20ac27def64f92a5003e04e2d40d4f9647fc183c.
I missed an important case in that commit: if pos is not -1,
then movePosition will still be false, but we nonetheless
need to increment the read/write position.
Should fix #18921.
Fix an issue where the scrollbar on user ratings
was not adjusting to the length of the ratings.
Change-Id: I690f4cbef0cdd88dd7540b47889166e0b3bf513d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7819
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Without this, a query term that does have an index but for which
the pattern starts with a wildcard (e.g. "*term*") is treated as having
a score of 0. That means that it is then dependent on the query order
as to whether or not the equation will run at all, since if all the terms
have a score of 0 but one has an index, placing that term first
will make the query run while any other would not.
Fixes #18672.
If we have a matching operator, we will replace the current item
with a new item, and we may need to process it again. For example,
in cases like "A||B||C", the first pass will turn this into "(A||B)||C",
and so we need to re-process the first item to get "((A||B)||C".
Fixes "Open with..." and some other things following the query parser
refactorings.
ModelMenuItem can throw exceptions if its Model fails to initialize,
and even though we pass a Model in directly, copying the Model
results in opening the underlying file again, which of course may
fail if something changed since our Model was created.
While at it, remove the return value, since it isn't used anywhere.
Should fix #18905.
This was missed in the update to Gutenprint 9.
Change-Id: Ie372a38d557e8f1506b27294b3d6699bb30f7fc0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7716
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
This fixes a regression introduced in 34fcf3d9ead1371b57e46877071ced38235e789e.
That commit correctly adjusted the "pos" checks at the top of these
functions, but missed that there was a place in the loop where pos
is incremented. After the first increment, we would have a non-zero
pos, and so the new checks in the actual read/write routines would
return an error, meaning that only the first iovec was ever processed.
This fixes WINE following the aforementioned change.