This week has been spent working on the FWFileRepManager class. It is, essentially, a controller class for all things FWFileRep-related (formally CDFileRep, as seen in a prior post), which includes handling the list of file paths one may be interested in, which is a unique and separate list to the list of files one may be interested in. In other words, the list of things you add to the editor window and the list of contents for those things are two unique beasts.
Consider dragging in a batch of files and folders from your desktop (yes, file_wrangler_2 allows for an arbitrary mix of files/folders from any location on your system). One may drag in more than intended, like an extra folder for example. In the FWFileView we just see a list of everything inside every folder of everything that was dragged. We could sort by file path, then select everything that is in the unintended folder, then delete those from the file list. Alternatively, we should be able to modify the original intention directly, not just clean up the result.
file_wrangler_2 now has a facility for deleting entire file paths from a list. So, drag in 25 folders, but you want to remove a few of them after-the-fact? No problem. An editor panel for working with the things you dragged in is available, with one line item per “thing added”. In the main window, you may see a list of 10,000 files, but in this window you will only see the list of 25 things. Select those things you didn’t intend to drag and delete. Anything matching that signature are filtered from the main file list with no reloading of the files necessary.
So far, I’m really happy with the overall speed of file_wrangler_2 and am working hard to make sure that it only does exactly the work asked of it. This requires a fairly constant, deep consideration of what a user’s intention is at any given moment. Building an internal core that is finely tuned to the specific tasks at hand, while remaining flexible for future growth and and expansion is proving challenging, to say the least.
“How much optimization is too much?” is a question with which I struggle daily.