I spent last week in designing a new UI system for CE. I’ve hated the current docking system (JVCL Docking) from the very beginning. It has some bugs but because it’s coded to be terribly complex web of objects, it’s almost impossible to find the cause without spending weeks in studying how the damn thing works. So I thought, why not give it a go and try to write my own system. As always, plans changed on the way and I ended up with a sketch for complete UI system.
It’s still at a design level, very little code has been written. Designing it turned out to be a good lesson. I usually jump to coding very quickly and don’t do much planning. It works fine for small things but with big concepts, it usually means many wasted hours. If there’s no proper plan, it’s very easy to get lost or end up in a dead end. In those situations, you start to make compromises. It’s difficult to backtrack and delete the code you’ve spent days to write. So you try to find ways to make the broken code work, even if it’s not the best solution.
So I started from the user end and wrote an XML file that is used to create a UI for simple text editor. It was pretty easy to write and I was able to do major design changes on the fly without losing much time. Although, there were some struggles on the way. Right after I wrote a simple XML document for the docking system, I wanted to open Delphi and start coding. But I kept fighting against that urge and kept tweaking the XML. Few days later the simple docking system had been turned into a complete application framework.
I guess I should always start my work from the user’s point of view. I know it’s pretty self-evident but when your mind is a chaos like mine, it’s easy to be blind to the most obvious things.
Here’s the XML file if anyone is interested. It’s still a sketch but you can see the idea I’m after.
I did do few changes in CE too. Mainly bug fixes. QuickView panel now shows the selected file from search tab. I added Copy- and Move Selected Here items in the tab right click menu (be careful with them, they aren’t that well tested). I also fixed few issues that might cause CE to hang. If you have experienced hanging issues, let me know if this snapshot fixes them.
- Added "Copy/Move Selected Here" items in tab’s right click menu.
- QuickView panel now works with search results.
- QuickView now updates on tab change.
- Changed UI updating as a possible fix for hanging issues.
- Fixed "Zip extensions not showing in Filters panel" bug.
- Fixed "CE hangs if F5 is pressed while copying file" bug.
- Fixed crash on start if tab bar has a stretcher item.
- Fixed "manage wireless networks" Opens "My Documents" bug.