A few weeks ago I decided to add spell checking to FocusWriter. When I got that finished, I still found myself thinking about FocusWriter so I completed a large overhaul to the user interface that I had been planning for awhile now. I wasn’t intending to get so distracted by FocusWriter, but I am glad that I did.
The first change to the interface is the way files are created and saved. It now behaves like other word processors in that you have to choose a filename for each file when save them the first time. When I started work on FocusWriter it was intended to feel like its own little world, in the same way that many people don’t interact with their emails outside of their chosen email client. However, because it uses plain text files it has become apparent that many users expect it to act like other word processors in the way it saves files.
Another interface change is the addition of a menubar. As a side effect of this, it means that you can turn off the toolbar, or change what icons are on the toolbar. I have modified the default list of icons to help with text editing, and not be a list of every function of the program.
The final planned change to the interface is the addition of a tab bar of open documents. Instead of opening files in a new window that obscures whatever other files you have open, they are now opened in a new tab. This makes it clear what files a user has open, and makes it very easy for them to switch the files, without forcing them to drop out of fullscreen mode and use their desktop environment’s method for changing windows.
Normally I would have made these changes as several smaller commits, but because of the way I developed them they interact with each other too much to easily split them apart, so I just made them one large commit.
Additionally, I added more document statistics after a request from a user. It now can track paragraphs, pages (based on an average of 350 words per page), and characters (both spaces and non-spaces), as well as word count. Any or all of these statistics can be turned off if the user desires.