The new jaBuT Backup 2019
Time goes by, code is being added, removed again and improved. But now it’s finally time to let you know what I’ve been working on lately, what’s coming this year and what you can look forward to!
It’s now about two years ago when I started implementing my first tests for a new feature I always called “The new profile list”. This feature and a lot of other things are finally in its final stage and can be showcased.
The old profile list
From a technical point the the code of the old profile list up to version 2019.03.23612 is just a big mess. I never separated code from design which is a very important point when programming sustainable and future proof. But hey – it always worked OK!
The major disadvantage of this type of work is that the software always needs to load data from disk whenever it’s needed. For example: when opening a profile for editing all profile informations are loaded from disk. When saving changes they are saved to disk and finally the profile is being loaded from disk again to write it back to the profile list – or should I say to bake into it?
On the other site the major advantage of this absolutely bad software design is that it’s hard to lose all data at once because everything is always loaded, used and saved back to disk again.
This behaviour continues for all kind of work which is done with a profile. Executing a profile, duplicating a profile, even renaming a profile and everything else where it’s needed to access a profiles data.
In any case this is bad design and should not be used by anyone. Even if you are just beginning programming – do not use this approach. Spend some time and learn the correct way.
The new profile list
The new profile list implementation from scratch uses a totally different, better and future proof approach. The graphical interface, data access and business logic are now separated as it should always be. This was a lot of work which took long time but it’s worth it because it will allow me to implement new features way easier than before.
The new user interface
Most of the changes have been done under the hood and are invisible. For some users this can be frustrating to wait so long for an update with no visible changes. So I decided to make some changes to the user interface too.
The first visible change can be seen looking the profile list itself. Profile items are now bigger with better readability and can be changed in size using the main menu > view > zoom. The profile state icons have been re-created and are present in different sizes. Profiles can now also be favourised by clicking on the little star. Furthermore profile items now have different background colors depending on in which state they are and they can hold a profile description text which can be added in the profile settings.
The second user interface change is the new and much cleaner profile group system. Profile groups can now be added, renamed, deleted and re-ordered much easier than before. Also grouping profiles is much easier now thanks to the bigger sized tabs. Just grab a profile with your mouse and drop it on a profile group. Using a keyboard you can do this in the profile settings. All groups except All profiles and Favourites can be renamed, deleted and re-ordered.
The third visible change are some minor color and design changes on the main window. I wanted the main window to look cleaner and a bit more modern but not like a typical Windows 10 app.
Last but not least I implemented a lot of HighDPI improvements as a lot of people use more than 100% DPI. All windows and dialogues now should look fine in DPI scales up to 175%. Further tests with 4K displays and 225% scale and up will be done later. Be aware: I can not say how some Windows 7 installations or older Windows versions behave now since only with Windows 10 Microsoft did a good job in window scaling.
Coming next
Regular fixes and improvements will always be part of developing jaBuT Backup. For this year I’ve planned to implement, as wished from multiple users, the ability to add more than one source directory per profile. For this I have to do a lot of code and user interface changes. Once this is done I will think about what to implement next. If you wish you can help me! Contact me per mail and let me know what you would like to see in jaBuT Backup next =)
Résumé
Now the two needed big refactorings are done, I can concentrate on implementing more features as mentioned on the roadmap. Unfortunately the last two big refactorings were necessary to implement new features cleanly otherwise everything would just be a big mess.
I hope you like what I worked on the last time and jaBuT Backup itself. If you find any bugs do not hesitate to contact me.
git diff for geeks
diff between update 2019.03.23612 and now
324 files changed, 26884 insertions(+), 19656 deletions(-)
diff between update when I started this refactor and now
1035 files changed, 50268 insertions(+), 122604 deletions(-)