-
Notifications
You must be signed in to change notification settings - Fork 1
DevelopmentBlog
The SailfishOS examples about PageStack usage are very naïves. Popping pages is not that simple as one might thought, but it is needeed every time when there is an interrogation sequence from a page to another, which is then finished, and the natural returning point is the main page.
Who would have thought that one has to specify acceptDestination like this:
Dialog {
id: backupDialog
acceptDestination: pageStack.find(function(page) {
return page.pagemark==="firstPage";
});
acceptDestinationAction: PageStackAction.Pop
...where one had tho add a property to the first page like this:
Page {
id: firstPage
property string pagemark: "firstPage"
I creted property "pagemark" because id: cannot be read!!
I was off the development for four months. I was studying, because I had to think about my present and future, and because I got a ticket to a free course. I'm now certified Android Associate Developer. Google gave me that, Jolla has yielded me nothing but this greatly unprofitable project.
I also switched my everyday phone to BQ Aquaris U plus (Android 7), because it just works better. It is also designed and some software developed in the area where I live. The risk of losing my precious First One Jolla, my only Jolla device is eliminated. New SailfishOs devices are very hard if not impossible to get!
Still, I'm back to work on this. I don't like to abandon projects just like that. I'm working on database backup, and have some progress. Quite a lot of work!
- There are now filester.h and Filester.cpp to give file access via Qt C++.
- BackupDialog.qml will handle the backup configuration
- I borrowed https://github.com/codeandcreate/harbour-cac-fileSelect to save some effort on file selection dialog.
During the first days of the week, I had some trouble getting the app to Jolla Store. Code or comments may not contain /home/nemo
, because the RPM validator will think it's a hardcoded path. When versioning UI components, like I versioned Button.qml to SpecialButton.qml, one must not import Salifish.Silica.private 1.0
.
Jolla Shop also had a very large delay to deliver the correct version. After uploading 1.8-0, Jolla Shop still delivered 1.6-0, claiming it's 1.8-0.
Updated translations to be again functional. v1.06 has had problems with this like everything does not appear translated. Had to work a few hours with .ts files. I have added some translations myself, maybe changed something, which I sincerely hope not to annoy anybody. Feel free to contribute to translations. I haven't included interface for the translation interface for the www.transifex.com translation service advertised in Issues.
There are some changes in-between that need further explanation.
The ordering of the shopping list has changed alightly. In order to enlighten how the items are now ordered, here's the SQL query:
SELECT rowid, * FROM shoppinglist WHERE NOT istat=\"'+excluded_state+'\" '+shopfilterstring+' ORDER BY istat ASC, iclass ASC, seq DESC, iname ASC ;
In December 2016 it was obvious that something's wrong. I'm using the app almost every day, and see that it became slow when the list length is past the screen height. Memory consumption is also huge.
One issue was that the context menus are too heavy to hide, which proved to be a nice clue. I changed the list items' context menus to be dynamically created and destroyed. The clogging performance of earlier may be because of garbage collection's dump trucks driving in the background. Now I might even putting in some animations, to waste some time!
Second issue was that I had understood something wrong about Silica PageStack. Eye on pageStack.depth. If one pushes the presumably same page to page stack, it is added again to the top of pageStack of the app, and the other pages seem to remain in memory. Looks like there is no garbage collection that would clean up orphaned objects.
Solution to second issue is to pageStack.clear() and pageStack.push(Qt.resolvedURL("FirstPage.qml"). Never got working from a Dialog, Forward navigation Replace or Pop to Qt.resolvedURL("FirstPage.qml" will fail (transition in progress). Only PageStackAction.Push works and that leads to a very deep PageStack and problems.
I've put a button there (ItemEditPage.qml), because Dialog.accept() caused problems to me, if you want to go back.
###New highlights of v1.06###
- Significiantly improved performance
- Eliminated some bugs in shop handling; also name swith dots and single quotes should work now OK.
###New features in v1.05###
- Swedish translation