flaxpdf
flaxpdf copied to clipboard
Multicolumns
Hello,
This is a bunch of changes I've been working on for the last 2 week to get your pdf viewer closer to my own requirements. It gives the following added functionalities to your already very interesting application:
- Multi-columns display (up to 5 columns)
- Fast access to the last 10 viewed documents
- Automatic load at launch of the last document viewed
- PageUp/Down, Home, End, Exit buttons
- FullScreen mode
- Used of GNOME icons
The majority of changes have been made in the main and view modules. I added a config module to keep the documents parameters. Implementing multi-columns was a very challenging effort. You will se a lot of changes to your original code. I hope that you won't find it too difficult to get back in control of it. I've put some comments in the code to help understand the changes. I'm available if you need any support.
Hope you will find these useful.
Cheers!
Guy
Besides being a big pull, I have some things keeping me busy for at least a month. So don't expect a quick review, I'm afraid.
I realize that all small changes made each days in the pull are seen individually. It render your task of integration rather difficult. Would you prefer that I submit again as one single commit?
I'd prefer one commit per new thing. Currently there's fix-up commits, those should be combined into the thing they fix.
Well, the changes I've made are a bunch of new features developed during the last two week with no particular order. It would be difficult to separate them as different fixes I'm afraid. Specifically, the multi-columns integration required close to 90% of all changes present in the pull. But I understand your point and I will do my best to separate things as much as I can. So I will resubmit as separate fixes.
A quick note: there seems to be a new dependency, configcpp or some such. It seems quite rare, nothing on my system depends on it, so I'd like it removed. Config file logic is not large, so either import the configcpp files directly or write new ones.
I've looked at creating separate fixes and it will be almost impossible to do without injecting bugs in the process. It cannot be done without reinvesting a lot of time. Do your best with the code as it is adding many new capabilities to your program.
For the libconfig++ library, it is a common way of managing configuration files in a structured way.