Opened 11 years ago

Last modified 9 years ago

#3813 new enhancement

Screenshot enhancements

Reported by: humdinger Owned by: julun
Priority: normal Milestone: R1
Component: Applications/Screenshot Version: R1/Development
Keywords: Cc: WPJvanderMeer@…
Blocked By: Blocking:
Has a Patch: no Platform: All

Description (last modified by Wim)

The current revision is hrev30234.
I’d like to propose a few enhancements in the hope that some are deemed worth implementing.

Options -> Preferences

  • The options panel should get its own panel in Preferences to set defaults. It’s a system setting IMO.
  • Besides what’s now in the options panel, there should be default “Name”, “Save as” and “Save in” settings.

Screenshot app (first two suggestions also apply to the preference panel to be)

  • Add a “Settings…” button after the “Save as:” drop-down that opens the Translator’s settings.
  • Add a “Clipboard” in the “Save in:” drop-down.
  • Make the screenshot image to the left react to mouse clicks:
    • right-click: context menu with
      • “Open with” and a submenu with all image/* supporting apps.
      • checkmarkable “Take whole Desktop”,
      • checkmarkable “Take active window” plus checkmarkable “Include window border”
      • checkmarkable “Include cursor”

The screenshot image should reflect those checkmarkable changes. So changing from "whole screen" to "only active window" etc. would be possible even after taking the screenshot.

  • double-click: opens in the preferred app.
  • drag&drop to save, right-drag&drop additionally offers file formats.

I think it would be useful to have the PRINT key just take a screenshot with the preference defaults as usual and have SHIFT+PRINT open the Screenshot app.

Attachments (1)

screenshot-clipboard-wim.patch (1.4 KB ) - added by Wim 10 years ago.
This patch adds a "Copy to clipboard" button to the application.

Download all attachments as: .zip

Change History (27)

comment:1 by humdinger, 11 years ago

Hmmm. Coming to think of it, the checkmarkable business when right-clicking may be a bit awkward. Better put it as check- and radioboxes beside it, filling it according to the preferences.

Another enhancement: Use filtering for the image like ShowImage.

comment:2 by humdinger, 10 years ago

I'm currently taking a lot of screenshots. Every time I have to set the background in WonderBrush to transparent. So:

  • When taking a shot of the active window, set the background (due to the title tab) to transparent. Only when using an alpha-channel aware image format?

in reply to:  2 comment:3 by humdinger, 10 years ago

Replying to humdinger:

  • When taking a shot of the active window, set the background (due to the title tab) to transparent. Only when using an alpha-channel aware image format?

This was implemented some time ago. Yay!

comment:4 by Disreali, 10 years ago

Has this ticket been completed? If so, should it be closed?

comment:5 by humdinger, 10 years ago

Version: R1/pre-alpha1R1/Development

Reading thru what's proposed, nothing aside the transparency stuff really got implemented.
So it's still just as (in)valid as a year ago. :)

in reply to:  description ; comment:6 by Wim, 10 years ago

The options panel should get its own panel in Preferences to set defaults. It’s a system setting IMO.

I believe that the screenshots settings are not really useful without the Screenshot application, so I don't see why it would be useful to have a panel in Preferences.

Besides what’s now in the options panel, there should be default “Name”, “Save as” and “Save in” settings.

Do you mean to move these settings from the preview panel to the options panel? I would rather like to suggest to get rid of the options panel and move everything into the preview panel.

Add a “Settings…” button after the “Save as:” drop-down that opens the Translator’s settings.

I am probably too new at Haiku to understand what these settings are. Can be more specific? Do you now of any other application that has something like this?

Add a “Clipboard” in the “Save in:” drop-down.

I have created a patch that adds a "Copy to clipboard" button. It just doesn't seem logical to put it in the "Save in:" menu. (It is also a lot more work :))

Make the screenshot image to the left react to mouse clicks:

  • right-click: context menu with
    • “Open with” and a submenu with all image/* supporting apps.
    • checkmarkable “Take whole Desktop”,
    • checkmarkable “Take active window” plus checkmarkable “Include window border”
    • checkmarkable “Include cursor”

If all settings are moved inside the preview panel (i.e. eliminate the options panel) I don't see how this could enhance things. Since you can use the clipboard to paste the image into your favorite image app, the "open with" functionality also seems not that useful to me.

The screenshot image should reflect those checkmarkable changes. So changing from "whole screen" to "only active window" etc. would be possible even after taking the screenshot.

A discussion along these lines is also present in ticket #4100. However, I don't see why it is so much more work to just take a new screenshot, especially if the "Take screenshot" button is moved into the preview panel.

  • double-click: opens in the preferred app.
  • drag&drop to save, right-drag&drop additionally offers file formats.

Again, does this really improve things over the current way of saving screenshots?

I think it would be useful to have the PRINT key just take a screenshot with the preference defaults as usual and have SHIFT+PRINT open the Screenshot app.

If you mean the PrtSc key, on my keyboard it has to be used with shift, or else it is a SysRq.

by Wim, 10 years ago

This patch adds a "Copy to clipboard" button to the application.

comment:7 by Wim, 10 years ago

Cc: WPJvanderMeer@… added

in reply to:  6 ; comment:8 by anevilyak, 10 years ago

Replying to Wim:

I am probably too new at Haiku to understand what these settings are. Can be more specific? Do you now of any other application that has something like this?

An example would be ShowImage. The short of it is, things like reading/saving file formats are abstracted out into an addon-based kit of their own (src/kits/translation). Apps can thus iterate through the roster of available formats, and use any of those to save to the appropriate format without having to reimplement those themselves. Those translator add-ons in turn can export configuration views which let you fine tune how they save (i.e. the one for JPEG allows adjusting the level of compression and a few other things). The translation kit portion of http://www.haiku-os.org/legacy-docs/bebook/ should answer any questions you have on the details of using those add-ons/retrieving the configuration view from them.

in reply to:  8 ; comment:9 by Wim, 10 years ago

Replying to anevilyak:

Replying to Wim:

I am probably too new at Haiku to understand what these settings are. Can be more specific? Do you now of any other application that has something like this?

An example would be ShowImage. The short of it is, things like reading/saving file formats are abstracted out into an addon-based kit of their own (src/kits/translation). Apps can thus iterate through the roster of available formats, and use any of those to save to the appropriate format without having to reimplement those themselves. Those translator add-ons in turn can export configuration views which let you fine tune how they save (i.e. the one for JPEG allows adjusting the level of compression and a few other things). The translation kit portion of http://www.haiku-os.org/legacy-docs/bebook/ should answer any questions you have on the details of using those add-ons/retrieving the configuration view from them.

In Screenshot the list of image formats that you can choose from is generated using BTranslationUtils, and saving the image is also done with the Translator kit, so everything is fine as I far as I can tell.

I looked at the Showimage application and I couldn't find a "Settings..." button to "change translator settings" like humdinger requests. As far as I an tell the translator kit documentation doesn't mention any settings either.

I am probably missing something here, but if you can give me something concrete about what settings that are needed (and why) I can see if I can implement it.

in reply to:  9 comment:10 by anevilyak, 10 years ago

Replying to Wim:

I looked at the Showimage application and I couldn't find a "Settings..." button to "change translator settings" like humdinger requests. As far as I an tell the translator kit documentation doesn't mention any settings either.

My mistake, ShowImage indeed doesn't expose that functionality. However, WonderBrush does, if you go to File, Save As, you'll see a "Settings..." button next to the format selector. The view which this produces is created via BTranslator::MakeConfigurationView() (c.f. http://www.haiku-os.org/legacy-docs/bebook/BTranslator.html ). Note however that exporting such a view is optional so it's entirely possible the translator add-on doesn't export one if it has no configurable settings, which needs to be taken into account. Hope that helps.

I am probably missing something here, but if you can give me something concrete about what settings that are needed (and why) I can see if I can implement it.

comment:11 by anevilyak, 10 years ago

Make that "Export As", not "Save As".

comment:12 by Wim, 10 years ago

Ah, now I see. Thanks!

in reply to:  6 ; comment:13 by humdinger, 10 years ago

Replying to Wim:

I believe that the screenshots settings are not really useful without the Screenshot application, so I don't see why it would be useful to have a panel in Preferences.

Screenshots are also taken (in fact, before the Screenshot app it was the only way) by pressing PRINT, which saves it as ~/screenshot.png.
That said, an own Preferences panel is probably overkill. Using the settings of the Screenshot app should do.

Besides what's now in the options panel, there should be default "Name", "Save as" and "Save in" settings.

Do you mean to move these settings from the preview panel to the options panel?

No. Those would be added to the Preferences panel to set defaults that would be used when taking screenshots without invoking the Screenshot app. Doesn't apply anymore, since we agree there shouldn't be a Preferences panel.

I would rather like to suggest to get rid of the options panel and move everything into the preview panel.

Yep. This is also what I originally proposed with the right-click menu.

Add a "Clipboard" in the "Save in:" drop-down.

I have created a patch that adds a "Copy to clipboard" button. It just doesn't seem logical to put it in the "Save in:" menu. (It is also a lot more work :))

To me it fits perfectly in "Save in"... :)
Isn't it just as easy to do the clipboard-copying after receiving the respective BMessage from the menu item as it is when coming from the button?

Make the screenshot image to the left react to mouse clicks: * right- click: context menu with * "Open with" and a submenu with all image/* supporting apps. * checkmarkable "Take whole Desktop", * checkmarkable "Take active window" plus checkmarkable "Include window border" * checkmarkable "Include cursor"

If all settings are moved inside the preview panel (i.e. eliminate the options panel) I don't see how this could enhance things. Since you can use the clipboard to paste the image into your favorite image app, the "open with" functionality also seems not that useful to me.

As I said in a previous comment, the whole "checkmarkable" stuff seems a bit unwieldy as a context menu, and should become radio buttons and checkmarks, just like you propose.
The "Open with" menu would still be useful in so far as you don't have to have the app running, because it would be started for you. Also, depending on how "intelligent" the app is, you don't have to create a new canvas and set its dimensions before being able to paste from clipboard.

changing from "whole screen" to "only active window" etc. would be possible even after taking the screenshot.

A discussion along these lines is also present in ticket #4100. However, I don't see why it is so much more work to just take a new screenshot, especially if the "Take screenshot" button is moved into the preview panel.

Sometimes you have to set up something and wait until some effect takes place that you want to screenshoot. Re-taking a screenshot isn't then just one press of a button, but may be much more involved.
That's why I would love to take a screenshot once and then be able to decide to pick just one window with/without border or pointer or take the whole screen instead. (Maybe even crop to one region. Resizing the Screenshot app window could also resize the screenshot representation...)

  • double-click: opens in the preferred app. * drag&drop to save, right-

drag&drop additionally offers file formats.

Again, does this really improve things over the current way of saving screenshots?

The "double-click to open in the preferred app" isn't very useful, I agree.
Drag&drop OTOH is very Haiku-ish, see ShowImage or SoundRecorder.
You can quickly save to the Desktop or already open folders, you drop the image into an open graphics editor or FTP window or an email. With the right-click drag&drop you can also specify the file format within one action. You don't have to find, aim, click-to-open another menu in a save dialog.

I think it would be useful to have the PRINT key just take a screenshot with the preference defaults as usual and have SHIFT+PRINT open the Screenshot app.

If you mean the PrtSc key, on my keyboard it has to be used with shift, or else it is a SysRq.

OK. ALT+PRINT (which would be ALT+SHIFT+PrtSc for you) may be better.
Just using PRINT would use the Screenshot app's settings.

Thanks for looking into improving the Screenshot app, BTW!

in reply to:  13 ; comment:14 by Wim, 10 years ago

Replying to humdinger:

Replying to Wim:

Add a "Clipboard" in the "Save in:" drop-down.

I have created a patch that adds a "Copy to clipboard" button. It just doesn't seem logical to put it in the "Save in:" menu. (It is also a lot more work :))

To me it fits perfectly in "Save in"... :)
Isn't it just as easy to do the clipboard-copying after receiving the respective BMessage from the menu item as it is when coming from the button?

The problem I was facing was that when you press the "Save Screenshot" button a file path is created using the choice from the "Save in:" menu, so somehow I need to track whether "Clipboard" was selected and make an exception. Since it would be perfectly possible to have a folder named "Clipboard" (or anything else I can think of), it would be necessary to track the selection using a boolean value, and it means that the position in the menu needs to be known. Anyway, things got a bit tricky, so I just decided it would be way easier to just have a button. What do you think, should I try again to place that option inside the "Save In:" menu?

The "Open with" menu would still be useful in so far as you don't have to have the app running, because it would be started for you. Also, depending on how "intelligent" the app is, you don't have to create a new canvas and set its dimensions before being able to paste from clipboard.

OK, I can see that. Do you know if there currently is an app available that is intelligent enough do do this? It only makes sense to list apps that can handle this kind of action.

Sometimes you have to set up something and wait until some effect takes place that you want to screenshoot. Re-taking a screenshot isn't then just one press of a button, but may be much more involved.
That's why I would love to take a screenshot once and then be able to decide to pick just one window with/without border or pointer or take the whole screen instead. (Maybe even crop to one region. Resizing the Screenshot app window could also resize the screenshot representation...)

OK, but if you have the whole screen, you can edit all you wish in a good image editing app. I like the idea of having apps that are good at one thing. I can see that it may improve your productivity if you can do all these tasks in a single app, but it might be easier to add a screenshot function to an image app than to add image editing capabilities to the screenshot app.

  • double-click: opens in the preferred app. * drag&drop to save, right-

drag&drop additionally offers file formats.

Again, does this really improve things over the current way of saving screenshots?

The "double-click to open in the preferred app" isn't very useful, I agree.
Drag&drop OTOH is very Haiku-ish, see ShowImage or SoundRecorder.
You can quickly save to the Desktop or already open folders, you drop the image into an open graphics editor or FTP window or an email. With the right-click drag&drop you can also specify the file format within one action. You don't have to find, aim, click-to-open another menu in a save dialog.

I was not aware of this. I need to learn how this works in Haiku and how other apps implement this, then I'll see what I can do.

I think it would be useful to have the PRINT key just take a screenshot with the preference defaults as usual and have SHIFT+PRINT open the Screenshot app.

If you mean the PrtSc key, on my keyboard it has to be used with shift, or else it is a SysRq.

OK. ALT+PRINT (which would be ALT+SHIFT+PrtSc for you) may be better.
Just using PRINT would use the Screenshot app's settings.

Do you think there is consensus for this? Personally I would prefer that the Screenshot app opens with a screenshot of the desktop if I press PRINT/PrtSc, like it is now.

Thanks for looking into improving the Screenshot app, BTW!

Your welcome! I hope you don't mind all the questions :)

in reply to:  14 ; comment:15 by stippi, 10 years ago

Replying to Wim:

Replying to humdinger:

Replying to Wim:

Add a "Clipboard" in the "Save in:" drop-down.

I have created a patch that adds a "Copy to clipboard" button. It just doesn't seem logical to put it in the "Save in:" menu. (It is also a lot more work :))

To me it fits perfectly in "Save in"... :)
Isn't it just as easy to do the clipboard-copying after receiving the respective BMessage from the menu item as it is when coming from the button?

The problem I was facing was that when you press the "Save Screenshot" button a file path is created using the choice from the "Save in:" menu, so somehow I need to track whether "Clipboard" was selected and make an exception. Since it would be perfectly possible to have a folder named "Clipboard" (or anything else I can think of), it would be necessary to track the selection using a boolean value, and it means that the position in the menu needs to be known. Anyway, things got a bit tricky, so I just decided it would be way easier to just have a button. What do you think, should I try again to place that option inside the "Save In:" menu?

IMHO an extra button isn't such a bad idea. Just because "Copy to clipboard" seems to fit somehow in the "Save in" popup doesn't automatically make it a good choice. It borders on hiding features and putting them somewhere the user may not expect them, just for sake of a more compact GUI. Some people may not even associate "Save" with clipboard at all, but have a very strong mental connection to storing something on disk. And indeed the clipboard is not such a persistent storage.

in reply to:  15 comment:16 by humdinger, 10 years ago

Replying to stippi:

IMHO an extra button isn't such a bad idea. Just because "Copy to clipboard" seems to fit somehow in the "Save in" popup doesn't automatically make it a good choice. It borders on hiding features and putting them somewhere the user may not expect them, just for sake of a more compact GUI. Some people may not even associate "Save" with clipboard at all, but have a very strong mental connection to storing something on disk. And indeed the clipboard is not such a persistent storage.

I can see what you mean. OTOH, if it's decided to have a "quickshot" feature, that is doing a screenshot without opening the Screenshot panel (like the PRINT key does now), we could re-use the settings of the Screenshot app. Setting "Clipboard" there could then be used for the "quickshot".

in reply to:  14 ; comment:17 by humdinger, 10 years ago

Replying to Wim:

Anyway, things got a bit tricky, so I just decided it would be way easier to just have a button. What do you think, should I try again to place that option inside the "Save In:" menu?

I'm not an experienced programmer, but couldn't you simply add a

	fOutputPathMenu->AddItem(new BMenuItem(TR("Clipboard"),
		new BMessage(kCopyToClipboard)));

or whatever your button currently sends to set off the clipboard-saving? Make it the first item in the menu and add another separator to set it apart from the paths below.

The "Open with" menu would still be useful in so far as you don't have to have the app running, because it would be started for you. Also, depending on how "intelligent" the app is, you don't have to create a new canvas and set its dimensions before being able to paste from clipboard.

OK, I can see that. Do you know if there currently is an app available that is intelligent enough do do this? It only makes sense to list apps that can handle this kind of action.

AFAIK no app is currently taking the dimensions of what's in the clipboard to pre-set the dimensions for a new canvas (as Photoshop for example does). What I meant is simply launching an app with that screenshot image. Though I don't know if that's possible without the parameter being a file on disk, like " WonderBrush /boot/home/screenshot.png ".

OK, but if you have the whole screen, you can edit all you wish in a good image editing app. I like the idea of having apps that are good at one thing. I can see that it may improve your productivity if you can do all these tasks in a single app, but it might be easier to add a screenshot function to an image app than to add image editing capabilities to the screenshot app.

I can see how one can get carried away quickly here. :)
Nevertheless, changing between fullscreen and active window after the fact would be nice. And resizing the screenshot representation along with the Screenshot app window would be cool to see if you actually captured what you wanted. I agree, cropping could be quickly done in (an "Open with..." launched :) ) ShowImage.

OK. ALT+PRINT (which would be ALT+SHIFT+PrtSc for you) may be better.
Just using PRINT would use the Screenshot app's settings.

Do you think there is consensus for this? Personally I would prefer that the Screenshot app opens with a screenshot of the desktop if I press PRINT/PrtSc, like it is now.

At the moment, Screenshot doesn't open on PRINT.
IMO it'd be sensible to have a way to take "quickshots" that use the current settings of the Screenshot app without actually showing the app itself. A bit like it is now, but respecting file format, save location, fullscreen/window settings instead of always dumping fullscreenies as PNG in ~/. The actual shortcuts are debatable, of course.

Your welcome! I hope you don't mind all the questions :)

Not at all!

comment:18 by tangobravo, 10 years ago

If the clipboard is to be added to the "Save In" menu, then I think it needs renaming - I agree that some users wouldn't expect to find it there. Maybe "Destination: "?

I don't think it's such a bad thing to have it as a button though. Copying to the clipboard will replace the data there already, so having that happen on the "quick screenshot" function (if the user has selected that option on a previous screenshot window) might lead to unexpected loss of data.

comment:19 by humdinger, 10 years ago

Yeah. But what if that's exactly what I want?
One more reason to incorporate Werner Freytag's excellent ClipUp. :)

in reply to:  17 ; comment:20 by Wim, 10 years ago

Replying to humdinger:

Replying to Wim:

Anyway, things got a bit tricky, so I just decided it would be way easier to just have a button. What do you think, should I try again to place that option inside the "Save In:" menu?

I'm not an experienced programmer, but couldn't you simply add a

	fOutputPathMenu->AddItem(new BMenuItem(TR("Clipboard"),
		new BMessage(kCopyToClipboard)));

or whatever your button currently sends to set off the clipboard-saving? Make it the first item in the menu and add another separator to set it apart from the paths below.

Sure, if it is ok to copy the data to the clipbpoard as soon as you select it from the menu. That doesn't seem very logical to me though. And I still need to deal with the "Save screenshot" button, because you would want to copy the data to the clipboard if you have selected that option from the menu and press this button, right?

At the moment, Screenshot doesn't open on PRINT.
IMO it'd be sensible to have a way to take "quickshots" that use the current settings of the Screenshot app without actually showing the app itself. A bit like it is now, but respecting file format, save location, fullscreen/window settings instead of always dumping fullscreenies as PNG in ~/. The actual shortcuts are debatable, of course.

I am not sure then what you mean with the PRINT key. Which key is that?

Anyway, I am off-line for the next couple of days, but I will have some time to think how to best improve this application (I hope).

in reply to:  20 comment:21 by humdinger, 10 years ago

Replying to Wim:

Sure, if it is ok to copy the data to the clipbpoard as soon as you select it from the menu. That doesn't seem very logical to me though. And I still need to deal with the "Save screenshot" button, because you would want to copy the data to the clipboard if you have selected that option from the menu and press this button, right?

Ah, you're right. So the menu item "Clipboard" should only be flagged and checked when the "Save" button is pressed.

At the moment, Screenshot doesn't open on PRINT.

I am not sure then what you mean with the PRINT key. Which key is that?

Sorry, I should have said the Screenshot GUI isn't opened on PRINT key.

Anyway, I am off-line for the next couple of days, but I will have some time to think how to best improve this application (I hope).

Thanks!

comment:22 by Wim, 10 years ago

Has a Patch: set

comment:23 by Wim, 9 years ago

Has a Patch: unset

comment:24 by Wim, 9 years ago

Patch is obsolete, the current Screenshot app has a "Copy to clipboard" button.

comment:25 by Wim, 9 years ago

Description: modified (diff)

Modified the description to indicate stuff that has been done, or was decided to not be necessary.

comment:26 by Wim, 9 years ago

Description: modified (diff)

Settings button added in hrev37335.

Note: See TracTickets for help on using tickets.