Opened 9 years ago

Closed 9 years ago

#11686 closed enhancement (fixed)

[PATCH] Convert Tracker's BPoseView and related classes over to the layout API.

Reported by: waddlesplash Owned by: axeld
Priority: low Milestone: Unscheduled
Component: Applications/Tracker Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description (last modified by diver)

This is a significant change. I initially planned to do this starting with Aldeck's branch, but that turned out to not be possible due to merge conflicts from PM and John's work.

The only known incompatibility this creates with BeOS is that Be told people in the Be Book (here) that they could modify BFilePanel by probing around for the views and moving them around. The only application I found (so far) that does this is Pe. However, if there are any closed-source ones, we might have to come up with a workaround...

This fixes #4996, #3039, #3889, and possibly #8771 (Diver: can you double check me on all of these?).

The code is currently here (just one commit, as all this is inter-related) and a prebuilt "libtracker.so" for GCC2(Hybrid) is here (put it in non-packaged and blacklist the system's libtracker).

Other TODO:

  • I need to clean up the inset construction on the layouts
  • I need to do a go-over of the code to make sure I didn't screw anything obvious up
  • Diver needs to test (and whoever else wants to)
  • Axel needs to review the code (preferably someone else would too)

Change History (12)

comment:2 by waddlesplash, 9 years ago

It seems that Gist does not like hosting binary files. You can find the current libtracker.so here.

comment:3 by diver, 9 years ago

Description: modified (diff)

comment:4 by diver, 9 years ago

Having Workspaces as replicant breaks Desktop redraw. AFAICT #3039 and #3889 are fixed by this patch.

comment:5 by pulkomandy, 9 years ago

There are a lot of apps customizing BFilePanel, the most common use is adding a "select folder" button. Several in-tree apps are doing this. You need to keep this working, and I'm afraid this means BFilePanel must stay without a layout, for now.

The big patch makes things uneasy to review. As everything is intermixed, you don't need to have each commit result in a compiling and running system, however, I think you can still split the work in smaller chunks for easier review.

in reply to:  5 comment:6 by waddlesplash, 9 years ago

Replying to pulkomandy:

There are a lot of apps customizing BFilePanel, the most common use is adding a "select folder" button. Several in-tree apps are doing this. You need to keep this working, and I'm afraid this means BFilePanel must stay without a layout, for now.

OK, I'll try to figure out how to get that to work with the other changes I made to layouts...

The big patch makes things uneasy to review. As everything is intermixed, you don't need to have each commit result in a compiling and running system, however, I think you can still split the work in smaller chunks for easier review.

I already talked to Axel, and he agreed that it should be in one large commit as it's all interdependent. There's no way to break changes out really, as some changes to the OpenWithWindow require other changes to PoseView, etc...

comment:7 by korli, 9 years ago

Please also check ImageFilePanel in Backgrounds, which provides an image preview.

comment:8 by pulkomandy, 9 years ago

Some actual examples of customized file panels:

  • Wonderbrush "export as" has a way to pick a file format and open translator settings,

* Expander has a "select current directory" button.

comment:9 by waddlesplash, 9 years ago

OK, will test against all of those.

comment:10 by axeld, 9 years ago

I meant one commit to Haiku master (ie. a single hrev). I would prefer smaller chunked commits, too, otherwise.

comment:11 by waddlesplash, 9 years ago

OK, I'll split it up at the end, it's easier to do it that way. Also, I opened a pull request for easier review here.

comment:12 by waddlesplash, 9 years ago

Done, fixed all of Axel's comments as well as the FilePanel and got Workspaces working as well. It needs a final go-over and then a merge now.

comment:13 by jscipione, 9 years ago

Resolution: fixed
Status: newclosed

Feature implemented in hrev48734

Note: See TracTickets for help on using tickets.