Things I would pay to see in FF4

Started by George Bleck, October 01, 2013, 08:58:22 PM

Previous topic - Next topic

Elias Montoya

Quote from: Jean-Pierre Leroy on October 04, 2013, 05:17:13 AM
3 years ago I posted a FF project in order to update automatically PB and Firefly settings based on the current drive letters, see this post:

http://www.planetsquires.com/protect/forum/index.php?topic=2640.msg20028#msg20028

Thanks Jean, i will take a look.

Not to put your work down, of course, but i think it would be awesome to have native support for this. :)
Win7, iMac x64 Retina display 5K, i7-5820K 4.4 ghz, 32GB RAM, All updates applied. - Firefly 3.70.

Paul Squires

Theo,

I have been working on your new feature suggestion. Attached you will see a screenshot of the Properties that will now be available for Modules. Two properties, "ParseModule" and "OutputIndex" will dictate whether FireFly will parse your code modules. If no parsing, then you can specify the order that you want the module outputted ("OutputIndex") in the code generation. These modules will be output after the Windows includes but before the FireFly includes. Once the new feature is fully implemented then it will appear in the next beta upload.
Paul Squires
PlanetSquires Software

Paul Squires

Theo,

Please try the attached new FireFly exe. It allows you to specify what code modules to exclude from any FireFly processing (using the "ParseModule" property). It also allows you specify in what order to output them during code generation (using the "OutputPosition" property). The includes are output after the Windows includes and before the FireFly includes.

Please see screenshot. That example shows 3 modules that were designated by the user to be excluded from any FireFly pre-processing. You can drag and drop the ordering or simply use the up/down arrows.

Please let me know if this new feature does what you are looking for.

Thanks!
Paul Squires
PlanetSquires Software

Theo Gottwald

#18
Hallo Paul,
from what i have rad, this is exactly what was missing.
I'll however need some time to really inmplement it in my "productive code".
If there will be any issues i will of course report to you.
Until then rake this topic as successfully closed.
Just testing the new feature and again there is one small feature missing in FF that is available in any other editor: "Open Explorer" for the Source files.
The best place would be in the Menu (attached picture).


Theo Gottwald

I have an include file that only contains important constants.
Its the second file, that i add using "Add Module".
Then it is OPEN AND selected in the Workspace explorer.
Now i choose Properties in the WSE.
Now something strange happens. The mask "Parse Module/Output position" is visible fo a tenth of a second and then dissappears and the mask for the MainDialog appears. Even though the MainDialog is not selected.
In this case i can not make the necessary settings. The mask should be persistant, so i can use it. A 1/10 of a second is not enough time.
If you want to see, you can of course call me and we can also make a Teamviewer remote seesion at any time ...

Paul Squires

Thanks Theo - I am going to change the way this works. Rather than have the options on the Properties tab of the Workspace, I am going to move it to the "Project", "Project Properties" as a new tab. From there you will be able to select and de-select from a list of modules and also move them into the correct order. Similar to how the TabIndex window looks like on the Workspace.

I will post the new approach later this evening once I have finished coding it.
Paul Squires
PlanetSquires Software

Paul Squires

Hi Theo, I have changed the method for excluding modules from processing. Please see screenshot and new FireFly3 attached.

Thanks,
Paul
Paul Squires
PlanetSquires Software

Jim Dunn

(Paul, "new FireFly attached"... is this an upgrade beta??)
3.14159265358979323846264338327950
"Ok, yes... I like pie... um, I meant, pi."

Theo Gottwald

#23
Paul,
this is a way to go. And it seems to work.

Now from usability. Actually ... when adding a new Module, i have

- to close that window,
- open the "add module window"
- add the new Module
- close the "add module window"
- reopen this window
- then the newly added module is very down at the wrong place
- i have ro move it all up clicking 20 times

and this for 10 or more currently "private" Modules.

Therefore ... missing 4 Buttons here, to make it a "Modula Manager Window":

1. Add Module (leads to the Add Module Mask)
2. Delete Module
3. Move Module all up (Makes it Top-Element in the LV)
4. Move all down

Then you could place it as "Module Manager" on the current "Add Module" Button.
And therefore add a new Level of usability. The "one place" where you can manage all about modules.

*******************************************************************
Something else comes to my mind looking at the code:

For next release think of "Reusing this Module Manager WIndow
" as a  "SLL-Manager"
that works in the same way. (Add, move up, down, remove ...)
SLL can be automatically copied into a SLL-Folder when added to a project.
And can be seen in the Project explorer.
Add a Button "SLL-Manager" right of the "Modules Manager" (currently Add Modules" Button).

Paul Squires

Thanks Theo, you can drag and drop the modules in that list. Much like you can drag and drop the listbox lines in the TabOrder for in the Workspace. I have updated the label on the form to remind users that the list can be drag and dropped.

After thinking about this for awhile, the best approach would have been for me to add an additional node on the Project Explorer called something like "Modules (no parsing)". The user would add modules to the project and then simply drag and drop the module names from the "Modules" branch of the Explorer treeview to the "Modules (no parsing)" branch. The ordering of the modules in that branch would dictate the positioning of the module filename in the code generation. If I get time today then maybe I will look at such an approach. It does seem like the easiest and most logical way to go with this.
Paul Squires
PlanetSquires Software

Elias Montoya

Win7, iMac x64 Retina display 5K, i7-5820K 4.4 ghz, 32GB RAM, All updates applied. - Firefly 3.70.

Theo Gottwald

Paul, i think the best concept would be if "all things to do with Modules" is at one place.
Whichever place suits you fine.
Sideline: Warch out that things can be done with only a few Clicks.
Drag and Drop is good as long as the Control does not need to Scroll.
Once Scrolling is involved a "go all up" Button is faster.
As said, it actually already works rechnically.
But I'll wait with more Module changes until you come out with the final sollution.

Joe Byrne

Quote from: TechSupport on October 03, 2013, 07:13:43 PM
Unicode
Debugger
Better Intellisense
Integration of a source code revision system (eg. Fossil   http://www.fossil-scm.org/index.html/doc/tip/www/index.wiki )
More comprehensive documentation
Project templates
... and about a hundred more things  :)

And ready to go by Thursday if you please :)

Elias Montoya


Paul i just had an idea to make easier for firefly finding the offending line when the compiler complains.

Why not creating only one big code file instead of creating multiple files? Only for the firefly-generated code, the rest would be
OK to make then include files. Then, just find the offending line in the big file, and parse back to the begining of the form code,
you can add there a  name for the form being parsed and the rest is self explanatory.
Win7, iMac x64 Retina display 5K, i7-5820K 4.4 ghz, 32GB RAM, All updates applied. - Firefly 3.70.

Paul Squires

Thanks Elias, such an approach could certainly help. Thanks. There are other things at play as well with FireFly such as the automatic code re-ordering, collection of declares, globals, types, unions, etc (CODEGEN_*_DECLARES.inc) that need to be referenced from the PB compiler error log file --> CODEGEN source code --> FireFly editor.

I have built a new parsing engine that I will implement into FireFly soon. That new code will certainly help with the error positioning.
Paul Squires
PlanetSquires Software