Re: [Interest] Qt interfacing to Android native UI ?

2017-10-02 Thread coroberti .
Dear Edward and others,
It seems that my practical experience with making
core business logic in C++-STL without Qt
works well with:

a. Qt-based GUI for Linux, Mac and Windows - it works excellent;

b. Native GUI for iOS and Android.

Unfortunately, Qt at iOS and Android has too many issues to overcome,
just a few to mention:

1. Lack of customizable Edit Menu (Platform menu) at Qt for iOS - at
least for widgets;

2. Broken selection handles at Qt for Android - total mess for widgets
and many issues for QML

Other reasons to mention:

3. Lack of features where I found myself always with JNI+Java or
developing native components in Obj-C
where native Java and Swift are much easier and less time consuming.


Optimistic people would say that the matters are improving...  Maybe.

jm4c

Kind regards,
Robert


On Thu, May 5, 2016 at 10:58 PM, Edward Sutton
 wrote:
> I have not used the project.
>
> My guess one motivating goal would be to reuse the many react-native modules
> that support both Android and iOS ( or one OS or the other ).
>
> Another goal would be to access real native UI components and native API’s.
> While QML looks native-like, for Android or iOS apps, native just feels
> better to the user IMO.
>
> Microsoft is reportedly adding react native support for UWP and claim it
> will support 270 million Windows 10 devices.
>
> https://blogs.windows.com/buildingapps/2016/04/13/react-native-on-the-universal-windows-platform/
>
>
> -Ed
>
> On May 5, 2016, at 9:45 AM, Jason H  wrote:
>
> What is the motivation for such a project?
>
> Sent: Thursday, May 05, 2016 at 10:31 AM
> From: "Edward Sutton" 
> To: "Robert Iakobashvili" 
> Cc: "interest@qt-project.org" 
> Subject: Re: [Interest] Qt interfacing to Android native UI ?
> An interesting project:
>
>
> https://github.com/grassator/react-qml
>
>
> react-qml is a bridge library that allows to use React.js with QML.
>
> Example
>
> Usage of ReactQml is pretty straightforward — the only difference from web
> version is that you need to pass id of the qml item to React.render instead
> of DOM node. For example:
>
> import QtQuick 2.4
> import QtQuick.Controls 1.3
> import "js/ReactQml.js" as React
>
> ApplicationWindow {
> id: root
> title: qsTr("React QML")
> width: 300
> height: 300
> visible: true
>
> function reactRender(x, y) {
> var props = {
> x: 100,
> y: 100,
> width: 100,
> height: 100,
> color: '#000'
> };
> var childProps = {
> x: 25,
> y: 25,
> width: 50,
> height: 50,
> color: '#fff'
> };
> var child = React.createElement(React.Rectangle, childProps);
> React.render(React.createElement(React.Rectangle, props, child),
> root);
> }
>
> Component.onCompleted: {
> reactRender();
> }
> }
>
>
>
> -Ed
>
>
> On May 2, 2016, at 1:50 PM, Robert Iakobashvili  wrote:
>
> Dear Ekke,
> Thank you for sharing your experience with
> qt.labs.controls Qt Quick Controls2 in 5.7.
>
> Sure, we'll be reading you blog.
>
> Kind regards,
> Robert
>
>
> On Mon, May 2, 2016 at 8:38 PM, ekke  wrote:
>
> I really like the new qt.labs.controls from Qt 5.6 (will become Qt Quick
> Controls2 in 5.7)
> using these lightweight controls together with Material Style (Android) or
> Universal Style (Windows) with light or dark themes and all the new Controls
> (like Drawer) for mobile-app-navigation and also HighDPI Support you can now
> first time ever develop mobile apps with nearly native feeling. (iOS style
> will come later when the new controls are stable)
>
> I prefer to write UI in QML compared with React Native's mix of Markup and
> JS or using Xamarin where you have one language but different code for
> x-platform.
>
> Before leaving QT for mobile apps - give it a try.
> BTW: I'm writing a blog series about my experiences
> https://urldefense.proofpoint.com/v2/url?u=http-3A__j.mp_qt-2Dx&d=CwIGaQ&c=G4BpsyPyB19LB50bn2swXw&r=cAG2c-SQES5P2qb8IW-uwnBOCX_f2qYJIlzenFnoHUc&m=5X_i0s6I6cbSYRP1ZGUPRMZL0OkDR9nmhuR8RAiIems&s=13ftz5U9_dHo8BjIh3RKmuX9DkqPXcAx9ctnx5a0YHA&e=
> and
> I'll develop - as proof of concept - Conference APPs for QtCon and Qt World
> Summit.
>
> ekke
>
> Am 02.05.16 um 20:17 schrieb Robert Iakobashvili:
>
> Dear Edward,
> React Native - good catch.
>
> Thank you so much for sharing this idea
> and your experience!
>
> Kind regards,
> Robert
>
>
> On Mon, May 2, 2016 at 8:08 PM, Edward Sutton 
> wrote:
>
> On May 1, 2016, at 4:27 AM, Robert Iakobashvili  wrote:
>
> Dear Edward,
> What are your conclusions and which direction you decided on
> after your experiments?
>
>
> I never made much progress. While QML looked more "native like” I never felt
> comfortable using it.
>
> I am doing my new iOS and Android development using Facebook's react-native.
> React Native calls native UI from Javascript.
>
> https://urldefense.proofpoint.com/v2/url?u=https-3A__face

[Interest] Is anyone here doing Qt mobile development relying on payment subscriptions?

2017-10-02 Thread Nuno Santos
Hi,

I’m using Qt Purchasing to handle mobile in-app purchases. 

Qt Purchasing doesn’t seem to support subscriptions.

Is anyone here with an app that supports subscriptions? How are you handling it?

Regards,

Nuno
___
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest


Re: [Interest] QDataStream not increasing position of QByteArray

2017-10-02 Thread Thiago Macieira
On Monday, 2 October 2017 05:23:21 PDT stephan.ebel...@hs-anhalt.de wrote:
> Dear Qt-list-members,
> 
> 
> 
> i got the following problem with Qt and i hope that you can help me:
> 
> 
> When I write raw network bytes to a QDataStream object repeatedly, the
> QDataStream never increases the write position of the underlying
> QByteArray.

What write position of a QByteArray? The write position belongs to the 
QDataStream, not the array.

> QByteArray recvBuf;
> int bytePosition = 0;
> 
> void init( ){
> recvBuf = QByteArray( 240 * 10, Qt::Uninitiliazed );
> }
> 
> void receiveAppend( ){
> QByteArray buffer( 240, Qt::Uninitialized );
> QDataStream datastream( recvBuf, QIODevice::WriteOnly );

This line doesn't compile. I assume you meant
QDataStream datastream( &recvBuf, QIODevice::WriteOnly );

> datastream.setByteOrder( QDataStream::LittleEndian );
> 
> if( udpSocket->readDataGram( buffer.data(), buffer.size(), &ip, &port ){

You should try the receiveDatagram() function.

>   datastream.device().seek( bytePosition );

datastream.device() here is a QBuffer that QDataStream created internally to 
wrap the QByteArray.

> datastream.writeRawData( buffer.data(), buffer.size() );
> bytePosition += 240;
> }
> }
> 
> 
> Why is this happening?

Why is what happening? What is the issue?

Describe what's happening and what you expected to happen.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

___
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest


Re: [Interest] QDataStream not increasing position of QByteArray

2017-10-02 Thread Henry Skoglund

On 2017-10-02 14:23, stephan.ebel...@hs-anhalt.de wrote:


Dear Qt-list-members,


i got the following problem with Qt and i hope that you can help me:


When I write raw network bytes to a QDataStream object repeatedly, the 
QDataStream never increases the write position of the underlying QByteArray.


Here's the code:

|QByteArray recvBuf; int bytePosition = 0; void init( ){ recvBuf = 
QByteArray( 240 * 10, Qt::Uninitiliazed ); } void receiveAppend( ){ 
QByteArray buffer( 240, Qt::Uninitialized ); QDataStream datastream( 
recvBuf, QIODevice::WriteOnly ); datastream.setByteOrder( 
QDataStream::LittleEndian ); if( udpSocket->readDataGram( buffer.data(), 
buffer.size(), &ip, &port ){ datastream.device().seek( bytePosition ); 
datastream.writeRawData( buffer.data(), buffer.size() ); bytePosition += 
240; } } |


Why is this happening?

The code works fine on Linux Mint 18 64Bit. But it's not working on 
Windows 10 64Bit. I'm using Qt Creator 4.3.1 with Qt 5.9.1.





Maybe a stupid question, but you're sure you're receiving the same 240 
network bytes in Win10 as you do in Mint? If you do a trace printout of 
the buffer.size() in receiveAppend(), is it the same in both systems?

Maybe Win10's firewall is messing the program...

Rgrds Henry

___
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest


[Interest] QDataStream not increasing position of QByteArray

2017-10-02 Thread stephan.ebel...@hs-anhalt.de

Dear Qt-list-members,



i got the following problem with Qt and i hope that you can help me:


When I write raw network bytes to a QDataStream object repeatedly, the 
QDataStream never increases the write position of the underlying QByteArray.

Here's the code:

QByteArray recvBuf;
int bytePosition = 0;

void init( ){
recvBuf = QByteArray( 240 * 10, Qt::Uninitiliazed );
}

void receiveAppend( ){
QByteArray buffer( 240, Qt::Uninitialized );
QDataStream datastream( recvBuf, QIODevice::WriteOnly );
datastream.setByteOrder( QDataStream::LittleEndian );

if( udpSocket->readDataGram( buffer.data(), buffer.size(), &ip, &port ){
datastream.device().seek( bytePosition );
datastream.writeRawData( buffer.data(), buffer.size() );
bytePosition += 240;
}
}


Why is this happening?

The code works fine on Linux Mint 18 64Bit. But it's not working on Windows 10 
64Bit. I'm using Qt Creator 4.3.1 with Qt 5.9.1.


I appreciate your help.


Best regards

Stephan Ebeling
___
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest


[Interest] Clarification or Update required on Qt Blog to install QT on Tinkerboard.

2017-10-02 Thread Ben W via Interest
Hi,
I like many others are trying build qt for asus tinker board according to
this qt blog post:
https://blog.qt.io/blog/2017/05/03/qt-git-tinkerboard-wayland/

I have spent quite some time going over this with no results. As the guide
cross-references another guide (https://wiki.qt.io/RaspberryPi2EGLFS) it
could become easy to make a mistake. To help I have included a short guide
of what I've done. But this will need to be verified.

The original blog that was created a short time ago also has some hyperlink
issues around downloading the toolchain and there are some command issues
when using: rsync -e ssh avz instead of rsync -avz.

I believe there will also need to be some clarification on what system the
blog was performed on (i.e Ubuntu, Debian) and also if the dev- branch of a
qtbase is still required.

Also, I think the additional instruction is necessary on setting up the Qt
environment as there are linking issues with the qmake. please reference
https://forum.qt.io/topic/83776/can-t-build-qt-for-tinkerboard

Please see the attached for the draft user guide.

Thank you
Loading QT on to Asus Tinker

http://blog.qt.io/blog/2017/05/03/qt-git-tinkerboard-wayland/#comments
https://wiki.qt.io/RaspberryPi2EGLFS

Download latest Cross-compiler for x64
https://releases.linaro.org/components/toolchain/binaries/6.3-2017.02/arm-linux-gnueabihf/

Extract and rename to 'toolchain' and place into /tinker folder

Download latest “wayland” variant from the Firefly RK3288 section
https://developer.arm.com/products/software/mali-drivers/user-space

[on Tinker] copy EGL/GLES/GBM/wayland-egl libraries to 
/usr/lib/arm-linux-gnueabihf.

1)[on Tinker] Install a bunch of development files (for simplicity we use 
build-dep, not everything is really needed, but it is easier this way). 

A- Disable auto-starting X
Command = sudo systemctl set-default multi-user.target or 
systemctl set-default graphical.target (to restore GUI)
1- Edit sources list in /etc/apt/sources.list with use of your favorite 
editor (nano / vi) and uncomment the 'deb-src' line:
Command = sudo nano /etc/apt/sources.list
2- Update your system and install required libraries:
Command = sudo apt-get update
Command = sudo apt-get build-dep qt4-x11 libqt5gui5 wayland 
weston
3- Prepare our target directory
Command = sudo mkdir /usr/local/qt5
Command = sudo chown linaro:linaro /usr/local/qt5
4- Give Root Password
Command = sudo passwd root
Command = Password
Command = Password

2)[on Host] Create a sysroot on the host:

Command = rsync -avz linaro@192.168.0.48:/lib ~/tinker/sysroot
Command = rsync -avz linaro@192.168.0.48:/usr/include 
~/tinker/sysroot/usr
Command = rsync -avz linaro@192.168.0.48:/usr/lib ~/tinker/sysroot/usr

3)[on Host] Make all symlinks relative: 

Command = cd ~/tinker
Command = wget 
https://raw.githubusercontent.com/riscv/riscv-poky/master/scripts/sysroot-relativelinks.py
Command = chmod +x sysroot-relativelinks.py
Command = ./sysroot-relativelinks.py sysroot 

4) [on Host] Configure with -device linux-tinkerboard-g++: 

Command = git clone git://code.qt.io/qt/qtbase.git -b dev
//or
Command = git clone git://code.qt.io/qt/qtbase.git -b 5.10

Command = cd qtbase
Command =   ./configure -release -opengl es2 -nomake examples 
-nomake tests -opensource -confirm-license -v \
-device tinkerboard -device-option 
CROSS_COMPILE=~/tinker/toolchain/bin/arm-linux-gnueabihf- \
-sysroot ~/tinker/sysroot -prefix 
/usr/local/qt5 -extprefix ~/tinker/qt5 -hostprefix ~/tinker/qt5-host

Command = make
Command = make install

5)[on Host] rsyn to tinker
return to /tinker
Command = rsync -avz qt5 linaro@192.168.0.48:/usr/local

6)[on Host] Set up QT device and Kit.___
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest