#
9931e8ee |
|
09-Feb-2024 |
nep <nep-git@packageloss.eu> |
rgb_color: Add new APIs: Contrast(), IsLight(), IsDark() - Remove perceptual_brightness - Change implementation of rgb_color::Brightness() to the previous BPrivate::perceptual_brightness() - Introduce convenience methods Contrast(rgb_color), IsLight() and IsDark() Change-Id: Id677d4a32ce43d73bffecf9baf8cffaafb01a16d Reviewed-on: https://review.haiku-os.org/c/haiku/+/7399 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
8446d3b9 |
|
13-Dec-2023 |
John Scipione <jscipione@gmail.com> |
Tracker: Miscellaneous cleanup Move DraggableContainerIcon out of ContainerWindow.cpp into new. Move CompareLabels to Utilities.cpp Rename fContainerWindowFlags to fOpenFlags. These are the flags set by OpenContainerWindow to save and restore state and should not be confused with the windowFlags that are passed to BWindow. There are two sets of flags, which I'm calling openFlags and windowFlags. Rename fUseLayouts to fUsesLayout and useLayouts to useLayout. Put all the constructor created flags at the top. "window" variable name is ok, we don't need to say "containerWindow". Rename Addons to AddOns everywhere with a capital O. Rename BuildAddOnMenu() to BuildAddOnsMenu() with an s. Rename AttributeMenu...() methods to AttributesMenu...() with an s. Rename SetUp...() methods to Setup...() with a lowercase u. Replace a few instances of fPoseView with PoseView() inline in BContainerWindow and BDeskWindow. A few more minor fixes in BDeskWindow. Replace BPoint(0, 0) with B_ORIGIN in Pose.h Change-Id: If30803753b63b19e35f14c0f0c4e08111d0d0980 Reviewed-on: https://review.haiku-os.org/c/haiku/+/7240 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
#
90510b4a |
|
05-Dec-2023 |
John Scipione <jscipione@gmail.com> |
Tracker: Remove Trash settings remnants PoseView.cpp changes * Create DoDelete() and DoMoveToTrash() convenience methods in BPoseView. - Call DoMoveToTrash() in B_DELETE handler checking Shift. Tracker: Update Delete warning dialog This dialog pops up when you Move to Trash with Shift held down. The Skip Trash version has been deleted since we've decided to no longer using this settings. Push Cancel button over to right on the "Delete files" version. Handle default case in switches so that a weird value is returned it will Cancel. If BAlert receives B_QUIT_REQUESTED it returns -1 for example according to the Haiku Book so make sure to handle this case. Add B_CLOSE_ON_ESCAPE flag and handle that case. Change-Id: I16c532bfef585081207f1df3edc93f69dec6e529 Reviewed-on: https://review.haiku-os.org/c/haiku/+/7199 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
#
cf83394d |
|
22-Nov-2023 |
John Scipione <jscipione@gmail.com> |
Tracker: Put duplicate checks into convenience methods ... and a few minor feature updates. Create a CanEditName method on PoseView because we were using subtly different checks in different places to see if allowed to edit the name or not. Tint background color of the Edit name text box on read-only to indicate that the file name cannot be edited (only copied). Create ReadOnlyTint() method in Utilities and use it here and in PoseView to set the background color. Eliminate BackTint() method from PoseView which served a similar purpose. Add CanMoveToTrashOrDuplicate() convenience method. Move To Trash, Delete and Duplicate options use same check. Context menu of selection in file panel gets Duplicate option, window context menu never did so don't try to enable it there. Change-Id: I7a82d00ea10f22a7885c2e898a809e1abe9a6b30 Reviewed-on: https://review.haiku-os.org/c/haiku/+/7122 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
711b36b4 |
|
31-Aug-2023 |
Augustin Cavalier <waddlesplash@gmail.com> |
Tracker: Merge SelectPosesListMode and SelectPosesIconMode. There was a TODO comment about this, which dated all the way back to the original OpenTracker import over 20 years ago. There's still more cleanup needed, so I left another TODO.
|
#
2b6ccde0 |
|
25-Apr-2023 |
John Scipione <jscipione@gmail.com> |
Tracker: Disable edit menu items on ro volumes ... such as virtual directories or read-only media. Also applies to open/save panels. Menu items disabled on read-only volumes: * New > * Duplicate * Move to Trash * Move To > * Cut * Paste Other reasons a menu item is disabled: * Duplicate, Move To Trash, Cut, Copy, Move to >, Copy to >, Create link > and Identify require a selection. * Paste requires something in your clipboard. * Edit name requires a single item is selected. Edit name is permitted on a read-only volume so that you may copy the name. However the name is not editable, you may only select and copy. Pop system folder warning dialog on Edit name commit instead, this way you won't see the dialog if you just want to copy the name. Move "Create link here" option last in the right- click drag menu. Disable "Move here" if source or dest is read-only, rest if dest is read-only. Ignore Paste to virtual directory, (even more) but permit Edit name. Allow drag-and-drop to virtual directory but alert and disable all right-click drag menu items like other read-only directories. Tint window backgrounds on all read-only windows darker, not just on virtual and query folders. Automatically switch the background color as you navigate in and out of read-only folders. Fix highlight color on column resize when background color is not white. Fix "reverse video" effect so that the highlight color is the inverse of the background color. On Desktop however, highlight color is always black or white. Do not alter focus in save dialogs after initial focus on the file name because focus on the pose view is required for cut/copy/paste to work. Make Edit Name work in file open/save dialogs and make Cut/Copy/Paste work while editing file name. Make Select all work in Edit name. Duplicate code cleanup: NameAttributeText::CommitEditedTextFlavor() and HeaderView::FinishEditingTitle() call common EditModelName() function in FSUtils. RealNameAttributeText inherits from NameAttributeText and calls its inherited CommitEditedTextFlavor() method. The alert text is defined in just one place in FSUtils ShouldEditRefName() instead of three. Consequently file name changed in the info window can now be undone. Change-Id: I3a78960057b8fb42d1f71af2ec3c808754c9b314 Reviewed-on: https://review.haiku-os.org/c/haiku/+/6357 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
d34f1c40 |
|
02-May-2023 |
John Scipione <jscipione@gmail.com> |
Tracker: Add BPoseView::CountSelected() method Replace count variable with either selectCount or poseCount depending on what is being counted. Change-Id: I5e5caffd71bb932d93a822b28e73cdcfebff7135 Reviewed-on: https://review.haiku-os.org/c/haiku/+/6399 Reviewed-by: waddlesplash <waddlesplash@gmail.com> Reviewed-by: Axel Dörfler <axeld@pinc-software.de> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
|
#
147ca876 |
|
28-Jan-2023 |
Augustin Cavalier <waddlesplash@gmail.com> |
Tracker: Drop ShowHideSelection setting. Unused since the previous commit.
|
#
95ca8eef |
|
09-Sep-2022 |
Augustin Cavalier <waddlesplash@gmail.com> |
Tracker: Privatize most members of BPoseView. Greatly reduces what is available to inherited classes. No functional change intended.
|
#
054c1b27 |
|
31-Aug-2022 |
Augustin Cavalier <waddlesplash@gmail.com> |
Tracker: Overhaul list column size initialization and storage. Mostly for HiDPI, but this also cleans up the code in general, too. * Apply a scale-factor when loading and serializing column size/offsets in ViewState. * Do not hard-code offset values for default columns but let BPoseView::AddColumn() compute them manually instead. * Change BPoseView::AddColumn() to support being called during early initialization and utilize it in SetUpDefaultColumns...(). * When adding deserialized columns to a BPoseView, always realign the offsets instead of just doing sanity checking. The rationale here is that the first time the TitleView is touched, it will do this anyway, and cause "snapping" or drawing glitches if the alignment is not as expected. If it was actually somehow an intended feature that non-adjacent columns can be displayed, changes are needed in TitleView and PoseView to properly support this without triggering redraw glitches. I still saw some very slight redraw glitches (e.g. column contents shifting by 1px) at higher font sizes; however, Tracker before this commit had far more of those glitches (this commit seems to resolve a number of them.) Tested with 12pt, 18pt, and 20pt font sizes; this seems to work pretty well. But if you see strange behavior or more redraw glitches than there were previously, please do file a ticket.
|
#
509c951d |
|
31-Aug-2022 |
Augustin Cavalier <waddlesplash@gmail.com> |
Tracker: Scale all icon sizes, not just the list icon size. ViewState now always holds the unscaled icon size and PoseView computes and caches the actual display icon size. Anyone who used Tracker on HiDPI before this commit will likely need to reduce the icon size on their desktops and any open windows.
|
#
0c973c94 |
|
26-Aug-2022 |
Augustin Cavalier <waddlesplash@gmail.com> |
Tracker: Refactor IconCache size handling and usages. * Instead of taking an icon_size, which we were having to cast random integers to anyway, just take a BSize and convert internally as needed. This simplifies a lot of usages of IconCache methods. * Compute what B_MINI_ICON size will be at startup. This way, we do not wind up caching "mini" icons in the fLarge*Icon variables under HiDPI. This does have a downside that if anything actually does try to fetch "true mini" (16x16) icons when the real ComposeIconSize(B_MINI_ICON) is larger than that, it will wind up (confusingly) in fLarge*Icon, but that should not cause problems and after this commit should not happen at all, anyway. * Make mini-icon-mode use ComposeSize instead of the hardcoded 16x16, and adjust metrics computations around it. * Fetch larger icons in MountMenu logic. Also use BString::SetToFormat. * Remove an unused, deprecated method from BPoseView. * Rename variables in thumbnail generation code to match new behavior.
|
#
7912dad9 |
|
17-Jan-2021 |
John Scipione <jscipione@gmail.com> |
BTextView: Fix Tracker edit name Don't resize text view in FrameResized() if resizable, this is done in _AutoResize() instead. Set text rect width to width of max line when word-wrap is off. Text rect width shrinks to the width of the text matching behavior of BeOS R5 and previous Haiku. This fixes Tracker Edit name. Limit max width to column width in list mode or 30em in icon mode. Filter paste messages limiting to max width in Tracker Edit name. General BTextView fixes: As a consequence of the text rect shrinking to fit the text, adjust highlighting to go at least to edge of the view even if text rect width is narrower. Extend the invalidation area beyond text rect when redrawing to include highlighted areas. Text views behave properly when overflow occurs i.e. when you type text off the end of the text view. The text is nudged over as you type/scroll so that the previous text is visible. This sorta worked before but now works better. Fix text rect centering by replacing switch with BLayoutUtils::AlignOnRect(). Coalesce consecutive draw calls when inserting and deleting text to prevent flashing for example when resizing the window. Redraw text when the text view scrolls fixing a bug I noticed in StyledEdit. Workaround negative height Beezer bug. Fixes #16642, #16476 Change-Id: I2d32d6039944d2dc3218ce4de71f2966cc98c866 Reviewed-on: https://review.haiku-os.org/c/haiku/+/3642 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
f82f94ef |
|
06-Jul-2020 |
Augustin Cavalier <waddlesplash@gmail.com> |
Tracker: Remove partial support for custom fonts in PoseView. BFont is by default bitmap-spaced, so we do not need to make a new font just to add bitmap spacing. The rest of the code assumes in places that we have the same general characteristics as be_plain_font anyway, so having these bits of code does not make a lot of sense. Also correct the list element height computation to now just use be_plain_font directly, which will work even when this is the first PoseView created (i.e. before the font height has been read.)
|
#
1ba93961 |
|
07-Mar-2020 |
Augustin Cavalier <waddlesplash@gmail.com> |
Tracker: Replace the deprecated std::hash_set with our HashSet. Change-Id: I7d29f0c905a3ab1a20f6eca252ff1f168218c23f Reviewed-on: https://review.haiku-os.org/c/haiku/+/2322 Reviewed-by: John Scipione <jscipione@gmail.com>
|
#
6bff9184 |
|
07-Jan-2020 |
X512 <danger_mail@list.ru> |
Tracker: fix window focus behaviour * Also fix LongAndDragTrackingFilter Fixes #15605 Change-Id: I98c5f3ca435e54c98515ebe2fccbbfd5d08c1a25 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2081 Reviewed-by: Sergei Reznikov <diver@gelios.net> Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
a55e9f52 |
|
05-Nov-2018 |
Axel Dörfler <axeld@pinc-software.de> |
Tracker: NavMenu icons scale with font size * Moved icon size computation into separate utility function.
|
#
0f03d737 |
|
04-Nov-2018 |
Axel Dörfler <axeld@pinc-software.de> |
Tracker: List view icons now grow with font size * This also removes the mini/large icon mode for list views; it's now simply always matching your font size. Change-Id: Ieedd86cc3a50dd0f950d97bbd9839384d44f8bd3 Reviewed-on: https://review.haiku-os.org/662 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
8fdd2629 |
|
01-Sep-2016 |
John Scipione <jscipione@gmail.com> |
Tracker: 32x32 icon size option in list mode 16x16 is same old default 32x32 is new and fun Adjust start offset to depend on icon size Remove the kColumnStart variable and instead use StartOffset() method which calculates the column start offset based on the icon size. When you switch between icon sizes in list mode recalculate the first column width to make room for the icon or more text. Add some padding to list height in large icon mode.
|
#
b46999bc |
|
21-Jul-2015 |
Axel Dörfler <axeld@pinc-software.de> |
Tracker: page down/up now selects poses. * When pressing shift it will also extend the selection to the bottom or the top of the page. * It does not deselect anything yet, but Tracker's selection logic is pretty questionable, anyway, and it's way too complicated to implement this nicely as of now.
|
#
2bd0b27f |
|
08-Apr-2015 |
Michael Lotz <mmlr@mlotz.ch> |
Tracker: Fix use-after-free by ref filter of OpenWithPoseView. Commit ea8b1e14 changed OpenWithPoseView from using ShouldShowPose for filtering poses to a BRefFilter. The introduced ref filter used the iterator handed to the BPoseView::AddPosesTask which took ownership of that iterator and deleted it as soon as it was done. Since actually adding the poses as well as further filtering is asynchronous and happens after the AddPosesTask completes, the iterator was used after it was already deleted. Introduce BPoseView::ReturnDirentIterator() that is called after the AddPosesTask is complete. The default version deletes the iterator, the OpenWithPoseView overrides it and does nothing, it deletes the iterator in the destructor instead. Also fix leaking the ref filter. The BPoseView does not take ownership of the filter as it usually comes from a BFilePanel which is documented to not take ownership.
|
#
8c2813c1 |
|
25-Feb-2015 |
John Scipione <jscipione@gmail.com> |
Tracker: Style fixes
|
#
e7803cf1 |
|
26-Jan-2015 |
Augustin Cavalier <waddlesplash@gmail.com> |
Tracker: use the Layout API wherever possible. Sorry this commit is so big, but I couldn't figure out how to do this incrementally without breaking things. I wasn't able to just merge Aldeck's branch, as it was a partial refactor of Tracker and didn't just rewrite the UI creation code to use layouts, and the changes for PM (e.g. addon loading, virtual directories) made it very hard to merge (it doesn't even compile after an automerge) so rather than spending time on that, I decided it'd be better to recreate his work. Miscellaneous notes: - This partially cleans up BPoseView & subclasses and BContainerWindow & subclasses -- none of the subclasses and child views abuse the parent's state, child views, or layout now. - BFilePanel and BDeskWindow are not on layouts, because: * BFilePanel docs in the Be Book instructed developers that wanted to modify BFilePanel's layout to just use FindView() and then move the views around. Obviously making it use layouts will break all BeOS apps that do this, and there are a lot of them (Pe, WonderBrush are just two examples.) I've added a note to the TODO list for R2 to create a layout-compatible API for this. * Some replicants (Workspaces, for example) rely on manipulating BDeskWindow's drawing state. This is incompatible with layouts, as at least in the case of Workspaces, it breaks a layouted version of BDeskWindow entirely. - I noticed a lot of #ifdef BEOS_VERSION ... gunk in the code. Tracker probably didn't build on BeOS just before this commit, and now it won't for sure, so I intend to go through and clean that out in the near future. This commit also fixes: - enhancement #4996 (make Tracker's navigator use vector icons) - bug #3039 (resizing OpenWithWindow flashes the blue border) - bug #3889 (OpenWithWindow redraw errors) - a regression that was a side effect of "dynamic_cast<BDeskWindow*>(this)" always returning NULL when run in the constructor. I just added a "bool isDeskWindow" to BContainerWindow's constructor that is only set to true by BDeskWindow. - a copy&paste error in VirtualDirectoryPoseView that was passing "uint32 resizeMode" as "uint32 viewMode". Thanks to Alexandre for his original branch (it was a very useful reference), Axel (for some miscellaneous advice & encouragement), Adrien & Humdinger (for user interface review), and Diver (for user interface review & testing).
|
#
54e2dd72 |
|
28-Jul-2014 |
John Scipione <jscipione@gmail.com> |
Tracker: style fixes No functional changes intended.
|
#
38181640 |
|
20-Jun-2014 |
John Scipione <jscipione@gmail.com> |
Tracker: style fixes to PoseView class
|
#
fcb24e82 |
|
31-Jan-2014 |
John Scipione <jscipione@gmail.com> |
Tracker: Only open items if doubleclick w/ primary MB Also rename fLastClickPt to fLastClickPoint
|
#
9d33fe68 |
|
31-Jan-2014 |
John Scipione <jscipione@gmail.com> |
Tracker: Style fixes to BPoseView
|
#
80c9ee9c |
|
24-Dec-2013 |
Freeman Lou <freemanlou2430@Yahoo.com> |
Tracker: exclude trash from selection. Signed-off-by: Rene Gollent <rene@gollent.com>
|
#
205cf695 |
|
24-Dec-2012 |
Philippe Saint-Pierre <stpere@gmail.com> |
Tracker: Force Identify - don't require holding shift (#4857) Don't require to hold shift when clicking on force identify, can now be released after popup menu have appeared.
|
#
ed63a5d2 |
|
18-Aug-2012 |
Philippe Saint-Pierre <stpere@gmail.com> |
Tracker: Double-Click simplification Double-click check was redoing what is essentially already done in input_server. The way we were doing it, right clicking (or pressing a different button for the second click, for that matter) wasn't clearing the fields remembered and thus not breaking the sequence. So a third click returning to the correct sequence (in a short time) would get recognized as a valid second click. So a quick left-right-left would be seen by that method as left-left. Also, clean up a previous fix I committed. Removed the introduced Origin() method as it is the LeftTop() method I was interested in and it is already existing. Fix #8714
|
#
c3837537 |
|
14-Aug-2012 |
Philippe Saint-Pierre <stpere@gmail.com> |
Tracker: TextWidget editing flaws TextWidget tried to detect if the editing box would span outside the PoseView, but it was using an hardcoded value of 1 for the minimum left value. But in Icon mode, negative values can occur. Change to use the view's origin (top left corner of the view).
|
#
66c09a35 |
|
09-Aug-2012 |
Philippe Saint-Pierre <stpere@gmail.com> |
Delayed widget editing, crash avoidance Make the PoseView stop watching a TextWidget if it's being deleted. Could happen in race conditions for example, if you click to edit the name widget of a pose while the pose is being deleted soon after.
|
#
741e5246 |
|
09-Aug-2012 |
Philippe Saint-Pierre <stpere@gmail.com> |
Tracker: Double-click management changes Make the "second click of a double-click" detection waiting time async. In other words (hopefully clearer), when the TextWidget gets a click, it register itself, recording the time, and it will get the editing order later as a callback from PoseView when the delay without any further click expires. Fixes #8818 and maybe others.
|
#
e0e641c0 |
|
09-Aug-2012 |
Philippe Saint-Pierre <stpere@gmail.com> |
Tracker: Style fixes, should have no functional change
|
#
0bc1be32 |
|
08-Aug-2012 |
Philippe Saint-Pierre <stpere@gmail.com> |
PoseView: Fix crash in FilePanel Again, a regression fix. Under some circumstance, fFiltering was wrongly set. Also, the node wasn't open before checking the BRefFilter and some filters expected that to be.
|
#
c2535dc4 |
|
07-Aug-2012 |
Philippe Saint-Pierre <stpere@gmail.com> |
Tracker: various issues regarding filtering 1. A BRefFilter-ed PoseView wouldn't keep monitoring files after its opening thus not picking up files that happen to fit the filter thereafter (mime attr updated, etc..) 2. A filtered PoseView wouldn't get updated when: a) a column was added or removed b) a file was renamed c) a file was moved 3. Harmonize the way BRefFiltering and Type-ahead filtering are working. Both can be used together. 4. The handler for AttributeChanged() wasn't working properly if link(s) of a changed model was/were its siblings. 5. Broken links weren't detected/updated (it nows monitor the lost target parent directory, and wait for the target creation to show the link fixed) This is a big change (even more considering the 'critical-ness' of the component) Testing is MUCH welcome! Should fix #4254, #5381, #1717 (and maybe others)
|
#
adf8818e |
|
05-Aug-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Compilation fixes for Terminal, add to image. It runs, but has shown up various bugs: app_server crashes, kernel panics, rendering problems. Working on fixing these now.
|
#
ea001e58 |
|
28-Jul-2012 |
John Scipione <jscipione@gmail.com> |
Round 2 of style changes to Tracker * focused on 80-char limit fixes. * also some whitespace and case statement indentation fixes
|
#
b05aa8b5 |
|
27-Jul-2012 |
John Scipione <jscipione@gmail.com> |
Style changes in Tracker, no functional change. Manual whitespace cleanup Change instances of const char * to const char* Convert /* */ C style comments to // C++ style comments
|
#
674ff0df |
|
22-Jul-2012 |
Philippe Saint-Pierre <stpere@gmail.com> |
Tracker: Various sorting issues in Tracker When sorting files by Modified dates, right clicking on a file was leading to a sorting issue where files were changing positions (without reason). 1. Any changes to stats (size, modification, creation, mode) was triggering the sorting. Now only stats fields currently used as a Sort criteria will trigger such event. 2. The Mimeset of file was set (in case of unknown file format) once per checked add-on when building AddOn Menu. Now it's checked once per file in selection. (so, once per file, rather then once per file, per add-on). 3. Now rely on registrar to force the mimeset (to trigger the sniffer in case the attribute already exist) rather than trying to duplicate the feature in Tracker. 4. When Sorting, if there is a old position known, check if it's working by looking if you should come after the previous item, and before the following item. Previously, the item would be pushed at the top if the group of item all fitting the criteria (same file size, same file kind, etc.. depending on the sorting criteria). Fixes #8478.
|
#
3da13b80 |
|
07-Apr-2012 |
Rene Gollent <anevilyak@gmail.com> |
Fix typeahead cancellation in file panels. - Add accessor to PoseView that reports whether the view is currently typeahead filtering. - Use said accessor in the file panel's filter in order to detect whether to tell the latter to cancel filtering vs closing the panel. Fixes #8140.
|
#
def39abd |
|
17-Jul-2011 |
Alexandre Deckner <alex@zappotek.com> |
* Finally finish implementing proper selection rect autoscroll to work with the new asynchronous mouse tracking. Sorry for the delay. Up to now it was needing mouse moves to autoscroll, it now behaves as before. * Removed check that was disabling regular drag'n'drop auto-scrolling when inactive. I don't see an obvious reason why that was done, as it's just handy and is consistent with the other behaviors when inactive. Note, i gotta love those comments that do anything but help, good example of how not to comment :) i.e don't comment about what will happen when the adjacent code won't be executed (especially in a case that can't happen). My brain almost exploded a second time trying to explain that! // selection scrolling will also work if the window is inactive Should read: // disable drag'n'drop auto scrolling when window is inactive git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42447 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6009abf2 |
|
05-Jun-2011 |
Alexandre Deckner <alex@zappotek.com> |
* One more fix needed for right click dragging. Ignore right mouse up if a drag or long click happened between the initial mouse down and the present mouse up. Tried to avoid this solution by other means but wasn't working in a corner case, at least it's clear what's the code is doing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41934 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
596bb689 |
|
03-Jun-2011 |
Alexandre Deckner <alex@zappotek.com> |
* Finally rewrote the filthy, busy-looping, mouse tracking in Tracker. The new asynchronous tracking doesn't lock the view and makes desktop replicants happy while clicking and dragging around. Fixes #880, #7241 and certainly other tickets, that i will revisit, about refresh locks on the desktop or mouse related bugs. Based on a reusable MessageFilter and the recent B_MOUSE_IDLE message. Some parts are ported from the old code and could use further simplification. There should be no intentional user fonctional change, except: - slightly bigger threshold radius, shorter duration thresholds (= 1.0 x the system-wide doubleclick setting) - not reimplemented: quickening threshold when holding shift while dragging a pose over a destination pose. Some parts are ported from the old code and could use further simplification. There is one known minor regression with autoscrolling while rect-selecting but that will be better fixed with some changes to the autoscroll code. Will address that ASAP. As for the unknown regressions, please test :) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41892 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
01e63caf |
|
21-Apr-2010 |
Rene Gollent <anevilyak@gmail.com> |
When creating a new pose, the index offset at which it was inserted in list mode was never passed back. Consequently, when creating a new folder via the cmd+N shortcut (which immediately goes into edit mode), the TextWidget for editing would appear at the wrong location. Fixes ticket #5774. +alphabranch git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36408 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
029f4e93 |
|
02-Feb-2010 |
Michael Lotz <mmlr@mlotz.ch> |
* Add an inline CurrentPoseList() that returns either the filtered or normal pose list and replaced the rather ugly "fFiltering ? ..." everywhere with it. * Automatic whitespace cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35389 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7acdd03f |
|
31-Jan-2010 |
Michael Lotz <mmlr@mlotz.ch> |
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
|
#
ef9c0b6a |
|
31-Jan-2010 |
Rene Gollent <anevilyak@gmail.com> |
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
|
#
ac53da69 |
|
30-Jan-2010 |
Michael Lotz <mmlr@mlotz.ch> |
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
|
#
beb2e054 |
|
30-Jan-2010 |
Michael Lotz <mmlr@mlotz.ch> |
* 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
|
#
545ebde0 |
|
30-Jan-2010 |
Michael Lotz <mmlr@mlotz.ch> |
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
|
#
01dffd8e |
|
14-Jan-2010 |
Rene Gollent <anevilyak@gmail.com> |
More Tracker refactoring: * relocated Trash dirs to volume roots by modifying find_directory() to report the trash location as volume/Trash. * FSUtils no longer creates /home/Desktop on every volume. * TrashWatcher now keeps icons in sync on all volumes. * Simplified FSGetDeskDir since it no longer has to worry about getting the desk directory on any volume other than the root. * Relocated trash context menu logic to BContainerWindow so it can also be used at the volume roots. * DesktopPoseView now creates a virtual Trash pose representing the trash contents as before. * Corrected typo: Model::WriteAttrKillForegin() -> Model::WriteAttrKillForeign(). Closes ticket #5245. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35085 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
671dd808 |
|
12-Jan-2010 |
Rene Gollent <anevilyak@gmail.com> |
Various cleanups: * Removed dead/obsolete Integrate Non-boot Desktops code. * Modified PoseView to ignore the fInvisible attribute of BPoseInfo for now. This has the net effect that the Desktop folder and /boot/var are no longer hidden from the user. To go with this change, Tracker no longer forcibly writes that hidden setting to those folders on access. This feature might be useful again in the future (especially in conjunction with relocating the Trash folder somewhere such as the disk root), but is currently somewhat problematic because those dual-booting with BeOS will still have a Tracker that force writes those attributes which would bring us back to square one with respect to showing the Desktop folder when we start respecting the attribute again. Suggestions welcome. Haiku-only users can remove the _trk/pinfo_le attribute on those folders to remove the invisibility in any case. * TrackerSettings: Removed obsolete desktop integration settings. Also modified TrackerSettings parser to skip unrecognized settings instead of aborting the settings file parsing process entirely. Closes ticket #2872. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35040 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6a71afb0 |
|
08-Apr-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Sorry for mixing some cleanups into this patch... * When changing icon sizes, invalidate before scrolling. This causes silent scrolling in app_server and avoids a visual jerk. Everything needs to be re-drawn at the new icon size anyways. * Removed the fUpdateRegion member from BPoseView. It was supposed to make drawing quicker, but it only made it slower. Checking for intersection with the update rect passed to Draw() should be much more straight forward and does not involve app_server communication... * Refactored some misnamed methods, ScrollIntoView() would always draw and only sometimes scroll - I couldn't agree with that. * There is a very confusing mix of "fullDraw" and "minimalRect" booleans which seem to be used with wrong semantics. The minimalRect flag passed to BPose:: CalcRect() means to get the pose rect for the icon and the first column only, not all columns. Contrary to that, some pose rect calculation happens with minimalRect == fullDraw... I tried to fix some of that. * The visible changes of this patch are when adding poses. The SynchronousUpate() wasn't working so well, I made it work reliably by invoking Invalidate() and Window()->UpdateIfNeeded(), which also takes care of any drawing that the app_server has to do for the background. And it's flicker free in double buffered mode... -> This fixes poses being drawn multiple times and the text getting darker. * And there was another bug when adding poses. The extent (bottom of last item in list view for example) can be just above the current view bounds. When the next item is added above the view bounds, then the extent scrolls into view, but there is nothing to be scrolled in this case. srcRect is still invalid and so is dstRect. But destRect should be valid in this case. -> This fixes some poses being cut off at the bottom when opening Tracker windows. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30033 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
96da4b41 |
|
07-Apr-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Fix the completely broken desktop icon size changing which I introduced yesterday. It needs to auto-place icons which go out of view or underneath the deskbar or a replicant. Also it obviously cannot scroll to keep the view "centered" as normal Tracker windows. * Fix/improve the desktop context menu with regards to icon size options. It also displays the shortcuts, which now work on the desktop too. * When doing an icon cleanup on the desktop, not only the deskbar is avoided, but also replicant views. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30009 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e70b6d95 |
|
06-Apr-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Cleanup in the icon mode stuff. kScaleIconMode is gone. There is simply kIconMode and it can have different sizes. * The "Icon Mode" super menu item is marked, when in icon mode, as well as the size item in it's sub menu. * When switching from mini icon mode or list mode back into icon mode, the previous icon size is now restored. This also works when the folder has been closed meanwhile. (The on-disk format for view state has changed, so your folders will open with default values.) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29971 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0834dd80 |
|
28-Mar-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* 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
|
#
cafee0b7 |
|
23-Mar-2009 |
Stephan Aßmus <superstippi@gmx.de> |
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
|
#
1c56dee2 |
|
08-Mar-2009 |
Rene Gollent <anevilyak@gmail.com> |
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
|
#
59160ac7 |
|
06-Mar-2009 |
Rene Gollent <anevilyak@gmail.com> |
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
|
#
38f46251 |
|
06-Mar-2009 |
Rene Gollent <anevilyak@gmail.com> |
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
|
#
42fe9293 |
|
07-Feb-2009 |
Rene Gollent <anevilyak@gmail.com> |
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
|
#
dc027966 |
|
31-Jan-2009 |
Rene Gollent <anevilyak@gmail.com> |
Unbreak build. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29099 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
12f46beb |
|
29-Jan-2009 |
Rene Gollent <anevilyak@gmail.com> |
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
|
#
d35d0f74 |
|
28-Nov-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* s/fLastKeyTime is no longer a static member - this fixes that the type-ahead buffer will be taken over to another window (if you type fast enough). * Also the type-ahead runner no longer clobbers the static type-ahead buffer, so it won't delete something you typed in another window anymore (again, if you type fast enough :-)). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28745 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b545073f |
|
06-Nov-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* Moved the global BPrivate::WidthBuffer from BTextView into BPrivate as gWidthBuffer. * Tracker PoseView now uses BPrivate::gWidthBuffer instead of it's own instance. * TextView.h and PoseView.h are now a little cleaner. * InterfaceDefs.cpp now deletes gWidthBuffer in _fini_interface_kit_(). * Added binary compatibility support for NetPositive in WidthBuffer.h and .cpp. Obviously it kind of defeats the purpose of having WidthBuffer neatly tucked away in the BPrivate namespace, but Haiku should run NetPositive, I guess. Fixes #2879. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28532 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e9842421 |
|
31-Oct-2008 |
Alexandre Deckner <alex@zappotek.com> |
* On date format change, remove the need for the synchronous call to DrawViewCommon(), simply invalidate since the logic is simplified now, see below. * Reworked the way TimeAttributeText was updated when date format is changed. Got rid of the recalculatText flag propagation, it was broken since forever anyway (was here on r5 max4.1): It was only updating visible poses and wasn't robust in certain cases. Besides, it was cluttering the code on several layers upfront only for date format changes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28402 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3d7584da |
|
16-Oct-2008 |
Alexandre Deckner <alex@zappotek.com> |
* Rewrote the way BViewState checks if changes needs to be saved on quiting a navigation window (icon mode and list mode) or switching dir in single window navigation. Fixes the other half of the problem in #2441. Left some todos. I discovered an other bug that can add a random offset after finishing adding poses. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28205 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
90b7764d |
|
21-Sep-2008 |
Rene Gollent <anevilyak@gmail.com> |
Move WidthBuffer and TextGapBuffer into BPrivate and use them from there in BPoseView and BTextView. This (correctly) fixes the previous gcc4 build issues. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27675 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a682d981 |
|
20-Sep-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Quite a cleanup action to avoid polluting the global namespace with private BTextView classes: * Declared the directly used BTextView helper classes as private BTextView classes and changed all affected files. * Realized that Tracker's BPoseView was (accidentally?) using what used to be _BWidthBuffer_. It had declared it's own class with the same name and same members/size in headers/private/tracker/TextViewSupport.h, but the implementation was nowhere to be found. I can only explain this that the BTextView implementation was then actually linked and used. But the big problem was that it was used without locking (unlike in BTextView)! When many Tracker windows opened during system startup or later and they happened to each request characters not yet in the cache, I imagine things could have gone bad and corrupted memory. Anyways, since I can see the usefulness of the cache, BPoseView uses BTextView::WidthBuffer on purpose now. And I moved the locking inside BTextView::WidthBuffer::StringWidth(). * Adjusted InterfaceDefs.cpp accordingly. * TODO: Move subsequent classes into BTextView namespace as well, ie derived classes that BTextView doesn't directly know about. All stuff in src/kits/ inteface/textview_support/ * Added preliminary and not yet implemented layout friendly BTextView constructors. * I will try to handle the insets imposed by BTextView::fTextRect a bit differently when used inside the new layout management framework. For this, I added BTextView::SetInsets() and GetInsets(). SetInsets() doesn't do anything yet. So far, everything seems to work still... ;-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27654 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8a588970 |
|
25-Jun-2008 |
Alexandre Deckner <alex@zappotek.com> |
- HiliteDropTarget was broken, it used a trick to avoid unselecting already selected items but assumed every call to HiliteDropTarget(true) and HiliteDropTarget(false) would come in pair on the same target. Fixes #2453 and #1793 git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26131 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7b95b37c |
|
05-Feb-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Make the Desktop window check the Deskbar frame only every half a second, use a cached value otherwise. Should speed up icon placement when Tracker starts. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23871 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5c34aef7 |
|
22-Aug-2007 |
Stephan Aßmus <superstippi@gmx.de> |
changed the meaning of the "icon view label background" Tracker setting: * it is replaced by a "icon view label outline" feature that renders a black or white outline around the text of a label under an icon. This can be used for background images that have a lot of contrast and is visually more pleasing (IMHO) than the text box in the workspace color (but the outline could of course still be improved as well) the outline or "false bold width" feature is a new BFont feature in Haiku * Tracker appeared to have a disabled feature to install default background images, I enabled this feature and rewrote it a bit to use our big logo from the artwork folder, the placement is for 800x600, so not optimal for larger desktops, but at least it is shown by default on new installations or rather "fresh" images * changed the way the dotted underline is rendered under links, accidentally, this fixes the bug that it was not dotted at all since a while, which is a bug in app_server or BView not tracking the need to update the drawing pattern in certain situations (this bug needs to be fixed too of course) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22040 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
eeb608e1 |
|
26-Jun-2007 |
Axel Dörfler <axeld@pinc-software.de> |
* StringFromStream() did not work correctly for empty strings (messed up the stream position). * StringFromStream() called BString::LockBuffer() with "length", but touched "length + 1" bytes. * Prepared for the new "display as" FileTypes feature. * The "DefaultQueryTemplate" folder now adds the MIME type of the folder to the attribute menu for simplified editing (before, you had to move a file with a matching file type into that folder to be able to add the attributes you likely wanted to see). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21509 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
687e327b |
|
19-Jun-2007 |
Michael Lotz <mmlr@mlotz.ch> |
Reworked the handling of periodically updated poses (currently only ones with a volume space bar): * Addad global list where poses that need periodic updates can be registered with a callback * Use this mechanism for poses with a volume space bar * Create only one BVolume when the BPose is created for a volume, instead of every time the free space is calculated * On Pulse() the global list is used to update all of the registered periodic update poses * As the poses know their volume, it is no longer necessary to use a BVolumeRoster to loop through each volume on each Pulse() * Removed the now superfluous SendNotices() mechanism * Removed corresponding watching / handling of these notices in BPoseView The BPoseView did a linear search for each volume pose on each Pulse() before. What's more it did this once for each mounted volume as it did get one individual notice for each of them. To get these volumes a BVolumeRoster was used to loop through the volumes, but then the BPose did still create a new BVolume to actually calculate the free space! I'm surprised that it did not suck away more performance with this method... Anyway, this should bring down BVolume construction and update overhead down to a minimum and hopefully fix ticket #1247. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21462 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
77974ff1 |
|
06-Jun-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
some forgotten fVariable -> sVariable renaming git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21338 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7fb6186f |
|
29-Aug-2006 |
Stephan Aßmus <superstippi@gmx.de> |
* integration of vector icons with the registrar and the mime data base * additional versions of SetIcon[ForType] and GetIcon[ForType] in BMimeType and BAppFileInfo, which handle flat vector icon data * changes in Tracker to support scalable icons (currently broken for non-vector icons and needs cleanup) and drawing icons correctly with alpha channel (large parts of this work done by Michael Lotz) If someone feels like looking over the changes, that would be much appreciated! :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18699 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4a71b881 |
|
14-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Final GCC 4 fixes by Ingo Weinhold (were not visible before, due to a missing -no-undefined). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14918 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6d01b66d |
|
13-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
GCC 4 fixes by Ingo Weinhold. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14893 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
02be5353 |
|
22-May-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Added libtracker.so to the repository and the build. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12772 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b46999bc02ebb329d564730ef40e260b22704831 |
|
21-Jul-2015 |
Axel Dörfler <axeld@pinc-software.de> |
Tracker: page down/up now selects poses. * When pressing shift it will also extend the selection to the bottom or the top of the page. * It does not deselect anything yet, but Tracker's selection logic is pretty questionable, anyway, and it's way too complicated to implement this nicely as of now.
|
#
2bd0b27f5d9720741ba72afa21de0470b7521d13 |
|
08-Apr-2015 |
Michael Lotz <mmlr@mlotz.ch> |
Tracker: Fix use-after-free by ref filter of OpenWithPoseView. Commit ea8b1e14 changed OpenWithPoseView from using ShouldShowPose for filtering poses to a BRefFilter. The introduced ref filter used the iterator handed to the BPoseView::AddPosesTask which took ownership of that iterator and deleted it as soon as it was done. Since actually adding the poses as well as further filtering is asynchronous and happens after the AddPosesTask completes, the iterator was used after it was already deleted. Introduce BPoseView::ReturnDirentIterator() that is called after the AddPosesTask is complete. The default version deletes the iterator, the OpenWithPoseView overrides it and does nothing, it deletes the iterator in the destructor instead. Also fix leaking the ref filter. The BPoseView does not take ownership of the filter as it usually comes from a BFilePanel which is documented to not take ownership.
|
#
8c2813c1871f922248d187c377ccd4a3176b6432 |
|
25-Feb-2015 |
John Scipione <jscipione@gmail.com> |
Tracker: Style fixes
|
#
e7803cf1f69a81b1c77880518ba16b6708c1efdb |
|
26-Jan-2015 |
Augustin Cavalier <waddlesplash@gmail.com> |
Tracker: use the Layout API wherever possible. Sorry this commit is so big, but I couldn't figure out how to do this incrementally without breaking things. I wasn't able to just merge Aldeck's branch, as it was a partial refactor of Tracker and didn't just rewrite the UI creation code to use layouts, and the changes for PM (e.g. addon loading, virtual directories) made it very hard to merge (it doesn't even compile after an automerge) so rather than spending time on that, I decided it'd be better to recreate his work. Miscellaneous notes: - This partially cleans up BPoseView & subclasses and BContainerWindow & subclasses -- none of the subclasses and child views abuse the parent's state, child views, or layout now. - BFilePanel and BDeskWindow are not on layouts, because: * BFilePanel docs in the Be Book instructed developers that wanted to modify BFilePanel's layout to just use FindView() and then move the views around. Obviously making it use layouts will break all BeOS apps that do this, and there are a lot of them (Pe, WonderBrush are just two examples.) I've added a note to the TODO list for R2 to create a layout-compatible API for this. * Some replicants (Workspaces, for example) rely on manipulating BDeskWindow's drawing state. This is incompatible with layouts, as at least in the case of Workspaces, it breaks a layouted version of BDeskWindow entirely. - I noticed a lot of #ifdef BEOS_VERSION ... gunk in the code. Tracker probably didn't build on BeOS just before this commit, and now it won't for sure, so I intend to go through and clean that out in the near future. This commit also fixes: - enhancement #4996 (make Tracker's navigator use vector icons) - bug #3039 (resizing OpenWithWindow flashes the blue border) - bug #3889 (OpenWithWindow redraw errors) - a regression that was a side effect of "dynamic_cast<BDeskWindow*>(this)" always returning NULL when run in the constructor. I just added a "bool isDeskWindow" to BContainerWindow's constructor that is only set to true by BDeskWindow. - a copy&paste error in VirtualDirectoryPoseView that was passing "uint32 resizeMode" as "uint32 viewMode". Thanks to Alexandre for his original branch (it was a very useful reference), Axel (for some miscellaneous advice & encouragement), Adrien & Humdinger (for user interface review), and Diver (for user interface review & testing).
|
#
54e2dd7272db551cab02cc678bd45bc4131dd867 |
|
28-Jul-2014 |
John Scipione <jscipione@gmail.com> |
Tracker: style fixes No functional changes intended.
|
#
38181640e9258b4c7b5cad885710b9f6f8730413 |
|
20-Jun-2014 |
John Scipione <jscipione@gmail.com> |
Tracker: style fixes to PoseView class
|
#
fcb24e82c4ca0d0fd25eba964e0aba015abdb15f |
|
31-Jan-2014 |
John Scipione <jscipione@gmail.com> |
Tracker: Only open items if doubleclick w/ primary MB Also rename fLastClickPt to fLastClickPoint
|
#
9d33fe6896cb72c8f09e5d871077d8aa98118118 |
|
31-Jan-2014 |
John Scipione <jscipione@gmail.com> |
Tracker: Style fixes to BPoseView
|
#
80c9ee9c3f7dc0e34ba8995bce9c16825a89e8b7 |
|
24-Dec-2013 |
Freeman Lou <freemanlou2430@Yahoo.com> |
Tracker: exclude trash from selection. Signed-off-by: Rene Gollent <rene@gollent.com>
|
#
205cf6950c4e615f502501f6667267edf8b482db |
|
24-Dec-2012 |
Philippe Saint-Pierre <stpere@gmail.com> |
Tracker: Force Identify - don't require holding shift (#4857) Don't require to hold shift when clicking on force identify, can now be released after popup menu have appeared.
|
#
ed63a5d20c7c4be88812d683bb3d563905297003 |
|
18-Aug-2012 |
Philippe Saint-Pierre <stpere@gmail.com> |
Tracker: Double-Click simplification Double-click check was redoing what is essentially already done in input_server. The way we were doing it, right clicking (or pressing a different button for the second click, for that matter) wasn't clearing the fields remembered and thus not breaking the sequence. So a third click returning to the correct sequence (in a short time) would get recognized as a valid second click. So a quick left-right-left would be seen by that method as left-left. Also, clean up a previous fix I committed. Removed the introduced Origin() method as it is the LeftTop() method I was interested in and it is already existing. Fix #8714
|
#
c38375376d0190b7aec2c25ed691123395d0fcb6 |
|
14-Aug-2012 |
Philippe Saint-Pierre <stpere@gmail.com> |
Tracker: TextWidget editing flaws TextWidget tried to detect if the editing box would span outside the PoseView, but it was using an hardcoded value of 1 for the minimum left value. But in Icon mode, negative values can occur. Change to use the view's origin (top left corner of the view).
|
#
66c09a35546f869af3fef1968a3c423d04cc7495 |
|
09-Aug-2012 |
Philippe Saint-Pierre <stpere@gmail.com> |
Delayed widget editing, crash avoidance Make the PoseView stop watching a TextWidget if it's being deleted. Could happen in race conditions for example, if you click to edit the name widget of a pose while the pose is being deleted soon after.
|
#
741e52463a4e1df441230669a38f1bb8832f9674 |
|
09-Aug-2012 |
Philippe Saint-Pierre <stpere@gmail.com> |
Tracker: Double-click management changes Make the "second click of a double-click" detection waiting time async. In other words (hopefully clearer), when the TextWidget gets a click, it register itself, recording the time, and it will get the editing order later as a callback from PoseView when the delay without any further click expires. Fixes #8818 and maybe others.
|
#
e0e641c07817564664d01a01db95ce2af5f4c63d |
|
09-Aug-2012 |
Philippe Saint-Pierre <stpere@gmail.com> |
Tracker: Style fixes, should have no functional change
|
#
0bc1be3252ac6e87e2b046fb06f8d36425c23b51 |
|
08-Aug-2012 |
Philippe Saint-Pierre <stpere@gmail.com> |
PoseView: Fix crash in FilePanel Again, a regression fix. Under some circumstance, fFiltering was wrongly set. Also, the node wasn't open before checking the BRefFilter and some filters expected that to be.
|
#
c2535dc48a28016ead05c4ebf522f018dc770429 |
|
07-Aug-2012 |
Philippe Saint-Pierre <stpere@gmail.com> |
Tracker: various issues regarding filtering 1. A BRefFilter-ed PoseView wouldn't keep monitoring files after its opening thus not picking up files that happen to fit the filter thereafter (mime attr updated, etc..) 2. A filtered PoseView wouldn't get updated when: a) a column was added or removed b) a file was renamed c) a file was moved 3. Harmonize the way BRefFiltering and Type-ahead filtering are working. Both can be used together. 4. The handler for AttributeChanged() wasn't working properly if link(s) of a changed model was/were its siblings. 5. Broken links weren't detected/updated (it nows monitor the lost target parent directory, and wait for the target creation to show the link fixed) This is a big change (even more considering the 'critical-ness' of the component) Testing is MUCH welcome! Should fix #4254, #5381, #1717 (and maybe others)
|
#
adf8818ec004e8a20614523f3e893303ea318642 |
|
05-Aug-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Compilation fixes for Terminal, add to image. It runs, but has shown up various bugs: app_server crashes, kernel panics, rendering problems. Working on fixing these now.
|
#
ea001e585a588e40404945a1201821da893d2e09 |
|
28-Jul-2012 |
John Scipione <jscipione@gmail.com> |
Round 2 of style changes to Tracker * focused on 80-char limit fixes. * also some whitespace and case statement indentation fixes
|
#
b05aa8b5b16e5b4f420a35c37805c6387df98737 |
|
27-Jul-2012 |
John Scipione <jscipione@gmail.com> |
Style changes in Tracker, no functional change. Manual whitespace cleanup Change instances of const char * to const char* Convert /* */ C style comments to // C++ style comments
|
#
674ff0df2f2eb00cbc78b4384fcf5b148a2139ff |
|
22-Jul-2012 |
Philippe Saint-Pierre <stpere@gmail.com> |
Tracker: Various sorting issues in Tracker When sorting files by Modified dates, right clicking on a file was leading to a sorting issue where files were changing positions (without reason). 1. Any changes to stats (size, modification, creation, mode) was triggering the sorting. Now only stats fields currently used as a Sort criteria will trigger such event. 2. The Mimeset of file was set (in case of unknown file format) once per checked add-on when building AddOn Menu. Now it's checked once per file in selection. (so, once per file, rather then once per file, per add-on). 3. Now rely on registrar to force the mimeset (to trigger the sniffer in case the attribute already exist) rather than trying to duplicate the feature in Tracker. 4. When Sorting, if there is a old position known, check if it's working by looking if you should come after the previous item, and before the following item. Previously, the item would be pushed at the top if the group of item all fitting the criteria (same file size, same file kind, etc.. depending on the sorting criteria). Fixes #8478.
|
#
3da13b803853a36868b667a0377237fef9e48e02 |
|
07-Apr-2012 |
Rene Gollent <anevilyak@gmail.com> |
Fix typeahead cancellation in file panels. - Add accessor to PoseView that reports whether the view is currently typeahead filtering. - Use said accessor in the file panel's filter in order to detect whether to tell the latter to cancel filtering vs closing the panel. Fixes #8140.
|
#
def39abd747d7e9f5e3866fc47d4c211cc21db83 |
|
17-Jul-2011 |
Alexandre Deckner <alex@zappotek.com> |
* Finally finish implementing proper selection rect autoscroll to work with the new asynchronous mouse tracking. Sorry for the delay. Up to now it was needing mouse moves to autoscroll, it now behaves as before. * Removed check that was disabling regular drag'n'drop auto-scrolling when inactive. I don't see an obvious reason why that was done, as it's just handy and is consistent with the other behaviors when inactive. Note, i gotta love those comments that do anything but help, good example of how not to comment :) i.e don't comment about what will happen when the adjacent code won't be executed (especially in a case that can't happen). My brain almost exploded a second time trying to explain that! // selection scrolling will also work if the window is inactive Should read: // disable drag'n'drop auto scrolling when window is inactive git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42447 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6009abf2bd94f12ff244e81cf0da48a02b0cf384 |
|
05-Jun-2011 |
Alexandre Deckner <alex@zappotek.com> |
* One more fix needed for right click dragging. Ignore right mouse up if a drag or long click happened between the initial mouse down and the present mouse up. Tried to avoid this solution by other means but wasn't working in a corner case, at least it's clear what's the code is doing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41934 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
596bb6891a80782c057a54f77c72060671761248 |
|
03-Jun-2011 |
Alexandre Deckner <alex@zappotek.com> |
* Finally rewrote the filthy, busy-looping, mouse tracking in Tracker. The new asynchronous tracking doesn't lock the view and makes desktop replicants happy while clicking and dragging around. Fixes #880, #7241 and certainly other tickets, that i will revisit, about refresh locks on the desktop or mouse related bugs. Based on a reusable MessageFilter and the recent B_MOUSE_IDLE message. Some parts are ported from the old code and could use further simplification. There should be no intentional user fonctional change, except: - slightly bigger threshold radius, shorter duration thresholds (= 1.0 x the system-wide doubleclick setting) - not reimplemented: quickening threshold when holding shift while dragging a pose over a destination pose. Some parts are ported from the old code and could use further simplification. There is one known minor regression with autoscrolling while rect-selecting but that will be better fixed with some changes to the autoscroll code. Will address that ASAP. As for the unknown regressions, please test :) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41892 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
01e63caf83e2762c076de5745c18ba667ff4a9bd |
|
21-Apr-2010 |
Rene Gollent <anevilyak@gmail.com> |
When creating a new pose, the index offset at which it was inserted in list mode was never passed back. Consequently, when creating a new folder via the cmd+N shortcut (which immediately goes into edit mode), the TextWidget for editing would appear at the wrong location. Fixes ticket #5774. +alphabranch git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36408 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
029f4e93174b64f4342decc9a8e2094323438fa9 |
|
02-Feb-2010 |
Michael Lotz <mmlr@mlotz.ch> |
* Add an inline CurrentPoseList() that returns either the filtered or normal pose list and replaced the rather ugly "fFiltering ? ..." everywhere with it. * Automatic whitespace cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35389 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7acdd03f5e076538220932aa6df4e929bd15ff7c |
|
31-Jan-2010 |
Michael Lotz <mmlr@mlotz.ch> |
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
|
#
ef9c0b6a518a4b57ca9b02a6c59a0a984157aeff |
|
31-Jan-2010 |
Rene Gollent <anevilyak@gmail.com> |
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
|
#
ac53da69c7e6d7a13aaf094e6722c77d13df1272 |
|
30-Jan-2010 |
Michael Lotz <mmlr@mlotz.ch> |
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
|
#
beb2e054210070370fa1070ee98719bad1344664 |
|
30-Jan-2010 |
Michael Lotz <mmlr@mlotz.ch> |
* 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
|
#
545ebde00c3d50510a5236de1c5eef25ac21d757 |
|
30-Jan-2010 |
Michael Lotz <mmlr@mlotz.ch> |
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
|
#
01dffd8edd94699ac1e6f2cc4322555f2171da14 |
|
14-Jan-2010 |
Rene Gollent <anevilyak@gmail.com> |
More Tracker refactoring: * relocated Trash dirs to volume roots by modifying find_directory() to report the trash location as volume/Trash. * FSUtils no longer creates /home/Desktop on every volume. * TrashWatcher now keeps icons in sync on all volumes. * Simplified FSGetDeskDir since it no longer has to worry about getting the desk directory on any volume other than the root. * Relocated trash context menu logic to BContainerWindow so it can also be used at the volume roots. * DesktopPoseView now creates a virtual Trash pose representing the trash contents as before. * Corrected typo: Model::WriteAttrKillForegin() -> Model::WriteAttrKillForeign(). Closes ticket #5245. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35085 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
671dd808619ef6043eca11b09a193d877181d10f |
|
12-Jan-2010 |
Rene Gollent <anevilyak@gmail.com> |
Various cleanups: * Removed dead/obsolete Integrate Non-boot Desktops code. * Modified PoseView to ignore the fInvisible attribute of BPoseInfo for now. This has the net effect that the Desktop folder and /boot/var are no longer hidden from the user. To go with this change, Tracker no longer forcibly writes that hidden setting to those folders on access. This feature might be useful again in the future (especially in conjunction with relocating the Trash folder somewhere such as the disk root), but is currently somewhat problematic because those dual-booting with BeOS will still have a Tracker that force writes those attributes which would bring us back to square one with respect to showing the Desktop folder when we start respecting the attribute again. Suggestions welcome. Haiku-only users can remove the _trk/pinfo_le attribute on those folders to remove the invisibility in any case. * TrackerSettings: Removed obsolete desktop integration settings. Also modified TrackerSettings parser to skip unrecognized settings instead of aborting the settings file parsing process entirely. Closes ticket #2872. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35040 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6a71afb0d1c29bfa1fcc45e0d6aa191e2f09e028 |
|
08-Apr-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Sorry for mixing some cleanups into this patch... * When changing icon sizes, invalidate before scrolling. This causes silent scrolling in app_server and avoids a visual jerk. Everything needs to be re-drawn at the new icon size anyways. * Removed the fUpdateRegion member from BPoseView. It was supposed to make drawing quicker, but it only made it slower. Checking for intersection with the update rect passed to Draw() should be much more straight forward and does not involve app_server communication... * Refactored some misnamed methods, ScrollIntoView() would always draw and only sometimes scroll - I couldn't agree with that. * There is a very confusing mix of "fullDraw" and "minimalRect" booleans which seem to be used with wrong semantics. The minimalRect flag passed to BPose:: CalcRect() means to get the pose rect for the icon and the first column only, not all columns. Contrary to that, some pose rect calculation happens with minimalRect == fullDraw... I tried to fix some of that. * The visible changes of this patch are when adding poses. The SynchronousUpate() wasn't working so well, I made it work reliably by invoking Invalidate() and Window()->UpdateIfNeeded(), which also takes care of any drawing that the app_server has to do for the background. And it's flicker free in double buffered mode... -> This fixes poses being drawn multiple times and the text getting darker. * And there was another bug when adding poses. The extent (bottom of last item in list view for example) can be just above the current view bounds. When the next item is added above the view bounds, then the extent scrolls into view, but there is nothing to be scrolled in this case. srcRect is still invalid and so is dstRect. But destRect should be valid in this case. -> This fixes some poses being cut off at the bottom when opening Tracker windows. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30033 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
96da4b41b0baadab6c3f9b2fcdfe6573df564d4c |
|
07-Apr-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Fix the completely broken desktop icon size changing which I introduced yesterday. It needs to auto-place icons which go out of view or underneath the deskbar or a replicant. Also it obviously cannot scroll to keep the view "centered" as normal Tracker windows. * Fix/improve the desktop context menu with regards to icon size options. It also displays the shortcuts, which now work on the desktop too. * When doing an icon cleanup on the desktop, not only the deskbar is avoided, but also replicant views. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30009 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e70b6d957a03fbd24b6c47ad2668d23c11806912 |
|
06-Apr-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Cleanup in the icon mode stuff. kScaleIconMode is gone. There is simply kIconMode and it can have different sizes. * The "Icon Mode" super menu item is marked, when in icon mode, as well as the size item in it's sub menu. * When switching from mini icon mode or list mode back into icon mode, the previous icon size is now restored. This also works when the folder has been closed meanwhile. (The on-disk format for view state has changed, so your folders will open with default values.) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29971 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0834dd807f88b3228ea6eb54745a5f9a194f507c |
|
28-Mar-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* 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
|
#
cafee0b7f50e601f89a7c81a64e53908b99ce8e0 |
|
23-Mar-2009 |
Stephan Aßmus <superstippi@gmx.de> |
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
|
#
1c56dee2c4a467e3f57d080e8282fe92b68af8d7 |
|
08-Mar-2009 |
Rene Gollent <anevilyak@gmail.com> |
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
|
#
59160ac74037d1d689e22ca374b430dd4e2cdd88 |
|
06-Mar-2009 |
Rene Gollent <anevilyak@gmail.com> |
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
|
#
38f4625170de89b624b903d273f73a658506fc82 |
|
06-Mar-2009 |
Rene Gollent <anevilyak@gmail.com> |
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
|
#
42fe9293f8186edcf6bc688c2b779fbff2850189 |
|
07-Feb-2009 |
Rene Gollent <anevilyak@gmail.com> |
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
|
#
dc027966d7500e43f59fd78cfc6391c1c6f20db9 |
|
31-Jan-2009 |
Rene Gollent <anevilyak@gmail.com> |
Unbreak build. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29099 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
12f46bebca279adbb8b376e51f3b77b4545612b4 |
|
29-Jan-2009 |
Rene Gollent <anevilyak@gmail.com> |
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
|
#
d35d0f74a62f9a3121d3e77eacb9c3276f02076d |
|
28-Nov-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* s/fLastKeyTime is no longer a static member - this fixes that the type-ahead buffer will be taken over to another window (if you type fast enough). * Also the type-ahead runner no longer clobbers the static type-ahead buffer, so it won't delete something you typed in another window anymore (again, if you type fast enough :-)). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28745 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b545073f089282445eaf00a96e2b8f4699079c84 |
|
06-Nov-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* Moved the global BPrivate::WidthBuffer from BTextView into BPrivate as gWidthBuffer. * Tracker PoseView now uses BPrivate::gWidthBuffer instead of it's own instance. * TextView.h and PoseView.h are now a little cleaner. * InterfaceDefs.cpp now deletes gWidthBuffer in _fini_interface_kit_(). * Added binary compatibility support for NetPositive in WidthBuffer.h and .cpp. Obviously it kind of defeats the purpose of having WidthBuffer neatly tucked away in the BPrivate namespace, but Haiku should run NetPositive, I guess. Fixes #2879. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28532 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e9842421554da064c665301a10b6a6b3f69ac818 |
|
31-Oct-2008 |
Alexandre Deckner <alex@zappotek.com> |
* On date format change, remove the need for the synchronous call to DrawViewCommon(), simply invalidate since the logic is simplified now, see below. * Reworked the way TimeAttributeText was updated when date format is changed. Got rid of the recalculatText flag propagation, it was broken since forever anyway (was here on r5 max4.1): It was only updating visible poses and wasn't robust in certain cases. Besides, it was cluttering the code on several layers upfront only for date format changes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28402 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3d7584da5c52a15f7219fd8527a5dd08353d45a3 |
|
16-Oct-2008 |
Alexandre Deckner <alex@zappotek.com> |
* Rewrote the way BViewState checks if changes needs to be saved on quiting a navigation window (icon mode and list mode) or switching dir in single window navigation. Fixes the other half of the problem in #2441. Left some todos. I discovered an other bug that can add a random offset after finishing adding poses. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28205 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
90b7764dc354ff1bcb01abf78dafe16faa820725 |
|
21-Sep-2008 |
Rene Gollent <anevilyak@gmail.com> |
Move WidthBuffer and TextGapBuffer into BPrivate and use them from there in BPoseView and BTextView. This (correctly) fixes the previous gcc4 build issues. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27675 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a682d9819fae1e26cef1390bb33b5d5c73304642 |
|
20-Sep-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Quite a cleanup action to avoid polluting the global namespace with private BTextView classes: * Declared the directly used BTextView helper classes as private BTextView classes and changed all affected files. * Realized that Tracker's BPoseView was (accidentally?) using what used to be _BWidthBuffer_. It had declared it's own class with the same name and same members/size in headers/private/tracker/TextViewSupport.h, but the implementation was nowhere to be found. I can only explain this that the BTextView implementation was then actually linked and used. But the big problem was that it was used without locking (unlike in BTextView)! When many Tracker windows opened during system startup or later and they happened to each request characters not yet in the cache, I imagine things could have gone bad and corrupted memory. Anyways, since I can see the usefulness of the cache, BPoseView uses BTextView::WidthBuffer on purpose now. And I moved the locking inside BTextView::WidthBuffer::StringWidth(). * Adjusted InterfaceDefs.cpp accordingly. * TODO: Move subsequent classes into BTextView namespace as well, ie derived classes that BTextView doesn't directly know about. All stuff in src/kits/ inteface/textview_support/ * Added preliminary and not yet implemented layout friendly BTextView constructors. * I will try to handle the insets imposed by BTextView::fTextRect a bit differently when used inside the new layout management framework. For this, I added BTextView::SetInsets() and GetInsets(). SetInsets() doesn't do anything yet. So far, everything seems to work still... ;-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27654 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8a588970c7bb7c66ce4470fdccc7144e2557931a |
|
25-Jun-2008 |
Alexandre Deckner <alex@zappotek.com> |
- HiliteDropTarget was broken, it used a trick to avoid unselecting already selected items but assumed every call to HiliteDropTarget(true) and HiliteDropTarget(false) would come in pair on the same target. Fixes #2453 and #1793 git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26131 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7b95b37ca2b9656bff46d0137d632ad2e4a9a943 |
|
05-Feb-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Make the Desktop window check the Deskbar frame only every half a second, use a cached value otherwise. Should speed up icon placement when Tracker starts. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23871 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5c34aef797c60839b66395519c53b39291dc35c7 |
|
22-Aug-2007 |
Stephan Aßmus <superstippi@gmx.de> |
changed the meaning of the "icon view label background" Tracker setting: * it is replaced by a "icon view label outline" feature that renders a black or white outline around the text of a label under an icon. This can be used for background images that have a lot of contrast and is visually more pleasing (IMHO) than the text box in the workspace color (but the outline could of course still be improved as well) the outline or "false bold width" feature is a new BFont feature in Haiku * Tracker appeared to have a disabled feature to install default background images, I enabled this feature and rewrote it a bit to use our big logo from the artwork folder, the placement is for 800x600, so not optimal for larger desktops, but at least it is shown by default on new installations or rather "fresh" images * changed the way the dotted underline is rendered under links, accidentally, this fixes the bug that it was not dotted at all since a while, which is a bug in app_server or BView not tracking the need to update the drawing pattern in certain situations (this bug needs to be fixed too of course) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22040 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
eeb608e1c7a4655b1e15f3333b9b3f7ef5a83795 |
|
26-Jun-2007 |
Axel Dörfler <axeld@pinc-software.de> |
* StringFromStream() did not work correctly for empty strings (messed up the stream position). * StringFromStream() called BString::LockBuffer() with "length", but touched "length + 1" bytes. * Prepared for the new "display as" FileTypes feature. * The "DefaultQueryTemplate" folder now adds the MIME type of the folder to the attribute menu for simplified editing (before, you had to move a file with a matching file type into that folder to be able to add the attributes you likely wanted to see). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21509 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
687e327bace5d8abca3e75ce74a8f532fac5c151 |
|
19-Jun-2007 |
Michael Lotz <mmlr@mlotz.ch> |
Reworked the handling of periodically updated poses (currently only ones with a volume space bar): * Addad global list where poses that need periodic updates can be registered with a callback * Use this mechanism for poses with a volume space bar * Create only one BVolume when the BPose is created for a volume, instead of every time the free space is calculated * On Pulse() the global list is used to update all of the registered periodic update poses * As the poses know their volume, it is no longer necessary to use a BVolumeRoster to loop through each volume on each Pulse() * Removed the now superfluous SendNotices() mechanism * Removed corresponding watching / handling of these notices in BPoseView The BPoseView did a linear search for each volume pose on each Pulse() before. What's more it did this once for each mounted volume as it did get one individual notice for each of them. To get these volumes a BVolumeRoster was used to loop through the volumes, but then the BPose did still create a new BVolume to actually calculate the free space! I'm surprised that it did not suck away more performance with this method... Anyway, this should bring down BVolume construction and update overhead down to a minimum and hopefully fix ticket #1247. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21462 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
77974ff1711ba286edac17cc9220b5f72ef9ddfa |
|
06-Jun-2007 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
some forgotten fVariable -> sVariable renaming git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21338 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7fb6186f3cb93a14ea0f96a82bdfc3d18f3ad56e |
|
29-Aug-2006 |
Stephan Aßmus <superstippi@gmx.de> |
* integration of vector icons with the registrar and the mime data base * additional versions of SetIcon[ForType] and GetIcon[ForType] in BMimeType and BAppFileInfo, which handle flat vector icon data * changes in Tracker to support scalable icons (currently broken for non-vector icons and needs cleanup) and drawing icons correctly with alpha channel (large parts of this work done by Michael Lotz) If someone feels like looking over the changes, that would be much appreciated! :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18699 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4a71b881a912026bb1d59922b619c17edd72771b |
|
14-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Final GCC 4 fixes by Ingo Weinhold (were not visible before, due to a missing -no-undefined). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14918 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6d01b66d300c2841dba033705f120a7f6e709696 |
|
13-Nov-2005 |
Axel Dörfler <axeld@pinc-software.de> |
GCC 4 fixes by Ingo Weinhold. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14893 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
02be5353fd41ea40007a382e13f007eaf6b5a3a0 |
|
22-May-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Added libtracker.so to the repository and the build. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12772 a95241bf-73f2-0310-859d-f6bbb57e9c96
|