[Solved] Proposed Console Manipulations

A forum for research and development of the user interface of FreeCAD
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Post Reply
eajmarceau
Posts: 73
Joined: Tue Feb 22, 2022 9:16 pm

[Solved] Proposed Console Manipulations

Post by eajmarceau »

I'm not sure of the language that may be used to refer to these things so I will use language to describe the features that I feel would be desirable to a number of users.

Feature #1 - Button in the Icon Menu Bar

Option A
I believe one manner of handling what I am suggesting is to have a button in the Menu Bar which toggles the state of visibility, independently, for each of the Python Console and Report Console.

Option B
Instead of a Menu Bar button, is there a means by which the FreeCAD GUI could program "presets" on the function keys such that when any of the FreeCAD associated windows become the active window, and likewise, reinstate the previously programmed keyboard defaults when that focus is transferred to any non-FreeCAD context.

Option C
Instead of either of the above, offer a mechanism where mouse mouvement to the FreeCAD window edge triggers pop-out/slide-out consoles, which is then temporarily fully displayed until the mouse moves back "inside" the main window frame (at which point it would auto-hide) or until a mouse click in the displayed console locks it open until it is "minimized/closed/retracted".

Comment:
I prefer Options A/B because of the feature I propose next.

Feature #2 - Console Windows with OS Behaviour

When console windows are "detached", I would like the windows to allow the main window to come to the foreground if clicked on. Currently, detached console windows remain in foreground, hiding visibility of the full main window, which I believe would be the main purpose of having the consoles detachable as separate windows. I was not able to find any preference setting/option to give those windows that behaviour. I do see a setting for "tiled background", but if that option is offered, then I don't visualize the implementation of a fully detached window for each of the two consoles as being a large hurdle, but then I don't know anything of the complexity of the coding that has provided the current functionality. I am not familiar with the coding which would allow you to "re-attach" a "detached" console for this context.

Thank you for hearing me out and for your consideration.
Last edited by eajmarceau on Sun May 08, 2022 5:41 pm, edited 1 time in total.
User avatar
adrianinsaval
Veteran
Posts: 5551
Joined: Thu Apr 05, 2018 5:15 pm

Re: Proposed Console Manipulations

Post by adrianinsaval »

eajmarceau wrote: Sun Apr 10, 2022 3:32 am Feature #1 - Button in the Icon Menu Bar
Option A
You would have had to dig very deep to find this yourself but this macro: https://forum.freecadweb.org/viewtopic.php?f=22&t=41265 provides this functionality. It's also possible to make a macro to hide/show the panels individually and put them on toolbars and giving it a keyboard shortcut, I didn't quite understand your oprtion B but maybe assigning keyboard shortcuts to such commands would fullfill this?
Option C
This is implemented in realthunder's branch, hopefully it'll get into master next version.
Feature #2 - Console Windows with OS Behaviour
I think qt has flags to make a window dependent or independent to the main window. What's your use case for fully detaching the console window? if just for convenient hide/show I think the other features you propose are better.
eajmarceau
Posts: 73
Joined: Tue Feb 22, 2022 9:16 pm

Re: Proposed Console Manipulations

Post by eajmarceau »

Thank you, Adrianin, for responding to my suggestions.

Regarding Feature #2, I'm a person who prefers to have windows dedicated to a task, and maximize the footprint of those windows in an overlapping pattern where each is partly visible at all times for cursor activation to switch tasks. To that end, I would like to have ample visibility of historical entries in the consoles at first glance when I switch to those, with minimal line wrapping. Then when I switch back to the main window, I maximize the real-estate for the graphical objects.

That "use-case" may not be perceived as common, but I believe that before "professional" grade users get a display large enough to make it less annoying to have those windows hanging around at the bottom for various messaging, young adults with limited devices (small displays), or seniors with limited income, need to have greater flexibility from their tools to adapt to their circumstances to make it practical to use them under those limitations. After-all, when there is much geometry on the screen, it is always good to zoom in be able to correctly select geometry. Yes, I acknowledge that hiding geometry option thru the object tree is helpful, but depending on that all the time can become tedious.

Does that make sense?

About Option B on Feature #1, I was first exposed to keyboard shortcuts back in 1974, when keyboards were very limited. I never liked them then and I avoid them to this day. Single-key actions is my preferred mode, and function-keys (F1-F12) exist for that intended purpose. You would be amazed at how quickly somebody ramps up on a new application when specific keys can be assigned specific functions. Better yet, tablets which are dual-function for cursor positionning on the one hand, and with a function grid mapping (colour-coded for functional association) on the other hand. Even better when the function grid map can be customized with substitution of more-frequently-used functions for even greater performance. I saw that as the CAD specialist for 4 very different CAD systems (Graftek, Cadkey, Catia V2, Pro/Engineer early releases). Having everything crammed into a single window, especially on a smaller display, is definitely overated. For single Window mode, everything offered in that window, I see a need for a display of minimum 23" diagonal to have enough real estate to that to be practical. For myself with only the 17" display that I can afford, I need to work with the overlapping windows mentionned earlier, along with maximizing the use of features the hardware in hand already has, namely function keys. I believe such a constrained environment is what many teens trying to break out of limited circumstances are working with. Let's make it easier for them to adopt and prefer FreeCAD.
User avatar
adrianinsaval
Veteran
Posts: 5551
Joined: Thu Apr 05, 2018 5:15 pm

Re: Proposed Console Manipulations

Post by adrianinsaval »

eajmarceau wrote: Sun Apr 17, 2022 3:19 am About Option B on Feature #1, I was first exposed to keyboard shortcuts back in 1974, when keyboards were very limited. I never liked them then and I avoid them to this day. Single-key actions is my preferred mode, and function-keys (F1-F12) exist for that intended purpose.
AFAIK it's perfectly possible to have single key shortcuts, after all there are many single key shortcuts in sketcher, so I think you're just a little confused here.

I will agree that having the option to have independent windows would be nice, but this might not attract much developer interest, so I recommend that you research how qt makes a window fully independent (I think the term for the currrent behavior is "modal window") and either make a PR to allow this option or make a macro for your use. Also, the other options I gave you for showing/hiding those windows also work when they aren't docked, so you can make them big and use a shortcut/command/button from the macro to make them shown or hidden.
eajmarceau
Posts: 73
Joined: Tue Feb 22, 2022 9:16 pm

Re: Proposed Console Manipulations

Post by eajmarceau »

Thank you again, Adrianin.

I was indeed confused about the way the things worked under Tools/Customize. I have succeeded in redefining one function key to a preferred action, and that worked well. Also, if I understand correctly, I could program those function keys for different "habitual" macros or external programs. That will be excellent! So ... with Option B confirmed, Feature #1 is closed (for now ... since my ultimate goal is to get those customized buttons).

Regarding Feature #2, to implement a qt action to detach/attach so that it floats independent of the parent window, and not be limited to floating within the confines of that parent window's outline, I will need to research that. I quickly glanced at some of the posts in the link you provided (https://forum.freecadweb.org/viewtopic.php?f=22&t=41265) and I think it is promising, but I need to understand much more of what has been done and said in that discussion because I can comfortably say I will find a suitable solution after my study of those. Also, on this point, since I have never delved into the window-managing GUI code of any tool I've ever dealt with, that will be a completely new venture for me. I hope that you will be patient with how long it will take me to get back to you on that one.
User avatar
adrianinsaval
Veteran
Posts: 5551
Joined: Thu Apr 05, 2018 5:15 pm

Re: Proposed Console Manipulations

Post by adrianinsaval »

no rush on my side, I use that macro and modified it to work better with another addon I use (glass addon) and I'm happy with that.
btw not to be pedantic but my name is just Adrián, the insaval part is a shortened form of my last names :)
eajmarceau
Posts: 73
Joined: Tue Feb 22, 2022 9:16 pm

Re: Proposed Console Manipulations

Post by eajmarceau »

I have now used FreeCAD for just over 1 month, and understand better the workings of the GUI.

While my above request is still what I would prefer to have as end-user experience, the current tiling function of the different panels (allowing to pop to larger window, then pop back into the multi-panel layout) is providing functionality that I can live with, just not intuitive because of its inconsistency with the desktop's own windowing behaviour.

Thank you again, Adrián, for your help on this.
Post Reply