Hello everyone !
You will find here a more detailed update more “developer oriented”.
I decided long ago that Plume would use SQLite as its internal database. It’s a lot easier than the XML tree I used in the first version. Aspects like relationships are built-in and it gave me new ideas.
From the start, I feared a lack of fluidity in the GUI, so I went to see what I could do with asynchronous database management. I wrote “something” with a QThread in PyQt. My test cases gave me success at random. Even with a great IDE like PyCharm, it was a pain to debug and to know what was happening in the other threads. Two weeks ago, I switched back to C++ / Qt 5 on Qt Creator. Quickly, I created a C++ library dedicated to the database. Then, I learned how to use SIP to wrap this library so I could import it in my Python code. And surprise… it works !
Well, I still encounters a few strange behaviors. For instance, the first database method used after loading a database will give me 0 or an empty list. I’ll see to fix that later since I lost enough time as it is.
The final version of Plume will keep this C++ library, below the GUI written in Python. I feel that I’m gaining momentum and that the API is getting somewhere. Now, I’m being able to access a project’s database with a simple :
title = data.writeHub().getTitle(project_id, paper_id)
My inspiration for the GUI design will be Qt Creator. I’m already able to display several projects at the same time on the structure tree.
From now on, I’ll give regular updates with screenshots if those are available.