Commit Graph

33772 Commits

Author SHA1 Message Date
Michael Lotz
5bc9fb9d24 * Replace the truncate_string() helper function with a new, simplified version.
* Remove no longer necessary support functions.
* The new version uses a single BString as input/output parameter and only
  modifies that one by removing non-fitting chars and inserting the ellipsis
  where appropriate, so avoids copying around bytes/chars/strings in a few
  places. It uses the new Chars functions of BString so also no need for manual
  multibyte handling.
* Adjusted the BFont and ServerFont usage of truncate_string() which are both
  simplified by using the single BString. It avoids a lot of temprary
  allocations and string copying. The char * version of BFont
  GetTruncatedStrings() now uses the BString version and not the other way
  around anymore which requires us to allocate temporary BString objects, it's
  not worse than before though.
* This fixes a bunch of problems with the previous functions like always
  prepending the ellipsis for B_TRUNCATE_BEGINNING, crashing on short enough
  widths, violating the width in the B_TRUNCATE_END case when the width was
  short enough, non-optimal truncation in a few cases and sometimes truncation
  where none would've been needed. Also fixes #4128 which was a symptom of the
  broken B_TRUNCATE_BEGINNING.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35381 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-01 18:43:03 +00:00
Oliver Tappe
ecbd2b3054 * added optional package for ABI-compliance-checker, which can be used to check the ABI
compatibility between two different versions of a shared library.
Even when using this tool, you still need to make up your mind about compatibility, but
IMHO it helps a lot.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35380 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-01 17:04:49 +00:00
Michael Lotz
8806dfd057 Adding test that shows that B_TRUNCATE_BEGINNING mode is essentially broken.
Worse yet for a small enough length it actually crashes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35379 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-01 13:39:06 +00:00
Adrien Destugues
d66b223341 Move the parent along with child items in the language selection list.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35378 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-01 12:58:43 +00:00
Ingo Weinhold
c2629ccc6a Patch by "Grey": Small optimization of arch_int_disable_interrupts_inline()
and arch_int_restore_interrupts_inline().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35377 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-01 08:55:44 +00:00
Michael Lotz
0086654c68 Automatic whitespace cleanup, no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35376 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-01 05:36:59 +00:00
Michael Lotz
b3e4ce5422 Use the multibyte aware string functions for typeahead search and filtering so
that special characters can be used as well (umlauts for example).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35375 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-01 05:30:08 +00:00
Michael Lotz
5cd9308ef4 Drop BeOS compatibility and remove related cruft, including using String.cpp
directly. Fixes the build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35374 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-01 05:27:18 +00:00
Michael Lotz
7acdd03f5e Replaced the sMatchString buffer used for typeahead search by a BString. No
intended functional change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35373 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-01 05:02:05 +00:00
Michael Lotz
82471975d5 Adding a simple test app for the utf-8 aware BString functions. I didn't feel
like writing a full blown unittest though, sorry...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35372 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-01 04:26:05 +00:00
Michael Lotz
a5b7cbe331 Adding utf-8 aware version of most functions to BString. They are named after
the corresponding normal functions but have a "Chars" in the name like
"MoveCharsInto" or "AppendChars". Also added CountBytes() and CharAt().
This should make everyday string handling with multibyte strings a bit easier.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35371 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-01 04:20:01 +00:00
Oliver Tappe
783930d916 * reverted the part of r35362 that introduced support for minor ABI versioning - my evil twin made
me do that!

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35370 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-31 23:41:44 +00:00
Rene Gollent
ef9c0b6a51 More cleanups:
- remove some more leftover desktop integration-related code.
	- remove special case that would hide the Desktop folder in file panels.
	- fixed BFilePanel to correctly filter out the trash from the volume root
	  and show it on the desktop like everywhere else.
	- renamed CountView::Add/RemoveFilter so they don't hide
	  BHandler::Add/RemoveFilter (gcc4 warning).



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35368 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-31 21:27:14 +00:00
Adrien Destugues
859d808fb7 Also forgot this.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35367 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-31 21:22:25 +00:00
Adrien Destugues
e6a7a30e3b This should have been part of previous commit :
Add Language->IsCountry to tell if a language holds a country specifier (like fr_FR) or not (fr alone). This allows separating them in the preflet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35366 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-31 21:17:39 +00:00
Adrien Destugues
fbc6963056 The locale preflet now use a BOutlineListView for listing languages and country variants.
This is still quite buggy, but at least you can start working on pt_br and test things out.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35364 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-31 21:00:29 +00:00
Oliver Tappe
af50956825 * added ABI version info for libz.so, libpng.so and libjpeg.so (hopefully, I got it right, as it is
really hard to tell from the available info)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35363 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-31 20:55:16 +00:00
Oliver Tappe
418b8758bf * added support for minor ABI versions to the SharedLibrary rule, as otherwise updating libz.so
could prove to be a major PITA (because of all the dependencies that would need to be rebuilt)
* when adding a library to the image, its optional minor abi version is taken care of, too (i. e. a
corresponding link is created).
* the ABI-related links in /system/lib are now replicated in /boot/develop/lib/<arch>

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35362 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-31 20:53:29 +00:00
Adrien Destugues
f3c8afe886 Fix a bug in OutlineListView::ItemUnderAt that made it pick totally wrong items when some things in the list were collapsed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35361 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-31 18:06:59 +00:00
Rene Gollent
e917a2404d Fix some selection-related problems in BOutlineListView as well as
broken behavior in _RemoveItem that could potentially result in the wrong 
list items being removed/deleted depending on the expanded/collapsed state 
of higher items in the list.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35360 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-31 17:32:12 +00:00
Ingo Weinhold
23b7090f09 is_calling(): Skip non-kernel addresses. Fixes the often not working
"calling" command.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35359 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-31 15:52:10 +00:00
Ingo Weinhold
9e4087372b SystemProfiler::EventOccurred(): We must not access the object after
releasing our reference to it. So return immediately after having done that.
Previously the _MaybeNotifyProfilerThread() that innocently lurked at the end
of the method would be invoked, playing with the dead beef.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35357 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-31 13:53:10 +00:00
Ingo Weinhold
8d9e64aeb2 Added missing builtext.h dependency declarations. The dependencies were
introduced with the update to bash 4. That could cause the bash build to fail
when built with multiple jobs. Thanks to Matt for investigating this!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35356 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-31 08:51:35 +00:00
Philippe Saint-Pierre
481a903a81 DeskBar: Adds a new setting (called ...Enabled) to determine if we show a particular Recent Menu.
* the previous behaviour was to consider it enabled if the count was above 0, and disabled otherwise.
 * the new behaviour is to consider it disabled if the count is 0, but also allows to disable it by unchecking the box in the pref window, without setting the count to 0 (losing its value).

Fixes ticket #5007.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35355 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-31 02:49:10 +00:00
Michael Lotz
83c03b5698 Missed the re-insertion when exiting early after checking the sort order for a
pose on a non-visible pose list which would cause poses to get lost from the
unfiltered list.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35354 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-31 02:28:29 +00:00
Philippe Saint-Pierre
005e1e3073 ActivityMonitor: Add a 7px margin (when necessary) to the legend to avoid having the dragger overlaps the labels.
Fixing ticket #3319.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35353 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-31 01:03:43 +00:00
Michael Lotz
eeeef45c69 * Implemented a "refs catcher" that will catch refs received through a
B_REFS_RECEIVED within a short amount of time (0.5 seconds right now) and
  send them to the last window to be appended to the playlist. This allows to
  select multiple media files in Tracker and get them inside a playlist of a
  single window instead of spawning many individual ones (like when filtering
  for an album, selecting all tracks and opening them by hitting enter).
* Introduce special append index values APPEND_INDEX_REPLACE_PLAYLIST (-1, does
  the same as before) and APPEND_INDEX_APPEND_LAST. The latter is used when
  appending through a RefsReceived() call and ensures that the index is
  evaluated at the actual insertion time (in ImportPLItemsCommand::Perform())
  as by the time this function is called the playlist count may have changed
  already due to multiple RefsReceived() invokations, which would then mess up
  the order. This makes the above item work as expected.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35352 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-31 01:03:06 +00:00
Michael Lotz
497aa62c2f * Provide a LaunchLooper that receives launch messages and executes the launch
functions provided with the given arguments.
* Make use of that looper to replace spawning a thread for each launch task.

On the one side this reduces the amount of used threads (and should fix #698)
and on the other side it makes the order in which refs are sent a bit more
predictable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35351 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-31 00:25:10 +00:00
Philippe Saint-Pierre
d6a142a912 Expander: don't use fLineHeight before its value is calculated. And don't resize the window to a size smaller than the calculated minHeight.
* This fixes a bug where checking "show contents" before a source archive is chosen makes the window go tiny.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35350 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-30 20:33:48 +00:00
Colin Günther
3c08c615dc * Broken build detected by mmadia: When compiling with jam -j8 the atheroswifi
driver may not build due to dependencies to the kernel_c++_structs.h header.
  Normally this header is build by jam when building the libfreebsd_network.a
  library, with the first network driver so to speak.
  Adding a rule to the atheroswifi Jamfile to build kernel_c++_structs.h
  would be the wrong fix, because the atheroswifi doesn't need condition
  variables.
  The correct fix is to remove the #include <condvar.h> statement from proc.h.
  And while I'm at it, I remove all the other include statements, too, as none
  of them are needed by this header (all drivers are still compiling).
* Thank you mmadia for the heads up.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35349 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-30 19:04:45 +00:00
Michael Lotz
382a4b129a Add some locking to accesing PlaylistItems in these two cases as suggested by
Stephan.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35348 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-30 18:42:46 +00:00
Michael Lotz
6a5cf0a1f2 Allow shift-return to discard the filter so you can decided whether or not the
filter shall stay in effect when opening a selection.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35347 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-30 18:17:22 +00:00
Michael Lotz
2932770972 Fix missing check that would cause non-matching poses to show up on attribute
changes (which may also happen on creation of new files).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35346 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-30 17:41:26 +00:00
Michael Lotz
ac53da69c7 When initially starting filtering we need to make sure that non-matching poses
fall out of the selection. The same is later done when removing them from the
matching subset, so moved that to a common EnsurePoseUnselected().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35345 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-30 17:10:46 +00:00
Michael Lotz
beb2e05421 * Renamed CancelFiltering() to ClearFilter() to make it more clear what it does.
* Add UpdateAfterFilterChange() with the update part of FilterModified().
* Add StopFiltering() that clears the filter and updates.
* Make use of these functions where appropriate to fix missing scroll ranges
  after canceling a filter.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35344 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-30 16:53:53 +00:00
Philippe Houdoin
13fee4ed47 Remove older skeleton code, too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35343 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-30 11:24:58 +00:00
Philippe Houdoin
5adae8699f We don't need this here.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35342 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-30 11:16:50 +00:00
Philippe Houdoin
43a75cae5c Import Zenja Solaja's 3DMov over françois skeleton.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35341 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-30 11:14:16 +00:00
Ingo Weinhold
0e81d474e7 Don't access the area after deleting it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35340 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-30 08:23:37 +00:00
Michael Lotz
545ebde00c Implement type ahead filtering (this time for real and without abusing the
vertically sorted pose list). When enabled typing will filter based on the
currently visible attribute columns. Using shift-space as a delimiter
independent filtering strings can be typed, so you can filter based on multiple
attributes at once to refine results while you type. Filtering stays active
until you cancel it using the escape key. While the filtered result is displayed
all normal file operations can be used. Using the return key while filtering
auto-selects and opens the first filter result, allowing for fast traversal
through directories and directly opening the topmost result.

* Introduces fFilteredPoseList which stores the active filter result. The list
  is only used when filtering is currently active, so no syncing is required
  otherwise.
* Some minor adjustments to leave out invalidations where non-visible poses are
  updated.
* Account for the now possible multiple lists throughout BPoseView.
* Add filter string output to the CountView and made that one a bit wider.
* Added all the settings-cruft for type ahead filtering (defaults to off).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35339 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-30 08:08:58 +00:00
Michael Lotz
6568077f50 Fix hid_decode build on GCC4. Spotted by Johannes Wischert, thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35338 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-30 01:37:04 +00:00
Michael Lotz
67df6a72c3 Cleanup, these aren't necessary anymore.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35337 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-29 23:31:10 +00:00
Michael Lotz
17ec4668b2 Printing of basic types was broken when they were part of non fixed size fields.
The size instead of the data would be printed. The fixed/non-fixed handling is
generic though, so no need to special case the always non fixed elements.
Since adding of basic types through their Add*() function always generates fixed
size fields, this would only be visible if the data was added through AddData()
with isFixedSize == false. This is the case in compiled resources for example,
hence you would see it when printing the returned messages of BMimeType::Get*()
functions for pre-installed types.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35336 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-29 23:29:51 +00:00
Ingo Weinhold
e65c400299 * Replaced the vm_page_allocate_page*() "pageState" parameter by a more
general "flags" parameter. It encodes the target state of the page -- so
  that the page isn't unnecessarily put in the wrong page queue first -- a
  flag whether the page should be cleared, and one to indicate whether the
  page should be marked busy.
* Added page state PAGE_STATE_CACHED. Not used yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35333 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-29 15:54:40 +00:00
Axel Dörfler
00d70bc148 * Jerome obviously did not test the new libjpeg... replaced /usr/tmp with /tmp
as found out in #5332.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35332 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-29 15:20:45 +00:00
Ingo Weinhold
72382fa629 * Removed the page state PAGE_STATE_BUSY and instead introduced a vm_page::busy
flag. The obvious advantage is that one can still see what state a page is in
  and even move it between states while being marked busy.
* Removed the vm_page::is_dummy flag. Instead we mark marker pages busy, which
  in all cases has the same effect. Introduced a vm_page_is_dummy() that can
  still check whether a given page is a dummy page.
* vm_page_unreserve_pages(): Before adding to the system reserve make sure
  sUnreservedFreePages is non-negative. Otherwise we'd make nonexisting pages
  available for allocation. steal_pages() still has the same problem and it
  can't be solved that easily.
* map_page(): No longer changes the page state/mark the page unbusy. That's the
  caller's responsibility.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35331 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-29 10:00:45 +00:00
Ingo Weinhold
1196f305d7 Unconditionally log when the memory manager creates/deletes areas.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35330 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-29 09:45:47 +00:00
Ingo Weinhold
ab33f2d961 vm_create_null_area(): The area was created with B_NO_LOCK which would cause
the wired count of manually mapped pages not to be decremented in
delete_area(), leading to a "pages still has mappings" panic when the slab
allocator's memory manager deleted areas.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35329 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-28 20:16:59 +00:00
Ingo Weinhold
e00b4c1921 * Moved handling of busy blocks into separate functions.
* Added flags to avoid notifying the busy condition variable unnecessarily.
* get_writable_cached_block(): Unlock the cache while memcpy()ing/memset()ing
  the block's data. The idea is to reduce lock contention. Less effective
  than I hoped, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35328 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-28 13:58:06 +00:00
Colin Günther
8a249cd5ad * Recursive dependencies are now correctly handled, so Subversion and BeHappy
should now be able to be installed gracefully. This fixes ticket #5248.
* Enhancement of the -a parameter, so that it accepts multiple packages at once.
  Multiple packages have to be included in double quotes, due to the way getopts
  handles options. This fixes ticket #5315.
* Thanks mmadia for this patch!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35327 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-28 11:25:25 +00:00