From shaan7in at gmail.com Fri Apr 1 06:04:47 2016 From: shaan7in at gmail.com (Shantanu Tushar) Date: Fri, 1 Apr 2016 09:34:47 +0530 Subject: [Interest] Qml Loader initial property setter In-Reply-To: References: Message-ID: Hi, Have you tried using the QML Binding Type? http://doc.qt.io/qt-5/qml-qtqml-binding.html On Thu, Mar 24, 2016 at 11:11 PM, Jérôme Godbout wrote: > Hi, > > I was wondering if I am the only one who found the initial property of a > source based Loader Item a bit annoying. inline sourceComponent with > Component {} declaration are well ok on the other hand. I'm explaining > myself, when using a loader you have 2 choice to set the initial binding on > created item: > > 1- On item changed set the binding > > *Loader* > *{* > * source: externalObj.getSrc() // return something like "myItem.qml"* > * onItemChanged:* > * {* > * if(!item) return;* > * item.myprop = Qt.binding(function(){ return myExternalProperty; })* > * }* > *}* > > 2- use the setSource() function instead of the source directly > > *Loader* > *{* > * property url myDummySrc: externalObj.getSrc()* > * onMyDummySrcChanged:* > * {* > * setSource(myDummySrc, { 'myprop': Qt.binding(function(){ return > myExternalProperty; }) });* > * }* > *}* > > This is rather annoying and ugly. Number 1 is also having the problem > where *myItem.qml* must be able to handle *myprop *to have a default > value or being empty without output a lots of console error. Number 2 work > well and is the solution I find myself writing often. I was wondering if a > Loader that support a dictionary of initial property when source changed > would be nice: > > *Loader* > *{* > * source: externalObj.getSrc()* > * initialProperties: { 'myprop': Qt.binding(function(){ return > myExternalProperty; }) }* > *}* > > What do you think? > Jerome > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -- Shantanu Tushar (UTC +0530) shantanu.io -------------- next part -------------- An HTML attachment was scrubbed... URL: From developer at lagner.ru Fri Apr 1 07:04:37 2016 From: developer at lagner.ru (=?UTF-8?B?0JvQsNCz0L3QtdGALCDQodC10YDQs9C10Lk=?=) Date: Fri, 1 Apr 2016 11:04:37 +0600 Subject: [Interest] android and openSSL, google-store is complaining In-Reply-To: References: <25e34aada1bb819579ea8e513e3b4433@virtual-winds.org> Message-ID: 2016-04-01 1:43 GMT+06:00 Richard Moore : > > > > On 31 March 2016 at 20:23, maitai wrote: > >> Hello, >> >> Just received a long message from g-play basically saying: >> >> Please migrate your app(s) to OpenSSL 1.02f/1.01r or higher as soon as >> possible and increment the version number of the upgraded APK. Beginning >> July 11, 2016, Google Play will block publishing of any new apps or updates >> that use older versions of OpenSSL. If you're using a 3rd party library >> that bundles OpenSSL, you'll need to upgrade it to a version that bundles >> OpenSSL 1.02f/1.01r or higher. >> >> I dont think I did something special about openSSL, it just happened to >> work on Android >> >> > ​If you're using openssl on android then you should have done something > special.​ > Hello, My application makes a couple http requests that's all. Is it "something special"? I got the same message from google play. -------------- next part -------------- An HTML attachment was scrubbed... URL: From maitai at virtual-winds.org Fri Apr 1 07:11:56 2016 From: maitai at virtual-winds.org (maitai) Date: Fri, 01 Apr 2016 07:11:56 +0200 Subject: [Interest] android and openSSL, google-store is complaining In-Reply-To: References: <25e34aada1bb819579ea8e513e3b4433@virtual-winds.org> Message-ID: <8d6e0c2865e8dc38af41f2e636b64e2c@virtual-winds.org> Thanks for your reply We do use SSL in a not-so-important feature of our app (meaning we can probably just remove that feature for the Android app and we won't be using SSL anymore, end of problem). I see from the documentation that qt is built against openSLL, but I didn't really understand if it's bundled in it or if it relies on some libs existing on the device (or in the sdk?). The thing is that SSL on Android is working but I didn't do anything special for that, as far as I can remember and check, so I don't know what to do to get the latest openSSL versions, or even if I have any control on that. Le 31-03-2016 21:43, Richard Moore a écrit : > On 31 March 2016 at 20:23, maitai wrote: > >> Hello, >> >> Just received a long message from g-play basically saying: >> >> Please migrate your app(s) to OpenSSL 1.02f/1.01r or higher as soon as possible and increment the version number of the upgraded APK. Beginning July 11, 2016, Google Play will block publishing of any new apps or updates that use older versions of OpenSSL. If you're using a 3rd party library that bundles OpenSSL, you'll need to upgrade it to a version that bundles OpenSSL 1.02f/1.01r or higher. >> >> I dont think I did something special about openSSL, it just happened to work on Android > > ​If you're using openssl on android then you should have done something special.​ > >> My latest apk on g-play is still qt 5.5.1, next one will be 5.6.0, that will be enough to get the proper OpenSSL version? >> >> Also found that complicated page: http://doc.qt.io/qt-5/opensslsupport.html [1] so I have my doubts :) > > ​If you're not using SSL then you could be being hit by a new version of https://bugreports.qt.io/browse/QTBUG-46265 [3] but I believe we've fixed that.​ > > ​Cheers > > Rich.​ > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest [2] Links: ------ [1] http://doc.qt.io/qt-5/opensslsupport.html [2] http://lists.qt-project.org/mailman/listinfo/interest [3] https://bugreports.qt.io/browse/QTBUG-46265 -------------- next part -------------- An HTML attachment was scrubbed... URL: From pr12og2 at programist.ru Fri Apr 1 08:04:33 2016 From: pr12og2 at programist.ru (Prav) Date: Fri, 1 Apr 2016 09:04:33 +0300 Subject: [Interest] Bugs processing In-Reply-To: <3834837.NFEPtVgsyK@tjmaciei-mobl4> References: <1139048299.20160331103650@programist.ru> <3834837.NFEPtVgsyK@tjmaciei-mobl4> Message-ID: <1791208550.20160401090433@programist.ru> > Your bug is P2. So it's been triaged and prioritised. But this is what I think about it. I wonder about the list qt-community have as plan for qt improvements. And ... bug it has Assignee: Unassigned Which as I understand means nobody ever read it to categorize the bug to any "department" (component or real engineer or any real person) ... bug just hangs in the air as I understand its state. May be I am wrong? Could you please explain the procedure of assigning someone to the bug? And how long it should take? Thanks in advance! From Kai.Koehne at theqtcompany.com Fri Apr 1 08:16:38 2016 From: Kai.Koehne at theqtcompany.com (Koehne Kai) Date: Fri, 1 Apr 2016 06:16:38 +0000 Subject: [Interest] Problem with QWebEngineView and QWebView In-Reply-To: <1EE673C3-4ED8-456B-B394-2216F9B1758B@gmail.com> References: <1EE673C3-4ED8-456B-B394-2216F9B1758B@gmail.com> Message-ID: > -----Original Message----- > From: Interest [mailto:interest- > bounces+kai.koehne=theqtcompany.com at qt-project.org] On Behalf Of > Freddy Martinez > Subject: [Interest] Problem with QWebEngineView and QWebView > > [...] > 1. How can I print a QWebEngineView content ?? with QWebView I only > need to call the print method Printing with Chromium is surprisingly difficult to implement, but we aim to support printing to PDF in Qt 5.7: http://doc-snapshots.qt.io/qt5-5.7/qwebenginepage.html#printToPdf > 2. Is there a signal for any clicked link ? in that > case, what is it ? Not directly. If the clicked link results in basically a new page being loaded , You can overwrite QWebEnginePage::acceptNavigationRequest http://doc.qt.io/qt-5/qwebenginepage.html#acceptNavigationRequest If you need more, you might want to inject a script that detects clicked links, e.g. using jquery. > I had bought a HTML template > (http://wrapbootstrap.com/preview/WB0N89JMK) and I need to show > exactly as I can see it on any web browser . > > [...] > > in the URL, you can go to the menu Tables/Managed Tables/Responsive and > you'll see that the filter and the button order on the header of each column > is not there when I run the test with webview and is there when I use > webengine... Not sure what goes wrong there. But Qt WebKit is deprecated, so I wouldn't expect any new features there. > another curious things is the output of qt-creator console, > because when I use webview, qt-creat console output said: > > > qt.network.ssl: QSslSocket: cannot resolve SSL_set_psk_client_callback > qt.network.ssl: QSslSocket: cannot resolve TLSv1_1_client_method > qt.network.ssl: QSslSocket: cannot resolve TLSv1_2_client_method > qt.network.ssl: QSslSocket: cannot resolve TLSv1_1_server_method > qt.network.ssl: QSslSocket: cannot resolve TLSv1_2_server_method > qt.network.ssl: QSslSocket: cannot resolve SSL_select_next_proto > qt.network.ssl: QSslSocket: cannot resolve > SSL_CTX_set_next_proto_select_cb > qt.network.ssl: QSslSocket: cannot resolve > SSL_get0_next_proto_negotiated That just means that Qt was trying to dynamically load the openssl libs, and that they're older than the openssl verison it was compiled against. Not something to worry about in general. > so, where is my problem and what is the best way to fix it ? > > regards > > PD: I'm using OS X El Capitan and Qt 5.6. Ah yes, the system openssl on OS X is hopelessly outdated. If you feel like experimenting, you can configure/compile Qt anew, this time with -securetransport . Regards Kai From maxim.bescherevnykh at gmail.com Fri Apr 1 10:16:10 2016 From: maxim.bescherevnykh at gmail.com (Maxim Bescherevnykh) Date: Fri, 1 Apr 2016 11:16:10 +0300 Subject: [Interest] QtPositioning high delay on QGeoPositionInfoSource::startUpdates Message-ID: QGeoPositionInfoSource::startUpdates startup time vary in high range 2 ms ~ 10000 ms sometimes there is very high delays that freeze UI: "Looper Thread startup time in ms: 1189" "Looper Thread startup time in ms: 20" "Looper Thread startup time in ms: 8189" ... values from Android device (Nexus 5) Is there way to reduce those delays or only solution is to move QGeoPositionInfoSource in separate thread? -------------- next part -------------- An HTML attachment was scrubbed... URL: From elvstone at gmail.com Fri Apr 1 12:45:39 2016 From: elvstone at gmail.com (Elvis Stansvik) Date: Fri, 1 Apr 2016 12:45:39 +0200 Subject: [Interest] Press and hold keyboard key to bring up menu in QML Message-ID: Hi folks, I have a full screen, page based Qt Quick 2 application. Input is contstrained by the hardware to the Left/Right/Return keyboard keys, so is quite limited, and navigation between pages is done using buttons on each page which handle return presses using (most of the time) Keys.onReturnPressed and navigation between buttons and other items with KeyNavigation.left/right. I now have the need to provide a special global shortcut: On almost all of the screens, holding the Enter key for 3 seconds should bring the user immediately to a sort of start screen, where he/she can choose to go into Settings or Power Off. Kind of like how holding the power button on a phone often brings up a power off/flight mode menu. I'm struggling to find a good way to handle this centrally: since Enter presses are normally accepted (swallowed) by my various buttons and other input items on the pages, where can I put some central key press/release handler in which to start/stop a timer (to determine if it was a long 3 sec press or not)? My pages are FocusScopes stuffed in a StackView inside a Window. Many thanks for any advice. Has noone had this kind of requirement before? (Global "hold key" shortcut). Elvis From elvstone at gmail.com Fri Apr 1 14:33:29 2016 From: elvstone at gmail.com (Elvis Stansvik) Date: Fri, 1 Apr 2016 14:33:29 +0200 Subject: [Interest] Press and hold keyboard key to bring up menu in QML In-Reply-To: References: Message-ID: 2016-04-01 12:45 GMT+02:00 Elvis Stansvik : > Hi folks, > > I have a full screen, page based Qt Quick 2 application. Input is > contstrained by the hardware to the Left/Right/Return keyboard keys, > so is quite limited, and navigation between pages is done using > buttons on each page which handle return presses using (most of the > time) Keys.onReturnPressed and navigation between buttons and other > items with KeyNavigation.left/right. > > I now have the need to provide a special global shortcut: On almost > all of the screens, holding the Enter key for 3 seconds should bring > the user immediately to a sort of start screen, where he/she can > choose to go into Settings or Power Off. Kind of like how holding the > power button on a phone often brings up a power off/flight mode menu. > > I'm struggling to find a good way to handle this centrally: since > Enter presses are normally accepted (swallowed) by my various buttons > and other input items on the pages, where can I put some central key > press/release handler in which to start/stop a timer (to determine if > it was a long 3 sec press or not)? > > My pages are FocusScopes stuffed in a StackView inside a Window. > > Many thanks for any advice. Has noone had this kind of requirement > before? (Global "hold key" shortcut). Actually, scratch this. Our input device is a pushable wheel, and I've realized now that we better re-program the Arduino we have hooked up to it to have the logic to determine "long" vs "short" presses there instead, and deliver these as distinct keypresses. Elvis > > Elvis From jerome at bodycad.com Fri Apr 1 16:05:36 2016 From: jerome at bodycad.com (=?UTF-8?B?SsOpcsO0bWUgR29kYm91dA==?=) Date: Fri, 1 Apr 2016 10:05:36 -0400 Subject: [Interest] Qml Loader initial property setter In-Reply-To: References: Message-ID: Yes, but the binding loaded object internal binding are printing error, since the object is created without the input, then the external binding are created. They will get eventually correct, but the console will be filled with error message and I try to avoid that at all cost. Here's a simple example that will complain about unable to access i and j of undefined / assign undefined to width and height (this example is a bit stupid but just a demo to show the problems with more complex model and object): // MyComponent.qml Item { property var model width: model.i height: model.j } // Main.qml MyModel { id: myModel_ property int i: 24 property int j: 12 } Loader { id: loader_ source: "MyComponent.qml" } Binding { target: loader_.item property: 'model' value: myModel_ when: loader_.status == Loader.Ready } What I would like is the Loader call QQmlComponent::beginCreate(), then having a hook to init some property then the Loader can finish the component QQmlComponent::completeCreate(). This way I was able to make it work, but having a custom component for that is a bit annoying. Loader { source: "MyComponent.qml" onInitProperty: // signal emit with component object returned by beginCreate(), { object.model = Qt.binding(function(){ return myModel_; }); ... } } That seem clean and would avoid the problems to have object into bad state for a brief moment. Jerome On Fri, Apr 1, 2016 at 12:04 AM, Shantanu Tushar wrote: > Hi, > > Have you tried using the QML Binding Type? > http://doc.qt.io/qt-5/qml-qtqml-binding.html > > On Thu, Mar 24, 2016 at 11:11 PM, Jérôme Godbout > wrote: > >> Hi, >> >> I was wondering if I am the only one who found the initial property of a >> source based Loader Item a bit annoying. inline sourceComponent with >> Component {} declaration are well ok on the other hand. I'm explaining >> myself, when using a loader you have 2 choice to set the initial binding on >> created item: >> >> 1- On item changed set the binding >> >> *Loader* >> *{* >> * source: externalObj.getSrc() // return something like "myItem.qml"* >> * onItemChanged:* >> * {* >> * if(!item) return;* >> * item.myprop = Qt.binding(function(){ return myExternalProperty; })* >> * }* >> *}* >> >> 2- use the setSource() function instead of the source directly >> >> *Loader* >> *{* >> * property url myDummySrc: externalObj.getSrc()* >> * onMyDummySrcChanged:* >> * {* >> * setSource(myDummySrc, { 'myprop': Qt.binding(function(){ return >> myExternalProperty; }) });* >> * }* >> *}* >> >> This is rather annoying and ugly. Number 1 is also having the problem >> where *myItem.qml* must be able to handle *myprop *to have a default >> value or being empty without output a lots of console error. Number 2 work >> well and is the solution I find myself writing often. I was wondering if a >> Loader that support a dictionary of initial property when source changed >> would be nice: >> >> *Loader* >> *{* >> * source: externalObj.getSrc()* >> * initialProperties: { 'myprop': Qt.binding(function(){ return >> myExternalProperty; }) }* >> *}* >> >> What do you think? >> Jerome >> >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest >> >> > > > -- > Shantanu Tushar (UTC +0530) > shantanu.io > -------------- next part -------------- An HTML attachment was scrubbed... URL: From rbehm at hushmail.com Fri Apr 1 16:11:50 2016 From: rbehm at hushmail.com (Reinhardt Behm) Date: Fri, 01 Apr 2016 22:11:50 +0800 Subject: [Interest] Press and hold keyboard key to bring up menu in QML In-Reply-To: References: Message-ID: <0fa93b0a4635635b0c09c60a1a925c8f@smtp.hushmail.com> On Friday 01 April 2016 14:33:29 Elvis Stansvik wrote: > 2016-04-01 12:45 GMT+02:00 Elvis Stansvik : > > Hi folks, > > > > I have a full screen, page based Qt Quick 2 application. Input is > > contstrained by the hardware to the Left/Right/Return keyboard keys, > > so is quite limited, and navigation between pages is done using > > buttons on each page which handle return presses using (most of the > > time) Keys.onReturnPressed and navigation between buttons and other > > items with KeyNavigation.left/right. > > > > I now have the need to provide a special global shortcut: On almost > > all of the screens, holding the Enter key for 3 seconds should bring > > the user immediately to a sort of start screen, where he/she can > > choose to go into Settings or Power Off. Kind of like how holding the > > power button on a phone often brings up a power off/flight mode menu. > > > > I'm struggling to find a good way to handle this centrally: since > > Enter presses are normally accepted (swallowed) by my various buttons > > and other input items on the pages, where can I put some central key > > press/release handler in which to start/stop a timer (to determine if > > it was a long 3 sec press or not)? > > > > My pages are FocusScopes stuffed in a StackView inside a Window. > > > > Many thanks for any advice. Has noone had this kind of requirement > > before? (Global "hold key" shortcut). > > Actually, scratch this. Our input device is a pushable wheel, and I've > realized now that we better re-program the Arduino we have hooked up > to it to have the logic to determine "long" vs "short" presses there > instead, and deliver these as distinct keypresses. > Well this might be the better idea. I don't know enough about Qt Quick since I am doing everything in C++ and widgets. But there I would install an event filter on every page, catching keypress/release for the enter key, but no eating it up. Start a QTimer on press, stop it on release. If it fires, enter was pressed long and this can trigger your global action. Reinhardt From jerome at bodycad.com Fri Apr 1 16:40:20 2016 From: jerome at bodycad.com (=?UTF-8?B?SsOpcsO0bWUgR29kYm91dA==?=) Date: Fri, 1 Apr 2016 10:40:20 -0400 Subject: [Interest] Press and hold keyboard key to bring up menu in QML In-Reply-To: References: Message-ID: The hardware side should do this, you will be able to debounced the inputs, filter them and avoid glitch and even make repeated or inertia of those keys more easily. On Fri, Apr 1, 2016 at 8:33 AM, Elvis Stansvik wrote: > 2016-04-01 12:45 GMT+02:00 Elvis Stansvik : > > Hi folks, > > > > I have a full screen, page based Qt Quick 2 application. Input is > > contstrained by the hardware to the Left/Right/Return keyboard keys, > > so is quite limited, and navigation between pages is done using > > buttons on each page which handle return presses using (most of the > > time) Keys.onReturnPressed and navigation between buttons and other > > items with KeyNavigation.left/right. > > > > I now have the need to provide a special global shortcut: On almost > > all of the screens, holding the Enter key for 3 seconds should bring > > the user immediately to a sort of start screen, where he/she can > > choose to go into Settings or Power Off. Kind of like how holding the > > power button on a phone often brings up a power off/flight mode menu. > > > > I'm struggling to find a good way to handle this centrally: since > > Enter presses are normally accepted (swallowed) by my various buttons > > and other input items on the pages, where can I put some central key > > press/release handler in which to start/stop a timer (to determine if > > it was a long 3 sec press or not)? > > > > My pages are FocusScopes stuffed in a StackView inside a Window. > > > > Many thanks for any advice. Has noone had this kind of requirement > > before? (Global "hold key" shortcut). > > Actually, scratch this. Our input device is a pushable wheel, and I've > realized now that we better re-program the Arduino we have hooked up > to it to have the logic to determine "long" vs "short" presses there > instead, and deliver these as distinct keypresses. > > Elvis > > > > > Elvis > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > -------------- next part -------------- An HTML attachment was scrubbed... URL: From elvstone at gmail.com Fri Apr 1 17:06:28 2016 From: elvstone at gmail.com (Elvis Stansvik) Date: Fri, 1 Apr 2016 17:06:28 +0200 Subject: [Interest] Press and hold keyboard key to bring up menu in QML In-Reply-To: <0fa93b0a4635635b0c09c60a1a925c8f@smtp.hushmail.com> References: <0fa93b0a4635635b0c09c60a1a925c8f@smtp.hushmail.com> Message-ID: 2016-04-01 16:11 GMT+02:00 Reinhardt Behm : > On Friday 01 April 2016 14:33:29 Elvis Stansvik wrote: >> 2016-04-01 12:45 GMT+02:00 Elvis Stansvik : >> > Hi folks, >> > >> > I have a full screen, page based Qt Quick 2 application. Input is >> > contstrained by the hardware to the Left/Right/Return keyboard keys, >> > so is quite limited, and navigation between pages is done using >> > buttons on each page which handle return presses using (most of the >> > time) Keys.onReturnPressed and navigation between buttons and other >> > items with KeyNavigation.left/right. >> > >> > I now have the need to provide a special global shortcut: On almost >> > all of the screens, holding the Enter key for 3 seconds should bring >> > the user immediately to a sort of start screen, where he/she can >> > choose to go into Settings or Power Off. Kind of like how holding the >> > power button on a phone often brings up a power off/flight mode menu. >> > >> > I'm struggling to find a good way to handle this centrally: since >> > Enter presses are normally accepted (swallowed) by my various buttons >> > and other input items on the pages, where can I put some central key >> > press/release handler in which to start/stop a timer (to determine if >> > it was a long 3 sec press or not)? >> > >> > My pages are FocusScopes stuffed in a StackView inside a Window. >> > >> > Many thanks for any advice. Has noone had this kind of requirement >> > before? (Global "hold key" shortcut). >> >> Actually, scratch this. Our input device is a pushable wheel, and I've >> realized now that we better re-program the Arduino we have hooked up >> to it to have the logic to determine "long" vs "short" presses there >> instead, and deliver these as distinct keypresses. >> > > Well this might be the better idea. > I don't know enough about Qt Quick since I am doing everything in C++ and > widgets. But there I would install an event filter on every page, catching > keypress/release for the enter key, but no eating it up. Start a QTimer on > press, stop it on release. If it fires, enter was pressed long and this can > trigger your global action. Yes, this is sort of what I started doing, but couldn't quite find an equivalent of an event filter. But I think in the end, modifying the code on the Arduino hooked up to the pushwheel is what we'll do. Elvis > > Reinhardt > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest From elvstone at gmail.com Fri Apr 1 17:08:08 2016 From: elvstone at gmail.com (Elvis Stansvik) Date: Fri, 1 Apr 2016 17:08:08 +0200 Subject: [Interest] Press and hold keyboard key to bring up menu in QML In-Reply-To: References: Message-ID: 2016-04-01 16:40 GMT+02:00 Jérôme Godbout : > The hardware side should do this, you will be able to debounced the inputs, > filter them and avoid glitch and even make repeated or inertia of those keys > more easily. Yes, that makes sense. Also thanks for teaching me a new word :) (debounce). Elvis > > On Fri, Apr 1, 2016 at 8:33 AM, Elvis Stansvik wrote: >> >> 2016-04-01 12:45 GMT+02:00 Elvis Stansvik : >> > Hi folks, >> > >> > I have a full screen, page based Qt Quick 2 application. Input is >> > contstrained by the hardware to the Left/Right/Return keyboard keys, >> > so is quite limited, and navigation between pages is done using >> > buttons on each page which handle return presses using (most of the >> > time) Keys.onReturnPressed and navigation between buttons and other >> > items with KeyNavigation.left/right. >> > >> > I now have the need to provide a special global shortcut: On almost >> > all of the screens, holding the Enter key for 3 seconds should bring >> > the user immediately to a sort of start screen, where he/she can >> > choose to go into Settings or Power Off. Kind of like how holding the >> > power button on a phone often brings up a power off/flight mode menu. >> > >> > I'm struggling to find a good way to handle this centrally: since >> > Enter presses are normally accepted (swallowed) by my various buttons >> > and other input items on the pages, where can I put some central key >> > press/release handler in which to start/stop a timer (to determine if >> > it was a long 3 sec press or not)? >> > >> > My pages are FocusScopes stuffed in a StackView inside a Window. >> > >> > Many thanks for any advice. Has noone had this kind of requirement >> > before? (Global "hold key" shortcut). >> >> Actually, scratch this. Our input device is a pushable wheel, and I've >> realized now that we better re-program the Arduino we have hooked up >> to it to have the logic to determine "long" vs "short" presses there >> instead, and deliver these as distinct keypresses. >> >> Elvis >> >> > >> > Elvis >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest > > From thiago.macieira at intel.com Fri Apr 1 18:01:10 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Fri, 01 Apr 2016 09:01:10 -0700 Subject: [Interest] Bugs processing In-Reply-To: <1791208550.20160401090433@programist.ru> References: <1139048299.20160331103650@programist.ru> <3834837.NFEPtVgsyK@tjmaciei-mobl4> <1791208550.20160401090433@programist.ru> Message-ID: <16790444.3aigbTCDaP@tjmaciei-mobl4> On sexta-feira, 1 de abril de 2016 09:04:33 PDT Prav wrote: > > Your bug is P2. So it's been triaged and prioritised. > > But this is what I think about it. I wonder about the list > qt-community have as plan for qt improvements. It's on bugreports.qt.io. Just list all the P0, P1 and P2 changes and you'll see what has same or higher priority than yours. Also note that P3 or lower do get sometimes ahead of yours because they're easy. > And ... bug it has > Assignee: Unassigned > > Which as I understand means nobody ever read it to categorize the bug > to any "department" (component or real engineer or any real person) ... bug > just hangs in the air as I understand its state. May be I am wrong? You're wrong. Your bug's priority was set to P2, which means someone read it and triaged it. The assignee just means no one is working on it now. > Could you please explain the procedure of assigning someone to the bug? When someone starts working on your bug, they will set the assignee to themselves and change the bug's state to In Progress. > And how long it should take? Anywhere from a couple of minutes to a couple of years. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From mark.youngquist at vantagecontrols.com Fri Apr 1 18:23:14 2016 From: mark.youngquist at vantagecontrols.com (Mark R Youngquist) Date: Fri, 1 Apr 2016 16:23:14 +0000 Subject: [Interest] Rotating a QGuiApplication Message-ID: Prior to our updates on our product and working with QQuickView we had been able to relateively easily transform our screen using something similar: view->rootObject()->setTransformOrigin(QQuickItem::TopLeft); view->rootObject()->setRotation(90); view->rootObject()->setX(view()->rootObject()->height()); I am struggling to find an equivalent in the QGuiApplication that allows for this same rotation. Our scenario is a specific screen that is mounted vertically instead of horizontally, and we had solved that via this rotation in the past. What am I missing? Mark Youngquist ________________________________ Ce message, ainsi que tous les fichiers joints à ce message, peuvent contenir des informations sensibles et/ ou confidentielles ne devant pas être divulguées. Si vous n'êtes pas le destinataire de ce message (ou que vous recevez ce message par erreur), nous vous remercions de le notifier immédiatement à son expéditeur, et de détruire ce message. Toute copie, divulgation, modification, utilisation ou diffusion, non autorisée, directe ou indirecte, de tout ou partie de ce message, est strictement interdite. Se désabonner: Si vous souhaitez être retiré de notre liste de diffusion, s'il vous plaît envoyer vos coordonnées à CASL.unsubscribe at legrand.ca et indiquer quels sont les messages que vous ne souhaitez plus recevoir. This e-mail, and any document attached hereby, may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorized, direct or indirect, copying, disclosure, distribution or other use of the material or parts thereof is strictly forbidden. Unsubscribe: If you would like to be removed from our mailing list, please send your contact information to CASL.unsubscribe at legrand.ca and indicate what messages you no longer wish to receive. -------------- next part -------------- An HTML attachment was scrubbed... URL: From scott at towel42.com Fri Apr 1 19:12:30 2016 From: scott at towel42.com (Scott Aron Bloom) Date: Fri, 1 Apr 2016 17:12:30 +0000 Subject: [Interest] QChart issues Message-ID: So, I have previously posted to interest@ and was told to post my questions to development at . Having posted my QChart issues, to development and receiving no reply, I am assuming development@ is NOT the best place to post questions/issues with QChart. So Ill ask to both areas, where is the best place? Scott -------------- next part -------------- An HTML attachment was scrubbed... URL: From annulen at yandex.ru Fri Apr 1 19:30:03 2016 From: annulen at yandex.ru (Konstantin Tokarev) Date: Fri, 01 Apr 2016 20:30:03 +0300 Subject: [Interest] QChart issues In-Reply-To: References: Message-ID: <5944961459531803@web26h.yandex.ru> 01.04.2016, 20:13, "Scott Aron Bloom" : > So, I have previously posted to interest@ and was told to post my questions to development at .  Having posted my QChart issues, to development and receiving no reply, I am assuming development@ is NOT the best place to post questions/issues with QChart. > > So Ill ask to both areas, where is the best place? Interest if for questions about usage of Qt libraries, development... guess. -- Regards, Konstantin From Tom.Isaacson at navico.com Sat Apr 2 00:09:03 2016 From: Tom.Isaacson at navico.com (Tom Isaacson) Date: Fri, 1 Apr 2016 22:09:03 +0000 Subject: [Interest] How to login to a website then call an API from the app Message-ID: (Apologies for the confused question but I don't know enough about what I'm trying to ask to know what the question should be). We have a Qt4.8.2 app that opens a browser to our website so the user can login. This creates a cookie which we can then use to call the website API from our app after the browser is closed. Now we've moved to Qt5 this has stopped working because QNetworkAccessManager can't be tied to QWebEngine and it looks like we need to move to Qt 5.6 to use the QWebEngineCookieStore class. But it got me thinking - is this actually a good way of doing this or is there a "best practice" we can follow? You can probably tell that I don't have much experience of web development so this is probably a dumb question, but what's the best way of doing this? Dropping the browser and just using a login dialog then hashing the password (we don't want to store it locally) and logging in via an API call? Or should we be looking at something like OAuth? Thanks for any assistance. Tom Isaacson From suy at badopi.org Sat Apr 2 17:02:12 2016 From: suy at badopi.org (Alejandro Exojo) Date: Sat, 2 Apr 2016 17:02:12 +0200 Subject: [Interest] Define map of static items in QML In-Reply-To: References: Message-ID: <201604021702.12157.suy@badopi.org> El Wednesday 30 March 2016, Elvis Stansvik escribió: > > not at all if that suit you for your key, it's all good. objectname is > > just a string property after all. id would be a bad idea, since it > > depend on the context instance. > > Alright, then I think I'll do that, thanks. This was an interesting thread. Is surprising that such a simple thing can't be done more elegantly. I've been trying to think of a "pretty" way, and it took me a bit to do it in QML only. The only really good solution would require some C++. Actually, a simple one would be to use Since the objectName is OK for you, a solution that looks more elegant to me, would be laying out the objects directly under the default property of some element: Root { A {objectName: "a"} B {objectName: "b"} C {objectName: "c"} } Then I thought you could access them by using something like QObject::findChild. Since that function is not exposed to QML, you would have either to make a similar one and expose it yourself. I've tried to get a QML only solution that was pretty enough, and I've almost failed, since I've hit several limitations of the language that would have made this simpler. Attempt 1: // Helper.qml QtObject { default property var stuff function get(name) { for (var i = 0; i < stuff.length; i++) { if (stuff[i].objectName == name) return stuff[i]; } } } // Now you could do this in main.qml ApplicationWindow { visible: true Helper { id: pages // Here you would add the Foo{} and Bar{} "pages" QtObject {objectName: "foo"} QtObject {objectName: "bar"} QtObject {objectName: "baz"} } Component.onCompleted: { console.log(pages.get("foo")); } } But no, doesn't work: https://bugreports.qt.io/browse/QTBUG-10822 The default property gets overwritten each time, and it doesn't set a list. Only the last one remains. Item has a default property like that (and even QtObject could have it, probably left out for saving memory), but it's done in C++. A possible workaround that would not be that nice here, because we don't want an Item as a helper, we want a QtObject: http://lists.qt-project.org/pipermail/development/2013-October/013428.html Attempt 2: Since the default property can't be used, surrender and use a named one when assigning: // Helper.qml QtObject { // Now the property is not default property var stuff // ... } // main.qml ApplicationWindow { visible: true Helper { id: screens stuff: [ QtObject {objectName: "foo"}, QtObject {objectName: "bar"}, QtObject {objectName: "baz"} ] } Component.onCompleted: { console.log(screens.get("foo")); } } And this fails too: main.qml:9 Cannot assign multiple values to a singular property Attempt 3: OK, the Helper is easily fixable now: QtObject { property list stuff // ... same as before } Now you can get the main as previously. This finally works. Again, if you had more possibilities in the QML language (like defining an enumeration in QML, for example) you could think of other solutions. -- Alex (a.k.a. suy) | GPG ID 0x0B8B0BC2 http://barnacity.net/ | http://disperso.net From damien.courtois at gmail.com Sat Apr 2 20:59:04 2016 From: damien.courtois at gmail.com (Damien Courtois) Date: Sat, 2 Apr 2016 20:59:04 +0200 Subject: [Interest] windeployqt and embedeed QML (.qrc) Message-ID: Hi there, I have a lot of trouble finding informations about this, but if I missed the obvious one, in advance sorry for that. My problem is that I have a Qml application, but all the Qml files are embedded in the executable through a .qrc file. And when I use windeployqt, it doesn't seem to copy any Qml module / file, as though the tool was not able to get the imports from my embedded Qmls. Is this supported by the tool ? Or will I need to provide the Qml files next to my executable so that the tool can do its job ? By the way I'm using Qt 5.6. Thanks in advance for any help. Damien Courtois -------------- next part -------------- An HTML attachment was scrubbed... URL: From ekke at ekkes-corner.org Sun Apr 3 17:10:49 2016 From: ekke at ekkes-corner.org (ekke) Date: Sun, 3 Apr 2016 17:10:49 +0200 Subject: [Interest] Qml Loader initial property setter In-Reply-To: References: Message-ID: <57013279.2050303@ekkes-corner.org> if you want to refer to a property as 'model.i' and there are situations where 'model' doesn't exist always, it's easy to avoid error messages: model? model.i : 42 this way you can set a default value while model is null (haven't tried this yet with Qt 5.6 but I'm doing it this way in BlackBerry 10 Cascades) ekke Am 01.04.16 um 16:05 schrieb Jérôme Godbout: > Yes, but the binding loaded object internal binding are printing > error, since the object is created without the input, then the > external binding are created. They will get eventually correct, but > the console will be filled with error message and I try to avoid that > at all cost. Here's a simple example that will complain about unable > to access i and j of undefined / assign undefined to width and height > (this example is a bit stupid but just a demo to show the problems > with more complex model and object): > > // MyComponent.qml > Item > { > property var model > width: model.i > height: model.j > } > > // Main.qml > MyModel > { > id: myModel_ > property int i: 24 > property int j: 12 > } > > Loader > { > id: loader_ > source: "MyComponent.qml" > } > > Binding > { > target: loader_.item > property: 'model' > value: myModel_ > when: loader_.status == Loader.Ready > } > > What I would like is the Loader call QQmlComponent::beginCreate(), > then having a hook to init some property then the Loader can finish > the component QQmlComponent::completeCreate(). This way I was able to > make it work, but having a custom component for that is a bit annoying. > > Loader > { > source: "MyComponent.qml" > onInitProperty: // signal emit with component object returned by > beginCreate(), > { > object.model = Qt.binding(function(){ return myModel_; }); > ... > } > } > > That seem clean and would avoid the problems to have object into bad > state for a brief moment. > > Jerome > > On Fri, Apr 1, 2016 at 12:04 AM, Shantanu Tushar > wrote: > > Hi, > > Have you tried using the QML Binding Type? > http://doc.qt.io/qt-5/qml-qtqml-binding.html > > On Thu, Mar 24, 2016 at 11:11 PM, Jérôme Godbout > > wrote: > > Hi, > > I was wondering if I am the only one who found the initial > property of a source based Loader Item a bit annoying. inline > sourceComponent with Component {} declaration are well ok on > the other hand. I'm explaining myself, when using a loader you > have 2 choice to set the initial binding on created item: > > 1- On item changed set the binding > > /Loader/ > /{/ > / source: externalObj.getSrc() // return something like > "myItem.qml"/ > / onItemChanged:/ > / {/ > / if(!item) return;/ > / item.myprop = Qt.binding(function(){ return > myExternalProperty; })/ > / }/ > /}/ > > 2- use the setSource() function instead of the source directly > > /Loader/ > /{/ > / property url myDummySrc: externalObj.getSrc()/ > / onMyDummySrcChanged:/ > / {/ > / setSource(myDummySrc, { 'myprop': > Qt.binding(function(){ return myExternalProperty; }) });/ > / }/ > /}/ > > This is rather annoying and ugly. Number 1 is also having the > problem where /myItem.qml/ must be able to handle /myprop /to > have a default value or being empty without output a lots of > console error. Number 2 work well and is the solution I find > myself writing often. I was wondering if a Loader that support > a dictionary of initial property when source changed would be > nice: > > /Loader/ > /{/ > / source: externalObj.getSrc()/ > / initialProperties: { > 'myprop': Qt.binding(function(){ return myExternalProperty; }) }/ > /}/ > > What do you think? > Jerome > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > > > > -- > Shantanu Tushar (UTC +0530) > shantanu.io > > > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -------------- next part -------------- An HTML attachment was scrubbed... URL: From nomercy at gmail.com Sun Apr 3 20:07:00 2016 From: nomercy at gmail.com (Emre Besirik) Date: Sun, 3 Apr 2016 21:07:00 +0300 Subject: [Interest] CLion to replace QtCreator? Message-ID: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> Hello list, I know its a little bit off-topic but I was wondering your ideas about the unpleasentness of coding with QtCreator (no offense, I respect the creators of the original IDE but..) So there is this; https://youtrack.jetbrains.com/issue/CPP-318 (in case you didn’t know already) do you support it? Do you also find it a littlebit unpleasent to code in QtCreator like me? Does Qt plan to do something about this? Does / Can Qt officially support and write a plugin for CLion maybe? Regards, Emre Beşirik nomercy at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From thiago.macieira at intel.com Sun Apr 3 21:00:43 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Sun, 03 Apr 2016 12:00:43 -0700 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> Message-ID: <2081855.gQOhDpIePN@tjmaciei-mobl4> On domingo, 3 de abril de 2016 21:07:00 PDT Emre Besirik wrote: > Do you also find it a littlebit unpleasent to code in QtCreator like me? > Does Qt plan to do something about this? It would be more constructive if you explained what your issues are and what you findto be unpleasant. Without that, nothing is ever going to happen. But I have to say I don't feel any unpleasantness. Qt Creator is the best IDE I've ever used. There are some things I'd do differently, but that's all. I also expect that's how most Qt developers and especially the Qt Creator developers feel, so it's highly unlikely we'll do a complete change of direction. > Does / Can Qt officially support and write a plugin for CLion maybe? You can. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From bhood2 at comcast.net Sun Apr 3 21:18:39 2016 From: bhood2 at comcast.net (Bob Hood) Date: Sun, 3 Apr 2016 13:18:39 -0600 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> Message-ID: <57016C8F.3040809@comcast.net> On 4/3/2016 12:07 PM, Emre Besirik wrote: > Hello list, > I know its a little bit off-topic but I was wondering your ideas about the > unpleasentness of coding with QtCreator (no offense, I respect the creators > of the original IDE but..) > So there is this; https://youtrack.jetbrains.com/issue/CPP-318 (in case you > didn’t know already) do you support it? > Do you also find it a littlebit unpleasent to code in QtCreator like me? Actually, no I don't. Quite the contrary. It has actually saved me when I've had to leave Visual Studio to work on OS X and Linux, because--with the right keyboard mapping--it is the closest cross-platform thing I've yet found to the "feel" of Visual Studio, where I spend most of my days. So, I do not agree with you at all. In may ways, I consider QtCreator to be my home-away-from-home. -------------- next part -------------- An HTML attachment was scrubbed... URL: From bhood2 at comcast.net Sun Apr 3 22:41:51 2016 From: bhood2 at comcast.net (Bob Hood) Date: Sun, 3 Apr 2016 14:41:51 -0600 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <57016C8F.3040809@comcast.net> Message-ID: <5701800F.10602@comcast.net> On 4/3/2016 1:41 PM, Emre Besirik wrote: >> On 03 Apr 2016, at 22:18, Bob Hood > > wrote: >> >> On 4/3/2016 12:07 PM, Emre Besirik wrote: >>> Hello list, >>> I know its a little bit off-topic but I was wondering your ideas about the >>> unpleasentness of coding with QtCreator (no offense, I respect the >>> creators of the original IDE but..) >>> So there is this; https://youtrack.jetbrains.com/issue/CPP-318 (in case >>> you didn’t know already) do you support it? >>> Do you also find it a littlebit unpleasent to code in QtCreator like me? >> >> Actually, no I don't. Quite the contrary. It has actually saved me when >> I've had to leave Visual Studio to work on OS X and Linux, because--with >> the right keyboard mapping--it is the closest cross-platform thing I've yet >> found to the "feel" of Visual Studio, where I spend most of my days. >> >> So, I do not agree with you at all. In may ways, I consider QtCreator to >> be my home-away-from-home. > > Have you ever tried ANY jetbrains product? I do mean just for few days but > really trying... I have used PyCharm, but honestly, having a separate IDE just for Python is not practical since I can develop/debug Python right along side C/C++ in Visual Studio using an add-in. If I needed to do so on a non-Windows platform, then I might not necessarily choose QtCreator. I'm not saying the JetBrains wares are not good--quite the contrary--but since I'm a Qt developer, and I have used Visual Studio for decades, the choice of QtCreator for non-Windows platforms is a no-brainer. And it's free, just like JetBrains' offerings (with the right license). But be aware that you're talking to somebody who has written whole applications using nothing but vi and a command prompt. I'm certainly not a /connoisseur/of IDEs. ;) -------------- next part -------------- An HTML attachment was scrubbed... URL: From realnc at gmail.com Mon Apr 4 10:12:49 2016 From: realnc at gmail.com (Nikos Chantziaras) Date: Mon, 4 Apr 2016 11:12:49 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <2081855.gQOhDpIePN@tjmaciei-mobl4> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> Message-ID: On 03/04/16 22:00, Thiago Macieira wrote: > On domingo, 3 de abril de 2016 21:07:00 PDT Emre Besirik wrote: >> Do you also find it a littlebit unpleasent to code in QtCreator like me? >> Does Qt plan to do something about this? > > It would be more constructive if you explained what your issues are and what > you findto be unpleasant. Without that, nothing is ever going to happen. I assume the same things as the rest of us, perhaps: * Lack of auto-completion for connect(). * Very slow auto-completion. * Generally auto-completion sometimes work, sometimes doesn't. * "Find uses" doesn't work, so you have to grep to find uses. * It gets very confused with smart pointers and templates in general. * Sometimes doesn't highlight local uses. This is the clang code model, and these things are a major PITA. The Creator code model was excellent for C++98. The last few months, I complete switched my projects to C++14, and that code model is now useless, so clang is the only choice. And it's not very pleasant to work with. In fact, I'd say it's very unpleasant. From ekke at ekkes-corner.org Mon Apr 4 10:43:50 2016 From: ekke at ekkes-corner.org (ekke) Date: Mon, 4 Apr 2016 10:43:50 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> Message-ID: <57022946.1000006@ekkes-corner.org> Am 04.04.16 um 10:12 schrieb Nikos Chantziaras: > On 03/04/16 22:00, Thiago Macieira wrote: >> On domingo, 3 de abril de 2016 21:07:00 PDT Emre Besirik wrote: >>> Do you also find it a littlebit unpleasent to code in QtCreator like >>> me? >>> Does Qt plan to do something about this? >> >> It would be more constructive if you explained what your issues are >> and what >> you findto be unpleasant. Without that, nothing is ever going to happen. > > I assume the same things as the rest of us, perhaps: > > * Lack of auto-completion for connect(). > * Very slow auto-completion. > * Generally auto-completion sometimes work, sometimes doesn't. > * "Find uses" doesn't work, so you have to grep to find uses. > * It gets very confused with smart pointers and templates in general. > * Sometimes doesn't highlight local uses. > > This is the clang code model, and these things are a major PITA. > > The Creator code model was excellent for C++98. The last few months, I > complete switched my projects to C++14, and that code model is now > useless, so clang is the only choice. And it's not very pleasant to > work with. In fact, I'd say it's very unpleasant. > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > I'm using Qt Creator only for mobile app development for me coming from Eclipse Momentics (BlackBerry 10, Qt 4.8 / Cascades) I'm really missing: * Tabs to edit files * Running multiple mobile devices at the same time from inside Eclipse with easy switching between Consol outputs etc * Hiding all the translation stuff (ts, qm, lupdate, ...) by simply adding the languages to a project * no sync with underlying file-system to enable easy drag'n'drop of ressources or src files * and yes, auto-completion and refactoring of Eclipse is unmatched on the other side I know QtCreator has to support much more different targets compared with Momentics for Cascades or Android Studio for Android. also my first steps with QtCreator to create new project and deploy to Android and iOS devices went well - it worked out of the box. I'll create feature requests, but at first will do some more work with QtCreator to become more familiar Now with qt.labs.controls in Qt 5.6 and starting with Qt 5.7 from my POV Qt is a great way to develop mobile applications and they're really looking great with Material Style. Also the new Startup / ind.dev-license is attractive to motivate mobile developers to try out Qt. Feedback I got was always, that it's hard to start with QtCreator coming from Android Studio or Eclipse. I'll blog about my experiences and provide recipes to make it easier for mobile developers to start with Qt. -- ekke (ekkehard gentz) independent software architect international development native mobile business apps BlackBerry 10 | Qt Mobile (Android, iOS) blog: http://ekkes-corner.org apps and more: http://appbus.org twitter: @ekkescorner skype: ekkes-corner LinkedIn: http://linkedin.com/in/ekkehard/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From realnc at gmail.com Mon Apr 4 11:40:58 2016 From: realnc at gmail.com (Nikos Chantziaras) Date: Mon, 4 Apr 2016 12:40:58 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <3CF9F0427713DFBD.3ADEBEC2-5DD2-4A55-8126-93B8ED922486@mail.outlook.com> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <3CF9F0427713DFBD.3ADEBEC2-5DD2-4A55-8126-93B8ED922486@mail.outlook.com> Message-ID: <570236AA.3030102@gmail.com> It only works with the old, Qt4 string/macro-based syntax (using the SLOT and SIGNAL macros.) Which is totally unsafe and I don't use it anymore (I wouldn't even recommend it to anyone.) The new syntax, which is statically checked (compile time) and thus type-safe, even though it's the recommended one by Qt, is not supported in Creator using the clang model. This does not auto-complete: connect(this, &MyWidget::mySignal, control, &MyControl::mySlot); This is not the end of the world, but still it's unpleasant to work with. The clang code model will get better in the future, I'm sure of it. But right now, it's pain all the way down. The lacking auto-completion might not even be the worst of it. In the end, that's "just" a productivity and convenience issue. The lack of reliable "find all uses" in the clang model is actually a more serious problem, since if you trust it you're left with the false sense of security that you caught all the places in your code where a symbol was used and made whatever changes you needed to make to fix an issue. But it doesn't find all uses. Which is *dangerous*. So I have to do a text-based, project-wide search for a string instead to actually get to all uses of the symbol and update my code. On 04/04/16 11:42, Alexey Rusakov wrote: > Not sure what I'm doing wrong but auto-completion for connect() does > work for me. Moreover, I don't expect CLion to be able to work with > SIGNAL() and SLOT() notation without Qt-aware plugin. > > I might expect CLion to rule them all in some indefinite future but very > hardly at the moment. Disclaimer: I am a switch-over from CLion to Qt > Creator, exactly because Qt Creator worked for me much better than CLion > for CMake-based Qt-using projects. > > > > On Mon, Apr 4, 2016 at 1:13 AM -0700, "Nikos Chantziaras" > > wrote: > > On 03/04/16 22:00, Thiago Macieira wrote: > > On domingo, 3 de abril de 2016 21:07:00 PDT Emre Besirik wrote: > >> Do you also find it a littlebit unpleasent to code in QtCreator like me? > >> Does Qt plan to do something about this? > > > > It would be more constructive if you explained what your issues are and what > > you findto be unpleasant. Without that, nothing is ever going to happen. > > I assume the same things as the rest of us, perhaps: > > * Lack of auto-completion for connect(). > * Very slow auto-completion. > * Generally auto-completion sometimes work, sometimes doesn't. > * "Find uses" doesn't work, so you have to grep to find uses. > * It gets very confused with smart pointers and templates in general. > * Sometimes doesn't highlight local uses. > > This is the clang code model, and these things are a major PITA. > > The Creator code model was excellent for C++98. The last few months, I > complete switched my projects to C++14, and that code model is now > useless, so clang is the only choice. And it's not very pleasant to work > with. In fact, I'd say it's very unpleasant. > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > From realnc at gmail.com Mon Apr 4 12:47:38 2016 From: realnc at gmail.com (Nikos Chantziaras) Date: Mon, 4 Apr 2016 13:47:38 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <3CF9F0427713DFBD.D7F0EB2C-08B8-4784-8A82-7838802D8511@mail.outlook.com> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <3CF9F0427713DFBD.3ADEBEC2-5DD2-4A55-8126-93B8ED922486@mail.outlook.com> <570236AA.3030102@gmail.com> <3CF9F0427713DFBD.D7F0EB2C-08B8-4784-8A82-7838802D8511@mail.outlook.com> Message-ID: <5702464A.9080504@gmail.com> On 04/04/16 13:29, Alexey Rusakov wrote: > I don't know what I'm doing wrong but the new compile-time-checked > syntax is auto-completed by my Qt Creator (that came with Qt 5.5.1) as > well :) With the clang code model? (Which is the only even remotely useful choice for modern C++.) > and you're a bit blunt on not recommending the older syntax. > Apparently you haven't spent enough time with QML. QML is a run-time thing, so the new syntax doesn't apply. For C++ code, the new syntax is better, and also mandatory for lambdas. You cannot use the old syntax even if you wanted to. From nomercy at gmail.com Mon Apr 4 12:59:37 2016 From: nomercy at gmail.com (Emre Besirik) Date: Mon, 4 Apr 2016 13:59:37 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <5702464A.9080504@gmail.com> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <3CF9F0427713DFBD.3ADEBEC2-5DD2-4A55-8126-93B8ED922486@mail.outlook.com> <570236AA.3030102@gmail.com> <3CF9F0427713DFBD.D7F0EB2C-08B8-4784-8A82-7838802D8511@mail.outlook.com> <5702464A.9080504@gmail.com> Message-ID: <0EC9CEB8-4E70-4DA4-98F7-2AF871A43137@gmail.com> BTW I think you are replying to the person instead of list address. list can not see your replies if you dont send it to the list. Regards, Emre Beşirik nomercy at gmail.com > On 04 Apr 2016, at 13:47, Nikos Chantziaras wrote: > > On 04/04/16 13:29, Alexey Rusakov wrote: >> I don't know what I'm doing wrong but the new compile-time-checked >> syntax is auto-completed by my Qt Creator (that came with Qt 5.5.1) as >> well :) > > With the clang code model? (Which is the only even remotely useful choice for modern C++.) > > >> and you're a bit blunt on not recommending the older syntax. >> Apparently you haven't spent enough time with QML. > > QML is a run-time thing, so the new syntax doesn't apply. For C++ code, the new syntax is better, and also mandatory for lambdas. You cannot use the old syntax even if you wanted to. > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest From diegoiast at gmail.com Mon Apr 4 13:06:00 2016 From: diegoiast at gmail.com (Diego Iastrubni) Date: Mon, 4 Apr 2016 14:06:00 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <2081855.gQOhDpIePN@tjmaciei-mobl4> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> Message-ID: On Sun, Apr 3, 2016 at 10:00 PM, Thiago Macieira wrote: > > But I have to say I don't feel any unpleasantness. Qt Creator is the best > IDE > I've ever used. There are some things I'd do differently, but that's all. I > also expect that's how most Qt developers and especially the Qt Creator > developers feel, so it's highly unlikely we'll do a complete change of > direction. > > Without trying to offence, "you need to walk around the neighborhoods" a little. While QtCreator is definitely "cool" and very speedy, there are some things I see in IntelliJ/AndroidStudio which I definitely miss in QtCreator: 1. XML tags completion for known tags. This can be done for *.UI files, and maybe some part of *.QS. Basic XML structure is already know - so even for unknown XML variants - the IDE knows what tag to close. 2. Class implementations - for example, I derive from an interface and pressing control+enter on the type will add missing methods. 3. When I define an inline class (Java, but can be done using lambda expressions in C++), just pressing control+enter will write the code for me. For example: AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setPositiveButton(android.R.string.ok, new ___ Pressing "control+enter" will create a new anonymous class which derives new DialogInterface.OnClickListener() 4. When a method argument is an enum, code completion works on the corresponding enum, and adds the needed type. 5. Automatically know how to modify R"code" for example here: ListView mListView = findViewById(R.id.notifications_list_view); it will suggest to typecast to ListView (to fix - again, control+enter). 6. While debugging the values of variables are displayed inside the text editor, in light gray (no more looking for them in a panel). 7. When using connect, using Niko's example, I would like to type connect(button, [clicked], this, [playTheFunkyMusic]) and QtCreator should automagically find the signals of button, and the corresponding slots of "this". It used to work in ond style Qt4 signals, but with modern connections, I need to type the whole type. Some signals are hard to find, for example the "click()" signal from QButton comes from QAbstractButton. This means that when an object "has/provides" a signal, I need to guess the parent type which defined the signal in order connect it (I did not have to know this in Qt4). 8. When I am lost "control+enter" usually fixe stuff for me. 9. Multiple cursors (see the demo on SublimeText's home page - its epic, and Atom badly implements it), Well basically, Android studio (and even XCode a little) helps me not knowing the language by filling in the gaps for me. I know more C++ then Java, but I am far more productive with Java - because the IDE does a lot of heavy lifting. Not saying that QtCreator is not good, but blindly claiming it's the best is not always true. Its even possible that some things are working in QtC4... I need to re-check at home. I should also open official feature requests and not complaining on a ML. I agree. -------------- next part -------------- An HTML attachment was scrubbed... URL: From andre.hartmann at iseg-hv.de Mon Apr 4 13:35:47 2016 From: andre.hartmann at iseg-hv.de (=?UTF-8?Q?Andr=c3=a9_Hartmann?=) Date: Mon, 4 Apr 2016 13:35:47 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> Message-ID: <57025193.1080000@iseg-hv.de> Hi all, > 1. XML tags completion for known tags. This can be done for *.UI files, > and maybe some part of *.QS. Basic XML structure is already know - > so even for unknown XML variants - the IDE knows what tag to close. That would indeed be very cool. > 2. Class implementations - for example, I derive from an interface and > pressing control+enter on the type will add missing methods. That already works if you right-click on the implementation class' name and choose Refactor -> Insert Virtual Function of Base Classes. You get same menu with Alt+Enter on the class name. There are a lot more refactoring actions available, all context aware. Maybe you need some time to explore them all. Best regards, Andre From nomercy at gmail.com Mon Apr 4 13:47:35 2016 From: nomercy at gmail.com (Emre Besirik) Date: Mon, 4 Apr 2016 14:47:35 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> Message-ID: <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> > XML tags completion for known tags. This can be done for *.UI files, and maybe some part of *.QS. Basic XML structure is already know - so even for unknown XML variants - the IDE knows what tag to close. > Class implementations - for example, I derive from an interface and pressing control+enter on the type will add missing methods. > When I define an inline class (Java, but can be done using lambda expressions in C++), just pressing control+enter will write the code for me. For example: > AlertDialog.Builder builder = new AlertDialog.Builder(this); > builder.setPositiveButton(android.R.string.ok, new ___ > Pressing "control+enter" will create a new anonymous class which derives new DialogInterface.OnClickListener() > When a method argument is an enum, code completion works on the corresponding enum, and adds the needed type. > Automatically know how to modify R"code" for example here: > ListView mListView = findViewById(R.id.notifications_list_view); > it will suggest to typecast to ListView (to fix - again, control+enter). > While debugging the values of variables are displayed inside the text editor, in light gray (no more looking for them in a panel). > When using connect, using Niko's example, I would like to type > connect(button, [clicked], this, [playTheFunkyMusic]) > and QtCreator should automagically find the signals of button, and the corresponding slots of "this". It used to work in ond style Qt4 signals, but with modern connections, I need to type the whole type. Some signals are hard to find, for example the "click()" signal from QButton comes from QAbstractButton. This means that when an object "has/provides" a signal, I need to guess the parent type which defined the signal in order connect it (I did not have to know this in Qt4). > When I am lost "control+enter" usually fixe stuff for me. > Multiple cursors (see the demo on SublimeText's home page - its epic, and Atom badly implements it), Search! (like spotlight search with just one shortcut key to open file or go to a particular location in your code): search symbols files in your project search everywhere you can lookout jetbrains IDEs for more examples Smart code completion. and by smart I mean for instance; if I’m going to assign something to an int type do not suggest me different return types of functions or variables. do smart things like; if I’m creating/assigning a variable something for first time suggest me things like object initializations first depending on the object type. And try to do these without delays as much as possible. cache, index, think beyond the box. Do things so obvious your self, do not wait for me to do. tabs — the current working type of open documents are really annoying. if you have split view open, first you need to select the view you intend to change open document. I dont know how many times I’ve changed the non-intended document in workspace ONE key to kill all other views and leave code windows open only (like distraction free mode of intellij) go proactive, generate getters/setter and stuff like that. have a dark UI mode :) have tons of more keyboard shortcuts (check out intellij) have a better user friendly UI I’m sorry to say this but QtCreator is actually eons behind the current IDE trends and technology :( Just checkout the comments at the link I shared in my first post, people are practically begging jetbrains to save themselves from QtCreator (no offense intended but this is the case for many people) And I think Qt Company should just get rid of the denial of the world start to see beyond horizon and do something, revolutionize QtCreator or just do something like Google did for android studio and embrace/deal with jetbrains ide and fork a CLion custimized for Qt development. I dont see any other way :( Regards, Emre Beşirik nomercy at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From nomercy at gmail.com Mon Apr 4 14:13:01 2016 From: nomercy at gmail.com (Emre Besirik) Date: Mon, 4 Apr 2016 15:13:01 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> Message-ID: > XML tags completion for known tags. This can be done for *.UI files, and maybe some part of *.QS. Basic XML structure is already know - so even for unknown XML variants - the IDE knows what tag to close. > Class implementations - for example, I derive from an interface and pressing control+enter on the type will add missing methods. > When I define an inline class (Java, but can be done using lambda expressions in C++), just pressing control+enter will write the code for me. For example: > AlertDialog.Builder builder = new AlertDialog.Builder(this); > builder.setPositiveButton(android.R.string.ok, new ___ > Pressing "control+enter" will create a new anonymous class which derives new DialogInterface.OnClickListener() > When a method argument is an enum, code completion works on the corresponding enum, and adds the needed type. > Automatically know how to modify R"code" for example here: > ListView mListView = findViewById(R.id.notifications_list_view); > it will suggest to typecast to ListView (to fix - again, control+enter). > While debugging the values of variables are displayed inside the text editor, in light gray (no more looking for them in a panel). > When using connect, using Niko's example, I would like to type > connect(button, [clicked], this, [playTheFunkyMusic]) > and QtCreator should automagically find the signals of button, and the corresponding slots of "this". It used to work in ond style Qt4 signals, but with modern connections, I need to type the whole type. Some signals are hard to find, for example the "click()" signal from QButton comes from QAbstractButton. This means that when an object "has/provides" a signal, I need to guess the parent type which defined the signal in order connect it (I did not have to know this in Qt4). > When I am lost "control+enter" usually fixe stuff for me. > Multiple cursors (see the demo on SublimeText's home page - its epic, and Atom badly implements it), Search! (like spotlight search with just one shortcut key to open file or go to a particular location in your code): search symbols files in your project search everywhere you can lookout jetbrains IDEs for more examples Smart code completion. and by smart I mean for instance; if I’m going to assign something to an int type do not suggest me different return types of functions or variables. do smart things like; if I’m creating/assigning a variable something for first time suggest me things like object initializations first depending on the object type. And try to do these without delays as much as possible. cache, index, think beyond the box. Do things so obvious your self, do not wait for me to do. tabs — the current working type of open documents are really annoying. if you have split view open, first you need to select the view you intend to change open document. I dont know how many times I’ve changed the non-intended document in workspace ONE key to kill all other views and leave code windows open only (like distraction free mode of intellij) go proactive, generate getters/setter and stuff like that. have a dark UI mode :) have tons of more keyboard shortcuts (check out intellij) have a better user friendly UI I’m sorry to say this but QtCreator is actually eons behind the current IDE trends and technology :( Just checkout the comments at the link I shared in my first post, people are practically begging jetbrains to save themselves from QtCreator (no offense intended but this is the case for many people) And I think Qt Company should just get rid of the denial of the world start to see beyond horizon and do something, revolutionize QtCreator or just do something like Google did for android studio and embrace/deal with jetbrains ide and fork a CLion custimized for Qt development. I dont see anyother way :( Regards, Emre Beşirik nomercy at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From nomercy at gmail.com Mon Apr 4 14:16:00 2016 From: nomercy at gmail.com (Emre Besirik) Date: Mon, 4 Apr 2016 15:16:00 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <0EC9CEB8-4E70-4DA4-98F7-2AF871A43137@gmail.com> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <3CF9F0427713DFBD.3ADEBEC2-5DD2-4A55-8126-93B8ED922486@mail.outlook.com> <570236AA.3030102@gmail.com> <3CF9F0427713DFBD.D7F0EB2C-08B8-4784-8A82-7838802D8511@mail.outlook.com> <5702464A.9080504@gmail.com> <0EC9CEB8-4E70-4DA4-98F7-2AF871A43137@gmail.com> Message-ID: Sorry forgot to mention this was meant for Alexey Rusakov :) Regards, Emre Beşirik nomercy at gmail.com > On 04 Apr 2016, at 13:59, Emre Besirik wrote: > > BTW I think you are replying to the person instead of list address. > list can not see your replies if you dont send it to the list. > > Regards, > Emre Beşirik > nomercy at gmail.com > > > >> On 04 Apr 2016, at 13:47, Nikos Chantziaras wrote: >> >> On 04/04/16 13:29, Alexey Rusakov wrote: >>> I don't know what I'm doing wrong but the new compile-time-checked >>> syntax is auto-completed by my Qt Creator (that came with Qt 5.5.1) as >>> well :) >> >> With the clang code model? (Which is the only even remotely useful choice for modern C++.) >> >> >>> and you're a bit blunt on not recommending the older syntax. >>> Apparently you haven't spent enough time with QML. >> >> QML is a run-time thing, so the new syntax doesn't apply. For C++ code, the new syntax is better, and also mandatory for lambdas. You cannot use the old syntax even if you wanted to. >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest > From annulen at yandex.ru Mon Apr 4 14:18:24 2016 From: annulen at yandex.ru (Konstantin Tokarev) Date: Mon, 04 Apr 2016 15:18:24 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> Message-ID: <10603041459772304@web23g.yandex.ru> 04.04.2016, 15:13, "Emre Besirik" : >> * XML tags completion for known tags. This can be done for *.UI files, and maybe some part of *.QS.  Basic XML structure is already know - so even for unknown XML variants - the IDE knows what tag to close. >> * Class implementations - for example, I derive from an interface and pressing control+enter on the type will add missing methods. >> * When I define an inline class (Java, but can be done using lambda expressions in C++), just pressing control+enter will write the code for me. For example: >> >> AlertDialog.Builder builder = new AlertDialog.Builder(this); >> builder.setPositiveButton(android.R.string.ok, new ___ >> >> Pressing "control+enter" will create a new anonymous class which derives new DialogInterface.OnClickListener() >> * >> When a method argument is an enum, code completion works on the corresponding enum, and adds the needed type. >> * >> Automatically know how to modify R"code" for example here: >> ListView mListView = findViewById(R.id.notifications_list_view); >> it will suggest to typecast to ListView (to fix - again, control+enter). >> * >> While debugging the values of variables are displayed inside the text editor, in light gray (no more looking for them in a panel). >> * >> When using connect, using Niko's example, I would like to type >> connect(button, [clicked], this, [playTheFunkyMusic]) >> and QtCreator should automagically find the signals of button, and the corresponding slots of "this". It used to work in ond style Qt4 signals, but with modern connections, I need to type the whole type. Some signals are hard to find, for example the "click()" signal from QButton comes from QAbstractButton. This means that when an object "has/provides" a signal, I need to guess the parent type which defined the signal in order connect it (I did not have to know this in Qt4). >> * >> When I am lost "control+enter" usually fixe stuff for me. >> * >> Multiple cursors (see the demo on SublimeText's home page - its epic, and Atom badly implements it), > > * Search! (like spotlight search with just one shortcut key to open file or go to a particular location in your code): > > * search symbols > * files in your project > * search everywhere > * you can lookout jetbrains IDEs for more examples > * Smart code completion. and by smart I mean for instance; if I’m going to assign something to an int type do not suggest me different return types of functions or variables. do smart things like; if I’m creating/assigning a variable something for first time suggest me things like object initializations first depending on the object type. And try to do these without delays as much as possible. cache, index, think beyond the box. > * Do things so obvious your self, do not wait for me to do. > * tabs — the current working type of open documents are really annoying. if you have split view open, first you need to select the view you intend to change open document. I dont know how many times I’ve changed the non-intended document in workspace > * ONE key to kill all other views and leave code windows open only (like distraction free mode of intellij) > * go proactive, generate getters/setter and stuff like that. > * have a dark UI mode :) > * have tons of more keyboard shortcuts (check out intellij) > * have a better user friendly UI > > I’m sorry to say this but QtCreator is actually eons behind the current IDE trends and technology :( > Just checkout the comments at the link I shared in my first post, people are practically begging jetbrains to save themselves from QtCreator (no offense intended but this is the case for many people) > And I think Qt Company should just get rid of the denial of the world start to see beyond horizon and do something, revolutionize QtCreator or just do something like Google did for android studio and embrace/deal with jetbrains ide and fork a CLion custimized for Qt development. I dont see anyother way :( There is a fundamental difference here with Android Studio case: IntelliJ Idea is an open-source product, while CLion isn't (and is not even free-as-in-beer, which is a dealbreaker for many people). -- Regards, Konstantin From nomercy at gmail.com Mon Apr 4 14:28:03 2016 From: nomercy at gmail.com (Emre Besirik) Date: Mon, 4 Apr 2016 15:28:03 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <10603041459772304@web23g.yandex.ru> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <10603041459772304@web23g.yandex.ru> Message-ID: <0D70AEE1-2E95-4252-AAC0-E08E50AE68C6@gmail.com> > On 04 Apr 2016, at 15:18, Konstantin Tokarev wrote: > > > > 04.04.2016, 15:13, "Emre Besirik" : >>> * XML tags completion for known tags. This can be done for *.UI files, and maybe some part of *.QS. Basic XML structure is already know - so even for unknown XML variants - the IDE knows what tag to close. >>> * Class implementations - for example, I derive from an interface and pressing control+enter on the type will add missing methods. >>> * When I define an inline class (Java, but can be done using lambda expressions in C++), just pressing control+enter will write the code for me. For example: >>> >>> AlertDialog.Builder builder = new AlertDialog.Builder(this); >>> builder.setPositiveButton(android.R.string.ok, new ___ >>> >>> Pressing "control+enter" will create a new anonymous class which derives new DialogInterface.OnClickListener() >>> * >>> When a method argument is an enum, code completion works on the corresponding enum, and adds the needed type. >>> * >>> Automatically know how to modify R"code" for example here: >>> ListView mListView = findViewById(R.id.notifications_list_view); >>> it will suggest to typecast to ListView (to fix - again, control+enter). >>> * >>> While debugging the values of variables are displayed inside the text editor, in light gray (no more looking for them in a panel). >>> * >>> When using connect, using Niko's example, I would like to type >>> connect(button, [clicked], this, [playTheFunkyMusic]) >>> and QtCreator should automagically find the signals of button, and the corresponding slots of "this". It used to work in ond style Qt4 signals, but with modern connections, I need to type the whole type. Some signals are hard to find, for example the "click()" signal from QButton comes from QAbstractButton. This means that when an object "has/provides" a signal, I need to guess the parent type which defined the signal in order connect it (I did not have to know this in Qt4). >>> * >>> When I am lost "control+enter" usually fixe stuff for me. >>> * >>> Multiple cursors (see the demo on SublimeText's home page - its epic, and Atom badly implements it), >> >> * Search! (like spotlight search with just one shortcut key to open file or go to a particular location in your code): >> >> * search symbols >> * files in your project >> * search everywhere >> * you can lookout jetbrains IDEs for more examples >> * Smart code completion. and by smart I mean for instance; if I’m going to assign something to an int type do not suggest me different return types of functions or variables. do smart things like; if I’m creating/assigning a variable something for first time suggest me things like object initializations first depending on the object type. And try to do these without delays as much as possible. cache, index, think beyond the box. >> * Do things so obvious your self, do not wait for me to do. >> * tabs — the current working type of open documents are really annoying. if you have split view open, first you need to select the view you intend to change open document. I dont know how many times I’ve changed the non-intended document in workspace >> * ONE key to kill all other views and leave code windows open only (like distraction free mode of intellij) >> * go proactive, generate getters/setter and stuff like that. >> * have a dark UI mode :) >> * have tons of more keyboard shortcuts (check out intellij) >> * have a better user friendly UI >> >> I’m sorry to say this but QtCreator is actually eons behind the current IDE trends and technology :( >> Just checkout the comments at the link I shared in my first post, people are practically begging jetbrains to save themselves from QtCreator (no offense intended but this is the case for many people) >> And I think Qt Company should just get rid of the denial of the world start to see beyond horizon and do something, revolutionize QtCreator or just do something like Google did for android studio and embrace/deal with jetbrains ide and fork a CLion custimized for Qt development. I dont see anyother way :( > > There is a fundamental difference here with Android Studio case: IntelliJ Idea is an open-source product, while CLion isn't (and is not even free-as-in-beer, which is a dealbreaker for many people). > > -- > Regards, > Konstantin Well there must be something can be done, Qt Can use Intellij like google did, I know its a little bit more work compared to CLion fork but it is possible. Or at least a plugin for intellij platform maybe? I mean as long as you want to be part of the solution... Regards/Saygilar, Emre Beşirik nomercy at gmail.com From elvstone at gmail.com Mon Apr 4 14:37:00 2016 From: elvstone at gmail.com (Elvis Stansvik) Date: Mon, 4 Apr 2016 14:37:00 +0200 Subject: [Interest] Available versions to QML import in older Qt releases? Message-ID: Hi all, I'm working on a product based on Ubuntu 15.10, where Qt 5.4.1 is the packaged version (I know a more recent Ubuntu is soon to be released, and an LTS at that, but we're on this version for now). Is there an online way to find out which versions of packages I can import from the QtQuick 2 that comes with 5.4.1, short of downloading the offline documentation? Experimentally I've deduced that QtQuick 2.4 QtQuick.Window 2.2 QtQuick.Controls 1.3 QtQuick.Controls.Styles 1.3 QtQuick.Layouts 1.1 are the versions available in 5.4.1 for the packages I'm using, but it would be great if there was a way to look up/confirm this quickly. I know there's older Qt docs at http://doc.qt.io/archives/ , but it only stretches one version back, to Qt 5.4. Elvis From sean.harmer at kdab.com Mon Apr 4 14:39:53 2016 From: sean.harmer at kdab.com (Sean Harmer) Date: Mon, 04 Apr 2016 13:39:53 +0100 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> Message-ID: <3405752.o60X2blQl0@cartman> On Monday 04 April 2016 15:13:01 Emre Besirik wrote: > tabs — the current working type of open documents are really annoying. if > you have split view open, first you need to select the view you intend to > change open document. I dont know how many times I’ve changed the > non-intended document in workspace Some people like tabs, some don't. Tabs do not scale well beyond a handful of files though. I'd rather search through an alphabetical list (in the left pane) or an ordered list (ctrl+tab popup menu) than hunting through 4 rows of arbitrarily ordered tab headers. > ONE key to kill all other views and > leave code windows open only (like distraction free mode of intellij) Shouldn't be that hard to add in. File a feature request in JIRA. For now, escape x 2, Ctrl+0 does a 1st order approximation. > go > proactive, generate getters/setter and stuff like that. > have a dark UI mode :) Tools->Options->Environment->Theme->Dark. > have tons of more keyboard shortcuts (check out intellij) > have a better user friendly UI Qt Creator is an open source project. Contribute if something is bugging you. Cheers, Sean ps No need to forward everybody's replies to the list. They are cc'd to you as well as to the list. -- Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK KDAB (UK) Ltd, a KDAB Group company Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090 Mobile: +44 (0)7545 140604 KDAB - Qt Experts From annulen at yandex.ru Mon Apr 4 14:41:57 2016 From: annulen at yandex.ru (Konstantin Tokarev) Date: Mon, 04 Apr 2016 15:41:57 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <0D70AEE1-2E95-4252-AAC0-E08E50AE68C6@gmail.com> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <10603041459772304@web23g.yandex.ru> <0D70AEE1-2E95-4252-AAC0-E08E50AE68C6@gmail.com> Message-ID: <1814221459773717@web30j.yandex.ru> 04.04.2016, 15:28, "Emre Besirik" : >>  On 04 Apr 2016, at 15:18, Konstantin Tokarev wrote: >> >>  04.04.2016, 15:13, "Emre Besirik" : >>>>  * XML tags completion for known tags. This can be done for *.UI files, and maybe some part of *.QS. Basic XML structure is already know - so even for unknown XML variants - the IDE knows what tag to close. >>>>  * Class implementations - for example, I derive from an interface and pressing control+enter on the type will add missing methods. >>>>  * When I define an inline class (Java, but can be done using lambda expressions in C++), just pressing control+enter will write the code for me. For example: >>>> >>>>  AlertDialog.Builder builder = new AlertDialog.Builder(this); >>>>  builder.setPositiveButton(android.R.string.ok, new ___ >>>> >>>>  Pressing "control+enter" will create a new anonymous class which derives new DialogInterface.OnClickListener() >>>>  * >>>>  When a method argument is an enum, code completion works on the corresponding enum, and adds the needed type. >>>>  * >>>>  Automatically know how to modify R"code" for example here: >>>>  ListView mListView = findViewById(R.id.notifications_list_view); >>>>  it will suggest to typecast to ListView (to fix - again, control+enter). >>>>  * >>>>  While debugging the values of variables are displayed inside the text editor, in light gray (no more looking for them in a panel). >>>>  * >>>>  When using connect, using Niko's example, I would like to type >>>>  connect(button, [clicked], this, [playTheFunkyMusic]) >>>>  and QtCreator should automagically find the signals of button, and the corresponding slots of "this". It used to work in ond style Qt4 signals, but with modern connections, I need to type the whole type. Some signals are hard to find, for example the "click()" signal from QButton comes from QAbstractButton. This means that when an object "has/provides" a signal, I need to guess the parent type which defined the signal in order connect it (I did not have to know this in Qt4). >>>>  * >>>>  When I am lost "control+enter" usually fixe stuff for me. >>>>  * >>>>  Multiple cursors (see the demo on SublimeText's home page - its epic, and Atom badly implements it), >>> >>>  * Search! (like spotlight search with just one shortcut key to open file or go to a particular location in your code): >>> >>>  * search symbols >>>  * files in your project >>>  * search everywhere >>>  * you can lookout jetbrains IDEs for more examples >>>  * Smart code completion. and by smart I mean for instance; if I’m going to assign something to an int type do not suggest me different return types of functions or variables. do smart things like; if I’m creating/assigning a variable something for first time suggest me things like object initializations first depending on the object type. And try to do these without delays as much as possible. cache, index, think beyond the box. >>>  * Do things so obvious your self, do not wait for me to do. >>>  * tabs — the current working type of open documents are really annoying. if you have split view open, first you need to select the view you intend to change open document. I dont know how many times I’ve changed the non-intended document in workspace >>>  * ONE key to kill all other views and leave code windows open only (like distraction free mode of intellij) >>>  * go proactive, generate getters/setter and stuff like that. >>>  * have a dark UI mode :) >>>  * have tons of more keyboard shortcuts (check out intellij) >>>  * have a better user friendly UI >>> >>>  I’m sorry to say this but QtCreator is actually eons behind the current IDE trends and technology :( >>>  Just checkout the comments at the link I shared in my first post, people are practically begging jetbrains to save themselves from QtCreator (no offense intended but this is the case for many people) >>>  And I think Qt Company should just get rid of the denial of the world start to see beyond horizon and do something, revolutionize QtCreator or just do something like Google did for android studio and embrace/deal with jetbrains ide and fork a CLion custimized for Qt development. I dont see anyother way :( >> >>  There is a fundamental difference here with Android Studio case: IntelliJ Idea is an open-source product, while CLion isn't (and is not even free-as-in-beer, which is a dealbreaker for many people). >> >>  -- >>  Regards, >>  Konstantin > > Well there must be something can be done, Qt Can use Intellij like google did, I know its a little bit more work compared to CLion fork but it is possible. A liitle bit? That would mean porting of all clang code model code (and maybe other parts) into different IDE architecture and integrating all C++ code with Java. And it still would be the same clang code model that you don't like. >Or at least a plugin for intellij platform maybe? I mean as long as you want to be part of the solution... Well, if CLion gets bigger market share than Visual Studio it might happen that VS plugin is dropped in favour of this IDE. -- Regards, Konstantin From annulen at yandex.ru Mon Apr 4 14:43:28 2016 From: annulen at yandex.ru (Konstantin Tokarev) Date: Mon, 04 Apr 2016 15:43:28 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <3405752.o60X2blQl0@cartman> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <3405752.o60X2blQl0@cartman> Message-ID: <1825551459773808@web30j.yandex.ru> 04.04.2016, 15:40, "Sean Harmer" : > On Monday 04 April 2016 15:13:01 Emre Besirik wrote: > >>  tabs — the current working type of open documents are really annoying. if >>  you have split view open, first you need to select the view you intend to >>  change open document. I dont know how many times I’ve changed the >>  non-intended document in workspace > > Some people like tabs, some don't. Tabs do not scale well beyond a handful of > files though. I'd rather search through an alphabetical list (in the left pane) > or an ordered list (ctrl+tab popup menu) than hunting through 4 rows of > arbitrarily ordered tab headers. I guess he meant tabs as an alternative visual representation of screen split. > >>  ONE key to kill all other views and >>  leave code windows open only (like distraction free mode of intellij) > > Shouldn't be that hard to add in. File a feature request in JIRA. For now, > escape x 2, Ctrl+0 does a 1st order approximation. > >>  go >>  proactive, generate getters/setter and stuff like that. >>  have a dark UI mode :) > > Tools->Options->Environment->Theme->Dark. > >>  have tons of more keyboard shortcuts (check out intellij) >>  have a better user friendly UI > > Qt Creator is an open source project. Contribute if something is bugging you. > > Cheers, > > Sean > > ps No need to forward everybody's replies to the list. They are cc'd to you as > well as to the list. > -- > Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK > KDAB (UK) Ltd, a KDAB Group company > Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090 > Mobile: +44 (0)7545 140604 > KDAB - Qt Experts > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -- Regards, Konstantin From nomercy at gmail.com Mon Apr 4 16:22:07 2016 From: nomercy at gmail.com (Emre Besirik) Date: Mon, 4 Apr 2016 17:22:07 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> Message-ID: <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> > On 04 Apr 2016, at 16:55, Jean-Michaël Celerier wrote: > > Class implementations > > As somebody wrote already, this refactoring already exists. > > While debugging the values of variables are displayed inside the text editor, in light gray > > You can hover the variables and see the current value. > > Some signals are hard to find, for example the "click()" signal from QButton comes from QAbstractButton. > > See http://s1.webmshare.com/JrdbJ.webm > > Search! (like spotlight search with just one shortcut key to open file or go to a particular location in your code): > > You mean like when you press ctrl-k in QtCreator which allows you to go to any class, file, method, or such just by typing its first few letters ? it only searches for filenames, thats not what I meant only, if you could checkout any jetbrains product, you’ll see the huge difference. You only offer mostly workarounds which are not the same. debugging values for instance; yes we can also see the values in the debug windows if we’d like to but its not the same, when it is shown inline you just need to look no other action required. QtCreator is not user friendly, its not designed in a user centric way. you always have to do ~3x more action to do the same things in QtCreator compared to modern IDEs. A good IDE (I think) should avoid to make its users have to take their hand off the keyboard to reach the mouse or touchpad as much as possible, to do this you should have a perfect keybord shortcut system, which also should avoid to make its users to have multiple keystrokes (double esc and then something more etc.) Jetbrains products are really engineered very well on their UI/UX part, if we can not have/afford an experienced UI/UX team of professionals then at least we should inspect what they (jetbrains and/or others) have done and learn from them then apply to QtCreator maybe? Regards, Emre Beşirik nomercy at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander.blasche at theqtcompany.com Tue Apr 5 09:24:42 2016 From: alexander.blasche at theqtcompany.com (Blasche Alexander) Date: Tue, 5 Apr 2016 07:24:42 +0000 Subject: [Interest] QtPositioning high delay on QGeoPositionInfoSource::startUpdates In-Reply-To: References: Message-ID: Hi Maxim, Am I right in the assumption that this only happens during startup or does it happen during the normal position update cycle as well? I am not sure whether or how we can fix this. It seems the Java thread startup which creates the Looper and message handler somehow freezes the Qt thread. The whole point of the Java thread was to not affect the Qt thread.... -- Alex ________________________________ From: Interest on behalf of Maxim Bescherevnykh Sent: Friday, April 1, 2016 10:16 To: interest at qt-project.org Subject: [Interest] QtPositioning high delay on QGeoPositionInfoSource::startUpdates QGeoPositionInfoSource::startUpdates startup time vary in high range 2 ms ~ 10000 ms sometimes there is very high delays that freeze UI: "Looper Thread startup time in ms: 1189" "Looper Thread startup time in ms: 20" "Looper Thread startup time in ms: 8189" ... values from Android device (Nexus 5) Is there way to reduce those delays or only solution is to move QGeoPositionInfoSource in separate thread? -------------- next part -------------- An HTML attachment was scrubbed... URL: From Kai.Koehne at theqtcompany.com Tue Apr 5 09:16:54 2016 From: Kai.Koehne at theqtcompany.com (Koehne Kai) Date: Tue, 5 Apr 2016 07:16:54 +0000 Subject: [Interest] windeployqt and embedeed QML (.qrc) In-Reply-To: References: Message-ID: > -----Original Message----- > From: Interest [mailto:interest- > bounces+kai.koehne=theqtcompany.com at qt-project.org] On Behalf Of > Damien Courtois > Sent: Saturday, April 02, 2016 8:59 PM > To: interest at qt-project.org > Subject: [Interest] windeployqt and embedeed QML (.qrc) > > Hi there, > > > I have a lot of trouble finding informations about this, but if I missed the > obvious one, in advance sorry for that. > > My problem is that I have a Qml application, but all the Qml files are > embedded in the executable through a .qrc file. > > And when I use windeployqt, it doesn't seem to copy any Qml module / file, > as though the tool was not able to get the imports from my embedded > Qmls. > > > Is this supported by the tool ? Or will I need to provide the Qml files next to > my executable so that the tool can do its job ? windeployqt features a "--qmldir" option that accepts a directory with .qml files as an argument. These will be then scanned to automatically deduce which QML imports to copy. Regards Kai From elvstone at gmail.com Mon Apr 4 16:32:09 2016 From: elvstone at gmail.com (Elvis Stansvik) Date: Mon, 4 Apr 2016 16:32:09 +0200 Subject: [Interest] Use Book and Medium weight Gotham font from QML? In-Reply-To: References: Message-ID: 2016-04-04 16:21 GMT+02:00 Elvis Stansvik : > 2016-04-04 15:51 GMT+02:00 Elvis Stansvik : >> Hi all, >> >> I'm targeting Qt 5.4.1 and it seems there's no Font.Medium enumeration >> value there? I get: >> >> Unable to assign [undefined] to int >> >> The font we're using for this app is our company font, which is Gotham >> from Hoefler & Co. The weights we need in the UI are Book and Medium, >> each defined in its own .otf (but under the same family name >> "Gotham"), as shown by the fc-scan output below: >> >> estan at newton:~$ fc-scan Gotham-Book.otf >> Pattern has 22 elts (size 32) >> family: "Gotham"(s) "Gotham Book"(s) >> familylang: "en"(s) "en"(s) >> style: "Book"(s) "Regular"(s) >> stylelang: "en"(s) "en"(s) >> fullname: "Gotham-Book"(s) >> fullnamelang: "en"(s) >> slant: 0(i)(s) >> weight: 50(i)(s) >> width: 100(i)(s) >> foundry: "unknown"(s) >> file: "Gotham-Book.otf"(s) >> index: 0(i)(s) >> outline: True(s) >> scalable: True(s) >> charset: >> 0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffdfcfaf >> ffffffff ffffffff >> 0001: cffffcff fec3fccf cffff1ff 7ffffc3f 00040000 00000000 >> 00000000 fc000000 >> 0002: 03000000 00000000 02000000 00000000 00000000 00000000 >> 3f0000c0 00000000 >> 0003: 00000000 00000040 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> 000e: 00000000 80000000 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> 001e: 00000000 00000000 00000000 00000000 0000003f 00000000 >> 00000000 000c0000 >> 0020: 771806bc 06010047 00000010 03f10000 000003ff 00021742 >> 00000000 00000000 >> 0021: 00800000 00000005 7ff80000 00000000 00000000 00000000 >> 00000000 00000000 >> 0022: 00040000 00000000 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> 00fb: 0000001f 00000000 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> (s) >> lang: aa|ay|bi|br|bs|ca|ch|co|cs|cy|da|de|en|es|et|eu|fi|fj|fo|fr|fur|fy|gd|gl|gv|ho|hr|hu|ia|id|ie|io|is|it|la|lb|lt|lv|mg|mh|mt|nb|nds|nl|nn|no|nr|nso|ny|oc|om|pl|pt|rm|sk|sl|sma|smj|so|sq|ss|st|sv|sw|tk|tl|tn|tr|ts|uz|vo|vot|wa|wen|xh|yap|zu|an|crh|csb|fil|hsb|ht|jv|kj|ku-tr|kwm|li|ms|ng|pap-an|pap-aw|rn|rw|sc|sg|sn|su|za(s) >> fontversion: 144179(i)(s) >> capability: "otlayout: otlayout:latn"(s) >> fontformat: "CFF"(s) >> decorative: False(s) >> hash: "sha256:3083f405cb35b16e06d0108836dd6552630c85c7fc5412a5de724e57e6fd7348"(s) >> postscriptname: "Gotham-Book"(s) >> >> estan at newton:~$ fc-scan Gotham-Medium.otf >> Pattern has 22 elts (size 32) >> family: "Gotham"(s) "Gotham Medium"(s) >> familylang: "en"(s) "en"(s) >> style: "Medium"(s) "Regular"(s) >> stylelang: "en"(s) "en"(s) >> fullname: "Gotham-Medium"(s) >> fullnamelang: "en"(s) >> slant: 0(i)(s) >> weight: 80(i)(s) >> width: 100(i)(s) >> foundry: "unknown"(s) >> file: "Gotham-Medium.otf"(s) >> index: 0(i)(s) >> outline: True(s) >> scalable: True(s) >> charset: >> 0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffdfcfaf >> ffffffff ffffffff >> 0001: cffffcff fec3fccf cffff1ff 7ffffc3f 00040000 00000000 >> 00000000 fc000000 >> 0002: 03000000 00000000 02000000 00000000 00000000 00000000 >> 3f0000c0 00000000 >> 0003: 00000000 00000040 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> 000e: 00000000 80000000 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> 001e: 00000000 00000000 00000000 00000000 0000003f 00000000 >> 00000000 000c0000 >> 0020: 771806bc 06010047 00000010 03f10000 000003ff 00021742 >> 00000000 00000000 >> 0021: 00800000 00000005 7ff80000 00000000 00000000 00000000 >> 00000000 00000000 >> 0022: 00040000 00000000 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> 00fb: 0000001f 00000000 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> (s) >> lang: aa|ay|bi|br|bs|ca|ch|co|cs|cy|da|de|en|es|et|eu|fi|fj|fo|fr|fur|fy|gd|gl|gv|ho|hr|hu|ia|id|ie|io|is|it|la|lb|lt|lv|mg|mh|mt|nb|nds|nl|nn|no|nr|nso|ny|oc|om|pl|pt|rm|sk|sl|sma|smj|so|sq|ss|st|sv|sw|tk|tl|tn|tr|ts|uz|vo|vot|wa|wen|xh|yap|zu|an|crh|csb|fil|hsb|ht|jv|kj|ku-tr|kwm|li|ms|ng|pap-an|pap-aw|rn|rw|sc|sg|sn|su|za(s) >> fontversion: 144179(i)(s) >> capability: "otlayout: otlayout:latn"(s) >> fontformat: "CFF"(s) >> decorative: False(s) >> hash: "sha256:bc397773a547218b8c334f9a40ea8e58f55198fab6095b103e598634fe273450"(s) >> postscriptname: "Gotham-Medium"(s) >> >> estan at newton:~/orexplore/doc/GrafiskProfil/Typsnitt/Gotham$ >> >> And I'm loading these as follows: >> >> Style { >> readonly property string mediumFontFamily: __gothamMediumLoader.name >> readonly property string regularFontFamily: __gothamBookLoader.name >> >> property FontLoader __gothamBookLoader: FontLoader { >> source: "fonts/Gotham-Book.otf" >> } >> >> property FontLoader __gothamMediumLoader: FontLoader { >> source: "fonts/Gotham-Medium.otf" >> } >> >> ... >> } >> >> and trying to use them with: >> >> Text { >> text: "Foo" >> font.family: Style.regularFontFamily >> font.weight: Font.Normal >> } >> >> Text { >> text: "Foo" >> font.family: Style.mediumFontFamily >> font.weight: Font.Medium >> } >> >> the Font.Normal seems to work okay, it looks like it's giving me the >> Book weight from Gotham-Book.otf, which I want. I guess because the >> weight is close numerically (?) >> >> But what do I do with the Medium weight since the enum value is not >> available? If I try Font.Bold I seem to get synthetic emboldening, >> which I don't want. >> >> It seems there's some fixes in 5.6 which will let me use >> Font.styleName to match a font by style name, which would be a >> workaround [1]. But right now I'm stuck with 5.4.1. >> >> Thanks in advance for any advice. > > Wait! It seems I've been saved by the Font.DemiBold enum value. If I > use Font.DemiBold (which _is_ available in Qt 5.4.1) like this: > > font.family: "Gotham" > font.weight: Font.DemiBold > > I can get the Medium weight font, I guess since it's the one closest > numerically to DemiBold. > > And I can keep using: > > font.family: "Gotham" > font.weight: Font.Normal > > to get the Book weight. > > So, close call, but all is well. Sorry for the noise! Well bah, was actually working on the wrong machine when testing some of the above. So the story now is: * I can get the Medium weight fine as described above (by specifying Font.DemiBold). * I can _not_ get the Book weight, specifying Font.Normal (or omitting weight completely) gets me Medium :( So anyone know how I can make it load the Book weight? I can not specify Font.Thin, because then it loads the Thin weight font (which I also have). My guess is it would work with Thin if uninstall the Thin weight font, so that the Book weight would then be the closest one numerically. But I can't do that since I actually need to use the Thin one in some places :/ Elvis > > Elvis > >> >> Elvis >> >> [1] https://codereview.qt-project.org/#/c/112676/ From christian.quast at cquast-it.de Mon Apr 4 15:28:32 2016 From: christian.quast at cquast-it.de (Christian Quast) Date: Mon, 04 Apr 2016 15:28:32 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <5701800F.10602@comcast.net> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <5701800F.10602@comcast.net> Message-ID: <5064586.1hu5HpYk7R@rioverde> On Sunday 03 April 2016 14:41:51 Bob Hood wrote: > But be aware that you're talking to somebody who has written whole > applications using nothing but vi and a command prompt. I'm certainly > not a /connoisseur/of IDEs. ;) and I think this is the most important difference in ones opinion about QtCreator. If I remember correctly, its developers, at the very beginning, stated that they wanted to develop a lightweight IDE that is more a fancy text editor and, therefore, keeps out of your way. I personally find it much more convenient to use than lets say VisualStudio or Eclipse (for me personally a totally overloaded IDE, just look at the right click menu). Than again, I currently develop using Kate (a 'simple' text editor) so my opinion is biased. However, there, are some annoyances: for me the biggest is refactoring in VI mode (the most important feature of an editor ever! :) ), which got a lot better but its still not as good as without VI mode enabled. Also c++11 'auto' is confusing the IDE, but that might have changed recently. best Christian -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: This is a digitally signed message part. URL: From elvstone at gmail.com Mon Apr 4 16:39:09 2016 From: elvstone at gmail.com (Elvis Stansvik) Date: Mon, 4 Apr 2016 16:39:09 +0200 Subject: [Interest] Use Book and Medium weight Gotham font from QML? In-Reply-To: References: Message-ID: 2016-04-04 16:32 GMT+02:00 Elvis Stansvik : > 2016-04-04 16:21 GMT+02:00 Elvis Stansvik : >> 2016-04-04 15:51 GMT+02:00 Elvis Stansvik : >>> Hi all, >>> >>> I'm targeting Qt 5.4.1 and it seems there's no Font.Medium enumeration >>> value there? I get: >>> >>> Unable to assign [undefined] to int >>> >>> The font we're using for this app is our company font, which is Gotham >>> from Hoefler & Co. The weights we need in the UI are Book and Medium, >>> each defined in its own .otf (but under the same family name >>> "Gotham"), as shown by the fc-scan output below: >>> >>> estan at newton:~$ fc-scan Gotham-Book.otf >>> Pattern has 22 elts (size 32) >>> family: "Gotham"(s) "Gotham Book"(s) >>> familylang: "en"(s) "en"(s) >>> style: "Book"(s) "Regular"(s) >>> stylelang: "en"(s) "en"(s) >>> fullname: "Gotham-Book"(s) >>> fullnamelang: "en"(s) >>> slant: 0(i)(s) >>> weight: 50(i)(s) >>> width: 100(i)(s) >>> foundry: "unknown"(s) >>> file: "Gotham-Book.otf"(s) >>> index: 0(i)(s) >>> outline: True(s) >>> scalable: True(s) >>> charset: >>> 0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffdfcfaf >>> ffffffff ffffffff >>> 0001: cffffcff fec3fccf cffff1ff 7ffffc3f 00040000 00000000 >>> 00000000 fc000000 >>> 0002: 03000000 00000000 02000000 00000000 00000000 00000000 >>> 3f0000c0 00000000 >>> 0003: 00000000 00000040 00000000 00000000 00000000 00000000 >>> 00000000 00000000 >>> 000e: 00000000 80000000 00000000 00000000 00000000 00000000 >>> 00000000 00000000 >>> 001e: 00000000 00000000 00000000 00000000 0000003f 00000000 >>> 00000000 000c0000 >>> 0020: 771806bc 06010047 00000010 03f10000 000003ff 00021742 >>> 00000000 00000000 >>> 0021: 00800000 00000005 7ff80000 00000000 00000000 00000000 >>> 00000000 00000000 >>> 0022: 00040000 00000000 00000000 00000000 00000000 00000000 >>> 00000000 00000000 >>> 00fb: 0000001f 00000000 00000000 00000000 00000000 00000000 >>> 00000000 00000000 >>> (s) >>> lang: aa|ay|bi|br|bs|ca|ch|co|cs|cy|da|de|en|es|et|eu|fi|fj|fo|fr|fur|fy|gd|gl|gv|ho|hr|hu|ia|id|ie|io|is|it|la|lb|lt|lv|mg|mh|mt|nb|nds|nl|nn|no|nr|nso|ny|oc|om|pl|pt|rm|sk|sl|sma|smj|so|sq|ss|st|sv|sw|tk|tl|tn|tr|ts|uz|vo|vot|wa|wen|xh|yap|zu|an|crh|csb|fil|hsb|ht|jv|kj|ku-tr|kwm|li|ms|ng|pap-an|pap-aw|rn|rw|sc|sg|sn|su|za(s) >>> fontversion: 144179(i)(s) >>> capability: "otlayout: otlayout:latn"(s) >>> fontformat: "CFF"(s) >>> decorative: False(s) >>> hash: "sha256:3083f405cb35b16e06d0108836dd6552630c85c7fc5412a5de724e57e6fd7348"(s) >>> postscriptname: "Gotham-Book"(s) >>> >>> estan at newton:~$ fc-scan Gotham-Medium.otf >>> Pattern has 22 elts (size 32) >>> family: "Gotham"(s) "Gotham Medium"(s) >>> familylang: "en"(s) "en"(s) >>> style: "Medium"(s) "Regular"(s) >>> stylelang: "en"(s) "en"(s) >>> fullname: "Gotham-Medium"(s) >>> fullnamelang: "en"(s) >>> slant: 0(i)(s) >>> weight: 80(i)(s) >>> width: 100(i)(s) >>> foundry: "unknown"(s) >>> file: "Gotham-Medium.otf"(s) >>> index: 0(i)(s) >>> outline: True(s) >>> scalable: True(s) >>> charset: >>> 0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffdfcfaf >>> ffffffff ffffffff >>> 0001: cffffcff fec3fccf cffff1ff 7ffffc3f 00040000 00000000 >>> 00000000 fc000000 >>> 0002: 03000000 00000000 02000000 00000000 00000000 00000000 >>> 3f0000c0 00000000 >>> 0003: 00000000 00000040 00000000 00000000 00000000 00000000 >>> 00000000 00000000 >>> 000e: 00000000 80000000 00000000 00000000 00000000 00000000 >>> 00000000 00000000 >>> 001e: 00000000 00000000 00000000 00000000 0000003f 00000000 >>> 00000000 000c0000 >>> 0020: 771806bc 06010047 00000010 03f10000 000003ff 00021742 >>> 00000000 00000000 >>> 0021: 00800000 00000005 7ff80000 00000000 00000000 00000000 >>> 00000000 00000000 >>> 0022: 00040000 00000000 00000000 00000000 00000000 00000000 >>> 00000000 00000000 >>> 00fb: 0000001f 00000000 00000000 00000000 00000000 00000000 >>> 00000000 00000000 >>> (s) >>> lang: aa|ay|bi|br|bs|ca|ch|co|cs|cy|da|de|en|es|et|eu|fi|fj|fo|fr|fur|fy|gd|gl|gv|ho|hr|hu|ia|id|ie|io|is|it|la|lb|lt|lv|mg|mh|mt|nb|nds|nl|nn|no|nr|nso|ny|oc|om|pl|pt|rm|sk|sl|sma|smj|so|sq|ss|st|sv|sw|tk|tl|tn|tr|ts|uz|vo|vot|wa|wen|xh|yap|zu|an|crh|csb|fil|hsb|ht|jv|kj|ku-tr|kwm|li|ms|ng|pap-an|pap-aw|rn|rw|sc|sg|sn|su|za(s) >>> fontversion: 144179(i)(s) >>> capability: "otlayout: otlayout:latn"(s) >>> fontformat: "CFF"(s) >>> decorative: False(s) >>> hash: "sha256:bc397773a547218b8c334f9a40ea8e58f55198fab6095b103e598634fe273450"(s) >>> postscriptname: "Gotham-Medium"(s) >>> >>> estan at newton:~/orexplore/doc/GrafiskProfil/Typsnitt/Gotham$ >>> >>> And I'm loading these as follows: >>> >>> Style { >>> readonly property string mediumFontFamily: __gothamMediumLoader.name >>> readonly property string regularFontFamily: __gothamBookLoader.name >>> >>> property FontLoader __gothamBookLoader: FontLoader { >>> source: "fonts/Gotham-Book.otf" >>> } >>> >>> property FontLoader __gothamMediumLoader: FontLoader { >>> source: "fonts/Gotham-Medium.otf" >>> } >>> >>> ... >>> } >>> >>> and trying to use them with: >>> >>> Text { >>> text: "Foo" >>> font.family: Style.regularFontFamily >>> font.weight: Font.Normal >>> } >>> >>> Text { >>> text: "Foo" >>> font.family: Style.mediumFontFamily >>> font.weight: Font.Medium >>> } >>> >>> the Font.Normal seems to work okay, it looks like it's giving me the >>> Book weight from Gotham-Book.otf, which I want. I guess because the >>> weight is close numerically (?) >>> >>> But what do I do with the Medium weight since the enum value is not >>> available? If I try Font.Bold I seem to get synthetic emboldening, >>> which I don't want. >>> >>> It seems there's some fixes in 5.6 which will let me use >>> Font.styleName to match a font by style name, which would be a >>> workaround [1]. But right now I'm stuck with 5.4.1. >>> >>> Thanks in advance for any advice. >> >> Wait! It seems I've been saved by the Font.DemiBold enum value. If I >> use Font.DemiBold (which _is_ available in Qt 5.4.1) like this: >> >> font.family: "Gotham" >> font.weight: Font.DemiBold >> >> I can get the Medium weight font, I guess since it's the one closest >> numerically to DemiBold. >> >> And I can keep using: >> >> font.family: "Gotham" >> font.weight: Font.Normal >> >> to get the Book weight. >> >> So, close call, but all is well. Sorry for the noise! > > Well bah, was actually working on the wrong machine when testing some > of the above. So the story now is: > > * I can get the Medium weight fine as described above (by specifying > Font.DemiBold). > * I can _not_ get the Book weight, specifying Font.Normal (or omitting > weight completely) gets me Medium :( > > So anyone know how I can make it load the Book weight? I can not > specify Font.Thin, because then it loads the Thin weight font (which I > also have). My guess is it would work with Thin if uninstall the Thin > weight font, so that the Book weight would then be the closest one > numerically. But I can't do that since I actually need to use the Thin > one in some places :/ I confirmed that removing the Light weight font, I can use Font.Light to get at the Book weight. But it doesn't solve my problem since I need to be able to access all three weights (Light, Book, Medium), and they seem spread out weight-wise in a very bad way such that the granularity of the Font weight enum in Qt 5.4.1 is not sufficient to access them all :/ Elvis > > Elvis > >> >> Elvis >> >>> >>> Elvis >>> >>> [1] https://codereview.qt-project.org/#/c/112676/ From damien.courtois at gmail.com Mon Apr 4 15:57:45 2016 From: damien.courtois at gmail.com (Damien Courtois) Date: Mon, 4 Apr 2016 15:57:45 +0200 Subject: [Interest] windeployqt and embedeed QML (.qrc) In-Reply-To: References: Message-ID: Hi, Thanks, but as I said, my qml files are compiled into the executable (via a .qrc file) so the --qmldir option won't help. But I found out that it's not supported. I can't find the link of the page back (it's really well hidden ...) but windeployqt uses another small tool to find qml dependencies, and this tool can't scan for imports into executable files. So I solved my problem by just adding an "imports.qml" file with this content : import QtQuick 2.5 import QtQuick.Controls 1.4 import QtQuick.Layouts 1.2 import QtQuick.Window 2.2 import QtQml.Models 2.2 import Qt.labs.settings 1.0 import QtMultimedia 5.6 Component {} So that the tool can correctly find the imports. Regards, Damien 2016-04-04 15:40 GMT+02:00 Benjamin TERRIER : > Hi Damien, > > Have a look at the "--qmldir " option ("windeployqt --help" > to display all available options). The given directory will be scanned > for QML dependencies. > > BR, > > Benjamin > > 2016-04-02 20:59 GMT+02:00 Damien Courtois : > > Hi there, > > > > I have a lot of trouble finding informations about this, but if I missed > the > > obvious one, in advance sorry for that. > > My problem is that I have a Qml application, but all the Qml files are > > embedded in the executable through a .qrc file. > > And when I use windeployqt, it doesn't seem to copy any Qml module / > file, > > as though the tool was not able to get the imports from my embedded Qmls. > > > > Is this supported by the tool ? Or will I need to provide the Qml files > next > > to my executable so that the tool can do its job ? > > > > By the way I'm using Qt 5.6. > > > > Thanks in advance for any help. > > Damien Courtois > > > > _______________________________________________ > > Interest mailing list > > Interest at qt-project.org > > http://lists.qt-project.org/mailman/listinfo/interest > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From elvstone at gmail.com Mon Apr 4 17:33:22 2016 From: elvstone at gmail.com (Elvis Stansvik) Date: Mon, 4 Apr 2016 17:33:22 +0200 Subject: [Interest] Use Book and Medium weight Gotham font from QML? In-Reply-To: References: Message-ID: 2016-04-04 16:13 GMT+02:00 Elvis Stansvik : > 2016-04-04 15:51 GMT+02:00 Elvis Stansvik : >> Hi all, >> >> I'm targeting Qt 5.4.1 and it seems there's no Font.Medium enumeration >> value there? I get: >> >> Unable to assign [undefined] to int >> >> The font we're using for this app is our company font, which is Gotham >> from Hoefler & Co. The weights we need in the UI are Book and Medium, >> each defined in its own .otf (but under the same family name >> "Gotham"), as shown by the fc-scan output below: >> >> estan at newton:~$ fc-scan Gotham-Book.otf >> Pattern has 22 elts (size 32) >> family: "Gotham"(s) "Gotham Book"(s) >> familylang: "en"(s) "en"(s) >> style: "Book"(s) "Regular"(s) >> stylelang: "en"(s) "en"(s) >> fullname: "Gotham-Book"(s) >> fullnamelang: "en"(s) >> slant: 0(i)(s) >> weight: 50(i)(s) >> width: 100(i)(s) >> foundry: "unknown"(s) >> file: "Gotham-Book.otf"(s) >> index: 0(i)(s) >> outline: True(s) >> scalable: True(s) >> charset: >> 0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffdfcfaf >> ffffffff ffffffff >> 0001: cffffcff fec3fccf cffff1ff 7ffffc3f 00040000 00000000 >> 00000000 fc000000 >> 0002: 03000000 00000000 02000000 00000000 00000000 00000000 >> 3f0000c0 00000000 >> 0003: 00000000 00000040 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> 000e: 00000000 80000000 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> 001e: 00000000 00000000 00000000 00000000 0000003f 00000000 >> 00000000 000c0000 >> 0020: 771806bc 06010047 00000010 03f10000 000003ff 00021742 >> 00000000 00000000 >> 0021: 00800000 00000005 7ff80000 00000000 00000000 00000000 >> 00000000 00000000 >> 0022: 00040000 00000000 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> 00fb: 0000001f 00000000 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> (s) >> lang: aa|ay|bi|br|bs|ca|ch|co|cs|cy|da|de|en|es|et|eu|fi|fj|fo|fr|fur|fy|gd|gl|gv|ho|hr|hu|ia|id|ie|io|is|it|la|lb|lt|lv|mg|mh|mt|nb|nds|nl|nn|no|nr|nso|ny|oc|om|pl|pt|rm|sk|sl|sma|smj|so|sq|ss|st|sv|sw|tk|tl|tn|tr|ts|uz|vo|vot|wa|wen|xh|yap|zu|an|crh|csb|fil|hsb|ht|jv|kj|ku-tr|kwm|li|ms|ng|pap-an|pap-aw|rn|rw|sc|sg|sn|su|za(s) >> fontversion: 144179(i)(s) >> capability: "otlayout: otlayout:latn"(s) >> fontformat: "CFF"(s) >> decorative: False(s) >> hash: "sha256:3083f405cb35b16e06d0108836dd6552630c85c7fc5412a5de724e57e6fd7348"(s) >> postscriptname: "Gotham-Book"(s) >> >> estan at newton:~$ fc-scan Gotham-Medium.otf >> Pattern has 22 elts (size 32) >> family: "Gotham"(s) "Gotham Medium"(s) >> familylang: "en"(s) "en"(s) >> style: "Medium"(s) "Regular"(s) >> stylelang: "en"(s) "en"(s) >> fullname: "Gotham-Medium"(s) >> fullnamelang: "en"(s) >> slant: 0(i)(s) >> weight: 80(i)(s) >> width: 100(i)(s) >> foundry: "unknown"(s) >> file: "Gotham-Medium.otf"(s) >> index: 0(i)(s) >> outline: True(s) >> scalable: True(s) >> charset: >> 0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffdfcfaf >> ffffffff ffffffff >> 0001: cffffcff fec3fccf cffff1ff 7ffffc3f 00040000 00000000 >> 00000000 fc000000 >> 0002: 03000000 00000000 02000000 00000000 00000000 00000000 >> 3f0000c0 00000000 >> 0003: 00000000 00000040 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> 000e: 00000000 80000000 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> 001e: 00000000 00000000 00000000 00000000 0000003f 00000000 >> 00000000 000c0000 >> 0020: 771806bc 06010047 00000010 03f10000 000003ff 00021742 >> 00000000 00000000 >> 0021: 00800000 00000005 7ff80000 00000000 00000000 00000000 >> 00000000 00000000 >> 0022: 00040000 00000000 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> 00fb: 0000001f 00000000 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> (s) >> lang: aa|ay|bi|br|bs|ca|ch|co|cs|cy|da|de|en|es|et|eu|fi|fj|fo|fr|fur|fy|gd|gl|gv|ho|hr|hu|ia|id|ie|io|is|it|la|lb|lt|lv|mg|mh|mt|nb|nds|nl|nn|no|nr|nso|ny|oc|om|pl|pt|rm|sk|sl|sma|smj|so|sq|ss|st|sv|sw|tk|tl|tn|tr|ts|uz|vo|vot|wa|wen|xh|yap|zu|an|crh|csb|fil|hsb|ht|jv|kj|ku-tr|kwm|li|ms|ng|pap-an|pap-aw|rn|rw|sc|sg|sn|su|za(s) >> fontversion: 144179(i)(s) >> capability: "otlayout: otlayout:latn"(s) >> fontformat: "CFF"(s) >> decorative: False(s) >> hash: "sha256:bc397773a547218b8c334f9a40ea8e58f55198fab6095b103e598634fe273450"(s) >> postscriptname: "Gotham-Medium"(s) >> >> estan at newton:~/orexplore/doc/GrafiskProfil/Typsnitt/Gotham$ >> >> And I'm loading these as follows: >> >> Style { >> readonly property string mediumFontFamily: __gothamMediumLoader.name >> readonly property string regularFontFamily: __gothamBookLoader.name >> >> property FontLoader __gothamBookLoader: FontLoader { >> source: "fonts/Gotham-Book.otf" >> } >> >> property FontLoader __gothamMediumLoader: FontLoader { >> source: "fonts/Gotham-Medium.otf" >> } >> >> ... >> } >> >> and trying to use them with: >> >> Text { >> text: "Foo" >> font.family: Style.regularFontFamily >> font.weight: Font.Normal >> } >> >> Text { >> text: "Foo" >> font.family: Style.mediumFontFamily >> font.weight: Font.Medium >> } >> >> the Font.Normal seems to work okay, it looks like it's giving me the >> Book weight from Gotham-Book.otf, which I want. I guess because the >> weight is close numerically (?) >> >> But what do I do with the Medium weight since the enum value is not >> available? If I try Font.Bold I seem to get synthetic emboldening, >> which I don't want. >> >> It seems there's some fixes in 5.6 which will let me use >> Font.styleName to match a font by style name, which would be a >> workaround [1]. But right now I'm stuck with 5.4.1. >> >> Thanks in advance for any advice. > > Anyone know if it would work if I open both .otf in FontForge, change > the family names to be e.g. "My Gotham Book" and "My Gotham Medium", > re-export them to OTF and then use e.g. font.family: "My Gotham > Medium" and don't set font.weight at all? So to conclude, this is what I did in the end to work around it. I edited the fonts in FontForge to give them distinct family names (and updated other relevant fields): Gotham-Light.otf: Changed to family "Gotham Light QML" Gotham-Book.otf: Changed to family "Gotham Book QML" Gotham-Medium.otf: Changed to family "Gotham Medium QML" and then just stick with only specifying the family in QML, not the weight. This way I can at least "reach" all three of the weights. Hope this maybe helps someone else who is limited by the "range" of the Font.* weight enum values. Elvis > > As you can understand, I'm a little desperate since we really need to > use these fonts for the UI, and we want to use the packaged Qt on > Ubuntu :/ > > Elvis > >> >> Elvis >> >> [1] https://codereview.qt-project.org/#/c/112676/ From thiago.macieira at intel.com Mon Apr 4 18:22:52 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Mon, 04 Apr 2016 09:22:52 -0700 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> Message-ID: <2327728.0KqbYtay3z@tjmaciei-mobl4> On segunda-feira, 4 de abril de 2016 14:06:00 PDT Diego Iastrubni wrote: > On Sun, Apr 3, 2016 at 10:00 PM, Thiago Macieira > wrote: > > But I have to say I don't feel any unpleasantness. Qt Creator is the best > > IDE > > I've ever used. There are some things I'd do differently, but that's all. > > I > > also expect that's how most Qt developers and especially the Qt Creator > > developers feel, so it's highly unlikely we'll do a complete change of > > direction. > > Without trying to offence, "you need to walk around the neighborhoods" a > little. Why? It solves the problem for me for developing Qt, why should I spend time with other tools? Is there any other tool better for developing Qt? Note I don't care about developing anything else. > 1. XML tags completion for known tags. This can be done for *.UI files, > and maybe some part of *.QS. Basic XML structure is already know - so > even for unknown XML variants - the IDE knows what tag to close. Don't care, I don't edit XML files. > 2. Class implementations - for example, I derive from an interface and > pressing control+enter on the type will add missing methods. Isn't this there? > 3. When I define an inline class (Java, but can be done using lambda > expressions in C++), just pressing control+enter will write the code for > me. For example: > > AlertDialog.Builder builder = new AlertDialog.Builder(this); > builder.setPositiveButton(android.R.string.ok, new ___ > > Pressing "control+enter" will create a new anonymous class which > derives new DialogInterface.OnClickListener() I have no idea what this is for. > 4. When a method argument is an enum, code completion works on the > corresponding enum, and adds the needed type. Sounds like a very useful feature. > 5. Automatically know how to modify R"code" for example here: > ListView mListView = findViewById(R.id.notifications_list_view); > it will suggest to typecast to ListView (to fix - again, control+enter). Sounds like a poor API in the first place. > 6. While debugging the values of variables are displayed inside the text > editor, in light gray (no more looking for them in a panel). You can do that by holding the Alt key and hovering over the variable, in Creator. But it sounds like a useful feature too. > 7. When using connect, using Niko's example, I would like to type > connect(button, [clicked], this, [playTheFunkyMusic]) > and QtCreator should automagically find the signals of button, and the > corresponding slots of "this". It used to work in ond style Qt4 signals, > but with modern connections, I need to type the whole type. Some signals > are hard to find, for example the "click()" signal from QButton comes > from QAbstractButton. This means that when an object "has/provides" a > signal, I need to guess the parent type which defined the signal in order > connect it (I did not have to know this in Qt4). Good idea too. > 8. When I am lost "control+enter" usually fixe stuff for me. That is very vague. > 9. Multiple cursors (see the demo on SublimeText's home page - its epic, > and Atom badly implements it), Explain. Sounds intriguing. > Not saying that QtCreator is not good, but blindly claiming it's the best > is not always true. Its even possible that some things are working in > QtC4... I need to re-check at home. I should also open official feature > requests and not complaining on a ML. I agree. I never claimed it was the best IDE. I claimed it was the best IDE I had ever used. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From thiago.macieira at intel.com Mon Apr 4 18:25:02 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Mon, 04 Apr 2016 09:25:02 -0700 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> Message-ID: <5972592.CB8ERVpXyp@tjmaciei-mobl4> On segunda-feira, 4 de abril de 2016 14:47:35 PDT Emre Besirik wrote: > Search! (like spotlight search with just one shortcut key to open file or go > to a particular location in your code): search symbols > files in your project > search everywhere Ctrl+K in Creator. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From b.terrier at gmail.com Mon Apr 4 16:36:19 2016 From: b.terrier at gmail.com (Benjamin TERRIER) Date: Mon, 4 Apr 2016 16:36:19 +0200 Subject: [Interest] windeployqt and embedeed QML (.qrc) In-Reply-To: References: Message-ID: Indeed you need to set --qmldir to use your source directory. Regards, Benjamin 2016-04-04 15:57 GMT+02:00 Damien Courtois : > Hi, > > Thanks, but as I said, my qml files are compiled into the executable (via a > .qrc file) so the --qmldir option won't help. > But I found out that it's not supported. I can't find the link of the page > back (it's really well hidden ...) but windeployqt uses another small tool > to find qml dependencies, and this tool can't scan for imports into > executable files. > So I solved my problem by just adding an "imports.qml" file with this > content : > > import QtQuick 2.5 > import QtQuick.Controls 1.4 > import QtQuick.Layouts 1.2 > import QtQuick.Window 2.2 > import QtQml.Models 2.2 > import Qt.labs.settings 1.0 > import QtMultimedia 5.6 > > Component {} > > So that the tool can correctly find the imports. > > Regards, > Damien > > 2016-04-04 15:40 GMT+02:00 Benjamin TERRIER : >> >> Hi Damien, >> >> Have a look at the "--qmldir " option ("windeployqt --help" >> to display all available options). The given directory will be scanned >> for QML dependencies. >> >> BR, >> >> Benjamin >> >> 2016-04-02 20:59 GMT+02:00 Damien Courtois : >> > Hi there, >> > >> > I have a lot of trouble finding informations about this, but if I missed >> > the >> > obvious one, in advance sorry for that. >> > My problem is that I have a Qml application, but all the Qml files are >> > embedded in the executable through a .qrc file. >> > And when I use windeployqt, it doesn't seem to copy any Qml module / >> > file, >> > as though the tool was not able to get the imports from my embedded >> > Qmls. >> > >> > Is this supported by the tool ? Or will I need to provide the Qml files >> > next >> > to my executable so that the tool can do its job ? >> > >> > By the way I'm using Qt 5.6. >> > >> > Thanks in advance for any help. >> > Damien Courtois >> > >> > _______________________________________________ >> > Interest mailing list >> > Interest at qt-project.org >> > http://lists.qt-project.org/mailman/listinfo/interest >> > > > From guenterlists at schwann.at Mon Apr 4 15:32:56 2016 From: guenterlists at schwann.at (Guenter Schwann) Date: Mon, 04 Apr 2016 15:32:56 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <0D70AEE1-2E95-4252-AAC0-E08E50AE68C6@gmail.com> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <10603041459772304@web23g.yandex.ru> <0D70AEE1-2E95-4252-AAC0-E08E50AE68C6@gmail.com> Message-ID: <6490087.DRBT3fUcx3@w541> On Monday, April 04, 2016 03:28:03 PM Emre Besirik wrote: > * Search! (like spotlight search with just one shortcut key to open file > or go to a particular location in your code): > * search symbols > * files in your project > * search everywhere > * you can lookout jetbrains IDEs for more examples You mean Locator? http://doc.qt.io/qtcreator/creator-editor-locator.html > * ONE key to kill all other views > and leave code windows open only (like distraction free mode of > intellij) Set a shortcut for "CloseAllExceptVisible"? > * go proactive, generate getters/setter and stuff like that. Move the cursor to the member variable in the class and press Alt-Enter ... > >> * have tons of more keyboard shortcuts (check out intellij) There are a tons of shortcuts, and you can fully customize them. http://doc.qt.io/qtcreator/creator-keyboard-shortcuts.html > * have a better user friendly UI I like the UI a lot. > I’m sorry to say this but QtCreator is actually eons behind the current > IDE trends and technology :( QtCreator works really well for me. I prefer it over VisualStudio. CLion looks nice. But I haven't seen a lot of features not available in QtCreator. By the way it seems you missed quite some refactoring: http://doc.qt.io/qtcreator/creator-editor-refactoring.html Regards Günter -------------- next part -------------- An HTML attachment was scrubbed... URL: From Julius.Bullinger at asctec.de Tue Apr 5 12:05:07 2016 From: Julius.Bullinger at asctec.de (Julius Bullinger) Date: Tue, 5 Apr 2016 10:05:07 +0000 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <2327728.0KqbYtay3z@tjmaciei-mobl4> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <2327728.0KqbYtay3z@tjmaciei-mobl4> Message-ID: On Monday, 4. April 2016 18:23, Thiago Macieira wrote: >> 9. Multiple cursors (see the demo on SublimeText's home page - its epic, >> and Atom badly implements it), > > Explain. Sounds intriguing. It's better shown than explained, see e.g. http://i.stack.imgur.com/TMRK3.gif and https://packagecontrol.io/readmes/img/d346da37ce3d306f23f960f2a103fbc0f4562034.gif for examples. This is the only feature I'm really missing in Qt Creator, and the reason I keep Sublime open besides Creator all the time. There's pretty basic multi-cursor functionality in Creator, but it's not quite as polished as Sublime's. Really, you need to try yourself to see how useful it is! From elvstone at gmail.com Mon Apr 4 18:08:49 2016 From: elvstone at gmail.com (Elvis Stansvik) Date: Mon, 4 Apr 2016 18:08:49 +0200 Subject: [Interest] Available versions to QML import in older Qt releases? In-Reply-To: References: Message-ID: Den 4 apr 2016 4:40 em skrev "Jason H" : > > > I'm working on a product based on Ubuntu 15.10, where Qt 5.4.1 is the > > packaged version (I know a more recent Ubuntu is soon to be released, > > and an LTS at that, but we're on this version for now). > > > > Is there an online way to find out which versions of packages I can > > import from the QtQuick 2 that comes with 5.4.1, short of downloading > > the offline documentation? > > > > Experimentally I've deduced that > > > > QtQuick 2.4 > > QtQuick.Window 2.2 > > QtQuick.Controls 1.3 > > QtQuick.Controls.Styles 1.3 > > QtQuick.Layouts 1.1 > > > > are the versions available in 5.4.1 for the packages I'm using, but it > > would be great if there was a way to look up/confirm this quickly. > > > > I know there's older Qt docs at http://doc.qt.io/archives/ , but it > > only stretches one version back, to Qt 5.4. > > QtCreator seems to know what versions are installed, and suggests these via auto-complete. Ah, yes hadn't noticed that somehow, thanks. Now the problem is instead stupid me who's developing on a laptop with 5.5.1 installed, when our target machine, mounted in our prototype product downstairs, runs 5.4.1 :) I should probably downgrade. Elvis > > Hijacking this a bit, what is the behavior of imports when a later version is present? What am I missing when my script does an import of a previous version? Am I not getting bug fixes? It would be nice to know what the deltas are between versions, as well as a wildcard for importing whatever the latest and greatest is. Kind of like node's npm where you can spec a version and anything after that version. > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mitch.curtis at theqtcompany.com Tue Apr 5 12:25:54 2016 From: mitch.curtis at theqtcompany.com (Curtis Mitch) Date: Tue, 5 Apr 2016 10:25:54 +0000 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <2327728.0KqbYtay3z@tjmaciei-mobl4> Message-ID: > -----Original Message----- > From: Interest [mailto:interest-bounces+mitch.curtis=theqtcompany.com at qt- > project.org] On Behalf Of Julius Bullinger > Sent: Tuesday, 5 April 2016 12:05 PM > To: interest at qt-project.org > Subject: Re: [Interest] CLion to replace QtCreator? > > On Monday, 4. April 2016 18:23, Thiago Macieira wrote: > >> 9. Multiple cursors (see the demo on SublimeText's home page - its > epic, > >> and Atom badly implements it), > > > > Explain. Sounds intriguing. > > It's better shown than explained, see e.g. > http://i.stack.imgur.com/TMRK3.gif and > https://packagecontrol.io/readmes/img/d346da37ce3d306f23f960f2a103fbc0f456 > 2034.gif for examples. > > This is the only feature I'm really missing in Qt Creator, and the reason > I keep Sublime open besides Creator all the time. > There's pretty basic multi-cursor functionality in Creator, but it's not > quite as polished as Sublime's. Really, you need to try yourself to see > how useful it is! Looks interesting, but I find it odd that that is solely enough to warrant keeping another editor open, because you can easily do it in Creator. For renaming instances of a symbol: Ctrl + Shift + R. For stuff like keywords: good old find and replace! :p You can select a bunch of text first to limit it to a certain block. > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest From prismatic.project at gmail.com Mon Apr 4 23:29:42 2016 From: prismatic.project at gmail.com (Preet) Date: Mon, 4 Apr 2016 17:29:42 -0400 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <1825551459773808@web30j.yandex.ru> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <3405752.o60X2blQl0@cartman> <1825551459773808@web30j.yandex.ru> Message-ID: Hey I want to chime in for the Creator devs that might be reading this: please keep doing what you do, QtCreator is *awesome*. It always seems like once people start liking and using certain IDEs and editors it becomes like a religion and people love talking down everything else. So much of 'tabs vs menu', 'color themes', 'UI-friendliness', etc can be subjective. Saying QtCreator "is actually eons behind the current IDE trends and technology" is just insulting. There are plenty of things in QtCreator that could use improvement, but thats true of most software. In general its a polished IDE that makes working with C++ way nicer and I can't wait to see how QtCreator gets even better in the future. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jeanmichael.celerier at gmail.com Mon Apr 4 17:20:00 2016 From: jeanmichael.celerier at gmail.com (=?UTF-8?Q?Jean=2DMicha=C3=ABl_Celerier?=) Date: Mon, 4 Apr 2016 17:20:00 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> Message-ID: On Mon, Apr 4, 2016 at 4:22 PM, Emre Besirik wrote: > > it only searches for filenames, thats not what I meant only, if you could > checkout any jetbrains product, you’ll see the huge difference. > No it does not. If you type : "c NameOfMyClass" it will look for a class. If you type : "m aMethodName" it will look for a method. If you type: "git commit" it will open the graphical commit window. If you type : "? QPushButton" it will open the help for QPushButton etc... > Jetbrains products are really engineered very well on their UI/UX part, if we can not have/afford an experienced UI/UX team of professionals then at least we should inspect what they (jetbrains and/or others) have done and learn from them then apply to QtCreator maybe? This I agree with. -------------- next part -------------- An HTML attachment was scrubbed... URL: From krnekit at gmail.com Mon Apr 4 16:14:15 2016 From: krnekit at gmail.com (Nikita Krupenko) Date: Mon, 4 Apr 2016 17:14:15 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> Message-ID: 2016-04-04 15:13 GMT+03:00 Emre Besirik : > Search! (like spotlight search with just one shortcut key to open file or go > to a particular location in your code): > > search symbols > files in your project > search everywhere > you can lookout jetbrains IDEs for more examples There is a search box and you can use Ctrl+k shortcut for it. Though CLion may be good at C++, I have doubts, that it can provide good QML support, especially between QML and C++. QtCreator can also create and deploy Qt projects to mobile devices out of the box, can CLion do this? From dalboris at gmail.com Tue Apr 5 07:50:20 2016 From: dalboris at gmail.com (Boris) Date: Tue, 5 Apr 2016 05:50:20 +0000 (UTC) Subject: [Interest] login.qt.io down => cannot install Qt Message-ID: I am installing a new machine and setting up my development environment. However, I cannot install Qt because the Qt installer forces to login to your account, and login.qt.io appears to be down, resulting in a "TIMEOUT" error when trying to login. Anyone has this error as well? The blog seems down as well, I get "No application configured" when going to blog.qt.io. Seriously, this is very embarrassing for Digia. Users cannot get work done because of their incredibly bad decision to force users to login to install their software. This is both a rant and a feature request: Digia, please make login optional to install your software, because if you think you can guarantee that the login system is never down, you are fooling yourself. Such a lack of professionalism. From mitch.curtis at theqtcompany.com Tue Apr 5 12:49:40 2016 From: mitch.curtis at theqtcompany.com (Curtis Mitch) Date: Tue, 5 Apr 2016 10:49:40 +0000 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> Message-ID: > I’m sorry to say this but QtCreator is actually eons behind the current IDE trends and technology :( > people are practically begging jetbrains to save themselves from QtCreator (no offense intended but this is the case for many people) > And I think Qt Company should just get rid of the denial of the world start to see beyond horizon and do something, revolutionize QtCreator or just do something like Google did for android studio and embrace/deal with jetbrains ide and fork a CLion custimized for Qt development. I dont see any other way :( Hahaaa! I especially like the “I don’t see any other way” part. Fantastic. Also, very, very cringe-worthy. Telling a company it’s in denial because it doesn’t fork your favourite IDE is... ridiculous. It sounds like you haven’t actually attempted to properly use Qt Creator (e.g. by saying that Locator “only searches for filenames”), and don’t intend on putting in any work yourself, even though it’s an open source project. From: Interest [mailto:interest-bounces+mitch.curtis=theqtcompany.com at qt-project.org] On Behalf Of Emre Besirik Sent: Monday, 4 April 2016 4:22 PM To: Jean-Michaël Celerier Cc: interest at qt-project.org Subject: Re: [Interest] CLion to replace QtCreator? On 04 Apr 2016, at 16:55, Jean-Michaël Celerier > wrote: Class implementations As somebody wrote already, this refactoring already exists. While debugging the values of variables are displayed inside the text editor, in light gray You can hover the variables and see the current value. Some signals are hard to find, for example the "click()" signal from QButton comes from QAbstractButton. See http://s1.webmshare.com/JrdbJ.webm Search! (like spotlight search with just one shortcut key to open file or go to a particular location in your code): You mean like when you press ctrl-k in QtCreator which allows you to go to any class, file, method, or such just by typing its first few letters ? it only searches for filenames, thats not what I meant only, if you could checkout any jetbrains product, you’ll see the huge difference. You only offer mostly workarounds which are not the same. debugging values for instance; yes we can also see the values in the debug windows if we’d like to but its not the same, when it is shown inline you just need to look no other action required. QtCreator is not user friendly, its not designed in a user centric way. you always have to do ~3x more action to do the same things in QtCreator compared to modern IDEs. A good IDE (I think) should avoid to make its users have to take their hand off the keyboard to reach the mouse or touchpad as much as possible, to do this you should have a perfect keybord shortcut system, which also should avoid to make its users to have multiple keystrokes (double esc and then something more etc.) Jetbrains products are really engineered very well on their UI/UX part, if we can not have/afford an experienced UI/UX team of professionals then at least we should inspect what they (jetbrains and/or others) have done and learn from them then apply to QtCreator maybe? Regards, Emre Beşirik nomercy at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From robert_buchinger at gmx.at Tue Apr 5 12:51:55 2016 From: robert_buchinger at gmx.at (Robert Buchinger) Date: Tue, 05 Apr 2016 12:51:55 +0200 Subject: [Interest] login.qt.io down => cannot install Qt In-Reply-To: References: Message-ID: <1565646.9fsNEG2S9l@devrobert> On Tuesday, April 5, 2016 5:50:20 AM CEST Boris wrote: > I am installing a new machine and setting up my development environment. > However, I cannot install Qt because the Qt installer forces to login to your > account, and login.qt.io appears to be down, resulting in a "TIMEOUT" error > when trying to login. Anyone has this error as well? The blog seems down as > well, I get "No application configured" when going to blog.qt.io. > > Seriously, this is very embarrassing for Digia. Users cannot get work done > because of their incredibly bad decision to force users to login to install > their software. > > This is both a rant and a feature request: Digia, please make login optional > to install your software, because if you think you can guarantee that the > login system is never down, you are fooling yourself. Such a lack of > professionalism. > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > For me both login.qt.io and blog.qt.io are working. Does this happen within the Maintenance Tool or from the browser? As long as you not have a commercial license you not need to log in to download and install Qt. From elvstone at gmail.com Mon Apr 4 18:09:34 2016 From: elvstone at gmail.com (Elvis Stansvik) Date: Mon, 4 Apr 2016 18:09:34 +0200 Subject: [Interest] Available versions to QML import in older Qt releases? In-Reply-To: References: Message-ID: Den 4 apr 2016 4:40 em skrev "Jason H" : > > > I'm working on a product based on Ubuntu 15.10, where Qt 5.4.1 is the > > packaged version (I know a more recent Ubuntu is soon to be released, > > and an LTS at that, but we're on this version for now). > > > > Is there an online way to find out which versions of packages I can > > import from the QtQuick 2 that comes with 5.4.1, short of downloading > > the offline documentation? > > > > Experimentally I've deduced that > > > > QtQuick 2.4 > > QtQuick.Window 2.2 > > QtQuick.Controls 1.3 > > QtQuick.Controls.Styles 1.3 > > QtQuick.Layouts 1.1 > > > > are the versions available in 5.4.1 for the packages I'm using, but it > > would be great if there was a way to look up/confirm this quickly. > > > > I know there's older Qt docs at http://doc.qt.io/archives/ , but it > > only stretches one version back, to Qt 5.4. > > QtCreator seems to know what versions are installed, and suggests these via auto-complete. > > Hijacking this a bit, what is the behavior of imports when a later version is present? What am I missing when my script does an import of a previous version? Am I not getting bug fixes? It would be nice to know what the deltas are between versions, as well as a wildcard for importing whatever the latest and greatest is. Kind of like node's npm where you can spec a version and anything after that version. I agree. Elvis > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mitch.curtis at theqtcompany.com Tue Apr 5 13:03:00 2016 From: mitch.curtis at theqtcompany.com (Curtis Mitch) Date: Tue, 5 Apr 2016 11:03:00 +0000 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <3405752.o60X2blQl0@cartman> <1825551459773808@web30j.yandex.ru> Message-ID: From: Interest [mailto:interest-bounces+mitch.curtis=theqtcompany.com at qt-project.org] On Behalf Of Preet Sent: Monday, 4 April 2016 11:30 PM Cc: interest at qt-project.org Subject: Re: [Interest] CLion to replace QtCreator? Hey I want to chime in for the Creator devs that might be reading this: please keep doing what you do, QtCreator is *awesome*. It always seems like once people start liking and using certain IDEs and editors it becomes like a religion and people love talking down everything else. So much of 'tabs vs menu', 'color themes', 'UI-friendliness', etc can be subjective. Saying QtCreator "is actually eons behind the current IDE trends and technology" is just insulting. There are plenty of things in QtCreator that could use improvement, but thats true of most software. In general its a polished IDE that makes working with C++ way nicer and I can't wait to see how QtCreator gets even better in the future. This. I think the Creator devs must have built up a nice level of restraint after dealing with these kinds of “users” (has this person actually used Creator properly?). -------------- next part -------------- An HTML attachment was scrubbed... URL: From mitch.curtis at theqtcompany.com Tue Apr 5 13:15:48 2016 From: mitch.curtis at theqtcompany.com (Curtis Mitch) Date: Tue, 5 Apr 2016 11:15:48 +0000 Subject: [Interest] Available versions to QML import in older Qt releases? In-Reply-To: References: Message-ID: You might find this thread interesting to read: http://lists.qt-project.org/pipermail/development/2015-September/023200.html From: Interest [mailto:interest-bounces+mitch.curtis=theqtcompany.com at qt-project.org] On Behalf Of Elvis Stansvik Sent: Monday, 4 April 2016 6:10 PM To: Jason H Cc: interest at qt-project.org Interest Subject: Re: [Interest] Available versions to QML import in older Qt releases? Den 4 apr 2016 4:40 em skrev "Jason H" >: > > > I'm working on a product based on Ubuntu 15.10, where Qt 5.4.1 is the > > packaged version (I know a more recent Ubuntu is soon to be released, > > and an LTS at that, but we're on this version for now). > > > > Is there an online way to find out which versions of packages I can > > import from the QtQuick 2 that comes with 5.4.1, short of downloading > > the offline documentation? > > > > Experimentally I've deduced that > > > > QtQuick 2.4 > > QtQuick.Window 2.2 > > QtQuick.Controls 1.3 > > QtQuick.Controls.Styles 1.3 > > QtQuick.Layouts 1.1 > > > > are the versions available in 5.4.1 for the packages I'm using, but it > > would be great if there was a way to look up/confirm this quickly. > > > > I know there's older Qt docs at http://doc.qt.io/archives/ , but it > > only stretches one version back, to Qt 5.4. > > QtCreator seems to know what versions are installed, and suggests these via auto-complete. > > Hijacking this a bit, what is the behavior of imports when a later version is present? What am I missing when my script does an import of a previous version? Am I not getting bug fixes? It would be nice to know what the deltas are between versions, as well as a wildcard for importing whatever the latest and greatest is. Kind of like node's npm where you can spec a version and anything after that version. I agree. Elvis > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From elvstone at gmail.com Mon Apr 4 15:51:55 2016 From: elvstone at gmail.com (Elvis Stansvik) Date: Mon, 4 Apr 2016 15:51:55 +0200 Subject: [Interest] Use Book and Medium weight Gotham font from QML? Message-ID: Hi all, I'm targeting Qt 5.4.1 and it seems there's no Font.Medium enumeration value there? I get: Unable to assign [undefined] to int The font we're using for this app is our company font, which is Gotham from Hoefler & Co. The weights we need in the UI are Book and Medium, each defined in its own .otf (but under the same family name "Gotham"), as shown by the fc-scan output below: estan at newton:~$ fc-scan Gotham-Book.otf Pattern has 22 elts (size 32) family: "Gotham"(s) "Gotham Book"(s) familylang: "en"(s) "en"(s) style: "Book"(s) "Regular"(s) stylelang: "en"(s) "en"(s) fullname: "Gotham-Book"(s) fullnamelang: "en"(s) slant: 0(i)(s) weight: 50(i)(s) width: 100(i)(s) foundry: "unknown"(s) file: "Gotham-Book.otf"(s) index: 0(i)(s) outline: True(s) scalable: True(s) charset: 0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffdfcfaf ffffffff ffffffff 0001: cffffcff fec3fccf cffff1ff 7ffffc3f 00040000 00000000 00000000 fc000000 0002: 03000000 00000000 02000000 00000000 00000000 00000000 3f0000c0 00000000 0003: 00000000 00000040 00000000 00000000 00000000 00000000 00000000 00000000 000e: 00000000 80000000 00000000 00000000 00000000 00000000 00000000 00000000 001e: 00000000 00000000 00000000 00000000 0000003f 00000000 00000000 000c0000 0020: 771806bc 06010047 00000010 03f10000 000003ff 00021742 00000000 00000000 0021: 00800000 00000005 7ff80000 00000000 00000000 00000000 00000000 00000000 0022: 00040000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00fb: 0000001f 00000000 00000000 00000000 00000000 00000000 00000000 00000000 (s) lang: aa|ay|bi|br|bs|ca|ch|co|cs|cy|da|de|en|es|et|eu|fi|fj|fo|fr|fur|fy|gd|gl|gv|ho|hr|hu|ia|id|ie|io|is|it|la|lb|lt|lv|mg|mh|mt|nb|nds|nl|nn|no|nr|nso|ny|oc|om|pl|pt|rm|sk|sl|sma|smj|so|sq|ss|st|sv|sw|tk|tl|tn|tr|ts|uz|vo|vot|wa|wen|xh|yap|zu|an|crh|csb|fil|hsb|ht|jv|kj|ku-tr|kwm|li|ms|ng|pap-an|pap-aw|rn|rw|sc|sg|sn|su|za(s) fontversion: 144179(i)(s) capability: "otlayout: otlayout:latn"(s) fontformat: "CFF"(s) decorative: False(s) hash: "sha256:3083f405cb35b16e06d0108836dd6552630c85c7fc5412a5de724e57e6fd7348"(s) postscriptname: "Gotham-Book"(s) estan at newton:~$ fc-scan Gotham-Medium.otf Pattern has 22 elts (size 32) family: "Gotham"(s) "Gotham Medium"(s) familylang: "en"(s) "en"(s) style: "Medium"(s) "Regular"(s) stylelang: "en"(s) "en"(s) fullname: "Gotham-Medium"(s) fullnamelang: "en"(s) slant: 0(i)(s) weight: 80(i)(s) width: 100(i)(s) foundry: "unknown"(s) file: "Gotham-Medium.otf"(s) index: 0(i)(s) outline: True(s) scalable: True(s) charset: 0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffdfcfaf ffffffff ffffffff 0001: cffffcff fec3fccf cffff1ff 7ffffc3f 00040000 00000000 00000000 fc000000 0002: 03000000 00000000 02000000 00000000 00000000 00000000 3f0000c0 00000000 0003: 00000000 00000040 00000000 00000000 00000000 00000000 00000000 00000000 000e: 00000000 80000000 00000000 00000000 00000000 00000000 00000000 00000000 001e: 00000000 00000000 00000000 00000000 0000003f 00000000 00000000 000c0000 0020: 771806bc 06010047 00000010 03f10000 000003ff 00021742 00000000 00000000 0021: 00800000 00000005 7ff80000 00000000 00000000 00000000 00000000 00000000 0022: 00040000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00fb: 0000001f 00000000 00000000 00000000 00000000 00000000 00000000 00000000 (s) lang: aa|ay|bi|br|bs|ca|ch|co|cs|cy|da|de|en|es|et|eu|fi|fj|fo|fr|fur|fy|gd|gl|gv|ho|hr|hu|ia|id|ie|io|is|it|la|lb|lt|lv|mg|mh|mt|nb|nds|nl|nn|no|nr|nso|ny|oc|om|pl|pt|rm|sk|sl|sma|smj|so|sq|ss|st|sv|sw|tk|tl|tn|tr|ts|uz|vo|vot|wa|wen|xh|yap|zu|an|crh|csb|fil|hsb|ht|jv|kj|ku-tr|kwm|li|ms|ng|pap-an|pap-aw|rn|rw|sc|sg|sn|su|za(s) fontversion: 144179(i)(s) capability: "otlayout: otlayout:latn"(s) fontformat: "CFF"(s) decorative: False(s) hash: "sha256:bc397773a547218b8c334f9a40ea8e58f55198fab6095b103e598634fe273450"(s) postscriptname: "Gotham-Medium"(s) estan at newton:~/orexplore/doc/GrafiskProfil/Typsnitt/Gotham$ And I'm loading these as follows: Style { readonly property string mediumFontFamily: __gothamMediumLoader.name readonly property string regularFontFamily: __gothamBookLoader.name property FontLoader __gothamBookLoader: FontLoader { source: "fonts/Gotham-Book.otf" } property FontLoader __gothamMediumLoader: FontLoader { source: "fonts/Gotham-Medium.otf" } ... } and trying to use them with: Text { text: "Foo" font.family: Style.regularFontFamily font.weight: Font.Normal } Text { text: "Foo" font.family: Style.mediumFontFamily font.weight: Font.Medium } the Font.Normal seems to work okay, it looks like it's giving me the Book weight from Gotham-Book.otf, which I want. I guess because the weight is close numerically (?) But what do I do with the Medium weight since the enum value is not available? If I try Font.Bold I seem to get synthetic emboldening, which I don't want. It seems there's some fixes in 5.6 which will let me use Font.styleName to match a font by style name, which would be a workaround [1]. But right now I'm stuck with 5.4.1. Thanks in advance for any advice. Elvis [1] https://codereview.qt-project.org/#/c/112676/ From jeanmichael.celerier at gmail.com Mon Apr 4 15:55:38 2016 From: jeanmichael.celerier at gmail.com (=?UTF-8?Q?Jean=2DMicha=C3=ABl_Celerier?=) Date: Mon, 4 Apr 2016 15:55:38 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> Message-ID: Class implementations As somebody wrote already, this refactoring already exists. While debugging the values of variables are displayed inside the text editor, in light gray You can hover the variables and see the current value. Some signals are hard to find, for example the "click()" signal from QButton comes from QAbstractButton. See http://s1.webmshare.com/JrdbJ.webm Search! (like spotlight search with just one shortcut key to open file or go to a particular location in your code): You mean like when you press ctrl-k in QtCreator which allows you to go to any class, file, method, or such just by typing its first few letters ? Others points are valid concerns, but I think that you should read the QtCreator manual a bit : http://doc.qt.io/qtcreator/creator-editor-refactoring.html http://doc.qt.io/qtcreator/creator-editor-locator.html Best, Jean-Michaël Celerier On Mon, Apr 4, 2016 at 1:47 PM, Emre Besirik wrote: > > 1. XML tags completion for known tags. This can be done for *.UI > files, and maybe some part of *.QS. Basic XML structure is already know - > so even for unknown XML variants - the IDE knows what tag to close. > 2. Class implementations - for example, I derive from an interface and > pressing control+enter on the type will add missing methods. > 3. When I define an inline class (Java, but can be done using lambda > expressions in C++), just pressing control+enter will write the code for > me. For example: > > AlertDialog.Builder builder = new AlertDialog.Builder(this); > builder.setPositiveButton(android.R.string.ok, new ___ > > Pressing "control+enter" will create a new anonymous class which derives new DialogInterface.OnClickListener() > > 4. When a method argument is an enum, code completion works on the > corresponding enum, and adds the needed type. > 5. Automatically know how to modify R"code" for example here: > ListView mListView = findViewById(R.id.notifications_list_view); > it will suggest to typecast to ListView (to fix - again, > control+enter). > 6. While debugging the values of variables are displayed inside the > text editor, in light gray (no more looking for them in a panel). > 7. When using connect, using Niko's example, I would like to type > connect(button, [clicked], this, [playTheFunkyMusic]) > and QtCreator should automagically find the signals of button, and the > corresponding slots of "this". It used to work in ond style Qt4 signals, > but with modern connections, I need to type the whole type. Some signals > are hard to find, for example the "click()" signal from QButton comes from > QAbstractButton. This means that when an object "has/provides" a signal, I > need to guess the parent type which defined the signal in order connect it > (I did not have to know this in Qt4). > 8. When I am lost "control+enter" usually fixe stuff for me. > 9. Multiple cursors (see the demo on SublimeText's home page - its > epic, and Atom badly implements it), > > > - Search! (like spotlight search with just one shortcut key to open > file or go to a particular location in your code): > - search symbols > - files in your project > - search everywhere > - you can lookout jetbrains IDEs for more examples > - *Smart* code completion. and by smart I mean for instance; if I’m > going to assign something to an int type do not suggest me different return > types of functions or variables. do smart things like; if I’m > creating/assigning a variable something for first time suggest me things > like object initializations first depending on the object type. And try to > do these without delays as much as possible. cache, index, think beyond the > box. > - Do things so obvious your self, do not wait for me to do. > - tabs — the current working type of open documents are really > annoying. if you have split view open, first you need to select the view > you intend to change open document. I dont know how many times I’ve changed > the non-intended document in workspace > - ONE key to kill all other views and leave code windows open only > (like distraction free mode of intellij) > - go proactive, generate getters/setter and stuff like that. > - have a dark UI mode :) > - have tons of more keyboard shortcuts (check out intellij) > - have a better user friendly UI > > > I’m sorry to say this but QtCreator is actually eons behind the current > IDE trends and technology :( > Just checkout the comments at the link I shared in my first post, people > are practically begging jetbrains to save themselves from QtCreator (no > offense intended but this is the case for many people) > And I think Qt Company should just get rid of the denial of the world > start to see beyond horizon and do something, revolutionize QtCreator or > just do something like Google did for android studio and embrace/deal with > jetbrains ide and fork a CLion custimized for Qt development. I dont see > any other way :( > > Regards, > Emre Beşirik > nomercy at gmail.com > > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From krnekit at gmail.com Tue Apr 5 13:41:09 2016 From: krnekit at gmail.com (Nikita Krupenko) Date: Tue, 5 Apr 2016 14:41:09 +0300 Subject: [Interest] Available versions to QML import in older Qt releases? In-Reply-To: References: Message-ID: 2016-04-04 19:08 GMT+03:00 Elvis Stansvik : > Den 4 apr 2016 4:40 em skrev "Jason H" : >> QtCreator seems to know what versions are installed, and suggests these >> via auto-complete. > > Ah, yes hadn't noticed that somehow, thanks. Now the problem is instead > stupid me who's developing on a laptop with 5.5.1 installed, when our target > machine, mounted in our prototype product downstairs, runs 5.4.1 :) I should > probably downgrade. I also note, that QtC sometimes not lists the latest available version of module. Especially, if you use Qt from git. From nomercy at gmail.com Mon Apr 4 15:50:12 2016 From: nomercy at gmail.com (Emre Besirik) Date: Mon, 4 Apr 2016 16:50:12 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <1814221459773717@web30j.yandex.ru> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <10603041459772304@web23g.yandex.ru> <0D70AEE1-2E95-4252-AAC0-E08E50AE68C6@gmail.com> <1814221459773717@web30j.yandex.ru> Message-ID: > On 04 Apr 2016, at 15:41, Konstantin Tokarev wrote: >> >> Well there must be something can be done, Qt Can use Intellij like google did, I know its a little bit more work compared to CLion fork but it is possible. > > A liitle bit? > > That would mean porting of all clang code model code (and maybe other parts) into different IDE architecture and integrating all C++ code with Java. And it still would be the same clang code model that you don't like. Ok but jetbrains did it, why cant we? > >> Or at least a plugin for intellij platform maybe? I mean as long as you want to be part of the solution... > > Well, if CLion gets bigger market share than Visual Studio it might happen that VS plugin is dropped in favour of this IDE. > We all know thats not going to happen, why not to have plugins for 2 different IDEs? Regards, Emre Beşirik nomercy at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From b.terrier at gmail.com Mon Apr 4 15:40:56 2016 From: b.terrier at gmail.com (Benjamin TERRIER) Date: Mon, 4 Apr 2016 15:40:56 +0200 Subject: [Interest] windeployqt and embedeed QML (.qrc) In-Reply-To: References: Message-ID: Hi Damien, Have a look at the "--qmldir " option ("windeployqt --help" to display all available options). The given directory will be scanned for QML dependencies. BR, Benjamin 2016-04-02 20:59 GMT+02:00 Damien Courtois : > Hi there, > > I have a lot of trouble finding informations about this, but if I missed the > obvious one, in advance sorry for that. > My problem is that I have a Qml application, but all the Qml files are > embedded in the executable through a .qrc file. > And when I use windeployqt, it doesn't seem to copy any Qml module / file, > as though the tool was not able to get the imports from my embedded Qmls. > > Is this supported by the tool ? Or will I need to provide the Qml files next > to my executable so that the tool can do its job ? > > By the way I'm using Qt 5.6. > > Thanks in advance for any help. > Damien Courtois > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > From elvstone at gmail.com Mon Apr 4 16:13:14 2016 From: elvstone at gmail.com (Elvis Stansvik) Date: Mon, 4 Apr 2016 16:13:14 +0200 Subject: [Interest] Use Book and Medium weight Gotham font from QML? In-Reply-To: References: Message-ID: 2016-04-04 15:51 GMT+02:00 Elvis Stansvik : > Hi all, > > I'm targeting Qt 5.4.1 and it seems there's no Font.Medium enumeration > value there? I get: > > Unable to assign [undefined] to int > > The font we're using for this app is our company font, which is Gotham > from Hoefler & Co. The weights we need in the UI are Book and Medium, > each defined in its own .otf (but under the same family name > "Gotham"), as shown by the fc-scan output below: > > estan at newton:~$ fc-scan Gotham-Book.otf > Pattern has 22 elts (size 32) > family: "Gotham"(s) "Gotham Book"(s) > familylang: "en"(s) "en"(s) > style: "Book"(s) "Regular"(s) > stylelang: "en"(s) "en"(s) > fullname: "Gotham-Book"(s) > fullnamelang: "en"(s) > slant: 0(i)(s) > weight: 50(i)(s) > width: 100(i)(s) > foundry: "unknown"(s) > file: "Gotham-Book.otf"(s) > index: 0(i)(s) > outline: True(s) > scalable: True(s) > charset: > 0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffdfcfaf > ffffffff ffffffff > 0001: cffffcff fec3fccf cffff1ff 7ffffc3f 00040000 00000000 > 00000000 fc000000 > 0002: 03000000 00000000 02000000 00000000 00000000 00000000 > 3f0000c0 00000000 > 0003: 00000000 00000040 00000000 00000000 00000000 00000000 > 00000000 00000000 > 000e: 00000000 80000000 00000000 00000000 00000000 00000000 > 00000000 00000000 > 001e: 00000000 00000000 00000000 00000000 0000003f 00000000 > 00000000 000c0000 > 0020: 771806bc 06010047 00000010 03f10000 000003ff 00021742 > 00000000 00000000 > 0021: 00800000 00000005 7ff80000 00000000 00000000 00000000 > 00000000 00000000 > 0022: 00040000 00000000 00000000 00000000 00000000 00000000 > 00000000 00000000 > 00fb: 0000001f 00000000 00000000 00000000 00000000 00000000 > 00000000 00000000 > (s) > lang: aa|ay|bi|br|bs|ca|ch|co|cs|cy|da|de|en|es|et|eu|fi|fj|fo|fr|fur|fy|gd|gl|gv|ho|hr|hu|ia|id|ie|io|is|it|la|lb|lt|lv|mg|mh|mt|nb|nds|nl|nn|no|nr|nso|ny|oc|om|pl|pt|rm|sk|sl|sma|smj|so|sq|ss|st|sv|sw|tk|tl|tn|tr|ts|uz|vo|vot|wa|wen|xh|yap|zu|an|crh|csb|fil|hsb|ht|jv|kj|ku-tr|kwm|li|ms|ng|pap-an|pap-aw|rn|rw|sc|sg|sn|su|za(s) > fontversion: 144179(i)(s) > capability: "otlayout: otlayout:latn"(s) > fontformat: "CFF"(s) > decorative: False(s) > hash: "sha256:3083f405cb35b16e06d0108836dd6552630c85c7fc5412a5de724e57e6fd7348"(s) > postscriptname: "Gotham-Book"(s) > > estan at newton:~$ fc-scan Gotham-Medium.otf > Pattern has 22 elts (size 32) > family: "Gotham"(s) "Gotham Medium"(s) > familylang: "en"(s) "en"(s) > style: "Medium"(s) "Regular"(s) > stylelang: "en"(s) "en"(s) > fullname: "Gotham-Medium"(s) > fullnamelang: "en"(s) > slant: 0(i)(s) > weight: 80(i)(s) > width: 100(i)(s) > foundry: "unknown"(s) > file: "Gotham-Medium.otf"(s) > index: 0(i)(s) > outline: True(s) > scalable: True(s) > charset: > 0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffdfcfaf > ffffffff ffffffff > 0001: cffffcff fec3fccf cffff1ff 7ffffc3f 00040000 00000000 > 00000000 fc000000 > 0002: 03000000 00000000 02000000 00000000 00000000 00000000 > 3f0000c0 00000000 > 0003: 00000000 00000040 00000000 00000000 00000000 00000000 > 00000000 00000000 > 000e: 00000000 80000000 00000000 00000000 00000000 00000000 > 00000000 00000000 > 001e: 00000000 00000000 00000000 00000000 0000003f 00000000 > 00000000 000c0000 > 0020: 771806bc 06010047 00000010 03f10000 000003ff 00021742 > 00000000 00000000 > 0021: 00800000 00000005 7ff80000 00000000 00000000 00000000 > 00000000 00000000 > 0022: 00040000 00000000 00000000 00000000 00000000 00000000 > 00000000 00000000 > 00fb: 0000001f 00000000 00000000 00000000 00000000 00000000 > 00000000 00000000 > (s) > lang: aa|ay|bi|br|bs|ca|ch|co|cs|cy|da|de|en|es|et|eu|fi|fj|fo|fr|fur|fy|gd|gl|gv|ho|hr|hu|ia|id|ie|io|is|it|la|lb|lt|lv|mg|mh|mt|nb|nds|nl|nn|no|nr|nso|ny|oc|om|pl|pt|rm|sk|sl|sma|smj|so|sq|ss|st|sv|sw|tk|tl|tn|tr|ts|uz|vo|vot|wa|wen|xh|yap|zu|an|crh|csb|fil|hsb|ht|jv|kj|ku-tr|kwm|li|ms|ng|pap-an|pap-aw|rn|rw|sc|sg|sn|su|za(s) > fontversion: 144179(i)(s) > capability: "otlayout: otlayout:latn"(s) > fontformat: "CFF"(s) > decorative: False(s) > hash: "sha256:bc397773a547218b8c334f9a40ea8e58f55198fab6095b103e598634fe273450"(s) > postscriptname: "Gotham-Medium"(s) > > estan at newton:~/orexplore/doc/GrafiskProfil/Typsnitt/Gotham$ > > And I'm loading these as follows: > > Style { > readonly property string mediumFontFamily: __gothamMediumLoader.name > readonly property string regularFontFamily: __gothamBookLoader.name > > property FontLoader __gothamBookLoader: FontLoader { > source: "fonts/Gotham-Book.otf" > } > > property FontLoader __gothamMediumLoader: FontLoader { > source: "fonts/Gotham-Medium.otf" > } > > ... > } > > and trying to use them with: > > Text { > text: "Foo" > font.family: Style.regularFontFamily > font.weight: Font.Normal > } > > Text { > text: "Foo" > font.family: Style.mediumFontFamily > font.weight: Font.Medium > } > > the Font.Normal seems to work okay, it looks like it's giving me the > Book weight from Gotham-Book.otf, which I want. I guess because the > weight is close numerically (?) > > But what do I do with the Medium weight since the enum value is not > available? If I try Font.Bold I seem to get synthetic emboldening, > which I don't want. > > It seems there's some fixes in 5.6 which will let me use > Font.styleName to match a font by style name, which would be a > workaround [1]. But right now I'm stuck with 5.4.1. > > Thanks in advance for any advice. Anyone know if it would work if I open both .otf in FontForge, change the family names to be e.g. "My Gotham Book" and "My Gotham Medium", re-export them to OTF and then use e.g. font.family: "My Gotham Medium" and don't set font.weight at all? As you can understand, I'm a little desperate since we really need to use these fonts for the UI, and we want to use the packaged Qt on Ubuntu :/ Elvis > > Elvis > > [1] https://codereview.qt-project.org/#/c/112676/ From nomercy at gmail.com Mon Apr 4 15:41:13 2016 From: nomercy at gmail.com (Emre Besirik) Date: Mon, 4 Apr 2016 16:41:13 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <3405752.o60X2blQl0@cartman> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <3405752.o60X2blQl0@cartman> Message-ID: <05D0DD62-3D1A-4D42-9E2F-EC4ABCD16E11@gmail.com> > On 04 Apr 2016, at 15:39, Sean Harmer wrote: > > ps No need to forward everybody's replies to the list. They are cc'd to you as > well as to the list. I didn’t forward anythink? I know how mailing lists work ;) I just accidentally double posted one of mail own mails and told someone to also post to list instead of just replying to the person. From tero.kojo at theqtcompany.com Tue Apr 5 14:11:13 2016 From: tero.kojo at theqtcompany.com (Kojo Tero) Date: Tue, 5 Apr 2016 12:11:13 +0000 Subject: [Interest] login.qt.io down => cannot install Qt In-Reply-To: <1565646.9fsNEG2S9l@devrobert> References: <1565646.9fsNEG2S9l@devrobert> Message-ID: Hi, There was a server incident in the early hours of the night (local server time) and that was fixed as soon as there was someone in the office. It is not mandatory to log in to install Qt. In open source you can skip the login in the installer. (there is the option on the screen that asks for your Qt Account) Or download the offline installer and forget the network completely. For a commercial fresh install you do need to log in (or have the license ready), so yes it can be a problem there. We know that every system can fail, but there needs to be some way to manage commercial licenses, in practice an online server is the best option. Best regards, Tero > -----Original Message----- > From: Interest [mailto:interest-bounces+tero.kojo=theqtcompany.com at qt- > project.org] On Behalf Of Robert Buchinger > Sent: 5. huhtikuuta 2016 13:52 > To: interest at qt-project.org > Cc: Boris > Subject: Re: [Interest] login.qt.io down => cannot install Qt > > On Tuesday, April 5, 2016 5:50:20 AM CEST Boris wrote: > > I am installing a new machine and setting up my development > environment. > > However, I cannot install Qt because the Qt installer forces to login > > to your account, and login.qt.io appears to be down, resulting in a > > "TIMEOUT" error when trying to login. Anyone has this error as well? > > The blog seems down as well, I get "No application configured" when going > to blog.qt.io. > > > > Seriously, this is very embarrassing for Digia. Users cannot get work > > done because of their incredibly bad decision to force users to login > > to install their software. > > > > This is both a rant and a feature request: Digia, please make login > > optional to install your software, because if you think you can > > guarantee that the login system is never down, you are fooling > > yourself. Such a lack of professionalism. > > > > > > _______________________________________________ > > Interest mailing list > > Interest at qt-project.org > > http://lists.qt-project.org/mailman/listinfo/interest > > > For me both login.qt.io and blog.qt.io are working. > > Does this happen within the Maintenance Tool or from the browser? > > As long as you not have a commercial license you not need to log in to > download and install Qt. > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest From mustang6565 at gmail.com Tue Apr 5 14:28:13 2016 From: mustang6565 at gmail.com (Jack Klause) Date: Tue, 5 Apr 2016 07:28:13 -0500 Subject: [Interest] Qt 5.5 LinuxFb Plugin with Base Layer Transparency Message-ID: Our application requires that we blend 3 layers with 3 framebuffers on a TI device. The base layer is opaque video, the middle layer is video blended on top of the base layer with a global alpha channel that we need to be able to modify on the fly, and a top GUI layer with transparency. This approach worked great with Qt 4.8 and we are trying to get it to work with Qt 5.5. The problem is that when we run the top level GUI application, we cannot set the background of the to be fully transparent. It simply appears black. This covers the 2 lower z-order applications and they are no longer visible. We attempted to investigate this issue by looking at the Qt5.5 linuxfb plugin source code. Beginning at line 251 of qfbscreen.cpp in the Qt5.5 source ( located in qt5base-5.5.1/src/platformsupport/fbconvenience ), we see where the linuxfb plugin sets the base layer to black. If we change that one line to "qt::transparent", and re-launch our app, then we see the lower 2 layers "through" the GUI in the regions of the GUI where it is fully transparent. Initially, the fully transparent GUI displays correctly. It displays a menu, which initially appears correct. A problem occurs when we then try to hide the menu. It remains displayed on the screen. Apparently, the redraw of the base layer, which is transparent, does not replace the pixels from the menu, but is instead blended with the menu pixels. We have tried several composition modes in the base layer's paint event, including Source and Clear, but neither fixes the problem. On previous products ( using the DM3730 ), we used this same approach ( DSS blended framebuffers ) with Qt 4.8 and it worked as expected. How can we make this work with Qt 5.5? qfbscreen.cpp: // we only expect one rectangle, but defensive coding... foreach (const QRect &rect, intersect.rects()) { bool firstLayer = true; if (layer == -1) { mCompositePainter->fillRect(rect, Qt::black); firstLayer = false; layer = mWindowStack.size() - 1; } for (int layerIndex = layer; layerIndex != -1; layerIndex--) { if (!mWindowStack[layerIndex]->window()->isVisible()) continue; // if (mWindowStack[layerIndex]->isMinimized()) // continue; QRect windowRect = mWindowStack[layerIndex]->geometry().translated(-screenOffset); QRect windowIntersect = rect.translated(-windowRect.left(), -windowRect.top()); QFbBackingStore *backingStore = mWindowStack[layerIndex]->backingStore(); if (backingStore) { backingStore->lock(); mCompositePainter->drawImage(rect, backingStore->image(), windowIntersect); backingStore->unlock(); } if (firstLayer) { firstLayer = false; } } } We greatly appreciate any help - thank you. -------------- next part -------------- An HTML attachment was scrubbed... URL: From asmaloney at gmail.com Tue Apr 5 14:30:02 2016 From: asmaloney at gmail.com (Andy) Date: Tue, 5 Apr 2016 08:30:02 -0400 Subject: [Interest] [Qt3D] Use a QImage as a QTextureImage Message-ID: I have a QImage that I'm generating programmatically using a QPainter which I want to use as a texture. I want to use it in a QNormalDiffuseMapAlphaMaterial as a diffuse texture - so it needs a QTextureImage whose source is set using a QUrl. How do I get from my in-memory QImage to a QUrl to set this source? Or is there another path I'm missing to accomplish this? I'm also going to want to render text as a billboard - is this the right way to do it too? (Generate into a QImage with QPainter and use textures on a QPlaneMesh?) (C++, not QML) Thanks! --- Andy Maloney // https://asmaloney.com twitter ~ @asmaloney -------------- next part -------------- An HTML attachment was scrubbed... URL: From nomercy at gmail.com Tue Apr 5 14:33:46 2016 From: nomercy at gmail.com (NoMercy) Date: Tue, 5 Apr 2016 15:33:46 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> Message-ID: On Tue, Apr 5, 2016 at 1:49 PM, Curtis Mitch wrote: > > I’m sorry to say this but QtCreator is actually eons behind the current > IDE trends and technology :( > > > > > people are practically begging jetbrains to save themselves from > QtCreator (no offense intended but this is the case for many people) > > > > > And I think Qt Company should just get rid of the denial of the world > start to see beyond horizon and do something, revolutionize QtCreator or > just do something like Google did for android studio and embrace/deal with > jetbrains ide and fork a CLion custimized for Qt development. I dont see > any other way :( > > > > Hahaaa! I especially like the “I don’t see any other way” part. Fantastic. > Also, very, very cringe-worthy. Telling a company it’s in denial because it > doesn’t fork your favourite IDE is... ridiculous. It sounds like you > haven’t actually attempted to properly use Qt Creator (e.g. by saying that > Locator “only searches for filenames”), and don’t intend on putting in any > work yourself, even though it’s an open source project. > > > Hey look I didn't start to offend anybody about their work, but just get some realistic here; 1. Have you even try to read people's comments on that link I've shared? (Yes they are practically begging JetBrains) 2. Have you ever used ANY JetBrains product before? for how long? then you'll see there the huge difference between JOY of coding and JOB of coding. 3. And yes I don't see any other way IF you want to be part of the solution instead of being in denial! "and don’t intend on putting in any work yourself, even though it’s an open source project." I would put my work if it would mean something; trying to make such revolutionarising move on the existing QtCreator would practically re-writing it all from scratch while there are more convinient ways such as moving to intellij platform or just simply wrting a plugin for CLion maybe? Regards, Emre Besirik -------------- next part -------------- An HTML attachment was scrubbed... URL: From jhihn at gmx.com Mon Apr 4 16:36:22 2016 From: jhihn at gmx.com (Jason H) Date: Mon, 4 Apr 2016 16:36:22 +0200 Subject: [Interest] How to login to a website then call an API from the app In-Reply-To: References: Message-ID: > Subject: [Interest] How to login to a website then call an API from the app > > (Apologies for the confused question but I don't know enough about what I'm trying to ask to know what the question should be). > > We have a Qt4.8.2 app that opens a browser to our website so the user can login. This creates a cookie which we can then use to call the website API from our app after the browser is closed. Now we've moved to Qt5 this has stopped working because QNetworkAccessManager can't be tied to QWebEngine and it looks like we need to move to Qt 5.6 to use the QWebEngineCookieStore class. But it got me thinking - is this actually a good way of doing this or is there a "best practice" we can follow? > > You can probably tell that I don't have much experience of web development so this is probably a dumb question, but what's the best way of doing this? Dropping the browser and just using a login dialog then hashing the password (we don't want to store it locally) and logging in via an API call? Or should we be looking at something like OAuth? > > Thanks for any assistance. I'm not familiar with the WebEngine stuff, but that seems correct. QWebEngineProfile::cookieStore() returns the cookie store singleton, so you should be good. Generally, you don't hash the password on the page, it should be sent plain-text over SSL. The reason why I say plaintext is because whatever is sent, hashed or not, is public. If you hash before sending, someone who views that page can look at your source and figure out to hash it. So hashed or not, it is the same level of security. I've used OAuth and custom login schemes, it does not matter. OAuth workflows allow users to use existing accounts, which may be beneficial for you, or they might not. I work in HIPAA-land, so we need to have password controls which means we can't use OAuth from existing sites. From elvstone at gmail.com Mon Apr 4 16:21:37 2016 From: elvstone at gmail.com (Elvis Stansvik) Date: Mon, 4 Apr 2016 16:21:37 +0200 Subject: [Interest] Use Book and Medium weight Gotham font from QML? In-Reply-To: References: Message-ID: 2016-04-04 15:51 GMT+02:00 Elvis Stansvik : > Hi all, > > I'm targeting Qt 5.4.1 and it seems there's no Font.Medium enumeration > value there? I get: > > Unable to assign [undefined] to int > > The font we're using for this app is our company font, which is Gotham > from Hoefler & Co. The weights we need in the UI are Book and Medium, > each defined in its own .otf (but under the same family name > "Gotham"), as shown by the fc-scan output below: > > estan at newton:~$ fc-scan Gotham-Book.otf > Pattern has 22 elts (size 32) > family: "Gotham"(s) "Gotham Book"(s) > familylang: "en"(s) "en"(s) > style: "Book"(s) "Regular"(s) > stylelang: "en"(s) "en"(s) > fullname: "Gotham-Book"(s) > fullnamelang: "en"(s) > slant: 0(i)(s) > weight: 50(i)(s) > width: 100(i)(s) > foundry: "unknown"(s) > file: "Gotham-Book.otf"(s) > index: 0(i)(s) > outline: True(s) > scalable: True(s) > charset: > 0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffdfcfaf > ffffffff ffffffff > 0001: cffffcff fec3fccf cffff1ff 7ffffc3f 00040000 00000000 > 00000000 fc000000 > 0002: 03000000 00000000 02000000 00000000 00000000 00000000 > 3f0000c0 00000000 > 0003: 00000000 00000040 00000000 00000000 00000000 00000000 > 00000000 00000000 > 000e: 00000000 80000000 00000000 00000000 00000000 00000000 > 00000000 00000000 > 001e: 00000000 00000000 00000000 00000000 0000003f 00000000 > 00000000 000c0000 > 0020: 771806bc 06010047 00000010 03f10000 000003ff 00021742 > 00000000 00000000 > 0021: 00800000 00000005 7ff80000 00000000 00000000 00000000 > 00000000 00000000 > 0022: 00040000 00000000 00000000 00000000 00000000 00000000 > 00000000 00000000 > 00fb: 0000001f 00000000 00000000 00000000 00000000 00000000 > 00000000 00000000 > (s) > lang: aa|ay|bi|br|bs|ca|ch|co|cs|cy|da|de|en|es|et|eu|fi|fj|fo|fr|fur|fy|gd|gl|gv|ho|hr|hu|ia|id|ie|io|is|it|la|lb|lt|lv|mg|mh|mt|nb|nds|nl|nn|no|nr|nso|ny|oc|om|pl|pt|rm|sk|sl|sma|smj|so|sq|ss|st|sv|sw|tk|tl|tn|tr|ts|uz|vo|vot|wa|wen|xh|yap|zu|an|crh|csb|fil|hsb|ht|jv|kj|ku-tr|kwm|li|ms|ng|pap-an|pap-aw|rn|rw|sc|sg|sn|su|za(s) > fontversion: 144179(i)(s) > capability: "otlayout: otlayout:latn"(s) > fontformat: "CFF"(s) > decorative: False(s) > hash: "sha256:3083f405cb35b16e06d0108836dd6552630c85c7fc5412a5de724e57e6fd7348"(s) > postscriptname: "Gotham-Book"(s) > > estan at newton:~$ fc-scan Gotham-Medium.otf > Pattern has 22 elts (size 32) > family: "Gotham"(s) "Gotham Medium"(s) > familylang: "en"(s) "en"(s) > style: "Medium"(s) "Regular"(s) > stylelang: "en"(s) "en"(s) > fullname: "Gotham-Medium"(s) > fullnamelang: "en"(s) > slant: 0(i)(s) > weight: 80(i)(s) > width: 100(i)(s) > foundry: "unknown"(s) > file: "Gotham-Medium.otf"(s) > index: 0(i)(s) > outline: True(s) > scalable: True(s) > charset: > 0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffdfcfaf > ffffffff ffffffff > 0001: cffffcff fec3fccf cffff1ff 7ffffc3f 00040000 00000000 > 00000000 fc000000 > 0002: 03000000 00000000 02000000 00000000 00000000 00000000 > 3f0000c0 00000000 > 0003: 00000000 00000040 00000000 00000000 00000000 00000000 > 00000000 00000000 > 000e: 00000000 80000000 00000000 00000000 00000000 00000000 > 00000000 00000000 > 001e: 00000000 00000000 00000000 00000000 0000003f 00000000 > 00000000 000c0000 > 0020: 771806bc 06010047 00000010 03f10000 000003ff 00021742 > 00000000 00000000 > 0021: 00800000 00000005 7ff80000 00000000 00000000 00000000 > 00000000 00000000 > 0022: 00040000 00000000 00000000 00000000 00000000 00000000 > 00000000 00000000 > 00fb: 0000001f 00000000 00000000 00000000 00000000 00000000 > 00000000 00000000 > (s) > lang: aa|ay|bi|br|bs|ca|ch|co|cs|cy|da|de|en|es|et|eu|fi|fj|fo|fr|fur|fy|gd|gl|gv|ho|hr|hu|ia|id|ie|io|is|it|la|lb|lt|lv|mg|mh|mt|nb|nds|nl|nn|no|nr|nso|ny|oc|om|pl|pt|rm|sk|sl|sma|smj|so|sq|ss|st|sv|sw|tk|tl|tn|tr|ts|uz|vo|vot|wa|wen|xh|yap|zu|an|crh|csb|fil|hsb|ht|jv|kj|ku-tr|kwm|li|ms|ng|pap-an|pap-aw|rn|rw|sc|sg|sn|su|za(s) > fontversion: 144179(i)(s) > capability: "otlayout: otlayout:latn"(s) > fontformat: "CFF"(s) > decorative: False(s) > hash: "sha256:bc397773a547218b8c334f9a40ea8e58f55198fab6095b103e598634fe273450"(s) > postscriptname: "Gotham-Medium"(s) > > estan at newton:~/orexplore/doc/GrafiskProfil/Typsnitt/Gotham$ > > And I'm loading these as follows: > > Style { > readonly property string mediumFontFamily: __gothamMediumLoader.name > readonly property string regularFontFamily: __gothamBookLoader.name > > property FontLoader __gothamBookLoader: FontLoader { > source: "fonts/Gotham-Book.otf" > } > > property FontLoader __gothamMediumLoader: FontLoader { > source: "fonts/Gotham-Medium.otf" > } > > ... > } > > and trying to use them with: > > Text { > text: "Foo" > font.family: Style.regularFontFamily > font.weight: Font.Normal > } > > Text { > text: "Foo" > font.family: Style.mediumFontFamily > font.weight: Font.Medium > } > > the Font.Normal seems to work okay, it looks like it's giving me the > Book weight from Gotham-Book.otf, which I want. I guess because the > weight is close numerically (?) > > But what do I do with the Medium weight since the enum value is not > available? If I try Font.Bold I seem to get synthetic emboldening, > which I don't want. > > It seems there's some fixes in 5.6 which will let me use > Font.styleName to match a font by style name, which would be a > workaround [1]. But right now I'm stuck with 5.4.1. > > Thanks in advance for any advice. Wait! It seems I've been saved by the Font.DemiBold enum value. If I use Font.DemiBold (which _is_ available in Qt 5.4.1) like this: font.family: "Gotham" font.weight: Font.DemiBold I can get the Medium weight font, I guess since it's the one closest numerically to DemiBold. And I can keep using: font.family: "Gotham" font.weight: Font.Normal to get the Book weight. So, close call, but all is well. Sorry for the noise! Elvis > > Elvis > > [1] https://codereview.qt-project.org/#/c/112676/ From jhihn at gmx.com Mon Apr 4 16:40:48 2016 From: jhihn at gmx.com (Jason H) Date: Mon, 4 Apr 2016 16:40:48 +0200 Subject: [Interest] Available versions to QML import in older Qt releases? In-Reply-To: References: Message-ID: > I'm working on a product based on Ubuntu 15.10, where Qt 5.4.1 is the > packaged version (I know a more recent Ubuntu is soon to be released, > and an LTS at that, but we're on this version for now). > > Is there an online way to find out which versions of packages I can > import from the QtQuick 2 that comes with 5.4.1, short of downloading > the offline documentation? > > Experimentally I've deduced that > > QtQuick 2.4 > QtQuick.Window 2.2 > QtQuick.Controls 1.3 > QtQuick.Controls.Styles 1.3 > QtQuick.Layouts 1.1 > > are the versions available in 5.4.1 for the packages I'm using, but it > would be great if there was a way to look up/confirm this quickly. > > I know there's older Qt docs at http://doc.qt.io/archives/ , but it > only stretches one version back, to Qt 5.4. QtCreator seems to know what versions are installed, and suggests these via auto-complete. Hijacking this a bit, what is the behavior of imports when a later version is present? What am I missing when my script does an import of a previous version? Am I not getting bug fixes? It would be nice to know what the deltas are between versions, as well as a wildcard for importing whatever the latest and greatest is. Kind of like node's npm where you can spec a version and anything after that version. From nunosantos at imaginando.pt Tue Apr 5 08:44:04 2016 From: nunosantos at imaginando.pt (Nuno Santos) Date: Tue, 5 Apr 2016 07:44:04 +0100 Subject: [Interest] QSGRenderThread crashed: libGPUSupportMercury.dylib`gpus_ReturnGuiltyForHardwareRestart: Message-ID: <4D1838BC-8206-4695-A2F7-D75E3491E0AD@imaginando.pt> Hi, I have just discovered something that might be an unpredicted bug in Qt iOS. I have an app which makes uses of inter app audio. Therefore, this app should be able to jump and forth from host to app and vice versa. It should be also able to make the jump with the lowest overhead as possible to avoid audio glitches. Right now, what is concerning me the most is that after a couple of jumps, which sometimes can be more or less, the app crashes. I was able to crash it while running the debugger and this is what appeared in the stack trace: libGPUSupportMercury.dylib`gpus_ReturnGuiltyForHardwareRestart: 0x18ef91f1c <+0>: orr w8, wzr, #0x1 0x18ef91f20 <+4>: movz w9, #0xdead, lsl #16 0x18ef91f24 <+8>: movk w9, #0xbeef -> 0x18ef91f28 <+12>: str w9, [x8] 0x18ef91f2c <+16>: ret The crashes thread was the QSGRenderThread. This seems to be a critical bug for apps that need to behave this way, which I consider that is any professional audio app nowadays. This happens on both Qt 5.5.1 and 5.6 Before filling a bug report I would like to share this info with the list and have some insights about it. Nuno From nunosantos at imaginando.pt Tue Apr 5 01:27:26 2016 From: nunosantos at imaginando.pt (Nuno Santos) Date: Tue, 5 Apr 2016 00:27:26 +0100 Subject: [Interest] QSGRenderThread crashed: libGPUSupportMercury.dylib`gpus_ReturnGuiltyForHardwareRestart: Message-ID: <1FC95C8A-3E1F-4202-828B-A36D67E8C0E3@imaginando.pt> Hi, I have just discovered something that might be an unpredicted bug in Qt iOS. I have an app which makes uses of inter app audio. Therefore, this app should be able to jump and forth from host to app and vice versa. It should be also able to make the jump with the lowest overhead as possible to avoid audio glitches. Right now, what is concerning me the most is that after a couple of jumps, which sometimes can be more or less, the app crashes. I was able to crash it while running the debugger and this is what appeared in the stack trace: libGPUSupportMercury.dylib`gpus_ReturnGuiltyForHardwareRestart: 0x18ef91f1c <+0>: orr w8, wzr, #0x1 0x18ef91f20 <+4>: movz w9, #0xdead, lsl #16 0x18ef91f24 <+8>: movk w9, #0xbeef -> 0x18ef91f28 <+12>: str w9, [x8] 0x18ef91f2c <+16>: ret The crashes thread was the QSGRenderThread. This seems to be a critical bug for apps that need to behave this way, which I consider that is any professional audio app nowadays. This happens on both Qt 5.5.1 and 5.6 Before filling a bug report I would like to share this info with the list and have some insights about it. Also, when the app starts I have some UIKit related warning. Not sure if they related with the crash. Since I don’t write UI code for cocoa anymore since using Qt/Qml, I deduce that this warnings come from Qt UIKit layer. 2016-04-05 00:17:37.131 DRC[307:14615] Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. ( "", "" ) Will attempt to recover by breaking constraint Best regards, Nuno From nunosantos at imaginando.pt Tue Apr 5 08:26:43 2016 From: nunosantos at imaginando.pt (Nuno Santos) Date: Tue, 5 Apr 2016 07:26:43 +0100 Subject: [Interest] QSGRenderThread crashed: libGPUSupportMercury.dylib`gpus_ReturnGuiltyForHardwareRestart: Message-ID: <63BECCCC-6BAB-47D0-9AD0-DA08BEFCFC15@imaginando.pt> Hi, I have just discovered something that might be an unpredicted bug in Qt iOS. I have an app which makes uses of inter app audio. Therefore, this app should be able to jump and forth from host to app and vice versa. It should be also able to make the jump with the lowest overhead as possible to avoid audio glitches. Right now, what is concerning me the most is that after a couple of jumps, which sometimes can be more or less, the app crashes. I was able to crash it while running the debugger and this is what appeared in the stack trace: libGPUSupportMercury.dylib`gpus_ReturnGuiltyForHardwareRestart: 0x18ef91f1c <+0>: orr w8, wzr, #0x1 0x18ef91f20 <+4>: movz w9, #0xdead, lsl #16 0x18ef91f24 <+8>: movk w9, #0xbeef -> 0x18ef91f28 <+12>: str w9, [x8] 0x18ef91f2c <+16>: ret The crashes thread was the QSGRenderThread. This seems to be a critical bug for apps that need to behave this way, which I consider that is any professional audio app nowadays. This happens on both Qt 5.5.1 and 5.6 Before filling a bug report I would like to share this info with the list and have some insights about it. Also, when the app starts I have some UIKit related warning. Not sure if they related with the crash. Since I don’t write UI code for cocoa anymore since using Qt/Qml, I deduce that this warnings come from Qt UIKit layer. 2016-04-05 00:17:37.131 DRC[307:14615] Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. ( "", "" ) Will attempt to recover by breaking constraint Best regards, Nuno From rbehm at hushmail.com Tue Apr 5 14:47:05 2016 From: rbehm at hushmail.com (Reinhardt Behm) Date: Tue, 05 Apr 2016 20:47:05 +0800 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <1814221459773717@web30j.yandex.ru> Message-ID: <60dadcb76125c435ec9a41dc91ef98bc@smtp.hushmail.com> On Monday 04 April 2016 16:50:12 Emre Besirik wrote: > > On 04 Apr 2016, at 15:41, Konstantin Tokarev wrote: > >> Well there must be something can be done, Qt Can use Intellij like google > >> did, I know its a little bit more work compared to CLion fork but it is > >> possible.> > > A liitle bit? > > > > That would mean porting of all clang code model code (and maybe other > > parts) into different IDE architecture and integrating all C++ code with > > Java. And it still would be the same clang code model that you don't > > like. > Ok but jetbrains did it, why cant we? > > >> Or at least a plugin for intellij platform maybe? I mean as long as you > >> want to be part of the solution...> > > Well, if CLion gets bigger market share than Visual Studio it might happen > > that VS plugin is dropped in favour of this IDE. > We all know thats not going to happen, why not to have plugins for 2 > different IDEs? What is stops you from doing it? It is all open source and many people are quite happy with QtCreator. If you want it changed do it, or find somebody who will do it and finance it. -- Reinhardt From mitch.curtis at theqtcompany.com Tue Apr 5 14:55:22 2016 From: mitch.curtis at theqtcompany.com (Curtis Mitch) Date: Tue, 5 Apr 2016 12:55:22 +0000 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> Message-ID: From: NoMercy [mailto:nomercy at gmail.com] Sent: Tuesday, 5 April 2016 2:34 PM To: Curtis Mitch Cc: interest at qt-project.org Subject: Re: [Interest] CLion to replace QtCreator? On Tue, Apr 5, 2016 at 1:49 PM, Curtis Mitch > wrote: > I’m sorry to say this but QtCreator is actually eons behind the current IDE trends and technology :( > people are practically begging jetbrains to save themselves from QtCreator (no offense intended but this is the case for many people) > And I think Qt Company should just get rid of the denial of the world start to see beyond horizon and do something, revolutionize QtCreator or just do something like Google did for android studio and embrace/deal with jetbrains ide and fork a CLion custimized for Qt development. I dont see any other way :( Hahaaa! I especially like the “I don’t see any other way” part. Fantastic. Also, very, very cringe-worthy. Telling a company it’s in denial because it doesn’t fork your favourite IDE is... ridiculous. It sounds like you haven’t actually attempted to properly use Qt Creator (e.g. by saying that Locator “only searches for filenames”), and don’t intend on putting in any work yourself, even though it’s an open source project. Hey look I didn't start to offend anybody about their work, but just get some realistic here; I’m not a Qt Creator developer, but if I were, it would be pretty funny to be told I was in denial. What are they in denial about, exactly? 1. Have you even try to read people's comments on that link I've shared? (Yes they are practically begging JetBrains) I did read the bug report, yep. So what if they’re begging JetBrains? Rather than try to shame developers into converting one product into another, why not contribute specific features that you think are missing? Tell your friends commenting on that bug report that they can write a plugin for Qt Creator, and that it’s all open source. 2. Have you ever used ANY JetBrains product before? for how long? then you'll see there the huge difference between JOY of coding and JOB of coding. No, and I have no plans to. I’m not arguing that JetBrains’ product doesn’t have good features. 3. And yes I don't see any other way IF you want to be part of the solution instead of being in denial! Again, can you tell me what I’m in denial of? If I find something lacking with Qt Creator, I file a suggestion or fix it myself if it’s easy enough. That’s being part of the solution. Doing what you’re doing in the way you’re doing it is textbook “being part of the problem”. "and don’t intend on putting in any work yourself, even though it’s an open source project." I would put my work if it would mean something; trying to make such revolutionarising move on the existing QtCreator would practically re-writing it all from scratch while there are more convinient ways such as moving to intellij platform or just simply wrting a plugin for CLion maybe? Why do you have to re-write Creator from scratch? If you have a problem with the auto completion in Creator (or any other specific problem), file a bug report. If you want there to be a plugin for CLion, write one. I’d bet a large sum of money that it’s not going to happen any other way. Plenty of external developers have contributed fixes and even entire plugins to Creator. Regards, Emre Besirik -------------- next part -------------- An HTML attachment was scrubbed... URL: From nomercy at gmail.com Tue Apr 5 15:03:35 2016 From: nomercy at gmail.com (NoMercy) Date: Tue, 5 Apr 2016 16:03:35 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <60dadcb76125c435ec9a41dc91ef98bc@smtp.hushmail.com> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <1814221459773717@web30j.yandex.ru> <60dadcb76125c435ec9a41dc91ef98bc@smtp.hushmail.com> Message-ID: I think after countless agruments in this thread I will try to do that at best I can or find some interested people and help them maybe :( But the thing is that I'm sorry that after some point when 90% of Qt users/developers start to use/see/accept other IDEs as default for Qt development instead of QtCreator when there is a real good alternative, people will feel sorry coming this thread scratching their head and thinking what we have done wrong... after that point winning people back to QtCreator will be hard as hell and countless hours spent developing QtCreator will be in vein because there will be left around 15 people left happy around their closed environment. And people keep saying that it is open source, you do it, why don't you do it etc. well it maybe open source but I think Qt company is payed well considering the license costs, why dont Qt Company do something about it? isn't it Qt Company's official product after all? On Tue, Apr 5, 2016 at 3:47 PM, Reinhardt Behm wrote: > On Monday 04 April 2016 16:50:12 Emre Besirik wrote: > > > On 04 Apr 2016, at 15:41, Konstantin Tokarev > wrote: > > >> Well there must be something can be done, Qt Can use Intellij like > google > > >> did, I know its a little bit more work compared to CLion fork but it > is > > >> possible.> > > > A liitle bit? > > > > > > That would mean porting of all clang code model code (and maybe other > > > parts) into different IDE architecture and integrating all C++ code > with > > > Java. And it still would be the same clang code model that you don't > > > like. > > Ok but jetbrains did it, why cant we? > > > > >> Or at least a plugin for intellij platform maybe? I mean as long as > you > > >> want to be part of the solution...> > > > Well, if CLion gets bigger market share than Visual Studio it might > happen > > > that VS plugin is dropped in favour of this IDE. > > We all know thats not going to happen, why not to have plugins for 2 > > different IDEs? > > What is stops you from doing it? > It is all open source and many people are quite happy with QtCreator. If > you > want it changed do it, or find somebody who will do it and finance it. > > -- > Reinhardt > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > -------------- next part -------------- An HTML attachment was scrubbed... URL: From nomercy at gmail.com Tue Apr 5 15:03:47 2016 From: nomercy at gmail.com (NoMercy) Date: Tue, 5 Apr 2016 16:03:47 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> Message-ID: I see the answers usually offering some workarounds, yes you can do that BUT in a few more steps or in a less pleasent way. Thats where IU/UX design comes in. People don't want extra steps, people don't want to use mouse etc. I observe that most of you guys objecting are don't even see what others are doing or don't even care beyond whats good for your use cases and you get angry when I or other people say things like eons behind while you don't even look what others doing or what are current trends or dont care for UI/UX of your IDE, You don't even now other good IDEs. > Regards, > Emre Besirik > -------------- next part -------------- An HTML attachment was scrubbed... URL: From kde at carewolf.com Tue Apr 5 15:12:14 2016 From: kde at carewolf.com (Allan Sandfeld Jensen) Date: Tue, 5 Apr 2016 15:12:14 +0200 Subject: [Interest] Use Book and Medium weight Gotham font from QML? In-Reply-To: References: Message-ID: <201604051512.14545.kde@carewolf.com> On Monday 04 April 2016, Elvis Stansvik wrote: > Hi all, > > I'm targeting Qt 5.4.1 and it seems there's no Font.Medium enumeration > value there? I get: > > Unable to assign [undefined] to int > > The font we're using for this app is our company font, which is Gotham > from Hoefler & Co. The weights we need in the UI are Book and Medium, > each defined in its own .otf (but under the same family name > "Gotham"), as shown by the fc-scan output below: > > estan at newton:~$ fc-scan Gotham-Book.otf > Pattern has 22 elts (size 32) > family: "Gotham"(s) "Gotham Book"(s) > familylang: "en"(s) "en"(s) > style: "Book"(s) "Regular"(s) > stylelang: "en"(s) "en"(s) > fullname: "Gotham-Book"(s) > fullnamelang: "en"(s) > slant: 0(i)(s) > weight: 50(i)(s) > width: 100(i)(s) > foundry: "unknown"(s) > file: "Gotham-Book.otf"(s) > index: 0(i)(s) > outline: True(s) > scalable: True(s) > charset: > 0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffdfcfaf > ffffffff ffffffff > 0001: cffffcff fec3fccf cffff1ff 7ffffc3f 00040000 00000000 > 00000000 fc000000 > 0002: 03000000 00000000 02000000 00000000 00000000 00000000 > 3f0000c0 00000000 > 0003: 00000000 00000040 00000000 00000000 00000000 00000000 > 00000000 00000000 > 000e: 00000000 80000000 00000000 00000000 00000000 00000000 > 00000000 00000000 > 001e: 00000000 00000000 00000000 00000000 0000003f 00000000 > 00000000 000c0000 > 0020: 771806bc 06010047 00000010 03f10000 000003ff 00021742 > 00000000 00000000 > 0021: 00800000 00000005 7ff80000 00000000 00000000 00000000 > 00000000 00000000 > 0022: 00040000 00000000 00000000 00000000 00000000 00000000 > 00000000 00000000 > 00fb: 0000001f 00000000 00000000 00000000 00000000 00000000 > 00000000 00000000 > (s) > lang: > aa|ay|bi|br|bs|ca|ch|co|cs|cy|da|de|en|es|et|eu|fi|fj|fo|fr|fur|fy|gd|gl|g > v|ho|hr|hu|ia|id|ie|io|is|it|la|lb|lt|lv|mg|mh|mt|nb|nds|nl|nn|no|nr|nso|ny > |oc|om|pl|pt|rm|sk|sl|sma|smj|so|sq|ss|st|sv|sw|tk|tl|tn|tr|ts|uz|vo|vot|wa > |wen|xh|yap|zu|an|crh|csb|fil|hsb|ht|jv|kj|ku-tr|kwm|li|ms|ng|pap-an|pap-aw > |rn|rw|sc|sg|sn|su|za(s) fontversion: 144179(i)(s) > capability: "otlayout: otlayout:latn"(s) > fontformat: "CFF"(s) > decorative: False(s) > hash: > "sha256:3083f405cb35b16e06d0108836dd6552630c85c7fc5412a5de724e57e6fd7348"( > s) postscriptname: "Gotham-Book"(s) > > estan at newton:~$ fc-scan Gotham-Medium.otf > Pattern has 22 elts (size 32) > family: "Gotham"(s) "Gotham Medium"(s) > familylang: "en"(s) "en"(s) > style: "Medium"(s) "Regular"(s) > stylelang: "en"(s) "en"(s) > fullname: "Gotham-Medium"(s) > fullnamelang: "en"(s) > slant: 0(i)(s) > weight: 80(i)(s) > width: 100(i)(s) > foundry: "unknown"(s) > file: "Gotham-Medium.otf"(s) > index: 0(i)(s) > outline: True(s) > scalable: True(s) > charset: > 0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffdfcfaf > ffffffff ffffffff > 0001: cffffcff fec3fccf cffff1ff 7ffffc3f 00040000 00000000 > 00000000 fc000000 > 0002: 03000000 00000000 02000000 00000000 00000000 00000000 > 3f0000c0 00000000 > 0003: 00000000 00000040 00000000 00000000 00000000 00000000 > 00000000 00000000 > 000e: 00000000 80000000 00000000 00000000 00000000 00000000 > 00000000 00000000 > 001e: 00000000 00000000 00000000 00000000 0000003f 00000000 > 00000000 000c0000 > 0020: 771806bc 06010047 00000010 03f10000 000003ff 00021742 > 00000000 00000000 > 0021: 00800000 00000005 7ff80000 00000000 00000000 00000000 > 00000000 00000000 > 0022: 00040000 00000000 00000000 00000000 00000000 00000000 > 00000000 00000000 > 00fb: 0000001f 00000000 00000000 00000000 00000000 00000000 > 00000000 00000000 > (s) > lang: > aa|ay|bi|br|bs|ca|ch|co|cs|cy|da|de|en|es|et|eu|fi|fj|fo|fr|fur|fy|gd|gl|g > v|ho|hr|hu|ia|id|ie|io|is|it|la|lb|lt|lv|mg|mh|mt|nb|nds|nl|nn|no|nr|nso|ny > |oc|om|pl|pt|rm|sk|sl|sma|smj|so|sq|ss|st|sv|sw|tk|tl|tn|tr|ts|uz|vo|vot|wa > |wen|xh|yap|zu|an|crh|csb|fil|hsb|ht|jv|kj|ku-tr|kwm|li|ms|ng|pap-an|pap-aw > |rn|rw|sc|sg|sn|su|za(s) fontversion: 144179(i)(s) > capability: "otlayout: otlayout:latn"(s) > fontformat: "CFF"(s) > decorative: False(s) > hash: > "sha256:bc397773a547218b8c334f9a40ea8e58f55198fab6095b103e598634fe273450"( > s) postscriptname: "Gotham-Medium"(s) > > estan at newton:~/orexplore/doc/GrafiskProfil/Typsnitt/Gotham$ > > And I'm loading these as follows: > > Style { > readonly property string mediumFontFamily: __gothamMediumLoader.name > readonly property string regularFontFamily: __gothamBookLoader.name > > property FontLoader __gothamBookLoader: FontLoader { > source: "fonts/Gotham-Book.otf" > } > > property FontLoader __gothamMediumLoader: FontLoader { > source: "fonts/Gotham-Medium.otf" > } > > ... > } > > and trying to use them with: > > Text { > text: "Foo" > font.family: Style.regularFontFamily > font.weight: Font.Normal > } > > Text { > text: "Foo" > font.family: Style.mediumFontFamily > font.weight: Font.Medium > } > Have you tried: font.styleName: "Medium" styleName is the most direct way to select a specific style of a font without having to go through matching of style property which may be wrongly encoded in the font . Best regards `Allan From nomercy at gmail.com Tue Apr 5 15:19:42 2016 From: nomercy at gmail.com (NoMercy) Date: Tue, 5 Apr 2016 16:19:42 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> Message-ID: On Tue, Apr 5, 2016 at 3:55 PM, Curtis Mitch wrote: > > > > > *From:* NoMercy [mailto:nomercy at gmail.com] > *Sent:* Tuesday, 5 April 2016 2:34 PM > *To:* Curtis Mitch > *Cc:* interest at qt-project.org > *Subject:* Re: [Interest] CLion to replace QtCreator? > > > > > > On Tue, Apr 5, 2016 at 1:49 PM, Curtis Mitch < > mitch.curtis at theqtcompany.com> wrote: > > > I’m sorry to say this but QtCreator is actually eons behind the current > IDE trends and technology :( > > > > > people are practically begging jetbrains to save themselves from > QtCreator (no offense intended but this is the case for many people) > > > > > And I think Qt Company should just get rid of the denial of the world > start to see beyond horizon and do something, revolutionize QtCreator or > just do something like Google did for android studio and embrace/deal with > jetbrains ide and fork a CLion custimized for Qt development. I dont see > any other way :( > > > > Hahaaa! I especially like the “I don’t see any other way” part. Fantastic. > Also, very, very cringe-worthy. Telling a company it’s in denial because it > doesn’t fork your favourite IDE is... ridiculous. It sounds like you > haven’t actually attempted to properly use Qt Creator (e.g. by saying that > Locator “only searches for filenames”), and don’t intend on putting in any > work yourself, even though it’s an open source project. > > > > > > Hey look I didn't start to offend anybody about their work, but just get > some realistic here; > > > > I’m not a Qt Creator developer, but if I were, it would be pretty funny to > be told I was in denial. What are they in denial about, exactly? > That QtCreator is eons behind current technology and trends, isn't it very obvious? I would say just checkout features of ANY JetBrains product but you don't even intend to so you are in therefor denial. (Not personally you but many people who are objecting these) > > > 1. Have you even try to read people's comments on that link I've shared? > (Yes they are practically begging JetBrains) > > > > I did read the bug report, yep. So what if they’re begging JetBrains? > Rather than try to shame developers into converting one product into > another, why not contribute specific features that you think are missing? > Tell your friends commenting on that bug report that they can write a > plugin for Qt Creator, and that it’s all open source. > I'm not trying to shame anyone, I'm simply trying to wake people up from their sleep, trying to convince to look around instead of just accept what you already have... > > > 2. Have you ever used ANY JetBrains product before? for how long? then > you'll see there the huge difference between JOY of coding and JOB of > coding. > > > > No, and I have no plans to. I’m not arguing that JetBrains’ product > doesn’t have good features. > If you accept that JetBrains products have some good features why not implement those SOME of good features to our QtCreator? > > > 3. And yes I don't see any other way IF you want to be part of the > solution instead of being in denial! > > > > Again, can you tell me what I’m in denial of? If I find something lacking > with Qt Creator, I file a suggestion or fix it myself if it’s easy enough. > That’s being part of the solution. Doing what you’re doing in the way > you’re doing it is textbook “being part of the problem”. > The problem is the lacking things wont come without nothing short of a revolution. it would take eons just to write whats lacking in QtCreator (hence eons behind others) thats why I suggested a plugin or a fresh start with intellij platform. besides it is The Official Qt Company product we are talking about, while it is good to have the product as open source, relying solely to contributors for improvement aspecially a revolutionary and big ones as these is not right. Qt Company should step in, I believe they are making enough money... > > > "and don’t intend on putting in any work yourself, even though it’s an > open source project." > > I would put my work if it would mean something; trying to make such > revolutionarising move on the existing QtCreator would practically > re-writing it all from scratch while there are more convinient ways such as > moving to intellij platform or just simply wrting a plugin for CLion maybe? > > > > Why do you have to re-write Creator from scratch? > > > If you have a problem with the auto completion in Creator (or any other > specific problem), file a bug report. > see my previous comment Regards, Emre Besirik -------------- next part -------------- An HTML attachment was scrubbed... URL: From mitch.curtis at theqtcompany.com Tue Apr 5 15:20:27 2016 From: mitch.curtis at theqtcompany.com (Curtis Mitch) Date: Tue, 5 Apr 2016 13:20:27 +0000 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> Message-ID: From: Interest [mailto:interest-bounces+mitch.curtis=theqtcompany.com at qt-project.org] On Behalf Of NoMercy Sent: Tuesday, 5 April 2016 3:04 PM To: interest at qt-project.org Subject: Re: [Interest] CLion to replace QtCreator? I see the answers usually offering some workarounds, yes you can do that BUT in a few more steps or in a less pleasent way. Thats where IU/UX design comes in. People don't want extra steps, people don't want to use mouse etc. So, file bug reports. I observe that most of you guys objecting are don't even see what others are doing or don't even care beyond whats good for your use cases and you get angry when I or other people say things like eons behind while you don't even look what others doing or what are current trends or dont care for UI/UX of your IDE, You don't even now other good IDEs. New features are constantly being added to Creator, and they’re often from suggestions from users who see something in another IDE that is missing in Creator. The way to get a feature in is to suggest it (formally, via Jira) or write it yourself. The way to not get a feature in is to propose that Creator be rewritten and “replaced by CLion”. For the record, I’m not angry, I just find the way you’ve approached the whole situation amusing. So because I don’t know of JetBrains’ IDE, I don’t know of any other good IDEs? Ok, if you say so! :) Regards, Emre Besirik -------------- next part -------------- An HTML attachment was scrubbed... URL: From sylvain.pointeau at gmail.com Tue Apr 5 15:20:56 2016 From: sylvain.pointeau at gmail.com (Sylvain Pointeau) Date: Tue, 5 Apr 2016 15:20:56 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> Message-ID: Hello, Why are you not able to use CLion? it is cmake based project, it should work with Qt pretty well, shouldn't it? Best regards, Sylvain On Tue, Apr 5, 2016 at 3:03 PM, NoMercy wrote: > I see the answers usually offering some workarounds, yes you can do that > BUT in a few more steps or in a less pleasent way. Thats where IU/UX design > comes in. People don't want extra steps, people don't want to use mouse etc. > I observe that most of you guys objecting are don't even see what others > are doing or don't even care beyond whats good for your use cases and you > get angry when I or other people say things like eons behind while you > don't even look what others doing or what are current trends or dont care > for UI/UX of your IDE, You don't even now other good IDEs. > > > >> Regards, >> Emre Besirik >> > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From nomercy at gmail.com Tue Apr 5 15:23:01 2016 From: nomercy at gmail.com (NoMercy) Date: Tue, 5 Apr 2016 16:23:01 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> Message-ID: On Tue, Apr 5, 2016 at 4:20 PM, Sylvain Pointeau wrote: > Hello, > > Why are you not able to use CLion? it is cmake based project, it should > work with Qt pretty well, shouldn't it? > > Best regards, > Sylvain > > Yes I can but there are still a lot of missing things :( -------------- next part -------------- An HTML attachment was scrubbed... URL: From sylvain.pointeau at gmail.com Tue Apr 5 15:25:49 2016 From: sylvain.pointeau at gmail.com (Sylvain Pointeau) Date: Tue, 5 Apr 2016 15:25:49 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> Message-ID: On Tue, Apr 5, 2016 at 3:23 PM, NoMercy wrote: > > On Tue, Apr 5, 2016 at 4:20 PM, Sylvain Pointeau < > sylvain.pointeau at gmail.com> wrote: > > Why are you not able to use CLion? it is cmake based project, it should >> work with Qt pretty well, shouldn't it? >> > > Yes I can but there are still a lot of missing things :( > What is missing exactly? -------------- next part -------------- An HTML attachment was scrubbed... URL: From nomercy at gmail.com Tue Apr 5 15:26:48 2016 From: nomercy at gmail.com (NoMercy) Date: Tue, 5 Apr 2016 16:26:48 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <1814221459773717@web30j.yandex.ru> <60dadcb76125c435ec9a41dc91ef98bc@smtp.hushmail.com> Message-ID: The thing is stuff that needs to chage (i think) can't just be covered by some feature requests, tons of things need to change. There should be a team of UI/UX experts who should reshape the whole thing. :( On Tue, Apr 5, 2016 at 4:16 PM, Nikita Krupenko wrote: > 2016-04-05 16:03 GMT+03:00 NoMercy : > > I think after countless agruments in this thread I will try to do that at > > best I can or find some interested people and help them maybe :( > > But the thing is that I'm sorry that after some point when 90% of Qt > > users/developers start to use/see/accept other IDEs as default for Qt > > development instead of QtCreator when there is a real good alternative, > > people will feel sorry coming this thread scratching their head and > thinking > > what we have done wrong... after that point winning people back to > QtCreator > > will be hard as hell and countless hours spent developing QtCreator will > be > > in vein because there will be left around 15 people left happy around > their > > closed environment. > > > > And people keep saying that it is open source, you do it, why don't you > do > > it etc. well it maybe open source but I think Qt company is payed well > > considering the license costs, why dont Qt Company do something about it? > > isn't it Qt Company's official product after all? > > If you want to change something in QtCreator, you can use two > different approaches: > > 1. "Hey, your IDE is wretched, I don't like it. Throw away all your > code and create new IDE from scratch. Or even better, don't waste time > and add Qt support to my favorite IDE. And I don't want to offend > somebody, just saying that it's rubbish." > > 2. "Hey, there is a good IDE xxx. It has nice features, that are > missing in QtCreator: feature1, feature2, etc. What do you think about > adding this features? I can create tickets in JIRA if you are agree > that it would be good to have this features in QtC (or even volunteer > to implement some of them)." > > I think, the second approach more constructive. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From nomercy at gmail.com Tue Apr 5 15:28:11 2016 From: nomercy at gmail.com (NoMercy) Date: Tue, 5 Apr 2016 16:28:11 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> Message-ID: Check out the bug report link in first mail. Regards, Emre Besirik On Tue, Apr 5, 2016 at 4:25 PM, Sylvain Pointeau wrote: > > On Tue, Apr 5, 2016 at 3:23 PM, NoMercy wrote: > >> >> On Tue, Apr 5, 2016 at 4:20 PM, Sylvain Pointeau < >> sylvain.pointeau at gmail.com> wrote: >> >> Why are you not able to use CLion? it is cmake based project, it should >>> work with Qt pretty well, shouldn't it? >>> >> >> Yes I can but there are still a lot of missing things :( >> > > What is missing exactly? > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jerome.archlinux at gmail.com Tue Apr 5 15:30:15 2016 From: jerome.archlinux at gmail.com (=?UTF-8?Q?J=c3=a9r=c3=b4me_Lanteri?=) Date: Tue, 5 Apr 2016 20:30:15 +0700 Subject: [Interest] try to resolve problem with black screen with "camera" example from Qt official examples Message-ID: <5703BDE7.8090501@gmail.com> Hi, I tested and try to resolve from 3 month ago a problem with video and qt5. I have the same problem since qt5 (and now qt5.6 doesn't resolve the problem). When i start the exemple "Camera" (the QML ones are working fine, not the "Qt widget/C++" one, also no one tell me why this difference), the camera is well recognized, the recording works, but the screen who has to show the image from the camera show a black screen. No one, from the forum or from irc on qt or from archlinux could/would help me for find to resolve this problem. I need help, i failed to resolve it too. the output from terminal is: Unable to query the parameter info: "Argument invalide" Unable to query the parameter info: "Argument invalide" Unable to query the parameter info: "Argument invalide" Unable to query the parameter info: "Argument invalide" Unable to query the parameter info: "Argument invalide" Unable to query the parameter info: "Argument invalide" libva info: VA-API version 0.39.0 libva info: va_getDriverName() returns -1 libva error: va_getDriverName() failed with unknown libva error,driver_name=(null) libva info: VA-API version 0.39.0 libva info: va_getDriverName() returns -1 libva error: va_getDriverName() failed with unknown libva error,driver_name=(null) libva info: VA-API version 0.39.0 libva info: va_getDriverName() returns 0 libva info: Trying to open /usr/lib/dri/i965_drv_video.so libva info: Found init function __vaDriverInit_0_39 libva info: va_openDriver() returns 0 libva info: VA-API version 0.39.0 libva info: va_getDriverName() returns 0 libva info: Trying to open /usr/lib/dri/i965_drv_video.so libva info: Found init function __vaDriverInit_0_39 libva info: va_openDriver() returns 0 Unable to query the parameter info: "Argument invalide" Unable to query the parameter info: "Argument invalide" CameraBin error: "failed to validate source buffer" CameraBin error: "Erreur interne de flux de données." CameraBin error: "Erreur interne de flux de données." my distro is archlinux (64bits) my GPU is from the mobo intel CPU i7 (HD4600) lspci | grep VGA 00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06) drivers installed: xf86-video-intel 1:2.99.917+587+gc186d4d-1 libva-intel-driver 1.7.0-1 mesa 11.1.2-1 intel-ucode 20151106-1 (and well mounted on boot with initramfs image) intel-tbb 4.4_20160128-1 libvdpau-va-gl 0.3.6-1 gstreamermm 1.4.3-2 qt5-gstreamer 1.2.0-2 phonon-qt5-gstreamer 4.8.2-4 gstreamer0.10-good 0.10.31-10 gstreamer0.10-good-plugins 0.10.31-10 gstreamer0.10-ffmpeg 0.10.13-2 gstreamer-vaapi 1.6.0-1 gstreamer 1.6.3-1 gst-libav 1.6.3-3 gst-plugins-good 1.6.3-1 gstreamer-vaapi 1.6.0-1 lib32-mesa cat /etc/X11/xorg.conf.d/20_intel.conf Section "Device" Identifier "Intel Graphics" Driver "intel" Option "DRI" "false" Option "TearFree" "true" EndSection (DRI to 3 has same result) sudo lshw -c video description: VGA compatible controller produit: Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller fabriquant: Intel Corporation identifiant matériel: 2 information bus: pci at 0000:00:02.0 version: 06 bits: 64 bits horloge: 33MHz fonctionnalités: msi pm vga_controller bus_master cap_list rom configuration: driver=i915 latency=0 ressources: irq:46 mémoire:ef400000-ef7fffff mémoire:c0000000-cfffffff portE/S:f000(taille=64) From nunosantos at imaginando.pt Tue Apr 5 15:34:35 2016 From: nunosantos at imaginando.pt (Nuno Santos) Date: Tue, 5 Apr 2016 14:34:35 +0100 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> Message-ID: <1AF8E12B-8125-4D1C-9326-7BD288D19394@imaginando.pt> > On 05 Apr 2016, at 14:19, NoMercy wrote: > > people are practically begging jetbrains to save themselves from QtCreator (no offense intended but this is the case for many people) Sorry to interfere here but I couldn’t read this without sharing my thoughts. Qt Creator is simply the most straightforward IDE around. All IDE based in Java simply suck because they are all slow like a turtle. I personally hate any kind of Java based software because of the performance impact. It is also a paradox a JET brain software using Java to support it. A JET brain cannot wait for Java to render. :) -------------- next part -------------- An HTML attachment was scrubbed... URL: From nomercy at gmail.com Tue Apr 5 15:38:49 2016 From: nomercy at gmail.com (NoMercy) Date: Tue, 5 Apr 2016 16:38:49 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <1AF8E12B-8125-4D1C-9326-7BD288D19394@imaginando.pt> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> <1AF8E12B-8125-4D1C-9326-7BD288D19394@imaginando.pt> Message-ID: I totally disagree with you here, JB products are way faster in code completion for instance and WAAAAY smarter... On Tue, Apr 5, 2016 at 4:34 PM, Nuno Santos wrote: > On 05 Apr 2016, at 14:19, NoMercy wrote: > > people are practically begging jetbrains to save themselves from QtCreator > (no offense intended but this is the case for many people) > > > Sorry to interfere here but I couldn’t read this without sharing my > thoughts. Qt Creator is simply the most straightforward IDE around. > > All IDE based in Java simply suck because they are all slow like a turtle. > I personally hate any kind of Java based software because of the > performance impact. > > It is also a paradox a JET brain software using Java to support it. A JET > brain cannot wait for Java to render. :) > > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From andre at familiesomers.nl Tue Apr 5 15:39:39 2016 From: andre at familiesomers.nl (=?UTF-8?Q?Andr=c3=a9_Somers?=) Date: Tue, 5 Apr 2016 15:39:39 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> Message-ID: <5703C01B.6040801@familiesomers.nl> Op 05/04/2016 om 15:23 schreef NoMercy: > > On Tue, Apr 5, 2016 at 4:20 PM, Sylvain Pointeau > > wrote: > > Hello, > > Why are you not able to use CLion? it is cmake based project, it > should work with Qt pretty well, shouldn't it? > > Best regards, > Sylvain > > > Yes I can but there are still a lot of missing things :( > So, may I conclude it is not all that brilliant after all then? If you think CLion is better, use that. If you think Creator is suits your needs better, use that. I don't care either way. If you use either but see a feature in the other that you really like, contribute it or at least file a suggestion for it to be added. Bitching in mailing lists isn't going to have much effect. General tip: most people won't take arguments such as "X is eons behind" or "you are in denial" or you should seriously try product Y and if you don't you don't know what you are talking about" (while they are pretty happy with what they have) seriously. There are, eh, more effictive ways to discuss and convince others. André -------------- next part -------------- An HTML attachment was scrubbed... URL: From andre at familiesomers.nl Tue Apr 5 15:41:22 2016 From: andre at familiesomers.nl (=?UTF-8?Q?Andr=c3=a9_Somers?=) Date: Tue, 5 Apr 2016 15:41:22 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> Message-ID: <5703C082.9050503@familiesomers.nl> Op 05/04/2016 om 15:28 schreef NoMercy: > Check out the bug report link in first mail. > > So, start contributing to CLion... Why do you need Creator to be effectively dumped for that? André From nomercy at gmail.com Tue Apr 5 15:49:09 2016 From: nomercy at gmail.com (Emre Besirik) Date: Tue, 5 Apr 2016 16:49:09 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <5703C082.9050503@familiesomers.nl> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> <5703C082.9050503@familiesomers.nl> Message-ID: <29D7BC8A-3A35-4529-A573-919F1FDDD9AE@gmail.com> > On 05 Apr 2016, at 16:41, André Somers wrote: > > > > Op 05/04/2016 om 15:28 schreef NoMercy: >> Check out the bug report link in first mail. >> >> > So, start contributing to CLion... Why do you need Creator to be effectively dumped for that? > > André I’m really thinking about it actually but I don’t want QtCreator contributions to go in vein and I think it will come to a point where no one will use it anymore in someday :( Python has its own IDE right? who uses it actually? Regards, Emre Beşirik nomercy at gmail.com From mitch.curtis at theqtcompany.com Tue Apr 5 15:53:31 2016 From: mitch.curtis at theqtcompany.com (Curtis Mitch) Date: Tue, 5 Apr 2016 13:53:31 +0000 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> Message-ID: From: NoMercy [mailto:nomercy at gmail.com] Sent: Tuesday, 5 April 2016 3:20 PM To: Curtis Mitch Cc: interest at qt-project.org Subject: Re: [Interest] CLion to replace QtCreator? On Tue, Apr 5, 2016 at 3:55 PM, Curtis Mitch > wrote: From: NoMercy [mailto:nomercy at gmail.com] Sent: Tuesday, 5 April 2016 2:34 PM To: Curtis Mitch > Cc: interest at qt-project.org Subject: Re: [Interest] CLion to replace QtCreator? On Tue, Apr 5, 2016 at 1:49 PM, Curtis Mitch > wrote: > I’m sorry to say this but QtCreator is actually eons behind the current IDE trends and technology :( > people are practically begging jetbrains to save themselves from QtCreator (no offense intended but this is the case for many people) > And I think Qt Company should just get rid of the denial of the world start to see beyond horizon and do something, revolutionize QtCreator or just do something like Google did for android studio and embrace/deal with jetbrains ide and fork a CLion custimized for Qt development. I dont see any other way :( Hahaaa! I especially like the “I don’t see any other way” part. Fantastic. Also, very, very cringe-worthy. Telling a company it’s in denial because it doesn’t fork your favourite IDE is... ridiculous. It sounds like you haven’t actually attempted to properly use Qt Creator (e.g. by saying that Locator “only searches for filenames”), and don’t intend on putting in any work yourself, even though it’s an open source project. Hey look I didn't start to offend anybody about their work, but just get some realistic here; I’m not a Qt Creator developer, but if I were, it would be pretty funny to be told I was in denial. What are they in denial about, exactly? That QtCreator is eons behind current technology and trends, isn't it very obvious? I would say just checkout features of ANY JetBrains product but you don't even intend to so you are in therefor denial. (Not personally you but many people who are objecting these) No one from The Qt Company had even replied before you told them that they’re in denial. The others who have replied are not employees of The Qt Company. They were also suggesting ways to achieve the things that you said were missing, not saying that there isn’t room for improvement. So, to summarise, you’re telling random people on a mailing list that they’re in denial over something that they never denied. 1. Have you even try to read people's comments on that link I've shared? (Yes they are practically begging JetBrains) I did read the bug report, yep. So what if they’re begging JetBrains? Rather than try to shame developers into converting one product into another, why not contribute specific features that you think are missing? Tell your friends commenting on that bug report that they can write a plugin for Qt Creator, and that it’s all open source. I'm not trying to shame anyone, I'm simply trying to wake people up from their sleep, trying to convince to look around instead of just accept what you already have... Then you need to reconsider the way you communicate, because the replies you’re getting are a direct result of talking like you’re owed the world, when, in reality, you’ve put in no effort (be it Jira suggestions or patches) nor paid a dollar towards what you’re asking. I would be hard pressed to think of a less constructive way of generating interest in the things that you want than wording an email in the manner you have. 2. Have you ever used ANY JetBrains product before? for how long? then you'll see there the huge difference between JOY of coding and JOB of coding. No, and I have no plans to. I’m not arguing that JetBrains’ product doesn’t have good features. If you accept that JetBrains products have some good features why not implement those SOME of good features to our QtCreator? It seems you’re not getting the point. 3. And yes I don't see any other way IF you want to be part of the solution instead of being in denial! Again, can you tell me what I’m in denial of? If I find something lacking with Qt Creator, I file a suggestion or fix it myself if it’s easy enough. That’s being part of the solution. Doing what you’re doing in the way you’re doing it is textbook “being part of the problem”. The problem is the lacking things wont come without nothing short of a revolution. it would take eons just to write whats lacking in QtCreator (hence eons behind others) thats why I suggested a plugin or a fresh start with intellij platform. besides it is The Official Qt Company product we are talking about, while it is good to have the product as open source, relying solely to contributors for improvement aspecially a revolutionary and big ones as these is not right. Qt Company should step in, I believe they are making enough money... Oh dear. "and don’t intend on putting in any work yourself, even though it’s an open source project." I would put my work if it would mean something; trying to make such revolutionarising move on the existing QtCreator would practically re-writing it all from scratch while there are more convinient ways such as moving to intellij platform or just simply wrting a plugin for CLion maybe? Why do you have to re-write Creator from scratch? If you have a problem with the auto completion in Creator (or any other specific problem), file a bug report. see my previous comment I saw it. Regards, Emre Besirik -------------- next part -------------- An HTML attachment was scrubbed... URL: From sylvain.pointeau at gmail.com Tue Apr 5 15:56:48 2016 From: sylvain.pointeau at gmail.com (Sylvain Pointeau) Date: Tue, 5 Apr 2016 15:56:48 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> Message-ID: On Tue, Apr 5, 2016 at 3:28 PM, NoMercy wrote: > Check out the bug report link in first mail. > I checked and the 2 items the most frequently asked are: 1. open .pro files 2. QML editor for 1. I think you can use cmake, it is a little effort, but you will get used to it for 2. maybe jetbrains will implement it one day? you can open a feature request on their side. Best regards, Sylvain -------------- next part -------------- An HTML attachment was scrubbed... URL: From kshegunov at gmail.com Tue Apr 5 15:56:26 2016 From: kshegunov at gmail.com (Nye) Date: Tue, 5 Apr 2016 16:56:26 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <29D7BC8A-3A35-4529-A573-919F1FDDD9AE@gmail.com> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> <5703C082.9050503@familiesomers.nl> <29D7BC8A-3A35-4529-A573-919F1FDDD9AE@gmail.com> Message-ID: > I’m really thinking about it actually but I don’t want QtCreator contributions to go in vein and I think it will come to a point where no one will use it anymore in someday :( Well, the thing is many people aren't so willing to switch IDEs they've worked with for years, even if they admittedly have some small bugs/deficiencies. You certainly haven't convinced me. I don't care much for the C++11 and "everything is auto/lambda" development technique, so I don't need the CLang code model and consequently my creator is fast, stable and has no problem with completion. "Auto" confuses me as much as any code model I suppose. Refactoring is a fancy word for rewriting code, no? So basically you want your IDE to write the methods' skeletons? I'm pretty sure that creator have this although I don't use it. It seems quite faster for me to write it down directly, utilizing hevaily(!) code completion; just works out of the box for me and it's stable as hell. So, finally why would I want to switch to a Java based IDE (I agree with Nuno Santos on the point of Java)? It'd give me what exactly besides the few months I have to invest in learning its tweaks, shortcuts (or remap them) and behavior/UI? Sorry, man, your case is simply crumbling ... Kind regards. On Tue, Apr 5, 2016 at 4:49 PM, Emre Besirik wrote: > > > On 05 Apr 2016, at 16:41, André Somers wrote: > > > > > > > > Op 05/04/2016 om 15:28 schreef NoMercy: > >> Check out the bug report link in first mail. > >> > >> > > So, start contributing to CLion... Why do you need Creator to be > effectively dumped for that? > > > > André > > > I’m really thinking about it actually but I don’t want QtCreator > contributions to go in vein and I think it will come to a point where no > one will use it anymore in someday :( > > Python has its own IDE right? who uses it actually? > > Regards, > Emre Beşirik > nomercy at gmail.com > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > -------------- next part -------------- An HTML attachment was scrubbed... URL: From elvstone at gmail.com Tue Apr 5 16:05:33 2016 From: elvstone at gmail.com (Elvis Stansvik) Date: Tue, 5 Apr 2016 16:05:33 +0200 Subject: [Interest] Use Book and Medium weight Gotham font from QML? In-Reply-To: <201604051512.14545.kde@carewolf.com> References: <201604051512.14545.kde@carewolf.com> Message-ID: 2016-04-05 15:12 GMT+02:00 Allan Sandfeld Jensen : > On Monday 04 April 2016, Elvis Stansvik wrote: >> Hi all, >> >> I'm targeting Qt 5.4.1 and it seems there's no Font.Medium enumeration >> value there? I get: >> >> Unable to assign [undefined] to int >> >> The font we're using for this app is our company font, which is Gotham >> from Hoefler & Co. The weights we need in the UI are Book and Medium, >> each defined in its own .otf (but under the same family name >> "Gotham"), as shown by the fc-scan output below: >> >> estan at newton:~$ fc-scan Gotham-Book.otf >> Pattern has 22 elts (size 32) >> family: "Gotham"(s) "Gotham Book"(s) >> familylang: "en"(s) "en"(s) >> style: "Book"(s) "Regular"(s) >> stylelang: "en"(s) "en"(s) >> fullname: "Gotham-Book"(s) >> fullnamelang: "en"(s) >> slant: 0(i)(s) >> weight: 50(i)(s) >> width: 100(i)(s) >> foundry: "unknown"(s) >> file: "Gotham-Book.otf"(s) >> index: 0(i)(s) >> outline: True(s) >> scalable: True(s) >> charset: >> 0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffdfcfaf >> ffffffff ffffffff >> 0001: cffffcff fec3fccf cffff1ff 7ffffc3f 00040000 00000000 >> 00000000 fc000000 >> 0002: 03000000 00000000 02000000 00000000 00000000 00000000 >> 3f0000c0 00000000 >> 0003: 00000000 00000040 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> 000e: 00000000 80000000 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> 001e: 00000000 00000000 00000000 00000000 0000003f 00000000 >> 00000000 000c0000 >> 0020: 771806bc 06010047 00000010 03f10000 000003ff 00021742 >> 00000000 00000000 >> 0021: 00800000 00000005 7ff80000 00000000 00000000 00000000 >> 00000000 00000000 >> 0022: 00040000 00000000 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> 00fb: 0000001f 00000000 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> (s) >> lang: >> aa|ay|bi|br|bs|ca|ch|co|cs|cy|da|de|en|es|et|eu|fi|fj|fo|fr|fur|fy|gd|gl|g >> v|ho|hr|hu|ia|id|ie|io|is|it|la|lb|lt|lv|mg|mh|mt|nb|nds|nl|nn|no|nr|nso|ny >> |oc|om|pl|pt|rm|sk|sl|sma|smj|so|sq|ss|st|sv|sw|tk|tl|tn|tr|ts|uz|vo|vot|wa >> |wen|xh|yap|zu|an|crh|csb|fil|hsb|ht|jv|kj|ku-tr|kwm|li|ms|ng|pap-an|pap-aw >> |rn|rw|sc|sg|sn|su|za(s) fontversion: 144179(i)(s) >> capability: "otlayout: otlayout:latn"(s) >> fontformat: "CFF"(s) >> decorative: False(s) >> hash: >> "sha256:3083f405cb35b16e06d0108836dd6552630c85c7fc5412a5de724e57e6fd7348"( >> s) postscriptname: "Gotham-Book"(s) >> >> estan at newton:~$ fc-scan Gotham-Medium.otf >> Pattern has 22 elts (size 32) >> family: "Gotham"(s) "Gotham Medium"(s) >> familylang: "en"(s) "en"(s) >> style: "Medium"(s) "Regular"(s) >> stylelang: "en"(s) "en"(s) >> fullname: "Gotham-Medium"(s) >> fullnamelang: "en"(s) >> slant: 0(i)(s) >> weight: 80(i)(s) >> width: 100(i)(s) >> foundry: "unknown"(s) >> file: "Gotham-Medium.otf"(s) >> index: 0(i)(s) >> outline: True(s) >> scalable: True(s) >> charset: >> 0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffdfcfaf >> ffffffff ffffffff >> 0001: cffffcff fec3fccf cffff1ff 7ffffc3f 00040000 00000000 >> 00000000 fc000000 >> 0002: 03000000 00000000 02000000 00000000 00000000 00000000 >> 3f0000c0 00000000 >> 0003: 00000000 00000040 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> 000e: 00000000 80000000 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> 001e: 00000000 00000000 00000000 00000000 0000003f 00000000 >> 00000000 000c0000 >> 0020: 771806bc 06010047 00000010 03f10000 000003ff 00021742 >> 00000000 00000000 >> 0021: 00800000 00000005 7ff80000 00000000 00000000 00000000 >> 00000000 00000000 >> 0022: 00040000 00000000 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> 00fb: 0000001f 00000000 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> (s) >> lang: >> aa|ay|bi|br|bs|ca|ch|co|cs|cy|da|de|en|es|et|eu|fi|fj|fo|fr|fur|fy|gd|gl|g >> v|ho|hr|hu|ia|id|ie|io|is|it|la|lb|lt|lv|mg|mh|mt|nb|nds|nl|nn|no|nr|nso|ny >> |oc|om|pl|pt|rm|sk|sl|sma|smj|so|sq|ss|st|sv|sw|tk|tl|tn|tr|ts|uz|vo|vot|wa >> |wen|xh|yap|zu|an|crh|csb|fil|hsb|ht|jv|kj|ku-tr|kwm|li|ms|ng|pap-an|pap-aw >> |rn|rw|sc|sg|sn|su|za(s) fontversion: 144179(i)(s) >> capability: "otlayout: otlayout:latn"(s) >> fontformat: "CFF"(s) >> decorative: False(s) >> hash: >> "sha256:bc397773a547218b8c334f9a40ea8e58f55198fab6095b103e598634fe273450"( >> s) postscriptname: "Gotham-Medium"(s) >> >> estan at newton:~/orexplore/doc/GrafiskProfil/Typsnitt/Gotham$ >> >> And I'm loading these as follows: >> >> Style { >> readonly property string mediumFontFamily: __gothamMediumLoader.name >> readonly property string regularFontFamily: __gothamBookLoader.name >> >> property FontLoader __gothamBookLoader: FontLoader { >> source: "fonts/Gotham-Book.otf" >> } >> >> property FontLoader __gothamMediumLoader: FontLoader { >> source: "fonts/Gotham-Medium.otf" >> } >> >> ... >> } >> >> and trying to use them with: >> >> Text { >> text: "Foo" >> font.family: Style.regularFontFamily >> font.weight: Font.Normal >> } >> >> Text { >> text: "Foo" >> font.family: Style.mediumFontFamily >> font.weight: Font.Medium >> } >> > Have you tried: > font.styleName: "Medium" > > styleName is the most direct way to select a specific style of a font without > having to go through matching of style property which may be wrongly encoded > in the font . Ah yes, that will probably work. That's what I meant with: "It seems there's some fixes in 5.6 which will let me use Font.styleName to match a font by style name, which would be a workaround [1]. But right now I'm stuck with 5.4.1." Completely understandable if you missed that, sorry for sending such a tirade of e-mails! Elvis > > Best regards > `Allan From nomercy at gmail.com Tue Apr 5 16:18:08 2016 From: nomercy at gmail.com (Emre Besirik) Date: Tue, 5 Apr 2016 17:18:08 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <16982244.LZzAJbfrLn@w541> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <16982244.LZzAJbfrLn@w541> Message-ID: <9755E968-7A86-4800-A6D5-06A20FE3ED19@gmail.com> > On 05 Apr 2016, at 17:08, Guenter Schwann wrote: > > On Tuesday, April 05, 2016 04:19:42 PM NoMercy wrote: >> That QtCreator is eons behind current technology and trends, isn't it very >> obvious? > > No! Absolutely not. > QtCreator is a really great IDE. Very lightweight, but still very powerful. > Simply using the "Esc" button is a single fantastic feature that I haven't > seen elsewhere. > > And for the technology: CLion as well as QtCreator are using clang for the > code model (which is the heart of an IDE). > What other technology do you mean? > > What trends do you see for IDEs? > >> I would say just checkout features of ANY JetBrains product but >> you don't even intend to so you are in therefor denial. (Not personally you >> but many people who are objecting these) > > I haven't used it yet - granted. But I have watched all the CLion releases so > far. > They are looking promising. But I haven't seen any major feature that > QtCreator would lack (C++ only). Some of the lacking features are smart autocomplete maybe, Ctrl+K like search but improved in a better UI, but most lacking part comes in UI/UX Regards, Emre Beşirik nomercy at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From kde at carewolf.com Tue Apr 5 16:24:17 2016 From: kde at carewolf.com (Allan Sandfeld Jensen) Date: Tue, 5 Apr 2016 16:24:17 +0200 Subject: [Interest] Use Book and Medium weight Gotham font from QML? In-Reply-To: References: <201604051512.14545.kde@carewolf.com> Message-ID: <201604051624.17988.kde@carewolf.com> On Tuesday 05 April 2016, Elvis Stansvik wrote: > 2016-04-05 15:12 GMT+02:00 Allan Sandfeld Jensen : > > On Monday 04 April 2016, Elvis Stansvik wrote: > >> Hi all, > >> > >> I'm targeting Qt 5.4.1 and it seems there's no Font.Medium enumeration > >> > >> value there? I get: > >> Unable to assign [undefined] to int > >> > >> The font we're using for this app is our company font, which is Gotham > >> from Hoefler & Co. The weights we need in the UI are Book and Medium, > >> each defined in its own .otf (but under the same family name > >> "Gotham"), as shown by the fc-scan output below: > >> > >> estan at newton:~$ fc-scan Gotham-Book.otf > >> Pattern has 22 elts (size 32) > >> > >> family: "Gotham"(s) "Gotham Book"(s) > >> familylang: "en"(s) "en"(s) > >> style: "Book"(s) "Regular"(s) > >> stylelang: "en"(s) "en"(s) > >> fullname: "Gotham-Book"(s) > >> fullnamelang: "en"(s) > >> slant: 0(i)(s) > >> weight: 50(i)(s) > >> width: 100(i)(s) > >> foundry: "unknown"(s) > >> file: "Gotham-Book.otf"(s) > >> index: 0(i)(s) > >> outline: True(s) > >> scalable: True(s) > >> charset: > >> 0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffdfcfaf > >> > >> ffffffff ffffffff > >> > >> 0001: cffffcff fec3fccf cffff1ff 7ffffc3f 00040000 00000000 > >> > >> 00000000 fc000000 > >> > >> 0002: 03000000 00000000 02000000 00000000 00000000 00000000 > >> > >> 3f0000c0 00000000 > >> > >> 0003: 00000000 00000040 00000000 00000000 00000000 00000000 > >> > >> 00000000 00000000 > >> > >> 000e: 00000000 80000000 00000000 00000000 00000000 00000000 > >> > >> 00000000 00000000 > >> > >> 001e: 00000000 00000000 00000000 00000000 0000003f 00000000 > >> > >> 00000000 000c0000 > >> > >> 0020: 771806bc 06010047 00000010 03f10000 000003ff 00021742 > >> > >> 00000000 00000000 > >> > >> 0021: 00800000 00000005 7ff80000 00000000 00000000 00000000 > >> > >> 00000000 00000000 > >> > >> 0022: 00040000 00000000 00000000 00000000 00000000 00000000 > >> > >> 00000000 00000000 > >> > >> 00fb: 0000001f 00000000 00000000 00000000 00000000 00000000 > >> > >> 00000000 00000000 > >> (s) > >> > >> lang: > >> aa|ay|bi|br|bs|ca|ch|co|cs|cy|da|de|en|es|et|eu|fi|fj|fo|fr|fur|fy|gd|gl > >> |g > >> v|ho|hr|hu|ia|id|ie|io|is|it|la|lb|lt|lv|mg|mh|mt|nb|nds|nl|nn|no|nr|ns > >> o|ny > >> > >> |oc|om|pl|pt|rm|sk|sl|sma|smj|so|sq|ss|st|sv|sw|tk|tl|tn|tr|ts|uz|vo|vot > >> ||wa > >> |wen|xh|yap|zu|an|crh|csb|fil|hsb|ht|jv|kj|ku-tr|kwm|li|ms|ng|pap-an|pa > >> |p-aw rn|rw|sc|sg|sn|su|za(s) fontversion: 144179(i)(s) > >> | > >> capability: "otlayout: otlayout:latn"(s) > >> fontformat: "CFF"(s) > >> decorative: False(s) > >> > >> hash: > >> "sha256:3083f405cb35b16e06d0108836dd6552630c85c7fc5412a5de724e57e6fd7348 > >> "( s) postscriptname: "Gotham-Book"(s) > >> > >> estan at newton:~$ fc-scan Gotham-Medium.otf > >> Pattern has 22 elts (size 32) > >> > >> family: "Gotham"(s) "Gotham Medium"(s) > >> familylang: "en"(s) "en"(s) > >> style: "Medium"(s) "Regular"(s) > >> stylelang: "en"(s) "en"(s) > >> fullname: "Gotham-Medium"(s) > >> fullnamelang: "en"(s) > >> slant: 0(i)(s) > >> weight: 80(i)(s) > >> width: 100(i)(s) > >> foundry: "unknown"(s) > >> file: "Gotham-Medium.otf"(s) > >> index: 0(i)(s) > >> outline: True(s) > >> scalable: True(s) > >> charset: > >> 0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffdfcfaf > >> > >> ffffffff ffffffff > >> > >> 0001: cffffcff fec3fccf cffff1ff 7ffffc3f 00040000 00000000 > >> > >> 00000000 fc000000 > >> > >> 0002: 03000000 00000000 02000000 00000000 00000000 00000000 > >> > >> 3f0000c0 00000000 > >> > >> 0003: 00000000 00000040 00000000 00000000 00000000 00000000 > >> > >> 00000000 00000000 > >> > >> 000e: 00000000 80000000 00000000 00000000 00000000 00000000 > >> > >> 00000000 00000000 > >> > >> 001e: 00000000 00000000 00000000 00000000 0000003f 00000000 > >> > >> 00000000 000c0000 > >> > >> 0020: 771806bc 06010047 00000010 03f10000 000003ff 00021742 > >> > >> 00000000 00000000 > >> > >> 0021: 00800000 00000005 7ff80000 00000000 00000000 00000000 > >> > >> 00000000 00000000 > >> > >> 0022: 00040000 00000000 00000000 00000000 00000000 00000000 > >> > >> 00000000 00000000 > >> > >> 00fb: 0000001f 00000000 00000000 00000000 00000000 00000000 > >> > >> 00000000 00000000 > >> (s) > >> > >> lang: > >> aa|ay|bi|br|bs|ca|ch|co|cs|cy|da|de|en|es|et|eu|fi|fj|fo|fr|fur|fy|gd|gl > >> |g > >> v|ho|hr|hu|ia|id|ie|io|is|it|la|lb|lt|lv|mg|mh|mt|nb|nds|nl|nn|no|nr|ns > >> o|ny > >> > >> |oc|om|pl|pt|rm|sk|sl|sma|smj|so|sq|ss|st|sv|sw|tk|tl|tn|tr|ts|uz|vo|vot > >> ||wa > >> |wen|xh|yap|zu|an|crh|csb|fil|hsb|ht|jv|kj|ku-tr|kwm|li|ms|ng|pap-an|pa > >> |p-aw rn|rw|sc|sg|sn|su|za(s) fontversion: 144179(i)(s) > >> | > >> capability: "otlayout: otlayout:latn"(s) > >> fontformat: "CFF"(s) > >> decorative: False(s) > >> > >> hash: > >> "sha256:bc397773a547218b8c334f9a40ea8e58f55198fab6095b103e598634fe273450 > >> "( s) postscriptname: "Gotham-Medium"(s) > >> > >> estan at newton:~/orexplore/doc/GrafiskProfil/Typsnitt/Gotham$ > >> > >> And I'm loading these as follows: > >> > >> Style { > >> > >> readonly property string mediumFontFamily: __gothamMediumLoader.name > >> readonly property string regularFontFamily: __gothamBookLoader.name > >> > >> property FontLoader __gothamBookLoader: FontLoader { > >> > >> source: "fonts/Gotham-Book.otf" > >> > >> } > >> > >> property FontLoader __gothamMediumLoader: FontLoader { > >> > >> source: "fonts/Gotham-Medium.otf" > >> > >> } > >> > >> ... > >> > >> } > >> > >> and trying to use them with: > >> > >> Text { > >> > >> text: "Foo" > >> font.family: Style.regularFontFamily > >> font.weight: Font.Normal > >> > >> } > >> > >> Text { > >> > >> text: "Foo" > >> font.family: Style.mediumFontFamily > >> font.weight: Font.Medium > >> > >> } > > > > Have you tried: > > font.styleName: "Medium" > > > > styleName is the most direct way to select a specific style of a font > > without having to go through matching of style property which may be > > wrongly encoded in the font . > > Ah yes, that will probably work. That's what I meant with: > > "It seems there's some fixes in 5.6 which will let me use > Font.styleName to match a font by style name, which would be a > workaround [1]. But right now I'm stuck with 5.4.1." > > Completely understandable if you missed that, sorry for sending such a > tirade of e-mails! > Ah, sorry. Yes it is pretty difficult with Qt 5.4, it also doesn't understand the Medium font weight (I think that got added in 5.5). Probably renaming the fonts is the best solution if you can't upgrade Qt. Best Regards `Allan From burak.arslan at arskom.com.tr Tue Apr 5 16:24:26 2016 From: burak.arslan at arskom.com.tr (Burak Arslan) Date: Tue, 5 Apr 2016 17:24:26 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <2327728.0KqbYtay3z@tjmaciei-mobl4> Message-ID: <5703CA9A.6090609@arskom.com.tr> On 04/05/16 13:25, Curtis Mitch wrote: > >> -----Original Message----- >> From: Interest [mailto:interest-bounces+mitch.curtis=theqtcompany.com at qt- >> project.org] On Behalf Of Julius Bullinger >> Sent: Tuesday, 5 April 2016 12:05 PM >> To: interest at qt-project.org >> Subject: Re: [Interest] CLion to replace QtCreator? >> >> On Monday, 4. April 2016 18:23, Thiago Macieira wrote: >>>> 9. Multiple cursors (see the demo on SublimeText's home page - its >> epic, >>>> and Atom badly implements it), >>> Explain. Sounds intriguing. >> It's better shown than explained, see e.g. >> http://i.stack.imgur.com/TMRK3.gif and >> https://packagecontrol.io/readmes/img/d346da37ce3d306f23f960f2a103fbc0f456 >> 2034.gif for examples. >> >> This is the only feature I'm really missing in Qt Creator, and the reason >> I keep Sublime open besides Creator all the time. >> There's pretty basic multi-cursor functionality in Creator, but it's not >> quite as polished as Sublime's. Really, you need to try yourself to see >> how useful it is! > Looks interesting, but I find it odd that that is solely enough to warrant keeping another editor open, because you can easily do it in Creator. For renaming instances of a symbol: Ctrl + Shift + R. For stuff like keywords: good old find and replace! :p You can select a bunch of text first to limit it to a certain block. You know what I learnt from this thread so far? No one reads the QtCreator user manual :) Or I could be using a QtCreator version from the future or something :) So: 1) [Ctrl+K] : some_function ([column][space]some_function) searches all (imported) symbols. 2) My QtCreator knows does the right thing when stumbling upon auto, std::unique_ptr etc and I don't even know which code model I'm using. It "just worked" for me til today. 3) When you use Alt+Shift to block-select you can perform block edit like shown in the gifs above. In Kate, KWrite and friends it's Ctrl+Shift+B to switch selection mode and same principles start to apply there as well. 4) It's just brain-dead to suggest using a non-Qt ide for Qt. Qt is the perfect framework for writing an IDE, irrespective of the language you're aiming for :) JetBrains stuff is only performant in the expense of a huge memory footprint and relatively longer startup time. This is of course fine in the age of multi-gigabyte-memory SSD-backed developer workstations, but don't claim that using Java is NOT a trade-off. No JetBrains product will work as nicely (or at all) with given only the resources that Qt Creator is using. 5) Saying "Hey I'm not trying to be hard on [some people] but they suck" is not less insulting than a straight-up "You suck". I wouldn't expect the community to fall for this. Come on guys, don't feed the troll :) Dear Qt Tooling team, Please ignore the trolls. You are doing a wonderful job. Enjoy the spring in Berlin :) Best, Burak From nomercy at gmail.com Tue Apr 5 16:37:37 2016 From: nomercy at gmail.com (Emre Besirik) Date: Tue, 5 Apr 2016 17:37:37 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <5703CA9A.6090609@arskom.com.tr> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <2327728.0KqbYtay3z@tjmaciei-mobl4> <5703CA9A.6090609@arskom.com.tr> Message-ID: > 4) It's just brain-dead to suggest using a non-Qt ide for Qt. Qt is the > perfect framework for writing an IDE, irrespective of the language > you're aiming for :) JetBrains stuff is only performant in the expense > of a huge memory footprint and relatively longer startup time. This is > of course fine in the age of multi-gigabyte-memory SSD-backed developer > workstations, but don't claim that using Java is NOT a trade-off. I agree here Java is not perfect, it has downsides but after initial startup it definetely pays of > 5) Saying "Hey I'm not trying to be hard on [some people] but they suck" > is not less insulting than a straight-up "You suck". I wouldn't expect > the community to fall for this. Come on guys, don't feed the troll :) No I really do NOT mean to insulting anyone, most likely the problem is that the team behind QtCreator is just no UI/UX expert, that doesn’t mean they are bad at their job! this is no trolling... Keep encoureging previous generation stuff as good and denying improvements is no good to anyone. Regards, Emre Besirik -------------- next part -------------- An HTML attachment was scrubbed... URL: From mitch.curtis at theqtcompany.com Tue Apr 5 17:11:58 2016 From: mitch.curtis at theqtcompany.com (Curtis Mitch) Date: Tue, 5 Apr 2016 15:11:58 +0000 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <5703CA9A.6090609@arskom.com.tr> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <2327728.0KqbYtay3z@tjmaciei-mobl4> <5703CA9A.6090609@arskom.com.tr> Message-ID: > -----Original Message----- > From: Interest [mailto:interest-bounces+mitch.curtis=theqtcompany.com at qt- > project.org] On Behalf Of Burak Arslan > Sent: Tuesday, 5 April 2016 4:24 PM > To: interest at qt-project.org > Subject: Re: [Interest] CLion to replace QtCreator? > > > > On 04/05/16 13:25, Curtis Mitch wrote: > > > >> -----Original Message----- > >> From: Interest > >> [mailto:interest-bounces+mitch.curtis=theqtcompany.com at qt- > >> project.org] On Behalf Of Julius Bullinger > >> Sent: Tuesday, 5 April 2016 12:05 PM > >> To: interest at qt-project.org > >> Subject: Re: [Interest] CLion to replace QtCreator? > >> > >> On Monday, 4. April 2016 18:23, Thiago Macieira wrote: > >>>> 9. Multiple cursors (see the demo on SublimeText's home page - > >>>> its > >> epic, > >>>> and Atom badly implements it), > >>> Explain. Sounds intriguing. > >> It's better shown than explained, see e.g. > >> http://i.stack.imgur.com/TMRK3.gif and > >> https://packagecontrol.io/readmes/img/d346da37ce3d306f23f960f2a103fbc > >> 0f456 > >> 2034.gif for examples. > >> > >> This is the only feature I'm really missing in Qt Creator, and the > >> reason I keep Sublime open besides Creator all the time. > >> There's pretty basic multi-cursor functionality in Creator, but it's > >> not quite as polished as Sublime's. Really, you need to try yourself > >> to see how useful it is! > > Looks interesting, but I find it odd that that is solely enough to > warrant keeping another editor open, because you can easily do it in > Creator. For renaming instances of a symbol: Ctrl + Shift + R. For stuff > like keywords: good old find and replace! :p You can select a bunch of > text first to limit it to a certain block. > > > You know what I learnt from this thread so far? No one reads the QtCreator > user manual :) > > Or I could be using a QtCreator version from the future or something :) > > So: > > 1) [Ctrl+K] : some_function ([column][space]some_function) > > searches all (imported) symbols. > > 2) My QtCreator knows does the right thing when stumbling upon auto, > std::unique_ptr etc and I don't even know which code model I'm using. It > "just worked" for me til today. > > 3) When you use Alt+Shift to block-select you can perform block edit like > shown in the gifs above. > > In Kate, KWrite and friends it's Ctrl+Shift+B to switch selection mode and > same principles start to apply there as well. The GIF seemed to demonstrate some kind of selective editing. I just tried this with the block selection in Creator and it just overwrites the text. Can you give an example of how you can achieve what's done in the GIF using block selection in Creator? > 4) It's just brain-dead to suggest using a non-Qt ide for Qt. Qt is the > perfect framework for writing an IDE, irrespective of the language you're > aiming for :) JetBrains stuff is only performant in the expense of a huge > memory footprint and relatively longer startup time. This is of course > fine in the age of multi-gigabyte-memory SSD-backed developer > workstations, but don't claim that using Java is NOT a trade-off. No > JetBrains product will work as nicely (or at all) with given only the > resources that Qt Creator is using. > > 5) Saying "Hey I'm not trying to be hard on [some people] but they suck" > is not less insulting than a straight-up "You suck". I wouldn't expect the > community to fall for this. Come on guys, don't feed the troll :) > > Dear Qt Tooling team, > > Please ignore the trolls. You are doing a wonderful job. Enjoy the spring > in Berlin :) > > Best, > Burak > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest From elvstone at gmail.com Tue Apr 5 17:20:18 2016 From: elvstone at gmail.com (Elvis Stansvik) Date: Tue, 5 Apr 2016 17:20:18 +0200 Subject: [Interest] Use Book and Medium weight Gotham font from QML? In-Reply-To: <201604051624.17988.kde@carewolf.com> References: <201604051512.14545.kde@carewolf.com> <201604051624.17988.kde@carewolf.com> Message-ID: 2016-04-05 16:24 GMT+02:00 Allan Sandfeld Jensen : > On Tuesday 05 April 2016, Elvis Stansvik wrote: >> 2016-04-05 15:12 GMT+02:00 Allan Sandfeld Jensen : >> > On Monday 04 April 2016, Elvis Stansvik wrote: >> >> Hi all, >> >> >> >> I'm targeting Qt 5.4.1 and it seems there's no Font.Medium enumeration >> >> >> >> value there? I get: >> >> Unable to assign [undefined] to int >> >> >> >> The font we're using for this app is our company font, which is Gotham >> >> from Hoefler & Co. The weights we need in the UI are Book and Medium, >> >> each defined in its own .otf (but under the same family name >> >> "Gotham"), as shown by the fc-scan output below: >> >> >> >> estan at newton:~$ fc-scan Gotham-Book.otf >> >> Pattern has 22 elts (size 32) >> >> >> >> family: "Gotham"(s) "Gotham Book"(s) >> >> familylang: "en"(s) "en"(s) >> >> style: "Book"(s) "Regular"(s) >> >> stylelang: "en"(s) "en"(s) >> >> fullname: "Gotham-Book"(s) >> >> fullnamelang: "en"(s) >> >> slant: 0(i)(s) >> >> weight: 50(i)(s) >> >> width: 100(i)(s) >> >> foundry: "unknown"(s) >> >> file: "Gotham-Book.otf"(s) >> >> index: 0(i)(s) >> >> outline: True(s) >> >> scalable: True(s) >> >> charset: >> >> 0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffdfcfaf >> >> >> >> ffffffff ffffffff >> >> >> >> 0001: cffffcff fec3fccf cffff1ff 7ffffc3f 00040000 00000000 >> >> >> >> 00000000 fc000000 >> >> >> >> 0002: 03000000 00000000 02000000 00000000 00000000 00000000 >> >> >> >> 3f0000c0 00000000 >> >> >> >> 0003: 00000000 00000040 00000000 00000000 00000000 00000000 >> >> >> >> 00000000 00000000 >> >> >> >> 000e: 00000000 80000000 00000000 00000000 00000000 00000000 >> >> >> >> 00000000 00000000 >> >> >> >> 001e: 00000000 00000000 00000000 00000000 0000003f 00000000 >> >> >> >> 00000000 000c0000 >> >> >> >> 0020: 771806bc 06010047 00000010 03f10000 000003ff 00021742 >> >> >> >> 00000000 00000000 >> >> >> >> 0021: 00800000 00000005 7ff80000 00000000 00000000 00000000 >> >> >> >> 00000000 00000000 >> >> >> >> 0022: 00040000 00000000 00000000 00000000 00000000 00000000 >> >> >> >> 00000000 00000000 >> >> >> >> 00fb: 0000001f 00000000 00000000 00000000 00000000 00000000 >> >> >> >> 00000000 00000000 >> >> (s) >> >> >> >> lang: >> >> aa|ay|bi|br|bs|ca|ch|co|cs|cy|da|de|en|es|et|eu|fi|fj|fo|fr|fur|fy|gd|gl >> >> |g >> >> v|ho|hr|hu|ia|id|ie|io|is|it|la|lb|lt|lv|mg|mh|mt|nb|nds|nl|nn|no|nr|ns >> >> o|ny >> >> >> >> |oc|om|pl|pt|rm|sk|sl|sma|smj|so|sq|ss|st|sv|sw|tk|tl|tn|tr|ts|uz|vo|vot >> >> ||wa >> >> |wen|xh|yap|zu|an|crh|csb|fil|hsb|ht|jv|kj|ku-tr|kwm|li|ms|ng|pap-an|pa >> >> |p-aw rn|rw|sc|sg|sn|su|za(s) fontversion: 144179(i)(s) >> >> | >> >> capability: "otlayout: otlayout:latn"(s) >> >> fontformat: "CFF"(s) >> >> decorative: False(s) >> >> >> >> hash: >> >> "sha256:3083f405cb35b16e06d0108836dd6552630c85c7fc5412a5de724e57e6fd7348 >> >> "( s) postscriptname: "Gotham-Book"(s) >> >> >> >> estan at newton:~$ fc-scan Gotham-Medium.otf >> >> Pattern has 22 elts (size 32) >> >> >> >> family: "Gotham"(s) "Gotham Medium"(s) >> >> familylang: "en"(s) "en"(s) >> >> style: "Medium"(s) "Regular"(s) >> >> stylelang: "en"(s) "en"(s) >> >> fullname: "Gotham-Medium"(s) >> >> fullnamelang: "en"(s) >> >> slant: 0(i)(s) >> >> weight: 80(i)(s) >> >> width: 100(i)(s) >> >> foundry: "unknown"(s) >> >> file: "Gotham-Medium.otf"(s) >> >> index: 0(i)(s) >> >> outline: True(s) >> >> scalable: True(s) >> >> charset: >> >> 0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffdfcfaf >> >> >> >> ffffffff ffffffff >> >> >> >> 0001: cffffcff fec3fccf cffff1ff 7ffffc3f 00040000 00000000 >> >> >> >> 00000000 fc000000 >> >> >> >> 0002: 03000000 00000000 02000000 00000000 00000000 00000000 >> >> >> >> 3f0000c0 00000000 >> >> >> >> 0003: 00000000 00000040 00000000 00000000 00000000 00000000 >> >> >> >> 00000000 00000000 >> >> >> >> 000e: 00000000 80000000 00000000 00000000 00000000 00000000 >> >> >> >> 00000000 00000000 >> >> >> >> 001e: 00000000 00000000 00000000 00000000 0000003f 00000000 >> >> >> >> 00000000 000c0000 >> >> >> >> 0020: 771806bc 06010047 00000010 03f10000 000003ff 00021742 >> >> >> >> 00000000 00000000 >> >> >> >> 0021: 00800000 00000005 7ff80000 00000000 00000000 00000000 >> >> >> >> 00000000 00000000 >> >> >> >> 0022: 00040000 00000000 00000000 00000000 00000000 00000000 >> >> >> >> 00000000 00000000 >> >> >> >> 00fb: 0000001f 00000000 00000000 00000000 00000000 00000000 >> >> >> >> 00000000 00000000 >> >> (s) >> >> >> >> lang: >> >> aa|ay|bi|br|bs|ca|ch|co|cs|cy|da|de|en|es|et|eu|fi|fj|fo|fr|fur|fy|gd|gl >> >> |g >> >> v|ho|hr|hu|ia|id|ie|io|is|it|la|lb|lt|lv|mg|mh|mt|nb|nds|nl|nn|no|nr|ns >> >> o|ny >> >> >> >> |oc|om|pl|pt|rm|sk|sl|sma|smj|so|sq|ss|st|sv|sw|tk|tl|tn|tr|ts|uz|vo|vot >> >> ||wa >> >> |wen|xh|yap|zu|an|crh|csb|fil|hsb|ht|jv|kj|ku-tr|kwm|li|ms|ng|pap-an|pa >> >> |p-aw rn|rw|sc|sg|sn|su|za(s) fontversion: 144179(i)(s) >> >> | >> >> capability: "otlayout: otlayout:latn"(s) >> >> fontformat: "CFF"(s) >> >> decorative: False(s) >> >> >> >> hash: >> >> "sha256:bc397773a547218b8c334f9a40ea8e58f55198fab6095b103e598634fe273450 >> >> "( s) postscriptname: "Gotham-Medium"(s) >> >> >> >> estan at newton:~/orexplore/doc/GrafiskProfil/Typsnitt/Gotham$ >> >> >> >> And I'm loading these as follows: >> >> >> >> Style { >> >> >> >> readonly property string mediumFontFamily: __gothamMediumLoader.name >> >> readonly property string regularFontFamily: __gothamBookLoader.name >> >> >> >> property FontLoader __gothamBookLoader: FontLoader { >> >> >> >> source: "fonts/Gotham-Book.otf" >> >> >> >> } >> >> >> >> property FontLoader __gothamMediumLoader: FontLoader { >> >> >> >> source: "fonts/Gotham-Medium.otf" >> >> >> >> } >> >> >> >> ... >> >> >> >> } >> >> >> >> and trying to use them with: >> >> >> >> Text { >> >> >> >> text: "Foo" >> >> font.family: Style.regularFontFamily >> >> font.weight: Font.Normal >> >> >> >> } >> >> >> >> Text { >> >> >> >> text: "Foo" >> >> font.family: Style.mediumFontFamily >> >> font.weight: Font.Medium >> >> >> >> } >> > >> > Have you tried: >> > font.styleName: "Medium" >> > >> > styleName is the most direct way to select a specific style of a font >> > without having to go through matching of style property which may be >> > wrongly encoded in the font . >> >> Ah yes, that will probably work. That's what I meant with: >> >> "It seems there's some fixes in 5.6 which will let me use >> Font.styleName to match a font by style name, which would be a >> workaround [1]. But right now I'm stuck with 5.4.1." >> >> Completely understandable if you missed that, sorry for sending such a >> tirade of e-mails! >> > Ah, sorry. Yes it is pretty difficult with Qt 5.4, it also doesn't understand > the Medium font weight (I think that got added in 5.5). Probably renaming the > fonts is the best solution if you can't upgrade Qt. Yep, it's what I'll do until we can upgrade (when it's in Ubuntu). Elvis > > Best Regards > `Allan From elvstone at gmail.com Tue Apr 5 17:25:05 2016 From: elvstone at gmail.com (Elvis Stansvik) Date: Tue, 5 Apr 2016 17:25:05 +0200 Subject: [Interest] Use Book and Medium weight Gotham font from QML? In-Reply-To: References: Message-ID: 2016-04-05 16:30 GMT+02:00 Jason H : > Font weights don't work in 5.4, and they don't yet work correctly in 5.6 > https://bugreports.qt.io/browse/QTBUG-51335 Thanks for the pointer Jason. I agree with the solution you and Eskil agreed upon in the last comments there (that setting styleName _and_ weight, it will stick to the styleName specified, but use synthesized bold to reach the desired weight). Just one thing: It must at all times be possible to avoid synthesizing of weight. If I specify styleName, but _not_ weight (nor the bold) property, then it should not do some synthesization to reach normal weight (the default weight according to docs). I don't think Eskil has this in mind, since it wouldn't really makes sense, so I'm not worried. Just wanted to be clear :) Elvis > > >> Sent: Monday, April 04, 2016 at 9:51 AM >> From: "Elvis Stansvik" >> To: "interest at qt-project.org Interest" >> Subject: [Interest] Use Book and Medium weight Gotham font from QML? >> >> Hi all, >> >> I'm targeting Qt 5.4.1 and it seems there's no Font.Medium enumeration >> value there? I get: >> >> Unable to assign [undefined] to int >> >> The font we're using for this app is our company font, which is Gotham >> from Hoefler & Co. The weights we need in the UI are Book and Medium, >> each defined in its own .otf (but under the same family name >> "Gotham"), as shown by the fc-scan output below: >> >> estan at newton:~$ fc-scan Gotham-Book.otf >> Pattern has 22 elts (size 32) >> family: "Gotham"(s) "Gotham Book"(s) >> familylang: "en"(s) "en"(s) >> style: "Book"(s) "Regular"(s) >> stylelang: "en"(s) "en"(s) >> fullname: "Gotham-Book"(s) >> fullnamelang: "en"(s) >> slant: 0(i)(s) >> weight: 50(i)(s) >> width: 100(i)(s) >> foundry: "unknown"(s) >> file: "Gotham-Book.otf"(s) >> index: 0(i)(s) >> outline: True(s) >> scalable: True(s) >> charset: >> 0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffdfcfaf >> ffffffff ffffffff >> 0001: cffffcff fec3fccf cffff1ff 7ffffc3f 00040000 00000000 >> 00000000 fc000000 >> 0002: 03000000 00000000 02000000 00000000 00000000 00000000 >> 3f0000c0 00000000 >> 0003: 00000000 00000040 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> 000e: 00000000 80000000 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> 001e: 00000000 00000000 00000000 00000000 0000003f 00000000 >> 00000000 000c0000 >> 0020: 771806bc 06010047 00000010 03f10000 000003ff 00021742 >> 00000000 00000000 >> 0021: 00800000 00000005 7ff80000 00000000 00000000 00000000 >> 00000000 00000000 >> 0022: 00040000 00000000 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> 00fb: 0000001f 00000000 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> (s) >> lang: aa|ay|bi|br|bs|ca|ch|co|cs|cy|da|de|en|es|et|eu|fi|fj|fo|fr|fur|fy|gd|gl|gv|ho|hr|hu|ia|id|ie|io|is|it|la|lb|lt|lv|mg|mh|mt|nb|nds|nl|nn|no|nr|nso|ny|oc|om|pl|pt|rm|sk|sl|sma|smj|so|sq|ss|st|sv|sw|tk|tl|tn|tr|ts|uz|vo|vot|wa|wen|xh|yap|zu|an|crh|csb|fil|hsb|ht|jv|kj|ku-tr|kwm|li|ms|ng|pap-an|pap-aw|rn|rw|sc|sg|sn|su|za(s) >> fontversion: 144179(i)(s) >> capability: "otlayout: otlayout:latn"(s) >> fontformat: "CFF"(s) >> decorative: False(s) >> hash: "sha256:3083f405cb35b16e06d0108836dd6552630c85c7fc5412a5de724e57e6fd7348"(s) >> postscriptname: "Gotham-Book"(s) >> >> estan at newton:~$ fc-scan Gotham-Medium.otf >> Pattern has 22 elts (size 32) >> family: "Gotham"(s) "Gotham Medium"(s) >> familylang: "en"(s) "en"(s) >> style: "Medium"(s) "Regular"(s) >> stylelang: "en"(s) "en"(s) >> fullname: "Gotham-Medium"(s) >> fullnamelang: "en"(s) >> slant: 0(i)(s) >> weight: 80(i)(s) >> width: 100(i)(s) >> foundry: "unknown"(s) >> file: "Gotham-Medium.otf"(s) >> index: 0(i)(s) >> outline: True(s) >> scalable: True(s) >> charset: >> 0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffdfcfaf >> ffffffff ffffffff >> 0001: cffffcff fec3fccf cffff1ff 7ffffc3f 00040000 00000000 >> 00000000 fc000000 >> 0002: 03000000 00000000 02000000 00000000 00000000 00000000 >> 3f0000c0 00000000 >> 0003: 00000000 00000040 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> 000e: 00000000 80000000 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> 001e: 00000000 00000000 00000000 00000000 0000003f 00000000 >> 00000000 000c0000 >> 0020: 771806bc 06010047 00000010 03f10000 000003ff 00021742 >> 00000000 00000000 >> 0021: 00800000 00000005 7ff80000 00000000 00000000 00000000 >> 00000000 00000000 >> 0022: 00040000 00000000 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> 00fb: 0000001f 00000000 00000000 00000000 00000000 00000000 >> 00000000 00000000 >> (s) >> lang: aa|ay|bi|br|bs|ca|ch|co|cs|cy|da|de|en|es|et|eu|fi|fj|fo|fr|fur|fy|gd|gl|gv|ho|hr|hu|ia|id|ie|io|is|it|la|lb|lt|lv|mg|mh|mt|nb|nds|nl|nn|no|nr|nso|ny|oc|om|pl|pt|rm|sk|sl|sma|smj|so|sq|ss|st|sv|sw|tk|tl|tn|tr|ts|uz|vo|vot|wa|wen|xh|yap|zu|an|crh|csb|fil|hsb|ht|jv|kj|ku-tr|kwm|li|ms|ng|pap-an|pap-aw|rn|rw|sc|sg|sn|su|za(s) >> fontversion: 144179(i)(s) >> capability: "otlayout: otlayout:latn"(s) >> fontformat: "CFF"(s) >> decorative: False(s) >> hash: "sha256:bc397773a547218b8c334f9a40ea8e58f55198fab6095b103e598634fe273450"(s) >> postscriptname: "Gotham-Medium"(s) >> >> estan at newton:~/orexplore/doc/GrafiskProfil/Typsnitt/Gotham$ >> >> And I'm loading these as follows: >> >> Style { >> readonly property string mediumFontFamily: __gothamMediumLoader.name >> readonly property string regularFontFamily: __gothamBookLoader.name >> >> property FontLoader __gothamBookLoader: FontLoader { >> source: "fonts/Gotham-Book.otf" >> } >> >> property FontLoader __gothamMediumLoader: FontLoader { >> source: "fonts/Gotham-Medium.otf" >> } >> >> ... >> } >> >> and trying to use them with: >> >> Text { >> text: "Foo" >> font.family: Style.regularFontFamily >> font.weight: Font.Normal >> } >> >> Text { >> text: "Foo" >> font.family: Style.mediumFontFamily >> font.weight: Font.Medium >> } >> >> the Font.Normal seems to work okay, it looks like it's giving me the >> Book weight from Gotham-Book.otf, which I want. I guess because the >> weight is close numerically (?) >> >> But what do I do with the Medium weight since the enum value is not >> available? If I try Font.Bold I seem to get synthetic emboldening, >> which I don't want. >> >> It seems there's some fixes in 5.6 which will let me use >> Font.styleName to match a font by style name, which would be a >> workaround [1]. But right now I'm stuck with 5.4.1. >> >> Thanks in advance for any advice. >> >> Elvis >> >> [1] https://codereview.qt-project.org/#/c/112676/ >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest >> From rbehm at hushmail.com Tue Apr 5 17:29:46 2016 From: rbehm at hushmail.com (Reinhardt Behm) Date: Tue, 05 Apr 2016 23:29:46 +0800 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <60dadcb76125c435ec9a41dc91ef98bc@smtp.hushmail.com> Message-ID: <7b406be18b8780f6febdb1850f313ce0@smtp.hushmail.com> On Tuesday 05 April 2016 16:03:35 NoMercy wrote: > I think after countless agruments in this thread I will try to do that at > best I can or find some interested people and help them maybe :( > But the thing is that I'm sorry that after some point when 90% of Qt > users/developers start to use/see/accept other IDEs as default for Qt > development instead of QtCreator when there is a real good alternative, > people will feel sorry coming this thread scratching their head and > thinking what we have done wrong... after that point winning people back to > QtCreator will be hard as hell and countless hours spent developing > QtCreator will be in vein because there will be left around 15 people left > happy around their closed environment. > > And people keep saying that it is open source, you do it, why don't you do > it etc. well it maybe open source but I think Qt company is payed well > considering the license costs, why dont Qt Company do something about it? > isn't it Qt Company's official product after all? First please reply to the list and not to individual users. If I answered to the list means that I am reading it. No need for direct copies to me. Second please don't top post even if you find this more "modern". On which real data are just "statistics" based? Seeing many discussions in this list as well as privately I doubt the validity of your numbers. -- Reinhardt From thiago.macieira at intel.com Tue Apr 5 17:35:12 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Tue, 05 Apr 2016 08:35:12 -0700 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <60dadcb76125c435ec9a41dc91ef98bc@smtp.hushmail.com> Message-ID: <3043054.j3ndnWMPLF@tjmaciei-mobl4> On terça-feira, 5 de abril de 2016 16:03:35 PDT NoMercy wrote: > And people keep saying that it is open source, you do it, why don't you do > it etc. well it maybe open source but I think Qt company is payed well > considering the license costs, why dont Qt Company do something about it? > isn't it Qt Company's official product after all? I don't work for the Qt Company and I don't know their financials well, but my guess is that they are not swimming in money and profits. It costs money to do what they're doing now and it costs money to do other things that they aren't doing yet. (obviously) More specifically, I don't think there's a financial interest. Do you really think that the Qt Company is going to make a lot more money if this plugin existed? Who would buy a commercial licence just because the CLion plugin exists? No, the way I guess it works, when companies choose a commercial Qt licence, they don't care which IDEs their developers use. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From pr12og2 at programist.ru Tue Apr 5 17:40:03 2016 From: pr12og2 at programist.ru (Prav) Date: Tue, 5 Apr 2016 18:40:03 +0300 Subject: [Interest] CLion to replace QtCreator? Message-ID: <914713326.20160405184003@programist.ru> Does anyone here think that discussion of this question in current way would not help anyone? We are programmer ... not philosophers. So ideas like "eons away from QtC" is non-understandable (like infinity) so not profitable for our lives. As I can get: There are some things which make some people feel not so comfortable comparing to what they feel when they work in another IDE. And those people want QtC be better. So why would not we agree that those who feel bad with some aspects of QtC would first create are bug-report or feature-suggestion at https://bugreports.qt.io/ site and ONLY after that say what he misses from QtC here. I would also suggest to make a list of those things which make QtC not as good as CLion ... somewhere ... for example at https://wiki.qt.io/ Everybody who feels missing features would be welcome to add its bug-report (or feature-request) to this list. And that would give everybody clear understanding what does "eons away" means. This list can also play the role of "list of little shame" for Qt-developers so that they would be more active to try to fix those bugs or implement feature requests (which is as I can get is the main purpose for someone to say that QtC is "eons away from CLion"). As the result this discussion would benefit those who implement QtC (because they have exact questions) and those who ask QtC developer be more active in making them feel better in process usage of QtC. I am not in QtC fun-club. For example my bug https://bugreports.qt.io/browse/QTCREATORBUG-14464 was reported like 1 year ago and it says that renaming refactoring can change the code so that it is hard (almost impossible) to revert it back to “compilable” state. I am always in fear during every renaming refactoring in QtC (because project-wide renaming refactoring is irreversible in QtC so Ctrl-Z would not help ;) ). And I really do not know where to see how valuable this bug in priority list for fixes for next QtC release ! :( I feel problems too. Nor I am against QtC. Because it integrates GUI editor and help for Qt functions better than CLion or VisualStudio. I like its "several split"-idea with shortcuts like "follow symbol in the next split" (which is absent in VisualStudio or CLion … as I know). So maybe we better to discuss how exactly we would make flow of critics from CLion users to be precise and helpful for both-sides? And only after setting rules for that we would start discuss critics itself ... because after that there would be real things to discuss ... but not only heap of opinions in our mailing boxes. Sorry for being so detailed in this letter. I was so wondered that we keep this long discussion in such unprofitable way. From thiago.macieira at intel.com Tue Apr 5 17:39:48 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Tue, 05 Apr 2016 08:39:48 -0700 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> Message-ID: <7948358.oqjiSBx54R@tjmaciei-mobl4> On terça-feira, 5 de abril de 2016 12:55:22 PDT Curtis Mitch wrote: > 1. Have you even try to read people's comments on that link I've shared? > (Yes they are practically begging JetBrains) > > I did read the bug report, yep. So what if they’re begging JetBrains? Rather > than try to shame developers into converting one product into another, why > not contribute specific features that you think are missing? Tell your > friends commenting on that bug report that they can write a plugin for Qt > Creator, and that it’s all open source. I just want to add that there's also nothing wrong in making JetBrains a more capable IDE for developing Qt-based projects. Yes, go beg them, go send patches to them too. The more the merrier. It's also a good way to get Qt Creator developers to pay attention to a given other IDE. But you cannot tell people what *not* to work on. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From jerome at bodycad.com Mon Apr 4 15:31:02 2016 From: jerome at bodycad.com (=?UTF-8?B?SsOpcsO0bWUgR29kYm91dA==?=) Date: Mon, 4 Apr 2016 09:31:02 -0400 Subject: [Interest] Qml Loader initial property setter In-Reply-To: <57013279.2050303@ekkes-corner.org> References: <57013279.2050303@ekkes-corner.org> Message-ID: Thanks for pointing this out, but I was aware of that. Sometime a default value is impossible (null) making bad behavior or bad binding, primitive type can always have default value that make sense that way but complex object don't. It's sad that the imperative setSource() function can set those property and the declarative way is not. On Sun, Apr 3, 2016 at 11:10 AM, ekke wrote: > if you want to refer to a property as 'model.i' and there are situations > where 'model' doesn't exist always, > it's easy to avoid error messages: > > model? model.i : 42 > > this way you can set a default value while model is null > (haven't tried this yet with Qt 5.6 but I'm doing it this way in > BlackBerry 10 Cascades) > > ekke > > Am 01.04.16 um 16:05 schrieb Jérôme Godbout: > > Yes, but the binding loaded object internal binding are printing error, > since the object is created without the input, then the external binding > are created. They will get eventually correct, but the console will be > filled with error message and I try to avoid that at all cost. Here's a > simple example that will complain about unable to access i and j of > undefined / assign undefined to width and height (this example is a bit > stupid but just a demo to show the problems with more complex model and > object): > > // MyComponent.qml > Item > { > property var model > width: model.i > height: model.j > } > > // Main.qml > MyModel > { > id: myModel_ > property int i: 24 > property int j: 12 > } > > Loader > { > id: loader_ > source: "MyComponent.qml" > } > > Binding > { > target: loader_.item > property: 'model' > value: myModel_ > when: loader_.status == Loader.Ready > } > > What I would like is the Loader call QQmlComponent::beginCreate(), then > having a hook to init some property then the Loader can finish the > component QQmlComponent::completeCreate(). This way I was able to make it > work, but having a custom component for that is a bit annoying. > > Loader > { > source: "MyComponent.qml" > onInitProperty: // signal emit with component object returned by > beginCreate(), > { > object.model = Qt.binding(function(){ return myModel_; }); > ... > } > } > > That seem clean and would avoid the problems to have object into bad state > for a brief moment. > > Jerome > > On Fri, Apr 1, 2016 at 12:04 AM, Shantanu Tushar > wrote: > >> Hi, >> >> Have you tried using the QML Binding Type? >> >> http://doc.qt.io/qt-5/qml-qtqml-binding.html >> >> On Thu, Mar 24, 2016 at 11:11 PM, Jérôme Godbout < >> jerome at bodycad.com> wrote: >> >>> Hi, >>> >>> I was wondering if I am the only one who found the initial property of a >>> source based Loader Item a bit annoying. inline sourceComponent with >>> Component {} declaration are well ok on the other hand. I'm explaining >>> myself, when using a loader you have 2 choice to set the initial binding on >>> created item: >>> >>> 1- On item changed set the binding >>> >>> *Loader* >>> *{* >>> * source: externalObj.getSrc() // return something like "myItem.qml"* >>> * onItemChanged:* >>> * {* >>> * if(!item) return;* >>> * item.myprop = Qt.binding(function(){ return myExternalProperty; })* >>> * }* >>> *}* >>> >>> 2- use the setSource() function instead of the source directly >>> >>> *Loader* >>> *{* >>> * property url myDummySrc: externalObj.getSrc()* >>> * onMyDummySrcChanged:* >>> * {* >>> * setSource(myDummySrc, { 'myprop': Qt.binding(function(){ return >>> myExternalProperty; }) });* >>> * }* >>> *}* >>> >>> This is rather annoying and ugly. Number 1 is also having the problem >>> where *myItem.qml* must be able to handle *myprop *to have a default >>> value or being empty without output a lots of console error. Number 2 work >>> well and is the solution I find myself writing often. I was wondering if a >>> Loader that support a dictionary of initial property when source changed >>> would be nice: >>> >>> *Loader* >>> *{* >>> * source: externalObj.getSrc()* >>> * initialProperties: { 'myprop': Qt.binding(function(){ return >>> myExternalProperty; }) }* >>> *}* >>> >>> What do you think? >>> Jerome >>> >>> _______________________________________________ >>> Interest mailing list >>> Interest at qt-project.org >>> http://lists.qt-project.org/mailman/listinfo/interest >>> >>> >> >> >> -- >> Shantanu Tushar (UTC +0530) >> shantanu.io >> > > > > _______________________________________________ > Interest mailing listInterest at qt-project.orghttp://lists.qt-project.org/mailman/listinfo/interest > > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From thiago.macieira at intel.com Tue Apr 5 17:43:18 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Tue, 05 Apr 2016 08:43:18 -0700 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> Message-ID: <33964766.scc7hdVUok@tjmaciei-mobl4> On terça-feira, 5 de abril de 2016 16:23:01 PDT NoMercy wrote: > On Tue, Apr 5, 2016 at 4:20 PM, Sylvain Pointeau > wrote: > > > > Hello, > > > > Why are you not able to use CLion? it is cmake based project, it should > > work with Qt pretty well, shouldn't it? > > > > Best regards, > > Sylvain > > Yes I can but there are still a lot of missing things :( In other words, CLion is eons behind Qt Creator in Qt support. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From nomercy at gmail.com Tue Apr 5 17:44:17 2016 From: nomercy at gmail.com (Emre Besirik) Date: Tue, 5 Apr 2016 18:44:17 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <7b406be18b8780f6febdb1850f313ce0@smtp.hushmail.com> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <60dadcb76125c435ec9a41dc91ef98bc@smtp.hushmail.com> <7b406be18b8780f6febdb1850f313ce0@smtp.hushmail.com> Message-ID: <1AFFC92D-E189-432E-BD1B-5879A64BBB9F@gmail.com> > On 05 Apr 2016, at 18:29, Reinhardt Behm wrote: > > On Tuesday 05 April 2016 16:03:35 NoMercy wrote: >> >> And people keep saying that it is open source, you do it, why don't you do >> it etc. well it maybe open source but I think Qt company is payed well >> considering the license costs, why dont Qt Company do something about it? >> isn't it Qt Company's official product after all? > > First please reply to the list and not to individual users. If I answered to > the list means that I am reading it. No need for direct copies to me. > Second please don't top post even if you find this more "modern”. I do not always use the same mail client and even though I try to clean up things, as I am a simply human, I may forget to do somethings occasionally. And about the top-posting; thats really an argument belong to entirely different thread on its own. don’t get me started on the anti-topposting obsession/top-post allergy of people here please… And even though its not only me doing these “mistakes” you only seem to attack me over these, I’m wondering why... > > On which real data are just "statistics" based? Seeing many discussions in > this list as well as privately I doubt the validity of your numbers. No real data actually but mere observations, don’t need any real data. its just my personal opinion, I do not claim to now for sure. Regards, Emre Beşirik nomercy at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From rbehm at hushmail.com Tue Apr 5 17:58:57 2016 From: rbehm at hushmail.com (Reinhardt Behm) Date: Tue, 05 Apr 2016 23:58:57 +0800 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <1AFFC92D-E189-432E-BD1B-5879A64BBB9F@gmail.com> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <7b406be18b8780f6febdb1850f313ce0@smtp.hushmail.com> <1AFFC92D-E189-432E-BD1B-5879A64BBB9F@gmail.com> Message-ID: On Tuesday 05 April 2016 18:44:17 Emre Besirik wrote: > > On 05 Apr 2016, at 18:29, Reinhardt Behm wrote: > > > > On Tuesday 05 April 2016 16:03:35 NoMercy wrote: > >> And people keep saying that it is open source, you do it, why don't you > >> do > >> it etc. well it maybe open source but I think Qt company is payed well > >> considering the license costs, why dont Qt Company do something about it? > >> isn't it Qt Company's official product after all? > > > > First please reply to the list and not to individual users. If I answered > > to the list means that I am reading it. No need for direct copies to me. > > Second please don't top post even if you find this more "modern”. > > I do not always use the same mail client and even though I try to clean up > things, as I am a simply human, I may forget to do somethings occasionally. > And about the top-posting; thats really an argument belong to entirely > different thread on its own. don’t get me started on the anti-topposting > obsession/top-post allergy of people here please… And even though its not > only me doing these “mistakes” you only seem to attack me over these, I’m > wondering why... Maybe others don't. > > On which real data are just "statistics" based? Seeing many discussions in > > this list as well as privately I doubt the validity of your numbers. > > No real data actually but mere observations, don’t need any real data. its > just my personal opinion, I do not claim to now for sure. That tells a big story. We do not need facts, we have an opinion. Please go trolling somewhere else. -- Reinhardt From nomercy at gmail.com Tue Apr 5 18:02:14 2016 From: nomercy at gmail.com (Emre Besirik) Date: Tue, 5 Apr 2016 19:02:14 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <914713326.20160405184003@programist.ru> References: <914713326.20160405184003@programist.ru> Message-ID: <271B362D-852B-4C35-AA53-A903B0D64E6D@gmail.com> > On 05 Apr 2016, at 18:40, Prav wrote: > > Does anyone here think that discussion of this question in current way would not help anyone? > We are programmer ... not philosophers. So ideas like "eons away from QtC" is non-understandable > (like infinity) so not profitable for our lives. > > As I can get: > There are some things which make some people feel not so comfortable comparing to what they feel > when they work in another IDE. And those people want QtC be better. So why would not we agree > that those who feel bad with some aspects of QtC would first create are bug-report or feature-suggestion > at https://bugreports.qt.io/ site and ONLY after that say what he misses from QtC here. > > I would also suggest to make a list of those things which make QtC not as good as CLion > ... somewhere ... for example at https://wiki.qt.io/ > Everybody who feels missing features would be welcome to add its bug-report (or feature-request) to this > list. And that would give everybody clear understanding what does "eons away" means. > This list can also play the role of "list of little shame" for Qt-developers so that they would be more active > to try to fix those bugs or implement feature requests (which is as I can get is the main purpose for someone > to say that QtC is "eons away from CLion"). > > As the result this discussion would benefit those who implement QtC (because they have exact questions) and > those who ask QtC developer be more active in making them feel better in process usage of QtC. > > I am not in QtC fun-club. > For example my bug > https://bugreports.qt.io/browse/QTCREATORBUG-14464 > was reported like 1 year ago and it says that renaming refactoring can change the code so that it > is hard (almost impossible) to revert it back to “compilable” state. I am always in fear during every renaming refactoring in QtC > (because project-wide renaming refactoring is irreversible in QtC so Ctrl-Z would not help ;) ). > And I really do not know where to see how valuable this bug in priority list for fixes for next QtC release ! :( > I feel problems too. > > Nor I am against QtC. Because it integrates GUI editor and help for Qt functions better than CLion or VisualStudio. > I like its "several split"-idea with shortcuts like "follow symbol in the next split" (which is absent in VisualStudio or CLion … as I know). > > > So maybe we better to discuss how exactly we would make flow of critics from CLion users to be precise > and helpful for both-sides? And only after setting rules for that we would start discuss critics itself ... > because after that there would be real things to discuss ... but not only heap of opinions in our mailing boxes. > > > Sorry for being so detailed in this letter. I was so wondered that we keep this long discussion in such unprofitable way. That I can agree with! Thank you for your more cunstructive comments on the issue. All I wanted from the start of this thread was at least please agree on that it is not perfect, there is really room for improvement and lets discuss on what we can do together? instead allmost all I get was "why don’t you do it your self", "I’m happy", "if you don’t like it don’t use it" kind of responses… I don’t mean the JB products are perfect but many developers around the world will agree that they are at least trying to ease the jobs of developers more than any other and most importantly they are trying to make coding a joy. We may be loving our jobs already but isn’t it better to feel joy when we use our everyday tools? Regards, Emre Beşirik nomercy at gmail.com From krnekit at gmail.com Tue Apr 5 18:03:41 2016 From: krnekit at gmail.com (Nikita Krupenko) Date: Tue, 5 Apr 2016 19:03:41 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <2327728.0KqbYtay3z@tjmaciei-mobl4> <5703CA9A.6090609@arskom.com.tr> Message-ID: 2016-04-05 18:11 GMT+03:00 Curtis Mitch : > The GIF seemed to demonstrate some kind of selective editing. I just tried this with the block selection in Creator and it just overwrites the text. Can you give an example of how you can achieve what's done in the GIF using block selection in Creator? Just select zero-width block with Alt and you'll get big cursor where you can enter some text (i.e. insert without replacing). From nomercy at gmail.com Tue Apr 5 18:10:07 2016 From: nomercy at gmail.com (Emre Besirik) Date: Tue, 5 Apr 2016 19:10:07 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <33964766.scc7hdVUok@tjmaciei-mobl4> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <33964766.scc7hdVUok@tjmaciei-mobl4> Message-ID: > In other words, CLion is eons behind Qt Creator in Qt support. no definetly not saying that, at least not yet ofcourse, I’m saying is as an IDE CLion is a better IDE. I’m not using CLion for my Qt dev, I still am using QtC, its just I’m craving for UI/UX and some other things from the likes of CLion in QtC. I’m craving for the joy I get when I code Java in Intellij while coding in QtC. Regards, Emre Beşirik nomercy at gmail.com From andre at familiesomers.nl Tue Apr 5 18:16:02 2016 From: andre at familiesomers.nl (=?UTF-8?Q?Andr=c3=a9_Somers?=) Date: Tue, 5 Apr 2016 18:16:02 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <2327728.0KqbYtay3z@tjmaciei-mobl4> <5703CA9A.6090609@arskom.com.tr> Message-ID: <5703E4C2.7020301@familiesomers.nl> Op 05/04/2016 om 18:03 schreef Nikita Krupenko: > 2016-04-05 18:11 GMT+03:00 Curtis Mitch : >> The GIF seemed to demonstrate some kind of selective editing. I just tried this with the block selection in Creator and it just overwrites the text. Can you give an example of how you can achieve what's done in the GIF using block selection in Creator? > Just select zero-width block with Alt and you'll get big cursor where > you can enter some text (i.e. insert without replacing). > That works, but it is not as flexible as what we see in those gifs. For instance, you cannot move the cursor left or right or make the same edit on multiple lines that are not vertically aligned. It seems that the examples show something like that, and that would be quite powerfull. André From nomercy at gmail.com Tue Apr 5 18:24:27 2016 From: nomercy at gmail.com (Emre Besirik) Date: Tue, 5 Apr 2016 19:24:27 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <7b406be18b8780f6febdb1850f313ce0@smtp.hushmail.com> <1AFFC92D-E189-432E-BD1B-5879A64BBB9F@gmail.com> Message-ID: >> I do not always use the same mail client and even though I try to clean up >> things, as I am a simply human, I may forget to do somethings occasionally. >> And about the top-posting; thats really an argument belong to entirely >> different thread on its own. don’t get me started on the anti-topposting >> obsession/top-post allergy of people here please… And even though its not >> only me doing these “mistakes” you only seem to attack me over these, I’m >> wondering why... > > Maybe others don’t. You are definitely wrong here, I’ve seen many... > >>> On which real data are just "statistics" based? Seeing many discussions in >>> this list as well as privately I doubt the validity of your numbers. >> >> No real data actually but mere observations, don’t need any real data. its >> just my personal opinion, I do not claim to now for sure. > > That tells a big story. > We do not need facts, we have an opinion. > > Please go trolling somewhere else. Why do some of you guys keep accusing people for trolling? Why do you deny improvement? Besides what you have is no more than your opinion too.. Am I wrong? You have your opinion based on your observations, I have mine. What makes yours the correct opinion? You are just trying to attack without any purpose, just accusing me for things that I don’t or things that I’m not. You don’t add any value to this thread, only baseless acusations. Please only talk if you have something about the subject and keep your accusations to your self. You are contaminating this thread. Regards, Emre Beşirik nomercy at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From thiago.macieira at intel.com Tue Apr 5 18:37:00 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Tue, 05 Apr 2016 09:37:00 -0700 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2327728.0KqbYtay3z@tjmaciei-mobl4> Message-ID: <13657962.YeXkntlIvO@tjmaciei-mobl4> On terça-feira, 5 de abril de 2016 10:05:07 PDT Julius Bullinger wrote: > On Monday, 4. April 2016 18:23, Thiago Macieira wrote: > >> 9. Multiple cursors (see the demo on SublimeText's home page - its > >> epic, > >> and Atom badly implements it), > > > > Explain. Sounds intriguing. > > It's better shown than explained, see e.g. > http://i.stack.imgur.com/TMRK3.gif and > https://packagecontrol.io/readmes/img/d346da37ce3d306f23f960f2a103fbc0f4562 > 034.gif for examples. Interesting. I'd have worked around the issue by selecting the block and telling Creator to replace "var " with "var _". -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From andre at familiesomers.nl Tue Apr 5 18:53:00 2016 From: andre at familiesomers.nl (=?UTF-8?Q?Andr=c3=a9_Somers?=) Date: Tue, 5 Apr 2016 18:53:00 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <2327728.0KqbYtay3z@tjmaciei-mobl4> Message-ID: <5703ED6C.70406@familiesomers.nl> Op 05/04/2016 om 12:05 schreef Julius Bullinger: > On Monday, 4. April 2016 18:23, Thiago Macieira wrote: >>> 9. Multiple cursors (see the demo on SublimeText's home page - its epic, >>> and Atom badly implements it), >> Explain. Sounds intriguing. > It's better shown than explained, see e.g. http://i.stack.imgur.com/TMRK3.gif and https://packagecontrol.io/readmes/img/d346da37ce3d306f23f960f2a103fbc0f4562034.gif for examples. > > This is the only feature I'm really missing in Qt Creator, and the reason I keep Sublime open besides Creator all the time. > There's pretty basic multi-cursor functionality in Creator, but it's not quite as polished as Sublime's. Really, you need to try yourself to see how useful it is! > I like it, and added a feature request for it: https://bugreports.qt.io/browse/QTCREATORBUG-16013 André From thiago.macieira at intel.com Tue Apr 5 18:55:41 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Tue, 05 Apr 2016 09:55:41 -0700 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <271B362D-852B-4C35-AA53-A903B0D64E6D@gmail.com> References: <914713326.20160405184003@programist.ru> <271B362D-852B-4C35-AA53-A903B0D64E6D@gmail.com> Message-ID: <1539748.u4sPh5YKrZ@tjmaciei-mobl4> On terça-feira, 5 de abril de 2016 19:02:14 PDT Emre Besirik wrote: > Thank you for your more cunstructive comments on the issue. All I wanted > from the start of this thread was at least please agree on that it is not > perfect, there is really room for improvement and lets discuss on what we > can do together? instead allmost all I get was "why don’t you do it your > self", "I’m happy", "if you don’t like it don’t use it" kind of responses… Then please reread the first two emails of this thread: your OP and my first reply. Quoting: > > Do you also find it a littlebit unpleasent to code in QtCreator like me? > > Does Qt plan to do something about this? > > It would be more constructive if you explained what your issues are and what > you findto be unpleasant. Without that, nothing is ever going to happen. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From nomercy at gmail.com Tue Apr 5 19:14:06 2016 From: nomercy at gmail.com (Emre Besirik) Date: Tue, 5 Apr 2016 20:14:06 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <1539748.u4sPh5YKrZ@tjmaciei-mobl4> References: <914713326.20160405184003@programist.ru> <271B362D-852B-4C35-AA53-A903B0D64E6D@gmail.com> <1539748.u4sPh5YKrZ@tjmaciei-mobl4> Message-ID: > On 05 Apr 2016, at 19:55, Thiago Macieira wrote: > > On terça-feira, 5 de abril de 2016 19:02:14 PDT Emre Besirik wrote: >> Thank you for your more cunstructive comments on the issue. All I wanted >> from the start of this thread was at least please agree on that it is not >> perfect, there is really room for improvement and lets discuss on what we >> can do together? instead allmost all I get was "why don’t you do it your >> self", "I’m happy", "if you don’t like it don’t use it" kind of responses… > > Then please reread the first two emails of this thread: your OP and my first > reply. > > Quoting: > >>> Do you also find it a littlebit unpleasent to code in QtCreator like me? >>> Does Qt plan to do something about this? >> >> It would be more constructive if you explained what your issues are and what >> you findto be unpleasant. Without that, nothing is ever going to happen. First we needed to agree that that QtC is not perfect and there is room for improvement. And even then there is the issue of hard to explain + a lot of improvements. Then I found an old intellij video and shared that instead which was easier to show than explain. (https://www.youtube.com/watch?v=eq3KiAH4IBI ) — if you have time to watch it… if you can watch it maybe you can understand me better when I say pleasure of coding when those small things add up. Regards, Emre Besirik -------------- next part -------------- An HTML attachment was scrubbed... URL: From asmaloney at gmail.com Tue Apr 5 19:15:27 2016 From: asmaloney at gmail.com (Andy) Date: Tue, 5 Apr 2016 13:15:27 -0400 Subject: [Interest] [Qt3D] Camera controllers Message-ID: The current Qt3D examples have two camera controller classes included in examples-common: QOrbitControl and QFirstPersonCameraController. Are there plans to add these to Qt3D as supported classes? Seems like most projects would benefit from having a couple of standard camera controllers like these. (Also, the names should probably be consistent - *Control vs *Controller.) --- Andy Maloney // https://asmaloney.com twitter ~ @asmaloney -------------- next part -------------- An HTML attachment was scrubbed... URL: From pr12og2 at programist.ru Tue Apr 5 19:15:51 2016 From: pr12og2 at programist.ru (Prav) Date: Tue, 5 Apr 2016 20:15:51 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <33964766.scc7hdVUok@tjmaciei-mobl4> Message-ID: <574144623.20160405201551@programist.ru> Emre Besirik, could you please change the style you discuss things here? > That I can agree with! Thank you for your more cunstructive > comments on the issue OK ... so why you not start make your messages constructive. Like with the list of filled feature-requests > I’m craving for the joy I get when I code Java in Intellij while coding in QtC. I believe nobody in Qt Company or Qt community is against joy of using QtC. To make joy closer give us numbers of your feature-requests or bug-reports at https://bugreports.qt.io/ > Why do some of you guys keep accusing people for trolling? Why do > you deny improvement? Who is against improvements? Nobody. You want others to improve QtC? Fill bug-reports and feature-request. Everything else is unconstructive. > Besides what you have is no more than your > opinion too.. Am I wrong? You have your opinion based on your > observations, I have mine. Make you opinions more exact with use of bugreports.qt.io > You don’t add any value > to this thread, only baseless acusations. OK ... show yours help to QtC ... for example results of using bugreports.qt.io > Please only talk if you have something about the subject and keep > your accusations to your self. You are contaminating this thread. Everybody who just have only opinion without anything from bugreports.qt.io I would say have to be considered as "thread contaminator" or "troll" of this thread ... it bacame so large ! Mine bug is: Renaming refactoring is broken in QtC if code have strings with non-Eglish letters (works find in CLion) https://bugreports.qt.io/browse/QTCREATORBUG-14464 May be everybody in this thread better do use bugreports.qt.io first before sending here its negative opinion? From pr12og2 at programist.ru Tue Apr 5 19:28:00 2016 From: pr12og2 at programist.ru (Prav) Date: Tue, 5 Apr 2016 20:28:00 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <5703ED6C.70406@familiesomers.nl> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <2327728.0KqbYtay3z@tjmaciei-mobl4> <5703ED6C.70406@familiesomers.nl> Message-ID: <1268686874.20160405202800@programist.ru> >> This is the only feature I'm really missing in Qt Creator, and the reason I keep Sublime open besides Creator all the time. >> There's pretty basic multi-cursor functionality in Creator, but it's not quite as polished as Sublime's. Really, you need to try yourself to see how useful it is! >> > I like it, and added a feature request for it: > https://bugreports.qt.io/browse/QTCREATORBUG-16013 Great! So now may someone (Thiago Macieira?) can help us find best place at wiki.qt.io to make wiki-page where we would add our feature-requests and bug-reports which are about things which are better implemented in CLion? Let's move to constructive path ! From ekke at ekkes-corner.org Tue Apr 5 20:04:09 2016 From: ekke at ekkes-corner.org (ekke) Date: Tue, 5 Apr 2016 20:04:09 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <1268686874.20160405202800@programist.ru> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <2327728.0KqbYtay3z@tjmaciei-mobl4> <5703ED6C.70406@familiesomers.nl> <1268686874.20160405202800@programist.ru> Message-ID: <5703FE19.3010103@ekkes-corner.org> Am 05.04.16 um 19:28 schrieb Prav: >>> This is the only feature I'm really missing in Qt Creator, and the reason I keep Sublime open besides Creator all the time. >>> There's pretty basic multi-cursor functionality in Creator, but it's not quite as polished as Sublime's. Really, you need to try yourself to see how useful it is! >>> >> I like it, and added a feature request for it: >> https://bugreports.qt.io/browse/QTCREATORBUG-16013 > Great! > > So now may someone (Thiago Macieira?) can help us find best place at wiki.qt.io to make wiki-page where we would add our > feature-requests and bug-reports which are about things which are better implemented in CLion? I wouldn't restrict it to CLion, but to 'other IDEs' There are some workflows for mobile app development much smoother in Eclipse Momentics IDE for BlackBerry Cascades/Qt 4.8 development. I learned much about QtCreator from replies to this thread and want to become more experienced with QtC before creating Issues or FeatureRequests. > > Let's move to constructive path ! > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > From pr12og2 at programist.ru Tue Apr 5 20:34:43 2016 From: pr12og2 at programist.ru (Prav) Date: Tue, 5 Apr 2016 21:34:43 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <5703FE19.3010103@ekkes-corner.org> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <2327728.0KqbYtay3z@tjmaciei-mobl4> <5703ED6C.70406@familiesomers.nl> <1268686874.20160405202800@programist.ru> <5703FE19.3010103@ekkes-corner.org> Message-ID: <1601130976.20160405213443@programist.ru> >> So now may someone (Thiago Macieira?) can help us find best place at wiki.qt.io to make wiki-page where we would add our >> feature-requests and bug-reports which are about things which are better implemented in CLion? > I wouldn't restrict it to CLion, but to 'other IDEs' Good point ... If later the wiki-page would become too large that would be a reson to split it into like "Clion" and "Eclipse Momentics" > I learned much about QtCreator from replies to this thread and want to > become more experienced with QtC before creating Issues or FeatureRequests. If you want to be more experienced with QtC you would say like ... Does anyone know how to do this or that in QtC? If you say "QtC is eons behind Eclipse Momentics" is totally another story. This is statement of opinion (not a question). And most posts in this thread were like this ... which is unconstructive. So if you ask for help it seems fine for mailing list. But in this case you better start new thread ... so not to make this one a real mess. > There are some workflows for mobile app development much smoother in > Eclipse Momentics IDE for BlackBerry Cascades/Qt 4.8 development. OK. This is not a question. This is statement. So fill the feature-request. From ekke at ekkes-corner.org Tue Apr 5 20:48:25 2016 From: ekke at ekkes-corner.org (ekke) Date: Tue, 5 Apr 2016 20:48:25 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <1601130976.20160405213443@programist.ru> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <2327728.0KqbYtay3z@tjmaciei-mobl4> <5703ED6C.70406@familiesomers.nl> <1268686874.20160405202800@programist.ru> <5703FE19.3010103@ekkes-corner.org> <1601130976.20160405213443@programist.ru> Message-ID: <57040879.4030202@ekkes-corner.org> Am 05.04.16 um 20:34 schrieb Prav: >>> So now may someone (Thiago Macieira?) can help us find best place at wiki.qt.io to make wiki-page where we would add our >>> feature-requests and bug-reports which are about things which are better implemented in CLion? >> I wouldn't restrict it to CLion, but to 'other IDEs' > Good point ... If later the wiki-page would become too large that would be a reson to split it into like "Clion" and "Eclipse Momentics" > > >> I learned much about QtCreator from replies to this thread and want to >> become more experienced with QtC before creating Issues or FeatureRequests. > If you want to be more experienced with QtC you would say like ... > Does anyone know how to do this or that in QtC? I just started exploring Qt after 4 years BB10 Cascades APPs Using QtCreator as daily IDE for first projects with Qt 5.6 qt.labs.controls for Android + iOS will help me also writing my blogs about Qt for Mobile (https://appbus.wordpress.com/2016/04/05/qt-for-x-platform-mobile-development/) > > If you say "QtC is eons behind Eclipse Momentics" is totally another story. This is statement of opinion (not a question). > And most posts in this thread were like this ... which is unconstructive. I never would say this. I appreciate the work of QtCreator-devs QtCreator cannot be compared directly to other IDE's because Qt supports so many different targets Per ex. Eclipse Momentics supports BlackBerry 10 Devices where QtCreator has to support Android, iOS, ... > > So if you ask for help it seems fine for mailing list. But in this case you better start new thread ... > so not to make this one a real mess. > > >> There are some workflows for mobile app development much smoother in >> Eclipse Momentics IDE for BlackBerry Cascades/Qt 4.8 development. > OK. This is not a question. This is statement. So fill the feature-request. will do so, but wait some weeks. perhaps I overlooked some features or HowTo-use-QtCreator ekke > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > From nomercy at gmail.com Tue Apr 5 20:50:22 2016 From: nomercy at gmail.com (Emre Besirik) Date: Tue, 5 Apr 2016 21:50:22 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <574144623.20160405201551@programist.ru> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <33964766.scc7hdVUok@tjmaciei-mobl4> <574144623.20160405201551@programist.ru> Message-ID: <0EF64E76-C30E-4A41-8841-141442937D11@gmail.com> > On 05 Apr 2016, at 20:15, Prav wrote: > > Emre Besirik, could you please change the style you discuss things here? Can you please be a little more specific? I don’t remember insulting anyone or anything like that? >> That I can agree with! Thank you for your more cunstructive >> comments on the issue > OK ... so why you not start make your messages constructive. Like with the list of filled feature-requests Thats not so easy for my part because I think whats lacking is a complete makeover… I only maybe file a bug report saying that “A expert team of UI/UX specialists should go through all of QtC” how is that for a bug report? thats why I’m here… Everybody here basicly asking for directions on how to imrpove things but the thing is non of us are UI/UX experts here and everybody will say something different here about how they like things but as probably everyone also will agree here that not a sigle UI/UX expert tocuhed QtC ever before, its all became this by simply how QtC devs wanted/liked for them selves up to this point… And thats actually the one thats need to chage first. We need at least one UI/UX expert to work on QtC to shape things as user friendly as possible... >> I’m craving for the joy I get when I code Java in Intellij while coding in QtC. > I believe nobody in Qt Company or Qt community is against joy of using QtC. > To make joy closer give us numbers of your feature-requests or bug-reports at https://bugreports.qt.io/ see prev. comment >> Why do some of you guys keep accusing people for trolling? Why do >> you deny improvement? > Who is against improvements? Nobody. > You want others to improve QtC? Fill bug-reports and feature-request. > Everything else is unconstructive. This is wrong as explained before bug-reports won’t cut it. We need more fundamental changes... > >> You don’t add any value >> to this thread, only baseless acusations. > OK ... show yours help to QtC ... for example results of using bugreports.qt.io This is me trying to help by trying to convince people to have a UI/UX expert on QtC. > May be everybody in this thread better do use bugreports.qt.io first before sending here its > negative opinion? You are fixated on bug reports, bug reports won’t help current stuation here. Thats for bugs and some very particular feature requests. in my opinion what needs to be chaged is more fundamental, a complete makeover to match current IDE standarts. Regards, Emre Beşirik nomercy at gmail.com From nomercy at gmail.com Tue Apr 5 20:56:38 2016 From: nomercy at gmail.com (Emre Besirik) Date: Tue, 5 Apr 2016 21:56:38 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <20160405185508.GB1555@klara.mpi.htwm.de> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> <20160405185508.GB1555@klara.mpi.htwm.de> Message-ID: <59B7EC9F-B3AA-475C-B577-7F982563F717@gmail.com> > On 05 Apr 2016, at 21:55, André Pönitz wrote: > > On Tue, Apr 05, 2016 at 03:33:46PM +0300, NoMercy wrote: >> Hey look I didn't start to offend anybody about their work, >> but just get some realistic here; > > Thank you for admitting that this hasn't been realistic so far. > > Oh, and you *did* insult some people. > > Andre' Could you please be more specific about who and by saying what did I insult people? I simply pointed out that QtC developers are not UI/UX experts and I’m sure that team has no UI/UX expert in it what so ever (correct me if I’m wrong?) and this is not insulting. Regards, Emre Beşirik nomercy at gmail.com From jeanmichael.celerier at gmail.com Tue Apr 5 21:03:47 2016 From: jeanmichael.celerier at gmail.com (=?UTF-8?Q?Jean=2DMicha=C3=ABl_Celerier?=) Date: Tue, 5 Apr 2016 21:03:47 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <0EF64E76-C30E-4A41-8841-141442937D11@gmail.com> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <33964766.scc7hdVUok@tjmaciei-mobl4> <574144623.20160405201551@programist.ru> <0EF64E76-C30E-4A41-8841-141442937D11@gmail.com> Message-ID: On Tue, Apr 5, 2016 at 8:50 PM, Emre Besirik wrote: > a complete makeover to match current IDE standarts Example of code coloration for some code of mine in QtCreator : ​ And in CLion : ​ Of course, nothing auto-completes in CLion... -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: qtc.png Type: image/png Size: 7299 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: clion.png Type: image/png Size: 7196 bytes Desc: not available URL: From nomercy at gmail.com Tue Apr 5 21:09:40 2016 From: nomercy at gmail.com (Emre Besirik) Date: Tue, 5 Apr 2016 22:09:40 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <33964766.scc7hdVUok@tjmaciei-mobl4> <574144623.20160405201551@programist.ru> <0EF64E76-C30E-4A41-8841-141442937D11@gmail.com> Message-ID: > On 05 Apr 2016, at 22:03, Jean-Michaël Celerier wrote: > > > On Tue, Apr 5, 2016 at 8:50 PM, Emre Besirik > wrote: > a complete makeover to match current IDE standarts > > Example of code coloration for some code of mine in QtCreator : > > ​ > > And in CLion : > > ​ > Of course, nothing auto-completes in CLion... CLion doesn’t officially support Qt yet? besides I’m not just talking about code coloring? Regards, Emre Beşirik nomercy at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From jeanmichael.celerier at gmail.com Tue Apr 5 21:12:16 2016 From: jeanmichael.celerier at gmail.com (=?UTF-8?Q?Jean=2DMicha=C3=ABl_Celerier?=) Date: Tue, 5 Apr 2016 21:12:16 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <33964766.scc7hdVUok@tjmaciei-mobl4> <574144623.20160405201551@programist.ru> <0EF64E76-C30E-4A41-8841-141442937D11@gmail.com> Message-ID: It's standard C++ code. (That I had to wait 5 minutes for to show up vs 2 seconds in QtC :) ) On Tue, Apr 5, 2016 at 9:09 PM, Emre Besirik wrote: > > On 05 Apr 2016, at 22:03, Jean-Michaël Celerier < > jeanmichael.celerier at gmail.com> wrote: > > > On Tue, Apr 5, 2016 at 8:50 PM, Emre Besirik wrote: > >> a complete makeover to match current IDE standarts > > > Example of code coloration for some code of mine in QtCreator : > > ​ > > And in CLion : > > ​ > Of course, nothing auto-completes in CLion... > > > CLion doesn’t officially support Qt yet? besides I’m not just talking > about code coloring? > > Regards, > Emre Beşirik > nomercy at gmail.com > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From apoenitz at t-online.de Tue Apr 5 21:31:54 2016 From: apoenitz at t-online.de (=?iso-8859-1?Q?Andr=E9_P=F6nitz?=) Date: Tue, 5 Apr 2016 21:31:54 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <1268686874.20160405202800@programist.ru> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <2327728.0KqbYtay3z@tjmaciei-mobl4> <5703ED6C.70406@familiesomers.nl> <1268686874.20160405202800@programist.ru> Message-ID: <20160405193154.GA3082@klara.mpi.htwm.de> On Tue, Apr 05, 2016 at 08:28:00PM +0300, Prav wrote: > >> This is the only feature I'm really missing in Qt Creator, and the reason I > >> keep Sublime open besides Creator all the time. There's pretty basic > >> multi-cursor functionality in Creator, but it's not quite as polished as > >> Sublime's. Really, you need to try yourself to see how useful it is! > >> > > I like it, and added a feature request for it: > > https://bugreports.qt.io/browse/QTCREATORBUG-16013 > > Great! > > So now may someone (Thiago Macieira?) can help us find best place at > wiki.qt.io to make wiki-page where we would add our feature-requests and > bug-reports which are about things which are better implemented in CLion? bugreports.qt-project.org is the place for Qt Creator feature requests (Component "Qt Creator") where developers will actually read it. Andre' From nomercy at gmail.com Tue Apr 5 21:33:23 2016 From: nomercy at gmail.com (Emre Besirik) Date: Tue, 5 Apr 2016 22:33:23 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <20160405191139.GC1555@klara.mpi.htwm.de> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> <20160405191139.GC1555@klara.mpi.htwm.de> Message-ID: <143803D5-1A6B-4A11-A2E9-EECFC9FEA86D@gmail.com> >> it only searches for filenames > > Utter nonsense. Well ok even it does not do it as good as JB products I’ll accept this but watch the video link I’ve sent if you had time, you’ll then see what I actually mean > >> You only offer mostly workarounds which are not the same. debugging values for >> instance; yes we can also see the values in the debug windows if we’d like to >> but its not the same, when it is shown inline you just need to look no other >> action required. > > There's a global option somewhere to get debugger tooltips in the editor. > I.e. also wrong. tooltips require you to reach your mouse and go over things wait etc.. > >> QtCreator compared to modern IDEs. A good IDE (I think) should avoid to make >> its users have to take their hand off the keyboard to reach the mouse or >> touchpad as much as possible, to do this you should have a perfect keybord >> shortcut system, which also should avoid to make its users to have multiple >> keystrokes (double esc and then something more etc.) Jetbrains products are >> really engineered very well on their UI/UX part, if we can not have/afford an > > I'd really like you to not use the word 'we' in this discussion. It feels > highly inappropriate in combination with your tone. I’m saying “we” because I\m also trying to use Qt, I’m also trying to make things better instead of denying room for improvement. And about my tone, I really don’t get it when critisim is always perceived as “tone”? > >> experienced UI/UX team of professionals then at least we should inspect what >> they (jetbrains and/or others) have done and learn from them then apply to >> QtCreator maybe? > > I don't really get your intention here. You are obviously successful at > trolling. You also made clear you found an IDE you are happy with, and you > despise Qt Creator. Still, you reach out to this supposedly unenlightened crowd > and ask them to clone your idol? Well to be honest CLion does not have full support for Qt yet and I’d love to use that if it had. You sound like QtC is your child I’m insulting him/her? You maybe one of the QtC Devs but you don’t necessarily lose your dignity if you are not a good designer? you don’t have to be… you are a developer and that is a completely different profession on its own. I don’t understand why people gets so offended even it is not about you or your work? I bet QtC simply hasn’t been touched by ANY UI/UX expert to this day and thats the problem, and thats all, there is nothing to get offended about this at all even if you are one of the developers. > > Please? Why don't you just stick to what you are happy with? The problem is; what I’m happy with does not exist yet... > > If you really wanted to be helpful, as in rightfully using the word "we", > you could have filed feature requests on bugreports.qt-project.org . Sure, > some of them might have triggered an immediate 'Invalid' resolution, but > in the end some valid points will have survived, and some of these even > would have been fixed. > See my previous posts about bugreport, it is not enough, you can not make a feature req. saying; “Please have an experienced team of UI/UX experts to go through all of QtC and make a complete makeover” ? Regards, Emre Beşirik nomercy at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From apoenitz at t-online.de Tue Apr 5 21:39:41 2016 From: apoenitz at t-online.de (=?iso-8859-1?Q?Andr=E9_P=F6nitz?=) Date: Tue, 5 Apr 2016 21:39:41 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <5703FE19.3010103@ekkes-corner.org> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <2327728.0KqbYtay3z@tjmaciei-mobl4> <5703ED6C.70406@familiesomers.nl> <1268686874.20160405202800@programist.ru> <5703FE19.3010103@ekkes-corner.org> Message-ID: <20160405193941.GB3082@klara.mpi.htwm.de> On Tue, Apr 05, 2016 at 08:04:09PM +0200, ekke wrote: > There are some workflows for mobile app development much smoother in > Eclipse Momentics IDE for BlackBerry Cascades/Qt 4.8 development. > > I learned much about QtCreator from replies to this thread and want to > become more experienced with QtC before creating Issues or FeatureRequests. I personally think it's not *that* a big deal if there's an invalid feature request every now and then (because e.g. already implemented, but not obviously accessible). In some cases even those are useful to improve documentation or making features better discoverable. Just make sure you don't create too many of them by searching for existing reports before you file one, but generally I think it's better to have everything in one system (i.e. bugreports.qt-project.org) instead of spreading things over multiple places. Andre' From nomercy at gmail.com Tue Apr 5 21:36:53 2016 From: nomercy at gmail.com (Emre Besirik) Date: Tue, 5 Apr 2016 22:36:53 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <33964766.scc7hdVUok@tjmaciei-mobl4> <574144623.20160405201551@programist.ru> <0EF64E76-C30E-4A41-8841-141442937D11@gmail.com> Message-ID: > On 05 Apr 2016, at 22:12, Jean-Michaël Celerier wrote: > > It's standard C++ code. > (That I had to wait 5 minutes for to show up vs 2 seconds in QtC :) ) > I know it start slow but after it completes indexing and caching extra features pays off startup time (I think) only wish it would support Qt officially Regards, Emre Beşirik nomercy at gmail.com From suy at badopi.org Tue Apr 5 22:47:32 2016 From: suy at badopi.org (Alejandro Exojo) Date: Tue, 5 Apr 2016 22:47:32 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <5703E4C2.7020301@familiesomers.nl> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <5703E4C2.7020301@familiesomers.nl> Message-ID: <201604052247.32946.suy@badopi.org> El Tuesday 05 April 2016, André Somers escribió: > That works, but it is not as flexible as what we see in those gifs. For > instance, you cannot move the cursor left or right or make the same edit > on multiple lines that are not vertically aligned. That's what you miss for not using FakeVim. ;-) -- Alex (a.k.a. suy) | GPG ID 0x0B8B0BC2 http://barnacity.net/ | http://disperso.net From pr12og2 at programist.ru Tue Apr 5 23:50:16 2016 From: pr12og2 at programist.ru (Prav) Date: Wed, 6 Apr 2016 00:50:16 +0300 Subject: [Interest] CLion to replace QtCreator? Message-ID: <1537845082.20160406005016@programist.ru> > bugreports.qt-project.org is the place for Qt Creator feature requests > (Component "Qt Creator") where developers will actually read it. Ok, André Pönitz. But the point of creation of this list is also to say how many (or may be few) features is better in CLion. So we need not an invidual bugs but list of them. If bugreports.qt-project.org have a way to get such a list ... let's use only bugreports.qt-project.org. Could you share how we can get list like this inside bugreports.qt-project.org ? For example, I do not know how to get priority list for bugs-fixes for QtC 4.0.0 release. I mean bugs which were decided to be fixed before it is possible to say that QtC 4.0.0 release is ready. > but generally I think it's better to have > everything in one system (i.e. bugreports.qt-project.org) instead of spreading > things over multiple places. Ok ... if we can use bugreports.qt-project.org why not. How to use it to get this list? May be we can create tag for this special purpuse ... or something else? Let's decide how to manage people's criticism constructively. From sh at theharmers.co.uk Wed Apr 6 00:35:49 2016 From: sh at theharmers.co.uk (Sean Harmer) Date: Tue, 5 Apr 2016 23:35:49 +0100 Subject: [Interest] [Qt3D] Camera controllers In-Reply-To: References: Message-ID: <57043DC5.5030501@theharmers.co.uk> On 05/04/2016 18:15, Andy wrote: > The current Qt3D examples have two camera controller classes included > in examples-common: QOrbitControl and QFirstPersonCameraController. > > Are there plans to add these to Qt3D as supported classes? Yes, likely for 5.8. The examples gives us somewhere to iron out API and features after some feedback. We will aim to provide some creator templates for these too so users can easily add them to their projects in the meantime. > Seems like most projects would benefit from having a couple of > standard camera controllers like these. > > (Also, the names should probably be consistent - *Control vs *Controller.) Agreed, should be QPanOrbitController or something and QFirstPersonController. Cheers, Sean > > --- > Andy Maloney // https://asmaloney.com > twitter ~ @asmaloney > > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -------------- next part -------------- An HTML attachment was scrubbed... URL: From pr12og2 at programist.ru Wed Apr 6 00:59:00 2016 From: pr12og2 at programist.ru (Prav) Date: Wed, 6 Apr 2016 01:59:00 +0300 Subject: [Interest] CLion to replace QtCreator? Message-ID: <292903265.20160406015900@programist.ru> > Thats not so easy for my part because I think whats lacking is a > complete makeover… .. > We need at least one UI/UX expert to work on QtC to > shape things as user friendly as possible... .. > >> Emre Besirik, could you please change the style you discuss things here? > Can you please be a little more specific? Use bugreports.qt.io first, and then write here. Nobody would rewrite the whole UI from gound up just because your opinion is that you feel bad about it. But you keep repeating your message again and again ... may be this is because you think that QtC developers does not hear you. But probably they hear ... but not agree. So if you want them to agree with you give real resons. Which means fill feature-requests. If there would be so many real examples where CLion is better ... this is the data to think about. Nothing else would work for your intention (exept if your intention is trolling us here). From smurphy at walbro.com Wed Apr 6 05:15:14 2016 From: smurphy at walbro.com (Murphy, Sean) Date: Wed, 6 Apr 2016 03:15:14 +0000 Subject: [Interest] QXmlSchemaValidator fails when testing for unique attributes Message-ID: <954F3AC9B636FB4F933D586E76E307EC61D8B048@USWCCEXC04> I'm having trouble using QXmlSchemaValidator trying to validate an XML file that uses the element when the field is an attribute. I've been able to replicate it with this simple schema/document combination: Schema Document instance In this example, the document should validate, since all 3 authors' name attributes are unique. Using XMLSpy the document does indeed validate, and if I change one of the authors to be a duplicate (i.e. change "baz" to "bar" so now there are two "bar" entries) and validate again in XMLSpy it fails saying that "Duplicate value: ['bar'] was already matched by the identity constraint 'nameUniqueness' within the scope of element ." So from an XML standpoint everything seems to work fine. But creating a small Qt onlyapplication (based on the "schema" example shipped with Qt) of my own that attempts to validate this example using QXmlSchemaValidator fails. The error message is "Non-unique value found for constraint nameUniqueness", and it appears to fail on the last author listed, so in this case the "baz" line. But if you delete the last author, the error just moves up a line - so deleting the "baz" line moves the error up to the "bar" line. If I delete both the "baz" and "bar" lines, then it will validate... Am I doing something wrong, or is this just a bug? Sean From andre at familiesomers.nl Wed Apr 6 07:51:51 2016 From: andre at familiesomers.nl (=?UTF-8?Q?Andr=c3=a9_Somers?=) Date: Wed, 6 Apr 2016 07:51:51 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <201604052247.32946.suy@badopi.org> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <5703E4C2.7020301@familiesomers.nl> <201604052247.32946.suy@badopi.org> Message-ID: <5704A3F7.2050705@familiesomers.nl> Op 05/04/2016 om 22:47 schreef Alejandro Exojo: > El Tuesday 05 April 2016, André Somers escribió: >> That works, but it is not as flexible as what we see in those gifs. For >> instance, you cannot move the cursor left or right or make the same edit >> on multiple lines that are not vertically aligned. > That's what you miss for not using FakeVim. ;-) > That might very well be it. :-) So... the FakeVim can do that trick? André From andre at familiesomers.nl Wed Apr 6 09:45:24 2016 From: andre at familiesomers.nl (=?UTF-8?Q?Andr=c3=a9_Somers?=) Date: Wed, 6 Apr 2016 09:45:24 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <33964766.scc7hdVUok@tjmaciei-mobl4> <574144623.20160405201551@programist.ru> <0EF64E76-C30E-4A41-8841-141442937D11@gmail.com> Message-ID: <5704BE94.6070702@familiesomers.nl> Op 05/04/2016 om 21:09 schreef Emre Besirik: > >> On 05 Apr 2016, at 22:03, Jean-Michaël Celerier >> > > wrote: >> >> >> On Tue, Apr 5, 2016 at 8:50 PM, Emre Besirik > > wrote: >> >> a complete makeover to match current IDE standarts >> >> >> Example of code coloration for some code of mine in QtCreator : >> >> ​ >> >> And in CLion : >> >> ​ >> Of course, nothing auto-completes in CLion... > > CLion doesn’t officially support Qt yet? besides I’m not just talking > about code coloring? Isn't code coloring part of that UX you seem to be all about then? I find proper coloring of my code to be very helpful while coding, it certainly adds to my User eXperience. Indeed a report saying "QtC needs a team of UX experts to go over it and do a complete revamp" is not going to do much. The video you pointed out helps a bit (did not watch it yet, put it on my list though). Why would you claim that QtC is basically beyond fixing? And please be specific in what you are looking for. Statements that it is "not modern" or the likes don't help developers and designers to identify the problem areas which perhaps are very real. Perhaps you could even record a few screen sessions demonstrating aspects of the UI of CLion that you find particulary better than what's available in QtCreator, and share those? André -------------- next part -------------- An HTML attachment was scrubbed... URL: From nomercy at gmail.com Wed Apr 6 10:39:56 2016 From: nomercy at gmail.com (Emre Besirik) Date: Wed, 6 Apr 2016 11:39:56 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <338906533.20160406015743@programist.ru> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <33964766.scc7hdVUok@tjmaciei-mobl4> <574144623.20160405201551@programist.ru> <0EF64E76-C30E-4A41-8841-141442937D11@gmail.com> <338906533.20160406015743@programist.ru> Message-ID: <40C5E9B4-5047-4434-B5EA-D6538A1ECAD2@gmail.com> > On 06 Apr 2016, at 01:57, Prav wrote: > >> Thats not so easy for my part because I think whats lacking is a >> complete makeover… > ... >> We need at least one UI/UX expert to work on QtC to >> shape things as user friendly as possible... > ... >>>> Emre Besirik, could you please change the style you discuss things here? >> Can you please be a little more specific? > Use bugreports.qt.io first, and then write here. > > Nobody would rewrite the whole UI from gound up just because your opinion is that you feel bad about it. > But you keep repeating your message again and again ... may be this is because you think that QtC developers does not hear you. > But probably they hear ... but not agree. So if you want them to agree with you give real resons. > Which means fill feature-requests. If there would be so many real examples where CLion is better ... this is > the data to think about. > > Nothing else would work for your intention (exept if your intention is trolling us here). > What I’m trying to say is; non of us here are a UI/UX expert, right? so whatever we add as feature requests to the bug report system will only maybe add some new functionality but will not improve User Experience, am I correct? QtC simply needs help from an expert on the subject... Regards, Emre Beşirik nomercy at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From nomercy at gmail.com Wed Apr 6 10:42:39 2016 From: nomercy at gmail.com (Emre Besirik) Date: Wed, 6 Apr 2016 11:42:39 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <5704BE94.6070702@familiesomers.nl> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <33964766.scc7hdVUok@tjmaciei-mobl4> <574144623.20160405201551@programist.ru> <0EF64E76-C30E-4A41-8841-141442937D11@gmail.com> <5704BE94.6070702@familiesomers.nl> Message-ID: > On 06 Apr 2016, at 10:45, André Somers wrote: > > > > Op 05/04/2016 om 21:09 schreef Emre Besirik: >> >>> On 05 Apr 2016, at 22:03, Jean-Michaël Celerier > wrote: >>> >>> >>> On Tue, Apr 5, 2016 at 8:50 PM, Emre Besirik < nomercy at gmail.com > wrote: >>> a complete makeover to match current IDE standarts >>> >>> Example of code coloration for some code of mine in QtCreator : >>> >>> ​ >>> >>> And in CLion : >>> >>> ​ >>> Of course, nothing auto-completes in CLion... >> >> >> CLion doesn’t officially support Qt yet? besides I’m not just talking about code coloring? > Isn't code coloring part of that UX you seem to be all about then? I find proper coloring of my code to be very helpful while coding, it certainly adds to my User eXperience. > > Indeed a report saying "QtC needs a team of UX experts to go over it and do a complete revamp" is not going to do much. The video you pointed out helps a bit (did not watch it yet, put it on my list though). Why would you claim that QtC is basically beyond fixing? And please be specific in what you are looking for. Statements that it is "not modern" or the likes don't help developers and designers to identify the problem areas which perhaps are very real. Perhaps you could even record a few screen sessions demonstrating aspects of the UI of CLion that you find particulary better than what's available in QtCreator, and share those? > Ok I’ll try to do better but indeed the video I’ve sent before does really explain things a lot better than I ever could. Regards, Emre Beşirik nomercy at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From jeanmichael.celerier at gmail.com Wed Apr 6 10:45:05 2016 From: jeanmichael.celerier at gmail.com (=?UTF-8?Q?Jean=2DMicha=C3=ABl_Celerier?=) Date: Wed, 6 Apr 2016 10:45:05 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <40C5E9B4-5047-4434-B5EA-D6538A1ECAD2@gmail.com> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <33964766.scc7hdVUok@tjmaciei-mobl4> <574144623.20160405201551@programist.ru> <0EF64E76-C30E-4A41-8841-141442937D11@gmail.com> <338906533.20160406015743@programist.ru> <40C5E9B4-5047-4434-B5EA-D6538A1ECAD2@gmail.com> Message-ID: On Wed, Apr 6, 2016 at 10:39 AM, Emre Besirik wrote: > so whatever we add as feature requests to the bug report system will only > maybe add some new functionality but will not improve *User Experience*, > am I correct? > If you were able to define in practical words what user experience is in the context of an IDE then it would surely go to the bug report system. Do you think that JetBrains have magical UX wizards that look at the software and make it have a better ui/ux with their maigc UX wand ? No, they write down list of features and things to fix and sends them to the developers who implement them. The QtCreator bug report will mostly be read (I guess) by this second category, so somebody has to do the work of the first one. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jtykka at broadsoft.com Wed Apr 6 11:12:24 2016 From: jtykka at broadsoft.com (Jani Tykka) Date: Wed, 6 Apr 2016 12:12:24 +0300 Subject: [Interest] Quick2 OpenGL inefficiency? In-Reply-To: References: Message-ID: Thank you for your suggestions. We did implement rendering with using two FBOs, using glTexSubImage2D and OpenGL directly without Qt wrappers. The performance is quite good in most cases. Noticed that there is still a huge performance difference between MacBookPro Retina (wo/ external GPU) and Mac Air with even slower CPU and Intel integrated. On Air the rendering is really fast and it uses lot less CPU. ( Same video call on Air ~120% and ~340% on MBP. ) The only difference seems to be the Retina. Is there anything that can be done to improve FBO based rendering on Retina? Something like disabling 'the retina awareness' for FBOs? We can´t do that for the whole application for obvious reasons. Thanks On Tue, Mar 8, 2016 at 9:40 AM, Filip Piechocki wrote: > I don't know how you produce the video frames, but check that the software > you are using might be able to produce OpenGL texture directly (not the > buffer data). If not then here are some useful links: > > http://stackoverflow.com/questions/9863969/updating-a-texture-in-opengl-with-glteximage2d > http://www.gamedev.net/topic/641283-fastest-way-to-stream-video-to-texture/ > > So basically you'll need to use glTexSubImage2D directly (and you probably > do not need QImage at all) and for custom OpenGL rendering you can use > QQuickFramebufferObject as your DisplayItem: > > http://blog.qt.io/blog/2015/05/11/integrating-custom-opengl-rendering-with-qt-quick-via-qquickframebufferobject/ > > On Tue, Mar 8, 2016 at 7:00 AM, Jani Tykka wrote: > >> I'm creating the image from buffer which is unsigned char buffer >> containing video frame data >> QImage( buffer, width, height, QImage::Format_RGB32 ); >> >> >> >> On Mon, Mar 7, 2016 at 10:05 PM, Filip Piechocki >> wrote: >> > >> > How are you generating those images? What do they represent? >> > >> > On Mar 7, 2016 20:55, "Jani Tykka" wrote: >> >> >> >> Images are passed from another thread in rate 15-30 fps. Is there an >> example available how to achieve Image to OpenGL texture and use it in >> scene graph? >> >> >> >> On Mon, Mar 7, 2016 at 5:11 PM, Filip Piechocki >> wrote: >> >>> >> >>> And where it comes from? How frequent it happens? Probably the best >> thing here would be to generate this image as an OpenGL texture and then >> use in the Qt's scene graph. >> >>> >> >>> On Mon, Mar 7, 2016 at 4:04 PM, Jani Tykka >> wrote: >> >>>> >> >>>> Yes, the image is always changed when the update is invoked. >> >>>> >> >>>> On Mon, Mar 7, 2016 at 4:43 PM, Filip Piechocki < >> fpiechocki at gmail.com> wrote: >> >>>>> >> >>>>> Hi, >> >>>>> >> >>>>> Why are you re-creating the texture on every node update? Does the >> m_Renderer->getImage() really changes? My first guess would be that the >> texture creation from image is the most costly part here (uploading the >> texture to GPU?) and I would do this only if necessary (the image really >> changes). >> >>>>> >> >>>>> BR, >> >>>>> Filip >> >>>>> >> >>>>> On Mon, Mar 7, 2016 at 3:04 PM, Jani Tykka >> wrote: >> >>>>>> >> >>>>>> Hi, >> >>>>>> >> >>>>>> We are rendering QImages on QQuickItem as following: >> >>>>>> >> >>>>>> QSGNode * DisplayItem::updatePaintNode( QSGNode * node, >> UpdatePaintNodeData * /*data*/ ) >> >>>>>> >> >>>>>> { >> >>>>>> >> >>>>>> QSGSimpleTextureNode * n = static_cast< QSGSimpleTextureNode* >( >> node ); >> >>>>>> >> >>>>>> if ( !n ) >> >>>>>> >> >>>>>> n = new QSGSimpleTextureNode; >> >>>>>> >> >>>>>> >> >>>>>> n->setRect( 0, 0, width(), height() ); >> >>>>>> >> >>>>>> >> >>>>>> delete m_Texture; >> >>>>>> >> >>>>>> >> >>>>>> m_Texture = window()->createTextureFromImage( >> m_Renderer->getImage() ); >> >>>>>> >> >>>>>> n->setTexture( m_Texture ); >> >>>>>> >> >>>>>> >> >>>>>> return n; >> >>>>>> >> >>>>>> } >> >>>>>> >> >>>>>> >> >>>>>> >> >>>>>> It seems that computers with separate GPU there is a decent amount >> of CPU utilised. We are running into problems if the machine lacks GPU, >> then with large images the CPU usage grows drastically. Any suggestions how >> to improve large image painting on QQuickItem? With Quick1 and painting >> directly on HWND/CocoaWindow we didn't experience this high CPU usage. >> >>>>>> >> >>>>>> >> >>>>>> >> >>>>>> This email is intended solely for the person or entity to which it >> is addressed and may contain confidential and/or privileged information. If >> you are not the intended recipient and have received this email in error, >> please notify BroadSoft, Inc. immediately by replying to this message, and >> destroy all copies of this message, along with any attachment, prior to >> reading, distributing or copying it. >> >>>>>> >> >>>>>> _______________________________________________ >> >>>>>> Interest mailing list >> >>>>>> Interest at qt-project.org >> >>>>>> http://lists.qt-project.org/mailman/listinfo/interest >> >>>>>> >> >>>>> >> >>>> >> >>>> >> >>>> >> >>>> -- >> >>>> Jani Tykkä >> >>>> Development Manager | BroadSoft, Inc. | +358 44 596 0587 | >> jtykka at broadsoft.com >> >>>> >> >>>> >> >>>> This email is intended solely for the person or entity to which it >> is addressed and may contain confidential and/or privileged information. If >> you are not the intended recipient and have received this email in error, >> please notify BroadSoft, Inc. immediately by replying to this message, and >> destroy all copies of this message, along with any attachment, prior to >> reading, distributing or copying it. >> >>> >> >>> >> >> >> >> >> >> >> >> -- >> >> Jani Tykkä >> >> Development Manager | BroadSoft, Inc. | +358 44 596 0587 | >> jtykka at broadsoft.com >> >> >> >> >> >> This email is intended solely for the person or entity to which it is >> addressed and may contain confidential and/or privileged information. If >> you are not the intended recipient and have received this email in error, >> please notify BroadSoft, Inc. immediately by replying to this message, and >> destroy all copies of this message, along with any attachment, prior to >> reading, distributing or copying it. >> >> >> >> >> -- >> Jani Tykkä >> Development Manager | BroadSoft, Inc. | +358 44 596 0587 | >> jtykka at broadsoft.com >> >> >> This email is intended solely for the person or entity to which it is >> addressed and may contain confidential and/or privileged information. If >> you are not the intended recipient and have received this email in error, >> please notify BroadSoft, Inc. immediately by replying to this message, and >> destroy all copies of this message, along with any attachment, prior to >> reading, distributing or copying it. >> > > -- *Jani Tykkä* Development Manager | BroadSoft, Inc. | +358 44 596 0587 | jtykka at broadsoft.com -- This email is intended solely for the person or entity to which it is addressed and may contain confidential and/or privileged information. If you are not the intended recipient and have received this email in error, please notify BroadSoft, Inc. immediately by replying to this message, and destroy all copies of this message, along with any attachment, prior to reading, distributing or copying it. -------------- next part -------------- An HTML attachment was scrubbed... URL: From andre at familiesomers.nl Wed Apr 6 11:18:22 2016 From: andre at familiesomers.nl (=?UTF-8?Q?Andr=c3=a9_Somers?=) Date: Wed, 6 Apr 2016 11:18:22 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <40C5E9B4-5047-4434-B5EA-D6538A1ECAD2@gmail.com> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <33964766.scc7hdVUok@tjmaciei-mobl4> <574144623.20160405201551@programist.ru> <0EF64E76-C30E-4A41-8841-141442937D11@gmail.com> <338906533.20160406015743@programist.ru> <40C5E9B4-5047-4434-B5EA-D6538A1ECAD2@gmail.com> Message-ID: <5704D45E.5000602@familiesomers.nl> Op 06/04/2016 om 10:39 schreef Emre Besirik: > >> On 06 Apr 2016, at 01:57, Prav > > wrote: >> >>> Thats not so easy for my part because I think whats lacking is a >>> complete makeover… >> ... >>> We need at least one UI/UX expert to work on QtC to >>> shape things as user friendly as possible... >> ... >>>>> Emre Besirik, could you please change the style you discuss things >>>>> here? >>> Can you please be a little more specific? >> Use bugreports.qt.io first, and then write >> here. >> >> Nobody would rewrite the whole UI from gound up just because your >> opinion is that you feel bad about it. >> But you keep repeating your message again and again ... may be this >> is because you think that QtC developers does not hear you. >> But probably they hear ... but not agree. So if you want them to >> agree with you give real resons. >> Which means fill feature-requests. If there would be so many real >> examples where CLion is better ... this is >> the data to think about. >> >> Nothing else would work for your intention (exept if your intention >> is trolling us here). >> > > What I’m trying to say is; non of us here are a UI/UX expert, right? I would not make such assumptions out of hand... Do you know who is subscribed here, and who is working on QtC? > so whatever we add as feature requests to the bug report system will > only maybe add some new functionality but will not improve *User > Experience*, am I correct? Wrong. The UX of an application is defined by its design and its features, and how the these interact. So, indicating where there are issues with these so they can be addressed will help the UX. UX is not some secret sause to be poured over an application when the coding is done (or something you can only work on before you start coding). > QtC simply needs help from an expert on the subject... That is the kind of useless statement people here become annoyed about. Point out the problems before you start assuming that outside help is needed to address these as of yet unknown problems. André -------------- next part -------------- An HTML attachment was scrubbed... URL: From nomercy at gmail.com Wed Apr 6 11:20:30 2016 From: nomercy at gmail.com (Emre Besirik) Date: Wed, 6 Apr 2016 12:20:30 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <33964766.scc7hdVUok@tjmaciei-mobl4> <574144623.20160405201551@programist.ru> <0EF64E76-C30E-4A41-8841-141442937D11@gmail.com> <338906533.20160406015743@programist.ru> <40C5E9B4-5047-4434-B5EA-D6538A1ECAD2@gmail.com> Message-ID: <261F14F6-2560-4250-A1AE-7485DFE58CDC@gmail.com> > On 06 Apr 2016, at 11:45, Jean-Michaël Celerier wrote: > > > On Wed, Apr 6, 2016 at 10:39 AM, Emre Besirik > wrote: > so whatever we add as feature requests to the bug report system will only maybe add some new functionality but will not improve User Experience, am I correct? > > If you were able to define in practical words what user experience is in the context of an IDE then it would surely go to the bug report system. > Do you think that JetBrains have magical UX wizards that look at the software and make it have a better ui/ux with their maigc UX wand ? > No, they write down list of features and things to fix and sends them to the developers who implement them. > > The QtCreator bug report will mostly be read (I guess) by this second category, so somebody has to do the work of the first one. > > I know developers need direction to go on but it is really hard to explain these things with words. I’ve showed examples of good work on the subject, ways and some principles but if I try to put everything in words issue by issue it’ll really be hard. There should be a flow of user experience. it is in little things but a lot of little things. its when you Ctrl / Cmd Click on some function and its already open on the other splitview don’t open it in the clicked view, just go to to corresponding line on the other screen for example its the open documents, tabless views (I know some people don’t like it but many people got used to the tabs) I for example like to work with implementations in one side and headers other but it is really hard to first select the view you want the code to open in, I don’t know how many times I opened in the wrong/unintended view, it is not user friendly its smart completions, IDE should offer me the most logical things first by maybe looking return types, context etc. JB products are very successfull on this subject. its that searching is not available everywhere, its when I search (rather filter in QtC) in preferences it should go the extra mile and highlight where it found my keywords, it also should search in places like keyboard shortcuts (inside of preferences, deep search), go to where its found when I select the preference subject its trying to do importing necessary stuff automatically when it can its offering quick fixes as much as possible its not making me have to use my mouse as much as possible its making me use as less (no more than one actually) keystrokes when I’m trying to use a keyboard shortcut (double esc’s then something else, Ctrl+e then Ctrl+F4 etc…) see my point? list can go on forever… so logically I can only provide basic principles and some good examples or better yet please lets have help from a UI/UX expert. They maybe don’t have a magic wand but they have experience on explaining these things in words, analyzing power… They can anaylize, understand and explain thigns we can only feel... Regards, Emre Beşirik nomercy at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From nomercy at gmail.com Wed Apr 6 11:27:16 2016 From: nomercy at gmail.com (Emre Besirik) Date: Wed, 6 Apr 2016 12:27:16 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <5704D45E.5000602@familiesomers.nl> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <33964766.scc7hdVUok@tjmaciei-mobl4> <574144623.20160405201551@programist.ru> <0EF64E76-C30E-4A41-8841-141442937D11@gmail.com> <338906533.20160406015743@programist.ru> <40C5E9B4-5047-4434-B5EA-D6538A1ECAD2@gmail.com> <5704D45E.5000602@familiesomers.nl> Message-ID: <867E4854-1042-4AC3-983C-A0CA29F726F1@gmail.com> > On 06 Apr 2016, at 12:18, André Somers wrote: >> >> What I’m trying to say is; non of us here are a UI/UX expert, right? > > I would not make such assumptions out of hand... Do you know who is subscribed here, and who is working on QtC? Well yes I can not know for sure but I’m betting on it. if I’m wrong then I’ll apologise about this... > >> so whatever we add as feature requests to the bug report system will only maybe add some new functionality but will not improve User Experience, am I correct? > > Wrong. The UX of an application is defined by its design and its features, and how the these interact. So, indicating where there are issues with these so they can be addressed will help the UX. UX is not some secret sause to be poured over an application when the coding is done (or something you can only work on before you start coding). Please see my reply to Jean-Michaël Celerier on this subject. > >> QtC simply needs help from an expert on the subject... > That is the kind of useless statement people here become annoyed about. Point out the problems before you start assuming that outside help is needed to address these as of yet unknown problems. Again my reply to Jean-Michaël Celerier Regards, Emre Beşirik nomercy at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From contact at qxorm.com Wed Apr 6 11:40:28 2016 From: contact at qxorm.com (QxOrm contact) Date: Wed, 6 Apr 2016 11:40:28 +0200 Subject: [Interest] [ANN] QxOrm 1.4.2 & QxEntityEditor 1.1.9 released : support JSON serialization Message-ID: Hello, QxOrm 1.4.2 and QxEntityEditor 1.1.9 just released : http://www.qxorm.com/ QxOrm library 1.4.2 changes log : - Support JSON serialization : each C++ class registered in QxOrm context can be serialized/deserialized in JSON format (JSON feature requires Qt5) - For more details about JSON serialization, read QxOrm manual here : http://www.qxorm.com/qxorm_en/manual.html#manual_606 - With JSON serialization and QxService module : it is now possible to create REST Web Services to send data to a javascript engine (web pages for example) - Fix some compilation errors with recent (and less permissive) compilers and latest versions of boost and Qt - Fix relationship initialization assertion with complex, deep and circular relationships in large database schema - Improve QDataStream serialization : should be faster now and fix an issue with circular instances dependencies - Fix a bug fetching 1-n and n-n relationships when root is a container of stack objects (it worked only with pointers or smart-pointers, for example : QList vs QList>) - Improve qx::dump() function : possibility to display a C++ instance state in XML or JSON format QxEntityEditor application 1.1.9 changes log : - New import plugin to connect to MySQL or MariaDB database without having to deal with ODBC settings - New import plugin to connect to PostgreSQL database without having to deal with ODBC settings - New import plugin to load a QxEntityEditor project from a JSON file - Fix SQLite import process to manage composite keys - Improve Javascript engine to customize export process : new types available by script to manage files and directories + possibility to get/set environment variables (read custom_script.js file in ./samples/ directory for script examples) - Improve Javascript engine to customize export process : new events/actions available by script : PLUGIN_EXPORT_START, PLUGIN_EXPORT_END, AFTER_CLOSING_FILE - New message box displayed if directory doesn't exist when starting an export process (to create it automatically) - Fix an issue with the "Tag project state" function (project historic) : each tag double the size of a *.qxee project file (now each tag is optimized) - Fix C++ services export process when C++11 features are enabled in QxOrm.pri configuration file - Possibility to export a *.qxee project file to a JSON text file (can be useful to store a text representation in a source control, like Perforce, VSS, CVS, Git, etc...) - Possibility to use an environment variable to define QxOrm library location (using the same syntax as qmake, for example $$(QXORM_DIR)) You can download latest versions of QxOrm library and QxEntityEditor application on QxOrm website : http://www.qxorm.com/ Regards, Lionel Marty - QxOrm library -------------- next part -------------- An HTML attachment was scrubbed... URL: From martijn.buijs at gmail.com Wed Apr 6 11:43:26 2016 From: martijn.buijs at gmail.com (Martijn Buijs) Date: Wed, 6 Apr 2016 11:43:26 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <261F14F6-2560-4250-A1AE-7485DFE58CDC@gmail.com> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <33964766.scc7hdVUok@tjmaciei-mobl4> <574144623.20160405201551@programist.ru> <0EF64E76-C30E-4A41-8841-141442937D11@gmail.com> <338906533.20160406015743@programist.ru> <40C5E9B4-5047-4434-B5EA-D6538A1ECAD2@gmail.com> <261F14F6-2560-4250-A1AE-7485DFE58CDC@gmail.com> Message-ID: On 6 April 2016 at 11:20, Emre Besirik wrote: > > its when you Ctrl / Cmd Click on some function and its already open on the > other splitview don’t open it in the clicked view, just go to to > corresponding line on the other screen for example > its the open documents, tabless views (I know some people don’t like it but > many people got used to the tabs) I for example like to work with > implementations in one side and headers other but it is really hard to first > select the view you want the code to open in, I don’t know how many times I > opened in the wrong/unintended view, it is not user friendly > its smart completions, IDE should offer me the most logical things first by > maybe looking return types, context etc. JB products are very successfull on > this subject. > its that searching is not available everywhere, > its when I search (rather filter in QtC) in preferences it should go the > extra mile and highlight where it found my keywords, it also should search > in places like keyboard shortcuts (inside of preferences, deep search), go > to where its found when I select the preference subject > its trying to do importing necessary stuff automatically when it can > its offering quick fixes as much as possible > its not making me have to use my mouse as much as possible > its making me use as less (no more than one actually) keystrokes when I’m > trying to use a keyboard shortcut (double esc’s then something else, Ctrl+e > then Ctrl+F4 etc…) If you believe that QtCreator should become a better tool for you than what it is now, I would suggest starting to write down the issues as you started doing in the response to Jean-Michaël Celerier and make sure to take a constructive approach. It's fine to point to another IDE as an example to describe some functionality that you would like to have, but leave the pointless judgments that might insult people. For example in the list above you mention "I for example like to work with implementations in one side and headers other but it is really hard to first select the view you want the code to open in, I don’t know how many times I opened in the wrong/unintended view, it is not user friendly", I would suggest you to leave out just the part "it is not user friendly" and instead focus on how everyone can benefit of your improvement. One by one these things should be improved, that's the way to benefit from the existing functionality in QtCreator and the things that can be learned from new and exciting other IDE's. It's a community project, not just a company that just decides to do a complete rewrite of all code. Even company's frequently fail to do such complete rewrites: http://www.joelonsoftware.com/articles/fog0000000069.html > see my point? list can go on forever… so logically I can only provide basic > principles and some good examples or better yet please lets have help from a > UI/UX expert. They maybe don’t have a magic wand but they have experience on > explaining these things in words, analyzing power… They can anaylize, > understand and explain thigns we can only feel... Rebuilding QtCreator will not magically solve these issues. Even when 1-on-1 copying all functionality of CLion, in the end it will still be worse, because JetBrains is not waiting for QtCreator to catch up. If CLion really works great for you, I suggest trying to get support for Qt in CLion instead of trying to change QtCreator. Martijn From nomercy at gmail.com Wed Apr 6 12:19:16 2016 From: nomercy at gmail.com (Emre Besirik) Date: Wed, 6 Apr 2016 13:19:16 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <33964766.scc7hdVUok@tjmaciei-mobl4> <574144623.20160405201551@programist.ru> <0EF64E76-C30E-4A41-8841-141442937D11@gmail.com> <338906533.20160406015743@programist.ru> <40C5E9B4-5047-4434-B5EA-D6538A1ECAD2@gmail.com> <261F14F6-2560-4250-A1AE-7485DFE58CDC@gmail.com> Message-ID: > On 06 Apr 2016, at 12:43, Martijn Buijs wrote: > > If you believe that QtCreator should become a better tool for you than > what it is now, I would suggest starting to write down the issues as > you started doing in the response to Jean-Michaël Celerier and make > sure to take a constructive approach. It's fine to point to another > IDE as an example to describe some functionality that you would like > to have, but leave the pointless judgments that might insult people. > > For example in the list above you mention "I for example like to work > with implementations in one side and headers other but it is really > hard to first select the view you want the code to open in, I don’t > know how many times I opened in the wrong/unintended view, it is not > user friendly", I would suggest you to leave out just the part "it is > not user friendly" and instead focus on how everyone can benefit of > your improvement. > > One by one these things should be improved, that's the way to benefit > from the existing functionality in QtCreator and the things that can > be learned from new and exciting other IDE's. It's a community > project, not just a company that just decides to do a complete rewrite > of all code. Even company's frequently fail to do such complete > rewrites: http://www.joelonsoftware.com/articles/fog0000000069.html > >> see my point? list can go on forever… so logically I can only provide basic >> principles and some good examples or better yet please lets have help from a >> UI/UX expert. They maybe don’t have a magic wand but they have experience on >> explaining these things in words, analyzing power… They can anaylize, >> understand and explain thigns we can only feel... > > Rebuilding QtCreator will not magically solve these issues. Even when > 1-on-1 copying all functionality of CLion, in the end it will still be > worse, because JetBrains is not waiting for QtCreator to catch up. If > CLion really works great for you, I suggest trying to get support for > Qt in CLion instead of trying to change QtCreator. > > Martijn I acknowlegde that writing a complete IDE is no easy task and I do appreciate the team for doing it in the first place. and what I’m talking about in the last couple of days are not intended to deminish their hard work, its a fully functional IDE afterall. What I’m trying to say is either the team is not big enough to handle things beyond core functionality or simply there is no UI/UX expert to guide devs on user experience. it is not a fault of anyone but just a fact that there is a need for a UI/UX expert. otherwise we will have a fully functional, fully capable IDE that very small amount of people will want to use. And ok lets go to bugreports and fill all the things we can think of but I think that in the end will not help much because user experience is a flow and should be handled as a complete subject, not little by little issues… thats why I’m insisting on at least one UI/UX expert should be on the team to guide them, otherwise if you leave it to the bugreports you’ll be leaving the judgement of accepting the feature requests to the devs who may or may not like it. after all some of those little things may require A LOT of work or very fundamental changes which may freak out devs but if a UI/UX expert in the team can insist on requirement of that particular change and convince them to go for it… Regards, Emre Beşirik nomercy at gmail.com From annulen at yandex.ru Wed Apr 6 12:36:35 2016 From: annulen at yandex.ru (Konstantin Tokarev) Date: Wed, 06 Apr 2016 13:36:35 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <33964766.scc7hdVUok@tjmaciei-mobl4> <574144623.20160405201551@programist.ru> <0EF64E76-C30E-4A41-8841-141442937D11@gmail.com> <338906533.20160406015743@programist.ru> <40C5E9B4-5047-4434-B5EA-D6538A1ECAD2@gmail.com> <261F14F6-2560-4250-A1AE-7485DFE58CDC@gmail.com> Message-ID: <5018491459938995@web10o.yandex.ru> 06.04.2016, 13:19, "Emre Besirik" : >>  On 06 Apr 2016, at 12:43, Martijn Buijs wrote: >> >>  If you believe that QtCreator should become a better tool for you than >>  what it is now, I would suggest starting to write down the issues as >>  you started doing in the response to Jean-Michaël Celerier and make >>  sure to take a constructive approach. It's fine to point to another >>  IDE as an example to describe some functionality that you would like >>  to have, but leave the pointless judgments that might insult people. >> >>  For example in the list above you mention "I for example like to work >>  with implementations in one side and headers other but it is really >>  hard to first select the view you want the code to open in, I don’t >>  know how many times I opened in the wrong/unintended view, it is not >>  user friendly", I would suggest you to leave out just the part "it is >>  not user friendly" and instead focus on how everyone can benefit of >>  your improvement. >> >>  One by one these things should be improved, that's the way to benefit >>  from the existing functionality in QtCreator and the things that can >>  be learned from new and exciting other IDE's. It's a community >>  project, not just a company that just decides to do a complete rewrite >>  of all code. Even company's frequently fail to do such complete >>  rewrites: http://www.joelonsoftware.com/articles/fog0000000069.html >> >>>  see my point? list can go on forever… so logically I can only provide basic >>>  principles and some good examples or better yet please lets have help from a >>>  UI/UX expert. They maybe don’t have a magic wand but they have experience on >>>  explaining these things in words, analyzing power… They can anaylize, >>>  understand and explain thigns we can only feel... >> >>  Rebuilding QtCreator will not magically solve these issues. Even when >>  1-on-1 copying all functionality of CLion, in the end it will still be >>  worse, because JetBrains is not waiting for QtCreator to catch up. If >>  CLion really works great for you, I suggest trying to get support for >>  Qt in CLion instead of trying to change QtCreator. >> >>  Martijn > > I acknowlegde that writing a complete IDE is no easy task and I do appreciate the team for doing it in the first place. and what I’m talking about in the last couple of days are not intended to deminish their hard work, its a fully functional IDE afterall. What I’m trying to say is either the team is not big enough to handle things beyond core functionality or simply there is no UI/UX expert to guide devs on user experience. it is not a fault of anyone but just a fact that there is a need for a UI/UX expert. I believe nobody here is denying significance of UX design in principle. Are you going to recommend us some specific person? >otherwise we will have a fully functional, fully capable IDE that very small amount of people will want to use. Well, if it satisfies Qt and Qt Creator developers, plus a number of people outside these teams, that's actually not a bad result for open source project. If you want it to serve your needs too, go ahead and provide patches. > And ok lets go to bugreports and fill all the things we can think of but I think that in the end will not help much because user experience is a flow and should be handled as a complete subject, not little by little issues… thats why I’m insisting on at least one UI/UX expert should be on the team to guide them, otherwise if you leave it to the bugreports you’ll be leaving the judgement of accepting the feature requests to the devs who may or may not like it. after all some of those little things may require A LOT of work or very fundamental changes which may freak out devs but if a UI/UX expert in the team can insist on requirement of that particular change and convince them to go for it… > > Regards, > Emre Beşirik > nomercy at gmail.com > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -- Regards, Konstantin From andre at familiesomers.nl Wed Apr 6 12:41:36 2016 From: andre at familiesomers.nl (=?UTF-8?Q?Andr=c3=a9_Somers?=) Date: Wed, 6 Apr 2016 12:41:36 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <33964766.scc7hdVUok@tjmaciei-mobl4> <574144623.20160405201551@programist.ru> <0EF64E76-C30E-4A41-8841-141442937D11@gmail.com> <338906533.20160406015743@programist.ru> <40C5E9B4-5047-4434-B5EA-D6538A1ECAD2@gmail.com> <261F14F6-2560-4250-A1AE-7485DFE58CDC@gmail.com> Message-ID: <5704E7E0.3050202@familiesomers.nl> Op 06/04/2016 om 12:19 schreef Emre Besirik: >> On 06 Apr 2016, at 12:43, Martijn Buijs wrote: >> >> If you believe that QtCreator should become a better tool for you than >> what it is now, I would suggest starting to write down the issues as >> you started doing in the response to Jean-Michaël Celerier and make >> sure to take a constructive approach. It's fine to point to another >> IDE as an example to describe some functionality that you would like >> to have, but leave the pointless judgments that might insult people. >> >> For example in the list above you mention "I for example like to work >> with implementations in one side and headers other but it is really >> hard to first select the view you want the code to open in, I don’t >> know how many times I opened in the wrong/unintended view, it is not >> user friendly", I would suggest you to leave out just the part "it is >> not user friendly" and instead focus on how everyone can benefit of >> your improvement. >> >> One by one these things should be improved, that's the way to benefit >> from the existing functionality in QtCreator and the things that can >> be learned from new and exciting other IDE's. It's a community >> project, not just a company that just decides to do a complete rewrite >> of all code. Even company's frequently fail to do such complete >> rewrites: http://www.joelonsoftware.com/articles/fog0000000069.html >> >>> see my point? list can go on forever… so logically I can only provide basic >>> principles and some good examples or better yet please lets have help from a >>> UI/UX expert. They maybe don’t have a magic wand but they have experience on >>> explaining these things in words, analyzing power… They can anaylize, >>> understand and explain thigns we can only feel... >> Rebuilding QtCreator will not magically solve these issues. Even when >> 1-on-1 copying all functionality of CLion, in the end it will still be >> worse, because JetBrains is not waiting for QtCreator to catch up. If >> CLion really works great for you, I suggest trying to get support for >> Qt in CLion instead of trying to change QtCreator. >> >> Martijn > > I acknowlegde that writing a complete IDE is no easy task and I do appreciate the team for doing it in the first place. and what I’m talking about in the last couple of days are not intended to deminish their hard work, its a fully functional IDE afterall. What I’m trying to say is either the team is not big enough to handle things beyond core functionality or simply there is no UI/UX expert to guide devs on user experience. it is not a fault of anyone but just a fact that there is a need for a UI/UX expert. otherwise we will have a fully functional, fully capable IDE that very small amount of people will want to use. > And ok lets go to bugreports and fill all the things we can think of but I think that in the end will not help much because user experience is a flow and should be handled as a complete subject, not little by little issues… thats why I’m insisting on at least one UI/UX expert should be on the team to guide them, otherwise if you leave it to the bugreports you’ll be leaving the judgement of accepting the feature requests to the devs who may or may not like it. after all some of those little things may require A LOT of work or very fundamental changes which may freak out devs but if a UI/UX expert in the team can insist on requirement of that particular change and convince them to go for it… > As you are insisting that the team needs a UX expert, care to sponsor one? André From nomercy at gmail.com Wed Apr 6 12:56:00 2016 From: nomercy at gmail.com (Emre Besirik) Date: Wed, 6 Apr 2016 13:56:00 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <5018491459938995@web10o.yandex.ru> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <33964766.scc7hdVUok@tjmaciei-mobl4> <574144623.20160405201551@programist.ru> <0EF64E76-C30E-4A41-8841-141442937D11@gmail.com> <338906533.20160406015743@programist.ru> <40C5E9B4-5047-4434-B5EA-D6538A1ECAD2@gmail.com> <261F14F6-2560-4250-A1AE-7485DFE58CDC@gmail.com> <5018491459938995@web10o.yandex.ru> Message-ID: > On 06 Apr 2016, at 13:36, Konstantin Tokarev wrote: > >> >> I acknowlegde that writing a complete IDE is no easy task and I do appreciate the team for doing it in the first place. and what I’m talking about in the last couple of days are not intended to deminish their hard work, its a fully functional IDE afterall. What I’m trying to say is either the team is not big enough to handle things beyond core functionality or simply there is no UI/UX expert to guide devs on user experience. it is not a fault of anyone but just a fact that there is a need for a UI/UX expert. > > I believe nobody here is denying significance of UX design in principle. > Are you going to recommend us some specific person? No I don’t know anyone with UI/UX skills, but hey univercities can help maybe? some students on their last year of related classes can maybe help? > >> otherwise we will have a fully functional, fully capable IDE that very small amount of people will want to use. > > Well, if it satisfies Qt and Qt Creator developers, plus a number of people outside these teams, that's actually not a bad result for open source project. If you want it to serve your needs too, go ahead and provide patches. Thats an option but there is again always the possiblity to work hard on some things and a dev may not like your input and deny your patch(es) which then would make your hard work a big waste of time... Regards, Emre Beşirik nomercy at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From nomercy at gmail.com Wed Apr 6 13:01:48 2016 From: nomercy at gmail.com (Emre Besirik) Date: Wed, 6 Apr 2016 14:01:48 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <5704E7E0.3050202@familiesomers.nl> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <33964766.scc7hdVUok@tjmaciei-mobl4> <574144623.20160405201551@programist.ru> <0EF64E76-C30E-4A41-8841-141442937D11@gmail.com> <338906533.20160406015743@programist.ru> <40C5E9B4-5047-4434-B5EA-D6538A1ECAD2@gmail.com> <261F14F6-2560-4250-A1AE-7485DFE58CDC@gmail.com> <5704E7E0.3050202@familiesomers.nl> Message-ID: <8C565E0F-DA8D-46D3-9484-22C5DE53B344@gmail.com> > On 06 Apr 2016, at 13:41, André Somers wrote: > > Op 06/04/2016 om 12:19 schreef Emre Besirik: >> >> >> I acknowlegde that writing a complete IDE is no easy task and I do appreciate the team for doing it in the first place. and what I’m talking about in the last couple of days are not intended to deminish their hard work, its a fully functional IDE afterall. What I’m trying to say is either the team is not big enough to handle things beyond core functionality or simply there is no UI/UX expert to guide devs on user experience. it is not a fault of anyone but just a fact that there is a need for a UI/UX expert. otherwise we will have a fully functional, fully capable IDE that very small amount of people will want to use. >> And ok lets go to bugreports and fill all the things we can think of but I think that in the end will not help much because user experience is a flow and should be handled as a complete subject, not little by little issues… thats why I’m insisting on at least one UI/UX expert should be on the team to guide them, otherwise if you leave it to the bugreports you’ll be leaving the judgement of accepting the feature requests to the devs who may or may not like it. after all some of those little things may require A LOT of work or very fundamental changes which may freak out devs but if a UI/UX expert in the team can insist on requirement of that particular change and convince them to go for it… >> > As you are insisting that the team needs a UX expert, care to sponsor one? Can not possibly afford a full salary of a UI/UX expert on my own but sure I can help. But as I told to Konstantin Tokarev help about this subject can be found on universities… I believe there are really good last year students willing to prove and improve them selves, surely can do so by helping a big opensource project as this one. Regards, Emre Beşirik nomercy at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From martijn.buijs at gmail.com Wed Apr 6 13:03:13 2016 From: martijn.buijs at gmail.com (Martijn Buijs) Date: Wed, 6 Apr 2016 13:03:13 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <33964766.scc7hdVUok@tjmaciei-mobl4> <574144623.20160405201551@programist.ru> <0EF64E76-C30E-4A41-8841-141442937D11@gmail.com> <338906533.20160406015743@programist.ru> <40C5E9B4-5047-4434-B5EA-D6538A1ECAD2@gmail.com> <261F14F6-2560-4250-A1AE-7485DFE58CDC@gmail.com> <5018491459938995@web10o.yandex.ru> Message-ID: Don't worry about a dev denying your input. Put your energy in describing the improvements that you would like to have, either by words, movies, images, sketches and so on. Those are the things that will convince people that the change is beneficial and at some point will be implemented, if not by the devs of today, there will be some dev (maybe you?) tomorrow. Martijn On 6 April 2016 at 12:56, Emre Besirik wrote: > > On 06 Apr 2016, at 13:36, Konstantin Tokarev wrote: > > > I acknowlegde that writing a complete IDE is no easy task and I do > appreciate the team for doing it in the first place. and what I’m talking > about in the last couple of days are not intended to deminish their hard > work, its a fully functional IDE afterall. What I’m trying to say is either > the team is not big enough to handle things beyond core functionality or > simply there is no UI/UX expert to guide devs on user experience. it is not > a fault of anyone but just a fact that there is a need for a UI/UX expert. > > > I believe nobody here is denying significance of UX design in principle. > Are you going to recommend us some specific person? > > > No I don’t know anyone with UI/UX skills, but hey univercities can help > maybe? some students on their last year of related classes can maybe help? > > > otherwise we will have a fully functional, fully capable IDE that very small > amount of people will want to use. > > > Well, if it satisfies Qt and Qt Creator developers, plus a number of people > outside these teams, that's actually not a bad result for open source > project. If you want it to serve your needs too, go ahead and provide > patches. > > > Thats an option but there is again always the possiblity to work hard on > some things and a dev may not like your input and deny your patch(es) which > then would make your hard work a big waste of time... > > Regards, > Emre Beşirik > nomercy at gmail.com > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > From pr12og2 at programist.ru Wed Apr 6 13:47:06 2016 From: pr12og2 at programist.ru (Prav) Date: Wed, 6 Apr 2016 14:47:06 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <33964766.scc7hdVUok@tjmaciei-mobl4> <574144623.20160405201551@programist.ru> <0EF64E76-C30E-4A41-8841-141442937D11@gmail.com> <338906533.20160406015743@programist.ru> <40C5E9B4-5047-4434-B5EA-D6538A1ECAD2@gmail.com> <261F14F6-2560-4250-A1AE-7485DFE58CDC@gmail.com> <5018491459938995@web10o.yandex.ru> Message-ID: <10410581939.20160406144706@programist.ru> >> If you want it to serve your needs too, go ahead and provide patches. > Thats an option but there is again always the possiblity to work > hard on some things and a dev may not like your input and deny your > patch(es) which then would make your hard work a big waste of time... Emre Besirik, patches could be hard to do. But feature-request are easier. Or share more videos of usability cases (as you did before ... and which is by now the only thing which gave something as an output). But this should be some real cases. Not like ... whole UI/UX should be redone. Do them and after that we can judge how QtC and CLion are closer to each other based on number missing features ... not on someone’s opinion. >*its when you Ctrl / Cmd Click on some function and its already open > on the other splitview don’t open it in the clicked view, just go to > to corresponding line on the other screen for example >*its the open documents, tabless views (I know some people don’t > like it but many people got used to the tabs) I for example like to > work with implementations in one side and headers other but it is > really hard to first select the view you want the code to open in, I > don’t know how many times I opened in the wrong/unintended view, it is not user friendly >*its smart completions, IDE should offer me the most logical things >*first by maybe looking return types, context etc. JB products are very successfull on this subject. >*its that searching is not available everywhere, >*its when I search (rather filter in QtC) in preferences it should > go the extra mile and highlight where it found my keywords, it also > should search in places like keyboard shortcuts (inside of > preferences, deep search), go to where its found when I select the preference subject >*its trying to do importing necessary stuff automatically when it can >*its offering quick fixes as much as possible >*its not making me have to use my mouse as much as possible >*its making me use as less (no more than one actually) keystrokes > when I’m trying to use a keyboard shortcut (double esc’s then > something else, Ctrl+e then Ctrl+F4 etc…) OK ... be nice and fill feature-requests for your list! Or start like several discussion threads for each of your ideas one by one ... to make sure that each of these feature is really absent in QtC. It is impossible to discuss so many ideas in one thread ... it would be like mess ... no one could benefit from it. If you are not going to do this small steps it seems like you are trying to make a revolution which would start from the spark of your opinion (which is like definition of trolling). But who really need it? QtC devs and QtC users need evolution. Which mean steady growth of usability. I think you would not be able to start revolution. I think one person can only help evolution of such big thing as QtC. So I would suggest to use bugreports.qt.io ... or at least share videos with some usability cases and someone would fill the feature-request for you (as it was previously with multi-cursor video). I would say this is the only way for you to make any good for QtC. Another way you have ... is like If you want Qt lib to be supported by IDE with workflow and UI as CLion it seems more practical to ask CLion devs to add support for the Qt-lib than to ask QtC devs to rewrite the whole UI of QtC ... seem for me that it is less work for CLion devs comparing to QtC devs. Moreover CLion is not free so they have a motivation to sell IDE to Qt-lib users. QtC devs can only wish to make better QtC IDE by incorporating good features. Which means they need feature-requests. Revolutions are so rare to be successful ... so no one wish it. From berkayelbir at gmail.com Wed Apr 6 13:54:49 2016 From: berkayelbir at gmail.com (Berkay Elbir) Date: Wed, 6 Apr 2016 14:54:49 +0300 Subject: [Interest] QPalette or QLinearGradient does not work on sub widget In-Reply-To: <954F3AC9B636FB4F933D586E76E307EC61D841D7@USWCCEXC04> References: <954F3AC9B636FB4F933D586E76E307EC61D841D7@USWCCEXC04> Message-ID: Hello, Thank you for your answer. But I tried same code, still can not see color. I also fixed the size ui->colorBarWidget->setFixedSize(71,275); I put a button to test my widget is problem or not but it shows button. I do not understand. Is Your designer file different or what is the version of your qt? ​ My versions are 5.5.1 or 5.6.0 Thanks, Berkay On Thu, Mar 31, 2016 at 5:20 PM, Murphy, Sean wrote: > Try changing your setBrush line to: > > palette.setBrush(QPalette::Window, gradient); > > When I do that I get the following: > > > > Also, note that this line > > QLinearGradient gradient(ui->colorBarWidget->rect().topLeft(),ui-> > colorBarWidget->rect().topRight()); > > Depending on when you call it may not give you the results you’re > expecting. If I put your code in my MainWindow constructor I get the > picture above. This is because after construction, a resize event happens, > so the original gradient calculation was using a different rect width than > what the user sees. If you instead create a slot that is connected to a > single shot timer like so, you get a gradient that better utilizes the > widget’s size. > > > > #include "mainwindow.h" > > #include "ui_mainwindow.h" > > > > #include > > #include > > > > MainWindow::MainWindow(QWidget *parent) : > > QMainWindow(parent), > > ui(new Ui::MainWindow) > > { > > ui->setupUi(this); > > > > initTimer = new QTimer(this); > > connect(initTimer, SIGNAL(timeout()), SLOT(init())); > > initTimer->setSingleShot(true); > > initTimer->start(0); > > } > > > > MainWindow::~*MainWindow*() > > { > > delete ui; > > } > > > > void MainWindow::init() > > { > > QPalette palette; > > QLinearGradient gradient(ui->colorBarWidget->rect().topLeft(),ui-> > colorBarWidget->rect().topRight()); > > > > gradient.setColorAt(0, Qt::blue); > > gradient.setColorAt(0.2, Qt::green); > > gradient.setColorAt(0.4, Qt::red); > > gradient.setColorAt(0.6, Qt::yellow); > > gradient.setColorAt(1, Qt::cyan); > > palette.setBrush(QPalette::Window, gradient); > > > > ui->colorBarWidget->setPalette(palette); > > } > > > > > > If you want this gradient to be correct all the time, I think you’ll > either need to set that widget to a fixed size, or you’ll have to create > your own custom widget and overload resizeEvent(QResizeEvent*) to keep > recalculating the gradient when the widget gets resized. > > > > Sean > > > > *From:* Interest [mailto:interest-bounces+smurphy= > walbro.com at qt-project.org] *On Behalf Of * Berkay Elbir > *Sent:* Thursday, March 31, 2016 8:19 AM > *To:* interest at qt-project.org > *Subject:* [Interest] QPalette or QLinearGradient does not work on sub > widget > > > > Hello all, > > I want to ask a question about QPalette and QLinearGradient. > > I want to brush my sub widget with QLinerGradient. I have created ui by > using QtDesigner. > > [image: enter image description here] > > But I can not brush this widget by using this code.(ui.colorBarWidget is > normal QWidget was created by QtDesigner.) > > QPalette palette; > > QLinearGradient gradient(ui.colorBarWidget->rect().topLeft(),ui.colorBarWidget->rect().topRight()); > > > > gradient.setColorAt(0, Qt::blue); > > gradient.setColorAt(0.2, Qt::green); > > gradient.setColorAt(0.4, Qt::red); > > gradient.setColorAt(0.6, Qt::yellow); > > gradient.setColorAt(1, Qt::cyan); > > palette.setBrush(QPalette::Base, gradient); > > > > ui.colorBarWidget->setPalette(palette); > > In addition this code works in stand alone QWidget application.This is its > output: > > [image: enter image description here] > > But I can not do same thing in my design. I can do this with styleSheet > > ui.colorBarWidget->setStyleSheet( "background-color: qlineargradient( x1:0 y1:0, x2:0 y2:1, stop:0 blue, stop:1 red )" ); /* works */ > > but why I can not do this with QPalette. > > Thanks in advance. > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: mainWindow.PNG Type: image/png Size: 5630 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image002.png Type: image/png Size: 20734 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.png Type: image/png Size: 21116 bytes Desc: not available URL: From pr12og2 at programist.ru Wed Apr 6 13:57:46 2016 From: pr12og2 at programist.ru (Prav) Date: Wed, 6 Apr 2016 14:57:46 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <33964766.scc7hdVUok@tjmaciei-mobl4> <574144623.20160405201551@programist.ru> <0EF64E76-C30E-4A41-8841-141442937D11@gmail.com> <338906533.20160406015743@programist.ru> <40C5E9B4-5047-4434-B5EA-D6538A1ECAD2@gmail.com> <261F14F6-2560-4250-A1AE-7485DFE58CDC@gmail.com> <5018491459938995@web10o.yandex.ru> Message-ID: <106494161.20160406145746@programist.ru> > Don't worry about a dev denying your input. Put your energy in > describing the improvements that you would like to have, either by > words, movies, images, sketches and so on. Those are the things that > will convince people that the change is beneficial and at some point > will be implemented, if not by the devs of today, there will be some > dev (maybe you?) tomorrow. Martijn Buijs, totally agree. It is better not to discuss denying before it happened. Feeling of dissatisfaction have to be splitted to real understandable use cases. And only cases can be constructively discussed here and improved by devs. From diegoiast at gmail.com Wed Apr 6 15:44:58 2016 From: diegoiast at gmail.com (Diego Iastrubni) Date: Wed, 6 Apr 2016 16:44:58 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <13657962.YeXkntlIvO@tjmaciei-mobl4> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2327728.0KqbYtay3z@tjmaciei-mobl4> <13657962.YeXkntlIvO@tjmaciei-mobl4> Message-ID: On Tue, Apr 5, 2016 at 7:37 PM, Thiago Macieira wrote: > On terça-feira, 5 de abril de 2016 10:05:07 PDT Julius Bullinger wrote: > > On Monday, 4. April 2016 18:23, Thiago Macieira wrote: > > >> 9. Multiple cursors (see the demo on SublimeText's home page - its > > >> epic, > > >> and Atom badly implements it), > > > > > > Explain. Sounds intriguing. > > > > It's better shown than explained, see e.g. > > http://i.stack.imgur.com/TMRK3.gif and > > > https://packagecontrol.io/readmes/img/d346da37ce3d306f23f960f2a103fbc0f4562 > > 034.gif for examples. > > Interesting. I'd have worked around the issue by selecting the block and > telling Creator to replace "var " with "var _". > > This feature is capable of doing more: each cursor you see on screen, has it's own clipboard. What I usually use it for is: 1) take a CSV string and paste it into the editor 2) select, and inside the selection search for "," 3) create multiple cursors from the selections 4) press "del" - now list is line separated list. 5) now press control+left to select the previous word, copy it 6) press "up" and "paste" 7) now each line has the last word of the previous line. 8) now press "home" and type "" 9) press "end" and type "" 10) remember that undo works also on all cursors Hard to explain in pure text... VIM users will tell you this is doable from the editor since "ages", but it's not trivial to learn. This is not trivial to implement in QTextEditor, since it has a single QCursor (a deep dependency, which cannot be changed quite easily. Or can it...? -------------- next part -------------- An HTML attachment was scrubbed... URL: From duane.hebert at group-upc.com Wed Apr 6 16:35:51 2016 From: duane.hebert at group-upc.com (Duane) Date: Wed, 6 Apr 2016 10:35:51 -0400 Subject: [Interest] Return value from QProcess Message-ID: Qt 5.3, on TinyCore Linux 5 and Fedora 23. I'm currently using a call to std::system to load a module with insmod. This works but I would like to do it with QProcess. This also works but I can't seem to get the return value of the insmod call like I can with std::system. Any suggestions? From annulen at yandex.ru Wed Apr 6 16:39:28 2016 From: annulen at yandex.ru (Konstantin Tokarev) Date: Wed, 06 Apr 2016 17:39:28 +0300 Subject: [Interest] Return value from QProcess In-Reply-To: References: Message-ID: <4189401459953568@web21m.yandex.ru> 06.04.2016, 17:36, "Duane" : > Qt 5.3, on TinyCore Linux 5 and Fedora 23. > > I'm currently using a call to std::system to load a module with insmod. >   This works but I would like to do it with QProcess. Why? > This also works > but I can't seem to get the return value of the insmod call like I can > with std::system. Any suggestions? QProcess::exitCode() > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -- Regards, Konstantin From duane.hebert at group-upc.com Wed Apr 6 16:47:39 2016 From: duane.hebert at group-upc.com (Duane) Date: Wed, 6 Apr 2016 10:47:39 -0400 Subject: [Interest] Return value from QProcess In-Reply-To: <4189401459953568@web21m.yandex.ru> References: <4189401459953568@web21m.yandex.ru> Message-ID: On 06/04/2016 10:39 AM, Konstantin Tokarev wrote: > > > 06.04.2016, 17:36, "Duane" : >> Qt 5.3, on TinyCore Linux 5 and Fedora 23. >> >> I'm currently using a call to std::system to load a module with insmod. >> This works but I would like to do it with QProcess. > > Why? > I want to wait for finished with a timeout. >> This also works >> but I can't seem to get the return value of the insmod call like I can >> with std::system. Any suggestions? > > QProcess::exitCode() > This works in the sense that it returns 0 when there's no error but it doesn't seem to return the return value from insmod. For example, insmod returns 4531 when the file is already loaded but QProcess::exitCode is 17. I can rmmod module I guess. From pr12og2 at programist.ru Wed Apr 6 16:47:32 2016 From: pr12og2 at programist.ru (Prav) Date: Wed, 6 Apr 2016 17:47:32 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2327728.0KqbYtay3z@tjmaciei-mobl4> <13657962.YeXkntlIvO@tjmaciei-mobl4> Message-ID: <1301891415.20160406174732@programist.ru> > This is not trivial to implement in QTextEditor, since it has a single QCursor (a deep dependency, which cannot be changed quite easily. Or can it...? May we better start special thread for this feature? Because current thread theme looks like more generous question. From andre at familiesomers.nl Wed Apr 6 17:06:54 2016 From: andre at familiesomers.nl (=?UTF-8?Q?Andr=c3=a9_Somers?=) Date: Wed, 6 Apr 2016 17:06:54 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2327728.0KqbYtay3z@tjmaciei-mobl4> <13657962.YeXkntlIvO@tjmaciei-mobl4> Message-ID: <5705260E.1050107@familiesomers.nl> Op 06/04/2016 om 15:44 schreef Diego Iastrubni: > > This is not trivial to implement in QTextEditor, since it has a single > QCursor (a deep dependency, which cannot be changed quite easily. Or > can it...? > Perhaps it is me, but I think QTextCursor is designed for this purpose? You can create many on the same document. And QCursor is a class to deal with the mouse pointer, not text cursors. André From robert_buchinger at gmx.at Wed Apr 6 17:09:44 2016 From: robert_buchinger at gmx.at (Robert Buchinger) Date: Wed, 06 Apr 2016 17:09:44 +0200 Subject: [Interest] Return value from QProcess In-Reply-To: References: <4189401459953568@web21m.yandex.ru> Message-ID: <15873464.rk31Cxv0t1@devrobert> On Wednesday, April 6, 2016 10:47:39 AM CEST Duane wrote: > On 06/04/2016 10:39 AM, Konstantin Tokarev wrote: > > > > > > 06.04.2016, 17:36, "Duane" : > >> Qt 5.3, on TinyCore Linux 5 and Fedora 23. > >> > >> I'm currently using a call to std::system to load a module with insmod. > >> This works but I would like to do it with QProcess. > > > > Why? > > > > > I want to wait for finished with a timeout. > > >> This also works > >> but I can't seem to get the return value of the insmod call like I can > >> with std::system. Any suggestions? > > > > QProcess::exitCode() > > > > > This works in the sense that it returns 0 when there's no error but it > doesn't seem to return the return value from insmod. For example, > insmod returns 4531 when the file is already loaded but > QProcess::exitCode is 17. I can rmmod module I guess. > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > http://doc.qt.io/qt-5/qprocess.html#waitForFinished should be what you are looking for. You also could connect the finished signal which is emitted as soon as the QProcess has finished (http://doc.qt.io/qt-5/qprocess.html#finished) From duane.hebert at group-upc.com Wed Apr 6 17:15:33 2016 From: duane.hebert at group-upc.com (Duane) Date: Wed, 6 Apr 2016 11:15:33 -0400 Subject: [Interest] Return value from QProcess In-Reply-To: <15873464.rk31Cxv0t1@devrobert> References: <4189401459953568@web21m.yandex.ru> <15873464.rk31Cxv0t1@devrobert> Message-ID: On 06/04/2016 11:09 AM, Robert Buchinger wrote: > On Wednesday, April 6, 2016 10:47:39 AM CEST Duane wrote: >> On 06/04/2016 10:39 AM, Konstantin Tokarev wrote: >>> >>> >>> 06.04.2016, 17:36, "Duane" : >>>> Qt 5.3, on TinyCore Linux 5 and Fedora 23. >>>> >>>> I'm currently using a call to std::system to load a module with insmod. >>>> This works but I would like to do it with QProcess. >>> >>> Why? >>> >> >> >> I want to wait for finished with a timeout. >> >>>> This also works >>>> but I can't seem to get the return value of the insmod call like I can >>>> with std::system. Any suggestions? >>> >>> QProcess::exitCode() >>> >> >> >> This works in the sense that it returns 0 when there's no error but it >> doesn't seem to return the return value from insmod. For example, >> insmod returns 4531 when the file is already loaded but >> QProcess::exitCode is 17. I can rmmod module I guess. >> >> >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest >> > > http://doc.qt.io/qt-5/qprocess.html#waitForFinished should be what you are looking for. > > You also could connect the finished signal which is emitted as soon as the QProcess has finished (http://doc.qt.io/qt-5/qprocess.html#finished) > > I'm using waitForFinished(). This is working well. But I wanted to inspect the error so that I could determine if the failure was that the module was already loaded, in which case all is good, or there was a real failure. My app should be the only one using this particular module so I can just call rmmod first. Then any non-zero return would be an error. Mostly I was looking for why the actual return value of insmod wasn't returned. From thiago.macieira at intel.com Wed Apr 6 17:47:58 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Wed, 06 Apr 2016 08:47:58 -0700 Subject: [Interest] Return value from QProcess In-Reply-To: References: <4189401459953568@web21m.yandex.ru> Message-ID: <2674492.AFPes6Mjy7@tjmaciei-mobl4> On quarta-feira, 6 de abril de 2016 10:47:39 PDT Duane wrote: > This works in the sense that it returns 0 when there's no error but it > doesn't seem to return the return value from insmod. For example, > insmod returns 4531 when the file is already loaded but > QProcess::exitCode is 17. I can rmmod module I guess. The error code cannot be 4531. There aren't enough bits in the kernel structure that returns status codes. /* If WIFEXITED(STATUS), the low-order 8 bits of the status. */ #define __WEXITSTATUS(status) (((status) & 0xff00) >> 8) -- Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org Software Architect - Intel Open Source Technology Center From thiago.macieira at intel.com Wed Apr 6 19:22:32 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Wed, 06 Apr 2016 10:22:32 -0700 Subject: [Interest] Return value from QProcess In-Reply-To: <2674492.AFPes6Mjy7@tjmaciei-mobl4> References: <2674492.AFPes6Mjy7@tjmaciei-mobl4> Message-ID: <1592771.tehe8UqNvP@tjmaciei-mobl4> On quarta-feira, 6 de abril de 2016 08:47:58 PDT Thiago Macieira wrote: > On quarta-feira, 6 de abril de 2016 10:47:39 PDT Duane wrote: > > This works in the sense that it returns 0 when there's no error but it > > doesn't seem to return the return value from insmod. For example, > > insmod returns 4531 when the file is already loaded but > > QProcess::exitCode is 17. I can rmmod module I guess. > > The error code cannot be 4531. There aren't enough bits in the kernel > structure that returns status codes. > > /* If WIFEXITED(STATUS), the low-order 8 bits of the status. */ > #define __WEXITSTATUS(status) (((status) & 0xff00) >> 8) BTW $ printf %x\\n 4531 11b3 0x11 is 17. So QProcess is correct. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From duane.hebert at group-upc.com Wed Apr 6 19:26:30 2016 From: duane.hebert at group-upc.com (Duane) Date: Wed, 6 Apr 2016 13:26:30 -0400 Subject: [Interest] Return value from QProcess In-Reply-To: <2674492.AFPes6Mjy7@tjmaciei-mobl4> References: <4189401459953568@web21m.yandex.ru> <2674492.AFPes6Mjy7@tjmaciei-mobl4> Message-ID: On 06/04/2016 11:47 AM, Thiago Macieira wrote: > On quarta-feira, 6 de abril de 2016 10:47:39 PDT Duane wrote: >> This works in the sense that it returns 0 when there's no error but it >> doesn't seem to return the return value from insmod. For example, >> insmod returns 4531 when the file is already loaded but >> QProcess::exitCode is 17. I can rmmod module I guess. > > The error code cannot be 4531. There aren't enough bits in the kernel > structure that returns status codes. > > /* If WIFEXITED(STATUS), the low-order 8 bits of the status. */ > #define __WEXITSTATUS(status) (((status) & 0xff00) >> 8) > 4352. Sorry typo. Using this call: int res = std::system("/sbin/insmod /mnt/sdb1/uio_netx.ko"); Anyway, I don't really need to do this. I use this to load a Profibus mini pci module. When the module isn't loaded I get a failure trying to initialize the "board" that's more explicit. From jerome at bodycad.com Wed Apr 6 21:00:01 2016 From: jerome at bodycad.com (=?UTF-8?B?SsOpcsO0bWUgR29kYm91dA==?=) Date: Wed, 6 Apr 2016 15:00:01 -0400 Subject: [Interest] Return value from QProcess In-Reply-To: References: <4189401459953568@web21m.yandex.ru> <2674492.AFPes6Mjy7@tjmaciei-mobl4> Message-ID: You should use a more complete bash command that perform the insert mod, not an actual command but just the raw idea here: if [[ $(lsmod | grep "Profibus") != "ProfileBus" ]]; then insmod Profibus fi Maybe you should check with modprobe to check if the -i or -f flag can help you to get proper behavior. That way your command will return error only when the insert fail and you will not insert mod when already there. On Wed, Apr 6, 2016 at 1:26 PM, Duane wrote: > On 06/04/2016 11:47 AM, Thiago Macieira wrote: > >> On quarta-feira, 6 de abril de 2016 10:47:39 PDT Duane wrote: >> >>> This works in the sense that it returns 0 when there's no error but it >>> doesn't seem to return the return value from insmod. For example, >>> insmod returns 4531 when the file is already loaded but >>> QProcess::exitCode is 17. I can rmmod module I guess. >>> >> >> The error code cannot be 4531. There aren't enough bits in the kernel >> structure that returns status codes. >> >> /* If WIFEXITED(STATUS), the low-order 8 bits of the status. */ >> #define __WEXITSTATUS(status) (((status) & 0xff00) >> 8) >> >> > 4352. Sorry typo. > > Using this call: > int res = std::system("/sbin/insmod /mnt/sdb1/uio_netx.ko"); > > Anyway, I don't really need to do this. I use this to load a Profibus > mini pci module. When the module isn't loaded I get a failure trying to > initialize the "board" that's more explicit. > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > -------------- next part -------------- An HTML attachment was scrubbed... URL: From imikejackson at gmail.com Wed Apr 6 21:33:14 2016 From: imikejackson at gmail.com (Mike Jackson) Date: Wed, 06 Apr 2016 15:33:14 -0400 Subject: [Interest] Qt 5.6.0 Offline Installer in "Headless" or "Automated" mode Message-ID: <5705647A.80603@gmail.com> Is there a way to launch the Qt 5.6.0 offline installer in such a way so that the gui either does not launch or all the options that I need are selected/deselected/Filled in and the installer automatically installs Qt where I want it installed? Our own SDK depends on Qt and I would love to be able to just have our developers use a single installer instead of installing our SDK, then using the Qt offline installer after that. Thanks Mike Jackson -------------- next part -------------- An HTML attachment was scrubbed... URL: From sylvain.pointeau at gmail.com Thu Apr 7 09:38:01 2016 From: sylvain.pointeau at gmail.com (Sylvain Pointeau) Date: Thu, 7 Apr 2016 09:38:01 +0200 Subject: [Interest] qtwebview with qtwebchannel In-Reply-To: References: <201603311646.59172.kde@carewolf.com> <1567148.0iQSWJnVrW@milian-kdab2> Message-ID: Hello, Do you have any idea how to use WebSocket or WebChannel on iOS? Should I conclude that we cannot do hybrid apps with Qt on iOS (works on desktop, don't know about Android)? Best regards, Sylvain On Thu, Mar 31, 2016 at 5:43 PM, Sylvain Pointeau < sylvain.pointeau at gmail.com> wrote: > > I tried to set-up a WebSocketServer, transmit the server url to the > WebView page url. and connect to the socket server via a web socket in > javascript (within the WebView) > (idea taken from > http://blog.qt.io/blog/2011/08/31/an-oldnew-approach-to-qtwebkit-hybrid/) > > *on mac os x, it works fine,* > *on iOS, it does not work*, the socket closes immediately* (note: socket > works when opened with the url "ws://echo.websocket.org > ")* > > QML code is: > > import Qt.labs.controls 1.0 > > import QtQuick 2.0 > > import QtWebSockets 1.0 > > import QtWebView 1.1 > > > ApplicationWindow { > > visible: true > > title: webView.title > > > function appendMessage(message) { > > messageBox.text += "\n" + message > > } > > > WebSocketServer { > > id: server > > listen: true > > onClientConnected: { > > webSocket.onTextMessageReceived.connect(function(message) { > > appendMessage(qsTr("Server received message: %1").arg(message)); > > webSocket.sendTextMessage(qsTr("Hello Client!")); > > }); > > } > > onErrorStringChanged: { > > appendMessage(qsTr("Server error: %1").arg(errorString)); > > } > > } > > > Text { > > id: messageBox > > text: server.url > > x: 0 > > width: parent.width > > y: parent.y + parent.height/2 > > height: parent.height/2 > > } > > > WebView { > > id: webView > > x: 0 > > width: parent.width > > y: 0 > > height: parent.height/2 > > url: "file:///MYPATH/web/index.html?socketurl="+server.url > > } > > } > > > > HTML code is: > > > > > > > Sample "Hello, World" Application > > > > > > > >

Sample "Hello, World" Application

> >

This is the home page for the HelloWorld Web application.

> > > > > > > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sylvain.pointeau at gmail.com Thu Apr 7 13:17:42 2016 From: sylvain.pointeau at gmail.com (Sylvain Pointeau) Date: Thu, 7 Apr 2016 13:17:42 +0200 Subject: [Interest] qtwebview with qtwebchannel In-Reply-To: <1673058.V8R7eHGYqz@milian-kdab2> References: <1673058.V8R7eHGYqz@milian-kdab2> Message-ID: On Thu, Apr 7, 2016 at 11:23 AM, Milian Wolff wrote: > On Thursday, April 7, 2016 9:38:01 AM CEST Sylvain Pointeau wrote: > > Hello, > > > > Do you have any idea how to use WebSocket or WebChannel on iOS? > > Should I conclude that we cannot do hybrid apps with Qt on iOS (works on > > desktop, don't know about Android)? > > I'm not an iOS person but the problem you are describing has nothing to do > with the webchannel - you seem to fail already when constructing a > websocket > server. Have you tried to run the examples/tests of QWebSocket on iOS? > That's > where I'd start. > WebSocketServer works if the QML application creates the websocket and connects to it. However it does not work if we connect from html as shown in my example copied in my previous email. Best regards, Sylvain -------------- next part -------------- An HTML attachment was scrubbed... URL: From jerome.archlinux at gmail.com Thu Apr 7 13:25:28 2016 From: jerome.archlinux at gmail.com (=?UTF-8?Q?J=c3=a9r=c3=b4me_Lanteri?=) Date: Thu, 7 Apr 2016 18:25:28 +0700 Subject: [Interest] (no subject) Message-ID: <570643A8.4040901@gmail.com> If camera example from QT official example (QtWidget code) is runing but show me a black screen instead fo images from camera (and QML example code works fine, with same material, same computer, works fine). How can i find/resolve this problem ? (i'm searching for a way to debug this) Is there someone here who is reading and able to tell me the difference of practice/do show images from camera to the screen between QML and QWidget code ? thank you for your answer. From duane.hebert at group-upc.com Thu Apr 7 14:36:03 2016 From: duane.hebert at group-upc.com (Duane) Date: Thu, 7 Apr 2016 08:36:03 -0400 Subject: [Interest] Return value from QProcess In-Reply-To: References: <4189401459953568@web21m.yandex.ru> <2674492.AFPes6Mjy7@tjmaciei-mobl4> Message-ID: On 06/04/2016 3:00 PM, Jérôme Godbout wrote: > You should use a more complete bash command that perform the insert mod, > not an actual command but just the raw idea here: > > if [[ $(lsmod | grep "Profibus") != "ProfileBus" ]]; then insmod Profibus fi > > Maybe you should check with modprobe to check if the -i or -f flag can > help you to get proper behavior. > > That way your command will return error only when the insert fail and > you will not insert mod when already there. > Thanks. I've done something similar. From duane.hebert at group-upc.com Thu Apr 7 14:47:05 2016 From: duane.hebert at group-upc.com (Duane) Date: Thu, 7 Apr 2016 08:47:05 -0400 Subject: [Interest] Return value from QProcess In-Reply-To: <1592771.tehe8UqNvP@tjmaciei-mobl4> References: <2674492.AFPes6Mjy7@tjmaciei-mobl4> <1592771.tehe8UqNvP@tjmaciei-mobl4> Message-ID: On 06/04/2016 1:22 PM, Thiago Macieira wrote: > On quarta-feira, 6 de abril de 2016 08:47:58 PDT Thiago Macieira wrote: >> On quarta-feira, 6 de abril de 2016 10:47:39 PDT Duane wrote: >>> This works in the sense that it returns 0 when there's no error but it >>> doesn't seem to return the return value from insmod. For example, >>> insmod returns 4531 when the file is already loaded but >>> QProcess::exitCode is 17. I can rmmod module I guess. >> >> The error code cannot be 4531. There aren't enough bits in the kernel >> structure that returns status codes. >> >> /* If WIFEXITED(STATUS), the low-order 8 bits of the status. */ >> #define __WEXITSTATUS(status) (((status) & 0xff00) >> 8) > > BTW > > $ printf %x\\n 4531 > 11b3 > > 0x11 is 17. So QProcess is correct. > Thanks. Actually 4531 was a typo. It returns 4352 which is 1100. So that explains it. std::system is returning it as an int. But then again, QProcess::exitCode() is supposed to be returning it as an int as well... From pgroen at osdev.nl Thu Apr 7 15:38:03 2016 From: pgroen at osdev.nl (Peter M. Groen) Date: Thu, 7 Apr 2016 15:38:03 +0200 Subject: [Interest] Signal Slot Ordering (or Not) Message-ID: <20160407153803.6dfc29bb@701030325dev64.rend> In a simple setup ( One sender object with a signal, One receiver with a slot, argument is sequence number, both objects running in a single thread ) some unexpected behaviour (at least for me) is noticed. The connect between the mentioned signal / slot is done with Qt::DirectConnection. According to the documentation, each slot is called directly. ( The slot is invoked immediately when the signal is emitted. The slot is executed in the signalling thread. ) In a for-loop, I'm sending 10 signals directly in one burst, like so : for( int nCount = 0; nCount < number_of_signals; nCount++ ) { std::cout << "[SignalSender::timerTimeOut] - " << QString( "Signal Sending. Timer : %1, Run : %2, Sequence : %3" ) .arg( timer_interval_msecs ) .arg( run_number ) .arg( nCount ).toStdString() << std::endl; emit signalSendSequence( timer_interval_msecs, run_number, nCount ); QCoreApplication::processEvents(); } I'm expecting the output would be in ascending order, but every once in a while, the output is all thrown together. That is quite unexpected, based on the documentation. Is this a bug, or by design? Regards, -- Open Systems Development Peter M. Groen Het Buitenwater 54 2235 TB Valkenburg (ZH) Mob : +31 6 811 0 3537 Email : peter at osdev.nl Skype : peter_m_groen From asmaloney at gmail.com Thu Apr 7 15:39:16 2016 From: asmaloney at gmail.com (Andy) Date: Thu, 7 Apr 2016 09:39:16 -0400 Subject: [Interest] [Qt3D] Use a QImage as a QTextureImage In-Reply-To: References: Message-ID: [bump] Does anyone have any suggestions on how to use an in-memory QImage as a QTextureImage? Or any other way to create a QNormalDiffuseMapAlphaMaterial from an in-memory QImage? I must be missing something obvious. --- Andy Maloney // https://asmaloney.com twitter ~ @asmaloney On Tue, Apr 5, 2016 at 8:30 AM, Andy wrote: > I have a QImage that I'm generating programmatically using a QPainter > which I want to use as a texture. > > I want to use it in a QNormalDiffuseMapAlphaMaterial as a diffuse texture > - so it needs a QTextureImage whose source is set using a QUrl. > > How do I get from my in-memory QImage to a QUrl to set this source? Or is > there another path I'm missing to accomplish this? > > I'm also going to want to render text as a billboard - is this the right > way to do it too? (Generate into a QImage with QPainter and use textures > on a QPlaneMesh?) > > (C++, not QML) > > Thanks! > > --- > Andy Maloney // https://asmaloney.com > twitter ~ @asmaloney > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From thiago.macieira at intel.com Thu Apr 7 18:16:57 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Thu, 07 Apr 2016 09:16:57 -0700 Subject: [Interest] Return value from QProcess In-Reply-To: References: <1592771.tehe8UqNvP@tjmaciei-mobl4> Message-ID: <3065080.o77rZnN15y@tjmaciei-mobl4> On quinta-feira, 7 de abril de 2016 08:47:05 PDT Duane wrote: > >> /* If WIFEXITED(STATUS), the low-order 8 bits of the status. */ > >> #define __WEXITSTATUS(status) (((status) & 0xff00) >> 8) > > > > BTW > > > > $ printf %x\\n 4531 > > 11b3 > > > > 0x11 is 17. So QProcess is correct. > > Thanks. Actually 4531 was a typo. It returns 4352 which is 1100. > So that explains it. std::system is returning it as an int. But then > again, QProcess::exitCode() is supposed to be returning it as an int as > well... It does and is correct. Both have correct return values. Your code dealing with system wasn't. You were supposed to use WEXITSTATUS on the int it returned to obtain the return code. From the system(3) man page: In the last two cases, the return value is a "wait status" that can be examined using the macros described in waitpid(2). (i.e., WIFEXITED(), WEXITSTATUS(), and so on). -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From thiago.macieira at intel.com Thu Apr 7 18:18:41 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Thu, 07 Apr 2016 09:18:41 -0700 Subject: [Interest] Signal Slot Ordering (or Not) In-Reply-To: <20160407153803.6dfc29bb@701030325dev64.rend> References: <20160407153803.6dfc29bb@701030325dev64.rend> Message-ID: <5377795.zOS52rqQVP@tjmaciei-mobl4> On quinta-feira, 7 de abril de 2016 15:38:03 PDT Peter M. Groen wrote: > I'm expecting the output would be in ascending order, but every once in > a while, the output is all thrown together. That is quite unexpected, > based on the documentation. > > Is this a bug, or by design? It's a bug in your code, in a section you didn't include in your paste, or that call to processEvents(). -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From berkayelbir at gmail.com Thu Apr 7 18:47:47 2016 From: berkayelbir at gmail.com (Berkay Elbir) Date: Thu, 7 Apr 2016 19:47:47 +0300 Subject: [Interest] QPalette or QLinearGradient does not work on sub widget In-Reply-To: References: <954F3AC9B636FB4F933D586E76E307EC61D841D7@USWCCEXC04> Message-ID: <022E88A9-F0B0-4E55-A7E5-C405D4C2551D@gmail.com> Finally, I solved it. When I use ui->colorBarWidget->setAutoFillBackground(true) , all colours are visible. This is default false. In addition, you are right about size. Thank you very much. > On 06 Apr 2016, at 14:54, Berkay Elbir wrote: > > Hello, > > Thank you for your answer. But I tried same code, still can not see color. I also fixed the size > > ui->colorBarWidget->setFixedSize(71,275); > > I put a button to test my widget is problem or not but it shows button. I do not understand. Is Your designer file different or what is the version of your qt? > > > ​ > > > My versions are 5.5.1 or 5.6.0 > > Thanks, > > Berkay > > On Thu, Mar 31, 2016 at 5:20 PM, Murphy, Sean > wrote: > Try changing your setBrush line to: > > palette.setBrush(QPalette::Window, gradient); > > When I do that I get the following: > > > > > > Also, note that this line > > QLinearGradient gradient(ui->colorBarWidget->rect().topLeft(),ui->colorBarWidget->rect().topRight()); > > Depending on when you call it may not give you the results you’re expecting. If I put your code in my MainWindow constructor I get the picture above. This is because after construction, a resize event happens, so the original gradient calculation was using a different rect width than what the user sees. If you instead create a slot that is connected to a single shot timer like so, you get a gradient that better utilizes the widget’s size. > > > > #include "mainwindow.h" > > #include "ui_mainwindow.h" > > > > #include > > #include > > > > MainWindow::MainWindow(QWidget *parent) : > > QMainWindow(parent), > > ui(new Ui::MainWindow) > > { > > ui->setupUi(this); > > > > initTimer = new QTimer(this); > > connect(initTimer, SIGNAL(timeout()), SLOT(init())); > > initTimer->setSingleShot(true); > > initTimer->start(0); > > } > > > > MainWindow::~MainWindow() > > { > > delete ui; > > } > > > > void MainWindow::init() > > { > > QPalette palette; > > QLinearGradient gradient(ui->colorBarWidget->rect().topLeft(),ui->colorBarWidget->rect().topRight()); > > > > gradient.setColorAt(0, Qt::blue); > > gradient.setColorAt(0.2, Qt::green); > > gradient.setColorAt(0.4, Qt::red); > > gradient.setColorAt(0.6, Qt::yellow); > > gradient.setColorAt(1, Qt::cyan); > > palette.setBrush(QPalette::Window, gradient); > > > > ui->colorBarWidget->setPalette(palette); > > } > > > > > > > > If you want this gradient to be correct all the time, I think you’ll either need to set that widget to a fixed size, or you’ll have to create your own custom widget and overload resizeEvent(QResizeEvent*) to keep recalculating the gradient when the widget gets resized. > > > > Sean > > > > From: Interest [mailto:interest-bounces+smurphy =walbro.com at qt-project.org ] On Behalf Of Berkay Elbir > Sent: Thursday, March 31, 2016 8:19 AM > To: interest at qt-project.org > Subject: [Interest] QPalette or QLinearGradient does not work on sub widget > > > > Hello all, > > I want to ask a question about QPalette and QLinearGradient. > > I want to brush my sub widget with QLinerGradient. I have created ui by using QtDesigner. > > > But I can not brush this widget by using this code.(ui.colorBarWidget is normal QWidget was created by QtDesigner.) > > QPalette palette; > QLinearGradient gradient(ui.colorBarWidget->rect().topLeft(),ui.colorBarWidget->rect().topRight()); > > gradient.setColorAt(0, Qt::blue); > gradient.setColorAt(0.2, Qt::green); > gradient.setColorAt(0.4, Qt::red); > gradient.setColorAt(0.6, Qt::yellow); > gradient.setColorAt(1, Qt::cyan); > palette.setBrush(QPalette::Base, gradient); > > ui.colorBarWidget->setPalette(palette); > In addition this code works in stand alone QWidget application.This is its output: > > > But I can not do same thing in my design. I can do this with styleSheet > > ui.colorBarWidget->setStyleSheet( "background-color: qlineargradient( x1:0 y1:0, x2:0 y2:1, stop:0 blue, stop:1 red )" ); /* works */ > but why I can not do this with QPalette. > > Thanks in advance. > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From shaan7in at gmail.com Thu Apr 7 19:25:38 2016 From: shaan7in at gmail.com (Shantanu Tushar) Date: Thu, 7 Apr 2016 22:55:38 +0530 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> <1AF8E12B-8125-4D1C-9326-7BD288D19394@imaginando.pt> Message-ID: Hi, On Tue, Apr 5, 2016 at 7:08 PM, NoMercy wrote: > I totally disagree with you here, JB products are way faster in code > completion for instance and WAAAAY smarter... > He was talking about load times and stuff. I've used a couple of JetBrains products at work (PyCharm, Rubymine) and they are damn slow (compared to native IDEs like Creator or VS) to load and eat memory like I eat cakes. You're right when you say that JetBrains products are way smarter (after all, thats what their whole business model is about), but Nuno is right about the load times. > On Tue, Apr 5, 2016 at 4:34 PM, Nuno Santos > wrote: > >> On 05 Apr 2016, at 14:19, NoMercy wrote: >> >> people are practically begging jetbrains to save themselves from >> QtCreator (no offense intended but this is the case for many people) >> >> >> Sorry to interfere here but I couldn’t read this without sharing my >> thoughts. Qt Creator is simply the most straightforward IDE around. >> >> All IDE based in Java simply suck because they are all slow like a >> turtle. I personally hate any kind of Java based software because of the >> performance impact. >> >> It is also a paradox a JET brain software using Java to support it. A JET >> brain cannot wait for Java to render. :) >> >> >> >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest >> >> > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -- Shantanu Tushar (UTC +0530) shantanu.io -------------- next part -------------- An HTML attachment was scrubbed... URL: From annulen at yandex.ru Thu Apr 7 19:37:52 2016 From: annulen at yandex.ru (Konstantin Tokarev) Date: Thu, 07 Apr 2016 20:37:52 +0300 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <1F717002-A7C0-4D4D-8582-B93EDD6F0512@gmail.com> <23E05B82-F4D9-4AC4-8B73-23EE1DD54F2F@gmail.com> <1AF8E12B-8125-4D1C-9326-7BD288D19394@imaginando.pt> Message-ID: <449471460050672@web24g.yandex.ru> 07.04.2016, 20:26, "Shantanu Tushar" : > Hi, > > On Tue, Apr 5, 2016 at 7:08 PM, NoMercy wrote: >> I totally disagree with you here, JB products are way faster in code completion for instance and WAAAAY smarter... > > He was talking about load times and stuff. I've used a couple of JetBrains products at work (PyCharm, Rubymine) and they are damn slow (compared to native IDEs like Creator or VS) to load and eat memory like I eat cakes. You're right when you say that JetBrains products are way smarter (after all, thats what their whole business model is about), but Nuno is right about the load times. Well, if you compare with NetBeans, Idea is quite fast :) > >> On Tue, Apr 5, 2016 at 4:34 PM, Nuno Santos wrote: >>>> On 05 Apr 2016, at 14:19, NoMercy wrote: >>>> >>>> people are practically begging jetbrains to save themselves from QtCreator (no offense intended but this is the case for many people) >>> Sorry to interfere here but I couldn’t read this without sharing my thoughts. Qt Creator is simply the most straightforward IDE around. >>> >>> All IDE based in Java simply suck because they are all slow like a turtle. I personally hate any kind of Java based software because of the performance impact. >>> >>> It is also a paradox a JET brain software using Java to support it. A JET brain cannot wait for Java to render. :) >>> >>> _______________________________________________ >>> Interest mailing list >>> Interest at qt-project.org >>> http://lists.qt-project.org/mailman/listinfo/interest >> >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest > > -- > Shantanu Tushar    (UTC +0530) > shantanu.io > , > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -- Regards, Konstantin From duane.hebert at group-upc.com Thu Apr 7 21:40:59 2016 From: duane.hebert at group-upc.com (Duane) Date: Thu, 7 Apr 2016 15:40:59 -0400 Subject: [Interest] Return value from QProcess In-Reply-To: <3065080.o77rZnN15y@tjmaciei-mobl4> References: <1592771.tehe8UqNvP@tjmaciei-mobl4> <3065080.o77rZnN15y@tjmaciei-mobl4> Message-ID: On 07/04/2016 12:16 PM, Thiago Macieira wrote: > On quinta-feira, 7 de abril de 2016 08:47:05 PDT Duane wrote: >>>> /* If WIFEXITED(STATUS), the low-order 8 bits of the status. */ >>>> #define __WEXITSTATUS(status) (((status) & 0xff00) >> 8) >>> >>> BTW >>> >>> $ printf %x\\n 4531 >>> 11b3 >>> >>> 0x11 is 17. So QProcess is correct. >> >> Thanks. Actually 4531 was a typo. It returns 4352 which is 1100. >> So that explains it. std::system is returning it as an int. But then >> again, QProcess::exitCode() is supposed to be returning it as an int as >> well... > > It does and is correct. Both have correct return values. > > Your code dealing with system wasn't. You were supposed to use WEXITSTATUS on > the int it returned to obtain the return code. From the system(3) man page: > > In the last two cases, the return value is a "wait status" that can > be examined using the macros described in waitpid(2). (i.e., > WIFEXITED(), WEXITSTATUS(), and so on). > > Ok thanks. From thiago.macieira at intel.com Thu Apr 7 22:29:37 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Thu, 07 Apr 2016 13:29:37 -0700 Subject: [Interest] Return value from QProcess In-Reply-To: References: <3065080.o77rZnN15y@tjmaciei-mobl4> Message-ID: <19240970.TmUQ0EezhA@tjmaciei-mobl4> On quinta-feira, 7 de abril de 2016 15:40:59 PDT Duane wrote: > > In the last two cases, the return value is a "wait status" that > > can > > be examined using the macros described in waitpid(2). (i.e., > > WIFEXITED(), WEXITSTATUS(), and so on). > > Ok thanks. You can easily tell with: int x = system("exit 42"); qDebug() << x; // prints 10752 -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From sean.harmer at kdab.com Thu Apr 7 23:32:48 2016 From: sean.harmer at kdab.com (Sean Harmer) Date: Thu, 7 Apr 2016 22:32:48 +0100 Subject: [Interest] [Qt3D] Use a QImage as a QTextureImage In-Reply-To: References: Message-ID: <5706D200.1060903@kdab.com> Hi Andy, sorry forgot to reply to this. You can use the functor of QTextureImage and either pass your pre-prepared image in a as a member of your custom functor or you can do the actual painting using QPainter in the functors function call operator. We aim to eventually add a convenience class for this, QPaintedTextureImage or similar, kind of analogous to QQuickPaintedItem. Cheers, Sean On 07/04/2016 14:39, Andy wrote: > [bump] > > Does anyone have any suggestions on how to use an in-memory QImage as > a QTextureImage? Or any other way to create a > QNormalDiffuseMapAlphaMaterial from an in-memory QImage? I must be > missing something obvious. > > --- > Andy Maloney // https://asmaloney.com > twitter ~ @asmaloney > > > On Tue, Apr 5, 2016 at 8:30 AM, Andy > wrote: > > I have a QImage that I'm generating programmatically using a > QPainter which I want to use as a texture. > > I want to use it in a QNormalDiffuseMapAlphaMaterial as a diffuse > texture - so it needs a QTextureImage whose source is set using a > QUrl. > > How do I get from my in-memory QImage to a QUrl to set this > source? Or is there another path I'm missing to accomplish this? > > I'm also going to want to render text as a billboard - is this the > right way to do it too? (Generate into a QImage with QPainter and > use textures on a QPlaneMesh?) > > (C++, not QML) > > Thanks! > > --- > Andy Maloney // https://asmaloney.com > twitter ~ @asmaloney > > > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -- Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK KDAB (UK) Ltd, a KDAB Group company Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090 Mobile: +44 (0)7545 140604 KDAB - Qt Experts -------------- next part -------------- An HTML attachment was scrubbed... URL: From dragor at shaw.ca Fri Apr 8 01:15:27 2016 From: dragor at shaw.ca (Lorne Sturtevant) Date: Thu, 7 Apr 2016 17:15:27 -0600 Subject: [Interest] Problem location symbol on android Message-ID: <5706EA0F.4010800@shaw.ca> I have a project that I'm trying to get working on android. I'm using Qt Creator to build and run everything. The program compiles, links and deploys. When it runs, I get the following error: Starting remote process.V/Zygote (20264): Switching descriptor 33 to /dev/null V/Zygote (20264): Switching descriptor 9 to /dev/null D/dalvikvm(20264): Late-enabling CheckJNI I/ActivityManager( 436): Start proc org.qtproject.example.test_mage for activity org.qtproject.example.test_mage/org.qtproject.qt5.android.bindings.QtActivity: pid=20264 uid=10109 gids={50109, 3003, 1028, 1015} D/ActivityThread(20264): handleBindApplication:org.qtproject.example.test_mage D/ActivityThread(20264): setTargetHeapUtilization:0.75 D/ActivityThread(20264): setTargetHeapMinFree:524288 D/dalvikvm(20264): Trying to load lib /data/data/org.qtproject.example.test_mage/lib/libgnustl_shared.so 0x2c665238 D/dalvikvm(20264): Added shared lib /data/data/org.qtproject.example.test_mage/lib/libgnustl_shared.so 0x2c665238 D/dalvikvm(20264): No JNI_OnLoad found in /data/data/org.qtproject.example.test_mage/lib/libgnustl_shared.so 0x2c665238, skipping init D/dalvikvm(20264): Trying to load lib /data/data/org.qtproject.example.test_mage/lib/libQt5Core.so 0x2c665238 D/dalvikvm(20264): Added shared lib /data/data/org.qtproject.example.test_mage/lib/libQt5Core.so 0x2c665238 D/dalvikvm(20264): Trying to load lib /data/data/org.qtproject.example.test_mage/lib/libQt5Gui.so 0x2c665238 D/dalvikvm(20264): Added shared lib /data/data/org.qtproject.example.test_mage/lib/libQt5Gui.so 0x2c665238 D/dalvikvm(20264): No JNI_OnLoad found in /data/data/org.qtproject.example.test_mage/lib/libQt5Gui.so 0x2c665238, skipping init D/dalvikvm(20264): Trying to load lib /data/data/org.qtproject.example.test_mage/lib/libQt5Widgets.so 0x2c665238 D/dalvikvm(20264): Added shared lib /data/data/org.qtproject.example.test_mage/lib/libQt5Widgets.so 0x2c665238 D/dalvikvm(20264): No JNI_OnLoad found in /data/data/org.qtproject.example.test_mage/lib/libQt5Widgets.so 0x2c665238, skipping init D/dalvikvm(20264): Trying to load lib /data/data/org.qtproject.example.test_mage/lib/libQt5Xml.so 0x2c665238 D/dalvikvm(20264): Added shared lib /data/data/org.qtproject.example.test_mage/lib/libQt5Xml.so 0x2c665238 D/dalvikvm(20264): No JNI_OnLoad found in /data/data/org.qtproject.example.test_mage/lib/libQt5Xml.so 0x2c665238, skipping init D/dalvikvm(20264): Trying to load lib /data/data/org.qtproject.example.test_mage/lib/libQt5Concurrent.so 0x2c665238 D/dalvikvm(20264): Added shared lib /data/data/org.qtproject.example.test_mage/lib/libQt5Concurrent.so 0x2c665238 D/dalvikvm(20264): No JNI_OnLoad found in /data/data/org.qtproject.example.test_mage/lib/libQt5Concurrent.so 0x2c665238, skipping init D/dalvikvm(20264): Trying to load lib /data/data/org.qtproject.example.test_mage/lib/libQt5Network.so 0x2c665238 D/dalvikvm(20264): Added shared lib /data/data/org.qtproject.example.test_mage/lib/libQt5Network.so 0x2c665238 D/dalvikvm(20264): No JNI_OnLoad found in /data/data/org.qtproject.example.test_mage/lib/libQt5Network.so 0x2c665238, skipping init D/dalvikvm(20264): Trying to load lib /data/data/org.qtproject.example.test_mage/qt-reserved-files/plugins/platforms/android/libqtforandroid.so 0x2c665238 D/dalvikvm(20264): Added shared lib /data/data/org.qtproject.example.test_mage/qt-reserved-files/plugins/platforms/android/libqtforandroid.so 0x2c665238 I/Qt (20264): qt start D/dalvikvm(20264): Trying to load lib /data/data/org.qtproject.example.test_mage/qt-reserved-files/plugins/bearer/libqandroidbearer.so 0x2c665238 D/dalvikvm(20264): Added shared lib /data/data/org.qtproject.example.test_mage/qt-reserved-files/plugins/bearer/libqandroidbearer.so 0x2c665238 D/dalvikvm(20264): No JNI_OnLoad found in /data/data/org.qtproject.example.test_mage/qt-reserved-files/plugins/bearer/libqandroidbearer.so 0x2c665238, skipping init D/dalvikvm(20264): Trying to load lib /data/app-lib/org.qtproject.example.test_mage-2/libphysfs.so 0x2c665238 D/dalvikvm(20264): Added shared lib /data/app-lib/org.qtproject.example.test_mage-2/libphysfs.so 0x2c665238 D/dalvikvm(20264): No JNI_OnLoad found in /data/app-lib/org.qtproject.example.test_mage-2/libphysfs.so 0x2c665238, skipping init D/dalvikvm(20264): Trying to load lib /data/app-lib/org.qtproject.example.test_mage-2/libmage.so 0x2c665238 E/dalvikvm(20264): dlopen("/data/app-lib/org.qtproject.example.test_mage-2/libmage.so") failed: dlopen failed: cannot locate symbol "_ZN18QXmlDefaultHandlerC2Ev" referenced by "libmage.so"... The constructor for QXmlDefaultHandler is not found. It looks like it's loading the libQt5Xml.so library fine though. When I examine the library in the build directory, this is what I get: $ objdump -T libQt5Xml.so | grep _ZN18QXmlDefaultHandlerC2Ev 000121b9 g DF .text 00000038 _ZN18QXmlDefaultHandlerC2Ev The symbol is in the library, but I have no idea why it's not finding it. Any help with this would be greatly appreciated. -- Lorne Sturtevant Sum Ergo Cogito -------------- next part -------------- An HTML attachment was scrubbed... URL: From d3faultdotxbe at gmail.com Fri Apr 8 02:41:08 2016 From: d3faultdotxbe at gmail.com (d3fault) Date: Thu, 7 Apr 2016 17:41:08 -0700 Subject: [Interest] Qt "Tools" GPLv3 Exception 1 Confusion Message-ID: I’m confused by the ending of Exception 1 to the GPLv3 for Qt "tools" ( http://code.qt.io/cgit/qt-creator/qt-creator.git/tree/LICENSE.GPL3-EXCEPT?h=4.0 ). The part that reads: “you may create a larger work which contains the output of this application and distribute that work under terms of your choice, so long as […] the work does not in itself generate output that contains the output from this application in its original or modified form”. Does that mean this example must comply with the terms of the GPLv3? in file /path/to/main.cpp : int main() { QFile file(“/path/to/main.cpp”); file.open(); QByteArray outputFromQtCreatorInOriginalForm = file.readAll(); QFile file2(“/whatever.cpp”); file.open(); file2.write(outputFromQtCreatorInOriginalForm); } So since I wrote /path/to/main.cpp in Qt Creator, it’s “output from this application”, and since it generates itself, it “generates output from this application in it’s original […] form”. Am I incorrect in my interpretation? Does that file need to fulfill the requirements of the GPLv3? I hope I’m wrong. Please feel free to surround your response with IANAL. d3fault From katja.marttila at theqtcompany.com Fri Apr 8 07:57:06 2016 From: katja.marttila at theqtcompany.com (Marttila Katja) Date: Fri, 8 Apr 2016 05:57:06 +0000 Subject: [Interest] Qt 5.6.0 Offline Installer in "Headless" or "Automated" mode In-Reply-To: <5705647A.80603@gmail.com> References: <5705647A.80603@gmail.com> Message-ID: Hi Mike, You can do it via control scripting. Here you can find information how the script should look like: http://stackoverflow.com/questions/25105269/silent-install-qt-run-installer-on-ubuntu-server --Katja From: Interest [mailto:interest-bounces+katja.marttila=theqtcompany.com at qt-project.org] On Behalf Of Mike Jackson Sent: 6. huhtikuuta 2016 22:33 To: interest at qt-project.org Subject: [Interest] Qt 5.6.0 Offline Installer in "Headless" or "Automated" mode Is there a way to launch the Qt 5.6.0 offline installer in such a way so that the gui either does not launch or all the options that I need are selected/deselected/Filled in and the installer automatically installs Qt where I want it installed? Our own SDK depends on Qt and I would love to be able to just have our developers use a single installer instead of installing our SDK, then using the Qt offline installer after that. Thanks Mike Jackson -------------- next part -------------- An HTML attachment was scrubbed... URL: From jeanmichael.celerier at gmail.com Fri Apr 8 09:11:51 2016 From: jeanmichael.celerier at gmail.com (=?UTF-8?Q?Jean=2DMicha=C3=ABl_Celerier?=) Date: Fri, 8 Apr 2016 09:11:51 +0200 Subject: [Interest] Qt "Tools" GPLv3 Exception 1 Confusion In-Reply-To: References: Message-ID: On Fri, Apr 8, 2016 at 2:41 AM, d3fault wrote: > So since I wrote /path/to/main.cpp in Qt Creator, it’s “output from > this application”, and since it generates itself, it “generates output > from this application in it’s original […] form”. > I don't think that this is relevant to QtCreator because QtCreator has no "output" per se, it only calls your compiler (which may be g++, clang, msvc...) behind the scenes. And saving a text file can even less be considered an output I think, imagine if the people making sheets of paper were able to assert their copyright over whatever you write on it ? But IANAL :) -------------- next part -------------- An HTML attachment was scrubbed... URL: From jeanmichael.celerier at gmail.com Fri Apr 8 09:13:57 2016 From: jeanmichael.celerier at gmail.com (=?UTF-8?Q?Jean=2DMicha=C3=ABl_Celerier?=) Date: Fri, 8 Apr 2016 09:13:57 +0200 Subject: [Interest] Qt "Tools" GPLv3 Exception 1 Confusion In-Reply-To: References: Message-ID: I think, by reading the whole paragraph, that you don't have the right to make for instance a tool that "wraps" moc / uic / rcc and use it under a non-LGPLv3 license. On Fri, Apr 8, 2016 at 9:11 AM, Jean-Michaël Celerier < jeanmichael.celerier at gmail.com> wrote: > > On Fri, Apr 8, 2016 at 2:41 AM, d3fault wrote: > >> So since I wrote /path/to/main.cpp in Qt Creator, it’s “output from >> this application”, and since it generates itself, it “generates output >> from this application in it’s original […] form”. >> > > > I don't think that this is relevant to QtCreator because QtCreator has no > "output" per se, > it only calls your compiler (which may be g++, clang, msvc...) behind the > scenes. > And saving a text file can even less be considered an output I think, > imagine if the people making sheets of paper were able to assert their > copyright over > whatever you write on it ? > > But IANAL :) > -------------- next part -------------- An HTML attachment was scrubbed... URL: From realnc at gmail.com Fri Apr 8 11:03:28 2016 From: realnc at gmail.com (Nikos Chantziaras) Date: Fri, 8 Apr 2016 12:03:28 +0300 Subject: [Interest] Qt "Tools" GPLv3 Exception 1 Confusion In-Reply-To: References: Message-ID: On 08/04/16 03:41, d3fault wrote: > int main() > { > QFile file(“/path/to/main.cpp”); file.open(); > QByteArray outputFromQtCreatorInOriginalForm = file.readAll(); > QFile file2(“/whatever.cpp”); file.open(); > file2.write(outputFromQtCreatorInOriginalForm); > } > > So since I wrote /path/to/main.cpp in Qt Creator, it’s “output from > this application” No, that's input from you, not output from Creator. Creator did not create that code. Output from creator and designer are .ui files, the .cpp/.h files output by moc or rcc, etc. If you wrote the code, it's your output, not Creator's. Just because you feed it to Creator doesn't mean it created it. From ekke at ekkes-corner.org Fri Apr 8 12:43:56 2016 From: ekke at ekkes-corner.org (ekke) Date: Fri, 8 Apr 2016 12:43:56 +0200 Subject: [Interest] qt.labs.controls - ApplicationWindow - size Message-ID: <57078B6C.5060209@ekkes-corner.org> the Gallery example from qt.labs.controls http://doc.qt.io/qt-5/qtlabscontrols-gallery-gallery-qml.html defines the ApplicationWindow this way: ApplicationWindow { id: window width: 360 height: 520 visible: true title: "Qt Labs Controls" My question is about the width and height. I'm using it only for mobile APPs on Android and iOS On a mobile device the ApplicationWindow always has to fill the entire available space, so it doesn't make sense to start with a fixed size width / height I think what's recommended ? should I remove width and height settings and let Qt calculate without ? Or should I set the width and height from QScreen ? this works: context->setContextProperty("myScreen",qApp->primaryScreen()); and then I can use width:myScreen.size.width // or better .availableSize.width ? have tested: size is correct and also changes if rotating from portrait to landscape thx for infos ekke -- -------------- next part -------------- An HTML attachment was scrubbed... URL: From jhihn at gmx.com Fri Apr 8 15:43:04 2016 From: jhihn at gmx.com (Jason H) Date: Fri, 8 Apr 2016 15:43:04 +0200 Subject: [Interest] Problem location symbol on android In-Reply-To: <5706EA0F.4010800@shaw.ca> References: <5706EA0F.4010800@shaw.ca> Message-ID: An HTML attachment was scrubbed... URL: From alexander_carot at gmx.net Fri Apr 8 17:24:50 2016 From: alexander_carot at gmx.net (=?UTF-8?Q?=22Alexander_Car=C3=B4t=22?=) Date: Fri, 8 Apr 2016 17:24:50 +0200 Subject: [Interest] qtWebsocket SSL question Message-ID: Hello all, I just started investigating websockets with Qt and now have a question regarding this example: http://doc.qt.io/qt-5/qtwebsockets-sslechoserver-example.html I compiled it but encountered the issue of missing files: RCC: Error in 'securesocketclient.qrc': Cannot find file 'localhost.cert' make: *** [qrc_securesocketclient.cpp] Error 1 In securesocketclient.qrc the following files are required: localhost.cert localhost.key and I wonder how or where to generate them and since I have no experience with security and certificates etc. I'd appreciate any comment. Thanks in advance, best Alex -- http://www.carot.de Email : Alexander at Carot.de Tel.: +49 (0)177 5719797 From jhihn at gmx.com Fri Apr 8 17:54:20 2016 From: jhihn at gmx.com (Jason H) Date: Fri, 8 Apr 2016 17:54:20 +0200 Subject: [Interest] qtWebsocket SSL question In-Reply-To: References: Message-ID: Use openssl's cert generation features. > Sent: Friday, April 08, 2016 at 11:24 AM > From: "Alexander Carôt" > To: "qt qt" > Subject: [Interest] qtWebsocket SSL question > > Hello all, > > I just started investigating websockets with Qt and now have a question regarding this example: > > http://doc.qt.io/qt-5/qtwebsockets-sslechoserver-example.html > > I compiled it but encountered the issue of missing files: > > RCC: Error in 'securesocketclient.qrc': Cannot find file 'localhost.cert' > make: *** [qrc_securesocketclient.cpp] Error 1 > > In securesocketclient.qrc the following files are required: > > > > localhost.cert > localhost.key > > > > and I wonder how or where to generate them and since I have no experience with security and certificates etc. I'd appreciate any comment. > > Thanks in advance, > best From kebin70 at gmail.com Fri Apr 8 20:56:46 2016 From: kebin70 at gmail.com (Kevin Mcintyre) Date: Fri, 8 Apr 2016 11:56:46 -0700 Subject: [Interest] qt.labs.controls - ApplicationWindow - size In-Reply-To: <57078B6C.5060209@ekkes-corner.org> References: <57078B6C.5060209@ekkes-corner.org> Message-ID: This is a question I've been struggling with, while still being able to launch a desktop version with similar proportions to handhelds. On Fri, Apr 8, 2016 at 3:43 AM, ekke wrote: > the Gallery example from qt.labs.controls > http://doc.qt.io/qt-5/qtlabscontrols-gallery-gallery-qml.html > defines the ApplicationWindow this way: > > ApplicationWindow { > id: window > width: 360 > height: 520 > visible: true > title: "Qt Labs Controls" > > > My question is about the width and height. > > I'm using it only for mobile APPs on Android and iOS > > On a mobile device the ApplicationWindow always has to fill the entire > available space, > so it doesn't make sense to start with a fixed size width / height I think > > what's recommended ? > > should I remove width and height settings and let Qt calculate without ? > > Or should I set the width and height from QScreen ? > this works: > > context->setContextProperty("myScreen", qApp->primaryScreen()); > > > and then I can use > > width: myScreen.size.width // or better .availableSize.width ? > > > have tested: size is correct and also changes if rotating from portrait to > landscape > > thx for infos > > ekke > -- > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dragor at shaw.ca Fri Apr 8 22:49:05 2016 From: dragor at shaw.ca (Lorne Sturtevant) Date: Fri, 8 Apr 2016 14:49:05 -0600 Subject: [Interest] Problem location symbol on android In-Reply-To: References: <5706EA0F.4010800@shaw.ca> Message-ID: <57081941.7020609@shaw.ca> On 04/08/2016 07:43 AM, Jason H wrote: > I'm not sure of your exact issue, looks good to me. But do note: > 1. You may need a QTPLUGIN > 2. The android dynamic linker is single-pass, one-way. All > prerequisites must me loaded prior to the library containing depenencies. > > But, given your logs I think it should be working. I've not used the > XMLdirectly, only so far as for SVG. in which case I have: > QT += svg xml > android|osx { > QTPLUGIN += qsvg > } > HTH 1) QXml works without a plugin. So that's not it 2) It looks like all of the prerequisites are loaded. Here's loading the QXml library: D/dalvikvm(20264): Trying to load lib /data/data/org.qtproject.example.test_mage/lib/libQt5Xml.so 0x2c665238 D/dalvikvm(20264): Added shared lib /data/data/org.qtproject.example.test_mage/lib/libQt5Xml.so 0x2c665238 Everthing looks ok with that. It's only later that the library is loaded: E/dalvikvm(20264): dlopen("/data/app-lib/org.qtproject.example.test_mage-2/libmage.so") failed: dlopen failed: cannot locate symbol "_ZN18QXmlDefaultHandlerC2Ev" referenced by "libmage.so"... > > Starting remote process.V/Zygote (20264): Switching descriptor 33 to > /dev/null > > V/Zygote (20264): Switching descriptor 9 to /dev/null > > D/dalvikvm(20264): Late-enabling CheckJNI > > I/ActivityManager( 436): Start proc org.qtproject.example.test_mage > for activity > org.qtproject.example.test_mage/org.qtproject.qt5.android.bindings.QtActivity: > pid=20264 uid=10109 gids={50109, 3003, 1028, 1015} > > D/ActivityThread(20264): > handleBindApplication:org.qtproject.example.test_mage > > D/ActivityThread(20264): setTargetHeapUtilization:0.75 > > D/ActivityThread(20264): setTargetHeapMinFree:524288 > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/lib/libgnustl_shared.so > 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/lib/libgnustl_shared.so > 0x2c665238 > > D/dalvikvm(20264): No JNI_OnLoad found in > /data/data/org.qtproject.example.test_mage/lib/libgnustl_shared.so > 0x2c665238, skipping init > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Core.so 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Core.so 0x2c665238 > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Gui.so 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Gui.so 0x2c665238 > > D/dalvikvm(20264): No JNI_OnLoad found in > /data/data/org.qtproject.example.test_mage/lib/libQt5Gui.so > 0x2c665238, skipping init > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Widgets.so 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Widgets.so 0x2c665238 > > D/dalvikvm(20264): No JNI_OnLoad found in > /data/data/org.qtproject.example.test_mage/lib/libQt5Widgets.so > 0x2c665238, skipping init > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Xml.so 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Xml.so 0x2c665238 > > D/dalvikvm(20264): No JNI_OnLoad found in > /data/data/org.qtproject.example.test_mage/lib/libQt5Xml.so > 0x2c665238, skipping init > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Concurrent.so > 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Concurrent.so > 0x2c665238 > > D/dalvikvm(20264): No JNI_OnLoad found in > /data/data/org.qtproject.example.test_mage/lib/libQt5Concurrent.so > 0x2c665238, skipping init > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Network.so 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Network.so 0x2c665238 > > D/dalvikvm(20264): No JNI_OnLoad found in > /data/data/org.qtproject.example.test_mage/lib/libQt5Network.so > 0x2c665238, skipping init > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/qt-reserved-files/plugins/platforms/android/libqtforandroid.so > 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/qt-reserved-files/plugins/platforms/android/libqtforandroid.so > 0x2c665238 > > I/Qt (20264): qt start > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/qt-reserved-files/plugins/bearer/libqandroidbearer.so > 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/qt-reserved-files/plugins/bearer/libqandroidbearer.so > 0x2c665238 > > D/dalvikvm(20264): No JNI_OnLoad found in > /data/data/org.qtproject.example.test_mage/qt-reserved-files/plugins/bearer/libqandroidbearer.so > 0x2c665238, skipping init > > D/dalvikvm(20264): Trying to load lib > /data/app-lib/org.qtproject.example.test_mage-2/libphysfs.so 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/app-lib/org.qtproject.example.test_mage-2/libphysfs.so 0x2c665238 > > D/dalvikvm(20264): No JNI_OnLoad found in > /data/app-lib/org.qtproject.example.test_mage-2/libphysfs.so > 0x2c665238, skipping init > > D/dalvikvm(20264): Trying to load lib > /data/app-lib/org.qtproject.example.test_mage-2/libmage.so 0x2c665238 > > E/dalvikvm(20264): > dlopen("/data/app-lib/org.qtproject.example.test_mage-2/libmage.so") > failed: dlopen failed: cannot locate symbol > "_ZN18QXmlDefaultHandlerC2Ev" referenced by "libmage.so"... > > > > The constructor for QXmlDefaultHandler is not found. It looks like > it's loading the libQt5Xml.so library fine though. When I examine the > library in the build directory, this is what I get: > $ objdump -T libQt5Xml.so | grep _ZN18QXmlDefaultHandlerC2Ev > 000121b9 g DF .text 00000038 _ZN18QXmlDefaultHandlerC2Ev > > The symbol is in the library, but I have no idea why it's not finding it. > > Any help with this would be greatly appreciated. > -- > Lorne Sturtevant > Sum Ergo Cogito > _______________________________________________ Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -- Lorne Sturtevant Sum Ergo Cogito -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander_carot at gmx.net Fri Apr 8 23:27:26 2016 From: alexander_carot at gmx.net (=?UTF-8?Q?=22Alexander_Car=C3=B4t=22?=) Date: Fri, 8 Apr 2016 23:27:26 +0200 Subject: [Interest] qtWebsocket SSL question In-Reply-To: References: , Message-ID: see below: Thanks a lot - this way I was able to generate the required files (I did it according to this link: https://developer.salesforce.com/blogs/developer-relations/2011/05/generating-valid-self-signed-certificates.html ) However, it still does not work. The non-SSL-Websocket example works perfectly fine on localhost and on a remote server but the SSL version doesn't. I simply ran the server (just as the non-SSL-version) listening on port 1234 and let the client connect via wss://localhost:1234 (or the respective remote server location) but immediately get the error message: "ERROR: undefined DISCONNECTED" Is there any chance to further track down the connect process in order to figure why it actually doen't - or further hints ? Thanks ! Alex -- http://www.carot.de Email : Alexander at Carot.de Tel.: +49 (0)177 5719797 > Gesendet: Freitag, 08. April 2016 um 17:54 Uhr > Von: "Jason H" > An: "Alexander Carôt" > Cc: "qt qt" > Betreff: Re: [Interest] qtWebsocket SSL question > > Use openssl's cert generation features. > > > Sent: Friday, April 08, 2016 at 11:24 AM > > From: "Alexander Carôt" > > To: "qt qt" > > Subject: [Interest] qtWebsocket SSL question > > > > Hello all, > > > > I just started investigating websockets with Qt and now have a question regarding this example: > > > > http://doc.qt.io/qt-5/qtwebsockets-sslechoserver-example.html > > > > I compiled it but encountered the issue of missing files: > > > > RCC: Error in 'securesocketclient.qrc': Cannot find file 'localhost.cert' > > make: *** [qrc_securesocketclient.cpp] Error 1 > > > > In securesocketclient.qrc the following files are required: > > > > > > > > localhost.cert > > localhost.key > > > > > > > > and I wonder how or where to generate them and since I have no experience with security and certificates etc. I'd appreciate any comment. > > > > Thanks in advance, > > best > From ekke at ekkes-corner.org Sat Apr 9 14:34:16 2016 From: ekke at ekkes-corner.org (ekke) Date: Sat, 9 Apr 2016 14:34:16 +0200 Subject: [Interest] qt.labs.controls - ApplicationWindow - size In-Reply-To: References: <57078B6C.5060209@ekkes-corner.org> Message-ID: <5708F6C8.8060708@ekkes-corner.org> Am 08.04.16 um 20:56 schrieb Kevin Mcintyre: > This is a question I've been struggling with, while still being able > to launch a desktop version with similar proportions to handhelds. > > On Fri, Apr 8, 2016 at 3:43 AM, ekke > wrote: > > the Gallery example from qt.labs.controls > http://doc.qt.io/qt-5/qtlabscontrols-gallery-gallery-qml.html > defines the ApplicationWindow this way: > > ApplicationWindow > { > id: window > width: 360 > height: 520 > visible: true > title: "Qt Labs Controls" > > > My question is about the width and height. > > I'm using it only for mobile APPs on Android and iOS > > On a mobile device the ApplicationWindow always has to fill the > entire available space, > so it doesn't make sense to start with a fixed size width / height > I think > > what's recommended ? > > should I remove width and height settings and let Qt calculate > without ? > > Or should I set the width and height from QScreen ? > this works: > > context->setContextProperty("myScreen",qApp->primaryScreen()); > > > and then I can use > > width:myScreen.size.width // or better .availableSize.width ? > > > have tested: size is correct and also changes if rotating from > portrait to landscape > > thx for infos > > ekke > -- > > just got response from J-P Nurmi in Forum: /Qt shows windows fullscreen/maximized [*] by default when appropriate. Thus, the desired window size specified in the Gallery example does not make any difference on mobile platforms, but it does on desktop platforms where apps run in windowed mode./ [*] http://doc.qt.io/qt-5/qstylehints.html#showIsFullScreen-prop so I will remove the width and heigth from ApplicationWindow for mobile-only applications. ekke -------------- next part -------------- An HTML attachment was scrubbed... URL: From pr12og2 at programist.ru Sat Apr 9 14:56:36 2016 From: pr12og2 at programist.ru (Prav) Date: Sat, 9 Apr 2016 15:56:36 +0300 Subject: [Interest] Why there is no QChar::toLocal8Bit()? Message-ID: <1272861796.20160409155636@programist.ru> There is QString::toLocal8Bit() but somehow there is no QChar::toLocal8Bit() ... but probably it should be ... as soon as we have pair of toLatin1() for both QChar and QString? This is intensional and there are resons for that Or just did not wrote this function yet? From suy at badopi.org Sat Apr 9 16:50:15 2016 From: suy at badopi.org (Alejandro Exojo) Date: Sat, 9 Apr 2016 16:50:15 +0200 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <5704A3F7.2050705@familiesomers.nl> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <201604052247.32946.suy@badopi.org> <5704A3F7.2050705@familiesomers.nl> Message-ID: <201604091650.15817.suy@badopi.org> El Wednesday 06 April 2016, André Somers escribió: > Op 05/04/2016 om 22:47 schreef Alejandro Exojo: > > El Tuesday 05 April 2016, André Somers escribió: > >> That works, but it is not as flexible as what we see in those gifs. For > >> instance, you cannot move the cursor left or right or make the same edit > >> on multiple lines that are not vertically aligned. > > > > That's what you miss for not using FakeVim. ;-) > > That might very well be it. :-) > > So... the FakeVim can do that trick? Yes. FakeVim implements the repeat command (.) quite well, and it also implements the "search keyword under the cursor" (*). That means that repeating such actions is typically: * (search that keyword) (edit and get back to normal mode) n.n.n. (search again and do the previous edit) There are tons of other variants. Of course FakeVim is not as nice as the real vim because it doesn't have some of its extensibility, but obviously vim falls short in many other things. I tend to use the two. -- Alex (a.k.a. suy) | GPG ID 0x0B8B0BC2 http://barnacity.net/ | http://disperso.net From thiago.macieira at intel.com Sat Apr 9 17:50:28 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Sat, 09 Apr 2016 08:50:28 -0700 Subject: [Interest] Why there is no QChar::toLocal8Bit()? In-Reply-To: <1272861796.20160409155636@programist.ru> References: <1272861796.20160409155636@programist.ru> Message-ID: <8008970.VVlMfXmmKk@tjmaciei-mobl4> On sábado, 9 de abril de 2016 15:56:36 PDT Prav wrote: > There is QString::toLocal8Bit() but somehow there is no QChar::toLocal8Bit() > ... but probably it should be ... as soon as we have pair of toLatin1() for > both QChar and QString? > > This is intensional and there are resons for that Or just did not wrote > this function yet? It's intentional because it's superfluous. You can get the same by running QString(the_qchar).toLocal8Bit(); converting to a multibyte 8-bit representation is a string operation anyway. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From pr12og2 at programist.ru Sat Apr 9 18:45:52 2016 From: pr12og2 at programist.ru (Prav) Date: Sat, 9 Apr 2016 19:45:52 +0300 Subject: [Interest] Why there is no QChar::toLocal8Bit()? In-Reply-To: <8008970.VVlMfXmmKk@tjmaciei-mobl4> References: <1272861796.20160409155636@programist.ru> <8008970.VVlMfXmmKk@tjmaciei-mobl4> Message-ID: <16682000.20160409194552@programist.ru> Hi, Thiago Macieira. > It's intentional because it's superfluous. You can get the same by running > QString(the_qchar).toLocal8Bit(); > converting to a multibyte 8-bit representation is a string operation anyway. Multibyte?! I thought it should be like char QChar::toLocal8Bit() const; No? From thiago.macieira at intel.com Sat Apr 9 23:05:54 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Sat, 09 Apr 2016 14:05:54 -0700 Subject: [Interest] Why there is no QChar::toLocal8Bit()? In-Reply-To: <16682000.20160409194552@programist.ru> References: <1272861796.20160409155636@programist.ru> <8008970.VVlMfXmmKk@tjmaciei-mobl4> <16682000.20160409194552@programist.ru> Message-ID: <76884165.kvXzqlYoxT@tjmaciei-mobl4> On sábado, 9 de abril de 2016 19:45:52 PDT Prav wrote: > Hi, Thiago Macieira. > > > It's intentional because it's superfluous. You can get the same by running > > > > QString(the_qchar).toLocal8Bit(); > > > > converting to a multibyte 8-bit representation is a string operation > > anyway. > Multibyte?! I thought it should be like > > char QChar::toLocal8Bit() const; > > No? No, as I said it's a multibyte operation. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From annulen at yandex.ru Sat Apr 9 23:12:14 2016 From: annulen at yandex.ru (Konstantin Tokarev) Date: Sun, 10 Apr 2016 00:12:14 +0300 Subject: [Interest] Why there is no QChar::toLocal8Bit()? In-Reply-To: <16682000.20160409194552@programist.ru> References: <1272861796.20160409155636@programist.ru> <8008970.VVlMfXmmKk@tjmaciei-mobl4> <16682000.20160409194552@programist.ru> Message-ID: <6859161460236334@web13j.yandex.ru> 09.04.2016, 19:45, "Prav" : > Hi, Thiago Macieira. > >>  It's intentional because it's superfluous. You can get the same by running > >>          QString(the_qchar).toLocal8Bit(); > >>  converting to a multibyte 8-bit representation is a string operation anyway. > > Multibyte?! I thought it should be like > > char QChar::toLocal8Bit() const; > > No? For example, popular choice for Local8Bit encoding is UTF-8, which is multibyte. -- Regards, Konstantin From freddy311082 at gmail.com Sat Apr 9 23:18:19 2016 From: freddy311082 at gmail.com (Freddy Martinez) Date: Sat, 9 Apr 2016 18:18:19 -0300 Subject: [Interest] big trouble with QCoreApplication Message-ID: Hi guys.. I’ve Kubuntu 15.10 and I’m working with qt 5.5.1… this is may main.cpp int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); if (!checkConfigurationFiles()) { qDebug()<<"Unable to start server."; return 1; } QSettings* settings = new QSettings(qApp->applicationDirPath()+"/config/server.ini",QSettings::IniFormat); QString lastError; NautamServer nautamServer(settings); ConsoleLoggerFactory loggerFactory; loggerFactory.setSettings(settings); nautamServer.setLoggerFactory(&loggerFactory); if (!nautamServer.startServer(lastError)) qDebug()<<"Last error :"< From sinadooru at gmail.com Sat Apr 9 23:27:50 2016 From: sinadooru at gmail.com (Sina Dogru) Date: Sun, 10 Apr 2016 00:27:50 +0300 Subject: [Interest] Assert failure in QVariant::save Message-ID: Hello, I have an app which has a save functionality. I keep application states on QObject-derived class objects and to save the state I use QVariant's operator<<(). I do this for all the properties of the object. So I use a loop like this for all my objects: for (int i = 0; i < metaObj->propertyCount(); ++i) if (metaObj->property(i).isStored(obj)) { QVariant var(metaObj->property(i).read(obj)); ds << var; } But some of my objects are QQuickItem-derived. These objects have some additional properties, such as *parent*, or private properties like *data *or *anchors*, for whose types the stream operators are not registered. Normally I compile my project on Linux. But yesterday I tried to compile it on Windows. On Linux, QVariant::save function was giving the warning message "QVariant::save: unable to save type ..." for those properties of QQuickItem, yet the application kept running. On Windows, however, it not only gives a warning message but also reports a _CRT_ERROR. I understand this is the expected situation for debug builds, as documented in the qFatal documentation. Although I won't receive this error for release builds, leaving my code this way still feels a bit sloppy. So I would like to ask if there is a way to check if the stream operators are registered for a particular type or not. Or maybe saving the state of a QObject-derived class should be done in another way? Thanks, Sina -------------- next part -------------- An HTML attachment was scrubbed... URL: From chinander at gmail.com Sat Apr 9 23:32:54 2016 From: chinander at gmail.com (Mike Chinander) Date: Sat, 9 Apr 2016 16:32:54 -0500 Subject: [Interest] big trouble with QCoreApplication In-Reply-To: References: Message-ID: What's on line 63 of main.cpp? On Sat, Apr 9, 2016 at 4:18 PM, Freddy Martinez wrote: > Hi guys.. > > I’ve Kubuntu 15.10 and I’m working with qt 5.5.1… > > this is may main.cpp > > int main(int argc, char *argv[]) > > { > > QCoreApplication a(argc, argv); > > > if (!checkConfigurationFiles()) > > { > > qDebug()<<"Unable to start server."; > > > return 1; > > } > > > QSettings* settings = new QSettings(qApp->applicationDirPath()+"/config/server.ini",QSettings::IniFormat); > > > QString lastError; > > > NautamServer nautamServer(settings); > > > ConsoleLoggerFactory loggerFactory; > > > loggerFactory.setSettings(settings); > > > nautamServer.setLoggerFactory(&loggerFactory); > > > if (!nautamServer.startServer(lastError)) > > qDebug()<<"Last error :"< > > return a.exec(); > > } > > > the problem is taht i’m gettirn segmentation fault in the first line of > the main function as you’ll see in the stack as folowed: > > #0 0x00007ffff37616e7 in QOpenGLContext::create() () from > /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5Gui.so.5 > #1 0x00007fffe9b1d9bd in QtWebEngine::initialize() () from > /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5WebEngine.so.5 > #2 0x00007ffff4f63688 in QCoreApplication::init() () from > /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5Core.so.5 > #3 0x00007ffff4f63b05 in QCoreApplication::QCoreApplication(int&, char**, > int) () from /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5Core.so.5 > #4 0x000000000044935b in main (argc=1, argv=0x7fffffffdea8) at > ../../nautam-kernel/nautam-server/main.cpp:63 > > well guys, I really don’t know what happend and I don’t have any idea > about what is wrong > > can you help me please? > > regards > > > ============================================= > "El tamaño de tus logros depende del tamaño de tus metas." > C++ and Qt Senior Developer > B.S. Computer Science > Buenos Aires, Argentina > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From freddy311082 at gmail.com Sat Apr 9 23:44:56 2016 From: freddy311082 at gmail.com (Freddy Martinez) Date: Sat, 9 Apr 2016 18:44:56 -0300 Subject: [Interest] big trouble with QCoreApplication In-Reply-To: References: Message-ID: <1BF5AC56-885E-4D12-AFC6-38446D4D2CBB@gmail.com> Hi Mike, and thanks for your answer…. I had sent you a print screen, as you could see, the line 63 is QCoreApplication a(argc,argv) the only thing I suppose that it’s happend is that in /usr/lib/x86_64/ I have other qt5 libraries installed but for qt 5.4.2 version… maybe when I’m trying to run the application is crahsed because is linking against 5.4.2 and I’m compiling with 5.5.1. I had download the offline installer and i had create a Qt folder on my home directory, there I had installed Qt 5.5.1… that is my environment any advise ? regards ============================================= "El tamaño de tus logros depende del tamaño de tus metas." C++ and Qt Senior Developer B.S. Computer Science Buenos Aires, Argentina > On Apr 9, 2016, at 6:32 PM, Mike Chinander wrote: > > What's on line 63 of main.cpp? > > On Sat, Apr 9, 2016 at 4:18 PM, Freddy Martinez > wrote: > Hi guys.. > > I’ve Kubuntu 15.10 and I’m working with qt 5.5.1… > > this is may main.cpp > > int main(int argc, char *argv[]) > { > QCoreApplication a(argc, argv); > > if (!checkConfigurationFiles()) > { > qDebug()<<"Unable to start server."; > > return 1; > } > > QSettings* settings = new QSettings(qApp->applicationDirPath()+"/config/server.ini",QSettings::IniFormat); > > QString lastError; > > NautamServer nautamServer(settings); > > ConsoleLoggerFactory loggerFactory; > > loggerFactory.setSettings(settings); > > nautamServer.setLoggerFactory(&loggerFactory); > > if (!nautamServer.startServer(lastError)) > qDebug()<<"Last error :"< > return a.exec(); > } > > the problem is taht i’m gettirn segmentation fault in the first line of the main function as you’ll see in the stack as folowed: > > #0 0x00007ffff37616e7 in QOpenGLContext::create() () from /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5Gui.so.5 > #1 0x00007fffe9b1d9bd in QtWebEngine::initialize() () from /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5WebEngine.so.5 > #2 0x00007ffff4f63688 in QCoreApplication::init() () from /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5Core.so.5 > #3 0x00007ffff4f63b05 in QCoreApplication::QCoreApplication(int&, char**, int) () from /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5Core.so.5 > #4 0x000000000044935b in main (argc=1, argv=0x7fffffffdea8) at ../../nautam-kernel/nautam-server/main.cpp:63 > > well guys, I really don’t know what happend and I don’t have any idea about what is wrong > > can you help me please? > > regards > > > ============================================= > "El tamaño de tus logros depende del tamaño de tus metas." > C++ and Qt Senior Developer > B.S. Computer Science > Buenos Aires, Argentina > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Screen Shot 2016-04-09 at 6.38.07 PM.png Type: image/png Size: 637620 bytes Desc: not available URL: From asmaloney at gmail.com Sun Apr 10 00:04:45 2016 From: asmaloney at gmail.com (Andy) Date: Sat, 9 Apr 2016 18:04:45 -0400 Subject: [Interest] big trouble with QCoreApplication In-Reply-To: <1BF5AC56-885E-4D12-AFC6-38446D4D2CBB@gmail.com> References: <1BF5AC56-885E-4D12-AFC6-38446D4D2CBB@gmail.com> Message-ID: Freddy: What you are suggesting about Qt versions sounds likely. To see what versions are being used, you could try outputting the version used to compile and the runtime version in main() like this: qDebug().noquote() << "Qt compile version:" << QT_VERSION_STR; qDebug().noquote() << "Qt runtime version:" << qVersion(); --- Andy Maloney // https://asmaloney.com twitter ~ @asmaloney On Sat, Apr 9, 2016 at 5:44 PM, Freddy Martinez wrote: > Hi Mike, and thanks for your answer…. > > I had sent you a print screen, as you could see, the line 63 is > > QCoreApplication a(argc,argv) > > the only thing I suppose that it’s happend is that in /usr/lib/x86_64/ I > have other qt5 libraries installed but for qt 5.4.2 version… maybe when I’m > trying to run the application is crahsed because is linking against 5.4.2 > and I’m compiling with 5.5.1. > > I had download the offline installer and i had create a Qt folder on my > home directory, there I had installed Qt 5.5.1… > > that is my environment > > any advise ? > > regards > > > > > ============================================= > "El tamaño de tus logros depende del tamaño de tus metas." > C++ and Qt Senior Developer > B.S. Computer Science > Buenos Aires, Argentina > > On Apr 9, 2016, at 6:32 PM, Mike Chinander wrote: > > What's on line 63 of main.cpp? > > On Sat, Apr 9, 2016 at 4:18 PM, Freddy Martinez > wrote: > >> Hi guys.. >> >> I’ve Kubuntu 15.10 and I’m working with qt 5.5.1… >> >> this is may main.cpp >> >> int main(int argc, char *argv[]) >> >> { >> >> QCoreApplication a(argc, argv); >> >> >> if (!checkConfigurationFiles()) >> >> { >> >> qDebug()<<"Unable to start server."; >> >> >> return 1; >> >> } >> >> >> QSettings* settings = new QSettings(qApp->applicationDirPath()+"/config/server.ini",QSettings::IniFormat); >> >> >> QString lastError; >> >> >> NautamServer nautamServer(settings); >> >> >> ConsoleLoggerFactory loggerFactory; >> >> >> loggerFactory.setSettings(settings); >> >> >> nautamServer.setLoggerFactory(&loggerFactory); >> >> >> if (!nautamServer.startServer(lastError)) >> >> qDebug()<<"Last error :"<> >> >> return a.exec(); >> >> } >> >> >> the problem is taht i’m gettirn segmentation fault in the first line of >> the main function as you’ll see in the stack as folowed: >> >> #0 0x00007ffff37616e7 in QOpenGLContext::create() () from >> /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5Gui.so.5 >> #1 0x00007fffe9b1d9bd in QtWebEngine::initialize() () from >> /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5WebEngine.so.5 >> #2 0x00007ffff4f63688 in QCoreApplication::init() () from >> /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5Core.so.5 >> #3 0x00007ffff4f63b05 in QCoreApplication::QCoreApplication(int&, >> char**, int) () from /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5Core.so.5 >> #4 0x000000000044935b in main (argc=1, argv=0x7fffffffdea8) at >> ../../nautam-kernel/nautam-server/main.cpp:63 >> >> well guys, I really don’t know what happend and I don’t have any idea >> about what is wrong >> >> can you help me please? >> >> regards >> >> >> ============================================= >> "El tamaño de tus logros depende del tamaño de tus metas." >> C++ and Qt Senior Developer >> B.S. Computer Science >> Buenos Aires, Argentina >> >> >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest >> >> > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Screen Shot 2016-04-09 at 6.38.07 PM.png Type: image/png Size: 637620 bytes Desc: not available URL: From pr12og2 at programist.ru Sun Apr 10 00:33:32 2016 From: pr12og2 at programist.ru (Prav) Date: Sun, 10 Apr 2016 01:33:32 +0300 Subject: [Interest] Why there is no QChar::toLocal8Bit()? In-Reply-To: <6859161460236334@web13j.yandex.ru> References: <1272861796.20160409155636@programist.ru> <8008970.VVlMfXmmKk@tjmaciei-mobl4> <16682000.20160409194552@programist.ru> <6859161460236334@web13j.yandex.ru> Message-ID: <939080515.20160410013332@programist.ru> Hi, Konstantin Tokarev and Thiago Macieira. > For example, popular choice for Local8Bit encoding is UTF-8, which is multibyte. Thanks! As soon as toLocal8Bit is said to use codecForLocale ... does it mean that returned by codecForLocale codec is always 8-bit multibyte codec? From freddy311082 at gmail.com Sun Apr 10 00:33:32 2016 From: freddy311082 at gmail.com (Freddy Martinez) Date: Sat, 9 Apr 2016 19:33:32 -0300 Subject: [Interest] big trouble with QCoreApplication In-Reply-To: References: <1BF5AC56-885E-4D12-AFC6-38446D4D2CBB@gmail.com> Message-ID: <991321C8-A3CC-4C7B-ABDB-51CBB2F5F0EC@gmail.com> Hi Andy, the output for the qt version qdebug is Qt compile version: 5.5.1 Qt runtime version: 5.5.1 But, it doesn’t have any sense that the QCoreApplication constructor give me a segfault, at less for me… regards ============================================= "El tamaño de tus logros depende del tamaño de tus metas." C++ and Qt Senior Developer B.S. Computer Science Buenos Aires, Argentina > On Apr 9, 2016, at 7:04 PM, Andy wrote: > > Freddy: > > What you are suggesting about Qt versions sounds likely. > > To see what versions are being used, you could try outputting the version used to compile and the runtime version in main() like this: > > qDebug().noquote() << "Qt compile version:" << QT_VERSION_STR; > qDebug().noquote() << "Qt runtime version:" << qVersion(); > > > > --- > Andy Maloney // https://asmaloney.com > twitter ~ @asmaloney > > On Sat, Apr 9, 2016 at 5:44 PM, Freddy Martinez > wrote: > Hi Mike, and thanks for your answer…. > > I had sent you a print screen, as you could see, the line 63 is > > QCoreApplication a(argc,argv) > > the only thing I suppose that it’s happend is that in /usr/lib/x86_64/ I have other qt5 libraries installed but for qt 5.4.2 version… maybe when I’m trying to run the application is crahsed because is linking against 5.4.2 and I’m compiling with 5.5.1. > > I had download the offline installer and i had create a Qt folder on my home directory, there I had installed Qt 5.5.1… > > that is my environment > > any advise ? > > regards > > > > > ============================================= > "El tamaño de tus logros depende del tamaño de tus metas." > C++ and Qt Senior Developer > B.S. Computer Science > Buenos Aires, Argentina > >> On Apr 9, 2016, at 6:32 PM, Mike Chinander > wrote: >> >> What's on line 63 of main.cpp? >> >> On Sat, Apr 9, 2016 at 4:18 PM, Freddy Martinez > wrote: >> Hi guys.. >> >> I’ve Kubuntu 15.10 and I’m working with qt 5.5.1… >> >> this is may main.cpp >> >> int main(int argc, char *argv[]) >> { >> QCoreApplication a(argc, argv); >> >> if (!checkConfigurationFiles()) >> { >> qDebug()<<"Unable to start server."; >> >> return 1; >> } >> >> QSettings* settings = new QSettings(qApp->applicationDirPath()+"/config/server.ini",QSettings::IniFormat); >> >> QString lastError; >> >> NautamServer nautamServer(settings); >> >> ConsoleLoggerFactory loggerFactory; >> >> loggerFactory.setSettings(settings); >> >> nautamServer.setLoggerFactory(&loggerFactory); >> >> if (!nautamServer.startServer(lastError)) >> qDebug()<<"Last error :"<> >> return a.exec(); >> } >> >> the problem is taht i’m gettirn segmentation fault in the first line of the main function as you’ll see in the stack as folowed: >> >> #0 0x00007ffff37616e7 in QOpenGLContext::create() () from /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5Gui.so.5 >> #1 0x00007fffe9b1d9bd in QtWebEngine::initialize() () from /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5WebEngine.so.5 >> #2 0x00007ffff4f63688 in QCoreApplication::init() () from /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5Core.so.5 >> #3 0x00007ffff4f63b05 in QCoreApplication::QCoreApplication(int&, char**, int) () from /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5Core.so.5 >> #4 0x000000000044935b in main (argc=1, argv=0x7fffffffdea8) at ../../nautam-kernel/nautam-server/main.cpp:63 >> >> well guys, I really don’t know what happend and I don’t have any idea about what is wrong >> >> can you help me please? >> >> regards >> >> >> ============================================= >> "El tamaño de tus logros depende del tamaño de tus metas." >> C++ and Qt Senior Developer >> B.S. Computer Science >> Buenos Aires, Argentina >> >> >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest >> >> >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -------------- next part -------------- An HTML attachment was scrubbed... URL: From chinander at gmail.com Sun Apr 10 00:41:27 2016 From: chinander at gmail.com (Mike Chinander) Date: Sat, 9 Apr 2016 17:41:27 -0500 Subject: [Interest] big trouble with QCoreApplication In-Reply-To: <991321C8-A3CC-4C7B-ABDB-51CBB2F5F0EC@gmail.com> References: <1BF5AC56-885E-4D12-AFC6-38446D4D2CBB@gmail.com> <991321C8-A3CC-4C7B-ABDB-51CBB2F5F0EC@gmail.com> Message-ID: Are you running it from QtCreator or on the command line? On the command line, what is the output of: ldd yourapplicationname Are there any mismatched versions of Qt libraries (or any missing libraries)? On Sat, Apr 9, 2016 at 5:33 PM, Freddy Martinez wrote: > Hi Andy, the output for the qt version qdebug is > > Qt compile version: 5.5.1 > Qt runtime version: 5.5.1 > > But, it doesn’t have any sense that the QCoreApplication constructor give > me a segfault, at less for me… > > regards > > ============================================= > "El tamaño de tus logros depende del tamaño de tus metas." > C++ and Qt Senior Developer > B.S. Computer Science > Buenos Aires, Argentina > > On Apr 9, 2016, at 7:04 PM, Andy wrote: > > Freddy: > > What you are suggesting about Qt versions sounds likely. > > To see what versions are being used, you could try outputting the version > used to compile and the runtime version in main() like this: > > qDebug().noquote() << "Qt compile version:" << QT_VERSION_STR; > qDebug().noquote() << "Qt runtime version:" << qVersion(); > > > > --- > Andy Maloney // https://asmaloney.com > twitter ~ @asmaloney > > > On Sat, Apr 9, 2016 at 5:44 PM, Freddy Martinez > wrote: > >> Hi Mike, and thanks for your answer…. >> >> I had sent you a print screen, as you could see, the line 63 is >> >> QCoreApplication a(argc,argv) >> >> the only thing I suppose that it’s happend is that in /usr/lib/x86_64/ I >> have other qt5 libraries installed but for qt 5.4.2 version… maybe when I’m >> trying to run the application is crahsed because is linking against 5.4.2 >> and I’m compiling with 5.5.1. >> >> I had download the offline installer and i had create a Qt folder on my >> home directory, there I had installed Qt 5.5.1… >> >> that is my environment >> >> any advise ? >> >> regards >> >> >> >> >> >> ============================================= >> "El tamaño de tus logros depende del tamaño de tus metas." >> C++ and Qt Senior Developer >> B.S. Computer Science >> Buenos Aires, Argentina >> >> On Apr 9, 2016, at 6:32 PM, Mike Chinander wrote: >> >> What's on line 63 of main.cpp? >> >> On Sat, Apr 9, 2016 at 4:18 PM, Freddy Martinez >> wrote: >> >>> Hi guys.. >>> >>> I’ve Kubuntu 15.10 and I’m working with qt 5.5.1… >>> >>> this is may main.cpp >>> >>> int main(int argc, char *argv[]) >>> >>> { >>> >>> QCoreApplication a(argc, argv); >>> >>> >>> if (!checkConfigurationFiles()) >>> >>> { >>> >>> qDebug()<<"Unable to start server."; >>> >>> >>> return 1; >>> >>> } >>> >>> >>> QSettings* settings = new QSettings(qApp->applicationDirPath()+"/config/server.ini",QSettings::IniFormat); >>> >>> >>> QString lastError; >>> >>> >>> NautamServer nautamServer(settings); >>> >>> >>> ConsoleLoggerFactory loggerFactory; >>> >>> >>> loggerFactory.setSettings(settings); >>> >>> >>> nautamServer.setLoggerFactory(&loggerFactory); >>> >>> >>> if (!nautamServer.startServer(lastError)) >>> >>> qDebug()<<"Last error :"<>> >>> >>> return a.exec(); >>> >>> } >>> >>> >>> the problem is taht i’m gettirn segmentation fault in the first line of >>> the main function as you’ll see in the stack as folowed: >>> >>> #0 0x00007ffff37616e7 in QOpenGLContext::create() () from >>> /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5Gui.so.5 >>> #1 0x00007fffe9b1d9bd in QtWebEngine::initialize() () from >>> /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5WebEngine.so.5 >>> #2 0x00007ffff4f63688 in QCoreApplication::init() () from >>> /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5Core.so.5 >>> #3 0x00007ffff4f63b05 in QCoreApplication::QCoreApplication(int&, >>> char**, int) () from /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5Core.so.5 >>> #4 0x000000000044935b in main (argc=1, argv=0x7fffffffdea8) at >>> ../../nautam-kernel/nautam-server/main.cpp:63 >>> >>> well guys, I really don’t know what happend and I don’t have any idea >>> about what is wrong >>> >>> can you help me please? >>> >>> regards >>> >>> >>> ============================================= >>> "El tamaño de tus logros depende del tamaño de tus metas." >>> C++ and Qt Senior Developer >>> B.S. Computer Science >>> Buenos Aires, Argentina >>> >>> >>> _______________________________________________ >>> Interest mailing list >>> Interest at qt-project.org >>> http://lists.qt-project.org/mailman/listinfo/interest >>> >>> >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest >> >> >> >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest >> >> > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From realnc at gmail.com Sun Apr 10 01:11:01 2016 From: realnc at gmail.com (Nikos Chantziaras) Date: Sun, 10 Apr 2016 02:11:01 +0300 Subject: [Interest] Why there is no QChar::toLocal8Bit()? In-Reply-To: <939080515.20160410013332@programist.ru> References: <1272861796.20160409155636@programist.ru> <8008970.VVlMfXmmKk@tjmaciei-mobl4> <16682000.20160409194552@programist.ru> <6859161460236334@web13j.yandex.ru> <939080515.20160410013332@programist.ru> Message-ID: On 10/04/16 01:33, Prav wrote: > Hi, Konstantin Tokarev and Thiago Macieira. > > >> For example, popular choice for Local8Bit encoding is UTF-8, which is multibyte. > Thanks! > > As soon as toLocal8Bit is said to use codecForLocale ... does it mean that returned > by codecForLocale codec is always 8-bit multibyte codec? No. It is the local character set. It's usually multibyte, but on some systems it might not be. I can set up my Linux installation to use ASCII for example. On that system, toLocal8Bit would give you ASCII, which is single-byte. Or, I could use an ISO character set like 8859-n. Those are single-byte too. So never assume that toLocal8Bit will always give you a single-byte or multi-byte string. It varies not only per OS, but also per user. From alan.ezust at gmail.com Sun Apr 10 01:44:18 2016 From: alan.ezust at gmail.com (Alan Ezust) Date: Sat, 9 Apr 2016 16:44:18 -0700 Subject: [Interest] big trouble with QCoreApplication In-Reply-To: References: Message-ID: The problem is you are trying to create an OpenGlContext from a QCoreApplication. #0 0x00007ffff37616e7 in QOpenGLContext::create() () from /home/ Create a QApplication or a QGuiApplication instead and it should work. On Sat, Apr 9, 2016 at 2:18 PM, Freddy Martinez wrote: > Hi guys.. > > I’ve Kubuntu 15.10 and I’m working with qt 5.5.1… > > this is may main.cpp > > int main(int argc, char *argv[]) > > { > > QCoreApplication a(argc, argv); > > > if (!checkConfigurationFiles()) > > { > > qDebug()<<"Unable to start server."; > > > return 1; > > } > > > QSettings* settings = new QSettings(qApp->applicationDirPath()+"/config/server.ini",QSettings::IniFormat); > > > QString lastError; > > > NautamServer nautamServer(settings); > > > ConsoleLoggerFactory loggerFactory; > > > loggerFactory.setSettings(settings); > > > nautamServer.setLoggerFactory(&loggerFactory); > > > if (!nautamServer.startServer(lastError)) > > qDebug()<<"Last error :"< > > return a.exec(); > > } > > > the problem is taht i’m gettirn segmentation fault in the first line of > the main function as you’ll see in the stack as folowed: > > #0 0x00007ffff37616e7 in QOpenGLContext::create() () from > /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5Gui.so.5 > #1 0x00007fffe9b1d9bd in QtWebEngine::initialize() () from > /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5WebEngine.so.5 > #2 0x00007ffff4f63688 in QCoreApplication::init() () from > /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5Core.so.5 > #3 0x00007ffff4f63b05 in QCoreApplication::QCoreApplication(int&, char**, > int) () from /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5Core.so.5 > #4 0x000000000044935b in main (argc=1, argv=0x7fffffffdea8) at > ../../nautam-kernel/nautam-server/main.cpp:63 > > well guys, I really don’t know what happend and I don’t have any idea > about what is wrong > > can you help me please? > > regards > > > ============================================= > "El tamaño de tus logros depende del tamaño de tus metas." > C++ and Qt Senior Developer > B.S. Computer Science > Buenos Aires, Argentina > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From thiago.macieira at intel.com Sat Apr 9 23:44:10 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Sat, 09 Apr 2016 14:44:10 -0700 Subject: [Interest] big trouble with QCoreApplication In-Reply-To: References: Message-ID: <2396316.xdiCET1V91@tjmaciei-mobl4> On sábado, 9 de abril de 2016 18:18:19 PDT Freddy Martinez wrote: > QSettings* settings = new > QSettings(qApp->applicationDirPath()+"/config/server.ini",QSettings::IniFor > mat); [Unrelated] You don't need new here. > #1 0x00007fffe9b1d9bd > in QtWebEngine::initialize() () from > /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5WebEngine.so.5 > #2 > 0x00007ffff4f63688 in QCoreApplication::init() () from > /home/freddy/Qt5.5.1/5.5/gcc_64/lib/libQt5Core.so.5 This is not possible. QCoreApplication::init() does not call QtWebEngine. It's simply impossible for it to call that function directly. So we conclude that the backtrace is missing information. The best theory is that there's a qAddPreRoutine for that function. Which is the case: https://codereview.qt-project.org/gitweb?p=qt/qtwebengine.git;a=blob;f=src/ webenginewidgets/api/qtwebenginewidgetsglobal.cpp Conclusion: you linked to QtWebEngine, but you're using QCoreApplication. One of the two must change. To fix: option 1: don't link to QtWebEngine option 2: use QGuiApplication or QApplication -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From pr12og2 at programist.ru Sun Apr 10 07:22:58 2016 From: pr12og2 at programist.ru (Prav) Date: Sun, 10 Apr 2016 08:22:58 +0300 Subject: [Interest] Why there is no QChar::toLocal8Bit()? In-Reply-To: References: <1272861796.20160409155636@programist.ru> <8008970.VVlMfXmmKk@tjmaciei-mobl4> <16682000.20160409194552@programist.ru> <6859161460236334@web13j.yandex.ru> <939080515.20160410013332@programist.ru> Message-ID: <1391053635.20160410082258@programist.ru> Thanks Nikos Chantziaras! > So never assume that toLocal8Bit will always give you a single-byte or > multi-byte string. It varies not only per OS, but also per user. But is this codec always NOT a 16-bit codec and NOT a 32-bit codec? From thiago.macieira at intel.com Sun Apr 10 09:05:27 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Sun, 10 Apr 2016 00:05:27 -0700 Subject: [Interest] Why there is no QChar::toLocal8Bit()? In-Reply-To: <1391053635.20160410082258@programist.ru> References: <1272861796.20160409155636@programist.ru> <1391053635.20160410082258@programist.ru> Message-ID: <2415707.OuloifeESM@tjmaciei-mobl4> On domingo, 10 de abril de 2016 08:22:58 PDT Prav wrote: > Thanks Nikos Chantziaras! > > > So never assume that toLocal8Bit will always give you a single-byte or > > multi-byte string. It varies not only per OS, but also per user. > > But is this codec always NOT a 16-bit codec and NOT a 32-bit codec? Why not? -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From pr12og2 at programist.ru Sun Apr 10 09:54:37 2016 From: pr12og2 at programist.ru (Prav) Date: Sun, 10 Apr 2016 10:54:37 +0300 Subject: [Interest] Why there is no QChar::toLocal8Bit()? In-Reply-To: <2415707.OuloifeESM@tjmaciei-mobl4> References: <1272861796.20160409155636@programist.ru> <1391053635.20160410082258@programist.ru> <2415707.OuloifeESM@tjmaciei-mobl4> Message-ID: <1911005013.20160410105437@programist.ru> Hello, Thiago. >> But is this codec always NOT a 16-bit codec and NOT a 32-bit codec? > Why not? Because I try to get what this "8Bit" (which previouse made me think that toLocal8Bit is converting to single-bytes ... chars) in name means. Is there a chance that it means nothing? From igor.mironchik at gmail.com Sun Apr 10 11:26:51 2016 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Sun, 10 Apr 2016 12:26:51 +0300 Subject: [Interest] QML suggestions... Message-ID: <570A1C5B.3040903@gmail.com> Hello guys, Some time ago I received test task - to implement basic Chess game with Qt/QML. For some reasons I didn't do this task then, but now I've decided to improve my QML skill and implement this task. Please look at it... https://github.com/igormironchik/chess I need your suggestions to improve and make better this simple test task. First of all I don't like very much this QML file: https://github.com/igormironchik/chess/blob/master/Board.qml How to write it better? Thank you. P.S. This is my first QML application... :) From realnc at gmail.com Sun Apr 10 11:38:29 2016 From: realnc at gmail.com (Nikos Chantziaras) Date: Sun, 10 Apr 2016 12:38:29 +0300 Subject: [Interest] Why there is no QChar::toLocal8Bit()? In-Reply-To: <1911005013.20160410105437@programist.ru> References: <1272861796.20160409155636@programist.ru> <1391053635.20160410082258@programist.ru> <2415707.OuloifeESM@tjmaciei-mobl4> <1911005013.20160410105437@programist.ru> Message-ID: On 10/04/16 10:54, Prav wrote: > Hello, Thiago. > >>> But is this codec always NOT a 16-bit codec and NOT a 32-bit codec? >> Why not? > Because I try to get what this "8Bit" (which previouse made me think that toLocal8Bit is converting to single-bytes ... chars) in name means. > > Is there a chance that it means nothing? toLocal8Bit() gives you a byte array. Each byte has 8 bits ;-) From cyril.qt at gmail.com Sun Apr 10 11:54:24 2016 From: cyril.qt at gmail.com (QtRep qt) Date: Sun, 10 Apr 2016 11:54:24 +0200 Subject: [Interest] QML suggestions... In-Reply-To: <570A1C5B.3040903@gmail.com> References: <570A1C5B.3040903@gmail.com> Message-ID: To improve my QML skills I did the same. You can get some idea here https://github.com/Gjergj/QMLChess Gjergj On Apr 10, 2016 11:27 AM, "Igor Mironchik" wrote: > Hello guys, > > Some time ago I received test task - to implement basic Chess game with > Qt/QML. For some reasons I didn't do this task then, but now I've decided > to improve my QML skill and implement this task. > > Please look at it... https://github.com/igormironchik/chess > > I need your suggestions to improve and make better this simple test task. > > First of all I don't like very much this QML file: > > https://github.com/igormironchik/chess/blob/master/Board.qml > > How to write it better? > > Thank you. > > P.S. This is my first QML application... :) > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > -------------- next part -------------- An HTML attachment was scrubbed... URL: From realnc at gmail.com Sun Apr 10 13:02:25 2016 From: realnc at gmail.com (Nikos Chantziaras) Date: Sun, 10 Apr 2016 14:02:25 +0300 Subject: [Interest] Is there a mirror for the Qt online documentation? Message-ID: http://doc.qt.io is down. Are there any mirrors for this? I was not able to find anything with my google-fu. From mitch.curtis at theqtcompany.com Sun Apr 10 13:08:29 2016 From: mitch.curtis at theqtcompany.com (Curtis Mitch) Date: Sun, 10 Apr 2016 11:08:29 +0000 Subject: [Interest] Is there a mirror for the Qt online documentation? In-Reply-To: References: Message-ID: I'm using web.archive.org. ________________________________________ From: Interest on behalf of Nikos Chantziaras Sent: Sunday, 10 April 2016 1:02:25 PM To: interest at qt-project.org Subject: [Interest] Is there a mirror for the Qt online documentation? http://doc.qt.io is down. Are there any mirrors for this? I was not able to find anything with my google-fu. _______________________________________________ Interest mailing list Interest at qt-project.org http://lists.qt-project.org/mailman/listinfo/interest From realnc at gmail.com Sun Apr 10 13:41:07 2016 From: realnc at gmail.com (Nikos Chantziaras) Date: Sun, 10 Apr 2016 14:41:07 +0300 Subject: [Interest] Is there a mirror for the Qt online documentation? In-Reply-To: References: Message-ID: On 10/04/16 14:08, Curtis Mitch wrote: > I'm using web.archive.org. Thanks. A bit slow, but better than nothing. From pr12og2 at programist.ru Sun Apr 10 14:01:56 2016 From: pr12og2 at programist.ru (Prav) Date: Sun, 10 Apr 2016 15:01:56 +0300 Subject: [Interest] Why there is no QChar::toLocal8Bit()? In-Reply-To: <570A3C80.8000108@gmail.com> References: <1272861796.20160409155636@programist.ru> <1391053635.20160410082258@programist.ru> <2415707.OuloifeESM@tjmaciei-mobl4> <1911005013.20160410105437@programist.ru> <1663346254.20160410141706@programist.ru> <570A3C80.8000108@gmail.com> Message-ID: <1421488661.20160410150156@programist.ru> Hi, Nikos. >> OK ... so as I can get the answer is that "8Bit" here is by mistake and means nothing at all. > toLocalEncodingAsByteArray() would be horrible. toLocal8Bit() is much better, imo. toLocal() is not horrible IMO ... and looks like analog of toLatin1() ... and does not have this strange 8Bit which are about nothing If we somehow need 8Bit in the end of functions returning bytes array ... we should call toLatin1_8Bit() ... and endless number of many other functions retuning bytes array too This "8Bit" in the end now looks like naming mistake for me ... and it also makes feeling that it returnes 8Bit chars (I mean single-byte encoding for local code page), IMO From thiago.macieira at intel.com Sun Apr 10 18:16:28 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Sun, 10 Apr 2016 09:16:28 -0700 Subject: [Interest] Is there a mirror for the Qt online documentation? In-Reply-To: References: Message-ID: <3871677.rgtaXaufz2@tjmaciei-mobl4> On domingo, 10 de abril de 2016 14:02:25 PDT Nikos Chantziaras wrote: > http://doc.qt.io is down. Are there any mirrors for this? I was not able > to find anything with my google-fu. Your hard drive. You probably have a copy of the Qt documentation installed. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From thiago.macieira at intel.com Sun Apr 10 18:12:25 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Sun, 10 Apr 2016 09:12:25 -0700 Subject: [Interest] Why there is no QChar::toLocal8Bit()? In-Reply-To: <1911005013.20160410105437@programist.ru> References: <1272861796.20160409155636@programist.ru> <2415707.OuloifeESM@tjmaciei-mobl4> <1911005013.20160410105437@programist.ru> Message-ID: <3727239.xcTWbPNpcI@tjmaciei-mobl4> On domingo, 10 de abril de 2016 10:54:37 PDT Prav wrote: > Hello, Thiago. > > >> But is this codec always NOT a 16-bit codec and NOT a 32-bit codec? > > > > Why not? > > Because I try to get what this "8Bit" (which previouse made me think that > toLocal8Bit is converting to single-bytes ... chars) in name means. > > Is there a chance that it means nothing? Yes. It's possible, though extremely unlikely, that the locale's encoding is not 8-bit, but 16- or 32-bit. Though I think that a lot of software would break, so you're not going to see that. Anyway, the point is that it's very frequently a multibyte 8-bit encoding. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From realnc at gmail.com Sun Apr 10 19:41:32 2016 From: realnc at gmail.com (Nikos Chantziaras) Date: Sun, 10 Apr 2016 20:41:32 +0300 Subject: [Interest] Is there a mirror for the Qt online documentation? In-Reply-To: <3871677.rgtaXaufz2@tjmaciei-mobl4> References: <3871677.rgtaXaufz2@tjmaciei-mobl4> Message-ID: On 10/04/16 19:16, Thiago Macieira wrote: > On domingo, 10 de abril de 2016 14:02:25 PDT Nikos Chantziaras wrote: >> http://doc.qt.io is down. Are there any mirrors for this? I was not able >> to find anything with my google-fu. > > Your hard drive. You probably have a copy of the Qt documentation installed. Actually I don't :-) (And this is proof that I really should.) From nomercy at gmail.com Sun Apr 10 19:46:16 2016 From: nomercy at gmail.com (Emre Besirik) Date: Sun, 10 Apr 2016 20:46:16 +0300 Subject: [Interest] Is there a mirror for the Qt online documentation? In-Reply-To: References: <3871677.rgtaXaufz2@tjmaciei-mobl4> Message-ID: <064F01FB-5F13-4994-980E-A7AF96DAD787@gmail.com> > On 10 Apr 2016, at 20:41, Nikos Chantziaras wrote: > > On 10/04/16 19:16, Thiago Macieira wrote: >> On domingo, 10 de abril de 2016 14:02:25 PDT Nikos Chantziaras wrote: >>> http://doc.qt.io is down. Are there any mirrors for this? I was not able >>> to find anything with my google-fu. >> >> Your hard drive. You probably have a copy of the Qt documentation installed. > > Actually I don't :-) > > (And this is proof that I really should.) Actually there is Dash if you are using a mac or Zeal (windows version of Dash) very useful Regards, Emre Beşirik nomercy at gmail.com From pr12og2 at programist.ru Mon Apr 11 08:46:24 2016 From: pr12og2 at programist.ru (Prav) Date: Mon, 11 Apr 2016 09:46:24 +0300 Subject: [Interest] Why there is no QChar::toLocal8Bit()? In-Reply-To: <3727239.xcTWbPNpcI@tjmaciei-mobl4> References: <1272861796.20160409155636@programist.ru> <2415707.OuloifeESM@tjmaciei-mobl4> <1911005013.20160410105437@programist.ru> <3727239.xcTWbPNpcI@tjmaciei-mobl4> Message-ID: <1475155997.20160411094624@programist.ru> Hi, Thiago. > Yes. It's possible, though extremely unlikely, that the locale's encoding is > not 8-bit, but 16- or 32-bit. Though I think that a lot of software would > break Sure I am aware of it. > , so you're not going to see that. Why you think I want to "see that". Its Qt-devs naming mistake. So it is only decision of Qt-devs (probably yours) when and whether to fix it (may be like it was done with toAscii in Qt 5.0 ... it would be done in Qt 6.0 ... who knows). But naming mistakes are worth to be fixed in docs, IMO > Anyway, the point is that it's very frequently a multibyte 8-bit encoding. Ok ok :) :) :) And last question ... is there a way to find out what type of encoding was done by toLocal8Bit? sigle-byte or multi-byte or 16- or 32-bit I was thinking about: QTextCodec::codecForLocale()-> ... But I did not found anything helpful in QTextCodec for that purpose. From pr12og2 at programist.ru Mon Apr 11 08:59:05 2016 From: pr12og2 at programist.ru (Prav) Date: Mon, 11 Apr 2016 09:59:05 +0300 Subject: [Interest] Is there a mirror for the Qt online documentation? In-Reply-To: <064F01FB-5F13-4994-980E-A7AF96DAD787@gmail.com> References: <3871677.rgtaXaufz2@tjmaciei-mobl4> <064F01FB-5F13-4994-980E-A7AF96DAD787@gmail.com> Message-ID: <599008471.20160411095905@programist.ru> Hi, Emre and Nikos. >> Actually I don't :-) >> (And this is proof that I really should.) You are not using context help in QtC!? > Actually there is Dash if you are using a mac or Zeal (windows version of Dash) > very useful How you are using it? Is there a plugin for using Zeal right from QtC and/or CLion? From andre.hartmann at iseg-hv.de Mon Apr 11 09:13:04 2016 From: andre.hartmann at iseg-hv.de (=?UTF-8?Q?Andr=c3=a9_Hartmann?=) Date: Mon, 11 Apr 2016 09:13:04 +0200 Subject: [Interest] [QtSerialBus] [CAN] Blocking API planned? Message-ID: <570B4E80.8050308@iseg-hv.de> Hi all, right now the CAN bus API provides the signals framesReceived() and framesWritten(). For some cases, it's easier to have a thread that blocks until an event occurs. Therefore, the additional functions bool waitForFramesReceived(int msecs) bool waitForFramesWritten(int msecs) could be useful. Is there already something planned in this direction? Best regards, Andre From thiago.macieira at intel.com Mon Apr 11 09:19:29 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Mon, 11 Apr 2016 00:19:29 -0700 Subject: [Interest] Why there is no QChar::toLocal8Bit()? In-Reply-To: <1475155997.20160411094624@programist.ru> References: <1272861796.20160409155636@programist.ru> <3727239.xcTWbPNpcI@tjmaciei-mobl4> <1475155997.20160411094624@programist.ru> Message-ID: <5749129.NTQl87OYK4@tjmaciei-mobl4> On segunda-feira, 11 de abril de 2016 09:46:24 PDT Prav wrote: > Hi, Thiago. > > > Yes. It's possible, though extremely unlikely, that the locale's encoding > > is not 8-bit, but 16- or 32-bit. Though I think that a lot of software > > would break > > Sure I am aware of it. > > > , so you're not going to see that. > > Why you think I want to "see that". Its Qt-devs naming mistake. Indeed. It should have been called "toLocaleEncoding". > So it is only decision of Qt-devs (probably yours) when and whether to fix > it (may be like it was done with toAscii in Qt 5.0 ... it would be done in > Qt 6.0 ... who knows). Unlikely. > But naming mistakes are worth to be fixed in docs, IMO > > > Anyway, the point is that it's very frequently a multibyte 8-bit encoding. > > Ok ok :) :) :) > > > And last question ... is there a way to find out what type of encoding was > done by toLocal8Bit? sigle-byte or multi-byte or 16- or 32-bit As I said, it's not 16- or 32-bit because that's going to break other software. So it's 8-bit. Whether it's single-byte or multi-byte, you can't get that information. More to the point, I'd say that you should not even ask that question. That indicates you're making wrong decisions and your software has design flaws. Instead, redesign so you don't need to answer the question in the first place. > I was thinking about: QTextCodec::codecForLocale()-> ... > But I did not found anything helpful in QTextCodec for that purpose. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From pr12og2 at programist.ru Mon Apr 11 09:21:05 2016 From: pr12og2 at programist.ru (Prav) Date: Mon, 11 Apr 2016 10:21:05 +0300 Subject: [Interest] PeekMessage, DispatchMessage and Qt events dispatching In-Reply-To: <1834946.eVpY1zXdSB@tjmaciei-mobl4> References: <1834946.eVpY1zXdSB@tjmaciei-mobl4> Message-ID: <878091543.20160411102105@programist.ru> Hi, Thiago. >> So here is my question is there a bug in Qt or does DispatchMessage >> shouldn't be called ? > Moreover the execution stack is never unstacked i.e DispatchMessage doesn't return. > Don't call it. Qt integrates with the Windows event loop, so this behaviour is > expected. Ditto for Cocoa event loops and for glib: if you cause them to > dispatch, Qt event processing will be woken up and deliver pending events. It seems expected that next Receiver::work() processing started but how is that DispatchMessage NEVER returns? From alexander.blasche at theqtcompany.com Mon Apr 11 09:25:42 2016 From: alexander.blasche at theqtcompany.com (Blasche Alexander) Date: Mon, 11 Apr 2016 07:25:42 +0000 Subject: [Interest] [QtSerialBus] [CAN] Blocking API planned? In-Reply-To: <570B4E80.8050308@iseg-hv.de> References: <570B4E80.8050308@iseg-hv.de> Message-ID: Hi Andre, I have no immediate plan but it is a suggestion which I am willing to take onboard. I have converted your mail to: https://bugreports.qt.io/browse/QTBUG-52495 -- Alex ________________________________________ From: Interest on behalf of André Hartmann Sent: Monday, April 11, 2016 09:13 To: Interest at qt-project.org Subject: [Interest] [QtSerialBus] [CAN] Blocking API planned? Hi all, right now the CAN bus API provides the signals framesReceived() and framesWritten(). For some cases, it's easier to have a thread that blocks until an event occurs. Therefore, the additional functions bool waitForFramesReceived(int msecs) bool waitForFramesWritten(int msecs) could be useful. Is there already something planned in this direction? Best regards, Andre _______________________________________________ Interest mailing list Interest at qt-project.org http://lists.qt-project.org/mailman/listinfo/interest From richard.thompson at etcconnect.com Mon Apr 11 09:31:12 2016 From: richard.thompson at etcconnect.com (Richard) Date: Mon, 11 Apr 2016 07:31:12 +0000 (UTC) Subject: [Interest] login.qt.io down => cannot install Qt References: <1565646.9fsNEG2S9l@devrobert> Message-ID: Kojo Tero theqtcompany.com> writes: > > Hi, > > There was a server incident in the early hours of the night (local server time) and that was fixed as soon as > there was someone in the office. > > It is not mandatory to log in to install Qt. > In open source you can skip the login in the installer. (there is the option on the screen that asks for your Qt Account) > Or download the offline installer and forget the network completely. > > For a commercial fresh install you do need to log in (or have the license ready), so yes it can be a problem there. > We know that every system can fail, but there needs to be some way to manage commercial licenses, in practice > an online server is the best option. > > Best regards, > Tero > > > -----Original Message----- > > From: Interest [mailto:interest-bounces+tero.kojo=theqtcompany.com qt- > > project.org] On Behalf Of Robert Buchinger > > Sent: 5. huhtikuuta 2016 13:52 > > To: interest qt-project.org > > Cc: Boris gmail.com> > > Subject: Re: [Interest] login.qt.io down => cannot install Qt > > > > On Tuesday, April 5, 2016 5:50:20 AM CEST Boris wrote: > > > I am installing a new machine and setting up my development > > environment. > > > However, I cannot install Qt because the Qt installer forces to login > > > to your account, and login.qt.io appears to be down, resulting in a > > > "TIMEOUT" error when trying to login. Anyone has this error as well? > > > The blog seems down as well, I get "No application configured" when going > > to blog.qt.io. > > > > > > Seriously, this is very embarrassing for Digia. Users cannot get work > > > done because of their incredibly bad decision to force users to login > > > to install their software. > > > > > > This is both a rant and a feature request: Digia, please make login > > > optional to install your software, because if you think you can > > > guarantee that the login system is never down, you are fooling > > > yourself. Such a lack of professionalism. > > > > > > > > > _______________________________________________ > > > Interest mailing list > > > Interest qt-project.org > > > http://lists.qt-project.org/mailman/listinfo/interest > > > > > For me both login.qt.io and blog.qt.io are working. > > > > Does this happen within the Maintenance Tool or from the browser? > > > > As long as you not have a commercial license you not need to log in to > > download and install Qt. > > > > > > _______________________________________________ > > Interest mailing list > > Interest qt-project.org > > http://lists.qt-project.org/mailman/listinfo/interest > It's down again. I've been trying for the last hour, and I doubt I was the first. Two unscheduled failures lasting several hours within a few days is a rather poor showing. I'm also rather concerned that you don't appear to have any out-of-hours server monitoring, especially as commercial users *must* use this server to install Qt. Who should commercial users contact to report this in the future? A public mailing list seems a little slow. A server failure like this should be getting somebody out of bed to go crank the hamster wheel. - Richard From ekke at ekkes-corner.org Mon Apr 11 09:43:33 2016 From: ekke at ekkes-corner.org (ekke) Date: Mon, 11 Apr 2016 09:43:33 +0200 Subject: [Interest] login.qt.io down => cannot install Qt In-Reply-To: References: <1565646.9fsNEG2S9l@devrobert> Message-ID: <570B55A5.6060006@ekkes-corner.org> Am 11.04.16 um 09:31 schrieb Richard: > Kojo Tero theqtcompany.com> writes: > >> Hi, >> >> There was a server incident in the early hours of the night (local server > time) and that was fixed as soon as >> there was someone in the office. >> >> It is not mandatory to log in to install Qt. >> In open source you can skip the login in the installer. (there is the > option on the screen that asks for your Qt Account) >> Or download the offline installer and forget the network completely. >> >> For a commercial fresh install you do need to log in (or have the license > ready), so yes it can be a problem there. >> We know that every system can fail, but there needs to be some way to > manage commercial licenses, in practice >> an online server is the best option. >> >> Best regards, >> Tero >> >>> -----Original Message----- >>> From: Interest [mailto:interest-bounces+tero.kojo=theqtcompany.com qt- >>> project.org] On Behalf Of Robert Buchinger >>> Sent: 5. huhtikuuta 2016 13:52 >>> To: interest qt-project.org >>> Cc: Boris gmail.com> >>> Subject: Re: [Interest] login.qt.io down => cannot install Qt >>> >>> On Tuesday, April 5, 2016 5:50:20 AM CEST Boris wrote: >>>> I am installing a new machine and setting up my development >>> environment. >>>> However, I cannot install Qt because the Qt installer forces to login >>>> to your account, and login.qt.io appears to be down, resulting in a >>>> "TIMEOUT" error when trying to login. Anyone has this error as well? >>>> The blog seems down as well, I get "No application configured" when going >>> to blog.qt.io. >>>> Seriously, this is very embarrassing for Digia. Users cannot get work >>>> done because of their incredibly bad decision to force users to login >>>> to install their software. >>>> >>>> This is both a rant and a feature request: Digia, please make login >>>> optional to install your software, because if you think you can >>>> guarantee that the login system is never down, you are fooling >>>> yourself. Such a lack of professionalism. >>>> >>>> >>>> _______________________________________________ >>>> Interest mailing list >>>> Interest qt-project.org >>>> http://lists.qt-project.org/mailman/listinfo/interest >>>> >>> For me both login.qt.io and blog.qt.io are working. >>> >>> Does this happen within the Maintenance Tool or from the browser? >>> >>> As long as you not have a commercial license you not need to log in to >>> download and install Qt. >>> >>> >>> _______________________________________________ >>> Interest mailing list >>> Interest qt-project.org >>> http://lists.qt-project.org/mailman/listinfo/interest > It's down again. I've been trying for the last hour, and I doubt I was the > first. > > Two unscheduled failures lasting several hours within a few days is a rather > poor showing. > > I'm also rather concerned that you don't appear to have any out-of-hours > server monitoring, especially as commercial users *must* use this server to > install Qt. > > Who should commercial users contact to report this in the future? > > A public mailing list seems a little slow. A server failure like this should > be getting somebody out of bed to go crank the hamster wheel. > > - Richard qt.io account was down also yesterday. tried many times. +1 to implement server monitoring, also please imemdiately twitter the status as others do. thx. ekke From nomercy at gmail.com Mon Apr 11 10:14:59 2016 From: nomercy at gmail.com (Emre Besirik) Date: Mon, 11 Apr 2016 11:14:59 +0300 Subject: [Interest] Is there a mirror for the Qt online documentation? In-Reply-To: <599008471.20160411095905@programist.ru> References: <3871677.rgtaXaufz2@tjmaciei-mobl4> <064F01FB-5F13-4994-980E-A7AF96DAD787@gmail.com> <599008471.20160411095905@programist.ru> Message-ID: > On 11 Apr 2016, at 09:59, Prav wrote: > > Hi, Emre and Nikos. > >>> Actually I don't :-) >>> (And this is proof that I really should.) > You are not using context help in QtC!? > > >> Actually there is Dash if you are using a mac or Zeal (windows version of Dash) >> very useful > How you are using it? Is there a plugin for using Zeal right from QtC and/or CLion? There is for Dash (Clion not QtC) but I don’t think there is for Zeal :( Dash is a little bit more advanced and user friendly Regards, Emre Beşirik nomercy at gmail.com From andre.hartmann at iseg-hv.de Mon Apr 11 10:33:18 2016 From: andre.hartmann at iseg-hv.de (=?UTF-8?Q?Andr=c3=a9_Hartmann?=) Date: Mon, 11 Apr 2016 10:33:18 +0200 Subject: [Interest] [QtSerialBus] [CAN] Blocking API planned? In-Reply-To: References: <570B4E80.8050308@iseg-hv.de> Message-ID: <570B614E.9040704@iseg-hv.de> Hi Alex, Thanks. Please add me to reviews if you work on this. If I find time, I may look into this issue myself also. Best regards, Andre Am 11.04.2016 um 09:25 schrieb Blasche Alexander: > Hi Andre, > > I have no immediate plan but it is a suggestion which I am willing to take onboard. I have converted your mail to: > > https://bugreports.qt.io/browse/QTBUG-52495 > > -- > Alex > > ________________________________________ > From: Interest on behalf of André Hartmann > Sent: Monday, April 11, 2016 09:13 > To: Interest at qt-project.org > Subject: [Interest] [QtSerialBus] [CAN] Blocking API planned? > > Hi all, > > right now the CAN bus API provides the signals framesReceived() and > framesWritten(). > > For some cases, it's easier to have a thread that blocks until an event > occurs. Therefore, the additional functions > > bool waitForFramesReceived(int msecs) > bool waitForFramesWritten(int msecs) > > could be useful. > > Is there already something planned in this direction? > > Best regards, > Andre > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > From pr12og2 at programist.ru Mon Apr 11 10:41:13 2016 From: pr12og2 at programist.ru (Prav) Date: Mon, 11 Apr 2016 11:41:13 +0300 Subject: [Interest] Why there is no QChar::toLocal8Bit()? In-Reply-To: <5749129.NTQl87OYK4@tjmaciei-mobl4> References: <1272861796.20160409155636@programist.ru> <3727239.xcTWbPNpcI@tjmaciei-mobl4> <1475155997.20160411094624@programist.ru> <5749129.NTQl87OYK4@tjmaciei-mobl4> Message-ID: <1658832583.20160411114113@programist.ru> Hi, Thiago. >> And last question ... is there a way to find out what type of encoding was >> done by toLocal8Bit? sigle-byte or multi-byte or 16- or 32-bit > As I said, it's not 16- or 32-bit because that's going to break other software. So it's 8-bit. ??? ... earlier I asked >>> So never assume that toLocal8Bit will always give you a single-byte or >>> multi-byte string. It varies not only per OS, but also per user. >> But is this codec always NOT a 16-bit codec and NOT a 32-bit codec? and you answered >Why not? For me "why not" mean that everything is possible. So it could be 16- or 32-bit. Probably I did not get your's "why not?" ... because now you are saying it can NOT be 16- or 32-bit! Well ... сan you clarify your answer please? > Whether it's single-byte or multi-byte, you can't get that information. More > to the point, I'd say that you should not even ask that question. That > indicates you're making wrong decisions and your software has design flaws. > Instead, redesign so you don't need to answer the question in the first place. Ok ... probably you are right ... probably I made XY-asking mistake here ... sorry ... so may be I need to ask another way. How can I know that my QSting can be converted successfully with Local code page (local encoding) to signle-byte string? From sierdzio at gmail.com Mon Apr 11 11:14:31 2016 From: sierdzio at gmail.com (Tomasz Siekierda) Date: Mon, 11 Apr 2016 11:14:31 +0200 Subject: [Interest] Why there is no QChar::toLocal8Bit()? In-Reply-To: <1658832583.20160411114113@programist.ru> References: <1272861796.20160409155636@programist.ru> <3727239.xcTWbPNpcI@tjmaciei-mobl4> <1475155997.20160411094624@programist.ru> <5749129.NTQl87OYK4@tjmaciei-mobl4> <1658832583.20160411114113@programist.ru> Message-ID: On 11 April 2016 at 10:41, Prav wrote: >>>> So never assume that toLocal8Bit will always give you a single-byte or >>>> multi-byte string. It varies not only per OS, but also per user. >>> But is this codec always NOT a 16-bit codec and NOT a 32-bit codec? > and you answered >>Why not? > > For me "why not" mean that everything is possible. So it could be 16- or 32-bit. > Probably I did not get your's "why not?" ... because now you are saying it can NOT be 16- or 32-bit! > > Well ... сan you clarify your answer please? Prav, I think you misunderstand what 8bit and codec means here. toLocal8Bit() will convert the string into 8-bit long chunks (so, a QByteArray). That's it. However, your locale can be in UTF-8, in which some characters are 8 bit long, some are 16 bit long, and some are even 32 bit long. If your text contains a 32bit character, and you use toLocal8bit(), that single character will occupy 4 places (indexes) in the QByteArray. It will not be "compressed" into 8 bits, because that is not possible. At least that's how I understand it now ;-) From gmaxera at gmail.com Mon Apr 11 11:36:00 2016 From: gmaxera at gmail.com (Gian Maxera) Date: Mon, 11 Apr 2016 10:36:00 +0100 Subject: [Interest] Strange ordering problem with ComboBox Message-ID: <9BE9A759-3454-49C1-97F7-EFD0BB8DFF2B@gmail.com> Hello, I’m using the ComboBox item of QML with more than two Items with a ListModel like that: ComboBox { id: rateType anchors.horizontalCenter: parent.horizontalCenter width: parent.width*0.9 Component.onCompleted: { if ( models.appointment.lead == null ) { rateType.currentIndex = 0 } else if ( models.appointment.lead.type == 'contact' ) { rateType.currentIndex = 0 } else if ( models.appointment.lead.type == 'brochure' ) { rateType.currentIndex = 1 } else if ( models.appointment.lead.type == 'tentative' ) { rateType.currentIndex = 2 } else if ( models.appointment.lead.type == 'definite' ) { rateType.currentIndex = 3 } } model: ListModel { ListElement { leadType: 'contact' leadText: 'Contact only' } ListElement { leadType: 'brochure' leadText: 'Brochure request' } ListElement { leadType: 'tentative' leadText: 'Tentative lead' } ListElement { leadType: 'definite' leadText: 'Definite lead' } } textRole: "leadText" But the popup menu appearing for select the option contain the elements into a different order than ListModel and when you select one of those the ComboBox select a different one. In such a way that it seems the index are correct but the labels of the popup menu are wrong. Someone hits this error before ? I’m using Qt 5.5 for now. Ciao, Gianluca. -------------- next part -------------- An HTML attachment was scrubbed... URL: From igor.mironchik at gmail.com Mon Apr 11 11:38:55 2016 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Mon, 11 Apr 2016 12:38:55 +0300 Subject: [Interest] QML id Message-ID: <570B70AF.6030107@gmail.com> Hello, Is it possible to generate id of item in Repeater, for example? Thank you. From gmaxera at gmail.com Mon Apr 11 11:40:44 2016 From: gmaxera at gmail.com (Gian Maxera) Date: Mon, 11 Apr 2016 10:40:44 +0100 Subject: [Interest] QML id In-Reply-To: <570B70AF.6030107@gmail.com> References: <570B70AF.6030107@gmail.com> Message-ID: <640986D9-7EC7-44B5-84BD-515A2179137E@gmail.com> Hello, I don’t think so. Why do you need it ? Maybe we can suggest to you an alternative solution. Ciao, Gianluca. > On 11 Apr 2016, at 10:38, Igor Mironchik wrote: > > Hello, > > Is it possible to generate id of item in Repeater, for example? > > Thank you. > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest From igor.mironchik at gmail.com Mon Apr 11 11:49:11 2016 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Mon, 11 Apr 2016 12:49:11 +0300 Subject: [Interest] QML id In-Reply-To: <640986D9-7EC7-44B5-84BD-515A2179137E@gmail.com> References: <570B70AF.6030107@gmail.com> <640986D9-7EC7-44B5-84BD-515A2179137E@gmail.com> Message-ID: <570B7317.90605@gmail.com> Look. I want to generate chess board - rectangles (8x8). And I want to place numbers an letters on the sides. This numbers and letters should be anchored to centers of rectangles. I.e. I want to have something like: Text { anchor.horizontalCenter: cell00.horizontalCenter } ... On 11.04.2016 12:40, Gian Maxera wrote: > Hello, > I don’t think so. > Why do you need it ? Maybe we can suggest to you an alternative solution. > > Ciao, > Gianluca. > > >> On 11 Apr 2016, at 10:38, Igor Mironchik wrote: >> >> Hello, >> >> Is it possible to generate id of item in Repeater, for example? >> >> Thank you. >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest From pr12og2 at programist.ru Mon Apr 11 11:57:35 2016 From: pr12og2 at programist.ru (Prav) Date: Mon, 11 Apr 2016 12:57:35 +0300 Subject: [Interest] Why there is no QChar::toLocal8Bit()? In-Reply-To: References: <1272861796.20160409155636@programist.ru> <3727239.xcTWbPNpcI@tjmaciei-mobl4> <1475155997.20160411094624@programist.ru> <5749129.NTQl87OYK4@tjmaciei-mobl4> <1658832583.20160411114113@programist.ru> Message-ID: <7810661732.20160411125735@programist.ru> Hi, Tomasz. > Prav, I think you misunderstand what 8bit and codec means here. > ... > However, your locale can be in UTF-8, in which some characters are 8 bit long ... Agree. I already undestood from previous answers that locale can multibyte. Let me rephare my question: Can locale be UTF-16 or any other 16- or 32-bit locale? From gmaxera at gmail.com Mon Apr 11 11:57:34 2016 From: gmaxera at gmail.com (Gian Maxera) Date: Mon, 11 Apr 2016 10:57:34 +0100 Subject: [Interest] QML id In-Reply-To: <570B7317.90605@gmail.com> References: <570B70AF.6030107@gmail.com> <640986D9-7EC7-44B5-84BD-515A2179137E@gmail.com> <570B7317.90605@gmail.com> Message-ID: <4FD6284F-F4FE-4DF2-A601-C72F0584A8A1@gmail.com> If the Text is inside the generated rectangle into the repeater you don’t need to generate different Ids, you can do that: Repeater { model: 10 delegate: Rectangle { id: cellRect Text { anchor.horizontalCenter: cellRect.horizontalCenter } } } Even if the delegate has a fixed id and generated 10 times, QML will resolve correctly it. Ciao, Gianluca. } > On 11 Apr 2016, at 10:49, Igor Mironchik wrote: > > Look. I want to generate chess board - rectangles (8x8). And I want to place numbers an letters on the sides. This numbers and letters should be anchored to centers of rectangles. I.e. I want to have something like: > > Text { > anchor.horizontalCenter: cell00.horizontalCenter > } > > ... > > On 11.04.2016 12:40, Gian Maxera wrote: >> Hello, >> I don’t think so. >> Why do you need it ? Maybe we can suggest to you an alternative solution. >> >> Ciao, >> Gianluca. >> >> >>> On 11 Apr 2016, at 10:38, Igor Mironchik wrote: >>> >>> Hello, >>> >>> Is it possible to generate id of item in Repeater, for example? >>> >>> Thank you. >>> _______________________________________________ >>> Interest mailing list >>> Interest at qt-project.org >>> http://lists.qt-project.org/mailman/listinfo/interest > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jesus.fernandez at theqtcompany.com Mon Apr 11 11:59:08 2016 From: jesus.fernandez at theqtcompany.com (Jesus Fernandez) Date: Mon, 11 Apr 2016 11:59:08 +0200 Subject: [Interest] QML id In-Reply-To: <570B7317.90605@gmail.com> References: <570B70AF.6030107@gmail.com> <640986D9-7EC7-44B5-84BD-515A2179137E@gmail.com> <570B7317.90605@gmail.com> Message-ID: <9609875.v3gkB71MWT@linux-5lbc> Hi! You can store the items in a custom JavaScript variable: import QtQuick 2.5 import QtQuick.Window 2.2 Window { property var rowItems visible: true Component.onCompleted: { /rowItems/ = []; for (var /i/ = 0; /i/ < 64; ++/i/) { /rowItems/[/i/] = /Qt/.createQmlObject( 'import QtQuick 2.0; Rectangle {color: "red"; width: 20; height: 20}', /column/); } /rowItems/[10].color = "green"; } Column { id: /column/; } } On Monday, April 11, 2016 12:49:11 PM Igor Mironchik wrote: > Look. I want to generate chess board - rectangles (8x8). And I want to > place numbers an letters on the sides. This numbers and letters should > be anchored to centers of rectangles. I.e. I want to have something like: > > Text { > anchor.horizontalCenter: cell00.horizontalCenter > } > > ... > > On 11.04.2016 12:40, Gian Maxera wrote: > > Hello, > > I don’t think so. > > Why do you need it ? Maybe we can suggest to you an alternative solution. > > > > Ciao, > > Gianluca. > > > >> On 11 Apr 2016, at 10:38, Igor Mironchik > >> wrote: > >> > >> Hello, > >> > >> Is it possible to generate id of item in Repeater, for example? > >> > >> Thank you. > >> _______________________________________________ > >> Interest mailing list > >> Interest at qt-project.org > >> http://lists.qt-project.org/mailman/listinfo/interest > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -- Best regards, Jesus -------------- next part -------------- An HTML attachment was scrubbed... URL: From tero.kojo at theqtcompany.com Mon Apr 11 12:09:55 2016 From: tero.kojo at theqtcompany.com (Kojo Tero) Date: Mon, 11 Apr 2016 10:09:55 +0000 Subject: [Interest] login.qt.io down => cannot install Qt In-Reply-To: <570B55A5.6060006@ekkes-corner.org> References: <1565646.9fsNEG2S9l@devrobert> <570B55A5.6060006@ekkes-corner.org> Message-ID: Hi, Yes, the server went down on Sunday again. Same underlying hardware issue manifested again. The solution was to move everything out of the troublesome environment right away. That was the unscheduled break this morning. Full time standby is something that our IT people need to discuss now. We do have monitoring, but lacked the right person on Sunday. Also making the infrastructure more fault tolerant is a must. Really sorry for the hassle. Tero -----Original Message----- From: Interest [mailto:interest-bounces+tero.kojo=theqtcompany.com at qt-project.org] On Behalf Of ekke Sent: maanantaina 11. huhtikuuta 2016 10.44 To: interest at qt-project.org Subject: Re: [Interest] login.qt.io down => cannot install Qt Am 11.04.16 um 09:31 schrieb Richard: > Kojo Tero theqtcompany.com> writes: > >> Hi, >> >> There was a server incident in the early hours of the night (local >> server > time) and that was fixed as soon as >> there was someone in the office. >> >> It is not mandatory to log in to install Qt. >> In open source you can skip the login in the installer. (there is the > option on the screen that asks for your Qt Account) >> Or download the offline installer and forget the network completely. >> >> For a commercial fresh install you do need to log in (or have the >> license > ready), so yes it can be a problem there. >> We know that every system can fail, but there needs to be some way to > manage commercial licenses, in practice >> an online server is the best option. >> >> Best regards, >> Tero >> >>> -----Original Message----- >>> From: Interest [mailto:interest-bounces+tero.kojo=theqtcompany.com >>> qt- project.org] On Behalf Of Robert Buchinger >>> Sent: 5. huhtikuuta 2016 13:52 >>> To: interest qt-project.org >>> Cc: Boris gmail.com> >>> Subject: Re: [Interest] login.qt.io down => cannot install Qt >>> >>> On Tuesday, April 5, 2016 5:50:20 AM CEST Boris wrote: >>>> I am installing a new machine and setting up my development >>> environment. >>>> However, I cannot install Qt because the Qt installer forces to >>>> login to your account, and login.qt.io appears to be down, >>>> resulting in a "TIMEOUT" error when trying to login. Anyone has this error as well? >>>> The blog seems down as well, I get "No application configured" when >>>> going >>> to blog.qt.io. >>>> Seriously, this is very embarrassing for Digia. Users cannot get >>>> work done because of their incredibly bad decision to force users >>>> to login to install their software. >>>> >>>> This is both a rant and a feature request: Digia, please make login >>>> optional to install your software, because if you think you can >>>> guarantee that the login system is never down, you are fooling >>>> yourself. Such a lack of professionalism. >>>> >>>> >>>> _______________________________________________ >>>> Interest mailing list >>>> Interest qt-project.org >>>> http://lists.qt-project.org/mailman/listinfo/interest >>>> >>> For me both login.qt.io and blog.qt.io are working. >>> >>> Does this happen within the Maintenance Tool or from the browser? >>> >>> As long as you not have a commercial license you not need to log in >>> to download and install Qt. >>> >>> >>> _______________________________________________ >>> Interest mailing list >>> Interest qt-project.org >>> http://lists.qt-project.org/mailman/listinfo/interest > It's down again. I've been trying for the last hour, and I doubt I was > the first. > > Two unscheduled failures lasting several hours within a few days is a > rather poor showing. > > I'm also rather concerned that you don't appear to have any > out-of-hours server monitoring, especially as commercial users *must* > use this server to install Qt. > > Who should commercial users contact to report this in the future? > > A public mailing list seems a little slow. A server failure like this > should be getting somebody out of bed to go crank the hamster wheel. > > - Richard qt.io account was down also yesterday. tried many times. +1 to implement server monitoring, also please imemdiately twitter the status as others do. thx. ekke _______________________________________________ Interest mailing list Interest at qt-project.org http://lists.qt-project.org/mailman/listinfo/interest From igor.mironchik at gmail.com Mon Apr 11 12:14:25 2016 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Mon, 11 Apr 2016 13:14:25 +0300 Subject: [Interest] QML id In-Reply-To: <4FD6284F-F4FE-4DF2-A601-C72F0584A8A1@gmail.com> References: <570B70AF.6030107@gmail.com> <640986D9-7EC7-44B5-84BD-515A2179137E@gmail.com> <570B7317.90605@gmail.com> <4FD6284F-F4FE-4DF2-A601-C72F0584A8A1@gmail.com> Message-ID: <570B7901.1030901@gmail.com> On 11.04.2016 12:57, Gian Maxera wrote: > If the Text is inside the generated rectangle into the repeater you > don’t need to generate different Ids, you can do that: > > Repeater { > model: 10 > delegate: Rectangle { > id: cellRect > Text { > anchor.horizontalCenter: cellRect.horizontalCenter > } > } > } > > Even if the delegate has a fixed id and generated 10 times, QML will > resolve correctly it. I want to rewrite my QML with chess board with Repeater. And I want to see the next: Chess > > Ciao, > Gianluca. > > } > >> On 11 Apr 2016, at 10:49, Igor Mironchik > > wrote: >> >> Look. I want to generate chess board - rectangles (8x8). And I want >> to place numbers an letters on the sides. This numbers and letters >> should be anchored to centers of rectangles. I.e. I want to have >> something like: >> >> Text { >> anchor.horizontalCenter: cell00.horizontalCenter >> } >> >> ... >> >> On 11.04.2016 12:40, Gian Maxera wrote: >>> Hello, >>> I don’t think so. >>> Why do you need it ? Maybe we can suggest to you an alternative >>> solution. >>> >>> Ciao, >>> Gianluca. >>> >>> >>>> On 11 Apr 2016, at 10:38, Igor Mironchik >>> > wrote: >>>> >>>> Hello, >>>> >>>> Is it possible to generate id of item in Repeater, for example? >>>> >>>> Thank you. >>>> _______________________________________________ >>>> Interest mailing list >>>> Interest at qt-project.org >>>> http://lists.qt-project.org/mailman/listinfo/interest >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: chess.png Type: image/png Size: 20604 bytes Desc: not available URL: From Shawn.Rutledge at theqtcompany.com Mon Apr 11 12:14:31 2016 From: Shawn.Rutledge at theqtcompany.com (Rutledge Shawn) Date: Mon, 11 Apr 2016 10:14:31 +0000 Subject: [Interest] QML id In-Reply-To: <570B7317.90605@gmail.com> References: <570B70AF.6030107@gmail.com> <640986D9-7EC7-44B5-84BD-515A2179137E@gmail.com> <570B7317.90605@gmail.com> Message-ID: <1404F9D6-A4A4-4278-86B0-8E50B6AB5553@digia.com> Inside each item instantiated in a Repeater, “index” is bound: the first item has index 0, the second has 1 and so on. So you can use that directly to number the squares or use it as an array index to look up something in a JS array. > On 11 Apr 2016, at 11:49, Igor Mironchik wrote: > > Look. I want to generate chess board - rectangles (8x8). And I want to place numbers an letters on the sides. This numbers and letters should be anchored to centers of rectangles. I.e. I want to have something like: > > Text { > anchor.horizontalCenter: cell00.horizontalCenter > } > > ... > > On 11.04.2016 12:40, Gian Maxera wrote: >> Hello, >> I don’t think so. >> Why do you need it ? Maybe we can suggest to you an alternative solution. >> >> Ciao, >> Gianluca. >> >> >>> On 11 Apr 2016, at 10:38, Igor Mironchik wrote: >>> >>> Hello, >>> >>> Is it possible to generate id of item in Repeater, for example? >>> >>> Thank you. >>> _______________________________________________ >>> Interest mailing list >>> Interest at qt-project.org >>> http://lists.qt-project.org/mailman/listinfo/interest > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest From gmaxera at gmail.com Mon Apr 11 12:19:34 2016 From: gmaxera at gmail.com (Gian Maxera) Date: Mon, 11 Apr 2016 11:19:34 +0100 Subject: [Interest] QML id In-Reply-To: <570B7901.1030901@gmail.com> References: <570B70AF.6030107@gmail.com> <640986D9-7EC7-44B5-84BD-515A2179137E@gmail.com> <570B7317.90605@gmail.com> <4FD6284F-F4FE-4DF2-A601-C72F0584A8A1@gmail.com> <570B7901.1030901@gmail.com> Message-ID: <9B5B0A16-F1B5-4F1C-8820-6992F10A1237@gmail.com> > On 11 Apr 2016, at 11:14, Igor Mironchik wrote: > > > > On 11.04.2016 12:57, Gian Maxera wrote: >> If the Text is inside the generated rectangle into the repeater you don’t need to generate different Ids, you can do that: >> >> Repeater { >> model: 10 >> delegate: Rectangle { >> id: cellRect >> Text { >> anchor.horizontalCenter: cellRect.horizontalCenter >> } >> } >> } >> >> Even if the delegate has a fixed id and generated 10 times, QML will resolve correctly it. > > I want to rewrite my QML with chess board with Repeater. And I want to see the next: > > I don’t know your current code, but If I would in your shoes, I will use a model representing where to put the chess items and a Grid to lay out the items. With Grid Item you can setup a global alignment of the items. I think it should work in your case. If you want more help, please share with us some snippet of code so I can understand what you need to achieve. >> >> Ciao, >> Gianluca. >> >> } >> >>> On 11 Apr 2016, at 10:49, Igor Mironchik < igor.mironchik at gmail.com > wrote: >>> >>> Look. I want to generate chess board - rectangles (8x8). And I want to place numbers an letters on the sides. This numbers and letters should be anchored to centers of rectangles. I.e. I want to have something like: >>> >>> Text { >>> anchor.horizontalCenter: cell00.horizontalCenter >>> } >>> >>> ... >>> >>> On 11.04.2016 12:40, Gian Maxera wrote: >>>> Hello, >>>> I don’t think so. >>>> Why do you need it ? Maybe we can suggest to you an alternative solution. >>>> >>>> Ciao, >>>> Gianluca. >>>> >>>> >>>>> On 11 Apr 2016, at 10:38, Igor Mironchik > wrote: >>>>> >>>>> Hello, >>>>> >>>>> Is it possible to generate id of item in Repeater, for example? >>>>> >>>>> Thank you. >>>>> _______________________________________________ >>>>> Interest mailing list >>>>> Interest at qt-project.org >>>>> http://lists.qt-project.org/mailman/listinfo/interest >>> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From igor.mironchik at gmail.com Mon Apr 11 12:44:45 2016 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Mon, 11 Apr 2016 13:44:45 +0300 Subject: [Interest] QML id In-Reply-To: <9B5B0A16-F1B5-4F1C-8820-6992F10A1237@gmail.com> References: <570B70AF.6030107@gmail.com> <640986D9-7EC7-44B5-84BD-515A2179137E@gmail.com> <570B7317.90605@gmail.com> <4FD6284F-F4FE-4DF2-A601-C72F0584A8A1@gmail.com> <570B7901.1030901@gmail.com> <9B5B0A16-F1B5-4F1C-8820-6992F10A1237@gmail.com> Message-ID: <570B801D.8080306@gmail.com> Hello, On 11.04.2016 13:19, Gian Maxera wrote: > >> On 11 Apr 2016, at 11:14, Igor Mironchik > > wrote: >> >> >> >> On 11.04.2016 12:57, Gian Maxera wrote: >>> If the Text is inside the generated rectangle into the repeater you >>> don’t need to generate different Ids, you can do that: >>> >>> Repeater { >>> model: 10 >>> delegate: Rectangle { >>> id: cellRect >>> Text { >>> anchor.horizontalCenter: cellRect.horizontalCenter >>> } >>> } >>> } >>> >>> Even if the delegate has a fixed id and generated 10 times, QML will >>> resolve correctly it. >> >> I want to rewrite my QML with chess board with Repeater. And I want >> to see the next: >> >> > > I don’t know your current code, but If I would in your shoes, I will > use a model representing where to put the chess items and a Grid to > lay out the items. With Grid Item you can setup a global alignment of > the items. > I think it should work in your case. > If you want more help, please share with us some snippet of code so I > can understand what you need to achieve. Model and Grid is fine. I can place chess and rects, fine. But how to put letters and numbers? Thank you. > >>> >>> Ciao, >>> Gianluca. >>> >>> } >>> >>>> On 11 Apr 2016, at 10:49, Igor Mironchik >>>> wrote: >>>> >>>> Look. I want to generate chess board - rectangles (8x8). And I want >>>> to place numbers an letters on the sides. This numbers and letters >>>> should be anchored to centers of rectangles. I.e. I want to have >>>> something like: >>>> >>>> Text { >>>> anchor.horizontalCenter: cell00.horizontalCenter >>>> } >>>> >>>> ... >>>> >>>> On 11.04.2016 12:40, Gian Maxera wrote: >>>>> Hello, >>>>> I don’t think so. >>>>> Why do you need it ? Maybe we can suggest to you an alternative >>>>> solution. >>>>> >>>>> Ciao, >>>>> Gianluca. >>>>> >>>>> >>>>>> On 11 Apr 2016, at 10:38, Igor Mironchik >>>>>> > wrote: >>>>>> >>>>>> Hello, >>>>>> >>>>>> Is it possible to generate id of item in Repeater, for example? >>>>>> >>>>>> Thank you. >>>>>> _______________________________________________ >>>>>> Interest mailing list >>>>>> Interest at qt-project.org >>>>>> http://lists.qt-project.org/mailman/listinfo/interest >>>> >>> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From elvstone at gmail.com Mon Apr 11 13:18:11 2016 From: elvstone at gmail.com (Elvis Stansvik) Date: Mon, 11 Apr 2016 13:18:11 +0200 Subject: [Interest] QML id In-Reply-To: <570B801D.8080306@gmail.com> References: <570B70AF.6030107@gmail.com> <640986D9-7EC7-44B5-84BD-515A2179137E@gmail.com> <570B7317.90605@gmail.com> <4FD6284F-F4FE-4DF2-A601-C72F0584A8A1@gmail.com> <570B7901.1030901@gmail.com> <9B5B0A16-F1B5-4F1C-8820-6992F10A1237@gmail.com> <570B801D.8080306@gmail.com> Message-ID: 2016-04-11 12:44 GMT+02:00 Igor Mironchik : > Hello, > > On 11.04.2016 13:19, Gian Maxera wrote: > > > On 11 Apr 2016, at 11:14, Igor Mironchik wrote: > > > > On 11.04.2016 12:57, Gian Maxera wrote: > > If the Text is inside the generated rectangle into the repeater you don’t > need to generate different Ids, you can do that: > > Repeater { > model: 10 > delegate: Rectangle { > id: cellRect > Text { > anchor.horizontalCenter: cellRect.horizontalCenter > } > } > } > > Even if the delegate has a fixed id and generated 10 times, QML will resolve > correctly it. > > > I want to rewrite my QML with chess board with Repeater. And I want to see > the next: > > > > > I don’t know your current code, but If I would in your shoes, I will use a > model representing where to put the chess items and a Grid to lay out the > items. With Grid Item you can setup a global alignment of the items. > I think it should work in your case. > If you want more help, please share with us some snippet of code so I can > understand what you need to achieve. > > > Model and Grid is fine. I can place chess and rects, fine. But how to put > letters and numbers? Just like Shawn noted for the Repeater case, in your delegate you will have an index property available. You can use this index to calculate which column of the grid you're on, and use the result to access a list into which you put 'A', 'B' et.c. For the row numbers, it's even easier, just calculate the row from the index and use it directly. Elvis > > Thank you. > > > > Ciao, > Gianluca. > > } > > On 11 Apr 2016, at 10:49, Igor Mironchik wrote: > > Look. I want to generate chess board - rectangles (8x8). And I want to place > numbers an letters on the sides. This numbers and letters should be anchored > to centers of rectangles. I.e. I want to have something like: > > Text { > anchor.horizontalCenter: cell00.horizontalCenter > } > > ... > > On 11.04.2016 12:40, Gian Maxera wrote: > > Hello, > I don’t think so. > Why do you need it ? Maybe we can suggest to you an alternative solution. > > Ciao, > Gianluca. > > > On 11 Apr 2016, at 10:38, Igor Mironchik wrote: > > Hello, > > Is it possible to generate id of item in Repeater, for example? > > Thank you. > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > > > > > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > From gmaxera at gmail.com Mon Apr 11 14:10:06 2016 From: gmaxera at gmail.com (Gian Maxera) Date: Mon, 11 Apr 2016 13:10:06 +0100 Subject: [Interest] QML id In-Reply-To: <570B801D.8080306@gmail.com> References: <570B70AF.6030107@gmail.com> <640986D9-7EC7-44B5-84BD-515A2179137E@gmail.com> <570B7317.90605@gmail.com> <4FD6284F-F4FE-4DF2-A601-C72F0584A8A1@gmail.com> <570B7901.1030901@gmail.com> <9B5B0A16-F1B5-4F1C-8820-6992F10A1237@gmail.com> <570B801D.8080306@gmail.com> Message-ID: <16097ABA-61BB-4A6A-B11C-D4164BD76F77@gmail.com> > On 11 Apr 2016, at 11:44, Igor Mironchik wrote: > > Hello, > > On 11.04.2016 13:19, Gian Maxera wrote: >> >>> On 11 Apr 2016, at 11:14, Igor Mironchik < igor.mironchik at gmail.com > wrote: >>> >>> >>> >>> On 11.04.2016 12:57, Gian Maxera wrote: >>>> If the Text is inside the generated rectangle into the repeater you don’t need to generate different Ids, you can do that: >>>> >>>> Repeater { >>>> model: 10 >>>> delegate: Rectangle { >>>> id: cellRect >>>> Text { >>>> anchor.horizontalCenter: cellRect.horizontalCenter >>>> } >>>> } >>>> } >>>> >>>> Even if the delegate has a fixed id and generated 10 times, QML will resolve correctly it. >>> >>> I want to rewrite my QML with chess board with Repeater. And I want to see the next: >>> >>> >> >> I don’t know your current code, but If I would in your shoes, I will use a model representing where to put the chess items and a Grid to lay out the items. With Grid Item you can setup a global alignment of the items. >> I think it should work in your case. >> If you want more help, please share with us some snippet of code so I can understand what you need to achieve. > > Model and Grid is fine. I can place chess and rects, fine. But how to put letters and numbers? One solution using Column and Row instead of Grid to split Repeaters: Column { spacing: 0 Row { // top letters EmptyItem { // use fixed width here so you can align the text } Repeater { model: [“A”, “B”, … “H”] delegate: DisplayTheLetter { … } } EmpyItem { } } // Rows with cells Repeater { model: 8 delegate: Row { // number Text { // use fixed width and align left the text // vertical alignment with anchors anchors.verticalCenter: parent.verticalCenter text: index+1 } // first row of chess board Repeater { model: chessBoardModel[index] delegate: ASingleCellOfChessBoard { … } } } } Row { // bottom letters EmptyItem { } Repeater { model: [“A”, “B”, … “H”] delegate: DisplayTheLetter { … } } EmpyItem { } } } > > Thank you. > >> >>>> >>>> Ciao, >>>> Gianluca. >>>> >>>> } >>>> >>>>> On 11 Apr 2016, at 10:49, Igor Mironchik > wrote: >>>>> >>>>> Look. I want to generate chess board - rectangles (8x8). And I want to place numbers an letters on the sides. This numbers and letters should be anchored to centers of rectangles. I.e. I want to have something like: >>>>> >>>>> Text { >>>>> anchor.horizontalCenter: cell00.horizontalCenter >>>>> } >>>>> >>>>> ... >>>>> >>>>> On 11.04.2016 12:40, Gian Maxera wrote: >>>>>> Hello, >>>>>> I don’t think so. >>>>>> Why do you need it ? Maybe we can suggest to you an alternative solution. >>>>>> >>>>>> Ciao, >>>>>> Gianluca. >>>>>> >>>>>> >>>>>>> On 11 Apr 2016, at 10:38, Igor Mironchik < igor.mironchik at gmail.com > wrote: >>>>>>> >>>>>>> Hello, >>>>>>> >>>>>>> Is it possible to generate id of item in Repeater, for example? >>>>>>> >>>>>>> Thank you. >>>>>>> _______________________________________________ >>>>>>> Interest mailing list >>>>>>> Interest at qt-project.org >>>>>>> http://lists.qt-project.org/mailman/listinfo/interest >>>>> >>>> >>> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From realnc at gmail.com Mon Apr 11 14:22:39 2016 From: realnc at gmail.com (Nikos Chantziaras) Date: Mon, 11 Apr 2016 15:22:39 +0300 Subject: [Interest] Is there a mirror for the Qt online documentation? In-Reply-To: <599008471.20160411095905@programist.ru> References: <3871677.rgtaXaufz2@tjmaciei-mobl4> <064F01FB-5F13-4994-980E-A7AF96DAD787@gmail.com> <599008471.20160411095905@programist.ru> Message-ID: On 11/04/16 09:59, Prav wrote: > Hi, Emre and Nikos. > >>> Actually I don't :-) >>> (And this is proof that I really should.) > You are not using context help in QtC!? No. Unfortunately, creator does not auto-complete if I don't enter the correct prefix. For example, if I write: obj.clip and press ctrl+space, it does not offer any completions, even though obj's type has these: setClipRect scaledClipRect setScaledClipRect The only case where I would be offered auto-completion, is if the function name starts with "clip", which has use, but a limited one. So auto-completion doesn't help me most of the time, because I do not remember the exact function name I want, but I do remember it's about "rect" or "clip". So I need to have the class reference open in my browser at all times. From frederic.marchal at wowtechnology.com Mon Apr 11 14:31:02 2016 From: frederic.marchal at wowtechnology.com (=?ISO-8859-1?Q?Fr=E9d=E9ric?= Marchal) Date: Mon, 11 Apr 2016 05:31:02 -0700 (PDT) Subject: [Interest] Why there is no QChar::toLocal8Bit()? In-Reply-To: <7810661732.20160411125735@programist.ru> References: <1272861796.20160409155636@programist.ru> <7810661732.20160411125735@programist.ru> Message-ID: <1517446.kbdOMmOMxX@port-fma> On Monday 11 April 2016 12:57:35 Prav wrote: > Hi, Tomasz. > > > Prav, I think you misunderstand what 8bit and codec means here. > > ... > > However, your locale can be in UTF-8, in which some characters are 8 bit > > long ... > Agree. I already undestood from previous answers that locale can multibyte. > Let me rephare my question: > > Can locale be UTF-16 or any other 16- or 32-bit locale? Windows is UTF-16. It has a 8-bit fall back encoding to which toLocal8bit converts the string. I don't know how toLocal8bit degrades on processors where a char is 16 or 32-bit long. I guess it makes sense to still output an array of "chars" in that case. On processors with 8-bit char, I certainly don't expect QString::toLocal8bit() to output a 16-bit or 32-bit array. That's the job of QString::toStdU16String() and QString::toStdU32String() or possibly QString::toStdWString(). Think of QString::toLocal8bit() as a mean of converting the internally UTF-16 encoded QString to whatever can be written to a 8-bit output device on the host computer. If you want to share your string with another computer, use QString::toUtf8(). Prav, you haven't told us your purpose (or I failed to spot it). If you simply want a numeric value to identify a single character, can you use QChar::unicode()? Frederic From igor.mironchik at gmail.com Mon Apr 11 14:55:40 2016 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Mon, 11 Apr 2016 15:55:40 +0300 Subject: [Interest] QML id In-Reply-To: <16097ABA-61BB-4A6A-B11C-D4164BD76F77@gmail.com> References: <570B70AF.6030107@gmail.com> <640986D9-7EC7-44B5-84BD-515A2179137E@gmail.com> <570B7317.90605@gmail.com> <4FD6284F-F4FE-4DF2-A601-C72F0584A8A1@gmail.com> <570B7901.1030901@gmail.com> <9B5B0A16-F1B5-4F1C-8820-6992F10A1237@gmail.com> <570B801D.8080306@gmail.com> <16097ABA-61BB-4A6A-B11C-D4164BD76F77@gmail.com> Message-ID: <570B9ECC.6070605@gmail.com> On 11.04.2016 15:10, Gian Maxera wrote: > >> On 11 Apr 2016, at 11:44, Igor Mironchik > > wrote: >> >> Hello, >> >> On 11.04.2016 13:19, Gian Maxera wrote: >>> >>>> On 11 Apr 2016, at 11:14, Igor Mironchik >>>> wrote: >>>> >>>> >>>> >>>> On 11.04.2016 12:57, Gian Maxera wrote: >>>>> If the Text is inside the generated rectangle into the repeater >>>>> you don’t need to generate different Ids, you can do that: >>>>> >>>>> Repeater { >>>>> model: 10 >>>>> delegate: Rectangle { >>>>> id: cellRect >>>>> Text { >>>>> anchor.horizontalCenter: cellRect.horizontalCenter >>>>> } >>>>> } >>>>> } >>>>> >>>>> Even if the delegate has a fixed id and generated 10 times, QML >>>>> will resolve correctly it. >>>> >>>> I want to rewrite my QML with chess board with Repeater. And I want >>>> to see the next: >>>> >>>> >>> >>> I don’t know your current code, but If I would in your shoes, I will >>> use a model representing where to put the chess items and a Grid to >>> lay out the items. With Grid Item you can setup a global alignment >>> of the items. >>> I think it should work in your case. >>> If you want more help, please share with us some snippet of code so >>> I can understand what you need to achieve. >> >> Model and Grid is fine. I can place chess and rects, fine. But how to >> put letters and numbers? > > > One solution using Column and Row instead of Grid to split Repeaters: > > Column { > spacing: 0 > Row { > // top letters > EmptyItem { // use fixed width here so you can align the text } > Repeater { > model: [“A”, “B”, … “H”] > delegate: DisplayTheLetter { … } > } > EmpyItem { } > } > // Rows with cells > Repeater { > model: 8 > delegate: Row { > // number > Text { > // use fixed width and align left the text > // vertical alignment with anchors > anchors.verticalCenter: parent.verticalCenter > text: index+1 > } > // first row of chess board > Repeater { > model: chessBoardModel[index] > delegate: ASingleCellOfChessBoard { … } > } > } > } > Row { > // bottom letters > EmptyItem { } > Repeater { > model: [“A”, “B”, … “H”] > delegate: DisplayTheLetter { … } > } > EmpyItem { } > } > } Looks like a solution. Only one question is still opened... How to align letters and numbers in center if chess board should be resizable? I.e. I can't use x and y properties for that. I need anchor.horizontalCenter which use AnchorLine, not pixels... > >> >> Thank you. >> >>> >>>>> >>>>> Ciao, >>>>> Gianluca. >>>>> >>>>> } >>>>> >>>>>> On 11 Apr 2016, at 10:49, Igor Mironchik >>>>>> wrote: >>>>>> >>>>>> Look. I want to generate chess board - rectangles (8x8). And I >>>>>> want to place numbers an letters on the sides. This numbers and >>>>>> letters should be anchored to centers of rectangles. I.e. I want >>>>>> to have something like: >>>>>> >>>>>> Text { >>>>>> anchor.horizontalCenter: cell00.horizontalCenter >>>>>> } >>>>>> >>>>>> ... >>>>>> >>>>>> On 11.04.2016 12:40, Gian Maxera wrote: >>>>>>> Hello, >>>>>>> I don’t think so. >>>>>>> Why do you need it ? Maybe we can suggest to you an alternative >>>>>>> solution. >>>>>>> >>>>>>> Ciao, >>>>>>> Gianluca. >>>>>>> >>>>>>> >>>>>>>> On 11 Apr 2016, at 10:38, Igor Mironchik >>>>>>>> wrote: >>>>>>>> >>>>>>>> Hello, >>>>>>>> >>>>>>>> Is it possible to generate id of item in Repeater, for example? >>>>>>>> >>>>>>>> Thank you. >>>>>>>> _______________________________________________ >>>>>>>> Interest mailing list >>>>>>>> Interest at qt-project.org >>>>>>>> http://lists.qt-project.org/mailman/listinfo/interest >>>>>> >>>>> >>>> >>> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From xbenlau at gmail.com Mon Apr 11 14:59:56 2016 From: xbenlau at gmail.com (Ben Lau) Date: Mon, 11 Apr 2016 20:59:56 +0800 Subject: [Interest] QML id In-Reply-To: <570B9ECC.6070605@gmail.com> References: <570B70AF.6030107@gmail.com> <640986D9-7EC7-44B5-84BD-515A2179137E@gmail.com> <570B7317.90605@gmail.com> <4FD6284F-F4FE-4DF2-A601-C72F0584A8A1@gmail.com> <570B7901.1030901@gmail.com> <9B5B0A16-F1B5-4F1C-8820-6992F10A1237@gmail.com> <570B801D.8080306@gmail.com> <16097ABA-61BB-4A6A-B11C-D4164BD76F77@gmail.com> <570B9ECC.6070605@gmail.com> Message-ID: How about to scale the whole chess board to fit the window? On 11 April 2016 at 20:55, Igor Mironchik wrote: > > > On 11.04.2016 15:10, Gian Maxera wrote: > > > On 11 Apr 2016, at 11:44, Igor Mironchik < > igor.mironchik at gmail.com> wrote: > > Hello, > > On 11.04.2016 13:19, Gian Maxera wrote: > > > On 11 Apr 2016, at 11:14, Igor Mironchik wrote: > > > > On 11.04.2016 12:57, Gian Maxera wrote: > > If the Text is inside the generated rectangle into the repeater you don’t > need to generate different Ids, you can do that: > > Repeater { > model: 10 > delegate: Rectangle { > id: cellRect > Text { > anchor.horizontalCenter: cellRect.horizontalCenter > } > } > } > > Even if the delegate has a fixed id and generated 10 times, QML will > resolve correctly it. > > > I want to rewrite my QML with chess board with Repeater. And I want to see > the next: > > > > > I don’t know your current code, but If I would in your shoes, I will use a > model representing where to put the chess items and a Grid to lay out the > items. With Grid Item you can setup a global alignment of the items. > I think it should work in your case. > If you want more help, please share with us some snippet of code so I can > understand what you need to achieve. > > > Model and Grid is fine. I can place chess and rects, fine. But how to put > letters and numbers? > > > > One solution using Column and Row instead of Grid to split Repeaters: > > Column { > spacing: 0 > Row { > // top letters > EmptyItem { // use fixed width here so you can align the text } > Repeater { > model: [“A”, “B”, … “H”] > delegate: DisplayTheLetter { … } > } > EmpyItem { } > } > // Rows with cells > Repeater { > model: 8 > delegate: Row { > // number > Text { > // use fixed width and align left the text > // vertical alignment with anchors > anchors.verticalCenter: parent.verticalCenter > text: index+1 > } > // first row of chess board > Repeater { > model: chessBoardModel[index] > delegate: ASingleCellOfChessBoard { … } > } > } > } > Row { > // bottom letters > EmptyItem { } > Repeater { > model: [“A”, “B”, … “H”] > delegate: DisplayTheLetter { … } > } > EmpyItem { } > } > } > > > Looks like a solution. Only one question is still opened... How to align > letters and numbers in center if chess board should be resizable? I.e. I > can't use x and y properties for that. I need anchor.horizontalCenter which > use AnchorLine, not pixels... > > > > Thank you. > > > > Ciao, > Gianluca. > > } > > On 11 Apr 2016, at 10:49, Igor Mironchik < > igor.mironchik at gmail.com> wrote: > > Look. I want to generate chess board - rectangles (8x8). And I want to > place numbers an letters on the sides. This numbers and letters should be > anchored to centers of rectangles. I.e. I want to have something like: > > Text { > anchor.horizontalCenter: cell00.horizontalCenter > } > > ... > > On 11.04.2016 12:40, Gian Maxera wrote: > > Hello, > I don’t think so. > Why do you need it ? Maybe we can suggest to you an alternative solution. > > Ciao, > Gianluca. > > > On 11 Apr 2016, at 10:38, Igor Mironchik wrote: > > Hello, > > Is it possible to generate id of item in Repeater, for example? > > Thank you. > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > > > > > > > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From gmaxera at gmail.com Mon Apr 11 15:02:06 2016 From: gmaxera at gmail.com (Gian Maxera) Date: Mon, 11 Apr 2016 14:02:06 +0100 Subject: [Interest] QML id In-Reply-To: <570B9ECC.6070605@gmail.com> References: <570B70AF.6030107@gmail.com> <640986D9-7EC7-44B5-84BD-515A2179137E@gmail.com> <570B7317.90605@gmail.com> <4FD6284F-F4FE-4DF2-A601-C72F0584A8A1@gmail.com> <570B7901.1030901@gmail.com> <9B5B0A16-F1B5-4F1C-8820-6992F10A1237@gmail.com> <570B801D.8080306@gmail.com> <16097ABA-61BB-4A6A-B11C-D4164BD76F77@gmail.com> <570B9ECC.6070605@gmail.com> Message-ID: > On 11 Apr 2016, at 13:55, Igor Mironchik wrote: > > > > On 11.04.2016 15:10, Gian Maxera wrote: >> >>> On 11 Apr 2016, at 11:44, Igor Mironchik < igor.mironchik at gmail.com > wrote: >>> >>> Hello, >>> >>> On 11.04.2016 13:19, Gian Maxera wrote: >>>> >>>>> On 11 Apr 2016, at 11:14, Igor Mironchik > wrote: >>>>> >>>>> >>>>> >>>>> On 11.04.2016 12:57, Gian Maxera wrote: >>>>>> If the Text is inside the generated rectangle into the repeater you don’t need to generate different Ids, you can do that: >>>>>> >>>>>> Repeater { >>>>>> model: 10 >>>>>> delegate: Rectangle { >>>>>> id: cellRect >>>>>> Text { >>>>>> anchor.horizontalCenter: cellRect.horizontalCenter >>>>>> } >>>>>> } >>>>>> } >>>>>> >>>>>> Even if the delegate has a fixed id and generated 10 times, QML will resolve correctly it. >>>>> >>>>> I want to rewrite my QML with chess board with Repeater. And I want to see the next: >>>>> >>>>> >>>> >>>> I don’t know your current code, but If I would in your shoes, I will use a model representing where to put the chess items and a Grid to lay out the items. With Grid Item you can setup a global alignment of the items. >>>> I think it should work in your case. >>>> If you want more help, please share with us some snippet of code so I can understand what you need to achieve. >>> >>> Model and Grid is fine. I can place chess and rects, fine. But how to put letters and numbers? >> >> >> One solution using Column and Row instead of Grid to split Repeaters: >> >> Column { >> spacing: 0 >> Row { >> // top letters >> EmptyItem { // use fixed width here so you can align the text } >> Repeater { >> model: [“A”, “B”, … “H”] >> delegate: DisplayTheLetter { … } >> } >> EmpyItem { } >> } >> // Rows with cells >> Repeater { >> model: 8 >> delegate: Row { >> // number >> Text { >> // use fixed width and align left the text >> // vertical alignment with anchors >> anchors.verticalCenter: parent.verticalCenter >> text: index+1 >> } >> // first row of chess board >> Repeater { >> model: chessBoardModel[index] >> delegate: ASingleCellOfChessBoard { … } >> } >> } >> } >> Row { >> // bottom letters >> EmptyItem { } >> Repeater { >> model: [“A”, “B”, … “H”] >> delegate: DisplayTheLetter { … } >> } >> EmpyItem { } >> } >> } > > Looks like a solution. Only one question is still opened... How to align letters and numbers in center if chess board should be resizable? I.e. I can't use x and y properties for that. I need anchor.horizontalCenter which use AnchorLine, not pixels… With my solution you cannot use anchor.horizontalCenter because you are inside a Row. What you need to do is to set the width of the Text element and use horizontalAlignment. I suppose that in same way you are calculating the dimension of the cell during resize, so the code will be like for the Text: Text { width: cellWidth horizontalAlignment: Text.AlignLeft } >> >>> >>> Thank you. >>> >>>> >>>>>> >>>>>> Ciao, >>>>>> Gianluca. >>>>>> >>>>>> } >>>>>> >>>>>>> On 11 Apr 2016, at 10:49, Igor Mironchik < igor.mironchik at gmail.com > wrote: >>>>>>> >>>>>>> Look. I want to generate chess board - rectangles (8x8). And I want to place numbers an letters on the sides. This numbers and letters should be anchored to centers of rectangles. I.e. I want to have something like: >>>>>>> >>>>>>> Text { >>>>>>> anchor.horizontalCenter: cell00.horizontalCenter >>>>>>> } >>>>>>> >>>>>>> ... >>>>>>> >>>>>>> On 11.04.2016 12:40, Gian Maxera wrote: >>>>>>>> Hello, >>>>>>>> I don’t think so. >>>>>>>> Why do you need it ? Maybe we can suggest to you an alternative solution. >>>>>>>> >>>>>>>> Ciao, >>>>>>>> Gianluca. >>>>>>>> >>>>>>>> >>>>>>>>> On 11 Apr 2016, at 10:38, Igor Mironchik > wrote: >>>>>>>>> >>>>>>>>> Hello, >>>>>>>>> >>>>>>>>> Is it possible to generate id of item in Repeater, for example? >>>>>>>>> >>>>>>>>> Thank you. >>>>>>>>> _______________________________________________ >>>>>>>>> Interest mailing list >>>>>>>>> Interest at qt-project.org >>>>>>>>> http://lists.qt-project.org/mailman/listinfo/interest >>>>>>> >>>>>> >>>>> >>>> >>> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From igor.mironchik at gmail.com Mon Apr 11 15:49:28 2016 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Mon, 11 Apr 2016 16:49:28 +0300 Subject: [Interest] QML id In-Reply-To: References: <570B70AF.6030107@gmail.com> <640986D9-7EC7-44B5-84BD-515A2179137E@gmail.com> <570B7317.90605@gmail.com> <4FD6284F-F4FE-4DF2-A601-C72F0584A8A1@gmail.com> <570B7901.1030901@gmail.com> <9B5B0A16-F1B5-4F1C-8820-6992F10A1237@gmail.com> <570B801D.8080306@gmail.com> <16097ABA-61BB-4A6A-B11C-D4164BD76F77@gmail.com> <570B9ECC.6070605@gmail.com> Message-ID: <570BAB68.3050208@gmail.com> Hello, Thank you. I successfully drawn chess board. Nice. Column { spacing: 0 Row { // top letters Item { width: offset; height: offset; } Repeater { model: [ "A", "B", "C", "D", "E", "F", "G", "H" ] delegate: Text { width: cellWidth height: offset text: modelData horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter } } Item { width: offset; height: offset; } } // Rows with cells Repeater { model: 8 delegate: Row { id: row property int rowIndex: index // number Text { width: offset height: cellHeight text: 8 - index horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter } // first row of chess board Repeater { model: 8 delegate: Cell { cellColor: ( row.rowIndex % 2 === 0 ? ( index % 2 === 0 ? "white" : "lightgray" ) : ( index % 2 === 0 ? "lightgray" : "white" ) ); chessX: index; chessY: row.rowIndex; onClicked: board.clicked( x, y ); onHovered: board.hovered( x, y ); objectName: "c"+ chessX + chessY; width: cellWidth; height: cellHeight; } } // number Text { width: offset height: cellHeight text: 8 - index horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter } } } Row { // top letters Item { width: offset; height: offset; } Repeater { model: [ "A", "B", "C", "D", "E", "F", "G", "H" ] delegate: Text { width: cellWidth height: offset text: modelData horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter } } Item { width: offset; height: offset; } } } But now I need place pieces on board. In my old code I used Figure { source: "qrc:/img/pawn-white.png" x: c06.x y: c06.y objectName: "pawn-white-1" width: cellWidth height: cellHeight } Where c06 is id. Is it possible to bind x to x property of Cell by objectName? Thank you. On 11.04.2016 16:02, Gian Maxera wrote: > Column { > spacing: 0 > Row { > // top letters > EmptyItem { // use fixed width here so you can align the text } > Repeater { > model: [“A”, “B”, … “H”] > delegate: DisplayTheLetter { … } > } > EmpyItem { } > } > // Rows with cells > Repeater { > model: 8 > delegate: Row { > // number > Text { > // use fixed width and align left the text > // vertical alignment with anchors > anchors.verticalCenter: parent.verticalCenter > text: index+1 > } > // first row of chess board > Repeater { > model: chessBoardModel[index] > delegate: ASingleCellOfChessBoard { … } > } > } > } > Row { > // bottom letters > EmptyItem { } > Repeater { > model: [“A”, “B”, … “H”] > delegate: DisplayTheLetter { … } > } > EmpyItem { } > } > } -------------- next part -------------- An HTML attachment was scrubbed... URL: From pr12og2 at programist.ru Mon Apr 11 15:51:52 2016 From: pr12og2 at programist.ru (Prav) Date: Mon, 11 Apr 2016 16:51:52 +0300 Subject: [Interest] Is there a mirror for the Qt online documentation? In-Reply-To: References: <3871677.rgtaXaufz2@tjmaciei-mobl4> <064F01FB-5F13-4994-980E-A7AF96DAD787@gmail.com> <599008471.20160411095905@programist.ru> Message-ID: <1372240170.20160411165152@programist.ru> Hi, Nikos. >>>> Actually I don't :-) >>>> (And this is proof that I really should.) >> You are not using context help in QtC!? > No. Unfortunately, creator does not auto-complete if I don't enter the > correct prefix. For example, if I write: > obj.clip > and press ctrl+space, it does not offer any completions, even though > obj's type has these: > setClipRect > scaledClipRect > setScaledClipRect Interesting ... I see ... you use help for completion. Help in QtC now is worse than code completion https://bugreports.qt.io/browse/QTCREATORBUG-15959 May be QtC's Locator can help you too? From gmaxera at gmail.com Mon Apr 11 16:06:25 2016 From: gmaxera at gmail.com (Gian Maxera) Date: Mon, 11 Apr 2016 15:06:25 +0100 Subject: [Interest] QML id In-Reply-To: <570BAB68.3050208@gmail.com> References: <570B70AF.6030107@gmail.com> <640986D9-7EC7-44B5-84BD-515A2179137E@gmail.com> <570B7317.90605@gmail.com> <4FD6284F-F4FE-4DF2-A601-C72F0584A8A1@gmail.com> <570B7901.1030901@gmail.com> <9B5B0A16-F1B5-4F1C-8820-6992F10A1237@gmail.com> <570B801D.8080306@gmail.com> <16097ABA-61BB-4A6A-B11C-D4164BD76F77@gmail.com> <570B9ECC.6070605@gmail.com> <570BAB68.3050208@gmail.com> Message-ID: <05A6F37B-89AA-4E01-8C06-EA52B97CEF80@gmail.com> > On 11 Apr 2016, at 14:49, Igor Mironchik wrote: > > Hello, > > Thank you. > > I successfully drawn chess board. Nice. > > Column { > spacing: 0 > Row { > // top letters > Item { width: offset; height: offset; } > Repeater { > model: [ "A", "B", "C", "D", "E", "F", "G", "H" ] > delegate: Text { > width: cellWidth > height: offset > text: modelData > horizontalAlignment: Text.AlignHCenter > verticalAlignment: Text.AlignVCenter > } > } > Item { width: offset; height: offset; } > } > // Rows with cells > Repeater { > model: 8 > delegate: Row { > id: row > property int rowIndex: index > // number > Text { > width: offset > height: cellHeight > text: 8 - index > horizontalAlignment: Text.AlignHCenter > verticalAlignment: Text.AlignVCenter > } > // first row of chess board > Repeater { > model: 8 > delegate: Cell { > cellColor: ( row.rowIndex % 2 === 0 > ? ( index % 2 === 0 ? "white" : "lightgray" ) > : ( index % 2 === 0 ? "lightgray" : "white" ) ); > chessX: index; chessY: row.rowIndex; > onClicked: board.clicked( x, y ); > onHovered: board.hovered( x, y ); > objectName: "c"+ chessX + chessY; > width: cellWidth; > height: cellHeight; > } > } > // number > Text { > width: offset > height: cellHeight > text: 8 - index > horizontalAlignment: Text.AlignHCenter > verticalAlignment: Text.AlignVCenter > } > } > } > Row { > // top letters > Item { width: offset; height: offset; } > Repeater { > model: [ "A", "B", "C", "D", "E", "F", "G", "H" ] > delegate: Text { > width: cellWidth > height: offset > text: modelData > horizontalAlignment: Text.AlignHCenter > verticalAlignment: Text.AlignVCenter > } > } > Item { width: offset; height: offset; } > } > } > > But now I need place pieces on board. > > In my old code I used > > Figure { > source: "qrc:/img/pawn-white.png" > x: c06.x > y: c06.y > objectName: "pawn-white-1" > width: cellWidth > height: cellHeight > } > > Where c06 is id. Is it possible to bind x to x property of Cell by objectName? I think so, but instead of bind x and y … I’ll try to change the parent. There is also ParentAnimation for animate the changing. And then, you can use the anchors for center the Figure in the parent. Figure { anchors.centerIn: parent } But I don’t know if QML got some built-in to find an object by name. > > Thank you. > > On 11.04.2016 16:02, Gian Maxera wrote: >> Column { >> spacing: 0 >> Row { >> // top letters >> EmptyItem { // use fixed width here so you can align the text } >> Repeater { >> model: [“A”, “B”, … “H”] >> delegate: DisplayTheLetter { … } >> } >> EmpyItem { } >> } >> // Rows with cells >> Repeater { >> model: 8 >> delegate: Row { >> // number >> Text { >> // use fixed width and align left the text >> // vertical alignment with anchors >> anchors.verticalCenter: parent.verticalCenter >> text: index+1 >> } >> // first row of chess board >> Repeater { >> model: chessBoardModel[index] >> delegate: ASingleCellOfChessBoard { … } >> } >> } >> } >> Row { >> // bottom letters >> EmptyItem { } >> Repeater { >> model: [“A”, “B”, … “H”] >> delegate: DisplayTheLetter { … } >> } >> EmpyItem { } >> } >> } > From igor.mironchik at gmail.com Mon Apr 11 17:03:51 2016 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Mon, 11 Apr 2016 18:03:51 +0300 Subject: [Interest] QML id In-Reply-To: <05A6F37B-89AA-4E01-8C06-EA52B97CEF80@gmail.com> References: <570B70AF.6030107@gmail.com> <640986D9-7EC7-44B5-84BD-515A2179137E@gmail.com> <570B7317.90605@gmail.com> <4FD6284F-F4FE-4DF2-A601-C72F0584A8A1@gmail.com> <570B7901.1030901@gmail.com> <9B5B0A16-F1B5-4F1C-8820-6992F10A1237@gmail.com> <570B801D.8080306@gmail.com> <16097ABA-61BB-4A6A-B11C-D4164BD76F77@gmail.com> <570B9ECC.6070605@gmail.com> <570BAB68.3050208@gmail.com> <05A6F37B-89AA-4E01-8C06-EA52B97CEF80@gmail.com> Message-ID: <570BBCD7.6060700@gmail.com> Hi, I've found solution better... Row { id: top height: offset // top letters Item { width: offset; height: offset; } Repeater { model: [ "A", "B", "C", "D", "E", "F", "G", "H" ] delegate: Text { width: cellWidth height: offset text: modelData horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter } } Item { width: offset; height: offset; } } Column { y: top.y + top.height Repeater { model: 8 delegate: Text { width: offset height: cellHeight text: 8 - index horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter } } } Grid { id: grid rows: 8 columns: 8 x: offset y: top.y + top.height Repeater { model: chessBoard delegate: Cell { cellColor: model.CurrentPieceColor chessX: index % 8 chessY: index / 8 onClicked: board.clicked( x, y ) onHovered: board.hovered( x, y ) objectName: "c"+ chessX + chessY width: cellWidth height: cellHeight source: model.CellImageSource } } } Column { y: grid.y x: grid.x + grid.width Repeater { model: 8 delegate: Text { width: offset height: cellHeight text: 8 - index horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter } } } Row { id: bottom height: offset y: grid.y + grid.height // top letters Item { width: offset; height: offset; } Repeater { model: [ "A", "B", "C", "D", "E", "F", "G", "H" ] delegate: Text { width: cellWidth height: offset text: modelData horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter } } Item { width: offset; height: offset; } } On 11.04.2016 17:06, Gian Maxera wrote: >> On 11 Apr 2016, at 14:49, Igor Mironchik wrote: >> >> Hello, >> >> Thank you. >> >> I successfully drawn chess board. Nice. >> >> Column { >> spacing: 0 >> Row { >> // top letters >> Item { width: offset; height: offset; } >> Repeater { >> model: [ "A", "B", "C", "D", "E", "F", "G", "H" ] >> delegate: Text { >> width: cellWidth >> height: offset >> text: modelData >> horizontalAlignment: Text.AlignHCenter >> verticalAlignment: Text.AlignVCenter >> } >> } >> Item { width: offset; height: offset; } >> } >> // Rows with cells >> Repeater { >> model: 8 >> delegate: Row { >> id: row >> property int rowIndex: index >> // number >> Text { >> width: offset >> height: cellHeight >> text: 8 - index >> horizontalAlignment: Text.AlignHCenter >> verticalAlignment: Text.AlignVCenter >> } >> // first row of chess board >> Repeater { >> model: 8 >> delegate: Cell { >> cellColor: ( row.rowIndex % 2 === 0 >> ? ( index % 2 === 0 ? "white" : "lightgray" ) >> : ( index % 2 === 0 ? "lightgray" : "white" ) ); >> chessX: index; chessY: row.rowIndex; >> onClicked: board.clicked( x, y ); >> onHovered: board.hovered( x, y ); >> objectName: "c"+ chessX + chessY; >> width: cellWidth; >> height: cellHeight; >> } >> } >> // number >> Text { >> width: offset >> height: cellHeight >> text: 8 - index >> horizontalAlignment: Text.AlignHCenter >> verticalAlignment: Text.AlignVCenter >> } >> } >> } >> Row { >> // top letters >> Item { width: offset; height: offset; } >> Repeater { >> model: [ "A", "B", "C", "D", "E", "F", "G", "H" ] >> delegate: Text { >> width: cellWidth >> height: offset >> text: modelData >> horizontalAlignment: Text.AlignHCenter >> verticalAlignment: Text.AlignVCenter >> } >> } >> Item { width: offset; height: offset; } >> } >> } >> >> But now I need place pieces on board. >> >> In my old code I used >> >> Figure { >> source: "qrc:/img/pawn-white.png" >> x: c06.x >> y: c06.y >> objectName: "pawn-white-1" >> width: cellWidth >> height: cellHeight >> } >> >> Where c06 is id. Is it possible to bind x to x property of Cell by objectName? > I think so, but instead of bind x and y … I’ll try to change the parent. There is also ParentAnimation for animate the changing. > And then, you can use the anchors for center the Figure in the parent. > > Figure { > anchors.centerIn: parent > } > > But I don’t know if QML got some built-in to find an object by name. > > >> Thank you. >> >> On 11.04.2016 16:02, Gian Maxera wrote: >>> Column { >>> spacing: 0 >>> Row { >>> // top letters >>> EmptyItem { // use fixed width here so you can align the text } >>> Repeater { >>> model: [“A”, “B”, … “H”] >>> delegate: DisplayTheLetter { … } >>> } >>> EmpyItem { } >>> } >>> // Rows with cells >>> Repeater { >>> model: 8 >>> delegate: Row { >>> // number >>> Text { >>> // use fixed width and align left the text >>> // vertical alignment with anchors >>> anchors.verticalCenter: parent.verticalCenter >>> text: index+1 >>> } >>> // first row of chess board >>> Repeater { >>> model: chessBoardModel[index] >>> delegate: ASingleCellOfChessBoard { … } >>> } >>> } >>> } >>> Row { >>> // bottom letters >>> EmptyItem { } >>> Repeater { >>> model: [“A”, “B”, … “H”] >>> delegate: DisplayTheLetter { … } >>> } >>> EmpyItem { } >>> } >>> } From thiago.macieira at intel.com Mon Apr 11 17:38:05 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Mon, 11 Apr 2016 08:38:05 -0700 Subject: [Interest] Why there is no QChar::toLocal8Bit()? In-Reply-To: <1658832583.20160411114113@programist.ru> References: <1272861796.20160409155636@programist.ru> <5749129.NTQl87OYK4@tjmaciei-mobl4> <1658832583.20160411114113@programist.ru> Message-ID: <2001088.I1ApDL620T@tjmaciei-mobl4> On segunda-feira, 11 de abril de 2016 11:41:13 PDT Prav wrote: > Well ... сan you clarify your answer please? It boils down to "in theory, theory and practice are the same; in practice, they're not". In theory, the locale codec can be anything, including 16- and 32-bit codecs. In practice, they can't because a lot of software is going to break. > > Whether it's single-byte or multi-byte, you can't get that information. > > More to the point, I'd say that you should not even ask that question. > > That indicates you're making wrong decisions and your software has design > > flaws. Instead, redesign so you don't need to answer the question in the > > first place. > Ok ... probably you are right ... probably I made XY-asking mistake here ... > sorry ... so may be I need to ask another way. How can I know that my > QSting can be converted successfully with Local code page (local encoding) > to signle-byte string? Use QTextCodec and check that there were no errors during conversion. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From thiago.macieira at intel.com Mon Apr 11 17:39:41 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Mon, 11 Apr 2016 08:39:41 -0700 Subject: [Interest] Why there is no QChar::toLocal8Bit()? In-Reply-To: <1517446.kbdOMmOMxX@port-fma> References: <1272861796.20160409155636@programist.ru> <7810661732.20160411125735@programist.ru> <1517446.kbdOMmOMxX@port-fma> Message-ID: <2016583.b4FkGcesXX@tjmaciei-mobl4> On segunda-feira, 11 de abril de 2016 05:31:02 PDT Frédéric Marchal wrote: > I don't know how toLocal8bit degrades on processors where > a char is 16 or 32-bit long. Processors with 16- or 32-bit bytes don't exist and, if they did, they wouldn't be supported by Qt. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From igor.mironchik at gmail.com Mon Apr 11 17:49:33 2016 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Mon, 11 Apr 2016 18:49:33 +0300 Subject: [Interest] QML Grid's children and findChild doesn't work Message-ID: <570BC78D.9020206@gmail.com> Hi, I have chess board defined in QML as: Grid { id: grid rows: 8 columns: 8 x: offset y: top.y + top.height objectName: "grid" Repeater { model: chessBoard delegate: Cell { cellColor: model.CurrentPieceColor chessX: index % 8 chessY: index / 8 onClicked: board.clicked( x, y ) onHovered: board.hovered( x, y ) objectName: "c"+ chessX + chessY width: cellWidth height: cellHeight source: model.CellImageSource } } } So cell's objectName is something like c00, c01... In C++ I have QObject * cell = m_grid->findChild< QObject* > ( "c00" ); But it always return 0 with any cell's name. m_grid is the "grid" object... Am I doing something wrong or this is a bug? Thank you. From cullmann at absint.com Mon Apr 11 17:55:59 2016 From: cullmann at absint.com (Christoph Cullmann) Date: Mon, 11 Apr 2016 17:55:59 +0200 (CEST) Subject: [Interest] Why there is no QChar::toLocal8Bit()? In-Reply-To: <2016583.b4FkGcesXX@tjmaciei-mobl4> References: <1272861796.20160409155636@programist.ru> <7810661732.20160411125735@programist.ru> <1517446.kbdOMmOMxX@port-fma> <2016583.b4FkGcesXX@tjmaciei-mobl4> Message-ID: <1698185766.469891.1460390159880.JavaMail.zimbra@absint.com> Hi, > On segunda-feira, 11 de abril de 2016 05:31:02 PDT Frédéric Marchal wrote: >> I don't know how toLocal8bit degrades on processors where >> a char is 16 or 32-bit long. > > Processors with 16- or 32-bit bytes don't exist and, if they did, they > wouldn't be supported by Qt. :=) They do and are used (here the fun to do 8-bit accesses on such a 16-bit byte CPU): http://processors.wiki.ti.com/index.php/Byte_Accesses_with_the_C28x_CPU (the TI C33 has 32-bit bytes) => But yeah, they are from hell and thou shall now use Qt on them. Greetings Christoph -- ----------------------------- Dr.-Ing. Christoph Cullmann --------- AbsInt Angewandte Informatik GmbH Email: cullmann at AbsInt.com Science Park 1 Tel: +49-681-38360-22 66123 Saarbrücken Fax: +49-681-38360-20 GERMANY WWW: http://www.AbsInt.com -------------------------------------------------------------------- Geschäftsführung: Dr.-Ing. Christian Ferdinand Eingetragen im Handelsregister des Amtsgerichts Saarbrücken, HRB 11234 From igor.mironchik at gmail.com Mon Apr 11 18:21:54 2016 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Mon, 11 Apr 2016 19:21:54 +0300 Subject: [Interest] QML Grid's children and findChild doesn't work In-Reply-To: <570BC78D.9020206@gmail.com> References: <570BC78D.9020206@gmail.com> Message-ID: <570BCF22.50706@gmail.com> Hi, Seems that delegate can't be found with findChild()... I solved problem as I use model. I fully removed direct interacting with Cells on Board... Thank you guys for your suggestions and help. On 11.04.2016 18:49, Igor Mironchik wrote: > Hi, > > I have chess board defined in QML as: > > Grid { > id: grid > rows: 8 > columns: 8 > x: offset > y: top.y + top.height > objectName: "grid" > > Repeater { > model: chessBoard > > delegate: Cell { > cellColor: model.CurrentPieceColor > chessX: index % 8 > chessY: index / 8 > onClicked: board.clicked( x, y ) > onHovered: board.hovered( x, y ) > objectName: "c"+ chessX + chessY > width: cellWidth > height: cellHeight > source: model.CellImageSource > } > } > } > > So cell's objectName is something like c00, c01... > > In C++ I have > > QObject * cell = m_grid->findChild< QObject* > ( "c00" ); > > But it always return 0 with any cell's name. m_grid is the "grid" > object... > > Am I doing something wrong or this is a bug? > > Thank you. From pr12og2 at programist.ru Mon Apr 11 19:01:59 2016 From: pr12og2 at programist.ru (Prav) Date: Mon, 11 Apr 2016 20:01:59 +0300 Subject: [Interest] Why there is no QChar::toLocal8Bit()? In-Reply-To: <2001088.I1ApDL620T@tjmaciei-mobl4> References: <1272861796.20160409155636@programist.ru> <5749129.NTQl87OYK4@tjmaciei-mobl4> <1658832583.20160411114113@programist.ru> <2001088.I1ApDL620T@tjmaciei-mobl4> Message-ID: <133510819.20160411200159@programist.ru> Hi, Thiago. > It boils down to "in theory, theory and practice are the same; in practice, > they're not". I am not a phylosopher ... only interested in practice. > In theory, the locale codec can be anything, including 16- and 32-bit codecs. > In practice, they can't because a lot of software is going to break. Ok ... now I got the reson of your different answers. Thanks for explanation. From pr12og2 at programist.ru Mon Apr 11 19:58:47 2016 From: pr12og2 at programist.ru (Prav) Date: Mon, 11 Apr 2016 20:58:47 +0300 Subject: [Interest] Why there is no QChar::toLocal8Bit()? In-Reply-To: <1698185766.469891.1460390159880.JavaMail.zimbra@absint.com> References: <1272861796.20160409155636@programist.ru> <7810661732.20160411125735@programist.ru> <1517446.kbdOMmOMxX@port-fma> <2016583.b4FkGcesXX@tjmaciei-mobl4> <1698185766.469891.1460390159880.JavaMail.zimbra@absint.com> Message-ID: <1986180195.20160411205847@programist.ru> Hi, Christoph. =>> But yeah, they are from hell and thou shall now use Qt on them. :) :) :) :) Yeah ... let's consider all platforms with non-multibyte locale codec from hell This probably mean that it is worth to WARN in docs that for QTextCodec::setCodecForLocale() do not use UTF-16 or something like this because toLocal8Bit (or may be many others) relies on fact that it is signle-byte or multi-byte locale. From thiago.macieira at intel.com Mon Apr 11 21:56:58 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Mon, 11 Apr 2016 12:56:58 -0700 Subject: [Interest] Why there is no QChar::toLocal8Bit()? In-Reply-To: <1986180195.20160411205847@programist.ru> References: <1272861796.20160409155636@programist.ru> <1698185766.469891.1460390159880.JavaMail.zimbra@absint.com> <1986180195.20160411205847@programist.ru> Message-ID: <1698535.6iEobSv9pY@tjmaciei-mobl4> On segunda-feira, 11 de abril de 2016 20:58:47 PDT Prav wrote: > This probably mean that it is worth to WARN in docs that for > QTextCodec::setCodecForLocale() do not use UTF-16 or something like this > because toLocal8Bit (or may be many others) relies on fact that it is > signle-byte or multi-byte locale. toLocal8Bit has no problem with 16- or 32-bit codecs. It's the users of that API that do. For example: printf("Content: %s\n", qPrintable(str)); If the locale codec is 32-bit, this is not going to work. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From bhood2 at comcast.net Tue Apr 12 03:11:37 2016 From: bhood2 at comcast.net (Bob Hood) Date: Mon, 11 Apr 2016 19:11:37 -0600 Subject: [Interest] Any known issues with rDNS lookups on OS X? Message-ID: <570C4B49.6050403@comcast.net> I'm using Qt 5.4.2 code to retrieve a connected machine's hostname (via QHostInfo::lookupHost()). The code works perfectly under Windows, but fails under OS X. I get the hostname under Windows, but I'm left with only the connections network address on OS X. Does anybody know of any existing issues with reverse-DNS look-ups on OS X? From thiago.macieira at intel.com Tue Apr 12 04:09:58 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Mon, 11 Apr 2016 19:09:58 -0700 Subject: [Interest] Any known issues with rDNS lookups on OS X? In-Reply-To: <570C4B49.6050403@comcast.net> References: <570C4B49.6050403@comcast.net> Message-ID: <4101126.oJ796XdiUH@tjmaciei-mobl4> On segunda-feira, 11 de abril de 2016 19:11:37 PDT Bob Hood wrote: > I'm using Qt 5.4.2 code to retrieve a connected machine's hostname (via > QHostInfo::lookupHost()). The code works perfectly under Windows, but fails > under OS X. I get the hostname under Windows, but I'm left with only the > connections network address on OS X. > > Does anybody know of any existing issues with reverse-DNS look-ups on OS X? There are no known issues. Are you sure the machine in question has a reverse entry in DNS? Please show us the code you're using and the proof with the "host" command that the resolution of that IP works. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From bhood2 at comcast.net Tue Apr 12 05:00:05 2016 From: bhood2 at comcast.net (Bob Hood) Date: Mon, 11 Apr 2016 21:00:05 -0600 Subject: [Interest] Any known issues with rDNS lookups on OS X? In-Reply-To: <4101126.oJ796XdiUH@tjmaciei-mobl4> References: <570C4B49.6050403@comcast.net> <4101126.oJ796XdiUH@tjmaciei-mobl4> Message-ID: <570C64B5.2020203@comcast.net> On 4/11/2016 8:09 PM, Thiago Macieira wrote: > On segunda-feira, 11 de abril de 2016 19:11:37 PDT Bob Hood wrote: >> I'm using Qt 5.4.2 code to retrieve a connected machine's hostname (via >> QHostInfo::lookupHost()). The code works perfectly under Windows, but fails >> under OS X. I get the hostname under Windows, but I'm left with only the >> connections network address on OS X. >> >> Does anybody know of any existing issues with reverse-DNS look-ups on OS X? > There are no known issues. Are you sure the machine in question has a reverse > entry in DNS? > > Please show us the code you're using and the proof with the "host" command > that the resolution of that IP works. > Slot: void Service::slot_lookup_complete() { RDnsBind* rdns_bind = qobject_cast(sender()); QString domain_id = rdns_bind->cd->domain_id; QString key; if(rdns_bind->host_info.error() != QHostInfo::NoError) { if(!rdns_bind->host_info.addresses().isEmpty()) { QHostAddress address = rdns_bind->host_info.addresses().first(); key = address.toString(); RDnsData rdns_data; rdns_data.domain_ip = key; rdns_data.domain_hostname = key; rDNS_cache[domain_id] = rdns_data; } } else if(!rdns_bind->host_info.addresses().isEmpty()) { QHostAddress address = rdns_bind->host_info.addresses().first(); key = address.toString(); RDnsData rdns_data; rdns_data.domain_ip = key; rdns_data.domain_hostname = rdns_bind->host_info.hostName(); rDNS_cache[domain_id] = rdns_data; } ... rdns_bind->deleteLater(); } Invocation: ... RDnsBind* rdns_bind = new RDnsBind(this); rdns_bind->cd = cd; connect(rdns_bind, SIGNAL(signal_lookup_complete()), this, SLOT(slot_lookup_complete())); QHostInfo::lookupHost(IP, rdns_bind, SLOT(slot_lookup_complete(QHostInfo))); ... "host" command: Bobs-Mac:repo bob$ host 10.38.1.108 Host 108.1.38.10.in-addr.arpa. not found: 3(NXDOMAIN) Bobs-Mac:repo bob$ host sikun Host sikun not found: 3(NXDOMAIN) So, obviously there is no host entry for a NAT'd machine on the local network segment. However, Windows machines identify other Windows machines correctly using this functionality on the same network segment. Perhaps it's the Windows NetBIOS layer that is making that possible between Microsoft operating systems. From thiago.macieira at intel.com Tue Apr 12 05:57:21 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Mon, 11 Apr 2016 20:57:21 -0700 Subject: [Interest] Any known issues with rDNS lookups on OS X? In-Reply-To: <570C64B5.2020203@comcast.net> References: <570C4B49.6050403@comcast.net> <4101126.oJ796XdiUH@tjmaciei-mobl4> <570C64B5.2020203@comcast.net> Message-ID: <14245763.AEaQfNtE9S@tjmaciei-mobl4> On segunda-feira, 11 de abril de 2016 21:00:05 PDT Bob Hood wrote: > Bobs-Mac:repo bob$ host 10.38.1.108 > Host 108.1.38.10.in-addr.arpa. not found: 3(NXDOMAIN) > Bobs-Mac:repo bob$ host sikun > Host sikun not found: 3(NXDOMAIN) > > So, obviously there is no host entry for a NAT'd machine on the local > network segment. However, Windows machines identify other Windows > machines correctly using this functionality on the same network > segment. Perhaps it's the Windows NetBIOS layer that is making that > possible between Microsoft operating systems. It could be. Windows machines are also known to update their hostnames and reverse addresses with the AD DNS server. You can do that using the nsupdate command with GSSAPI (Kerberos) login. Anwyay, not a Qt issue since there is no hostname to be retrieved in the first place. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From igor.mironchik at gmail.com Tue Apr 12 06:47:14 2016 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Tue, 12 Apr 2016 07:47:14 +0300 Subject: [Interest] QML properties Message-ID: <570C7DD2.9080105@gmail.com> Hi, How to correctly name that that when in QML I write "width: parent.width / 2", for example, then when parent.width changed then changed and width too? I.e. automatic propagation? Thank you. From xbenlau at gmail.com Tue Apr 12 06:51:09 2016 From: xbenlau at gmail.com (Ben Lau) Date: Tue, 12 Apr 2016 12:51:09 +0800 Subject: [Interest] QML properties In-Reply-To: <570C7DD2.9080105@gmail.com> References: <570C7DD2.9080105@gmail.com> Message-ID: Property binding / Data binding On 12 April 2016 at 12:47, Igor Mironchik wrote: > Hi, > > How to correctly name that that when in QML I write "width: parent.width > / 2", for example, then when parent.width changed then changed and width > too? I.e. automatic propagation? > > Thank you. > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dasloop at gmail.com Tue Apr 12 10:18:33 2016 From: dasloop at gmail.com (DAS Loop) Date: Tue, 12 Apr 2016 10:18:33 +0200 Subject: [Interest] Mac OS X Qt 5 QCoreApplication application crashes if linking with webenginewidgets Message-ID: Hi, While porting an app to Qt (Mac OS X SDK 10.11, QT 5.6) I have found a problem. A console app (no GUI) crashes because it loads a dylib that links with Qt WebEngine. The app never instantiates any object that uses Qt WebEngine. The crash happen in QtWebEngineCore::initialize because it tries to create a QOpenGLContext. There is any way to disable this behaviour other that changing my app? This sample reproduces the problem: console.pro TEMPLATE = app TARGET = console INCLUDEPATH += . SOURCES += main.cpp CONFIG += console CONFIG -= app_bundle QT += webenginewidgets main.cpp #include #include int main( int argc, char * argv[] ) { QCoreApplication app( argc, argv ); return 0; } Thanks, David -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexandru.croitor at digia.com Tue Apr 12 10:31:42 2016 From: alexandru.croitor at digia.com (Croitor Alexandr) Date: Tue, 12 Apr 2016 10:31:42 +0200 Subject: [Interest] Mac OS X Qt 5 QCoreApplication application crashes if linking with webenginewidgets In-Reply-To: References: Message-ID: <94FD57E4-3B18-4603-AC93-0A98F366111E@digia.com> Hi, Either remove the "QT += webenginewidgets" line so it does not link to the library, or replace the QCoreApplication with a QApplication instance. > On 12 Apr 2016, at 10:18, DAS Loop wrote: > > > Hi, > > While porting an app to Qt (Mac OS X SDK 10.11, QT 5.6) I have found a problem. A console app (no GUI) crashes because it loads a dylib that links with Qt WebEngine. The app never instantiates any object that uses Qt WebEngine. The crash happen in QtWebEngineCore::initialize because it tries to create a QOpenGLContext. > > There is any way to disable this behaviour other that changing my app? > > This sample reproduces the problem: > > console.pro > > TEMPLATE = app > TARGET = console > INCLUDEPATH += . > SOURCES += main.cpp > CONFIG += console > CONFIG -= app_bundle > QT += webenginewidgets > > main.cpp > > #include > #include > > int main( int argc, char * argv[] ) > { > QCoreApplication app( argc, argv ); > > return 0; > } > > Thanks, > > David > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -------------- next part -------------- An HTML attachment was scrubbed... URL: From dasloop at gmail.com Tue Apr 12 11:07:04 2016 From: dasloop at gmail.com (DAS Loop) Date: Tue, 12 Apr 2016 11:07:04 +0200 Subject: [Interest] Mac OS X Qt 5 QCoreApplication application crashes if linking with webenginewidgets In-Reply-To: <94FD57E4-3B18-4603-AC93-0A98F366111E@digia.com> References: <94FD57E4-3B18-4603-AC93-0A98F366111E@digia.com> Message-ID: Hi, Instantiating a QApplication just for a dependency that will not be used is too much. Removing the webenginewidgets requires some changes in the app (move all the components that uses webenginewidgets to external dylibs and load then on demand if we are using a QApplication instead of a QCoreApplication). If the current Qt behaviour is acceptable, I will change the app. But I´m not sure about that. QtWebEngineCore::initialize uses QCoreApplication. It seems to me that it should work without a full QApplication. Thanks, David On Tue, Apr 12, 2016 at 10:31 AM, Croitor Alexandr < alexandru.croitor at digia.com> wrote: > Hi, > > Either remove the "QT += webenginewidgets" line so it does not link to the > library, > or replace the QCoreApplication with a QApplication instance. > > On 12 Apr 2016, at 10:18, DAS Loop wrote: > > > Hi, > > While porting an app to Qt (Mac OS X SDK 10.11, QT 5.6) I have found a > problem. A console app (no GUI) crashes because it loads a dylib that links > with Qt WebEngine. The app never instantiates any object that uses Qt > WebEngine. The crash happen in QtWebEngineCore::initialize because it tries > to create a QOpenGLContext. > > There is any way to disable this behaviour other that changing my app? > > This sample reproduces the problem: > > console.pro > > TEMPLATE = app > TARGET = console > INCLUDEPATH += . > SOURCES += main.cpp > CONFIG += console > CONFIG -= app_bundle > QT += webenginewidgets > > main.cpp > > #include > #include > > int main( int argc, char * argv[] ) > { > QCoreApplication app( argc, argv ); > return 0; > } > > Thanks, > > David > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > > -- ALT David in a Loop -------------- next part -------------- An HTML attachment was scrubbed... URL: From elderorb at gmail.com Tue Apr 12 11:57:19 2016 From: elderorb at gmail.com (Alexander Ivash) Date: Tue, 12 Apr 2016 12:57:19 +0300 Subject: [Interest] QML version of QRubberBand Message-ID: Is it possible to implement QML version of QRubberBand ? I mean fully QML, without any widgets dependency? I understand it is trivial to make draggable area inside QML window. But what about draggable area over the whole screen? Should I create separate invisible QML window with the geometry of the screen and just put draggable rectangle inside or better approach exists? Alexander From thiago.macieira at intel.com Tue Apr 12 16:53:12 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Tue, 12 Apr 2016 07:53:12 -0700 Subject: [Interest] Mac OS X Qt 5 QCoreApplication application crashes if linking with webenginewidgets In-Reply-To: References: <94FD57E4-3B18-4603-AC93-0A98F366111E@digia.com> Message-ID: <29872365.hqcf2RS0g5@tjmaciei-mobl4> On terça-feira, 12 de abril de 2016 11:07:04 PDT DAS Loop wrote: > If the current Qt behaviour is acceptable, I will change the app. But I´m > not sure about that. QtWebEngineCore::initialize uses QCoreApplication. It > seems to me that it should work without a full QApplication. It doesn't. QtWebEngineWidgets requires a QApplication. The behaviour is intentional. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From jerome at bodycad.com Tue Apr 12 17:11:41 2016 From: jerome at bodycad.com (=?UTF-8?B?SsOpcsO0bWUgR29kYm91dA==?=) Date: Tue, 12 Apr 2016 11:11:41 -0400 Subject: [Interest] Qml singleton fail to load Message-ID: Hi, I encounter a problem with one of my singleton written into Qml. If I remove the *pragma Singleton* from the component and the *singleton* from qmldir I can use the component properly without any trouble. But if I put them back and try to launch the application the engine does not load anything and no error are output into the console whatsoever. Anybody have an idea on how to solve this or a signal/slot hook I could check to know why it refuse to load. Thanks, Jerome -------------- next part -------------- An HTML attachment was scrubbed... URL: From jerome at bodycad.com Tue Apr 12 17:14:17 2016 From: jerome at bodycad.com (=?UTF-8?B?SsOpcsO0bWUgR29kYm91dA==?=) Date: Tue, 12 Apr 2016 11:14:17 -0400 Subject: [Interest] Qml singleton fail to load In-Reply-To: References: Message-ID: I will answer my own question: It seem if the singleton is part of module A it cannot import module A or plugin A. It create a silent error. just move it to a new sub module, since I need the plugin part inside the singleton. Wasn't obvious at first, sorry about the noise. On Tue, Apr 12, 2016 at 11:11 AM, Jérôme Godbout wrote: > Hi, > I encounter a problem with one of my singleton written into Qml. If I > remove the *pragma Singleton* from the component and the *singleton* from > qmldir I can use the component properly without any trouble. > But if I put them back and try to launch the application the engine does > not load anything and no error are output into the console whatsoever. > Anybody have an idea on how to solve this or a signal/slot hook I could > check to know why it refuse to load. > > Thanks, > Jerome > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jhihn at gmx.com Tue Apr 12 17:17:19 2016 From: jhihn at gmx.com (Jason H) Date: Tue, 12 Apr 2016 17:17:19 +0200 Subject: [Interest] QML properties In-Reply-To: <570C7DD2.9080105@gmail.com> References: <570C7DD2.9080105@gmail.com> Message-ID: > Hi, > > How to correctly name that that when in QML I write "width: > parent.width / 2", for example, then when parent.width changed then > changed and width too? I.e. automatic propagation? Realize that QML properties are Q_PROPERTY, with an onPROPERTYChanged emit event. In this way, when parent.width changes, it fires off the event and any variable connected with a binding (explicitly or implicitly) is recalculated. Also, realize that you can declare your own properties in QML: Rectangle { property int verticalDivisor: 15 Rectangle { height: parent.height / verticalDivisor } onVerticalDivisorChanged: console.log("verticalDivisor:", verticalDivisor) Behavior on verticalDivisor { NumberAnimation { ...etc...} } } Now you can animate vertical divisor, as well as provide onVerticalDivisorChanged event handling, as shown above. From jhihn at gmx.com Tue Apr 12 17:21:03 2016 From: jhihn at gmx.com (Jason H) Date: Tue, 12 Apr 2016 17:21:03 +0200 Subject: [Interest] QML version of QRubberBand In-Reply-To: References: Message-ID: You'll want a background MouseArea, and onMouseDown, you locate the Rectangle x,y, and on mouseMove, you adjust the height and width per the new mouse location minus, the y and x. I've not one a "rubberband" per se, just a background swipe gesture, but it should work the same. > Sent: Tuesday, April 12, 2016 at 5:57 AM > From: "Alexander Ivash" > To: "interest at qt-project.org" > Subject: [Interest] QML version of QRubberBand > > Is it possible to implement QML version of QRubberBand ? I mean fully > QML, without any widgets dependency? > > I understand it is trivial to make draggable area inside QML window. > But what about draggable area over the whole screen? Should I create > separate invisible QML window with the geometry of the screen and just > put draggable rectangle inside or better approach exists? > > Alexander > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > From xbenlau at gmail.com Tue Apr 12 17:25:41 2016 From: xbenlau at gmail.com (Ben Lau) Date: Tue, 12 Apr 2016 23:25:41 +0800 Subject: [Interest] Qml singleton fail to load In-Reply-To: References: Message-ID: It is related to this bug: [QTBUG-49370] Use Singleton object from other Singleton object within the same package will hang On 12 April 2016 at 23:14, Jérôme Godbout wrote: > I will answer my own question: It seem if the singleton is part of module > A it cannot import module A or plugin A. It create a silent error. just > move it to a new sub module, since I need the plugin part inside the > singleton. Wasn't obvious at first, sorry about the noise. > > On Tue, Apr 12, 2016 at 11:11 AM, Jérôme Godbout > wrote: > >> Hi, >> I encounter a problem with one of my singleton written into Qml. If I >> remove the *pragma Singleton* from the component and the *singleton* from >> qmldir I can use the component properly without any trouble. >> But if I put them back and try to launch the application the engine does >> not load anything and no error are output into the console whatsoever. >> Anybody have an idea on how to solve this or a signal/slot hook I could >> check to know why it refuse to load. >> >> Thanks, >> Jerome >> > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From nib952051 at gmail.com Tue Apr 12 17:55:34 2016 From: nib952051 at gmail.com (nikita baryshnikov) Date: Tue, 12 Apr 2016 18:55:34 +0300 Subject: [Interest] Mac OS X Qt 5 QCoreApplication application crashes if linking with webenginewidgets In-Reply-To: <29872365.hqcf2RS0g5@tjmaciei-mobl4> References: <94FD57E4-3B18-4603-AC93-0A98F366111E@digia.com> <29872365.hqcf2RS0g5@tjmaciei-mobl4> Message-ID: Then there should be assertion that qApp is a QApplication to provide user-friendly error On Tue, Apr 12, 2016 at 5:53 PM, Thiago Macieira wrote: > On terça-feira, 12 de abril de 2016 11:07:04 PDT DAS Loop wrote: >> If the current Qt behaviour is acceptable, I will change the app. But I´m >> not sure about that. QtWebEngineCore::initialize uses QCoreApplication. It >> seems to me that it should work without a full QApplication. > > It doesn't. QtWebEngineWidgets requires a QApplication. > > The behaviour is intentional. > > -- > Thiago Macieira - thiago.macieira (AT) intel.com > Software Architect - Intel Open Source Technology Center > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest From dasloop at gmail.com Tue Apr 12 18:15:34 2016 From: dasloop at gmail.com (DAS Loop) Date: Tue, 12 Apr 2016 18:15:34 +0200 Subject: [Interest] Mac OS X Qt 5 QCoreApplication application crashes if linking with webenginewidgets In-Reply-To: <29872365.hqcf2RS0g5@tjmaciei-mobl4> References: <94FD57E4-3B18-4603-AC93-0A98F366111E@digia.com> <29872365.hqcf2RS0g5@tjmaciei-mobl4> Message-ID: Thiago, My application is not using QtWebEngineWidgets but loading (at run time) a dylib that links with QtWebEngineWidgets. This external dylib never instanciates a Web Engine component as the code is not activated when running headless. This external dylib can be changed into two libraries for each case and load only the headless part. However, the problem starts in a Qt library that creates a OpenGL context even when it will not be use. Maybe this can be solved too. Thanks, David On Tue, Apr 12, 2016 at 4:53 PM, Thiago Macieira wrote: > On terça-feira, 12 de abril de 2016 11:07:04 PDT DAS Loop wrote: > > If the current Qt behaviour is acceptable, I will change the app. But I´m > > not sure about that. QtWebEngineCore::initialize uses QCoreApplication. > It > > seems to me that it should work without a full QApplication. > > It doesn't. QtWebEngineWidgets requires a QApplication. > > The behaviour is intentional. > > -- > Thiago Macieira - thiago.macieira (AT) intel.com > Software Architect - Intel Open Source Technology Center > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > -- ALT David in a Loop -------------- next part -------------- An HTML attachment was scrubbed... URL: From elderorb at gmail.com Tue Apr 12 19:06:48 2016 From: elderorb at gmail.com (Alexander Ivash) Date: Tue, 12 Apr 2016 20:06:48 +0300 Subject: [Interest] QML version of QRubberBand In-Reply-To: References: Message-ID: > You'll want a background MouseArea, and onMouseDown, you locate the Rectangle x,y, and on mouseMove, you adjust the height and width per the new mouse > location minus, the y and x. > I've not one a "rubberband" per se, just a background swipe gesture, but it should work the same. Thank you for quick reply, but do I _have_to_ create separate invisible top-level QML Window as it can be done in other way? Lets say I have small window 200x200 px with a button which should make rubberband visible and screen with resolution 1024x768. After appearing rubberband should allow to select any part of the whole screen and not only 200x200 area. 2016-04-12 18:21 GMT+03:00 Jason H : > You'll want a background MouseArea, and onMouseDown, you locate the Rectangle x,y, and on mouseMove, you adjust the height and width per the new mouse location minus, the y and x. > I've not one a "rubberband" per se, just a background swipe gesture, but it should work the same. > > >> Sent: Tuesday, April 12, 2016 at 5:57 AM >> From: "Alexander Ivash" >> To: "interest at qt-project.org" >> Subject: [Interest] QML version of QRubberBand >> >> Is it possible to implement QML version of QRubberBand ? I mean fully >> QML, without any widgets dependency? >> >> I understand it is trivial to make draggable area inside QML window. >> But what about draggable area over the whole screen? Should I create >> separate invisible QML window with the geometry of the screen and just >> put draggable rectangle inside or better approach exists? >> >> Alexander >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest >> From thiago.macieira at intel.com Tue Apr 12 19:43:18 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Tue, 12 Apr 2016 10:43:18 -0700 Subject: [Interest] Mac OS X Qt 5 QCoreApplication application crashes if linking with webenginewidgets In-Reply-To: References: <29872365.hqcf2RS0g5@tjmaciei-mobl4> Message-ID: <7088350.V1fGZ17EbC@tjmaciei-mobl4> On terça-feira, 12 de abril de 2016 18:55:34 PDT nikita baryshnikov wrote: > Then there should be assertion that qApp is a QApplication to provide > user-friendly error It came a few levels down and no one thought to test that. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From thiago.macieira at intel.com Tue Apr 12 19:43:46 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Tue, 12 Apr 2016 10:43:46 -0700 Subject: [Interest] Mac OS X Qt 5 QCoreApplication application crashes if linking with webenginewidgets In-Reply-To: References: <29872365.hqcf2RS0g5@tjmaciei-mobl4> Message-ID: <3221188.xK7nbviBJe@tjmaciei-mobl4> On terça-feira, 12 de abril de 2016 18:15:34 PDT DAS Loop wrote: > However, the problem starts in a Qt library that creates a OpenGL context > even when it will not be use. Maybe this can be solved too. True. Please report that. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From dasloop at gmail.com Tue Apr 12 21:25:48 2016 From: dasloop at gmail.com (DAS Loop) Date: Tue, 12 Apr 2016 21:25:48 +0200 Subject: [Interest] Mac OS X Qt 5 QCoreApplication application crashes if linking with webenginewidgets In-Reply-To: <3221188.xK7nbviBJe@tjmaciei-mobl4> References: <29872365.hqcf2RS0g5@tjmaciei-mobl4> <3221188.xK7nbviBJe@tjmaciei-mobl4> Message-ID: Reported: https://bugreports.qt.io/browse/QTBUG-52539 Thanks, David On Tue, Apr 12, 2016 at 7:43 PM, Thiago Macieira wrote: > On terça-feira, 12 de abril de 2016 18:15:34 PDT DAS Loop wrote: > > However, the problem starts in a Qt library that creates a OpenGL context > > even when it will not be use. Maybe this can be solved too. > > True. Please report that. > > -- > Thiago Macieira - thiago.macieira (AT) intel.com > Software Architect - Intel Open Source Technology Center > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > -- ALT David in a Loop -------------- next part -------------- An HTML attachment was scrubbed... URL: From elderorb at gmail.com Tue Apr 12 22:36:57 2016 From: elderorb at gmail.com (Alexander Ivash) Date: Tue, 12 Apr 2016 23:36:57 +0300 Subject: [Interest] QML version of QRubberBand In-Reply-To: References: Message-ID: I've made some experiments and got basic rubber band working using additional QML Window. But the issue I confronted is that transparency/opacity on Windows 7 (and Windows 10) seems to be broken. As soon as I start re-sizing area, opacity and transparency seems to be reset and instead of nice semi-transparent rectangle I see ugly opaque items... I can only hope I'm doing something wrong otherwise seems like major issue in Qt :( Just in case, here is the code of 'main.qml': import QtQuick 2.5 import QtQuick.Window 2.2 import QtQuick.Controls 1.4 Window { id: root visible: true Button { text: "show rubber" onClicked: { root.visible = false var rubberBand = rubberBandFactory.createObject(null); rubberBand.visible = true rubberBand.onAreaSelected.connect(function(x, y, w, h) { console.log(x, y, w, h) root.visible = true }) } } property var rubberBandFactory: Component { Window { id: rubber visible: true flags: Qt.FramelessWindowHint | Qt.Popup modality: Qt.NonModal width: Screen.width height: Screen.height color: "red" opacity: 0.2 signal areaSelected(int x, int y, int width, int height); property bool initialPosSelected: false; MouseArea { id: mouseArea anchors.fill: parent hoverEnabled: false onPressed: { marker.x = mouseArea.mouseX marker.y = mouseArea.mouseY hoverEnabled = true; } onPositionChanged: { marker.width = mouseArea.mouseX - marker.x marker.height = mouseArea.mouseY - marker.y } onReleased: { hoverEnabled = false rubber.visible = false areaSelected(marker.x, marker.y, marker.width, marker.height) } } Rectangle { id: marker width: 0 height: 0 color: 'green' } } } } 2016-04-12 20:06 GMT+03:00 Alexander Ivash : >> You'll want a background MouseArea, and onMouseDown, you locate the Rectangle x,y, and on mouseMove, you adjust the height and width per the new mouse > location minus, the y and x. >> I've not one a "rubberband" per se, just a background swipe gesture, but it should work the same. > > > Thank you for quick reply, but do I _have_to_ create separate > invisible top-level QML Window as it can be done in other way? Lets > say I have small window 200x200 px > with a button which should make rubberband visible and screen with > resolution 1024x768. After appearing rubberband should allow to select > any part of the whole screen and not only 200x200 area. > > > 2016-04-12 18:21 GMT+03:00 Jason H : >> You'll want a background MouseArea, and onMouseDown, you locate the Rectangle x,y, and on mouseMove, you adjust the height and width per the new mouse location minus, the y and x. >> I've not one a "rubberband" per se, just a background swipe gesture, but it should work the same. >> >> >>> Sent: Tuesday, April 12, 2016 at 5:57 AM >>> From: "Alexander Ivash" >>> To: "interest at qt-project.org" >>> Subject: [Interest] QML version of QRubberBand >>> >>> Is it possible to implement QML version of QRubberBand ? I mean fully >>> QML, without any widgets dependency? >>> >>> I understand it is trivial to make draggable area inside QML window. >>> But what about draggable area over the whole screen? Should I create >>> separate invisible QML window with the geometry of the screen and just >>> put draggable rectangle inside or better approach exists? >>> >>> Alexander >>> _______________________________________________ >>> Interest mailing list >>> Interest at qt-project.org >>> http://lists.qt-project.org/mailman/listinfo/interest >>> From jerome at bodycad.com Tue Apr 12 22:47:38 2016 From: jerome at bodycad.com (=?UTF-8?B?SsOpcsO0bWUgR29kYm91dA==?=) Date: Tue, 12 Apr 2016 16:47:38 -0400 Subject: [Interest] Qml singleton fail to load In-Reply-To: References: Message-ID: Thanks, for pointing this out. I can confirm it still there into Qt 5.5.1 then. On Tue, Apr 12, 2016 at 11:25 AM, Ben Lau wrote: > > It is related to this bug: [QTBUG-49370] Use Singleton object from other > Singleton object within the same package will hang > > > > On 12 April 2016 at 23:14, Jérôme Godbout wrote: > >> I will answer my own question: It seem if the singleton is part of module >> A it cannot import module A or plugin A. It create a silent error. just >> move it to a new sub module, since I need the plugin part inside the >> singleton. Wasn't obvious at first, sorry about the noise. >> >> On Tue, Apr 12, 2016 at 11:11 AM, Jérôme Godbout >> wrote: >> >>> Hi, >>> I encounter a problem with one of my singleton written into Qml. If I >>> remove the *pragma Singleton* from the component and the *singleton* from >>> qmldir I can use the component properly without any trouble. >>> But if I put them back and try to launch the application the engine does >>> not load anything and no error are output into the console whatsoever. >>> Anybody have an idea on how to solve this or a signal/slot hook I could >>> check to know why it refuse to load. >>> >>> Thanks, >>> Jerome >>> >> >> >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ekke at ekkes-corner.org Tue Apr 12 23:35:04 2016 From: ekke at ekkes-corner.org (ekke) Date: Tue, 12 Apr 2016 23:35:04 +0200 Subject: [Interest] qt.labs.controls - Material - Fonts Message-ID: <570D6A08.60001@ekkes-corner.org> I'm looking HowTo get the right font styles for Material Display, Headline, Title, Subheading, Body Are there any hints about available font.family and preffered sizes to follow https://www.google.com/design/spec/style/typography.html#typography-styles Am I right that Font sizes always should be done in pointSize and not pixelSize for correct High DPI scaling ? thanks ekke From sinadooru at gmail.com Wed Apr 13 08:07:24 2016 From: sinadooru at gmail.com (Sina Dogru) Date: Wed, 13 Apr 2016 09:07:24 +0300 Subject: [Interest] Qml Loader initial property setter In-Reply-To: References: <57013279.2050303@ekkes-corner.org> Message-ID: > > It's sad that the imperative setSource() function can set those property > and the declarative way is not. > It would also be great but to make something a property instead of a function where it is much easier, then there should be a public and QMetaType known type.Thats why seems like hard to make it possible. 2016-04-04 16:31 GMT+03:00 Jérôme Godbout : > Thanks for pointing this out, but I was aware of that. Sometime a default > value is impossible (null) making bad behavior or bad binding, primitive > type can always have default value that make sense that way but complex > object don't. > It's sad that the imperative setSource() function can set those property > and the declarative way is not. > > On Sun, Apr 3, 2016 at 11:10 AM, ekke wrote: > >> if you want to refer to a property as 'model.i' and there are situations >> where 'model' doesn't exist always, >> it's easy to avoid error messages: >> >> model? model.i : 42 >> >> this way you can set a default value while model is null >> (haven't tried this yet with Qt 5.6 but I'm doing it this way in >> BlackBerry 10 Cascades) >> >> ekke >> >> Am 01.04.16 um 16:05 schrieb Jérôme Godbout: >> >> Yes, but the binding loaded object internal binding are printing error, >> since the object is created without the input, then the external binding >> are created. They will get eventually correct, but the console will be >> filled with error message and I try to avoid that at all cost. Here's a >> simple example that will complain about unable to access i and j of >> undefined / assign undefined to width and height (this example is a bit >> stupid but just a demo to show the problems with more complex model and >> object): >> >> // MyComponent.qml >> Item >> { >> property var model >> width: model.i >> height: model.j >> } >> >> // Main.qml >> MyModel >> { >> id: myModel_ >> property int i: 24 >> property int j: 12 >> } >> >> Loader >> { >> id: loader_ >> source: "MyComponent.qml" >> } >> >> Binding >> { >> target: loader_.item >> property: 'model' >> value: myModel_ >> when: loader_.status == Loader.Ready >> } >> >> What I would like is the Loader call QQmlComponent::beginCreate(), then >> having a hook to init some property then the Loader can finish the >> component QQmlComponent::completeCreate(). This way I was able to make it >> work, but having a custom component for that is a bit annoying. >> >> Loader >> { >> source: "MyComponent.qml" >> onInitProperty: // signal emit with component object returned by >> beginCreate(), >> { >> object.model = Qt.binding(function(){ return myModel_; }); >> ... >> } >> } >> >> That seem clean and would avoid the problems to have object into bad >> state for a brief moment. >> >> Jerome >> >> On Fri, Apr 1, 2016 at 12:04 AM, Shantanu Tushar >> wrote: >> >>> Hi, >>> >>> Have you tried using the QML Binding Type? >>> >>> http://doc.qt.io/qt-5/qml-qtqml-binding.html >>> >>> On Thu, Mar 24, 2016 at 11:11 PM, Jérôme Godbout < >>> jerome at bodycad.com> wrote: >>> >>>> Hi, >>>> >>>> I was wondering if I am the only one who found the initial property of >>>> a source based Loader Item a bit annoying. inline sourceComponent with >>>> Component {} declaration are well ok on the other hand. I'm explaining >>>> myself, when using a loader you have 2 choice to set the initial binding on >>>> created item: >>>> >>>> 1- On item changed set the binding >>>> >>>> *Loader* >>>> *{* >>>> * source: externalObj.getSrc() // return something like "myItem.qml"* >>>> * onItemChanged:* >>>> * {* >>>> * if(!item) return;* >>>> * item.myprop = Qt.binding(function(){ return myExternalProperty; })* >>>> * }* >>>> *}* >>>> >>>> 2- use the setSource() function instead of the source directly >>>> >>>> *Loader* >>>> *{* >>>> * property url myDummySrc: externalObj.getSrc()* >>>> * onMyDummySrcChanged:* >>>> * {* >>>> * setSource(myDummySrc, { 'myprop': Qt.binding(function(){ return >>>> myExternalProperty; }) });* >>>> * }* >>>> *}* >>>> >>>> This is rather annoying and ugly. Number 1 is also having the problem >>>> where *myItem.qml* must be able to handle *myprop *to have a default >>>> value or being empty without output a lots of console error. Number 2 work >>>> well and is the solution I find myself writing often. I was wondering if a >>>> Loader that support a dictionary of initial property when source changed >>>> would be nice: >>>> >>>> *Loader* >>>> *{* >>>> * source: externalObj.getSrc()* >>>> * initialProperties: { 'myprop': Qt.binding(function(){ return >>>> myExternalProperty; }) }* >>>> *}* >>>> >>>> What do you think? >>>> Jerome >>>> >>>> _______________________________________________ >>>> Interest mailing list >>>> Interest at qt-project.org >>>> http://lists.qt-project.org/mailman/listinfo/interest >>>> >>>> >>> >>> >>> -- >>> Shantanu Tushar (UTC +0530) >>> shantanu.io >>> >> >> >> >> _______________________________________________ >> Interest mailing listInterest at qt-project.orghttp://lists.qt-project.org/mailman/listinfo/interest >> >> >> >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest >> >> > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From carel.combrink at gmail.com Wed Apr 13 09:09:08 2016 From: carel.combrink at gmail.com (Carel Combrink) Date: Wed, 13 Apr 2016 09:09:08 +0200 Subject: [Interest] Offline installer alongside online installer Message-ID: Hi, Is it possible to use the Qt Offline installer along with the Qt Online installer? The reason why I am asking: Currently I have Qt 5.4 installed on my computer, but would now like to install Qt 5.6. Due to bandwidth and connectivity related issues and concerns, I want to download the offline installer for 5.6 and install it alongside the Online installed version. I then would like it if I launch the maintenance tool on the Online installed version to see the presence of the version of Qt installed using the offline installer. This would allow me in future to upgrade and manage all installed versions through the same maintenance tool, regardless if they were installed through online or offline. Is this possible at all? I also have multiple computers that must be upgraded, thus a single download to upgrade many computers are the ultimate goal. Regards, -------------- next part -------------- An HTML attachment was scrubbed... URL: From shaan7in at gmail.com Wed Apr 13 09:10:27 2016 From: shaan7in at gmail.com (Shantanu Tushar) Date: Wed, 13 Apr 2016 12:40:27 +0530 Subject: [Interest] Strange ordering problem with ComboBox In-Reply-To: <9BE9A759-3454-49C1-97F7-EFD0BB8DFF2B@gmail.com> References: <9BE9A759-3454-49C1-97F7-EFD0BB8DFF2B@gmail.com> Message-ID: I haven't experienced exactly the same, but I did experience that if I use a QSortFilterProxyModel as a model for ComboBox and the sort order changes, ComboBox doesn't update itself. (A ListView connected with the same model updates). On Mon, Apr 11, 2016 at 3:06 PM, Gian Maxera wrote: > Hello, > I’m using the ComboBox item of QML with more than two Items with a > ListModel like that: > > ComboBox { > > id: rateType > > anchors.horizontalCenter: parent.horizontalCenter > > width: parent.width*0.9 > > Component.onCompleted: { > > if ( models.appointment.lead == null ) { > > rateType.currentIndex = 0 > > } else if ( models.appointment.lead.type == 'contact' ) { > > rateType.currentIndex = 0 > > } else if ( models.appointment.lead.type == 'brochure' ) { > > rateType.currentIndex = 1 > > } else if ( models.appointment.lead.type == 'tentative' ) { > > rateType.currentIndex = 2 > > } else if ( models.appointment.lead.type == 'definite' ) { > > rateType.currentIndex = 3 > > } > > } > > model: ListModel { > > ListElement { > > leadType: 'contact' > > leadText: 'Contact only' > > } > > ListElement { > > leadType: 'brochure' > > leadText: 'Brochure request' > > } > > ListElement { > > leadType: 'tentative' > > leadText: 'Tentative lead' > > } > > ListElement { > > leadType: 'definite' > > leadText: 'Definite lead' > > } > > } > > textRole: "leadText" > > > But the popup menu appearing for select the option contain the elements > into a different order than ListModel and when you select one of those the > ComboBox select a different one. In such a way that it seems the index are > correct but the labels of the popup menu are wrong. > > Someone hits this error before ? > > I’m using Qt 5.5 for now. > > Ciao, > Gianluca. > > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -- Shantanu Tushar (UTC +0530) shantanu.io -------------- next part -------------- An HTML attachment was scrubbed... URL: From Shawn.Rutledge at theqtcompany.com Wed Apr 13 09:19:40 2016 From: Shawn.Rutledge at theqtcompany.com (Rutledge Shawn) Date: Wed, 13 Apr 2016 07:19:40 +0000 Subject: [Interest] QML version of QRubberBand In-Reply-To: References: Message-ID: > On 12 Apr 2016, at 22:36, Alexander Ivash wrote: > > I've made some experiments and got basic rubber band working using > additional QML Window. But the issue I confronted is that > transparency/opacity on Windows 7 (and Windows 10) seems to be broken. That may be the same as https://bugreports.qt.io/browse/QTBUG-52494 From sinadooru at gmail.com Wed Apr 13 09:24:35 2016 From: sinadooru at gmail.com (Sina Dogru) Date: Wed, 13 Apr 2016 10:24:35 +0300 Subject: [Interest] Qml Loader initial property setter In-Reply-To: References: <57013279.2050303@ekkes-corner.org> Message-ID: By the way I found this commit . Seems like it was possible on old Qt days. -------------- next part -------------- An HTML attachment was scrubbed... URL: From elderorb at gmail.com Wed Apr 13 12:09:21 2016 From: elderorb at gmail.com (Alexander Ivash) Date: Wed, 13 Apr 2016 13:09:21 +0300 Subject: [Interest] QML version of QRubberBand In-Reply-To: References: Message-ID: >> On 12 Apr 2016, at 22:36, Alexander Ivash wrote: >> >> I've made some experiments and got basic rubber band working using >> additional QML Window. But the issue I confronted is that >> transparency/opacity on Windows 7 (and Windows 10) seems to be broken. > That may be the same as https://bugreports.qt.io/browse/QTBUG-52494 Yes, could be... But in my case behaviour is a bit different on Win7 and Windows 10. If in my example I specify 'color: "transparent"' instead 'opacity: 0.2', then I'm getting black background (no transparencty/full opacity) on Win7. If I use 'opacity: 0.2' then is works ok in Win7. As for the Windows 10, opacity / transparency doesn't make any difference. Picture gets corrupted as soon as I start resizing rectangle. By the way, is it planned to fix QTBUG-52494 for Qt 5.7 ? Are there possible workarounds ? Regards, Alexander 2016-04-13 10:19 GMT+03:00 Rutledge Shawn : > >> On 12 Apr 2016, at 22:36, Alexander Ivash wrote: >> >> I've made some experiments and got basic rubber band working using >> additional QML Window. But the issue I confronted is that >> transparency/opacity on Windows 7 (and Windows 10) seems to be broken. > > That may be the same as https://bugreports.qt.io/browse/QTBUG-52494 > From konstantin at podsvirov.pro Wed Apr 13 12:28:19 2016 From: konstantin at podsvirov.pro (Konstantin Podsvirov) Date: Wed, 13 Apr 2016 13:28:19 +0300 Subject: [Interest] Offline installer alongside online installer In-Reply-To: References: Message-ID: <3819871460543299@web17h.yandex.ru> An HTML attachment was scrubbed... URL: From carel.combrink at gmail.com Wed Apr 13 12:38:49 2016 From: carel.combrink at gmail.com (Carel Combrink) Date: Wed, 13 Apr 2016 12:38:49 +0200 Subject: [Interest] Offline installer alongside online installer In-Reply-To: <3819871460543299@web17h.yandex.ru> References: <3819871460543299@web17h.yandex.ru> Message-ID: Hi What is your infrastructure? Do you have a local area network? > Yes, I have a local network. If yes, then you can clone repository QtSDK to all or a specific OS (~30Gb > for Windows), and deploy it on your network. > Do you refer to create a local mirror of the Online version or something else? I have considered this but have not tried it yet since I am not sure if this would work. > What OS are you using? > Most computers are using Linux (Ubuntu 14.04) and Windows (7), a small amount are MacOS. > You are interested in this offer? > I need some more information before I can commit to anything. > Need more instructions? Yes please, anything that will be of use will be appreciated. -------------- next part -------------- An HTML attachment was scrubbed... URL: From konstantin at podsvirov.pro Wed Apr 13 13:11:25 2016 From: konstantin at podsvirov.pro (Konstantin Podsvirov) Date: Wed, 13 Apr 2016 14:11:25 +0300 Subject: [Interest] Offline installer alongside online installer In-Reply-To: References: <3819871460543299@web17h.yandex.ru> Message-ID: <3626611460545885@web18o.yandex.ru> An HTML attachment was scrubbed... URL: From pr12og2 at programist.ru Wed Apr 13 15:10:37 2016 From: pr12og2 at programist.ru (Prav) Date: Wed, 13 Apr 2016 16:10:37 +0300 Subject: [Interest] [Qt-creator] Looking for Enums with Locator In-Reply-To: <570DF85F.9030905@theqtcompany.com> References: <966189207.20160411224111@programist.ru> <1903441914.20160412021249@programist.ru> <570C9405.3020203@gmail.com> <570CA514.5000900@theqtcompany.com> <168757077.20160412123035@programist.ru> <570DF85F.9030905@theqtcompany.com> Message-ID: <1081313684.20160413161037@programist.ru> Hi, Nikolai. > I'm fine with making enum values "locatable", though personally I > haven't missed them. OK ... as result filled https://bugreports.qt.io/browse/QTCREATORBUG-16060 Is there somewhere list of bugs planed for fixing for nearest versions of QtC? May be in JIRA itself? From jerome at bodycad.com Wed Apr 13 15:17:23 2016 From: jerome at bodycad.com (=?UTF-8?B?SsOpcsO0bWUgR29kYm91dA==?=) Date: Wed, 13 Apr 2016 09:17:23 -0400 Subject: [Interest] Qml Loader initial property setter In-Reply-To: References: <57013279.2050303@ekkes-corner.org> Message-ID: I agree, this would be difficult to know if this should create a binding or simply copy the current value. This is why I was proposing the function where we could go with either = or Qt.binding() to have full control on it. Nice to see this was there at some point, I wonder why they removed it or never integrate it. On Wed, Apr 13, 2016 at 2:07 AM, Sina Dogru wrote: > It's sad that the imperative setSource() function can set those property >> and the declarative way is not. >> > > It would also be great but to make something a property instead of a > function where it is much easier, then there should be a public and > QMetaType known type.Thats why seems like hard to make it possible. > > 2016-04-04 16:31 GMT+03:00 Jérôme Godbout : > >> Thanks for pointing this out, but I was aware of that. Sometime a default >> value is impossible (null) making bad behavior or bad binding, primitive >> type can always have default value that make sense that way but complex >> object don't. >> It's sad that the imperative setSource() function can set those property >> and the declarative way is not. >> >> On Sun, Apr 3, 2016 at 11:10 AM, ekke wrote: >> >>> if you want to refer to a property as 'model.i' and there are situations >>> where 'model' doesn't exist always, >>> it's easy to avoid error messages: >>> >>> model? model.i : 42 >>> >>> this way you can set a default value while model is null >>> (haven't tried this yet with Qt 5.6 but I'm doing it this way in >>> BlackBerry 10 Cascades) >>> >>> ekke >>> >>> Am 01.04.16 um 16:05 schrieb Jérôme Godbout: >>> >>> Yes, but the binding loaded object internal binding are printing error, >>> since the object is created without the input, then the external binding >>> are created. They will get eventually correct, but the console will be >>> filled with error message and I try to avoid that at all cost. Here's a >>> simple example that will complain about unable to access i and j of >>> undefined / assign undefined to width and height (this example is a bit >>> stupid but just a demo to show the problems with more complex model and >>> object): >>> >>> // MyComponent.qml >>> Item >>> { >>> property var model >>> width: model.i >>> height: model.j >>> } >>> >>> // Main.qml >>> MyModel >>> { >>> id: myModel_ >>> property int i: 24 >>> property int j: 12 >>> } >>> >>> Loader >>> { >>> id: loader_ >>> source: "MyComponent.qml" >>> } >>> >>> Binding >>> { >>> target: loader_.item >>> property: 'model' >>> value: myModel_ >>> when: loader_.status == Loader.Ready >>> } >>> >>> What I would like is the Loader call QQmlComponent::beginCreate(), then >>> having a hook to init some property then the Loader can finish the >>> component QQmlComponent::completeCreate(). This way I was able to make it >>> work, but having a custom component for that is a bit annoying. >>> >>> Loader >>> { >>> source: "MyComponent.qml" >>> onInitProperty: // signal emit with component object returned by >>> beginCreate(), >>> { >>> object.model = Qt.binding(function(){ return myModel_; }); >>> ... >>> } >>> } >>> >>> That seem clean and would avoid the problems to have object into bad >>> state for a brief moment. >>> >>> Jerome >>> >>> On Fri, Apr 1, 2016 at 12:04 AM, Shantanu Tushar >>> wrote: >>> >>>> Hi, >>>> >>>> Have you tried using the QML Binding Type? >>>> >>>> http://doc.qt.io/qt-5/qml-qtqml-binding.html >>>> >>>> On Thu, Mar 24, 2016 at 11:11 PM, Jérôme Godbout < >>>> jerome at bodycad.com> wrote: >>>> >>>>> Hi, >>>>> >>>>> I was wondering if I am the only one who found the initial property of >>>>> a source based Loader Item a bit annoying. inline sourceComponent with >>>>> Component {} declaration are well ok on the other hand. I'm explaining >>>>> myself, when using a loader you have 2 choice to set the initial binding on >>>>> created item: >>>>> >>>>> 1- On item changed set the binding >>>>> >>>>> *Loader* >>>>> *{* >>>>> * source: externalObj.getSrc() // return something like "myItem.qml"* >>>>> * onItemChanged:* >>>>> * {* >>>>> * if(!item) return;* >>>>> * item.myprop = Qt.binding(function(){ return myExternalProperty; >>>>> })* >>>>> * }* >>>>> *}* >>>>> >>>>> 2- use the setSource() function instead of the source directly >>>>> >>>>> *Loader* >>>>> *{* >>>>> * property url myDummySrc: externalObj.getSrc()* >>>>> * onMyDummySrcChanged:* >>>>> * {* >>>>> * setSource(myDummySrc, { 'myprop': Qt.binding(function(){ return >>>>> myExternalProperty; }) });* >>>>> * }* >>>>> *}* >>>>> >>>>> This is rather annoying and ugly. Number 1 is also having the problem >>>>> where *myItem.qml* must be able to handle *myprop *to have a default >>>>> value or being empty without output a lots of console error. Number 2 work >>>>> well and is the solution I find myself writing often. I was wondering if a >>>>> Loader that support a dictionary of initial property when source changed >>>>> would be nice: >>>>> >>>>> *Loader* >>>>> *{* >>>>> * source: externalObj.getSrc()* >>>>> * initialProperties: { 'myprop': Qt.binding(function(){ return >>>>> myExternalProperty; }) }* >>>>> *}* >>>>> >>>>> What do you think? >>>>> Jerome >>>>> >>>>> _______________________________________________ >>>>> Interest mailing list >>>>> Interest at qt-project.org >>>>> http://lists.qt-project.org/mailman/listinfo/interest >>>>> >>>>> >>>> >>>> >>>> -- >>>> Shantanu Tushar (UTC +0530) >>>> shantanu.io >>>> >>> >>> >>> >>> _______________________________________________ >>> Interest mailing listInterest at qt-project.orghttp://lists.qt-project.org/mailman/listinfo/interest >>> >>> >>> >>> _______________________________________________ >>> Interest mailing list >>> Interest at qt-project.org >>> http://lists.qt-project.org/mailman/listinfo/interest >>> >>> >> >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jhihn at gmx.com Wed Apr 13 16:09:51 2016 From: jhihn at gmx.com (Jason H) Date: Wed, 13 Apr 2016 16:09:51 +0200 Subject: [Interest] To a truly smooth progress bar (QML) Message-ID: I am trying to come up with a very smooth yet accurate progress bar. My code for the 1 second update interval use case is down below. The use case of this bar is that there is a regular interval that the value is updated, either from a timer, or a consistent CPU-bound process. Another example would be a seek bar from the video player which updates it's position every second. To this end, I try to control the size change through velocity. The SmoothedAnimation though uses a InOutQuad, and not Linear for eading. Changing it to Linear helps, but I've never been able to get it to smoothly continue past an update boundary. I've tried various smoothing techniques (like Exponential moving average) to try to smooth this out, but It's never perfect, and im post cases makes it worse. Can I get it to be perfect? I don't care so much that the bar is absolutely numerically accurate, it can be a few pixels off, but it shouldn't be wildly inaccurate. Thanks. import QtQuick 2.0 Rectangle { property real percent: 0 property color barColor: "white" property real lastUpdateTime: -1 property real lastUpdateValue: 0 property alias smooth: smoothBehavior.enabled property alias velocity: numAnim.velocity color:"transparent" onPercentChanged: { smoothBehavior.enabled = lastUpdateValue < percent if (!smoothBehavior.enabled) numAnim.complete() } Rectangle { color: barColor height: parent.height width: parent.width * percent antialiasing: true } Behavior on percent { id: smoothBehavior onEnabledChanged: console.debug("smoothBehavior", enabled) SmoothedAnimation { id: numAnim easing.type: Easing.Linear duration:1050 //average of just less than 1 update per second, ~1060ms. reversingMode: SmoothedAnimation.Sync } } } == the code for updating the velocity dynamically == ProgressBar { property real lastUpdateTime: -1 property real lastUpdateValue: 0 onPercentChanged: { var now = new Date().getTime()/1000; if (lastUpdateTime != -1) { var dt = now - lastUpdateTime; var dv = percent - lastUpdateValue ; var v = dv / dt ; console.log(percent, "velocity (pps):", v*width, "d%:", dv, "dt:", dt, "w:", width, "%/s:", v) if (v > 0) { velocity = v*width; } else if (v < 0) { velocity = 1000000 //reversingMode: Sync doesn't seem to work? } } lastUpdateTime = now; lastUpdateValue = percent; } } From jhihn at gmx.com Wed Apr 13 16:24:43 2016 From: jhihn at gmx.com (Jason H) Date: Wed, 13 Apr 2016 16:24:43 +0200 Subject: [Interest] QML version of QRubberBand In-Reply-To: References: , Message-ID: > > You'll want a background MouseArea, and onMouseDown, you locate the Rectangle x,y, and on mouseMove, you adjust the height and width per the new mouse > location minus, the y and x. > > I've not one a "rubberband" per se, just a background swipe gesture, but it should work the same. > > > Thank you for quick reply, but do I _have_to_ create separate > invisible top-level QML Window as it can be done in other way? Lets > say I have small window 200x200 px > with a button which should make rubberband visible and screen with > resolution 1024x768. After appearing rubberband should allow to select > any part of the whole screen and not only 200x200 area. If you click a button to make the rubber band visible, how is it initialized on the screen? Seems like then you have to provide drag handles? And managing that selection via handles is not a good user experience. Maybe just change the mouse cursor? If you have a button, then yes, you can have a top-level. It's pretty easy: Window { fucntion handleSelecttion(x,y,width, height) { ...your code... } Item { onStartSelectionEvent: selLayer.visible = true } MouseArea { property int startX: -1 property int startY: -1 signal areaSelected(int x, int y, int width, int height); id: selLayer anchors.fill: parent onPressed: {mouseX = x; mouseY =y } onReleased: { areaSelected(mouseX, mouseY, x-mouseX, y-mouseY) } onAreaSelected: { handleSelection(x,y,width, height) visible = false } } } However note that if you move the selLayer to BEFORE you can leave it visible, and the user always has the selection ability as things stack vertically the lower in the file you go. From jhihn at gmx.com Wed Apr 13 16:34:57 2016 From: jhihn at gmx.com (Jason H) Date: Wed, 13 Apr 2016 16:34:57 +0200 Subject: [Interest] QML version of QRubberBand In-Reply-To: References: , Message-ID: > If in my example I specify 'color: "transparent"' instead 'opacity: > 0.2', then I'm getting black background (no transparencty/full > opacity) on Win7. If I use 'opacity: 0.2' then is works ok in Win7. As > for the Windows 10, opacity / transparency doesn't make any > difference. Picture gets corrupted as soon as I start resizing > rectangle. This could be a driver problem, depending on the nature of the corruption. What driver are you using? Does it happen in VM Ware/VirtualBox/etc? From elderorb at gmail.com Wed Apr 13 17:02:17 2016 From: elderorb at gmail.com (Alexander Ivash) Date: Wed, 13 Apr 2016 18:02:17 +0300 Subject: [Interest] QML version of QRubberBand In-Reply-To: References: Message-ID: Unfortunately this seems to be https://bugreports.qt.io/browse/QTBUG-52494 . 2016-04-13 17:34 GMT+03:00 Jason H : > >> If in my example I specify 'color: "transparent"' instead 'opacity: >> 0.2', then I'm getting black background (no transparencty/full >> opacity) on Win7. If I use 'opacity: 0.2' then is works ok in Win7. As >> for the Windows 10, opacity / transparency doesn't make any >> difference. Picture gets corrupted as soon as I start resizing >> rectangle. > > This could be a driver problem, depending on the nature of the corruption. What driver are you using? Does it happen in VM Ware/VirtualBox/etc? > From krnekit at gmail.com Wed Apr 13 19:02:00 2016 From: krnekit at gmail.com (Nikita Krupenko) Date: Wed, 13 Apr 2016 20:02:00 +0300 Subject: [Interest] qt.labs.controls - Material - Fonts In-Reply-To: <570D6A08.60001@ekkes-corner.org> References: <570D6A08.60001@ekkes-corner.org> Message-ID: 2016-04-13 0:35 GMT+03:00 ekke : > I'm looking HowTo get the right font styles for Material Display, > Headline, Title, Subheading, Body > > Are there any hints about available font.family and preffered sizes to > follow > https://www.google.com/design/spec/style/typography.html#typography-styles Controls from Material theme should have proper fonts in most cases. If they hasn't - don't hesitate to file a bug ;) If you are talking about creating own controls, proper fonts usually specified in dedicated page for that control, for example https://www.google.com/design/spec/components/lists.html Though, sometimes information in spec don't really clear. > Am I right that Font sizes always should be done in pointSize and not > pixelSize for correct High DPI scaling ? Quite the contrary. You should specify pixelSize. Also, in design guidelines, size in sp, which is pixels. From ekke at ekkes-corner.org Wed Apr 13 19:33:47 2016 From: ekke at ekkes-corner.org (ekke) Date: Wed, 13 Apr 2016 19:33:47 +0200 Subject: [Interest] qt.labs.controls - Material - Fonts In-Reply-To: References: <570D6A08.60001@ekkes-corner.org> Message-ID: <570E82FB.7030100@ekkes-corner.org> Am 13.04.16 um 19:02 schrieb Nikita Krupenko: > 2016-04-13 0:35 GMT+03:00 ekke : >> I'm looking HowTo get the right font styles for Material Display, >> Headline, Title, Subheading, Body >> >> Are there any hints about available font.family and preffered sizes to >> follow >> https://www.google.com/design/spec/style/typography.html#typography-styles > Controls from Material theme should have proper fonts in most cases. > If they hasn't - don't hesitate to file a bug ;) already did this and JP Nurmi already fixed :) fonts are looking great but per ex. Label can be used for body text, subheading etc. so I have to create my own for this > > If you are talking about creating own controls, proper fonts usually > specified in dedicated page for that control, for example > https://www.google.com/design/spec/components/lists.html Though, > sometimes information in spec don't really clear. so I can use same Font names ? is there a list what's part of qt.labs Material ? >> Am I right that Font sizes always should be done in pointSize and not >> pixelSize for correct High DPI scaling ? > Quite the contrary. You should specify pixelSize. Also, in design > guidelines, size in sp, which is pixels. thx. then I misunderstood it from a session at Qt World Summit I really like the new controls and am blogging about http://j.mp/qt-x - just working on some sample apps ... ekke From krnekit at gmail.com Wed Apr 13 19:46:01 2016 From: krnekit at gmail.com (Nikita Krupenko) Date: Wed, 13 Apr 2016 20:46:01 +0300 Subject: [Interest] qt.labs.controls - Material - Fonts In-Reply-To: <570E82FB.7030100@ekkes-corner.org> References: <570D6A08.60001@ekkes-corner.org> <570E82FB.7030100@ekkes-corner.org> Message-ID: 2016-04-13 20:33 GMT+03:00 ekke : > Am 13.04.16 um 19:02 schrieb Nikita Krupenko: >> 2016-04-13 0:35 GMT+03:00 ekke : >>> I'm looking HowTo get the right font styles for Material Display, >>> Headline, Title, Subheading, Body >>> >>> Are there any hints about available font.family and preffered sizes to >>> follow >>> https://www.google.com/design/spec/style/typography.html#typography-styles >> Controls from Material theme should have proper fonts in most cases. >> If they hasn't - don't hesitate to file a bug ;) > already did this and JP Nurmi already fixed :) > fonts are looking great > > but per ex. Label can be used for body text, subheading etc. so I have > to create my own for this If you using Material style, font (Roboto/Noto) would be already set, so you can just do Label { font.pixelSize: 16 } to create label with subheading font. >> If you are talking about creating own controls, proper fonts usually >> specified in dedicated page for that control, for example >> https://www.google.com/design/spec/components/lists.html Though, >> sometimes information in spec don't really clear. > so I can use same Font names ? > is there a list what's part of qt.labs Material ? There is no Body, Subheading, etc fonts in Qt.labs Material. The font just set for specific controls. From ekke at ekkes-corner.org Wed Apr 13 19:54:15 2016 From: ekke at ekkes-corner.org (ekke) Date: Wed, 13 Apr 2016 19:54:15 +0200 Subject: [Interest] qt.labs.controls - Material - Fonts In-Reply-To: References: <570D6A08.60001@ekkes-corner.org> <570E82FB.7030100@ekkes-corner.org> Message-ID: <570E87C7.9010107@ekkes-corner.org> Am 13.04.16 um 19:46 schrieb Nikita Krupenko: > 2016-04-13 20:33 GMT+03:00 ekke : >> Am 13.04.16 um 19:02 schrieb Nikita Krupenko: >>> 2016-04-13 0:35 GMT+03:00 ekke : >>>> I'm looking HowTo get the right font styles for Material Display, >>>> Headline, Title, Subheading, Body >>>> >>>> Are there any hints about available font.family and preffered sizes to >>>> follow >>>> https://www.google.com/design/spec/style/typography.html#typography-styles >>> Controls from Material theme should have proper fonts in most cases. >>> If they hasn't - don't hesitate to file a bug ;) >> already did this and JP Nurmi already fixed :) >> fonts are looking great >> >> but per ex. Label can be used for body text, subheading etc. so I have >> to create my own for this > If you using Material style, font (Roboto/Noto) would be already set, thx for info > so you can just do > > Label { > font.pixelSize: 16 > } > > to create label with subheading font. cool will define my SubheadingLabel etc thx ekke From mitch.curtis at theqtcompany.com Wed Apr 13 20:52:05 2016 From: mitch.curtis at theqtcompany.com (Curtis Mitch) Date: Wed, 13 Apr 2016 18:52:05 +0000 Subject: [Interest] qt.labs.controls - Material - Fonts In-Reply-To: <570E82FB.7030100@ekkes-corner.org> References: <570D6A08.60001@ekkes-corner.org> , <570E82FB.7030100@ekkes-corner.org> Message-ID: JP has a WIP patch that would add support for standard font sizes to Qt Quick: https://codereview.qt-project.org/#/c/150063/ ________________________________________ From: Interest on behalf of ekke Sent: Wednesday, 13 April 2016 19:33 To: interest at qt-project.org Subject: Re: [Interest] qt.labs.controls - Material - Fonts Am 13.04.16 um 19:02 schrieb Nikita Krupenko: > 2016-04-13 0:35 GMT+03:00 ekke : >> I'm looking HowTo get the right font styles for Material Display, >> Headline, Title, Subheading, Body >> >> Are there any hints about available font.family and preffered sizes to >> follow >> https://www.google.com/design/spec/style/typography.html#typography-styles > Controls from Material theme should have proper fonts in most cases. > If they hasn't - don't hesitate to file a bug ;) already did this and JP Nurmi already fixed :) fonts are looking great but per ex. Label can be used for body text, subheading etc. so I have to create my own for this > > If you are talking about creating own controls, proper fonts usually > specified in dedicated page for that control, for example > https://www.google.com/design/spec/components/lists.html Though, > sometimes information in spec don't really clear. so I can use same Font names ? is there a list what's part of qt.labs Material ? >> Am I right that Font sizes always should be done in pointSize and not >> pixelSize for correct High DPI scaling ? > Quite the contrary. You should specify pixelSize. Also, in design > guidelines, size in sp, which is pixels. thx. then I misunderstood it from a session at Qt World Summit I really like the new controls and am blogging about http://j.mp/qt-x - just working on some sample apps ... ekke _______________________________________________ Interest mailing list Interest at qt-project.org http://lists.qt-project.org/mailman/listinfo/interest From alexander_carot at gmx.net Wed Apr 13 20:59:25 2016 From: alexander_carot at gmx.net (=?UTF-8?Q?=22Alexander_Car=C3=B4t=22?=) Date: Wed, 13 Apr 2016 20:59:25 +0200 Subject: [Interest] qtWebsocket SSL question References: , , Message-ID: Hello, with respect to my last question I realized that the only SSL-related part within the ssl-Websocket-ssl-server occurs right in the constructor: QSslConfiguration sslConfiguration; QFile certFile(QStringLiteral(":/server.crt")); QFile keyFile(QStringLiteral(":/server.key")); certFile.open(QIODevice::ReadOnly); keyFile.open(QIODevice::ReadOnly); QSslCertificate certificate(&certFile, QSsl::Pem); QSslKey sslKey(&keyFile, QSsl::Rsa, QSsl::Pem); certFile.close(); keyFile.close(); sslConfiguration.setPeerVerifyMode(QSslSocket::VerifyNone); sslConfiguration.setLocalCertificate(certificate); sslConfiguration.setPrivateKey(sslKey); sslConfiguration.setProtocol(QSsl::TlsV1SslV3); m_pWebSocketServer->setSslConfiguration(sslConfiguration); Additionally the ssl-socket is connected to the following slot: void EchoServer::onSslErrors(const QList &){ cout << "Ssl errors occurred" << endl; } Since I still cannot connect via wss://myDomain:1234 (ws does connect fine) I would have expected ssl-errors but this is not the case: The only obvious fact is that it tries to connect and fails after a timeout of several seconds. Any hint appreciated how to address this issue. Thanks in advance, best Alex -- http://www.carot.de Email : Alexander at Carot.de Tel.: +49 (0)177 5719797 > Gesendet: Freitag, 08. April 2016 um 23:27 Uhr > Von: "Alexander Carôt" > An: "Jason H" > Cc: "qt qt" > Betreff: Aw: Re: [Interest] qtWebsocket SSL question > > see below: > > Thanks a lot - this way I was able to generate the required files (I did it according to this link: > > https://developer.salesforce.com/blogs/developer-relations/2011/05/generating-valid-self-signed-certificates.html ) > > However, it still does not work. The non-SSL-Websocket example works perfectly fine on localhost and on a remote server but the SSL version doesn't. > > I simply ran the server (just as the non-SSL-version) listening on port 1234 and let the client connect via > > wss://localhost:1234 (or the respective remote server location) > > but immediately get the error message: "ERROR: undefined > DISCONNECTED" > > Is there any chance to further track down the connect process in order to figure why it actually doen't - or further hints ? > > Thanks ! > > Alex > > -- > http://www.carot.de > Email : Alexander at Carot.de > Tel.: +49 (0)177 5719797 > > > > Gesendet: Freitag, 08. April 2016 um 17:54 Uhr > > Von: "Jason H" > > An: "Alexander Carôt" > > Cc: "qt qt" > > Betreff: Re: [Interest] qtWebsocket SSL question > > > > Use openssl's cert generation features. > > > > > Sent: Friday, April 08, 2016 at 11:24 AM > > > From: "Alexander Carôt" > > > To: "qt qt" > > > Subject: [Interest] qtWebsocket SSL question > > > > > > Hello all, > > > > > > I just started investigating websockets with Qt and now have a question regarding this example: > > > > > > http://doc.qt.io/qt-5/qtwebsockets-sslechoserver-example.html > > > > > > I compiled it but encountered the issue of missing files: > > > > > > RCC: Error in 'securesocketclient.qrc': Cannot find file 'localhost.cert' > > > make: *** [qrc_securesocketclient.cpp] Error 1 > > > > > > In securesocketclient.qrc the following files are required: > > > > > > > > > > > > localhost.cert > > > localhost.key > > > > > > > > > > > > and I wonder how or where to generate them and since I have no experience with security and certificates etc. I'd appreciate any comment. > > > > > > Thanks in advance, > > > best > > From dragor at shaw.ca Thu Apr 14 00:23:27 2016 From: dragor at shaw.ca (Lorne Sturtevant) Date: Wed, 13 Apr 2016 16:23:27 -0600 Subject: [Interest] Problem location symbol on android In-Reply-To: <5706EA0F.4010800@shaw.ca> References: <5706EA0F.4010800@shaw.ca> Message-ID: <570EC6DF.7050201@shaw.ca> On 04/07/2016 05:15 PM, Lorne Sturtevant wrote: > I have a project that I'm trying to get working on android. I'm > using Qt Creator to build and run everything. The program compiles, > links and deploys. When it runs, I get the following error: > > Starting remote process.V/Zygote (20264): Switching descriptor 33 to > /dev/null > > V/Zygote (20264): Switching descriptor 9 to /dev/null > > D/dalvikvm(20264): Late-enabling CheckJNI > > I/ActivityManager( 436): Start proc org.qtproject.example.test_mage > for activity > org.qtproject.example.test_mage/org.qtproject.qt5.android.bindings.QtActivity: > pid=20264 uid=10109 gids={50109, 3003, 1028, 1015} > > D/ActivityThread(20264): > handleBindApplication:org.qtproject.example.test_mage > > D/ActivityThread(20264): setTargetHeapUtilization:0.75 > > D/ActivityThread(20264): setTargetHeapMinFree:524288 > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/lib/libgnustl_shared.so > 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/lib/libgnustl_shared.so > 0x2c665238 > > D/dalvikvm(20264): No JNI_OnLoad found in > /data/data/org.qtproject.example.test_mage/lib/libgnustl_shared.so > 0x2c665238, skipping init > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Core.so 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Core.so 0x2c665238 > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Gui.so 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Gui.so 0x2c665238 > > D/dalvikvm(20264): No JNI_OnLoad found in > /data/data/org.qtproject.example.test_mage/lib/libQt5Gui.so > 0x2c665238, skipping init > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Widgets.so 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Widgets.so 0x2c665238 > > D/dalvikvm(20264): No JNI_OnLoad found in > /data/data/org.qtproject.example.test_mage/lib/libQt5Widgets.so > 0x2c665238, skipping init > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Xml.so 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Xml.so 0x2c665238 > > D/dalvikvm(20264): No JNI_OnLoad found in > /data/data/org.qtproject.example.test_mage/lib/libQt5Xml.so > 0x2c665238, skipping init > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Concurrent.so > 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Concurrent.so > 0x2c665238 > > D/dalvikvm(20264): No JNI_OnLoad found in > /data/data/org.qtproject.example.test_mage/lib/libQt5Concurrent.so > 0x2c665238, skipping init > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Network.so 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Network.so 0x2c665238 > > D/dalvikvm(20264): No JNI_OnLoad found in > /data/data/org.qtproject.example.test_mage/lib/libQt5Network.so > 0x2c665238, skipping init > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/qt-reserved-files/plugins/platforms/android/libqtforandroid.so > 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/qt-reserved-files/plugins/platforms/android/libqtforandroid.so > 0x2c665238 > > I/Qt (20264): qt start > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/qt-reserved-files/plugins/bearer/libqandroidbearer.so > 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/qt-reserved-files/plugins/bearer/libqandroidbearer.so > 0x2c665238 > > D/dalvikvm(20264): No JNI_OnLoad found in > /data/data/org.qtproject.example.test_mage/qt-reserved-files/plugins/bearer/libqandroidbearer.so > 0x2c665238, skipping init > > D/dalvikvm(20264): Trying to load lib > /data/app-lib/org.qtproject.example.test_mage-2/libphysfs.so 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/app-lib/org.qtproject.example.test_mage-2/libphysfs.so 0x2c665238 > > D/dalvikvm(20264): No JNI_OnLoad found in > /data/app-lib/org.qtproject.example.test_mage-2/libphysfs.so > 0x2c665238, skipping init > > D/dalvikvm(20264): Trying to load lib > /data/app-lib/org.qtproject.example.test_mage-2/libmage.so 0x2c665238 > > E/dalvikvm(20264): > dlopen("/data/app-lib/org.qtproject.example.test_mage-2/libmage.so") > failed: dlopen failed: cannot locate symbol > "_ZN18QXmlDefaultHandlerC2Ev" referenced by "libmage.so"... > > The constructor for QXmlDefaultHandler is not found. It looks like > it's loading the libQt5Xml.so library fine though. When I examine the > library in the build directory, this is what I get: > $ objdump -T libQt5Xml.so | grep _ZN18QXmlDefaultHandlerC2Ev > 000121b9 g DF .text 00000038 _ZN18QXmlDefaultHandlerC2Ev > > The symbol is in the library, but I have no idea why it's not finding it. > > Any help with this would be greatly appreciated. I figured out what the problem was. I'm just replying to this in case anyone else comes across this problem. It seems the linker acted a little different on Android compared to all the other platforms I used. When linking libmage.so, I had to add "-lQt5Xml -lgnustl_shared" to the command line. I actually had to add all of the Qt libraries that libmage.so used, but Qt5Xml is what specifically fixed the error finding the symbol _ZN18QXmlDefaultHandlerC2Ev. I should also note that I am using autotools to create libmage.so and not QtCreator. I'm sure QtCreator would have setup the linking for me without this problem. -- Lorne Sturtevant Sum Ergo Cogito -------------- next part -------------- An HTML attachment was scrubbed... URL: From missdeer at gmail.com Thu Apr 14 02:58:20 2016 From: missdeer at gmail.com (Yang Fan) Date: Thu, 14 Apr 2016 08:58:20 +0800 Subject: [Interest] qtWebsocket SSL question In-Reply-To: References: Message-ID: Maybe a little bit off topic, I found that this snippet works on iOS, but fails on Android. On Thu, Apr 14, 2016 at 2:59 AM, "Alexander Carôt" wrote: > Hello, > > with respect to my last question I realized that the only SSL-related part > within the ssl-Websocket-ssl-server occurs right in the constructor: > > QSslConfiguration sslConfiguration; > QFile certFile(QStringLiteral(":/server.crt")); > QFile keyFile(QStringLiteral(":/server.key")); > certFile.open(QIODevice::ReadOnly); > keyFile.open(QIODevice::ReadOnly); > > QSslCertificate certificate(&certFile, QSsl::Pem); > QSslKey sslKey(&keyFile, QSsl::Rsa, QSsl::Pem); > certFile.close(); > keyFile.close(); > > sslConfiguration.setPeerVerifyMode(QSslSocket::VerifyNone); > sslConfiguration.setLocalCertificate(certificate); > sslConfiguration.setPrivateKey(sslKey); > sslConfiguration.setProtocol(QSsl::TlsV1SslV3); > m_pWebSocketServer->setSslConfiguration(sslConfiguration); > > Additionally the ssl-socket is connected to the following slot: > > void EchoServer::onSslErrors(const QList &){ > cout << "Ssl errors occurred" << endl; > } > > Since I still cannot connect via wss://myDomain:1234 (ws does connect > fine) I would have expected ssl-errors but this is not the case: The only > obvious fact is that it tries to connect and fails after a timeout of > several seconds. > > Any hint appreciated how to address this issue. > > Thanks in advance, > best > > Alex > > > -- > http://www.carot.de > Email : Alexander at Carot.de > Tel.: +49 (0)177 5719797 > > > > Gesendet: Freitag, 08. April 2016 um 23:27 Uhr > > Von: "Alexander Carôt" > > An: "Jason H" > > Cc: "qt qt" > > Betreff: Aw: Re: [Interest] qtWebsocket SSL question > > > > see below: > > > > Thanks a lot - this way I was able to generate the required files (I did > it according to this link: > > > > > https://developer.salesforce.com/blogs/developer-relations/2011/05/generating-valid-self-signed-certificates.html > ) > > > > However, it still does not work. The non-SSL-Websocket example works > perfectly fine on localhost and on a remote server but the SSL version > doesn't. > > > > I simply ran the server (just as the non-SSL-version) listening on port > 1234 and let the client connect via > > > > wss://localhost:1234 (or the respective remote server location) > > > > but immediately get the error message: "ERROR: undefined > > DISCONNECTED" > > > > Is there any chance to further track down the connect process in order > to figure why it actually doen't - or further hints ? > > > > Thanks ! > > > > Alex > > > > -- > > http://www.carot.de > > Email : Alexander at Carot.de > > Tel.: +49 (0)177 5719797 > > > > > > > Gesendet: Freitag, 08. April 2016 um 17:54 Uhr > > > Von: "Jason H" > > > An: "Alexander Carôt" > > > Cc: "qt qt" > > > Betreff: Re: [Interest] qtWebsocket SSL question > > > > > > Use openssl's cert generation features. > > > > > > > Sent: Friday, April 08, 2016 at 11:24 AM > > > > From: "Alexander Carôt" > > > > To: "qt qt" > > > > Subject: [Interest] qtWebsocket SSL question > > > > > > > > Hello all, > > > > > > > > I just started investigating websockets with Qt and now have a > question regarding this example: > > > > > > > > http://doc.qt.io/qt-5/qtwebsockets-sslechoserver-example.html > > > > > > > > I compiled it but encountered the issue of missing files: > > > > > > > > RCC: Error in 'securesocketclient.qrc': Cannot find file > 'localhost.cert' > > > > make: *** [qrc_securesocketclient.cpp] Error 1 > > > > > > > > In securesocketclient.qrc the following files are required: > > > > > > > > > > > > > > > > localhost.cert > > > > localhost.key > > > > > > > > > > > > > > > > and I wonder how or where to generate them and since I have no > experience with security and certificates etc. I'd appreciate any comment. > > > > > > > > Thanks in advance, > > > > best > > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > -- Regards, Fan Yang -------------- next part -------------- An HTML attachment was scrubbed... URL: From sinadooru at gmail.com Thu Apr 14 08:51:26 2016 From: sinadooru at gmail.com (Sina Dogru) Date: Thu, 14 Apr 2016 09:51:26 +0300 Subject: [Interest] Qml Loader initial property setter In-Reply-To: References: <57013279.2050303@ekkes-corner.org> Message-ID: It actually seems like doable. As documented section "QVariantList and QVariantMap to JavaScript Array and Object" on the "Data Type Conversion Between QML and C++ ", "passing a QVariantList and a QVariantMap , which are automatically converted to JavaScript array and object values, repectively" So I assume it is possible to implement "initialProperties" property for QQuickLoader class, like on the commit of the old Qt days. But why no one have implemented it before, it disorienting. It might requires more knowledge then this? 2016-04-13 16:17 GMT+03:00 Jérôme Godbout : > I agree, this would be difficult to know if this should create a binding > or simply copy the current value. This is why I was proposing the function > where we could go with either = or Qt.binding() to have full control on > it. Nice to see this was there at some point, I wonder why they removed it > or never integrate it. > > On Wed, Apr 13, 2016 at 2:07 AM, Sina Dogru wrote: > >> It's sad that the imperative setSource() function can set those property >>> and the declarative way is not. >>> >> >> It would also be great but to make something a property instead of a >> function where it is much easier, then there should be a public and >> QMetaType known type.Thats why seems like hard to make it possible. >> >> 2016-04-04 16:31 GMT+03:00 Jérôme Godbout : >> >>> Thanks for pointing this out, but I was aware of that. Sometime a >>> default value is impossible (null) making bad behavior or bad binding, >>> primitive type can always have default value that make sense that way but >>> complex object don't. >>> It's sad that the imperative setSource() function can set those property >>> and the declarative way is not. >>> >>> On Sun, Apr 3, 2016 at 11:10 AM, ekke wrote: >>> >>>> if you want to refer to a property as 'model.i' and there are >>>> situations where 'model' doesn't exist always, >>>> it's easy to avoid error messages: >>>> >>>> model? model.i : 42 >>>> >>>> this way you can set a default value while model is null >>>> (haven't tried this yet with Qt 5.6 but I'm doing it this way in >>>> BlackBerry 10 Cascades) >>>> >>>> ekke >>>> >>>> Am 01.04.16 um 16:05 schrieb Jérôme Godbout: >>>> >>>> Yes, but the binding loaded object internal binding are printing error, >>>> since the object is created without the input, then the external binding >>>> are created. They will get eventually correct, but the console will be >>>> filled with error message and I try to avoid that at all cost. Here's a >>>> simple example that will complain about unable to access i and j of >>>> undefined / assign undefined to width and height (this example is a bit >>>> stupid but just a demo to show the problems with more complex model and >>>> object): >>>> >>>> // MyComponent.qml >>>> Item >>>> { >>>> property var model >>>> width: model.i >>>> height: model.j >>>> } >>>> >>>> // Main.qml >>>> MyModel >>>> { >>>> id: myModel_ >>>> property int i: 24 >>>> property int j: 12 >>>> } >>>> >>>> Loader >>>> { >>>> id: loader_ >>>> source: "MyComponent.qml" >>>> } >>>> >>>> Binding >>>> { >>>> target: loader_.item >>>> property: 'model' >>>> value: myModel_ >>>> when: loader_.status == Loader.Ready >>>> } >>>> >>>> What I would like is the Loader call QQmlComponent::beginCreate(), then >>>> having a hook to init some property then the Loader can finish the >>>> component QQmlComponent::completeCreate(). This way I was able to make it >>>> work, but having a custom component for that is a bit annoying. >>>> >>>> Loader >>>> { >>>> source: "MyComponent.qml" >>>> onInitProperty: // signal emit with component object returned by >>>> beginCreate(), >>>> { >>>> object.model = Qt.binding(function(){ return myModel_; }); >>>> ... >>>> } >>>> } >>>> >>>> That seem clean and would avoid the problems to have object into bad >>>> state for a brief moment. >>>> >>>> Jerome >>>> >>>> On Fri, Apr 1, 2016 at 12:04 AM, Shantanu Tushar >>>> wrote: >>>> >>>>> Hi, >>>>> >>>>> Have you tried using the QML Binding Type? >>>>> >>>>> http://doc.qt.io/qt-5/qml-qtqml-binding.html >>>>> >>>>> On Thu, Mar 24, 2016 at 11:11 PM, Jérôme Godbout < >>>>> jerome at bodycad.com> wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> I was wondering if I am the only one who found the initial property >>>>>> of a source based Loader Item a bit annoying. inline sourceComponent with >>>>>> Component {} declaration are well ok on the other hand. I'm explaining >>>>>> myself, when using a loader you have 2 choice to set the initial binding on >>>>>> created item: >>>>>> >>>>>> 1- On item changed set the binding >>>>>> >>>>>> *Loader* >>>>>> *{* >>>>>> * source: externalObj.getSrc() // return something like "myItem.qml"* >>>>>> * onItemChanged:* >>>>>> * {* >>>>>> * if(!item) return;* >>>>>> * item.myprop = Qt.binding(function(){ return myExternalProperty; >>>>>> })* >>>>>> * }* >>>>>> *}* >>>>>> >>>>>> 2- use the setSource() function instead of the source directly >>>>>> >>>>>> *Loader* >>>>>> *{* >>>>>> * property url myDummySrc: externalObj.getSrc()* >>>>>> * onMyDummySrcChanged:* >>>>>> * {* >>>>>> * setSource(myDummySrc, { 'myprop': Qt.binding(function(){ return >>>>>> myExternalProperty; }) });* >>>>>> * }* >>>>>> *}* >>>>>> >>>>>> This is rather annoying and ugly. Number 1 is also having the problem >>>>>> where *myItem.qml* must be able to handle *myprop *to have a default >>>>>> value or being empty without output a lots of console error. Number 2 work >>>>>> well and is the solution I find myself writing often. I was wondering if a >>>>>> Loader that support a dictionary of initial property when source changed >>>>>> would be nice: >>>>>> >>>>>> *Loader* >>>>>> *{* >>>>>> * source: externalObj.getSrc()* >>>>>> * initialProperties: { 'myprop': Qt.binding(function(){ return >>>>>> myExternalProperty; }) }* >>>>>> *}* >>>>>> >>>>>> What do you think? >>>>>> Jerome >>>>>> >>>>>> _______________________________________________ >>>>>> Interest mailing list >>>>>> Interest at qt-project.org >>>>>> http://lists.qt-project.org/mailman/listinfo/interest >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Shantanu Tushar (UTC +0530) >>>>> shantanu.io >>>>> >>>> >>>> >>>> >>>> _______________________________________________ >>>> Interest mailing listInterest at qt-project.orghttp://lists.qt-project.org/mailman/listinfo/interest >>>> >>>> >>>> >>>> _______________________________________________ >>>> Interest mailing list >>>> Interest at qt-project.org >>>> http://lists.qt-project.org/mailman/listinfo/interest >>>> >>>> >>> >>> _______________________________________________ >>> Interest mailing list >>> Interest at qt-project.org >>> http://lists.qt-project.org/mailman/listinfo/interest >>> >>> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From boud at valdyas.org Thu Apr 14 15:52:47 2016 From: boud at valdyas.org (Boudewijn Rempt) Date: Thu, 14 Apr 2016 15:52:47 +0200 (CEST) Subject: [Interest] windows hdpi support & opengl Message-ID: I'm trying to make Krita work correctly on hi-dpi windows screens like the Surface Pro 3 and 4. On OSX with Retina support, I haven't had complaints, but for Windows there's this bug: https://bugs.kde.org/show_bug.cgi?id=360541 If I enable QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); as is done in http://files.kde.org/krita/3/windows/krita3-prealpha3-de0d43d.zip Users complain that if they enable 150% or 200% display scaling both the opengl-based and the cpu, qpainter-based canvas are wrong: the image is also displayed at 150% or 200%. This is the same image at 100% zoom with scaling: http://imgur.com/shQ8iyw when the option is disabled as in http://files.kde.org/krita/3/windows/krita-2.99.89.zip All the ui elements are wrong and sometimes even the svg icons aren't scaled correctly. http://imgur.com/VqoSg59 Is there a way I can enable the hidpi scaling for the ui elements, but handle the opengl and qpainter canvas widget on my own? I'm looking at http://doc.qt.io/qt-5/highdpi.html which explains why there's no problem on OSX, with the OpenGL canvas enabled, but not how I can correctly render images on Windows. -- Boudewijn Rempt | http://www.krita.org, http://www.valdyas.org From jhihn at gmx.com Thu Apr 14 16:48:25 2016 From: jhihn at gmx.com (Jason H) Date: Thu, 14 Apr 2016 16:48:25 +0200 Subject: [Interest] AWS Device Farm? Message-ID: Is there any way to test a QML app on AWS Device Farm, or similar service? ( http://aws.amazon.com/device-farm/device-list/ ) We are getting some reports of features not working correctly, and using the device farm would allow us to know if it's a make/model issue or a user-device issue (Usually, the device is low on space, but for QA, I need at least 2 data points.) From edward.sutton at subsite.com Thu Apr 14 19:59:03 2016 From: edward.sutton at subsite.com (Edward Sutton) Date: Thu, 14 Apr 2016 17:59:03 +0000 Subject: [Interest] Android 6.0 breaks Qt Bluetooth and requires check for dangerous permissions at run time? Message-ID: <5AC6FBB9-3739-4F2D-B8BF-39DF6D9202B3@subsite.com> Adding ACCESS_COARSE_LOCATION to my AndroidManifest seemed to restore Bluetooth functionality. Does Qt 5.5 somehow take care of checking Android permissions for me? Location permissions are considered “Dangerous Permissions” and the following article states the app needs to check whether it has the permissions every time it runs. A user can deny a permission if he chooses. http://developer.android.com/intl/in/guide/topics/security/permissions.html#normal-dangerous * If the device is running Android 6.0 (API level 23) or higher, and the app's targetSdkVersion is 23 or higher, the app requests permissions from the user at run-time. The user can revoke the permissions at any time, so the app needs to check whether it has the permissions every time it runs. For more information about requesting permissions in your app, see the Working with System Permissions training guide. http://developer.android.com/intl/in/training/permissions/requesting.html Check For Permissions ________________________________ If your app needs a dangerous permission, you must check whether you have that permission every time you perform an operation that requires that permission. The user is always free to revoke the permission, so even if the app used the camera yesterday, it can't assume it still has that permission today. To check if you have a permission, call the ContextCompat.checkSelfPermission() method. For example, this snippet shows how to check if the activity has permission to write to the calendar: // Assume thisActivity is the current activity int permissionCheck = ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.WRITE_CALENDAR); If the app has the permission, the method returns PackageManager.PERMISSION_GRANTED, and the app can proceed with the operation. If the app does not have the permission, the method returns PERMISSION_DENIED, and the app has to explicitly ask the user for permission. Does Qt do the ContextCompat.checkSelfPermission? Or do I need a JNI to call this? -Ed This email and any files transmitted with it from The Charles Machine Works, Inc. are confidential and intended solely for the use of the individual or entity to which they are addressed. If you have received this email in error please notify the sender. Our company accepts no liability for the contents of this email, or for the consequences of any actions taken on the basis of the information provided, unless that information is subsequently confirmed in writing. Please note that any views or opinions presented in this email are solely those of the author and do not necessarily represent those of the company. Finally, the recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. -------------- next part -------------- An HTML attachment was scrubbed... URL: From boud at valdyas.org Thu Apr 14 20:36:30 2016 From: boud at valdyas.org (Boudewijn Rempt) Date: Thu, 14 Apr 2016 20:36:30 +0200 (CEST) Subject: [Interest] qmenu regression? Message-ID: I got this bug report https://bugs.kde.org/show_bug.cgi?id=361766 And sure enough, when I tested it, the reporter was right. The context menu actions weren't triggered. I checked, and this worked with Qt 5.4, but no longer with 5.5 or 5.6. This is the code: QMenu menu(this); QAction* action = menu.addAction(d->detached ? i18n("Attach to Toolbar") : i18n("Detach from Toolbar")); connect(action, SIGNAL(triggered()), this, SLOT(switchDetached())); menu.exec(e->globalPos()); And the switchDetached() slot isn't called anymore. Has our code always been wrong, or is this a real regression in Qt? -- Boudewijn Rempt | http://www.krita.org, http://www.valdyas.org From maitai at virtual-winds.org Thu Apr 14 21:15:35 2016 From: maitai at virtual-winds.org (maitai) Date: Thu, 14 Apr 2016 21:15:35 +0200 Subject: [Interest] jpeg 2000 Message-ID: <8743810f554d5bc4f253693fca295643@virtual-winds.org> Hello, Does anyone knows if qt jpeg2000 implementation is based on Jasper or openJpeg or something specific to qt, and if it implies extra libs? I need to decode weather gribs (stored as jpeg 2000 image in gray scale), I have several working solutions using either Jasper or others but would like to know if I stand a chance to do the same with a pure qt solution. Thanks Philippe Lelong From annulen at yandex.ru Thu Apr 14 21:21:45 2016 From: annulen at yandex.ru (Konstantin Tokarev) Date: Thu, 14 Apr 2016 22:21:45 +0300 Subject: [Interest] jpeg 2000 In-Reply-To: <8743810f554d5bc4f253693fca295643@virtual-winds.org> References: <8743810f554d5bc4f253693fca295643@virtual-winds.org> Message-ID: <3059181460661705@web25h.yandex.ru> 14.04.2016, 22:15, "maitai" : > Hello, > > Does anyone knows if qt jpeg2000 implementation is based on Jasper or > openJpeg or something specific to qt, and if it implies extra libs? I > need to decode weather gribs (stored as jpeg 2000 image in gray scale), > I have several working solutions using either Jasper or others but would > like to know if I stand a chance to do the same with a pure qt solution. There is Qt plugin based on Jasper, it is a part of qtmageformats module. However, Jasper is dead for a long time, so OpenJPEG is the only sensible long-term choice among open-source implementations. But if you need fast processing you may want to consider Kakadu (comercial). -- Regards, Konstantin From samuel.gaist at edeltech.ch Thu Apr 14 21:21:56 2016 From: samuel.gaist at edeltech.ch (Samuel Gaist) Date: Thu, 14 Apr 2016 21:21:56 +0200 Subject: [Interest] jpeg 2000 In-Reply-To: <8743810f554d5bc4f253693fca295643@virtual-winds.org> References: <8743810f554d5bc4f253693fca295643@virtual-winds.org> Message-ID: <37A63B0D-1842-494F-A000-0A09DBCADF7E@edeltech.ch> On 14 avr. 2016, at 21:15, maitai wrote: > Hello, > > Does anyone knows if qt jpeg2000 implementation is based on Jasper or openJpeg or something specific to qt, and if it implies extra libs? I need to decode weather gribs (stored as jpeg 2000 image in gray scale), I have several working solutions using either Jasper or others but would like to know if I stand a chance to do the same with a pure qt solution. > > Thanks > Philippe Lelong Hi, The plugin uses Jasper. You can get more information from the qtimageformats module: http://code.qt.io/cgit/qt/qtimageformats.git/ Samuel -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 801 bytes Desc: Message signed with OpenPGP using GPGMail URL: From scott at towel42.com Thu Apr 14 21:26:29 2016 From: scott at towel42.com (Scott Aron Bloom) Date: Thu, 14 Apr 2016 19:26:29 +0000 Subject: [Interest] qmenu regression? In-Reply-To: References: Message-ID: I have always used connect( action, SIGNAL( triggered( bool ) ) You may want to try that, it could be something changed in the connect macro, when the signal has a default for the parameter... Scott -----Original Message----- From: Interest [mailto:interest-bounces+scott.bloom=onshorecs.com at qt-project.org] On Behalf Of Boudewijn Rempt Sent: Thursday, April 14, 2016 11:37 AM To: interest at qt-project.org Subject: [Interest] qmenu regression? I got this bug report https://bugs.kde.org/show_bug.cgi?id=361766 And sure enough, when I tested it, the reporter was right. The context menu actions weren't triggered. I checked, and this worked with Qt 5.4, but no longer with 5.5 or 5.6. This is the code: QMenu menu(this); QAction* action = menu.addAction(d->detached ? i18n("Attach to Toolbar") : i18n("Detach from Toolbar")); connect(action, SIGNAL(triggered()), this, SLOT(switchDetached())); menu.exec(e->globalPos()); And the switchDetached() slot isn't called anymore. Has our code always been wrong, or is this a real regression in Qt? -- Boudewijn Rempt | http://www.krita.org, http://www.valdyas.org _______________________________________________ Interest mailing list Interest at qt-project.org http://lists.qt-project.org/mailman/listinfo/interest From dangelog at gmail.com Thu Apr 14 22:02:38 2016 From: dangelog at gmail.com (Giuseppe D'Angelo) Date: Thu, 14 Apr 2016 22:02:38 +0200 Subject: [Interest] qmenu regression? In-Reply-To: References: Message-ID: On Thu, Apr 14, 2016 at 8:36 PM, Boudewijn Rempt wrote: > I got this bug report > > https://bugs.kde.org/show_bug.cgi?id=361766 > > And sure enough, when I tested it, the reporter was right. The context menu > actions weren't triggered. I checked, and this worked > with Qt 5.4, but no longer with 5.5 or 5.6. > > This is the code: > > QMenu menu(this); > QAction* action = menu.addAction(d->detached ? i18n("Attach to Toolbar") > : i18n("Detach from Toolbar")); > connect(action, SIGNAL(triggered()), this, SLOT(switchDetached())); > menu.exec(e->globalPos()); > > And the switchDetached() slot isn't called anymore. Has our code > always been wrong, or is this a real regression in Qt? Could you please create a _complete_ testcase and submit it to the bugtraq? Otherwise it will get forgotten... Thank you, -- Giuseppe D'Angelo From boud at valdyas.org Thu Apr 14 22:07:37 2016 From: boud at valdyas.org (Boudewijn Rempt) Date: Thu, 14 Apr 2016 22:07:37 +0200 (CEST) Subject: [Interest] qmenu regression? In-Reply-To: References: Message-ID: On Thu, 14 Apr 2016, Giuseppe D'Angelo wrote: > Could you please create a _complete_ testcase and submit it to the > bugtraq? Otherwise it will get forgotten... I don't know whether I can manage that -- I just sent out this mail to see whether it would jog anybody's memory. Someone might remember having reported this bug... But I'll give it a try. -- Boudewijn Rempt | http://www.krita.org, http://www.valdyas.org From maitai at virtual-winds.org Fri Apr 15 10:33:09 2016 From: maitai at virtual-winds.org (maitai) Date: Fri, 15 Apr 2016 10:33:09 +0200 Subject: [Interest] jpeg 2000 In-Reply-To: <3059181460661705@web25h.yandex.ru> References: <8743810f554d5bc4f253693fca295643@virtual-winds.org> <3059181460661705@web25h.yandex.ru> Message-ID: <6590a7b62e18b6de88734186f8f78aa4@virtual-winds.org> Ok, thanks. I was hopping qt was not based on Jasper... Le 14-04-2016 21:21, Konstantin Tokarev a écrit : > 14.04.2016, 22:15, "maitai" : >> Hello, >> >> Does anyone knows if qt jpeg2000 implementation is based on Jasper or >> openJpeg or something specific to qt, and if it implies extra libs? I >> need to decode weather gribs (stored as jpeg 2000 image in gray >> scale), >> I have several working solutions using either Jasper or others but >> would >> like to know if I stand a chance to do the same with a pure qt >> solution. > > There is Qt plugin based on Jasper, it is a part of qtmageformats > module. > > However, Jasper is dead for a long time, so OpenJPEG is the only > sensible long-term choice among open-source implementations. But if > you need fast processing you may want to consider Kakadu (comercial). From Ingo_Schiller at raykiel.com Fri Apr 15 11:10:05 2016 From: Ingo_Schiller at raykiel.com (Ingo Schiller) Date: Fri, 15 Apr 2016 11:10:05 +0200 Subject: [Interest] C++ to QML export: "Cannot assign object to list" Message-ID: Dear all, I am currently moving from Qt4.8,1 to Qt5.5.0 and I am facing a serious problem with the elements I am exporting from C++ to QML. It (still) uses the old way using QDeclarativeItem to export the UI elements to QML. At the moment I can't use QtQuick2 because part of the application heavily relies on QGraphicsView and worse: QGraphicsScene. So I still have to stick with the QDeclarative stuff which should still work with Qt5.5. I am doing everything as with Qt4.8.1 that is: creating the UI elements as QDeclarativeItems in C++ and register them in QML with qmlRegisterType< >. Everything is compiled nicely and the import statement in the QML files don't show errors. I can start the application and all pure qml elements are rendered and do what they are supposed to do. BUT: The elements exported from C++ can not be created. It is always states that "Cannot assign object to list" in the line in which such an element is created. I found a blog entry from Lewis Manor ( http://lewismanor.blogspot.de/2015/01/qquickitem-cannot-assign-object-to-list.html ) in which he describes the same error message and found that a qRegisterMetaData("foo") destroyed the MetaSystem. So I searched for any similar error but could not find one. I even disabled all qRegisterMetaData and qmlRegisterType stuff except the one element I want to create. Still the same issue. Can anyone help please?? Regards, Ingo -------------- next part -------------- An HTML attachment was scrubbed... URL: From jeanmichael.celerier at gmail.com Fri Apr 15 12:05:37 2016 From: jeanmichael.celerier at gmail.com (=?UTF-8?Q?Jean=2DMicha=C3=ABl_Celerier?=) Date: Fri, 15 Apr 2016 12:05:37 +0200 Subject: [Interest] Migration path from QGraphicsScene to QtQuick2 Message-ID: Inspired by Ingo Schiller's problem, I am wondering if there is a "common" or known pattern to enable migration from QPainter / QGraphicsItem objects to QtQuick 2 ? I have a big scene with items all drawn by hand : https://github.com/OSSIA/i-score/blob/master/Documentation/iscore.png?raw=true Should I reimplement QSGNode or stuff like this ? Will I have better performance ? Are all nifty features (rubber band, contxt menu, etc...) supported in QtQuick or does stuff need redoing ? Best, Jean-Michaël Celerier -------------- next part -------------- An HTML attachment was scrubbed... URL: From nunosantos at imaginando.pt Fri Apr 15 12:15:36 2016 From: nunosantos at imaginando.pt (Nuno Santos) Date: Fri, 15 Apr 2016 11:15:36 +0100 Subject: [Interest] Migration path from QGraphicsScene to QtQuick2 In-Reply-To: References: Message-ID: <6E655979-FDFA-4ACE-9E06-BB1A4EDBB231@imaginando.pt> Jean, I think you can extend QQuickItem and override the paint method and keep using the exact same code for painting your items. Nuno > On 15 Apr 2016, at 11:05, Jean-Michaël Celerier wrote: > > Inspired by Ingo Schiller's problem, I am wondering if there is a "common" or known pattern to enable migration from QPainter / QGraphicsItem objects to QtQuick 2 ? > > I have a big scene with items all drawn by hand : https://github.com/OSSIA/i-score/blob/master/Documentation/iscore.png?raw=true > > Should I reimplement QSGNode or stuff like this ? Will I have better performance ? Are all nifty features (rubber band, contxt menu, etc...) supported in QtQuick or does stuff need redoing ? > > > Best, > Jean-Michaël Celerier > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -------------- next part -------------- An HTML attachment was scrubbed... URL: From igor.mironchik at gmail.com Fri Apr 15 12:15:53 2016 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Fri, 15 Apr 2016 13:15:53 +0300 Subject: [Interest] Migration path from QGraphicsScene to QtQuick2 In-Reply-To: References: Message-ID: <5710BF59.4020007@gmail.com> Hi, Can I ask you why you need to migrate from QGraphicsScene to QtQuick? On 15.04.2016 13:05, Jean-Michaël Celerier wrote: > Inspired by Ingo Schiller's problem, I am wondering if there is a > "common" or known pattern to enable migration from QPainter / > QGraphicsItem objects to QtQuick 2 ? > > I have a big scene with items all drawn by hand : > https://github.com/OSSIA/i-score/blob/master/Documentation/iscore.png?raw=true > > Should I reimplement QSGNode or stuff like this ? Will I have better > performance ? Are all nifty features (rubber band, contxt menu, > etc...) supported in QtQuick or does stuff need redoing ? > > > Best, > Jean-Michaël Celerier > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -------------- next part -------------- An HTML attachment was scrubbed... URL: From jeanmichael.celerier at gmail.com Fri Apr 15 14:57:29 2016 From: jeanmichael.celerier at gmail.com (=?UTF-8?Q?Jean=2DMicha=C3=ABl_Celerier?=) Date: Fri, 15 Apr 2016 14:57:29 +0200 Subject: [Interest] Migration path from QGraphicsScene to QtQuick2 In-Reply-To: <5710BF59.4020007@gmail.com> References: <5710BF59.4020007@gmail.com> Message-ID: On Fri, Apr 15, 2016 at 12:15 PM, Igor Mironchik wrote: > > > Can I ask you why you need to migrate from QGraphicsScene to QtQuick? Hi, I like the scene graph rendering being done in another thread, and more importantly I wish to provide the ability to write plug-ins in QML for my software, which is much easier than C++ for the end-user. I'll try overriding QQuickItem but what I am not able to grasp is how everything is supposed to happen in term of scene management. Can I just keep the same parent - children relationship ? Do transforms work the same ? For instance I don't see boundingRect in QQuickItem and many of the "more graphical" functions seems to be split between QQuickItem and various QSGNode[...]. Best, Jean-Michaël -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander_carot at gmx.net Fri Apr 15 15:12:39 2016 From: alexander_carot at gmx.net (=?UTF-8?Q?=22Alexander_Car=C3=B4t=22?=) Date: Fri, 15 Apr 2016 15:12:39 +0200 Subject: [Interest] qtWebsocket SSL question In-Reply-To: References: , Message-ID: An HTML attachment was scrubbed... URL: From igor.mironchik at gmail.com Fri Apr 15 15:29:41 2016 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Fri, 15 Apr 2016 16:29:41 +0300 Subject: [Interest] Migration path from QGraphicsScene to QtQuick2 In-Reply-To: References: <5710BF59.4020007@gmail.com> Message-ID: <5710ECC5.7000608@gmail.com> On 15.04.2016 15:57, Jean-Michaël Celerier wrote: > > On Fri, Apr 15, 2016 at 12:15 PM, Igor Mironchik > > wrote: > > > > Can I ask you why you need to migrate from QGraphicsScene to QtQuick? > > > Hi, > > I like the scene graph rendering being done in another thread, and > more importantly > I wish to provide the ability to write plug-ins in QML for my > software, which is > much easier than C++ for the end-user. > > I'll try overriding QQuickItem but what I am not able to grasp is how > everything is supposed to happen in > term of scene management. > Can I just keep the same parent - children relationship ? I think so. > Do transforms work the same ? > For instance I don't see boundingRect in QQuickItem and many of the > "more graphical" > functions seems to be split between QQuickItem and various QSGNode[...]. All visual QML items are rendered using the scene graph, a low-level, high-performance rendering stack, closely tied to OpenGL. It is possible for subclasses ofQQuickItem to add their own custom content into the scene graph by setting theQQuickItem::ItemHasContents flag and reimplementing theQQuickItem::updatePaintNode () function. *Warning:*It is crucial that OpenGL operations and interaction with the scene graph happens exclusively on the rendering thread, primarily during theupdatePaintNode () call. The best rule of thumb is to only use classes with the "QSG" prefix inside theQQuickItem::updatePaintNode () function. *Note:*All classes with QSG prefix should be used solely on the scene graph's rendering thread. SeeScene Graph and Rendering for more information. -------------- next part -------------- An HTML attachment was scrubbed... URL: From imikejackson at gmail.com Fri Apr 15 15:31:15 2016 From: imikejackson at gmail.com (Mike Jackson) Date: Fri, 15 Apr 2016 09:31:15 -0400 Subject: [Interest] QtIFW: Can not process @TargetDir@ that contain windows paths Message-ID: <5710ED23.4080401@gmail.com> I am trying to run a post install script from a QtIFW generated installer. In it I need to work with a Windows path of the form "C:\DREAM3D_SDK/Qt5.6.0" in order to pass the path into the Qt5.6.0 online installer so that the version of Qt gets installed into the proper location on the users system. The issue is that JavaScript will remove the "\" character because JS thinks that it starts an escape sequence. For example some code: var Path= "@TargetDir@/Qt5.6.0"; // TargetDir = C:\DREAM3D_SDK var replaced = Path.replace(/\\/g, "/"); // replaced = C:DREAM3D_SDK/Qt5.6.0 The only solution I have found is to use String.raw`` BUT the version of JS that QtIFW uses does not support that function. Is there some way of getting @TargetDir@ to hand back either "\\" style or "/" style paths? Thanks Mike Jackson BlueQuartz Software. From ramitix at yahoo.com Sat Apr 16 18:00:45 2016 From: ramitix at yahoo.com (Ramy Atalla) Date: Sat, 16 Apr 2016 16:00:45 +0000 (UTC) Subject: [Interest] QT3D Light,transparent phongMaterial References: <743358439.1720327.1460822445479.JavaMail.yahoo.ref@mail.yahoo.com> Message-ID: <743358439.1720327.1460822445479.JavaMail.yahoo@mail.yahoo.com> HelloThere is different kinds of lights (Spot,Point,Directional,etc) in QT3D with no documentation which makes it hard to integrate and use , I am trying to make a car headlight with fogy rays and taillight effect.Any examples on how to do it as trial and error takes tremendous time.I tried using this code however the result was effecting the main scene light DirectionalLight{ id:headlight_light color: "light yellow" enabled:true direction: Qt.vector3d( -1.135, 0.763, 2.285 ) } Entity { Mesh { id: headlight1 source: "rightHeadlight.obj" } PhongMaterial { id: phongMaterial5 // ambient: Qt.rgba ( 0.1 , 0.1 , 0.1 , 1 ) diffuse: "yellow" // specular:Qt.rgba ( 0.1 , 0.1 , 0.1 , 1 ) shininess: 1.2 } components: [ headlight1,phongMaterial5,headlight_light ] } -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Screen Shot 2016-04-16 at 11.51.39 AM.png Type: image/png Size: 134182 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Screen Shot 2016-04-16 at 12.00.15 PM.png Type: image/png Size: 58032 bytes Desc: not available URL: From neil+qt at copycopy.cc Sat Apr 16 18:13:11 2016 From: neil+qt at copycopy.cc (Neil Williams) Date: Sat, 16 Apr 2016 17:13:11 +0100 Subject: [Interest] qtWebsocket SSL question In-Reply-To: References: Message-ID: Not sure on your platform but we had some problems running a websocket server on Mac non-openssl build due to the QNetwork's Secure Transport based implementation not supporting pkcs8 keys, the full certificate chain (ca-bundle) was required to be present too, which wasn't on Windows using openssl iirc. Use isNull after construction of QSslKey & QSslCertificate to see if your key/cert is loading successfully. Anyway, we switched to using openssl and things went smoother. Also, not sure on what your websocket client is but if using a browser, there are things to be aware of when doing connectioned to localhost websocket servers: https://bugs.chromium.org/p/chromium/issues/detail?id=378566 On Wed, Apr 13, 2016 at 7:59 PM, "Alexander Carôt" wrote: > Hello, > > with respect to my last question I realized that the only SSL-related part > within the ssl-Websocket-ssl-server occurs right in the constructor: > > QSslConfiguration sslConfiguration; > QFile certFile(QStringLiteral(":/server.crt")); > QFile keyFile(QStringLiteral(":/server.key")); > certFile.open(QIODevice::ReadOnly); > keyFile.open(QIODevice::ReadOnly); > > QSslCertificate certificate(&certFile, QSsl::Pem); > QSslKey sslKey(&keyFile, QSsl::Rsa, QSsl::Pem); > certFile.close(); > keyFile.close(); > > sslConfiguration.setPeerVerifyMode(QSslSocket::VerifyNone); > sslConfiguration.setLocalCertificate(certificate); > sslConfiguration.setPrivateKey(sslKey); > sslConfiguration.setProtocol(QSsl::TlsV1SslV3); > m_pWebSocketServer->setSslConfiguration(sslConfiguration); > > Additionally the ssl-socket is connected to the following slot: > > void EchoServer::onSslErrors(const QList &){ > cout << "Ssl errors occurred" << endl; > } > > Since I still cannot connect via wss://myDomain:1234 (ws does connect > fine) I would have expected ssl-errors but this is not the case: The only > obvious fact is that it tries to connect and fails after a timeout of > several seconds. > > Any hint appreciated how to address this issue. > > Thanks in advance, > best > > Alex > > > -- > http://www.carot.de > Email : Alexander at Carot.de > Tel.: +49 (0)177 5719797 > > > > Gesendet: Freitag, 08. April 2016 um 23:27 Uhr > > Von: "Alexander Carôt" > > An: "Jason H" > > Cc: "qt qt" > > Betreff: Aw: Re: [Interest] qtWebsocket SSL question > > > > see below: > > > > Thanks a lot - this way I was able to generate the required files (I did > it according to this link: > > > > > https://developer.salesforce.com/blogs/developer-relations/2011/05/generating-valid-self-signed-certificates.html > ) > > > > However, it still does not work. The non-SSL-Websocket example works > perfectly fine on localhost and on a remote server but the SSL version > doesn't. > > > > I simply ran the server (just as the non-SSL-version) listening on port > 1234 and let the client connect via > > > > wss://localhost:1234 (or the respective remote server location) > > > > but immediately get the error message: "ERROR: undefined > > DISCONNECTED" > > > > Is there any chance to further track down the connect process in order > to figure why it actually doen't - or further hints ? > > > > Thanks ! > > > > Alex > > > > -- > > http://www.carot.de > > Email : Alexander at Carot.de > > Tel.: +49 (0)177 5719797 > > > > > > > Gesendet: Freitag, 08. April 2016 um 17:54 Uhr > > > Von: "Jason H" > > > An: "Alexander Carôt" > > > Cc: "qt qt" > > > Betreff: Re: [Interest] qtWebsocket SSL question > > > > > > Use openssl's cert generation features. > > > > > > > Sent: Friday, April 08, 2016 at 11:24 AM > > > > From: "Alexander Carôt" > > > > To: "qt qt" > > > > Subject: [Interest] qtWebsocket SSL question > > > > > > > > Hello all, > > > > > > > > I just started investigating websockets with Qt and now have a > question regarding this example: > > > > > > > > http://doc.qt.io/qt-5/qtwebsockets-sslechoserver-example.html > > > > > > > > I compiled it but encountered the issue of missing files: > > > > > > > > RCC: Error in 'securesocketclient.qrc': Cannot find file > 'localhost.cert' > > > > make: *** [qrc_securesocketclient.cpp] Error 1 > > > > > > > > In securesocketclient.qrc the following files are required: > > > > > > > > > > > > > > > > localhost.cert > > > > localhost.key > > > > > > > > > > > > > > > > and I wonder how or where to generate them and since I have no > experience with security and certificates etc. I'd appreciate any comment. > > > > > > > > Thanks in advance, > > > > best > > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > -------------- next part -------------- An HTML attachment was scrubbed... URL: From asmaloney at gmail.com Mon Apr 18 05:46:10 2016 From: asmaloney at gmail.com (Andy) Date: Sun, 17 Apr 2016 23:46:10 -0400 Subject: [Interest] [Qt3D] Render to video Message-ID: Goal: generate video with a user-specified resolution, frame rate, & container/codec format from an animation in my Qt3D window (Disclaimer: I've never worked with video files before!) As far as I can tell, Qt doesn't provide a way to generate video files directly, so I think I have to write a series of QImages to disk and use them to generate a video using ffmpeg. This seems like it will take a large amount of disk space, be pretty heavy on the I/O, and generally be slow. Are there better solutions? If I need to do it that way though, I must generate QImages from my existing Qt3DCore::QAspectEngine in my QWindow-derived class. I don't see a clear/elegant way to do this. I think I need to create an offscreen surface? window? with the correct resolution and then somehow render & animate my scene to it, saving snapshots as I move the camera. (I am already using QAbstractAnimation to move the camera, so I would use it to grab the snapshots as well.) Can I use the same root entity in multiple QAspectEngines? (i.e. setRootEntity() to my root entity in the new offscreen and tell it to render.) Has anyone done this before? Is this even close to the right approach? (I'm using straight C++ - no QML.) Thanks! --- Andy Maloney // https://asmaloney.com twitter ~ @asmaloney -------------- next part -------------- An HTML attachment was scrubbed... URL: From bo at vikingsoft.eu Mon Apr 18 08:51:45 2016 From: bo at vikingsoft.eu (Bo Thorsen) Date: Mon, 18 Apr 2016 08:51:45 +0200 Subject: [Interest] [Qt3D] Render to video In-Reply-To: References: Message-ID: <57148401.8040606@vikingsoft.eu> Den 18-04-2016 kl. 05:46 skrev Andy: > Goal: generate video with a user-specified resolution, frame rate, & > container/codec format from an animation in my Qt3D window > > (Disclaimer: I've never worked with video files before!) > > As far as I can tell, Qt doesn't provide a way to generate video files > directly, so I think I have to write a series of QImages to disk and use > them to generate a video using ffmpeg. This seems like it will take a > large amount of disk space, be pretty heavy on the I/O, and generally be > slow. Are there better solutions? > > If I need to do it that way though, I must generate QImages from my > existing Qt3DCore::QAspectEngine in my QWindow-derived class. I don't > see a clear/elegant way to do this. > > I think I need to create an offscreen surface? window? with the correct > resolution and then somehow render & animate my scene to it, saving > snapshots as I move the camera. (I am already using QAbstractAnimation > to move the camera, so I would use it to grab the snapshots as well.) > Can I use the same root entity in multiple QAspectEngines? (i.e. > setRootEntity() to my root entity in the new offscreen and tell it to > render.) > > Has anyone done this before? Is this even close to the right approach? > > (I'm using straight C++ - no QML.) Why do you want to do this in Qt when you can do it with applications like Camtasia? If you do want to follow this, the first part is to just generate screenshots. There's an example app in Qt that does this: http://doc.qt.io/qt-5/qtwidgets-desktop-screenshot-example.html. Second, find one of the libraries that does video encoding and use your screenshots there. Shouldn't be too hard, but you might have to convert the pixels manually to the video library format, so it could be quite slow. Bo Thorsen, Director, Viking Software. -- Viking Software Qt and C++ developers for hire http://www.vikingsoft.eu From harald.vistnes at gmail.com Mon Apr 18 09:26:54 2016 From: harald.vistnes at gmail.com (Harald Vistnes) Date: Mon, 18 Apr 2016 09:26:54 +0200 Subject: [Interest] [Qt3D] Render to video In-Reply-To: References: Message-ID: Hi Andy, An alternative is to use the FFMPEG encoding library instead of the command line tools. Then you can pass each frame to the video encoder as you generate it without writing them all to disk first. The natural way to generate the QImages would be to render to an offscreen surface of the desired resolution, and then pass each frame to the video encoder. Unfortunately, reading back the content of offscreen surfaces is missing in Qt3D. According to these it will not come before 5.8. https://bugreports.qt.io/browse/QTBUG-52136 https://bugreports.qt.io/browse/QTBUG-52074 So AFAIK we just have to wait with generating images and videos with Qt3D. Cheers, Harald 2016-04-18 5:46 GMT+02:00 Andy : > Goal: generate video with a user-specified resolution, frame rate, & > container/codec format from an animation in my Qt3D window > > (Disclaimer: I've never worked with video files before!) > > As far as I can tell, Qt doesn't provide a way to generate video files > directly, so I think I have to write a series of QImages to disk and use > them to generate a video using ffmpeg. This seems like it will take a > large amount of disk space, be pretty heavy on the I/O, and generally be > slow. Are there better solutions? > > If I need to do it that way though, I must generate QImages from my > existing Qt3DCore::QAspectEngine in my QWindow-derived class. I don't see > a clear/elegant way to do this. > > I think I need to create an offscreen surface? window? with the correct > resolution and then somehow render & animate my scene to it, saving > snapshots as I move the camera. (I am already using QAbstractAnimation to > move the camera, so I would use it to grab the snapshots as well.) Can I > use the same root entity in multiple QAspectEngines? (i.e. setRootEntity() > to my root entity in the new offscreen and tell it to render.) > > Has anyone done this before? Is this even close to the right approach? > > (I'm using straight C++ - no QML.) > > Thanks! > > --- > Andy Maloney // https://asmaloney.com > twitter ~ @asmaloney > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From asmaloney at gmail.com Mon Apr 18 14:31:48 2016 From: asmaloney at gmail.com (Andy) Date: Mon, 18 Apr 2016 08:31:48 -0400 Subject: [Interest] [Qt3D] Render to video In-Reply-To: <57148401.8040606@vikingsoft.eu> References: <57148401.8040606@vikingsoft.eu> Message-ID: On Mon, Apr 18, 2016 at 2:51 AM, Bo Thorsen wrote: > Den 18-04-2016 kl. 05:46 skrev Andy: > >> Goal: generate video with a user-specified resolution, frame rate, & >> container/codec format from an animation in my Qt3D window >> >> (Disclaimer: I've never worked with video files before!) >> >> As far as I can tell, Qt doesn't provide a way to generate video files >> directly, so I think I have to write a series of QImages to disk and use >> them to generate a video using ffmpeg. This seems like it will take a >> large amount of disk space, be pretty heavy on the I/O, and generally be >> slow. Are there better solutions? >> >> If I need to do it that way though, I must generate QImages from my >> existing Qt3DCore::QAspectEngine in my QWindow-derived class. I don't >> see a clear/elegant way to do this. >> >> I think I need to create an offscreen surface? window? with the correct >> resolution and then somehow render & animate my scene to it, saving >> snapshots as I move the camera. (I am already using QAbstractAnimation >> to move the camera, so I would use it to grab the snapshots as well.) >> Can I use the same root entity in multiple QAspectEngines? (i.e. >> setRootEntity() to my root entity in the new offscreen and tell it to >> render.) >> >> Has anyone done this before? Is this even close to the right approach? >> >> (I'm using straight C++ - no QML.) >> > > Why do you want to do this in Qt when you can do it with applications like > Camtasia? > Because I want to generate video from the Qt3D scene in my application? I don't understand the question. > If you do want to follow this, the first part is to just generate > screenshots. There's an example app in Qt that does this: > http://doc.qt.io/qt-5/qtwidgets-desktop-screenshot-example.html. > I know I can save a widget as an image, but as I said, I need a user-specified resolution and I need to get the info from the existing Qt3D scene. Offscreen seems like the logical solution. I could (maybe) duplicate the whole scene in an invisible widget and get images from that, but that seems like a hack. > > Second, find one of the libraries that does video encoding and use your > screenshots there. > > Shouldn't be too hard, but you might have to convert the pixels manually > to the video library format, so it could be quite slow. > > Bo Thorsen, > Director, Viking Software. > > -- > Viking Software > Qt and C++ developers for hire > http://www.vikingsoft.eu > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > --- Andy Maloney // https://asmaloney.com twitter ~ @asmaloney -------------- next part -------------- An HTML attachment was scrubbed... URL: From geiseri at geekcentral.pub Mon Apr 18 14:36:29 2016 From: geiseri at geekcentral.pub (Ian Geiser) Date: Mon, 18 Apr 2016 08:36:29 -0400 Subject: [Interest] Replacement for Qt Script Message-ID: <154295f42cb.ba0c169812466.4273668350241725627@geekcentral.pub> Greetings, I have used QtScript in a non-gui application before to write plugins for the application. This was really slick and worked well. I am working on a new application and wish again to use QtScript in a non-gui context. I am given the impression QtScript is deprecated and it is to be replaced with QML. My question is can you use QML in a non-gui context? Or should I just stick with QtScript and take the risk there? Thanks! From asmaloney at gmail.com Mon Apr 18 14:38:21 2016 From: asmaloney at gmail.com (Andy) Date: Mon, 18 Apr 2016 08:38:21 -0400 Subject: [Interest] [Qt3D] Render to video In-Reply-To: References: Message-ID: On Mon, Apr 18, 2016 at 3:26 AM, Harald Vistnes wrote: > Hi Andy, > > An alternative is to use the FFMPEG encoding library instead of the > command line tools. Then you can pass each frame to the video encoder as > you generate it without writing them all to disk first. > This is non-GPL software, so I can't use the lib directly (I should have mentioned that). I haven't found a BSD or MIT lib that encodes the common formats - is anyone aware of one? > > The natural way to generate the QImages would be to render to an offscreen > surface of the desired resolution, and then pass each frame to the video > encoder. > Great - so I'm on the right track! > Unfortunately, reading back the content of offscreen surfaces is missing > in Qt3D. According to these it will not come before 5.8. > > https://bugreports.qt.io/browse/QTBUG-52136 > https://bugreports.qt.io/browse/QTBUG-52074 > > So AFAIK we just have to wait with generating images and videos with Qt3D. > Thanks Harald. Your report is exactly what I'm looking for... That's unfortunate though - a real showstopper. > > Cheers, > Harald > > > 2016-04-18 5:46 GMT+02:00 Andy : > >> Goal: generate video with a user-specified resolution, frame rate, & >> container/codec format from an animation in my Qt3D window >> >> (Disclaimer: I've never worked with video files before!) >> >> As far as I can tell, Qt doesn't provide a way to generate video files >> directly, so I think I have to write a series of QImages to disk and use >> them to generate a video using ffmpeg. This seems like it will take a >> large amount of disk space, be pretty heavy on the I/O, and generally be >> slow. Are there better solutions? >> >> If I need to do it that way though, I must generate QImages from my >> existing Qt3DCore::QAspectEngine in my QWindow-derived class. I don't see >> a clear/elegant way to do this. >> >> I think I need to create an offscreen surface? window? with the correct >> resolution and then somehow render & animate my scene to it, saving >> snapshots as I move the camera. (I am already using QAbstractAnimation to >> move the camera, so I would use it to grab the snapshots as well.) Can I >> use the same root entity in multiple QAspectEngines? (i.e. setRootEntity() >> to my root entity in the new offscreen and tell it to render.) >> >> Has anyone done this before? Is this even close to the right approach? >> >> (I'm using straight C++ - no QML.) >> >> Thanks! >> >> --- >> Andy Maloney // https://asmaloney.com >> twitter ~ @asmaloney >> >> >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest >> >> > --- Andy Maloney // https://asmaloney.com twitter ~ @asmaloney -------------- next part -------------- An HTML attachment was scrubbed... URL: From sue at sf.mpg.de Mon Apr 18 14:57:05 2016 From: sue at sf.mpg.de (=?utf-8?Q?Michael_Su=C3=A9?=) Date: Mon, 18 Apr 2016 14:57:05 +0200 Subject: [Interest] [Qt3D] Render to video In-Reply-To: References: Message-ID: <024801d19971$d23703b0$76a50b10$@sf.mpg.de> Hi, You may be able to use ffmpeg (the program not the library) via pipe as described in the "writing section" here: http://zulko.github.io/blog/2013/09/27/read-and-write-video-frames-in-python-using-ffmpeg/ They use Python but it should work with C++ as well, I assume. And using the program should be possible even for non-GPL software. Best, Michael. From ola at silentwings.no Mon Apr 18 15:01:31 2016 From: ola at silentwings.no (=?UTF-8?Q?Ola_R=C3=B8er_Thorsen?=) Date: Mon, 18 Apr 2016 15:01:31 +0200 Subject: [Interest] [Qt3D] Render to video In-Reply-To: References: Message-ID: 2016-04-18 14:38 GMT+02:00 Andy : > On Mon, Apr 18, 2016 at 3:26 AM, Harald Vistnes > wrote: > >> Hi Andy, >> >> An alternative is to use the FFMPEG encoding library instead of the >> command line tools. Then you can pass each frame to the video encoder as >> you generate it without writing them all to disk first. >> > > This is non-GPL software, so I can't use the lib directly (I should have > mentioned that). I haven't found a BSD or MIT lib that encodes the common > formats - is anyone aware of one? > I've written an application using Qt Quick that exports mp4 video files from OpenGL content, but not involving Qt3D. I render my scene into a FBO, grab the contents of the FBO into CPU memory, encode using OpenH264, and put the resulting h264 stream into in a mp4 container. OpenH264 has a BSD license: http://www.openh264.org/ Mp4v2 uses the Mozilla license, https://code.google.com/archive/p/mp4v2/ (not sure if this is the proper homepage anymore) Cheers, Ola -------------- next part -------------- An HTML attachment was scrubbed... URL: From asmaloney at gmail.com Mon Apr 18 15:02:33 2016 From: asmaloney at gmail.com (Andy) Date: Mon, 18 Apr 2016 09:02:33 -0400 Subject: [Interest] [Qt3D] Render to video In-Reply-To: <024801d19971$d23703b0$76a50b10$@sf.mpg.de> References: <024801d19971$d23703b0$76a50b10$@sf.mpg.de> Message-ID: On Mon, Apr 18, 2016 at 8:57 AM, Michael Sué wrote: > Hi, > > You may be able to use ffmpeg (the program not the library) via pipe as > described in the "writing section" here: > > > http://zulko.github.io/blog/2013/09/27/read-and-write-video-frames-in-python-using-ffmpeg/ > > They use Python but it should work with C++ as well, I assume. And using > the program should be possible even for non-GPL software. > That's a good idea - thanks Michael. Should be pretty easy to do (at least on the Mac - Windows...). > Best, Michael. > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > --- Andy Maloney // https://asmaloney.com twitter ~ @asmaloney -------------- next part -------------- An HTML attachment was scrubbed... URL: From sean.harmer at kdab.com Mon Apr 18 15:05:48 2016 From: sean.harmer at kdab.com (Sean Harmer) Date: Mon, 18 Apr 2016 14:05:48 +0100 Subject: [Interest] [Qt3D] Render to video In-Reply-To: References: Message-ID: <23193934.RM35jxpBOk@cartman> Hi, I think it's possible, although it's not an out of the box feature yet, as Harald pointed out. Have a look into this kind of approach: * Implement something similar to the Scene3DItem that allows to embed Qt 3D into a Qt Quick 2 scene * This requires using a little bit of private (for now) API to feed the Qt 3D renderer your own OpenGL context and to ask it to render when needed. * Use an FBO (as the Scene3D item does) as the render target - take care to tell the framegraph the size of this "external" render target. * Then, once the scene is rendered on your custom context, either: a) use glReadPixels to grab the contents of the texture you attached to the FBO and pass it to a software encoder. or b) use the texture id to pass the data to a hardware encoder such as nvenc without needing a round trip from the GPU->CPU->GPU. I think that can be made to work. Cheers, Sean On Monday 18 April 2016 08:38:21 Andy wrote: > On Mon, Apr 18, 2016 at 3:26 AM, Harald Vistnes > > wrote: > > Hi Andy, > > > > An alternative is to use the FFMPEG encoding library instead of the > > command line tools. Then you can pass each frame to the video encoder as > > you generate it without writing them all to disk first. > > This is non-GPL software, so I can't use the lib directly (I should have > mentioned that). I haven't found a BSD or MIT lib that encodes the common > formats - is anyone aware of one? > > > The natural way to generate the QImages would be to render to an offscreen > > surface of the desired resolution, and then pass each frame to the video > > encoder. > > Great - so I'm on the right track! > > > Unfortunately, reading back the content of offscreen surfaces is missing > > in Qt3D. According to these it will not come before 5.8. > > > > https://bugreports.qt.io/browse/QTBUG-52136 > > https://bugreports.qt.io/browse/QTBUG-52074 > > > > So AFAIK we just have to wait with generating images and videos with Qt3D. > > Thanks Harald. Your report is exactly what I'm looking for... That's > unfortunate though - a real showstopper. > > > Cheers, > > Harald > > > > 2016-04-18 5:46 GMT+02:00 Andy : > >> Goal: generate video with a user-specified resolution, frame rate, & > >> container/codec format from an animation in my Qt3D window > >> > >> (Disclaimer: I've never worked with video files before!) > >> > >> As far as I can tell, Qt doesn't provide a way to generate video files > >> directly, so I think I have to write a series of QImages to disk and use > >> them to generate a video using ffmpeg. This seems like it will take a > >> large amount of disk space, be pretty heavy on the I/O, and generally be > >> slow. Are there better solutions? > >> > >> If I need to do it that way though, I must generate QImages from my > >> existing Qt3DCore::QAspectEngine in my QWindow-derived class. I don't > >> see > >> a clear/elegant way to do this. > >> > >> I think I need to create an offscreen surface? window? with the correct > >> resolution and then somehow render & animate my scene to it, saving > >> snapshots as I move the camera. (I am already using QAbstractAnimation > >> to > >> move the camera, so I would use it to grab the snapshots as well.) Can I > >> use the same root entity in multiple QAspectEngines? (i.e. > >> setRootEntity() > >> to my root entity in the new offscreen and tell it to render.) > >> > >> Has anyone done this before? Is this even close to the right approach? > >> > >> (I'm using straight C++ - no QML.) > >> > >> Thanks! > >> > >> --- > >> Andy Maloney // https://asmaloney.com > >> twitter ~ @asmaloney > >> > >> > >> _______________________________________________ > >> Interest mailing list > >> Interest at qt-project.org > >> http://lists.qt-project.org/mailman/listinfo/interest > > --- > Andy Maloney // https://asmaloney.com > twitter ~ @asmaloney -- Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK KDAB (UK) Ltd, a KDAB Group company Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090 Mobile: +44 (0)7545 140604 KDAB - Qt Experts From asmaloney at gmail.com Mon Apr 18 15:28:00 2016 From: asmaloney at gmail.com (Andy) Date: Mon, 18 Apr 2016 09:28:00 -0400 Subject: [Interest] [Qt3D] Render to video In-Reply-To: <23193934.RM35jxpBOk@cartman> References: <23193934.RM35jxpBOk@cartman> Message-ID: On Mon, Apr 18, 2016 at 9:05 AM, Sean Harmer wrote: > Hi, > > I think it's possible, although it's not an out of the box feature yet, as > Harald pointed out. > > Have a look into this kind of approach: > > * Implement something similar to the Scene3DItem that allows to embed Qt 3D > into a Qt Quick 2 scene > Thanks Sean. I wouldn't have thought to go through Qt Quick since I've never used it and it's not on my radar. > > * This requires using a little bit of private (for now) API to feed the Qt > 3D > renderer your own OpenGL context and to ask it to render when needed. > > * Use an FBO (as the Scene3D item does) as the render target - take care to > tell the framegraph the size of this "external" render target. > > * Then, once the scene is rendered on your custom context, either: > > a) use glReadPixels to grab the contents of the texture you attached to the > FBO and pass it to a software encoder. > > or > > b) use the texture id to pass the data to a hardware encoder such as nvenc > without needing a round trip from the GPU->CPU->GPU. > > I think that can be made to work. > nvenc looks like it would be a big win for those with NVIDIA cards, and I see AMD has the analogous VCE. Thanks everyone for helping me get a better sense of the problem I'm trying to solve! > > Cheers, > > Sean > > On Monday 18 April 2016 08:38:21 Andy wrote: > > On Mon, Apr 18, 2016 at 3:26 AM, Harald Vistnes < > harald.vistnes at gmail.com> > > > > wrote: > > > Hi Andy, > > > > > > An alternative is to use the FFMPEG encoding library instead of the > > > command line tools. Then you can pass each frame to the video encoder > as > > > you generate it without writing them all to disk first. > > > > This is non-GPL software, so I can't use the lib directly (I should have > > mentioned that). I haven't found a BSD or MIT lib that encodes the > common > > formats - is anyone aware of one? > > > > > The natural way to generate the QImages would be to render to an > offscreen > > > surface of the desired resolution, and then pass each frame to the > video > > > encoder. > > > > Great - so I'm on the right track! > > > > > Unfortunately, reading back the content of offscreen surfaces is > missing > > > in Qt3D. According to these it will not come before 5.8. > > > > > > https://bugreports.qt.io/browse/QTBUG-52136 > > > https://bugreports.qt.io/browse/QTBUG-52074 > > > > > > So AFAIK we just have to wait with generating images and videos with > Qt3D. > > > > Thanks Harald. Your report is exactly what I'm looking for... That's > > unfortunate though - a real showstopper. > > > > > Cheers, > > > Harald > > > > > > 2016-04-18 5:46 GMT+02:00 Andy : > > >> Goal: generate video with a user-specified resolution, frame rate, & > > >> container/codec format from an animation in my Qt3D window > > >> > > >> (Disclaimer: I've never worked with video files before!) > > >> > > >> As far as I can tell, Qt doesn't provide a way to generate video files > > >> directly, so I think I have to write a series of QImages to disk and > use > > >> them to generate a video using ffmpeg. This seems like it will take a > > >> large amount of disk space, be pretty heavy on the I/O, and generally > be > > >> slow. Are there better solutions? > > >> > > >> If I need to do it that way though, I must generate QImages from my > > >> existing Qt3DCore::QAspectEngine in my QWindow-derived class. I don't > > >> see > > >> a clear/elegant way to do this. > > >> > > >> I think I need to create an offscreen surface? window? with the > correct > > >> resolution and then somehow render & animate my scene to it, saving > > >> snapshots as I move the camera. (I am already using > QAbstractAnimation > > >> to > > >> move the camera, so I would use it to grab the snapshots as well.) > Can I > > >> use the same root entity in multiple QAspectEngines? (i.e. > > >> setRootEntity() > > >> to my root entity in the new offscreen and tell it to render.) > > >> > > >> Has anyone done this before? Is this even close to the right > approach? > > >> > > >> (I'm using straight C++ - no QML.) > > >> > > >> Thanks! > > >> > > >> --- > > >> Andy Maloney // https://asmaloney.com > > >> twitter ~ @asmaloney > > >> > > >> > > >> _______________________________________________ > > >> Interest mailing list > > >> Interest at qt-project.org > > >> http://lists.qt-project.org/mailman/listinfo/interest > > > > --- > > Andy Maloney // https://asmaloney.com > > twitter ~ @asmaloney > > -- > Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK > KDAB (UK) Ltd, a KDAB Group company > Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090 > Mobile: +44 (0)7545 140604 > KDAB - Qt Experts > --- Andy Maloney // https://asmaloney.com twitter ~ @asmaloney -------------- next part -------------- An HTML attachment was scrubbed... URL: From scott at towel42.com Mon Apr 18 15:40:12 2016 From: scott at towel42.com (Scott Aron Bloom) Date: Mon, 18 Apr 2016 13:40:12 +0000 Subject: [Interest] Replacement for Qt Script In-Reply-To: <154295f42cb.ba0c169812466.4273668350241725627@geekcentral.pub> References: <154295f42cb.ba0c169812466.4273668350241725627@geekcentral.pub> Message-ID: The forum had a great thread on this https://forum.qt.io/topic/52306/qt-5-5-qt-script-deprecated-what-is-replacement/12 -----Original Message----- From: Interest [mailto:interest-bounces+scott.bloom=onshorecs.com at qt-project.org] On Behalf Of Ian Geiser Sent: Monday, April 18, 2016 5:36 AM To: interest at qt-project.org Subject: [Interest] Replacement for Qt Script Greetings, I have used QtScript in a non-gui application before to write plugins for the application. This was really slick and worked well. I am working on a new application and wish again to use QtScript in a non-gui context. I am given the impression QtScript is deprecated and it is to be replaced with QML. My question is can you use QML in a non-gui context? Or should I just stick with QtScript and take the risk there? Thanks! _______________________________________________ Interest mailing list Interest at qt-project.org http://lists.qt-project.org/mailman/listinfo/interest From harald.vistnes at gmail.com Mon Apr 18 15:46:14 2016 From: harald.vistnes at gmail.com (Harald Vistnes) Date: Mon, 18 Apr 2016 15:46:14 +0200 Subject: [Interest] [Qt3D] Render to video In-Reply-To: References: <23193934.RM35jxpBOk@cartman> Message-ID: If anyone try out Sean's suggestion and get it to work, it would be great it they share an example so we don't all have to reinvent the wheel :) Harald 2016-04-18 15:28 GMT+02:00 Andy : > On Mon, Apr 18, 2016 at 9:05 AM, Sean Harmer wrote: > >> Hi, >> >> I think it's possible, although it's not an out of the box feature yet, as >> Harald pointed out. >> >> Have a look into this kind of approach: >> >> * Implement something similar to the Scene3DItem that allows to embed Qt >> 3D >> into a Qt Quick 2 scene >> > > Thanks Sean. I wouldn't have thought to go through Qt Quick since I've > never used it and it's not on my radar. > > >> >> * This requires using a little bit of private (for now) API to feed the >> Qt 3D >> renderer your own OpenGL context and to ask it to render when needed. >> >> * Use an FBO (as the Scene3D item does) as the render target - take care >> to >> tell the framegraph the size of this "external" render target. >> >> * Then, once the scene is rendered on your custom context, either: >> >> a) use glReadPixels to grab the contents of the texture you attached to >> the >> FBO and pass it to a software encoder. >> >> or >> >> b) use the texture id to pass the data to a hardware encoder such as nvenc >> without needing a round trip from the GPU->CPU->GPU. >> >> I think that can be made to work. >> > > nvenc looks like it would be a big win for those with NVIDIA cards, and I > see AMD has the analogous VCE. > > > Thanks everyone for helping me get a better sense of the problem I'm > trying to solve! > > >> >> Cheers, >> >> Sean >> >> On Monday 18 April 2016 08:38:21 Andy wrote: >> > On Mon, Apr 18, 2016 at 3:26 AM, Harald Vistnes < >> harald.vistnes at gmail.com> >> > >> > wrote: >> > > Hi Andy, >> > > >> > > An alternative is to use the FFMPEG encoding library instead of the >> > > command line tools. Then you can pass each frame to the video encoder >> as >> > > you generate it without writing them all to disk first. >> > >> > This is non-GPL software, so I can't use the lib directly (I should have >> > mentioned that). I haven't found a BSD or MIT lib that encodes the >> common >> > formats - is anyone aware of one? >> > >> > > The natural way to generate the QImages would be to render to an >> offscreen >> > > surface of the desired resolution, and then pass each frame to the >> video >> > > encoder. >> > >> > Great - so I'm on the right track! >> > >> > > Unfortunately, reading back the content of offscreen surfaces is >> missing >> > > in Qt3D. According to these it will not come before 5.8. >> > > >> > > https://bugreports.qt.io/browse/QTBUG-52136 >> > > https://bugreports.qt.io/browse/QTBUG-52074 >> > > >> > > So AFAIK we just have to wait with generating images and videos with >> Qt3D. >> > >> > Thanks Harald. Your report is exactly what I'm looking for... That's >> > unfortunate though - a real showstopper. >> > >> > > Cheers, >> > > Harald >> > > >> > > 2016-04-18 5:46 GMT+02:00 Andy : >> > >> Goal: generate video with a user-specified resolution, frame rate, & >> > >> container/codec format from an animation in my Qt3D window >> > >> >> > >> (Disclaimer: I've never worked with video files before!) >> > >> >> > >> As far as I can tell, Qt doesn't provide a way to generate video >> files >> > >> directly, so I think I have to write a series of QImages to disk and >> use >> > >> them to generate a video using ffmpeg. This seems like it will take >> a >> > >> large amount of disk space, be pretty heavy on the I/O, and >> generally be >> > >> slow. Are there better solutions? >> > >> >> > >> If I need to do it that way though, I must generate QImages from my >> > >> existing Qt3DCore::QAspectEngine in my QWindow-derived class. I >> don't >> > >> see >> > >> a clear/elegant way to do this. >> > >> >> > >> I think I need to create an offscreen surface? window? with the >> correct >> > >> resolution and then somehow render & animate my scene to it, saving >> > >> snapshots as I move the camera. (I am already using >> QAbstractAnimation >> > >> to >> > >> move the camera, so I would use it to grab the snapshots as well.) >> Can I >> > >> use the same root entity in multiple QAspectEngines? (i.e. >> > >> setRootEntity() >> > >> to my root entity in the new offscreen and tell it to render.) >> > >> >> > >> Has anyone done this before? Is this even close to the right >> approach? >> > >> >> > >> (I'm using straight C++ - no QML.) >> > >> >> > >> Thanks! >> > >> >> > >> --- >> > >> Andy Maloney // https://asmaloney.com >> > >> twitter ~ @asmaloney >> > >> >> > >> >> > >> _______________________________________________ >> > >> Interest mailing list >> > >> Interest at qt-project.org >> > >> http://lists.qt-project.org/mailman/listinfo/interest >> > >> > --- >> > Andy Maloney // https://asmaloney.com >> > twitter ~ @asmaloney >> >> -- >> Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK >> KDAB (UK) Ltd, a KDAB Group company >> Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090 >> Mobile: +44 (0)7545 140604 >> KDAB - Qt Experts >> > > --- > Andy Maloney // https://asmaloney.com > twitter ~ @asmaloney > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sean.harmer at kdab.com Mon Apr 18 15:56:53 2016 From: sean.harmer at kdab.com (Sean Harmer) Date: Mon, 18 Apr 2016 14:56:53 +0100 Subject: [Interest] [Qt3D] Render to video In-Reply-To: References: <23193934.RM35jxpBOk@cartman> Message-ID: <2027228.satijy3UBV@cartman> On Monday 18 April 2016 09:28:00 Andy wrote: > On Mon, Apr 18, 2016 at 9:05 AM, Sean Harmer wrote: > > Hi, > > > > I think it's possible, although it's not an out of the box feature yet, as > > Harald pointed out. > > > > Have a look into this kind of approach: > > > > * Implement something similar to the Scene3DItem that allows to embed Qt > > 3D > > into a Qt Quick 2 scene > > Thanks Sean. I wouldn't have thought to go through Qt Quick since I've > never used it and it's not on my radar. You don't necessarily have to go via Qt Quick, I just meant to use the Scene3D item as inspiration for tying it into your own render loop and having QT 3D render into an FBO. Cheers, Sean > > > * This requires using a little bit of private (for now) API to feed the Qt > > 3D > > renderer your own OpenGL context and to ask it to render when needed. > > > > * Use an FBO (as the Scene3D item does) as the render target - take care > > to > > tell the framegraph the size of this "external" render target. > > > > * Then, once the scene is rendered on your custom context, either: > > > > a) use glReadPixels to grab the contents of the texture you attached to > > the > > FBO and pass it to a software encoder. > > > > or > > > > b) use the texture id to pass the data to a hardware encoder such as nvenc > > without needing a round trip from the GPU->CPU->GPU. > > > > I think that can be made to work. > > nvenc looks like it would be a big win for those with NVIDIA cards, and I > see AMD has the analogous VCE. > > > Thanks everyone for helping me get a better sense of the problem I'm trying > to solve! > > > Cheers, > > > > Sean > > > > On Monday 18 April 2016 08:38:21 Andy wrote: > > > On Mon, Apr 18, 2016 at 3:26 AM, Harald Vistnes < > > > > harald.vistnes at gmail.com> > > > > > wrote: > > > > Hi Andy, > > > > > > > > An alternative is to use the FFMPEG encoding library instead of the > > > > command line tools. Then you can pass each frame to the video encoder > > > > as > > > > > > you generate it without writing them all to disk first. > > > > > > This is non-GPL software, so I can't use the lib directly (I should have > > > mentioned that). I haven't found a BSD or MIT lib that encodes the > > > > common > > > > > formats - is anyone aware of one? > > > > > > > The natural way to generate the QImages would be to render to an > > > > offscreen > > > > > > surface of the desired resolution, and then pass each frame to the > > > > video > > > > > > encoder. > > > > > > Great - so I'm on the right track! > > > > > > > Unfortunately, reading back the content of offscreen surfaces is > > > > missing > > > > > > in Qt3D. According to these it will not come before 5.8. > > > > > > > > https://bugreports.qt.io/browse/QTBUG-52136 > > > > https://bugreports.qt.io/browse/QTBUG-52074 > > > > > > > > So AFAIK we just have to wait with generating images and videos with > > > > Qt3D. > > > > > Thanks Harald. Your report is exactly what I'm looking for... That's > > > unfortunate though - a real showstopper. > > > > > > > Cheers, > > > > Harald > > > > > > > > 2016-04-18 5:46 GMT+02:00 Andy : > > > >> Goal: generate video with a user-specified resolution, frame rate, & > > > >> container/codec format from an animation in my Qt3D window > > > >> > > > >> (Disclaimer: I've never worked with video files before!) > > > >> > > > >> As far as I can tell, Qt doesn't provide a way to generate video > > > >> files > > > >> directly, so I think I have to write a series of QImages to disk and > > > > use > > > > > >> them to generate a video using ffmpeg. This seems like it will take > > > >> a > > > >> large amount of disk space, be pretty heavy on the I/O, and generally > > > > be > > > > > >> slow. Are there better solutions? > > > >> > > > >> If I need to do it that way though, I must generate QImages from my > > > >> existing Qt3DCore::QAspectEngine in my QWindow-derived class. I > > > >> don't > > > >> see > > > >> a clear/elegant way to do this. > > > >> > > > >> I think I need to create an offscreen surface? window? with the > > > > correct > > > > > >> resolution and then somehow render & animate my scene to it, saving > > > >> snapshots as I move the camera. (I am already using > > > > QAbstractAnimation > > > > > >> to > > > >> move the camera, so I would use it to grab the snapshots as well.) > > > > Can I > > > > > >> use the same root entity in multiple QAspectEngines? (i.e. > > > >> setRootEntity() > > > >> to my root entity in the new offscreen and tell it to render.) > > > >> > > > >> Has anyone done this before? Is this even close to the right > > > > approach? > > > > > >> (I'm using straight C++ - no QML.) > > > >> > > > >> Thanks! > > > >> > > > >> --- > > > >> Andy Maloney // https://asmaloney.com > > > >> twitter ~ @asmaloney > > > >> > > > >> > > > >> _______________________________________________ > > > >> Interest mailing list > > > >> Interest at qt-project.org > > > >> http://lists.qt-project.org/mailman/listinfo/interest > > > > > > --- > > > Andy Maloney // https://asmaloney.com > > > twitter ~ @asmaloney > > > > -- > > Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK > > KDAB (UK) Ltd, a KDAB Group company > > Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090 > > Mobile: +44 (0)7545 140604 > > KDAB - Qt Experts > > --- > Andy Maloney // https://asmaloney.com > twitter ~ @asmaloney -- Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK KDAB (UK) Ltd, a KDAB Group company Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090 Mobile: +44 (0)7545 140604 KDAB - Qt Experts From sean.harmer at kdab.com Mon Apr 18 15:57:25 2016 From: sean.harmer at kdab.com (Sean Harmer) Date: Mon, 18 Apr 2016 14:57:25 +0100 Subject: [Interest] [Qt3D] Render to video In-Reply-To: References: Message-ID: <9309355.6b6RaErrmU@cartman> On Monday 18 April 2016 15:46:14 Harald Vistnes wrote: > If anyone try out Sean's suggestion and get it to work, it would be great > it they share an example so we don't all have to reinvent the wheel :) Or even better, contribute it to Qt 3D so everyone can benefit from it out of the box. :) Cheers, Sean > > Harald > > 2016-04-18 15:28 GMT+02:00 Andy : > > On Mon, Apr 18, 2016 at 9:05 AM, Sean Harmer wrote: > >> Hi, > >> > >> I think it's possible, although it's not an out of the box feature yet, > >> as > >> Harald pointed out. > >> > >> Have a look into this kind of approach: > >> > >> * Implement something similar to the Scene3DItem that allows to embed Qt > >> 3D > >> into a Qt Quick 2 scene > > > > Thanks Sean. I wouldn't have thought to go through Qt Quick since I've > > never used it and it's not on my radar. > > > >> * This requires using a little bit of private (for now) API to feed the > >> Qt 3D > >> renderer your own OpenGL context and to ask it to render when needed. > >> > >> * Use an FBO (as the Scene3D item does) as the render target - take care > >> to > >> tell the framegraph the size of this "external" render target. > >> > >> * Then, once the scene is rendered on your custom context, either: > >> > >> a) use glReadPixels to grab the contents of the texture you attached to > >> the > >> FBO and pass it to a software encoder. > >> > >> or > >> > >> b) use the texture id to pass the data to a hardware encoder such as > >> nvenc > >> without needing a round trip from the GPU->CPU->GPU. > >> > >> I think that can be made to work. > > > > nvenc looks like it would be a big win for those with NVIDIA cards, and I > > see AMD has the analogous VCE. > > > > > > Thanks everyone for helping me get a better sense of the problem I'm > > trying to solve! > > > >> Cheers, > >> > >> Sean > >> > >> On Monday 18 April 2016 08:38:21 Andy wrote: > >> > On Mon, Apr 18, 2016 at 3:26 AM, Harald Vistnes < > >> > >> harald.vistnes at gmail.com> > >> > >> > wrote: > >> > > Hi Andy, > >> > > > >> > > An alternative is to use the FFMPEG encoding library instead of the > >> > > command line tools. Then you can pass each frame to the video encoder > >> > >> as > >> > >> > > you generate it without writing them all to disk first. > >> > > >> > This is non-GPL software, so I can't use the lib directly (I should > >> > have > >> > mentioned that). I haven't found a BSD or MIT lib that encodes the > >> > >> common > >> > >> > formats - is anyone aware of one? > >> > > >> > > The natural way to generate the QImages would be to render to an > >> > >> offscreen > >> > >> > > surface of the desired resolution, and then pass each frame to the > >> > >> video > >> > >> > > encoder. > >> > > >> > Great - so I'm on the right track! > >> > > >> > > Unfortunately, reading back the content of offscreen surfaces is > >> > >> missing > >> > >> > > in Qt3D. According to these it will not come before 5.8. > >> > > > >> > > https://bugreports.qt.io/browse/QTBUG-52136 > >> > > https://bugreports.qt.io/browse/QTBUG-52074 > >> > > > >> > > So AFAIK we just have to wait with generating images and videos with > >> > >> Qt3D. > >> > >> > Thanks Harald. Your report is exactly what I'm looking for... That's > >> > unfortunate though - a real showstopper. > >> > > >> > > Cheers, > >> > > Harald > >> > > > >> > > 2016-04-18 5:46 GMT+02:00 Andy : > >> > >> Goal: generate video with a user-specified resolution, frame rate, & > >> > >> container/codec format from an animation in my Qt3D window > >> > >> > >> > >> (Disclaimer: I've never worked with video files before!) > >> > >> > >> > >> As far as I can tell, Qt doesn't provide a way to generate video > >> > >> files > >> > >> > >> directly, so I think I have to write a series of QImages to disk and > >> > >> use > >> > >> > >> them to generate a video using ffmpeg. This seems like it will take > >> > >> a > >> > >> > >> large amount of disk space, be pretty heavy on the I/O, and > >> > >> generally be > >> > >> > >> slow. Are there better solutions? > >> > >> > >> > >> If I need to do it that way though, I must generate QImages from my > >> > >> existing Qt3DCore::QAspectEngine in my QWindow-derived class. I > >> > >> don't > >> > >> > >> see > >> > >> a clear/elegant way to do this. > >> > >> > >> > >> I think I need to create an offscreen surface? window? with the > >> > >> correct > >> > >> > >> resolution and then somehow render & animate my scene to it, saving > >> > >> snapshots as I move the camera. (I am already using > >> > >> QAbstractAnimation > >> > >> > >> to > >> > >> move the camera, so I would use it to grab the snapshots as well.) > >> > >> Can I > >> > >> > >> use the same root entity in multiple QAspectEngines? (i.e. > >> > >> setRootEntity() > >> > >> to my root entity in the new offscreen and tell it to render.) > >> > >> > >> > >> Has anyone done this before? Is this even close to the right > >> > >> approach? > >> > >> > >> (I'm using straight C++ - no QML.) > >> > >> > >> > >> Thanks! > >> > >> > >> > >> --- > >> > >> Andy Maloney // https://asmaloney.com > >> > >> twitter ~ @asmaloney > >> > >> > >> > >> > >> > >> _______________________________________________ > >> > >> Interest mailing list > >> > >> Interest at qt-project.org > >> > >> http://lists.qt-project.org/mailman/listinfo/interest > >> > > >> > --- > >> > Andy Maloney // https://asmaloney.com > >> > twitter ~ @asmaloney > >> > >> -- > >> Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK > >> KDAB (UK) Ltd, a KDAB Group company > >> Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090 > >> Mobile: +44 (0)7545 140604 > >> KDAB - Qt Experts > > > > --- > > Andy Maloney // https://asmaloney.com > > twitter ~ @asmaloney -- Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK KDAB (UK) Ltd, a KDAB Group company Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090 Mobile: +44 (0)7545 140604 KDAB - Qt Experts From jhihn at gmx.com Mon Apr 18 16:00:34 2016 From: jhihn at gmx.com (Jason H) Date: Mon, 18 Apr 2016 16:00:34 +0200 Subject: [Interest] [Qt3D] Render to video In-Reply-To: References: Message-ID: An HTML attachment was scrubbed... URL: From asmaloney at gmail.com Mon Apr 18 16:13:38 2016 From: asmaloney at gmail.com (Andy) Date: Mon, 18 Apr 2016 10:13:38 -0400 Subject: [Interest] [Qt3D] Render to video In-Reply-To: References: Message-ID: On Mon, Apr 18, 2016 at 10:00 AM, Jason H wrote: > I did something like this a long time ago in QML (Before Qt3D, QtQuick 1): > 1. There is some kind of frame advance, so you set up the animations as > you want, then you start the animation and render the first frame to an > image. Then call frame advance and get the next frame, repeat. > 2. Then use FFMPeg to create the video from the PNG/JPG files. > > A couple of pointers: > 1. Use a multithreaded image saver. I was Passign QPixmap/QImage to a > thread for saving to PNG and the compression time was horrendous. Being > able to tap into all the CPUs scaled linearly. (I was rendering 1920x1080 > about 6 years ago) > 2. You might have to restrict yourself to a raster painter (if such an > option still exists) > Thanks Jason. I'm hoping I can tap into the Qt3D FBO (Sean's suggestion) and pipe the data directly to ffmpeg (Michael's suggestion) which would avoid all that I/O. Hardware encoding would also be nice, but first things first! > > *Sent:* Sunday, April 17, 2016 at 11:46 PM > *From:* Andy > *To:* "Qt Project" > *Subject:* [Interest] [Qt3D] Render to video > Goal: generate video with a user-specified resolution, frame rate, & > container/codec format from an animation in my Qt3D window > > (Disclaimer: I've never worked with video files before!) > > As far as I can tell, Qt doesn't provide a way to generate video files > directly, so I think I have to write a series of QImages to disk and use > them to generate a video using ffmpeg. This seems like it will take a > large amount of disk space, be pretty heavy on the I/O, and generally be > slow. Are there better solutions? > > If I need to do it that way though, I must generate QImages from my > existing Qt3DCore::QAspectEngine in my QWindow-derived class. I don't see > a clear/elegant way to do this. > > I think I need to create an offscreen surface? window? with the correct > resolution and then somehow render & animate my scene to it, saving > snapshots as I move the camera. (I am already using QAbstractAnimation to > move the camera, so I would use it to grab the snapshots as well.) Can I > use the same root entity in multiple QAspectEngines? (i.e. setRootEntity() > to my root entity in the new offscreen and tell it to render.) > > Has anyone done this before? Is this even close to the right approach? > > (I'm using straight C++ - no QML.) > > Thanks! > > --- > Andy Maloney // https://asmaloney.com > twitter ~ @asmaloney > _______________________________________________ Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > --- Andy Maloney // https://asmaloney.com twitter ~ @asmaloney -------------- next part -------------- An HTML attachment was scrubbed... URL: From geiseri at geekcentral.pub Mon Apr 18 16:16:09 2016 From: geiseri at geekcentral.pub (Ian Geiser) Date: Mon, 18 Apr 2016 10:16:09 -0400 Subject: [Interest] Replacement for Qt Script In-Reply-To: References: <154295f42cb.ba0c169812466.4273668350241725627@geekcentral.pub> Message-ID: <15429ba831b.d5d1db0d19374.8652381181883885697@geekcentral.pub> ---- On Mon, 18 Apr 2016 09:40:12 -0400 Scott Aron Bloom wrote ---- > The forum had a great thread on this > > https://forum.qt.io/topic/52306/qt-5-5-qt-script-deprecated-what-is-replacement/12 I saw this thread, but it did not seem to offer a clear detail other than to use QJSEngine and QJSValue directly. Specifically I use qScriptRegisterMetaType very heavy to add custom types. I know if I am using QML I can use qmlRegisterType(uri, 1, 0, "T") but it only makes the type available via the declarative components. It also requires the object be a QObject which means sharing pointers. There is also a problem inside of the Javascript. It is very cumbersome to dynamically create these types. I understand I am fighting QML, but my design is not as declarative as it is creating objects that can be passed back into C++. I may be missing something though. As an example below with a type called MyStruct: ... Qt Script... var myStruct = new MyStruct(); myStruct.x = 10; ....QML... var myStruct; var component = Qt.createComponent(???); if (component.status == Component.Ready) { myStruct = component.createObject(parent, {"x": 100, "y": 100}); } What would ??? be? Thanks! From jhihn at gmx.com Mon Apr 18 17:03:24 2016 From: jhihn at gmx.com (Jason H) Date: Mon, 18 Apr 2016 17:03:24 +0200 Subject: [Interest] [Qt3D] Render to video In-Reply-To: References: , Message-ID: An HTML attachment was scrubbed... URL: From jhihn at gmx.com Mon Apr 18 17:06:59 2016 From: jhihn at gmx.com (Jason H) Date: Mon, 18 Apr 2016 17:06:59 +0200 Subject: [Interest] Replacement for Qt Script In-Reply-To: <15429ba831b.d5d1db0d19374.8652381181883885697@geekcentral.pub> References: <154295f42cb.ba0c169812466.4273668350241725627@geekcentral.pub> , <15429ba831b.d5d1db0d19374.8652381181883885697@geekcentral.pub> Message-ID: ttps://forum.qt.io/topic/52306/qt-5-5-qt-script-deprecated-what-is-replacement/12 > > I saw this thread, but it did not seem to offer a clear detail other than to use QJSEngine and QJSValue directly. Specifically I use qScriptRegisterMetaType very heavy to add custom types. I know if I am using QML I can use qmlRegisterType(uri, 1, 0, "T") but it only makes the type available via the declarative components. It also requires the object be a QObject which means sharing pointers. There is also a problem inside of the Javascript. It is very cumbersome to dynamically create these types. I understand I am fighting QML, but my design is not as declarative as it is creating objects that can be passed back into C++. I may be missing something though. > > As an example below with a type called MyStruct: > > ... Qt Script... > > var myStruct = new MyStruct(); > myStruct.x = 10; > > ....QML... > > var myStruct; > var component = Qt.createComponent(???); > if (component.status == Component.Ready) { > myStruct = component.createObject(parent, {"x": 100, "y": 100}); > } > > What would ??? be? If MyStruct is just a JS object, then just use JS. function MyStruct(){ return {"x": 100, "y": 100}; }; var myStruct = new MyStruct(); You only need createObject when you are creating an object defined in C++ or dynamic object from QML. From geiseri at geekcentral.pub Mon Apr 18 17:38:11 2016 From: geiseri at geekcentral.pub (Ian Geiser) Date: Mon, 18 Apr 2016 11:38:11 -0400 Subject: [Interest] Replacement for Qt Script In-Reply-To: References: <154295f42cb.ba0c169812466.4273668350241725627@geekcentral.pub> , <15429ba831b.d5d1db0d19374.8652381181883885697@geekcentral.pub> Message-ID: <1542a059e36.d48b88b325117.8920365609194802839@geekcentral.pub> ---- On Mon, 18 Apr 2016 11:06:59 -0400 Jason H wrote ---- > ttps://forum.qt.io/topic/52306/qt-5-5-qt-script-deprecated-what-is-replacement/12 > > > > I saw this thread, but it did not seem to offer a clear detail other than to use QJSEngine and QJSValue directly. Specifically I use qScriptRegisterMetaType very heavy to add custom types. I know if I am using QML I can use qmlRegisterType(uri, 1, 0, "T") but it only makes the type available via the declarative components. It also requires the object be a QObject which means sharing pointers. There is also a problem inside of the Javascript. It is very cumbersome to dynamically create these types. I understand I am fighting QML, but my design is not as declarative as it is creating objects that can be passed back into C++. I may be missing something though. > > > > As an example below with a type called MyStruct: > > > > ... Qt Script... > > > > var myStruct = new MyStruct(); > > myStruct.x = 10; > > > > ....QML... > > > > var myStruct; > > var component = Qt.createComponent(???); > > if (component.status == Component.Ready) { > > myStruct = component.createObject(parent, {"x": 100, "y": 100}); > > } > > > > What would ??? be? > > If MyStruct is just a JS object, then just use JS. function MyStruct(){ return {"x": 100, "y": 100}; }; var myStruct = new MyStruct(); > You only need createObject when you are creating an object defined in C++ or dynamic object from QML. That is my rub here. These are custom QML components that are being created in JS and then passed back into the C++ end of things. The goal being I want to be able to write "plugins" for my app using JS instead of C++. So I am creating and manipulating custom types that are then used to manipulate and extend the C++. I may be making this harder than it needs to be though. I will give it a try with the non-gui QML components and see how far I get. From jhihn at gmx.com Mon Apr 18 19:17:00 2016 From: jhihn at gmx.com (Jason H) Date: Mon, 18 Apr 2016 19:17:00 +0200 Subject: [Interest] Replacement for Qt Script In-Reply-To: <1542a059e36.d48b88b325117.8920365609194802839@geekcentral.pub> References: <154295f42cb.ba0c169812466.4273668350241725627@geekcentral.pub> , <15429ba831b.d5d1db0d19374.8652381181883885697@geekcentral.pub> , <1542a059e36.d48b88b325117.8920365609194802839@geekcentral.pub> Message-ID: ? > > > > If MyStruct is just a JS object, then just use JS. function MyStruct(){ return {"x": 100, "y": 100}; }; var myStruct = new MyStruct(); > > You only need createObject when you are creating an object defined in C++ or dynamic object from QML. > > That is my rub here. These are custom QML components that are being created in JS and then passed back into the C++ end of things. The goal being I want to be able to write "plugins" for my app using JS instead of C++. So I am creating and manipulating custom types that are then used to manipulate and extend the C++. I may be making this harder than it needs to be though. I will give it a try with the non-gui QML components and see how far I get. Well, the QML/C++ gets you parenting, and signals/slots. If your plugin system doesn't have that, then there's nothing to worry about. I'm not sure which version of JS the V8 engine implements, but there is proper class support in Javascript now, so that might do inheritance if that's what you need. From jhihn at gmx.com Mon Apr 18 21:23:37 2016 From: jhihn at gmx.com (Jason H) Date: Mon, 18 Apr 2016 21:23:37 +0200 Subject: [Interest] Cellular Radio information? Message-ID: Is there a way to access the radio info (dB, SNR) or even just overall data connection quality using Qt? I know there is a Radio QML type, but this seems to be FM broadcast radio. From lorn.potter at canonical.com Tue Apr 19 07:00:58 2016 From: lorn.potter at canonical.com (Lorn Potter) Date: Tue, 19 Apr 2016 15:00:58 +1000 Subject: [Interest] Cellular Radio information? In-Reply-To: References: Message-ID: <5715BB8A.6090803@canonical.com> On 19/04/16 05:23, Jason H wrote: > Is there a way to access the radio info (dB, SNR) or even just overall data connection quality using Qt? > > I know there is a Radio QML type, but this seems to be FM broadcast radio. In the unreleased QtSystems module in QtSystemInfo there is something like that, but depending on your platform, it may or may not work. There is no current iOS and Android support in QtSystemInfo. But since it is unreleased, we can add to the API and additional platforms at any time, if there was someone to work on those. -- Software Engineer Hardware Enablement, Canonical Ltd QtSystemInfo, QtSensors maintainer From Callum.Coe at ivolve.com Tue Apr 19 08:30:06 2016 From: Callum.Coe at ivolve.com (Callum Coe) Date: Tue, 19 Apr 2016 06:30:06 +0000 Subject: [Interest] How to scale/transform GUI for screens with wide pixels (non-square) Message-ID: I've an embedded device with a physical screen resolution of 800 x 480, but the pixels themselves are actually wider than they are high. The entire GUI therefore appears stretched, so it looks like a 800 x 480 GUI stretched to fill 800 x 520 screen. How am I best to handle this, so my GUI does not appear wider than it should? Thanks, [iVolve] Callum Coe Engineer t: +61 (7) 3253 6700 w: www.ivolve.com [iVolve LinkedIn] [iVolve Twitter] 5/36 Agnes St, Fortitude Valley, Brisbane QLD 4006 This e-mail and any attachments are private and confidential and may contain legally privileged information. If you are not an authorised recipient, the copying or distribution of this e-mail and any attachments is prohibited and you must not read, print or act in reliance on this e-mail or attachments. This notice should not be removed. -------------- next part -------------- An HTML attachment was scrubbed... URL: From etienne.sandre at m4x.org Tue Apr 19 14:20:01 2016 From: etienne.sandre at m4x.org (=?UTF-8?Q?Etienne_Sandr=C3=A9=2DChardonnal?=) Date: Tue, 19 Apr 2016 14:20:01 +0200 Subject: [Interest] Probable Qt bug in widgets display Message-ID: Dear all, I have what seems to be a Qt bug in a desktop application. I'm using Qt 5.4.1 under windows, compiled with minGW. My application is based on a QMainWindow with toolboxes, status bar, and a tabbed central area. I use the Fusion style, redefined all the palette with QApplication::setPalette for having a dark theme, and customized a few widgets with stylesheets. All this customization is done once in main() on the QApplication instance. The interface is displayed as it should 99% of the time. But sometimes, I think when exiting from the screen saver, some GUI zones are rendered white instead of dark gray. These are: - the empty spaces in QTabBar (central widget and stacked toolboxes) - The status bar - Bottom docked toolbox The status bar is not customized with QSS. As this had been observed only on my windows 7 development machine, I initially thought of a bug on my system related to messed up GPU drivers. But has also been reported by my customers now, under windows 10, on a clean system. Actual question : Is this already identified as a bug? I could not find a related entry in the bug tracker but this is not easy to find I will try getting a screenshot of the issue along with the equivalent "normal" display Thanks in advance, Etienne -------------- next part -------------- An HTML attachment was scrubbed... URL: From rpzrpzrpz at gmail.com Tue Apr 19 15:09:12 2016 From: rpzrpzrpz at gmail.com (rpzrpzrpz at gmail.com) Date: Tue, 19 Apr 2016 07:09:12 -0600 Subject: [Interest] How to scale/transform GUI for screens with wide pixels (non-square) In-Reply-To: References: Message-ID: <57162DF8.3050903@gmail.com> De-stretch with a multiplier and then calibrate. You need to map 520 back to 480 and lose some pixels in the process. Some Android devices (Chuwi 8) have massive reported distortion. So a calibration screen is necessary since you cannot figure it out by querying the GPU. md On 4/19/2016 12:30 AM, Callum Coe wrote: > > I’ve an embedded device with a physical screen resolution of 800 x 480, but the pixels themselves are actually wider than they are high. > > The entire GUI therefore appears stretched, so it looks like a 800 x 480 GUI stretched to fill 800 x 520 screen. > > How am I best to handle this, so my GUI does not appear wider than it should? > > Thanks, > > iVolve > > > > *Callum Coe * > Engineer > *t: *+61 (7) 3253 6700 *w: *www.ivolve.com iVolve LinkedIn iVolve Twitter > 5/36 Agnes St, Fortitude Valley, Brisbane QLD 4006 > > This e-mail and any attachments are private and confidential and may contain legally privileged information. If you are not an authorised recipient, the copying or distribution of this e-mail and any attachments is prohibited and you must not read, print or act in reliance on this e-mail or attachments. This notice should not be removed. > > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -------------- next part -------------- An HTML attachment was scrubbed... URL: From sylvain.pointeau at gmail.com Tue Apr 19 17:35:32 2016 From: sylvain.pointeau at gmail.com (Sylvain Pointeau) Date: Tue, 19 Apr 2016 17:35:32 +0200 Subject: [Interest] qtwebview with qtwebchannel In-Reply-To: References: <201603311646.59172.kde@carewolf.com> <1567148.0iQSWJnVrW@milian-kdab2> Message-ID: Any thought on the below? is Qt able on iOS to support the hybrid approach where the HTML communicates back to the native backend? On another hand, do you have any example if I would like to develop a web view backend for iOS that would give a plateform dependant way to communicate between HTML <-> backend? Best regards, Sylvain On Thu, Mar 31, 2016 at 5:43 PM, Sylvain Pointeau < sylvain.pointeau at gmail.com> wrote: > On Thu, Mar 31, 2016 at 4:53 PM, Milian Wolff > wrote: > >> On Thursday, March 31, 2016 4:46:58 PM CEST Allan Sandfeld Jensen wrote: >> > On Thursday 31 March 2016, Sylvain Pointeau wrote: >> > > On Tue, Mar 29, 2016 at 10:24 AM, Sylvain Pointeau < >> > > >> > > sylvain.pointeau at gmail.com> wrote: >> > > > On Tue, Mar 29, 2016 at 8:31 AM, Kalinowski Maurice < >> > > > >> > > > Maurice.Kalinowski at theqtcompany.com> wrote: >> > > >> > QtWebView has a QtWebEngine backend, and that should be >> available on >> > > >> >> > > >> Windows. >> > > >> >> > > >> For UWP/WinRT there is a platform specific implementation loading >> Edge >> > > >> into your application. For classic desktop applications you can >> use Qt >> > > >> Webengine as Alan described. >> > > > >> > > > Excellent! do you know if / how I can use the WebChannel (or >> WebSocket) >> > > > with QtWebView? >> > > > (I tried to use WebSocketServer but it does not work on iOS.) >> > > >> > > any idea? I would like to know if I can use Qt on android/ios/windows >> for >> > > hybrid applications... >> > >> > I don't know if it is possible on iOS. I believe you have to be allowed >> to >> > setup a websocket. >> >> It should be possible, but I haven't tried it myself and have zero iOS >> knowledge. What you need: >> >> Qt/C++ side: >> 1) initialize a Qt WebSocket server >> 2) wrap that server in a WebChannel transport >> >> HTML side: >> 1) load your HTML in any web view >> 2) load qwebchannel there, you will have to copy it, or create a trivial >> HTML >> server in your C++ side to "deploy" it from the Qt resource system to the >> web >> view >> 3) initialize the webchannel with a websocket client using the server >> address >> from the Qt/C++ side >> >> The Qt WebChannel examples contain a chat e.g. that uses your system >> browser >> to do the above, and it works fine with Explorer, Firefox and Chrome. So >> as >> long as WebSockets work on iOS WebView, and Qt WebSockets work on iOS, it >> should work. >> > > I tried the following example on iOS and it does not work: > > I tried to set-up a WebSocketServer, transmit the server url to the > WebView page url. and connect to the socket server via a web socket in > javascript (within the WebView) > (idea taken from > http://blog.qt.io/blog/2011/08/31/an-oldnew-approach-to-qtwebkit-hybrid/) > > *on mac os x, it works fine,* > *on iOS, it does not work*, the socket closes immediately* (note: socket > works when opened with the url "ws://echo.websocket.org > ")* > > QML code is: > > import Qt.labs.controls 1.0 > > import QtQuick 2.0 > > import QtWebSockets 1.0 > > import QtWebView 1.1 > > > ApplicationWindow { > > visible: true > > title: webView.title > > > function appendMessage(message) { > > messageBox.text += "\n" + message > > } > > > WebSocketServer { > > id: server > > listen: true > > onClientConnected: { > > webSocket.onTextMessageReceived.connect(function(message) { > > appendMessage(qsTr("Server received message: %1").arg(message)); > > webSocket.sendTextMessage(qsTr("Hello Client!")); > > }); > > } > > onErrorStringChanged: { > > appendMessage(qsTr("Server error: %1").arg(errorString)); > > } > > } > > > Text { > > id: messageBox > > text: server.url > > x: 0 > > width: parent.width > > y: parent.y + parent.height/2 > > height: parent.height/2 > > } > > > WebView { > > id: webView > > x: 0 > > width: parent.width > > y: 0 > > height: parent.height/2 > > url: "file:///MYPATH/web/index.html?socketurl="+server.url > > } > > } > > > > HTML code is: > > > > > > > Sample "Hello, World" Application > > > > > > > >

Sample "Hello, World" Application

> >

This is the home page for the HelloWorld Web application.

> > > > > > > > > > > > > > Best regards, > Sylvain > -------------- next part -------------- An HTML attachment was scrubbed... URL: From lykurg at gmail.com Wed Apr 20 08:37:44 2016 From: lykurg at gmail.com (Lorenz Haas) Date: Wed, 20 Apr 2016 08:37:44 +0200 Subject: [Interest] qdoc: dynamically change index file's URL Message-ID: Hi, currently I use qdoc for my custom project and link against Qt classes with --indexdir + depends. This is working fine, however, the URLs in the Qt index files (from the default Qt installer) are "http://doc.qt.io/qt-5". Now I want to create my documentation to use inside Qt Creator and thus the URLs should be like "qthelp://org.qt-project.qtcore/qtcore/". Is there any way to do so from _inside_ the qdocconf file since I do not want to alter the original Qt index files. Thanks Lorenz From etienne.sandre at m4x.org Wed Apr 20 10:56:08 2016 From: etienne.sandre at m4x.org (=?UTF-8?Q?Etienne_Sandr=C3=A9=2DChardonnal?=) Date: Wed, 20 Apr 2016 10:56:08 +0200 Subject: [Interest] Probable Qt bug in widgets display In-Reply-To: References: Message-ID: Here are two screenshots: Normal display : http://www.eclat-digital.com/downloads/qtbug-normal.png Bugged display : http://www.eclat-digital.com/downloads/qtbug-issue.png It seems this also happens with windows RDP sessions. Thanks, Etienne 2016-04-19 14:20 GMT+02:00 Etienne Sandré-Chardonnal : > Dear all, > > I have what seems to be a Qt bug in a desktop application. I'm using Qt > 5.4.1 under windows, compiled with minGW. > > My application is based on a QMainWindow with toolboxes, status bar, and a > tabbed central area. I use the Fusion style, redefined all the palette with > QApplication::setPalette for having a dark theme, and customized a few > widgets with stylesheets. All this customization is done once in main() on > the QApplication instance. > > The interface is displayed as it should 99% of the time. > > But sometimes, I think when exiting from the screen saver, some GUI zones > are rendered white instead of dark gray. These are: > - the empty spaces in QTabBar (central widget and stacked toolboxes) > - The status bar > - Bottom docked toolbox > > The status bar is not customized with QSS. > > As this had been observed only on my windows 7 development machine, I > initially thought of a bug on my system related to messed up GPU drivers. > But has also been reported by my customers now, under windows 10, on a > clean system. > > Actual question : Is this already identified as a bug? I could not find a > related entry in the bug tracker but this is not easy to find > > I will try getting a screenshot of the issue along with the equivalent > "normal" display > > Thanks in advance, > > Etienne > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bo at vikingsoft.eu Wed Apr 20 12:04:51 2016 From: bo at vikingsoft.eu (Bo Thorsen) Date: Wed, 20 Apr 2016 12:04:51 +0200 Subject: [Interest] Probable Qt bug in widgets display In-Reply-To: References: Message-ID: <57175443.3090601@vikingsoft.eu> Den 20-04-2016 kl. 10:56 skrev Etienne Sandré-Chardonnal: > Here are two screenshots: > > Normal display : http://www.eclat-digital.com/downloads/qtbug-normal.png > Bugged display : http://www.eclat-digital.com/downloads/qtbug-issue.png This looks like a paint bug to me. The best way forward for you is to create a small self contained application that shows the problem. In this case, it should probably be possible to do it in 10 lines of code or so. And then add a description on how to reproduce it. Create a bug report with those two things. The good thing about the small test case is that you also make it very clear if it really is a Qt bug or if you did something on your side that triggers it. Bo Thorsen, Director, Viking Software. -- Viking Software Qt and C++ developers for hire http://www.vikingsoft.eu From ramitix at yahoo.com Wed Apr 20 16:25:43 2016 From: ramitix at yahoo.com (Ramy Atalla) Date: Wed, 20 Apr 2016 14:25:43 +0000 (UTC) Subject: [Interest] [QT3D] Lights References: <1659610835.4093259.1461162343497.JavaMail.yahoo.ref@mail.yahoo.com> Message-ID: <1659610835.4093259.1461162343497.JavaMail.yahoo@mail.yahoo.com> HelloThere are different kinds of lights (Spot,Point,Directional,etc) in QT3D,I am trying to emulate a car headlights with foggy rays effect and taillights glowing effect . which one you recommend to use and if you can provide me with a simple example will be great.Thanks Ramy -------------- next part -------------- An HTML attachment was scrubbed... URL: From ramitix at yahoo.com Wed Apr 20 16:45:08 2016 From: ramitix at yahoo.com (Ramy Atalla) Date: Wed, 20 Apr 2016 14:45:08 +0000 (UTC) Subject: [Interest] Change image.source onClicked with if statement function References: <343804094.4086115.1461163508882.JavaMail.yahoo.ref@mail.yahoo.com> Message-ID: <343804094.4086115.1461163508882.JavaMail.yahoo@mail.yahoo.com> Hello I am trying to emulate a traffic light,I have four images to toggle between,I made a function to check the equality of the source image and change it on click,but it doesn't work,I think the problem in checking the equality of the source. Any ideas...ThanksRamyimport QtQuick 2.4 Item{ id:traffic_light property string property3: "vector-traffic-light-3.png" //green property string property2: "vector-traffic-light-2.png" //yellow property string property1: "vector-traffic-light-1.png" //red property string property0: "vector-traffic-light-0.png" //off function toggle() { if (trafficlight.source == property0) trafficlight.source = property1; else if (trafficlight.source == property1) trafficlight.source = property2; else if (trafficlight.source == property2) trafficlight.source = property3; else if (trafficlight.source == property3) trafficlight.source =property0; } Image { id: trafficlight x: 30 y: 30 width: 43 height: 140 opacity: 0.7 source: property1 MouseArea { x: 0 y: 0 width: 43 height: 140 hoverEnabled: true onClicked:toggle()      }     } } -------------- next part -------------- An HTML attachment was scrubbed... URL: From tr3w at freemail.hu Wed Apr 20 16:49:22 2016 From: tr3w at freemail.hu (Tr3wory) Date: Wed, 20 Apr 2016 16:49:22 +0200 Subject: [Interest] No resize after hiding the navigation bar on Android under QML. Message-ID: Hi all, I have a full screen QML application on Android. I create a QQuickView in main() and use showFullscreen() to show it. On my Samsung phone (with physical navigation buttons) everything is fine, the status bar gets hidden, and my application uses the full area of the screen. On my Nexus (with on-screen navigation bar) the status bar and the navigation bar gets hidden, but my application does not use the full screen, the area under the (now hidden) navigation bar is light gray, and unusable. After some research, it looks like in native Android code I would need to set the system ui visibility to SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | SYSTEM_UI_FLAG_LAYOUT_STABLE, but I can't find a way to do that from Qt. Does anybody faced the same problem? Best, tr3w -------------- next part -------------- An HTML attachment was scrubbed... URL: From jhihn at gmx.com Wed Apr 20 17:24:41 2016 From: jhihn at gmx.com (Jason H) Date: Wed, 20 Apr 2016 17:24:41 +0200 Subject: [Interest] Cellular Radio information? In-Reply-To: <5715BB8A.6090803@canonical.com> References: , <5715BB8A.6090803@canonical.com> Message-ID: > On 19/04/16 05:23, Jason H wrote: > > Is there a way to access the radio info (dB, SNR) or even just overall data connection quality using Qt? > > > > I know there is a Radio QML type, but this seems to be FM broadcast radio. > > In the unreleased QtSystems module in QtSystemInfo there is something > like that, but depending on your platform, it may or may not work. There > is no current iOS and Android support in QtSystemInfo. > > But since it is unreleased, we can add to the API and additional > platforms at any time, if there was someone to work on those. Thanks for the info. My app is used in rural and areas with low connectivity and needs to upload a lot of data. I was just looking to get an idea if they are having signal issues or some other kind of issue. My current MO is to get the GPS location then look it up on OpenSignalMaps, and deduce what their signal should be. It's not a complete database. So I was hoping the signal info could also be used to trigger an attempt when it got a "good enough" signal. From etienne.sandre at m4x.org Wed Apr 20 18:09:27 2016 From: etienne.sandre at m4x.org (=?UTF-8?Q?Etienne_Sandr=C3=A9=2DChardonnal?=) Date: Wed, 20 Apr 2016 18:09:27 +0200 Subject: [Interest] Probable Qt bug in widgets display In-Reply-To: <57175443.3090601@vikingsoft.eu> References: <57175443.3090601@vikingsoft.eu> Message-ID: Good news, I have a MCVE and precise conditions to trigger the bug with 100% success on my machine. You need a QMainWindow, a custom application wide dark QPalette, a custom stylesheet "QMainWindow { background: palette(base); }" 1) Launch the application on a machine (via RDP or locally) 2) Connect to that desktop via RDP with Visual Styles disabled (this disables Aero) The window, which was dark, is now white. I'll file a bug of course 2016-04-20 12:04 GMT+02:00 Bo Thorsen : > Den 20-04-2016 kl. 10:56 skrev Etienne Sandré-Chardonnal: > >> Here are two screenshots: >> >> Normal display : http://www.eclat-digital.com/downloads/qtbug-normal.png >> Bugged display : http://www.eclat-digital.com/downloads/qtbug-issue.png >> > > This looks like a paint bug to me. The best way forward for you is to > create a small self contained application that shows the problem. In this > case, it should probably be possible to do it in 10 lines of code or so. > And then add a description on how to reproduce it. Create a bug report with > those two things. > > The good thing about the small test case is that you also make it very > clear if it really is a Qt bug or if you did something on your side that > triggers it. > > Bo Thorsen, > Director, Viking Software. > > -- > Viking Software > Qt and C++ developers for hire > http://www.vikingsoft.eu > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jerome at bodycad.com Wed Apr 20 18:54:18 2016 From: jerome at bodycad.com (=?UTF-8?B?SsOpcsO0bWUgR29kYm91dA==?=) Date: Wed, 20 Apr 2016 12:54:18 -0400 Subject: [Interest] Change image.source onClicked with if statement function In-Reply-To: <343804094.4086115.1461163508882.JavaMail.yahoo@mail.yahoo.com> References: <343804094.4086115.1461163508882.JavaMail.yahoo.ref@mail.yahoo.com> <343804094.4086115.1461163508882.JavaMail.yahoo@mail.yahoo.com> Message-ID: Take care, image source is an url (QUrl) and the property are string. You should try to put a State here, would be nicer to control the image source and other behavior. a *'red', 'green', 'yellow', 'off'* state would be nice. You could even use the image name with the state name: *Item{ id:traffic_light states: [* * State{ name: 'off' }* * , State{ name: 'green' }* * , State{ name: 'yellow' }* * , State{ name: 'red' }* * ]* *...* * Image * * {* * ...* * source: 'vector-traffic-light-' + traffic_light.state.name + '.png'* * ...* * }* *}* http://doc.qt.io/qt-5/qml-qtquick-state.html Seem easier to maintain, less code if a new state is added. Image have a better naming to maintain too. On Wed, Apr 20, 2016 at 10:45 AM, Ramy Atalla via Interest < interest at qt-project.org> wrote: > Hello > I am trying to emulate a traffic light,I have four images to toggle > between,I made a function to check the equality of the source image and > change it on click,but it doesn't work,I think the problem in checking the > equality of the source. Any ideas... > Thanks > Ramy > > import QtQuick 2.4 > > > Item{ > > id:traffic_light > > > property string property3: "vector-traffic-light-3.png" //green > > property string property2: "vector-traffic-light-2.png" //yellow > > property string property1: "vector-traffic-light-1.png" //red > > property string property0: "vector-traffic-light-0.png" //off > > > function toggle() > > { > > if (trafficlight.source == property0) > > trafficlight.source = property1; > > else if > > (trafficlight.source == property1) > > trafficlight.source = property2; > > else if > > (trafficlight.source == property2) > > trafficlight.source = property3; > > else if > > (trafficlight.source == property3) > > trafficlight.source =property0; > > } > > > > Image { > > id: trafficlight > > x: 30 > > y: 30 > > width: 43 > > height: 140 > > opacity: 0.7 > > source: property1 > > > MouseArea { > > x: 0 > > y: 0 > > > width: 43 > > height: 140 > > hoverEnabled: true > > onClicked:toggle() > > } > > > } > > > } > > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From harald.vistnes at gmail.com Wed Apr 20 19:54:01 2016 From: harald.vistnes at gmail.com (Harald Vistnes) Date: Wed, 20 Apr 2016 19:54:01 +0200 Subject: [Interest] [QT3D] Lights In-Reply-To: <1659610835.4093259.1461162343497.JavaMail.yahoo@mail.yahoo.com> References: <1659610835.4093259.1461162343497.JavaMail.yahoo.ref@mail.yahoo.com> <1659610835.4093259.1461162343497.JavaMail.yahoo@mail.yahoo.com> Message-ID: Hi Ramy, The lights in in Qt3D are virtual lights, they light up objects in the scene, but the lights themselves are not visible. To achieve what you are describing, you need a more sophisticated rendering algorithm. You should be able to do it in Qt3D, but not simply by using the built-in lights. A good way to start is probably to google 'volumetric lighting'. Happy hacking :) Cheers, Harald On Apr 20, 2016 16:27, "Ramy Atalla via Interest" wrote: > Hello > There are different kinds of lights (Spot,Point,Directional,etc) in QT3D,I > am trying to emulate a car headlights with foggy rays effect and taillights > glowing effect . which one you recommend to use and if you can provide me > with a simple example will be great. > Thanks > Ramy > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jerome at bodycad.com Wed Apr 20 21:43:17 2016 From: jerome at bodycad.com (=?UTF-8?B?SsOpcsO0bWUgR29kYm91dA==?=) Date: Wed, 20 Apr 2016 15:43:17 -0400 Subject: [Interest] [Qt][Qml] Using OpenGL CoreProfile status Message-ID: Hi, We have move from 5.2 to 5.5, we are trying to plan to move to OpenGL CoreProfile and finaly ditch the old CompatiblityProfile. Normaly I would just test it out, but I have another library that need to be port too (we are using VL 1.0, which doesn't play well with CoreProfile, there's a 2.0 branch but it's not there yet.). So I cannot just move our code base like that. I would like to known if I should plan much work to move our Qt / Qml implementation to CoreProfile ? Controls were still buggy in core profile not so long ago in 5.2 at least, I wonder if this still the case? is anything else like QmlShader GraphicalEffect are playing nicely with core profile? Thanks for your inputs, Jerome -------------- next part -------------- An HTML attachment was scrubbed... URL: From freddy311082 at gmail.com Thu Apr 21 01:49:01 2016 From: freddy311082 at gmail.com (Freddy Martinez Garcia) Date: Wed, 20 Apr 2016 20:49:01 -0300 Subject: [Interest] expanda tab depending of QTabWidget Message-ID: <15068682-0816-49BB-94C0-0B470A8C2F56@gmail.com> Hi guys, I don’t know how ask this question, even ai don’t know how really I nee to looking for because I don’t know what’s the name of the QTabWidget property which let me as Finder does in OS X. In OS X, if you create a new tab, we could see that each tab is expanding in the entire width of the application, it’s mean that if I have 3 tabs, the width of each tab will be the width of the QTabWidget / 3 Has Qt any way to do that ? regards -------------- next part -------------- An HTML attachment was scrubbed... URL: From sean.harmer at kdab.com Thu Apr 21 10:19:41 2016 From: sean.harmer at kdab.com (Sean Harmer) Date: Thu, 21 Apr 2016 09:19:41 +0100 Subject: [Interest] [Qt][Qml] Using OpenGL CoreProfile status In-Reply-To: References: Message-ID: <14469053.U7mt5J7zg8@cartman> Hi, On Wednesday 20 April 2016 15:43:17 Jérôme Godbout wrote: > Hi, > We have move from 5.2 to 5.5, we are trying to plan to move to OpenGL > CoreProfile and finaly ditch the old CompatiblityProfile. > > Normaly I would just test it out, but I have another library that need to > be port too (we are using VL 1.0, which doesn't play well with CoreProfile, > there's a 2.0 branch but it's not there yet.). So I cannot just move our > code base like that. > > I would like to known if I should plan much work to move our Qt / Qml > implementation to CoreProfile ? > > Controls were still buggy in core profile not so long ago in 5.2 at least, > I wonder if this still the case? is anything else like QmlShader > GraphicalEffect are playing nicely with core profile? I think I fixed the broken shader that the core profile was complaining about. The thing to watch out for is if your application makes use of ShaderEffect directly or via QtGraphicalEffects. For direct use you'll need to port the GLSL - there's still no way of selecting between shaders based upon the profile or version in use within Qt Quick. I've not tried the qtgraphicaleffects module with core profile, it may well need porting which given the above comment about not being able to detect profile in use may be interesting. Other than that I think Qt Quick 2 works fine with the core profile. If you find something that doesn't, please file a JIRA. Cheers, Sean -- Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK KDAB (UK) Ltd, a KDAB Group company Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090 Mobile: +44 (0)7545 140604 KDAB - Qt Experts From jianliang79 at gmail.com Thu Apr 21 10:30:11 2016 From: jianliang79 at gmail.com (Liang Jian) Date: Thu, 21 Apr 2016 16:30:11 +0800 Subject: [Interest] [qt-android][qt-iOS] Is it possible to disable page scrolling when software keyboard is being shown? Message-ID: Hello everyone, One of the page in our qml app have an input box(such as a TextEdit element) at the bottom, when user press the input box the software keyboard will show, and we want the background of the page keep still while the input box scroll to the top of software keyboard. The current Qt implementation will always scroll the whole page which make it impossible to implement this behaviour. We have to use native UI element to implement this(in both android and iOS) which require too much code. Is it possible to disable page scrolling while showing software keyboard? If that is possible then we can implement this behaviour easily. -------------- next part -------------- An HTML attachment was scrubbed... URL: From xbenlau at gmail.com Thu Apr 21 11:21:43 2016 From: xbenlau at gmail.com (Ben Lau) Date: Thu, 21 Apr 2016 17:21:43 +0800 Subject: [Interest] Replacement for Qt Script In-Reply-To: <1542a059e36.d48b88b325117.8920365609194802839@geekcentral.pub> References: <154295f42cb.ba0c169812466.4273668350241725627@geekcentral.pub> <15429ba831b.d5d1db0d19374.8652381181883885697@geekcentral.pub> <1542a059e36.d48b88b325117.8920365609194802839@geekcentral.pub> Message-ID: On 18 April 2016 at 23:38, Ian Geiser wrote: > ---- On Mon, 18 Apr 2016 11:06:59 -0400 Jason H wrote > ---- > > ttps:// > forum.qt.io/topic/52306/qt-5-5-qt-script-deprecated-what-is-replacement/12 > > > > > > I saw this thread, but it did not seem to offer a clear detail other > than to use QJSEngine and QJSValue directly. Specifically I use > qScriptRegisterMetaType very heavy to add custom types. I know if I am > using QML I can use qmlRegisterType(uri, 1, 0, "T") but it only makes > the type available via the declarative components. It also requires the > object be a QObject which means sharing pointers. There is also a problem > inside of the Javascript. It is very cumbersome to dynamically create > these types. I understand I am fighting QML, but my design is not as > declarative as it is creating objects that can be passed back into C++. I > may be missing something though. > > > > > > As an example below with a type called MyStruct: > > > > > > ... Qt Script... > > > > > > var myStruct = new MyStruct(); > > > myStruct.x = 10; > > > > > > ....QML... > > > > > > var myStruct; > > > var component = Qt.createComponent(???); > > > if (component.status == Component.Ready) { > > > myStruct = component.createObject(parent, {"x": 100, "y": > 100}); > > > } > > > > > > What would ??? be? > > > > If MyStruct is just a JS object, then just use JS. function MyStruct(){ > return {"x": 100, "y": 100}; }; var myStruct = new MyStruct(); > > You only need createObject when you are creating an object defined in > C++ or dynamic object from QML. > > That is my rub here. These are custom QML components that are being > created in JS and then passed back into the C++ end of things. The goal > being I want to be able to write "plugins" for my app using JS instead of > C++. So I am creating and manipulating custom types that are then used to > manipulate and extend the C++. I may be making this harder than it needs > to be though. I will give it a try with the non-gui QML components and see > how far I get. > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > Suggestion 1. Register a singleton QML component by C++. 2. The C++ component provides hook function (callback in Javascript) registration. void MyAPI::registerHook(QJSValue callback) { } 3. Whatever an event occur, call the hook function. QJSValueList args; QJSValue ret = callback.call(args); -------------- next part -------------- An HTML attachment was scrubbed... URL: From boud at valdyas.org Thu Apr 21 12:29:05 2016 From: boud at valdyas.org (Boudewijn Rempt) Date: Thu, 21 Apr 2016 12:29:05 +0200 (CEST) Subject: [Interest] Adding existing QObjects to QJSEngine Message-ID: I want to make Krita scriptable, maybe with QJSengine. I'm trying to give the js engine access to the existing objects in Krita: the images, documents, windows etc. >From the documentation, I though I would have to use QJSEngine.newQObject, but that takes ownership and deletes the objects as soon as the engine goes out of scope. I thought it would work like the way one can register existing objects with registerContextProperty()... Here is what I'm trying to do: { QString script = m_scriptEditor->ui->txtScript->document()->toPlainText(); if (script.isEmpty()) return; QJSEngine engine; engine.installExtensions(QJSEngine::AllExtensions); if (m_canvas) { QJSValue canvas = engine.newQObject(dynamic_cast(m_canvas)); engine.globalObject().setProperty("currentCanvas", canvas); } QJSValue part = engine.newQObject(KisPart::instance()); engine.globalObject().setProperty("KisPart", part); QString output = engine.evaluate(script).toString(); m_scriptEditor->ui->txtOutput->document()->setPlainText(output); } -- Boudewijn Rempt | http://www.krita.org, http://www.valdyas.org From Kai.Koehne at qt.io Thu Apr 21 12:47:50 2016 From: Kai.Koehne at qt.io (Kai Koehne) Date: Thu, 21 Apr 2016 10:47:50 +0000 Subject: [Interest] Adding existing QObjects to QJSEngine In-Reply-To: References: Message-ID: -- Kai Köhne, Senior Manager R&D | The Qt Company The Qt Company GmbH, Rudower Chaussee 13, D-12489 Berlin Geschäftsführer: Mika Pälsi, Juha Varelius, Tuula Haataja. Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 144331 B > -----Original Message----- > From: Interest [mailto:interest-bounces+kai.koehne=qt.io at qt-project.org] > On Behalf Of Boudewijn Rempt > Sent: Thursday, April 21, 2016 12:29 PM > To: interest at qt-project.org > Subject: [Interest] Adding existing QObjects to QJSEngine > > I want to make Krita scriptable, maybe with QJSengine. I'm trying to give the > js engine access to the existing objects in Krita: the images, documents, > windows etc. > > From the documentation, I though I would have to use > QJSEngine.newQObject, but that takes ownership and deletes the objects as > soon as the engine goes out of scope. You should be able to change that with QQmlEngine::setObjectOwnership [1] (yes, it's QQmlEngine, but I'd assume it works nevertheless also for QJSEngine instances). Regards Kai [1]: http://doc.qt.io/qt-5/qqmlengine.html#setObjectOwnership From flamaros.xavier at gmail.com Thu Apr 21 12:51:27 2016 From: flamaros.xavier at gmail.com (Xavier Bigand) Date: Thu, 21 Apr 2016 12:51:27 +0200 Subject: [Interest] [Qt3D] Distance field and texture atlas Message-ID: Hi, Is there any plans to let the user control distance field and texture atlas? We are interested by the distance field for text and icons rendering as we apply scale and rotation on some small elements. We have to much elements to regenerate textures at the right size from svg or ttf, and doing a cache can consume a lot of memory. Texture atlas can also a good thing to improve performances, but with new API that are coming like vulkan the interest will decrease, so this feature will be interesting only for few years. -- Xavier -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander_carot at gmx.net Thu Apr 21 13:49:13 2016 From: alexander_carot at gmx.net (=?UTF-8?Q?=22Alexander_Car=C3=B4t=22?=) Date: Thu, 21 Apr 2016 13:49:13 +0200 Subject: [Interest] qtWebsocket SSL question In-Reply-To: References: , Message-ID: An HTML attachment was scrubbed... URL: From alexander_carot at gmx.net Thu Apr 21 14:05:52 2016 From: alexander_carot at gmx.net (=?UTF-8?Q?=22Alexander_Car=C3=B4t=22?=) Date: Thu, 21 Apr 2016 14:05:52 +0200 Subject: [Interest] Convert IPv6 to IPv4 ? Message-ID: Hello, I noticed that retrieving a sender's IP address of a QWebSocket via ->peerAddress() returns an IPv6 socket address. For certain reasons I need an IPv4 address so I wonder how it is possible to either let ->peerAddress() return an IPv4 address or convert the IPv6 address to an IPv4 address. Thanks in advance, best Alex -- http://www.carot.de Email : Alexander at Carot.de Tel.: +49 (0)177 5719797 From sean.harmer at kdab.com Thu Apr 21 14:34:21 2016 From: sean.harmer at kdab.com (Sean Harmer) Date: Thu, 21 Apr 2016 13:34:21 +0100 Subject: [Interest] [Qt3D] Distance field and texture atlas In-Reply-To: References: Message-ID: <2895010.WFSV69cvr7@cartman> On Thursday 21 April 2016 12:51:27 Xavier Bigand wrote: > Hi, > > Is there any plans to let the user control distance field and texture atlas? > We are interested by the distance field for text and icons rendering as we > apply scale and rotation on some small elements. We have to much elements > to regenerate textures at the right size from svg or ttf, and doing a cache > can consume a lot of memory. What do you want to control? QML text elements use a distance field glyph cache out of the box (unless you force it to native rendering). I think the vertical size of this is hard wired for now. In theory it could be exposed. Afaik Image elements don't use a distance field at all, so you would need to write a custom QQuickItem plus material to make use of distance fields here. > Texture atlas can also a good thing to improve performances, but with new > API that are coming like vulkan the interest will decrease, so this feature > will be interesting only for few years. That assumes a backend to Qt Quick that uses something which supports bindless textures. Cheers, Sean -- Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK KDAB (UK) Ltd, a KDAB Group company Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090 Mobile: +44 (0)7545 140604 KDAB - Qt Experts From flamaros.xavier at gmail.com Thu Apr 21 14:50:55 2016 From: flamaros.xavier at gmail.com (Xavier Bigand) Date: Thu, 21 Apr 2016 14:50:55 +0200 Subject: [Interest] [Qt3D] Distance field and texture atlas In-Reply-To: <2895010.WFSV69cvr7@cartman> References: <2895010.WFSV69cvr7@cartman> Message-ID: I know that QtQuick already manage the distance field for text elements, but I want to be able to use it with Qt3D too. Our Qt3D objects are managed in C++ code not in QML, we prefer to not bind those elements in QML because of the memory overhead. Does the backend of QML and Qt3D share the same Rendering backend? 2016-04-21 14:34 GMT+02:00 Sean Harmer : > On Thursday 21 April 2016 12:51:27 Xavier Bigand wrote: > > Hi, > > > > Is there any plans to let the user control distance field and texture > atlas? > > We are interested by the distance field for text and icons rendering as > we > > apply scale and rotation on some small elements. We have to much elements > > to regenerate textures at the right size from svg or ttf, and doing a > cache > > can consume a lot of memory. > > What do you want to control? QML text elements use a distance field glyph > cache > out of the box (unless you force it to native rendering). I think the > vertical > size of this is hard wired for now. In theory it could be exposed. > > Afaik Image elements don't use a distance field at all, so you would need > to > write a custom QQuickItem plus material to make use of distance fields > here. > > > Texture atlas can also a good thing to improve performances, but with new > > API that are coming like vulkan the interest will decrease, so this > feature > > will be interesting only for few years. > > That assumes a backend to Qt Quick that uses something which supports > bindless > textures. > > Cheers, > > Sean > -- > Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK > KDAB (UK) Ltd, a KDAB Group company > Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090 > Mobile: +44 (0)7545 140604 > KDAB - Qt Experts > -- Xavier -------------- next part -------------- An HTML attachment was scrubbed... URL: From sean.harmer at kdab.com Thu Apr 21 15:02:36 2016 From: sean.harmer at kdab.com (Sean Harmer) Date: Thu, 21 Apr 2016 14:02:36 +0100 Subject: [Interest] [Qt3D] Distance field and texture atlas In-Reply-To: References: <2895010.WFSV69cvr7@cartman> Message-ID: <3748240.rMo8S3g0j4@cartman> Hi, On Thursday 21 April 2016 14:50:55 Xavier Bigand wrote: > I know that QtQuick already manage the distance field for text elements, > but I want to be able to use it with Qt3D too. > Our Qt3D objects are managed in C++ code not in QML, we prefer to not bind > those elements in QML because of the memory overhead. Oh sorry, I didn't realise you were talking about Qt 3D. Qt 3D does not use distance fields at all in any out of the box materials at this stage. You will need to write a custom Material/Effect to sample from the distance fields. Can you elaborate a bit on your particular use case please? Maybe this is something we can integrate for Qt 5.8? > Does the backend of QML and Qt3D share the same Rendering backend? No. The integration point is in the Scene3D item. Other than that Qt 3D is distinct from Qt Quick. Cheers, Sean > > 2016-04-21 14:34 GMT+02:00 Sean Harmer : > > On Thursday 21 April 2016 12:51:27 Xavier Bigand wrote: > > > Hi, > > > > > > Is there any plans to let the user control distance field and texture > > > > atlas? > > > > > We are interested by the distance field for text and icons rendering as > > > > we > > > > > apply scale and rotation on some small elements. We have to much > > > elements > > > to regenerate textures at the right size from svg or ttf, and doing a > > > > cache > > > > > can consume a lot of memory. > > > > What do you want to control? QML text elements use a distance field glyph > > cache > > out of the box (unless you force it to native rendering). I think the > > vertical > > size of this is hard wired for now. In theory it could be exposed. > > > > Afaik Image elements don't use a distance field at all, so you would need > > to > > write a custom QQuickItem plus material to make use of distance fields > > here. > > > > > Texture atlas can also a good thing to improve performances, but with > > > new > > > API that are coming like vulkan the interest will decrease, so this > > > > feature > > > > > will be interesting only for few years. > > > > That assumes a backend to Qt Quick that uses something which supports > > bindless > > textures. > > > > Cheers, > > > > Sean > > -- > > Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK > > KDAB (UK) Ltd, a KDAB Group company > > Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090 > > Mobile: +44 (0)7545 140604 > > KDAB - Qt Experts -- Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK KDAB (UK) Ltd, a KDAB Group company Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090 Mobile: +44 (0)7545 140604 KDAB - Qt Experts From jerome at bodycad.com Thu Apr 21 15:21:11 2016 From: jerome at bodycad.com (=?UTF-8?B?SsOpcsO0bWUgR29kYm91dA==?=) Date: Thu, 21 Apr 2016 09:21:11 -0400 Subject: [Interest] [Qt][Qml] Using OpenGL CoreProfile status In-Reply-To: <14469053.U7mt5J7zg8@cartman> References: <14469053.U7mt5J7zg8@cartman> Message-ID: Thanks Sean, this is roughly what I was expecting. If anybody have try the GraphicalEffects with core profiles I would love to have your inputs. Thanks again, Jerome On Thu, Apr 21, 2016 at 4:19 AM, Sean Harmer wrote: > Hi, > > On Wednesday 20 April 2016 15:43:17 Jérôme Godbout wrote: > > Hi, > > We have move from 5.2 to 5.5, we are trying to plan to move to OpenGL > > CoreProfile and finaly ditch the old CompatiblityProfile. > > > > Normaly I would just test it out, but I have another library that need to > > be port too (we are using VL 1.0, which doesn't play well with > CoreProfile, > > there's a 2.0 branch but it's not there yet.). So I cannot just move our > > code base like that. > > > > I would like to known if I should plan much work to move our Qt / Qml > > implementation to CoreProfile ? > > > > Controls were still buggy in core profile not so long ago in 5.2 at > least, > > I wonder if this still the case? is anything else like QmlShader > > GraphicalEffect are playing nicely with core profile? > > I think I fixed the broken shader that the core profile was complaining > about. > The thing to watch out for is if your application makes use of ShaderEffect > directly or via QtGraphicalEffects. For direct use you'll need to port the > GLSL - there's still no way of selecting between shaders based upon the > profile > or version in use within Qt Quick. I've not tried the qtgraphicaleffects > module with core profile, it may well need porting which given the above > comment about not being able to detect profile in use may be interesting. > > Other than that I think Qt Quick 2 works fine with the core profile. If > you find > something that doesn't, please file a JIRA. > > Cheers, > > Sean > -- > Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK > KDAB (UK) Ltd, a KDAB Group company > Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090 > Mobile: +44 (0)7545 140604 > KDAB - Qt Experts > -------------- next part -------------- An HTML attachment was scrubbed... URL: From flamaros.xavier at gmail.com Thu Apr 21 16:04:47 2016 From: flamaros.xavier at gmail.com (Xavier Bigand) Date: Thu, 21 Apr 2016 16:04:47 +0200 Subject: [Interest] [Qt3D] Distance field and texture atlas In-Reply-To: <3748240.rMo8S3g0j4@cartman> References: <2895010.WFSV69cvr7@cartman> <3748240.rMo8S3g0j4@cartman> Message-ID: I am working on an architecture and design software. There is a lot of feature in Qt3D that interest us for our software, I already have made a prototype based on Qt3D as replacement of our homebrew 3D engine. I am interesting in improving rendering of 2D elements : [image: Images intégrées 2] As you can see with our engine the scale can cut texts and grips aren't well filtered. Using distance field can help a lot because all elements can be scaled during the zoom. PS: We also think to add MSAA filtering 2016-04-21 15:02 GMT+02:00 Sean Harmer : > Hi, > > On Thursday 21 April 2016 14:50:55 Xavier Bigand wrote: > > I know that QtQuick already manage the distance field for text elements, > > but I want to be able to use it with Qt3D too. > > Our Qt3D objects are managed in C++ code not in QML, we prefer to not > bind > > those elements in QML because of the memory overhead. > > Oh sorry, I didn't realise you were talking about Qt 3D. Qt 3D does not use > distance fields at all in any out of the box materials at this stage. You > will > need to write a custom Material/Effect to sample from the distance fields. > Can > you elaborate a bit on your particular use case please? Maybe this is > something we can integrate for Qt 5.8? > > > Does the backend of QML and Qt3D share the same Rendering backend? > > No. The integration point is in the Scene3D item. Other than that Qt 3D is > distinct from Qt Quick. > > Cheers, > > Sean > > > > > 2016-04-21 14:34 GMT+02:00 Sean Harmer : > > > On Thursday 21 April 2016 12:51:27 Xavier Bigand wrote: > > > > Hi, > > > > > > > > Is there any plans to let the user control distance field and texture > > > > > > atlas? > > > > > > > We are interested by the distance field for text and icons rendering > as > > > > > > we > > > > > > > apply scale and rotation on some small elements. We have to much > > > > elements > > > > to regenerate textures at the right size from svg or ttf, and doing a > > > > > > cache > > > > > > > can consume a lot of memory. > > > > > > What do you want to control? QML text elements use a distance field > glyph > > > cache > > > out of the box (unless you force it to native rendering). I think the > > > vertical > > > size of this is hard wired for now. In theory it could be exposed. > > > > > > Afaik Image elements don't use a distance field at all, so you would > need > > > to > > > write a custom QQuickItem plus material to make use of distance fields > > > here. > > > > > > > Texture atlas can also a good thing to improve performances, but with > > > > new > > > > API that are coming like vulkan the interest will decrease, so this > > > > > > feature > > > > > > > will be interesting only for few years. > > > > > > That assumes a backend to Qt Quick that uses something which supports > > > bindless > > > textures. > > > > > > Cheers, > > > > > > Sean > > > -- > > > Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK > > > KDAB (UK) Ltd, a KDAB Group company > > > Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090 > > > Mobile: +44 (0)7545 140604 > > > KDAB - Qt Experts > > -- > Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK > KDAB (UK) Ltd, a KDAB Group company > Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090 > Mobile: +44 (0)7545 140604 > KDAB - Qt Experts > -- Xavier -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image.png Type: image/png Size: 551290 bytes Desc: not available URL: From edward.sutton at subsite.com Thu Apr 21 16:35:58 2016 From: edward.sutton at subsite.com (Edward Sutton) Date: Thu, 21 Apr 2016 14:35:58 +0000 Subject: [Interest] How add an Android package to qmake project file? Message-ID: <450E7BA5-F3FE-4074-BE79-0B22EF102C9D@subsite.com> I need to add package android.support.v4.content.ContextCompat so I can fix Android 6.0 from breaking my Qt Android app. Can this be done in the quake project file? android-g++ { message ("****************** android-g++ ***********************" ) ANDROID_PACKAGE_SOURCE_DIR = $$PWD/platform/android QT += androidextras QT += bluetooth } -Ed This email and any files transmitted with it from The Charles Machine Works, Inc. are confidential and intended solely for the use of the individual or entity to which they are addressed. If you have received this email in error please notify the sender. Our company accepts no liability for the contents of this email, or for the consequences of any actions taken on the basis of the information provided, unless that information is subsequently confirmed in writing. Please note that any views or opinions presented in this email are solely those of the author and do not necessarily represent those of the company. Finally, the recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jhihn at gmx.com Thu Apr 21 16:43:14 2016 From: jhihn at gmx.com (Jason H) Date: Thu, 21 Apr 2016 16:43:14 +0200 Subject: [Interest] How add an Android package to qmake project file? In-Reply-To: <450E7BA5-F3FE-4074-BE79-0B22EF102C9D@subsite.com> References: <450E7BA5-F3FE-4074-BE79-0B22EF102C9D@subsite.com> Message-ID: An HTML attachment was scrubbed... URL: From jhihn at gmx.com Thu Apr 21 16:48:16 2016 From: jhihn at gmx.com (Jason H) Date: Thu, 21 Apr 2016 16:48:16 +0200 Subject: [Interest] Android Sudio 2.0.0 - Instant Run? Message-ID: I got this message after upgrading studio: "The project is using an old version of the Android Gradle plugin. To take advantage of all the latest features, such as Instant Run, we strongly recommend that you update the Android Gradle plugin to version 2.0.0. You can learn more about this version of the plugin from the release notes." I'm assuming IR is not compatible with the Qt build process, or is it? From b.terrier at gmail.com Thu Apr 21 16:51:08 2016 From: b.terrier at gmail.com (Benjamin TERRIER) Date: Thu, 21 Apr 2016 16:51:08 +0200 Subject: [Interest] Convert IPv6 to IPv4 ? In-Reply-To: References: Message-ID: Hi Alexander, First there is no way to convert an IPv6 to an IPv4. A given machine can have an IPv6 address without an IPv4 address, or have an IPv4 address without an IPv6 address, or one of each, or many addresses of each type. If you want peerAddress() to only return IPv4 addresses you must ensure that you cannot be joined with an IPv6 address. One solution, if you are using an QWebSocketServer, is that when you process new connections (i.e when you call nextPendingConnection()) you reject them is the peer address is an IPv6 address. The fallback might be that if a client tries to contact your server through IPv6 first, it might not try IPv4 next and believe that your server is not available. Another solution is to remove the AAAA field from your DNS record (if applicable), but it might make collateral damages if you have multiple applications running on same server. My advice on this is that you should not require IPv4 addresses but must handles both. Especially if your application is going to be used for a long time. Regards, Benjamin 2016-04-21 14:05 GMT+02:00 "Alexander Carôt" : > Hello, > > I noticed that retrieving a sender's IP address of a QWebSocket via ->peerAddress() returns an IPv6 socket address. > > For certain reasons I need an IPv4 address so I wonder how it is possible to either let ->peerAddress() return an IPv4 address or convert the IPv6 address to an IPv4 address. > > Thanks in advance, > best > > Alex > > -- > http://www.carot.de > Email : Alexander at Carot.de > Tel.: +49 (0)177 5719797 > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest From jhihn at gmx.com Thu Apr 21 16:51:56 2016 From: jhihn at gmx.com (Jason H) Date: Thu, 21 Apr 2016 16:51:56 +0200 Subject: [Interest] No resize after hiding the navigation bar on Android under QML. In-Reply-To: References: Message-ID: An HTML attachment was scrubbed... URL: From nunosantos at imaginando.pt Thu Apr 21 17:50:23 2016 From: nunosantos at imaginando.pt (Nuno Santos) Date: Thu, 21 Apr 2016 16:50:23 +0100 Subject: [Interest] Deploying app with Qt Quick 2D Renderer failing Message-ID: Hi, I’m trying to deploy an app with Qt Quick 2D Renderer enabled. For that I have used qputenv to set QMLSCENE_DEVICE=softwarecontext When launching the app thru Qt Creator I can see the output much better than I usually do with OpenGL. However, after calling macdeployqt over it and running it normally, what I see is the usual OpenGL render result look. I have tried to launch the app thru the command line and call export QMLSCENE_DEVICE=softwarecontext before. That result! Maybe macdeployqt is not installing a required module. What should I look for? Does anyone has a clue of what might be causing this? By the way, I have two errors while installing Qt Quick 2D Renderer module thru the Maintenance Tool: Thanks, Regards, Nuno -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Screen Shot 2016-04-21 at 16.49.14.png Type: image/png Size: 35541 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Screen Shot 2016-04-21 at 16.49.23.png Type: image/png Size: 38548 bytes Desc: not available URL: From edward.sutton at subsite.com Thu Apr 21 18:34:39 2016 From: edward.sutton at subsite.com (Edward Sutton) Date: Thu, 21 Apr 2016 16:34:39 +0000 Subject: [Interest] How add an Android package to qmake project file? In-Reply-To: References: <450E7BA5-F3FE-4074-BE79-0B22EF102C9D@subsite.com> Message-ID: <97BB4AC6-6B97-4430-8BFC-16B92EF18608@subsite.com> >It's not done in the pro, it's done android-side in your grade or ant. Just do it as if it were an proper SDK Android app. I do not know how that is done. I build all platforms Android, iOS, windows, OS X using the qmake pro file. I created a /libs subfolder under ANDROID_PACKAGE_SOURCE_DIR and copied the android-support-v4.jar file. This seems to work but expect it may cause confusion when Android 7.0 is released and something breaks again. -Ed Sent: Thursday, April 21, 2016 at 10:35 AM From: "Edward Sutton" > To: "Qt Interest" > Subject: [Interest] How add an Android package to qmake project file? I need to add package android.support.v4.content.ContextCompat so I can fix Android 6.0 from breaking my Qt Android app. Can this be done in the quake project file? android-g++ { message ("****************** android-g++ ***********************" ) ANDROID_PACKAGE_SOURCE_DIR = $$PWD/platform/android QT += androidextras QT += bluetooth } -Ed This email and any files transmitted with it from The Charles Machine Works, Inc. are confidential and intended solely for the use of the individual or entity to which they are addressed. If you have received this email in error please notify the sender. Our company accepts no liability for the contents of this email, or for the consequences of any actions taken on the basis of the information provided, unless that information is subsequently confirmed in writing. Please note that any views or opinions presented in this email are solely those of the author and do not necessarily represent those of the company. Finally, the recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. _______________________________________________ Interest mailing list Interest at qt-project.org http://lists.qt-project.org/mailman/listinfo/interest This email and any files transmitted with it from The Charles Machine Works, Inc. are confidential and intended solely for the use of the individual or entity to which they are addressed. If you have received this email in error please notify the sender. Our company accepts no liability for the contents of this email, or for the consequences of any actions taken on the basis of the information provided, unless that information is subsequently confirmed in writing. Please note that any views or opinions presented in this email are solely those of the author and do not necessarily represent those of the company. Finally, the recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. -------------- next part -------------- An HTML attachment was scrubbed... URL: From nunosantos at imaginando.pt Thu Apr 21 18:38:52 2016 From: nunosantos at imaginando.pt (Nuno Santos) Date: Thu, 21 Apr 2016 17:38:52 +0100 Subject: [Interest] How add an Android package to qmake project file? In-Reply-To: <97BB4AC6-6B97-4430-8BFC-16B92EF18608@subsite.com> References: <450E7BA5-F3FE-4074-BE79-0B22EF102C9D@subsite.com> <97BB4AC6-6B97-4430-8BFC-16B92EF18608@subsite.com> Message-ID: <0157AC18-82C6-4794-98D0-779DB82E63DC@imaginando.pt> Eduard, Open projects tab in Qt Creator. Click the create templates button. Check the use grade checkbox. You can then use the maven repositories as follow: allprojects { repositories { jcenter() mavenCentral() maven { url 'http://maven.localytics.com/public' } maven { url 'https://github.com/kshoji/USB-MIDI-Driver/raw/master/MIDIDriver/snapshots' } } } apply plugin: 'com.android.application' dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.facebook.android:facebook-android-sdk:4.6.0' compile 'com.localytics.android:library:3.6+' compile 'jp.kshoji:midi-driver:0.1.4:@aar' } Nuno Santos Founder / CEO / CTO www.imaginando.pt +351 91 621 69 62 > On 21 Apr 2016, at 17:34, Edward Sutton wrote: > >> >> >> >It's not done in the pro, it's done android-side in your grade or ant. Just do it as if it were an proper SDK Android app. > > I do not know how that is done. I build all platforms Android, iOS, windows, OS X using the qmake pro file. > > I created a /libs subfolder under ANDROID_PACKAGE_SOURCE_DIR and copied the android-support-v4.jar file. > > This seems to work but expect it may cause confusion when Android 7.0 is released and something breaks again. > > -Ed > > >> >> Sent: Thursday, April 21, 2016 at 10:35 AM >> From: "Edward Sutton" > >> To: "Qt Interest" > >> Subject: [Interest] How add an Android package to qmake project file? >> I need to add package android.support.v4.content.ContextCompat >> >> so I can fix Android 6.0 from breaking my Qt Android app. >> >> Can this be done in the quake project file? >> >> >> android-g++ { >> >> message ("****************** android-g++ ***********************" ) >> ANDROID_PACKAGE_SOURCE_DIR = $$PWD/platform/android >> QT += androidextras >> QT += bluetooth >> >> } >> >> >> -Ed This email and any files transmitted with it from The Charles Machine Works, Inc. are confidential and intended solely for the use of the individual or entity to which they are addressed. If you have received this email in error please notify the sender. Our company accepts no liability for the contents of this email, or for the consequences of any actions taken on the basis of the information provided, unless that information is subsequently confirmed in writing. Please note that any views or opinions presented in this email are solely those of the author and do not necessarily represent those of the company. Finally, the recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. _______________________________________________ Interest mailing list Interest at qt-project.org http://lists.qt-project.org/mailman/listinfo/interest > This email and any files transmitted with it from The Charles Machine Works, Inc. are confidential and intended solely for the use of the individual or entity to which they are addressed. If you have received this email in error please notify the sender. Our company accepts no liability for the contents of this email, or for the consequences of any actions taken on the basis of the information provided, unless that information is subsequently confirmed in writing. Please note that any views or opinions presented in this email are solely those of the author and do not necessarily represent those of the company. Finally, the recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -------------- next part -------------- An HTML attachment was scrubbed... URL: From thiago.macieira at intel.com Thu Apr 21 19:02:05 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Thu, 21 Apr 2016 10:02:05 -0700 Subject: [Interest] Convert IPv6 to IPv4 ? In-Reply-To: References: Message-ID: <2360592.UAIzCJrcza@tjmaciei-mobl4> On quinta-feira, 21 de abril de 2016 14:05:52 PDT Alexander Carôt wrote: > Hello, > > I noticed that retrieving a sender's IP address of a QWebSocket via > ->peerAddress() returns an IPv6 socket address. > > For certain reasons I need an IPv4 address so I wonder how it is possible to > either let ->peerAddress() return an IPv4 address or convert the IPv6 > address to an IPv4 address. Hello Alex You probably mean you've got a v4-mapped IPv6 address, as ::ffff:192.0.2.1 You should code as: bool ok; quint32 ipv4 = hostaddr.toIPv4Address(&ok); if (ok) { // check my IPv4 ACL } else if (hostaddr.protocol() == QAbstractSocket::IPv6Protocol) { // check my IPv6 ACL } else { // uh... what? } -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From geiseri at geekcentral.pub Thu Apr 21 20:53:09 2016 From: geiseri at geekcentral.pub (Ian Geiser) Date: Thu, 21 Apr 2016 14:53:09 -0400 Subject: [Interest] Replacement for Qt Script In-Reply-To: References: <154295f42cb.ba0c169812466.4273668350241725627@geekcentral.pub> <15429ba831b.d5d1db0d19374.8652381181883885697@geekcentral.pub> <1542a059e36.d48b88b325117.8920365609194802839@geekcentral.pub> Message-ID: <1543a2b307d.11ac8e48428650.4891813820773146801@geekcentral.pub> ---- On Thu, 21 Apr 2016 05:21:43 -0400 Ben Lau wrote ---- > > > On 18 April 2016 at 23:38, Ian Geiser wrote: >  ---- On Mon, 18 Apr 2016 11:06:59 -0400 Jason H wrote ---- >  > ttps://forum.qt.io/topic/52306/qt-5-5-qt-script-deprecated-what-is-replacement/12 >  > > >  > > I saw this thread, but it did not seem to offer a clear detail other than to use QJSEngine and QJSValue directly.  Specifically I use qScriptRegisterMetaType very heavy to add custom types.  I know if I am using QML I can use qmlRegisterType(uri, 1, 0, "T") [...] > > Suggestion > 1. Register a singleton QML component by C++. > 2. The C++ component provides hook function  (callback in Javascript) registration.  > void MyAPI::registerHook(QJSValue callback) {} > 3. Whatever an event occur, call the hook function. > QJSValueList args;QJSValue ret = callback.call(args); > Nice. I will give this a spin. I think this will work to convert the current API into QML. From nunosantos at imaginando.pt Fri Apr 22 10:38:01 2016 From: nunosantos at imaginando.pt (Nuno Santos) Date: Fri, 22 Apr 2016 09:38:01 +0100 Subject: [Interest] Qt signal overhead (same thread, direct connection) Message-ID: Hi, I have an application that generates real time audio and in a system like this, a interruption may cause audio glitches. Nowadays, in iOS, audio apps can be loaded by other apps. This transition takes time and probably some resources too. While playing my app with the built in arpeggiator and then switching to another app, the notes would stop playing for a while, creating a non desired break in the flow. The curious thing is that, if I had a single note playing, the sound was not being broken. Since the sound rendering engine is the same I couldn’t understand what was going on. Then I made an experiment. Arpeggiator was using a signal to send the noteOn to the audio render engine. I decided to call the function directly on the synth render engine. Guess what, the problem disappears. Is the signal/slot mechanism tied to the event loop? How much does it take for a signal/slot to be called? It might not be significant on a desktop computer but it certainly is on a ARM device specially in this kind of performance sensitive contexts. After this, I’m into changing crucial functions to callbacks to improve performance. Is there any advice you could give me? Thanks, Regards, Nuno -------------- next part -------------- An HTML attachment was scrubbed... URL: From boud at valdyas.org Fri Apr 22 11:04:59 2016 From: boud at valdyas.org (Boudewijn Rempt) Date: Fri, 22 Apr 2016 11:04:59 +0200 (CEST) Subject: [Interest] Adding existing QObjects to QJSEngine In-Reply-To: References: Message-ID: Yes, that works! QQmlEngine engine; engine.installExtensions(QJSEngine::AllExtensions); QJSValue part = engine.newQObject(KisPart::instance()); engine.globalObject().setProperty("KisPart", part); engine.setObjectOwnership(KisPart::instance(), QQmlEngine::CppOwnership); QString output = engine.evaluate(script).toString(); Now I can take it from here :-) -- Boudewijn Rempt | http://www.krita.org, http://www.valdyas.org From b.terrier at gmail.com Fri Apr 22 14:31:22 2016 From: b.terrier at gmail.com (Benjamin TERRIER) Date: Fri, 22 Apr 2016 14:31:22 +0200 Subject: [Interest] Qt signal overhead (same thread, direct connection) In-Reply-To: References: Message-ID: Hi, When using a direct connection the call is immediate and does not depends on an event loop. >From Qt doc: "When a signal is emitted, the slots connected to it are usually executed immediately, just like a normal function call. When this happens, the signals and slots mechanism is totally independent of any GUI event loop. Execution of the code following the emit statement will occur once all slots have returned." http://doc.qt.io/qt-5/signalsandslots.html You can see what Qt does by looking at the generated moc files (moc_object.ccp) and at qobject and qmetaobject.cpp Basically when you call a signal, the signal will call QMetaObject::activate(), which will call QMetaObject::metacall(), which will call qt_metacall() on the receivers. The only thing that might take time seems to be a mutex lock within QMetaObject::activate(). Regards Benjamin 2016-04-22 10:38 GMT+02:00 Nuno Santos : > Hi, > > I have an application that generates real time audio and in a system like > this, a interruption may cause audio glitches. > > Nowadays, in iOS, audio apps can be loaded by other apps. This transition > takes time and probably some resources too. > > While playing my app with the built in arpeggiator and then switching to > another app, the notes would stop playing for a while, creating a non > desired break in the flow. > > The curious thing is that, if I had a single note playing, the sound was not > being broken. > > Since the sound rendering engine is the same I couldn’t understand what was > going on. > > Then I made an experiment. Arpeggiator was using a signal to send the noteOn > to the audio render engine. I decided to call the function directly on the > synth render engine. Guess what, the problem disappears. > > Is the signal/slot mechanism tied to the event loop? How much does it take > for a signal/slot to be called? It might not be significant on a desktop > computer but it certainly is on a ARM device specially in this kind of > performance sensitive contexts. > > After this, I’m into changing crucial functions to callbacks to improve > performance. Is there any advice you could give me? > > Thanks, > > Regards, > > Nuno > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > From flamaros.xavier at gmail.com Fri Apr 22 14:50:48 2016 From: flamaros.xavier at gmail.com (Xavier Bigand) Date: Fri, 22 Apr 2016 14:50:48 +0200 Subject: [Interest] Diffusion of beta versions Message-ID: Is there a particular raison to not see beta version in the Qt Maintenance Tool? I would prefer to be able to use the maintenance tool to download preview versions. The last time I tried to download a beta version of Qt I got conflicts with my main installation. -- Xavier -------------- next part -------------- An HTML attachment was scrubbed... URL: From dmitry.volosnykh at gmail.com Fri Apr 22 14:54:08 2016 From: dmitry.volosnykh at gmail.com (Dmitry Volosnykh) Date: Fri, 22 Apr 2016 12:54:08 +0000 Subject: [Interest] Diffusion of beta versions In-Reply-To: References: Message-ID: +1 from me On Fri, Apr 22, 2016 at 3:51 PM Xavier Bigand wrote: > Is there a particular raison to not see beta version in the Qt Maintenance > Tool? > > I would prefer to be able to use the maintenance tool to download preview > versions. The last time I tried to download a beta version of Qt I got > conflicts with my main installation. > > -- > Xavier > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ekke at ekkes-corner.org Fri Apr 22 15:01:13 2016 From: ekke at ekkes-corner.org (ekke) Date: Fri, 22 Apr 2016 15:01:13 +0200 Subject: [Interest] Diffusion of beta versions In-Reply-To: References: Message-ID: AFAIK Online Installers are only available for RC or final releases - Beta is always a download - using Maintenance for a Beta could be dangerous because of Beta ;-) I install a Beta always 'parallel' to my existing installation to avoid confusion from Qt Creator Settings and Working Dir I start QtCreator with -settingsPath then there should be no problems with both installations ekke Am 22.04.16 um 14:50 schrieb Xavier Bigand: > Is there a particular raison to not see beta version in the Qt > Maintenance Tool? > > I would prefer to be able to use the maintenance tool to download > preview versions. The last time I tried to download a beta version of > Qt I got conflicts with my main installation. > > -- > Xavier > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -- ekke (ekkehard gentz) independent software architect international development native mobile business apps BlackBerry 10 | Qt Mobile (Android, iOS) workshops - trainings - bootcamps *BlackBerry Elite Developer BlackBerry Platinum Enterprise Partner* max-josefs-platz 30, D-83022 rosenheim, germany mailto:ekke at ekkes-corner.org blog: http://ekkes-corner.org apps and more: http://appbus.org twitter: @ekkescorner skype: ekkes-corner LinkedIn: http://linkedin.com/in/ekkehard/ Steuer-Nr: 156/220/30931 FA Rosenheim, UST-ID: DE189929490 -------------- next part -------------- An HTML attachment was scrubbed... URL: From flamaros.xavier at gmail.com Fri Apr 22 15:17:56 2016 From: flamaros.xavier at gmail.com (Xavier Bigand) Date: Fri, 22 Apr 2016 15:17:56 +0200 Subject: [Interest] Diffusion of beta versions In-Reply-To: References: Message-ID: How it can be dangerous? A beta version of Qt will just add a new kit. I am not requesting having beta version of QtCreator. 2016-04-22 15:01 GMT+02:00 ekke : > AFAIK Online Installers are only available for RC or final releases - Beta > is always a download - using Maintenance for a Beta could be dangerous > because of Beta ;-) > > I install a Beta always 'parallel' to my existing installation > > to avoid confusion from Qt Creator Settings and Working Dir I start > QtCreator with -settingsPath > then there should be no problems with both installations > > ekke > Am 22.04.16 um 14:50 schrieb Xavier Bigand: > > Is there a particular raison to not see beta version in the Qt Maintenance > Tool? > > I would prefer to be able to use the maintenance tool to download preview > versions. The last time I tried to download a beta version of Qt I got > conflicts with my main installation. > > -- > Xavier > > > _______________________________________________ > Interest mailing listInterest at qt-project.orghttp://lists.qt-project.org/mailman/listinfo/interest > > > -- > > ekke (ekkehard gentz) > > independent software architect > international development native mobile business apps > BlackBerry 10 | Qt Mobile (Android, iOS) > workshops - trainings - bootcamps > > > *BlackBerry Elite Developer BlackBerry Platinum Enterprise Partner* > > max-josefs-platz 30, D-83022 rosenheim, germany > mailto:ekke at ekkes-corner.org > blog: http://ekkes-corner.org > apps and more: http://appbus.org > > twitter: @ekkescorner > skype: ekkes-corner > LinkedIn: http://linkedin.com/in/ekkehard/ > Steuer-Nr: 156/220/30931 FA Rosenheim, UST-ID: DE189929490 > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -- Xavier -------------- next part -------------- An HTML attachment was scrubbed... URL: From suy at badopi.org Fri Apr 22 18:34:19 2016 From: suy at badopi.org (Alejandro Exojo) Date: Fri, 22 Apr 2016 18:34:19 +0200 Subject: [Interest] Qt signal overhead (same thread, direct connection) In-Reply-To: References: Message-ID: <201604221834.19732.suy@badopi.org> El Friday 22 April 2016, Nuno Santos escribió: > Then I made an experiment. Arpeggiator was using a signal to send the > noteOn to the audio render engine. I decided to call the function directly > on the synth render engine. Guess what, the problem disappears. > > Is the signal/slot mechanism tied to the event loop? How much does it take > for a signal/slot to be called? It might not be significant on a desktop > computer but it certainly is on a ARM device specially in this kind of > performance sensitive contexts. This paragraph in the documentation (same link Benjamin sent) is also pretty enlightening: > Compared to callbacks, signals and slots are slightly slower because of the > increased flexibility they provide, although the difference for real > applications is insignificant. In general, emitting a signal that is > connected to some slots, is approximately ten times slower than calling > the receivers directly, with non-virtual function calls. This is the > overhead required to locate the connection object, to safely iterate over > all connections (i.e. checking that subsequent receivers have not been > destroyed during the emission), and to marshall any parameters in a > generic fashion. While ten non-virtual function calls may sound like a > lot, it's much less overhead than any new or delete operation, for > example. As soon as you perform a string, vector or list operation that > behind the scene requires new or delete, the signals and slots overhead is > only responsible for a very small proportion of the complete function call > costs. The same is true whenever you do a system call in a slot; or > indirectly call more than ten functions. The simplicity and flexibility of > the signals and slots mechanism is well worth the overhead, which your > users won't even notice. That was probably written long ago. I've read people mentioning that it might be that signal emission would be slower nowadays. Also, what type are you passing in the signal? The value is copied, so if it's expensive to copy, that might be a factor as well. I believe that is one of the reasons why APIs like QIODevice don't send the received data through the signal, but just the notification of the presence of new data. Later on you have to retrieve it. -- Alex (a.k.a. suy) | GPG ID 0x0B8B0BC2 http://barnacity.net/ | http://disperso.net From xbenlau at gmail.com Fri Apr 22 18:47:30 2016 From: xbenlau at gmail.com (Ben Lau) Date: Sat, 23 Apr 2016 00:47:30 +0800 Subject: [Interest] Qt signal overhead (same thread, direct connection) In-Reply-To: <201604221834.19732.suy@badopi.org> References: <201604221834.19732.suy@badopi.org> Message-ID: On 23 April 2016 at 00:34, Alejandro Exojo wrote: > El Friday 22 April 2016, Nuno Santos escribió: > > Then I made an experiment. Arpeggiator was using a signal to send the > > noteOn to the audio render engine. I decided to call the function > directly > > on the synth render engine. Guess what, the problem disappears. > > > > Is the signal/slot mechanism tied to the event loop? How much does it > take > > for a signal/slot to be called? It might not be significant on a desktop > > computer but it certainly is on a ARM device specially in this kind of > > performance sensitive contexts. > > This paragraph in the documentation (same link Benjamin sent) is also > pretty > enlightening: > > > Compared to callbacks, signals and slots are slightly slower because of > the > > increased flexibility they provide, although the difference for real > > applications is insignificant. In general, emitting a signal that is > > connected to some slots, is approximately ten times slower than calling > > the receivers directly, with non-virtual function calls. This is the > > overhead required to locate the connection object, to safely iterate over > > all connections (i.e. checking that subsequent receivers have not been > > destroyed during the emission), and to marshall any parameters in a > > generic fashion. While ten non-virtual function calls may sound like a > > lot, it's much less overhead than any new or delete operation, for > > example. As soon as you perform a string, vector or list operation that > > behind the scene requires new or delete, the signals and slots overhead > is > > only responsible for a very small proportion of the complete function > call > > costs. The same is true whenever you do a system call in a slot; or > > indirectly call more than ten functions. The simplicity and flexibility > of > > the signals and slots mechanism is well worth the overhead, which your > > users won't even notice. > > That was probably written long ago. I've read people mentioning that it > might > be that signal emission would be slower nowadays. > > Also, what type are you passing in the signal? The value is copied, so if > it's > expensive to copy, that might be a factor as well. I believe that is one of > the reasons why APIs like QIODevice don't send the received data through > the > signal, but just the notification of the presence of new data. Later on you > have to retrieve it. > > -- > Alex (a.k.a. suy) | GPG ID 0x0B8B0BC2 > http://barnacity.net/ | http://disperso.net > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > As long as the passed data is an implicit sharing class like QByteArray, then it will be fine. Because only a pointer to the contained data is passed. Data copying only happen when a function write to an implicit sharing class. -------------- next part -------------- An HTML attachment was scrubbed... URL: From Jason at gocodigo.com Fri Apr 22 21:07:22 2016 From: Jason at gocodigo.com (Jason Kretzer) Date: Fri, 22 Apr 2016 12:07:22 -0700 Subject: [Interest] Preventing Multiple Instances of EXE Message-ID: Everyone, Anyone know how to prevent multiple instances of an exe to be started? So, I start bob.exe. I then I try to double click and start bob.exe again while the first is still running and a second instance does not start (or at least shuts itself down or does anything other than start another instance). Is there a Qt/C++ on Windows way to do that? //------------------------------// Jason R. Kretzer Lead Application Developer Jason at gocodigo.com //------------------------------// “quidquid latine dictum sit altum videtur" -------------- next part -------------- An HTML attachment was scrubbed... URL: From kshegunov at gmail.com Fri Apr 22 21:11:02 2016 From: kshegunov at gmail.com (Nye) Date: Fri, 22 Apr 2016 22:11:02 +0300 Subject: [Interest] Preventing Multiple Instances of EXE In-Reply-To: References: Message-ID: Hello, This is ordinarily done with the help of a global locking primitive (for example a global mutex). On the first run the mutex would be locked, and if locking fails on the second one, you just exit the application. IMPORTANT: As any global resource, special care should be taken to release it in case of expected or unexpected program shutdown. As for a Qt-way of doing this, you could try QSystemSemaphore ( http://doc.qt.io/qt-5/qsystemsemaphore.html). Kind regards. ​ -------------- next part -------------- An HTML attachment was scrubbed... URL: From edward.sutton at subsite.com Fri Apr 22 21:19:48 2016 From: edward.sutton at subsite.com (Edward Sutton) Date: Fri, 22 Apr 2016 19:19:48 +0000 Subject: [Interest] How add an Android package to qmake project file? In-Reply-To: <0157AC18-82C6-4794-98D0-779DB82E63DC@imaginando.pt> References: <450E7BA5-F3FE-4074-BE79-0B22EF102C9D@subsite.com> <97BB4AC6-6B97-4430-8BFC-16B92EF18608@subsite.com> <0157AC18-82C6-4794-98D0-779DB82E63DC@imaginando.pt> Message-ID: <952AAF68-DDD9-4E07-8041-168FEDFA5F52@subsite.com> Thank you Nuno. I have gradle checked since I abandoned Eclipse for Android Studio. However, I do not understand how Gradle works. I need to learn more about it. -Ed On Apr 21, 2016, at 11:38 AM, Nuno Santos > wrote: Eduard, Open projects tab in Qt Creator. Click the create templates button. Check the use grade checkbox. You can then use the maven repositories as follow: allprojects { repositories { jcenter() mavenCentral() maven { url 'http://maven.localytics.com/public' } maven { url 'https://github.com/kshoji/USB-MIDI-Driver/raw/master/MIDIDriver/snapshots' } } } apply plugin: 'com.android.application' dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.facebook.android:facebook-android-sdk:4.6.0' compile 'com.localytics.android:library:3.6+' compile 'jp.kshoji:midi-driver:0.1.4:@aar' } Nuno Santos Founder / CEO / CTO www.imaginando.pt +351 91 621 69 62 On 21 Apr 2016, at 17:34, Edward Sutton > wrote: >It's not done in the pro, it's done android-side in your grade or ant. Just do it as if it were an proper SDK Android app. I do not know how that is done. I build all platforms Android, iOS, windows, OS X using the qmake pro file. I created a /libs subfolder under ANDROID_PACKAGE_SOURCE_DIR and copied the android-support-v4.jar file. This seems to work but expect it may cause confusion when Android 7.0 is released and something breaks again. -Ed Sent: Thursday, April 21, 2016 at 10:35 AM From: "Edward Sutton" > To: "Qt Interest" > Subject: [Interest] How add an Android package to qmake project file? I need to add package android.support.v4.content.ContextCompat so I can fix Android 6.0 from breaking my Qt Android app. Can this be done in the quake project file? android-g++ { message ("****************** android-g++ ***********************" ) ANDROID_PACKAGE_SOURCE_DIR = $$PWD/platform/android QT += androidextras QT += bluetooth } -Ed This email and any files transmitted with it from The Charles Machine Works, Inc. are confidential and intended solely for the use of the individual or entity to which they are addressed. If you have received this email in error please notify the sender. Our company accepts no liability for the contents of this email, or for the consequences of any actions taken on the basis of the information provided, unless that information is subsequently confirmed in writing. Please note that any views or opinions presented in this email are solely those of the author and do not necessarily represent those of the company. Finally, the recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. _______________________________________________ Interest mailing list Interest at qt-project.org http://lists.qt-project.org/mailman/listinfo/interest This email and any files transmitted with it from The Charles Machine Works, Inc. are confidential and intended solely for the use of the individual or entity to which they are addressed. If you have received this email in error please notify the sender. Our company accepts no liability for the contents of this email, or for the consequences of any actions taken on the basis of the information provided, unless that information is subsequently confirmed in writing. Please note that any views or opinions presented in this email are solely those of the author and do not necessarily represent those of the company. Finally, the recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. _______________________________________________ Interest mailing list Interest at qt-project.org http://lists.qt-project.org/mailman/listinfo/interest This email and any files transmitted with it from The Charles Machine Works, Inc. are confidential and intended solely for the use of the individual or entity to which they are addressed. If you have received this email in error please notify the sender. Our company accepts no liability for the contents of this email, or for the consequences of any actions taken on the basis of the information provided, unless that information is subsequently confirmed in writing. Please note that any views or opinions presented in this email are solely those of the author and do not necessarily represent those of the company. Finally, the recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jerome at bodycad.com Fri Apr 22 21:22:13 2016 From: jerome at bodycad.com (=?UTF-8?B?SsOpcsO0bWUgR29kYm91dA==?=) Date: Fri, 22 Apr 2016 15:22:13 -0400 Subject: [Interest] Preventing Multiple Instances of EXE In-Reply-To: References: Message-ID: Take care which mecanism you use here, this get really annoying with some crashing application (not only they crash, but to refuse to launch again). To avoid this, simply use a pid file and check if the pid process still run, give option to your user to kill the previous instance of the program (in case the process is hook or is zombie). If the pid process does not exist, assume none is launch and put your pid into the file.This way you don't get your user mad and control the number of instance. Take care, if you want to allow application to run 1x/machine or 1x/user connected. The 1x/user will require to either create the pid file into the user home directory or use the user identifier into the pid file. Jerome On Fri, Apr 22, 2016 at 3:11 PM, Nye wrote: > Hello, > This is ordinarily done with the help of a global locking primitive (for > example a global mutex). On the first run the mutex would be locked, and if > locking fails on the second one, you just exit the application. > IMPORTANT: As any global resource, special care should be taken to release > it in case of expected or unexpected program shutdown. > > As for a Qt-way of doing this, you could try QSystemSemaphore ( > http://doc.qt.io/qt-5/qsystemsemaphore.html). > > Kind regards. > ​ > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From yuvraaj at gmail.com Fri Apr 22 21:37:19 2016 From: yuvraaj at gmail.com (Yuvraaj) Date: Fri, 22 Apr 2016 12:37:19 -0700 Subject: [Interest] Preventing Multiple Instances of EXE In-Reply-To: References: Message-ID: <571A7D6F.6030703@gmail.com> Maybe this will help: https://github.com/qtproject/qt-solutions/tree/master/qtsingleapplication On 04/22/2016 12:07 PM, Jason Kretzer wrote: > Everyone, > > Anyone know how to prevent multiple instances of an exe to be started? > So, I start bob.exe. I then I try to double click and start bob.exe > again while the first is still running and a second instance does not > start (or at least shuts itself down or does anything other than start > another instance). > > Is there a Qt/C++ on Windows way to do that? > > //------------------------------// > Jason R. Kretzer > Lead Application Developer > Jason at gocodigo.com > //------------------------------// > > “quidquid latine dictum sit altum videtur" > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -------------- next part -------------- An HTML attachment was scrubbed... URL: From scott at towel42.com Fri Apr 22 23:54:43 2016 From: scott at towel42.com (Scott Aron Bloom) Date: Fri, 22 Apr 2016 21:54:43 +0000 Subject: [Interest] Preventing Multiple Instances of EXE In-Reply-To: <571A7D6F.6030703@gmail.com> References: <571A7D6F.6030703@gmail.com> Message-ID: I have used this in previous projects, it works very well in a multi-platform product as well.. Scott From: Interest [mailto:interest-bounces+scott.bloom=onshorecs.com at qt-project.org] On Behalf Of Yuvraaj Sent: Friday, April 22, 2016 12:37 PM To: interest at qt-project.org Subject: Re: [Interest] Preventing Multiple Instances of EXE Maybe this will help: https://github.com/qtproject/qt-solutions/tree/master/qtsingleapplication On 04/22/2016 12:07 PM, Jason Kretzer wrote: Everyone, Anyone know how to prevent multiple instances of an exe to be started? So, I start bob.exe. I then I try to double click and start bob.exe again while the first is still running and a second instance does not start (or at least shuts itself down or does anything other than start another instance). Is there a Qt/C++ on Windows way to do that? //------------------------------// Jason R. Kretzer Lead Application Developer Jason at gocodigo.com //------------------------------// "quidquid latine dictum sit altum videtur" _______________________________________________ Interest mailing list Interest at qt-project.org http://lists.qt-project.org/mailman/listinfo/interest -------------- next part -------------- An HTML attachment was scrubbed... URL: From rpzrpzrpz at gmail.com Sat Apr 23 04:26:29 2016 From: rpzrpzrpz at gmail.com (mark diener) Date: Fri, 22 Apr 2016 20:26:29 -0600 Subject: [Interest] TextField Focus onReleased Message-ID: Hello: Can anybody figure out a way for a TextField which contains its own MouseArea to allow the TextField to gain focus when the onReleased event is called, not the normal behavior of focus gained when the onPressed is triggered. Any response appreciated, md From rpzrpzrpz at gmail.com Sat Apr 23 13:00:15 2016 From: rpzrpzrpz at gmail.com (rpzrpzrpz at gmail.com) Date: Sat, 23 Apr 2016 05:00:15 -0600 Subject: [Interest] [SOLVED] Re: TextField Focus onReleased In-Reply-To: References: Message-ID: <571B55BF.7060202@gmail.com> On 4/22/2016 8:26 PM, mark diener wrote: > Hello: > > Can anybody figure out a way for a TextField which contains its own MouseArea > to allow the TextField to gain focus when the onReleased event is > called, not the normal behavior of focus gained when the onPressed is > triggered. > > Any response appreciated, > > md > Ok, the inheritance nature of QML is not the prettiest, but there is a solution. To take control of the focus timing and delay focus upon MouseArea -> onPressed, you must test if the control has focus, if not, set a state pressed flag and return with mouse.accepted = true. In the onReleased, again have mouse.accepted = true, and set focus to the control. But now that the control has focus, you must have mouse.accepted = false for both Pressed and Released. This is kind of a kluge, but that is the way you do it. Hope it helps someone. md From nunosantos at imaginando.pt Sat Apr 23 18:51:44 2016 From: nunosantos at imaginando.pt (Nuno Santos) Date: Sat, 23 Apr 2016 17:51:44 +0100 Subject: [Interest] Qt signal overhead (same thread, direct connection) In-Reply-To: <201604221834.19732.suy@badopi.org> References: <201604221834.19732.suy@badopi.org> Message-ID: <4218E3E1-6512-4AAE-986C-A5AB70C98C4A@imaginando.pt> Hey, It is definitely taking to much time, enough to cause buffer drops in this situation. I have changed to a callback calling mechanism and the problem is now fixed. I now have this in mind when I program sensitive parts of my apps. Regards, Nuno > On 22 Apr 2016, at 17:34, Alejandro Exojo wrote: > > El Friday 22 April 2016, Nuno Santos escribió: >> Then I made an experiment. Arpeggiator was using a signal to send the >> noteOn to the audio render engine. I decided to call the function directly >> on the synth render engine. Guess what, the problem disappears. >> >> Is the signal/slot mechanism tied to the event loop? How much does it take >> for a signal/slot to be called? It might not be significant on a desktop >> computer but it certainly is on a ARM device specially in this kind of >> performance sensitive contexts. > > This paragraph in the documentation (same link Benjamin sent) is also pretty > enlightening: > >> Compared to callbacks, signals and slots are slightly slower because of the >> increased flexibility they provide, although the difference for real >> applications is insignificant. In general, emitting a signal that is >> connected to some slots, is approximately ten times slower than calling >> the receivers directly, with non-virtual function calls. This is the >> overhead required to locate the connection object, to safely iterate over >> all connections (i.e. checking that subsequent receivers have not been >> destroyed during the emission), and to marshall any parameters in a >> generic fashion. While ten non-virtual function calls may sound like a >> lot, it's much less overhead than any new or delete operation, for >> example. As soon as you perform a string, vector or list operation that >> behind the scene requires new or delete, the signals and slots overhead is >> only responsible for a very small proportion of the complete function call >> costs. The same is true whenever you do a system call in a slot; or >> indirectly call more than ten functions. The simplicity and flexibility of >> the signals and slots mechanism is well worth the overhead, which your >> users won't even notice. > > That was probably written long ago. I've read people mentioning that it might > be that signal emission would be slower nowadays. > > Also, what type are you passing in the signal? The value is copied, so if it's > expensive to copy, that might be a factor as well. I believe that is one of > the reasons why APIs like QIODevice don't send the received data through the > signal, but just the notification of the presence of new data. Later on you > have to retrieve it. > > -- > Alex (a.k.a. suy) | GPG ID 0x0B8B0BC2 > http://barnacity.net/ | http://disperso.net > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest From nunosantos at imaginando.pt Sat Apr 23 19:06:38 2016 From: nunosantos at imaginando.pt (Nuno Santos) Date: Sat, 23 Apr 2016 18:06:38 +0100 Subject: [Interest] Ultra precise timing in Qt Message-ID: Hi, I have an audio app can sends midi to machines. Midi clock will set the machine tempo. When I have an arpeggiator running in the synth I want the machine to have exactly the same tempo. If the tempo is not the same, both will start to get out of sync. In music that is simply not acceptable. So far I was using QElapsedTimer to measure this. One particular behaviour I observed was, once I started moving the virtual knobs and faders of the synth, it would start to get out of sync with the machine. My conclusion is that somehow, QElapsedTimer is tied to the event loop thus making it slower when other interactions are happening. Does this make sense? I haven’t looked to QElapsedTimer source code, i’m just guessing. Maybe I’m saying silly things. I search for options and started using mach_absolute_time. The problem seems to be solved now. I have the soft synth running with the arpeggiator enabled sending midi clock to the machine, and they keep their tempo constant, even when the controls are being used or the device is under stress. Does Qt provide any kind of cpu absolute clock for every platform? I couldn’t find it so far. Does anyone know the equivalent to mach_absolute_time in Windows and Android (probably the same as linux). Regards, Nuno From thiago.macieira at intel.com Sat Apr 23 19:20:21 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Sat, 23 Apr 2016 10:20:21 -0700 Subject: [Interest] Ultra precise timing in Qt In-Reply-To: References: Message-ID: <22176657.QcaGNjTxCU@tjmaciei-mobl4> On sábado, 23 de abril de 2016 18:06:38 PDT Nuno Santos wrote: > So far I was using QElapsedTimer to measure this. One particular behaviour I > observed was, once I started moving the virtual knobs and faders of the > synth, it would start to get out of sync with the machine. My conclusion is > that somehow, QElapsedTimer is tied to the event loop thus making it slower > when other interactions are happening. Does this make sense? I haven’t > looked to QElapsedTimer source code, i’m just guessing. Maybe I’m saying > silly things. Yeah, kinda... Your description above summarises to "the more code I add, the more work needs to be done". The use of QElapsedTimer does not have any further impact on the event loop besides executing more code and is not any different from any other further addition of code that causes a system call. On some OSes, getting the system time is a very fast operation (Linux); on others, it might be slow. > I search for options and started using mach_absolute_time. The problem seems > to be solved now. I have the soft synth running with the arpeggiator > enabled sending midi clock to the machine, and they keep their tempo > constant, even when the controls are being used or the device is under > stress. > > Does Qt provide any kind of cpu absolute clock for every platform? I > couldn’t find it so far. Yes, it's called QElapsedTimer. > Does anyone know the equivalent to mach_absolute_time in Windows and Android > (probably the same as linux). On Windows, you use GetTickCount64 or QueryPerformanceCounter. On Android and Linux, use clock_gettime for the CLOCK_MONOTONIC or CLOCK_MONOTONIC_COARSE. Do you know how I know this? I looked into qelapsedtimer_win.cpp and qelapsedtimer_unix.cpp. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From nunosantos at imaginando.pt Sat Apr 23 19:46:14 2016 From: nunosantos at imaginando.pt (Nuno Santos) Date: Sat, 23 Apr 2016 18:46:14 +0100 Subject: [Interest] Ultra precise timing in Qt In-Reply-To: <22176657.QcaGNjTxCU@tjmaciei-mobl4> References: <22176657.QcaGNjTxCU@tjmaciei-mobl4> Message-ID: Alright! Even that I feel completely dumb right now, I’m happy that I don’t need to reinvent the wheel!!! :) In the mean time, with all of this refactoring I have changes that could probably lead to better timing mechanism. With this in mind I will do further refactor. Thanks for your prompt reply. Regards Nuno > On 23 Apr 2016, at 18:20, Thiago Macieira wrote: > > On sábado, 23 de abril de 2016 18:06:38 PDT Nuno Santos wrote: >> So far I was using QElapsedTimer to measure this. One particular behaviour I >> observed was, once I started moving the virtual knobs and faders of the >> synth, it would start to get out of sync with the machine. My conclusion is >> that somehow, QElapsedTimer is tied to the event loop thus making it slower >> when other interactions are happening. Does this make sense? I haven’t >> looked to QElapsedTimer source code, i’m just guessing. Maybe I’m saying >> silly things. > > Yeah, kinda... Your description above summarises to "the more code I add, the > more work needs to be done". > > The use of QElapsedTimer does not have any further impact on the event loop > besides executing more code and is not any different from any other further > addition of code that causes a system call. On some OSes, getting the system > time is a very fast operation (Linux); on others, it might be slow. > >> I search for options and started using mach_absolute_time. The problem seems >> to be solved now. I have the soft synth running with the arpeggiator >> enabled sending midi clock to the machine, and they keep their tempo >> constant, even when the controls are being used or the device is under >> stress. >> >> Does Qt provide any kind of cpu absolute clock for every platform? I >> couldn’t find it so far. > > Yes, it's called QElapsedTimer. > >> Does anyone know the equivalent to mach_absolute_time in Windows and Android >> (probably the same as linux). > > On Windows, you use GetTickCount64 or QueryPerformanceCounter. On Android and > Linux, use clock_gettime for the CLOCK_MONOTONIC or CLOCK_MONOTONIC_COARSE. > > Do you know how I know this? I looked into qelapsedtimer_win.cpp and > qelapsedtimer_unix.cpp. > > > -- > Thiago Macieira - thiago.macieira (AT) intel.com > Software Architect - Intel Open Source Technology Center > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest From ev.mipt at gmail.com Sun Apr 24 00:23:12 2016 From: ev.mipt at gmail.com (Oleg Evseev) Date: Sun, 24 Apr 2016 01:23:12 +0300 Subject: [Interest] [Qt3D] FirstPersonCameraController not working in Scene3D-loader Message-ID: Hello, There is example scene3d-loader in qt3d. It loads Scene with AnimatedEntity, that uses FirstPersonCameraController QML type. But unlike others examples, that use Qt3DQuickWindow view with working camera controllers, scene3d-loader uses QQuickView and FirstPersonCameraController doesn't work. Watched it in debug mode - program never passes in function onTriggered in FrameAction. Could anybody help with that? Great thanks in advance! p.s. and by the way, application scene3d-loader hangs when trying to load Scene2 (windows 7 x64) Regards, Oleg -------------- next part -------------- An HTML attachment was scrubbed... URL: From shaan7in at gmail.com Sun Apr 24 11:56:27 2016 From: shaan7in at gmail.com (Shantanu Tushar) Date: Sun, 24 Apr 2016 15:26:27 +0530 Subject: [Interest] Preventing Multiple Instances of EXE In-Reply-To: References: Message-ID: The following approach has worked quite well (I'm using it in sostronk.com's desktop app): // H class UniqueApp : public QObject { Q_OBJECT public: explicit UniqueApp(QObject *parent = 0); static bool anotherInstanceRunning(); void monitor(); signals: void anotherInstance(); }; // CPP static const int TIMEOUT = 100; bool UniqueApp::anotherInstanceRunning() { QLocalSocket c; c.connectToServer(QString("%1").arg(qApp->applicationName())); qDebug() << "Trying to connect to existing instance of " << c.serverName(); return c.waitForConnected(TIMEOUT); } void UniqueApp::monitor() { auto s = new QLocalServer(this); s->listen(qApp->applicationName()); connect(s, &QLocalServer::newConnection, this, &UniqueApp::anotherInstance); } On Sat, Apr 23, 2016 at 12:37 AM, Jason Kretzer wrote: > Everyone, > > Anyone know how to prevent multiple instances of an exe to be started? > So, I start bob.exe. I then I try to double click and start bob.exe again > while the first is still running and a second instance does not start (or > at least shuts itself down or does anything other than start another > instance). > > Is there a Qt/C++ on Windows way to do that? > > //------------------------------// > Jason R. Kretzer > Lead Application Developer > Jason at gocodigo.com > //------------------------------// > > “quidquid latine dictum sit altum videtur" > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -- Shantanu Tushar (UTC +0530) shantanu.io -------------- next part -------------- An HTML attachment was scrubbed... URL: From afedoskin3 at gmail.com Sun Apr 24 16:41:55 2016 From: afedoskin3 at gmail.com (Artem Fedoskin) Date: Sun, 24 Apr 2016 16:41:55 +0200 Subject: [Interest] Few questions regarding Qt Quick Scene Graph Message-ID: Hello everybody. I have a project where a lot of objects are painted on the screen whenever the user interacts with the app (pan, zoom, move) I would be really grateful to you if you could answer a few questions regarding the internals of Qt Quick Scene Graph: 1. Imagine that I add 1000 nodes with the same color inside QQuickItem::updatePaintNode() function of some QQuickItem derived class. Will they be drawn in batch as described in http://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph-renderer.html#batching ? 2. Can I call the function of some other class in QQuickItem::updatePaintNode()? I have some class named Data, class named View and a subclass of QSGGeometryNode Triangle. Imagine that after objects of these classes are created the Data asks View to create 10 Triangles. The View creates 10 Triangles during the updatePaintNode() call and passes pointers to the object of class Data, that required their instantiation. The Triangles refers to the Data and get coordinates from it. Is it something possible. Do I violate the rule stated here *"Warning:* It is crucial that OpenGL operations and interaction with the scene graph happens exclusively on the render thread, primarily during the updatePaintNode() call. The rule of thumb is to only use classes with the "QSG" prefix inside the QQuickItem::updatePaintNode () function." 3. 4. 5. 6. For example, I want to get new coordinates of the object and to do that I should refer to function of some other not QSGNode derived object and then use these coordinates for rendering one of the nodes. -------------- next part -------------- An HTML attachment was scrubbed... URL: From afedoskin3 at gmail.com Sun Apr 24 16:49:48 2016 From: afedoskin3 at gmail.com (Artem Fedoskin) Date: Sun, 24 Apr 2016 16:49:48 +0200 Subject: [Interest] Few questions regarding Qt Quick Scene Graph In-Reply-To: References: Message-ID: I'm sorry. My first E-Mail was sent accidentally. Here is the final version of my E-Mail. Hello everybody. I have a project where a lot of objects are painted on the screen whenever the user interacts with the app (pan, zoom, move) I would be really grateful to you if you could answer a few questions regarding the internals of Qt Quick Scene Graph: 1. Imagine that I add 1000 nodes with the same color inside QQuickItem:: updatePaintNode() function of some QQuickItem derived class. Will they be drawn in batch as described in http://doc.qt.io/qt-5/qtquick- visualcanvas-scenegraph-renderer.html#batching ? 2. Can I call the function of some other class in QQuickItem:: updatePaintNode()? I have some class named Data, class named View and a subclass of QSGGeometryNode Triangle. Imagine that after objects of these classes are created the Data asks View to create 10 Triangles. The View creates 10 Triangles during the updatePaintNode() call and passes to them pointers to the object of class Data, that required their instantiation. The Triangles refers to the Data and get some values from it and converts them to x,y coordinates. Is it something possible? Do I violate the rule stated here http://doc.qt.io/qt-5/qtquick-visualcanvas -scenegraph.html#scene-graph-and-rendering *"Warning:* It is crucial that OpenGL operations and interaction with the scene graph happens exclusively on the render thread, primarily during the updatePaintNode() call. The rule of thumb is to only use classes with the "QSG" prefix inside the QQuickItem ::updatePaintNode () function." ? At first I was thinking about deriving classes like Triangle from QQuickItem and then reparenting them to the View but the direct creation of QSGGeometryNodes seems to me to be less memory requiring approach. Regards, Artem Fedoskin 2016-04-24 16:41 GMT+02:00 Artem Fedoskin : > Hello everybody. I have a project where a lot of objects are painted on > the screen whenever the user interacts with the app (pan, zoom, move) I > would be really grateful to you if you could answer a few questions > regarding the internals of Qt Quick Scene Graph: > > 1. Imagine that I add 1000 nodes with the same color inside > QQuickItem::updatePaintNode() function of some QQuickItem derived class. > Will they be drawn in batch as described in > http://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph-renderer.html#batching > > ? > 2. Can I call the function of some other class in > QQuickItem::updatePaintNode()? I have some class named Data, class named > View and a subclass of QSGGeometryNode Triangle. Imagine that after objects > of these classes are created the Data asks View to create 10 Triangles. The > View creates 10 Triangles during the updatePaintNode() call and passes > pointers to the object of class Data, that required their instantiation. > The Triangles refers to the Data and get coordinates from it. Is it > something possible. Do I violate the rule stated here *"Warning:* It > is crucial that OpenGL operations and interaction with the scene graph > happens exclusively on the render thread, primarily during the > updatePaintNode() call. The rule of thumb is to only use classes with the > "QSG" prefix inside the QQuickItem::updatePaintNode > () function." > 3. > 4. > 5. > 6. For example, I want to get new coordinates of the object and to do > that I should refer to function of some other not QSGNode derived object > and then use these coordinates for rendering one of the nodes. > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From rpzrpzrpz at gmail.com Sun Apr 24 19:45:21 2016 From: rpzrpzrpz at gmail.com (mark diener) Date: Sun, 24 Apr 2016 11:45:21 -0600 Subject: [Interest] PRO File defines Message-ID: Hello List: Who can tell me how to detect whether a build is for IOS or IOS Simulator in the project PRO file. ios { QMAKE_IOS_DEPLOYMENT_TARGET=8.0 QMAKE_IOS_TARGETED_DEVICE_FAMILY=1,2 } But how to I differentiate between IOS builds and IOS-simulator builds? Thanks, Marco From igor.mironchik at gmail.com Sun Apr 24 19:47:58 2016 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Sun, 24 Apr 2016 20:47:58 +0300 Subject: [Interest] PRO File defines In-Reply-To: References: Message-ID: <571D06CE.8020208@gmail.com> Hi, For real device you can use: ios { iphoneos { # Here is the real device.... } } On 24.04.2016 20:45, mark diener wrote: > Hello List: > > Who can tell me how to detect whether a build is for IOS or IOS Simulator > in the project PRO file. > > ios { > QMAKE_IOS_DEPLOYMENT_TARGET=8.0 > QMAKE_IOS_TARGETED_DEVICE_FAMILY=1,2 > } > > But how to I differentiate between IOS builds and IOS-simulator builds? > > Thanks, > > Marco > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest From gmaxera at gmail.com Sun Apr 24 23:29:30 2016 From: gmaxera at gmail.com (Gianluca) Date: Sun, 24 Apr 2016 22:29:30 +0100 Subject: [Interest] PRO File defines In-Reply-To: <571D06CE.8020208@gmail.com> References: <571D06CE.8020208@gmail.com> Message-ID: <129E4FD1-9514-4F34-94E8-02184859CA63@gmail.com> It’s not the first time that I see people knowing some “secrets” of Qmake … … where is the full documentation of all these details ? Il giorno 24/apr/2016, alle ore 18:47, Igor Mironchik ha scritto: > Hi, > > For real device you can use: > > ios { > iphoneos { > # Here is the real device.... > } > } > > On 24.04.2016 20:45, mark diener wrote: >> Hello List: >> >> Who can tell me how to detect whether a build is for IOS or IOS Simulator >> in the project PRO file. >> >> ios { >> QMAKE_IOS_DEPLOYMENT_TARGET=8.0 >> QMAKE_IOS_TARGETED_DEVICE_FAMILY=1,2 >> } >> >> But how to I differentiate between IOS builds and IOS-simulator builds? >> >> Thanks, >> >> Marco >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest From perso.olivier.barthelemy at gmail.com Sun Apr 24 23:31:35 2016 From: perso.olivier.barthelemy at gmail.com (Olivier B.) Date: Sun, 24 Apr 2016 23:31:35 +0200 Subject: [Interest] PRO File defines In-Reply-To: <129E4FD1-9514-4F34-94E8-02184859CA63@gmail.com> References: <571D06CE.8020208@gmail.com> <129E4FD1-9514-4F34-94E8-02184859CA63@gmail.com> Message-ID: Google 'undocumented qmake', or else, qmake source code ? Le 24 avr. 2016 23:29, "Gianluca" a écrit : > It’s not the first time that I see people knowing some “secrets” of Qmake … > … where is the full documentation of all these details ? > > > Il giorno 24/apr/2016, alle ore 18:47, Igor Mironchik < > igor.mironchik at gmail.com> ha scritto: > > > Hi, > > > > For real device you can use: > > > > ios { > > iphoneos { > > # Here is the real device.... > > } > > } > > > > On 24.04.2016 20:45, mark diener wrote: > >> Hello List: > >> > >> Who can tell me how to detect whether a build is for IOS or IOS > Simulator > >> in the project PRO file. > >> > >> ios { > >> QMAKE_IOS_DEPLOYMENT_TARGET=8.0 > >> QMAKE_IOS_TARGETED_DEVICE_FAMILY=1,2 > >> } > >> > >> But how to I differentiate between IOS builds and IOS-simulator builds? > >> > >> Thanks, > >> > >> Marco > >> _______________________________________________ > >> Interest mailing list > >> Interest at qt-project.org > >> http://lists.qt-project.org/mailman/listinfo/interest > > > > _______________________________________________ > > Interest mailing list > > Interest at qt-project.org > > http://lists.qt-project.org/mailman/listinfo/interest > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > -------------- next part -------------- An HTML attachment was scrubbed... URL: From gmaxera at gmail.com Sun Apr 24 23:35:06 2016 From: gmaxera at gmail.com (Gianluca) Date: Sun, 24 Apr 2016 22:35:06 +0100 Subject: [Interest] PRO File defines In-Reply-To: References: <571D06CE.8020208@gmail.com> <129E4FD1-9514-4F34-94E8-02184859CA63@gmail.com> Message-ID: ehehehe … cool … there is also an “official” undocumented qmake document: https://wiki.qt.io/Undocumented_QMake :-D Il giorno 24/apr/2016, alle ore 22:31, Olivier B. ha scritto: > Google 'undocumented qmake', or else, qmake source code ? > > Le 24 avr. 2016 23:29, "Gianluca" a écrit : > It’s not the first time that I see people knowing some “secrets” of Qmake … > … where is the full documentation of all these details ? > > > Il giorno 24/apr/2016, alle ore 18:47, Igor Mironchik ha scritto: > > > Hi, > > > > For real device you can use: > > > > ios { > > iphoneos { > > # Here is the real device.... > > } > > } > > > > On 24.04.2016 20:45, mark diener wrote: > >> Hello List: > >> > >> Who can tell me how to detect whether a build is for IOS or IOS Simulator > >> in the project PRO file. > >> > >> ios { > >> QMAKE_IOS_DEPLOYMENT_TARGET=8.0 > >> QMAKE_IOS_TARGETED_DEVICE_FAMILY=1,2 > >> } > >> > >> But how to I differentiate between IOS builds and IOS-simulator builds? > >> > >> Thanks, > >> > >> Marco > >> _______________________________________________ > >> Interest mailing list > >> Interest at qt-project.org > >> http://lists.qt-project.org/mailman/listinfo/interest > > > > _______________________________________________ > > Interest mailing list > > Interest at qt-project.org > > http://lists.qt-project.org/mailman/listinfo/interest > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -------------- next part -------------- An HTML attachment was scrubbed... URL: From igor.mironchik at gmail.com Mon Apr 25 07:39:29 2016 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Mon, 25 Apr 2016 08:39:29 +0300 Subject: [Interest] PRO File defines In-Reply-To: <129E4FD1-9514-4F34-94E8-02184859CA63@gmail.com> References: <571D06CE.8020208@gmail.com> <129E4FD1-9514-4F34-94E8-02184859CA63@gmail.com> Message-ID: <571DAD91.5000709@gmail.com> Hi, On 25.04.2016 00:29, Gianluca wrote: > It’s not the first time that I see people knowing some “secrets” of Qmake … > … where is the full documentation of all these details ? I found that here: http://doc.qt.io/qt-5/building-from-source-ios.html *Note:*A default build will include both simulator and device libraries. If you want to build for a single target, use the|-sdk|argument with either|iphoneos|or|iphonesimulator|. But I don't remember where I found that first time, just google a little... :) > > > Il giorno 24/apr/2016, alle ore 18:47, Igor Mironchik ha scritto: > >> Hi, >> >> For real device you can use: >> >> ios { >> iphoneos { >> # Here is the real device.... >> } >> } >> >> On 24.04.2016 20:45, mark diener wrote: >>> Hello List: >>> >>> Who can tell me how to detect whether a build is for IOS or IOS Simulator >>> in the project PRO file. >>> >>> ios { >>> QMAKE_IOS_DEPLOYMENT_TARGET=8.0 >>> QMAKE_IOS_TARGETED_DEVICE_FAMILY=1,2 >>> } >>> >>> But how to I differentiate between IOS builds and IOS-simulator builds? >>> >>> Thanks, >>> >>> Marco >>> _______________________________________________ >>> Interest mailing list >>> Interest at qt-project.org >>> http://lists.qt-project.org/mailman/listinfo/interest >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest -------------- next part -------------- An HTML attachment was scrubbed... URL: From andre at familiesomers.nl Mon Apr 25 07:53:54 2016 From: andre at familiesomers.nl (=?UTF-8?Q?Andr=c3=a9_Somers?=) Date: Mon, 25 Apr 2016 07:53:54 +0200 Subject: [Interest] Qt signal overhead (same thread, direct connection) In-Reply-To: References: <201604221834.19732.suy@badopi.org> Message-ID: <571DB0F2.7090400@familiesomers.nl> Op 22/04/2016 om 18:47 schreef Ben Lau: > > > As long as the passed data is an implicit sharing class like > QByteArray, then it will be fine. Because only a pointer to the > contained data is passed. Data copying only happen when a function > write to an implicit sharing class. > That might not be as cheap as you think it is. The refcounting is done in a thread-save way, and that costs time. For not smallish contents, it may be quite a bit cheaper to just copy the data itself. André From gunnar at sletta.org Mon Apr 25 09:06:55 2016 From: gunnar at sletta.org (Gunnar Sletta) Date: Mon, 25 Apr 2016 09:06:55 +0200 Subject: [Interest] Few questions regarding Qt Quick Scene Graph In-Reply-To: References: Message-ID: <430092F3-667F-445C-8B0A-CF7836CE7E49@sletta.org> > On 24 Apr 2016, at 16:49, Artem Fedoskin wrote: > > I'm sorry. My first E-Mail was sent accidentally. Here is the final version of my E-Mail. > Hello everybody. I have a project where a lot of objects are painted on the screen whenever the user interacts with the app (pan, zoom, move) I would be really grateful to you if you could answer a few questions regarding the internals of Qt Quick Scene Graph: > > • Imagine that I add 1000 nodes with the same color inside QQuickItem::updatePaintNode() function of some QQuickItem derived class. Will they be drawn in batch as described in http://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph-renderer.html#batching? Depends on the cirucmstances, but if they share clipping their QSGMaterial::compare() indicates they are all identical, they will be batched, yes. Verify with QSG_VISUALIZE=batches, as indicated by this same document. > • Can I call the function of some other class in QQuickItem::updatePaintNode()? I have some class named Data, class named View and a subclass of QSGGeometryNode Triangle. Imagine that after objects of these classes are created the Data asks View to create 10 Triangles. The View creates 10 Triangles during the updatePaintNode() call and passes to them pointers to the object of class Data, that required their instantiation. The Triangles refers to the Data and get some values from it and converts them to x,y coordinates. Is it something possible? > Do I violate the rule stated here http://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph.html#scene-graph-and-rendering "Warning: It is crucial that OpenGL operations and interaction with the scene graph happens exclusively on the render thread, primarily during the updatePaintNode() call. The rule of thumb is to only use classes with the "QSG" prefix inside the QQuickItem::updatePaintNode() function." ? The point here is really that on many systems, there will be two threads that are running. The GUI thread where your QQuickItems live and the render thread where your QSGXxx objects live. updatePaintNode() is called on the render thread while the GUI thread is blocked, so you are safe to read state out of the QQuickItem at that time and use that to create/update/modify/delete your QSGXxx objects accordingly. At any other time, the two worlds live separate lives and should have no connection. There are other places where interaction between the threads are also ok, as outlined in the QQuickItem docs, but by sticking to the rule outlined in the updatePaintNode() function, 99% of all usecases will be covered. For your usecase you are free to construct View, Data, x number of Triangles during updatePaintNode() and then store that under some subclass of a QSGNode. On the next call, you can update your structure if needed. Your QQuickItem does not store a pointer to this QSGNode, it only exists inside the scene graph and during the updatePaintNode() function. cheers, Gunnar > > At first I was thinking about deriving classes like Triangle from QQuickItem and then reparenting them to the View but the direct creation of QSGGeometryNodes seems to me to be less memory requiring approach. > > Regards, > Artem Fedoskin > > 2016-04-24 16:41 GMT+02:00 Artem Fedoskin : > Hello everybody. I have a project where a lot of objects are painted on the screen whenever the user interacts with the app (pan, zoom, move) I would be really grateful to you if you could answer a few questions regarding the internals of Qt Quick Scene Graph: > > • Imagine that I add 1000 nodes with the same color inside QQuickItem::updatePaintNode() function of some QQuickItem derived class. Will they be drawn in batch as described in http://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph-renderer.html#batching? > • Can I call the function of some other class in QQuickItem::updatePaintNode()? I have some class named Data, class named View and a subclass of QSGGeometryNode Triangle. Imagine that after objects of these classes are created the Data asks View to create 10 Triangles. The View creates 10 Triangles during the updatePaintNode() call and passes pointers to the object of class Data, that required their instantiation. The Triangles refers to the Data and get coordinates from it. Is it something possible. Do I violate the rule stated here "Warning: It is crucial that OpenGL operations and interaction with the scene graph happens exclusively on the render thread, primarily during the updatePaintNode() call. The rule of thumb is to only use classes with the "QSG" prefix inside the QQuickItem::updatePaintNode() function." > > > > • For example, I want to get new coordinates of the object and to do that I should refer to function of some other not QSGNode derived object and then use these coordinates for rendering one of the nodes. > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest From viktoria.nemkin at gmail.com Mon Apr 25 10:01:46 2016 From: viktoria.nemkin at gmail.com (=?UTF-8?Q?Vikt=C3=B3ria_Nemkin?=) Date: Mon, 25 Apr 2016 10:01:46 +0200 Subject: [Interest] QtLabsControls Button - Invalid property name "label". Message-ID: Hello! I'm just starting out with the newly released QtLabsControls. I have tried using a Button and ran into a problem: import QtQuick 2.0 import Qt.labs.controls 1.0 Button { label: Item { Text { text: "Example" } Image { id: icon source: "qrc:/x.svg" } } } In this example QtCreator tells me "label" is an invalid property name. According to the documentation here it is should exist: http://doc.qt.io/qt-5/qml-qt-labs-controls-abstractbutton.html What am I missing? Thank you, Viki -------------- next part -------------- An HTML attachment was scrubbed... URL: From jpnurmi at qt.io Mon Apr 25 10:31:01 2016 From: jpnurmi at qt.io (J-P Nurmi) Date: Mon, 25 Apr 2016 08:31:01 +0000 Subject: [Interest] QtLabsControls Button - Invalid property name "label". In-Reply-To: References: Message-ID: On 25 Apr 2016, at 10:01, Viktória Nemkin > wrote: Hello! I'm just starting out with the newly released QtLabsControls. I have tried using a Button and ran into a problem: import QtQuick 2.0 import Qt.labs.controls 1.0 Button { label: Item { Text { text: "Example" } Image { id: icon source: "qrc:/x.svg" } } } In this example QtCreator tells me "label" is an invalid property name. According to the documentation here it is should exist: http://doc.qt.io/qt-5/qml-qt-labs-controls-abstractbutton.html What am I missing? Hi, Are you using 5.7 beta? The Button::label property was replaced by a more generic Control::contentItem property. We’ve been reviewing, aligning and cleaning up the APIs so there are going to be some minor API differences between the tech preview in 5.6 beta and the final release in 5.7.0. Button { contentItem: Item { … } } -- J-P Nurmi -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexander_carot at gmx.net Mon Apr 25 12:45:14 2016 From: alexander_carot at gmx.net (=?UTF-8?Q?=22Alexander_Car=C3=B4t=22?=) Date: Mon, 25 Apr 2016 12:45:14 +0200 Subject: [Interest] Convert IPv6 to IPv4 ? In-Reply-To: <2360592.UAIzCJrcza@tjmaciei-mobl4> References: , <2360592.UAIzCJrcza@tjmaciei-mobl4> Message-ID: Hello Thiago, Hello Benjamin, thanks for your replies ! In fact Thiago was precisely right with this: > You probably mean you've got a v4-mapped IPv6 address, as > ::ffff:192.0.2.1 As a quick hack I first converted this to a string and removed the first 7 characters but of course Thiagos solution is the way to do it. It works well - thanks a lot, best regards Alex -- http://www.carot.de Email : Alexander at Carot.de Tel.: +49 (0)177 5719797 > Gesendet: Donnerstag, 21. April 2016 um 19:02 Uhr > Von: "Thiago Macieira" > An: interest at qt-project.org > Betreff: Re: [Interest] Convert IPv6 to IPv4 ? > > On quinta-feira, 21 de abril de 2016 14:05:52 PDT Alexander Carôt wrote: > > Hello, > > > > I noticed that retrieving a sender's IP address of a QWebSocket via > > ->peerAddress() returns an IPv6 socket address. > > > > For certain reasons I need an IPv4 address so I wonder how it is possible to > > either let ->peerAddress() return an IPv4 address or convert the IPv6 > > address to an IPv4 address. > > Hello Alex > > You probably mean you've got a v4-mapped IPv6 address, as > ::ffff:192.0.2.1 > > You should code as: > > bool ok; > quint32 ipv4 = hostaddr.toIPv4Address(&ok); > if (ok) { > // check my IPv4 ACL > } else if (hostaddr.protocol() == QAbstractSocket::IPv6Protocol) { > // check my IPv6 ACL > } else { > // uh... what? > } > > > -- > Thiago Macieira - thiago.macieira (AT) intel.com > Software Architect - Intel Open Source Technology Center > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > From frares at gmail.com Mon Apr 25 12:58:59 2016 From: frares at gmail.com (Francisco Ares) Date: Mon, 25 Apr 2016 07:58:59 -0300 Subject: [Interest] PRO File defines In-Reply-To: <571DAD91.5000709@gmail.com> References: <571D06CE.8020208@gmail.com> <129E4FD1-9514-4F34-94E8-02184859CA63@gmail.com> <571DAD91.5000709@gmail.com> Message-ID: 2016-04-25 2:39 GMT-03:00 Igor Mironchik : > Hi, > > On 25.04.2016 00:29, Gianluca wrote: > > It’s not the first time that I see people knowing some “secrets” of Qmake … > … where is the full documentation of all these details ? > > > I found that here: > > http://doc.qt.io/qt-5/building-from-source-ios.html > > *Note: *A default build will include both simulator and device libraries. > If you want to build for a single target, use the -sdk argument with > either iphoneos or iphonesimulator. > > But I don't remember where I found that first time, just google a > little... :) > > Il giorno 24/apr/2016, alle ore 18:47, Igor Mironchik ha scritto: > > > Hi, > > For real device you can use: > > ios { > iphoneos { > # Here is the real device.... > } > } > > On 24.04.2016 20:45, mark diener wrote: > > Hello List: > > Who can tell me how to detect whether a build is for IOS or IOS Simulator > in the project PRO file. > > ios { > QMAKE_IOS_DEPLOYMENT_TARGET=8.0 > QMAKE_IOS_TARGETED_DEVICE_FAMILY=1,2 > } > > But how to I differentiate between IOS builds and IOS-simulator builds? > > Thanks, > > Marco > _______________________________________________ > Interest mailing listInterest at qt-project.orghttp://lists.qt-project.org/mailman/listinfo/interest > > _______________________________________________ > Interest mailing listInterest at qt-project.orghttp://lists.qt-project.org/mailman/listinfo/interest > > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > There's this link, also, which I found most interesting: http://doc.qt.io/qt-5/qmake-manual.html Good luck and Best regards, Francisco P.S.: by the way, I've been fiddling with some PRO files, and nowadays use a few tricks, like: using one source tree to build different executables, with different functionality: op1=$$find(DEFINES,"_REGISTER") count (op1,1) { include(../ModBus/QModBusMaster.pri) op2=$$find(QT, network) count(op2,0) { unix|win32: QT += network } TARGET = WebR } count(op1,0) { TARGET = Web } building a usable string with the revision number, which considers the subversion's own revision number: REV_MAJOR_CODE = 1 REV_MINOR_CODE = 7 REV_PATCH_CODE = 0 win32 { defineReplace(Revisions) { NUMBERS = $$system(set LANG=en_US && svn info | sed --quiet /Rev:/p | cut -d: -f2 ) # message($$NUMBERS) return ($$NUMBERS) } } unix { defineReplace(Revisions) { NUMBERS = $$system(A=`LC_ALL=C svn info | grep "Rev:" | cut -d\" \" -f4` && echo $A) # message($$NUMBERS) return ($$NUMBERS) } } VER = $$REV_MAJOR_CODE $$REV_MINOR_CODE $$REV_PATCH_CODE $$Revisions() VERSION = $$join(VER, ".") DEFINES += \ REV_SUBVN_CODE=$$Revisions() \ REV_PATCH_CODE=$$REV_PATCH_CODE \ REV_MINOR_CODE=$$REV_MINOR_CODE \ REV_MAJOR_CODE=$$REV_MAJOR_CODE \ REV_CODE=\\\"$$VERSION\\\" \ APP_VERSION=\\\"$$VERSION\\\" \ APP_NAME=\"$$TARGET\" \ QT_DLL message($$TARGET v.: $$VERSION - Qt $$QT_VERSION) So, like this, the source may use the PRO file defined REV_CODE variable to show it anywhere as desired, for instance. Knowledge and practice really does something! -------------- next part -------------- An HTML attachment was scrubbed... URL: From ramitix at yahoo.com Mon Apr 25 18:23:31 2016 From: ramitix at yahoo.com (Ramy Atalla) Date: Mon, 25 Apr 2016 16:23:31 +0000 (UTC) Subject: [Interest] [Qt3d] Does the duration of NumberAnimation update when you change its value? References: <524623020.1848305.1461601411779.JavaMail.yahoo.ref@mail.yahoo.com> Message-ID: <524623020.1848305.1461601411779.JavaMail.yahoo@mail.yahoo.com> Hi,I am trying to do a rotation animation and control the rotation speed by changing the value of the duration, But it doesn't work . My question is it feasible or there another way ? QQ2.NumberAnimation { id:wheelanimation property int carspeed:0 targets: [wheel1Transform , rim1Transform,wheel2Transform , rim2Transform,wheel3Transform ,          rim3Transform,wheel4Transform , rim4Transform] property: "userAngle" duration: carspeed from: 0 to: 360 loops: QQ2.Animation.Infinite running: true } QQ2.NumberAnimation { duration: 100 loops: QQ2.Animation.Infinite target: wheelanimation property: "carspeed" from: 0.0 to: 3000 running: true } ThanksRamy -------------- next part -------------- An HTML attachment was scrubbed... URL: From sean.harmer at kdab.com Mon Apr 25 18:45:15 2016 From: sean.harmer at kdab.com (Sean Harmer) Date: Mon, 25 Apr 2016 17:45:15 +0100 Subject: [Interest] [Qt3d] Does the duration of NumberAnimation update when you change its value? In-Reply-To: <524623020.1848305.1461601411779.JavaMail.yahoo@mail.yahoo.com> References: <524623020.1848305.1461601411779.JavaMail.yahoo.ref@mail.yahoo.com> <524623020.1848305.1461601411779.JavaMail.yahoo@mail.yahoo.com> Message-ID: <3227574.YulT1JFENN@titan> Hi, On Monday 25 April 2016 16:23:31 Ramy Atalla via Interest wrote: > Hi,I am trying to do a rotation animation and control the rotation speed by > changing the value of the duration, But it doesn't work . My question is it > feasible or there another way ? > > QQ2.NumberAnimation { id:wheelanimation property int carspeed:0 > targets: [wheel1Transform , rim1Transform,wheel2Transform , > rim2Transform,wheel3Transform , rim3Transform,wheel4Transform , > rim4Transform] property: "userAngle" duration: carspeed from: 0 > to: 360 loops: QQ2.Animation.Infinite running: true } > QQ2.NumberAnimation { duration: 100 loops: QQ2.Animation.Infinite > target: wheelanimation property: "carspeed" from: 0.0 to: 3000 > running: true } I don't think this works unless you stop/restart the animation which is not ideal. A work around is to have a simple NumberAnimation changing a "progress" value, then in your actual property that you wish to animate, multiply this progress property by your rotationSpeed property. It requires some extra gymnastics to cope with non-integer numbers of rotations per cycle of the progress property. Something like this should do it (not tested): Entity { id: root property real progress: 0.0 property real rotationSpeed: 10.0 property real angle: previousAngle + ( progress * rotationSpeed ) property real previousAngle: 0.0 function updatePreviousRotation() { root.previousAngle = root.angle; } SequentialAnimation { running: true loops: Animation.Infinite NumberAnimation { from: 0; to: 1 duration: 1000 } ScriptAction { script: updatePreviousRotation() } } } This is a limitation of what can be expressed with the Qt Quick 2 animation framework at present. When we look at adding an animation aspect to Qt 3D for Qt 5.8 or 5.9, this is one of the things I want to address along with morph target, key frame and skeletal animations. More likely for 5.9 given we're already well into the development cycle for 5.8 and we're still putting all efforts into 5.7. Hope this helps, Sean -- Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK Klarälvdalens Datakonsult AB, a KDAB Group company Tel. UK +44 (0)1625 809908, Sweden (HQ) +46-563-540090 KDAB - Qt Experts - Platform-independent software solutions From antonxx at gmx.de Mon Apr 25 18:52:42 2016 From: antonxx at gmx.de (anton) Date: Mon, 25 Apr 2016 18:52:42 +0200 Subject: [Interest] Howto keep a pushButton style while changing the backgroundcolor Message-ID: Hi, I am experimenting with qt 5.6.0. 1. I create a QtWidgts application. 2. I drop a pushButton in the Main Window 3. I change the styleSheet of the QMainWindow to: background-color: rgb(85, 170, 255); Now the button has the same background color too. How can I leave the style of the pushbutton as it is? (without inheriting the blue background color from the QMainWindow) I didn't find any solution and I do not want to set a background bitmap for such a simple problem. What point did I miss? Thanks for a hint. Anton From tony at rightsoft.com.au Mon Apr 25 19:38:09 2016 From: tony at rightsoft.com.au (Tony Rietwyk) Date: Tue, 26 Apr 2016 03:38:09 +1000 Subject: [Interest] Howto keep a pushButton style while changing the backgroundcolor In-Reply-To: References: Message-ID: <009201d19f19$3c561bd0$b5025370$@rightsoft.com.au> Anton said: > Sent: Tuesday, 26 April 2016 2:53 AM > Hi, > > I am experimenting with qt 5.6.0. > > 1. I create a QtWidgts application. > 2. I drop a pushButton in the Main Window 3. I change the styleSheet of the > QMainWindow > to: background-color: rgb(85, 170, 255); > > Now the button has the same background color too. > > How can I leave the style of the pushbutton as it is? > (without inheriting the blue background color from the QMainWindow) > > I didn't find any solution and I do not want to set a background bitmap for > such a simple problem. > > What point did I miss? > > Thanks for a hint. > > Anton You missed some CSS. Without a CSS selector, the background-color recursively applies to all widgets parented by the main window. Try setStyleSheet( "QMainWindow { background-color: rgb(85, 170, 255); }" ); or setStyleSheet( "#mainWindowObjectName { background-color: rgb(85, 170, 255); }" ); Hope that helps, Tony From afedoskin3 at gmail.com Mon Apr 25 19:46:15 2016 From: afedoskin3 at gmail.com (Artem Fedoskin) Date: Mon, 25 Apr 2016 19:46:15 +0200 Subject: [Interest] Few questions regarding Qt Quick Scene Graph In-Reply-To: <430092F3-667F-445C-8B0A-CF7836CE7E49@sletta.org> References: <430092F3-667F-445C-8B0A-CF7836CE7E49@sletta.org> Message-ID: Thank you for your reply Gunnar, Can you please tell me - can I store a pointer to the object of external class (even not a QQuickItem derived one) in QSGNode derived class? Each object of the class Data is associated with corresponding Triangle in View. Whenever View is updated, it checks in loop Data objects on special condition and based on that sets the corresponding Triangle to visible or invisible state. If Triangle is visible, Triangle itself calls a bunch of functions from external classes and uses pointer on object Data to retrieve Data's info about coordinates then accesses function from another class to convert the received coordinates to x,y positions. I understand that it is not safe to access QSGNode not from updatePaintNode(), but is it actually safe to access other classes from QSGNode itself? How far can I go in QSGNode in accessing things in GUI thread? Could you please also tell me - what is the way to hide QSGNode explicitly like for example setting QQuickItem::visible property to false. I found your E-Mail here http://lists.qt-project.org/pipermail/interest/2015-February/015285.html but I'm afraid that deallocating and allocating QSGNode will take unnecessary overhead as the visibility of nodes in my app will be often turned off/on. Is it a good idea to use QSGNode::removeChildNode() for this? How do you think - maybe instead of allocating directly QSGNodes I should just subclass instance of Data from QQuickItem and set its visual parent to View? Is allocating 1000 QSGNodes in View significantly faster than creating 1000 QQuickItems with the same painting logic and then setting its visual parent to View? Thank you Regards, Artem 2016-04-25 9:06 GMT+02:00 Gunnar Sletta : > > > On 24 Apr 2016, at 16:49, Artem Fedoskin wrote: > > > > I'm sorry. My first E-Mail was sent accidentally. Here is the final > version of my E-Mail. > > Hello everybody. I have a project where a lot of objects are painted on > the screen whenever the user interacts with the app (pan, zoom, move) I > would be really grateful to you if you could answer a few questions > regarding the internals of Qt Quick Scene Graph: > > > > • Imagine that I add 1000 nodes with the same color inside > QQuickItem::updatePaintNode() function of some QQuickItem derived class. > Will they be drawn in batch as described in > http://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph-renderer.html#batching > ? > > Depends on the cirucmstances, but if they share clipping their > QSGMaterial::compare() indicates they are all identical, they will be > batched, yes. Verify with QSG_VISUALIZE=batches, as indicated by this same > document. > > > • Can I call the function of some other class in > QQuickItem::updatePaintNode()? I have some class named Data, class named > View and a subclass of QSGGeometryNode Triangle. Imagine that after objects > of these classes are created the Data asks View to create 10 Triangles. The > View creates 10 Triangles during the updatePaintNode() call and passes to > them pointers to the object of class Data, that required their > instantiation. The Triangles refers to the Data and get some values from it > and converts them to x,y coordinates. Is it something possible? > > Do I violate the rule stated here > http://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph.html#scene-graph-and-rendering > "Warning: It is crucial that OpenGL operations and interaction with the > scene graph happens exclusively on the render thread, primarily during the > updatePaintNode() call. The rule of thumb is to only use classes with the > "QSG" prefix inside the QQuickItem::updatePaintNode() function." ? > > The point here is really that on many systems, there will be two threads > that are running. The GUI thread where your QQuickItems live and the render > thread where your QSGXxx objects live. updatePaintNode() is called on the > render thread while the GUI thread is blocked, so you are safe to read > state out of the QQuickItem at that time and use that to > create/update/modify/delete your QSGXxx objects accordingly. At any other > time, the two worlds live separate lives and should have no connection. > > There are other places where interaction between the threads are also ok, > as outlined in the QQuickItem docs, but by sticking to the rule outlined in > the updatePaintNode() function, 99% of all usecases will be covered. > > For your usecase you are free to construct View, Data, x number of > Triangles during updatePaintNode() and then store that under some subclass > of a QSGNode. On the next call, you can update your structure if needed. > Your QQuickItem does not store a pointer to this QSGNode, it only exists > inside the scene graph and during the updatePaintNode() function. > > cheers, > Gunnar > > > > > At first I was thinking about deriving classes like Triangle from > QQuickItem and then reparenting them to the View but the direct creation of > QSGGeometryNodes seems to me to be less memory requiring approach. > > > > Regards, > > Artem Fedoskin > > > > 2016-04-24 16:41 GMT+02:00 Artem Fedoskin : > > Hello everybody. I have a project where a lot of objects are painted on > the screen whenever the user interacts with the app (pan, zoom, move) I > would be really grateful to you if you could answer a few questions > regarding the internals of Qt Quick Scene Graph: > > > > • Imagine that I add 1000 nodes with the same color inside > QQuickItem::updatePaintNode() function of some QQuickItem derived class. > Will they be drawn in batch as described in > http://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph-renderer.html#batching > ? > > • Can I call the function of some other class in > QQuickItem::updatePaintNode()? I have some class named Data, class named > View and a subclass of QSGGeometryNode Triangle. Imagine that after objects > of these classes are created the Data asks View to create 10 Triangles. The > View creates 10 Triangles during the updatePaintNode() call and passes > pointers to the object of class Data, that required their instantiation. > The Triangles refers to the Data and get coordinates from it. Is it > something possible. Do I violate the rule stated here "Warning: It is > crucial that OpenGL operations and interaction with the scene graph happens > exclusively on the render thread, primarily during the updatePaintNode() > call. The rule of thumb is to only use classes with the "QSG" prefix inside > the QQuickItem::updatePaintNode() function." > > > > > > > > • For example, I want to get new coordinates of the object and to > do that I should refer to function of some other not QSGNode derived object > and then use these coordinates for rendering one of the nodes. > > > > _______________________________________________ > > Interest mailing list > > Interest at qt-project.org > > http://lists.qt-project.org/mailman/listinfo/interest > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From flamaros.xavier at gmail.com Mon Apr 25 20:41:09 2016 From: flamaros.xavier at gmail.com (Xavier Bigand) Date: Mon, 25 Apr 2016 20:41:09 +0200 Subject: [Interest] [Qt3D] Distance field and texture atlas In-Reply-To: References: <2895010.WFSV69cvr7@cartman> <3748240.rMo8S3g0j4@cartman> Message-ID: I realize that we can certainly improve the rendering of elements like openings,... by generating a geometry based on lines (bezier,...). This will remove the usage of textures and it can be scaled while preserving the line width. In this case distance field will be useful mostly for texts. It make sense that the distance field require a particular material, but maybe Qt can provide some helper functions to generate the particular texture containing the distance field. It will be great to have it in Qt 5.8. 2016-04-21 16:04 GMT+02:00 Xavier Bigand : > I am working on an architecture and design software. > > There is a lot of feature in Qt3D that interest us for our software, I > already have made a prototype based on Qt3D as replacement of our homebrew > 3D engine. > > I am interesting in improving rendering of 2D elements : > [image: Images intégrées 2] > As you can see with our engine the scale can cut texts and grips aren't > well filtered. Using distance field can help a lot because all elements can > be scaled during the zoom. > > PS: We also think to add MSAA filtering > > > > > > 2016-04-21 15:02 GMT+02:00 Sean Harmer : > >> Hi, >> >> On Thursday 21 April 2016 14:50:55 Xavier Bigand wrote: >> > I know that QtQuick already manage the distance field for text elements, >> > but I want to be able to use it with Qt3D too. >> > Our Qt3D objects are managed in C++ code not in QML, we prefer to not >> bind >> > those elements in QML because of the memory overhead. >> >> Oh sorry, I didn't realise you were talking about Qt 3D. Qt 3D does not >> use >> distance fields at all in any out of the box materials at this stage. You >> will >> need to write a custom Material/Effect to sample from the distance >> fields. Can >> you elaborate a bit on your particular use case please? Maybe this is >> something we can integrate for Qt 5.8? >> >> > Does the backend of QML and Qt3D share the same Rendering backend? >> >> No. The integration point is in the Scene3D item. Other than that Qt 3D is >> distinct from Qt Quick. >> >> Cheers, >> >> Sean >> >> > >> > 2016-04-21 14:34 GMT+02:00 Sean Harmer : >> > > On Thursday 21 April 2016 12:51:27 Xavier Bigand wrote: >> > > > Hi, >> > > > >> > > > Is there any plans to let the user control distance field and >> texture >> > > >> > > atlas? >> > > >> > > > We are interested by the distance field for text and icons >> rendering as >> > > >> > > we >> > > >> > > > apply scale and rotation on some small elements. We have to much >> > > > elements >> > > > to regenerate textures at the right size from svg or ttf, and doing >> a >> > > >> > > cache >> > > >> > > > can consume a lot of memory. >> > > >> > > What do you want to control? QML text elements use a distance field >> glyph >> > > cache >> > > out of the box (unless you force it to native rendering). I think the >> > > vertical >> > > size of this is hard wired for now. In theory it could be exposed. >> > > >> > > Afaik Image elements don't use a distance field at all, so you would >> need >> > > to >> > > write a custom QQuickItem plus material to make use of distance fields >> > > here. >> > > >> > > > Texture atlas can also a good thing to improve performances, but >> with >> > > > new >> > > > API that are coming like vulkan the interest will decrease, so this >> > > >> > > feature >> > > >> > > > will be interesting only for few years. >> > > >> > > That assumes a backend to Qt Quick that uses something which supports >> > > bindless >> > > textures. >> > > >> > > Cheers, >> > > >> > > Sean >> > > -- >> > > Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK >> > > KDAB (UK) Ltd, a KDAB Group company >> > > Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090 >> > > Mobile: +44 (0)7545 140604 >> > > KDAB - Qt Experts >> >> -- >> Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK >> KDAB (UK) Ltd, a KDAB Group company >> Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090 >> Mobile: +44 (0)7545 140604 >> KDAB - Qt Experts >> > > > > -- > Xavier > -- Xavier -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image.png Type: image/png Size: 551290 bytes Desc: not available URL: From antonxx at gmx.de Mon Apr 25 21:40:31 2016 From: antonxx at gmx.de (anton) Date: Mon, 25 Apr 2016 21:40:31 +0200 Subject: [Interest] Howto keep a pushButton style while changing the backgroundcolor References: <009201d19f19$3c561bd0$b5025370$@rightsoft.com.au> Message-ID: Thanks a lot Tony, yes it works :-) Anton Tony Rietwyk wrote: > Hope that helps, > From edward.sutton at subsite.com Mon Apr 25 21:57:55 2016 From: edward.sutton at subsite.com (Edward Sutton) Date: Mon, 25 Apr 2016 19:57:55 +0000 Subject: [Interest] Broken Android gdb debugging ? Message-ID: <2B2A09B3-6876-4560-A748-7E5F37C618E3@subsite.com> My Android gdb debugging and deployment broke recently after I switched from Eclipse to Android Studio and installed Qt 5.6.0. I am not sure what to check? The Android for armeabi-v7a (GCC 4.9, Qt 5.6.0) kit can no longer find gdb. ~/Library/Android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-gdb I can still find gdbserver: ~/Library/Android/sdk/ndk-bundle/prebuilt/android-arm/gdbserver/gdbserver The Android NDK mentions an ndk-gdb script. Does this replaced gdb? ~/Library/Android/sdk/ndk-bundle/ndk-gdb Has Qt Android switched too LLDB for Android? -Ed This email and any files transmitted with it from The Charles Machine Works, Inc. are confidential and intended solely for the use of the individual or entity to which they are addressed. If you have received this email in error please notify the sender. Our company accepts no liability for the contents of this email, or for the consequences of any actions taken on the basis of the information provided, unless that information is subsequently confirmed in writing. Please note that any views or opinions presented in this email are solely those of the author and do not necessarily represent those of the company. Finally, the recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. -------------- next part -------------- An HTML attachment was scrubbed... URL: From apoenitz at t-online.de Mon Apr 25 22:11:34 2016 From: apoenitz at t-online.de (=?iso-8859-1?Q?Andr=E9_P=F6nitz?=) Date: Mon, 25 Apr 2016 22:11:34 +0200 Subject: [Interest] Broken Android gdb debugging ? In-Reply-To: <2B2A09B3-6876-4560-A748-7E5F37C618E3@subsite.com> References: <2B2A09B3-6876-4560-A748-7E5F37C618E3@subsite.com> Message-ID: <20160425201134.GA10343@klara.mpi.htwm.de> On Mon, Apr 25, 2016 at 07:57:55PM +0000, Edward Sutton wrote: > My Android gdb debugging and deployment broke recently after I switched from Eclipse to Android Studio and installed Qt 5.6.0. > > I am not sure what to check? Try NDK 10e, not 11b or 11c Andre' From larry.martell at gmail.com Mon Apr 25 22:59:33 2016 From: larry.martell at gmail.com (Larry Martell) Date: Mon, 25 Apr 2016 16:59:33 -0400 Subject: [Interest] Running Qt app in a browser Message-ID: Is it possible to run a Qt app in a browser? I have googled for this, and found some hits, but none seen like they ever worked out. The most promising seems to be http://wiki.qt.io/Qt_for_Google_Native_Client but the readme link is broken, so that's discouraging. Anyone have any pointers on if this can be done and if so how? Thanks! From edward.sutton at subsite.com Mon Apr 25 23:02:13 2016 From: edward.sutton at subsite.com (Edward Sutton) Date: Mon, 25 Apr 2016 21:02:13 +0000 Subject: [Interest] Broken Android gdb debugging ? In-Reply-To: <20160425201134.GA10343@klara.mpi.htwm.de> References: <2B2A09B3-6876-4560-A748-7E5F37C618E3@subsite.com> <20160425201134.GA10343@klara.mpi.htwm.de> Message-ID: Thank you Andre. After rolling back to r10E I still cannot deploy and debug. It no longer hangs at the deploy stage. This is an improvement. The Android Kit GDB Server is still pointing to the Android Studio ndk-bundle even thought it has been removed. I cannot seem to fix this? I unchecked NDK 12 from Android Studio SDK Manager and removed it. Then I downloaded/installed r10E from: http://dl.google.com/android/repository/android-ndk-r10e-darwin-x86_64.zip Removed Qt 5.6.0 and reinstalled. Changed Qt -> Android, NDK Location from Android NDK location of: ~/Library/Android/sdk/ndk-bundle To ~/android/android-ndk-r10e In Application Output I see:: Debugging starts Debugging has finished sStarting debugger "GdbEngine" for ABI "arm-linux-android-elf-32bit"... dStart parameters: 'com.ditchwitch.tsr' mode: 6 dABI: arm-linux-android-elf-32bit dLanguages: c++ dExecutable: /Users/edward3/Documents/projects/tsr-mobile-google-analytics/build-tsr-Android_for_armeabi_v7a_GCC_4_9_Qt_5_6_0-Debug/app_process dDebugger: /Users/edward3/android/android-ndk-r10e/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-gdb dProject: /Users/edward3/Documents/projects/tsr-mobile-google-analytics/sourceAddtional Search Directories: dRemote: :5039 dSysroot: dDebug Source Location: dDebugger settings: dBreakOnWarning: false (default: false) dShowQmlObjectTree: true (default: true) dBreakOnAbort: false (default: false) dSelectedPluginBreakpointsPattern: .* (default: .*) dNoPluginBreakpoints: false (default: false) dBreakOnCatch: false (default: false) dBreakOnThrow: false (default: false) dQmlInspector.ShowAppOnTop: false (default: false) dLoadGdbDumpers2: false (default: false) dLoadGdbInit: true (default: true) dGdbStartupCommands: (default: ) dAttemptQuickStart: false (default: false) dCDB_Console: false (default: false) dBreakOnCrtDbgReport: false (default: false) dIgnoreFirstChanceAccessViolation: false (default: false) dBreakpointCorrection: true (default: true) dWarnOnReleaseBuilds: true (default: true) dTargetAsync: false (default: false) dIntelFlavor: false (default: false) dMultiInferior: false (default: false) dWatchdogTimeout: 20 (default: 20) dGdbPostAttachCommands: (default: ) dUseDynamicType: true (default: true) dAutoEnrichParameters: true (default: true) dShowQtNamespace: true (default: true) dShowStandardNamespace: true (default: true) dAutoDerefPointers: true (default: true) dSortStructMembers: true (default: true) dMaximalStackDepth: 20 (default: 20) dIdentifyDebugInfoPackages: false (default: false) dAllPluginBreakpoints: true (default: true) dAdjustBreakpointLocations: true (default: true) dSelectedPluginBreakpoints: false (default: false) dDisplayStringLimit: 100 (default: 100) dMaximalStringLength: 10000 (default: 10000) dEnableReverseDebugging: false (default: false) dSkipKnownFrames: false (default: false) dAutoQuit: false (default: false) dVerboseLog: false (default: false) dLogTimeStamps: false (default: false) dUseAlternatingRowColours: false (default: false) dUseMessageBoxForSignals: true (default: true) dFontSizeFollowsEditor: false (default: false) dRaiseOnInterrupt: true (default: true) dBreakpointsFullPath: false (default: false) dUseDebuggingHelper: true (default: true) dStationaryEditorWhileStepping: false (default: false) dCloseBuffersOnExit: false (default: false) dSwitchModeOnExit: false (default: false) dCloseMemoryBuffersOnExit: true (default: true) dUseToolTipsInBreakpointsView: true (default: true) dUseToolTipsInBreakpointsView: true (default: false) *** dUseAddressInStackView: false (default: false) dUseAddressInBreakpointsView: false (default: false) dShowThreadNames: false (default: false) dUseCodeModel: true (default: true) dUseToolTipsInLocalsView: false (default: false) dUseToolTips: true (default: true) dSymbolPaths: (default: ) dAdditionalArguments: (default: ) dBreakEvent: (default: ) dSourcePaths: (default: ) dAlwaysAdjustColumnWidths: true (default: true) dGdbCustomDumperCommands: (default: ) dExtraDumperFile: (default: ) dBreakOnFatal: false (default: false) dState changed from DebuggerNotReady(0) to EngineSetupRequested(1) [master] dQUEUE: SETUP ENGINE dCALL: SETUP ENGINE dTRYING TO START ADAPTER dNOTE: REQUEST REMOTE SETUP dNOTE: INFERIOR EXITED dState changed from EngineSetupRequested(1) to InferiorShutdownOk(18) [master] dState changed from InferiorShutdownOk(18) to EngineShutdownRequested(19) [master] dQUEUE: SHUTDOWN ENGINE dCALL: SHUTDOWN ENGINE dINITIATE GDBENGINE SHUTDOWN IN STATE 0, PROC: 0 dNOTE: ENGINE SHUTDOWN OK dState changed from EngineShutdownRequested(19) to EngineShutdownOk(21) [master] dState changed from EngineShutdownOk(21) to DebuggerFinished(22) [master] dQUEUE: FINISH DEBUGGER dNOTE: FINISH DEBUGGER dHANDLE RUNCONTROL FINISHED sDebugger finished. -Ed On Apr 25, 2016, at 3:11 PM, André Pönitz > wrote: On Mon, Apr 25, 2016 at 07:57:55PM +0000, Edward Sutton wrote: My Android gdb debugging and deployment broke recently after I switched from Eclipse to Android Studio and installed Qt 5.6.0. I am not sure what to check? Try NDK 10e, not 11b or 11c Andre' This email and any files transmitted with it from The Charles Machine Works, Inc. are confidential and intended solely for the use of the individual or entity to which they are addressed. If you have received this email in error please notify the sender. Our company accepts no liability for the contents of this email, or for the consequences of any actions taken on the basis of the information provided, unless that information is subsequently confirmed in writing. Please note that any views or opinions presented in this email are solely those of the author and do not necessarily represent those of the company. Finally, the recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jerome at bodycad.com Mon Apr 25 23:12:06 2016 From: jerome at bodycad.com (=?UTF-8?B?SsOpcsO0bWUgR29kYm91dA==?=) Date: Mon, 25 Apr 2016 17:12:06 -0400 Subject: [Interest] Running Qt app in a browser In-Reply-To: References: Message-ID: Not a full solution, but just a thought, you could use some sort of CGI script to call your Qt Application backend? For the Gui, I wonder if rendering the image into a texture or an image. Send the image to the client (delta compressed). Make the rendering into a canvas and apply changed. You could send the mouse click from the client back to the application as JSON call to your CGI as relative coordinate and simulate them into the Qt application. This would be bandwidth intensive, but depending on what you try to achieve. On Mon, Apr 25, 2016 at 4:59 PM, Larry Martell wrote: > Is it possible to run a Qt app in a browser? I have googled for this, > and found some hits, but none seen like they ever worked out. The most > promising seems to be http://wiki.qt.io/Qt_for_Google_Native_Client > but the readme link is broken, so that's discouraging. Anyone have any > pointers on if this can be done and if so how? > > Thanks! > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > -------------- next part -------------- An HTML attachment was scrubbed... URL: From gjergjiramku at gmail.com Mon Apr 25 23:16:56 2016 From: gjergjiramku at gmail.com (Gjergji Ramku) Date: Mon, 25 Apr 2016 23:16:56 +0200 Subject: [Interest] Running Qt app in a browser In-Reply-To: References: Message-ID: This shows that there is work in progress blog.qt.io/blog/2015/09/25/qt-for-native-client-and-emscripten/ On Apr 25, 2016 11:12 PM, "Jérôme Godbout" wrote: > Not a full solution, but just a thought, you could use some sort of CGI > script to call your Qt Application backend? > > For the Gui, I wonder if rendering the image into a texture or an image. > Send the image to the client (delta compressed). Make the rendering into a > canvas and apply changed. You could send the mouse click from the client > back to the application as JSON call to your CGI as relative coordinate and > simulate them into the Qt application. > > This would be bandwidth intensive, but depending on what you try to > achieve. > > On Mon, Apr 25, 2016 at 4:59 PM, Larry Martell > wrote: > >> Is it possible to run a Qt app in a browser? I have googled for this, >> and found some hits, but none seen like they ever worked out. The most >> promising seems to be http://wiki.qt.io/Qt_for_Google_Native_Client >> but the readme link is broken, so that's discouraging. Anyone have any >> pointers on if this can be done and if so how? >> >> Thanks! >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest >> > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From apoenitz at t-online.de Mon Apr 25 23:21:52 2016 From: apoenitz at t-online.de (=?iso-8859-1?Q?Andr=E9_P=F6nitz?=) Date: Mon, 25 Apr 2016 23:21:52 +0200 Subject: [Interest] Broken Android gdb debugging ? In-Reply-To: References: <2B2A09B3-6876-4560-A748-7E5F37C618E3@subsite.com> <20160425201134.GA10343@klara.mpi.htwm.de> Message-ID: <20160425212152.GA10468@klara.mpi.htwm.de> On Mon, Apr 25, 2016 at 09:02:13PM +0000, Edward Sutton wrote: > Thank you Andre. > > After rolling back to r10E I still cannot deploy and debug. It no > longer hangs at the deploy stage. This is an improvement. > > The Android Kit GDB Server is still pointing to the Android Studio > ndk-bundle even thought it has been removed. > > I cannot seem to fix this? I can't check right now. Things to test: If you have "Automatically create kits" checked in Qt Creator's Android settings, remove and re-add the Qt version. This should remove and re-add corresponding kits. If that does not help and there's still an auto-detected kit with some wrong settings, clone that kit, and replace the wrong setting with the correct one. In case of compiler or debugger you might need to add (and 'Apply'...) entries on the compiler/debugger pages first. Then use this fixed kit. Andre' From edward.sutton at subsite.com Mon Apr 25 23:32:26 2016 From: edward.sutton at subsite.com (Edward Sutton) Date: Mon, 25 Apr 2016 21:32:26 +0000 Subject: [Interest] Broken Android gdb debugging ? In-Reply-To: <20160425212152.GA10468@klara.mpi.htwm.de> References: <2B2A09B3-6876-4560-A748-7E5F37C618E3@subsite.com> <20160425201134.GA10343@klara.mpi.htwm.de> <20160425212152.GA10468@klara.mpi.htwm.de> Message-ID: Sorry, I went back to a sample app and now I can debug again. I think reverting to r10e fixed the main problem. It must have an Android Manifest or other issue. Something I broke when trying to add support for Google Analytics. Thank you for your time and other things to test. -Ed > On Apr 25, 2016, at 4:21 PM, André Pönitz wrote: > > On Mon, Apr 25, 2016 at 09:02:13PM +0000, Edward Sutton wrote: >> Thank you Andre. >> >> After rolling back to r10E I still cannot deploy and debug. It no >> longer hangs at the deploy stage. This is an improvement. >> >> The Android Kit GDB Server is still pointing to the Android Studio >> ndk-bundle even thought it has been removed. >> >> I cannot seem to fix this? > > I can't check right now. > > Things to test: > > If you have "Automatically create kits" checked in Qt Creator's > Android settings, remove and re-add the Qt version. This should > remove and re-add corresponding kits. > > If that does not help and there's still an auto-detected kit with > some wrong settings, clone that kit, and replace the wrong setting > with the correct one. In case of compiler or debugger you might > need to add (and 'Apply'...) entries on the compiler/debugger pages > first. Then use this fixed kit. > > Andre' > This email and any files transmitted with it from The Charles Machine Works, Inc. are confidential and intended solely for the use of the individual or entity to which they are addressed. If you have received this email in error please notify the sender. Our company accepts no liability for the contents of this email, or for the consequences of any actions taken on the basis of the information provided, unless that information is subsequently confirmed in writing. Please note that any views or opinions presented in this email are solely those of the author and do not necessarily represent those of the company. Finally, the recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. From edward.sutton at subsite.com Mon Apr 25 23:51:16 2016 From: edward.sutton at subsite.com (Edward Sutton) Date: Mon, 25 Apr 2016 21:51:16 +0000 Subject: [Interest] Broken Android gdb debugging ? In-Reply-To: References: <2B2A09B3-6876-4560-A748-7E5F37C618E3@subsite.com> <20160425201134.GA10343@klara.mpi.htwm.de> <20160425212152.GA10468@klara.mpi.htwm.de> Message-ID: After restore to r10e NDK, the debug problem was an Android 6.0 issue INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE. Using adb to uninstall the package resolved. Qt Android deploy/debug is good again. Thank you for your help Andre. Installing Android package to device. Running command "/Users/edward3/Library/Android/sdk/platform-tools/adb -s 08f513c6 install -r /Users/edward3/Documents/projects/tsr-mobile-google-analytics/build-tsr-Android_for_armeabi_v7a_GCC_4_9_Qt_5_6_0-Debug/android-build//build/outputs/apk/android-build-debug.apk" pkg: /data/local/tmp/android-build-debug.apk Failure [INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE] Android package built successfully in 8.406 ms. -- It can now be run from the selected device/emulator. -- File: /Users/edward3/Documents/projects/tsr-mobile-google-analytics/build-tsr-Android_for_armeabi_v7a_GCC_4_9_Qt_5_6_0-Debug/android-build//build/outputs/apk/android-build-debug.apk http://stackoverflow.com/questions/34791561/failure-install-failed-permission-model-downgrade -Ed On Apr 25, 2016, at 4:32 PM, Edward Sutton > wrote: Sorry, I went back to a sample app and now I can debug again. I think reverting to r10e fixed the main problem. It must have an Android Manifest or other issue. Something I broke when trying to add support for Google Analytics. Thank you for your time and other things to test. -Ed On Apr 25, 2016, at 4:21 PM, André Pönitz > wrote: On Mon, Apr 25, 2016 at 09:02:13PM +0000, Edward Sutton wrote: Thank you Andre. After rolling back to r10E I still cannot deploy and debug. It no longer hangs at the deploy stage. This is an improvement. The Android Kit GDB Server is still pointing to the Android Studio ndk-bundle even thought it has been removed. I cannot seem to fix this? I can't check right now. Things to test: If you have "Automatically create kits" checked in Qt Creator's Android settings, remove and re-add the Qt version. This should remove and re-add corresponding kits. If that does not help and there's still an auto-detected kit with some wrong settings, clone that kit, and replace the wrong setting with the correct one. In case of compiler or debugger you might need to add (and 'Apply'...) entries on the compiler/debugger pages first. Then use this fixed kit. Andre' This email and any files transmitted with it from The Charles Machine Works, Inc. are confidential and intended solely for the use of the individual or entity to which they are addressed. If you have received this email in error please notify the sender. Our company accepts no liability for the contents of this email, or for the consequences of any actions taken on the basis of the information provided, unless that information is subsequently confirmed in writing. Please note that any views or opinions presented in this email are solely those of the author and do not necessarily represent those of the company. Finally, the recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. _______________________________________________ Interest mailing list Interest at qt-project.org https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.qt-2Dproject.org_mailman_listinfo_interest&d=CwIGaQ&c=G4BpsyPyB19LB50bn2swXw&r=cAG2c-SQES5P2qb8IW-uwnBOCX_f2qYJIlzenFnoHUc&m=2Ah1mksuo2wh8_M0Q7D3xQJUjW8puTMEU2RmmS0RvLg&s=pAcN6kEGHae3Ytb0L5mx58bOysxC9p05m4ojGGmYW6M&e= This email and any files transmitted with it from The Charles Machine Works, Inc. are confidential and intended solely for the use of the individual or entity to which they are addressed. If you have received this email in error please notify the sender. Our company accepts no liability for the contents of this email, or for the consequences of any actions taken on the basis of the information provided, unless that information is subsequently confirmed in writing. Please note that any views or opinions presented in this email are solely those of the author and do not necessarily represent those of the company. Finally, the recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. -------------- next part -------------- An HTML attachment was scrubbed... URL: From kebin70 at gmail.com Tue Apr 26 00:38:23 2016 From: kebin70 at gmail.com (Kevin Mcintyre) Date: Mon, 25 Apr 2016 15:38:23 -0700 Subject: [Interest] ListView in Column Message-ID: I would've thought the ListView would appear below the Text, but that doesn't prove to be the case for me. SplitView and GridView behave as expected...any feedback or minimal tweaks to get working is appreciated. Column { Text { text: 'test'} ListView {...} } -------------- next part -------------- An HTML attachment was scrubbed... URL: From hamish at risingsoftware.com Tue Apr 26 02:13:42 2016 From: hamish at risingsoftware.com (Hamish Moffatt) Date: Tue, 26 Apr 2016 10:13:42 +1000 Subject: [Interest] PRO File defines In-Reply-To: References: <571D06CE.8020208@gmail.com> <129E4FD1-9514-4F34-94E8-02184859CA63@gmail.com> <571DAD91.5000709@gmail.com> Message-ID: <571EB2B6.40609@risingsoftware.com> On 25/04/16 20:58, Francisco Ares wrote: > > P.S.: by the way, I've been fiddling with some PRO files, and nowadays > use a few tricks, like: > > using one source tree to build different executables, with different > functionality: > > > > op1=$$find(DEFINES,"_REGISTER") > count(op1,1){ > include(../ModBus/QModBusMaster.pri) > op2=$$find(QT,network) > count(op2,0){ > unix|win32:QT+=network > } Yikes. Consider "contains(QT, network)" instead of that $$find() mess. Or just: unix | win32: QT *= network (meaning add network if it is not already there). Hamish -------------- next part -------------- An HTML attachment was scrubbed... URL: From kfrank29.c at gmail.com Tue Apr 26 03:58:12 2016 From: kfrank29.c at gmail.com (K. Frank) Date: Mon, 25 Apr 2016 21:58:12 -0400 Subject: [Interest] Running Qt app in a browser In-Reply-To: References: Message-ID: Hi Larry! On Mon, Apr 25, 2016 at 4:59 PM, Larry Martell wrote: > Is it possible to run a Qt app in a browser? I have googled for this, > and found some hits, but none seen like they ever worked out. The most > promising seems to be http://wiki.qt.io/Qt_for_Google_Native_Client > but the readme link is broken, so that's discouraging. Anyone have any > pointers on if this can be done and if so how? This doesn't answer your question, but as an aside, there is a web-application framework called Wt: https://www.webtoolkit.eu/wt Wt shares some of the Qt philosophy -- application code (and the Wt library) is written in C++, it is widget-based, and it uses signals and slots. I don't know Wt's history, but I think Qt that significantly influenced the design of Wt. Of course, high-level similarities notwithstanding, the details are entirely different. You couldn't, for example, compile a Qt application into a Wt application. But if you like Qt and were starting a new web-application development project, Wt could make sense, and if you really needed to port a Qt application to the web, porting from Qt to Wt would still be a substantive port, but the similar philosophy might make the port a little smoother. > Thanks! Good luck! K. Frank From tony at rightsoft.com.au Tue Apr 26 04:33:26 2016 From: tony at rightsoft.com.au (Tony Rietwyk) Date: Tue, 26 Apr 2016 12:33:26 +1000 Subject: [Interest] Running Qt app in a browser In-Reply-To: References: Message-ID: <004b01d19f64$0851ce60$18f56b20$@rightsoft.com.au> K. Frank said: > Hi Larry! > > On Mon, Apr 25, 2016 at 4:59 PM, Larry Martell > wrote: > > Is it possible to run a Qt app in a browser? I have googled for this, > > and found some hits, but none seen like they ever worked out. The most > > promising seems to be http://wiki.qt.io/Qt_for_Google_Native_Client > > but the readme link is broken, so that's discouraging. Anyone have any > > pointers on if this can be done and if so how? > > This doesn't answer your question, but as an aside, there is a web-application > framework called Wt: > > https://www.webtoolkit.eu/wt > > Wt shares some of the Qt philosophy -- application code (and the Wt library) > is written in C++, it is widget-based, and it uses signals and slots. I don't know > Wt's history, but I think Qt that significantly influenced the design of Wt. > > Of course, high-level similarities notwithstanding, the details are entirely > different. You couldn't, for example, compile a Qt application into a Wt > application. > > But if you like Qt and were starting a new web-application development > project, Wt could make sense, and if you really needed to port a Qt > application to the web, porting from Qt to Wt would still be a substantive > port, but the similar philosophy might make the port a little smoother. > > > Thanks! > > Good luck! > > K. Frank I am currently creating a Wt based web application that reuses many of our non-GUI Qt based classes. I works really well based on the prototypes done so far. Theoretically, you could create a QPaintEngine that uses the WPainter interface to draw GUI objects, but I haven't investigated that. Tony From gmaxera at gmail.com Tue Apr 26 08:32:35 2016 From: gmaxera at gmail.com (Gianluca) Date: Tue, 26 Apr 2016 07:32:35 +0100 Subject: [Interest] ListView in Column In-Reply-To: References: Message-ID: Can you detail the problem you are experiencing ? Il giorno 25/apr/2016, alle ore 23:38, Kevin Mcintyre ha scritto: > I would've thought the ListView would appear below the Text, but that doesn't prove to be the case for me. SplitView and GridView behave as expected...any feedback or minimal tweaks to get working is appreciated. > > Column { > Text { text: 'test'} > ListView {...} > } > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest From gunnar at sletta.org Tue Apr 26 09:19:41 2016 From: gunnar at sletta.org (Gunnar Sletta) Date: Tue, 26 Apr 2016 09:19:41 +0200 Subject: [Interest] Few questions regarding Qt Quick Scene Graph In-Reply-To: References: <430092F3-667F-445C-8B0A-CF7836CE7E49@sletta.org> Message-ID: > On 25 Apr 2016, at 19:46, Artem Fedoskin wrote: > > Thank you for your reply Gunnar, > > Can you please tell me - can I store a pointer to the object of external class (even not a QQuickItem derived one) in QSGNode derived class? Each object of the class Data is associated with corresponding Triangle in View. Whenever View is updated, it checks in loop Data objects on special condition and based on that sets the corresponding Triangle to visible or invisible state. If Triangle is visible, Triangle itself calls a bunch of functions from external classes and uses pointer on object Data to retrieve Data's info about coordinates then accesses function from another class to convert the received coordinates to x,y positions. > > I understand that it is not safe to access QSGNode not from updatePaintNode(), but is it actually safe to access other classes from QSGNode itself? How far can I go in QSGNode in accessing things in GUI thread? Normal threading considerations apply. You can reference anything to your liking from objects that live on the render thread, there is nothing special about it. We just strongly encourage to not cross reference between GUI and render threads because the two run independently and objects can come and go on both. > > Could you please also tell me - what is the way to hide QSGNode explicitly like for example setting QQuickItem::visible property to false. I found your E-Mail here http://lists.qt-project.org/pipermail/interest/2015-February/015285.html but I'm afraid that deallocating and allocating QSGNode will take unnecessary overhead as the visibility of nodes in my app will be often turned off/on. Is it a good idea to use QSGNode::removeChildNode() for this? You would have to have an opacity node in there then and set its opacity to 0. That way, they would still be in the scene graph (and still potentiallly consume processing and resources). Alternatively you could experiment with explicitly managing the node. If you during updatePaintNode stored the QSGNode that is passed in and return 0, you will effectively have taken ownership over that subtree from the SG. You could at a later time pass that stored node back to the SG. If there are GL resources associated with it, you will need to clean those up according to the section aboue "Graphics Resource Handling" in http://doc.qt.io/qt-5/qquickitem.html#custom-scene-graph-items. > How do you think - maybe instead of allocating directly QSGNodes I should just subclass instance of Data from QQuickItem and set its visual parent to View? Is allocating 1000 QSGNodes in View significantly faster than creating 1000 QQuickItems with the same painting logic and then setting its visual parent to View? Constructing a QSGNode in C++ is orders of magnitude faster than constructing a QQuickItem object through QML. Compared to a QQuickItem constructed in C++, I would still expect it to be faster, but probably not by a large margin. > > Thank you > > Regards, > Artem > > 2016-04-25 9:06 GMT+02:00 Gunnar Sletta : > > > On 24 Apr 2016, at 16:49, Artem Fedoskin wrote: > > > > I'm sorry. My first E-Mail was sent accidentally. Here is the final version of my E-Mail. > > Hello everybody. I have a project where a lot of objects are painted on the screen whenever the user interacts with the app (pan, zoom, move) I would be really grateful to you if you could answer a few questions regarding the internals of Qt Quick Scene Graph: > > > > • Imagine that I add 1000 nodes with the same color inside QQuickItem::updatePaintNode() function of some QQuickItem derived class. Will they be drawn in batch as described in http://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph-renderer.html#batching? > > Depends on the cirucmstances, but if they share clipping their QSGMaterial::compare() indicates they are all identical, they will be batched, yes. Verify with QSG_VISUALIZE=batches, as indicated by this same document. > > > • Can I call the function of some other class in QQuickItem::updatePaintNode()? I have some class named Data, class named View and a subclass of QSGGeometryNode Triangle. Imagine that after objects of these classes are created the Data asks View to create 10 Triangles. The View creates 10 Triangles during the updatePaintNode() call and passes to them pointers to the object of class Data, that required their instantiation. The Triangles refers to the Data and get some values from it and converts them to x,y coordinates. Is it something possible? > > Do I violate the rule stated here http://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph.html#scene-graph-and-rendering "Warning: It is crucial that OpenGL operations and interaction with the scene graph happens exclusively on the render thread, primarily during the updatePaintNode() call. The rule of thumb is to only use classes with the "QSG" prefix inside the QQuickItem::updatePaintNode() function." ? > > The point here is really that on many systems, there will be two threads that are running. The GUI thread where your QQuickItems live and the render thread where your QSGXxx objects live. updatePaintNode() is called on the render thread while the GUI thread is blocked, so you are safe to read state out of the QQuickItem at that time and use that to create/update/modify/delete your QSGXxx objects accordingly. At any other time, the two worlds live separate lives and should have no connection. > > There are other places where interaction between the threads are also ok, as outlined in the QQuickItem docs, but by sticking to the rule outlined in the updatePaintNode() function, 99% of all usecases will be covered. > > For your usecase you are free to construct View, Data, x number of Triangles during updatePaintNode() and then store that under some subclass of a QSGNode. On the next call, you can update your structure if needed. Your QQuickItem does not store a pointer to this QSGNode, it only exists inside the scene graph and during the updatePaintNode() function. > > cheers, > Gunnar > > > > > At first I was thinking about deriving classes like Triangle from QQuickItem and then reparenting them to the View but the direct creation of QSGGeometryNodes seems to me to be less memory requiring approach. > > > > Regards, > > Artem Fedoskin > > > > 2016-04-24 16:41 GMT+02:00 Artem Fedoskin : > > Hello everybody. I have a project where a lot of objects are painted on the screen whenever the user interacts with the app (pan, zoom, move) I would be really grateful to you if you could answer a few questions regarding the internals of Qt Quick Scene Graph: > > > > • Imagine that I add 1000 nodes with the same color inside QQuickItem::updatePaintNode() function of some QQuickItem derived class. Will they be drawn in batch as described in http://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph-renderer.html#batching? > > • Can I call the function of some other class in QQuickItem::updatePaintNode()? I have some class named Data, class named View and a subclass of QSGGeometryNode Triangle. Imagine that after objects of these classes are created the Data asks View to create 10 Triangles. The View creates 10 Triangles during the updatePaintNode() call and passes pointers to the object of class Data, that required their instantiation. The Triangles refers to the Data and get coordinates from it. Is it something possible. Do I violate the rule stated here "Warning: It is crucial that OpenGL operations and interaction with the scene graph happens exclusively on the render thread, primarily during the updatePaintNode() call. The rule of thumb is to only use classes with the "QSG" prefix inside the QQuickItem::updatePaintNode() function." > > > > > > > > • For example, I want to get new coordinates of the object and to do that I should refer to function of some other not QSGNode derived object and then use these coordinates for rendering one of the nodes. > > > > _______________________________________________ > > Interest mailing list > > Interest at qt-project.org > > http://lists.qt-project.org/mailman/listinfo/interest > > From sinadooru at gmail.com Tue Apr 26 10:02:59 2016 From: sinadooru at gmail.com (Sina Dogru) Date: Tue, 26 Apr 2016 11:02:59 +0300 Subject: [Interest] [QtQuick] Interaction with user from C++ Message-ID: Hello list, Before watching this video , I was thinking the Qt-Declarative module is aiming to touch-screen and mobile devices. And also after experiencing some QtQuick applications on desktop my thought have totally changed. So I started a small desktop application with QtQuick. I had some problems with QML but also enthused :). If I come to the point, my main problem is with C++ backend. I use some C++ classes with QML. I am aware of that QML is natively seperates UI and business logic but sometimes I need to interact with the user from my C++ classes. I am not sure if this is about general architect problem of my design, I am not well exprienced programmer. For example, on some points, qml sends some user interaction to C++ classes, eg URL of a file. Class checks the url and responds to user with QML(emitting a signal). On the Widgets world, some of the static functions of QMessageBox and QFileDialog (eg getSaveFileName and warning ) are so handy and necessary, IMHO. I do mimic this behaviour with a QML function, which opens a file dialog or a message box with the function arguments, connected to a signal of a C++ class. So whenever I need to interact with the user from C++ I just emit this signal with the proper arguments. For example when I need to say to user that his/her input was incorrect, I just emit warning signal. But the problem is when I need to get the user respond to this warning box. Beauty of the QMessageBox and QFileDialog's static functions are they creates their own event loop and they just returns the data that needed. My question is, I am not sure if this is originated from my design flaws, is it possible to create an internal event loop in QML so the event loop would return the necessary data? Thank you, Sina -------------- next part -------------- An HTML attachment was scrubbed... URL: From dmitry.volosnykh at gmail.com Tue Apr 26 10:56:22 2016 From: dmitry.volosnykh at gmail.com (Dmitry Volosnykh) Date: Tue, 26 Apr 2016 08:56:22 +0000 Subject: [Interest] [QtQuick] Interaction with user from C++ In-Reply-To: References: Message-ID: Hi, Sina. You may try to wrap those C++-side static methods with intermediary class that is exposed to QML in a usual way. As far as I remember there should be some API for opening files as well as for message notifications. But that will require you to import QtQuick.Controls module. Please, refer to official documentation for more precise name of the module. On Tue, Apr 26, 2016, 11:03 AM Sina Dogru wrote: > Hello list, > > Before watching this video > , > I was thinking the Qt-Declarative module is aiming to touch-screen and > mobile devices. And also after experiencing some QtQuick applications on > desktop my thought have totally changed. So I started a small desktop > application with QtQuick. > > I had some problems with QML but also enthused :). If I come to the point, > my main problem is with C++ backend. I use some C++ classes with QML. I am > aware of that QML is natively seperates UI and business logic but sometimes > I need to interact with the user from my C++ classes. I am not sure if this > is about general architect problem of my design, I am not well exprienced > programmer. For example, on some points, qml sends some user interaction to > C++ classes, eg URL of a file. Class checks the url and responds to user > with QML(emitting a signal). > > On the Widgets world, some of the static functions of QMessageBox and > QFileDialog (eg getSaveFileName > and warning > ) are so handy and > necessary, IMHO. I do mimic this behaviour with a QML function, which opens > a file dialog or a message box with the function arguments, connected to a > signal of a C++ class. So whenever I need to interact with the user from > C++ I just emit this signal with the proper arguments. For example when I > need to say to user that his/her input was incorrect, I just emit warning > signal. But the problem is when I need to get the user respond to this > warning box. Beauty of the QMessageBox and QFileDialog's static functions > are they creates their own event loop and they just returns the data that > needed. > > My question is, I am not sure if this is originated from my design flaws, > is it possible to create an internal event loop in QML so the event loop > would return the necessary data? > > Thank you, > Sina > > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > -------------- next part -------------- An HTML attachment was scrubbed... URL: From Shawn.Rutledge at qt.io Tue Apr 26 11:11:07 2016 From: Shawn.Rutledge at qt.io (Shawn Rutledge) Date: Tue, 26 Apr 2016 09:11:07 +0000 Subject: [Interest] [QtQuick] Interaction with user from C++ In-Reply-To: References: Message-ID: > On 26 Apr 2016, at 10:02, Sina Dogru wrote: > > On the Widgets world, some of the static functions of QMessageBox and QFileDialog (eg getSaveFileName and warning) are so handy and necessary, IMHO. I do mimic this behaviour with a QML function, which opens a file dialog or a message box with the function arguments, connected to a signal of a C++ class. So whenever I need to interact with the user from C++ I just emit this signal with the proper arguments. For example when I need to say to user that his/her input was incorrect, I just emit warning signal. But the problem is when I need to get the user respond to this warning box. Beauty of the QMessageBox and QFileDialog's static functions are they creates their own event loop and they just returns the data that needed. You shouldn’t need to do this. Just write onAccepted/onRejected handlers which call back to QML and/or C++ code as necessary. Is there some reason why that is difficult? From sinadooru at gmail.com Tue Apr 26 11:36:22 2016 From: sinadooru at gmail.com (Sina Dogru) Date: Tue, 26 Apr 2016 12:36:22 +0300 Subject: [Interest] [QtQuick] Interaction with user from C++ In-Reply-To: References: Message-ID: > Hi, Sina. You may try to wrap those C++-side static methods with > intermediary class that is exposed to QML in a usual way. As far as I > remember there should be some API for opening files as well as for message > notifications. But that will require you to import QtQuick.Controls module. > Please, refer to official documentation for more precise name of the module. > Hello Dmitry, thank you for respond. I think you are talking about the FileDialog QML type and MessageBox. But my problem is, when I call a static method of the intermediary class which calls FileDialog's open function would not return the file URL while QFileDialog::getSaveFileName would return it. So to do it, QML would need to call another function onAccepted handler and it would need to know which function it needs to call. I mean, for example consider a situation where a C++ class process a user input carried from QML to C++. If the user input is incorrect, I would need to ask the user some options. So I pop up a message box which presents the options to the user with this intermediary class. But when I do this, I would lose the flow of the program. So when the user responds to the message box, I would need to call another C++ function to process. But since QMessageBox's and QFileDialog's static functions create their own event loop and returns the data, I would be able to process new data without loosing the current stack and flow of the program. So QMessageBox and QFileDialog's static functions are not need to know on their event handlers, because they just returns the information that is needed so program can continue from the same stack. Like I said, I am not so exprienced with programming. I might be misjudging your advice or QML and C++ seperation. -------------- next part -------------- An HTML attachment was scrubbed... URL: From sinadooru at gmail.com Tue Apr 26 11:58:49 2016 From: sinadooru at gmail.com (Sina Dogru) Date: Tue, 26 Apr 2016 12:58:49 +0300 Subject: [Interest] [QtQuick] Interaction with user from C++ In-Reply-To: References: Message-ID: 2016-04-26 12:11 GMT+03:00 Shawn Rutledge : > > You shouldn’t need to do this. Just write onAccepted/onRejected handlers > which call back to QML and/or C++ code as necessary. Is there some reason > why that is difficult? > > Well the problem is (like I tried to explain on the email to Dmitry) while using QFileDialog's and QMessageBox's static functions, program can continue to flow from where those functions called. Let me please explain myself with a piece of code; void App::saveAs(const QString &path) { bool cont = true; while (cont) { if (path.isEmpty()) cont = false; else { QFileInfo fi = path; if (fi->exists()) { int wantSave = QMessageBox::warning(nullptr, tr("Warning"), tr("File %1 exists.\n" "Do you wish to overwrite it?").arg(fi->fileName()), QMessageBox::Yes, QMessageBox::No); if (wantSave == QMessageBox::Yes) cont = false; else path = QFileDialog::getSaveFileName(nullptr, tr("Save As")); } else cont = false; } } if (!path.isEmpty()) doc->save(url); } For example, when the user press the save as tool button of the QML ApplicationWindow, this slot is called onAccepted handler of the FileDialog. But depending on the user input, application might need to do something else. But I am not sure if I am violating the "UI and business logic seperation" with this approach? -------------- next part -------------- An HTML attachment was scrubbed... URL: From sinadooru at gmail.com Tue Apr 26 12:03:12 2016 From: sinadooru at gmail.com (Sina Dogru) Date: Tue, 26 Apr 2016 13:03:12 +0300 Subject: [Interest] [QtQuick] Interaction with user from C++ In-Reply-To: References: Message-ID: Ah by the way I just wrote this code to show my purpose. -------------- next part -------------- An HTML attachment was scrubbed... URL: From dmitry.volosnykh at gmail.com Tue Apr 26 12:03:49 2016 From: dmitry.volosnykh at gmail.com (Dmitry Volosnykh) Date: Tue, 26 Apr 2016 10:03:49 +0000 Subject: [Interest] [QtQuick] Interaction with user from C++ In-Reply-To: References: Message-ID: > FileDialog's open function would not return the file URL while QFileDialog::getSaveFileName would return it While FileDialog.open() does not return anythying, you still able to get file's URL via fileUrl property of FileDialog instance like follows: FileDialog { id: fileDialog onAccepted: console.log("User selected file:", fileUrl) } Situation with MessageBox is mostly the same. This QML type provides, basically, the same functionality as its C++ counterpart. So you may perform different actions upon receiving different signals which correspond to buttons that user may press (Not suprisingly that these signals are named exactly the same as button enum's that are returned as an int result of QMessageBox::exec() method). So, here you are: MessageBox { id: messageBox onYes: console.log("User pressed Yes button") onNo: console.log("User pressed No button") onApply: console.log("User pressed Apply button") // etc ... } On Tue, Apr 26, 2016 at 12:36 PM Sina Dogru wrote: > Hi, Sina. You may try to wrap those C++-side static methods with >> intermediary class that is exposed to QML in a usual way. As far as I >> remember there should be some API for opening files as well as for message >> notifications. But that will require you to import QtQuick.Controls module. >> Please, refer to official documentation for more precise name of the module. >> > Hello Dmitry, thank you for respond. I think you are talking about the > FileDialog QML type and MessageBox. But my problem is, when I call a static > method of the intermediary class which calls FileDialog's open function > would not return the file URL while QFileDialog::getSaveFileName would > return it. So to do it, QML would need to call another function onAccepted > handler and it would need to know which function it needs to call. > > I mean, for example consider a situation where a C++ class process a user > input carried from QML to C++. If the user input is incorrect, I would need > to ask the user some options. So I pop up a message box which presents the > options to the user with this intermediary class. But when I do this, I > would lose the flow of the program. So when the user responds to the > message box, I would need to call another C++ function to process. But > since QMessageBox's and QFileDialog's static functions create their own > event loop and returns the data, I would be able to process new data > without loosing the current stack and flow of the program. > > So QMessageBox and QFileDialog's static functions are not need to know on > their event handlers, because they just returns the information that is > needed so program can continue from the same stack. > > Like I said, I am not so exprienced with programming. I might be > misjudging your advice or QML and C++ seperation. > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dmitry.volosnykh at gmail.com Tue Apr 26 12:07:17 2016 From: dmitry.volosnykh at gmail.com (Dmitry Volosnykh) Date: Tue, 26 Apr 2016 10:07:17 +0000 Subject: [Interest] [QtQuick] Interaction with user from C++ In-Reply-To: References: Message-ID: > Well the problem is ... while using QFileDialog's and QMessageBox's static functions, program can continue to flow from where those functions called. This is declarative language. Spaghetti code is unavoidable %) You'll have to do a mind-shift to use QML as it was designed. On Tue, Apr 26, 2016 at 1:03 PM Dmitry Volosnykh wrote: > > FileDialog's open function would not return the file URL while > QFileDialog::getSaveFileName would return it > While FileDialog.open() does not return anythying, you still able to get > file's URL via fileUrl property of FileDialog instance like follows: > > FileDialog { > id: fileDialog > onAccepted: console.log("User selected file:", fileUrl) > } > > Situation with MessageBox is mostly the same. This QML type provides, > basically, the same functionality as its C++ counterpart. So you may > perform different actions upon receiving different signals which correspond > to buttons that user may press (Not suprisingly that these signals are > named exactly the same as button enum's that are returned as an int result > of QMessageBox::exec() method). So, here you are: > > MessageBox { > id: messageBox > onYes: console.log("User pressed Yes button") > onNo: console.log("User pressed No button") > onApply: console.log("User pressed Apply button") > // etc ... > } > > On Tue, Apr 26, 2016 at 12:36 PM Sina Dogru wrote: > >> Hi, Sina. You may try to wrap those C++-side static methods with >>> intermediary class that is exposed to QML in a usual way. As far as I >>> remember there should be some API for opening files as well as for message >>> notifications. But that will require you to import QtQuick.Controls module. >>> Please, refer to official documentation for more precise name of the module. >>> >> Hello Dmitry, thank you for respond. I think you are talking about the >> FileDialog QML type and MessageBox. But my problem is, when I call a static >> method of the intermediary class which calls FileDialog's open function >> would not return the file URL while QFileDialog::getSaveFileName would >> return it. So to do it, QML would need to call another function onAccepted >> handler and it would need to know which function it needs to call. >> >> I mean, for example consider a situation where a C++ class process a user >> input carried from QML to C++. If the user input is incorrect, I would need >> to ask the user some options. So I pop up a message box which presents the >> options to the user with this intermediary class. But when I do this, I >> would lose the flow of the program. So when the user responds to the >> message box, I would need to call another C++ function to process. But >> since QMessageBox's and QFileDialog's static functions create their own >> event loop and returns the data, I would be able to process new data >> without loosing the current stack and flow of the program. >> >> So QMessageBox and QFileDialog's static functions are not need to know on >> their event handlers, because they just returns the information that is >> needed so program can continue from the same stack. >> >> Like I said, I am not so exprienced with programming. I might be >> misjudging your advice or QML and C++ seperation. >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sinadooru at gmail.com Tue Apr 26 12:27:38 2016 From: sinadooru at gmail.com (Sina Dogru) Date: Tue, 26 Apr 2016 13:27:38 +0300 Subject: [Interest] [QtQuick] Interaction with user from C++ In-Reply-To: References: Message-ID: Yes I guess I am still thinking procedural way. Do you have any recommendation book/documents to understand declarative programming? Thank you for your helps. Sina 2016-04-26 13:07 GMT+03:00 Dmitry Volosnykh : > > Well the problem is ... while using QFileDialog's and QMessageBox's > static functions, program can continue to flow from where those functions > called. > > This is declarative language. Spaghetti code is unavoidable %) You'll have > to do a mind-shift to use QML as it was designed. > > On Tue, Apr 26, 2016 at 1:03 PM Dmitry Volosnykh < > dmitry.volosnykh at gmail.com> wrote: > >> > FileDialog's open function would not return the file URL while >> QFileDialog::getSaveFileName would return it >> While FileDialog.open() does not return anythying, you still able to get >> file's URL via fileUrl property of FileDialog instance like follows: >> >> FileDialog { >> id: fileDialog >> onAccepted: console.log("User selected file:", fileUrl) >> } >> >> Situation with MessageBox is mostly the same. This QML type provides, >> basically, the same functionality as its C++ counterpart. So you may >> perform different actions upon receiving different signals which correspond >> to buttons that user may press (Not suprisingly that these signals are >> named exactly the same as button enum's that are returned as an int result >> of QMessageBox::exec() method). So, here you are: >> >> MessageBox { >> id: messageBox >> onYes: console.log("User pressed Yes button") >> onNo: console.log("User pressed No button") >> onApply: console.log("User pressed Apply button") >> // etc ... >> } >> >> On Tue, Apr 26, 2016 at 12:36 PM Sina Dogru wrote: >> >>> Hi, Sina. You may try to wrap those C++-side static methods with >>>> intermediary class that is exposed to QML in a usual way. As far as I >>>> remember there should be some API for opening files as well as for message >>>> notifications. But that will require you to import QtQuick.Controls module. >>>> Please, refer to official documentation for more precise name of the module. >>>> >>> Hello Dmitry, thank you for respond. I think you are talking about the >>> FileDialog QML type and MessageBox. But my problem is, when I call a static >>> method of the intermediary class which calls FileDialog's open function >>> would not return the file URL while QFileDialog::getSaveFileName would >>> return it. So to do it, QML would need to call another function onAccepted >>> handler and it would need to know which function it needs to call. >>> >>> I mean, for example consider a situation where a C++ class process a >>> user input carried from QML to C++. If the user input is incorrect, I would >>> need to ask the user some options. So I pop up a message box which presents >>> the options to the user with this intermediary class. But when I do this, I >>> would lose the flow of the program. So when the user responds to the >>> message box, I would need to call another C++ function to process. But >>> since QMessageBox's and QFileDialog's static functions create their own >>> event loop and returns the data, I would be able to process new data >>> without loosing the current stack and flow of the program. >>> >>> So QMessageBox and QFileDialog's static functions are not need to know >>> on their event handlers, because they just returns the information that is >>> needed so program can continue from the same stack. >>> >>> Like I said, I am not so exprienced with programming. I might be >>> misjudging your advice or QML and C++ seperation. >>> >>> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From dmitry.volosnykh at gmail.com Tue Apr 26 12:49:12 2016 From: dmitry.volosnykh at gmail.com (Dmitry Volosnykh) Date: Tue, 26 Apr 2016 10:49:12 +0000 Subject: [Interest] [QtQuick] Interaction with user from C++ In-Reply-To: References: Message-ID: While I cannot recommend you some 'the best book on declarative programming', I still suggest you to read http://qmlbook.github.io On Tue, Apr 26, 2016 at 1:27 PM Sina Dogru wrote: > Yes I guess I am still thinking procedural way. Do you have any > recommendation book/documents to understand declarative programming? > > Thank you for your helps. > Sina > > 2016-04-26 13:07 GMT+03:00 Dmitry Volosnykh : > >> > Well the problem is ... while using QFileDialog's and QMessageBox's >> static functions, program can continue to flow from where those functions >> called. >> >> This is declarative language. Spaghetti code is unavoidable %) You'll >> have to do a mind-shift to use QML as it was designed. >> >> On Tue, Apr 26, 2016 at 1:03 PM Dmitry Volosnykh < >> dmitry.volosnykh at gmail.com> wrote: >> >>> > FileDialog's open function would not return the file URL while >>> QFileDialog::getSaveFileName would return it >>> While FileDialog.open() does not return anythying, you still able to get >>> file's URL via fileUrl property of FileDialog instance like follows: >>> >>> FileDialog { >>> id: fileDialog >>> onAccepted: console.log("User selected file:", fileUrl) >>> } >>> >>> Situation with MessageBox is mostly the same. This QML type provides, >>> basically, the same functionality as its C++ counterpart. So you may >>> perform different actions upon receiving different signals which correspond >>> to buttons that user may press (Not suprisingly that these signals are >>> named exactly the same as button enum's that are returned as an int result >>> of QMessageBox::exec() method). So, here you are: >>> >>> MessageBox { >>> id: messageBox >>> onYes: console.log("User pressed Yes button") >>> onNo: console.log("User pressed No button") >>> onApply: console.log("User pressed Apply button") >>> // etc ... >>> } >>> >>> On Tue, Apr 26, 2016 at 12:36 PM Sina Dogru wrote: >>> >>>> Hi, Sina. You may try to wrap those C++-side static methods with >>>>> intermediary class that is exposed to QML in a usual way. As far as I >>>>> remember there should be some API for opening files as well as for message >>>>> notifications. But that will require you to import QtQuick.Controls module. >>>>> Please, refer to official documentation for more precise name of the module. >>>>> >>>> Hello Dmitry, thank you for respond. I think you are talking about the >>>> FileDialog QML type and MessageBox. But my problem is, when I call a static >>>> method of the intermediary class which calls FileDialog's open function >>>> would not return the file URL while QFileDialog::getSaveFileName would >>>> return it. So to do it, QML would need to call another function onAccepted >>>> handler and it would need to know which function it needs to call. >>>> >>>> I mean, for example consider a situation where a C++ class process a >>>> user input carried from QML to C++. If the user input is incorrect, I would >>>> need to ask the user some options. So I pop up a message box which presents >>>> the options to the user with this intermediary class. But when I do this, I >>>> would lose the flow of the program. So when the user responds to the >>>> message box, I would need to call another C++ function to process. But >>>> since QMessageBox's and QFileDialog's static functions create their own >>>> event loop and returns the data, I would be able to process new data >>>> without loosing the current stack and flow of the program. >>>> >>>> So QMessageBox and QFileDialog's static functions are not need to know >>>> on their event handlers, because they just returns the information that is >>>> needed so program can continue from the same stack. >>>> >>>> Like I said, I am not so exprienced with programming. I might be >>>> misjudging your advice or QML and C++ seperation. >>>> >>>> >>> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sinadooru at gmail.com Tue Apr 26 13:09:46 2016 From: sinadooru at gmail.com (Sina Dogru) Date: Tue, 26 Apr 2016 14:09:46 +0300 Subject: [Interest] [QtQuick] Interaction with user from C++ In-Reply-To: References: Message-ID: Ah yeah, thank you so much Dmitry :) 2016-04-26 13:49 GMT+03:00 Dmitry Volosnykh : > While I cannot recommend you some 'the best book on declarative > programming', I still suggest you to read http://qmlbook.github.io > > On Tue, Apr 26, 2016 at 1:27 PM Sina Dogru wrote: > >> Yes I guess I am still thinking procedural way. Do you have any >> recommendation book/documents to understand declarative programming? >> >> Thank you for your helps. >> Sina >> >> 2016-04-26 13:07 GMT+03:00 Dmitry Volosnykh : >> >>> > Well the problem is ... while using QFileDialog's and QMessageBox's >>> static functions, program can continue to flow from where those functions >>> called. >>> >>> This is declarative language. Spaghetti code is unavoidable %) You'll >>> have to do a mind-shift to use QML as it was designed. >>> >>> On Tue, Apr 26, 2016 at 1:03 PM Dmitry Volosnykh < >>> dmitry.volosnykh at gmail.com> wrote: >>> >>>> > FileDialog's open function would not return the file URL while >>>> QFileDialog::getSaveFileName would return it >>>> While FileDialog.open() does not return anythying, you still able to >>>> get file's URL via fileUrl property of FileDialog instance like follows: >>>> >>>> FileDialog { >>>> id: fileDialog >>>> onAccepted: console.log("User selected file:", fileUrl) >>>> } >>>> >>>> Situation with MessageBox is mostly the same. This QML type provides, >>>> basically, the same functionality as its C++ counterpart. So you may >>>> perform different actions upon receiving different signals which correspond >>>> to buttons that user may press (Not suprisingly that these signals are >>>> named exactly the same as button enum's that are returned as an int result >>>> of QMessageBox::exec() method). So, here you are: >>>> >>>> MessageBox { >>>> id: messageBox >>>> onYes: console.log("User pressed Yes button") >>>> onNo: console.log("User pressed No button") >>>> onApply: console.log("User pressed Apply button") >>>> // etc ... >>>> } >>>> >>>> On Tue, Apr 26, 2016 at 12:36 PM Sina Dogru >>>> wrote: >>>> >>>>> Hi, Sina. You may try to wrap those C++-side static methods with >>>>>> intermediary class that is exposed to QML in a usual way. As far as I >>>>>> remember there should be some API for opening files as well as for message >>>>>> notifications. But that will require you to import QtQuick.Controls module. >>>>>> Please, refer to official documentation for more precise name of the module. >>>>>> >>>>> Hello Dmitry, thank you for respond. I think you are talking about the >>>>> FileDialog QML type and MessageBox. But my problem is, when I call a static >>>>> method of the intermediary class which calls FileDialog's open function >>>>> would not return the file URL while QFileDialog::getSaveFileName would >>>>> return it. So to do it, QML would need to call another function onAccepted >>>>> handler and it would need to know which function it needs to call. >>>>> >>>>> I mean, for example consider a situation where a C++ class process a >>>>> user input carried from QML to C++. If the user input is incorrect, I would >>>>> need to ask the user some options. So I pop up a message box which presents >>>>> the options to the user with this intermediary class. But when I do this, I >>>>> would lose the flow of the program. So when the user responds to the >>>>> message box, I would need to call another C++ function to process. But >>>>> since QMessageBox's and QFileDialog's static functions create their own >>>>> event loop and returns the data, I would be able to process new data >>>>> without loosing the current stack and flow of the program. >>>>> >>>>> So QMessageBox and QFileDialog's static functions are not need to know >>>>> on their event handlers, because they just returns the information that is >>>>> needed so program can continue from the same stack. >>>>> >>>>> Like I said, I am not so exprienced with programming. I might be >>>>> misjudging your advice or QML and C++ seperation. >>>>> >>>>> >>>> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jerome at bodycad.com Tue Apr 26 14:34:00 2016 From: jerome at bodycad.com (=?UTF-8?B?SsOpcsO0bWUgR29kYm91dA==?=) Date: Tue, 26 Apr 2016 08:34:00 -0400 Subject: [Interest] [QtQuick] Interaction with user from C++ In-Reply-To: References: Message-ID: I can tell what we did, we made a FileSystem C++ singleton that expose most file system file/url check, we made those check inside Qml javascript now. This way you can make callback and GUI logic into Qml. We expect C++ function to be call with valid argument all the time. Else we always return error (unexpected error, since the Qml code should have validate before making the call, this is a developer issue). Side Note: We also have experiment with throw from C++ that get evaluate into Qml, it work, but it would be nice to have a proper keyword with throw type to indicate this and the exception get transfer to into Q_INVOKABLE. Would allow for better error handling. On Tue, Apr 26, 2016 at 5:58 AM, Sina Dogru wrote: > > > 2016-04-26 12:11 GMT+03:00 Shawn Rutledge : > >> >> You shouldn’t need to do this. Just write onAccepted/onRejected handlers >> which call back to QML and/or C++ code as necessary. Is there some reason >> why that is difficult? >> >> Well the problem is (like I tried to explain on the email to Dmitry) > while using QFileDialog's and QMessageBox's static functions, program can > continue to flow from where those functions called. > > Let me please explain myself with a piece of code; > > void App::saveAs(const QString &path) > { > bool cont = true; > > while (cont) { > if (path.isEmpty()) > cont = false; > else { > QFileInfo fi = path; > > if (fi->exists()) { > int wantSave = QMessageBox::warning(nullptr, > tr("Warning"), tr("File %1 exists.\n" > "Do you wish to > overwrite it?").arg(fi->fileName()), > QMessageBox::Yes, > QMessageBox::No); > if (wantSave == QMessageBox::Yes) > cont = false; > else > path = QFileDialog::getSaveFileName(nullptr, tr("Save > As")); > } > else > cont = false; > } > } > if (!path.isEmpty()) > doc->save(url); > } > > For example, when the user press the save as tool button of the QML > ApplicationWindow, this slot is called onAccepted handler of the > FileDialog. But depending on the user input, application might need to do > something else. > > But I am not sure if I am violating the "UI and business logic seperation" > with this approach? > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jerome at bodycad.com Tue Apr 26 14:39:18 2016 From: jerome at bodycad.com (=?UTF-8?B?SsOpcsO0bWUgR29kYm91dA==?=) Date: Tue, 26 Apr 2016 08:39:18 -0400 Subject: [Interest] [QtQuick] Interaction with user from C++ In-Reply-To: References: Message-ID: We also have expose those blocking C++ QMessageBox and QDialog for linear workflow via Q_INVOKABLE from C++ singleton. This avoid the callback spaghetti mess of Qml Dialog and made the code more readable. If you have many options to offer to user in particular sequences of may or may not be requested, the declarative way is a nightmare. In fact I think we have 0 Qml Dialog into our 5 CAD applications, but many call to those C++ blocking dialog invoke. On Tue, Apr 26, 2016 at 8:34 AM, Jérôme Godbout wrote: > I can tell what we did, we made a FileSystem C++ singleton that expose > most file system file/url check, we made those check inside Qml javascript > now. This way you can make callback and GUI logic into Qml. We expect C++ > function to be call with valid argument all the time. Else we always return > error (unexpected error, since the Qml code should have validate before > making the call, this is a developer issue). > > Side Note: We also have experiment with throw from C++ that get evaluate > into Qml, it work, but it would be nice to have a proper keyword with throw > type to indicate this and the exception get transfer to into Q_INVOKABLE. > Would allow for better error handling. > > On Tue, Apr 26, 2016 at 5:58 AM, Sina Dogru wrote: > >> >> >> 2016-04-26 12:11 GMT+03:00 Shawn Rutledge : >> >>> >>> You shouldn’t need to do this. Just write onAccepted/onRejected >>> handlers which call back to QML and/or C++ code as necessary. Is there >>> some reason why that is difficult? >>> >>> Well the problem is (like I tried to explain on the email to Dmitry) >> while using QFileDialog's and QMessageBox's static functions, program can >> continue to flow from where those functions called. >> >> Let me please explain myself with a piece of code; >> >> void App::saveAs(const QString &path) >> { >> bool cont = true; >> >> while (cont) { >> if (path.isEmpty()) >> cont = false; >> else { >> QFileInfo fi = path; >> >> if (fi->exists()) { >> int wantSave = QMessageBox::warning(nullptr, >> tr("Warning"), tr("File %1 exists.\n" >> "Do you wish to >> overwrite it?").arg(fi->fileName()), >> QMessageBox::Yes, >> QMessageBox::No); >> if (wantSave == QMessageBox::Yes) >> cont = false; >> else >> path = QFileDialog::getSaveFileName(nullptr, tr("Save >> As")); >> } >> else >> cont = false; >> } >> } >> if (!path.isEmpty()) >> doc->save(url); >> } >> >> For example, when the user press the save as tool button of the QML >> ApplicationWindow, this slot is called onAccepted handler of the >> FileDialog. But depending on the user input, application might need to do >> something else. >> >> But I am not sure if I am violating the "UI and business logic >> seperation" with this approach? >> >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dmitry.volosnykh at gmail.com Tue Apr 26 14:45:15 2016 From: dmitry.volosnykh at gmail.com (Dmitry Volosnykh) Date: Tue, 26 Apr 2016 12:45:15 +0000 Subject: [Interest] [QtQuick] Interaction with user from C++ In-Reply-To: References: Message-ID: Jérôme, thank you for your input. Just for self education... Did you face some problems with such approach which you may want to share with us? Any UI performance issues since you may have blocked scene renderer? On Tue, Apr 26, 2016 at 3:39 PM Jérôme Godbout wrote: > We also have expose those blocking C++ QMessageBox and QDialog for linear > workflow via Q_INVOKABLE from C++ singleton. This avoid the callback > spaghetti mess of Qml Dialog and made the code more readable. If you have > many options to offer to user in particular sequences of may or may not be > requested, the declarative way is a nightmare. In fact I think we have 0 > Qml Dialog into our 5 CAD applications, but many call to those C++ blocking > dialog invoke. > > On Tue, Apr 26, 2016 at 8:34 AM, Jérôme Godbout > wrote: > >> I can tell what we did, we made a FileSystem C++ singleton that expose >> most file system file/url check, we made those check inside Qml javascript >> now. This way you can make callback and GUI logic into Qml. We expect C++ >> function to be call with valid argument all the time. Else we always return >> error (unexpected error, since the Qml code should have validate before >> making the call, this is a developer issue). >> >> Side Note: We also have experiment with throw from C++ that get evaluate >> into Qml, it work, but it would be nice to have a proper keyword with throw >> type to indicate this and the exception get transfer to into Q_INVOKABLE. >> Would allow for better error handling. >> >> On Tue, Apr 26, 2016 at 5:58 AM, Sina Dogru wrote: >> >>> >>> >>> 2016-04-26 12:11 GMT+03:00 Shawn Rutledge : >>> >>>> >>>> You shouldn’t need to do this. Just write onAccepted/onRejected >>>> handlers which call back to QML and/or C++ code as necessary. Is there >>>> some reason why that is difficult? >>>> >>>> Well the problem is (like I tried to explain on the email to Dmitry) >>> while using QFileDialog's and QMessageBox's static functions, program can >>> continue to flow from where those functions called. >>> >>> Let me please explain myself with a piece of code; >>> >>> void App::saveAs(const QString &path) >>> { >>> bool cont = true; >>> >>> while (cont) { >>> if (path.isEmpty()) >>> cont = false; >>> else { >>> QFileInfo fi = path; >>> >>> if (fi->exists()) { >>> int wantSave = QMessageBox::warning(nullptr, >>> tr("Warning"), tr("File %1 exists.\n" >>> "Do you wish to >>> overwrite it?").arg(fi->fileName()), >>> QMessageBox::Yes, >>> QMessageBox::No); >>> if (wantSave == QMessageBox::Yes) >>> cont = false; >>> else >>> path = QFileDialog::getSaveFileName(nullptr, >>> tr("Save As")); >>> } >>> else >>> cont = false; >>> } >>> } >>> if (!path.isEmpty()) >>> doc->save(url); >>> } >>> >>> For example, when the user press the save as tool button of the QML >>> ApplicationWindow, this slot is called onAccepted handler of the >>> FileDialog. But depending on the user input, application might need to do >>> something else. >>> >>> But I am not sure if I am violating the "UI and business logic >>> seperation" with this approach? >>> >>> _______________________________________________ >>> Interest mailing list >>> Interest at qt-project.org >>> http://lists.qt-project.org/mailman/listinfo/interest >>> >>> >> > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jerome at bodycad.com Tue Apr 26 15:00:16 2016 From: jerome at bodycad.com (=?UTF-8?B?SsOpcsO0bWUgR29kYm91dA==?=) Date: Tue, 26 Apr 2016 09:00:16 -0400 Subject: [Interest] [QtQuick] Interaction with user from C++ In-Reply-To: References: Message-ID: Hi Dmitry, not much problems, except this is a modal way for interacting with the user. I'm not a fan of modal (as matter of fact I hate it, you prevent your user for copy/paste, check something from the real work window), but the Qml Dialog callback make it even worst. It seem ok for a single question for a dual action path, but when thing get a little more complex, this is a code nightmare (not as hard to code, but hard to follow what is going on when not written by you, it's a succession of callback and setting the Qml Dialog callback function and call it over and over, you have to understand the function that can be called in which order, because creating 5 of them for a single sequence seem to be dumb and not helping the function workflow anyway). As for the C++ invoke, not much was required, your Qml will not react or respond to the mouse event until you come back from the call as expected. Unless you have timer base actions or your main loop feed something external (which I think you should never do), this work well. We had some issue with Qt 5.5, with mixing QWidgets/Qml for menu/window position, but that seem to be fixed into 5.6. Jerome On Tue, Apr 26, 2016 at 8:45 AM, Dmitry Volosnykh < dmitry.volosnykh at gmail.com> wrote: > Jérôme, thank you for your input. Just for self education... Did you face > some problems with such approach which you may want to share with us? Any > UI performance issues since you may have blocked scene renderer? > > > On Tue, Apr 26, 2016 at 3:39 PM Jérôme Godbout wrote: > >> We also have expose those blocking C++ QMessageBox and QDialog for linear >> workflow via Q_INVOKABLE from C++ singleton. This avoid the callback >> spaghetti mess of Qml Dialog and made the code more readable. If you have >> many options to offer to user in particular sequences of may or may not be >> requested, the declarative way is a nightmare. In fact I think we have 0 >> Qml Dialog into our 5 CAD applications, but many call to those C++ blocking >> dialog invoke. >> >> On Tue, Apr 26, 2016 at 8:34 AM, Jérôme Godbout >> wrote: >> >>> I can tell what we did, we made a FileSystem C++ singleton that expose >>> most file system file/url check, we made those check inside Qml javascript >>> now. This way you can make callback and GUI logic into Qml. We expect C++ >>> function to be call with valid argument all the time. Else we always return >>> error (unexpected error, since the Qml code should have validate before >>> making the call, this is a developer issue). >>> >>> Side Note: We also have experiment with throw from C++ that get evaluate >>> into Qml, it work, but it would be nice to have a proper keyword with throw >>> type to indicate this and the exception get transfer to into Q_INVOKABLE. >>> Would allow for better error handling. >>> >>> On Tue, Apr 26, 2016 at 5:58 AM, Sina Dogru wrote: >>> >>>> >>>> >>>> 2016-04-26 12:11 GMT+03:00 Shawn Rutledge : >>>> >>>>> >>>>> You shouldn’t need to do this. Just write onAccepted/onRejected >>>>> handlers which call back to QML and/or C++ code as necessary. Is there >>>>> some reason why that is difficult? >>>>> >>>>> Well the problem is (like I tried to explain on the email to Dmitry) >>>> while using QFileDialog's and QMessageBox's static functions, program can >>>> continue to flow from where those functions called. >>>> >>>> Let me please explain myself with a piece of code; >>>> >>>> void App::saveAs(const QString &path) >>>> { >>>> bool cont = true; >>>> >>>> while (cont) { >>>> if (path.isEmpty()) >>>> cont = false; >>>> else { >>>> QFileInfo fi = path; >>>> >>>> if (fi->exists()) { >>>> int wantSave = QMessageBox::warning(nullptr, >>>> tr("Warning"), tr("File %1 exists.\n" >>>> "Do you wish to >>>> overwrite it?").arg(fi->fileName()), >>>> QMessageBox::Yes, >>>> QMessageBox::No); >>>> if (wantSave == QMessageBox::Yes) >>>> cont = false; >>>> else >>>> path = QFileDialog::getSaveFileName(nullptr, >>>> tr("Save As")); >>>> } >>>> else >>>> cont = false; >>>> } >>>> } >>>> if (!path.isEmpty()) >>>> doc->save(url); >>>> } >>>> >>>> For example, when the user press the save as tool button of the QML >>>> ApplicationWindow, this slot is called onAccepted handler of the >>>> FileDialog. But depending on the user input, application might need to do >>>> something else. >>>> >>>> But I am not sure if I am violating the "UI and business logic >>>> seperation" with this approach? >>>> >>>> _______________________________________________ >>>> Interest mailing list >>>> Interest at qt-project.org >>>> http://lists.qt-project.org/mailman/listinfo/interest >>>> >>>> >>> >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sinadooru at gmail.com Tue Apr 26 15:14:16 2016 From: sinadooru at gmail.com (Sina Dogru) Date: Tue, 26 Apr 2016 16:14:16 +0300 Subject: [Interest] [QtQuick] Interaction with user from C++ In-Reply-To: References: Message-ID: Hello Jérôme, I am trying to understand how you made it possible, 2016-04-26 15:39 GMT+03:00 Jérôme Godbout : > We also have expose those blocking C++ QMessageBox and QDialog for linear > workflow via Q_INVOKABLE from C++ singleton. > I might misunderstand, do you actually using QMessageBox with QML application? or do you mean MessageBox QML type? > This avoid the callback spaghetti mess of Qml Dialog and made the code > more readable. If you have many options to offer to user in particular > sequences of may or may not be requested, the declarative way is a > nightmare. In fact I think we have 0 Qml Dialog into our 5 CAD > applications, but many call to those C++ blocking dialog invoke. > > On Tue, Apr 26, 2016 at 8:34 AM, Jérôme Godbout > wrote: > >> I can tell what we did, we made a FileSystem C++ singleton that expose >> most file system file/url check, we made those check inside Qml javascript >> now. >> > Do you mean instead of sending the user input to FileDialog and checking this url in C++, you directly check if the file exists in QML? > This way you can make callback and GUI logic into Qml. We expect C++ >> function to be call with valid argument all the time. Else we always return >> error (unexpected error, since the Qml code should have validate before >> making the call, this is a developer issue). >> > I am sorry, you return error from what? Side Note: We also have experiment with throw from C++ that get evaluate >> into Qml, it work, but it would be nice to have a proper keyword with throw >> type to indicate this and the exception get transfer to into Q_INVOKABLE. >> Would allow for better error handling. >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jhihn at gmx.com Tue Apr 26 15:31:26 2016 From: jhihn at gmx.com (Jason H) Date: Tue, 26 Apr 2016 15:31:26 +0200 Subject: [Interest] Release build Errors on launch in android - used to work fine Message-ID: I have a project that I've been working on for a while now. Yesterday something went wonky, and I did a clean, then build. The debug version works fine, but the release crashes on app start with the following errors: E/art ( 556): dlopen("/data/data/com.company.app.a/qt-reserved-files/plugins/bearer/libqandroidbearer.so", RTLD_LAZY) failed: dlopen failed: could not load library "libQt5Network.so" needed by "libqandroidbearer.so"; caused by library "libQt5Network.so" not found AND E/AndroidRuntime( 556): No implementation found for void com.company.app.MyActivity.didBecomeActive() (tried Java_com_company_app_MyActivity_didBecomeActive and Java_com_company_app_MyActivity_didBecomeActive__) extern "C" { //(tried Java_com_company_app_MyActivity_didBecomeActive // MATCHES JNIEXPORT void JNICALL Java_com_company_app_MyActivity_didBecomeActive(JNIEnv* env, jobject jo) { Q_UNUSED(env) Q_UNUSED(jo) qDebug() << Q_FUNC_INFO; if (PlatformShimImpl::instance()) PlatformShimImpl::instance()->didBecomeActive(); } } I'd really like to be able to build a release build. From Shawn.Rutledge at qt.io Tue Apr 26 15:36:10 2016 From: Shawn.Rutledge at qt.io (Shawn Rutledge) Date: Tue, 26 Apr 2016 13:36:10 +0000 Subject: [Interest] [QtQuick] Interaction with user from C++ In-Reply-To: References: Message-ID: <54ED41D8-B12D-42A6-9B8D-30E6F11FC341@qt.io> > On 26 Apr 2016, at 15:00, Jérôme Godbout wrote: > > Hi Dmitry, > not much problems, except this is a modal way for interacting with the user. I'm not a fan of modal (as matter of fact I hate it, you prevent your user for copy/paste, check something from the real work window), but the Qml Dialog callback make it even worst. It seem ok for a single question for a dual action path, but when thing get a little more complex, this is a code nightmare (not as hard to code, but hard to follow what is going on when not written by you Yeah modal dialogs are usually bad for usability. But I see, if you have a procedural block and you want to ask “are you sure” somewhere in the middle, that’s a pain to break it up into multiple functions. Another common usability tip: don’t ask “are you sure” (or, “do you want to save changes” when exiting), because if the user uses your software a lot, answering the dialog in the most common way becomes a reflex, and then maybe he’s going to regret it when the reflex ends up being wrong one time. Instead, make sure that undo/redo works well, and that the user’s work is never lost, so that it can be recovered if he forgot to save. That generally requires the use of the command pattern to remember the list of operations that can be undone/redone. And if you could already organize the steps in an interruptible operation into separate commands, you don’t have the original problem anymore. The reason we don’t recommend using blocking calls from QML is that you’d be blocking a thread that you don’t own, the same one which is running the JS engine. The behavior might not be consistent from version to version depending on how the engine is implemented. In a functional language, you could pass lambdas when you invoke the dialog: what to do for each possible outcome. Or, call-with-current-continuation can be used as a way to package up “the rest of the code flow from here on” into a function, without having to give it a name and put it somewhere else. I wonder if we could make that work in JS somehow. It would just give you a way to write the onAccepted/onRejected handlers inline instead of separately. Does anyone know if that sort of thing is possible in any web JS frameworks yet? From jhihn at gmx.com Tue Apr 26 15:45:03 2016 From: jhihn at gmx.com (Jason H) Date: Tue, 26 Apr 2016 15:45:03 +0200 Subject: [Interest] Running Qt app in a browser In-Reply-To: References: Message-ID: > Sent: Monday, April 25, 2016 at 4:59 PM > From: "Larry Martell" > To: interest at qt-project.org > Subject: [Interest] Running Qt app in a browser > > Is it possible to run a Qt app in a browser? I have googled for this, > and found some hits, but none seen like they ever worked out. The most > promising seems to be http://wiki.qt.io/Qt_for_Google_Native_Client > but the readme link is broken, so that's discouraging. Anyone have any > pointers on if this can be done and if so how? 1 . Someone already mentioned Wt, I have used Wt, and Qt, and even tried to merge the two a little by patching uic to produce Wt code from the .ui files. It worked ok, not 100%. I am very happy with WT, but I prefer making REST servers so that web and non-web mobile (QML?) clients can use them. 2. I had proposed and worked on for a short while a project called vaudeville, which would enable QPainter with with a HTML Canvas painter. It worked really well in terms of pixel-perfect, but the fonts were not. They were good, but the pixel hinting was a little different. That would be the closest to what you want that isn't NaCL. But that only got so far as an engineering level test. QPA (what I would need to plug it into Qt properly) was still very much in flux at the time. I postponed it and ever got back to it. 3. You might want to look at QxtWeb. ( http://libqxt.bitbucket.org/doc/tip/qxtweb.html ) You'll get more code re-use, but you'll have to code a special web client yourself. However, to the rescue, is QMLWeb, which is QML compatible, would allow you to produce some degree of QML re-usable code . 4. A final option is asm.js, you could (in theory, I've not tried this) load all of the Qt in a browser and run it through ASM.js ( http://asmjs.org/ ) Check out the slide deck which specifically mentions Qt. That's about all there is. My current MO is a NodeJS REST server and AJAX to the various clients, in whatever they are (QML/HTML usually) From jhihn at gmx.com Tue Apr 26 15:53:55 2016 From: jhihn at gmx.com (Jason H) Date: Tue, 26 Apr 2016 15:53:55 +0200 Subject: [Interest] Running Qt app in a browser In-Reply-To: References: , Message-ID: > That's about all there is. My current MO is a NodeJS REST server and AJAX to the various clients, in whatever they are (QML/HTML usually I forgot, related to asm.js: I wanted to mention this blog post: http://blog.qt.io/blog/2015/09/25/qt-for-native-client-and-emscripten/ From edward.sutton at subsite.com Tue Apr 26 16:11:39 2016 From: edward.sutton at subsite.com (Edward Sutton) Date: Tue, 26 Apr 2016 14:11:39 +0000 Subject: [Interest] How add libsqlite3.dylib to iOS qmake? Message-ID: <3B122885-0F15-476E-98B4-CF73D8D0D23A@subsite.com> How do you add a dylib to an iOS qmake file? I am trying to add Google Analytics support to my Qt iOS app. I need to add the following dependencies to qmake: * ligGoogleAnalyticsServices.a * CoreData.framework * SystemConfiguration.framework * libz.dylib * libsqlite3.dylib So far my qmake looks like this: iOS { INCLUDEPATH += $${PWD}/platform/ios/xcode/deps/GoogleAnalyticsServicesiOS_3.15/GoogleAnalytics/Library LIBS += -framework CoreData LIBS += -framework SystemConfiguration LIBS += -lGoogleAnalyticsServices LIBS += -L$${PWD}/platform/ios/xcode/deps/GoogleAnalyticsServicesiOS_3.15/ # How do you add a dylib? Thanks in advance, -Ed This email and any files transmitted with it from The Charles Machine Works, Inc. are confidential and intended solely for the use of the individual or entity to which they are addressed. If you have received this email in error please notify the sender. Our company accepts no liability for the contents of this email, or for the consequences of any actions taken on the basis of the information provided, unless that information is subsequently confirmed in writing. Please note that any views or opinions presented in this email are solely those of the author and do not necessarily represent those of the company. Finally, the recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jhihn at gmx.com Tue Apr 26 16:17:51 2016 From: jhihn at gmx.com (Jason H) Date: Tue, 26 Apr 2016 16:17:51 +0200 Subject: [Interest] How add libsqlite3.dylib to iOS qmake? In-Reply-To: <3B122885-0F15-476E-98B4-CF73D8D0D23A@subsite.com> References: <3B122885-0F15-476E-98B4-CF73D8D0D23A@subsite.com> Message-ID: An HTML attachment was scrubbed... URL: From edward.sutton at subsite.com Tue Apr 26 16:21:18 2016 From: edward.sutton at subsite.com (Edward Sutton) Date: Tue, 26 Apr 2016 14:21:18 +0000 Subject: [Interest] How add libsqlite3.dylib to iOS qmake? In-Reply-To: References: <3B122885-0F15-476E-98B4-CF73D8D0D23A@subsite.com> Message-ID: Thanks Jason, This resolved my link issues. Now I can work on calling and sending the tracker events. # https://developers.google.com/analytics/devguides/collection/ios/v3/sdk-download#download_sdk # platform/ios/xcode/deps/GoogleAnalyticsServicesiOS_3.15/ # # The Google Analytics SDK uses the CoreData and SystemConfiguration frameworks, so you will need to # add the following to your application target's linked libraries: # CoreData.framework # SystemConfiguration.framework # libz.dylib # libsqlite3.dylib # libGoogleAnalyticsServices.a INCLUDEPATH += $${PWD}/platform/ios/xcode/deps/GoogleAnalyticsServicesiOS_3.15/GoogleAnalytics/Library LIBS += -framework CoreData LIBS += -framework SystemConfiguration # libsqlite.dylib and libz.dylib LIBS += -lsqlite3 LIBS += -lz LIBS += -lGoogleAnalyticsServices LIBS += -L$${PWD}/platform/ios/xcode/deps/GoogleAnalyticsServicesiOS_3.15/ -Ed On Apr 26, 2016, at 9:17 AM, Jason H > wrote: I don't think you (iOS/Qt) can. I think iOS has always been static, until recently, but the Qt build process improvements to allow dynlib hasn't been released yet. I think it's coming in 5.7. I think it should work as a .a Sent: Tuesday, April 26, 2016 at 10:11 AM From: "Edward Sutton" > To: "Qt Interest" > Subject: [Interest] How add libsqlite3.dylib to iOS qmake? How do you add a dylib to an iOS qmake file? I am trying to add Google Analytics support to my Qt iOS app. I need to add the following dependencies to qmake: * ligGoogleAnalyticsServices.a * CoreData.framework * SystemConfiguration.framework * libz.dylib * libsqlite3.dylib So far my qmake looks like this: iOS { INCLUDEPATH += $${PWD}/platform/ios/xcode/deps/GoogleAnalyticsServicesiOS_3.15/GoogleAnalytics/Library LIBS += -framework CoreData LIBS += -framework SystemConfiguration LIBS += -lGoogleAnalyticsServices LIBS += -L$${PWD}/platform/ios/xcode/deps/GoogleAnalyticsServicesiOS_3.15/ # How do you add a dylib? This email and any files transmitted with it from The Charles Machine Works, Inc. are confidential and intended solely for the use of the individual or entity to which they are addressed. If you have received this email in error please notify the sender. Our company accepts no liability for the contents of this email, or for the consequences of any actions taken on the basis of the information provided, unless that information is subsequently confirmed in writing. Please note that any views or opinions presented in this email are solely those of the author and do not necessarily represent those of the company. Finally, the recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jhihn at gmx.com Tue Apr 26 16:25:49 2016 From: jhihn at gmx.com (Jason H) Date: Tue, 26 Apr 2016 16:25:49 +0200 Subject: [Interest] How add libsqlite3.dylib to iOS qmake? In-Reply-To: References: <3B122885-0F15-476E-98B4-CF73D8D0D23A@subsite.com>, Message-ID: An HTML attachment was scrubbed... URL: From frares at gmail.com Tue Apr 26 16:34:38 2016 From: frares at gmail.com (Francisco Ares) Date: Tue, 26 Apr 2016 11:34:38 -0300 Subject: [Interest] PRO File defines In-Reply-To: <571EB2B6.40609@risingsoftware.com> References: <571D06CE.8020208@gmail.com> <129E4FD1-9514-4F34-94E8-02184859CA63@gmail.com> <571DAD91.5000709@gmail.com> <571EB2B6.40609@risingsoftware.com> Message-ID: 2016-04-25 21:13 GMT-03:00 Hamish Moffatt : > On 25/04/16 20:58, Francisco Ares wrote: > > > P.S.: by the way, I've been fiddling with some PRO files, and nowadays use > a few tricks, like: > > using one source tree to build different executables, with different > functionality: > > > > op1=$$find(DEFINES,"_REGISTER") > > count (op1,1) { > > include(../ModBus/QModBusMaster.pri) > > op2=$$find(QT, network) > > count(op2,0) { > > unix|win32: QT += network > > } > > > Yikes. Consider "contains(QT, network)" instead of that $$find() mess. Or > just: > > unix | win32: QT *= network > > (meaning add network if it is not already there). > > > Hamish > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > Sorry, as it "just worked", I didn't try other things. Thanks! Francisco -------------- next part -------------- An HTML attachment was scrubbed... URL: From antonxx at gmx.de Tue Apr 26 19:05:07 2016 From: antonxx at gmx.de (anton) Date: Tue, 26 Apr 2016 19:05:07 +0200 Subject: [Interest] Example for: QTreeView + QAbstractItemModel + external data Message-ID: Hi, I have subclassed QAbstractItemModel, and I want to load additionally data in the model as soon as somebody clicks on the [+] in the treeview to load the children of this item form an external data ( web- app which gives me json data back). Now: I reimplemented hasChildren() in the model but i am not sure about the moment to load the data. I suppose that the rowCount() method of the model is called when somebody expands an item in the view? If not what is the moment when my model should ask for additional Data? Does there exist a small example which demonstrates how to handle this in an optimal way. Not sure about beginInsertRows() or layoutChanged() .. I am experimenting but i get also some crashes so an example project would be nice. Thanks Anton From jerome at bodycad.com Tue Apr 26 19:11:12 2016 From: jerome at bodycad.com (=?UTF-8?B?SsOpcsO0bWUgR29kYm91dA==?=) Date: Tue, 26 Apr 2016 13:11:12 -0400 Subject: [Interest] [QtQuick] Interaction with user from C++ In-Reply-To: References: Message-ID: We are mostly using QFileDialog and QMessageBox. Note the Qml type but the one from QtWidgets/QFileDialog *Q_INVOKABLE QString getSaveFileName(...); // .h* *QString MySingletonDialog::getSaveFileName(...) // .cpp* *{* * return QFileDialog::getSaveFileName(...);* *}* here the return error would lead to empty string. The error can be from cancel from user, file is not accessible, already exist, etc. If you want more precision, add more check, you need to return a *VariantMap with { 'file': 'pathToFile', 'hasError': true; 'errorStr': 'operation cannot access file' }* for example. We do those check into Javascript and expose those file manipulation check into C++ singleton too. Would be nice to throw through the Q_INVOKABLE call into javascript. It's possible if you return a QJSValue that you eval into the JS (but this is another story). As Shawn suggest, it would be nice to have a QML component and trigger it with procedural call. The only way I see it is a follow (not tested just the way I see it into Qml Dialog): *Dialog* *{* * id: myDialog_* * contentItem: null* // Dummy content can be from anywhere or you could have a static object with options as property here * property Item myDialog1: Item { ... }* * property Item myDialog2: Item { ... }* // dynamic functor * property var acceptedCallback: null* * property var rejectedCallback: null* * onAccepted: { if(acceptedCallback) acceptedCallback(clickedButton); }* * onRejected: { if(rejectedCallback) rejectedCallback(clickedButton); }* // ... add other wanted handler for all the possible signal here *}* // inline callback (you can create function per sub function but that make the code look like a big goto mess). It's only 2 calls to interact with user and not branching does nothing else and it's already messy. *function myAction()* *{* * myDialog_.contentItem = myDialog_.myDialog1;* * myDialog_.rejectedCallback = function(button) * * {* * console.log('error');* * };* * myDialog_.acceptedCallback = * * function(button)* * {* // Do some stuff, need to ask something else * myDialog_.contentItem = myDialog_.myDialog2;* * myDialog_.rejectedCallback = function(button) * * {* * console.log('error 2');* * };* * myDialog_.acceptedCallback = function(button) * * {* // Do some stuff further // continue to dig a grave here by calling more dialog... * };* * myDialog_.open();* * };* * myDialog_.open();* *}* On Tue, Apr 26, 2016 at 9:14 AM, Sina Dogru wrote: > Hello Jérôme, > > I am trying to understand how you made it possible, > > 2016-04-26 15:39 GMT+03:00 Jérôme Godbout : > >> We also have expose those blocking C++ QMessageBox and QDialog for linear >> workflow via Q_INVOKABLE from C++ singleton. >> > > I might misunderstand, do you actually using QMessageBox with QML > application? or do you mean MessageBox QML type? > > >> This avoid the callback spaghetti mess of Qml Dialog and made the code >> more readable. If you have many options to offer to user in particular >> sequences of may or may not be requested, the declarative way is a >> nightmare. In fact I think we have 0 Qml Dialog into our 5 CAD >> applications, but many call to those C++ blocking dialog invoke. >> > >> On Tue, Apr 26, 2016 at 8:34 AM, Jérôme Godbout >> wrote: >> >>> I can tell what we did, we made a FileSystem C++ singleton that expose >>> most file system file/url check, we made those check inside Qml javascript >>> now. >>> >> > Do you mean instead of sending the user input to FileDialog and checking > this url in C++, you directly check if the file exists in QML? > > >> This way you can make callback and GUI logic into Qml. We expect C++ >>> function to be call with valid argument all the time. Else we always return >>> error (unexpected error, since the Qml code should have validate before >>> making the call, this is a developer issue). >>> >> > I am sorry, you return error from what? > > Side Note: We also have experiment with throw from C++ that get evaluate >>> into Qml, it work, but it would be nice to have a proper keyword with throw >>> type to indicate this and the exception get transfer to into Q_INVOKABLE. >>> Would allow for better error handling. >>> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From ryanelkholy at gmail.com Tue Apr 26 20:44:45 2016 From: ryanelkholy at gmail.com (Ryan Elkholy, PhD, PE) Date: Tue, 26 Apr 2016 14:44:45 -0400 Subject: [Interest] EGL Error : Could not create the egl surface: error = 0x300b Message-ID: Hello, I am am trying to make a yocto build that includes meta-qt5 without x11 or wayland on the Minnowboard Turbot (x86-64). I was successful in building my image but the problem occurred when testing my basic qt app on the image. When trying to run the app using -platform eglfs I get the following error: EGL Error : Could not create the egl surface: error = 0x300 I have been trying to find a solution for this for weeks with no luck. Does anyone know any solution for this? Any insight will be helpful because I have been stumped for weeks. If nobody knows of a solution is it possible to dig deeper into this error and see what is causing it? If so, how? Thanks -------------- next part -------------- An HTML attachment was scrubbed... URL: From sinadooru at gmail.com Tue Apr 26 21:17:48 2016 From: sinadooru at gmail.com (Sina Dogru) Date: Tue, 26 Apr 2016 22:17:48 +0300 Subject: [Interest] [QtQuick] Interaction with user from C++ In-Reply-To: References: Message-ID: Yes I got your points. At least there is no any bouncing between QML and C++. 2016-04-26 20:11 GMT+03:00 Jérôme Godbout : > We are mostly using QFileDialog and QMessageBox. Note the Qml type but the > one from QtWidgets/QFileDialog > > *Q_INVOKABLE QString getSaveFileName(...); // .h* > > > *QString MySingletonDialog::getSaveFileName(...) // .cpp* > *{* > * return QFileDialog::getSaveFileName(...);* > *}* > What is the parent argument for QFileDialog? I guess this is needed to modal window work properly? The only way I see it is a follow (not tested just the way I see it into > Qml Dialog): > > *Dialog* > *{* > * id: myDialog_* > * contentItem: null* > // Dummy content can be from anywhere or you could have a static object > with options as property here > * property Item myDialog1: Item { ... }* > > * property Item myDialog2: Item { ... }* > // dynamic functor > * property var acceptedCallback: null* > * property var rejectedCallback: null* > * onAccepted: { if(acceptedCallback) acceptedCallback(clickedButton); }* > * onRejected: { if(rejectedCallback) rejectedCallback(clickedButton); }* > // ... add other wanted handler for all the possible signal here > *}* > > // inline callback (you can create function per sub function but that make > the code look like a big goto mess). It's only 2 calls to interact with > user and not branching does nothing else and it's already messy. > > *function myAction()* > *{* > * myDialog_.contentItem = myDialog_.myDialog1;* > * myDialog_.rejectedCallback = function(button) * > * {* > * console.log('error');* > * };* > * myDialog_.acceptedCallback = * > * function(button)* > * {* > // Do some stuff, need to ask something else > * myDialog_.contentItem = myDialog_.myDialog2;* > * myDialog_.rejectedCallback = function(button) * > * {* > * console.log('error 2');* > * };* > * myDialog_.acceptedCallback = function(button) * > * {* > // Do some stuff further > // continue to dig a grave here by calling more dialog... > * };* > * myDialog_.open();* > * };* > * myDialog_.open();* > *}* > That is one of the other thing that I was trying to avoid while asking the question actually. Then there should be too many function definitions for different kind of scenarios :S. Seems like your first solution is the best one we have. Thank you for helping. -------------- next part -------------- An HTML attachment was scrubbed... URL: From ev.mipt at gmail.com Tue Apr 26 21:27:16 2016 From: ev.mipt at gmail.com (Oleg Evseev) Date: Tue, 26 Apr 2016 22:27:16 +0300 Subject: [Interest] [Qt3d] Does the duration of NumberAnimation update when you change its value? In-Reply-To: <3227574.YulT1JFENN@titan> References: <524623020.1848305.1461601411779.JavaMail.yahoo.ref@mail.yahoo.com> <524623020.1848305.1461601411779.JavaMail.yahoo@mail.yahoo.com> <3227574.YulT1JFENN@titan> Message-ID: Hi, Ramy and Sean > Something like this should do it (not tested) Thank you, Sean. Correct it little bit, tested, it works: Entity { id: mainEntity property real progress: 0.0 property real rotationSpeed: -1.0 property real angle: previousAngle + ( progress * 360.0 * rotationSpeed ) property real previousAngle: 0.0 function updatePreviousRotation() { mainEntity.previousAngle = mainEntity.angle % 360; } TorusMesh { id: mesh; radius: 5; minorRadius: 1; rings: 100; slices: 20 } PhongMaterial { id: material } //for some reason in this test project using just "angle" leads to ReferenceError, // but in another project it's all right to use Entity properties in Transform without Entity id Transform {id: transform; rotation: fromEulerAngles(0, mainEntity.angle, 0) } SequentialAnimation { running: true loops: Animation.Infinite NumberAnimation { target: mainEntity; property: "progress" from: 0.0; to: 1.0 duration: 1000 } ScriptAction { script: { mainEntity.updatePreviousRotation(); mainEntity.rotationSpeed += 0.1; } } components: [ mesh, material, transform ] } } rotationSpeed defines cycles per second. But now I have another related question. To compute rotationSpeed from vehicle linear speed one needs wheel radius. If I use different vehicle models with distinct size of wheels, I need to know sizes of a mesh (something like size of 3d model collision box). Is there a way to get mesh cube size? Regards, Oleg -------------- next part -------------- An HTML attachment was scrubbed... URL: From jerome at bodycad.com Tue Apr 26 21:32:32 2016 From: jerome at bodycad.com (=?UTF-8?B?SsOpcsO0bWUgR29kYm91dA==?=) Date: Tue, 26 Apr 2016 15:32:32 -0400 Subject: [Interest] [QtQuick] Interaction with user from C++ In-Reply-To: References: Message-ID: We have QWidgets as base window (QMainWindow) that have the QQuickView into it. For the parent, we use the QMainWindow. Maybe this explain why it work well in our case. We have some tools that are still into QWidgets (TreeView mostly with dock window, the Qml TreeView, is somewhat... painful in the current state). In the case of a Qml ApplicationWindow, I don't known if this would work, it's a QObject and not a QWidgets, the QDialog call require a QWidgets pointer as first argument. hummm, I did not realized that until now. Good point Sina Dogru. Not sure what is the behavior if the first argument is null if only have a Qml ApplicationWindow. If this work let me know, I'm curious to see if this work or not. On Tue, Apr 26, 2016 at 3:17 PM, Sina Dogru wrote: > Yes I got your points. At least there is no any bouncing between QML and > C++. > > 2016-04-26 20:11 GMT+03:00 Jérôme Godbout : > >> We are mostly using QFileDialog and QMessageBox. Note the Qml type but >> the one from QtWidgets/QFileDialog >> >> *Q_INVOKABLE QString getSaveFileName(...); // .h* >> >> >> *QString MySingletonDialog::getSaveFileName(...) // .cpp* >> *{* >> * return QFileDialog::getSaveFileName(...);* >> *}* >> > > What is the parent argument for QFileDialog? I guess this is needed to > modal window work properly? > > The only way I see it is a follow (not tested just the way I see it into >> Qml Dialog): >> >> *Dialog* >> *{* >> * id: myDialog_* >> * contentItem: null* >> // Dummy content can be from anywhere or you could have a static >> object with options as property here >> * property Item myDialog1: Item { ... }* >> >> * property Item myDialog2: Item { ... }* >> // dynamic functor >> * property var acceptedCallback: null* >> * property var rejectedCallback: null* >> * onAccepted: { if(acceptedCallback) acceptedCallback(clickedButton); }* >> * onRejected: { if(rejectedCallback) rejectedCallback(clickedButton); }* >> // ... add other wanted handler for all the possible signal here >> *}* >> >> // inline callback (you can create function per sub function but that >> make the code look like a big goto mess). It's only 2 calls to interact >> with user and not branching does nothing else and it's already messy. >> >> *function myAction()* >> *{* >> * myDialog_.contentItem = myDialog_.myDialog1;* >> * myDialog_.rejectedCallback = function(button) * >> * {* >> * console.log('error');* >> * };* >> * myDialog_.acceptedCallback = * >> * function(button)* >> * {* >> // Do some stuff, need to ask something else >> * myDialog_.contentItem = myDialog_.myDialog2;* >> * myDialog_.rejectedCallback = function(button) * >> * {* >> * console.log('error 2');* >> * };* >> * myDialog_.acceptedCallback = function(button) * >> * {* >> // Do some stuff further >> // continue to dig a grave here by calling more dialog... >> * };* >> * myDialog_.open();* >> * };* >> * myDialog_.open();* >> *}* >> > > That is one of the other thing that I was trying to avoid while asking the > question actually. Then there should be too many function definitions for > different kind of scenarios :S. Seems like your first solution is the best > one we have. Thank you for helping. > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jhihn at gmx.com Tue Apr 26 22:24:11 2016 From: jhihn at gmx.com (Jason H) Date: Tue, 26 Apr 2016 22:24:11 +0200 Subject: [Interest] Add another translation? Message-ID: How I currently support English and Spanish, how do I add another language in Qt Linguist? it seems that I need to re-run lupdate? I'd love to be able to to it all by GUI, since I already have working TS files. I should be able to use them as the template, change the language, then have it wipe the values and save. File -> New - > Language from this file... [Enter language code].. Done. vs Drop to the command line, find the binary, invoke it with --help, review it, prepare the command line, hoping I remembered the switches I used originally, (like -tr-function-alias) inspect the output that it looks reasonable. And start working with that. From thiago.macieira at intel.com Tue Apr 26 23:20:08 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Tue, 26 Apr 2016 14:20:08 -0700 Subject: [Interest] EGL Error : Could not create the egl surface: error = 0x300b In-Reply-To: References: Message-ID: <2490104.0hvyVv4phb@tjmaciei-mobl4> On terça-feira, 26 de abril de 2016 14:44:45 PDT Ryan Elkholy, PhD, PE wrote: > Hello, > > I am am trying to make a yocto build that includes meta-qt5 without x11 or > wayland on the Minnowboard Turbot (x86-64). I was successful in building my > image but the problem occurred when testing my basic qt app on the image. > When trying to run the app using -platform eglfs I get the following error: > > EGL Error : Could not create the egl surface: error = 0x300 Hi Ryan Your subject says 0x300b. That's #define EGL_BAD_NATIVE_WINDOW 0x300B there's no 0x300 error code. > I have been trying to find a solution for this for weeks with no luck. Does > anyone know any solution for this? Any insight will be helpful because I > have been stumped for weeks. If nobody knows of a solution is it possible > to dig deeper into this error and see what is causing it? If so, how? > > Thanks -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From ryanelkholy at gmail.com Wed Apr 27 00:02:02 2016 From: ryanelkholy at gmail.com (Ryan Elkholy) Date: Tue, 26 Apr 2016 18:02:02 -0400 Subject: [Interest] EGL Error : Could not create the egl surface: error = 0x300b In-Reply-To: <2490104.0hvyVv4phb@tjmaciei-mobl4> References: <2490104.0hvyVv4phb@tjmaciei-mobl4> Message-ID: <53131EF8-B262-4BBC-9A2F-7832274AE7EF@gmail.com> Yes, sorry for that. Three questions: 1. How did you find that 0x300b was EGL_BAD_NATIVE_WINDOW? 2. What is this caused by? 3. Given that there is no obvious solution, how can I dig further into debugging this? Thanks > On Apr 26, 2016, at 5:20 PM, Thiago Macieira wrote: > >> On terça-feira, 26 de abril de 2016 14:44:45 PDT Ryan Elkholy, PhD, PE wrote: >> Hello, >> >> I am am trying to make a yocto build that includes meta-qt5 without x11 or >> wayland on the Minnowboard Turbot (x86-64). I was successful in building my >> image but the problem occurred when testing my basic qt app on the image. >> When trying to run the app using -platform eglfs I get the following error: >> >> EGL Error : Could not create the egl surface: error = 0x300 > > Hi Ryan > > Your subject says 0x300b. That's > > #define EGL_BAD_NATIVE_WINDOW 0x300B > > there's no 0x300 error code. > >> I have been trying to find a solution for this for weeks with no luck. Does >> anyone know any solution for this? Any insight will be helpful because I >> have been stumped for weeks. If nobody knows of a solution is it possible >> to dig deeper into this error and see what is causing it? If so, how? >> >> Thanks > > > -- > Thiago Macieira - thiago.macieira (AT) intel.com > Software Architect - Intel Open Source Technology Center > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest From dangelog at gmail.com Wed Apr 27 00:43:36 2016 From: dangelog at gmail.com (Giuseppe D'Angelo) Date: Wed, 27 Apr 2016 00:43:36 +0200 Subject: [Interest] EGL Error : Could not create the egl surface: error = 0x300b In-Reply-To: <53131EF8-B262-4BBC-9A2F-7832274AE7EF@gmail.com> References: <2490104.0hvyVv4phb@tjmaciei-mobl4> <53131EF8-B262-4BBC-9A2F-7832274AE7EF@gmail.com> Message-ID: On Wed, Apr 27, 2016 at 12:02 AM, Ryan Elkholy wrote: > 1. How did you find that 0x300b was EGL_BAD_NATIVE_WINDOW? grep -i 300b /usr/include/EGL/egl.h #define EGL_BAD_NATIVE_WINDOW 0x300B Cheers, -- Giuseppe D'Angelo From ryanelkholy at gmail.com Wed Apr 27 00:48:41 2016 From: ryanelkholy at gmail.com (Ryan Elkholy, PhD, PE) Date: Tue, 26 Apr 2016 18:48:41 -0400 Subject: [Interest] EGL Error : Could not create the egl surface: error = 0x300b In-Reply-To: References: <2490104.0hvyVv4phb@tjmaciei-mobl4> <53131EF8-B262-4BBC-9A2F-7832274AE7EF@gmail.com> Message-ID: Any ideas for a fix? I see a lot of stuff regarding platform specific fixes, but none for x86-64. On Tue, Apr 26, 2016 at 6:43 PM, Giuseppe D'Angelo wrote: > On Wed, Apr 27, 2016 at 12:02 AM, Ryan Elkholy > wrote: > > 1. How did you find that 0x300b was EGL_BAD_NATIVE_WINDOW? > > grep -i 300b /usr/include/EGL/egl.h > > #define EGL_BAD_NATIVE_WINDOW 0x300B > > > Cheers, > -- > Giuseppe D'Angelo > -------------- next part -------------- An HTML attachment was scrubbed... URL: From thiago.macieira at intel.com Wed Apr 27 01:21:47 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Tue, 26 Apr 2016 16:21:47 -0700 Subject: [Interest] EGL Error : Could not create the egl surface: error = 0x300b In-Reply-To: <53131EF8-B262-4BBC-9A2F-7832274AE7EF@gmail.com> References: <2490104.0hvyVv4phb@tjmaciei-mobl4> <53131EF8-B262-4BBC-9A2F-7832274AE7EF@gmail.com> Message-ID: <10506855.vV24Yztmmo@tjmaciei-mobl4> On terça-feira, 26 de abril de 2016 18:02:02 PDT Ryan Elkholy wrote: > Yes, sorry for that. Three questions: > > 1. How did you find that 0x300b was EGL_BAD_NATIVE_WINDOW? a) I searched the source code for the full error message and found that it was printing the return value of eglGetError() b) I googled for eglGetError() and found the possible error replies c) I grepped the EGL headers for an error constant (any of them) and then found the one close to it that had the value 0x300B. > 2. What is this caused by? According to Khronos docs, a bad EGLDisplay value. Most likely a null pointer. void QEglFSWindow::resetSurface() { EGLDisplay display = screen()->display(); QSurfaceFormat platformFormat = qt_egl_device_integration()- >surfaceFormatFor(window()->requestedFormat()); m_config = QEglFSIntegration::chooseConfig(display, platformFormat); m_format = q_glFormatFromConfig(display, m_config, platformFormat); m_window = qt_egl_device_integration()->createNativeWindow(this, screen()- >geometry().size(), m_format); m_surface = eglCreateWindowSurface(display, m_config, m_window, NULL); } Don't ask me why screen()->display() is returning a bad EGLDisplay. This is as far as I can go studying this codebase. > 3. Given that there is no obvious solution, how can I dig further into > debugging this? -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From denis.shienkov at gmail.com Wed Apr 27 06:58:46 2016 From: denis.shienkov at gmail.com (Denis Shienkov) Date: Wed, 27 Apr 2016 07:58:46 +0300 Subject: [Interest] EGL Error : Could not create the egl surface: error = 0x300b In-Reply-To: <10506855.vV24Yztmmo@tjmaciei-mobl4> References: <2490104.0hvyVv4phb@tjmaciei-mobl4> <53131EF8-B262-4BBC-9A2F-7832274AE7EF@gmail.com> <10506855.vV24Yztmmo@tjmaciei-mobl4> Message-ID: <1582983a-567c-645d-bf73-6b0450725b38@gmail.com> Or, maybe your app has wrong linking to *EGL libraries... for example, your target has own *EGL libraries path, which is different than *EGL MESA libraries. Check your ldd. BR, denis 27.04.2016 2:21, Thiago Macieira пишет: > On terça-feira, 26 de abril de 2016 18:02:02 PDT Ryan Elkholy wrote: >> Yes, sorry for that. Three questions: >> >> 1. How did you find that 0x300b was EGL_BAD_NATIVE_WINDOW? > a) I searched the source code for the full error message and found that it was > printing the return value of eglGetError() > > b) I googled for eglGetError() and found the possible error replies > > c) I grepped the EGL headers for an error constant (any of them) and then > found the one close to it that had the value 0x300B. > >> 2. What is this caused by? > According to Khronos docs, a bad EGLDisplay value. Most likely a null pointer. > > void QEglFSWindow::resetSurface() > { > EGLDisplay display = screen()->display(); > QSurfaceFormat platformFormat = qt_egl_device_integration()- >> surfaceFormatFor(window()->requestedFormat()); > m_config = QEglFSIntegration::chooseConfig(display, platformFormat); > m_format = q_glFormatFromConfig(display, m_config, platformFormat); > m_window = qt_egl_device_integration()->createNativeWindow(this, screen()- >> geometry().size(), m_format); > m_surface = eglCreateWindowSurface(display, m_config, m_window, NULL); > } > > Don't ask me why screen()->display() is returning a bad EGLDisplay. This is as > far as I can go studying this codebase. > >> 3. Given that there is no obvious solution, how can I dig further into >> debugging this? From ekke at ekkes-corner.org Wed Apr 27 07:25:27 2016 From: ekke at ekkes-corner.org (ekke) Date: Wed, 27 Apr 2016 07:25:27 +0200 Subject: [Interest] Add another translation? In-Reply-To: References: Message-ID: <64cfc159-1d13-f635-39ad-98985e18e1fb@ekkes-corner.org> Am 26.04.16 um 22:24 schrieb Jason H: > How I currently support English and Spanish, how do I add another language in Qt Linguist? it seems that I need to re-run lupdate? I'd love to be able to to it all by GUI, since I already have working TS files. I should be able to use them as the template, change the language, then have it wipe the values and save. > > File -> New - > Language from this file... [Enter language code].. Done. > > vs > Drop to the command line, find the binary, invoke it with --help, review it, prepare the command line, hoping I remembered the switches I used originally, (like -tr-function-alias) inspect the output that it looks reasonable. And start working with that. > > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > I had this discussion in forum and at lists already because it was really confusing me HowTo deal with translations in Qt. Coming from BlackBerry Cascades in Eclipse Momentics I simply add a language and all the lupdate / lrelease stuff was done by magic under the hood In the meantime I have found a solution HowTo add languages without the need of going to command line etc this week I'll blog about in detail as part of my blog HowTo Install Qt 5.7 Beta you can already find HowTo add / modify External Tools for languages: https://appbus.wordpress.com/2016/04/22/install-qt-5-7-beta/ and here in the forum is how .pro can create all .ts and .qm files by magic - the only manual step is to run lupdate from external tools if translatable strings were changed http://forum.qt.io/topic/66214/qtranslator-doesn-t-load-qm-file/9 would be cool also to find a way to run the lupdate before building the project automatically ciao -- ekke (ekkehard gentz) independent software architect international development native mobile business apps BlackBerry 10 | Qt Mobile (Android, iOS) workshops - trainings - bootcamps *BlackBerry Elite Developer BlackBerry Platinum Enterprise Partner* max-josefs-platz 30, D-83022 rosenheim, germany mailto:ekke at ekkes-corner.org blog: http://ekkes-corner.org apps and more: http://appbus.org twitter: @ekkescorner skype: ekkes-corner LinkedIn: http://linkedin.com/in/ekkehard/ Steuer-Nr: 156/220/30931 FA Rosenheim, UST-ID: DE189929490 -------------- next part -------------- An HTML attachment was scrubbed... URL: From sean.harmer at kdab.com Wed Apr 27 09:44:15 2016 From: sean.harmer at kdab.com (Sean Harmer) Date: Wed, 27 Apr 2016 08:44:15 +0100 Subject: [Interest] [Qt3d] Does the duration of NumberAnimation update when you change its value? In-Reply-To: References: <524623020.1848305.1461601411779.JavaMail.yahoo.ref@mail.yahoo.com> <3227574.YulT1JFENN@titan> Message-ID: <1866172.WrPli2eZl2@cartman> On Tuesday 26 April 2016 22:27:16 Oleg Evseev wrote: > Hi, Ramy and Sean > > > Something like this should do it (not tested) > > Thank you, Sean. Correct it little bit, tested, it works: > > Entity { > > id: mainEntity > > property real progress: 0.0 > > property real rotationSpeed: -1.0 > > property real angle: previousAngle + ( progress * 360.0 * > rotationSpeed ) > > property real previousAngle: 0.0 > > > function updatePreviousRotation() { > > mainEntity.previousAngle = mainEntity.angle % 360; > > } > > > TorusMesh { id: mesh; radius: 5; minorRadius: 1; rings: 100; > slices: 20 } > > PhongMaterial { id: material } > > > //for some reason in this test project using just "angle" leads to > ReferenceError, > // but in another project it's all right to use Entity properties in > Transform without Entity id > > Transform {id: transform; rotation: fromEulerAngles(0, > mainEntity.angle, 0) } > > > SequentialAnimation { > > running: true > > loops: Animation.Infinite > > > NumberAnimation { > > target: mainEntity; property: "progress" > > from: 0.0; to: 1.0 > > duration: 1000 > > } > > > ScriptAction { > > script: { > > mainEntity.updatePreviousRotation(); > > mainEntity.rotationSpeed += 0.1; > > } > > } > > components: [ mesh, material, transform ] } > } > > > rotationSpeed defines cycles per second. > > But now I have another related question. To compute rotationSpeed from > vehicle linear speed one needs wheel radius. If I use different vehicle > models with distinct size of wheels, I need to know sizes of a mesh > (something like size of 3d model collision box). > Is there a way to get mesh cube size? At the moment, no. This is something we may well add for 5.8. For now you'll need to calculate it yourself or pass it in as metadata somehow. Cheers, Sean > > Regards, Oleg -- Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK KDAB (UK) Ltd, a KDAB Group company Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090 Mobile: +44 (0)7545 140604 KDAB - Qt Experts From mike.krus at kdab.com Wed Apr 27 14:02:10 2016 From: mike.krus at kdab.com (Mike Krus) Date: Wed, 27 Apr 2016 13:02:10 +0100 Subject: [Interest] [qt-android][qt-iOS] Is it possible to disable page scrolling when software keyboard is being shown? In-Reply-To: References: Message-ID: <313CD65E-E84F-4B6E-AA20-952B71E99F4E@kdab.com> Hi the trick I used in the past is to: - put a MouseArea as a child of the TextField to stop the focus becoming active - onClicked, move the TextField to some location, outside where the kb will be positioned, can use Qt.inputMethod.keyboardRectangle to figure out the size of that (not sure it’s always correct though) - when your animation finishes, set the focus explicitly in the text field, causing the keyboard to appear If you decompose your animation in two, you can set the focus earlier, as long as your text field never ends up under the keyboard Then detect keyboard dismissal (Qt.inputMethod.visible) to move the text field back into place. A lot of work… Mike > On 21 Apr 2016, at 09:30, Liang Jian wrote: > > Hello everyone, > One of the page in our qml app have an input box(such as a TextEdit element) > at the bottom, when user press the input box the software keyboard will show, > and we want the background of the page keep still while the input box scroll > to the top of software keyboard. > The current Qt implementation will always scroll the whole page which make > it impossible to implement this behaviour. We have to use native UI element to > implement this(in both android and iOS) which require too much code. > Is it possible to disable page scrolling while showing software keyboard? > If that is possible then we can implement this behaviour easily. > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -- Mike Krus | mike.krus at kdab.com | Senior Software Engineer KDAB (UK) Ltd., a KDAB Group company Tel: UK +44-1625-809908 Mobile: +44 7833 491941 KDAB - The Qt Experts -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 3859 bytes Desc: not available URL: From edward.sutton at subsite.com Wed Apr 27 19:07:37 2016 From: edward.sutton at subsite.com (Edward Sutton) Date: Wed, 27 Apr 2016 17:07:37 +0000 Subject: [Interest] How add libsqlite3.dylib to iOS qmake? In-Reply-To: References: <3B122885-0F15-476E-98B4-CF73D8D0D23A@subsite.com> Message-ID: <6C4EDB8C-27A7-4E67-8C48-2A6F62D61EFD@subsite.com> Thanks Jason. -Ed On Apr 26, 2016, at 9:25 AM, Jason H > wrote: FWIW, Just use Qt to do the SQLite stuff, and provide the functionaltiy in a ObjectiveC .mm file. Example: // ObjectiveC - (BOOL)sendBackgroundChunk { qDebug() << Q_FUNC_INFO; QVariantMap map = BackgroundChunk::extractNextChunk(); if (!map.isEmpty()) { NSString *nsFilename = map["extractLocation"].toString().toNSString(); NSString *org = map["org"].toString().toNSString(); uint64_t size = map["extractSize"].toInt(); // BackgroundChunk.cpp QVariantMap BackgroundChunk::extractNextChunk() { QVariantMap map; QSqlDatabase db; QSqlQuery q; // etc ... return map; } Sent: Tuesday, April 26, 2016 at 10:17 AM From: "Jason H" > To: "Edward Sutton" > Cc: "Qt Interest" > Subject: Re: [Interest] How add libsqlite3.dylib to iOS qmake? I don't think you (iOS/Qt) can. I think iOS has always been static, until recently, but the Qt build process improvements to allow dynlib hasn't been released yet. I think it's coming in 5.7. I think it should work as a .a Sent: Tuesday, April 26, 2016 at 10:11 AM From: "Edward Sutton" > To: "Qt Interest" > Subject: [Interest] How add libsqlite3.dylib to iOS qmake? How do you add a dylib to an iOS qmake file? I am trying to add Google Analytics support to my Qt iOS app. I need to add the following dependencies to qmake: * ligGoogleAnalyticsServices.a * CoreData.framework * SystemConfiguration.framework * libz.dylib * libsqlite3.dylib So far my qmake looks like this: iOS { INCLUDEPATH += $${PWD}/platform/ios/xcode/deps/GoogleAnalyticsServicesiOS_3.15/GoogleAnalytics/Library LIBS += -framework CoreData LIBS += -framework SystemConfiguration LIBS += -lGoogleAnalyticsServices LIBS += -L$${PWD}/platform/ios/xcode/deps/GoogleAnalyticsServicesiOS_3.15/ # How do you add a dylib? _______________________________________________ Interest mailing list Interest at qt-project.org http://lists.qt-project.org/mailman/listinfo/interest This email and any files transmitted with it from The Charles Machine Works, Inc. are confidential and intended solely for the use of the individual or entity to which they are addressed. If you have received this email in error please notify the sender. Our company accepts no liability for the contents of this email, or for the consequences of any actions taken on the basis of the information provided, unless that information is subsequently confirmed in writing. Please note that any views or opinions presented in this email are solely those of the author and do not necessarily represent those of the company. Finally, the recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. -------------- next part -------------- An HTML attachment was scrubbed... URL: From sinadooru at gmail.com Wed Apr 27 19:12:40 2016 From: sinadooru at gmail.com (Sina Dogru) Date: Wed, 27 Apr 2016 20:12:40 +0300 Subject: [Interest] [QtQuick] Interaction with user from C++ In-Reply-To: References: Message-ID: Seems like it is undefined behaviour to have QFileDialog without a parent. Sometimes it becomes "ApplicationModal" but sometimes "NonModal" (I experienced it with a simple code on Linux.).. Also Shawn warned that would block QML thread. So to try what is the behaviour of engine when the thread is block, I wrote a simple code where a timer increment an int and a text showing that int in QML. And from that QML called a C++ function which blocks it. But seems like engine keep working while it suppose to block (tried on 5.6). Now I need to choose between "bouncing between QML and C++" or "breaking in multiple functions". Thanks for helping and acquired a vision. Sina 2016-04-26 22:32 GMT+03:00 Jérôme Godbout : > We have QWidgets as base window (QMainWindow) that have the QQuickView > into it. For the parent, we use the QMainWindow. Maybe this explain why it > work well in our case. We have some tools that are still into QWidgets > (TreeView mostly with dock window, the Qml TreeView, is somewhat... painful > in the current state). > > In the case of a Qml ApplicationWindow, I don't known if this would work, > it's a QObject and not a QWidgets, the QDialog call require a QWidgets > pointer as first argument. hummm, I did not realized that until now. Good > point Sina Dogru. > > Not sure what is the behavior if the first argument is null if only have a > Qml ApplicationWindow. If this work let me know, I'm curious to see if this > work or not. > > > On Tue, Apr 26, 2016 at 3:17 PM, Sina Dogru wrote: > >> Yes I got your points. At least there is no any bouncing between QML and >> C++. >> >> 2016-04-26 20:11 GMT+03:00 Jérôme Godbout : >> >>> We are mostly using QFileDialog and QMessageBox. Note the Qml type but >>> the one from QtWidgets/QFileDialog >>> >>> *Q_INVOKABLE QString getSaveFileName(...); // .h* >>> >>> >>> *QString MySingletonDialog::getSaveFileName(...) // .cpp* >>> *{* >>> * return QFileDialog::getSaveFileName(...);* >>> *}* >>> >> >> What is the parent argument for QFileDialog? I guess this is needed to >> modal window work properly? >> >> The only way I see it is a follow (not tested just the way I see it into >>> Qml Dialog): >>> >>> *Dialog* >>> *{* >>> * id: myDialog_* >>> * contentItem: null* >>> // Dummy content can be from anywhere or you could have a static >>> object with options as property here >>> * property Item myDialog1: Item { ... }* >>> >>> * property Item myDialog2: Item { ... }* >>> // dynamic functor >>> * property var acceptedCallback: null* >>> * property var rejectedCallback: null* >>> * onAccepted: { if(acceptedCallback) acceptedCallback(clickedButton); }* >>> * onRejected: { if(rejectedCallback) rejectedCallback(clickedButton); }* >>> // ... add other wanted handler for all the possible signal here >>> *}* >>> >>> // inline callback (you can create function per sub function but that >>> make the code look like a big goto mess). It's only 2 calls to interact >>> with user and not branching does nothing else and it's already messy. >>> >>> *function myAction()* >>> *{* >>> * myDialog_.contentItem = myDialog_.myDialog1;* >>> * myDialog_.rejectedCallback = function(button) * >>> * {* >>> * console.log('error');* >>> * };* >>> * myDialog_.acceptedCallback = * >>> * function(button)* >>> * {* >>> // Do some stuff, need to ask something else >>> * myDialog_.contentItem = myDialog_.myDialog2;* >>> * myDialog_.rejectedCallback = function(button) * >>> * {* >>> * console.log('error 2');* >>> * };* >>> * myDialog_.acceptedCallback = function(button) * >>> * {* >>> // Do some stuff further >>> // continue to dig a grave here by calling more dialog... >>> * };* >>> * myDialog_.open();* >>> * };* >>> * myDialog_.open();* >>> *}* >>> >> >> That is one of the other thing that I was trying to avoid while asking >> the question actually. Then there should be too many function definitions >> for different kind of scenarios :S. Seems like your first solution is the >> best one we have. Thank you for helping. >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From xbenlau at gmail.com Wed Apr 27 19:24:20 2016 From: xbenlau at gmail.com (Ben Lau) Date: Thu, 28 Apr 2016 01:24:20 +0800 Subject: [Interest] [QtQuick] Interaction with user from C++ In-Reply-To: References: Message-ID: Hi Jérôme, On 26 April 2016 at 21:00, Jérôme Godbout wrote: > Hi Dmitry, > not much problems, except this is a modal way for interacting with the > user. I'm not a fan of modal (as matter of fact I hate it, you prevent your > user for copy/paste, check something from the real work window), but the > Qml Dialog callback make it even worst. It seem ok for a single question > for a dual action path, but when thing get a little more complex, this is a > code nightmare (not as hard to code, but hard to follow what is going on > when not written by you, it's a succession of callback and setting the Qml > Dialog callback function and call it over and over, you have to understand > the function that can be called in which order, because creating 5 of them > for a single sequence seem to be dumb and not helping the function workflow > anyway). > > How about using a promise object(Javascript concept)? Do you think it could simplify the workflow? > As for the C++ invoke, not much was required, your Qml will not react or > respond to the mouse event until you come back from the call as expected. > Unless you have timer base actions or your main loop feed something > external (which I think you should never do), this work well. > > We had some issue with Qt 5.5, with mixing QWidgets/Qml for menu/window > position, but that seem to be fixed into 5.6. > Jerome > > On Tue, Apr 26, 2016 at 8:45 AM, Dmitry Volosnykh < > dmitry.volosnykh at gmail.com> wrote: > >> Jérôme, thank you for your input. Just for self education... Did you >> face some problems with such approach which you may want to share with us? >> Any UI performance issues since you may have blocked scene renderer? >> >> >> On Tue, Apr 26, 2016 at 3:39 PM Jérôme Godbout >> wrote: >> >>> We also have expose those blocking C++ QMessageBox and QDialog for >>> linear workflow via Q_INVOKABLE from C++ singleton. This avoid the callback >>> spaghetti mess of Qml Dialog and made the code more readable. If you have >>> many options to offer to user in particular sequences of may or may not be >>> requested, the declarative way is a nightmare. In fact I think we have 0 >>> Qml Dialog into our 5 CAD applications, but many call to those C++ blocking >>> dialog invoke. >>> >>> On Tue, Apr 26, 2016 at 8:34 AM, Jérôme Godbout >>> wrote: >>> >>>> I can tell what we did, we made a FileSystem C++ singleton that expose >>>> most file system file/url check, we made those check inside Qml javascript >>>> now. This way you can make callback and GUI logic into Qml. We expect C++ >>>> function to be call with valid argument all the time. Else we always return >>>> error (unexpected error, since the Qml code should have validate before >>>> making the call, this is a developer issue). >>>> >>>> Side Note: We also have experiment with throw from C++ that get >>>> evaluate into Qml, it work, but it would be nice to have a proper keyword >>>> with throw type to indicate this and the exception get transfer to into >>>> Q_INVOKABLE. Would allow for better error handling. >>>> >>>> On Tue, Apr 26, 2016 at 5:58 AM, Sina Dogru >>>> wrote: >>>> >>>>> >>>>> >>>>> 2016-04-26 12:11 GMT+03:00 Shawn Rutledge : >>>>> >>>>>> >>>>>> You shouldn’t need to do this. Just write onAccepted/onRejected >>>>>> handlers which call back to QML and/or C++ code as necessary. Is there >>>>>> some reason why that is difficult? >>>>>> >>>>>> Well the problem is (like I tried to explain on the email to Dmitry) >>>>> while using QFileDialog's and QMessageBox's static functions, program can >>>>> continue to flow from where those functions called. >>>>> >>>>> Let me please explain myself with a piece of code; >>>>> >>>>> void App::saveAs(const QString &path) >>>>> { >>>>> bool cont = true; >>>>> >>>>> while (cont) { >>>>> if (path.isEmpty()) >>>>> cont = false; >>>>> else { >>>>> QFileInfo fi = path; >>>>> >>>>> if (fi->exists()) { >>>>> int wantSave = QMessageBox::warning(nullptr, >>>>> tr("Warning"), tr("File %1 exists.\n" >>>>> "Do you wish to >>>>> overwrite it?").arg(fi->fileName()), >>>>> QMessageBox::Yes, >>>>> QMessageBox::No); >>>>> if (wantSave == QMessageBox::Yes) >>>>> cont = false; >>>>> else >>>>> path = QFileDialog::getSaveFileName(nullptr, >>>>> tr("Save As")); >>>>> } >>>>> else >>>>> cont = false; >>>>> } >>>>> } >>>>> if (!path.isEmpty()) >>>>> doc->save(url); >>>>> } >>>>> >>>>> For example, when the user press the save as tool button of the QML >>>>> ApplicationWindow, this slot is called onAccepted handler of the >>>>> FileDialog. But depending on the user input, application might need to do >>>>> something else. >>>>> >>>>> But I am not sure if I am violating the "UI and business logic >>>>> seperation" with this approach? >>>>> >>>>> _______________________________________________ >>>>> Interest mailing list >>>>> Interest at qt-project.org >>>>> http://lists.qt-project.org/mailman/listinfo/interest >>>>> >>>>> >>>> >>> _______________________________________________ >>> Interest mailing list >>> Interest at qt-project.org >>> http://lists.qt-project.org/mailman/listinfo/interest >>> >> > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ramitix at yahoo.com Wed Apr 27 19:38:58 2016 From: ramitix at yahoo.com (Ramy Atalla) Date: Wed, 27 Apr 2016 17:38:58 +0000 (UTC) Subject: [Interest] [Qt3d] Does the duration of NumberAnimation update when you change its value? References: <81827240.3499514.1461778738318.JavaMail.yahoo.ref@mail.yahoo.com> Message-ID: <81827240.3499514.1461778738318.JavaMail.yahoo@mail.yahoo.com> Hi DR. SeanThanks for reply.I tried both methods none of them works, Overall I think I have a problem controlling the animation (start/stop/restart).I have a slider which generates a value between 0-5000 for the duration of the animation, On value change of the slider it calls a function which does the follow:(1)stops the animation(doesn't work,however console log for animation.running updates to false). (2)updates the value of the property "carspeed".(3) restarts the animation(doesn't work,however console log for animation.running updates to true). I know there is something implemented wrong.If I initialize the animation running:true it won't stop and if I initialize it to running:false it won't start. Car.qml (one wheel and one rim transform) Transform { id: wheel1Transform property real userAngle: 0.0 translation:Qt.vector3d(-1.35, 0.368, 1.8) rotation: fromAxisAndAngle(Qt.vector3d(1, 0, 0), userAngle)}Transform { id: rim1Transform property real userAngle: 0.0 translation:Qt.vector3d(-1.40, 0.368, 1.8) rotation: fromAxisAndAngle(Qt.vector3d(1, 0, 0), userAngle)} Car.qml (wheeling and rim rotation animation) property alias wheelanimationControl : wheelanimationMain property real carspeed:2000QQ2.SequentialAnimation { id :wheelanimationMain running: false loops: QQ2.Animation.Infinite QQ2.NumberAnimation { id:wheelanimation targets:[ wheel1Transform, rim1Transform,wheel2Transform , rim2Transform,wheel3Transform , rim3Transform,wheel4Transform , rim4Transform] properties: "userAngle" duration: carspeed from: 0 to: 360 alwaysRunToEnd:false // onDurationChanged: wheelanimationMain.restart()}} Car.qml (the function that the slider will use) function sliderValue(){ console.log("before",wheel1Transform.userAngle,wheelanimationMain.running,slider.value, rootcar.carspeed) wheelanimationMain.stop(); wheelanimationMain.running=false; // redundant step  rootcar.carspeed = slider.value; wheelanimationMain.restart(); wheelanimationMain.running=true; // redundant step  console.log("after",wheel1Transform.userAngle,wheelanimationMain.running,slider.value, rootcar.carspeed) } Slider.qml import QtQuick 2.5import QtQuick.Controls 1.4 Item { id :root width: 300 height: 80 Rectangle { id: rectangle1 x: 696 y: 30 width: 300 height: 80 color: "#202020" radius: 1 border.color: "#ffffff" opacity: 0.5 } Text { id: text1 x: 705 y: 33 color: "#ffffff" text: qsTr("Speed") horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter font.pixelSize: 13 } MouseArea { id: mouseArea1 x: 696 y: 30 width: 300 height: 80 onClicked: root.visible=false cursorShape: Qt.PointingHandCursor } Car{ id:car } Slider{ id:slider x: 716 y: 68 width: 263 height: 22 maximumValue: 5000 stepSize: 100 updateValueWhileDragging :true onValueChanged: car.sliderValue() } Label { x: 910 y: 45 width: 63 height: 16 color: "#ffffff" text: Math.floor(slider.value/10)+" MPH" horizontalAlignment: Text.AlignHCenter } Rectangle { id: rectangle2 x: 600 y: 30 width: 80 height: 80 color: "#202020" radius: 1 border.color: "#ffffff" opacity: 0.5 } Text { id: text2 x: 600 y: 33 color: "#ffffff" text: qsTr("run") horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter font.pixelSize: 13 } MouseArea { id: mouseArea2 x: 600 y: 30 width: 80 height: 80 onClicked: car.wheelanimationControl.running=true; cursorShape: Qt.PointingHandCursor }}Thanks,Ramy --------------------------------------------------------------- Hi,I don't think this works unless you stop/restart the animation which is not  ideal. A work around is to have a simple NumberAnimation changing a "progress"  value, then in your actual property that you wish to animate, multiply this  progress property by your rotationSpeed property. It requires some extra  gymnastics to cope with non-integer numbers of rotations per cycle of the  progress property. Something like this should do it (not tested): Entity {     id: root     property real progress: 0.0     property real rotationSpeed: 10.0     property real angle: previousAngle + ( progress * rotationSpeed )     property real previousAngle: 0.0     function updatePreviousRotation() {         root.previousAngle = root.angle;     }     SequentialAnimation {         running: true         loops: Animation.Infinite                  NumberAnimation {             from: 0; to: 1             duration: 1000         }         ScriptAction { script: updatePreviousRotation() }     } } This is a limitation of what can be expressed with the Qt Quick 2 animation  framework at present. When we look at adding an animation aspect to Qt 3D for  Qt 5.8 or 5.9, this is one of the things I want to address along with morph  target, key frame and skeletal animations. More likely for 5.9 given we're  already well into the development cycle for 5.8 and we're still putting all  efforts into 5.7. Hope this helps, Sean -- Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK Klarälvdalens Datakonsult AB, a KDAB Group company Tel. UK +44 (0)1625 809908, Sweden (HQ) +46-563-540090 KDAB - Qt Experts - Platform-independent software solutions ---------------------------------------------------------------Hi,I am trying to do a rotation animation and control the rotation speed by changing the value of the duration, But it doesn't work . My question is it feasible or there another way ? QQ2.NumberAnimation { id:wheelanimation property int carspeed:0 targets: [wheel1Transform , rim1Transform,wheel2Transform , rim2Transform,wheel3Transform ,          rim3Transform,wheel4Transform , rim4Transform] property: "userAngle" duration: carspeed from: 0 to: 360 loops: QQ2.Animation.Infinite running: true } QQ2.NumberAnimation { duration: 100 loops: QQ2.Animation.Infinite target: wheelanimation property: "carspeed" from: 0.0 to: 3000 running: true } ThanksRamy -------------- next part -------------- An HTML attachment was scrubbed... URL: From jhihn at gmx.com Wed Apr 27 21:13:23 2016 From: jhihn at gmx.com (Jason H) Date: Wed, 27 Apr 2016 21:13:23 +0200 Subject: [Interest] QVideoFilter questions Message-ID: I'm trying to use this new (5.5) class for some very basic video frame analysis. (Like, average and stddev luminance values) I wish to use the Filter class in QML. I have a few questions: 1. I want to support as many mobile devices as possible. What are the pixel formats that I must support? Is there a list of what devices use what pixel formats? 2. From the docs - "For filters that only calculate some results and do not modify the video frame, it is also possible to operate asynchronously. They can queue the necessary operations using the compute API and return from this function without emitting any signals. The signal indicating the completion is then emitted only when the compute API indicates that the operations were done and the results are available." I wish to do this. - What does that look like? - What "compute" API? - How are the results communicated back to QML? From jhihn at gmx.com Wed Apr 27 22:03:07 2016 From: jhihn at gmx.com (Jason H) Date: Wed, 27 Apr 2016 22:03:07 +0200 Subject: [Interest] [Qt3d] Does the duration of NumberAnimation update when you change its value? In-Reply-To: <81827240.3499514.1461778738318.JavaMail.yahoo@mail.yahoo.com> References: <81827240.3499514.1461778738318.JavaMail.yahoo.ref@mail.yahoo.com>, <81827240.3499514.1461778738318.JavaMail.yahoo@mail.yahoo.com> Message-ID: An HTML attachment was scrubbed... URL: From afedoskin3 at gmail.com Wed Apr 27 22:47:39 2016 From: afedoskin3 at gmail.com (Artem Fedoskin) Date: Wed, 27 Apr 2016 22:47:39 +0200 Subject: [Interest] Few questions regarding Qt Quick Scene Graph In-Reply-To: References: <430092F3-667F-445C-8B0A-CF7836CE7E49@sletta.org> Message-ID: 1. I have experimented a little with the Scene Graph and got following results: 1. Rectangles with the same color were batched 2. Differently colored rectangles weren't batched 3. Textures were batched if the QQuickWindow::TextureCanUseAtlas flag was set but only if QSG_ATLAS_WIDTH and QSG_ATLAS_HEIGHT were big enough. 2. I also found one of your E-mails here http://lists.qt-project.org/ pipermail/interest/2014-January/010674.html where you suggested to use GL_MAX_TEXTURE_SIZE for setting atlas width and height, however, it didn't work when I set it as a value for environmental variable QSG_ATLAS_WIDTH and QSG_ATLAS_HEIGHT. 3. If I'm going to create say 100 000 objects and change X and Y coordinates with setX() setY() funcitions and at the same time set some objects to invisible state with setVisible(), can signals emitted from calling this setters cause significant drop in performance if I'm not connecting any slots on my side? 4. How setX() and setY() changes the position of the QQuickItem? I didn't noticed any calls to updatePaintNode() and is it better to set coordinates this way then directly changing coordinates of graphic nodes in updatePaintNode() and constantly call update()? Sorry for so much questions, but my project has to display and process a lot of items on the screen and it has to work good on mobile platforms. Thank you very much for all your advices and suggestions. Regards, Artem Fedoskin 2016-04-26 9:19 GMT+02:00 Gunnar Sletta : > > > On 25 Apr 2016, at 19:46, Artem Fedoskin wrote: > > > > Thank you for your reply Gunnar, > > > > Can you please tell me - can I store a pointer to the object of external > class (even not a QQuickItem derived one) in QSGNode derived class? Each > object of the class Data is associated with corresponding Triangle in View. > Whenever View is updated, it checks in loop Data objects on special > condition and based on that sets the corresponding Triangle to visible or > invisible state. If Triangle is visible, Triangle itself calls a bunch of > functions from external classes and uses pointer on object Data to retrieve > Data's info about coordinates then accesses function from another class to > convert the received coordinates to x,y positions. > > > > I understand that it is not safe to access QSGNode not from > updatePaintNode(), but is it actually safe to access other classes from > QSGNode itself? How far can I go in QSGNode in accessing things in GUI > thread? > > Normal threading considerations apply. You can reference anything to your > liking from objects that live on the render thread, there is nothing > special about it. We just strongly encourage to not cross reference between > GUI and render threads because the two run independently and objects can > come and go on both. > > > > > Could you please also tell me - what is the way to hide QSGNode > explicitly like for example setting QQuickItem::visible property to false. > I found your E-Mail here > http://lists.qt-project.org/pipermail/interest/2015-February/015285.html > but I'm afraid that deallocating and allocating QSGNode will take > unnecessary overhead as the visibility of nodes in my app will be often > turned off/on. Is it a good idea to use QSGNode::removeChildNode() for this? > > You would have to have an opacity node in there then and set its opacity > to 0. That way, they would still be in the scene graph (and still > potentiallly consume processing and resources). > > Alternatively you could experiment with explicitly managing the node. If > you during updatePaintNode stored the QSGNode that is passed in and return > 0, you will effectively have taken ownership over that subtree from the SG. > You could at a later time pass that stored node back to the SG. If there > are GL resources associated with it, you will need to clean those up > according to the section aboue "Graphics Resource Handling" in > http://doc.qt.io/qt-5/qquickitem.html#custom-scene-graph-items. > > > How do you think - maybe instead of allocating directly QSGNodes I > should just subclass instance of Data from QQuickItem and set its visual > parent to View? Is allocating 1000 QSGNodes in View significantly faster > than creating 1000 QQuickItems with the same painting logic and then > setting its visual parent to View? > > Constructing a QSGNode in C++ is orders of magnitude faster than > constructing a QQuickItem object through QML. Compared to a QQuickItem > constructed in C++, I would still expect it to be faster, but probably not > by a large margin. > > > > > Thank you > > > > Regards, > > Artem > > > > 2016-04-25 9:06 GMT+02:00 Gunnar Sletta : > > > > > On 24 Apr 2016, at 16:49, Artem Fedoskin wrote: > > > > > > I'm sorry. My first E-Mail was sent accidentally. Here is the final > version of my E-Mail. > > > Hello everybody. I have a project where a lot of objects are painted > on the screen whenever the user interacts with the app (pan, zoom, move) I > would be really grateful to you if you could answer a few questions > regarding the internals of Qt Quick Scene Graph: > > > > > > • Imagine that I add 1000 nodes with the same color inside > QQuickItem::updatePaintNode() function of some QQuickItem derived class. > Will they be drawn in batch as described in > http://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph-renderer.html#batching > ? > > > > Depends on the cirucmstances, but if they share clipping their > QSGMaterial::compare() indicates they are all identical, they will be > batched, yes. Verify with QSG_VISUALIZE=batches, as indicated by this same > document. > > > > > • Can I call the function of some other class in > QQuickItem::updatePaintNode()? I have some class named Data, class named > View and a subclass of QSGGeometryNode Triangle. Imagine that after objects > of these classes are created the Data asks View to create 10 Triangles. The > View creates 10 Triangles during the updatePaintNode() call and passes to > them pointers to the object of class Data, that required their > instantiation. The Triangles refers to the Data and get some values from it > and converts them to x,y coordinates. Is it something possible? > > > Do I violate the rule stated here > http://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph.html#scene-graph-and-rendering > "Warning: It is crucial that OpenGL operations and interaction with the > scene graph happens exclusively on the render thread, primarily during the > updatePaintNode() call. The rule of thumb is to only use classes with the > "QSG" prefix inside the QQuickItem::updatePaintNode() function." ? > > > > The point here is really that on many systems, there will be two threads > that are running. The GUI thread where your QQuickItems live and the render > thread where your QSGXxx objects live. updatePaintNode() is called on the > render thread while the GUI thread is blocked, so you are safe to read > state out of the QQuickItem at that time and use that to > create/update/modify/delete your QSGXxx objects accordingly. At any other > time, the two worlds live separate lives and should have no connection. > > > > There are other places where interaction between the threads are also > ok, as outlined in the QQuickItem docs, but by sticking to the rule > outlined in the updatePaintNode() function, 99% of all usecases will be > covered. > > > > For your usecase you are free to construct View, Data, x number of > Triangles during updatePaintNode() and then store that under some subclass > of a QSGNode. On the next call, you can update your structure if needed. > Your QQuickItem does not store a pointer to this QSGNode, it only exists > inside the scene graph and during the updatePaintNode() function. > > > > cheers, > > Gunnar > > > > > > > > At first I was thinking about deriving classes like Triangle from > QQuickItem and then reparenting them to the View but the direct creation of > QSGGeometryNodes seems to me to be less memory requiring approach. > > > > > > Regards, > > > Artem Fedoskin > > > > > > 2016-04-24 16:41 GMT+02:00 Artem Fedoskin : > > > Hello everybody. I have a project where a lot of objects are painted > on the screen whenever the user interacts with the app (pan, zoom, move) I > would be really grateful to you if you could answer a few questions > regarding the internals of Qt Quick Scene Graph: > > > > > > • Imagine that I add 1000 nodes with the same color inside > QQuickItem::updatePaintNode() function of some QQuickItem derived class. > Will they be drawn in batch as described in > http://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph-renderer.html#batching > ? > > > • Can I call the function of some other class in > QQuickItem::updatePaintNode()? I have some class named Data, class named > View and a subclass of QSGGeometryNode Triangle. Imagine that after objects > of these classes are created the Data asks View to create 10 Triangles. The > View creates 10 Triangles during the updatePaintNode() call and passes > pointers to the object of class Data, that required their instantiation. > The Triangles refers to the Data and get coordinates from it. Is it > something possible. Do I violate the rule stated here "Warning: It is > crucial that OpenGL operations and interaction with the scene graph happens > exclusively on the render thread, primarily during the updatePaintNode() > call. The rule of thumb is to only use classes with the "QSG" prefix inside > the QQuickItem::updatePaintNode() function." > > > > > > > > > > > > • For example, I want to get new coordinates of the object and > to do that I should refer to function of some other not QSGNode derived > object and then use these coordinates for rendering one of the nodes. > > > > > > _______________________________________________ > > > Interest mailing list > > > Interest at qt-project.org > > > http://lists.qt-project.org/mailman/listinfo/interest > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jerome at bodycad.com Wed Apr 27 23:02:09 2016 From: jerome at bodycad.com (=?UTF-8?B?SsOpcsO0bWUgR29kYm91dA==?=) Date: Wed, 27 Apr 2016 17:02:09 -0400 Subject: [Interest] [QtQuick] Interaction with user from C++ In-Reply-To: References: Message-ID: >>I wrote a simple code where a timer increment an int and a text showing that int in QML. And from that QML called a C++ function which blocks it. Take care, animation and rendering seem to be different thread. The Qml main thread should block. Maybe I don't get it what you tried here. >> How about using a promise object(Javascript concept)? It would surely help if you go with the functions inline. But those message box are normally part of sequence or can even be deep into an object function that know nothing about the caller or it's sequence status. Maybe promise can help here but doesn't change the real problem which is you need an answer before you can continue this action (like a mutex on that sequence, until answer is receive you want to hold in place). The current Qml async way to make this is more like signal/slot, but to write something that branch a lot based on the answer, make coverage hard to follow. On Wed, Apr 27, 2016 at 1:12 PM, Sina Dogru wrote: > Seems like it is undefined behaviour to have QFileDialog without a parent. > Sometimes it becomes "ApplicationModal" but sometimes "NonModal" (I > experienced it with a simple code on Linux.).. > > Also Shawn warned that would block QML thread. So to try what is the > behaviour of engine when the thread is block, I wrote a simple code where a > timer increment an int and a text showing that int in QML. And from that > QML called a C++ function which blocks it. But seems like engine keep > working while it suppose to block (tried on 5.6). > > Now I need to choose between "bouncing between QML and C++" or "breaking > in multiple functions". Thanks for helping and acquired a vision. > > Sina > > 2016-04-26 22:32 GMT+03:00 Jérôme Godbout : > >> We have QWidgets as base window (QMainWindow) that have the QQuickView >> into it. For the parent, we use the QMainWindow. Maybe this explain why it >> work well in our case. We have some tools that are still into QWidgets >> (TreeView mostly with dock window, the Qml TreeView, is somewhat... painful >> in the current state). >> >> In the case of a Qml ApplicationWindow, I don't known if this would work, >> it's a QObject and not a QWidgets, the QDialog call require a QWidgets >> pointer as first argument. hummm, I did not realized that until now. Good >> point Sina Dogru. >> >> Not sure what is the behavior if the first argument is null if only have >> a Qml ApplicationWindow. If this work let me know, I'm curious to see if >> this work or not. >> >> >> On Tue, Apr 26, 2016 at 3:17 PM, Sina Dogru wrote: >> >>> Yes I got your points. At least there is no any bouncing between QML and >>> C++. >>> >>> 2016-04-26 20:11 GMT+03:00 Jérôme Godbout : >>> >>>> We are mostly using QFileDialog and QMessageBox. Note the Qml type but >>>> the one from QtWidgets/QFileDialog >>>> >>>> *Q_INVOKABLE QString getSaveFileName(...); // .h* >>>> >>>> >>>> *QString MySingletonDialog::getSaveFileName(...) // .cpp* >>>> *{* >>>> * return QFileDialog::getSaveFileName(...);* >>>> *}* >>>> >>> >>> What is the parent argument for QFileDialog? I guess this is needed to >>> modal window work properly? >>> >>> The only way I see it is a follow (not tested just the way I see it into >>>> Qml Dialog): >>>> >>>> *Dialog* >>>> *{* >>>> * id: myDialog_* >>>> * contentItem: null* >>>> // Dummy content can be from anywhere or you could have a static >>>> object with options as property here >>>> * property Item myDialog1: Item { ... }* >>>> >>>> * property Item myDialog2: Item { ... }* >>>> // dynamic functor >>>> * property var acceptedCallback: null* >>>> * property var rejectedCallback: null* >>>> * onAccepted: { if(acceptedCallback) acceptedCallback(clickedButton); >>>> }* >>>> * onRejected: { if(rejectedCallback) rejectedCallback(clickedButton); >>>> }* >>>> // ... add other wanted handler for all the possible signal here >>>> *}* >>>> >>>> // inline callback (you can create function per sub function but that >>>> make the code look like a big goto mess). It's only 2 calls to interact >>>> with user and not branching does nothing else and it's already messy. >>>> >>>> *function myAction()* >>>> *{* >>>> * myDialog_.contentItem = myDialog_.myDialog1;* >>>> * myDialog_.rejectedCallback = function(button) * >>>> * {* >>>> * console.log('error');* >>>> * };* >>>> * myDialog_.acceptedCallback = * >>>> * function(button)* >>>> * {* >>>> // Do some stuff, need to ask something else >>>> * myDialog_.contentItem = myDialog_.myDialog2;* >>>> * myDialog_.rejectedCallback = function(button) * >>>> * {* >>>> * console.log('error 2');* >>>> * };* >>>> * myDialog_.acceptedCallback = function(button) * >>>> * {* >>>> // Do some stuff further >>>> // continue to dig a grave here by calling more dialog... >>>> * };* >>>> * myDialog_.open();* >>>> * };* >>>> * myDialog_.open();* >>>> *}* >>>> >>> >>> That is one of the other thing that I was trying to avoid while asking >>> the question actually. Then there should be too many function definitions >>> for different kind of scenarios :S. Seems like your first solution is the >>> best one we have. Thank you for helping. >>> >>> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From qt-maillist at hazardy.de Wed Apr 27 23:45:42 2016 From: qt-maillist at hazardy.de (=?UTF-8?Q?Bj=c3=b6rn_Sch=c3=a4pers?=) Date: Wed, 27 Apr 2016 23:45:42 +0200 Subject: [Interest] Example for: QTreeView + QAbstractItemModel + external data In-Reply-To: References: Message-ID: <57213306.9050506@hazardy.de> Am 26.04.2016 um 19:05 schrieb anton: > Hi, > > I have subclassed QAbstractItemModel, > and I want to load additionally data in the model > as soon as somebody clicks on the [+] > in the treeview to load the children of this > item form an external data ( web- app which gives me json data back). > > Now: > I reimplemented hasChildren() in the model > but i am not sure about the moment to load the data. > > I suppose that the rowCount() method of the model is called > when somebody expands an item in the view? > If not what is the moment when my model should ask for additional Data? > > Does there exist a small example which demonstrates how to > handle this in an optimal way. > Not sure about beginInsertRows() or layoutChanged() .. > I am experimenting but i get also some crashes so an > example project would be nice. > > Thanks > > Anton I think you are looking for QAbstractItemModel::canFetchMore() and fetchMore(). See also the last paragraph in http://doc.qt.io/qt-5/qabstractitemmodel.html To create models that populate incrementally, you can reimplement fetchMore() and canFetchMore(). If the reimplementation of fetchMore() adds rows to the model, beginInsertRows() and endInsertRows() must be called. From sinadooru at gmail.com Thu Apr 28 08:03:36 2016 From: sinadooru at gmail.com (Sina Dogru) Date: Thu, 28 Apr 2016 09:03:36 +0300 Subject: [Interest] [QtQuick] Interaction with user from C++ In-Reply-To: References: Message-ID: 2016-04-28 0:02 GMT+03:00 Jérôme Godbout : > > Take care, animation and rendering seem to be different thread. The Qml > main thread should block. Maybe I don't get it what you tried here. > > Just want to find out that what I am actually blocking by blocking the flow inside a function where it was called from QML. But it was a naive approach I guess. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jtykka at broadsoft.com Thu Apr 28 10:04:28 2016 From: jtykka at broadsoft.com (Jani Tykka) Date: Thu, 28 Apr 2016 11:04:28 +0300 Subject: [Interest] QML and Cocoa based text edit Message-ID: Hi, I'm investigating whether it'd be possible to enable native dictation on QML editors on OS X. I have found that to be able to enable dictation the editor control needs to be Cocoa based. All ideas are welcome on how to enable dictation on editor controls on QML. Thanks, Jani -- This email is intended solely for the person or entity to which it is addressed and may contain confidential and/or privileged information. If you are not the intended recipient and have received this email in error, please notify BroadSoft, Inc. immediately by replying to this message, and destroy all copies of this message, along with any attachment, prior to reading, distributing or copying it. -------------- next part -------------- An HTML attachment was scrubbed... URL: From gunnar at sletta.org Thu Apr 28 11:27:38 2016 From: gunnar at sletta.org (Gunnar Sletta) Date: Thu, 28 Apr 2016 11:27:38 +0200 Subject: [Interest] Few questions regarding Qt Quick Scene Graph In-Reply-To: References: <430092F3-667F-445C-8B0A-CF7836CE7E49@sletta.org> Message-ID: > On 27 Apr 2016, at 22:47, Artem Fedoskin wrote: > > 1. I have experimented a little with the Scene Graph and got following results: > • Rectangles with the same color were batched > • Differently colored rectangles weren't batched Yeah, this is explained by the fact that QSGSimpleRectNode is implemented using the QSGFlatColorMaterial which passes the color via a uniform and will as a result have unique state per object. Prefer to use a QSGGeometryNode + QSGVertexColorMaterial instead as that allows you to use the same material state across all instances. You can even use the same material and save a tiny bit of memory in the process if that fits with your design. > • Textures were batched if the QQuickWindow::TextureCanUseAtlas flag was set but only if QSG_ATLAS_WIDTH and QSG_ATLAS_HEIGHT were big enough. Sure, as is to be expected. > 2. I also found one of your E-mails here http://lists.qt-project.org/pipermail/interest/2014-January/010674.html where you suggested to use GL_MAX_TEXTURE_SIZE for setting atlas width and height, however, it didn't work when I set it as a value for environmental variable QSG_ATLAS_WIDTH and QSG_ATLAS_HEIGHT. Verify the atlas size using QSG_INFO=1 in the environment. Setting the environment variables does work, but we don't stuff textures into the atlas which will take up a huge percentage of it. > 3. If I'm going to create say 100 000 objects and change X and Y coordinates with setX() setY() funcitions and at the same time set some objects to invisible state with setVisible(), can signals emitted from calling this setters cause significant drop in performance if I'm not connecting any slots on my side? I would not use signals/slots for 100.000 lively changing objects. > 4. How setX() and setY() changes the position of the QQuickItem? I didn't noticed any calls to updatePaintNode() and is it better to set coordinates this way then directly changing coordinates of graphic nodes in updatePaintNode() and constantly call update()? > The geometry is changed, which triggers the transform node for that item to be changed. As the x/y does not change the contents, the paint node does not need to be updated and updatePaintNode() is not called. > Sorry for so much questions, but my project has to display and process a lot of items on the screen and it has to work good on mobile platforms. QML and SG apis are all well and nice, but did you consider doing parts of this visualization in raw OpenGL? Using for instance QQuickWindow::afterRendering() and doing a GL pass on top of the output frame allows you to batch and manage the GL resources explicitly. (Or beforeRendering and putting the UI on top as a HUD) The scene graph does a fairly good job at batching and will outperform trivial GL code in most cases, but for any given scenario, dedicated code will most likely outperform it. > > Thank you very much for all your advices and suggestions. > > Regards, > > Artem Fedoskin > > > 2016-04-26 9:19 GMT+02:00 Gunnar Sletta : > > > On 25 Apr 2016, at 19:46, Artem Fedoskin wrote: > > > > Thank you for your reply Gunnar, > > > > Can you please tell me - can I store a pointer to the object of external class (even not a QQuickItem derived one) in QSGNode derived class? Each object of the class Data is associated with corresponding Triangle in View. Whenever View is updated, it checks in loop Data objects on special condition and based on that sets the corresponding Triangle to visible or invisible state. If Triangle is visible, Triangle itself calls a bunch of functions from external classes and uses pointer on object Data to retrieve Data's info about coordinates then accesses function from another class to convert the received coordinates to x,y positions. > > > > I understand that it is not safe to access QSGNode not from updatePaintNode(), but is it actually safe to access other classes from QSGNode itself? How far can I go in QSGNode in accessing things in GUI thread? > > Normal threading considerations apply. You can reference anything to your liking from objects that live on the render thread, there is nothing special about it. We just strongly encourage to not cross reference between GUI and render threads because the two run independently and objects can come and go on both. > > > > > Could you please also tell me - what is the way to hide QSGNode explicitly like for example setting QQuickItem::visible property to false. I found your E-Mail here http://lists.qt-project.org/pipermail/interest/2015-February/015285.html but I'm afraid that deallocating and allocating QSGNode will take unnecessary overhead as the visibility of nodes in my app will be often turned off/on. Is it a good idea to use QSGNode::removeChildNode() for this? > > You would have to have an opacity node in there then and set its opacity to 0. That way, they would still be in the scene graph (and still potentiallly consume processing and resources). > > Alternatively you could experiment with explicitly managing the node. If you during updatePaintNode stored the QSGNode that is passed in and return 0, you will effectively have taken ownership over that subtree from the SG. You could at a later time pass that stored node back to the SG. If there are GL resources associated with it, you will need to clean those up according to the section aboue "Graphics Resource Handling" in http://doc.qt.io/qt-5/qquickitem.html#custom-scene-graph-items. > > > How do you think - maybe instead of allocating directly QSGNodes I should just subclass instance of Data from QQuickItem and set its visual parent to View? Is allocating 1000 QSGNodes in View significantly faster than creating 1000 QQuickItems with the same painting logic and then setting its visual parent to View? > > Constructing a QSGNode in C++ is orders of magnitude faster than constructing a QQuickItem object through QML. Compared to a QQuickItem constructed in C++, I would still expect it to be faster, but probably not by a large margin. > > > > > Thank you > > > > Regards, > > Artem > > > > 2016-04-25 9:06 GMT+02:00 Gunnar Sletta : > > > > > On 24 Apr 2016, at 16:49, Artem Fedoskin wrote: > > > > > > I'm sorry. My first E-Mail was sent accidentally. Here is the final version of my E-Mail. > > > Hello everybody. I have a project where a lot of objects are painted on the screen whenever the user interacts with the app (pan, zoom, move) I would be really grateful to you if you could answer a few questions regarding the internals of Qt Quick Scene Graph: > > > > > > • Imagine that I add 1000 nodes with the same color inside QQuickItem::updatePaintNode() function of some QQuickItem derived class. Will they be drawn in batch as described in http://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph-renderer.html#batching? > > > > Depends on the cirucmstances, but if they share clipping their QSGMaterial::compare() indicates they are all identical, they will be batched, yes. Verify with QSG_VISUALIZE=batches, as indicated by this same document. > > > > > • Can I call the function of some other class in QQuickItem::updatePaintNode()? I have some class named Data, class named View and a subclass of QSGGeometryNode Triangle. Imagine that after objects of these classes are created the Data asks View to create 10 Triangles. The View creates 10 Triangles during the updatePaintNode() call and passes to them pointers to the object of class Data, that required their instantiation. The Triangles refers to the Data and get some values from it and converts them to x,y coordinates. Is it something possible? > > > Do I violate the rule stated here http://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph.html#scene-graph-and-rendering "Warning: It is crucial that OpenGL operations and interaction with the scene graph happens exclusively on the render thread, primarily during the updatePaintNode() call. The rule of thumb is to only use classes with the "QSG" prefix inside the QQuickItem::updatePaintNode() function." ? > > > > The point here is really that on many systems, there will be two threads that are running. The GUI thread where your QQuickItems live and the render thread where your QSGXxx objects live. updatePaintNode() is called on the render thread while the GUI thread is blocked, so you are safe to read state out of the QQuickItem at that time and use that to create/update/modify/delete your QSGXxx objects accordingly. At any other time, the two worlds live separate lives and should have no connection. > > > > There are other places where interaction between the threads are also ok, as outlined in the QQuickItem docs, but by sticking to the rule outlined in the updatePaintNode() function, 99% of all usecases will be covered. > > > > For your usecase you are free to construct View, Data, x number of Triangles during updatePaintNode() and then store that under some subclass of a QSGNode. On the next call, you can update your structure if needed. Your QQuickItem does not store a pointer to this QSGNode, it only exists inside the scene graph and during the updatePaintNode() function. > > > > cheers, > > Gunnar > > > > > > > > At first I was thinking about deriving classes like Triangle from QQuickItem and then reparenting them to the View but the direct creation of QSGGeometryNodes seems to me to be less memory requiring approach. > > > > > > Regards, > > > Artem Fedoskin > > > > > > 2016-04-24 16:41 GMT+02:00 Artem Fedoskin : > > > Hello everybody. I have a project where a lot of objects are painted on the screen whenever the user interacts with the app (pan, zoom, move) I would be really grateful to you if you could answer a few questions regarding the internals of Qt Quick Scene Graph: > > > > > > • Imagine that I add 1000 nodes with the same color inside QQuickItem::updatePaintNode() function of some QQuickItem derived class. Will they be drawn in batch as described in http://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph-renderer.html#batching? > > > • Can I call the function of some other class in QQuickItem::updatePaintNode()? I have some class named Data, class named View and a subclass of QSGGeometryNode Triangle. Imagine that after objects of these classes are created the Data asks View to create 10 Triangles. The View creates 10 Triangles during the updatePaintNode() call and passes pointers to the object of class Data, that required their instantiation. The Triangles refers to the Data and get coordinates from it. Is it something possible. Do I violate the rule stated here "Warning: It is crucial that OpenGL operations and interaction with the scene graph happens exclusively on the render thread, primarily during the updatePaintNode() call. The rule of thumb is to only use classes with the "QSG" prefix inside the QQuickItem::updatePaintNode() function." > > > > > > > > > > > > • For example, I want to get new coordinates of the object and to do that I should refer to function of some other not QSGNode derived object and then use these coordinates for rendering one of the nodes. > > > > > > _______________________________________________ > > > Interest mailing list > > > Interest at qt-project.org > > > http://lists.qt-project.org/mailman/listinfo/interest > > > > > > From jerome.archlinux at gmail.com Thu Apr 28 12:39:28 2016 From: jerome.archlinux at gmail.com (=?UTF-8?Q?J=c3=a9r=c3=b4me_Lanteri?=) Date: Thu, 28 Apr 2016 17:39:28 +0700 Subject: [Interest] viewfinder failed on official QCamera example (C++ QWidget code) for archlinux OS Message-ID: <10dcb82a-d1c3-6106-f092-4bb04a775bbc@gmail.com> HI, and thank you very much to be interested to my problem, i really appreciate your help on this problem (5 month unresolved now). i stop my intel driver to use archlinux default one (works better), then i see on code that the problem seems to come from the viewfinder. Then i post you the part of code i comment for let the camera start... also, at 'camera-> start();" time, error point on failed argument is shown... but the recording works and show the camera fine. why and how to resolve that (or how to go haed for find more information for resolve this) ? https://gist.github.com/jerome-diver/566f52831f5a39fb092ec3857ee0034a thank you again for all your interventions for try to help me on that, i'm very happy. From jianliang79 at gmail.com Thu Apr 28 15:08:42 2016 From: jianliang79 at gmail.com (Liang Jian) Date: Thu, 28 Apr 2016 21:08:42 +0800 Subject: [Interest] [qt-android][qt-iOS] Is it possible to disable page scrolling when software keyboard is being shown? In-Reply-To: <313CD65E-E84F-4B6E-AA20-952B71E99F4E@kdab.com> References: <313CD65E-E84F-4B6E-AA20-952B71E99F4E@kdab.com> Message-ID: Thank you for the answer, I think this should work :-) On Wed, Apr 27, 2016 at 8:02 PM, Mike Krus wrote: > Hi > > the trick I used in the past is to: > - put a MouseArea as a child of the TextField to stop the focus becoming > active > - onClicked, move the TextField to some location, outside where the kb > will be > positioned, can use Qt.inputMethod.keyboardRectangle to figure out the > size of that > (not sure it’s always correct though) > - when your animation finishes, set the focus explicitly in the text > field, causing > the keyboard to appear > > If you decompose your animation in two, you can set the focus earlier, as > long > as your text field never ends up under the keyboard > > Then detect keyboard dismissal (Qt.inputMethod.visible) to move the text > field back into place. > > A lot of work… > > > Mike > > > > On 21 Apr 2016, at 09:30, Liang Jian wrote: > > > > Hello everyone, > > One of the page in our qml app have an input box(such as a TextEdit > element) > > at the bottom, when user press the input box the software keyboard will > show, > > and we want the background of the page keep still while the input box > scroll > > to the top of software keyboard. > > The current Qt implementation will always scroll the whole page > which make > > it impossible to implement this behaviour. We have to use native UI > element to > > implement this(in both android and iOS) which require too much code. > > Is it possible to disable page scrolling while showing software keyboard? > > If that is possible then we can implement this behaviour easily. > > _______________________________________________ > > Interest mailing list > > Interest at qt-project.org > > http://lists.qt-project.org/mailman/listinfo/interest > > -- > Mike Krus | mike.krus at kdab.com | Senior Software Engineer > KDAB (UK) Ltd., a KDAB Group company > Tel: UK +44-1625-809908 Mobile: +44 7833 491941 > KDAB - The Qt Experts > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bob119er at yahoo.com Thu Apr 28 17:07:06 2016 From: bob119er at yahoo.com (Nate Rogers) Date: Thu, 28 Apr 2016 15:07:06 +0000 (UTC) Subject: [Interest] QGuiApplication::focusObject not working in Qt 5.5.0 References: <554354223.4072008.1461856027024.JavaMail.yahoo.ref@mail.yahoo.com> Message-ID: <554354223.4072008.1461856027024.JavaMail.yahoo@mail.yahoo.com> I just upgraded to Qt 5.5.0 from Qt 5.3.2 and now my key presses are not working.  I am using QGuiApplication::focusObject to get the current object to send key press events to for a 5-way button I use on my embedded system to duplicate the arrow keys on a keyboard. Here is the code that sends the key press events // Yes, setup the key event information QKeyEvent *event1 = new QKeyEvent(QKeyEvent::KeyPress, key, Qt::NoModifier, "", false); QKeyEvent *event2 = new QKeyEvent(QKeyEvent::KeyRelease, key, Qt::NoModifier, "", false); // Get the gui item which currently has focus QQuickItem *receiver = qobject_cast(QGuiApplication::focusObject()); qDebug() << "receiver: " << receiver; // Is there an item in the gui that has focus? if (receiver && !m_TestController->isButtonTestActive()) { // Yes, send the key press and release events to it to simulate a key press receiver->window()->sendEvent(receiver, &event1); receiver->window()->sendEvent(receiver, &event2); } code  In Qt 5.3.2 my qDebug() print would read... receiver:  QQuickImage (this = 0x3bb448 , name= "" , parent = 0x3bad10 , geometry = QRectF(0,0 110x40) , z = 0 ) OR receiver: MenuList_QMLTYPE_30 (this = 0x6856e8 , name= "" , parent = 0xa80958 , geometry = QRectF(0,39 430x188) , z = 0 ) However on Qt 5.5.0 my qDebug print always reads... receiver: PageStack_QMLTYPE_13(0x459958, parent=0x398d68, geometry=0,0 480x272) It seems like to me QGuiApplication::focusObject is broken in Qt 5.5.0?  Or is there a new way to do this in Qt 5.5.0? Thanks! Nate -------------- next part -------------- An HTML attachment was scrubbed... URL: From nunosantos at imaginando.pt Thu Apr 28 19:02:46 2016 From: nunosantos at imaginando.pt (Nuno Santos) Date: Thu, 28 Apr 2016 18:02:46 +0100 Subject: [Interest] Changing Android project default compilation settings Message-ID: Hi, I need to change the default android build settings for a project. One thing that I have noted is that if I add things to .pro file, the changes doesn’t reflect in the source code building. I have tried to change directly on .mkspec file and it worked. Is there any other recommended way of doing it? I need to enable hardware floating point calculation by doing the following: APP_CFLAGS -mhard-float -D_NDK_MATH_NO_SOFTFP=1 APP_ABI := armeabi-v7a-hard Regards, Nuno From xbenlau at gmail.com Thu Apr 28 19:54:23 2016 From: xbenlau at gmail.com (Ben Lau) Date: Fri, 29 Apr 2016 01:54:23 +0800 Subject: [Interest] [QtQuick] Interaction with user from C++ In-Reply-To: References: Message-ID: On 28 April 2016 at 05:02, Jérôme Godbout wrote: > >>I wrote a simple code where a timer increment an int and a text showing > that int in QML. And from that QML called a C++ function which blocks it. > > Take care, animation and rendering seem to be different thread. The Qml > main thread should block. Maybe I don't get it what you tried here. > > >> How about using a promise object(Javascript concept)? > > It would surely help if you go with the functions inline. But those > message box are normally part of sequence or can even be deep into an > object function that know nothing about the caller or it's sequence status. > Maybe promise can help here but doesn't change the real problem which is > you need an answer before you can continue this action (like a mutex on > that sequence, until answer is receive you want to hold in place). > > The current Qml async way to make this is more like signal/slot, but to > write something that branch a lot based on the answer, make coverage hard > to follow. > > What if a promise object can be resolved by signal? promise.resolve(dialog.accepted); // Call the "then" callback once the signal is emitted promise.then(function() { // create new promise object for next async object. (save to disk?) }).then(function() { });; > > On Wed, Apr 27, 2016 at 1:12 PM, Sina Dogru wrote: > >> Seems like it is undefined behaviour to have QFileDialog without a >> parent. Sometimes it becomes "ApplicationModal" but sometimes "NonModal" (I >> experienced it with a simple code on Linux.).. >> >> Also Shawn warned that would block QML thread. So to try what is the >> behaviour of engine when the thread is block, I wrote a simple code where a >> timer increment an int and a text showing that int in QML. And from that >> QML called a C++ function which blocks it. But seems like engine keep >> working while it suppose to block (tried on 5.6). >> >> Now I need to choose between "bouncing between QML and C++" or "breaking >> in multiple functions". Thanks for helping and acquired a vision. >> >> Sina >> >> 2016-04-26 22:32 GMT+03:00 Jérôme Godbout : >> >>> We have QWidgets as base window (QMainWindow) that have the QQuickView >>> into it. For the parent, we use the QMainWindow. Maybe this explain why it >>> work well in our case. We have some tools that are still into QWidgets >>> (TreeView mostly with dock window, the Qml TreeView, is somewhat... painful >>> in the current state). >>> >>> In the case of a Qml ApplicationWindow, I don't known if this would >>> work, it's a QObject and not a QWidgets, the QDialog call require a >>> QWidgets pointer as first argument. hummm, I did not realized that until >>> now. Good point Sina Dogru. >>> >>> Not sure what is the behavior if the first argument is null if only have >>> a Qml ApplicationWindow. If this work let me know, I'm curious to see if >>> this work or not. >>> >>> >>> On Tue, Apr 26, 2016 at 3:17 PM, Sina Dogru wrote: >>> >>>> Yes I got your points. At least there is no any bouncing between QML >>>> and C++. >>>> >>>> 2016-04-26 20:11 GMT+03:00 Jérôme Godbout : >>>> >>>>> We are mostly using QFileDialog and QMessageBox. Note the Qml type but >>>>> the one from QtWidgets/QFileDialog >>>>> >>>>> *Q_INVOKABLE QString getSaveFileName(...); // .h* >>>>> >>>>> >>>>> *QString MySingletonDialog::getSaveFileName(...) // .cpp* >>>>> *{* >>>>> * return QFileDialog::getSaveFileName(...);* >>>>> *}* >>>>> >>>> >>>> What is the parent argument for QFileDialog? I guess this is needed to >>>> modal window work properly? >>>> >>>> The only way I see it is a follow (not tested just the way I see it >>>>> into Qml Dialog): >>>>> >>>>> *Dialog* >>>>> *{* >>>>> * id: myDialog_* >>>>> * contentItem: null* >>>>> // Dummy content can be from anywhere or you could have a static >>>>> object with options as property here >>>>> * property Item myDialog1: Item { ... }* >>>>> >>>>> * property Item myDialog2: Item { ... }* >>>>> // dynamic functor >>>>> * property var acceptedCallback: null* >>>>> * property var rejectedCallback: null* >>>>> * onAccepted: { if(acceptedCallback) acceptedCallback(clickedButton); >>>>> }* >>>>> * onRejected: { if(rejectedCallback) rejectedCallback(clickedButton); >>>>> }* >>>>> // ... add other wanted handler for all the possible signal here >>>>> *}* >>>>> >>>>> // inline callback (you can create function per sub function but that >>>>> make the code look like a big goto mess). It's only 2 calls to interact >>>>> with user and not branching does nothing else and it's already messy. >>>>> >>>>> *function myAction()* >>>>> *{* >>>>> * myDialog_.contentItem = myDialog_.myDialog1;* >>>>> * myDialog_.rejectedCallback = function(button) * >>>>> * {* >>>>> * console.log('error');* >>>>> * };* >>>>> * myDialog_.acceptedCallback = * >>>>> * function(button)* >>>>> * {* >>>>> // Do some stuff, need to ask something else >>>>> * myDialog_.contentItem = myDialog_.myDialog2;* >>>>> * myDialog_.rejectedCallback = function(button) * >>>>> * {* >>>>> * console.log('error 2');* >>>>> * };* >>>>> * myDialog_.acceptedCallback = function(button) * >>>>> * {* >>>>> // Do some stuff further >>>>> // continue to dig a grave here by calling more dialog... >>>>> * };* >>>>> * myDialog_.open();* >>>>> * };* >>>>> * myDialog_.open();* >>>>> *}* >>>>> >>>> >>>> That is one of the other thing that I was trying to avoid while asking >>>> the question actually. Then there should be too many function definitions >>>> for different kind of scenarios :S. Seems like your first solution is the >>>> best one we have. Thank you for helping. >>>> >>>> >>> >> > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From pierrechicoine606 at gmail.com Thu Apr 28 21:59:23 2016 From: pierrechicoine606 at gmail.com (Pierre Chicoine) Date: Thu, 28 Apr 2016 12:59:23 -0700 Subject: [Interest] [QT3D] :QEntity OR QNode Message-ID: Dear Sirs First: Thank you for Qt3d. The KDAB people are heroes in my book. I have two problems in C++ Qt3D. 1. I am having a difficult time figuring out how to render QEntities into separate QViewports. All my 3d objects draw to the first QViewport, the rest are black. I have read all your articles and comments everywhere on the Internet that I can find and I am basically confused. Is there a c++ example that would show multiple viewports with distinct separate QEntities? I can't seem to duplicate The QML example multiviewport in my code. What classes would get me there? 2. Also I'm also confused about QNodes and QEntitys and their relationships. Maybe it's the use of Qt3d version 1 that is messing me up . I use to have a scene node and all the entities would hang off of one scene node for each scene. But that doesn't seem to work in version 2. Or do I use the addComponent on a QFrameGraph instead of a node? Or do I hang Entities off of a viewport? Attached is a pic of my progress which draws all the objects into the same viewport. The window tiles 2 windows properly but I only draw to one viewport, the second or third stay black. The code here is what I repeat in each scene class. It's a bit of a mess thrown together to test Qt3D classes because I don't understand the relationships between all the Qt3D classes used to place objects in a viewport. Qt3DCore::QCamera *cameraEntity = new Qt3DCore::QCamera( pParentNode); cameraEntity->setObjectName(QStringLiteral("cameraEntity")); cameraEntity->setProjectionType(Qt3DCore::QCameraLens::PerspectiveProjection); cameraEntity->setAspectRatio(1024 / 768); cameraEntity->setUpVector(QVector3D(0.0f, 1.0f, 0.0f)); cameraEntity->setViewCenter(QVector3D(0.0f, 3.5f, 0.0f)); //cameraEntity->lens()->setPerspectiveProjection(60.0f, 16.0f/9.0f, 0.1f, 1000.0f); if(pScenesSet) // if it's a scene then we want to set it where they want it cameraEntity->setPosition(QVector3D(pScenesSet->CamXPos - 20, pScenesSet->CamYPos + 80, pScenesSet->CamZPos)); else // so it's a schematic cameraEntity->setPosition(QVector3D(-20, 65, 180)); theApp->input->setCamera(cameraEntity); // not sure about this relationship?? // FrameGraph pQFrameGraph = new Qt3DRender::QFrameGraph(); pQTechniqueFilter = new Qt3DRender::QTechniqueFilter(); pQViewport = new Qt3DRender::QViewport(pQTechniqueFilter); Qt3DRender::QClearBuffer *clearBuffer = new Qt3DRender::QClearBuffer(pQViewport); Qt3DRender::QCameraSelector *cameraSelector = new Qt3DRender::QCameraSelector(clearBuffer); Qt3DRender::QRenderPassFilter * pQRenderPassFilter = new Qt3DRender::QRenderPassFilter(cameraSelector); Qt3DRender::QRenderTargetSelector * m_gBufferTargetSelector = new Qt3DRender::QRenderTargetSelector(pQTechniqueFilter); // Qt3DRender::QLayerFilter * m_sceneFilter = new Qt3DRender::QLayerFilter(theApp->pCThreeDWindow); // TechiqueFilter and renderPassFilter are not implement yet pQViewport->setRect(QRectF(0, 0, 1, 1)); clearBuffer->setBuffers(Qt3DRender::QClearBuffer::ColorDepthBuffer); pQFrameGraph->setActiveFrameGraph(pQTechniqueFilter); // Setting the pQFrameGraph // I add a framegraph component to: class CThreeDWindow : public Qt3DCore::QEntity // public: // CThreeDWindow(Qt3DCore::QNode *parent = 0); theApp->pCThreeDWindow->addComponent(pQFrameGraph); if(pScenesSet) // if it's a scene then we want to set it where they want it pQViewport->setClearColor(QColor(pScenesSet->BackRed, pScenesSet->BackGreen, pScenesSet->BackBlue)); else pQViewport->setClearColor(QColor(0, 0, 0)); cameraSelector->setCamera(cameraEntity); //m_gBufferTargetSelector->setTarget(m_sceneFilter); Any help would be appreciated. Thank you Pierre Chicoine -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: HalWithSchematic5.png Type: image/png Size: 143888 bytes Desc: not available URL: From pierrechicoine606 at gmail.com Thu Apr 28 22:34:58 2016 From: pierrechicoine606 at gmail.com (Pierre Chicoine) Date: Thu, 28 Apr 2016 13:34:58 -0700 Subject: [Interest] [QT3D] How Do I render multiple QEntities in different QViewports in C++? Message-ID: Dear Sirs First: Thank you for Qt3d. The KDAB people are heroes in my book. I have two problems in C++ Qt3D. 1. I am having a difficult time figuring out how to render QEntities into separate QViewports. All my 3d objects draw to the first QViewport, the rest are black. I have read all your articles and comments everywhere on the Internet that I can find and I am basically confused. Is there a c++ example that would show multiple viewports with distinct separate QEntities? I can't seem to duplicate The QML example multiviewport in my code. What classes would get me there? 2. Also I'm also confused about QNodes and QEntitys and their relationships. Maybe it's the use of Qt3d version 1 that is messing me up . I use to have a scene node and all the entities would hang off of one scene node for each scene. But that doesn't seem to work in version 2. Or do I use the addComponent on a QFrameGraph instead of a node? Or do I hang Entities off of a viewport? Attached is a pic of my progress which draws all the objects into the same viewport. The window tiles 2 windows properly but I only draw to one viewport, the second or third stay black. The code here is what I repeat in each scene class. It's a bit of a mess thrown together to test Qt3D classes because I don't understand the relationships between all the Qt3D classes used to place objects in a viewport. Qt3DCore::QCamera *cameraEntity = new Qt3DCore::QCamera( pParentNode); cameraEntity->setObjectName(QStringLiteral("cameraEntity")); cameraEntity->setProjectionType(Qt3DCore::QCameraLens::PerspectiveProjection); cameraEntity->setAspectRatio(1024 / 768); cameraEntity->setUpVector(QVector3D(0.0f, 1.0f, 0.0f)); cameraEntity->setViewCenter(QVector3D(0.0f, 3.5f, 0.0f)); //cameraEntity->lens()->setPerspectiveProjection(60.0f, 16.0f/9.0f, 0.1f, 1000.0f); if(pScenesSet) // if it's a scene then we want to set it where they want it cameraEntity->setPosition(QVector3D(pScenesSet->CamXPos - 20, pScenesSet->CamYPos + 80, pScenesSet->CamZPos)); else // so it's a schematic cameraEntity->setPosition(QVector3D(-20, 65, 180)); theApp->input->setCamera(cameraEntity); // not sure about this relationship?? // FrameGraph pQFrameGraph = new Qt3DRender::QFrameGraph(); pQTechniqueFilter = new Qt3DRender::QTechniqueFilter(); pQViewport = new Qt3DRender::QViewport(pQTechniqueFilter); Qt3DRender::QClearBuffer *clearBuffer = new Qt3DRender::QClearBuffer(pQViewport); Qt3DRender::QCameraSelector *cameraSelector = new Qt3DRender::QCameraSelector(clearBuffer); Qt3DRender::QRenderPassFilter * pQRenderPassFilter = new Qt3DRender::QRenderPassFilter(cameraSelector); Qt3DRender::QRenderTargetSelector * m_gBufferTargetSelector = new Qt3DRender::QRenderTargetSelector(pQTechniqueFilter); // Qt3DRender::QLayerFilter * m_sceneFilter = new Qt3DRender::QLayerFilter(theApp->pCThreeDWindow); // TechiqueFilter and renderPassFilter are not implement yet pQViewport->setRect(QRectF(0, 0, 1, 1)); clearBuffer->setBuffers(Qt3DRender::QClearBuffer::ColorDepthBuffer); pQFrameGraph->setActiveFrameGraph(pQTechniqueFilter); // Setting the pQFrameGraph // I add a framegraph component to: class CThreeDWindow : public Qt3DCore::QEntity // public: // CThreeDWindow(Qt3DCore::QNode *parent = 0); theApp->pCThreeDWindow->addComponent(pQFrameGraph); if(pScenesSet) // if it's a scene then we want to set it where they want it pQViewport->setClearColor(QColor(pScenesSet->BackRed, pScenesSet->BackGreen, pScenesSet->BackBlue)); else pQViewport->setClearColor(QColor(0, 0, 0)); cameraSelector->setCamera(cameraEntity); //m_gBufferTargetSelector->setTarget(m_sceneFilter); Any help would be appreciated. Thank you -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: HalWithSchematic5.png Type: image/png Size: 143888 bytes Desc: not available URL: From charleyb123 at gmail.com Thu Apr 28 22:50:22 2016 From: charleyb123 at gmail.com (charleyb123 .) Date: Thu, 28 Apr 2016 14:50:22 -0600 Subject: [Interest] [QT3D] How Do I render multiple QEntities in different QViewports in C++? In-Reply-To: References: Message-ID: Pierre spaketh: > Dear Sirs > > First: Thank you for Qt3d. The KDAB people are heroes in my book. > > +1 A very big "Thank You!" to what KDAB does in Qt3D. They probably don't hear it often enough for all their work-and-contributions, but Qt3D is truly technology that pushes the entire industry. --charley -------------- next part -------------- An HTML attachment was scrubbed... URL: From jerome.archlinux at gmail.com Fri Apr 29 02:37:43 2016 From: jerome.archlinux at gmail.com (=?UTF-8?Q?J=c3=a9r=c3=b4me_Lanteri?=) Date: Fri, 29 Apr 2016 07:37:43 +0700 Subject: [Interest] i'm searching for help about viexfinder who not show camera images Message-ID: <1ac55f70-5b30-9e9a-e9da-20e4634feaac@gmail.com> HI, and thank you very much to be interested to my problem, i really appreciate your help on this problem (5 month unresolved now). i stop my intel driver to use archlinux default one (works better), then i see on code that the problem seems to come from the viewfinder. Then i post you the part of code i comment for let the camera start... also, at 'camera-> start();" time, error point on failed argument is shown... but the recording works and show the camera fine. why and how to resolve that (or how to go haed for find more information for resolve this) ? https://gist.github.com/jerome-diver/566f52831f5a39fb092ec3857ee0034a thank you again for all your interventions for try to help me on that, i'm very happy. From afedoskin3 at gmail.com Fri Apr 29 09:53:53 2016 From: afedoskin3 at gmail.com (Artem Fedoskin) Date: Fri, 29 Apr 2016 09:53:53 +0200 Subject: [Interest] Few questions regarding Qt Quick Scene Graph In-Reply-To: References: <430092F3-667F-445C-8B0A-CF7836CE7E49@sletta.org> Message-ID: After evaluating the amount of xChanged(), yChanged() and visibleChanged() signals I decided to stick with the approach where I create QQuickItems from C++ with overriden updatePaintNode() instead of direct instantiation of QSGNodes. Thank you for your help! It was tremendous useful and now I understand the internals of Scene Graph a little better. Regards, Artem 2016-04-28 11:27 GMT+02:00 Gunnar Sletta : > > > On 27 Apr 2016, at 22:47, Artem Fedoskin wrote: > > > > 1. I have experimented a little with the Scene Graph and got following > results: > > • Rectangles with the same color were batched > > • Differently colored rectangles weren't batched > > Yeah, this is explained by the fact that QSGSimpleRectNode is implemented > using the QSGFlatColorMaterial which passes the color via a uniform and > will as a result have unique state per object. Prefer to use a > QSGGeometryNode + QSGVertexColorMaterial instead as that allows you to use > the same material state across all instances. You can even use the same > material and save a tiny bit of memory in the process if that fits with > your design. > > > • Textures were batched if the QQuickWindow::TextureCanUseAtlas > flag was set but only if QSG_ATLAS_WIDTH and QSG_ATLAS_HEIGHT were big > enough. > > Sure, as is to be expected. > > > 2. I also found one of your E-mails here > http://lists.qt-project.org/pipermail/interest/2014-January/010674.html > where you suggested to use GL_MAX_TEXTURE_SIZE for setting atlas width and > height, however, it didn't work when I set it as a value for environmental > variable QSG_ATLAS_WIDTH and QSG_ATLAS_HEIGHT. > > Verify the atlas size using QSG_INFO=1 in the environment. Setting the > environment variables does work, but we don't stuff textures into the atlas > which will take up a huge percentage of it. > > > 3. If I'm going to create say 100 000 objects and change X and Y > coordinates with setX() setY() funcitions and at the same time set some > objects to invisible state with setVisible(), can signals emitted from > calling this setters cause significant drop in performance if I'm not > connecting any slots on my side? > > I would not use signals/slots for 100.000 lively changing objects. > > > 4. How setX() and setY() changes the position of the QQuickItem? I > didn't noticed any calls to updatePaintNode() and is it better to set > coordinates this way then directly changing coordinates of graphic nodes in > updatePaintNode() and constantly call update()? > > > > The geometry is changed, which triggers the transform node for that item > to be changed. As the x/y does not change the contents, the paint node does > not need to be updated and updatePaintNode() is not called. > > > Sorry for so much questions, but my project has to display and process a > lot of items on the screen and it has to work good on mobile platforms. > > QML and SG apis are all well and nice, but did you consider doing parts of > this visualization in raw OpenGL? Using for instance > QQuickWindow::afterRendering() and doing a GL pass on top of the output > frame allows you to batch and manage the GL resources explicitly. (Or > beforeRendering and putting the UI on top as a HUD) The scene graph does a > fairly good job at batching and will outperform trivial GL code in most > cases, but for any given scenario, dedicated code will most likely > outperform it. > > > > > Thank you very much for all your advices and suggestions. > > > > Regards, > > > > Artem Fedoskin > > > > > > 2016-04-26 9:19 GMT+02:00 Gunnar Sletta : > > > > > On 25 Apr 2016, at 19:46, Artem Fedoskin wrote: > > > > > > Thank you for your reply Gunnar, > > > > > > Can you please tell me - can I store a pointer to the object of > external class (even not a QQuickItem derived one) in QSGNode derived > class? Each object of the class Data is associated with corresponding > Triangle in View. Whenever View is updated, it checks in loop Data objects > on special condition and based on that sets the corresponding Triangle to > visible or invisible state. If Triangle is visible, Triangle itself calls a > bunch of functions from external classes and uses pointer on object Data to > retrieve Data's info about coordinates then accesses function from another > class to convert the received coordinates to x,y positions. > > > > > > I understand that it is not safe to access QSGNode not from > updatePaintNode(), but is it actually safe to access other classes from > QSGNode itself? How far can I go in QSGNode in accessing things in GUI > thread? > > > > Normal threading considerations apply. You can reference anything to > your liking from objects that live on the render thread, there is nothing > special about it. We just strongly encourage to not cross reference between > GUI and render threads because the two run independently and objects can > come and go on both. > > > > > > > > Could you please also tell me - what is the way to hide QSGNode > explicitly like for example setting QQuickItem::visible property to false. > I found your E-Mail here > http://lists.qt-project.org/pipermail/interest/2015-February/015285.html > but I'm afraid that deallocating and allocating QSGNode will take > unnecessary overhead as the visibility of nodes in my app will be often > turned off/on. Is it a good idea to use QSGNode::removeChildNode() for this? > > > > You would have to have an opacity node in there then and set its opacity > to 0. That way, they would still be in the scene graph (and still > potentiallly consume processing and resources). > > > > Alternatively you could experiment with explicitly managing the node. If > you during updatePaintNode stored the QSGNode that is passed in and return > 0, you will effectively have taken ownership over that subtree from the SG. > You could at a later time pass that stored node back to the SG. If there > are GL resources associated with it, you will need to clean those up > according to the section aboue "Graphics Resource Handling" in > http://doc.qt.io/qt-5/qquickitem.html#custom-scene-graph-items. > > > > > How do you think - maybe instead of allocating directly QSGNodes I > should just subclass instance of Data from QQuickItem and set its visual > parent to View? Is allocating 1000 QSGNodes in View significantly faster > than creating 1000 QQuickItems with the same painting logic and then > setting its visual parent to View? > > > > Constructing a QSGNode in C++ is orders of magnitude faster than > constructing a QQuickItem object through QML. Compared to a QQuickItem > constructed in C++, I would still expect it to be faster, but probably not > by a large margin. > > > > > > > > Thank you > > > > > > Regards, > > > Artem > > > > > > 2016-04-25 9:06 GMT+02:00 Gunnar Sletta : > > > > > > > On 24 Apr 2016, at 16:49, Artem Fedoskin > wrote: > > > > > > > > I'm sorry. My first E-Mail was sent accidentally. Here is the final > version of my E-Mail. > > > > Hello everybody. I have a project where a lot of objects are painted > on the screen whenever the user interacts with the app (pan, zoom, move) I > would be really grateful to you if you could answer a few questions > regarding the internals of Qt Quick Scene Graph: > > > > > > > > • Imagine that I add 1000 nodes with the same color inside > QQuickItem::updatePaintNode() function of some QQuickItem derived class. > Will they be drawn in batch as described in > http://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph-renderer.html#batching > ? > > > > > > Depends on the cirucmstances, but if they share clipping their > QSGMaterial::compare() indicates they are all identical, they will be > batched, yes. Verify with QSG_VISUALIZE=batches, as indicated by this same > document. > > > > > > > • Can I call the function of some other class in > QQuickItem::updatePaintNode()? I have some class named Data, class named > View and a subclass of QSGGeometryNode Triangle. Imagine that after objects > of these classes are created the Data asks View to create 10 Triangles. The > View creates 10 Triangles during the updatePaintNode() call and passes to > them pointers to the object of class Data, that required their > instantiation. The Triangles refers to the Data and get some values from it > and converts them to x,y coordinates. Is it something possible? > > > > Do I violate the rule stated here > http://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph.html#scene-graph-and-rendering > "Warning: It is crucial that OpenGL operations and interaction with the > scene graph happens exclusively on the render thread, primarily during the > updatePaintNode() call. The rule of thumb is to only use classes with the > "QSG" prefix inside the QQuickItem::updatePaintNode() function." ? > > > > > > The point here is really that on many systems, there will be two > threads that are running. The GUI thread where your QQuickItems live and > the render thread where your QSGXxx objects live. updatePaintNode() is > called on the render thread while the GUI thread is blocked, so you are > safe to read state out of the QQuickItem at that time and use that to > create/update/modify/delete your QSGXxx objects accordingly. At any other > time, the two worlds live separate lives and should have no connection. > > > > > > There are other places where interaction between the threads are also > ok, as outlined in the QQuickItem docs, but by sticking to the rule > outlined in the updatePaintNode() function, 99% of all usecases will be > covered. > > > > > > For your usecase you are free to construct View, Data, x number of > Triangles during updatePaintNode() and then store that under some subclass > of a QSGNode. On the next call, you can update your structure if needed. > Your QQuickItem does not store a pointer to this QSGNode, it only exists > inside the scene graph and during the updatePaintNode() function. > > > > > > cheers, > > > Gunnar > > > > > > > > > > > At first I was thinking about deriving classes like Triangle from > QQuickItem and then reparenting them to the View but the direct creation of > QSGGeometryNodes seems to me to be less memory requiring approach. > > > > > > > > Regards, > > > > Artem Fedoskin > > > > > > > > 2016-04-24 16:41 GMT+02:00 Artem Fedoskin : > > > > Hello everybody. I have a project where a lot of objects are painted > on the screen whenever the user interacts with the app (pan, zoom, move) I > would be really grateful to you if you could answer a few questions > regarding the internals of Qt Quick Scene Graph: > > > > > > > > • Imagine that I add 1000 nodes with the same color inside > QQuickItem::updatePaintNode() function of some QQuickItem derived class. > Will they be drawn in batch as described in > http://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph-renderer.html#batching > ? > > > > • Can I call the function of some other class in > QQuickItem::updatePaintNode()? I have some class named Data, class named > View and a subclass of QSGGeometryNode Triangle. Imagine that after objects > of these classes are created the Data asks View to create 10 Triangles. The > View creates 10 Triangles during the updatePaintNode() call and passes > pointers to the object of class Data, that required their instantiation. > The Triangles refers to the Data and get coordinates from it. Is it > something possible. Do I violate the rule stated here "Warning: It is > crucial that OpenGL operations and interaction with the scene graph happens > exclusively on the render thread, primarily during the updatePaintNode() > call. The rule of thumb is to only use classes with the "QSG" prefix inside > the QQuickItem::updatePaintNode() function." > > > > > > > > > > > > > > > > • For example, I want to get new coordinates of the object and > to do that I should refer to function of some other not QSGNode derived > object and then use these coordinates for rendering one of the nodes. > > > > > > > > _______________________________________________ > > > > Interest mailing list > > > > Interest at qt-project.org > > > > http://lists.qt-project.org/mailman/listinfo/interest > > > > > > > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From nunosantos at imaginando.pt Fri Apr 29 10:11:47 2016 From: nunosantos at imaginando.pt (Nuno Santos) Date: Fri, 29 Apr 2016 09:11:47 +0100 Subject: [Interest] armv7a-hard-float in Qt android apps Message-ID: <515E6601-8F10-4C53-9BD3-643B3968E571@imaginando.pt> Hi, I’m trying to enable hard float computation on arm. I think I have managed to enable it doing the following changes: 1) Set a new environment var ANDROID_ARCH_TARGET=armeabi-v7a-hard 2) Adding equals(ANDROID_TARGET_ARCH, armeabi-v7a-hard): \ QMAKE_CFLAGS = -Wno-psabi -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -mhard-float -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -DANDROID -D_NDK_MATH_NO_SOFTFP=1 -Wa,--noexecstack -fno-builtin-memmove 3) QMAKE_LFLAGS = --sysroot=$$ANDROID_PLATFORM_ROOT_PATH -Wl,--no-warn-mismatch -lm_hard 4) QMAKE_LIBS_PRIVATE = -lgnustl_shared -llog -lz -lm_hard -ldl -lc -lgcc Code compiled and ruined fine but couldn’t notice a faster performance (I have profiling timers in critical parts of the application). Has anyone done this before? Regards, Nuno -------------- next part -------------- An HTML attachment was scrubbed... URL: From nunosantos at imaginando.pt Fri Apr 29 10:11:47 2016 From: nunosantos at imaginando.pt (Nuno Santos) Date: Fri, 29 Apr 2016 09:11:47 +0100 Subject: [Interest] armv7a-hard-float in Qt android apps Message-ID: <515E6601-8F10-4C53-9BD3-643B3968E571@imaginando.pt> Hi, I’m trying to enable hard float computation on arm. I think I have managed to enable it doing the following changes: 1) Set a new environment var ANDROID_ARCH_TARGET=armeabi-v7a-hard 2) Adding equals(ANDROID_TARGET_ARCH, armeabi-v7a-hard): \ QMAKE_CFLAGS = -Wno-psabi -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -mhard-float -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -DANDROID -D_NDK_MATH_NO_SOFTFP=1 -Wa,--noexecstack -fno-builtin-memmove 3) QMAKE_LFLAGS = --sysroot=$$ANDROID_PLATFORM_ROOT_PATH -Wl,--no-warn-mismatch -lm_hard 4) QMAKE_LIBS_PRIVATE = -lgnustl_shared -llog -lz -lm_hard -ldl -lc -lgcc Code compiled and ruined fine but couldn’t notice a faster performance (I have profiling timers in critical parts of the application). Has anyone done this before? Regards, Nuno -------------- next part -------------- An HTML attachment was scrubbed... URL: From viktoria.nemkin at gmail.com Fri Apr 29 13:04:20 2016 From: viktoria.nemkin at gmail.com (=?UTF-8?Q?Vikt=C3=B3ria_Nemkin?=) Date: Fri, 29 Apr 2016 13:04:20 +0200 Subject: [Interest] Clean way to define and categorize constants in QML Message-ID: Hello! What is a clean way to define and categorize constants in QML? I have came up with this so far: I have a QML singleton element, named Theme. There I keep a few constant things, like different background and font colors. Theme.qml: pragma Singleton import QtQuick 2.0 QtObject { readonly property color backgroundRed: "#FF2510" readonly property color backgroundWhite: "#F0F0F0" readonly property color backgroundPurple: "#930083" readonly property color fontRed: "#FF1010" readonly property color fontWhite: "#F6F6F6" } When I want to use one of the colors I write: color: Theme.backgroundRed I don't like this approach. What I would like to be able to write is this: color: Theme.background.red I have tried adding nested QtObjects inside Theme but I could not get it working. QtObject { QtObject { id: background readonly property color red: "#FF2510" readonly property color white: "#F0F0F0" readonly property color purple: "#930083" } QtObject { id: font readonly property color red: "#FF1010" readonly property color white: "#F6F6F6" } } When I run it like this, I get an error: Theme.qml: Cannot assign to non-existent default property. Is there a way to accomplish this? Is there any clean way to define and categorize constants in QML? Thank you, Viki -------------- next part -------------- An HTML attachment was scrubbed... URL: From dmitry.volosnykh at gmail.com Fri Apr 29 13:10:54 2016 From: dmitry.volosnykh at gmail.com (Dmitry Volosnykh) Date: Fri, 29 Apr 2016 11:10:54 +0000 Subject: [Interest] Clean way to define and categorize constants in QML In-Reply-To: References: Message-ID: Using such approach you have to write something like readonly property QtObject backgroundColor: QtObject { ... On Fri, Apr 29, 2016 at 2:04 PM Viktória Nemkin wrote: > Hello! > > What is a clean way to define and categorize constants in QML? > > I have came up with this so far: > > I have a QML singleton element, named Theme. There I keep a few constant > things, like different background and font colors. > > Theme.qml: > > pragma Singleton > > import QtQuick 2.0 > > QtObject { > > readonly property color backgroundRed: "#FF2510" > > readonly property color backgroundWhite: "#F0F0F0" > > readonly property color backgroundPurple: "#930083" > > readonly property color fontRed: "#FF1010" > > readonly property color fontWhite: "#F6F6F6" > > } > > > When I want to use one of the colors I write: > > > color: Theme.backgroundRed > > > I don't like this approach. What I would like to be able to write is this: > > > color: Theme.background.red > > > I have tried adding nested QtObjects inside Theme but I could not get it > working. > > > QtObject { > > QtObject { > > id: background > > readonly property color red: "#FF2510" > > readonly property color white: "#F0F0F0" > > readonly property color purple: "#930083" > > } > > > QtObject { > > id: font > > readonly property color red: "#FF1010" > > readonly property color white: "#F6F6F6" > > } > > } > > > When I run it like this, I get an error: Theme.qml: Cannot assign to > non-existent default property. > > Is there a way to accomplish this? Is there any clean way to define and > categorize constants in QML? > > Thank you, > Viki > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > -------------- next part -------------- An HTML attachment was scrubbed... URL: From Even.Kristoffersen at Honeywell.com Fri Apr 29 13:12:52 2016 From: Even.Kristoffersen at Honeywell.com (Kristoffersen, Even (NO14)) Date: Fri, 29 Apr 2016 11:12:52 +0000 Subject: [Interest] Clean way to define and categorize constants in QML In-Reply-To: References: Message-ID: <92000C074E92194CB9110465E5C338BE4BF07264@DE08W1308.global.ds.honeywell.com> Those internal elements are not directly accessible. You can try exposing them with the use of alias in the root object. -Even From: Interest [mailto:interest-bounces+even.kristoffersen=honeywell.com at qt-project.org] On Behalf Of Viktória Nemkin Sent: 29. april 2016 13:04 To: interest at qt-project.org Subject: [Interest] Clean way to define and categorize constants in QML Hello! What is a clean way to define and categorize constants in QML? I have came up with this so far: I have a QML singleton element, named Theme. There I keep a few constant things, like different background and font colors. Theme.qml: pragma Singleton import QtQuick 2.0 QtObject { readonly property color backgroundRed: "#FF2510" readonly property color backgroundWhite: "#F0F0F0" readonly property color backgroundPurple: "#930083" readonly property color fontRed: "#FF1010" readonly property color fontWhite: "#F6F6F6" } When I want to use one of the colors I write: color: Theme.backgroundRed I don't like this approach. What I would like to be able to write is this: color: Theme.background.red I have tried adding nested QtObjects inside Theme but I could not get it working. QtObject { QtObject { id: background readonly property color red: "#FF2510" readonly property color white: "#F0F0F0" readonly property color purple: "#930083" } QtObject { id: font readonly property color red: "#FF1010" readonly property color white: "#F6F6F6" } } When I run it like this, I get an error: Theme.qml: Cannot assign to non-existent default property. Is there a way to accomplish this? Is there any clean way to define and categorize constants in QML? Thank you, Viki -------------- next part -------------- An HTML attachment was scrubbed... URL: From ola at silentwings.no Fri Apr 29 13:55:05 2016 From: ola at silentwings.no (=?UTF-8?Q?Ola_R=C3=B8er_Thorsen?=) Date: Fri, 29 Apr 2016 13:55:05 +0200 Subject: [Interest] armv7a-hard-float in Qt android apps In-Reply-To: <515E6601-8F10-4C53-9BD3-643B3968E571@imaginando.pt> References: <515E6601-8F10-4C53-9BD3-643B3968E571@imaginando.pt> Message-ID: 2016-04-29 10:11 GMT+02:00 Nuno Santos : > > Code compiled and ruined fine but couldn’t notice a faster performance (I > have profiling timers in critical parts of the application). > > Has anyone done this before? > > As far as I know Qt is built with qreal as double as a default setting. In case your cpu only does single precision floats in hardware: Maybe try to build Qt with qreal as single precision floats? I think the Qt configure option is "-qreal float", please check to be sure. Makes a notable difference on my ancient arm omap3 processor, at least. Also I'd recommend using the gcc warnings -Wdouble-promotion -Wfloat-conversion and make sure you are just using single precision floats as much as possible. Lots of performance is lost if you keep mixing single- and double precision. float a = 1.0f; float b = 2.0*a; // BAD! float b = 2.0f*a; // Good! Make sure you are using single-precision math functions (use std::sin, std::abs, not cmath sin, abs, etc). The warnings above will show you all these cases. Cheers, Ola -------------- next part -------------- An HTML attachment was scrubbed... URL: From realnc at gmail.com Fri Apr 29 14:22:28 2016 From: realnc at gmail.com (Nikos Chantziaras) Date: Fri, 29 Apr 2016 15:22:28 +0300 Subject: [Interest] Static Qt 5.6.0 on Linux cannot find any fonts Message-ID: A statically built Qt 5.6.0 results in this when trying to run any application built with it: QFontDatabase: Cannot find font directory /home/realnc/opt/qt-5.6/lib/fonts - is Qt installed correctly? The application is completely lacking any text. From what I was able to find, it seems I have to bundle fonts with the executable and set QT_QPA_FONTDIR to my bundled fonts directory? That just doesn't sound right. The end user should be able to use the system fonts. How do I make that happen? From realnc at gmail.com Fri Apr 29 14:42:35 2016 From: realnc at gmail.com (Nikos Chantziaras) Date: Fri, 29 Apr 2016 15:42:35 +0300 Subject: [Interest] Static Qt 5.6.0 on Linux cannot find any fonts In-Reply-To: References: Message-ID: On 29/04/16 15:22, Nikos Chantziaras wrote: > A statically built Qt 5.6.0 results in this when trying to run any > application built with it: > > QFontDatabase: Cannot find font directory > /home/realnc/opt/qt-5.6/lib/fonts - is Qt installed correctly? Please ignore. I'm an idiot. I forgot to pass "-fontconfig" to the configure script... From nunosantos at imaginando.pt Fri Apr 29 15:59:35 2016 From: nunosantos at imaginando.pt (Nuno Santos) Date: Fri, 29 Apr 2016 14:59:35 +0100 Subject: [Interest] armv7a-hard-float in Qt android apps In-Reply-To: References: <515E6601-8F10-4C53-9BD3-643B3968E571@imaginando.pt> Message-ID: <68F913D3-F43F-44F4-8E1A-2BA715AB8BC5@imaginando.pt> Ola, Thanks for your reply. While Qt code may be compiled with support for hard float, the qmake.specs file for android doesn’t show that and, in general, it seems that hard float support is disabled by default in android: QMAKE_CFLAGS = -Wno-psabi -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -DANDROID -Wa,--noexecstack -fno-builtin-memmove I have found some questions/answer around the internet suggesting the following: QMAKE_CFLAGS = -Wno-psabi -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -mhard-float -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -DANDROID -D_NDK_MATH_NO_SOFTFP=1 -Wa,--noexecstack -fno-builtin-memmove How can I have sure that it is in fact enabled? Regards, Nuno Santos Founder / CEO / CTO www.imaginando.pt +351 91 621 69 62 > On 29 Apr 2016, at 12:55, Ola Røer Thorsen wrote: > > 2016-04-29 10:11 GMT+02:00 Nuno Santos >: > > Code compiled and ruined fine but couldn’t notice a faster performance (I have profiling timers in critical parts of the application). > > Has anyone done this before? > > > As far as I know Qt is built with qreal as double as a default setting. > > In case your cpu only does single precision floats in hardware: > > Maybe try to build Qt with qreal as single precision floats? > I think the Qt configure option is "-qreal float", please check to be sure. > > Makes a notable difference on my ancient arm omap3 processor, at least. > > Also I'd recommend using the gcc warnings > -Wdouble-promotion > -Wfloat-conversion > and make sure you are just using single precision floats as much as possible. Lots of performance is lost if you keep mixing single- and double precision. > > float a = 1.0f; > float b = 2.0*a; // BAD! > float b = 2.0f*a; // Good! > > Make sure you are using single-precision math functions (use std::sin, std::abs, not cmath sin, abs, etc). The warnings above will show you all these cases. > > Cheers, > Ola > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -------------- next part -------------- An HTML attachment was scrubbed... URL: From jeanmichael.celerier at gmail.com Fri Apr 29 16:36:19 2016 From: jeanmichael.celerier at gmail.com (=?UTF-8?Q?Jean=2DMicha=C3=ABl_Celerier?=) Date: Fri, 29 Apr 2016 16:36:19 +0200 Subject: [Interest] armv7a-hard-float in Qt android apps In-Reply-To: References: <515E6601-8F10-4C53-9BD3-643B3968E571@imaginando.pt> Message-ID: On Fri, Apr 29, 2016 at 1:55 PM, Ola Røer Thorsen wrote: > > float a = 1.0f; > float b = 2.0*a; // BAD! > float b = 2.0f*a; // Good! > Pretty sure that this would be a non-problem starting at -O1 optimization level. -------------- next part -------------- An HTML attachment was scrubbed... URL: From ekke at ekkes-corner.org Fri Apr 29 17:28:34 2016 From: ekke at ekkes-corner.org (ekke) Date: Fri, 29 Apr 2016 17:28:34 +0200 Subject: [Interest] Add another translation? In-Reply-To: References: Message-ID: <0b243e55-ebcb-88dc-327b-7ef5b9b71e85@ekkes-corner.org> Am 26.04.16 um 22:24 schrieb Jason H: > How I currently support English and Spanish, how do I add another language in Qt Linguist? it seems that I need to re-run lupdate? I'd love to be able to to it all by GUI, since I already have working TS files. I should be able to use them as the template, change the language, then have it wipe the values and save. > > File -> New - > Language from this file... [Enter language code].. Done. > > vs > Drop to the command line, find the binary, invoke it with --help, review it, prepare the command line, hoping I remembered the switches I used originally, (like -tr-function-alias) inspect the output that it looks reasonable. And start working with that. > > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > Jason, I just published blog article about Qt 5.7 translations for Android / iOS apps where all can be done without the need of command line: https://appbus.wordpress.com/2016/04/28/howto-translations-i18n/ hope it helps ekke From thiago.macieira at intel.com Fri Apr 29 18:10:19 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Fri, 29 Apr 2016 09:10:19 -0700 Subject: [Interest] armv7a-hard-float in Qt android apps In-Reply-To: References: <515E6601-8F10-4C53-9BD3-643B3968E571@imaginando.pt> Message-ID: <2187664.RMIlppDXoJ@tjmaciei-mobl4> On sexta-feira, 29 de abril de 2016 13:55:05 PDT Ola Røer Thorsen wrote: > As far as I know Qt is built with qreal as double as a default setting. qreal is double. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From thiago.macieira at intel.com Fri Apr 29 18:12:45 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Fri, 29 Apr 2016 09:12:45 -0700 Subject: [Interest] armv7a-hard-float in Qt android apps In-Reply-To: <68F913D3-F43F-44F4-8E1A-2BA715AB8BC5@imaginando.pt> References: <515E6601-8F10-4C53-9BD3-643B3968E571@imaginando.pt> <68F913D3-F43F-44F4-8E1A-2BA715AB8BC5@imaginando.pt> Message-ID: <2514520.r8rZWh9GX0@tjmaciei-mobl4> On sexta-feira, 29 de abril de 2016 14:59:35 PDT Nuno Santos wrote: > While Qt code may be compiled with support for hard float, the qmake.specs > file for android doesn’t show that and, in general, it seems that hard > float support is disabled by default in android: Unless you're recompiling ALL of Android, you can't change the option. If you turn on hard float on a system that uses soft float parameter passing, all function calls that take or return floating point will fail in unpredictable ways. So I have to ask: a) are you sure your system wasn't already hard-float? b) if it wasn't, are the hard-float libs for EVERYTHING available on the system? And does the lib loader know how to find them? -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From nunosantos at imaginando.pt Fri Apr 29 18:19:03 2016 From: nunosantos at imaginando.pt (Nuno Santos) Date: Fri, 29 Apr 2016 17:19:03 +0100 Subject: [Interest] armv7a-hard-float in Qt android apps In-Reply-To: <2514520.r8rZWh9GX0@tjmaciei-mobl4> References: <515E6601-8F10-4C53-9BD3-643B3968E571@imaginando.pt> <68F913D3-F43F-44F4-8E1A-2BA715AB8BC5@imaginando.pt> <2514520.r8rZWh9GX0@tjmaciei-mobl4> Message-ID: Thiago, > On 29 Apr 2016, at 17:12, Thiago Macieira wrote: > > So I have to ask: > a) are you sure your system wasn't already hard-float? I don’t have a clue > b) if it wasn't, are the hard-float libs for EVERYTHING available on the > system? And does the lib loader know how to find them? I don’t have a clue I was able to compile my code with the hard-float settings but it doesn’t seem to speed up. For the contrary. I think it is slowing down. This is unknown territory for me and I don’t know what I am doing. Nuno -------------- next part -------------- An HTML attachment was scrubbed... URL: From ola at silentwings.no Fri Apr 29 18:30:27 2016 From: ola at silentwings.no (=?UTF-8?Q?Ola_R=C3=B8er_Thorsen?=) Date: Fri, 29 Apr 2016 18:30:27 +0200 Subject: [Interest] armv7a-hard-float in Qt android apps In-Reply-To: References: <515E6601-8F10-4C53-9BD3-643B3968E571@imaginando.pt> Message-ID: 2016-04-29 16:36 GMT+02:00 Jean-Michaël Celerier < jeanmichael.celerier at gmail.com>: > > On Fri, Apr 29, 2016 at 1:55 PM, Ola Røer Thorsen > wrote: > >> >> float a = 1.0f; >> float b = 2.0*a; // BAD! >> float b = 2.0f*a; // Good! >> > > Pretty sure that this would be a non-problem starting at -O1 optimization > level. > Well you're wrong. If you multiply with a double precision constant value (2.0), the multiplication is done in double precision and the result is then converted to single precision, regardless of the optimize level. This makes a big difference on hardware that only support single-precision in hardware (I know this from experience, not assumptions). -------------- next part -------------- An HTML attachment was scrubbed... URL: From thiago.macieira at intel.com Fri Apr 29 18:35:14 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Fri, 29 Apr 2016 09:35:14 -0700 Subject: [Interest] armv7a-hard-float in Qt android apps In-Reply-To: References: <515E6601-8F10-4C53-9BD3-643B3968E571@imaginando.pt> <2514520.r8rZWh9GX0@tjmaciei-mobl4> Message-ID: <6170854.kI7Nu1IZgu@tjmaciei-mobl4> On sexta-feira, 29 de abril de 2016 17:19:03 PDT Nuno Santos wrote: > > So I have to ask: > > a) are you sure your system wasn't already hard-float? > > I don’t have a clue > > > b) if it wasn't, are the hard-float libs for EVERYTHING available on the > > > > system? And does the lib loader know how to find them? > > I don’t have a clue Then I recommend not pursuing this line of development until you find out more. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From nunosantos at imaginando.pt Fri Apr 29 20:05:56 2016 From: nunosantos at imaginando.pt (Nuno Santos) Date: Fri, 29 Apr 2016 19:05:56 +0100 Subject: [Interest] armv7a-hard-float in Qt android apps In-Reply-To: <6170854.kI7Nu1IZgu@tjmaciei-mobl4> References: <515E6601-8F10-4C53-9BD3-643B3968E571@imaginando.pt> <2514520.r8rZWh9GX0@tjmaciei-mobl4> <6170854.kI7Nu1IZgu@tjmaciei-mobl4> Message-ID: <9DC1CE60-5203-4BA1-879E-D1E22F0E79C9@imaginando.pt> Ok Thiago, many thanks! > On 29 Apr 2016, at 17:35, Thiago Macieira wrote: > > On sexta-feira, 29 de abril de 2016 17:19:03 PDT Nuno Santos wrote: >>> So I have to ask: >>> a) are you sure your system wasn't already hard-float? >> >> I don’t have a clue >> >>> b) if it wasn't, are the hard-float libs for EVERYTHING available on the >>> >>> system? And does the lib loader know how to find them? >> >> I don’t have a clue > > Then I recommend not pursuing this line of development until you find out more. > > -- > Thiago Macieira - thiago.macieira (AT) intel.com > Software Architect - Intel Open Source Technology Center > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest From viktoria.nemkin at gmail.com Fri Apr 29 20:12:14 2016 From: viktoria.nemkin at gmail.com (=?UTF-8?Q?Vikt=C3=B3ria_Nemkin?=) Date: Fri, 29 Apr 2016 20:12:14 +0200 Subject: [Interest] Clean way to define and categorize constants in QML In-Reply-To: <92000C074E92194CB9110465E5C338BE4BF07264@DE08W1308.global.ds.honeywell.com> References: <92000C074E92194CB9110465E5C338BE4BF07264@DE08W1308.global.ds.honeywell.com> Message-ID: Thank you for your help. The syntax for creating a named object property is what I needed. Regards, Viki On 29 April 2016 at 13:12, Kristoffersen, Even (NO14) < Even.Kristoffersen at honeywell.com> wrote: > Those internal elements are not directly accessible. > > You can try exposing them with the use of *alias* in the root object. > > > > > > -Even > > > > *From:* Interest [mailto:interest-bounces+even.kristoffersen= > honeywell.com at qt-project.org] *On Behalf Of *Viktória Nemkin > *Sent:* 29. april 2016 13:04 > *To:* interest at qt-project.org > *Subject:* [Interest] Clean way to define and categorize constants in QML > > > > Hello! > > > > What is a clean way to define and categorize constants in QML? > > > > I have came up with this so far: > > > > I have a QML singleton element, named Theme. There I keep a few constant > things, like different background and font colors. > > > > Theme.qml: > > pragma Singleton > > import QtQuick 2.0 > > QtObject { > > readonly property color backgroundRed: "#FF2510" > > readonly property color backgroundWhite: "#F0F0F0" > > readonly property color backgroundPurple: "#930083" > > readonly property color fontRed: "#FF1010" > > readonly property color fontWhite: "#F6F6F6" > > } > > > > When I want to use one of the colors I write: > > > > color: Theme.backgroundRed > > > > I don't like this approach. What I would like to be able to write is this: > > > > color: Theme.background.red > > > > I have tried adding nested QtObjects inside Theme but I could not get it > working. > > > > QtObject { > > QtObject { > > id: *background* > > readonly property color red: "#FF2510" > > readonly property color white: "#F0F0F0" > > readonly property color purple: "#930083" > > } > > > > QtObject { > > id: *font* > > readonly property color red: "#FF1010" > > readonly property color white: "#F6F6F6" > > } > > } > > > > When I run it like this, I get an error: Theme.qml: Cannot assign to > non-existent default property. > > Is there a way to accomplish this? Is there any clean way to define and > categorize constants in QML? > > Thank you, > Viki > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jerome at bodycad.com Fri Apr 29 20:34:49 2016 From: jerome at bodycad.com (=?UTF-8?B?SsOpcsO0bWUgR29kYm91dA==?=) Date: Fri, 29 Apr 2016 14:34:49 -0400 Subject: [Interest] Clean way to define and categorize constants in QML In-Reply-To: References: <92000C074E92194CB9110465E5C338BE4BF07264@DE08W1308.global.ds.honeywell.com> Message-ID: 1. You can do an Item as root object to put children. Annoying because it get a lot of unused properties. 2. Or you can do your own QtObjectWithChildren from C++, which is just a QObject with children default property list of QObject*. (We did this and call them QmlObject) 3. Or use a javascript map, annoying to emit changed() when modifying a single value inside the map. ex 2 implemented: QmlObject { readonly property alias myCategory: myCategory_ QmlObject { id: myCategory_ readonly property color red: "#FF00000" } } On Fri, Apr 29, 2016 at 2:12 PM, Viktória Nemkin wrote: > Thank you for your help. The syntax for creating a named object property > is what I needed. > > Regards, > Viki > > On 29 April 2016 at 13:12, Kristoffersen, Even (NO14) < > Even.Kristoffersen at honeywell.com> wrote: > >> Those internal elements are not directly accessible. >> >> You can try exposing them with the use of *alias* in the root object. >> >> >> >> >> >> -Even >> >> >> >> *From:* Interest [mailto:interest-bounces+even.kristoffersen= >> honeywell.com at qt-project.org] *On Behalf Of *Viktória Nemkin >> *Sent:* 29. april 2016 13:04 >> *To:* interest at qt-project.org >> *Subject:* [Interest] Clean way to define and categorize constants in QML >> >> >> >> Hello! >> >> >> >> What is a clean way to define and categorize constants in QML? >> >> >> >> I have came up with this so far: >> >> >> >> I have a QML singleton element, named Theme. There I keep a few constant >> things, like different background and font colors. >> >> >> >> Theme.qml: >> >> pragma Singleton >> >> import QtQuick 2.0 >> >> QtObject { >> >> readonly property color backgroundRed: "#FF2510" >> >> readonly property color backgroundWhite: "#F0F0F0" >> >> readonly property color backgroundPurple: "#930083" >> >> readonly property color fontRed: "#FF1010" >> >> readonly property color fontWhite: "#F6F6F6" >> >> } >> >> >> >> When I want to use one of the colors I write: >> >> >> >> color: Theme.backgroundRed >> >> >> >> I don't like this approach. What I would like to be able to write is this: >> >> >> >> color: Theme.background.red >> >> >> >> I have tried adding nested QtObjects inside Theme but I could not get it >> working. >> >> >> >> QtObject { >> >> QtObject { >> >> id: *background* >> >> readonly property color red: "#FF2510" >> >> readonly property color white: "#F0F0F0" >> >> readonly property color purple: "#930083" >> >> } >> >> >> >> QtObject { >> >> id: *font* >> >> readonly property color red: "#FF1010" >> >> readonly property color white: "#F6F6F6" >> >> } >> >> } >> >> >> >> When I run it like this, I get an error: Theme.qml: Cannot assign to >> non-existent default property. >> >> Is there a way to accomplish this? Is there any clean way to define and >> categorize constants in QML? >> >> Thank you, >> Viki >> > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jerome at bodycad.com Fri Apr 29 20:36:42 2016 From: jerome at bodycad.com (=?UTF-8?B?SsOpcsO0bWUgR29kYm91dA==?=) Date: Fri, 29 Apr 2016 14:36:42 -0400 Subject: [Interest] Clean way to define and categorize constants in QML In-Reply-To: References: <92000C074E92194CB9110465E5C338BE4BF07264@DE08W1308.global.ds.honeywell.com> Message-ID: Note, you can also have to add the QObject* parent on the QmlObject. On Fri, Apr 29, 2016 at 2:34 PM, Jérôme Godbout wrote: > > 1. You can do an Item as root object to put children. Annoying because > it get a lot of unused properties. > 2. Or you can do your own QtObjectWithChildren from C++, which is just > a QObject with children default property list of QObject*. (We did this and > call them QmlObject) > 3. Or use a javascript map, annoying to emit changed() when modifying > a single value inside the map. > > ex 2 implemented: > QmlObject > { > readonly property alias myCategory: myCategory_ > > QmlObject > { > id: myCategory_ > readonly property color red: "#FF00000" > } > } > > On Fri, Apr 29, 2016 at 2:12 PM, Viktória Nemkin < > viktoria.nemkin at gmail.com> wrote: > >> Thank you for your help. The syntax for creating a named object property >> is what I needed. >> >> Regards, >> Viki >> >> On 29 April 2016 at 13:12, Kristoffersen, Even (NO14) < >> Even.Kristoffersen at honeywell.com> wrote: >> >>> Those internal elements are not directly accessible. >>> >>> You can try exposing them with the use of *alias* in the root object. >>> >>> >>> >>> >>> >>> -Even >>> >>> >>> >>> *From:* Interest [mailto:interest-bounces+even.kristoffersen= >>> honeywell.com at qt-project.org] *On Behalf Of *Viktória Nemkin >>> *Sent:* 29. april 2016 13:04 >>> *To:* interest at qt-project.org >>> *Subject:* [Interest] Clean way to define and categorize constants in >>> QML >>> >>> >>> >>> Hello! >>> >>> >>> >>> What is a clean way to define and categorize constants in QML? >>> >>> >>> >>> I have came up with this so far: >>> >>> >>> >>> I have a QML singleton element, named Theme. There I keep a few constant >>> things, like different background and font colors. >>> >>> >>> >>> Theme.qml: >>> >>> pragma Singleton >>> >>> import QtQuick 2.0 >>> >>> QtObject { >>> >>> readonly property color backgroundRed: "#FF2510" >>> >>> readonly property color backgroundWhite: "#F0F0F0" >>> >>> readonly property color backgroundPurple: "#930083" >>> >>> readonly property color fontRed: "#FF1010" >>> >>> readonly property color fontWhite: "#F6F6F6" >>> >>> } >>> >>> >>> >>> When I want to use one of the colors I write: >>> >>> >>> >>> color: Theme.backgroundRed >>> >>> >>> >>> I don't like this approach. What I would like to be able to write is >>> this: >>> >>> >>> >>> color: Theme.background.red >>> >>> >>> >>> I have tried adding nested QtObjects inside Theme but I could not get it >>> working. >>> >>> >>> >>> QtObject { >>> >>> QtObject { >>> >>> id: *background* >>> >>> readonly property color red: "#FF2510" >>> >>> readonly property color white: "#F0F0F0" >>> >>> readonly property color purple: "#930083" >>> >>> } >>> >>> >>> >>> QtObject { >>> >>> id: *font* >>> >>> readonly property color red: "#FF1010" >>> >>> readonly property color white: "#F6F6F6" >>> >>> } >>> >>> } >>> >>> >>> >>> When I run it like this, I get an error: Theme.qml: Cannot assign to >>> non-existent default property. >>> >>> Is there a way to accomplish this? Is there any clean way to define and >>> categorize constants in QML? >>> >>> Thank you, >>> Viki >>> >> >> >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jerome.archlinux at gmail.com Sat Apr 30 09:12:14 2016 From: jerome.archlinux at gmail.com (=?UTF-8?Q?J=c3=a9r=c3=b4me_Lanteri?=) Date: Sat, 30 Apr 2016 14:12:14 +0700 Subject: [Interest] QT5 viewfinder failed to show camera view. Message-ID: <53e7e964-2360-1f51-2f5c-38bcfb8c6048@gmail.com> HI, and thank you very much to be interested to my problem, i really appreciate your help on this problem (5 month unresolved now). Qt camera example (from official QT examples, the one with QWidget/C++ code) failed on my archlinux comuters (laptop and PC): i stop my intel driver to use archlinux default one (works better), then i see on code that the problem seems to come from the viewfinder. Then i post you the part of code i comment for let the camera start... also, at 'camera-> start();" time, error point on failed argument is shown... but the recording works and show the camera fine. why and how to resolve that (or how to go haed for find more information for resolve this) ? code errors: https://gist.github.com/jerome-diver/566f52831f5a39fb092ec3857ee0034a thank you again for all your interventions for try to help me on that, i'm very happy. From jerome.linuxpub at 9online.fr Sat Apr 30 09:20:17 2016 From: jerome.linuxpub at 9online.fr (Jerome) Date: Sat, 30 Apr 2016 14:20:17 +0700 Subject: [Interest] viewfinder failed to show camera images Message-ID: HI, and thank you very much to be interested to my problem, i really appreciate your help on this problem (5 month unresolved now). Try to send from other adress but seems to failed to acces qt-intrest mailing list from other... >From Qt example project "camera" (the project with QWidget/C++ code), on my laptop and on my PC, from archlinux distribution, camera images was never been shown on the viewfinder (QML camera code example works... i don't know why this difference). i suspected intel driver and i stop my intel driver to use archlinux default one (works better for other jobs), then i see on code that the problem seems to come from the viewfinder (look at the gist github copy/paste link please). Then i post you the part of code i comment for let the camera start... also, at 'camera-> start();" time, error point on failed argument is shown... but the recording works and show the camera fine. why and how to resolve that (or how to go haed for find more information for resolve this) ? Looks like a QT5 bug... not sure. If someone is interested to look at this please (i posted allready on it, no one answered). https://gist.github.com/jerome-diver/566f52831f5a39fb092ec3857ee0034a thank you again for all your interventions for try to help me on that, i'm very happy. Jerome From antonxx at gmx.de Sat Apr 30 10:08:28 2016 From: antonxx at gmx.de (anton) Date: Sat, 30 Apr 2016 10:08:28 +0200 Subject: [Interest] Example for: QTreeView + QAbstractItemModel + external data References: <57213306.9050506@hazardy.de> Message-ID: Thanks Björn, I'll try it (actually i did the job in the rowCount() function..) I would have preferred that the documentation be clear about this, I mean with a detailed example :-) Thanks Anton Björn Schäpers wrote: > Am 26.04.2016 um 19:05 schrieb anton: >> Hi, >> >> I have subclassed QAbstractItemModel, >> and I want to load additionally data in the model >> as soon as somebody clicks on the [+] >> in the treeview to load the children of this >> item form an external data ( web- app which gives me json data back). >> >> Now: >> I reimplemented hasChildren() in the model >> but i am not sure about the moment to load the data. >> >> I suppose that the rowCount() method of the model is called >> when somebody expands an item in the view? >> If not what is the moment when my model should ask for additional Data? >> >> Does there exist a small example which demonstrates how to >> handle this in an optimal way. >> Not sure about beginInsertRows() or layoutChanged() .. >> I am experimenting but i get also some crashes so an >> example project would be nice. >> >> Thanks >> >> Anton > I think you are looking for QAbstractItemModel::canFetchMore() and > fetchMore(). See also the last paragraph in > http://doc.qt.io/qt-5/qabstractitemmodel.html > > To create models that populate incrementally, you can reimplement > fetchMore() and canFetchMore(). If the reimplementation of fetchMore() > adds rows to the model, beginInsertRows() and endInsertRows() must be > called. From jeanmichael.celerier at gmail.com Sat Apr 30 10:46:21 2016 From: jeanmichael.celerier at gmail.com (=?UTF-8?Q?Jean=2DMicha=C3=ABl_Celerier?=) Date: Sat, 30 Apr 2016 10:46:21 +0200 Subject: [Interest] armv7a-hard-float in Qt android apps In-Reply-To: References: <515E6601-8F10-4C53-9BD3-643B3968E571@imaginando.pt> Message-ID: https://godbolt.org/g/DqBlFG With gcc -O1 float f(float x) { return 2. * x; } becomes f(float): addss %xmm0, %xmm0 ret and float g (float x) { return 2.f * x; } becomes g(float): addss %xmm0, %xmm0 ret On Fri, Apr 29, 2016 at 6:30 PM, Ola Røer Thorsen wrote: > > > 2016-04-29 16:36 GMT+02:00 Jean-Michaël Celerier < > jeanmichael.celerier at gmail.com>: > >> >> On Fri, Apr 29, 2016 at 1:55 PM, Ola Røer Thorsen >> wrote: >> >>> >>> float a = 1.0f; >>> float b = 2.0*a; // BAD! >>> float b = 2.0f*a; // Good! >>> >> >> Pretty sure that this would be a non-problem starting at -O1 optimization >> level. >> > > Well you're wrong. If you multiply with a double precision constant value > (2.0), the multiplication is done in double precision and the result is > then converted to single precision, regardless of the optimize level. This > makes a big difference on hardware that only support single-precision in > hardware (I know this from experience, not assumptions). > > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ola at silentwings.no Sat Apr 30 11:51:06 2016 From: ola at silentwings.no (=?UTF-8?Q?Ola_R=C3=B8er_Thorsen?=) Date: Sat, 30 Apr 2016 11:51:06 +0200 Subject: [Interest] armv7a-hard-float in Qt android apps In-Reply-To: References: <515E6601-8F10-4C53-9BD3-643B3968E571@imaginando.pt> Message-ID: 2016-04-30 10:46 GMT+02:00 Jean-Michaël Celerier < jeanmichael.celerier at gmail.com>: > https://godbolt.org/g/DqBlFG > > With gcc -O1 > > float f(float x) > { > return 2. * x; > } > > becomes > > f(float): > addss %xmm0, %xmm0 > ret > > > and > > float g (float x) > { > return 2.f * x; > } > > becomes > > g(float): > addss %xmm0, %xmm0 > ret > > This is on x86. I was talking about ARM with single-precision FPUs and the general advice not to use double precision constants if possible there. This is what GCC itself says in the documentation for -Wdouble-promotion: -Wdouble-promotion (C, C++, Objective-C and Objective-C++ only)Give a warning when a value of type float is implicitly promoted to double. CPUs with a 32-bit “single-precision” floating-point unit implement float in hardware, but emulate double in software. On such a machine, doing computations using double values is much more expensive because of the overhead required for software emulation. It is easy to accidentally do computations with double because floating-point literals are implicitly of type double. For example, in: float area(float radius) { return 3.14159 * radius * radius; } the compiler performs the entire computation with double because the floating-point literal is a double. -------------- next part -------------- An HTML attachment was scrubbed... URL: From adriyetichaves at gmail.com Sat Apr 30 12:08:54 2016 From: adriyetichaves at gmail.com (=?UTF-8?Q?Adri=C3=A1n_Chaves_Fern=C3=A1ndez?=) Date: Sat, 30 Apr 2016 12:08:54 +0200 Subject: [Interest] [Qt 3D] What is AspectCreateFunction? (or how to expose a custom aspect to QML) Message-ID: The Qt input system does not work for me. The Qt key event system, with its special handling of modifier keys, is designed for (desktop) applications, not for games. For example, as far as I can see, there is no reliable way for me to use modifier keys, such as Shift or Ctrl, as regular keys. So I plan to create a custom input aspect that uses SDL for input. I’ve had a look at the QInputAspect code, and now I am trying to create the most basic aspect, so that I can verify that the aspect barebones are in place before I start implementing my custom input handling into this new aspect. So right now I have a QAbstractAspect subclass that implements a constructor and overrides jobsToExecute(), onInitialize() and onCleanup(). Now I am trying to figure out how to define the ‘name’ of my custom input aspect, the keyword that I must pass to the ‘aspects’ property of the ‘Scene3D’ QML element so that it instantiates my custom aspect. At the end of ‘qinputaspect.cpp’ I found QT3D_REGISTER_NAMESPACED_ASPECT(), which receives the "input" string as a parameter. I assume that this is the code that determines that passing "input" to the ‘aspects’ property of the ‘Scene3D’ QML element adds an instance of the QInputAspect aspect to the simulation. So I am trying to do that in my code as well. Since my custom aspect (InputAspect) does not have a namespace, I cannot just use the QT3D_REGISTER_NAMESPACED_ASPECT() macro, so instead I tried to replicate its code. This is the result: void qt3d_QAspectFactory_addDefaultFactory(const QString &, const QMetaObject *, AspectCreateFunction); *(*AspectCreateFunction)(QObject *) *qt3d_InputAspect_createFunction(QObject *parent) { return new InputAspect(parent); } void qt3d_InputAspect_registerFunction() { qt3d_QAspectFactory_addDefaultFactory(QStringLiteral("chopshop_input"), &InputAspect::staticMetaObject, qt3d_InputAspect_createFunction); } Q_CONSTRUCTOR_FUNCTION(qt3d_InputAspect_registerFunction) But this code fails to compile: …/inputaspect.cpp:46:82: error: ‘AspectCreateFunction’ has not been declared void qt3d_QAspectFactory_addDefaultFactory(const QString &, const QMetaObject *, AspectCreateFunction); ^ I’ve grepped the sources of Qt 3D 5.6 for such a name, but the only appearances seem to be those 2 in the QT3D_REGISTER_NAMESPACED_ASPECT() macro definition: [gallaecio at afonso qt3d]$ grep AspectCreateFunction * -FIR src/core/aspects/qabstractaspect.h: typedef QAbstractAspect *(*AspectCreateFunction)(QObject *); \ src/core/aspects/qabstractaspect.h: QT3DCORESHARED_EXPORT void qt3d_QAspectFactory_addDefaultFactory(const QString &, const QMetaObject *, AspectCreateFunction); \ I don’t know what to do now. -------------- next part -------------- An HTML attachment was scrubbed... URL: From elvstone at gmail.com Sat Apr 30 13:24:00 2016 From: elvstone at gmail.com (Elvis Stansvik) Date: Sat, 30 Apr 2016 13:24:00 +0200 Subject: [Interest] armv7a-hard-float in Qt android apps In-Reply-To: References: <515E6601-8F10-4C53-9BD3-643B3968E571@imaginando.pt> Message-ID: 2016-04-30 11:51 GMT+02:00 Ola Røer Thorsen : > > 2016-04-30 10:46 GMT+02:00 Jean-Michaël Celerier > : >> >> https://godbolt.org/g/DqBlFG >> >> With gcc -O1 >> >> float f(float x) >> { >> return 2. * x; >> } >> >> becomes >> >> f(float): >> addss %xmm0, %xmm0 >> ret >> >> >> and >> >> float g (float x) >> { >> return 2.f * x; >> } >> >> becomes >> >> g(float): >> addss %xmm0, %xmm0 >> ret >> > > This is on x86. I was talking about ARM with single-precision FPUs and the > general advice not to use double precision constants if possible there. Also, Jean-Michaël's example is a little unfortunate since the compiler is smart enough to convert the multiplication by 2 to an addss instruction. Changing the constant to 2.1 is more interesting (https://godbolt.org/g/Cgw2cR): f(float): cvtss2sd %xmm0, %xmm0 mulsd .LC0(%rip), %xmm0 cvtsd2ss %xmm0, %xmm0 ret g(float): mulss .LC1(%rip), %xmm0 ret .LC0: .long 3435973837 .long 1073794252 .LC1: .long 1074161254 So conversion to double-precision and then back to single-precision in the code for f. For reference, here's the result with ARM GCC 4.5.3: https://godbolt.org/g/r7Kf1H Elvis > > This is what GCC itself says in the documentation for -Wdouble-promotion: > > -Wdouble-promotion (C, C++, Objective-C and Objective-C++ only)Give a > warning when a value of type float is implicitly promoted to double. CPUs > with a 32-bit “single-precision” floating-point unit implement float in > hardware, but emulate double in software. On such a machine, doing > computations using double values is much more expensive because of the > overhead required for software emulation. > > It is easy to accidentally do computations with double because > floating-point literals are implicitly of type double. For example, in: > > float area(float radius) > { > return 3.14159 * radius * radius; > } > > the compiler performs the entire computation with double because the > floating-point literal is a double. > > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > From asmaloney at gmail.com Sat Apr 30 14:43:10 2016 From: asmaloney at gmail.com (Andy) Date: Sat, 30 Apr 2016 08:43:10 -0400 Subject: [Interest] Example for: QTreeView + QAbstractItemModel + external data In-Reply-To: References: <57213306.9050506@hazardy.de> Message-ID: On Sat, Apr 30, 2016 at 4:08 AM, anton wrote: > Thanks Björn, > > I'll try it (actually i did the job in the rowCount() function..) > I would have preferred that the documentation be clear about this, > I mean with a detailed example :-) > Slight aside: Since you're working with QAbstractItemModel I would highly recommend using Model Test in your debug build: https://wiki.qt.io/Model_Test I've written many QAbstractItemModel-derived classes, and I still find them hard to get right. Model Test has helped catch a lot of edge cases. > Thanks > > Anton > > Björn Schäpers wrote: > > > Am 26.04.2016 um 19:05 schrieb anton: > >> Hi, > >> > >> I have subclassed QAbstractItemModel, > >> and I want to load additionally data in the model > >> as soon as somebody clicks on the [+] > >> in the treeview to load the children of this > >> item form an external data ( web- app which gives me json data back). > >> > >> Now: > >> I reimplemented hasChildren() in the model > >> but i am not sure about the moment to load the data. > >> > >> I suppose that the rowCount() method of the model is called > >> when somebody expands an item in the view? > >> If not what is the moment when my model should ask for additional Data? > >> > >> Does there exist a small example which demonstrates how to > >> handle this in an optimal way. > >> Not sure about beginInsertRows() or layoutChanged() .. > >> I am experimenting but i get also some crashes so an > >> example project would be nice. > >> > >> Thanks > >> > >> Anton > > I think you are looking for QAbstractItemModel::canFetchMore() and > > fetchMore(). See also the last paragraph in > > http://doc.qt.io/qt-5/qabstractitemmodel.html > > > > To create models that populate incrementally, you can reimplement > > fetchMore() and canFetchMore(). If the reimplementation of fetchMore() > > adds rows to the model, beginInsertRows() and endInsertRows() must be > > called. > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > --- Andy Maloney // https://asmaloney.com twitter ~ @asmaloney -------------- next part -------------- An HTML attachment was scrubbed... URL: From sean.harmer at kdab.com Sat Apr 30 19:55:35 2016 From: sean.harmer at kdab.com (Sean Harmer) Date: Sat, 30 Apr 2016 18:55:35 +0100 Subject: [Interest] [QT3D] How Do I render multiple QEntities in different QViewports in C++? In-Reply-To: References: Message-ID: <1723086.flPaFuq1mb@titan> Hi, There's two things you need to consider: 1) The scene graph - the Entities that you wish to draw. 2) The framegraph - specifies the algorithm used to draw the scene graph I assume from your screenshot that you are more or less happy with defining QEntity's to construct your scene graph. If you wish some entities to be drawn in one part of the window (viewport) and the others in another viewport then we need some way of saying "select this set of entities but not that set". One way of doing this is by using a QLayer component attached to your entities that says which layer that entity is part of. This is just like layers photoshop, gimp, blender etc. Create a QLayer, give it a name, and aggregate it onto your QEntity as you do the other components (mesh, transform and material). Doing this doesn't change anything in the rendering on it's own. To affect the change we also need to modify the framegraph. To do this, make sure the concept of the framegraph is clear in your mind. Have a read of: https://www.kdab.com/qt3d-2-0-framegraph/ Each leaf node, corresponds to a portion of your overall scene. To keep things simple, lets only consider the viewports and layer filters you will need. You will need other things in the framegraph too (rendersurfaceselector (if using 5.7), camera selector, technique selector etc). The parts of the framegraph concerned with viewports and layers will look something like this: Root (e.g. TechniqueSelector) |- Viewport [left half of window] |- LayerFilter [names="layer1"] (*) |- Viewport [right half of window] |- LayerFilter [names="layer2"] (**) Where: (*) <-- draws entities on "layer1" in left viewport (**) <-- draws entities on "layer2" in right viewport If you then want to use different cameras in the different viewports then you can include a QCameraSelector node in each sub-tree. Root (e.g. TechniqueSelector) |- Viewport [left half of window] |- CameraSelector [camera1] |- LayerFilter [names="layer1"] (*) |- Viewport [right half of window] |- CameraSelector [camera2] |- LayerFilter [names="layer2"] (**) Where: (*) <-- draws entities on "layer1" in left viewport using "camera1" (**) <-- draws entities on "layer2" in right viewport using "camera2" Hopefully that makes sense. In the future, I hope we can provide tooling and perhaps higher level ways of building custom framegraphs. The framegraph is hugely powerful as it totally allows changing the rendering algorithm at runtime without having to touch low level C++ graphics code. However, it is a bit tricky to get to grips with at first. Cheers, Sean On Thursday 28 April 2016 13:34:58 Pierre Chicoine wrote: > Dear Sirs > > First: Thank you for Qt3d. The KDAB people are heroes in my book. > > I have two problems in C++ Qt3D. > > 1. I am having a difficult time figuring out how to render QEntities into > separate QViewports. All my 3d objects draw to the first QViewport, the > rest are black. I have read all your articles and comments everywhere on > the Internet that I can find and I am basically confused. > > Is there a c++ example that would show multiple viewports with distinct > separate QEntities? I can't seem to duplicate The QML example multiviewport > in my code. What classes would get me there? > > 2. Also I'm also confused about QNodes and QEntitys and their > relationships. Maybe it's the use of Qt3d version 1 that is messing me up . > I use to have a scene node and all the entities would hang off of one scene > node for each scene. But that doesn't seem to work in version 2. Or do I > use the addComponent on a QFrameGraph instead of a node? Or do I hang > Entities off of a viewport? > > Attached is a pic of my progress which draws all the objects into the same > viewport. The window tiles 2 windows properly but I only draw to one > viewport, the second or third stay black. The code here is what I repeat in > each scene class. It's a bit of a mess thrown together to test Qt3D classes > because I don't understand the relationships between all the Qt3D classes > used to place objects in a viewport. > > > Qt3DCore::QCamera *cameraEntity = new Qt3DCore::QCamera( pParentNode); > > cameraEntity->setObjectName(QStringLiteral("cameraEntity")); > > cameraEntity->setProjectionType(Qt3DCore::QCameraLens::PerspectiveProjectio > n); > > cameraEntity->setAspectRatio(1024 / 768); > > cameraEntity->setUpVector(QVector3D(0.0f, 1.0f, 0.0f)); > > cameraEntity->setViewCenter(QVector3D(0.0f, 3.5f, 0.0f)); > > //cameraEntity->lens()->setPerspectiveProjection(60.0f, 16.0f/9.0f, > 0.1f, 1000.0f); > > > if(pScenesSet) // if it's a scene then we want to set it where they want it > > cameraEntity->setPosition(QVector3D(pScenesSet->CamXPos - 20, > pScenesSet->CamYPos + 80, pScenesSet->CamZPos)); > > else // so it's a schematic > > cameraEntity->setPosition(QVector3D(-20, 65, 180)); > > > theApp->input->setCamera(cameraEntity); // not sure about this > relationship?? > > > // FrameGraph > > pQFrameGraph = new Qt3DRender::QFrameGraph(); > > pQTechniqueFilter = new Qt3DRender::QTechniqueFilter(); > > pQViewport = new Qt3DRender::QViewport(pQTechniqueFilter); > > Qt3DRender::QClearBuffer *clearBuffer = new > Qt3DRender::QClearBuffer(pQViewport); > > Qt3DRender::QCameraSelector *cameraSelector = new > Qt3DRender::QCameraSelector(clearBuffer); > > Qt3DRender::QRenderPassFilter * pQRenderPassFilter = new > Qt3DRender::QRenderPassFilter(cameraSelector); > > Qt3DRender::QRenderTargetSelector * m_gBufferTargetSelector = new > Qt3DRender::QRenderTargetSelector(pQTechniqueFilter); > > // Qt3DRender::QLayerFilter * m_sceneFilter = new > Qt3DRender::QLayerFilter(theApp->pCThreeDWindow); > > // TechiqueFilter and renderPassFilter are not implement yet > > pQViewport->setRect(QRectF(0, 0, 1, 1)); > > clearBuffer->setBuffers(Qt3DRender::QClearBuffer::ColorDepthBuffer); > > pQFrameGraph->setActiveFrameGraph(pQTechniqueFilter); > > // Setting the pQFrameGraph > > > // I add a framegraph component to: class CThreeDWindow : public > Qt3DCore::QEntity > > // public: > > // CThreeDWindow(Qt3DCore::QNode *parent = 0); > > > theApp->pCThreeDWindow->addComponent(pQFrameGraph); > > > if(pScenesSet) // if it's a scene then we want to set it where they want it > > pQViewport->setClearColor(QColor(pScenesSet->BackRed, > pScenesSet->BackGreen, pScenesSet->BackBlue)); > > else > > pQViewport->setClearColor(QColor(0, 0, 0)); > > > cameraSelector->setCamera(cameraEntity); > > //m_gBufferTargetSelector->setTarget(m_sceneFilter); > > > > Any help would be appreciated. > > Thank you -- Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK Klarälvdalens Datakonsult AB, a KDAB Group company Tel. UK +44 (0)1625 809908, Sweden (HQ) +46-563-540090 KDAB - Qt Experts - Platform-independent software solutions From sean.harmer at kdab.com Sat Apr 30 19:56:26 2016 From: sean.harmer at kdab.com (Sean Harmer) Date: Sat, 30 Apr 2016 18:56:26 +0100 Subject: [Interest] [QT3D] How Do I render multiple QEntities in different QViewports in C++? In-Reply-To: References: Message-ID: <6413466.tZdNIk2Hbh@titan> On Thursday 28 April 2016 14:50:22 charleyb123 . wrote: > Pierre spaketh: > > Dear Sirs > > > > First: Thank you for Qt3d. The KDAB people are heroes in my book. > > > > +1 > > A very big "Thank You!" to what KDAB does in Qt3D. > > They probably don't hear it often enough for all their > work-and-contributions, but Qt3D is truly technology that pushes the entire > industry. Thanks Charley! That's very nice to hear (especially when battling an uncooperative CI on a Bank Holiday weekend)! Sean -- Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK Klarälvdalens Datakonsult AB, a KDAB Group company Tel. UK +44 (0)1625 809908, Sweden (HQ) +46-563-540090 KDAB - Qt Experts - Platform-independent software solutions From sinadooru at gmail.com Sat Apr 30 21:35:49 2016 From: sinadooru at gmail.com (Sina Dogru) Date: Sat, 30 Apr 2016 22:35:49 +0300 Subject: [Interest] Clean way to define and categorize constants in QML In-Reply-To: References: <92000C074E92194CB9110465E5C338BE4BF07264@DE08W1308.global.ds.honeywell.com> Message-ID: 2016-04-29 21:34 GMT+03:00 Jérôme Godbout : > > QmlObject > { > readonly property alias myCategory: myCategory_ > > QmlObject > { > id: myCategory_ > readonly property color red: "#FF00000" > } > } > Hello Jérôme, Can you please explain what would be different to use QtObject instead of QmlObject, QtObject { readonly property alias myCategory: myCategory_ QtObject { id: myCategory_ readonly property color red: "#FF0000" } } -------------- next part -------------- An HTML attachment was scrubbed... URL: From pierrechicoine606 at gmail.com Sat Apr 30 22:02:40 2016 From: pierrechicoine606 at gmail.com (Pierre Chicoine) Date: Sat, 30 Apr 2016 13:02:40 -0700 Subject: [Interest] [QT3D] How Do I render multiple QEntities in different QViewports in C++? In-Reply-To: <1723086.flPaFuq1mb@titan> References: <1723086.flPaFuq1mb@titan> Message-ID: Thank you Sean. Very descriptive. Since I have such a large system, I will create an example and pass it to you. By the way a large percentage of your examples on 5.7 beta don't work. But I'm sure you're aware of that. Thank you again. On Apr 30, 2016 10:55 AM, "Sean Harmer" wrote: > > Hi, > > There's two things you need to consider: > > 1) The scene graph - the Entities that you wish to draw. > 2) The framegraph - specifies the algorithm used to draw the scene graph > > I assume from your screenshot that you are more or less happy with defining > QEntity's to construct your scene graph. If you wish some entities to be drawn > in one part of the window (viewport) and the others in another viewport then > we need some way of saying "select this set of entities but not that set". > > One way of doing this is by using a QLayer component attached to your entities > that says which layer that entity is part of. This is just like layers > photoshop, gimp, blender etc. Create a QLayer, give it a name, and aggregate > it onto your QEntity as you do the other components (mesh, transform and > material). > > Doing this doesn't change anything in the rendering on it's own. To affect the > change we also need to modify the framegraph. To do this, make sure the > concept of the framegraph is clear in your mind. Have a read of: > > https://www.kdab.com/qt3d-2-0-framegraph/ > > Each leaf node, corresponds to a portion of your overall scene. To keep things > simple, lets only consider the viewports and layer filters you will need. You > will need other things in the framegraph too (rendersurfaceselector (if using > 5.7), camera selector, technique selector etc). The parts of the framegraph > concerned with viewports and layers will look something like this: > > Root (e.g. TechniqueSelector) > |- Viewport [left half of window] > |- LayerFilter [names="layer1"] (*) > |- Viewport [right half of window] > |- LayerFilter [names="layer2"] (**) > > Where: > > (*) <-- draws entities on "layer1" in left viewport > (**) <-- draws entities on "layer2" in right viewport > > If you then want to use different cameras in the different viewports then you > can include a QCameraSelector node in each sub-tree. > > Root (e.g. TechniqueSelector) > |- Viewport [left half of window] > |- CameraSelector [camera1] > |- LayerFilter [names="layer1"] (*) > |- Viewport [right half of window] > |- CameraSelector [camera2] > |- LayerFilter [names="layer2"] (**) > > Where: > > (*) <-- draws entities on "layer1" in left viewport using "camera1" > (**) <-- draws entities on "layer2" in right viewport using "camera2" > > Hopefully that makes sense. In the future, I hope we can provide tooling and > perhaps higher level ways of building custom framegraphs. The framegraph is > hugely powerful as it totally allows changing the rendering algorithm at > runtime without having to touch low level C++ graphics code. However, it is a > bit tricky to get to grips with at first. > > Cheers, > > Sean > > On Thursday 28 April 2016 13:34:58 Pierre Chicoine wrote: > > Dear Sirs > > > > First: Thank you for Qt3d. The KDAB people are heroes in my book. > > > > I have two problems in C++ Qt3D. > > > > 1. I am having a difficult time figuring out how to render QEntities into > > separate QViewports. All my 3d objects draw to the first QViewport, the > > rest are black. I have read all your articles and comments everywhere on > > the Internet that I can find and I am basically confused. > > > > Is there a c++ example that would show multiple viewports with distinct > > separate QEntities? I can't seem to duplicate The QML example multiviewport > > in my code. What classes would get me there? > > > > 2. Also I'm also confused about QNodes and QEntitys and their > > relationships. Maybe it's the use of Qt3d version 1 that is messing me up . > > I use to have a scene node and all the entities would hang off of one scene > > node for each scene. But that doesn't seem to work in version 2. Or do I > > use the addComponent on a QFrameGraph instead of a node? Or do I hang > > Entities off of a viewport? > > > > Attached is a pic of my progress which draws all the objects into the same > > viewport. The window tiles 2 windows properly but I only draw to one > > viewport, the second or third stay black. The code here is what I repeat in > > each scene class. It's a bit of a mess thrown together to test Qt3D classes > > because I don't understand the relationships between all the Qt3D classes > > used to place objects in a viewport. > > > > > > Qt3DCore::QCamera *cameraEntity = new Qt3DCore::QCamera( pParentNode); > > > > cameraEntity->setObjectName(QStringLiteral("cameraEntity")); > > > > cameraEntity->setProjectionType(Qt3DCore::QCameraLens::PerspectiveProjectio > > n); > > > > cameraEntity->setAspectRatio(1024 / 768); > > > > cameraEntity->setUpVector(QVector3D(0.0f, 1.0f, 0.0f)); > > > > cameraEntity->setViewCenter(QVector3D(0.0f, 3.5f, 0.0f)); > > > > //cameraEntity->lens()->setPerspectiveProjection(60.0f, 16.0f/9.0f, > > 0.1f, 1000.0f); > > > > > > if(pScenesSet) // if it's a scene then we want to set it where they want it > > > > cameraEntity->setPosition(QVector3D(pScenesSet->CamXPos - 20, > > pScenesSet->CamYPos + 80, pScenesSet->CamZPos)); > > > > else // so it's a schematic > > > > cameraEntity->setPosition(QVector3D(-20, 65, 180)); > > > > > > theApp->input->setCamera(cameraEntity); // not sure about this > > relationship?? > > > > > > // FrameGraph > > > > pQFrameGraph = new Qt3DRender::QFrameGraph(); > > > > pQTechniqueFilter = new Qt3DRender::QTechniqueFilter(); > > > > pQViewport = new Qt3DRender::QViewport(pQTechniqueFilter); > > > > Qt3DRender::QClearBuffer *clearBuffer = new > > Qt3DRender::QClearBuffer(pQViewport); > > > > Qt3DRender::QCameraSelector *cameraSelector = new > > Qt3DRender::QCameraSelector(clearBuffer); > > > > Qt3DRender::QRenderPassFilter * pQRenderPassFilter = new > > Qt3DRender::QRenderPassFilter(cameraSelector); > > > > Qt3DRender::QRenderTargetSelector * m_gBufferTargetSelector = new > > Qt3DRender::QRenderTargetSelector(pQTechniqueFilter); > > > > // Qt3DRender::QLayerFilter * m_sceneFilter = new > > Qt3DRender::QLayerFilter(theApp->pCThreeDWindow); > > > > // TechiqueFilter and renderPassFilter are not implement yet > > > > pQViewport->setRect(QRectF(0, 0, 1, 1)); > > > > clearBuffer->setBuffers(Qt3DRender::QClearBuffer::ColorDepthBuffer); > > > > pQFrameGraph->setActiveFrameGraph(pQTechniqueFilter); > > > > // Setting the pQFrameGraph > > > > > > // I add a framegraph component to: class CThreeDWindow : public > > Qt3DCore::QEntity > > > > // public: > > > > // CThreeDWindow(Qt3DCore::QNode *parent = 0); > > > > > > theApp->pCThreeDWindow->addComponent(pQFrameGraph); > > > > > > if(pScenesSet) // if it's a scene then we want to set it where they want it > > > > pQViewport->setClearColor(QColor(pScenesSet->BackRed, > > pScenesSet->BackGreen, pScenesSet->BackBlue)); > > > > else > > > > pQViewport->setClearColor(QColor(0, 0, 0)); > > > > > > cameraSelector->setCamera(cameraEntity); > > > > //m_gBufferTargetSelector->setTarget(m_sceneFilter); > > > > > > > > Any help would be appreciated. > > > > Thank you > > -- > Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK > Klarälvdalens Datakonsult AB, a KDAB Group company > Tel. UK +44 (0)1625 809908, Sweden (HQ) +46-563-540090 > KDAB - Qt Experts - Platform-independent software solutions -------------- next part -------------- An HTML attachment was scrubbed... URL: From thiago.macieira at intel.com Sat Apr 30 20:28:59 2016 From: thiago.macieira at intel.com (Thiago Macieira) Date: Sat, 30 Apr 2016 11:28:59 -0700 Subject: [Interest] armv7a-hard-float in Qt android apps In-Reply-To: References: <515E6601-8F10-4C53-9BD3-643B3968E571@imaginando.pt> Message-ID: <20914516.5D0nZEKxCs@tjmaciei-mobl4> On sábado, 30 de abril de 2016 10:46:21 PDT Jean-Michaël Celerier wrote: > https://godbolt.org/g/DqBlFG > > With gcc -O1 > > float f(float x) > { > return 2. * x; > } > > becomes > > f(float): > addss %xmm0, %xmm0 > ret > > > and > > float g (float x) > { > return 2.f * x; > } > > becomes > > g(float): > addss %xmm0, %xmm0 > ret Because 2 can be represented with no loss of precision in both single- and double-precision floating point. The compiler actually produced an "as-if" optimisation here. Try multiplying by something different, something that isn't precise, like 2.1. f: cvtss2sd %xmm0, %xmm0 mulsd .LC0(%rip), %xmm0 cvtsd2ss %xmm0, %xmm0 ret https://godbolt.org/g/4yEj4Y -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From alexey.rusakov at gmail.com Mon Apr 4 10:43:05 2016 From: alexey.rusakov at gmail.com (Alexey Rusakov) Date: Mon, 04 Apr 2016 08:43:05 -0000 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> Message-ID: <3CF9F0427713DFBD.3ADEBEC2-5DD2-4A55-8126-93B8ED922486@mail.outlook.com> Not sure what I'm doing wrong but auto-completion for connect() does work for me. Moreover, I don't expect CLion to be able to work with SIGNAL() and SLOT() notation without Qt-aware plugin. I might expect CLion to rule them all in some indefinite future but very hardly at the moment. Disclaimer: I am a switch-over from CLion to Qt Creator, exactly because Qt Creator worked for me much better than CLion for CMake-based Qt-using projects. On Mon, Apr 4, 2016 at 1:13 AM -0700, "Nikos Chantziaras" wrote: On 03/04/16 22:00, Thiago Macieira wrote: > On domingo, 3 de abril de 2016 21:07:00 PDT Emre Besirik wrote: >> Do you also find it a littlebit unpleasent to code in QtCreator like me? >> Does Qt plan to do something about this? > > It would be more constructive if you explained what your issues are and what > you findto be unpleasant. Without that, nothing is ever going to happen. I assume the same things as the rest of us, perhaps: * Lack of auto-completion for connect(). * Very slow auto-completion. * Generally auto-completion sometimes work, sometimes doesn't. * "Find uses" doesn't work, so you have to grep to find uses. * It gets very confused with smart pointers and templates in general. * Sometimes doesn't highlight local uses. This is the clang code model, and these things are a major PITA. The Creator code model was excellent for C++98. The last few months, I complete switched my projects to C++14, and that code model is now useless, so clang is the only choice. And it's not very pleasant to work with. In fact, I'd say it's very unpleasant. _______________________________________________ Interest mailing list Interest at qt-project.org http://lists.qt-project.org/mailman/listinfo/interest -------------- next part -------------- An HTML attachment was scrubbed... URL: From alexey.rusakov at gmail.com Mon Apr 4 12:30:02 2016 From: alexey.rusakov at gmail.com (Alexey Rusakov) Date: Mon, 04 Apr 2016 10:30:02 -0000 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <570236AA.3030102@gmail.com> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <2081855.gQOhDpIePN@tjmaciei-mobl4> <3CF9F0427713DFBD.3ADEBEC2-5DD2-4A55-8126-93B8ED922486@mail.outlook.com> <570236AA.3030102@gmail.com> Message-ID: <3CF9F0427713DFBD.D7F0EB2C-08B8-4784-8A82-7838802D8511@mail.outlook.com> I don't know what I'm doing wrong but the new compile-time-checked syntax is auto-completed by my Qt Creator (that came with Qt 5.5.1) as well :) and you're a bit blunt on not recommending the older syntax. Apparently you haven't spent enough time with QML. On Mon, Apr 4, 2016 at 2:41 AM -0700, "Nikos Chantziaras" wrote: It only works with the old, Qt4 string/macro-based syntax (using the SLOT and SIGNAL macros.) Which is totally unsafe and I don't use it anymore (I wouldn't even recommend it to anyone.) The new syntax, which is statically checked (compile time) and thus type-safe, even though it's the recommended one by Qt, is not supported in Creator using the clang model. This does not auto-complete: connect(this, &MyWidget::mySignal, control, &MyControl::mySlot); This is not the end of the world, but still it's unpleasant to work with. The clang code model will get better in the future, I'm sure of it. But right now, it's pain all the way down. The lacking auto-completion might not even be the worst of it. In the end, that's "just" a productivity and convenience issue. The lack of reliable "find all uses" in the clang model is actually a more serious problem, since if you trust it you're left with the false sense of security that you caught all the places in your code where a symbol was used and made whatever changes you needed to make to fix an issue. But it doesn't find all uses. Which is *dangerous*. So I have to do a text-based, project-wide search for a string instead to actually get to all uses of the symbol and update my code. On 04/04/16 11:42, Alexey Rusakov wrote: > Not sure what I'm doing wrong but auto-completion for connect() does > work for me. Moreover, I don't expect CLion to be able to work with > SIGNAL() and SLOT() notation without Qt-aware plugin. > > I might expect CLion to rule them all in some indefinite future but very > hardly at the moment. Disclaimer: I am a switch-over from CLion to Qt > Creator, exactly because Qt Creator worked for me much better than CLion > for CMake-based Qt-using projects. > > > > On Mon, Apr 4, 2016 at 1:13 AM -0700, "Nikos Chantziaras" > > wrote: > > On 03/04/16 22:00, Thiago Macieira wrote: > > On domingo, 3 de abril de 2016 21:07:00 PDT Emre Besirik wrote: > >> Do you also find it a littlebit unpleasent to code in QtCreator like me? > >> Does Qt plan to do something about this? > > > > It would be more constructive if you explained what your issues are and what > > you findto be unpleasant. Without that, nothing is ever going to happen. > > I assume the same things as the rest of us, perhaps: > > * Lack of auto-completion for connect(). > * Very slow auto-completion. > * Generally auto-completion sometimes work, sometimes doesn't. > * "Find uses" doesn't work, so you have to grep to find uses. > * It gets very confused with smart pointers and templates in general. > * Sometimes doesn't highlight local uses. > > This is the clang code model, and these things are a major PITA. > > The Creator code model was excellent for C++98. The last few months, I > complete switched my projects to C++14, and that code model is now > useless, so clang is the only choice. And it's not very pleasant to work > with. In fact, I'd say it's very unpleasant. > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > -------------- next part -------------- An HTML attachment was scrubbed... URL: From phillip.d.class at gmail.com Mon Apr 4 13:53:23 2016 From: phillip.d.class at gmail.com (Phillip Class) Date: Mon, 04 Apr 2016 11:53:23 -0000 Subject: [Interest] Qt 5.5 LinuxFb Plugin with Base Layer Transparency Message-ID: Hello, Our application requires that we blend 3 layers with 3 framebuffers on a TI device. The base layer is opaque video, the middle layer is video blended on top of the base layer with a global alpha channel that we need to be able to modify on the fly, and a top GUI layer with transparency. This approach worked great with Qt 4.8 and we are trying to get it to work with Qt 5.5. The problem is that when we run the top level GUI application, we cannot set the background of the to be fully transparent. It simply appears black. This covers the 2 lower z-order applications and they are no longer visible. We attempted to investigate this issue by looking at the Qt5.5 linuxfb plugin source code. Beginning at line 251 of qfbscreen.cpp in the Qt5.5 source ( located in qt5base-5.5.1/src/platformsupport/fbconvenience ), we see where the linuxfb plugin sets the base layer to black. If we change that one line to "qt::transparent", and re-launch our app, then we see the lower 2 layers "through" the GUI in the regions of the GUI where it is fully transparent. Initially, the fully transparent GUI displays correctly. It displays a menu, which initially appears correct. A problem occurs when we then try to hide the menu. It remains displayed on the screen. Apparently, the redraw of the base layer, which is transparent, does not replace the pixels from the menu, but is instead blended with the menu pixels. We have tried several composition modes in the base layer's paint event, including Source and Clear, but neither fixes the problem. On previous products ( using the DM3730 ), we used this same approach ( DSS blended framebuffers ) with Qt 4.8 and it worked as expected. How can we make this work with Qt 5.5? qfbscreen.cpp: // we only expect one rectangle, but defensive coding... foreach (const QRect &rect, intersect.rects()) { bool firstLayer = true; if (layer == -1) { mCompositePainter->fillRect(rect, Qt::black); firstLayer = false; layer = mWindowStack.size() - 1; } for (int layerIndex = layer; layerIndex != -1; layerIndex--) { if (!mWindowStack[layerIndex]->window()->isVisible()) continue; // if (mWindowStack[layerIndex]->isMinimized()) // continue; QRect windowRect = mWindowStack[layerIndex]->geometry().translated(-screenOffset); QRect windowIntersect = rect.translated(-windowRect.left(), -windowRect.top()); QFbBackingStore *backingStore = mWindowStack[layerIndex]->backingStore(); if (backingStore) { backingStore->lock(); mCompositePainter->drawImage(rect, backingStore->image(), windowIntersect); backingStore->unlock(); } if (firstLayer) { firstLayer = false; } } } We greatly appreciate any help - thank you. -------------- next part -------------- An HTML attachment was scrubbed... URL: From palearim at tiscali.it Tue Apr 5 13:52:28 2016 From: palearim at tiscali.it (palearim at tiscali.it) Date: Tue, 05 Apr 2016 11:52:28 -0000 Subject: [Interest] Performance improvement using Qt Quick Compiler Message-ID: Hello, I'm creating an application that must be able to manage effectively a lot of panels/dialogs (500 and more) and in this moment I'm focusing in performance problems using Qt.createComponent and Qt.createObject APIs. In particular I'm investigating if the use of Qt Quick Compiler can improve performance in panels/dialogs creation. To investigate this topic I have developed, using Qt 5.5 Enterprise Edition, a simple test program that in a for loop invokes the Qt.createComponent() and the Qt.createObject() foreach panel/dialog to create: for(var i=0 ; i< 500; i++) { var qmlFile = "qrc:/qml/DTSControlPanel_"+ i + ".qml" panels[i] = Qt.createComponent(qmlFile) } and subsequently for(var i=0 ; i< panels.length; i++) { ... panels[i].createObject(appWindow, {"x": startX, "y": startY}); } This code has been compiled with and without Qt Quick Compiler and executed to get performance data. The results are, for my understanding, a little bit strange. In fact contrary to my expectations the application built with Qt Quick Compiler is less performant than the one compiled without Qt Quick Compiler. Can anyone suggest to me a possible explanation of this behaviour? Many thanks. Connetti gratis il mondo con la nuova indoona: hai la chat, le chiamate, le video chiamate e persino le chiamate di gruppo. E chiami gratis anche i numeri fissi e mobili nel mondo! Scarica subito l’app Vai su https://www.indoona.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From gunter at schwann.at Tue Apr 5 16:09:29 2016 From: gunter at schwann.at (Guenter Schwann) Date: Tue, 05 Apr 2016 14:09:29 -0000 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> Message-ID: <16982244.LZzAJbfrLn@w541> On Tuesday, April 05, 2016 04:19:42 PM NoMercy wrote: > That QtCreator is eons behind current technology and trends, isn't it very > obvious? No! Absolutely not. QtCreator is a really great IDE. Very lightweight, but still very powerful. Simply using the "Esc" button is a single fantastic feature that I haven't seen elsewhere. And for the technology: CLion as well as QtCreator are using clang for the code model (which is the heart of an IDE). What other technology do you mean? What trends do you see for IDEs? > I would say just checkout features of ANY JetBrains product but > you don't even intend to so you are in therefor denial. (Not personally you > but many people who are objecting these) I haven't used it yet - granted. But I have watched all the CLion releases so far. They are looking promising. But I haven't seen any major feature that QtCreator would lack (C++ only). I guess you haven't read the manual of QtCreator. So you missed tons of features. And yes, QtCreator is not perfect. Especially the clang code model still needs polishing (speed is not up to the old model). QtCreator 4.0 (beta) is looking really nice :) Regards Günter From gunter at schwann.at Tue Apr 5 16:47:50 2016 From: gunter at schwann.at (Guenter Schwann) Date: Tue, 05 Apr 2016 14:47:50 -0000 Subject: [Interest] CLion to replace QtCreator? In-Reply-To: <9755E968-7A86-4800-A6D5-06A20FE3ED19@gmail.com> References: <145EFF1B-3B4F-477C-A14D-B286739E31FE@gmail.com> <16982244.LZzAJbfrLn@w541> <9755E968-7A86-4800-A6D5-06A20FE3ED19@gmail.com> Message-ID: <3086956.Ah5BDpQjcG@w541> On Tuesday, April 05, 2016 05:18:08 PM Emre Besirik wrote: > Some of the lacking features are smart autocomplete maybe At least with QtCreator 4.0 beta most issues are resolved for me. What exactly do you mean by "smart"? > Ctrl+K like search but improved in a better UI I watched https://www.youtube.com/watch?v=j7nT9QWjOBA Nothing stunning there. Mostly the same as Ctrl-K (you see more options the poping up). Some are Ctrl-Tab, Ctrl-Shift-I, Ctrl-Shift-T. Is there something like Alt-Left for CLion? > but most lacking part comes in UI/UX I like QtCreator because it doesn't come with a bloated UI (in constrast to Visual Studio). The UI is very lightweight. Close to a simple editor. But as soon as you know some shortcuts, it gets extremely powerful. Maybe you should have a look at https://www.kdab.com/qtcreator And again - which technology or trends do you think QtCreator is _eons_ behind? Regards Guenter From milian.wolff at kdab.com Thu Apr 7 11:23:55 2016 From: milian.wolff at kdab.com (Milian Wolff) Date: Thu, 07 Apr 2016 09:23:55 -0000 Subject: [Interest] qtwebview with qtwebchannel In-Reply-To: References: Message-ID: <1673058.V8R7eHGYqz@milian-kdab2> On Thursday, April 7, 2016 9:38:01 AM CEST Sylvain Pointeau wrote: > Hello, > > Do you have any idea how to use WebSocket or WebChannel on iOS? > Should I conclude that we cannot do hybrid apps with Qt on iOS (works on > desktop, don't know about Android)? I'm not an iOS person but the problem you are describing has nothing to do with the webchannel - you seem to fail already when constructing a websocket server. Have you tried to run the examples/tests of QWebSocket on iOS? That's where I'd start. Bye -- Milian Wolff | milian.wolff at kdab.com | Software Engineer KDAB (Deutschland) GmbH&Co KG, a KDAB Group company Tel: +49-30-521325470 KDAB - The Qt Experts -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 5903 bytes Desc: not available URL: From isgarsi at gmail.com Thu Apr 21 10:25:30 2016 From: isgarsi at gmail.com (Isaac Garcia) Date: Thu, 21 Apr 2016 08:25:30 -0000 Subject: [Interest] Qt installer framework Message-ID: Hi, Is there any form to change the language to the default pages in the installer? I've seen that in SDK code exists a translation in the file es.ts but It doesn't translate or I'm doing something wrong. Thanks in advance. -- Isaac Garcia -------------- next part -------------- An HTML attachment was scrubbed... URL: From m.kwiecien916 at gmail.com Sun Apr 24 09:48:26 2016 From: m.kwiecien916 at gmail.com (=?UTF-8?Q?Mateusz_Kwiecie=C5=84?=) Date: Sun, 24 Apr 2016 07:48:26 -0000 Subject: [Interest] [Qt3d]Using texture with transparency as material on PlaneMesh Message-ID: Hi, I want to create something like painting on glass effect using texture with transparency. What is the best way to do that in Qt3D? I wondering if only way is to create custom material with shaders etc. Regards, Mateusz -------------- next part -------------- An HTML attachment was scrubbed... URL: From dalboris at gmail.com Tue Apr 5 19:26:08 2016 From: dalboris at gmail.com (Boris Dalstein) Date: Tue, 05 Apr 2016 17:26:08 -0000 Subject: [Interest] login.qt.io down => cannot install Qt In-Reply-To: <1565646.9fsNEG2S9l@devrobert> References: <1565646.9fsNEG2S9l@devrobert> Message-ID: <5703F4DE.8060800@gmail.com> Thank you for your answer. It was not working from at least 05:00 GMT to 06:00 GMT. It was working again at 08:00 GMT. Login.qt.io wasn't working from either the Maintainance Tool or the browser. Blog.qt.io wasn't working from the browser. The main webpage www.qt.io was working though. Good to know that you don't need to login to download and install if you have a commercial license, at least this makes some sort of sense. Still, I find it questionable to force non-commercial users to login, this is highly non-standard for open source products. Have a good day :-) On 16-04-05 03:51 AM, Robert Buchinger wrote: > On Tuesday, April 5, 2016 5:50:20 AM CEST Boris wrote: >> I am installing a new machine and setting up my development environment. >> However, I cannot install Qt because the Qt installer forces to login to your >> account, and login.qt.io appears to be down, resulting in a "TIMEOUT" error >> when trying to login. Anyone has this error as well? The blog seems down as >> well, I get "No application configured" when going to blog.qt.io. >> >> Seriously, this is very embarrassing for Digia. Users cannot get work done >> because of their incredibly bad decision to force users to login to install >> their software. >> >> This is both a rant and a feature request: Digia, please make login optional >> to install your software, because if you think you can guarantee that the >> login system is never down, you are fooling yourself. Such a lack of >> professionalism. >> >> >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest >> > For me both login.qt.io and blog.qt.io are working. > > Does this happen within the Maintenance Tool or from the browser? > > As long as you not have a commercial license you not need to log in to download and install Qt. > > From peter at osdev.nl Thu Apr 7 15:34:04 2016 From: peter at osdev.nl (Peter M. Groen) Date: Thu, 07 Apr 2016 13:34:04 -0000 Subject: [Interest] Signal Slot Ordering (or Not) Message-ID: <20160407153401.7bb64e8f@701030325dev64.rend> In a simple setup ( One sender object with a signal, One receiver with a slot, argument is sequence number, both objects running in a single thread ) some unexpected behaviour (at least for me) is noticed. The connect between the mentioned signal / slot is done with Qt::DirectConnection. According to the documentation, each slot is called directly. ( The slot is invoked immediately when the signal is emitted. The slot is executed in the signalling thread. ) In a for-loop, I'm sending 10 signals directly in one burst, like so : for( int nCount = 0; nCount < number_of_signals; nCount++ ) { std::cout << "[SignalSender::timerTimeOut] - " << QString( "Signal Sending. Timer : %1, Run : %2, Sequence : %3" ) .arg( timer_interval_msecs ) .arg( run_number ) .arg( nCount ).toStdString() << std::endl; emit signalSendSequence( timer_interval_msecs, run_number, nCount ); QCoreApplication::processEvents(); } I'm expecting the output would be in ascending order, but every once in a while, the output is all thrown together. That is quite unexpected, based on the documentation. Is this a bug, or by design? Regards, -- Open Systems Development Peter M. Groen Het Buitenwater 54 2235 TB Valkenburg (ZH) Mob : +31 6 811 0 3537 Email : peter at osdev.nl Skype : peter_m_groen From ps.report at gmx.net Thu Apr 7 23:34:56 2016 From: ps.report at gmx.net (Peter Seiderer) Date: Thu, 07 Apr 2016 21:34:56 -0000 Subject: [Interest] Qt 5.5 LinuxFb Plugin with Base Layer Transparency Message-ID: <20160407233441.6b290790@gmx.net> Hello Jack, > Our application requires that we blend 3 layers with 3 framebuffers on a TI > device. The base layer is opaque video, the middle layer is video blended > on top of the base layer with a global alpha channel that we need to be > able to modify on the fly, and a top GUI layer with transparency. This > approach worked great with Qt 4.8 and we are trying to get it to work with > Qt 5.5. > > The problem is that when we run the top level GUI application, we cannot > set the background of the to be fully transparent. It simply appears black. > This covers the 2 lower z-order applications and they are no longer visible. > > We attempted to investigate this issue by looking at the Qt5.5 linuxfb > plugin source code. Beginning at line 251 of qfbscreen.cpp in the Qt5.5 > source ( located in qt5base-5.5.1/src/platformsupport/fbconvenience ), we > see where the linuxfb plugin sets the base layer to black. If we change > that one line to "qt::transparent", and re-launch our app, then we see the > lower 2 layers "through" the GUI in the regions of the GUI where it is > fully transparent. Initially, the fully transparent GUI displays correctly. > It displays a menu, which initially appears correct. A problem occurs when > we then try to hide the menu. It remains displayed on the screen. > Apparently, the redraw of the base layer, which is transparent, does not > replace the pixels from the menu, but is instead blended with the menu > pixels. > > We have tried several composition modes in the base layer's paint event, > including Source and Clear, but neither fixes the problem. On previous > products ( using the DM3730 ), we used this same approach ( DSS blended > framebuffers ) with Qt 4.8 and it worked as expected. How can we make this > work with Qt 5.5? > Did have the same problem (but on a NXP/Freescale i.MX6 board), solved it by the following patch/hack for Qt5.4.1 and a simple OSD GUI: --- begin --- From dab806c4dce22efc5eb6615287cf803a1d72ee6a Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Tue, 30 Sep 2014 16:53:00 +0200 Subject: [PATCH] platforms/linuxfb: enabel alpha channel on framebuffer output --- src/platformsupport/fbconvenience/qfbscreen.cpp | 9 +++++++-- src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp | 4 +++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/platformsupport/fbconvenience/qfbscreen.cpp b/src/platformsupport/fbconvenience/qfbscreen.cpp index aa35825..6670f8e 100644 --- a/src/platformsupport/fbconvenience/qfbscreen.cpp +++ b/src/platformsupport/fbconvenience/qfbscreen.cpp @@ -217,8 +217,13 @@ QRegion QFbScreen::doRedraw() if (!mIsUpToDate) generateRects(); - if (!mCompositePainter) + if (!mCompositePainter) { mCompositePainter = new QPainter(mScreenImage); + // simple solution for OSD rendering (real solution should invalidate/init + // background always before rendering widget content with alpha blending) + mCompositePainter->setCompositionMode(QPainter::CompositionMode_Source); + } + for (int rectIndex = 0; rectIndex < mRepaintRegion.rectCount(); rectIndex++) { QRegion rectRegion = rects[rectIndex]; @@ -236,7 +241,7 @@ QRegion QFbScreen::doRedraw() foreach (const QRect &rect, intersect.rects()) { bool firstLayer = true; if (layer == -1) { - mCompositePainter->fillRect(rect, Qt::black); + mCompositePainter->fillRect(rect, Qt::transparent); firstLayer = false; layer = mWindowStack.size() - 1; } diff --git a/src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp b/src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp index a66c9fa..522088c 100644 --- a/src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp +++ b/src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp @@ -431,8 +431,10 @@ QRegion QLinuxFbScreen::doRedraw() if (touched.isEmpty()) return touched; - if (!mBlitter) + if (!mBlitter) { mBlitter = new QPainter(&mFbScreenImage); + mBlitter->setCompositionMode(QPainter::CompositionMode_Source); + } QVector rects = touched.rects(); for (int i = 0; i < rects.size(); i++) -- 2.1.4 --- end --- Regards, Peter > qfbscreen.cpp: > > // we only expect one rectangle, but defensive coding... > foreach (const QRect &rect, intersect.rects()) { > bool firstLayer = true; > if (layer == -1) { > mCompositePainter->fillRect(rect, Qt::black); > firstLayer = false; > layer = mWindowStack.size() - 1; > } > > for (int layerIndex = layer; layerIndex != -1; layerIndex--) { > if (!mWindowStack[layerIndex]->window()->isVisible()) > continue; > // if (mWindowStack[layerIndex]->isMinimized()) > // continue; > > QRect windowRect = > mWindowStack[layerIndex]->geometry().translated(-screenOffset); > QRect windowIntersect = rect.translated(-windowRect.left(), > -windowRect.top()); > > > QFbBackingStore *backingStore = > mWindowStack[layerIndex]->backingStore(); > > if (backingStore) { > backingStore->lock(); > mCompositePainter->drawImage(rect, > backingStore->image(), windowIntersect); > backingStore->unlock(); > } > if (firstLayer) { > firstLayer = false; > } > } > } > We greatly appreciate any help - thank you. From Yves.Bailly at hexagonmetrology.com Mon Apr 11 09:59:15 2016 From: Yves.Bailly at hexagonmetrology.com (BAILLY Yves) Date: Mon, 11 Apr 2016 07:59:15 -0000 Subject: [Interest] Detecting QString encoding errors Message-ID: Greetings all, Is it possible to detect errors while encoding a QString from char*? Here's the case: I get a string as a char* form an external library (on which I don't have any control). This string can use either UTF8 encoding, or "local8bit" encoding - thus may vary from a user to the other. What I basically need is to be table to write something like this: char const* src = ...; bool encoding_failed = false; QString qs = QString::fromUtf8(src, &encoding_failed); if ( encoding_failed ) { qs = QString::fromLocal8Bit(src); } I looked at the docs for QString and QTextCodec, but I couldn't find any error support. Is there any (portable) way of achieving this? Thanks in advance for any hint. -- Yves Bailly Software developer -------------- next part -------------- An HTML attachment was scrubbed... URL: