Commit Graph

3903 Commits

Author SHA1 Message Date
Stephan Aßmus
3f953c833c Added clarifying comment for something that puzzled me at first.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26946 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-12 15:15:02 +00:00
Stephan Aßmus
8a0be4edeb * I misunderstood the previous of adding fPath.Path() to the message. It was
meant to be able to tell which monitor the message came from. So I added it
  back in. Since I used "path" already for the entry, I renamed the field to
  "watched_path". No code was using it yet, so this should be ok and the
  purpose more clear anyways.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26945 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-12 14:49:30 +00:00
Stephan Aßmus
2bf5ba0562 Minor style cleanups.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26944 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-12 14:43:46 +00:00
Stephan Aßmus
edc51252d3 * A few versions of BMessage::AddXXX and ReplaceXXX did not check the argument
passed to the function against NULL.
* Made BMessage::AddFlat() use an optionally heap allocated buffer versus always
  a stack allocated one.
* Small simplification in BMessage::AddMessage(), we can simply compare the
  buffer with the stack based buffer to know whether we need to free() it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26943 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-12 14:38:31 +00:00
Stephan Aßmus
afbd081a6f * TRACE macro no longer needs double parenthesis.
* The global BPathMonitor looper is now always used, no more optional looper
  and no more BApplication looper usage. This way we know how the looper behaves
  and PathHandler::Quit() can be synchronous. In the end, the bug I was
  observing was not caused by the previous asynchronous node monitor stopping,
  but this should be safer anyways. When BPathMonitor::StopWatching() returns,
  you have really stopped watching and not some time later.
* Introduced "FileEntry" which is an entry_ref plus node id. This is now used
  instead of the node_ref for the "watched files set". The whole point
  is to really be able to add the "path" field to the B_PATH_MONITOR message.
  Previously, the initial path that was passed to StartWatching() was added,
  regardless if the message was for an entry somewhere down the hierarchy when
  watching recursively. The downside of the new method is that it uses a lot
  more RAM per entry. Another option would be to store the node id of the parent
  directory and iterate the directory always when in need to construct the path.
* Watching a folder recursively now really adds all the existing subfolders
  as well as all the files if not watching for folders only. The tests for the
  old implementation only tested what happens when the watched folder was newly
  created and then subfolders were created. Those where already added by the
  code. Now it also adds the subfolders of folder that appear in a watched
  folder.
TODO: Remove folders and files recursively when they dissappear. More testing
for B_ENTRY_MOVED. Optimizations are possible when some information is
retrieved twice. I am also planning to add a way for the BPathMonitor user to
filter the automatically watched files/folders in B_WATCH_RECURSIVELY mode.

I grepped the entire Haiku tree for usage of BPathMonitor. Only net_server
and Mail were using it, but both in a way that is not affected by these
changes. Anyways, TextSearch works more reliable now, even for entries in
subfolders.

Feedback very welcome! :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26936 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-11 20:02:59 +00:00
Axel Dörfler
872c3d3f6a * Fixed the broken nodeFlags semantics in BDirectory::Contains() (they are
flags, after all).
* This fixes the "Command-Tab" ie. switch to source/header command in Pe.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26932 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-11 18:16:33 +00:00
Axel Dörfler
8f38768e65 * Don't define DEBUG in public headers!!! Doing it this way will break the
build for others, namely those that also include <Debug.h>
* This fixes the remaining problems of building Pe under Haiku.
* Those files need a giant style cleanup... Fredrik, time to have a look at
  our style guide :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26931 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-11 16:45:26 +00:00
Karsten Heimrich
4b7da592ee * first steps towards a new printer api...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26925 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-10 23:26:38 +00:00
David McPaul
086dbe90c8 limit no of retries to prevent infinite loop
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26914 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-10 13:54:03 +00:00
Stephan Aßmus
5ef86fce1f * Rename the private structs to use the same scheme as for classes, which seems
to be the habbit now.
* Improve PathHandler::Quit() to delete the object in case the BMessenger was
  not valid or failed to send the Quit message. This should handle the corner
  case that the PathHandler's looper was already Quit(). There could still be
  a race condition, although I don't know if it affects local message targets
  in Haiku. I added a TODO note for that, but I believe it can be neglected.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26877 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-08 14:22:00 +00:00
Stephan Aßmus
f72ed717b4 The previous loop to remove all the BHandlers in the destructor was really quite
inefficient. And while it did check if the handler was not NULL, it would have
resulted in an endless loop if it was. I think we can safely assume we have no
NULL BHandlers in that list though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26870 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-07 21:42:02 +00:00
Stephan Aßmus
f7c226f467 * StartWatching() now takes an optional BLooper pointer. This looper will
then be used for receiving node monitoring messages.
* Reenabled using be_app as default BLooper if the API user does not provide
  one. I think the problem that Stefano needed to work aroung in r23995 was
  actually caused by the incorrect locking (an never unlocking) of the looper
  before calling PathHandler::Quit().
->If I understand correctly, this code as supposed to work around the possible
  situation that the looper holding those PathHandlers may have already quit,
  leaving stale PathHandler pointers behind. But that case was not prevented
  by the old code anyways, since one would have had to access freed memory to
  even get the stale BLooper pointer. The real fix would be to store the
  BLooper pointer with each PathHandler so that the possible gone-ness of
  those loopers could be checked independent of accessing the PathHandler
  pointer. (The whole problem is that PathHandler adds itself to the BLooper
  and if the looper quits, it will free all its attached handlers.)
* Introduced a global fallback BLooper for the case that no BApplication is
  running, which resolves a TODO.

All this is yet untested, but should have a good chance of working.
(Famous last words...)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26843 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-06 16:56:24 +00:00
Karsten Heimrich
1a74e75248 * replace some whitespaces
* return error in case we could not get all values from JobConfig



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26822 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-05 20:40:49 +00:00
Stephan Aßmus
a9ab16e27c * Move the LockLooper() call before PathHandler::Quit() into Quit().
* The B_QUIT_REQUESTED message never arrived for me unless I unlock the
  BLooper again, then it works as expected.
* The B_QUIT_REQUESTED handling accessed fOwnsLooper after deleting the
  object.
(Review much welcome - I don't understand the purpose of locking the BLooper
at all before trying to use a BMessenger to send it a message.)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26805 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-04 21:16:11 +00:00
Oliver Ruiz Dorantes
20a5113818 - Proper const use
- Styling



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26802 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-04 19:10:43 +00:00
Oliver Ruiz Dorantes
af9ccaf254 Use const reference as input parameter as suggested by julun
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26801 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-04 17:58:09 +00:00
Stephan Aßmus
e8f39ce96a Don't choke in BPathMonitor::StopWatch(...) if the client never called
StartWatching() before and the BPathMonitor stuff is therefor not initialized.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26792 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-04 14:25:26 +00:00
Stephan Aßmus
b5bc41debf * Use new header layout in PathMonitor.h
* Honor 80 char/line limit in PathMonitor.cpp


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26788 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-04 13:04:45 +00:00
Fredrik Modeen
b555dcbd39 comment fix and fixed some return error from BeBook
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26784 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-04 05:45:52 +00:00
François Revol
34f723cdc8 gcc4 fix. my->beers--;
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26769 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-03 19:43:59 +00:00
Fredrik Modeen
19143948df Forgot a file
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26765 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-03 18:25:08 +00:00
Fredrik Modeen
a14895cc90 Read's the joystick description file
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26764 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-03 18:22:21 +00:00
Axel Dörfler
518056893e * BWindow::Activate() now also unminimizes a window if necessary.
* Removed superfluous white space.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26757 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-03 15:49:02 +00:00
Stephan Aßmus
59e13a3f06 Patch by Andrej Spielmann (GSoC):
* Simplified the subpixel related methods for the AGG "pixel format" template
  interface, the ones for the solid cover simply pass through the existing
  methods, so only one subpixel blending function is left which does the actual
  work (this removes a lot of the previously added code)
* Implemented a new rasterizer based on the original AGG rasterizer which
  implements subpixel anti-aliasing for any generic AGG vector pipelines. It
  is now optionally used in Painter and AGGTextRenderer (for vector fonts, ie
  rotated, sheared or big enough fonts) depending on the global subpixel
  setting.
* Put all subpixel variables into the new GlobalSubpixelSettings.h|cpp
* Simplified DesktopSettings related classes a bit and renamed previous
  FontSubpixelAntialiasing to just SubpixelAntialiasing.
* The private libbe functions for subpixel related settings moved from Font.cpp
  to InterfaceDefs.cpp where other such functions live. They are not related
  to fonts only anymore.
* Removed the subpixel related settings again from the Fonts preflet and added
  them to the Appearance preflet instead.

All of the above implements subpixel anti-aliasing on a global scale, which
to my knowledge no other OS is doing at the moment. Any vector rendering
can optionally use subpixel anti-aliasing in Haiku now. The bitmap cached fonts
are still affected by the Freetype complile time #define to enable the patented
subpixel rasterization (three times wide glyphs). Vector fonts and shapes are
not affected though at the moment.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26755 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-03 13:40:41 +00:00
Stephan Aßmus
d666a89e8f Check for index < 0 too for B_BAD_INDEX. This fixes for example Tracker-Grep
which does

message->GetInfo("field", &type, &count);
while (message->FindBlah("field", --count, &...) == B_OK)
	...;



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26695 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-31 10:54:08 +00:00
Stephan Aßmus
162a7f5f8e * Implemented new BView drawing functions DrawBitmap[Async](
const BBitmap* bitmap, BRect bitmapRect, BRect viewRect, uint32 options).
  Only option so far is B_FILTER_BITMAP_BILINEAR.
* BView::DrawBitmap[Async](const BBitmap* bitmap, BRect viewRect) was accessing
  the bitmap pointer without checking it. Would therefore crash when passing
  NULL, unlike the other methods.
* The BPicture code already reserved room for the BBitmap flags, but did not
  store the actual flags and neiter use them for anything. Since the bitmap
  data is stored anyways, the bitmap creation flags do not matter. So I reused
  this for the new bitmap drawing options.
* Rewrote Bitmap.h and removed the B_BITMAP_SCALE_BILINEAR flag again.
* Tried to optimize Painter::_DrawBitmapBilinearCopy32() a little by giving
  the compiler better hints. There seems to be a marginal, possibly imagined
  speed increase < 0.05 ms. ;-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26665 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-28 18:58:30 +00:00
Stephan Aßmus
3c7dd7c346 Added const versions of the methods that should have been declared like
that from the start. Please review for possible binary compatibility problems!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26663 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-28 18:50:07 +00:00
Stephan Aßmus
749a3c1ee3 Scrollbars do not need a pointer history.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26662 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-28 18:43:47 +00:00
Stephan Aßmus
1c111165b0 Cleanup only.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26661 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-28 16:27:13 +00:00
Stephan Aßmus
dcd70f0e39 * Introduced new BBitmap flag B_BITMAP_SCALE_BILINEAR.
* When drawing BBitmaps with scaling in the app_server, use a bilinear
  filter when a bitmap has this flag set. (Hope nobody objects, otherwise
  I can revert or improve this. Performance can certainly be improved, since
  the AGG implementation is too generic. But that goes for the nearest
  neighbor implementation as well.)
* Flags are uint32, fix app_server side code to declare them correctly. Use
  appropriate link methods in BBitmap and ServerApp.
* Enable the BeOS compatibility mode for B_RGB32 (works just like B_RGBA32
  in B_OP_ALPHA mode).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26649 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-26 23:40:13 +00:00
Karsten Heimrich
0ca6b749f4 * merge parts of libprint and libprintutils to make both indepentend
* adjust all drivers to take that into account
* fix UpdateText() signature in JSDSlider to avoid warning



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26648 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-26 22:36:01 +00:00
Stephan Aßmus
ad50b122b9 Use same structure of whitespace as in rest of comment.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26646 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-26 19:08:47 +00:00
Stephan Aßmus
d970f8e4c5 Extended the doxygen method comment of CommitModifications() to mention
that BPartition children are recreated.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26645 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-26 19:03:53 +00:00
Stephan Aßmus
316bce45fe Small simplification.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26644 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-26 19:02:37 +00:00
Oliver Ruiz Dorantes
585f2ec681 In some cases the remote name request is never returning us the event containing the name. It fails, the reason could be that the command has some differences in the fields depending on the BT version. This is handling the error code properly in this fail case avoiding the wait.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26637 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-25 19:37:19 +00:00
Oliver Ruiz Dorantes
3205e523cd Implement pairing with a remote bluetooth device
- Fix PincodeWindow to send the pincode commands dissapear after clicking 
- Improve the debug output of bluetooth_server
- Handle all needed events for the pairing
- Simple request could send and receive the event before adding the request to the events wanted list. Inverted the order of this sequence.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26614 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-24 20:50:49 +00:00
Axel Dörfler
489075a3b4 * Renamed _ForceUnmount() to _SuggestForceUnmount() to clarify what it does.
* Factored an _UnmountAndEjectVolume() method that takes a partition and mount
  path out of the method with the same name that gets a BMessage.
* Remove the mount point only if it's in rootfs.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26604 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-24 11:25:16 +00:00
Rene Gollent
7a1c09b66a Only try to rmdir in the case of success.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26595 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-23 23:09:08 +00:00
Rene Gollent
5c4fff2ef1 Tracker and DriveSetup now attempt to clean up the mount point after successfully unmounting the volume.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26593 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-23 22:55:00 +00:00
Karsten Heimrich
12fd6cc2e7 * move libprint sources into libs, as it is a 3rdparty lib
* move libprint headers into libs headers folder accordingly
* merge all shared folders sources into kits print, we might build later on a
  real print kit, propably also to access cups from an nicely API, atm static
* move all shared headers into private print, also pr_server.h from interface
* adjust build to work with the changed folder layout



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26570 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-22 20:30:14 +00:00
Stephan Aßmus
ebdb1a612b Just small white space cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26562 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-22 11:03:03 +00:00
Stephan Aßmus
ea021c679f Clicking on a menu item that already has an open submenu will close the
sub menu and quit menu tracking. This closes #1826. I tested a bit with
various different menu situations and there seem to be no negative side
effects.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26561 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-22 10:50:34 +00:00
Ingo Weinhold
f974514476 BString::Append(, int32) methods have been broken in r26378. A local
variable "length" shadowed the "length" parameter.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26554 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-21 23:21:47 +00:00
Stephan Aßmus
a86d99e0da Opening previously open windows on non-boot partitions obviously only worked if the
automounter already mounted these partitions. Since this happens asynchronously,
it sometimes worked and sometimes not. The very simply and non-hacky fix for this
problem is to send a message from the automounter to the application looper to
have it open the previous windows after the initial mount scan is done.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26549 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-21 16:01:51 +00:00
Stephan Aßmus
499c81036f * Fixed automounting all BFS disk when Tracker starts.
* Fixed mounting previously mounted partitions. fSettings was never initialized when restoring
  the settings. The code I removed earlier didn't do that either.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26548 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-21 15:44:45 +00:00
Stephan Aßmus
df7697df96 Do not shoot ourselves in the foot and remove the previously mounted partitions
from the settings message just after having restored it. This should fix
restoring the previously mounted partitions, but I have not tested it yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26547 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-21 13:18:17 +00:00
Stephan Aßmus
54badb1f36 mmlr + stippi:
Fixed more controls to handle a B_TRANSPARENT_COLOR as view coloe of the
parent view. Some controls would not initialize their LowColor() at all
if they were the only control in a window.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26515 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-19 21:28:33 +00:00
Stephan Aßmus
4f2fc580b8 The BStringView is not a BControl but suffered from the same problem in
AttachedToWindow(). Maybe there are more non-BControls yet, I didn't
have a look.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26511 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-19 17:49:45 +00:00
Stephan Aßmus
5fe54dee09 If the parent view color is B_TRANSPARENT_COLOR,
fallback to ui_color(B_PANEL_BACKGROUND_COLOR) in AttachedToWindow(). Most
controls don't paint their background and rely on the app_server painting it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26510 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-19 17:09:54 +00:00
Stephan Aßmus
b66837d4cd Better debug output, print the error string when failing to get a Reader or Decoder.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26504 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-19 15:30:29 +00:00