#
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>
|
#
a63a6739 |
|
23-Apr-2023 |
John Scipione <jscipione@gmail.com> |
Tracker: Whitespace, alphabetize style fixes No functional change intended. Change-Id: Ib47f6b04e372923a5d2a1774ce4e3f56d8b05792 Reviewed-on: https://review.haiku-os.org/c/haiku/+/6370 Reviewed-by: waddlesplash <waddlesplash@gmail.com> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
|
#
2532a287 |
|
23-Nov-2021 |
Augustin Cavalier <waddlesplash@gmail.com> |
Avoid using unions for LongDirEntry. GCC still assumes that the dirent has no data past the end for some scenarios here and still mis-optimizes things. Therefore, drop the usages of unions altogether, and instead use a casted character array. Additionally, use B_FILE_NAME_LENGTH for the array, not B_PATH_NAME_LENGTH, and make sure to add 1 for the NULL terminator.
|
#
8f03af00 |
|
18-Nov-2021 |
Augustin Cavalier <waddlesplash@gmail.com> |
Storage: Rework LongDirEntry to be a union. Our dirent structure is "slim": it has a flexible-length array at the end which must be allocated to whatever size the consumer wants. However, we use [1] there and not [0] or [], which meant GCC thought it was not a flexible-length array, and so it optimized various string accesses that it assumed must be always false. Among these was BDirectory's check for "." and "..", and so that resulted in infinite loops. When changing our dirent structure to a proper FLA instead of [1], GCC then throws errors on LongDirEntry as it has data "after" the FLA; which is what we want, but there is no way to tell GCC that. So now we use a union instead, which is the proper way to statically allocate a FLA. This is part of #17389, but the real fix requires changing our dirent structure, which is coming in a separate commit.
|
#
c5b4dc40 |
|
09-Dec-2015 |
looncraz <looncraz@looncraz.net> |
Tracker: Use Set*UIColor, improved font awareness. InfoWindow now uses the font size to determine the window size and placement of elements. Also uses system colors, including link colors. Permissions view not font sensitive yet. Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com> Patch 0039 from looncraz, unmodified.
|
#
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).
|
#
5d3c0dd1 |
|
20-Jun-2014 |
John Scipione <jscipione@gmail.com> |
Tracker: style fixes to VirtualDirectoryPoseView
|
#
1c29b26e |
|
29-Jun-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Add virtual directory feature to Tracker Similar to stored queries, files of the virtual directory type behave like directories -- i.e. they open in a list-mode Tracker window and show up as an item with submenu in navigation menus. The file itself is a plain text file in driver settings format. It can have an arbitrary number of "directory" entries, which specify the paths of (actual) directories for which the virtual directory provides a merged view. The view will not show duplicate entries. For non-directory entries the first one encountered (according to the order the directory paths are specified in the file) will be shown. A subdirectory entry will again behave like a virtual directory. The support in Tracker isn't perfect yet. I'm afraid major refactoring would be necessary to get it there. The virtual directory file type uses a differently colored version of the folder icon. Alternatives welcome.
|
#
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).
|
#
5d3c0dd1009b7aaa0580285920fd63e71979e80a |
|
20-Jun-2014 |
John Scipione <jscipione@gmail.com> |
Tracker: style fixes to VirtualDirectoryPoseView
|
#
1c29b26e7c7eb94ee125315eca5a94265f613420 |
|
29-Jun-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Add virtual directory feature to Tracker Similar to stored queries, files of the virtual directory type behave like directories -- i.e. they open in a list-mode Tracker window and show up as an item with submenu in navigation menus. The file itself is a plain text file in driver settings format. It can have an arbitrary number of "directory" entries, which specify the paths of (actual) directories for which the virtual directory provides a merged view. The view will not show duplicate entries. For non-directory entries the first one encountered (according to the order the directory paths are specified in the file) will be shown. A subdirectory entry will again behave like a virtual directory. The support in Tracker isn't perfect yet. I'm afraid major refactoring would be necessary to get it there. The virtual directory file type uses a differently colored version of the folder icon. Alternatives welcome.
|