[SailfishDevel] Python and Qt Widgets development possible?
Hi! Until now I have been using PySide to write Qt Widgets applications that were running fine under Windows and Maemo. With some if/else I got native look feel on both platforms. Now I've tried the same with PyQt5 on Sailfish OS and the application looks like a Windows application and even opens new windows when I e.g. open the menu. Unfortunately it seems that QML is the only way to get native look and feel. Am I right? Switching to QML/Qt Quick seems a major effort and especially, it is very un-pythonic to use this mixture of two languages. Even when I switch, it seems that there's quite some effort to stay compatible over multiple platforms as you more or less have to use Silica components on Sailfish OS and on the other hand I won't gain usability on a mouse based platform like Windows. With Maemo I had the impression that it was quite easy to port any GUI application and get at least a reasonable UI. Seems that this is not true with Sailfish OS any more. You have to choose between all or nothing... Regards, Dietmar ___ SailfishOS.org Devel mailing list
[SailfishDevel] Binding weirdness on Jolla device after deploy with screen locked
Hi all I have come across some weird behaviour on the Jolla: Bindings don't seem to work immediately after an app has deployed when the screen is locked. To demonstrate this I have created the code snippet at the end of this mail. To reproduce, create a default Sailfish project, paste the code into FirstPage.qml. My code has: 1) an Item dummy with an enabled property bound to applicationActive. 2) a BackgroundItem with an enabled property bound to dummy.enabled 3) a Label in the BackgroundItem with with text property bound to dummy.enabled When the app is active, the label should display Correct Label However, if the app is deployed when the screen is locked, on unlocking and activating the app the label text shows Oops Wrong label even though console.log output suggests that the text has changed to Correct Label. Also, when the backgroundItem is clicked, the highlight colour is not shown (but an onClicked event is generated). The app behaves as expected (label correctly displayed, highlight colour shown) when: a) The app is pushed to the left, and then reactivated, b) The app is deployed while the screen is unlocked (immediately shown fullscreen), c) The app is opened from the app icon direct on the Jolla, d) The app is deployed to the Emulator. Grüsse Chris //Start FirstPage.qml import QtQuick 2.0 import Sailfish.Silica 1.0 Page { id: page Item { //represents a much more complex object (e.g. c++ plugin) //reduced to item here for demo purposes id: dummy enabled: applicationActive onEnabledChanged: console.log(QML dummy onEnabledChanged: + enabled); } BackgroundItem { enabled: dummy.enabled onEnabledChanged: console.log(QML BackgroundItem onEnabledChanged: + enabled); width: parent.width height: 160 anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter Label { anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter text: dummy.enabled ? Correct Label : Oops! Wrong label onTextChanged: console.log(QML text onTextChanged: + text); color: Theme.primaryColor } onClicked:console.log(BackgroundItem clicked) } } //End FirstPage.qml ___ SailfishOS.org Devel mailing list
Re: [SailfishDevel] Python and Qt Widgets development possible?
Hi Dietmar Zitat von Dietmar Schwertberger maill...@schwertberger.de: Switching to QML/Qt Quick seems a major effort and especially, it is very un-pythonic to use this mixture of two languages. There is only one language here, QML, which is an extension of javascript. Qt Quick is a set of components used by QML. This component set is further extended by the Sailfish Silica component set. I did not find QML itself that hard to learn, and there are lots of examples and tutorials on the interweb. The mix of 2 languages comes when need to do some heavy-lifting and have to fall back to C++. Having said that C++ and QML are well integrated. Zitat von Dietmar Schwertberger maill...@schwertberger.de: ...there's quite some effort to stay compatible over multiple platforms You have hit the nail on the head. Multiplatform coding is not easy, especially if you want to keep native interaction, and look and feel. We know that Sailfish is quite a bit different from any other platform. Multi-platform is not impossible, but it does involve compromises. I have been working for some while to port a Harmattan app to Sailfish. For the most part I have got it working, but not without some obstacles. Off the top of my head (and without going into detail), here is a list of differences I found between these 2 platforms 1) Qt Version 4.7.4 -- 5.x 2) QtQuick version 1.0 -- 2.0 3) Mobility 1.2 -- Qt 5.0 equivalents 4) Project Template Files C++ main function, Pro file 5) Project structure 6) Sailfish look and feel, user interaction 7) Sailfish Specials: e.g Cover 8) Missing QML Components / Extra Components, 9) Component Property differences 10) Library differences inc. Bugs 11) Niggly Technical Stuff 11.1) How a javascript file imports a second javascript file 11.2) Location of LocalStorage DB 12) Harbour rules (somethings are technically possible, but not allowed to be harbour compliant) 13) etc Grüsse Chris ___ SailfishOS.org Devel mailing list
Re: [SailfishDevel] Binding weirdness on Jolla device after deploy with screen locked
Hi Ove That's pretty much the behaviour I get, and the swipe to multitasking and back fixes things. The behaviour 1s 100% reproducible when the screen is locked during deploy, and never occurs when deploying to an unlocked screen. That the problem to do with bindings is only a wild assumption on my part, it could be down to the screen not updating as you suggest. Grüsse Chris Zitat von Ove Kåven o...@arcticnet.no: Den 26. jan. 2014 13:42, skrev christopher.l...@thurweb.ch: Hi all I have come across some weird behaviour on the Jolla: Bindings don't seem to work immediately after an app has deployed when the screen is locked. Are you able to tell the difference between something like this, and the more straightforward issue of the app display simply not updating? I frequently experience the latter immediately after a deploy. If I click anything, or try to use the pulley menu, I can hear the sounds and get the console logs, but the display doesn't start updating before I swipe out to the multitasking view and then reactivate it. Everything works otherwise. ___ SailfishOS.org Devel mailing list ___ SailfishOS.org Devel mailing list
Re: [SailfishDevel] Qt Creator Code AutoCompletion in QML for C++ declarative plugins
writing qmltypes file can help you :) On 26.01.2014 22:23, christopher.l...@thurweb.ch wrote: Hi All My app exposes chunks of functionality to the QML side from C++ declarative plugins. On the QML side QtCreator gives me automatic code completion for elements exposed from such plugins, suggesting property and method names. So far so good. The trouble is, I often refactor the C++ code as I add complexity e.g. renaming properties and methods as better names occur to me, or reflect a change in purpose. The trouble is, back on the QML side, QtCreator code-completion still suggests the original names long after these have been renamed or eliminated. Is there any way to flush / update the code completion so it reflects the current state of affairs? Cleaning does not help, nor does Reset Code Model. mfg Chris ___ SailfishOS.org Devel mailing list ___ SailfishOS.org Devel mailing list
Re: [SailfishDevel] Python and Qt Widgets development possible?
Just a thought - maybe using some legacy (i.e. Fremantle) theme could be a fix. But I have no idea whether it can be done and with how much effort. -- Marcin 2014-01-26 christopher.l...@thurweb.ch Hi Dietmar Zitat von Dietmar Schwertberger maill...@schwertberger.de: Switching to QML/Qt Quick seems a major effort and especially, it is very un-pythonic to use this mixture of two languages. There is only one language here, QML, which is an extension of javascript. Qt Quick is a set of components used by QML. This component set is further extended by the Sailfish Silica component set. I did not find QML itself that hard to learn, and there are lots of examples and tutorials on the interweb. The mix of 2 languages comes when need to do some heavy-lifting and have to fall back to C++. Having said that C++ and QML are well integrated. Zitat von Dietmar Schwertberger maill...@schwertberger.de: ...there's quite some effort to stay compatible over multiple platforms You have hit the nail on the head. Multiplatform coding is not easy, especially if you want to keep native interaction, and look and feel. We know that Sailfish is quite a bit different from any other platform. Multi-platform is not impossible, but it does involve compromises. I have been working for some while to port a Harmattan app to Sailfish. For the most part I have got it working, but not without some obstacles. Off the top of my head (and without going into detail), here is a list of differences I found between these 2 platforms 1) Qt Version 4.7.4 -- 5.x 2) QtQuick version 1.0 -- 2.0 3) Mobility 1.2 -- Qt 5.0 equivalents 4) Project Template Files C++ main function, Pro file 5) Project structure 6) Sailfish look and feel, user interaction 7) Sailfish Specials: e.g Cover 8) Missing QML Components / Extra Components, 9) Component Property differences 10) Library differences inc. Bugs 11) Niggly Technical Stuff 11.1) How a javascript file imports a second javascript file 11.2) Location of LocalStorage DB 12) Harbour rules (somethings are technically possible, but not allowed to be harbour compliant) 13) etc Grüsse Chris ___ SailfishOS.org Devel mailing list ___ SailfishOS.org Devel mailing list
Re: [SailfishDevel] Harbour compliant way to read contacts
christopher.l...@thurweb.ch writes: Hi Sven I am equally curious: Reading and rereading Bernd's mail I see ..contacts synced to the device from some third party services... I entered all the contacts on my phone myself (most via bluetooth from the N9). No third parties are involved at all. So surely my apps should have full readonly access. If the source is an issue, then the source should be an attribute of each contact, thus allowing apps access to kosher contacts, and barring access to those from third parties. That's what we're currently working on. Surely what an app does with the contacts is more important than the source of the contacts? We need to follow the terms of service from where we sync the contacts, or they might revoke our API keys without warning, which then would affect the whole userbase. In doing so we need to allow for creative interpretation of the TOS on their end as well -- we're the ones in trouble if they decide to revoke our API keys after all. TLDR: Lawyers are making our contacts middleware unnecessarily complicated, not all features implemented yet. Bernd ___ SailfishOS.org Devel mailing list
Re: [SailfishDevel] (USB) access to sdcard?
Wim de Vries wsvr...@xs4all.nl writes: Hi, Currently the SDCARD is mounted at /run/usr/10/media/sdcard. Can I hard-code this into my app, or will it change in future? You should not rely on it beeing there forever. In a future update we'll provide middleware to handle SD-card related functionality (informing if SD-card is present, and at which path, notify about removal, ...); until then using the SD-card from your application is not officially supported, and if you do use it, you need to take care of SD-card discovery and error handling if the SD-card gets removed by yourself. Also, I want my users to be able to put data (aviation maps+more) on the SD card via a USB connection. Currently there is no access via USB (just the home is available). It will be enabled in a future update, we're currently testing that feature. Bernd ___ SailfishOS.org Devel mailing list
Re: [SailfishDevel] Harbour compliant way to read contacts
And wouldn't separate permission for each app solve the thing? -- Marcin 2014-01-26 Bernd Wachter bernd.wach...@jolla.com christopher.l...@thurweb.ch writes: Hi Sven I am equally curious: Reading and rereading Bernd's mail I see ..contacts synced to the device from some third party services... I entered all the contacts on my phone myself (most via bluetooth from the N9). No third parties are involved at all. So surely my apps should have full readonly access. If the source is an issue, then the source should be an attribute of each contact, thus allowing apps access to kosher contacts, and barring access to those from third parties. That's what we're currently working on. Surely what an app does with the contacts is more important than the source of the contacts? We need to follow the terms of service from where we sync the contacts, or they might revoke our API keys without warning, which then would affect the whole userbase. In doing so we need to allow for creative interpretation of the TOS on their end as well -- we're the ones in trouble if they decide to revoke our API keys after all. TLDR: Lawyers are making our contacts middleware unnecessarily complicated, not all features implemented yet. Bernd ___ SailfishOS.org Devel mailing list ___ SailfishOS.org Devel mailing list
[SailfishDevel] Impossible to send a PROPFIND request via XMLHttpRequest !?
Hi, if I try to send a PROPFIND request via XMLHttpRequest I got: Error: Unsupported HTTP method type This makes live for QML developers harder then necessary. Will this be fixed or is there a hidden trick to get a PROPFIND response via QML ? Ciao Matze ___ SailfishOS.org Devel mailing list
Re: [SailfishDevel] Harbour compliant way to read contacts
issue not in app permissions. issue in restriction access to cloud contacts got from 3rd party services, and so on On 27.01.2014 00:21, Marcin M. wrote: And wouldn't separate permission for each app solve the thing? -- Marcin 2014-01-26 Bernd Wachter bernd.wach...@jolla.com mailto:bernd.wach...@jolla.com christopher.l...@thurweb.ch mailto:christopher.l...@thurweb.ch writes: Hi Sven I am equally curious: Reading and rereading Bernd's mail I see ..contacts synced to the device from some third party services... I entered all the contacts on my phone myself (most via bluetooth from the N9). No third parties are involved at all. So surely my apps should have full readonly access. If the source is an issue, then the source should be an attribute of each contact, thus allowing apps access to kosher contacts, and barring access to those from third parties. That's what we're currently working on. Surely what an app does with the contacts is more important than the source of the contacts? We need to follow the terms of service from where we sync the contacts, or they might revoke our API keys without warning, which then would affect the whole userbase. In doing so we need to allow for creative interpretation of the TOS on their end as well -- we're the ones in trouble if they decide to revoke our API keys after all. TLDR: Lawyers are making our contacts middleware unnecessarily complicated, not all features implemented yet. Bernd ___ SailfishOS.org Devel mailing list ___ SailfishOS.org Devel mailing list ___ SailfishOS.org Devel mailing list
Re: [SailfishDevel] Harbour compliant way to read contacts
So Jolla get's punishment, because a user want's to use HIS Contacts, because they are fetched from 3rd party service, the user put HIS contacts?! - Wow strange. But making added by hand contacts is/could be possible? And what about if the user have to accept that a app wants to use his contacts from 3rd party? Maybe verifyed with soöe kind of JollaContactAccessAPI. So that an app can use the ContactsAPI just with a valid token, or something like that. :) Just guessing,...Gabriel. -- Von meinem Nokia N9 gesendet Andrey Kozhevnikov schrieb am 26.01.14 19:23: issue not in app permissions. issue in restriction access to cloud contacts got from 3rd party services, and so on On 27.01.2014 00:21, Marcin M. wrote: And wouldn't separate permission for each app solve the thing? -- Marcin 2014-01-26 Bernd Wachter bernd.wach...@jolla.com christopher.l...@thurweb.ch writes: Hi Sven I am equally curious: Reading and rereading Bernd's mail I see ..contacts synced to the device from some third party services... I entered all the contacts on my phone myself (most via bluetooth from the N9). No third parties are involved at all. So surely my apps should have full readonly access. If the source is an issue, then the source should be an attribute of each contact, thus allowing apps access to kosher contacts, and barring access to those from third parties. That's what we're currently working on. Surely what an app does with the contacts is more important than the source of the contacts? We need to follow the terms of service from where we sync the contacts, or they might revoke our API keys without warning, which then would affect the whole userbase. In doing so we need to allow for creative interpretation of the TOS on their end as well -- we're the ones in trouble if they decide to revoke our API keys after all. TLDR: Lawyers are making our contacts middleware unnecessarily complicated, not all features implemented yet. Bernd ___ SailfishOS.org Devel mailing list ___ SailfishOS.org Devel mailing list ___ SailfishOS.org Devel mailing list ___ SailfishOS.org Devel mailing list
Re: [SailfishDevel] Qt Creator Code AutoCompletion in QML for C++ declarative plugins
Would also be a good feature, to have the Refactoring function for QML in QtCreator - if you want to change id/property/... names. Is it possible?! Cheers, Gabriel. -- Von meinem Nokia N9 gesendet Andrey Kozhevnikov schrieb am 26.01.14 17:25: writing qmltypes file can help you :) On 26.01.2014 22:23, christopher.l...@thurweb.ch wrote: Hi All My app exposes chunks of functionality to the QML side from C++ declarative plugins. On the QML side QtCreator gives me automatic code completion for elements exposed from such plugins, suggesting property and method names. So far so good. The trouble is, I often refactor the C++ code as I add complexity e.g. renaming properties and methods as better names occur to me, or reflect a change in purpose. The trouble is, back on the QML side, QtCreator code-completion still suggests the original names long after these have been renamed or eliminated. Is there any way to flush / update the code completion so it reflects the current state of affairs? Cleaning does not help, nor does Reset Code Model. mfg Chris ___ SailfishOS.org Devel mailing list ___ SailfishOS.org Devel mailing list ___ SailfishOS.org Devel mailing list
Re: [SailfishDevel] Qt Creator Code AutoCompletion in QML for C++ declarative plugins
i think you need to post your suggestions according QtCreator to Digia, not Jolla ;) On 27.01.2014 00:36, Gabriel Böhme wrote: Would also be a good feature, to have the Refactoring function for QML in QtCreator - if you want to change id/property/... names. Is it possible?! Cheers, Gabriel. -- Von meinem Nokia N9 gesendet Andrey Kozhevnikov schrieb am 26.01.14 17:25: writing qmltypes file can help you :) On 26.01.2014 22:23, christopher.l...@thurweb.ch mailto:christopher.l...@thurweb.ch wrote: Hi All My app exposes chunks of functionality to the QML side from C++ declarative plugins. On the QML side QtCreator gives me automatic code completion for elements exposed from such plugins, suggesting property and method names. So far so good. The trouble is, I often refactor the C++ code as I add complexity e.g. renaming properties and methods as better names occur to me, or reflect a change in purpose. The trouble is, back on the QML side, QtCreator code-completion still suggests the original names long after these have been renamed or eliminated. Is there any way to flush / update the code completion so it reflects the current state of affairs? Cleaning does not help, nor does Reset Code Model. mfg Chris ___ SailfishOS.org Devel mailing list ___ SailfishOS.org Devel mailing list ___ SailfishOS.org Devel mailing list
Re: [SailfishDevel] Harbour compliant way to read contacts
2014-01-26, Gabriel Böhme m.gabrielboe...@googlemail.com: So Jolla get's punishment, because a user want's to use HIS Contacts, because they are fetched from 3rd party service, the user put HIS contacts?! - Wow strange. What makes you think that the contacts you sync from a 3rd party service are still YOUR contacts? Haven't you read the fine-print of the 3rd party service? Basically, whatever you upload, you give up your rights on it to the 3rd party service. ;) I'm not really surprised about such terms and conditions. Martin ___ SailfishOS.org Devel mailing list
Re: [SailfishDevel] Qt Creator Code AutoCompletion in QML for C++ declarative plugins
Hoi Sven thanks. The problem (and it is a small one only) is limited to the auto-completion. Code builds perfectly well enough. QtCreator's clean function wipes out the moc files, but seems to have no effect on auto-complete. grüsse Chris Zitat von Sven Putze sailfish...@hardcodes.de: Hi, try to build/run qmake from the menu and if that does not help, throw away the Makefile. The property binding depends on the Qt meta system, bound to the Q_OBJECT macro. Often recompiling does not start the needed steps to recreate the moc files and things get strange. BR. Sven The trouble is, I often refactor the C++ code as I add complexity e.g. renaming properties and methods as better names occur to me, or reflect a change in purpose. The trouble is, back on the QML side, QtCreator code-completion still suggests the original names long after these have been renamed or eliminated. Is there any way to flush / update the code completion so it reflects the current state of affairs? Cleaning does not help, nor does Reset Code Model. ___ SailfishOS.org Devel mailing list ___ SailfishOS.org Devel mailing list
Re: [SailfishDevel] Qt Creator Code AutoCompletion in QML for C++ declarative plugins
On 26/01/14 16:23, christopher.l...@thurweb.ch wrote: Hi All My app exposes chunks of functionality to the QML side from C++ declarative plugins. On the QML side QtCreator gives me automatic code completion for elements exposed from such plugins, suggesting property and method names. So far so good. The trouble is, I often refactor the C++ code as I add complexity e.g. renaming properties and methods as better names occur to me, or reflect a change in purpose. The trouble is, back on the QML side, QtCreator code-completion still suggests the original names long after these have been renamed or eliminated. Is there any way to flush / update the code completion so it reflects the current state of affairs? Cleaning does not help, nor does Reset Code Model. Just guessing but this ^^ option is under Tools = QML/JS ... have you tried Tools = C++ = Update Code Model David ___ SailfishOS.org Devel mailing list
Re: [SailfishDevel] Harbour compliant way to read contacts
On Sunday 26 January 2014 20:48 Bernd Wachter wrote: Our plans for contacts are to first make all local contacts available to your applications, and then fine-tune how we're dealing with contacts from 3rd party services. Sounds like a reasonable approach. You shouldn't be blocked from your own data. But 3rd parties of course shouldn't block development of standards like CardDAV - nudge-nudge ;) -- Med venlig hilsen / Best Regards Thomas Tanghus ___ SailfishOS.org Devel mailing list
Re: [SailfishDevel] Binding weirdness on Jolla device after deploy with screen locked
Just to confirm this, I'm having same issues with my app. If I launch it and put the screen off right away the application's screen is not updated when I open it again from the cover. Have to swipe it back to home and reopen it to get updated window. -- Tero 2014/1/26 christopher.l...@thurweb.ch: Hi Ove That's pretty much the behaviour I get, and the swipe to multitasking and back fixes things. The behaviour 1s 100% reproducible when the screen is locked during deploy, and never occurs when deploying to an unlocked screen. That the problem to do with bindings is only a wild assumption on my part, it could be down to the screen not updating as you suggest. Grüsse Chris Zitat von Ove Kåven o...@arcticnet.no: Den 26. jan. 2014 13:42, skrev christopher.l...@thurweb.ch: Hi all I have come across some weird behaviour on the Jolla: Bindings don't seem to work immediately after an app has deployed when the screen is locked. Are you able to tell the difference between something like this, and the more straightforward issue of the app display simply not updating? I frequently experience the latter immediately after a deploy. If I click anything, or try to use the pulley menu, I can hear the sounds and get the console logs, but the display doesn't start updating before I swipe out to the multitasking view and then reactivate it. Everything works otherwise. ___ SailfishOS.org Devel mailing list ___ SailfishOS.org Devel mailing list ___ SailfishOS.org Devel mailing list
Re: [SailfishDevel] Qt Creator Code AutoCompletion in QML for C++ declarative plugins
Hi David Thanks, your guess is correct. I had not seen the option under Tools / C++. Unfortunately it does not help either. During breakfast I have found a solution: closing all projects and QtCreator, then reopening gives autocompletion with the correct updated properties / method names. Chris Zitat von David Greaves david.grea...@jolla.com: On 26/01/14 16:23, christopher.l...@thurweb.ch wrote: Hi All My app exposes chunks of functionality to the QML side from C++ declarative plugins. On the QML side QtCreator gives me automatic code completion for elements exposed from such plugins, suggesting property and method names. So far so good. The trouble is, I often refactor the C++ code as I add complexity e.g. renaming properties and methods as better names occur to me, or reflect a change in purpose. The trouble is, back on the QML side, QtCreator code-completion still suggests the original names long after these have been renamed or eliminated. Is there any way to flush / update the code completion so it reflects the current state of affairs? Cleaning does not help, nor does Reset Code Model. Just guessing but this ^^ option is under Tools = QML/JS ... have you tried Tools = C++ = Update Code Model David ___ SailfishOS.org Devel mailing list
[SailfishDevel] sailfish ui on laptop
Hello, First, sorry to post there, but I couldn't find a sailfish-users mailing list. I use a yoga 2 laptop with ubuntu as my primary workhorse, which has some interesting caracteristics: - highdpi : 3200x1800 pixels - touch screen - can be folded 360° to a tablet format I'm quite underwhelmed with the current Linux desktop environments available with this setup, and though the sailfish ui could make a lot of sense there. Is there a way to install and evaluate this ui in my setup ? Anyway, I hope you will appreciate someone out there thinks there is potential in sailfish ui in the desktop space with modern hardware. Best regards, Christophe ___ SailfishOS.org Devel mailing list