This post is more to float an idea or two and to find out about the feasibility of these particular feature requests as anything. Until my thoughts crystalise, it's probably too much to explain on a Github comment asking about the features.
Request 1: be able to interact with the rest of GZDB (especially the mapping functions) when the find dialogue results are active.
The GZDB search feature is pretty neat. It can search for (and replace) many different types of objects and presents the search result in a nice, easy to read pop-up dialogue.
When I click on the various found items in the list, the map screen jumps to that item and centres it on the screen.
So far, so good.
Then I come to try and edit the found item. That's where problems/limitations can manifest.
In DeePsea (sorry to keep harping on about it, but it's what I am familiar with) there is a very similar find functionality that up to this point behaves in much the same way as GZDB, producing a similar looking (if simpler) results dialogue that performs in a very similar way (i.e. click on a found item and the map jumps to that position and highlights the found item).
(The result dialogue is simpler partly because the search type and parameters are picked from menus rather than the dialogue - many of the options in GZDB are also present in the DeePsea menus.)
However, in DeePsea I can move my mouse away from the found items list and interact with the map screen in the normal way. The found items dialogue stays on top, but I have full access to the normal 2D mapping features, the other menus, dialogues, everything. So, I can edit whatever I want on the map and then move back to the found items to click on another item.
GZDB does not let me do this.
In GZDB, the focus stays on the found items dialogue and (correct me if I'm wrong) I can't interact with the map at all.
"But Enjay, GZDB has the "Edit selection" button". True, and that does much of what I want, but the problem is, all it allows me to do is edit the selection. So, I can't - for example, move my mouse across to the map, delete the item in question, move back to the found items, pick another one and continue. I have to quit the found items dialogue, delete the item and search again.*
Or, as another example, it also means that I can't work on other items nearby that were not in the "found" list. The following is what I was doing when I generated the above pictures: I wanted to find the control sectors for 3D floors and edit the sector properties. There isn't anything to particularly identify these sectors because there is nothing unusual about them versus other sectors. So what's the best way to find 3D control sectors? Search for line type 160. The results of this search (in both GZDB and DeePsea are shown above.)
In DeePsea, I can find all of the line type 160s, click through the found items list, move my mouse across to the map area of the screen, hit "S" to enter sectors mode and hover over the control sector to see its properties to find out if it is one that I want to edit. If it is I can then hit enter to edit the sector, finish what I want to do with it, go back to the found items list and click on the next entry (which would then jump the map to centre on the next found line 160) and I can rinse and repeat until I have found all of the sectors that I want to change.
With GZDB, the above, basically, can't be done. I can't change to sector mode in the map without closing the found items dialogue (so I can't quickly check if the found line is attached to a sector that I want to edit) and I certainly can't edit, delete or otherwise change anything other than the found line. So, doing the above task is a much longer process because every time I jump to a new line 160, I have to exit the found items dialogue, go to sector mode, check the sector's properties (and edit if necessary) then start a new search, remember where I was on the found items last time, scroll to that entry, pick the next one, rinse and repeat. It's actually quite a pain, especially if the found items list is long (as in the above example) and it's a pretty major limitation IMO.
So, as I said, I'm pretty sure that the functionality that I am looking for is not (currently) in GZDB. I guess my concern is that such an addition feels like it might be quite a fundamental change to the way this particular aspect of GZDB works (programming and window priority-wise) and, therefore, may not be that feasible. What do people think? Is there any merit in being able to do this (obviously I think so and I use it all the time in DeePSea - and not having it really hampers my mapping in GZDB). How feasible would it be for a GZDB dev to implement?
*I know that when I delete items with this method, sooner or later the map goes out of synch with the found items list and a new search is needed anyway. However, scrolling to the end of the list and working upwards, deleting the highest numbered items first, minimises the need to re-search too often.
Request 2: be able to output the results of the find and error dialogues to a text file.
As a second, associated, feature request, it's also worth pointing out another very useful button on the DeePsea version of the find results dialogue: the ability to "Save as Text". What this actually does is open a copy of your text editor (notepad by default, but configurable (mine opens Textpad)) and the readout from the found items list is sent to the text editor. Very, very useful. I use it a lot.
Similar "Save as Text" functionality exists for other dialogues like the error checker (I've posted the results of the DeePsea error checker on these forums for people dozens of times). Being given a text readout of things such as missing textures names in a map (or whatever) allows me to use the search features of my text editor and do things like have a text file open in one window and an explorer folder in another while I search for missing textures in the list and matching texture file names (to add them to a resource file) in explorer. Or I can use the output from the dialogues and macros in my text editor to generate batch files that I then use to manipulate lumps with external tools etc etc. The possibilities are endless.
Again, I don't *think* that this can currently be done in GZDB but being able to get save readouts from these dialogues would be a very welcome thing to be able to do.
To illustrate:
A quick error check on MAP01
and text file output:
Code: Select all
Error Checker
-- 00000 ** Change Error Check Options to ignore some errors **
-- 00000 * !! TEXTURES checked are per current SETTINGs !! *
-- 00000 ** Remove Error Dialog option to manually see errors **
-- 00000
L 00334 Linedef 334: sideDef2 478 has no lower texture
L 00335 Linedef 335: sideDef2 480 has no lower texture
L 00369 Linedef 369: sideDef2 528 has no lower texture
So, thoughts on any of this?