Author Topic: 9 feature suggestions  (Read 21739 times)

Offline David Serrano

  • PTeam Member
  • PixInsight Guru
  • ****
  • Posts: 503
9 feature suggestions
« on: 2007 February 22 11:33:54 »
Hi there. Quite a nice piece of software, its only drawback being the license :^P.

Here's a list of things, in no particular order, that I took note of, for possible implementation in the program. I'm talking PI Standard here.

Assign mask to image via DnD
It could be made easier if the simple drag and drop of a view selector (the one corresponding to the whole image) to another image would apply the dragged image to the destination one as a mask. Currently, dragging a selector anywhere except its own tray makes a duplicate of the image.

"Set icon identifier", "Set image identifier"
Currently, when this options are selected, a dialog with two text boxes appears. Usually, the user is going to replace the content of the "New identifier" text box, and it would be easier if the text were already selected, so the simple press of any key would replace it.

This would be even more useful if this automatic selection was performed only if the text begins with "Image" or "Process", because if this is not the case, it means that the user has previously assigned an ID and (s)he just wants to modify it.

More flexible toolbar management
When moving toolbars around, they tend to collapse instead of the more useful behavior that would be swap places. The easiest way to see this is by trying to move a toolbar between two ones. Moreover, toolbars cannot be placed in the center toolbar space (or anywhere else). They can't float, too. If this is difficult to implement, a first approach could be a double click in the "handle" of each collapsed toolbar, that would expand it.

Compressed files support (zip, rar, gzip, bzip2, stuffit...)
Not much left to say :^). The code could be in separate modules, just like the ones that implement processes.

Logarithmic scale in histograms and curves
This has been mentioned (and answered!) here in the past but I felt like repeating it again ;).

Process identifiers internally prefixed with process type
I've found myself trying to set the same identifier to several different process icons, with the idea that PixInsight should realize that processes are different and thus it should let me do that. The documentation explains why this is not possible so I ended up with two icons called "H_luma" and "USM_luma". But I think the information provided by the prefixes "H_" and "USM_" is already contained in the little image that appears in the process icon, and PixInsight knows it, so it could be a good idea to add this prefix internally. This way, the requisite that all identifiers must be unique could be relaxed a bit.

I bear in mind that this couldn't be feasible because it could potentially conflict with some primary design decision of PixInsight.

Multithread
I don't know if PixInsight is a multithreaded application. Machines with more than one processor (not mine!) would obviously benefit from this.

Don't "Zoom to fit" when cascading windows
Personally I don't like that the "Cascade windows" option in the "Window" menu performs a "Zoom to fit" on each window. I'd like it to respect my zoom setting for each one.

Zoom in histogram and curves
Increasing the zoom (without the keyboard shortcuts) implies a movement towards the top-left corner, i.e. the program doesn't keep track of what zone of the histogram is being shown, and so it doesn't zoom there. This could be seen as a secondary suggestion if everybody used the keyboard shortcuts, but I think many people won't (not everybody reads the documentation :^)).

Another thing is that scroll bars are visible only when it makes sense (when zoom > 1). This can also be a cause of view area change, albeit an small one, by performing this steps:
 - Set horizontal zoom to 1 and vertical to 2
 - Go to the bottom of the histogram
 - Set horizontal zoom to 2, then back to 1 again
Oops, we're no longer at the bottom! I'd like that scrollbars were always visible so the view was never altered.

And that's all folks :^P.
--
 David Serrano

Offline Juan Conejero

  • PTeam Member
  • PixInsight Jedi Grand Master
  • ********
  • Posts: 7111
    • http://pixinsight.com/
9 feature suggestions
« Reply #1 on: 2007 February 28 01:22:28 »
Hi David.

Thank you for your intelligent and creative suggestions. It is always a delight for us to receive that kind of feedback, which plays an essential role in our work.

Some of your points would require more in depth ellaboration, but I'll try to comment them in what follows.

Quote
Assign mask to image via DnD

This sounds well and is in fact pretty easy to do. You'll probably see it implemented in the next version. However, to avoid sources of confusion, dragging a view selector will apply a mask if used along with a keyboard modifier (Ctrl or Shift).

Quote
"Set icon identifier", "Set image identifier"

OK, this was in fact an error. In current version (build 255) these dialogs preselect the identifiers. Thanks for detecting this; we probably wouldn't have managed to see it in about three or four years :lol:

Quote
More flexible toolbar management

I fully agree with your analysis. However, the problem here is with Qt 4. I indeed like much better how tool bars were being managed in Qt 3. In Qt 4, tool bars are not floatable. This is a problem, but for now I prefer to wait and see how the trolls solve this in incoming Qt releases. Eventually, we'll have to customize Qt's code for tool bar management, but frankly, I prefer to avoid doing that kind of things...

Quote
Compressed files support

I'm not sure what do you mean here. Do you refer to direct support of compressed image files?

Quote
Logarithmic scale in histograms and curves

I would like to see this implemented. We have also an important improvement ready for the CurvesTransform interface (a new type of curve interpolation, much more flexible than the current cubic splines). But  these improvements will have to wait because they are not priority tasks right now.

Quote
Process identifiers internally prefixed with process type

Unfortunatelly, this is not feasible due to fundamental design principles, as you have noted: all object identifiers have to be unique within their naming contexts (namespaces) in PixInsight. This means that two icons cannot have the same identifier, regardless of the process classes their encapsulated instances pertain to. Having stated that, perhaps we could devise a more refined procedure to assign automatic icon identifiers. I'll think about this.

Quote
Multithread

PixInsight is a strongly multithreaded environment. The core application uses parallel processing for some performance-critical tasks, as screen renditions of images, real-time previews, color management, and many built-in JavaScript image processing routines. Most standard processes have been parallelized recently and are able to use all available processors. The "parallel" command allows you to manage parallel processing for the core and all installed processes. Type "help parallel" on the command line.

Quote
Don't "Zoom to fit" when cascading windows

I'll add this as an option to the GlobalPreferences process (which I'm writing now).

Quote
Zoom in histogram and curves

Well, don't be so pesimistic ;-) I hope that most users will read *at least* the documentation about keyboard shortcuts and mouse tricks...
Jokes apart, I'll try to fix this "return-to-the-origin" problem on the HistogramTransform and CurvesTransform interfaces. Your suggestion about permanent scroll bars on the histogram will be implemented as an option in the histogram preferences interface (processing interfaces can have private preferences; see an example on the DynamicCrop interface).

Thank you again for these great contributions.
Juan Conejero
PixInsight Development Team
http://pixinsight.com/

Offline David Serrano

  • PTeam Member
  • PixInsight Guru
  • ****
  • Posts: 503
9 feature suggestions
« Reply #2 on: 2007 March 06 06:39:04 »
Quote from: "juan_conejero"
Quote
Compressed files support

I'm not sure what do you mean here. Do you refer to direct support of compressed image files?


I'm talking about being able to open a file with name foo.tiff.gz, foo.fits.bz2 and so on.

Quote from: "juan_conejero"

Quote
Process identifiers internally prefixed with process type

[...] two icons cannot have the same identifier, regardless of the process classes their encapsulated instances pertain to.


But what if, just after the user types a new name for the process and hits Enter, this name gets internally changed? So there could be two processes apparently called "foo" but from the POV of the program, one of them would be "Hist_foo" and the other "Curves_foo".

Or, said another way, the processes names are different, but the user is presented only the part after the first underscore. I think this is easily doable. Just two places of the code would have to be changed:

 - When the user renames a process, add some "String_" before the entered text.
 - When the process name is about to be painted on the screen, remove that string.

Taking it a bit further, the string could be random ;). Then, the limitation would just dissapear! (but the beauty of the approach currently used would equally vanish).
--
 David Serrano

Offline Carlos Milovic

  • PTeam Member
  • PixInsight Jedi Master
  • ******
  • Posts: 2172
  • Join the dark side... we have cookies
    • http://www.astrophoto.cl
9 feature suggestions
« Reply #3 on: 2007 March 06 17:44:24 »
Hi David

There is a conceptual problem with your approach. The user must be aware "always" of the full name of the process icon. Right now we are using them mainly from the GUI, creating them with the drag and drop object mainly, and then just saving them, or droping them on images. This is just the top of the iceberg. With the current JavaScript capabilies we may make use of process icons as well, and a developer is going to have several headaches if the process icons has different names, specially if he wants to call it to perform a task. Now, about names, for inner consecuence, they should be the same as the process encapsulated. For example, for the histogram, HistogramTransform_ and for the curves, CurvesTransform_. I think that this is too long :D specially with other processes, like AutomaticBackgroundExtractor :) I thing that it is easier that the user add a custom postfix to theyr names, and just don't add more complications. Anyway, I think that there may be an option that automatically prefixs or postfixs meaningfull tags, and that may be a help, but, they should be always visible, and in no ways two processes may show the same identifier.


Just my opinion :)
Regards,

Carlos Milovic F.
--------------------------------
PixInsight Project Developer
http://www.pixinsight.com