Scribus Forums

Development => Features => Topic started by: Ged on March 30, 2015, 02:17:07 am

Title: Zoom Suggestion
Post by: Ged on March 30, 2015, 02:17:07 am
Ive only started with Scribus and it has been a pleasure learning.

Here is an idea which may not have been considered yet.   8)  In addition to the standard 50% , 75% , 100% zoom, could their be a 'zoom to selected' option?  Let us say I selected a text or image box, the window would expand to that selected object.

My drawing app (coreldraw) has this feature and I use it often.

Title: Re: Zoom Suggestion
Post by: a.l.e on March 30, 2015, 10:09:46 am
hi ged

on the one side i can only support that idea. zooming to (the width of / the height of) the selected item is something really useful.
even if personally, a strong need for it... why?
could it be, that the feature is more useful for vector graphics than it is for layouting?
does it really need to be a new feature by itself?

you probably guess that i will be getting to the "on the other side"...

on the other side, i fear a bit that the feature will be hard to discover, will be placed somewhere deep in the menus, and will probably get a shortcut that is hard to remember.

scribus, like most other programs, has a rather powerful way to fast zoom in and out: pressing the ctrl key and turning the mouse wheel.
this is is a standard behavior somebody can use in most programs, from office to web browsers.
even if many people don't know about it it's there. and behaves mostly the same.

personally, i'd prefer focusing on improving that feature (like adding extra steps for fitting width and height of the selected object when zooming in and out; but also improving the center of the zooming), rather than adding a new feature and a new shortcut.

ged, could such a change improve your scribus experience?

what do other people think about it?
does it break too much the zooming effect?
is it worth?

for the coding, i think that it should be a feature that is rather easy to implement...
i could do it in a couple of hours. a team member can probably do it in less than an hour...

if there is an agreement on it, how should it exactly work?

Title: Re: Zoom Suggestion
Post by: GarryP on March 30, 2015, 02:56:24 pm
I agree that a "zoom to selected" option would be a nice thing to have but I'm not sure I'd use it very often. I generally don't need to zoom in on only one thing. I usually need to zoom in to the area between two or more objects to adjust the spacing etc.

For me the basic thing to do would be to allow the user to set the zoom "step" in Preferences. E.g. Zoom in/out by 10%, or whatever. Only having "half" and "double" as they are at the moment is a bit limiting.

Also, it would be nice if the pages didn't shoot off to the left-hand side when zooming out. It's annoying.

I'm not sure what I'd prefer for centring during zoom. For the most part, centring the zoom about what's in the centre of the window is fine for me. Centring about the mouse pointer might cause me problems as I usually move the pointer out of the way when I'm scrutinising a document.

P.S. If anyone is wondering, Ctrl+Wheel for zoom is Cmd+Wheel on Macs. Ctrl+Wheel is the system zoom.
Title: Re: Zoom Suggestion
Post by: a.l.e on March 30, 2015, 03:51:39 pm
if i'm not mistaking, in 1.5svn there is a way to set the zoom steps (thanks to chelen).

the placement of the page might also have been fixed (basically, for me the zoom works ok in 1.5svn (but only with a mouse!), and i don't use 1.4.x enough to feel a difference).

(and i think that the ctrl-mouse wheel zoom should really center on the pointer! if you're scrolling the wheel, most of the time the pointer is at the right place :-)
Title: Re: Zoom Suggestion
Post by: utnik on March 30, 2015, 03:55:56 pm
hi garry

I usually need to zoom in to the area between two or more objects…

it's the same for me – no need for a 'zoom to selection' function.

…the basic thing to do would be to allow…

…Zoom in/out by 10%…

that's what the up and down arrows in the status bar do.

I'm not sure what I'd prefer for centring during zoom.

imho the best would be to center at the position of the pointer.

Title: Re: Zoom Suggestion
Post by: GarryP on March 30, 2015, 05:34:37 pm
I didn't know there was a zoom on the mouse wheel until a.l.e mentioned it. I've just had a bit of a play around with it.

You're right that using the pointer position is best for that sort of thing. However, because the zoom steps aren't fine enough and the page moves around it's not quite right yet. Having to move my eyes up and down the screen for zooming - from page to the little arrows and back - makes my eyes tired because of all the refocussing. The same for when the page shifts around.

If the two things are fixed - as a.l.e says they probably will be in 1.5.0 - then I'll have to start using the wheel zoom more. It might help my old eyes.

Having said all of that, zooming from the toolbar can't use the mouse position (as it's on the toolbar) so there's probably an argument for adding some kind of "zoom to selected object's position if an object is selected" option. That would probably suit Ged's needs a bit too.
Title: Re: Zoom Suggestion
Post by: a.l.e on March 30, 2015, 05:50:04 pm
so, the status bar and keyboard (and eventually the toolbar) zooms should use the center of the selected item as a reference when zooming? (if any selected)

otherwise the center of the window?

personally, i don't like the fact that scribus has five ways to zoom. most of them rather poorly implemented...
probably, i'd like to see the zoom tool removed from the toolbar, the same for the two zoom icons in the status bar.
a zoom icon added to the status bar to allow the definition of a selection as the area to be defined as the zoomed one.

the we would have
- the +/- keys
- the mousewheel
- the spinbox where you can type a value and press on up and down buttons
- a tool to select a new visible area

do you see use cases that are not covered?

to me, the zooming is rather an important part of my interaction with the scribus UI and i would love it to see it implemented a bit more correctly.

ps.: for garry... since you seem not to know the powers of the mouse wheel: if you press on it you can pan the document, that is move around without scrolling. and shift-scroll moves horizontally... :-)
Title: Re: Zoom Suggestion
Post by: GarryP on March 30, 2015, 10:34:35 pm
Thanks a.l.e, I didn't know about those shortcuts either. Fingers crossed that I remember them.

I've just tried the push-wheel pan thing and the page jitters around quite horribly on Linux Mint 17 with Scribus 1.4.2/3svn (1.4.2 on the splash screen, 1.4.3svn on the window title). I'll have to give it a go on my Mac and see what happens. It could just be my Linux installation (or my laptop).

The horizontal scroll thing isn't too much use to me as my mouse has four-way movement on the wheel but it's nice to know there's an alternative.

Anyway, back to the zooming, how about this...?

I think the zoom controls - whatever we end up having - should all be in the same place, and that place should be the status bar with the other display stuff.

I agree that the entry field should remain as it's convenient when you want a specific value, however I'd prefer it to be combined with a drop-down menu with some useful defaults for a quick choice:
* 25%, 50%, 100%, 200% (and whatever)
* Page Height
* Page Width
* Area (drag-draw a box to zoom to that area)
* Previous (whatever the last zoom level was)
* Selection Height (if anything selected)
* Selection Width (if anything selected)

(The value in the entry box should always show the actual zoom value rather than the thing that was selected, e.g. should show "67%" rather than "Page Height".)

The current middle status bar zoom button (for 100%) could then be removed as its function would be within the drop-down menu.

The current -/+ status bar zoom buttons could be replaced by a spin-button right next to the entry-drop-down field to make it look like a combined "entry-menu-spin" box.

As the Area Zoom function would be part of the zoom drop-down menu we wouldn't need the toolbar zoom icon (you can currently only do this from here).

Thus we lose four zoom buttons and gain one tiny extension to the entry field.

Obviously the View menu would have to change but that can be linked to the same functionality as the combined "entry-menu-spin" box. Not much extra work there.

This way you'd have four ways of zooming:
* View Menu
* Status Bar
* Scroll wheel
* Cntl -/+/0

(Cntl+minus works for me to zoom out but I've got to use Cntl+Shift+plus to zoom in, but that could just be my installation/set-up.)

All of the zooming of a specific percentage - entry field or drop-down - or via the spin buttons, should centre on the selection if there is one and on the centre of the window if nothing is selected. The other zoom options are dependent on other things and so can't be selection-specific (or they're already specific to a selection so that's a moot point).

I've probably not thought of all use cases but this isn't a comprehensive design document!
Title: Re: Zoom Suggestion
Post by: Ged on March 31, 2015, 12:57:01 am
Quote from: GarryP
... because the zoom steps aren't fine enough and the page moves around it's not quite right yet ...

This describes my experience too.  Added to that, Im using Scribus on a notebook, so I need to zoom to the best use of my fairly small screen.  (It would not be so bad on a PC.)

I agree in principle with a.l.e. that there should only be one system to perform the task.  The mouse wheel could be made to achieve the same result, provided it expanded to the desired point.

I like Garry's last post suggesting 'Area' (drag-draw a box to zoom to that area)  Alternative to that would be how I do it in corelDraw - where I select 2 items and it zooms to both items plus the space in-between.
Title: Re: Zoom Suggestion
Post by: utnik on March 31, 2015, 09:48:47 am
hi ged

I like Garry's last post suggesting 'Area' (drag-draw a box to zoom to that area)

did you ever try the zoom tool? (magnifying glass, shortcut: 'z')

Title: Re: Zoom Suggestion
Post by: GarryP on March 31, 2015, 05:33:14 pm
It might be worth mentioning that most of the "defaults" ("presets"?) I gave for the drop-down list are already available as existing functionality, except for "Previous" and "Selection Width/Height".

Adding functionality for "Previous" would probably be no more than maintaining an extra variable.

The "Selection Height/Width" values are already available within Scribus as it maintains a box around the selected items so I can't see that being too much of a job either. There's obviously a routine - or whatever - for calculating the zoom level and canvas offsets from the "page size" - and "dragged box size" - so would it be too much extra hassle to calculate from the "selection size" instead? (Although - as previously mentioned - I can't really see a need for them but they may come in handy.)

I haven't looked at the code but it would make sense to me to have one function that calculated a zoom level and page offsets from any given box, be that page, dragged, selection or anything else. It would make it easier to maintain if anything.

It's probably way more difficult than that though, so I'll stop writing now!
Title: Re: Zoom Suggestion
Post by: Nermander on April 01, 2015, 10:50:22 am
I think the Previous alternative may be confusing to users, I think a better solution would be some kind of "temporary zoom". Like a magnifying glass, when you close it you get back to how it was before (or underneath).

Though it may be confusing that the magnifying glass can zoom out as well as zoom in... :)
Title: Re: Zoom Suggestion
Post by: GarryP on April 01, 2015, 11:40:18 am
What I was trying to go for with "Previous" was a way of quickly swapping between two user-specified zoom levels.

The workflow would be something like: Working at, for example, 150% zoom to check for details; then quickly zoom out to, for example, 90% for an overview to see what it looks like overall; then quickly swap back to 150% to continue working on the detail. The user would first zoom to 150%, then to 90% (both via the input field), then use the drop-down menu choice to swap between the two. I've seen this in other software and it works okay but maybe there's a better way of doing it.

Maybe it's the word "Previous" that's wrong. I think we're talking about the same thing, just with different ways of looking at it.

Either way I don't think it would be a difficult thing to implement - coding-wise (like I said above it's probably just maintenance of a variable containing the last zoom level) - but the UI aspect of it may cause differences of opinion.

One other way to do it would be to let the user set any zoom level as one of many "user specified" defaults and let them choose between these set defaults, but that seems a bit messy to me.

If anyone reading this has experience of some other software that does this sort of thing nicely then it would be great if they could get in touch. Like a.l.e wrote much earlier in this thread, zooming is a major part of working with Scribus and it would be nice to get it working as well as possible if there's a chance for a bit of an overhaul.
Title: Re: Zoom Suggestion
Post by: Nermander on April 01, 2015, 12:49:45 pm
Yes, we are talking about the same thing, I was just trying to figure out a more "intuitive" way to present it to the user than "Previous" (because sooner or later you will be in the situation where you are not sure whether the zoom level you want is "previous" or "next").
Title: Re: Zoom Suggestion
Post by: GarryP on April 01, 2015, 02:33:13 pm
Yeah, it's a bit of a tricky one.

"Previous", "Next", "Last", "Other", "Alternative", "Different": nothing really works.

If I looked for long enough I could probably find an English word that nicely conveyed the meaning of the concept but I doubt it could be properly translated into every language, so it wouldn't work for everyone.

Discussion about the exact wording could go on for months without agreement.

For me, even if it was given a nonsense name such as "foobar", as soon as I realise/learn what "foobar" does then I'd be happy with it. That wouldn't be ideal for beginners but there's no rule that beginners shouldn't have to learn new stuff. (And it's a very minor thing to learn considering contour lines, hyphenation, paragraph styles, etc.)

As long as it's made un-selectable - greyed out, or missing - until the user selects a new zoom level then that's fine by me.
Title: Re: Zoom Suggestion
Post by: Nermander on April 02, 2015, 10:10:29 am
That's why I thought of the idea to visualize it as the MS Windows magnifying glass (i.e. you are shown the "special zoomed area" in an overlayed window, closing the window "returns").

I think calling it "temporary zoom" might work?
Title: Re: Zoom Suggestion
Post by: GarryP on April 02, 2015, 11:35:01 am
Hmm… I really don't like the idea of a zoom function opening another window that has to be closed before I can get on with things. It breaks up a smooth workflow.

However, if Scribus could display the document at multiple zoom levels at the same time - having different views of the same document in a split-screen configuration - then that might be very useful. You could set a different zoom level for each view and swap between the views as necessary, any changes being instantly reflected in the other view(s). There'd be no need for a "Previous" zoom then, and I could see that sort of thing being a very nice productivity aid. And it would give Scribus another layer of professional sheen too.

Scribus already allows you to tile windows showing different independently-zoomable documents in the same window so maybe it's not that much of a leap to show the same document at different zoom levels. I've no idea what the coding overhead would be to do that though.
Title: Re: Zoom Suggestion
Post by: Nermander on April 02, 2015, 10:57:27 pm
It doesn't have to "be" a new Window, it just needs to look like one. A bit wider Window bordes, different color borders or something like that.

I just think it should be visualised like a "mode" you enter and exit.

Think "Web browser full screen mode" or something like that.
Title: Re: Zoom Suggestion
Post by: GarryP on April 03, 2015, 02:52:29 pm
Hmm… (again)

Each to their own preferences but I'd prefer not to have another floating window (or whatever). My screen gets cluttered enough with the Properties, Layers and A&D palettes up most of the time. (BTW: I'd love to be able to pick alignment functions from a drop-down menu on the toolbar instead of having a big palette in my face all the time.)

Also, I'm not really sure of what use a "temporary zoom" window/dialog/mode (or whatever) would be. If Scribus has gone to the trouble of displaying something then why not let the user also edit it? Then it becomes just another window within Scribus which is what I mentioned in my last post. It already has this capability so it could be utilised in a slightly different way.

Why have a different "mode" to enter and exit when it could just be a different view of the same document displayed as Scribus already displays documents? No special rules or anything like that, just edit it as normal.
Title: Re: Zoom Suggestion
Post by: Nermander on April 03, 2015, 10:15:51 pm
As I said, it doesn't have to be a separate window, just change the appearance of the borders of the main window while the "temporary zoom" is active.

The content will still work as usual, it's just a visual indication so the user will "feel" that it's a temporary situation that can be "exited" back to normal.
Title: Re: Zoom Suggestion
Post by: GarryP on April 05, 2015, 11:48:12 am
I still don't understand why it has got to be handled differently or thought of as temporary or as a new "mode".

If the user can have multiple views of the same document open at the same time - many other applications allow this (I'm not describing a radical new way of working) - then each view can be handled the same way as different documents are at the moment. No special handling necessary. No differences in workflow. Just work on the view you want to work on as usual.

The attached screenshot shows an example.

Discussion/argument will need to take place on how certain things are handled - e.g. the grid and guides are currently linked to the document, not a view - but, from a user-perspective, it shouldn't matter if you're working on multiple documents or multiple views of the same document. It should just be seamless without any special requirements.

I realise a lot of work would be needed to change Scribus to work this way which is why my earlier suggestion of a "previous zoom" would be a much cheaper stop-gap.
Title: Re: Zoom Suggestion
Post by: Nermander on April 05, 2015, 07:07:51 pm
You are still not getting it? :)

The thing I am talking about is the same as your "previous" zoom, I'm just trying to make it more intitive to the user if the "previous" zoom level is the normal one or not.

I'll make an example.

User is working in 75% zoom. To make small adjustments the user zooms in to 200% zoom on some items. Then "previous" zoom is 75%. But then the user is working at 200% zoom and wants to zoom out to see a whole spread. Since the user is in the "temporary" zoom the user SHOULD first select "previous" and then zoom out (to let's say 25%). Then "previous" will get the user back from 25% to 75%.

BUT, it the user accidentily instad of first choosing "previous" just zooms out to 25%, then "previous" is now 200% and not 75%. So when the user chooses "previous" he gets back to 200% instead of the expected 75%.

With my "solution" the user will see (by visual appearance) that the zoom currently used is the temporary zoom, so even if the user changes the temporary zoom from 200% to 25%, exiting the temporary zoom will still get the user back to 75% zoom.
Title: Re: Zoom Suggestion
Post by: GarryP on April 06, 2015, 12:01:49 pm
I understood where you were coming from but I couldn't think of a nice way to implement it without adding extra complexity to the UI.

For instance, how would the user set the temporary zoom level? It would require a new button or something, and part of this little "exercise" was about trimming the zooming part of the UI down. The whole thing just didn't seem right to me.

I also understood the problem with the "Previous" zoom level jumping around when the user set different levels. I didn't have a solution for that either which is why I suggested the multiple views thing instead.

However, with all of this in mind, I've come up with an alternative which I'm calling the "Zoom Bar Version 0.1", see attached screenshot.

It consolidates all of the zoom functionality into one easy to use element.
It removes the need for all of the other zoom UI elements (except in menus).
It sits unobtrusively at the side of the window (in what is sometimes unused space anyway).
It works in a similar way to existing UI elements (e.g. rulers and gradient stops).
It makes zooming more interactive (just drag along the bar to change zoom).

(The maximum and minimum zoom levels could be specified by the user in Preferences.)

One thing it doesn't do is allow the user to set the zoom level at a specific size but that isn't necessary when you think about it. How often do you need to set the zoom to exactly a certain level? E.g. What's the actual difference between 20% and 21% zoom? Really all you want is for the document to been zoomed to whatever level looks best for what you need, the actual specific value is irrelevant. (If absolutely needed an extra button could be added to allow for a small pop-up entry field but I think that's overkill myself. If I'm wrong then tell me.)

Obviously the graphics will need to be cleaned up by a UI expert, this is just a simple mock-up that I put together very quickly.

What do you think? What does anyone think? Do you like it? Do you hate it? Are there any obvious flaws?
Title: Re: Zoom Suggestion
Post by: a.l.e on April 07, 2015, 02:22:25 pm

there is one thing i like here: creating a zoom toolbar.

as i already had the chance to say: i would like to have fewer ways of zooming shown by default and, then, a zoom toolbar for those who like to zoom with the mouse...

who knows, having new advanced features around could help that change :-)
Title: Re: Zoom Suggestion
Post by: trevorparsons on January 31, 2016, 07:32:44 am
if i'm not mistaking, in 1.5svn there is a way to set the zoom steps (thanks to chelen).

Sorry to reactivate an old thread, but I thought it was worth confirming that it is indeed now possible to adjust zoom steps. (I'm using Scribus version 1.5.1 svn).

To do so, go to File > Preferences > Operator Tools tab. In the Zoom tab, you can adjust the minimum and maximum zoom percentage, and the percentage of each zoom step.