Christian Packmann schrieb:
I've looked at the ShowImage zoom routines, and a clean implementation of better zooming isn't as easy as it seemed at first glance. Not that hard, but I don't have the time for it right now. I'll look into this later, but probably only after I implemented a SSE2 version of the ScaleBilinear function, which is far too unrealtime for my taste.
Before you do that, please have a look at the bilinear scaling routine in src/servers/app/drawing/Painter/Painter.cpp. Accelerate that one instead. I think the inner loop of that routine is as fast as it gets with C++, unless I am missing a nice trick. And if you can accelerate that, make ShowImage use the filter option when drawing bitmaps (there is a new BView::DrawBitmap() version in Haiku that takes more options). This work will benefit MediaPlayer as well then. Thanks a lot!
I will implement the interface changes, though. Before we go to the changes, a list of the current behavior (I omitted File and Edit operations) just for reference:Direct key commands Enter: next image Backspace: previous image +, =: zoom in -: zoom out Space: toggle slideshow Esc: stop slideshow + exit fullscreen + cancel selection Del: delete image Cursor: move image Shortcuts Alt f: fullscreen mode Alt +: zoom in Alt -: zoom out Alt Up/Down: next/previous image Alt Left/Right: multi-image navigation: prev/next page (for TIFF?) Shift Alt Left/Right: multi-image navigation: first/last page Alt [: rotate counterclockwise Alt ]: rotate clockwise Mouse LMB: select region MMB: move image RMB: popup menu / move selected region Wheel: scroll image vertically The planned changes are: Direct key commands Down/Right: next image Up/Left: previous image New behavior I would recommend: Shift+Cursor: move imageAlt+Return: toggle fullscreen (learned behavior from some Windows programs - maybe other platforms, too?)ShortcutsI strongly recommend changing the Rotate shortcuts; on German keyboards Alt+[ and Alt+] are unselectable (unless I'm doing something wrong here or it's VMWare). This also goes for Alt+{, Alt+} and Alt+\; all these keys are accessed with the right Alt key, but this prevents selection with the left Alt key. This information should go into a UI style guide, I think.Anyway, my proposal: Alt r: rotate clockwise Alt Shift r: rotate counter-cw(If there's disagreement about the proper direction for plain rotation with "Alt r", please just the votes - I'll count 'em & the majority has it.)Mouse LMB, MMB, RMB: unchanged Wheel: zoom image; wheel up zooms in, down zooms out +Shift: scroll vertical +Alt or Ctrl: scroll horizontalI hope I didn't miss anything. I'll implement the changes when the votes are in and any possible discussions have quieted down.
All these sound perfect. Except maybe I would like to toss the idea to have Alt-Left/Right rotate the image. Ideally, we'd have an icon tool bar for the hidden features to be less hidden... :-)
Best regards, -Stephan