Commit Graph

269 Commits

Author SHA1 Message Date
Stephan Aßmus
8ad62dec5a Patch by Obaro Ogbo: Provide a PreferredWidth() implementation for the
Relation attribute column in the Open With panel. So double clicking will
size it properly. Fixes ticket #3035. Thanks a lot!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29779 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-29 14:23:59 +00:00
Stephan Aßmus
86fb66a8dd Fixed a mixup of the flags and resize mode arguments. In my previous commit,
I wrongly assumed that viewMode == view flags.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29778 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-29 14:22:38 +00:00
Stephan Aßmus
dec2485ca0 Patch by jonas.kirilla: Allow the Tracker settings window to be quit by
Command-Q. Thanks a lot!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29772 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-29 08:36:55 +00:00
Stephan Aßmus
0834dd807f * Use B_DRAW_ON_CHILDREN for the Desktop pose view.
* Draw the selection rect in DrawAfterChildren().
* Call DrawAfterChildren() manually in Draw(), if B_DRAW_ON_CHILDREN is not set.

This change allows replicants, in case they want to be aware of being embedded
in the desktop, to use alpha blending to draw on top of the desktop pose view.
For replicants which do not care, this patch changes nothing. When views
with B_DRAW_ON_CHILDREN invalidate themselves, they will automatically trigger
an update of children that sit on top the invalidated area, at least with our
app_server. So this change works just like one would expect, ie like
compositing views. Of course it should have flickering when app_server does not
run in double buffered mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29759 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-28 19:30:39 +00:00
Stephan Aßmus
af20d1a13e Small cleanups.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29729 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-26 14:07:33 +00:00
Stephan Aßmus
ce65700663 Beautified the Tracker job status window:
* Centered icon in available space.
* Improved button layout.
* Pause button remains pressed when paused.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29668 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-23 15:03:41 +00:00
Stephan Aßmus
cafee0b7f5 Improved/fixed the look of file panels. If I feel motivated enough, I may
also fix the font-sensitivity issues.
* The CountView can now draw part of the PoseView focus indication. Though I
  am not convinced anymore that I am approaching this the right way. Maybe
  scroll views should simply leave room for drawing a frame between child
  and scroll bars...
* ContainerWindow::BackgroundView uses the new BControlLook method to draw
  the scroll view frame to look just like a regular scroll view.
* Some fixes to layout of controls in file panels and minimum window size.
  There would be much more left to do...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29663 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-23 11:26:53 +00:00
Stephan Aßmus
08ff393d50 Fix DraggableContainerIcon drawing after recent BControlLook method signature
change for DrawMenuBarBackground(). The borders are passed one position later.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29632 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-21 17:39:52 +00:00
Axel Dörfler
81824f60e5 * Auto mounting now works correctly for CDs and USB sticks, thus fixing bug
#2629.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29585 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 10:17:43 +00:00
Axel Dörfler
8f464bc9ad * Added support for automatic mount on media change. Not yet tested, though,
and probably only works for CDs as is (ie. not for USB sticks).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29584 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-18 08:57:46 +00:00
Stephan Aßmus
f5812f4b02 r28745 prevented overwriting the global type ahead string buffer from
an unrelated window. However, we broke unsetting the type ahead string on the
little info view. This fixes this again, the type ahead string never went
away.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29530 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-14 21:06:12 +00:00
Michael Lotz
492e224b8e * Update the signature of _kern_load_image(). It has been changed and therefore
the calls to it always failed.
* Check what error is returned and read the approprite details out of the
  message.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29516 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-14 14:16:17 +00:00
Axel Dörfler
4dabc2e663 * Fixed warning.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29512 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-14 13:47:36 +00:00
Stephan Aßmus
2ade87ffe7 Temporary fix for the ugly drag bitmaps when dragging icons from the Desktop.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29509 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-14 09:25:13 +00:00
Axel Dörfler
b32211a457 * r28871 turned around the sort logic for undefined attributes.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29486 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-12 23:01:45 +00:00
Rene Gollent
1c56dee2c4 We need to remove the node from our list when the pose is removed. Otherwise deleting, then recreating the same file will be rejected as a duplicate and not added to the view. Thanks to mmlr for reporting.
Small cleanups.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29450 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-08 21:34:09 +00:00
Rene Gollent
ccefc7ac9e Clear the node list when switching directories. Otherwise navigating out of a directory and back in single window mode will show no nodes whatsoever.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29419 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-07 01:50:26 +00:00
Rene Gollent
59160ac740 Fix gcc4 build. GCC 3 and up moved some of the SGI extension classes into a different namespace.
Fixes ticket #3524.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29418 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-07 00:48:00 +00:00
Rene Gollent
38f4625170 Rework this again due to flaws in the previous optimization - due to its use for things like sorting the visible pose list, it would rely on whatever pose column was being used for sorting, and as such would generate false positives when the view was being ordered by certain attributes. We now use an std::hash_set to track all the nodes that have been added to the current view and use that for a duplicate check instead. Also slightly boost the max number of models per chunk that we read.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29414 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-06 13:42:33 +00:00
Rene Gollent
847af0079c Second attempt at PoseView population optimizations: We still search for the pose in our list, but now rely on a binary search to do it instead, rather than the previous linear search. This considerably boosts population speed for large folders here, while still preserving correct behavior.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29395 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-04 03:54:29 +00:00
Alexandre Deckner
634596058d * Revert the changes in r29316 as it's now fixed upstream.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29319 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-24 21:41:32 +00:00
Alexandre Deckner
ea83c971c6 * Round mouse coords before doing BRegion ops for the transparent
selection rect, as BRegion behaves unpredictably with non-integral 
values (cf bebook).
  Fixes #1527


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29316 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-24 18:55:23 +00:00
Stephan Aßmus
887f9688a4 Improved the look of the icon label outline, at least the white text
version should look much better now. Not so sure about the dark text
version, but if you don't want that, just make sure your desktop bg
color is dark enough to get white text.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29310 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-24 11:07:22 +00:00
Jérôme Duval
08f9d40010 set widget outline to true on DesktopPoseView creation as default. It might not be set by the BackgroundImage code if there is none.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29283 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-22 13:38:57 +00:00
Rene Gollent
3291c58044 Revert the PoseView change from r29190. This is incorrect since the outline setting only applies to the desktop poseviews, and is explicitly set there by the backgrounds settings code in BackgroundImage.cpp. This fixes the font rendering artifacts reported in ticket #3467.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29277 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-21 23:41:48 +00:00
Rene Gollent
ec8c04cc2c Never show the copy cursor if the item being dragged is a volume or the disks icon. Fixes ticket #3468.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29276 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-21 23:07:38 +00:00
Alexandre Deckner
4712bc807c * Revert one the changes done in r29198 has it happen to be wrong. See #3450 and #3011
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29229 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-16 10:39:26 +00:00
Stephan Aßmus
2f86ba4557 Implemented a new look for the Haiku interface controls. It was
overheard that they looked too ninety-ish.
TODO: The code behind this is work in progress. The basic idea
is to extract all drawing code into a new class BControlLook,
of which there is a global instance be_control_look, instantiated
in InterfaceDefs.cpp. At the moment, all the old drawing code is
still there, and the usage of be_control_look is inside if-bodies
checking the instance against NULL. In another words, by not
instanitating be_control_look, you can revert back to the old look.
BControlLook's job is to provide reusable methods for drawing
certain types of frames, backgrounds and labels, so that application
developers can make controls that re-use the same drawing code
as built-in controls and adopt to changes made there. I have added
the notion of "borders". Each of the frame drawing methods can be
made to draw certain borders only, which is supposed to help when
controls shall visually attach. This feature is not fully explored
at all ATM.
TODO: Update BColumnListView header view and BStringItem text
spacing. Update other apps where it makes sense to use BControlLook.
For the moment, only Tracker and LaunchBox are updated. More...
NOTE: The new look is not very radically different, so that existing
apps do not immediately look too ugly or out of place.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29221 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-15 18:23:19 +00:00
Rene Gollent
95da064570 Some pose performance improvements by aldeck and myself:
1) We don't need to call FindPose() on every pose as we're freshly adding it,
and a duplicate should never happen in this circumstance (the FindPose() is still there if
Tracker is compiled in debug mode however.
2) Adjust the FSClipboard calls such that the locking is optional. This allows us to lock
once per CreatePoses group rather than once per pose.

Together these changes make for a significant performance improvement when it comes to
populating a large folder.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29198 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-14 19:54:47 +00:00
Jérôme Duval
71ed64b71b * Icon label outline is by default true. We take this into account on PoseView creation in Tracker, and when no image is selected in Backgrounds.
* This flag is still only settable when an image is selected.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29190 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-13 21:39:52 +00:00
Rene Gollent
c4d59015f6 Slight logic cleanup that prevents excessively rechecking the drop target in some instances.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29171 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-09 05:19:50 +00:00
Rene Gollent
a67852c554 Reset the cursor check state if we drag over a pose that's not a suitable DnD destination for the drag. Otherwise we'll reset the cursor back to the move state and never set to copy again unless we exit/reenter the window. Thanks to luroh for reporting.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29167 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-08 18:39:39 +00:00
Rene Gollent
81796bc0b3 Don't leak memory when aborting operations due to read-only volume.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29165 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-08 16:00:46 +00:00
Rene Gollent
c854c13348 Disallow move to trash and/or delete operations from read-only volumes. This fixes ticket #3421.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29163 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-08 14:33:22 +00:00
Rene Gollent
42fe9293f8 Tracker now alters the cursor to indicate the resulting FS op when drag and dropping files.
If the op is determined to be a copy, the copy cursor from Wonderbrush (thanks Stephan!) is
displayed. Otherwise, the default hand cursor is used to indicate move.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29155 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-08 01:05:34 +00:00
Joachim Seemer
4f3347b64b As discussed here:
https://lists.berlios.de/pipermail/haiku-commits/2009-February/014198.html
We decided on a distinction between path+filename and only the path to a file.
I changed the places a user is exposed to the issue, using the definition:
Path with filename:	"Path"
Path without filename:	"Location"


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29130 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-03 16:16:26 +00:00
Rene Gollent
8e1e99a333 Fix Create Link from context menu.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29109 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-01 16:25:30 +00:00
Rene Gollent
28e82de7b3 Compute the point list for the destination items. This fixes a problem reported by BGA where dropped items in large icon mode weren't being dropped onto the location of the pointer, but rather the first available grid slot.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29104 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-31 21:48:29 +00:00
Rene Gollent
dc027966d7 Unbreak build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29099 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-31 15:38:35 +00:00
Rene Gollent
b8d65a49d8 This should really fix #3393. Apparently I'm more sleep-deprived than I thought.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29096 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-31 03:21:23 +00:00
Rene Gollent
fee5fc34ff Fix another regression preventing moving around icons. Fixes ticket #3393.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29095 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-30 23:49:02 +00:00
Rene Gollent
6a392dcec4 Skip doing the preflight size calculation in cases where the requested FS operation will be instantaneous anyways.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29093 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-30 00:08:26 +00:00
Rene Gollent
994541a836 Refactor MoveSelectionTo a bit to reuse other code instead of duplicating most of it practically verbatim with different variable names.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29092 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-29 23:49:57 +00:00
Rene Gollent
12f46bebca Fix a regression introduced with my previous commit where forcing Move would not always be respected.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29091 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-29 22:21:22 +00:00
Rene Gollent
cfd0c07711 If the source and destination volumes of a drag and drop op do not match, default to copying unless the user has explicitly requested otherwise. TODO: visual indicator of which op is going to happen.
--

M    PoseView.cpp


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29084 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-29 00:05:38 +00:00
Jérôme Duval
280987e2cb Applied a tip from Stephan: pass the location to DrawString directly.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29017 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-25 19:43:41 +00:00
Jérôme Duval
0cfe9ac0f7 * centers the text for the settings list item as done with BStringItem
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29015 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-25 19:12:58 +00:00
Alexandre Deckner
e5a30119a0 * There was a bug in the way the mimetypes list was constructed, it would recalculate the list on
each addition, which is o(n). It's already refreshed lazily on read, only rarely when ContainerWindow updates 
his menu.
 Now there's only one recalc when finished adding poses, 9ms for 20K files here.
Pose adding is almost linear now for the first thousand files, but it gets worse after that due to 
another known problem. Now doing 35s instead of 80s on a 20K files folder here, more to come :) 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28891 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-12 19:42:41 +00:00
Karsten Heimrich
b47e734742 * Prevent a column to shrink smaller then the default column width. This was most notable
when double clicking e.g. the Size column in a tracker window containing only folders.
  It would shrink smaller then one can resize it while dragging the resize 'handle'.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28885 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-11 18:12:12 +00:00
Karsten Heimrich
b2f91e61b7 * Prevent the B_OBSERVER_NOTICE_CHANGE to get passed on to ContainerWindow, since
this would crash Tracker in case the 'Open With' window is shown and one try's
  to set, e.g 'Show full path in title' or 'Show Navigator' etc.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28884 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-11 17:39:54 +00:00