From bchen at topcon.com Sun Apr 1 10:33:12 2018 From: bchen at topcon.com (Bin Chen) Date: Sun, 1 Apr 2018 08:33:12 +0000 Subject: [Interest] Rotating leaves In-Reply-To: <18f4fbc3-f4f3-7260-fbe8-7da012bfa387@gmail.com> References: <0dc52dc9-1213-74cf-5921-e5509b2e107f@gmail.com> <8524cee9-25b6-1cbf-8dfd-e7e016d087ef@gmail.com> <18f4fbc3-f4f3-7260-fbe8-7da012bfa387@gmail.com> Message-ID: <7AC6E5C8-84BA-496C-9F67-4A9ECD8D82F9@topcon.com> Hi, Igor, To get a rotation quaternion from a vector to the other, in your case, the leave normal(0,1,0) and the branch direction (-1, 0, 0), I would use QQuaterion::rotationTo(QVector3D(0, 1, 0), QVector3D(-1, 0, 0)). Cheers, Bin On 1 Apr 2018, at 2:45 am, Igor Mironchik > wrote: Vectors are normalized. On 31.03.2018 19:44, Igor Mironchik wrote: Hi, Sorry for the inaccuracy... <20180331_194006.jpg> On 31.03.2018 12:44, Igor Mironchik wrote: Hi, Not sure how, but I did: static inline bool lessZero( const QVector3D & v ) { return ( v.x() < 0.0f || v.y() < 0.0f || v.z() < 0.0f ); } ... Sorry for skipped code, just hope that I'm clear. if( lessZero( branch ) ) plainAngle = -plainAngle; And seems that with inverting angle of rotation of leaf's plain to branch on less zero components in branch vector always set leaf perpendicularly to branch. Could anybody explain the math here, please? Not sure in this solution but it works :) On 31.03.2018 11:00, Igor Mironchik wrote: Hello, The task is simple on one side and complicated on another. I need to rotate a leaf around a branch to make leaf perpendicular to branch. In theory all is simple... <20180331_104936.jpg> Great. In the code I have... const QVector3D branch(...); const QVector3D leaf( 0.0f, 1.0f, 0.0f ); const QVector3D axis = QVector3D::crossProduct( branch, leaf ); const float cosPlainAngle = QVector3D::dotProduct( branch, leaf ); const float plainAngle = qRadiansToDegrees( std::acos( cosPlainAngle ) ); const QQuaternion quat = Qt3DCore::QTransform::fromAxisAndAngle( axis, plainAngle ); m_transform->setRotation( quat ); But it works correctly not in all situations. In some cases I need to increment plainAngle by 90.0 degrees. So my question is what should I care in the code to handle all situations correctly? Thank you. _______________________________________________ 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=DwICAg&c=-0XTxx5JZxtPyuSXdvX8qQ&r=_JxpcpJpSMrVwuVMK05qMw&m=R-OlZxgObG558WAzim2UDFNCM-g-6GCfsB8tcwXf54s&s=YmBmeODv8jueT9scHHt5smTmtq-6765c2jqCxwK2ew8&e= Confidentiality Notice: This message (including attachments) is a private communication solely for use of the intended recipient(s). If you are not the intended recipient(s) or believe you received this message in error, notify the sender immediately and then delete this message. Any other use, retention, dissemination or copying is prohibited and may be a violation of law, including the Electronic Communication Privacy Act of 1986. -------------- next part -------------- An HTML attachment was scrubbed... URL: From kshegunov at gmail.com Sun Apr 1 11:48:12 2018 From: kshegunov at gmail.com (Konstantin Shegunov) Date: Sun, 1 Apr 2018 12:48:12 +0300 Subject: [Interest] Rotating leaves In-Reply-To: <18f4fbc3-f4f3-7260-fbe8-7da012bfa387@gmail.com> References: <0dc52dc9-1213-74cf-5921-e5509b2e107f@gmail.com> <8524cee9-25b6-1cbf-8dfd-e7e016d087ef@gmail.com> <18f4fbc3-f4f3-7260-fbe8-7da012bfa387@gmail.com> Message-ID: Hi Igor, What Bin Chen wrote is probably the most painless way of achieving what you want. If you are however interested in the math, here goes my stab: If I understand you correctly, you know the leaf normal, and the branch direction vector, then you're searching for the matrix that transforms the former to the latter. Basically you need to find the matrix that satisfies: b = A * n (b is the branch direction, n is the leaf normal). This equation however is underdetemined, meaning you can have several rotations done in sequence that give you the same result, so you'd need to do some "trickery". One of the usual ways to solve such a problem is to use Euler angles[1], where the idea is to make elemental rotations with respect to the principle axes of the (global) coordinate systems. To that end you'd need to calculate the projections (i.e. dot products) of b and n to the principal axes and extract the angles of rotation from there, then construct each rotation matrix around a principal axis of the coordinate system and finally multiply them to obtain the final transformation. [1]: https://en.wikipedia.org/wiki/Euler_angles I hope that helps. Konstantin. -------------- next part -------------- An HTML attachment was scrubbed... URL: From igor.mironchik at gmail.com Sun Apr 1 12:56:04 2018 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Sun, 1 Apr 2018 13:56:04 +0300 Subject: [Interest] Rotating leaves In-Reply-To: References: <0dc52dc9-1213-74cf-5921-e5509b2e107f@gmail.com> <8524cee9-25b6-1cbf-8dfd-e7e016d087ef@gmail.com> <18f4fbc3-f4f3-7260-fbe8-7da012bfa387@gmail.com> Message-ID: Hi, Sure, I know this... const QVector3D branch(...); const QVector3D leaf( 0.0f, 1.0f, 0.0f ); const QVector3D axis = QVector3D::crossProduct( branch, leaf ); const float cosPlainAngle = QVector3D::dotProduct( branch, leaf ); const float plainAngle = qRadiansToDegrees( std::acos( cosPlainAngle ) ); const QQuaternion quat = Qt3DCore::QTransform::fromAxisAndAngle( axis, plainAngle ); m_transform->setRotation( quat ); But in a view of Qt 3D this is only a half of the solution. In a half of cases this works, but in another cases I need -plainAngle. So at this point I found the next solution: static inline bool lessZero( const QVector3D & v ) {     return ( v.x() < 0.0f || v.y() < 0.0f || v.z() < 0.0f ); } if( lessZero( branch ) )         plainAngle = -plainAngle; So I actually asked not for the math as it is but for checking of my solution for correctness. On 01.04.2018 12:48, Konstantin Shegunov wrote: > Hi Igor, > What Bin Chen wrote is probably the most painless way of achieving > what you want. If you are however interested in the math, here goes my > stab: > If I understand you correctly, you know the leaf normal, and the > branch direction vector, then you're searching for the matrix that > transforms the former to the latter. > Basically you need to find the matrix that satisfies: b = A  * n (b is > the branch direction, n is the leaf normal). > This equation however is underdetemined, meaning you can have several > rotations done in sequence that give you the same result, so you'd > need to do some "trickery". One of the usual ways to solve such a > problem is to use Euler angles[1], where the idea is to make elemental > rotations with respect to the principle axes of the (global) > coordinate systems. To that end you'd need to calculate the > projections (i.e. dot products) of b and n to the principal axes and > extract the angles of rotation from there, then construct each > rotation matrix around a principal axis of the coordinate system and > finally multiply them to obtain the final transformation. > > [1]: https://en.wikipedia.org/wiki/Euler_angles > > > I hope that helps. > Konstantin. -------------- next part -------------- An HTML attachment was scrubbed... URL: From himvish997 at gmail.com Sun Apr 1 15:43:03 2018 From: himvish997 at gmail.com (Himanshu Vishwakarma) Date: Sun, 1 Apr 2018 19:13:03 +0530 Subject: [Interest] Query for qml testing Message-ID: Hi, I am doing the unit testing of a qml file https://github.com/gcompris/GCompris-qt/tree/master/src/activities/balancebox/editor In this file, I want to test the behaviour of change the border.color of Rectangle, while OnClicked on the Rectangle. My question is, Is there is any method to get the border.color value of rectangle in qml?? OR What are the methods by which I can test this file?? Please help me!! Thanks!! -- Regards, Himanshu Vishwakarma From bchen at topcon.com Sun Apr 1 22:56:15 2018 From: bchen at topcon.com (Bin Chen) Date: Sun, 1 Apr 2018 20:56:15 +0000 Subject: [Interest] Rotating leaves In-Reply-To: References: <0dc52dc9-1213-74cf-5921-e5509b2e107f@gmail.com> <8524cee9-25b6-1cbf-8dfd-e7e016d087ef@gmail.com> <18f4fbc3-f4f3-7260-fbe8-7da012bfa387@gmail.com> Message-ID: Hi, Igor, 1. plainAngle is between 0~180, you want to know when you need to invert it? I assumed m_transform is for leaf, then swap branch and leaf in QVector3D::crossProduct. No need lessZero() function. 2. In this case, be careful when branch and leaf are in the same line (same or opposite directions) , crossProduct produces null vector3d. Regards, Bin On 1 Apr 2018, at 8:56 pm, Igor Mironchik > wrote: Hi, Sure, I know this... const QVector3D branch(...); const QVector3D leaf( 0.0f, 1.0f, 0.0f ); const QVector3D axis = QVector3D::crossProduct( branch, leaf ); const float cosPlainAngle = QVector3D::dotProduct( branch, leaf ); const float plainAngle = qRadiansToDegrees( std::acos( cosPlainAngle ) ); const QQuaternion quat = Qt3DCore::QTransform::fromAxisAndAngle( axis, plainAngle ); m_transform->setRotation( quat ); But in a view of Qt 3D this is only a half of the solution. In a half of cases this works, but in another cases I need -plainAngle. So at this point I found the next solution: static inline bool lessZero( const QVector3D & v ) { return ( v.x() < 0.0f || v.y() < 0.0f || v.z() < 0.0f ); } if( lessZero( branch ) ) plainAngle = -plainAngle; So I actually asked not for the math as it is but for checking of my solution for correctness. On 01.04.2018 12:48, Konstantin Shegunov wrote: Hi Igor, What Bin Chen wrote is probably the most painless way of achieving what you want. If you are however interested in the math, here goes my stab: If I understand you correctly, you know the leaf normal, and the branch direction vector, then you're searching for the matrix that transforms the former to the latter. Basically you need to find the matrix that satisfies: b = A * n (b is the branch direction, n is the leaf normal). This equation however is underdetemined, meaning you can have several rotations done in sequence that give you the same result, so you'd need to do some "trickery". One of the usual ways to solve such a problem is to use Euler angles[1], where the idea is to make elemental rotations with respect to the principle axes of the (global) coordinate systems. To that end you'd need to calculate the projections (i.e. dot products) of b and n to the principal axes and extract the angles of rotation from there, then construct each rotation matrix around a principal axis of the coordinate system and finally multiply them to obtain the final transformation. [1]: https://en.wikipedia.org/wiki/Euler_angles I hope that helps. Konstantin. _______________________________________________ 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=DwICAg&c=-0XTxx5JZxtPyuSXdvX8qQ&r=_JxpcpJpSMrVwuVMK05qMw&m=JDoIqjY-zYljVJcp8DYX1co3l1ElN2hO1_68-23VIAU&s=iR7_jc5oqZY41bU9FD_ergWeOPoFC0aUG4SyhsDkHIY&e= Confidentiality Notice: This message (including attachments) is a private communication solely for use of the intended recipient(s). If you are not the intended recipient(s) or believe you received this message in error, notify the sender immediately and then delete this message. Any other use, retention, dissemination or copying is prohibited and may be a violation of law, including the Electronic Communication Privacy Act of 1986. -------------- next part -------------- An HTML attachment was scrubbed... URL: From bchen at topcon.com Sun Apr 1 23:27:19 2018 From: bchen at topcon.com (Bin Chen) Date: Sun, 1 Apr 2018 21:27:19 +0000 Subject: [Interest] Rotating leaves In-Reply-To: References: <0dc52dc9-1213-74cf-5921-e5509b2e107f@gmail.com> <8524cee9-25b6-1cbf-8dfd-e7e016d087ef@gmail.com> <18f4fbc3-f4f3-7260-fbe8-7da012bfa387@gmail.com> Message-ID: Should not need to invert plainAngle, a code segment for you: QVector3D leaf(1, 1, 0); leaf.normalize(); //need to be normalised otherwise the angle could be wrong. qDebug()<> wrote: Hi, Igor, 1. plainAngle is between 0~180, you want to know when you need to invert it? I assumed m_transform is for leaf, then swap branch and leaf in QVector3D::crossProduct. No need lessZero() function. 2. In this case, be careful when branch and leaf are in the same line (same or opposite directions) , crossProduct produces null vector3d. Regards, Bin On 1 Apr 2018, at 8:56 pm, Igor Mironchik > wrote: Hi, Sure, I know this... const QVector3D branch(...); const QVector3D leaf( 0.0f, 1.0f, 0.0f ); const QVector3D axis = QVector3D::crossProduct( branch, leaf ); const float cosPlainAngle = QVector3D::dotProduct( branch, leaf ); const float plainAngle = qRadiansToDegrees( std::acos( cosPlainAngle ) ); const QQuaternion quat = Qt3DCore::QTransform::fromAxisAndAngle( axis, plainAngle ); m_transform->setRotation( quat ); But in a view of Qt 3D this is only a half of the solution. In a half of cases this works, but in another cases I need -plainAngle. So at this point I found the next solution: static inline bool lessZero( const QVector3D & v ) { return ( v.x() < 0.0f || v.y() < 0.0f || v.z() < 0.0f ); } if( lessZero( branch ) ) plainAngle = -plainAngle; So I actually asked not for the math as it is but for checking of my solution for correctness. On 01.04.2018 12:48, Konstantin Shegunov wrote: Hi Igor, What Bin Chen wrote is probably the most painless way of achieving what you want. If you are however interested in the math, here goes my stab: If I understand you correctly, you know the leaf normal, and the branch direction vector, then you're searching for the matrix that transforms the former to the latter. Basically you need to find the matrix that satisfies: b = A * n (b is the branch direction, n is the leaf normal). This equation however is underdetemined, meaning you can have several rotations done in sequence that give you the same result, so you'd need to do some "trickery". One of the usual ways to solve such a problem is to use Euler angles[1], where the idea is to make elemental rotations with respect to the principle axes of the (global) coordinate systems. To that end you'd need to calculate the projections (i.e. dot products) of b and n to the principal axes and extract the angles of rotation from there, then construct each rotation matrix around a principal axis of the coordinate system and finally multiply them to obtain the final transformation. [1]: https://en.wikipedia.org/wiki/Euler_angles I hope that helps. Konstantin. _______________________________________________ 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=DwICAg&c=-0XTxx5JZxtPyuSXdvX8qQ&r=_JxpcpJpSMrVwuVMK05qMw&m=JDoIqjY-zYljVJcp8DYX1co3l1ElN2hO1_68-23VIAU&s=iR7_jc5oqZY41bU9FD_ergWeOPoFC0aUG4SyhsDkHIY&e= Confidentiality Notice: This message (including attachments) is a private communication solely for use of the intended recipient(s). If you are not the intended recipient(s) or believe you received this message in error, notify the sender immediately and then delete this message. Any other use, retention, dissemination or copying is prohibited and may be a violation of law, including the Electronic Communication Privacy Act of 1986. ­­ _______________________________________________ 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=DwICAg&c=-0XTxx5JZxtPyuSXdvX8qQ&r=_JxpcpJpSMrVwuVMK05qMw&m=nHrhwk4S5WvpRCt_L5kjrmu0TsN_Z7QJiFo25Ag8S68&s=TuS764QNXF7T54enNeovGhF4QQh06cFNgQqhgdlNqOU&e= -------------- next part -------------- An HTML attachment was scrubbed... URL: From igor.mironchik at gmail.com Mon Apr 2 06:42:35 2018 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Mon, 2 Apr 2018 07:42:35 +0300 Subject: [Interest] Rotating leaves In-Reply-To: References: <0dc52dc9-1213-74cf-5921-e5509b2e107f@gmail.com> <8524cee9-25b6-1cbf-8dfd-e7e016d087ef@gmail.com> <18f4fbc3-f4f3-7260-fbe8-7da012bfa387@gmail.com> Message-ID: <9a65c8a3-0b4f-48ff-da83-ed1c20a77ccb@gmail.com> Hi, On 01.04.2018 23:56, Bin Chen wrote: > Hi, Igor, > > 1. plainAngle is between 0~180, you want to know when you need to > invert it? >     I assumed m_transform is for leaf, then swap branch and leaf in > QVector3D::crossProduct. >     No need lessZero() function. Big thanks. Great, swapping helped. So the rule is when you need to rotate something around some axis then first argument of QVector3D::crossProduct and QVector3D::dotProduct should be that vector that should be rotated? > > 2. In this case, be careful when branch and leaf are in the same line > (same or opposite directions)  , crossProduct produces null vector3d. > > Regards, > > Bin > > >> On 1 Apr 2018, at 8:56 pm, Igor Mironchik > > wrote: >> >> Hi, >> >> Sure, I know this... >> >> const QVector3D branch(...); >> const QVector3D leaf( 0.0f, 1.0f, 0.0f ); >> const QVector3D axis = QVector3D::crossProduct( branch, leaf ); >> const float cosPlainAngle = QVector3D::dotProduct( branch, leaf ); >> const float plainAngle = qRadiansToDegrees( std::acos( cosPlainAngle ) ); >> const QQuaternion quat = Qt3DCore::QTransform::fromAxisAndAngle( >> axis, plainAngle ); >> m_transform->setRotation( quat ); >> >> But in a view of Qt 3D this is only a half of the solution. In a half >> of cases this works, but in another cases I need -plainAngle. >> >> So at this point I found the next solution: >> >> static inline bool lessZero( const QVector3D & v ) >> { >>     return ( v.x() < 0.0f || v.y() < 0.0f || v.z() < 0.0f ); >> } >> >> if( lessZero( branch ) ) >>         plainAngle = -plainAngle; >> >> So I actually asked not for the math as it is but for checking of my >> solution for correctness. >> >> On 01.04.2018 12:48, Konstantin Shegunov wrote: >>> Hi Igor, >>> What Bin Chen wrote is probably the most painless way of achieving >>> what you want. If you are however interested in the math, here goes >>> my stab: >>> If I understand you correctly, you know the leaf normal, and the >>> branch direction vector, then you're searching for the matrix that >>> transforms the former to the latter. >>> Basically you need to find the matrix that satisfies: b = A  * n (b >>> is the branch direction, n is the leaf normal). >>> This equation however is underdetemined, meaning you can have >>> several rotations done in sequence that give you the same result, so >>> you'd need to do some "trickery". One of the usual ways to solve >>> such a problem is to use Euler angles[1], where the idea is to make >>> elemental rotations with respect to the principle axes of the >>> (global) coordinate systems. To that end you'd need to calculate the >>> projections (i.e. dot products) of b and n to the principal axes and >>> extract the angles of rotation from there, then construct each >>> rotation matrix around a principal axis of the coordinate system and >>> finally multiply them to obtain the final transformation. >>> >>> [1]: https://en.wikipedia.org/wiki/Euler_angles >>> >>> >>> I hope that helps. >>> Konstantin. >> >> _______________________________________________ >> 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=DwICAg&c=-0XTxx5JZxtPyuSXdvX8qQ&r=_JxpcpJpSMrVwuVMK05qMw&m=JDoIqjY-zYljVJcp8DYX1co3l1ElN2hO1_68-23VIAU&s=iR7_jc5oqZY41bU9FD_ergWeOPoFC0aUG4SyhsDkHIY&e= > > Confidentiality Notice: This message (including attachments) is a > private communication solely for use of the intended recipient(s). If > you are not the intended recipient(s) or believe you received this > message in error, notify the sender immediately and then delete this > message. Any other use, retention, dissemination or copying is > prohibited and may be a violation of law, including the Electronic > Communication Privacy Act of 1986.   ­­ -------------- next part -------------- An HTML attachment was scrubbed... URL: From dan at jerber.co.uk Mon Apr 2 15:12:52 2018 From: dan at jerber.co.uk (Dan Allen) Date: Mon, 2 Apr 2018 14:12:52 +0100 Subject: [Interest] QStyleOptionProgressBar Message-ID: <2d1de783-0db6-19d2-68c6-4445c6b662e9@jerber.co.uk> Hi, I'm currently writing a sub class of QStyledItemDelegate to draw a progress bar. The progress bar is drawn using QApplication::style()->drawControl(QStyle::CE_ProgressBar, option, painter) and this works fine on Windows and Ubuntu. However, on Mac the progress bar has a "disabled" look. The bar is grey instead of the usual blue colour. It appears someone posted on the Qt forum about this issue some years ago but there was no response. Is there any possible reason for this or is it likely a bug? I couldn't find a bug reported about it. Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From bchen at topcon.com Mon Apr 2 15:15:42 2018 From: bchen at topcon.com (Bin Chen) Date: Mon, 2 Apr 2018 13:15:42 +0000 Subject: [Interest] Rotating leaves In-Reply-To: <9a65c8a3-0b4f-48ff-da83-ed1c20a77ccb@gmail.com> References: <0dc52dc9-1213-74cf-5921-e5509b2e107f@gmail.com> <8524cee9-25b6-1cbf-8dfd-e7e016d087ef@gmail.com> <18f4fbc3-f4f3-7260-fbe8-7da012bfa387@gmail.com> , <9a65c8a3-0b4f-48ff-da83-ed1c20a77ccb@gmail.com> Message-ID: <5AE5384C-81A2-48FF-B67F-8C54C44AE657@topcon.com> Yes when you are using QQuarternion::fromAxisAndAngle() and crossProduct. The angle around the axis is defined as counter clockwise when you look at the axis (the axis is pointing towards you). dotProduct doesn’t mater the order of the vectors. Cheers, Bin 陳斌 Bin Chen On 2 Apr 2018, at 2:42 pm, Igor Mironchik > wrote: Hi, On 01.04.2018 23:56, Bin Chen wrote: Hi, Igor, 1. plainAngle is between 0~180, you want to know when you need to invert it? I assumed m_transform is for leaf, then swap branch and leaf in QVector3D::crossProduct. No need lessZero() function. Big thanks. Great, swapping helped. So the rule is when you need to rotate something around some axis then first argument of QVector3D::crossProduct and QVector3D::dotProduct should be that vector that should be rotated? 2. In this case, be careful when branch and leaf are in the same line (same or opposite directions) , crossProduct produces null vector3d. Regards, Bin On 1 Apr 2018, at 8:56 pm, Igor Mironchik > wrote: Hi, Sure, I know this... const QVector3D branch(...); const QVector3D leaf( 0.0f, 1.0f, 0.0f ); const QVector3D axis = QVector3D::crossProduct( branch, leaf ); const float cosPlainAngle = QVector3D::dotProduct( branch, leaf ); const float plainAngle = qRadiansToDegrees( std::acos( cosPlainAngle ) ); const QQuaternion quat = Qt3DCore::QTransform::fromAxisAndAngle( axis, plainAngle ); m_transform->setRotation( quat ); But in a view of Qt 3D this is only a half of the solution. In a half of cases this works, but in another cases I need -plainAngle. So at this point I found the next solution: static inline bool lessZero( const QVector3D & v ) { return ( v.x() < 0.0f || v.y() < 0.0f || v.z() < 0.0f ); } if( lessZero( branch ) ) plainAngle = -plainAngle; So I actually asked not for the math as it is but for checking of my solution for correctness. On 01.04.2018 12:48, Konstantin Shegunov wrote: Hi Igor, What Bin Chen wrote is probably the most painless way of achieving what you want. If you are however interested in the math, here goes my stab: If I understand you correctly, you know the leaf normal, and the branch direction vector, then you're searching for the matrix that transforms the former to the latter. Basically you need to find the matrix that satisfies: b = A * n (b is the branch direction, n is the leaf normal). This equation however is underdetemined, meaning you can have several rotations done in sequence that give you the same result, so you'd need to do some "trickery". One of the usual ways to solve such a problem is to use Euler angles[1], where the idea is to make elemental rotations with respect to the principle axes of the (global) coordinate systems. To that end you'd need to calculate the projections (i.e. dot products) of b and n to the principal axes and extract the angles of rotation from there, then construct each rotation matrix around a principal axis of the coordinate system and finally multiply them to obtain the final transformation. [1]: https://en.wikipedia.org/wiki/Euler_angles I hope that helps. Konstantin. _______________________________________________ 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=DwICAg&c=-0XTxx5JZxtPyuSXdvX8qQ&r=_JxpcpJpSMrVwuVMK05qMw&m=JDoIqjY-zYljVJcp8DYX1co3l1ElN2hO1_68-23VIAU&s=iR7_jc5oqZY41bU9FD_ergWeOPoFC0aUG4SyhsDkHIY&e= Confidentiality Notice: This message (including attachments) is a private communication solely for use of the intended recipient(s). If you are not the intended recipient(s) or believe you received this message in error, notify the sender immediately and then delete this message. Any other use, retention, dissemination or copying is prohibited and may be a violation of law, including the Electronic Communication Privacy Act of 1986. ­­ -------------- next part -------------- An HTML attachment was scrubbed... URL: From jhihn at gmx.com Mon Apr 2 15:55:53 2018 From: jhihn at gmx.com (Jason H) Date: Mon, 2 Apr 2018 15:55:53 +0200 Subject: [Interest] Not sure why QML module not found errors In-Reply-To: References: Message-ID: Can someone tell me what is going on? This is getting very frustrating. If the new Creator is giving me these messages all the time, I'm not going to use it. The code completion is completely borked when developing for Android. I've got to switch back to Desktop to code, then back to android to deploy. I shouldn't have to do that. If it's a problem with Qt, then that needs to be fixed too. > Sent: Friday, March 30, 2018 at 4:27 PM > From: "Jason H" > To: qt-creator , "interestqt-project.org" > Subject: [Interest] Not sure why QML module not found errors > > I'm not sure if this is a Qt or Creator issue, but when using an Android profile: > import QtQuick 2.10 > import QtMultimedia 5.8 // O QML Module not Found (QtMultimedia) > import QtSensors 5.8 // O QML Module not Found (QtSensors) > import QtQuick.Window 2.3 // O QML Module not Found (QtQuick.Window) > > It's fine for not-android. But I do have Qt 5.10.1 installed and Android configured. > It compiles, it just doesn't highlight Camera, VideoOutput, Window, etc. > > And yes, I have QT += quick multimedia sensors in my .pro > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > -------------- next part -------------- A non-text attachment was scrubbed... Name: Screen Shot 2018-04-02 at 9.53.05 AM.png Type: image/png Size: 22406 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Screen Shot 2018-04-02 at 9.53.14 AM.png Type: image/png Size: 48308 bytes Desc: not available URL: From jhihn at gmx.com Mon Apr 2 16:07:42 2018 From: jhihn at gmx.com (Jason H) Date: Mon, 2 Apr 2018 16:07:42 +0200 Subject: [Interest] Not sure why QML module not found errors In-Reply-To: References: Message-ID: I filed it as a Qt bug, probably having to deal with Android. https://bugreports.qt.io/browse/QTBUG-67435 > Sent: Monday, April 02, 2018 at 9:55 AM > From: "Jason H" > To: "Jason H" > Cc: qt-creator , "interestqt-project.org" > Subject: Re: [Interest] Not sure why QML module not found errors > > Can someone tell me what is going on? This is getting very frustrating. > > If the new Creator is giving me these messages all the time, I'm not going to use it. The code completion is completely borked when developing for Android. I've got to switch back to Desktop to code, then back to android to deploy. I shouldn't have to do that. > > If it's a problem with Qt, then that needs to be fixed too. > > > > Sent: Friday, March 30, 2018 at 4:27 PM > > From: "Jason H" > > To: qt-creator , "interestqt-project.org" > > Subject: [Interest] Not sure why QML module not found errors > > > > I'm not sure if this is a Qt or Creator issue, but when using an Android profile: > > import QtQuick 2.10 > > import QtMultimedia 5.8 // O QML Module not Found (QtMultimedia) > > import QtSensors 5.8 // O QML Module not Found (QtSensors) > > import QtQuick.Window 2.3 // O QML Module not Found (QtQuick.Window) > > > > It's fine for not-android. But I do have Qt 5.10.1 installed and Android configured. > > It compiles, it just doesn't highlight Camera, VideoOutput, Window, etc. > > > > And yes, I have QT += quick multimedia sensors in my .pro > > _______________________________________________ > > Interest mailing list > > Interest at qt-project.org > > http://lists.qt-project.org/mailman/listinfo/interest > > From ekke at ekkes-corner.org Mon Apr 2 17:59:39 2018 From: ekke at ekkes-corner.org (ekke) Date: Mon, 2 Apr 2018 17:59:39 +0200 Subject: [Interest] Not sure why QML module not found errors In-Reply-To: References: Message-ID: <0903682f-340a-964d-b142-f97f803fd586@ekkes-corner.org> from time to time (since Qt 5.10.1 / QtC 4.5.1) code-completion doesn't work as expected. sometime switching between Android - iOS - Desktop helps, sometimes closing / re-opening the QML files helps, sometimes restarting QtC helps haven't figured out reproducable rules yet to open an Issue just got this blog mentioned at Slack (QtMob): http://www.idees2l.renan.org/2018/03/07/qtcreator-and-code-model-error/ perhaps this is helpful, Jason ? ekke Am 02.04.18 um 16:07 schrieb Jason H: > I filed it as a Qt bug, probably having to deal with Android. > https://bugreports.qt.io/browse/QTBUG-67435 > >> Sent: Monday, April 02, 2018 at 9:55 AM >> From: "Jason H" >> To: "Jason H" >> Cc: qt-creator , "interestqt-project.org" >> Subject: Re: [Interest] Not sure why QML module not found errors >> >> Can someone tell me what is going on? This is getting very frustrating. >> >> If the new Creator is giving me these messages all the time, I'm not going to use it. The code completion is completely borked when developing for Android. I've got to switch back to Desktop to code, then back to android to deploy. I shouldn't have to do that. >> >> If it's a problem with Qt, then that needs to be fixed too. >> >> >>> Sent: Friday, March 30, 2018 at 4:27 PM >>> From: "Jason H" >>> To: qt-creator , "interestqt-project.org" >>> Subject: [Interest] Not sure why QML module not found errors >>> >>> I'm not sure if this is a Qt or Creator issue, but when using an Android profile: >>> import QtQuick 2.10 >>> import QtMultimedia 5.8 // O QML Module not Found (QtMultimedia) >>> import QtSensors 5.8 // O QML Module not Found (QtSensors) >>> import QtQuick.Window 2.3 // O QML Module not Found (QtQuick.Window) >>> >>> It's fine for not-android. But I do have Qt 5.10.1 installed and Android configured. >>> It compiles, it just doesn't highlight Camera, VideoOutput, Window, etc. >>> >>> And yes, I have QT += quick multimedia sensors in my .pro >>> _______________________________________________ >>> 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 jhihn at gmx.com Mon Apr 2 18:11:39 2018 From: jhihn at gmx.com (Jason H) Date: Mon, 2 Apr 2018 18:11:39 +0200 Subject: [Interest] Not sure why QML module not found errors In-Reply-To: <0903682f-340a-964d-b142-f97f803fd586@ekkes-corner.org> References: <0903682f-340a-964d-b142-f97f803fd586@ekkes-corner.org> Message-ID: Neat. So I was able to get it working with the help of that post. I added some details to the bug I filed. If others add their experiences, that might help. It seems to be securely a QtC thing, so I need someone to change it from a Qt bug to to QtC bug. I don't seem to have the power to change that. > Sent: Monday, April 02, 2018 at 11:59 AM > From: ekke > To: "interestqt-project.org" > Cc: qt-creator > Subject: Re: [Interest] Not sure why QML module not found errors > > from time to time (since Qt 5.10.1 / QtC 4.5.1) code-completion doesn't > work as expected. > sometime switching between Android - iOS - Desktop helps, > sometimes closing / re-opening the QML files helps, > sometimes restarting QtC helps > haven't figured out reproducable rules yet to open an Issue > > just got this blog mentioned at Slack (QtMob): > http://www.idees2l.renan.org/2018/03/07/qtcreator-and-code-model-error/ > > perhaps this is helpful, Jason ? > > ekke > > Am 02.04.18 um 16:07 schrieb Jason H: > > I filed it as a Qt bug, probably having to deal with Android. > > https://bugreports.qt.io/browse/QTBUG-67435 > > > >> Sent: Monday, April 02, 2018 at 9:55 AM > >> From: "Jason H" > >> To: "Jason H" > >> Cc: qt-creator , "interestqt-project.org" > >> Subject: Re: [Interest] Not sure why QML module not found errors > >> > >> Can someone tell me what is going on? This is getting very frustrating. > >> > >> If the new Creator is giving me these messages all the time, I'm not going to use it. The code completion is completely borked when developing for Android. I've got to switch back to Desktop to code, then back to android to deploy. I shouldn't have to do that. > >> > >> If it's a problem with Qt, then that needs to be fixed too. > >> > >> > >>> Sent: Friday, March 30, 2018 at 4:27 PM > >>> From: "Jason H" > >>> To: qt-creator , "interestqt-project.org" > >>> Subject: [Interest] Not sure why QML module not found errors > >>> > >>> I'm not sure if this is a Qt or Creator issue, but when using an Android profile: > >>> import QtQuick 2.10 > >>> import QtMultimedia 5.8 // O QML Module not Found (QtMultimedia) > >>> import QtSensors 5.8 // O QML Module not Found (QtSensors) > >>> import QtQuick.Window 2.3 // O QML Module not Found (QtQuick.Window) > >>> > >>> It's fine for not-android. But I do have Qt 5.10.1 installed and Android configured. > >>> It compiles, it just doesn't highlight Camera, VideoOutput, Window, etc. > >>> > >>> And yes, I have QT += quick multimedia sensors in my .pro > >>> _______________________________________________ > >>> 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 > From jeanmichael.celerier at gmail.com Mon Apr 2 23:33:37 2018 From: jeanmichael.celerier at gmail.com (=?UTF-8?Q?Jean=2DMicha=C3=ABl_Celerier?=) Date: Mon, 2 Apr 2018 23:33:37 +0200 Subject: [Interest] CuteCI: visual CI framework Message-ID: Someone shared this on the Qt5 subreddit and I'm pretty sure some people here would be interested: CuteCI: Visual CI framework for Qt5 (QWidget) applications Best, ------- Jean-Michaël Celerier http://www.jcelerier.name -------------- next part -------------- An HTML attachment was scrubbed... URL: From rjvbertin at gmail.com Mon Apr 2 23:40:04 2018 From: rjvbertin at gmail.com (=?ISO-8859-1?Q?Ren=E9_J=2EV=2E?= Bertin) Date: Mon, 02 Apr 2018 23:40:04 +0200 Subject: [Interest] Home built of the "official" Maintenance Tool Message-ID: <6063189.fkq1q6h5Ml@portia.local> Hi, Last time I checked, the (Mac) Maintenance Tool was built with the current Qt version, meaning that users of older OS X versions get locked out when they apply the (compulsory) update. This includes users of the 5.6LTS release. I think it should be possible to get out of the catch-22 by building the Maint.Tool from source. I understand it is part of the Installer Framework, so I built that. However, I didn't get anything resembling a "Maintenance Tool.app" bundle. Am I missing a step? Is it even possible to create just a generic Maintenance Tool app which can replace the one provided by the online installer, without creating an actual installer for (all of Qt)? Thanks, R. From himvish997 at gmail.com Tue Apr 3 06:02:04 2018 From: himvish997 at gmail.com (Himanshu Vishwakarma) Date: Tue, 3 Apr 2018 09:32:04 +0530 Subject: [Interest] Query for qml testing In-Reply-To: References: Message-ID: Hi, I am doing the unit testing of a qml file https://github.com/gcompris/GCompris-qt/tree/master/src/activities/balancebox/editor In this file, I want to test the behaviour of change the border.color of Rectangle, while OnClicked on the Rectangle. My question is, Is there is any method to get return the border.color value of a rectangle in qml?? OR What are the methods by which I can test this file?? Please help me!! Thanks!! -- Regards, Himanshu Vishwakarma From tony at rightsoft.com.au Tue Apr 3 07:27:53 2018 From: tony at rightsoft.com.au (Tony Rietwyk) Date: Tue, 3 Apr 2018 15:27:53 +1000 Subject: [Interest] Query for qml testing In-Reply-To: References: Message-ID: <58b2390a-1f39-7f18-2fbb-1d52b31a4d0a@rightsoft.com.au> Hi Himanshu, You have a lot of code.  If you are setting the value in qml, why do you need to ask how to get the value?  Can you be more specific - where are you setting the value?  What test framework are you using that needs to read it? Regards, Tony On 3/04/2018 2:02 PM, Himanshu Vishwakarma wrote: > Hi, > > I am doing the unit testing of a qml file > https://github.com/gcompris/GCompris-qt/tree/master/src/activities/balancebox/editor > In this file, I want to test the behaviour of change the border.color > of Rectangle, while OnClicked on the Rectangle. > > My question is, Is there is any method to get return the border.color value > of a rectangle in qml?? > OR > What are the methods by which I can test this file?? > > Please help me!! > > Thanks!! From jhihn at gmx.com Wed Apr 4 01:52:03 2018 From: jhihn at gmx.com (Jason H) Date: Wed, 4 Apr 2018 01:52:03 +0200 Subject: [Interest] Video Filters on Android Message-ID: http://blog.qt.io/blog/2015/03/20/introducing-video-filters-in-qt-multimedia/ announced video filter support, and hardware accelerated too! Code: http://code.qt.io/cgit/qt/qtmultimedia.git/tree/examples/multimedia/video/qmlvideofilter_opencl I'm trying to get it running on Android, but I'm going down a rabbit hole with OpenCL 2.0 and EGL 3.2. I have been hacking on it but I don't know where EGLContext is declared. Had anyone gotten this running in Android? Thanks! From vperetokin at gmail.com Wed Apr 4 07:10:07 2018 From: vperetokin at gmail.com (Vadim Peretokin) Date: Wed, 04 Apr 2018 05:10:07 +0000 Subject: [Interest] How to programatically make a tab's text bold? Message-ID: How can I programatically make a tab's text bold? I'm looking to notify the user that they need to look at it. Note that this is different from using a stylesheet to set the selected tab bold - I'd like to set any random tab's text bold. Been looking at this for several days, appreciate any advice! -------------- next part -------------- An HTML attachment was scrubbed... URL: From hamish at risingsoftware.com Wed Apr 4 07:34:56 2018 From: hamish at risingsoftware.com (Hamish Moffatt) Date: Wed, 4 Apr 2018 15:34:56 +1000 Subject: [Interest] How to programatically make a tab's text bold? In-Reply-To: References: Message-ID: <4c20045a-5501-b683-de0f-6a9709da4f92@risingsoftware.com> On 04/04/18 15:10, Vadim Peretokin wrote: > How can I programatically make a tab's text bold? I'm looking to > notify the user that they need to look at it. > > Note that this is different from using a stylesheet to set the > selected tab bold - I'd like to set any random tab's text bold. > > Been looking at this for several days, appreciate any advice! Using widgets? You didn't say what context. Maybe you can set a dynamic property on the tab when you want it to be bold, and attach a special style using properties in the stylesheet. Hamish From ola at silentwings.no Wed Apr 4 09:33:00 2018 From: ola at silentwings.no (=?UTF-8?Q?Ola_R=C3=B8er_Thorsen?=) Date: Wed, 4 Apr 2018 09:33:00 +0200 Subject: [Interest] QTimer at 30Hz interval? Message-ID: is there some nice trick to make a QTimer trigger at 30 Hz? This interval can't be expressed properly in milliseconds (1000/30 = 33.333333...) My use case is for Linux only so I'd be happy with some Linux-specific way of triggering a signal at 30 Hz too. It won't have to be very precise for each trigger as long as the average frequency is 30 Hz. Cheers, Ola -------------- next part -------------- An HTML attachment was scrubbed... URL: From rene.reucher at batcom-it.net Wed Apr 4 09:42:02 2018 From: rene.reucher at batcom-it.net (=?UTF-8?Q?Ren=c3=a9_Reucher?=) Date: Wed, 4 Apr 2018 09:42:02 +0200 Subject: [Interest] QTimer at 30Hz interval? In-Reply-To: References: Message-ID: On 04/04/18 09:33, Ola Røer Thorsen wrote: > is there some nice trick to make a QTimer trigger at 30 Hz? This > interval can't be expressed properly in milliseconds (1000/30 = > 33.333333...) > > My use case is for Linux only so I'd be happy with some Linux-specific > way of triggering a signal at 30 Hz too. It won't have to be very > precise for each trigger as long as the average frequency is 30 Hz. Not sure (and I haven't tried it myself), but maybe this class can help: https://github.com/rsmz/qnanotimer HTH, René From vperetokin at gmail.com Wed Apr 4 09:47:35 2018 From: vperetokin at gmail.com (Vadim Peretokin) Date: Wed, 04 Apr 2018 07:47:35 +0000 Subject: [Interest] How to programatically make a tab's text bold? In-Reply-To: <4c20045a-5501-b683-de0f-6a9709da4f92@risingsoftware.com> References: <4c20045a-5501-b683-de0f-6a9709da4f92@risingsoftware.com> Message-ID: On Wed, Apr 4, 2018 at 7:35 AM Hamish Moffatt wrote: > On 04/04/18 15:10, Vadim Peretokin wrote: > > How can I programatically make a tab's text bold? I'm looking to > > notify the user that they need to look at it. > > > > Note that this is different from using a stylesheet to set the > > selected tab bold - I'd like to set any random tab's text bold. > > > > Been looking at this for several days, appreciate any advice! > > Using widgets? You didn't say what context. > > Maybe you can set a dynamic property on the tab when you want it to be > bold, and attach a special style using properties in the stylesheet. > > > Hamish > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > Yes, using widgets. I've tried a dynamic property however as far as I can see, I can only set the dynamic property on the entire tab bar - not a specific tab. How can I set it on a specific tab? -------------- next part -------------- An HTML attachment was scrubbed... URL: From daniel.engelke at basyskom.com Wed Apr 4 09:52:57 2018 From: daniel.engelke at basyskom.com (Daniel Engelke) Date: Wed, 4 Apr 2018 09:52:57 +0200 Subject: [Interest] QTimer at 30Hz interval? In-Reply-To: Message-ID: <2409762768-5557@mx1.basyskom.com> What about QElapsedTimer you can get nanoseconds out of it. Br Daniel From: René Reucher To: Sent: 4/4/2018 9:42 AM Subject: Re: [Interest] QTimer at 30Hz interval? On 04/04/18 09:33, Ola Røer Thorsen wrote: > is there some nice trick to make a QTimer trigger at 30 Hz? This > interval can't be expressed properly in milliseconds (1000/30 = > 33.333333...) > > My use case is for Linux only so I'd be happy with some Linux-specific > way of triggering a signal at 30 Hz too. It won't have to be very > precise for each trigger as long as the average frequency is 30 Hz. Not sure (and I haven't tried it myself), but maybe this class can help: https://github.com/rsmz/qnanotimer HTH, René _______________________________________________ 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 kshegunov at gmail.com Wed Apr 4 09:54:50 2018 From: kshegunov at gmail.com (Konstantin Shegunov) Date: Wed, 4 Apr 2018 10:54:50 +0300 Subject: [Interest] QTimer at 30Hz interval? In-Reply-To: References: Message-ID: Hi, Just an idea: I believe by default QTimer doesn't have that fidelity, however you can check if your platform supports Qt::PreciseTimer and stagger two of them, one at 30 ms, and one at 31 ms. Both would go to one handler, where you check if the timeout has expired and trigger the needed slot on demand. On Wed, Apr 4, 2018 at 10:33 AM, Ola Røer Thorsen wrote: > is there some nice trick to make a QTimer trigger at 30 Hz? This interval > can't be expressed properly in milliseconds (1000/30 = 33.333333...) > > My use case is for Linux only so I'd be happy with some Linux-specific way > of triggering a signal at 30 Hz too. It won't have to be very precise for > each trigger as long as the average frequency is 30 Hz. > > 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 kshegunov at gmail.com Wed Apr 4 09:58:32 2018 From: kshegunov at gmail.com (Konstantin Shegunov) Date: Wed, 4 Apr 2018 10:58:32 +0300 Subject: [Interest] QTimer at 30Hz interval? In-Reply-To: References: Message-ID: > > one at 30 ms, and one at 31 ms > I meant 33 and 34 ms, but you get the idea. -------------- next part -------------- An HTML attachment was scrubbed... URL: From rene.reucher at batcom-it.net Wed Apr 4 10:41:14 2018 From: rene.reucher at batcom-it.net (=?UTF-8?Q?Ren=c3=a9_Reucher?=) Date: Wed, 4 Apr 2018 10:41:14 +0200 Subject: [Interest] QTimer at 30Hz interval? In-Reply-To: <2409762768-5557@mx1.basyskom.com> References: <2409762768-5557@mx1.basyskom.com> Message-ID: <6e70ec99-ae35-4c2b-42dd-a0635e8796a8@batcom-it.net> On 04/04/18 09:52, Daniel Engelke wrote: > What about QElapsedTimer you can get nanoseconds out of it. Yeah, but it doesn't have signals to fire on a timeout... QElapsedTimer's major purpose is measuring time, not sending (repeated) signals. So it's more like QTime, not like QTimer. Cheers, René From rjvbertin at gmail.com Wed Apr 4 10:44:25 2018 From: rjvbertin at gmail.com (=?UTF-8?B?UmVuw6kgSi4gVi4=?= Bertin) Date: Wed, 04 Apr 2018 10:44:25 +0200 Subject: [Interest] Home built of the "official" Maintenance Tool References: <6063189.fkq1q6h5Ml@portia.local> Message-ID: <2302740.foLSSQeabL@patux.local> OK, I figured this out. With the risk of kicking in open doors: - the maintenancetool/MaintenanceTool binary is "just" the installerbase executable. On Mac it will be modified to depend on embedded Qt frameworks by the actually installer when it writes the MaintenanceTool bundle, but it fails to embed those frameworks because they weren't bundled with the other installer data. Suggestion: use macdeployqt to create a fully functional MaintenanceTool.app bundle during the initial creation of the installer. - the information required to run the MaintenanceTool on the installed software is expected under the same name as the tool itself. - An up-to-date self-built MaintenanceTool.app copy will continue to fail with the message that it's out-of-date because the tool version is not obtained from the app itself, but from the database of installed items. IMHO that's an anomaly. R. From renehh at gmail.com Wed Apr 4 10:54:01 2018 From: renehh at gmail.com (=?UTF-8?B?UmVuw6kgSGFuc2Vu?=) Date: Wed, 04 Apr 2018 08:54:01 +0000 Subject: [Interest] Video Filters on Android In-Reply-To: References: Message-ID: I never got that specific example to work, but assuming you're building with the Android NDK, you can include: #include #include Which will give you access to *eglGetCurrentContext()*. I'm using the r10e ndk, since that's what works with Qt at the moment. GLES v3 is available in toolchain v21: $ ls ~/Code/Android/android-ndk-r10e//platforms/android-21/arch-arm/usr/lib/ crtbegin_dynamic.o libGLESv2.so libdl.so libstdc++.a crtbegin_so.o libGLESv3.so libjnigraphics.so libstdc++.so crtbegin_static.o libOpenMAXAL.so liblog.so libthread_db.so crtend_android.o libOpenSLES.so libm.a libz.a crtend_so.o libandroid.so libm.so libz.so libEGL.so libc.a libm_hard.a rs libGLESv1_CM.so libc.so libmediandk.so If you want to link against OpenCL, you still need to pull a *libOpenCL.so* from an actual device though. /René On Wed, 4 Apr 2018 at 01:52 Jason H wrote: > > http://blog.qt.io/blog/2015/03/20/introducing-video-filters-in-qt-multimedia/ > announced video filter support, and hardware accelerated too! > > Code: > http://code.qt.io/cgit/qt/qtmultimedia.git/tree/examples/multimedia/video/qmlvideofilter_opencl > > I'm trying to get it running on Android, but I'm going down a rabbit hole > with OpenCL 2.0 and EGL 3.2. I have been hacking on it but I don't know > where EGLContext is declared. > > Had anyone gotten this running in Android? > > 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 renehh at gmail.com Wed Apr 4 11:10:20 2018 From: renehh at gmail.com (=?UTF-8?B?UmVuw6kgSGFuc2Vu?=) Date: Wed, 04 Apr 2018 09:10:20 +0000 Subject: [Interest] How to programatically make a tab's text bold? In-Reply-To: References: <4c20045a-5501-b683-de0f-6a9709da4f92@risingsoftware.com> Message-ID: Alternatively suffix an asterisk; Tab -> Tab*. Then remove it on highlight. /René On Wed, 4 Apr 2018 at 09:47 Vadim Peretokin wrote: > On Wed, Apr 4, 2018 at 7:35 AM Hamish Moffatt > wrote: > >> On 04/04/18 15:10, Vadim Peretokin wrote: >> > How can I programatically make a tab's text bold? I'm looking to >> > notify the user that they need to look at it. >> > >> > Note that this is different from using a stylesheet to set the >> > selected tab bold - I'd like to set any random tab's text bold. >> > >> > Been looking at this for several days, appreciate any advice! >> >> Using widgets? You didn't say what context. >> >> Maybe you can set a dynamic property on the tab when you want it to be >> bold, and attach a special style using properties in the stylesheet. >> >> >> Hamish >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest >> > > Yes, using widgets. > > I've tried a dynamic property however as far as I can see, I can only set > the dynamic property on the entire tab bar - not a specific tab. How can I > set it on a specific tab? > _______________________________________________ > 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 Wed Apr 4 12:07:22 2018 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Wed, 4 Apr 2018 13:07:22 +0300 Subject: [Interest] How to programatically make a tab's text bold? In-Reply-To: References: <4c20045a-5501-b683-de0f-6a9709da4f92@risingsoftware.com> Message-ID: #include #include #include #include #include #include class Style : public QProxyStyle { public:     Style( QTabBar * bar )         :    m_boldTab( 0 )         ,    m_bar( bar )     {     }     ~Style()     {     }     void drawControl( ControlElement element,         const QStyleOption *option,         QPainter *painter,         const QWidget *widget = Q_NULLPTR) const     {         if( element == QStyle::CE_TabBarTab )         {             if( m_bar->tabAt( option->rect.center() ) == m_boldTab )             {                 QFont font = widget->font();                 font.setBold( true );                 painter->save();                 painter->setFont( font );                 QProxyStyle::drawControl( element, option, painter, widget );                 painter->restore();             }             else                 QProxyStyle::drawControl( element, option, painter, widget );         }         else             QProxyStyle::drawControl( element, option, painter, widget );     } private:     int m_boldTab;     QTabBar * m_bar; }; class Tab : public QTabBar { public:     Tab( QWidget * parent )         :    QTabBar( parent )         ,    m_boldTab( 0 )     {     }     ~Tab()     {     } protected:     QSize tabSizeHint(int index) const     {         if( index == m_boldTab )         {             const QSize s = QTabBar::tabSizeHint( index );             const QFontMetrics fm( font() );             const int w = fm.width( tabText( index ) );             QFont f = font();             f.setBold( true );             const QFontMetrics bfm( f );             const int bw = bfm.width( tabText( index ) );             return QSize( s.width() - w + bw, s.height() );         }         else             return QTabBar::tabSizeHint( index );     } private:     int m_boldTab; }; class TabWidget     :    public QTabWidget { public:     TabWidget()         :    m_tabBar( new Tab( this ) )         ,    m_style( m_tabBar )     {         m_tabBar->setStyle( &m_style );         setTabBar( m_tabBar );     }     ~TabWidget()     {     } private:     Tab * m_tabBar;     Style m_style; }; int main( int argc, char ** argv ) {     QApplication app( argc, argv );     TabWidget t;     QWidget w1, w2;     t.addTab( &w1, "Test Tab With Long Name" );     t.addTab( &w2, "Second Tab" );     t.show();     return app.exec(); } On 04.04.2018 10:47, Vadim Peretokin wrote: > > On Wed, Apr 4, 2018 at 7:35 AM Hamish Moffatt > > wrote: > > On 04/04/18 15:10, Vadim Peretokin wrote: > > How can I programatically make a tab's text bold? I'm looking to > > notify the user that they need to look at it. > > > > Note that this is different from using a stylesheet to set the > > selected tab bold - I'd like to set any random tab's text bold. > > > > Been looking at this for several days, appreciate any advice! > > Using widgets? You didn't say what context. > > Maybe you can set a dynamic property on the tab when you want it to be > bold, and attach a special style using properties in the stylesheet. > > > Hamish > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > > Yes, using widgets. > > I've tried a dynamic property however as far as I can see, I can only > set the dynamic property on the entire tab bar - not a specific tab. > How can I set it on a specific tab? > > > _______________________________________________ > 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 vperetokin at gmail.com Wed Apr 4 12:20:21 2018 From: vperetokin at gmail.com (Vadim Peretokin) Date: Wed, 04 Apr 2018 10:20:21 +0000 Subject: [Interest] How to programatically make a tab's text bold? In-Reply-To: References: <4c20045a-5501-b683-de0f-6a9709da4f92@risingsoftware.com> Message-ID: Thanks a ton! Works. On Wed, Apr 4, 2018 at 12:07 PM Igor Mironchik wrote: > > #include > #include > #include > #include > #include > #include > > class Style : public QProxyStyle > { > public: > Style( QTabBar * bar ) > : m_boldTab( 0 ) > , m_bar( bar ) > { > } > > ~Style() > { > } > > void drawControl( ControlElement element, > const QStyleOption *option, > QPainter *painter, > const QWidget *widget = Q_NULLPTR) const > { > if( element == QStyle::CE_TabBarTab ) > { > if( m_bar->tabAt( option->rect.center() ) == m_boldTab ) > { > QFont font = widget->font(); > font.setBold( true ); > > painter->save(); > painter->setFont( font ); > QProxyStyle::drawControl( element, option, painter, widget > ); > painter->restore(); > } > else > QProxyStyle::drawControl( element, option, painter, widget > ); > } > else > QProxyStyle::drawControl( element, option, painter, widget ); > } > > private: > int m_boldTab; > QTabBar * m_bar; > }; > > class Tab : public QTabBar > { > public: > Tab( QWidget * parent ) > : QTabBar( parent ) > , m_boldTab( 0 ) > { > } > > ~Tab() > { > } > > protected: > QSize tabSizeHint(int index) const > { > if( index == m_boldTab ) > { > const QSize s = QTabBar::tabSizeHint( index ); > const QFontMetrics fm( font() ); > const int w = fm.width( tabText( index ) ); > > QFont f = font(); > f.setBold( true ); > const QFontMetrics bfm( f ); > > const int bw = bfm.width( tabText( index ) ); > > return QSize( s.width() - w + bw, s.height() ); > } > else > return QTabBar::tabSizeHint( index ); > } > > private: > int m_boldTab; > }; > > class TabWidget > : public QTabWidget > { > public: > TabWidget() > : m_tabBar( new Tab( this ) ) > , m_style( m_tabBar ) > { > m_tabBar->setStyle( &m_style ); > setTabBar( m_tabBar ); > } > > ~TabWidget() > { > } > > private: > Tab * m_tabBar; > Style m_style; > }; > > int main( int argc, char ** argv ) > { > QApplication app( argc, argv ); > > TabWidget t; > QWidget w1, w2; > t.addTab( &w1, "Test Tab With Long Name" ); > t.addTab( &w2, "Second Tab" ); > > t.show(); > > return app.exec(); > } > > > On 04.04.2018 10:47, Vadim Peretokin wrote: > > > On Wed, Apr 4, 2018 at 7:35 AM Hamish Moffatt > wrote: > >> On 04/04/18 15:10, Vadim Peretokin wrote: >> > How can I programatically make a tab's text bold? I'm looking to >> > notify the user that they need to look at it. >> > >> > Note that this is different from using a stylesheet to set the >> > selected tab bold - I'd like to set any random tab's text bold. >> > >> > Been looking at this for several days, appreciate any advice! >> >> Using widgets? You didn't say what context. >> >> Maybe you can set a dynamic property on the tab when you want it to be >> bold, and attach a special style using properties in the stylesheet. >> >> >> Hamish >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest >> > > Yes, using widgets. > > I've tried a dynamic property however as far as I can see, I can only set > the dynamic property on the entire tab bar - not a specific tab. How can I > set it on a specific tab? > > > _______________________________________________ > 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 jhihn at gmx.com Wed Apr 4 13:50:26 2018 From: jhihn at gmx.com (Jason H) Date: Wed, 4 Apr 2018 13:50:26 +0200 Subject: [Interest] QTimer at 30Hz interval? In-Reply-To: References: Message-ID: Easy! You can't! But you can come very close. Remember on a multitasking OS, you're dealing with a time division multiplexing, and a scheduler, so getting scheduled at 30hz is impossible. But there are a few things you can do. On linux you (a process) can set your priority and even scheduling method. This will get your jitter down. If you can always the kernel you can change the time size The best thing is to use a hardware interrupt, which you may not be able to do. At this point I have to ask why 30Hz? 30 FPS Video is really 29.77. not many things are actually 30.0 hz. And not-vomiting VR takes at least 60fps. One trick I've done to get better resolution is, if you can work with jitter, is to set a low timer internal and check if the accumulated interval has accumilated work for you. Because the timer timout waits *at least* that many milliseconds, being called sooner and checking for work might work better than always overshooting. (I actually came up with a way to saturate a CPU with encryption while having a UI progress bar update smoothly by letting the timer interval adjust itself.) You can use 1 or 0ms. With 0, your slot will be called by the event loop when is empty as fast as it can be called. > Sent: Wednesday, April 04, 2018 at 9:33 AM > From: "Ola Røer Thorsen" > To: "interestqt-project.org" > Subject: [Interest] QTimer at 30Hz interval? > > is there some nice trick to make a QTimer trigger at 30 Hz? This interval > can't be expressed properly in milliseconds (1000/30 = 33.333333...) > > My use case is for Linux only so I'd be happy with some Linux-specific way > of triggering a signal at 30 Hz too. It won't have to be very precise for > each trigger as long as the average frequency is 30 Hz. > > Cheers, > Ola > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > From jhihn at gmx.com Wed Apr 4 17:30:23 2018 From: jhihn at gmx.com (Jason H) Date: Wed, 4 Apr 2018 17:30:23 +0200 Subject: [Interest] Video Filters on Android In-Reply-To: References: Message-ID: An HTML attachment was scrubbed... URL: From renehh at gmail.com Wed Apr 4 18:07:08 2018 From: renehh at gmail.com (=?UTF-8?B?UmVuw6kgSGFuc2Vu?=) Date: Wed, 04 Apr 2018 16:07:08 +0000 Subject: [Interest] Video Filters on Android In-Reply-To: References: Message-ID: You'll probably find it at */vendor/lib/libOpenCL.so.* I'm not sure which version of OpenGL ES you need, but you have both versions available to link against using the NDK at least. I've been wanting to do a writeup on the whole QML videofilter -> OpenCL pipeline through shared GL context, but haven't really found the time. There's not that many great examples to go by out there for Android and it seems to me at least, that it's a bit of a greenfield effort, even though the Qt guys have put in some great initial building blocks. /René On Wed, 4 Apr 2018 at 17:30 Jason H wrote: > Thanks! I'm trying to do this on a Pixel 2 XL, but there is no > libOpenCL.so on it! (directory listing included later) > > I'm searching for it. I'm looking at the Aredno SDK, > > I'm sort of at a loss for what all I need to include for android. You > mention GLESv2, but you also mention v3. > > taimen:/system/lib $ ls -1 lib* > lib-imsvideocodec.so > lib-imsvt.so > lib-imsvtextutils.so > lib-imsvtutils.so > libEGL.so > libETC1.so > libFFTEm.so > libGLESv1_CM.so > libGLESv2.so > libGLESv3.so > libOpenMAXAL.so > libOpenSLES.so > libRS.so > libRSCacheDir.so > libRSCpuRef.so > libRSDriver.so > libRS_internal.so > libRScpp.so > libaaudio.so > libaaudioservice.so > libandroid.so > libandroid_net.so > libandroid_runtime.so > libandroid_servers.so > libandroidfw.so > libappfuse.so > libart-compiler.so > libart-dexlayout.so > libart.so > libaudio-resampler.so > libaudioclient.so > libaudioeffect_jni.so > libaudioflinger.so > libaudiohal.so > libaudiomanager.so > libaudiopolicyenginedefault.so > libaudiopolicymanager.so > libaudiopolicymanagerdefault.so > libaudiopolicyservice.so > libaudioprocessing.so > libaudiospdif.so > libaudioutils.so > libbacktrace.so > libbase.so > libbcinfo.so > libbinder.so > libblas.so > libc++.so > libc.so > libc_malloc_debug.so > libcamera2ndk.so > libcamera_client.so > libcamera_metadata.so > libcameraservice.so > libchrome.so > libclcore.bc > libclcore_debug.bc > libclcore_debug_g.bc > libclcore_g.bc > libclcore_neon.bc > libcompiler_rt.so > libcrypto.so > libcutils.so > libdebuggerd_client.so > libdiag_system.so > libdl.so > libdmengine.so > libdmjavaplugin.so > libdng_sdk.so > libdrmframework.so > libdrmframework_jni.so > libdvr.so > libdvr_loader.so > libeaselcomm.so > libeffectsconfig.so > libevent.so > libexif.so > libexpat.so > libfilterfw.so > libfilterpack_facedetect.so > libfilterpack_imageproc.so > libfmq.so > libfrsdk.so > libft2.so > libgatekeeper.so > libgraphicsenv.so > libgui.so > libhardware.so > libhardware_legacy.so > libharfbuzz_ng.so > libheif.so > libhidlbase.so > libhidlmemory.so > libhidltransport.so > libhwbinder.so > libhwui.so > libicui18n.so > libicuuc.so > libimg_utils.so > libimscamera_jni.so > libimsmedia_jni.so > libinput.so > libinputflinger.so > libinputservice.so > libiprouteutil.so > libjavacore.so > libjavacrypto.so > libjnigraphics.so > libjpeg.so > libkeystore_binder.so > libldacBT_abr.so > libldacBT_enc.so > liblog.so > liblz4.so > liblzma.so > libm.so > libmdnssd.so > libmedia.so > libmedia_helper.so > libmedia_jni.so > libmedia_omx.so > libmediadrm.so > libmedialogservice.so > libmediametrics.so > libmediandk.so > libmediaplayerservice.so > libmediautils.so > libmemtrack.so > libmemunreachable.so > libmidi.so > libminikin.so > libmtp.so > libnativebridge.so > libnativehelper.so > libnativeloader.so > libnativewindow.so > libnbaio.so > libnetd_client.so > libnetlink.so > libnetutils.so > libneuralnetworks.so > libnl.so > libopenjdk.so > libopenjdkjvm.so > libopenjdkjvmti.so > libopus.so > libpac.so > libpackagelistparser.so > libpcre2.so > libpdfium.so > libpiex.so > libpixelflinger.so > libpng.so > libpower.so > libpowermanager.so > libprocessgroup.so > libprocinfo.so > libprotobuf-cpp-full.so > libprotobuf-cpp-lite.so > libradio_metadata.so > librcc.so > libresourcemanagerservice.so > librs_jni.so > librtp_jni.so > libschedulerservicehidl.so > libselinux.so > libsensor.so > libsensorservice.so > libsensorservicehidl.so > libserviceutility.so > libsigchain.so > libskia.so > libsoftkeymaster.so > libsonic.so > libsonivox.so > libsoundpool.so > libsoundtrigger.so > libsoundtriggerservice.so > libspeexresampler.so > libsqlite.so > libssl.so > libstagefright.so > libstagefright_amrnb_common.so > libstagefright_enc_common.so > libstagefright_flacdec.so > libstagefright_foundation.so > libstagefright_http_support.so > libstagefright_httplive.so > libstagefright_omx.so > libstagefright_omx_utils.so > libstagefright_soft_aacdec.so > libstagefright_soft_aacenc.so > libstagefright_soft_amrdec.so > libstagefright_soft_amrnbenc.so > libstagefright_soft_amrwbenc.so > libstagefright_soft_avcdec.so > libstagefright_soft_avcenc.so > libstagefright_soft_flacdec.so > libstagefright_soft_flacenc.so > libstagefright_soft_g711dec.so > libstagefright_soft_gsmdec.so > libstagefright_soft_hevcdec.so > libstagefright_soft_mp3dec.so > libstagefright_soft_mpeg2dec.so > libstagefright_soft_mpeg4dec.so > libstagefright_soft_mpeg4enc.so > libstagefright_soft_opusdec.so > libstagefright_soft_rawdec.so > libstagefright_soft_vorbisdec.so > libstagefright_soft_vpxdec.so > libstagefright_soft_vpxenc.so > libstagefright_wfd.so > libstagefright_xmlparser.so > libstdc++.so > libsurfaceflinger.so > libsurfaceflinger_ddmconnection.so > libsuspend.so > libsync.so > libsysutils.so > libtextclassifier.so > libtextclassifier_hash.so > libtinyxml2.so > libtombstoned_client.so > libui.so > libunwind.so > libusbhost.so > libutils.so > libvintf.so > libvixl-arm.so > libvixl-arm64.so > libvndksupport.so > libvorbisidec.so > libvulkan.so > libwebviewchromium_loader.so > libwebviewchromium_plat_support.so > libwifi-service.so > libwilhelm.so > libxml2.so > libz.so > libziparchive.so > > > *Sent:* Wednesday, April 04, 2018 at 4:54 AM > *From:* "René Hansen" > *To:* "Jason H" > *Cc:* "interestqt-project.org" > *Subject:* Re: [Interest] Video Filters on Android > I never got that specific example to work, but assuming you're building > with the Android NDK, you can include: > > #include > #include > > Which will give you access to *eglGetCurrentContext()*. > > I'm using the r10e ndk, since that's what works with Qt at the moment. > GLES v3 is available in toolchain v21: > > $ ls > ~/Code/Android/android-ndk-r10e//platforms/android-21/arch-arm/usr/lib/ > crtbegin_dynamic.o libGLESv2.so libdl.so > libstdc++.a > crtbegin_so.o libGLESv3.so libjnigraphics.so > libstdc++.so > crtbegin_static.o libOpenMAXAL.so liblog.so > libthread_db.so > crtend_android.o libOpenSLES.so libm.a > libz.a > crtend_so.o libandroid.so libm.so > libz.so > libEGL.so libc.a libm_hard.a rs > libGLESv1_CM.so libc.so libmediandk.so > > If you want to link against OpenCL, you still need to pull a > *libOpenCL.so* from an actual device though. > > > /René > > On Wed, 4 Apr 2018 at 01:52 Jason H wrote: > >> >> http://blog.qt.io/blog/2015/03/20/introducing-video-filters-in-qt-multimedia/ >> announced video filter support, and hardware accelerated too! >> >> Code: >> http://code.qt.io/cgit/qt/qtmultimedia.git/tree/examples/multimedia/video/qmlvideofilter_opencl >> >> I'm trying to get it running on Android, but I'm going down a rabbit hole >> with OpenCL 2.0 and EGL 3.2. I have been hacking on it but I don't know >> where EGLContext is declared. >> >> Had anyone gotten this running in Android? >> >> 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 jhihn at gmx.com Wed Apr 4 19:21:51 2018 From: jhihn at gmx.com (Jason H) Date: Wed, 4 Apr 2018 19:21:51 +0200 Subject: [Interest] Video Filters on Android In-Reply-To: References: Message-ID: An HTML attachment was scrubbed... URL: From renehh at gmail.com Wed Apr 4 19:29:26 2018 From: renehh at gmail.com (=?UTF-8?B?UmVuw6kgSGFuc2Vu?=) Date: Wed, 04 Apr 2018 17:29:26 +0000 Subject: [Interest] Video Filters on Android In-Reply-To: References: Message-ID: I don't have a Pixel myself, but have you checked that OpenCL isn't rolled up into */vendor/lib/egl/libEGL_adreno.so*. I know that is the case for some phones with Mali chipsets at least. Here's a list of *cl* symbols from one I pulled from a Samsung Galaxy S7: $ ~/Code/Android/android-ndk-r10e/toolchains/x86_64-4.9/prebuilt/darwin-x86_64/bin/x86_64-linux-android-nm -D ~/Code/Android/samsunggalaxys7/lib/egl/libGLES_mali.so | ag '\bcl[A-Z]' 006823a0 T clBuildProgram 00682584 T clCompileProgram 006808d0 T clCreateBuffer 00688078 T clCreateBufferFromEGLImageARM 00680568 T clCreateCommandQueue 0067fe18 T clCreateContext 006801b4 T clCreateContextFromType 00687db4 T clCreateEventFromEGLSyncKHR 00687e94 T clCreateFromEGLImageKHR 00686f68 T clCreateFromGLBuffer 00687784 T clCreateFromGLRenderbuffer 00687140 T clCreateFromGLTexture 00687398 T clCreateFromGLTexture2D 0068758c T clCreateFromGLTexture3D 00680dc0 T clCreateImage 006816ac T clCreateImage2D 0068176c T clCreateImage3D 00682c24 T clCreateKernel 00682ce0 T clCreateKernelsInProgram 00682008 T clCreateProgramWithBinary 006821dc T clCreateProgramWithBuiltInKernels 00681ef8 T clCreateProgramWithSource 00681c8c T clCreateSampler 00680adc T clCreateSubBuffer 00680148 T clCreateSubDevices 00683334 T clCreateUserEvent 00688244 T clEnqueueAcquireEGLObjectsKHR 00687a04 T clEnqueueAcquireGLObjects 00686cbc T clEnqueueBarrier 00686ae8 T clEnqueueBarrierWithWaitList 006841d8 T clEnqueueCopyBuffer 00684414 T clEnqueueCopyBufferRect 00685828 T clEnqueueCopyBufferToImage 00685098 T clEnqueueCopyImage 006854e4 T clEnqueueCopyImageToBuffer 00683fec T clEnqueueFillBuffer 00684e7c T clEnqueueFillImage 00685b6c T clEnqueueMapBuffer 00685dfc T clEnqueueMapImage 00686b98 T clEnqueueMarker 00686a38 T clEnqueueMarkerWithWaitList 006862d0 T clEnqueueMigrateMemObjects 00686460 T clEnqueueNDRangeKernel 00686794 T clEnqueueNativeKernel 0068365c T clEnqueueReadBuffer 00683820 T clEnqueueReadBufferRect 0068476c T clEnqueueReadImage 00688414 T clEnqueueReleaseEGLObjectsKHR 00687bdc T clEnqueueReleaseGLObjects 00686688 T clEnqueueTask 006861c0 T clEnqueueUnmapMemObject 00686c00 T clEnqueueWaitForEvents 00683b20 T clEnqueueWriteBuffer 00683ce4 T clEnqueueWriteBufferRect 00684af4 T clEnqueueWriteImage 00683614 T clFinish 006835cc T clFlush 0068078c T clGetCommandQueueInfo 006804e4 T clGetContextInfo 0067fd04 T clGetDeviceIDs 0067fda8 T clGetDeviceInfo 006832ac T clGetEventInfo 00683548 T clGetEventProfilingInfo 00686d3c T clGetExtensionFunctionAddress 00686d14 T clGetExtensionFunctionAddressForPlatform 00686d4c T clGetGLContextInfoKHR 00687940 T clGetGLObjectInfo 00687988 T clGetGLTextureInfo 00681b20 T clGetImageInfo 006830bc T clGetKernelArgInfo 00683034 T clGetKernelInfo 00683140 T clGetKernelWorkGroupInfo 00681a9c T clGetMemObjectInfo 0067fc58 T clGetPlatformIDs 0067fca4 T clGetPlatformInfo 00682b64 T clGetProgramBuildInfo 00682adc T clGetProgramInfo 00681e70 T clGetSamplerInfo 006818bc T clGetSupportedImageFormats 0067fca0 T clIcdGetPlatformIDsKHR 006885e0 T clImportMemoryARM 00682834 T clLinkProgram 00680744 T clReleaseCommandQueue 0068049c T clReleaseContext 00680190 T clReleaseDevice 00683420 T clReleaseEvent 00682db0 T clReleaseKernel 00681874 T clReleaseMemObject 00682358 T clReleaseProgram 00681e28 T clReleaseSampler 006806fc T clRetainCommandQueue 00680454 T clRetainContext 0068016c T clRetainDevice 006833d8 T clRetainEvent 00682d68 T clRetainKernel 0068182c T clRetainMemObject 00682310 T clRetainProgram 00681de0 T clRetainSampler 00680814 T clSetCommandQueueProperty 006834cc T clSetEventCallback 00682df8 T clSetKernelArg 00681c28 T clSetMemObjectDestructorCallback 00683468 T clSetUserEventStatus 00682ad4 T clUnloadCompiler 00682ab8 T clUnloadPlatformCompiler 00683240 T clWaitForEvents I haven't actually found out how to properly link against the _ named libs yet however, because it seems when running a Qt based app, Dalvik only provides /system/lib and /vendor/lib as library load paths and not /vendor/lib/egl. I sent another mail to the list regarding this specific issue a couple of days ago, but no-one has answered it yet. /René Hansen On Wed, 4 Apr 2018 at 19:21 Jason H wrote: > I should find it there yes. But the irony is that I can't find it > anywhere. Meanwhile the Samsung has it where you would expect. I'm looking > for an OpenGL for it, but the Adreno SDK doesn't have it. Any idea where I > mght find it? > > Many thanks. > > taimen:/ $ find . -name *CL* 2> /dev/null > ./system/usr/srec/en-US/CLG.prewalk.fst > > 1|taimen:/ $ find . -name *GL* 2> /dev/null > ./sys/bus/platform/drivers/GLINK_CTRL > ./system/lib/libGLESv1_CM.so > ./system/lib/libGLESv3.so > ./system/lib/libGLESv2.so > ./system/lib/libEGL.so > ./system/lib64/libGLESv1_CM.so > ./system/lib64/libGLESv3.so > ./system/lib64/libGLESv2.so > ./system/lib64/libEGL.so > ./vendor/lib/egl/libGLESv2_adreno.so > ./vendor/lib/egl/libEGL_adreno.so > ./vendor/lib/egl/libGLESv1_CM_adreno.so > ./vendor/lib64/egl/libGLESv2_adreno.so > ./vendor/lib64/egl/libEGL_adreno.so > ./vendor/lib64/egl/libGLESv1_CM_adreno.so > > Vs. Samsung: > > 1|dream2lte:/ $ find . -name *GL* 2> /dev/null > ./system/lib/egl/libGLES_android.so > ./system/lib/libEGL.so > ./system/lib/libGLESv1_CM.so > ./system/lib/libGLESv2.so > ./system/lib/libGLESv3.so > ./system/lib/libSEC_EGL.so > ./system/lib64/egl/libGLES_android.so > ./system/lib64/libEGL.so > ./system/lib64/libGLESv1_CM.so > ./system/lib64/libGLESv2.so > ./system/lib64/libGLESv3.so > ./system/lib64/libSEC_EGL.so > ./system/vendor/lib/egl/libGLES_mali.so > > ./system/vendor/lib64/egl/libGLES_mali.so > 1|dream2lte:/ $ find . -name *enCL* 2> /dev/null > ./system/vendor/lib/libOpenCL.so.1.1 > ./system/vendor/lib/libOpenCL.so > ./system/vendor/lib/libOpenCL.so.1 > ./system/vendor/lib64/libOpenCL.so.1.1 > ./system/vendor/lib64/libOpenCL.so > ./system/vendor/lib64/libOpenCL.so.1 > > *Sent:* Wednesday, April 04, 2018 at 12:07 PM > > *From:* "René Hansen" > *To:* "Jason H" > *Cc:* "interestqt-project.org" > *Subject:* Re: [Interest] Video Filters on Android > You'll probably find it at */vendor/lib/libOpenCL.so.* > > I'm not sure which version of OpenGL ES you need, but you have both > versions available to link against using the NDK at least. > > I've been wanting to do a writeup on the whole QML videofilter -> OpenCL > pipeline through shared GL context, but haven't really found the time. > There's not that many great examples to go by out there for Android and it > seems to me at least, that it's a bit of a greenfield effort, even though > the Qt guys have put in some great initial building blocks. > > > /René > > > > On Wed, 4 Apr 2018 at 17:30 Jason H wrote: > >> Thanks! I'm trying to do this on a Pixel 2 XL, but there is no >> libOpenCL.so on it! (directory listing included later) >> >> I'm searching for it. I'm looking at the Aredno SDK, >> >> I'm sort of at a loss for what all I need to include for android. You >> mention GLESv2, but you also mention v3. >> >> taimen:/system/lib $ ls -1 lib* >> lib-imsvideocodec.so >> lib-imsvt.so >> lib-imsvtextutils.so >> lib-imsvtutils.so >> libEGL.so >> libETC1.so >> libFFTEm.so >> libGLESv1_CM.so >> libGLESv2.so >> libGLESv3.so >> libOpenMAXAL.so >> libOpenSLES.so >> libRS.so >> libRSCacheDir.so >> libRSCpuRef.so >> libRSDriver.so >> libRS_internal.so >> libRScpp.so >> libaaudio.so >> libaaudioservice.so >> libandroid.so >> libandroid_net.so >> libandroid_runtime.so >> libandroid_servers.so >> libandroidfw.so >> libappfuse.so >> libart-compiler.so >> libart-dexlayout.so >> libart.so >> libaudio-resampler.so >> libaudioclient.so >> libaudioeffect_jni.so >> libaudioflinger.so >> libaudiohal.so >> libaudiomanager.so >> libaudiopolicyenginedefault.so >> libaudiopolicymanager.so >> libaudiopolicymanagerdefault.so >> libaudiopolicyservice.so >> libaudioprocessing.so >> libaudiospdif.so >> libaudioutils.so >> libbacktrace.so >> libbase.so >> libbcinfo.so >> libbinder.so >> libblas.so >> libc++.so >> libc.so >> libc_malloc_debug.so >> libcamera2ndk.so >> libcamera_client.so >> libcamera_metadata.so >> libcameraservice.so >> libchrome.so >> libclcore.bc >> libclcore_debug.bc >> libclcore_debug_g.bc >> libclcore_g.bc >> libclcore_neon.bc >> libcompiler_rt.so >> libcrypto.so >> libcutils.so >> libdebuggerd_client.so >> libdiag_system.so >> libdl.so >> libdmengine.so >> libdmjavaplugin.so >> libdng_sdk.so >> libdrmframework.so >> libdrmframework_jni.so >> libdvr.so >> libdvr_loader.so >> libeaselcomm.so >> libeffectsconfig.so >> libevent.so >> libexif.so >> libexpat.so >> libfilterfw.so >> libfilterpack_facedetect.so >> libfilterpack_imageproc.so >> libfmq.so >> libfrsdk.so >> libft2.so >> libgatekeeper.so >> libgraphicsenv.so >> libgui.so >> libhardware.so >> libhardware_legacy.so >> libharfbuzz_ng.so >> libheif.so >> libhidlbase.so >> libhidlmemory.so >> libhidltransport.so >> libhwbinder.so >> libhwui.so >> libicui18n.so >> libicuuc.so >> libimg_utils.so >> libimscamera_jni.so >> libimsmedia_jni.so >> libinput.so >> libinputflinger.so >> libinputservice.so >> libiprouteutil.so >> libjavacore.so >> libjavacrypto.so >> libjnigraphics.so >> libjpeg.so >> libkeystore_binder.so >> libldacBT_abr.so >> libldacBT_enc.so >> liblog.so >> liblz4.so >> liblzma.so >> libm.so >> libmdnssd.so >> libmedia.so >> libmedia_helper.so >> libmedia_jni.so >> libmedia_omx.so >> libmediadrm.so >> libmedialogservice.so >> libmediametrics.so >> libmediandk.so >> libmediaplayerservice.so >> libmediautils.so >> libmemtrack.so >> libmemunreachable.so >> libmidi.so >> libminikin.so >> libmtp.so >> libnativebridge.so >> libnativehelper.so >> libnativeloader.so >> libnativewindow.so >> libnbaio.so >> libnetd_client.so >> libnetlink.so >> libnetutils.so >> libneuralnetworks.so >> libnl.so >> libopenjdk.so >> libopenjdkjvm.so >> libopenjdkjvmti.so >> libopus.so >> libpac.so >> libpackagelistparser.so >> libpcre2.so >> libpdfium.so >> libpiex.so >> libpixelflinger.so >> libpng.so >> libpower.so >> libpowermanager.so >> libprocessgroup.so >> libprocinfo.so >> libprotobuf-cpp-full.so >> libprotobuf-cpp-lite.so >> libradio_metadata.so >> librcc.so >> libresourcemanagerservice.so >> librs_jni.so >> librtp_jni.so >> libschedulerservicehidl.so >> libselinux.so >> libsensor.so >> libsensorservice.so >> libsensorservicehidl.so >> libserviceutility.so >> libsigchain.so >> libskia.so >> libsoftkeymaster.so >> libsonic.so >> libsonivox.so >> libsoundpool.so >> libsoundtrigger.so >> libsoundtriggerservice.so >> libspeexresampler.so >> libsqlite.so >> libssl.so >> libstagefright.so >> libstagefright_amrnb_common.so >> libstagefright_enc_common.so >> libstagefright_flacdec.so >> libstagefright_foundation.so >> libstagefright_http_support.so >> libstagefright_httplive.so >> libstagefright_omx.so >> libstagefright_omx_utils.so >> libstagefright_soft_aacdec.so >> libstagefright_soft_aacenc.so >> libstagefright_soft_amrdec.so >> libstagefright_soft_amrnbenc.so >> libstagefright_soft_amrwbenc.so >> libstagefright_soft_avcdec.so >> libstagefright_soft_avcenc.so >> libstagefright_soft_flacdec.so >> libstagefright_soft_flacenc.so >> libstagefright_soft_g711dec.so >> libstagefright_soft_gsmdec.so >> libstagefright_soft_hevcdec.so >> libstagefright_soft_mp3dec.so >> libstagefright_soft_mpeg2dec.so >> libstagefright_soft_mpeg4dec.so >> libstagefright_soft_mpeg4enc.so >> libstagefright_soft_opusdec.so >> libstagefright_soft_rawdec.so >> libstagefright_soft_vorbisdec.so >> libstagefright_soft_vpxdec.so >> libstagefright_soft_vpxenc.so >> libstagefright_wfd.so >> libstagefright_xmlparser.so >> libstdc++.so >> libsurfaceflinger.so >> libsurfaceflinger_ddmconnection.so >> libsuspend.so >> libsync.so >> libsysutils.so >> libtextclassifier.so >> libtextclassifier_hash.so >> libtinyxml2.so >> libtombstoned_client.so >> libui.so >> libunwind.so >> libusbhost.so >> libutils.so >> libvintf.so >> libvixl-arm.so >> libvixl-arm64.so >> libvndksupport.so >> libvorbisidec.so >> libvulkan.so >> libwebviewchromium_loader.so >> libwebviewchromium_plat_support.so >> libwifi-service.so >> libwilhelm.so >> libxml2.so >> libz.so >> libziparchive.so >> >> >> *Sent:* Wednesday, April 04, 2018 at 4:54 AM >> *From:* "René Hansen" >> *To:* "Jason H" >> *Cc:* "interestqt-project.org" >> *Subject:* Re: [Interest] Video Filters on Android >> I never got that specific example to work, but assuming you're building >> with the Android NDK, you can include: >> >> #include >> #include >> >> Which will give you access to *eglGetCurrentContext()*. >> >> I'm using the r10e ndk, since that's what works with Qt at the moment. >> GLES v3 is available in toolchain v21: >> >> $ ls >> ~/Code/Android/android-ndk-r10e//platforms/android-21/arch-arm/usr/lib/ >> crtbegin_dynamic.o libGLESv2.so libdl.so >> libstdc++.a >> crtbegin_so.o libGLESv3.so libjnigraphics.so >> libstdc++.so >> crtbegin_static.o libOpenMAXAL.so liblog.so >> libthread_db.so >> crtend_android.o libOpenSLES.so libm.a >> libz.a >> crtend_so.o libandroid.so libm.so >> libz.so >> libEGL.so libc.a libm_hard.a rs >> libGLESv1_CM.so libc.so libmediandk.so >> >> If you want to link against OpenCL, you still need to pull a >> *libOpenCL.so* from an actual device though. >> >> >> /René >> >> On Wed, 4 Apr 2018 at 01:52 Jason H wrote: >> >>> >>> http://blog.qt.io/blog/2015/03/20/introducing-video-filters-in-qt-multimedia/ >>> announced video filter support, and hardware accelerated too! >>> >>> Code: >>> http://code.qt.io/cgit/qt/qtmultimedia.git/tree/examples/multimedia/video/qmlvideofilter_opencl >>> >>> I'm trying to get it running on Android, but I'm going down a rabbit >>> hole with OpenCL 2.0 and EGL 3.2. I have been hacking on it but I don't >>> know where EGLContext is declared. >>> >>> Had anyone gotten this running in Android? >>> >>> 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 jhihn at gmx.com Wed Apr 4 19:56:58 2018 From: jhihn at gmx.com (Jason H) Date: Wed, 4 Apr 2018 19:56:58 +0200 Subject: [Interest] Video Filters on Android In-Reply-To: References: Message-ID: An HTML attachment was scrubbed... URL: From jhihn at gmx.com Wed Apr 4 20:50:41 2018 From: jhihn at gmx.com (Jason H) Date: Wed, 4 Apr 2018 20:50:41 +0200 Subject: [Interest] Video Filters on Android In-Reply-To: References: Message-ID: An HTML attachment was scrubbed... URL: From apoenitz at t-online.de Wed Apr 4 17:39:47 2018 From: apoenitz at t-online.de (=?iso-8859-1?Q?Andr=E9_P=F6nitz?=) Date: Wed, 4 Apr 2018 17:39:47 +0200 Subject: [Interest] How to programatically make a tab's text bold? In-Reply-To: References: Message-ID: <20180404153947.GB2176@klara.mpi.htwm.de> On Wed, Apr 04, 2018 at 05:10:07AM +0000, Vadim Peretokin wrote: > How can I programatically make a tab's text bold? I'm looking to notify the > user that they need to look at it. > > Note that this is different from using a stylesheet to set the selected tab > bold - I'd like to set any random tab's text bold. > > Been looking at this for several days, appreciate any advice! Quick and dirty: struct Style : QProxyStyle { void drawControl(ControlElement element, const QStyleOption *opt, QPainter *p, const QWidget *w) const { if (element == QStyle::CE_TabBarTab) { QFont f = p->font(); f.setBold(true); p->setFont(f); } QProxyStyle::drawControl(element, opt, p, w); } }; ... yourTabWidget()->tabBar()->>setStyle(new Style); May need some polish. Andre' From elderorb at gmail.com Fri Apr 6 11:40:21 2018 From: elderorb at gmail.com (Alexander Ivash) Date: Fri, 6 Apr 2018 12:40:21 +0300 Subject: [Interest] How to determine whether QML item is anchored? Message-ID: <1523007448.local-615ef209-6912-v1.2.1-7e7447b6@getmailspring.com> What I'm missing? It seems like even not anchored item has anchors.right/left/top/bottom set, so it is not possible to compare with 'undefined' or something. Of course introducing change handler allows to track moment of anchoring (although still no way to track un-anchoring), but this is a bit ugly and not 'Qt-way'. Sent from Mailspring (https://link.getmailspring.com/link/1523007448.local-615ef209-6912-v1.2.1-7e7447b6 at getmailspring.com/0?redirect=https%3A%2F%2Fgetmailspring.com%2F&recipient=aW50ZXJlc3RAcXQtcHJvamVjdC5vcmc%3D), the best free email app for work -------------- next part -------------- An HTML attachment was scrubbed... URL: From r.nicolau at learningclip.co.uk Fri Apr 6 13:12:53 2018 From: r.nicolau at learningclip.co.uk (Rogerio Nicolau) Date: Fri, 6 Apr 2018 12:12:53 +0100 Subject: [Interest] Secure WebSockets don't work in WinRT/UWP Message-ID: <5f8e99d9-84d6-c14f-6798-2f68667a011e@learningclip.co.uk> Hi There is actually already a bug report for this issue at https://bugreports.qt.io/browse/QTBUG-56558. The reason I am posting this on the mailing list is because it was created over a year ago and there has been no movement on it, it is still in the reported status. I was thinking that maybe it is assigned to the wrong team as it hasn't been marked as a WinRT port issue. Is there anyway we can get this reevaluated? I didn't create the report so I can't edit it, but I do need the fix. Thanks Rogério From mitch.curtis at qt.io Fri Apr 6 13:20:51 2018 From: mitch.curtis at qt.io (Mitch Curtis) Date: Fri, 6 Apr 2018 11:20:51 +0000 Subject: [Interest] How to determine whether QML item is anchored? In-Reply-To: <1523007448.local-615ef209-6912-v1.2.1-7e7447b6@getmailspring.com> References: <1523007448.local-615ef209-6912-v1.2.1-7e7447b6@getmailspring.com> Message-ID: What are you trying to do? From: Interest [mailto:interest-bounces+mitch.curtis=qt.io at qt-project.org] On Behalf Of Alexander Ivash Sent: Friday, 6 April 2018 11:40 AM To: interest at qt-project.org Subject: [Interest] How to determine whether QML item is anchored? What I'm missing? It seems like even not anchored item has anchors.right/left/top/bottom set, so it is not possible to compare with 'undefined' or something. Of course introducing change handler allows to track moment of anchoring (although still no way to track un-anchoring), but this is a bit ugly and not 'Qt-way'. Sent from Mailspring, the best free email app for work [Open Tracking] -------------- next part -------------- An HTML attachment was scrubbed... URL: From elderorb at gmail.com Fri Apr 6 13:22:45 2018 From: elderorb at gmail.com (Alexander Ivash) Date: Fri, 6 Apr 2018 14:22:45 +0300 Subject: [Interest] How to determine whether QML item is anchored? In-Reply-To: References: Message-ID: <1523013678.local-18836154-ab75-v1.2.1-7e7447b6@getmailspring.com> Let's say I'm trying to make the logic like this: "If parent component is anchored, make a child green, otherwise make it red" Sent from Mailspring (https://link.getmailspring.com/link/1523013678.local-18836154-ab75-v1.2.1-7e7447b6 at getmailspring.com/0?redirect=https%3A%2F%2Fgetmailspring.com%2F&recipient=aW50ZXJlc3RAcXQtcHJvamVjdC5vcmc%3D), the best free email app for work On Apr 6 2018, at 2:20 pm, Mitch Curtis wrote: > > What are you trying to do? > > From: Interest [mailto:interest-bounces+mitch.curtis=qt.io at qt-project.org] On Behalf Of Alexander Ivash > Sent: Friday, 6 April 2018 11:40 AM > To: interest at qt-project.org > Subject: [Interest] How to determine whether QML item is anchored? > > > > > > What I'm missing? It seems like even not anchored item has anchors.right/left/top/bottom set, so it is not possible to compare with 'undefined' or something. Of course introducing change handler allows to track moment of anchoring (although still no way to track un-anchoring), but this is a bit ugly and not 'Qt-way'. > > > Sent from Mailspring (https://link.getmailspring.com/link/1523013678.local-18836154-ab75-v1.2.1-7e7447b6 at getmailspring.com/1?redirect=https%3A%2F%2Flink.getmailspring.com%2Flink%2F1523007448.local-615ef209-6912-v1.2.1-7e7447b6%40getmailspring.com%2F0%3Fredirect%3Dhttps%253A%252F%252Fgetmailspring.com%252F%26recipient%3DaW50ZXJlc3RAcXQtcHJvamVjdC5vcmc%253D&recipient=aW50ZXJlc3RAcXQtcHJvamVjdC5vcmc%3D), the best free email app for work > > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mitch.curtis at qt.io Fri Apr 6 13:38:01 2018 From: mitch.curtis at qt.io (Mitch Curtis) Date: Fri, 6 Apr 2018 11:38:01 +0000 Subject: [Interest] How to determine whether QML item is anchored? In-Reply-To: <1523013678.local-18836154-ab75-v1.2.1-7e7447b6@getmailspring.com> References: <1523013678.local-18836154-ab75-v1.2.1-7e7447b6@getmailspring.com> Message-ID: I’m not sure if it helps in your situation, but perhaps you could take a look at AnchorChanges: http://doc.qt.io/qt-5/qml-qtquick-anchorchanges.html When the item is in an “anchored” state: states: [ State { name: "anchored" AnchorChanges { target: myRect anchors.top: window.top anchors.bottom: window.bottom } PropertyChanges { target: myRect color: "green" } }, State { name: "not-anchored" AnchorChanges { target: myRect anchors.top: undefined anchors.bottom: undefined } PropertyChanges { target: myRect color: "red" } } ] This assumes that you have control over the anchors, though. From: Alexander Ivash [mailto:elderorb at gmail.com] Sent: Friday, 6 April 2018 1:23 PM To: Mitch Curtis Cc: interest at qt-project.org Subject: Re: [Interest] How to determine whether QML item is anchored? Let's say I'm trying to make the logic like this: "If parent component is anchored, make a child green, otherwise make it red" Sent from Mailspring, the best free email app for work On Apr 6 2018, at 2:20 pm, Mitch Curtis wrote: What are you trying to do? From: Interest [mailto:interest-bounces+mitch.curtis=qt.io at qt-project.org] On Behalf Of Alexander Ivash Sent: Friday, 6 April 2018 11:40 AM To: interest at qt-project.org Subject: [Interest] How to determine whether QML item is anchored? What I'm missing? It seems like even not anchored item has anchors.right/left/top/bottom set, so it is not possible to compare with 'undefined' or something. Of course introducing change handler allows to track moment of anchoring (although still no way to track un-anchoring), but this is a bit ugly and not 'Qt-way'. Sent from Mailspring, the best free email app for work [Image removed by sender. Open Tracking] [Image removed by sender. Open Tracking] -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: ~WRD000.jpg Type: image/jpeg Size: 823 bytes Desc: ~WRD000.jpg URL: From elderorb at gmail.com Fri Apr 6 13:41:07 2018 From: elderorb at gmail.com (Alexander Ivash) Date: Fri, 6 Apr 2018 14:41:07 +0300 Subject: [Interest] How to determine whether QML item is anchored? In-Reply-To: References: Message-ID: <1523014719.local-23d3901e-507d-v1.2.1-7e7447b6@getmailspring.com> Thanks, I'm aware of this, but this is a bit different.. Would be great to get ability to compare against something like anchors.defaultLeft (https://link.getmailspring.com/link/1523014719.local-23d3901e-507d-v1.2.1-7e7447b6 at getmailspring.com/0?redirect=anchors.defaultLeft&recipient=aW50ZXJlc3RAcXQtcHJvamVjdC5vcmc%3D) or anchors.NoAnchor (https://link.getmailspring.com/link/1523014719.local-23d3901e-507d-v1.2.1-7e7447b6 at getmailspring.com/1?redirect=anchors.NoAnchor&recipient=aW50ZXJlc3RAcXQtcHJvamVjdC5vcmc%3D) in future. Sent from Mailspring (https://link.getmailspring.com/link/1523014719.local-23d3901e-507d-v1.2.1-7e7447b6 at getmailspring.com/2?redirect=https%3A%2F%2Fgetmailspring.com%2F&recipient=aW50ZXJlc3RAcXQtcHJvamVjdC5vcmc%3D), the best free email app for work On Apr 6 2018, at 2:38 pm, Mitch Curtis wrote: > > I’m not sure if it helps in your situation, but perhaps you could take a look at AnchorChanges: > > http://doc.qt.io/qt-5/qml-qtquick-anchorchanges.html (https://link.getmailspring.com/link/1523014719.local-23d3901e-507d-v1.2.1-7e7447b6 at getmailspring.com/3?redirect=http%3A%2F%2Fdoc.qt.io%2Fqt-5%2Fqml-qtquick-anchorchanges.html&recipient=aW50ZXJlc3RAcXQtcHJvamVjdC5vcmc%3D) > > When the item is in an “anchored” state: > > states: [ > State { > name: "anchored" > > AnchorChanges { > target: myRect > anchors.top: window.top > anchors.bottom: window.bottom > } > PropertyChanges { > target: myRect > color: "green" > } > }, > State { > name: "not-anchored" > > AnchorChanges { > target: myRect > anchors.top: undefined > anchors.bottom: undefined > } > > PropertyChanges { > target: myRect > color: "red" > } > } > ] > > This assumes that you have control over the anchors, though. > > From: Alexander Ivash [mailto:elderorb at gmail.com] > Sent: Friday, 6 April 2018 1:23 PM > To: Mitch Curtis > Cc: interest at qt-project.org > Subject: Re: [Interest] How to determine whether QML item is anchored? > > > > > > Let's say I'm trying to make the logic like this: "If parent component is anchored, make a child green, otherwise make it red" > > > Sent from Mailspring (https://link.getmailspring.com/link/1523014719.local-23d3901e-507d-v1.2.1-7e7447b6 at getmailspring.com/4?redirect=https%3A%2F%2Flink.getmailspring.com%2Flink%2F1523013678.local-18836154-ab75-v1.2.1-7e7447b6%40getmailspring.com%2F0%3Fredirect%3Dhttps%253A%252F%252Fgetmailspring.com%252F%26recipient%3DbWl0Y2guY3VydGlzQHF0Lmlv&recipient=aW50ZXJlc3RAcXQtcHJvamVjdC5vcmc%3D), the best free email app for work > On Apr 6 2018, at 2:20 pm, Mitch Curtis wrote: > > > > > > > What are you trying to do? > > > > > > > > From: Interest [mailto:interest-bounces+mitch.curtis=qt.io at qt-project.org] On Behalf Of Alexander Ivash > > Sent: Friday, 6 April 2018 11:40 AM > > > > To: interest at qt-project.org > > > > Subject: [Interest] How to determine whether QML item is anchored? > > > > > > > > > > > > > > > > > > What I'm missing? It seems like even not anchored item has anchors.right/left/top/bottom set, so it is not possible to compare with 'undefined' or something. Of course introducing change handler allows to track moment of anchoring (although still no way to track un-anchoring), but this is a bit ugly and not 'Qt-way'. > > > > > > > > > > Sent from Mailspring (https://link.getmailspring.com/link/1523014719.local-23d3901e-507d-v1.2.1-7e7447b6 at getmailspring.com/5?redirect=https%3A%2F%2Flink.getmailspring.com%2Flink%2F1523013678.local-18836154-ab75-v1.2.1-7e7447b6%40getmailspring.com%2F1%3Fredirect%3Dhttps%253A%252F%252Flink.getmailspring.com%252Flink%252F1523007448.local-615ef209-6912-v1.2.1-7e7447b6%2540getmailspring.com%252F0%253Fredirect%253Dhttps%25253A%25252F%25252Fgetmailspring.com%25252F%2526recipient%253DaW50ZXJlc3RAcXQtcHJvamVjdC5vcmc%25253D%26recipient%3DbWl0Y2guY3VydGlzQHF0Lmlv&recipient=aW50ZXJlc3RAcXQtcHJvamVjdC5vcmc%3D), the best free email app for work -------------- next part -------------- An HTML attachment was scrubbed... URL: From mitch.curtis at qt.io Fri Apr 6 13:58:49 2018 From: mitch.curtis at qt.io (Mitch Curtis) Date: Fri, 6 Apr 2018 11:58:49 +0000 Subject: [Interest] How to determine whether QML item is anchored? In-Reply-To: <1523014719.local-23d3901e-507d-v1.2.1-7e7447b6@getmailspring.com> References: <1523014719.local-23d3901e-507d-v1.2.1-7e7447b6@getmailspring.com> Message-ID: https://bugreports.qt.io/browse/QTBUG-66264 is semi-related to this, or at least explains why we can’t really return null if they’re not set. Without having more information about your use case, it seems like quite a corner case. From: Alexander Ivash [mailto:elderorb at gmail.com] Sent: Friday, 6 April 2018 1:41 PM To: Mitch Curtis Cc: interest at qt-project.org Subject: Re: [Interest] How to determine whether QML item is anchored? Thanks, I'm aware of this, but this is a bit different.. Would be great to get ability to compare against something like anchors.defaultLeft or anchors.NoAnchor in future. Sent from Mailspring, the best free email app for work On Apr 6 2018, at 2:38 pm, Mitch Curtis > wrote: I’m not sure if it helps in your situation, but perhaps you could take a look at AnchorChanges: http://doc.qt.io/qt-5/qml-qtquick-anchorchanges.html When the item is in an “anchored” state: states: [ State { name: "anchored" AnchorChanges { target: myRect anchors.top: window.top anchors.bottom: window.bottom } PropertyChanges { target: myRect color: "green" } }, State { name: "not-anchored" AnchorChanges { target: myRect anchors.top: undefined anchors.bottom: undefined } PropertyChanges { target: myRect color: "red" } } ] This assumes that you have control over the anchors, though. From: Alexander Ivash [mailto:elderorb at gmail.com] Sent: Friday, 6 April 2018 1:23 PM To: Mitch Curtis > Cc: interest at qt-project.org Subject: Re: [Interest] How to determine whether QML item is anchored? Let's say I'm trying to make the logic like this: "If parent component is anchored, make a child green, otherwise make it red" Sent from Mailspring, the best free email app for work On Apr 6 2018, at 2:20 pm, Mitch Curtis > wrote: What are you trying to do? From: Interest [mailto:interest-bounces+mitch.curtis=qt.io at qt-project.org] On Behalf Of Alexander Ivash Sent: Friday, 6 April 2018 11:40 AM To: interest at qt-project.org Subject: [Interest] How to determine whether QML item is anchored? What I'm missing? It seems like even not anchored item has anchors.right/left/top/bottom set, so it is not possible to compare with 'undefined' or something. Of course introducing change handler allows to track moment of anchoring (although still no way to track un-anchoring), but this is a bit ugly and not 'Qt-way'. Sent from Mailspring, the best free email app for work [Open Tracking] -------------- next part -------------- An HTML attachment was scrubbed... URL: From Shawn.Rutledge at qt.io Fri Apr 6 14:21:25 2018 From: Shawn.Rutledge at qt.io (Shawn Rutledge) Date: Fri, 6 Apr 2018 12:21:25 +0000 Subject: [Interest] How to determine whether QML item is anchored? In-Reply-To: References: <1523014719.local-23d3901e-507d-v1.2.1-7e7447b6@getmailspring.com> Message-ID: <2A437BB0-9257-4E4C-93A2-311773A62B23@qt.io> But I wanted to query anchors at runtime once too, a few years ago; I think I’ve forgotten why. > On 6 Apr 2018, at 13:58, Mitch Curtis wrote: > > https://bugreports.qt.io/browse/QTBUG-66264 is semi-related to this, or at least explains why we can’t really return null if they’re not set. > > Without having more information about your use case, it seems like quite a corner case. > > From: Alexander Ivash [mailto:elderorb at gmail.com] > Sent: Friday, 6 April 2018 1:41 PM > To: Mitch Curtis > Cc: interest at qt-project.org > Subject: Re: [Interest] How to determine whether QML item is anchored? > > Thanks, I'm aware of this, but this is a bit different.. Would be great to get ability to compare against something like anchors.defaultLeft or anchors.NoAnchor in future. > > Sent from Mailspring, the best free email app for work > On Apr 6 2018, at 2:38 pm, Mitch Curtis wrote: > > I’m not sure if it helps in your situation, but perhaps you could take a look at AnchorChanges: > > > > http://doc.qt.io/qt-5/qml-qtquick-anchorchanges.html > > > > When the item is in an “anchored” state: > > > > states: [ > > State { > > name: "anchored" > > > > AnchorChanges { > > target: myRect > > anchors.top: window.top > > anchors.bottom: window.bottom > > } > > PropertyChanges { > > target: myRect > > color: "green" > > } > > }, > > State { > > name: "not-anchored" > > > > AnchorChanges { > > target: myRect > > anchors.top: undefined > > anchors.bottom: undefined > > } > > > > PropertyChanges { > > target: myRect > > color: "red" > > } > > } > > ] > > > > This assumes that you have control over the anchors, though. > > > > From: Alexander Ivash [mailto:elderorb at gmail.com] > Sent: Friday, 6 April 2018 1:23 PM > To: Mitch Curtis > Cc: interest at qt-project.org > Subject: Re: [Interest] How to determine whether QML item is anchored? > > > Let's say I'm trying to make the logic like this: "If parent component is anchored, make a child green, otherwise make it red" > > > Sent from Mailspring, the best free email app for work > On Apr 6 2018, at 2:20 pm, Mitch Curtis wrote: > > > What are you trying to do? > > > > > > From: Interest [mailto:interest-bounces+mitch.curtis=qt.io at qt-project.org] On Behalf Of Alexander Ivash > Sent: Friday, 6 April 2018 11:40 AM > To: interest at qt-project.org > Subject: [Interest] How to determine whether QML item is anchored? > > > > What I'm missing? It seems like even not anchored item has anchors.right/left/top/bottom set, so it is not possible to compare with 'undefined' or something. Of course introducing change handler allows to track moment of anchoring (although still no way to track un-anchoring), but this is a bit ugly and not 'Qt-way'. > > > > Sent from Mailspring, the best free email app for work > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest From godboutj at amotus.ca Fri Apr 6 15:14:16 2018 From: godboutj at amotus.ca (=?Windows-1252?Q?J=E9r=F4me_Godbout?=) Date: Fri, 6 Apr 2018 13:14:16 +0000 Subject: [Interest] How to determine whether QML item is anchored? In-Reply-To: <2A437BB0-9257-4E4C-93A2-311773A62B23@qt.io> References: <1523014719.local-23d3901e-507d-v1.2.1-7e7447b6@getmailspring.com> , <2A437BB0-9257-4E4C-93A2-311773A62B23@qt.io> Message-ID: You might want to check the state since you use the state to change the anchors. You could add objectName or another property to your state to check your condition. property bool isAnchors: myObj.states.find(function(s){ return s.name == myObj.state; }).myPropertyBool; State { property bool myPropertyBool: true // put true when you need it } Not sure if the Anchors is an attachement object, not sure you can probe it directly unless you seek into the Object children to find Attachment object of any kind, else you might want to check if you can reach the anchors property: property bool isAnchors: fetchAnchors(myObj) function fetchAnchors(o) { return o && o.anchors && o.anchors.top; // anchors cannot be null, only undefined, so the if value should work } ________________________________ From: Interest on behalf of Shawn Rutledge Sent: April 6, 2018 8:21 AM To: interest at qt-project.org Subject: Re: [Interest] How to determine whether QML item is anchored? But I wanted to query anchors at runtime once too, a few years ago; I think I’ve forgotten why. > On 6 Apr 2018, at 13:58, Mitch Curtis wrote: > > https://bugreports.qt.io/browse/QTBUG-66264 is semi-related to this, or at least explains why we can’t really return null if they’re not set. > > Without having more information about your use case, it seems like quite a corner case. > > From: Alexander Ivash [mailto:elderorb at gmail.com] > Sent: Friday, 6 April 2018 1:41 PM > To: Mitch Curtis > Cc: interest at qt-project.org > Subject: Re: [Interest] How to determine whether QML item is anchored? > > Thanks, I'm aware of this, but this is a bit different.. Would be great to get ability to compare against something like anchors.defaultLeft or anchors.NoAnchor in future. > > Sent from Mailspring, the best free email app for work > On Apr 6 2018, at 2:38 pm, Mitch Curtis wrote: > > I’m not sure if it helps in your situation, but perhaps you could take a look at AnchorChanges: > > > > http://doc.qt.io/qt-5/qml-qtquick-anchorchanges.html > > > > When the item is in an “anchored” state: > > > > states: [ > > State { > > name: "anchored" > > > > AnchorChanges { > > target: myRect > > anchors.top: window.top > > anchors.bottom: window.bottom > > } > > PropertyChanges { > > target: myRect > > color: "green" > > } > > }, > > State { > > name: "not-anchored" > > > > AnchorChanges { > > target: myRect > > anchors.top: undefined > > anchors.bottom: undefined > > } > > > > PropertyChanges { > > target: myRect > > color: "red" > > } > > } > > ] > > > > This assumes that you have control over the anchors, though. > > > > From: Alexander Ivash [mailto:elderorb at gmail.com] > Sent: Friday, 6 April 2018 1:23 PM > To: Mitch Curtis > Cc: interest at qt-project.org > Subject: Re: [Interest] How to determine whether QML item is anchored? > > > Let's say I'm trying to make the logic like this: "If parent component is anchored, make a child green, otherwise make it red" > > > Sent from Mailspring, the best free email app for work > On Apr 6 2018, at 2:20 pm, Mitch Curtis wrote: > > > What are you trying to do? > > > > > > From: Interest [mailto:interest-bounces+mitch.curtis=qt.io at qt-project.org] On Behalf Of Alexander Ivash > Sent: Friday, 6 April 2018 11:40 AM > To: interest at qt-project.org > Subject: [Interest] How to determine whether QML item is anchored? > > > > What I'm missing? It seems like even not anchored item has anchors.right/left/top/bottom set, so it is not possible to compare with 'undefined' or something. Of course introducing change handler allows to track moment of anchoring (although still no way to track un-anchoring), but this is a bit ugly and not 'Qt-way'. > > > > Sent from Mailspring, the best free email app for work > > _______________________________________________ > 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 mail at herrdiel.de Sun Apr 8 02:19:39 2018 From: mail at herrdiel.de (mail at herrdiel.de) Date: Sun, 8 Apr 2018 02:19:39 +0200 Subject: [Interest] QML errors, only in debug mode! Message-ID: <4b0f7190-0c48-6643-dc0c-9551015266cd@funkmachine.de> Hi, I am experiencing problems while debugging my QML-based app. All the following error messages do **not** appear when I just run (Ctrl+r), they only do so in debug mode (F5). [Symptom A] When the Program window comes to front, I get: > onecore\com\combase\inc\comcataloghelpers.hpp(67)\combase.dll!746B8550: > (caller: 746B82E0) ReturnHr(1) tid(43f4) 80004002 Schnittstelle nicht > unterstützt ("No such interface supported") and > mincore\com\oleaut32\dispatch\ups.cpp(2125)\OLEAUT32.dll!73CA234F: > (caller: 73CA1EF1) ReturnHr(1) tid(2b70) 8002801D Bibliothek nicht > registriert. ("Library not registered", same again for ReturnHr(2)). [Symptom B] Also, interestingly, I can not see svg images when debugging. Fine when just running. [Symptom C] Opening a FileDialog from QtQuick.Dialogs1.2 in debug mode, I get the loads of errors (again: works in run mode) - and afterwards many crashes that I cannot yet understand. First is > onecoreuap\shell\windows.storage\regfldr.cpp(1239)\windows.storage.dll!74A1A719: > (caller: 74A186F0) ReturnHr(1) tid(2b70) 80004001 Nicht implementiert ("Not implemented"), then several of these: > onecoreuap\shell\windows.storage\kfapi\folderpathidlistcache.cpp(208)\windows.storage.dll!74A5B07C: > (caller: 74A5A36C) LogHr(1) tid(97c) 80070002 Das System kann die > angegebene Datei nicht finden. ("The system cannot find the file specified") After this, a specified drive can't be found (multiple times), > onecoreuap\shell\lib\bindctx.cpp(128)\SHELL32.dll!757F0C37: (caller: > 757EB0F0) ReturnHr(1) tid(97c) 80070057 Falscher Parameter. ("Wrong parameter") and > shell\comdlg32\fileopensave.cpp(14268)\comdlg32.dll!752CE4A3: (caller: > 752D97BC) ReturnHr(1) tid(97c) 80004005 Unbekannter Fehler > > CallContext:[\PickerModalLoop] > onecoreuap\shell\windows.storage\regfldr.cpp(1239)\windows.storage.dll!74A1A719: > (caller: 74A186F0) ReturnHr(29) tid(97c) 80004001 Nicht implementiert > ("Unknown Error" and "Not implemented") Are these symtoms related? Is all this related to https://bugreports.qt.io/browse/QTBUG-63789? Are there any solutions, workarounds or even ideas on how to get debugging to work properly again? Best regards, Sebastian P.S.: * Qt 5.10.0 MinGW / 32bit Debug * Windows Version 10.0.16299 Build 16299, 64 bit * Qt Creator 4.2.1, * Three Monitors. -- http://www.classintouch.de - Tablet-Software für Lehrer -------------- next part -------------- An HTML attachment was scrubbed... URL: From mail at herrdiel.de Sun Apr 8 13:14:18 2018 From: mail at herrdiel.de (mail at herrdiel.de) Date: Sun, 8 Apr 2018 13:14:18 +0200 Subject: [Interest] Qt 5.10.1 TextField backgound inconsistency or regression Message-ID: <515b78d2-e166-a811-f005-0449a36c6754@funkmachine.de> Hi again, in order to find out more about the QML errors mentioned in my previous post, I have tried using Qt 5.10.1. (MinGw5.3, Windows Version 10.0.16299 Build 16299, 64 bit) While upgrading doesn't help there, it brought an inconsistency/regression between the versions to my attention: @ Repeater{ model:currentItem.similarPupils.count TextField{ propertyvarcurrentSubItem:currentItem.similarPupils.get(index) background:Rectangle{ color:"green"//normallymorecomplex // anchors.fill:parent } verticalAlignment:Text.AlignVCenter height:30 width:importCsvDuplicates.elementWidth propertystringnameText:currentSubItem?currentSubItem.text:"" text:currentSubItem.text +"" +currentSubItem.propertyFromRole("distance") } } @ In 5.10.0 this works fine, in 5.10.1 some TextFields are left white (see pics below). I can work around that by "uncommenting in" the     anchors.fill: parent Is this something to file a bug about or has this been done on purpose? Best regards Sebastian -------------------------------------------------------------------------------------------------------- This is 5.10.1 - white fields: ------------------------------------------------------------------------------------------------------------------------------ This is In 5.10.0 -  or In 5.10.1 with additional "anchors.fill: parent" -- http://www.classintouch.de - Tablet-Software für Lehrer -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: jenhnhbchmddaojk.png Type: image/png Size: 28826 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: mofapdhhkkajpdfi.png Type: image/png Size: 28048 bytes Desc: not available URL: From mail at herrdiel.de Sun Apr 8 13:32:26 2018 From: mail at herrdiel.de (mail at herrdiel.de) Date: Sun, 8 Apr 2018 13:32:26 +0200 Subject: [Interest] Qt 5.10.1 TextField backgound inconsistency or regression In-Reply-To: <515b78d2-e166-a811-f005-0449a36c6754@funkmachine.de> References: <515b78d2-e166-a811-f005-0449a36c6754@funkmachine.de> Message-ID: Update: could this be related to https://bugreports.qt.io/browse/QTBUG-67446? That bug's workaround (setting an id in background) works here, too. Am 08.04.2018 um 13:14 schrieb mail at herrdiel.de: > > Hi again, > > in order to find out more about the QML errors mentioned in my > previous post, I have tried using Qt 5.10.1. > > (MinGw5.3, Windows Version 10.0.16299 Build 16299, 64 bit) > > While upgrading doesn't help there, it brought an > inconsistency/regression between the versions to my attention: > > @ > > Repeater{ > > model:currentItem.similarPupils.count > TextField{ > propertyvarcurrentSubItem:currentItem.similarPupils.get(index) > background:Rectangle{ > color:"green"//normallymorecomplex > // anchors.fill:parent > } > verticalAlignment:Text.AlignVCenter > height:30 > width:importCsvDuplicates.elementWidth > propertystringnameText:currentSubItem?currentSubItem.text:"" > text:currentSubItem.text +"" +currentSubItem.propertyFromRole("distance") > } > } > @ > > In 5.10.0 this works fine, in 5.10.1 some TextFields are left white > (see pics below). > > I can work around that by "uncommenting in" the >     anchors.fill: parent > > Is this something to file a bug about or has this been done on purpose? > > Best regards > Sebastian > > > -------------------------------------------------------------------------------------------------------- > This is 5.10.1 - white fields: > > > ------------------------------------------------------------------------------------------------------------------------------ > This is In 5.10.0 -  or In 5.10.1 with additional "anchors.fill: parent" > -- > http://www.classintouch.de - Tablet-Software für Lehrer > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -- http://www.classintouch.de - Tablet-Software für Lehrer -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: jenhnhbchmddaojk.png Type: image/png Size: 28826 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: mofapdhhkkajpdfi.png Type: image/png Size: 28048 bytes Desc: not available URL: From asmaloney at gmail.com Sun Apr 8 19:57:14 2018 From: asmaloney at gmail.com (Andy) Date: Sun, 8 Apr 2018 13:57:14 -0400 Subject: [Interest] [Qt3D] Mixing Quick3D and C++ nodes Message-ID: I want to move my framegraph from C++ to QML. My first step is to reproduce what's already happening with the forward renderer. If I use a QQmlAspectEngine, should I be able to just swap out parts of the node hierarchy for Quick3D nodes while leaving other parts C++? For example, here is the normal tree with a forward renderer & it works: Debug: Qt3DRender::QRenderSettings:: (:0, (null)) Debug: Qt3DRender::QRenderCapture:: (:0, (null)) Debug: Qt3DExtras::QForwardRenderer::Forward Renderer (:0, (null)) Debug: Qt3DRender::QRenderSurfaceSelector:: (:0, (null)) Debug: Qt3DRender::QViewport:: (:0, (null)) Debug: Qt3DRender::QCameraSelector:: (:0, (null)) Debug: Qt3DRender::QClearBuffers:: (:0, (null)) Debug: Qt3DRender::QFrustumCulling:: (:0, (null)) Debug: Qt3DRender::QFilterKey:: (:0, (null)) Then I switch out the C++ for the QML (and use setContextProperty() to point at my C++ camera): Debug: Qt3DRender::QRenderSettings:: (:0, (null)) Debug: Qt3DRender::QRenderCapture:: (:0, (null)) Debug: Qt3DRender::Render::Quick::Quick3DTechniqueFilter:: (:0, (null)) Debug: Qt3DCore::Quick::Quick3DNodeV9:: (:0, (null)) Debug: Qt3DRender::QRenderSurfaceSelector:: (:0, (null)) Debug: Qt3DCore::Quick::Quick3DNodeV9:: (:0, (null)) Debug: Qt3DRender::Render::Quick::Quick3DViewport:: (:0, (null)) Debug: Qt3DCore::Quick::Quick3DNodeV9:: (:0, (null)) Debug: Qt3DCore::Quick::Quick3DNode:: (:0, (null)) [Note: this is the CameraSelector/camera] Debug: Qt3DCore::Quick::Quick3DNode:: (:0, (null)) Debug: Qt3DRender::QClearBuffers:: (:0, (null)) Debug: Qt3DCore::Quick::Quick3DNodeV9:: (:0, (null)) Debug: Qt3DRender::QFrustumCulling:: (:0, (null)) Debug: Qt3DRender::Render::Quick::Quick3DRenderPassFilter:: (:0, (null)) Debug: Qt3DRender::Render::Quick::Quick3DRenderPassFilter:: (:0, (null)) Debug: Qt3DRender::QFilterKey:: (:0, (null)) This doesn't work - doesn't render anything - am I supposed to be able to do this? If so is there anything else I'm supposed to do to tell the engine to use both? (I'm using Qt 5.10.1 on macOS.) Thank you for any insights. --- Andy Maloney // https://asmaloney.com twitter ~ @asmaloney -------------- next part -------------- An HTML attachment was scrubbed... URL: From roland at logikalsolutions.com Mon Apr 9 16:31:31 2018 From: roland at logikalsolutions.com (Roland Hughes) Date: Mon, 9 Apr 2018 09:31:31 -0500 Subject: [Interest] How do you want to select exactly C++11 with, GCC 6+? In-Reply-To: References: Message-ID: On 03/09/2017 04:35 PM, Konstantin Tokarev wrote: > 09.03.2017, 16:14, "Thiago Macieira" : >> This is a straw poll to see if we should change qmake's behaviour for Qt 5.9. >> >> GCC 6 and ICC 17, in the absence of -std= comipler options, default ot C++14. >> So I have two questions: >> >> 1) is there a need for qmake to provide a way to select*exactly* C++11, not a >> later, available version? >> >> 2) if the answer is "yes", how would you prefer to do so? >> ????????option I: CONFIG += c++11 >> ????????option II: CONFIG -= c++14 (obviously disables later editions too) >> >> I want to first get just gut feeling, so I won't post pros and cons of the >> approaches. > I would prefer something like CXX_STANDARD = c++11 > Sorry for the necro-post, but, have been working on OpenVMS and writing projects, letting my interest email pile up. I would like to +1 this if no decision has moved forward. I will try to refrain from responding to other year+ old topics, but this was a very good suggestion. -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From shaan7in at gmail.com Mon Apr 9 17:30:36 2018 From: shaan7in at gmail.com (Shantanu Tushar) Date: Mon, 9 Apr 2018 21:00:36 +0530 Subject: [Interest] QtQuick Controls 2 and Designer: Should I use Styles or Customize? In-Reply-To: References: Message-ID: Hi, I've been slowly implementing these suggestions and so far the results have been great. My button style looks like this- import QtQuick 2.9 import QtQuick.Templates 2.1 as T import My.theme 0.2 T.Button { // Here i use properties like Theme.backgroundColor, Theme.textColor etc } However, I just hit a roadblock which deals with multiple styles in the same application. Our designer has created two sets of theme colors - Glass and Dark, Glass it to be used on the "Main window" of our application and Dark is used on rest of the dialogs. See https://www.sostronk.com/assets/tilt-a780c798bf78e6c5.png Now, because Theme is a singleton, there is no way for me to define a different set of colors for a Dialog. Any suggestions on how to achieve this? Thanks, On 26 March 2018 at 19:37, Shantanu Tushar wrote: > Hi Thomas, > > I've tried both your suggestions in a PoC project and it works! My > actual app will need some refactoring to get the ball rolling but I > think this will work fine. > > Thanks a lot, > > > On 16 March 2018 at 19:32, Thomas Hartmann wrote: >> Hi, >> >> >> I would suggest solution number 1 (Creating a Custom Style). >> >> >> To get the designer to show your custom style you have to configure it in >> qtquickcontrols2.conf. >> >> You can do this in the editable combo box in the form editor if >> qtquickcontrols2.conf does exist. >> >> You can refer to the Qt Quick Controls 2 Flat Style example >> (https://doc.qt.io/qt-5.10/qtquickcontrols2-flatstyle-example.html). >> >> You can use QT_QUICK_CONTROLS_STYLE_PATH to specify additional paths that >> are used to lookup Qt Quick Controls 2 styles. >> >> You can also write your own QML plugin (2. Customizing a Control), but you >> have to create a QML file for every control >> >> and you have to implement a full plugin/import. For these customized >> controls to show up in the item library you have to provide a .metainfo >> file. You can look at the origin Qt Quick Controls 2 implementation for >> reference. >> >> >> I hope this solves your issue. >> >> >> Kind Regards, >> >> Thomas Hartmann >> >> >> >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest >> > > > > -- > Shantanu Tushar (UTC +0530) > shantanu.io -- Shantanu Tushar (UTC +0530) shantanu.io From thiago.macieira at intel.com Mon Apr 9 18:02:35 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Mon, 9 Apr 2018 09:02:35 -0700 Subject: [Interest] How do you want to select exactly C++11 with, GCC 6+? In-Reply-To: References: Message-ID: <2482462.HelV3Ki6FL@tjmaciei-mobl1> On Monday, 9 April 2018 07:31:31 PDT Roland Hughes wrote: > Sorry for the necro-post, but, have been working on OpenVMS and writing > projects, letting my interest email pile up. I would like to +1 this if > no decision has moved forward. The decision was made not to change anything. To select C++11, do: CONFIG += c++11 CONFIG -= c++14 c++1z When qmake starts supporting "c++17", you'll need to remove that too. Ditto for C++2x. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From godboutj at amotus.ca Mon Apr 9 18:05:00 2018 From: godboutj at amotus.ca (=?iso-8859-1?Q?J=E9r=F4me_Godbout?=) Date: Mon, 9 Apr 2018 16:05:00 +0000 Subject: [Interest] QtQuick Controls 2 and Designer: Should I use Styles or Customize? In-Reply-To: References: , Message-ID: You could have a property inside the controler to select the proper theme value with a fallback, your theme singleton would then need to have different set of color. Theme { id: component property var defaultTheme: panelTheme property var mainTheme: ... property var panelTheme: ... function getTheme(prop) { if(prop && component.hasOwnProperty(prop)) return component[prop]; return component.defaultTheme; } } T.Button { id: component color: Theme.getTheme(component.customTheme).backgroundColor } // use style with default theme Button { } // Button with theme color Button { property string customTheme: 'mainTheme' } As for loading a multiple different template I think it would be impossible. ________________________________ From: Interest on behalf of Shantanu Tushar Sent: April 9, 2018 11:30 AM To: Thomas Hartmann Cc: interest at qt-project.org Subject: Re: [Interest] QtQuick Controls 2 and Designer: Should I use Styles or Customize? Hi, I've been slowly implementing these suggestions and so far the results have been great. My button style looks like this- import QtQuick 2.9 import QtQuick.Templates 2.1 as T import My.theme 0.2 T.Button { // Here i use properties like Theme.backgroundColor, Theme.textColor etc } However, I just hit a roadblock which deals with multiple styles in the same application. Our designer has created two sets of theme colors - Glass and Dark, Glass it to be used on the "Main window" of our application and Dark is used on rest of the dialogs. See https://www.sostronk.com/assets/tilt-a780c798bf78e6c5.png Now, because Theme is a singleton, there is no way for me to define a different set of colors for a Dialog. Any suggestions on how to achieve this? Thanks, On 26 March 2018 at 19:37, Shantanu Tushar wrote: > Hi Thomas, > > I've tried both your suggestions in a PoC project and it works! My > actual app will need some refactoring to get the ball rolling but I > think this will work fine. > > Thanks a lot, > > > On 16 March 2018 at 19:32, Thomas Hartmann wrote: >> Hi, >> >> >> I would suggest solution number 1 (Creating a Custom Style). >> >> >> To get the designer to show your custom style you have to configure it in >> qtquickcontrols2.conf. >> >> You can do this in the editable combo box in the form editor if >> qtquickcontrols2.conf does exist. >> >> You can refer to the Qt Quick Controls 2 Flat Style example >> (https://doc.qt.io/qt-5.10/qtquickcontrols2-flatstyle-example.html). >> >> You can use QT_QUICK_CONTROLS_STYLE_PATH to specify additional paths that >> are used to lookup Qt Quick Controls 2 styles. >> >> You can also write your own QML plugin (2. Customizing a Control), but you >> have to create a QML file for every control >> >> and you have to implement a full plugin/import. For these customized >> controls to show up in the item library you have to provide a .metainfo >> file. You can look at the origin Qt Quick Controls 2 implementation for >> reference. >> >> >> I hope this solves your issue. >> >> >> Kind Regards, >> >> Thomas Hartmann >> >> >> >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest >> > > > > -- > Shantanu Tushar (UTC +0530) > shantanu.io -- 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 godboutj at amotus.ca Mon Apr 9 18:23:37 2018 From: godboutj at amotus.ca (=?iso-8859-1?Q?J=E9r=F4me_Godbout?=) Date: Mon, 9 Apr 2018 16:23:37 +0000 Subject: [Interest] QMake install Message-ID: Hi, I'm having some trouble to find the proper way to install multiple sources into the same directory. I have a git repos with some java source for Android and some subRepos I want to also contribute to java src. I have hard time to figure out how to install all of them into the android subfolder: * myMainRepos\ * myMain.pro * android\ my android source for this application * src\ * ... * subrepos\ * mySubRepos1\ * mySubRepos1.pri * android\ generic android code reused * src\ * ... my sub repos is simple .pri that add his own file to the solution sources, headers. I try something like this but end up with full path into my build dir: android/Users/MyUser/projects/MyMainRepos/subrepos/mySubRepos1/android/... myMain.pro ANDROID_SOURCES.path = android ANDROID_SOURCES.files = $$files($$PWD/android/*) INSTALLS += ANDROID_SOURCES mySubRepos1.pri SUBREPOS1_ANDROID_SOURCES.path = android SUBREPOS1_ANDROID_SOURCES.files = $$files($$PWD/subrepos/smySubRepos1/android/*) INSTALLS += SUBREPOS1_ANDROID_SOURCES Is there a better way to do this? How can I ditch some of the source path? I need all thoses files into mybuilddir/android I also encounter some problems after ditching the single ANDROID_PACKAGE_SOURCE_DIR = android Seem like the build think it now build a library and look for an application (my .pro TEMPLATE = app) Seek into the build folder android-MyApp-deployment-settings.json but only the following file is generated: android-libMyApp.so-deployment-settings.json What is needed to tell the .pro I make android app release? Seem like the template is not enough and ANDROID_PACKAGE_SOURCE_DIR is doing some extra. [1515684621069_logo.png] Jérôme Godbout 2992 chemin Sainte-Foy Quebec, Canada G1X1P6 tel: +1 (581) 777-0050 email: godboutj at amotus.ca web: www.amotus-solutions.com -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Outlook-1515684621.png Type: image/png Size: 15038 bytes Desc: Outlook-1515684621.png URL: From roland at logikalsolutions.com Mon Apr 9 19:44:06 2018 From: roland at logikalsolutions.com (Roland Hughes) Date: Mon, 9 Apr 2018 12:44:06 -0500 Subject: [Interest] How to make the QString "10" behind "9" in QMap's key order In-Reply-To: References: Message-ID: On 01/08/2018 06:26 AM, Mark Gaiser wrote: > You might want to look into std::map[1] as well. It allows setting a > compare function, QMap doesn't. > Going that route is most likely more efficient as your inserts will be > sorted, no need to do std::sort afterwards. Jumping into this one late, but, is there any particular reason QMap doesn't allow overriding or supplying a comparison method? Has a feature request already been filed. -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From annulen at yandex.ru Mon Apr 9 19:46:51 2018 From: annulen at yandex.ru (Konstantin Tokarev) Date: Mon, 09 Apr 2018 20:46:51 +0300 Subject: [Interest] How to make the QString "10" behind "9" in QMap's key order In-Reply-To: References: Message-ID: <15486211523296011@web51o.yandex.ru> 09.04.2018, 20:44, "Roland Hughes" : > On 01/08/2018 06:26 AM, Mark Gaiser wrote: >> You might want to look into std::map[1] as well. It allows setting a compare function, QMap doesn't. Going that route is most likely more efficient as your inserts will be sorted, no need to do std::sort afterwards. > > Jumping into this one late, but, is there any particular reason QMap doesn't allow overriding or supplying a comparison method? Has a feature request already been filed. Because there is std::map > > -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com > , > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest --  Regards, Konstantin From roland at logikalsolutions.com Mon Apr 9 19:53:40 2018 From: roland at logikalsolutions.com (Roland Hughes) Date: Mon, 9 Apr 2018 12:53:40 -0500 Subject: [Interest] How to make the QString "10" behind "9" in QMap's key order In-Reply-To: <15486211523296011@web51o.yandex.ru> References: <15486211523296011@web51o.yandex.ru> Message-ID: <1651caae-9ac3-342d-19d9-e5bd79d9364e@logikalsolutions.com> Which isn't really a Qt answer. Long ago, before Nokia, there was the mantra/design principal that Qt would always be compatible with the standard stuff. A subset of means "compatible" is written with barely readable faint gray ink. Just my 0.00002. I can only remember twice on projects where the inability to set the sort for a QMap hurt me. It hurt bad both times so I remember the hurt, but not what caused it. On 04/09/2018 12:46 PM, Konstantin Tokarev wrote: > > 09.04.2018, 20:44, "Roland Hughes" : >> On 01/08/2018 06:26 AM, Mark Gaiser wrote: >>> You might want to look into std::map[1] as well. It allows setting a compare function, QMap doesn't. Going that route is most likely more efficient as your inserts will be sorted, no need to do std::sort afterwards. >> Jumping into this one late, but, is there any particular reason QMap doesn't allow overriding or supplying a comparison method? Has a feature request already been filed. > Because there is std::map > >> -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com >> , >> >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest > > -- > Regards, > Konstantin -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From annulen at yandex.ru Mon Apr 9 20:00:21 2018 From: annulen at yandex.ru (Konstantin Tokarev) Date: Mon, 09 Apr 2018 21:00:21 +0300 Subject: [Interest] How to make the QString "10" behind "9" in QMap's key order In-Reply-To: <1651caae-9ac3-342d-19d9-e5bd79d9364e@logikalsolutions.com> References: <15486211523296011@web51o.yandex.ru> <1651caae-9ac3-342d-19d9-e5bd79d9364e@logikalsolutions.com> Message-ID: <15510321523296821@web51o.yandex.ru> 09.04.2018, 20:53, "Roland Hughes" : > Which isn't really a Qt answer. > > Long ago, before Nokia, there was the mantra/design principal that Qt would always be compatible with the standard stuff. A subset of means "compatible" is written with barely readable faint gray ink. Times has changed, and since Qt 5 standard library is a requirement for Qt, and parts that duplicate standard library (or core language) are on their way to deprecation. See e.g. QtAlgorithms or Q_FOREACH. > > Just my 0.00002. I can only remember twice on projects where the inability to set the sort for a QMap hurt me. It hurt bad both times so I remember the hurt, but not what caused it. > > On 04/09/2018 12:46 PM, Konstantin Tokarev wrote: >> 09.04.2018, 20:44, "Roland Hughes" : >>> On 01/08/2018 06:26 AM, Mark Gaiser wrote: >>>> You might want to look into std::map[1] as well. It allows setting a compare function, QMap doesn't. Going that route is most likely more efficient as your inserts will be sorted, no need to do std::sort afterwards. >>> >>> Jumping into this one late, but, is there any particular reason QMap doesn't allow overriding or supplying a comparison method? Has a feature request already been filed. >> >> Because there is std::map >>> -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com , _______________________________________________ Interest mailing list Interest at qt-project.org http://lists.qt-project.org/mailman/listinfo/interest >> >> --  Regards, Konstantin > > -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com --  Regards, Konstantin From jpnurmi at qt.io Mon Apr 9 20:59:56 2018 From: jpnurmi at qt.io (J-P Nurmi) Date: Mon, 9 Apr 2018 18:59:56 +0000 Subject: [Interest] ComboBox styling problems In-Reply-To: References: Message-ID: > On 27 Mar 2018, at 03:41, Jason H wrote: > > I sent this a while back, but I never got help, and I still haven't figured it out. > > ----- > I'm trying to style ComboBox, but I am getting a highlight that is not placed correctly, and there seems to be a semi-transparent black overlay that is also applying itself over the highlight? > > Can someone tell me what I'm doing wrong? Some comments to get you started: - Fix the "width: control.height" bindings. - In the delegate, use Text as a contentItem, and Rectangle as a background. Control controls the size of contentItem, and background follows the size of the Control by default. No need for width/height bindings for either. - If you want to use fontSizeMode, specify the font size range: http://doc-snapshots.qt.io/qt5-5.11/qml-qtquick-text.html#fontSizeMode-prop - Set a higher Z-value if you want the ListView highlight to appear over the delegates: https://doc-snapshots.qt.io/qt5-5.9/qml-qtquick-listview.html#stacking-order-in-listview but you will be just hiding the entire delegate with an opaque rectangle, so perhaps consider visualizing the highlighted state in the delegate background instead. - What's the purpose of the opaque Rectangle inside the ScrollIndicator? -- J-P Nurmi From jpnurmi at qt.io Mon Apr 9 21:06:02 2018 From: jpnurmi at qt.io (J-P Nurmi) Date: Mon, 9 Apr 2018 19:06:02 +0000 Subject: [Interest] Qt 5.10.1 TextField backgound inconsistency or regression In-Reply-To: References: <515b78d2-e166-a811-f005-0449a36c6754@funkmachine.de> Message-ID: Hi, This is a regression caused by the deferred execution changes related to the famous “object destroyed during incubation” problems (https://bugreports.qt.io/browse/QTBUG-50992). A fix has been pushed to 5.11 https://codereview.qt-project.org/#/c/225459/ and will be cherry-picked to the next 5.9 LTS release too. Thanks for bringing this up. -- J-P Nurmi On 8 Apr 2018, at 13:32, mail at herrdiel.de wrote: Update: could this be related to https://bugreports.qt.io/browse/QTBUG-67446? That bug's workaround (setting an id in background) works here, too. Am 08.04.2018 um 13:14 schrieb mail at herrdiel.de: Hi again, in order to find out more about the QML errors mentioned in my previous post, I have tried using Qt 5.10.1. (MinGw5.3, Windows Version 10.0.16299 Build 16299, 64 bit) While upgrading doesn't help there, it brought an inconsistency/regression between the versions to my attention: @ Repeater { model: currentItem.similarPupils.count TextField { property var currentSubItem: currentItem.similarPupils.get(index) background: Rectangle { color: "green" // normally more complex // anchors.fill: parent } verticalAlignment: Text.AlignVCenter height: 30 width: importCsvDuplicates.elementWidth property string nameText: currentSubItem ? currentSubItem.text : "" text: currentSubItem.text + " " + currentSubItem.propertyFromRole("distance") } } @ In 5.10.0 this works fine, in 5.10.1 some TextFields are left white (see pics below). I can work around that by "uncommenting in" the anchors.fill: parent Is this something to file a bug about or has this been done on purpose? Best regards Sebastian -------------------------------------------------------------------------------------------------------- This is 5.10.1 - white fields: ------------------------------------------------------------------------------------------------------------------------------ This is In 5.10.0 - or In 5.10.1 with additional "anchors.fill: parent" -- http://www.classintouch.de - Tablet-Software für Lehrer _______________________________________________ Interest mailing list Interest at qt-project.org http://lists.qt-project.org/mailman/listinfo/interest -- http://www.classintouch.de - Tablet-Software für Lehrer _______________________________________________ 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 Mon Apr 9 21:59:06 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Mon, 9 Apr 2018 12:59:06 -0700 Subject: [Interest] How to make the QString "10" behind "9" in QMap's key order In-Reply-To: References: Message-ID: <4288533.CAvSYZmcvo@tjmaciei-mobl1> On Monday, 9 April 2018 10:44:06 PDT Roland Hughes wrote: > On 01/08/2018 06:26 AM, Mark Gaiser wrote: > > You might want to look into std::map[1] as well. It allows setting a > > compare function, QMap doesn't. > > Going that route is most likely more efficient as your inserts will be > > sorted, no need to do std::sort afterwards. > > Jumping into this one late, but, is there any particular reason QMap > doesn't allow overriding or supplying a comparison method? Has a feature > request already been filed. Derive from QString and use that as your key type, providing your operator< or qLess. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From jhihn at gmx.com Tue Apr 10 06:09:43 2018 From: jhihn at gmx.com (Jason H) Date: Tue, 10 Apr 2018 06:09:43 +0200 Subject: [Interest] ComboBox styling problems In-Reply-To: References: Message-ID: Thanks for all of that JP, I'm still digesting some of that, but I cannot figure out where the partial opacity black overlay is coming from? 1) it does not follow the positioning of the highlight (see attached) 2) I can't change it's color or opacity. I agree with "so perhaps consider visualizing the highlighted state in the delegate background instead." But I want go get whatever that partial opacity black is under my control. > Sent: Monday, April 09, 2018 at 2:59 PM > From: "J-P Nurmi" > To: "interestqt-project.org" > Subject: Re: [Interest] ComboBox styling problems > > > On 27 Mar 2018, at 03:41, Jason H wrote: > > > > I sent this a while back, but I never got help, and I still haven't figured it out. > > > > ----- > > I'm trying to style ComboBox, but I am getting a highlight that is not placed correctly, and there seems to be a semi-transparent black overlay that is also applying itself over the highlight? > > > > Can someone tell me what I'm doing wrong? > > Some comments to get you started: > - Fix the "width: control.height" bindings. > - In the delegate, use Text as a contentItem, and Rectangle as a background. Control controls the size of contentItem, and background follows the size of the Control by default. No need for width/height bindings for either. > - If you want to use fontSizeMode, specify the font size range: http://doc-snapshots.qt.io/qt5-5.11/qml-qtquick-text.html#fontSizeMode-prop > - Set a higher Z-value if you want the ListView highlight to appear over the delegates: https://doc-snapshots.qt.io/qt5-5.9/qml-qtquick-listview.html#stacking-order-in-listview but you will be just hiding the entire delegate with an opaque rectangle, so perhaps consider visualizing the highlighted state in the delegate background instead. > - What's the purpose of the opaque Rectangle inside the ScrollIndicator? > > -- > J-P Nurmi > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > -------------- next part -------------- A non-text attachment was scrubbed... Name: Screen Shot 2018-04-09 at 11.52.54 PM.png Type: image/png Size: 8139 bytes Desc: not available URL: From jhihn at gmx.com Tue Apr 10 17:09:30 2018 From: jhihn at gmx.com (Jason H) Date: Tue, 10 Apr 2018 17:09:30 +0200 Subject: [Interest] USB Webcams in Android? Message-ID: I'm wondering what it would take to get USB webcams working in Qt on Android. It seems that if the kernel already supports it, it will be listed as as /dev/v* device. I'm also wondering what Qt needs to use the device? I plugged it in and it did not appear in QtMultimedia.availableCameras: [ {"deviceId":"back","displayName":"Rear-facing camera","position":1,"orientation":270}, {"deviceId":"front","displayName":"Front-facing camera","position":2,"orientation":90} ] Additionally, it seems that many camera apps don't support USB cameras and USB camera apps don't support the built-in cameras. The only hint at what is going on is this line in logcat: 04-10 10:59:05.360 14692 14886 I USBMonitor: name=/dev/bus/usb/001/002,desc=86,busnum=1,devnum=2,rawDesc=[B at 6930dda Many thanks! Here's what my Android kernel is saying: [ 2026.007529] PMI: smblib_vbus_regulator_enable: Enabling internal vbus regulator [ 2026.014142] msm-dwc3 a800000.ssusb: DWC3 exited from low power mode [ 2026.019444] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller [ 2026.019548] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1 [ 2026.026489] xhci-hcd xhci-hcd.0.auto: hcc params 0x0230fe65 hci version 0x110 quirks 0x00010010 [ 2026.026595] xhci-hcd xhci-hcd.0.auto: irq 732, io mem 0x0a800000 [ 2026.027069] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 [ 2026.027101] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 2026.027130] usb usb1: Product: xHCI Host Controller [ 2026.027156] usb usb1: Manufacturer: Linux 4.4.88-gda039c93611c xhci-hcd [ 2026.027182] usb usb1: SerialNumber: xhci-hcd.0.auto [ 2026.035180] hub 1-0:1.0: USB hub found [ 2026.036400] hub 1-0:1.0: 1 port detected [ 2026.037148] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller [ 2026.037195] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2 [ 2026.037435] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM. [ 2026.037767] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003 [ 2026.037798] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 2026.037825] usb usb2: Product: xHCI Host Controller [ 2026.037851] usb usb2: Manufacturer: Linux 4.4.88-gda039c93611c xhci-hcd [ 2026.037877] usb usb2: SerialNumber: xhci-hcd.0.auto [ 2026.043081] hub 2-0:1.0: USB hub found [ 2026.043804] hub 2-0:1.0: 1 port detected [ 2026.342230] usb 1-1: new high-speed USB device number 2 using xhci-hcd [ 2026.485458] usb 1-1: New USB device found, idVendor=a16f, idProduct=0304 [ 2026.485503] usb 1-1: New USB device strings: Mfr=2, Product=3, SerialNumber=0 [ 2026.485526] usb 1-1: Product: USB2.0 UVC PC Camera [ 2026.485548] usb 1-1: Manufacturer: GenesysLogic Technology Co., Ltd. [ 2026.545861] PMI: smblib_set_prop_use_external_vbus_output: VBUS output source: internal -> extern walleye:/dev # ls -al v* crw-rw---- 1 system camera 81, 128 1970-06-12 03:04 v4l-subdev0 crw-rw---- 1 system camera 81, 129 1970-06-12 03:04 v4l-subdev1 crw-rw---- 1 system camera 81, 138 1970-06-12 03:04 v4l-subdev10 crw-rw---- 1 system camera 81, 139 1970-06-12 03:04 v4l-subdev11 crw-rw---- 1 system camera 81, 140 1970-06-12 03:04 v4l-subdev12 crw-rw---- 1 system camera 81, 141 1970-06-12 03:04 v4l-subdev13 crw-rw---- 1 system camera 81, 142 1970-06-12 03:04 v4l-subdev14 crw-rw---- 1 system camera 81, 143 1970-06-12 03:04 v4l-subdev15 crw-rw---- 1 system camera 81, 144 1970-06-12 03:04 v4l-subdev16 crw-rw---- 1 system camera 81, 145 1970-06-12 03:04 v4l-subdev17 crw-rw---- 1 system camera 81, 146 1970-06-12 03:04 v4l-subdev18 crw-rw---- 1 system camera 81, 147 2018-04-10 09:47 v4l-subdev19 crw-rw---- 1 system camera 81, 130 1970-06-12 03:04 v4l-subdev2 crw-rw---- 1 system camera 81, 148 2018-04-10 09:47 v4l-subdev20 crw-rw---- 1 system camera 81, 131 1970-06-12 03:04 v4l-subdev3 crw-rw---- 1 system camera 81, 132 1970-06-12 03:04 v4l-subdev4 crw-rw---- 1 system camera 81, 133 1970-06-12 03:04 v4l-subdev5 crw-rw---- 1 system camera 81, 134 1970-06-12 03:04 v4l-subdev6 crw-rw---- 1 system camera 81, 135 1970-06-12 03:04 v4l-subdev7 crw-rw---- 1 system camera 81, 136 1970-06-12 03:04 v4l-subdev8 crw-rw---- 1 system camera 81, 137 1970-06-12 03:04 v4l-subdev9 crw------- 1 root root 10, 95 1970-06-12 03:04 vga_arbiter crw-rw---- 1 system camera 81, 0 1970-06-12 03:04 video0 crw-rw---- 1 system camera 81, 1 1970-06-12 03:04 video1 crw-rw---- 1 system camera 81, 2 1970-06-12 03:04 video2 crw-rw---- 1 system camera 81, 3 1970-06-12 03:04 video3 crw-rw---- 1 system camera 81, 32 1970-06-12 03:04 video32 crw-rw---- 1 system camera 81, 33 1970-06-12 03:04 video33 crw-rw---- 1 system camera 81, 4 2018-04-10 09:47 video4 crw-rw---- 1 system camera 81, 5 2018-04-10 09:47 video5 crw-rw-rw- 1 root root 10, 47 1970-06-12 03:04 vndbinder From jhihn at gmx.com Tue Apr 10 18:01:26 2018 From: jhihn at gmx.com (Jason H) Date: Tue, 10 Apr 2018 18:01:26 +0200 Subject: [Interest] USB Webcams in Android? In-Reply-To: References: Message-ID: It also looks like /dev/video0 is provided specifically for USB webcam support. It is opened, then ioctls use VIDIOC_QBUF to get a frame from the camera. I don't know how this will work with Qt. It looks like I need to build Qt with both android and v4l support? It looks like v4l support in Qt is limited to radio? > Sent: Tuesday, April 10, 2018 at 11:09 AM > From: "Jason H" > To: "interestqt-project.org" > Subject: [Interest] USB Webcams in Android? > > I'm wondering what it would take to get USB webcams working in Qt on Android. It seems that if the kernel already supports it, it will be listed as as /dev/v* device. > > I'm also wondering what Qt needs to use the device? I plugged it in and it did not appear in QtMultimedia.availableCameras: > [ > {"deviceId":"back","displayName":"Rear-facing camera","position":1,"orientation":270}, > {"deviceId":"front","displayName":"Front-facing camera","position":2,"orientation":90} > ] > > Additionally, it seems that many camera apps don't support USB cameras and USB camera apps don't support the built-in cameras. > The only hint at what is going on is this line in logcat: 04-10 10:59:05.360 14692 14886 I USBMonitor: name=/dev/bus/usb/001/002,desc=86,busnum=1,devnum=2,rawDesc=[B at 6930dda > > > Many thanks! > > Here's what my Android kernel is saying: > [ 2026.007529] PMI: smblib_vbus_regulator_enable: Enabling internal vbus regulator > [ 2026.014142] msm-dwc3 a800000.ssusb: DWC3 exited from low power mode > [ 2026.019444] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller > [ 2026.019548] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1 > [ 2026.026489] xhci-hcd xhci-hcd.0.auto: hcc params 0x0230fe65 hci version 0x110 quirks 0x00010010 > [ 2026.026595] xhci-hcd xhci-hcd.0.auto: irq 732, io mem 0x0a800000 > [ 2026.027069] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 > [ 2026.027101] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 > [ 2026.027130] usb usb1: Product: xHCI Host Controller > [ 2026.027156] usb usb1: Manufacturer: Linux 4.4.88-gda039c93611c xhci-hcd > [ 2026.027182] usb usb1: SerialNumber: xhci-hcd.0.auto > [ 2026.035180] hub 1-0:1.0: USB hub found > [ 2026.036400] hub 1-0:1.0: 1 port detected > [ 2026.037148] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller > [ 2026.037195] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2 > [ 2026.037435] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM. > [ 2026.037767] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003 > [ 2026.037798] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 > [ 2026.037825] usb usb2: Product: xHCI Host Controller > [ 2026.037851] usb usb2: Manufacturer: Linux 4.4.88-gda039c93611c xhci-hcd > [ 2026.037877] usb usb2: SerialNumber: xhci-hcd.0.auto > [ 2026.043081] hub 2-0:1.0: USB hub found > [ 2026.043804] hub 2-0:1.0: 1 port detected > [ 2026.342230] usb 1-1: new high-speed USB device number 2 using xhci-hcd > [ 2026.485458] usb 1-1: New USB device found, idVendor=a16f, idProduct=0304 > [ 2026.485503] usb 1-1: New USB device strings: Mfr=2, Product=3, SerialNumber=0 > [ 2026.485526] usb 1-1: Product: USB2.0 UVC PC Camera > [ 2026.485548] usb 1-1: Manufacturer: GenesysLogic Technology Co., Ltd. > [ 2026.545861] PMI: smblib_set_prop_use_external_vbus_output: VBUS output source: internal -> extern > > walleye:/dev # ls -al v* > crw-rw---- 1 system camera 81, 128 1970-06-12 03:04 v4l-subdev0 > crw-rw---- 1 system camera 81, 129 1970-06-12 03:04 v4l-subdev1 > crw-rw---- 1 system camera 81, 138 1970-06-12 03:04 v4l-subdev10 > crw-rw---- 1 system camera 81, 139 1970-06-12 03:04 v4l-subdev11 > crw-rw---- 1 system camera 81, 140 1970-06-12 03:04 v4l-subdev12 > crw-rw---- 1 system camera 81, 141 1970-06-12 03:04 v4l-subdev13 > crw-rw---- 1 system camera 81, 142 1970-06-12 03:04 v4l-subdev14 > crw-rw---- 1 system camera 81, 143 1970-06-12 03:04 v4l-subdev15 > crw-rw---- 1 system camera 81, 144 1970-06-12 03:04 v4l-subdev16 > crw-rw---- 1 system camera 81, 145 1970-06-12 03:04 v4l-subdev17 > crw-rw---- 1 system camera 81, 146 1970-06-12 03:04 v4l-subdev18 > crw-rw---- 1 system camera 81, 147 2018-04-10 09:47 v4l-subdev19 > crw-rw---- 1 system camera 81, 130 1970-06-12 03:04 v4l-subdev2 > crw-rw---- 1 system camera 81, 148 2018-04-10 09:47 v4l-subdev20 > crw-rw---- 1 system camera 81, 131 1970-06-12 03:04 v4l-subdev3 > crw-rw---- 1 system camera 81, 132 1970-06-12 03:04 v4l-subdev4 > crw-rw---- 1 system camera 81, 133 1970-06-12 03:04 v4l-subdev5 > crw-rw---- 1 system camera 81, 134 1970-06-12 03:04 v4l-subdev6 > crw-rw---- 1 system camera 81, 135 1970-06-12 03:04 v4l-subdev7 > crw-rw---- 1 system camera 81, 136 1970-06-12 03:04 v4l-subdev8 > crw-rw---- 1 system camera 81, 137 1970-06-12 03:04 v4l-subdev9 > crw------- 1 root root 10, 95 1970-06-12 03:04 vga_arbiter > crw-rw---- 1 system camera 81, 0 1970-06-12 03:04 video0 > crw-rw---- 1 system camera 81, 1 1970-06-12 03:04 video1 > crw-rw---- 1 system camera 81, 2 1970-06-12 03:04 video2 > crw-rw---- 1 system camera 81, 3 1970-06-12 03:04 video3 > crw-rw---- 1 system camera 81, 32 1970-06-12 03:04 video32 > crw-rw---- 1 system camera 81, 33 1970-06-12 03:04 video33 > crw-rw---- 1 system camera 81, 4 2018-04-10 09:47 video4 > crw-rw---- 1 system camera 81, 5 2018-04-10 09:47 video5 > crw-rw-rw- 1 root root 10, 47 1970-06-12 03:04 vndbinder > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > From patrickkidd at gmail.com Wed Apr 11 07:31:32 2018 From: patrickkidd at gmail.com (Patrick Stinson) Date: Tue, 10 Apr 2018 22:31:32 -0700 Subject: [Interest] How to scroll QScrollArea by number of pixels? Message-ID: <2048D2B3-EB1C-4571-A57B-BBD8B07E8125@gmail.com> Hello! Is there a way to scroll a QScrollArea by a precise number of pixels on the viewport widget? Or do you have to use relative units as calculated by the size fo the scrollbar handle and slider zone of the scroll bar? Thanks! -Patrick -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 1403 bytes Desc: not available URL: From igor.mironchik at gmail.com Wed Apr 11 09:09:26 2018 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Wed, 11 Apr 2018 10:09:26 +0300 Subject: [Interest] How to scroll QScrollArea by number of pixels? In-Reply-To: <2048D2B3-EB1C-4571-A57B-BBD8B07E8125@gmail.com> References: <2048D2B3-EB1C-4571-A57B-BBD8B07E8125@gmail.com> Message-ID: Hello, [virtual protected ] void scrollContentsBy(int dx, int dy) On 11.04.2018 08:31, Patrick Stinson wrote: > Hello! > > Is there a way to scroll a QScrollArea by a precise number of pixels on the viewport widget? Or do you have to use relative units as calculated by the size fo the scrollbar handle and slider zone of the scroll bar? > > Thanks! > -Patrick > > > _______________________________________________ > 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 Wed Apr 11 15:29:29 2018 From: shaan7in at gmail.com (Shantanu Tushar) Date: Wed, 11 Apr 2018 18:59:29 +0530 Subject: [Interest] QtQuick Controls 2 and Designer: Should I use Styles or Customize? In-Reply-To: References: Message-ID: Hi, Thanks for the suggestion. I ended up implementing it like this- $ cat theme/v2/Theme.qml pragma Singleton import QtQuick 2.10 import QtQuick.Window 2.3 Item { visible: false GlassColors { id: glassColors } PlatinumColors { id: platinumColors } readonly property var colors: glassColors readonly property var dialogColors: platinumColors ... ... } $ cat theme/v2/ThemeContext.qml import QtQuick 2.10 Item { id: root visible: false readonly property var _inheritedTheme: SoStronk.contextPropertyForQmlObject(root.parent, "theme") readonly property bool _inheritedDialogColors: _inheritedTheme && _inheritedTheme.dialogColors ? true : false property bool dialogColors: false readonly property var colors: dialogColors || _inheritedDialogColors ? Theme.dialogColors : Theme.colors } where contextPropertyForQmlObject is a C++ function which returns the value of a property under the context of the specified object. Its used like this- $ cat SoStronkStyle/Button.qml import QtQuick 2.10 import QtQuick.Templates 2.3 as T import SoStronk.theme 0.2 T.Button { id: control ThemeContext { id: theme } ... // access theme.colors.foregroundColor And whenever I create a dialog- ThemeContext { id: theme dialogColors: true } So then any Button accessing theme.colors will end up referring to dialogColors :) On 9 April 2018 at 21:35, Jérôme Godbout wrote: > You could have a property inside the controler to select the proper theme > value with a fallback, your theme singleton would then need to have > different set of color. > > > Theme > > { > > id: component > > property var defaultTheme: panelTheme > > property var mainTheme: ... > > property var panelTheme: ... > > > function getTheme(prop) > > { > > if(prop && component.hasOwnProperty(prop)) > > return component[prop]; > > return component.defaultTheme; > > } > > } > > > T.Button > > { > > id: component > > color: Theme.getTheme(component.customTheme).backgroundColor > > } > > > // use style with default theme > Button > { > } > > // Button with theme color > Button > { > property string customTheme: 'mainTheme' > } > > As for loading a multiple different template I think it would be impossible. > > ________________________________ > From: Interest on > behalf of Shantanu Tushar > Sent: April 9, 2018 11:30 AM > To: Thomas Hartmann > Cc: interest at qt-project.org > Subject: Re: [Interest] QtQuick Controls 2 and Designer: Should I use Styles > or Customize? > > Hi, > > I've been slowly implementing these suggestions and so far the results > have been great. My button style looks like this- > > import QtQuick 2.9 > import QtQuick.Templates 2.1 as T > > import My.theme 0.2 > > T.Button { > // Here i use properties like Theme.backgroundColor, Theme.textColor etc > } > > However, I just hit a roadblock which deals with multiple styles in > the same application. Our designer has created two sets of theme > colors - Glass and Dark, Glass it to be used on the "Main window" of > our application and Dark is used on rest of the dialogs. See > https://www.sostronk.com/assets/tilt-a780c798bf78e6c5.png > > Now, because Theme is a singleton, there is no way for me to define a > different set of colors for a Dialog. Any suggestions on how to > achieve this? > > Thanks, > > On 26 March 2018 at 19:37, Shantanu Tushar wrote: >> Hi Thomas, >> >> I've tried both your suggestions in a PoC project and it works! My >> actual app will need some refactoring to get the ball rolling but I >> think this will work fine. >> >> Thanks a lot, >> >> >> On 16 March 2018 at 19:32, Thomas Hartmann wrote: >>> Hi, >>> >>> >>> I would suggest solution number 1 (Creating a Custom Style). >>> >>> >>> To get the designer to show your custom style you have to configure it in >>> qtquickcontrols2.conf. >>> >>> You can do this in the editable combo box in the form editor if >>> qtquickcontrols2.conf does exist. >>> >>> You can refer to the Qt Quick Controls 2 Flat Style example >>> (https://doc.qt.io/qt-5.10/qtquickcontrols2-flatstyle-example.html). >>> >>> You can use QT_QUICK_CONTROLS_STYLE_PATH to specify additional paths that >>> are used to lookup Qt Quick Controls 2 styles. >>> >>> You can also write your own QML plugin (2. Customizing a Control), but >>> you >>> have to create a QML file for every control >>> >>> and you have to implement a full plugin/import. For these customized >>> controls to show up in the item library you have to provide a .metainfo >>> file. You can look at the origin Qt Quick Controls 2 implementation for >>> reference. >>> >>> >>> I hope this solves your issue. >>> >>> >>> Kind Regards, >>> >>> Thomas Hartmann >>> >>> >>> >>> _______________________________________________ >>> Interest mailing list >>> Interest at qt-project.org >>> http://lists.qt-project.org/mailman/listinfo/interest >>> >> >> >> >> -- >> Shantanu Tushar (UTC +0530) >> shantanu.io > > > > -- > Shantanu Tushar (UTC +0530) > shantanu.io > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -- Shantanu Tushar (UTC +0530) shantanu.io From christop.probst at gmail.com Wed Apr 11 15:51:16 2018 From: christop.probst at gmail.com (Christopher Probst) Date: Wed, 11 Apr 2018 09:51:16 -0400 Subject: [Interest] Qt Charts: Making the legend top and right aligned Message-ID: Hi, I would like to place the legend of chart that uses Qt charts at the top right of the view. I would have expected something like this to work: m_chart->legend()->setAlignment(Qt::AlignTop| Qt::AlignRight) Unfortunately it does not! Is there a direct way to make the legends (right or left) be top aligned rather then middle.? Thanks, Christopher -------------- next part -------------- An HTML attachment was scrubbed... URL: From chinander at gmail.com Wed Apr 11 16:03:05 2018 From: chinander at gmail.com (Mike Chinander) Date: Wed, 11 Apr 2018 09:03:05 -0500 Subject: [Interest] Qt Charts: Making the legend top and right aligned In-Reply-To: References: Message-ID: Not sure of a solution to this, but noticed that unlike other uses of Qt::Alignment flags, the QLegend docs say, "If you set more than one flag, the result is undefined." https://doc.qt.io/qt-5.10/qlegend.html#alignment-prop On Wed, Apr 11, 2018 at 8:51 AM, Christopher Probst < christop.probst at gmail.com> wrote: > Hi, > > I would like to place the legend of chart that uses Qt charts at the top > right of the view. I would have expected something like this to work: > > m_chart->legend()->setAlignment(Qt::AlignTop| Qt::AlignRight) > > > Unfortunately it does not! Is there a direct way to make the legends (right or left) be top aligned rather then middle.? > > > Thanks, > > Christopher > > > > _______________________________________________ > 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 christop.probst at gmail.com Wed Apr 11 16:05:56 2018 From: christop.probst at gmail.com (Christopher Probst) Date: Wed, 11 Apr 2018 10:05:56 -0400 Subject: [Interest] Qt Charts: Making the legend top and right aligned In-Reply-To: References: Message-ID: I have noticed that! Clearly they thought of it! I tried grabbing the y coordinate of the legend and changing it. That also does not work! It would be nice to have a solution to this. On 11 April 2018 at 10:03, Mike Chinander wrote: > Not sure of a solution to this, but noticed that unlike other uses of > Qt::Alignment flags, the QLegend docs say, "If you set more than one flag, > the result is undefined." > > https://doc.qt.io/qt-5.10/qlegend.html#alignment-prop > > On Wed, Apr 11, 2018 at 8:51 AM, Christopher Probst < > christop.probst at gmail.com> wrote: > >> Hi, >> >> I would like to place the legend of chart that uses Qt charts at the top >> right of the view. I would have expected something like this to work: >> >> m_chart->legend()->setAlignment(Qt::AlignTop| Qt::AlignRight) >> >> >> Unfortunately it does not! Is there a direct way to make the legends (right or left) be top aligned rather then middle.? >> >> >> Thanks, >> >> Christopher >> >> >> >> _______________________________________________ >> 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 richard at weickelt.de Wed Apr 11 16:18:11 2018 From: richard at weickelt.de (Richard Weickelt) Date: Wed, 11 Apr 2018 16:18:11 +0200 Subject: [Interest] Make Qt::PreciseTimer the default timer type Message-ID: <24af6f1a-9dbf-1f92-49bc-302408719ce6@weickelt.de> Hi, is there a way to set Qt::PreciseTimer as the default timer type for all QTimer instances in an application? According to the QTimer documentation [1], Qt::CoarseTimer is the default. Thanks Richard [1] http://doc.qt.io/qt-5/qtimer.html#timerType-prop From christop.probst at gmail.com Wed Apr 11 16:37:01 2018 From: christop.probst at gmail.com (Christopher Probst) Date: Wed, 11 Apr 2018 10:37:01 -0400 Subject: [Interest] Make Qt::PreciseTimer the default timer type In-Reply-To: <24af6f1a-9dbf-1f92-49bc-302408719ce6@weickelt.de> References: <24af6f1a-9dbf-1f92-49bc-302408719ce6@weickelt.de> Message-ID: A solution would be doing something like this: m_chart->legend()->setAlignment(Qt::AlignTop); QApplication::processEvents(); m_chart->legend()->setY(m_chart->plotArea().height() - m_chartView->height() ); Which feels like a big hack. Is there a better way? On 11 April 2018 at 10:18, Richard Weickelt wrote: > Hi, > > is there a way to set Qt::PreciseTimer as the default timer type for all > QTimer instances in an application? According to the QTimer documentation > [1], Qt::CoarseTimer is the default. > > Thanks > Richard > > [1] http://doc.qt.io/qt-5/qtimer.html#timerType-prop > _______________________________________________ > 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 christop.probst at gmail.com Wed Apr 11 16:38:39 2018 From: christop.probst at gmail.com (Christopher Probst) Date: Wed, 11 Apr 2018 10:38:39 -0400 Subject: [Interest] Make Qt::PreciseTimer the default timer type In-Reply-To: References: <24af6f1a-9dbf-1f92-49bc-302408719ce6@weickelt.de> Message-ID: Sorry wrong thread, please ignore previous message. On 11 April 2018 at 10:37, Christopher Probst wrote: > A solution would be doing something like this: > > m_chart->legend()->setAlignment(Qt::AlignTop); > > QApplication::processEvents(); > > m_chart->legend()->setY(m_chart->plotArea().height() - m_chartView->height() ); > > > Which feels like a big hack. Is there a better way? > > > > > On 11 April 2018 at 10:18, Richard Weickelt wrote: > >> Hi, >> >> is there a way to set Qt::PreciseTimer as the default timer type for all >> QTimer instances in an application? According to the QTimer documentation >> [1], Qt::CoarseTimer is the default. >> >> Thanks >> Richard >> >> [1] http://doc.qt.io/qt-5/qtimer.html#timerType-prop >> _______________________________________________ >> 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 christop.probst at gmail.com Wed Apr 11 16:39:27 2018 From: christop.probst at gmail.com (Christopher Probst) Date: Wed, 11 Apr 2018 10:39:27 -0400 Subject: [Interest] Qt Charts: Making the legend top and right aligned In-Reply-To: References: Message-ID: A solution would be doing something like this: m_chart->legend()->setAlignment(Qt::AlignTop); QApplication::processEvents(); m_chart->legend()->setY(m_chart->plotArea().height() - m_chartView->height() ); Which feels like a big hack. Is there a better way? There must be. On 11 April 2018 at 10:12, Christopher Probst wrote: > Ok there seems to be a solution to this by Using > > > m_chart->legend()->moveBy > > > I will keep you posted. > > > On 11 April 2018 at 10:05, Christopher Probst > wrote: > >> I have noticed that! Clearly they thought of it! I tried grabbing the y >> coordinate of the legend and changing it. That also does not work! It would >> be nice to have a solution to this. >> >> On 11 April 2018 at 10:03, Mike Chinander wrote: >> >>> Not sure of a solution to this, but noticed that unlike other uses of >>> Qt::Alignment flags, the QLegend docs say, "If you set more than one flag, >>> the result is undefined." >>> >>> https://doc.qt.io/qt-5.10/qlegend.html#alignment-prop >>> >>> On Wed, Apr 11, 2018 at 8:51 AM, Christopher Probst < >>> christop.probst at gmail.com> wrote: >>> >>>> Hi, >>>> >>>> I would like to place the legend of chart that uses Qt charts at the >>>> top right of the view. I would have expected something like this to work: >>>> >>>> m_chart->legend()->setAlignment(Qt::AlignTop| Qt::AlignRight) >>>> >>>> >>>> Unfortunately it does not! Is there a direct way to make the legends (right or left) be top aligned rather then middle.? >>>> >>>> >>>> Thanks, >>>> >>>> Christopher >>>> >>>> >>>> >>>> _______________________________________________ >>>> 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 godboutj at amotus.ca Wed Apr 11 17:02:12 2018 From: godboutj at amotus.ca (=?iso-8859-1?Q?J=E9r=F4me_Godbout?=) Date: Wed, 11 Apr 2018 15:02:12 +0000 Subject: [Interest] QtQuick Controls 2 and Designer: Should I use Styles or Customize? In-Reply-To: References: , Message-ID: Look nice, but what exactly does the function SoStronk.contextPropertyForQmlObject(obj, string) does ? ________________________________ From: Shantanu Tushar Sent: April 11, 2018 9:29 AM To: Jérôme Godbout Cc: Thomas Hartmann; interest at qt-project.org Subject: Re: [Interest] QtQuick Controls 2 and Designer: Should I use Styles or Customize? Hi, Thanks for the suggestion. I ended up implementing it like this- $ cat theme/v2/Theme.qml pragma Singleton import QtQuick 2.10 import QtQuick.Window 2.3 Item { visible: false GlassColors { id: glassColors } PlatinumColors { id: platinumColors } readonly property var colors: glassColors readonly property var dialogColors: platinumColors ... ... } $ cat theme/v2/ThemeContext.qml import QtQuick 2.10 Item { id: root visible: false readonly property var _inheritedTheme: SoStronk.contextPropertyForQmlObject(root.parent, "theme") readonly property bool _inheritedDialogColors: _inheritedTheme && _inheritedTheme.dialogColors ? true : false property bool dialogColors: false readonly property var colors: dialogColors || _inheritedDialogColors ? Theme.dialogColors : Theme.colors } where contextPropertyForQmlObject is a C++ function which returns the value of a property under the context of the specified object. Its used like this- $ cat SoStronkStyle/Button.qml import QtQuick 2.10 import QtQuick.Templates 2.3 as T import SoStronk.theme 0.2 T.Button { id: control ThemeContext { id: theme } ... // access theme.colors.foregroundColor And whenever I create a dialog- ThemeContext { id: theme dialogColors: true } So then any Button accessing theme.colors will end up referring to dialogColors :) On 9 April 2018 at 21:35, Jérôme Godbout wrote: > You could have a property inside the controler to select the proper theme > value with a fallback, your theme singleton would then need to have > different set of color. > > > Theme > > { > > id: component > > property var defaultTheme: panelTheme > > property var mainTheme: ... > > property var panelTheme: ... > > > function getTheme(prop) > > { > > if(prop && component.hasOwnProperty(prop)) > > return component[prop]; > > return component.defaultTheme; > > } > > } > > > T.Button > > { > > id: component > > color: Theme.getTheme(component.customTheme).backgroundColor > > } > > > // use style with default theme > Button > { > } > > // Button with theme color > Button > { > property string customTheme: 'mainTheme' > } > > As for loading a multiple different template I think it would be impossible. > > ________________________________ > From: Interest on > behalf of Shantanu Tushar > Sent: April 9, 2018 11:30 AM > To: Thomas Hartmann > Cc: interest at qt-project.org > Subject: Re: [Interest] QtQuick Controls 2 and Designer: Should I use Styles > or Customize? > > Hi, > > I've been slowly implementing these suggestions and so far the results > have been great. My button style looks like this- > > import QtQuick 2.9 > import QtQuick.Templates 2.1 as T > > import My.theme 0.2 > > T.Button { > // Here i use properties like Theme.backgroundColor, Theme.textColor etc > } > > However, I just hit a roadblock which deals with multiple styles in > the same application. Our designer has created two sets of theme > colors - Glass and Dark, Glass it to be used on the "Main window" of > our application and Dark is used on rest of the dialogs. See > https://www.sostronk.com/assets/tilt-a780c798bf78e6c5.png > > Now, because Theme is a singleton, there is no way for me to define a > different set of colors for a Dialog. Any suggestions on how to > achieve this? > > Thanks, > > On 26 March 2018 at 19:37, Shantanu Tushar wrote: >> Hi Thomas, >> >> I've tried both your suggestions in a PoC project and it works! My >> actual app will need some refactoring to get the ball rolling but I >> think this will work fine. >> >> Thanks a lot, >> >> >> On 16 March 2018 at 19:32, Thomas Hartmann wrote: >>> Hi, >>> >>> >>> I would suggest solution number 1 (Creating a Custom Style). >>> >>> >>> To get the designer to show your custom style you have to configure it in >>> qtquickcontrols2.conf. >>> >>> You can do this in the editable combo box in the form editor if >>> qtquickcontrols2.conf does exist. >>> >>> You can refer to the Qt Quick Controls 2 Flat Style example >>> (https://doc.qt.io/qt-5.10/qtquickcontrols2-flatstyle-example.html). >>> >>> You can use QT_QUICK_CONTROLS_STYLE_PATH to specify additional paths that >>> are used to lookup Qt Quick Controls 2 styles. >>> >>> You can also write your own QML plugin (2. Customizing a Control), but >>> you >>> have to create a QML file for every control >>> >>> and you have to implement a full plugin/import. For these customized >>> controls to show up in the item library you have to provide a .metainfo >>> file. You can look at the origin Qt Quick Controls 2 implementation for >>> reference. >>> >>> >>> I hope this solves your issue. >>> >>> >>> Kind Regards, >>> >>> Thomas Hartmann >>> >>> >>> >>> _______________________________________________ >>> Interest mailing list >>> Interest at qt-project.org >>> http://lists.qt-project.org/mailman/listinfo/interest >>> >> >> >> >> -- >> Shantanu Tushar (UTC +0530) >> shantanu.io > > > > -- > Shantanu Tushar (UTC +0530) > shantanu.io > _______________________________________________ > 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 thiago.macieira at intel.com Wed Apr 11 18:13:00 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Wed, 11 Apr 2018 09:13:00 -0700 Subject: [Interest] Make Qt::PreciseTimer the default timer type In-Reply-To: <24af6f1a-9dbf-1f92-49bc-302408719ce6@weickelt.de> References: <24af6f1a-9dbf-1f92-49bc-302408719ce6@weickelt.de> Message-ID: <6298324.FypINPUE1b@tjmaciei-mobl1> On quarta-feira, 11 de abril de 2018 07:18:11 PDT Richard Weickelt wrote: > Hi, > > is there a way to set Qt::PreciseTimer as the default timer type for all > QTimer instances in an application? According to the QTimer documentation > [1], Qt::CoarseTimer is the default. Patch Qt and recompile. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From elderorb at gmail.com Thu Apr 12 10:18:16 2018 From: elderorb at gmail.com (Alexander Ivash) Date: Thu, 12 Apr 2018 11:18:16 +0300 Subject: [Interest] determining who is bound Message-ID: <1523520878.local-22acd2db-b989-v1.2.1-7e7447b6@getmailspring.com> Is it possible to determine what object is bound to the target object's property? Do I understand correctly that bound object should be one of subscribers for property's notify signal? Q: Why do you need it? A: Primarily for debug purposes, but also as the temp solution during redesign Regards, Alexander -------------- next part -------------- An HTML attachment was scrubbed... URL: From william.crocker at analog.com Thu Apr 12 13:57:58 2018 From: william.crocker at analog.com (Bill Crocker) Date: Thu, 12 Apr 2018 07:57:58 -0400 Subject: [Interest] How do I get the most robust version of 5.10 Message-ID: <5ACF49C6.1060502@analog.com> Hello: I have been using Qt-5.7 for a while. I needed a little help and knew it was no longer "supported" so I initiated the process of upgrading to 5.10.1 (Yes, it is a process.) With 5.10.1, one of my apps was crashing and down in a Qt source file. I knew it could be my fault but, just to get the commercial-three-day-help-pipe-line flowing, I submitted a bug report It turned out to be a Qt bug and the help line provided a patch. Now I am wondering what other bugs are lingering for which a patch is available. The patch appears to have originated back in late February. Why isn't there a 5.10.2 So, what am I doing wrong. How do I get the most robust version of 5.10. Should I ignore all offerings from the Digia web site and just try to pull something directly from the Git repo. What about all of the other poor saps out there who think they are getting a robust version when they download 5.10.1, the latest version available from the web site. Bill From jhihn at gmx.com Thu Apr 12 14:06:02 2018 From: jhihn at gmx.com (Jason H) Date: Thu, 12 Apr 2018 14:06:02 +0200 Subject: [Interest] How do I get the most robust version of 5.10 In-Reply-To: <5ACF49C6.1060502@analog.com> References: <5ACF49C6.1060502@analog.com> Message-ID: Regressions happen. And when they do happen, it hurts, and it bruises the credibility of our dependencies. The best thing to do is to have test cases at the ready, and to have them in Qt proper to prevent them. That not always possible though, so it's important to test the pre-releases. FWICT, Qt is very good about fixing regressions in pre-releases, so spending some time testing your app on those is the right thing to do, even if you don't plan on updating yet. Fortunately it looks like the 5.10 upgrade is more or less voluntary for you, so you're lucky. Most of my upgrades happen because of needed features or fixes, and I ended up cherry picking commits. That's died down in they last year or so as more modules reach maturity. > Sent: Thursday, April 12, 2018 at 1:57 PM > From: "Bill Crocker" > To: "interest at qt-project.org" > Subject: [Interest] How do I get the most robust version of 5.10 > > Hello: > > I have been using Qt-5.7 for a while. > I needed a little help and knew it was no longer "supported" > so I initiated the process of upgrading to 5.10.1 > (Yes, it is a process.) > > With 5.10.1, one of my apps was crashing and down in a Qt source file. > I knew it could be my fault but, just to > get the commercial-three-day-help-pipe-line flowing, I submitted a bug report > It turned out to be a Qt bug and the help line provided a patch. > > Now I am wondering what other bugs are lingering for which a patch is available. > The patch appears to have originated back in late February. > Why isn't there a 5.10.2 > > So, what am I doing wrong. How do I get the most robust > version of 5.10. Should I ignore all offerings from the Digia web site > and just try to pull something directly from the Git repo. > > What about all of the other poor saps out there who think they > are getting a robust version when they download 5.10.1, the > latest version available from the web site. > > Bill > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > From godboutj at amotus.ca Thu Apr 12 14:57:56 2018 From: godboutj at amotus.ca (=?iso-8859-1?Q?J=E9r=F4me_Godbout?=) Date: Thu, 12 Apr 2018 12:57:56 +0000 Subject: [Interest] How do I get the most robust version of 5.10 In-Reply-To: <5ACF49C6.1060502@analog.com> References: <5ACF49C6.1060502@analog.com> Message-ID: You might want to stick with LTS version if you are looking for most stability. I think the last LTS Qt version was 5.9.x. Qt aim to support a few version (before it was 5.6.x as LTS). Thoses version should suffer less from major refactoring or other new features. ________________________________ From: Interest on behalf of Bill Crocker Sent: April 12, 2018 7:57 AM To: interest at qt-project.org Subject: [Interest] How do I get the most robust version of 5.10 Hello: I have been using Qt-5.7 for a while. I needed a little help and knew it was no longer "supported" so I initiated the process of upgrading to 5.10.1 (Yes, it is a process.) With 5.10.1, one of my apps was crashing and down in a Qt source file. I knew it could be my fault but, just to get the commercial-three-day-help-pipe-line flowing, I submitted a bug report It turned out to be a Qt bug and the help line provided a patch. Now I am wondering what other bugs are lingering for which a patch is available. The patch appears to have originated back in late February. Why isn't there a 5.10.2 So, what am I doing wrong. How do I get the most robust version of 5.10. Should I ignore all offerings from the Digia web site and just try to pull something directly from the Git repo. What about all of the other poor saps out there who think they are getting a robust version when they download 5.10.1, the latest version available from the web site. Bill _______________________________________________ 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 12 17:45:39 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Thu, 12 Apr 2018 08:45:39 -0700 Subject: [Interest] determining who is bound In-Reply-To: <1523520878.local-22acd2db-b989-v1.2.1-7e7447b6@getmailspring.com> References: <1523520878.local-22acd2db-b989-v1.2.1-7e7447b6@getmailspring.com> Message-ID: <1624114.YGgGtoVRjM@tjmaciei-mobl1> On Thursday, 12 April 2018 01:18:16 PDT Alexander Ivash wrote: > Is it possible to determine what object is bound to the target object's > property? Do I understand correctly that bound object should be one of > subscribers for property's notify signal? Yes and no. In principle, you're right. But the QML engine hooks deeply into the QObject internals and may take shortcuts, so it may not show up in that listing. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From thiago.macieira at intel.com Thu Apr 12 17:47:56 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Thu, 12 Apr 2018 08:47:56 -0700 Subject: [Interest] How do I get the most robust version of 5.10 In-Reply-To: <5ACF49C6.1060502@analog.com> References: <5ACF49C6.1060502@analog.com> Message-ID: <9102510.a4flrKlCIk@tjmaciei-mobl1> On Thursday, 12 April 2018 04:57:58 PDT Bill Crocker wrote: > Why isn't there a 5.10.2 Because we had to kill one branch as we had too many open branches. We have 5.6, 5.9, 5.11 and dev left, which is the all-time high except for the few weeks we also had 5.10. The developer community came to the consensus that we couldn't support another 5.10.x release and still meet our commitments for the other branches. So your fixes present in the 5.11 branch now, which is in Release Candidate state as of today. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From william.crocker at analog.com Thu Apr 12 18:40:46 2018 From: william.crocker at analog.com (william.crocker at analog.com) Date: Thu, 12 Apr 2018 12:40:46 -0400 Subject: [Interest] How do I get the most robust version of 5.10 In-Reply-To: <9102510.a4flrKlCIk@tjmaciei-mobl1> References: <5ACF49C6.1060502@analog.com> <9102510.a4flrKlCIk@tjmaciei-mobl1> Message-ID: <5ACF8C0E.1080109@analog.com> On 04/12/2018 11:47 AM, Thiago Macieira wrote: > On Thursday, 12 April 2018 04:57:58 PDT Bill Crocker wrote: >> Why isn't there a 5.10.2 > > Because we had to kill one branch as we had too many open branches. We have > 5.6, 5.9, 5.11 and dev left, which is the all-time high except for the few > weeks we also had 5.10. The developer community came to the consensus that we > couldn't support another 5.10.x release and still meet our commitments for the > other branches. So your fixes present in the 5.11 branch now, which is in > Release Candidate state as of today. > So, are you saying that the 5.10 branch has been abandoned. If so, I do not think the web site should offer it as a download candidate. I saw that 5.11 was on the tip and, therefore, assumed that the latest 5.10 was good and stable. Bill From thiago.macieira at intel.com Thu Apr 12 19:16:54 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Thu, 12 Apr 2018 10:16:54 -0700 Subject: [Interest] How do I get the most robust version of 5.10 In-Reply-To: <5ACF8C0E.1080109@analog.com> References: <5ACF49C6.1060502@analog.com> <9102510.a4flrKlCIk@tjmaciei-mobl1> <5ACF8C0E.1080109@analog.com> Message-ID: <13516545.LDEzv6WAg6@tjmaciei-mobl1> On Thursday, 12 April 2018 09:40:46 PDT william.crocker at analog.com wrote: > On 04/12/2018 11:47 AM, Thiago Macieira wrote: > > On Thursday, 12 April 2018 04:57:58 PDT Bill Crocker wrote: > >> Why isn't there a 5.10.2 > > > > Because we had to kill one branch as we had too many open branches. We > > have > > 5.6, 5.9, 5.11 and dev left, which is the all-time high except for the few > > weeks we also had 5.10. The developer community came to the consensus that > > we couldn't support another 5.10.x release and still meet our commitments > > for the other branches. So your fixes present in the 5.11 branch now, > > which is in Release Candidate state as of today. > > So, are you saying that the 5.10 branch has been abandoned. No, it's been *closed*. There's a difference. > If so, I do not think the web site should offer it as a > download candidate. Huh, why? What's the rationale for this? > I saw that 5.11 was on the tip and, therefore, assumed that > the latest 5.10 was good and stable. It is. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From william.crocker at analog.com Thu Apr 12 19:34:18 2018 From: william.crocker at analog.com (william.crocker at analog.com) Date: Thu, 12 Apr 2018 13:34:18 -0400 Subject: [Interest] How do I get the most robust version of 5.10 In-Reply-To: <13516545.LDEzv6WAg6@tjmaciei-mobl1> References: <5ACF49C6.1060502@analog.com> <9102510.a4flrKlCIk@tjmaciei-mobl1> <5ACF8C0E.1080109@analog.com> <13516545.LDEzv6WAg6@tjmaciei-mobl1> Message-ID: <5ACF989A.7050203@analog.com> >> >> So, are you saying that the 5.10 branch has been abandoned. > > No, it's been *closed*. There's a difference. > If it is closed then I assume issues will not be fixed. I call that abandoned. >> If so, I do not think the web site should offer it as a download candidate. > > Huh, why? What's the rationale for this? For me I saw it in a distinguished position (tip of the next-to-last branch) and yet it had known issues which were not fixed nor would, apparently, ever be fixed. >> I saw that 5.11 was on the tip and, therefore, assumed that >> the latest 5.10 was good and stable. > > It is. If I may raise my voice for a moment... No. It (5.10.1) is NOT good. It immediately failed one of my regression tests. You should have known there was an issue because I here it has been fixed in 5.11 Fortunately I did not spend too much time blaming my code. I submitted a bug report and was offered 3 patches which fixed the problem. I think leaving that prominent, dangling version with known issues is irresponsible. Fix 5.10.1 (and make a 5.10.2) or take it away. Back to calm voice... Thanks. Bill From thiago.macieira at intel.com Thu Apr 12 19:46:08 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Thu, 12 Apr 2018 10:46:08 -0700 Subject: [Interest] How do I get the most robust version of 5.10 In-Reply-To: <5ACF989A.7050203@analog.com> References: <5ACF49C6.1060502@analog.com> <13516545.LDEzv6WAg6@tjmaciei-mobl1> <5ACF989A.7050203@analog.com> Message-ID: <5417359.ziNFfnWl2r@tjmaciei-mobl1> On Thursday, 12 April 2018 10:34:18 PDT william.crocker at analog.com wrote: > >> So, are you saying that the 5.10 branch has been abandoned. > > > > No, it's been *closed*. There's a difference. > > If it is closed then I assume issues will not be fixed. > I call that abandoned. A closed branch is one we're not applying fixes to. We're applying fixes to next releases, though. > >> If so, I do not think the web site should offer it as a download > >> candidate. > > > > Huh, why? What's the rationale for this? > > For me I saw it in a distinguished position (tip of the next-to-last branch) > and yet it had known issues which were not fixed nor would, apparently, > ever be fixed. Those issues will be fixed in the next release. That just happens to be 5.11.0. > >> I saw that 5.11 was on the tip and, therefore, assumed that > >> the latest 5.10 was good and stable. > > > > It is. > > If I may raise my voice for a moment... > > No. It (5.10.1) is NOT good. > > It immediately failed one of my regression tests. > You should have known there was an issue because I here it has been fixed in > 5.11 Of course there are problems. Do you want us to delete every old release because we've fixed bugs? We already have fixes for bugs post 5.9.5, which was released today. Should we delete it too? Bugs will be fixed in the next release. > Fortunately I did not spend too much time blaming my code. > I submitted a bug report and was offered 3 patches which fixed the problem. > > I think leaving that prominent, dangling version with known > issues is irresponsible. Ok, we'll delete all releases. Please build only from Git, from the dev branch. It's the only one that has all fixes. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From annulen at yandex.ru Thu Apr 12 19:52:21 2018 From: annulen at yandex.ru (Konstantin Tokarev) Date: Thu, 12 Apr 2018 20:52:21 +0300 Subject: [Interest] How do I get the most robust version of 5.10 In-Reply-To: <5417359.ziNFfnWl2r@tjmaciei-mobl1> References: <5ACF49C6.1060502@analog.com> <13516545.LDEzv6WAg6@tjmaciei-mobl1> <5ACF989A.7050203@analog.com> <5417359.ziNFfnWl2r@tjmaciei-mobl1> Message-ID: <451811523555541@web55g.yandex.ru> 12.04.2018, 20:47, "Thiago Macieira" : > On Thursday, 12 April 2018 10:34:18 PDT william.crocker at analog.com wrote: >>  >> So, are you saying that the 5.10 branch has been abandoned. >>  > >>  > No, it's been *closed*. There's a difference. >> >>  If it is closed then I assume issues will not be fixed. >>  I call that abandoned. > > A closed branch is one we're not applying fixes to. We're applying fixes to > next releases, though. > >>  >> If so, I do not think the web site should offer it as a download >>  >> candidate. >>  > >>  > Huh, why? What's the rationale for this? >> >>  For me I saw it in a distinguished position (tip of the next-to-last branch) >>  and yet it had known issues which were not fixed nor would, apparently, >>  ever be fixed. > > Those issues will be fixed in the next release. That just happens to be > 5.11.0. > >>  >> I saw that 5.11 was on the tip and, therefore, assumed that >>  >> the latest 5.10 was good and stable. >>  > >>  > It is. >> >>  If I may raise my voice for a moment... >> >>  No. It (5.10.1) is NOT good. >> >>  It immediately failed one of my regression tests. >>  You should have known there was an issue because I here it has been fixed in >>  5.11 > > Of course there are problems. Do you want us to delete every old release > because we've fixed bugs? We already have fixes for bugs post 5.9.5, which was > released today. Should we delete it too? > > Bugs will be fixed in the next release. > >>  Fortunately I did not spend too much time blaming my code. >>  I submitted a bug report and was offered 3 patches which fixed the problem. >> >>  I think leaving that prominent, dangling version with known >>  issues is irresponsible. > > Ok, we'll delete all releases. Please build only from Git, from the dev > branch. It's the only one that has all fixes. * only in moments shortly after all merges are done > > -- > 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 -- Regards, Konstantin From annulen at yandex.ru Thu Apr 12 19:56:33 2018 From: annulen at yandex.ru (Konstantin Tokarev) Date: Thu, 12 Apr 2018 20:56:33 +0300 Subject: [Interest] How do I get the most robust version of 5.10 In-Reply-To: <5ACF989A.7050203@analog.com> References: <5ACF49C6.1060502@analog.com> <9102510.a4flrKlCIk@tjmaciei-mobl1> <5ACF8C0E.1080109@analog.com> <13516545.LDEzv6WAg6@tjmaciei-mobl1> <5ACF989A.7050203@analog.com> Message-ID: <457661523555793@web55g.yandex.ru> 12.04.2018, 20:34, "william.crocker at analog.com" : >>>  So, are you saying that the 5.10 branch has been abandoned. >> >>  No, it's been *closed*. There's a difference. > > If it is closed then I assume issues will not be fixed. > I call that abandoned. > >>>  If so, I do not think the web site should offer it as a download candidate. >> >>  Huh, why? What's the rationale for this? > > For me I saw it in a distinguished position (tip of the next-to-last branch) > and yet it had known issues which were not fixed nor would, apparently, ever be > fixed. > >>>  I saw that 5.11 was on the tip and, therefore, assumed that >>>  the latest 5.10 was good and stable. >> >>  It is. > > If I may raise my voice for a moment... > > No. It (5.10.1) is NOT good. > > It immediately failed one of my regression tests. > You should have known there was an issue because I here it has been fixed in 5.11 In a software project of size and scope of Qt, it would be simply impossible to produce a release without any known issue in a finite amount of time. And discovery of bugs in release is not a reason to revoke it, unless it is important security issue or fatal regression that affect every user. > > Fortunately I did not spend too much time blaming my code. > I submitted a bug report and was offered 3 patches which fixed the problem. > > I think leaving that prominent, dangling version with known > issues is irresponsible. > > Fix 5.10.1 (and make a 5.10.2) or take it away. > > Back to calm voice... > > Thanks. > > Bill > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -- Regards, Konstantin From william.crocker at analog.com Thu Apr 12 20:32:43 2018 From: william.crocker at analog.com (william.crocker at analog.com) Date: Thu, 12 Apr 2018 14:32:43 -0400 Subject: [Interest] How do I get the most robust version of 5.10 In-Reply-To: <5417359.ziNFfnWl2r@tjmaciei-mobl1> References: <5ACF49C6.1060502@analog.com> <13516545.LDEzv6WAg6@tjmaciei-mobl1> <5ACF989A.7050203@analog.com> <5417359.ziNFfnWl2r@tjmaciei-mobl1> Message-ID: <5ACFA64B.3000408@analog.com> >> >> It immediately failed one of my regression tests. >> You should have known there was an issue because I here it has been fixed in >> 5.11 > > Of course there are problems. Do you want us to delete every old release > because we've fixed bugs? We already have fixes for bugs post 5.9.5, which was > released today. Should we delete it too? > > Bugs will be fixed in the next release. > >> Fortunately I did not spend too much time blaming my code. >> I submitted a bug report and was offered 3 patches which fixed the problem. >> >> I think leaving that prominent, dangling version with known >> issues is irresponsible. > > Ok, we'll delete all releases. Please build only from Git, from the dev > branch. It's the only one that has all fixes. > I view the most recent branch (5.11 in this case) as your bold move into new features and, as long as that branch is sub-versioned (5.11.x), the dust has not settled. It appeared that the dust had settled on 5.10 and all known bugs, especially those introduced in otherwise mature code, like QAbstractItemView, would have been resolved. So, I can't use 5.11 because the dust has not settled and now I can't use any previous version because even the most basic of classes may have known bugs. That is my conundrum. Bill From rjvbertin at gmail.com Thu Apr 12 21:08:09 2018 From: rjvbertin at gmail.com (=?ISO-8859-1?Q?Ren=E9_J=2EV=2E?= Bertin) Date: Thu, 12 Apr 2018 21:08:09 +0200 Subject: [Interest] Using leveldb in a Qt app redirects unrelated system malloc calls to tcmalloc? Message-ID: <2760125.VDVsYbevBQ@portia.local> Hi, A bit of a long shot, but since leveldb is used by QtWebEngine this might ring a bell to someone here: Below is a bit of backtrace of a Qt application (KDevelop) on Mac in which I've started experimenting with using leveldb. Under certain conditions the entire app freezes, and then I see this in the debugger: * thread #1: tid = 0x1105e90, 0x00007fff8f75eb16 libsystem_kernel.dylib`syscall_thread_switch + 10, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP * frame #0: 0x00007fff8f75eb16 libsystem_kernel.dylib`syscall_thread_switch + 10 frame #1: 0x00007fff92529df6 libsystem_platform.dylib`_OSSpinLockLockSlow + 63 frame #2: 0x00007fff8d86890d libsystem_pthread.dylib`_pthread_testcancel + 28 frame #3: 0x00007fff99864d2e libsystem_c.dylib`nanosleep + 42 frame #4: 0x000000010b75b7b1 libtcmalloc.4.dylib`base::internal::SpinLockDelay(int volatile*, int, int) + 122 frame #5: 0x000000010b75b6af libtcmalloc.4.dylib`SpinLock::SlowLock() + 41 frame #6: 0x000000010b74fe00 libtcmalloc.4.dylib`tcmalloc::CentralCacheLockAll() + 56 frame #7: 0x00007fff97676cd1 libsystem_malloc.dylib`_malloc_fork_prepare + 49 frame #8: 0x00007fff997fa161 libsystem_c.dylib`fork + 12 frame #9: 0x0000000106be1c63 QtCore`forkfd(flags=, ppid=0x00007fff5c5e650c) + 483 at forkfd.c:691 frame #10: 0x0000000106bd5801 QtCore`QProcessPrivate::startProcess(this=0x0000000129019100) + 3537 at qprocess_unix.cpp:471 frame #11: 0x0000000106bd180f QtCore`QProcessPrivate::start(this=0x0000000129019100, mode=) + 431 at qprocess.cpp:2177 frame #12: 0x0000000106bd14ca QtCore`QProcess::start(this=, program=, arguments=0x00000001289e5a28, mode=) + 154 at qprocess.cpp:2089 SNIP Further frames are completely unrelated to the leveldb code I'm writing. It looks like leveldb makes a process-wide change that causes malloc() to redirect to libtcmalloc. Not that I mind the idea, but it seems clear that tcmalloc isn't "expecting to be called" here, and deadlocks. Has anyone seen this kind of behaviour before? Thanks, R. From thiago.macieira at intel.com Thu Apr 12 22:49:26 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Thu, 12 Apr 2018 13:49:26 -0700 Subject: [Interest] How do I get the most robust version of 5.10 In-Reply-To: <5ACFA64B.3000408@analog.com> References: <5ACF49C6.1060502@analog.com> <5417359.ziNFfnWl2r@tjmaciei-mobl1> <5ACFA64B.3000408@analog.com> Message-ID: <169318901.W42K3HGOYe@tjmaciei-mobl1> On Thursday, 12 April 2018 11:32:43 PDT william.crocker at analog.com wrote: > I view the most recent branch (5.11 in this case) as your bold move into new > features and, as long as that branch is sub-versioned (5.11.x), > the dust has not settled. > > It appeared that the dust had settled on 5.10 and all known bugs, especially > those introduced in otherwise mature code, like QAbstractItemView, would > have been resolved. That never happens. There are always known bugs. We try to fix the most important ones before the release, but we keep finding them. We have to release at some point, not wait for all bugs to be fixed. > So, I can't use 5.11 because the dust has not settled and > now I can't use any previous version because even the most basic > of classes may have known bugs. All releases have known bugs. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From thiago.macieira at intel.com Thu Apr 12 22:51:21 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Thu, 12 Apr 2018 13:51:21 -0700 Subject: [Interest] Using leveldb in a Qt app redirects unrelated system malloc calls to tcmalloc? In-Reply-To: <2760125.VDVsYbevBQ@portia.local> References: <2760125.VDVsYbevBQ@portia.local> Message-ID: <43564237.5dKO6pFLpB@tjmaciei-mobl1> On Thursday, 12 April 2018 12:08:09 PDT René J.V. Bertin wrote: > frame #7: 0x00007fff97676cd1 libsystem_malloc.dylib`_malloc_fork_prepare > + 49 frame #8: 0x00007fff997fa161 libsystem_c.dylib`fork + 12 This is the "atfork" code, the one that causes all malloc locks to be dropped in the child process so that malloc() will work there regardless of the state of the parent. The fact that it's deadlocking in the code that is supposed to remove locks so that it won't deadlock is a good irony. Absent further proof to the contrary, this looks like a system bug. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From szehowe.koh at gmail.com Fri Apr 13 00:44:54 2018 From: szehowe.koh at gmail.com (Sze Howe Koh) Date: Fri, 13 Apr 2018 06:44:54 +0800 Subject: [Interest] Does QNetworkAccessManager support HTTP persistent connections? (keep-alive) Message-ID: Can QNAM re-use a TCP connection for multiple HTTP requests? This feature would be very helpful for https://bugreports.qt.io/browse/QTIFW-1130 Regards, Sze-Howe From hamish at risingsoftware.com Fri Apr 13 01:24:27 2018 From: hamish at risingsoftware.com (Hamish Moffatt) Date: Fri, 13 Apr 2018 09:24:27 +1000 Subject: [Interest] Does QNetworkAccessManager support HTTP persistent connections? (keep-alive) In-Reply-To: References: Message-ID: <0194920c-01da-152c-af41-18b81f399aae@risingsoftware.com> On 13/04/18 08:44, Sze Howe Koh wrote: > Can QNAM re-use a TCP connection for multiple HTTP requests? AFAICT, it always does, if you reuse the QNAM. Even better if you can use HTTP/2 (needs Qt 5.10.1 or later to actually work), where multiple logical connections can be made over the same TCP connection. That needs to be specifically enabled in the calling code though. Hamish From jhihn at gmx.com Fri Apr 13 02:03:00 2018 From: jhihn at gmx.com (Jason H) Date: Fri, 13 Apr 2018 02:03:00 +0200 Subject: [Interest] Does QNetworkAccessManager support HTTP persistent connections? (keep-alive) In-Reply-To: <0194920c-01da-152c-af41-18b81f399aae@risingsoftware.com> References: <0194920c-01da-152c-af41-18b81f399aae@risingsoftware.com> Message-ID: Http/s 1.1 with keep-alive should work too. Make sure you're setting the right headers. > Sent: Thursday, April 12, 2018 at 7:24 PM > From: "Hamish Moffatt" > To: interest at qt-project.org > Subject: Re: [Interest] Does QNetworkAccessManager support HTTP persistent connections? (keep-alive) > > On 13/04/18 08:44, Sze Howe Koh wrote: > > Can QNAM re-use a TCP connection for multiple HTTP requests? > > AFAICT, it always does, if you reuse the QNAM. > > Even better if you can use HTTP/2 (needs Qt 5.10.1 or later to actually > work), where multiple logical connections can be made over the same TCP > connection. That needs to be specifically enabled in the calling code > though. > > Hamish > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > From hamish at risingsoftware.com Fri Apr 13 02:11:45 2018 From: hamish at risingsoftware.com (Hamish Moffatt) Date: Fri, 13 Apr 2018 10:11:45 +1000 Subject: [Interest] Does QNetworkAccessManager support HTTP persistent connections? (keep-alive) In-Reply-To: References: <0194920c-01da-152c-af41-18b81f399aae@risingsoftware.com> Message-ID: On 13/04/18 10:03, Jason H wrote: > Http/s 1.1 with keep-alive should work too. > Make sure you're setting the right headers. > QNAM will do that for you automatically. Hamish From jhihn at gmx.com Fri Apr 13 02:22:51 2018 From: jhihn at gmx.com (Jason H) Date: Fri, 13 Apr 2018 02:22:51 +0200 Subject: [Interest] Does QNetworkAccessManager support HTTP persistent connections? (keep-alive) In-Reply-To: References: <0194920c-01da-152c-af41-18b81f399aae@risingsoftware.com> Message-ID: I thought so, but that makes me wonder even more given the recent discussion: why does the maintenance tool not use them? > Sent: Thursday, April 12, 2018 at 8:11 PM > From: "Hamish Moffatt" > To: "Jason H" > Cc: interest at qt-project.org > Subject: Re: [Interest] Does QNetworkAccessManager support HTTP persistent connections? (keep-alive) > > On 13/04/18 10:03, Jason H wrote: > > Http/s 1.1 with keep-alive should work too. > > Make sure you're setting the right headers. > > > > QNAM will do that for you automatically. > > > Hamish > From hamish at risingsoftware.com Fri Apr 13 02:27:18 2018 From: hamish at risingsoftware.com (Hamish Moffatt) Date: Fri, 13 Apr 2018 10:27:18 +1000 Subject: [Interest] Does QNetworkAccessManager support HTTP persistent connections? (keep-alive) In-Reply-To: References: <0194920c-01da-152c-af41-18b81f399aae@risingsoftware.com> Message-ID: On 13/04/18 10:22, Jason H wrote: > I thought so, but that makes me wonder even more given the recent discussion: why does the maintenance tool not use them? You have to keep a single QNetworkAccessManager and make each new request from that. I haven't checked the code though. I did check that keepalive was working from my code (Windows, Qt 5.8) just a few days ago. Maybe something broke in a newer version. Hamish From thiago.macieira at intel.com Fri Apr 13 04:08:30 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Thu, 12 Apr 2018 19:08:30 -0700 Subject: [Interest] Does QNetworkAccessManager support HTTP persistent connections? (keep-alive) In-Reply-To: References: Message-ID: <3210674.oSqLBW7KJX@tjmaciei-mobl1> On quinta-feira, 12 de abril de 2018 15:44:54 PDT Sze Howe Koh wrote: > Can QNAM re-use a TCP connection for multiple HTTP requests? Yes. It's the default. You don't have to do anything to enable it. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From alexander.semke at web.de Fri Apr 13 09:34:54 2018 From: alexander.semke at web.de (Alexander Semke) Date: Fri, 13 Apr 2018 09:34:54 +0200 Subject: [Interest] resizable QTextEdit Message-ID: <507878632.l3FgfH1HEP@notebook> Hi, one frequently sees form text fields on the web where the actual text field can be resized by the user by clicking on the resize-symbol in the corner of the text field and dragging it until the desired size is achieved. I'm wondering how to get this for a QTextEdit placed in a layout. Does somebody have an idea here? Thanks and Regards, Alexander From rjvbertin at gmail.com Fri Apr 13 09:58:46 2018 From: rjvbertin at gmail.com (=?UTF-8?B?UmVuw6kgSi4gVi4=?= Bertin) Date: Fri, 13 Apr 2018 09:58:46 +0200 Subject: [Interest] Using leveldb in a Qt app redirects unrelated system malloc calls to tcmalloc? References: <2760125.VDVsYbevBQ@portia.local> <43564237.5dKO6pFLpB@tjmaciei-mobl1> Message-ID: <1974534.Uo1lB8lLF1@patux.local> Thiago Macieira wrote: Hi, > of the parent. The fact that it's deadlocking in the code that is supposed to > remove locks so that it won't deadlock is a good irony. Yeah, very funny until it happens to you :) > > Absent further proof to the contrary, this looks like a system bug. You could be right, but how on earth do I end up in tcmalloc code here? In my experiment I'm trying to store ints (index numbers used as the key) as 4- byte strings in QByteArrays which get converted to std::strings for use with leveldb. I half expect that I'm overlooking a place where this goes wrong, but also that that would lead to more variable crash backtraces. I use Chrome as a browser, which must use leveldb internally, so if this were a system bug I'd expect to see deadlocks while surfing. That just doesn't happen, which probably means we can at least not factor Qt out of the equation. R. From igor.mironchik at gmail.com Fri Apr 13 10:22:14 2018 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Fri, 13 Apr 2018 11:22:14 +0300 Subject: [Interest] resizable QTextEdit In-Reply-To: <507878632.l3FgfH1HEP@notebook> References: <507878632.l3FgfH1HEP@notebook> Message-ID: Hi, Something like this? #include #include #include #include #include #include #include #include #include class Text; class Corner     :    public QWidget { public:      Corner( QWidget * parent )         :    QWidget( parent )         ,    m_toResize( parent )         ,    m_pressed( false )     {     }     virtual ~Corner()     {     }     QSize sizeHint() const Q_DECL_OVERRIDE     {         return QSize( 10, 10 );     } protected:     void paintEvent( QPaintEvent * ) Q_DECL_OVERRIDE     {         QPainter p( this );         p.setPen( Qt::red );         p.setBrush( Qt::red );         p.drawRect( rect() );     }     void mousePressEvent( QMouseEvent * e ) Q_DECL_OVERRIDE     {         if( e->button() == Qt::LeftButton )         {             m_pos = e->pos();             m_pressed = true;         }         e->accept();     }     void mouseReleaseEvent( QMouseEvent * e ) Q_DECL_OVERRIDE     {         if( e->button() == Qt::LeftButton )             m_pressed = false;         e->accept();     }     void mouseMoveEvent( QMouseEvent * e ) Q_DECL_OVERRIDE     {         if( m_pressed )         {             const QPoint delta = e->pos() - m_pos;             m_toResize->resize( m_toResize->size() + QSize( delta.x(), delta.y() ) );         }         e->accept();     } private:     QWidget * m_toResize;     QPoint m_pos;     bool m_pressed; }; class Text     :    public QTextEdit { public:     Text( QWidget * parent )         :    QTextEdit( parent )         ,    m_corner( new Corner( this ) )     {         m_corner->move( width() - m_corner->width(),             height() - m_corner->height() );     }     virtual ~Text()     {     } protected:     void resizeEvent( QResizeEvent * e ) Q_DECL_OVERRIDE     {         m_corner->move( width() - m_corner->width(),             height() - m_corner->height() );         e->accept();     } private:     Corner * m_corner; }; class Form     :    public QWidget { public:     Form()     {         QVBoxLayout * v = new QVBoxLayout( this );         QHBoxLayout * h = new QHBoxLayout;         v->addLayout( h );         QLabel * label = new QLabel( "Resizeable Text Field", this );         h->addWidget( label );         Text * text = new Text( this );         h->addWidget( text );         QSpacerItem * s = new QSpacerItem( 10, 10, QSizePolicy::Fixed,             QSizePolicy::Expanding );         v->addItem( s );         resize( 800, 800 );     }     virtual ~Form()     {     } }; int main( int argc, char ** argv ) {     QApplication app( argc, argv );     Form f;     f.show();     return app.exec(); } On 13.04.2018 10:34, Alexander Semke wrote: > Hi, > > one frequently sees form text fields on the web where the actual text field can > be resized by the user by clicking on the resize-symbol in the corner of the > text field and dragging it until the desired size is achieved. I'm wondering > how to get this for a QTextEdit placed in a layout. Does somebody have an > idea here? > > > Thanks and Regards, > Alexander > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest From shaan7in at gmail.com Fri Apr 13 11:48:15 2018 From: shaan7in at gmail.com (Shantanu Tushar) Date: Fri, 13 Apr 2018 15:18:15 +0530 Subject: [Interest] QtQuick Controls 2 and Designer: Should I use Styles or Customize? In-Reply-To: References: Message-ID: It helps ThemeContext.qml to determine if there is already a "theme" defined in the context and if that is using the dialog colors. QVariant SoStronk::contextPropertyForQmlObject(QObject *o, QString name) { auto context = QQmlEngine::contextForObject(o); if (!context) { qWarning() << "Context is null, maybe attempt to call contextPropertyForQmlObject for non-QML object"; return ""; } return context->contextProperty(name.toUtf8().data()); } On 11 April 2018 at 20:32, Jérôme Godbout wrote: > Look nice, but what exactly does the function > SoStronk.contextPropertyForQmlObject(obj, string) does ? > > > > ________________________________ > From: Shantanu Tushar > Sent: April 11, 2018 9:29 AM > To: Jérôme Godbout > Cc: Thomas Hartmann; interest at qt-project.org > > Subject: Re: [Interest] QtQuick Controls 2 and Designer: Should I use Styles > or Customize? > > Hi, > > Thanks for the suggestion. I ended up implementing it like this- > > $ cat theme/v2/Theme.qml > pragma Singleton > > import QtQuick 2.10 > import QtQuick.Window 2.3 > > Item { > visible: false > > GlassColors { > id: glassColors > } > > PlatinumColors { > id: platinumColors > } > > readonly property var colors: glassColors > readonly property var dialogColors: platinumColors > ... > ... > } > > $ cat theme/v2/ThemeContext.qml > import QtQuick 2.10 > > Item { > id: root > visible: false > > readonly property var _inheritedTheme: > SoStronk.contextPropertyForQmlObject(root.parent, "theme") > readonly property bool _inheritedDialogColors: _inheritedTheme && > _inheritedTheme.dialogColors ? true : false > > property bool dialogColors: false > readonly property var colors: dialogColors || > _inheritedDialogColors ? Theme.dialogColors : Theme.colors > } > > where contextPropertyForQmlObject is a C++ function which returns the > value of a property under the context of the specified object. > Its used like this- > > $ cat SoStronkStyle/Button.qml > import QtQuick 2.10 > import QtQuick.Templates 2.3 as T > > import SoStronk.theme 0.2 > > T.Button { > id: control > > ThemeContext { > id: theme > } > ... > // access theme.colors.foregroundColor > > And whenever I create a dialog- > > ThemeContext { > id: theme > dialogColors: true > } > > So then any Button accessing theme.colors will end up referring to > dialogColors :) > > > On 9 April 2018 at 21:35, Jérôme Godbout wrote: >> You could have a property inside the controler to select the proper theme >> value with a fallback, your theme singleton would then need to have >> different set of color. >> >> >> Theme >> >> { >> >> id: component >> >> property var defaultTheme: panelTheme >> >> property var mainTheme: ... >> >> property var panelTheme: ... >> >> >> function getTheme(prop) >> >> { >> >> if(prop && component.hasOwnProperty(prop)) >> >> return component[prop]; >> >> return component.defaultTheme; >> >> } >> >> } >> >> >> T.Button >> >> { >> >> id: component >> >> color: Theme.getTheme(component.customTheme).backgroundColor >> >> } >> >> >> // use style with default theme >> Button >> { >> } >> >> // Button with theme color >> Button >> { >> property string customTheme: 'mainTheme' >> } >> >> As for loading a multiple different template I think it would be >> impossible. >> >> ________________________________ >> From: Interest on >> behalf of Shantanu Tushar >> Sent: April 9, 2018 11:30 AM >> To: Thomas Hartmann >> Cc: interest at qt-project.org >> Subject: Re: [Interest] QtQuick Controls 2 and Designer: Should I use >> Styles >> or Customize? >> >> Hi, >> >> I've been slowly implementing these suggestions and so far the results >> have been great. My button style looks like this- >> >> import QtQuick 2.9 >> import QtQuick.Templates 2.1 as T >> >> import My.theme 0.2 >> >> T.Button { >> // Here i use properties like Theme.backgroundColor, Theme.textColor >> etc >> } >> >> However, I just hit a roadblock which deals with multiple styles in >> the same application. Our designer has created two sets of theme >> colors - Glass and Dark, Glass it to be used on the "Main window" of >> our application and Dark is used on rest of the dialogs. See >> https://www.sostronk.com/assets/tilt-a780c798bf78e6c5.png >> >> Now, because Theme is a singleton, there is no way for me to define a >> different set of colors for a Dialog. Any suggestions on how to >> achieve this? >> >> Thanks, >> >> On 26 March 2018 at 19:37, Shantanu Tushar wrote: >>> Hi Thomas, >>> >>> I've tried both your suggestions in a PoC project and it works! My >>> actual app will need some refactoring to get the ball rolling but I >>> think this will work fine. >>> >>> Thanks a lot, >>> >>> >>> On 16 March 2018 at 19:32, Thomas Hartmann wrote: >>>> Hi, >>>> >>>> >>>> I would suggest solution number 1 (Creating a Custom Style). >>>> >>>> >>>> To get the designer to show your custom style you have to configure it >>>> in >>>> qtquickcontrols2.conf. >>>> >>>> You can do this in the editable combo box in the form editor if >>>> qtquickcontrols2.conf does exist. >>>> >>>> You can refer to the Qt Quick Controls 2 Flat Style example >>>> (https://doc.qt.io/qt-5.10/qtquickcontrols2-flatstyle-example.html). >>>> >>>> You can use QT_QUICK_CONTROLS_STYLE_PATH to specify additional paths >>>> that >>>> are used to lookup Qt Quick Controls 2 styles. >>>> >>>> You can also write your own QML plugin (2. Customizing a Control), but >>>> you >>>> have to create a QML file for every control >>>> >>>> and you have to implement a full plugin/import. For these customized >>>> controls to show up in the item library you have to provide a .metainfo >>>> file. You can look at the origin Qt Quick Controls 2 implementation for >>>> reference. >>>> >>>> >>>> I hope this solves your issue. >>>> >>>> >>>> Kind Regards, >>>> >>>> Thomas Hartmann >>>> >>>> >>>> >>>> _______________________________________________ >>>> Interest mailing list >>>> Interest at qt-project.org >>>> http://lists.qt-project.org/mailman/listinfo/interest >>>> >>> >>> >>> >>> -- >>> Shantanu Tushar (UTC +0530) >>> shantanu.io >> >> >> >> -- >> Shantanu Tushar (UTC +0530) >> shantanu.io >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest > > > > -- > Shantanu Tushar (UTC +0530) > shantanu.io -- Shantanu Tushar (UTC +0530) shantanu.io From jianliang79 at gmail.com Fri Apr 13 12:08:02 2018 From: jianliang79 at gmail.com (Liang Jian) Date: Fri, 13 Apr 2018 18:08:02 +0800 Subject: [Interest] Can I build qt-android with exception disabled? Message-ID: I build qt-android 5.9 with GCC 4.9, I want generate the binary as small as possible. Disable C++ exception will be a way to reduce binary size, the question is can I build qt-android with exception disabled? Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From mail at herrdiel.de Fri Apr 13 17:49:54 2018 From: mail at herrdiel.de (mail at herrdiel.de) Date: Fri, 13 Apr 2018 17:49:54 +0200 Subject: [Interest] FileDialog: errors and crashes, especially in debug mode Message-ID: <3f0ca7aa-5f52-a87e-fe45-f9a397e61ad9@funkmachine.de> Hi, I still have the problem mentioned in the attached mail from a few days ago. I've found out, that this behaviour is linked to QML's FileDialog that I use in this way: FileDialog{ //MessageDialog{ id:csvFileDialog //fileMode:FileDialog.SaveFile folder:(myFolder) onAccepted:{ appController.importCSVAction(myFilename)//for testing, normally csvFileDialog.fileUrl csvFileDialog.close() } } The crash (stacktrace: see below) comes a few seconds after accepting the FileDialog. It is - contrary to my last mail - also responsible for crashes without running with Debugger. Those non-debug crashes appear later when I rush through the following UI pages (no crashes when I give the interface some time to rest!), quite some time after the FileDialog has been closed, so I had put the blame on my code. Error messages before (when opening the FileDialog) are galore and diverse (see attached email) . Common is the term "onecore", there is "library not registered", "out of memory" (rubbish!), "can't find the specified file" and such. When I Change it to "MessageDialog" (and comment out the folder property) everything runs like a charm and my code is working, too. No crashes, no matter how much load pressure I apply to the program. Interesting side note: my FilderDialog doesn't know the "fileMode:"property! I am importing the modules below, the problem appears with Dialogs 1.2 as well as 1.1 (using the OLDDIALOGS qualifier). Seems like a Qt bug because of changes in Win10 - is that correct? Anyone any ideas? Sebastian importQtQuick2.7 importQtQuick.Controls1.4asQQC14 importQtQuick.Controls2.1 importde.herrdiel.classintouch.classintouch22.0 importQtQuick.Window2.2 importQtQuick.Layouts1.3 importQtQuick.Dialogs1.2 importQtQuick.Dialogs1.1asOLDDIALOGS The stacktrace: 1   WTF::OSAllocator::reserveUncommitted OSAllocatorWin.cpp           48   0x2e904ec2 2   WTF::PageReservation::reserve PageReservation.h            107  0x2e882a7e 3   QV4::MemorySegment::MemorySegment qv4mm.cpp                    123  0x2e882a7e 4   QV4::ChunkAllocator::allocate qv4mm.cpp                    257  0x2e882a7e 5   QV4::BlockAllocator::allocate qv4mm.cpp                    695  0x2e882e2d 6   QV4::MemoryManager::allocData qv4mm.cpp                    920  0x2e8862d6 7   QV4::MemoryManager::allocManaged qv4mm_p.h                    223  0x2e916f93 8   QV4::ExecutionContext::newCallContext qv4context.cpp               69   0x2e916f93 9   QV4::ExecutionContext::call qv4context.cpp               269  0x2e91ac5b 10  QV4::ScriptFunction::call qv4functionobject.cpp        411  0x2e94512c 11  QV4::Object::call qv4object_p.h                445  0x2e9a9bf7 12  QV4::Runtime::method_callProperty qv4runtime.cpp               1104 0x2e9a9bf7 13  QV4::Moth::VME::run qv4vme_moth.cpp              600  0x2e99cb6b 14  QV4::Moth::VME::exec qv4vme_moth.cpp              976  0x2e99f630 15  QV4::ExecutionContext::call qv4context.cpp               274  0x2e91af16 16  QQmlJavaScriptExpression::evaluate qqmljavascriptexpression.cpp 225  0x2ea2535e 17  QQmlNonbindingBinding::doUpdate qqmlbinding.cpp              207  0x2eab6c70 18  QQmlBinding::update qqmlbinding.cpp              168  0x2ea2fc5f 19  QQmlBinding::expressionChanged qqmlbinding.cpp              484  0x2ea2fe05 20  QQmlJavaScriptExpressionGuard_callback qqmljavascriptexpression.cpp 490  0x2ea24e67 Crashes with the CRASH(); function/macro here: void*OSAllocator::reserveUncommitted(size_tbytes,Usage,boolwritable,boolexecutable) { void*result=VirtualAlloc(0,bytes,MEM_RESERVE,protection(writable,executable)); if(!result) CRASH(); returnresult; } * Qt 5.10.0 MinGW / 32bit Debug * Windows Version 10.0.16299 Build 16299, 64 bit * Qt Creator 4.2.1, * Three Monitors. -- http://www.classintouch.de - Tablet-Software für Lehrer -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded message was scrubbed... From: mail at herrdiel.de Subject: [Interest] QML errors, only in debug mode! Date: Sun, 8 Apr 2018 02:19:39 +0200 Size: 13166 URL: From asmaloney at gmail.com Fri Apr 13 18:14:08 2018 From: asmaloney at gmail.com (Andy) Date: Fri, 13 Apr 2018 12:14:08 -0400 Subject: [Interest] QWebEngineView, internal links, & the urlChanged signal Message-ID: I am generating a report as an HTML document and displaying it with a QWebEngineView. This report uses internal links such as . I have been using the following to add "Back" and "Forward" capabilities to a QWebEngineView: connect( mWebView, &QWebEngineView::urlChanged, this, [=] () { mUI->mActionBack->setEnabled( mWebView->history()->canGoBack() ); mUI->mActionForward->setEnabled( mWebView->history()->canGoForward() ); } ); It seems that QWebEngineView::urlChanged is no longer emitted when clicking on these internal links even though the URL has changed. Is this a regression or should I be using a different signal? (I don't see any that look like they apply...) Thank you for your time. --- Andy Maloney // https://asmaloney.com twitter ~ @asmaloney -------------- next part -------------- An HTML attachment was scrubbed... URL: From gmabey at swri.org Fri Apr 13 22:33:40 2018 From: gmabey at swri.org (Glen Mabey) Date: Fri, 13 Apr 2018 20:33:40 +0000 Subject: [Interest] WebGL platform and audio Message-ID: Hello, I'm using 5.10.1 for a very simple QML application that also instantiates a QAudioOutput instance and sends data to it. Not too surprisingly, the audio comes out on the machine running the executable and not the one running the webbrowser. I see that there is some concept of basic audio playback in WebGL, but don't know anything more than that: https://docs.unity3d.com/Manual/webgl-audio.html Is that the expected behavior for the Qt webgl platform? Any prospect of that changing soon? Thank you -- Glen From thiago.macieira at intel.com Fri Apr 13 23:26:12 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Fri, 13 Apr 2018 14:26:12 -0700 Subject: [Interest] Using leveldb in a Qt app redirects unrelated system malloc calls to tcmalloc? In-Reply-To: <1974534.Uo1lB8lLF1@patux.local> References: <2760125.VDVsYbevBQ@portia.local> <43564237.5dKO6pFLpB@tjmaciei-mobl1> <1974534.Uo1lB8lLF1@patux.local> Message-ID: <5447267.HynlppYxO1@tjmaciei-mobl1> On Friday, 13 April 2018 00:58:46 PDT René J. V. Bertin wrote: > Thiago Macieira wrote: > > Hi, > > > of the parent. The fact that it's deadlocking in the code that is supposed > > to remove locks so that it won't deadlock is a good irony. > > Yeah, very funny until it happens to you :) > > > Absent further proof to the contrary, this looks like a system bug. > > You could be right, but how on earth do I end up in tcmalloc code here? It's fork(). It calls the malloc routines. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From theoriginalgri at gmail.com Sat Apr 14 08:39:39 2018 From: theoriginalgri at gmail.com (Christoph Keller) Date: Sat, 14 Apr 2018 08:39:39 +0200 Subject: [Interest] all caps font on android 8 In-Reply-To: <3d34fc11897fcfc60a16dc8945c26d98@virtual-winds.org> References: <3d34fc11897fcfc60a16dc8945c26d98@virtual-winds.org> Message-ID: <8cc1afe3-d8d1-6d37-b391-31fc7cda6e5e@gmail.com> Hi Philippe, I received the same bug report from a user. Have you found a solution/cause? I haven't found anything by googling around, just your mailing list entry. Just for the statistics: QtQuickControls 2 application with Qt 5.10.1; User has a OnePlus 3 running Android 8.0.0. Other 8.x devices from Sony or Google Pixel don't show this bug. Greetings, Christoph On 14.02.18 22:43, maitai wrote: > Hi all, > > I have a user complaining that all fonts (dialog, QGraphicsScene, etc) > are in capital letters on Android 8 > > It's a QWidget-based application, qt 5.9.4 > > I have send him some attempts to correct this, in other words forcing > each and every setFont with a font set with > setCapitalization(QFont::MixedCase); > > Same result, all fonts are capitalized. > > At start I force (in java) theme to be > "Theme_Holo_NoActionBar_Fullscreen" > > Is it linked to Android 8 (which I don't have here) ? Any idea? > > Philippe. > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest From maitai at virtual-winds.org Sat Apr 14 08:51:45 2018 From: maitai at virtual-winds.org (maitai) Date: Sat, 14 Apr 2018 08:51:45 +0200 Subject: [Interest] all caps font on android 8 In-Reply-To: <8cc1afe3-d8d1-6d37-b391-31fc7cda6e5e@gmail.com> References: <3d34fc11897fcfc60a16dc8945c26d98@virtual-winds.org> <8cc1afe3-d8d1-6d37-b391-31fc7cda6e5e@gmail.com> Message-ID: <08fcfdc9917d28379350cadf8b5e0909@virtual-winds.org> Hi Christoph, I am afraid I don't remember all the details but I think I ended up adding a font dialog in the app main settings, and the user succeeded to find a more suitable font. I can also see in my code stuff like QFont def = qApp->font(); if(!Settings::getSetting(defaultFontName).toString().isEmpty()) def = QFont(Settings::getSetting(defaultFontName).toString()); def.setHintingPreference(QFont::PreferNoHinting); def.setPixelSize(QFontInfo(fapp).pixelSize()); def.setCapitalization(QFont::MixedCase); QApplication::setFont(def); QApplication::setFont(def, "QWidget"); //important which as I remember are coming from that story. Hope that helps, Philippe. Le 14-04-2018 08:39, Christoph Keller a écrit : > Hi Philippe, > > I received the same bug report from a user. Have you found a > solution/cause? I haven't found anything by googling around, just your > mailing list entry. > > Just for the statistics: QtQuickControls 2 application with Qt 5.10.1; > User has a OnePlus 3 running Android 8.0.0. Other 8.x devices from > Sony or Google Pixel don't show this bug. > > Greetings, > Christoph > > > On 14.02.18 22:43, maitai wrote: >> Hi all, >> >> I have a user complaining that all fonts (dialog, QGraphicsScene, etc) >> are in capital letters on Android 8 >> >> It's a QWidget-based application, qt 5.9.4 >> >> I have send him some attempts to correct this, in other words forcing >> each and every setFont with a font set with >> setCapitalization(QFont::MixedCase); >> >> Same result, all fonts are capitalized. >> >> At start I force (in java) theme to be >> "Theme_Holo_NoActionBar_Fullscreen" >> >> Is it linked to Android 8 (which I don't have here) ? Any idea? >> >> Philippe. >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest From ekke at ekkes-corner.org Sat Apr 14 09:03:32 2018 From: ekke at ekkes-corner.org (ekke) Date: Sat, 14 Apr 2018 09:03:32 +0200 Subject: [Interest] all caps font on android 8 In-Reply-To: <8cc1afe3-d8d1-6d37-b391-31fc7cda6e5e@gmail.com> References: <3d34fc11897fcfc60a16dc8945c26d98@virtual-winds.org> <8cc1afe3-d8d1-6d37-b391-31fc7cda6e5e@gmail.com> Message-ID: <5203e300-037a-8f93-d956-db71c0ef06aa@ekkes-corner.org> I got similar reports for my QtQuickControls2 apps on Android But in my case only TextFields always show Uppercase while entering text Long time I built my Android Apps for Android6(SDK23). Now after building for Android 8 and Qt 5.10.1 some reports are coming in It seems it depends from the Device or Keyboard installed Some - but not all - Samsung users are reporting this. For Samsung I found this: https://us.community.samsung.com/t5/Other-Mobile-Devices/After-the-latest-update-the-Samsung-keyboard-capitalizes-every/m-p/264634/highlight/true#M9860 >From that Samsung discussion found a workaround: In Android Settings Keyboard Switch OFF AutoCapitalize or from http://doc.qt.io/qt-5/qml-qtquick-controls-textfield.html#inputMethodHints-prop InputMethodHint "Qt.ImhNoAutoUppercase" also helped. But then there's no auto uppercase for sentences. Or try to install another Keyboard Google G-board should be ok, also many of my users have installed BlackBerry Keyboard, which also works well on Qt 5.10.1 and Android8 @maitai don't know if this will help with QWidgets - I'm only developing QtQuickControls2 apps Am 14.04.18 um 08:39 schrieb Christoph Keller: > Hi Philippe, > > I received the same bug report from a user. Have you found a > solution/cause? I haven't found anything by googling around, just your > mailing list entry. > > Just for the statistics: QtQuickControls 2 application with Qt 5.10.1; > User has a OnePlus 3 running Android 8.0.0. Other 8.x devices from > Sony or Google Pixel don't show this bug. > > Greetings, > Christoph > > > On 14.02.18 22:43, maitai wrote: >> Hi all, >> >> I have a user complaining that all fonts (dialog, QGraphicsScene, >> etc) are in capital letters on Android 8 >> >> It's a QWidget-based application, qt 5.9.4 >> >> I have send him some attempts to correct this, in other words forcing >> each and every setFont with a font set with >> setCapitalization(QFont::MixedCase); >> >> Same result, all fonts are capitalized. >> >> At start I force (in java) theme to be >> "Theme_Holo_NoActionBar_Fullscreen" >> >> Is it linked to Android 8 (which I don't have here) ? Any idea? >> >> Philippe. >> _______________________________________________ >> 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 > -- ekke (ekkehard gentz) independent software architect international development native mobile business apps BlackBerry 10 | Qt Mobile (Android, iOS) workshops - trainings - bootcamps *Qt Champion BlackBerry Elite Developer * max-josefs-platz 30, D-83022 rosenheim, germany mailto:ekke at ekkes-corner.org my blog: http://ekkes-corner.org app development blog: http://appbus.org twitter: @ekkescorner 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 rjvbertin at gmail.com Sat Apr 14 09:37:47 2018 From: rjvbertin at gmail.com (=?UTF-8?B?UmVuw6kgSi4gVi4=?= Bertin) Date: Sat, 14 Apr 2018 09:37:47 +0200 Subject: [Interest] Using leveldb in a Qt app redirects unrelated system malloc calls to tcmalloc? References: <2760125.VDVsYbevBQ@portia.local> <43564237.5dKO6pFLpB@tjmaciei-mobl1> <1974534.Uo1lB8lLF1@patux.local> <5447267.HynlppYxO1@tjmaciei-mobl1> Message-ID: <14000986.OYi54En5hi@patux.local> Thiago Macieira wrote: > It's fork(). It calls the malloc routines. Yeah, I discovered afterwards that tcmalloc injects itself and "infects" any application that links to it, whether directly or indirectly. It suggests somewhere in its instructions that you shouldn't link it to plugins, which makes me wonder a bit if the leveldb used by QtWebEngine is linked to tcmalloc. FWIW I had a deadlock in KDevelop on Linux too, yesterday. Sadly I didn't get to verify if it was for the same reason as reported here on Mac. It it was then the underlying cause is probably an oversight somewhere in my code (a class reimplementing the basic QFile functionality to store key/value pairs in a database rather than in individual files; it involves storing and retrieving byte arrays via QByteArrays and std::strings). R. From me at the-compiler.org Sat Apr 14 11:58:30 2018 From: me at the-compiler.org (Florian Bruhin) Date: Sat, 14 Apr 2018 11:58:30 +0200 Subject: [Interest] How do I get the most robust version of 5.10 In-Reply-To: <5ACFA64B.3000408@analog.com> References: <5ACF49C6.1060502@analog.com> <13516545.LDEzv6WAg6@tjmaciei-mobl1> <5ACF989A.7050203@analog.com> <5417359.ziNFfnWl2r@tjmaciei-mobl1> <5ACFA64B.3000408@analog.com> Message-ID: <20180414095830.n2ih7xtijvrnt74u@hooch.localdomain> On Thu, Apr 12, 2018 at 02:32:43PM -0400, william.crocker at analog.com wrote: > > > > > > > It immediately failed one of my regression tests. > > > You should have known there was an issue because I here it has been fixed in > > > 5.11 > > > > Of course there are problems. Do you want us to delete every old release > > because we've fixed bugs? We already have fixes for bugs post 5.9.5, which was > > released today. Should we delete it too? > > > > Bugs will be fixed in the next release. > > > > > Fortunately I did not spend too much time blaming my code. > > > I submitted a bug report and was offered 3 patches which fixed the problem. > > > > > > I think leaving that prominent, dangling version with known > > > issues is irresponsible. > > > > Ok, we'll delete all releases. Please build only from Git, from the dev > > branch. It's the only one that has all fixes. > > > > I view the most recent branch (5.11 in this case) as your bold move into new > features and, as long as that branch is sub-versioned (5.11.x), > the dust has not settled. > > It appeared that the dust had settled on 5.10 and all known bugs, especially > those introduced in otherwise mature code, like QAbstractItemView, would > have been resolved. > > So, I can't use 5.11 because the dust has not settled and > now I can't use any previous version because even the most basic > of classes may have known bugs. > > That is my conundrum. Like other people mentioned before, it sounds like LTS branches (currently 5.9) are the right fit for you. Those get bugfixes for a long time, without any changes which have a bigger potential for breaking something (so there's no dust to settle). They are also supported for a much longer time than a regular release (3 years, but getting stricter even with non-critical bugfixes after some time). Florian -- https://www.qutebrowser.org | me at the-compiler.org (Mail/XMPP) GPG: 916E B0C8 FD55 A072 | https://the-compiler.org/pubkey.asc I love long mails! | https://email.is-not-s.ms/ -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: not available URL: From alexander.semke at web.de Sun Apr 15 10:53:44 2018 From: alexander.semke at web.de (Alexander Semke) Date: Sun, 15 Apr 2018 10:53:44 +0200 Subject: [Interest] resizable QTextEdit In-Reply-To: References: <507878632.l3FgfH1HEP@notebook> Message-ID: <26743358.crTkmrpuH8@notebook> On Freitag, 13. April 2018 10:22:14 CEST Igor Mironchik wrote: > Something like this? > [...] Thanks Igor, I've got the idea. The resize works fine now but I have the problem with the layout of the parent widget being not updated. My text edit widget is embedded into a QFrame with a vertical layout. After the manual resize I need the layout(s) and the sizes/positions of this frame and of all the other widgets frame's parent to be adjusted to the new size of the text edit. https://imgur.com/a/eV2Fj - here the height of the text edit widget was made smaller but the QFrame widget where the text edit is placed in a vertical layout was not resized. I'm calling frame->layout()->activate() to trigger the recalculation but this doesn't lead to the desired effect... Do I new to resize the frame widget here manually or are there any other methods to update/recalculate the layout? -- Alexander From tony at rightsoft.com.au Sun Apr 15 12:48:58 2018 From: tony at rightsoft.com.au (Tony Rietwyk) Date: Sun, 15 Apr 2018 20:48:58 +1000 Subject: [Interest] resizable QTextEdit In-Reply-To: <26743358.crTkmrpuH8@notebook> References: <507878632.l3FgfH1HEP@notebook> <26743358.crTkmrpuH8@notebook> Message-ID: <3b0c29ff-d289-9e2b-2a14-9c98898fd057@rightsoft.com.au> Hi Alexander, Does layout::invalidate before activate help? Regards, Tony On 15/04/2018 6:53 PM, Alexander Semke wrote: > On Freitag, 13. April 2018 10:22:14 CEST Igor Mironchik wrote: >> Something like this? >> [...] > Thanks Igor, I've got the idea. The resize works fine now but I have the > problem with the layout of the parent widget being not updated. My text edit > widget is embedded into a QFrame with a vertical layout. After the manual > resize I need the layout(s) and the sizes/positions of this frame and of all > the other widgets frame's parent to be adjusted to the new size of the text > edit. > > https://imgur.com/a/eV2Fj - here the height of the text edit widget was made > smaller but the QFrame widget where the text edit is placed in a vertical > layout was not resized. I'm calling frame->layout()->activate() to trigger the > recalculation but this doesn't lead to the desired effect... Do I new to > resize the frame widget here manually or are there any other methods to > update/recalculate the layout? > > From mail at herrdiel.de Sun Apr 15 16:00:29 2018 From: mail at herrdiel.de (mail at herrdiel.de) Date: Sun, 15 Apr 2018 16:00:29 +0200 Subject: [Interest] FileDialog: errors and crashes, especially in debug mode In-Reply-To: <3f0ca7aa-5f52-a87e-fe45-f9a397e61ad9@funkmachine.de> References: <3f0ca7aa-5f52-a87e-fe45-f9a397e61ad9@funkmachine.de> Message-ID: <73bab722-5349-c74a-d16c-9837dab673d4@funkmachine.de> Hi again, the QtQuick FileDialog seems to be borked for debug on (or by?) Win10. I've filed a bug here: https://bugreports.qt.io/browse/QTBUG-67711 Any input / workaround idea is highly welcome! This keeps me from debugging, thus from properly developing my app. Am I really the first / only one here to experience this problem? Best regards, Sebastian P.S.: Please forget about the "missing fileMode" - side note, 'twas my bad (it exists in lab version only). Am 13.04.2018 um 17:49 schrieb mail at herrdiel.de: > > Hi, > > I still have the problem mentioned in the attached mail from a few > days ago. > > I've found out, that this behaviour is linked to QML's FileDialog that > I use in this way: > > FileDialog{ > //MessageDialog{ > id:csvFileDialog > //fileMode:FileDialog.SaveFile > folder:(myFolder) > onAccepted:{ > appController.importCSVAction(myFilename)//for testing, normally csvFileDialog.fileUrl > csvFileDialog.close() > } > } > > The crash (stacktrace: see below) comes a few seconds after accepting > the FileDialog. It is - contrary to my last mail - also responsible > for crashes without running with Debugger. > Those non-debug crashes appear later when I rush through the following > UI pages (no crashes when I give the interface some time to rest!), > quite some time after the FileDialog has been closed, so I had put the > blame on my code. > > Error messages before (when opening the FileDialog) are galore and > diverse (see attached email) . Common is the term "onecore", there is > "library not registered", "out of memory" (rubbish!), "can't find the > specified file" and such. > > When I Change it to "MessageDialog" (and comment out the folder > property) everything runs like a charm and my code is working, too. No > crashes, no matter how much load pressure I apply to the program. > > Interesting side note: my FilderDialog doesn't know the > "fileMode:"property! > I am importing the modules below, the problem appears with Dialogs 1.2 > as well as 1.1 (using the OLDDIALOGS qualifier). > > Seems like a Qt bug because of changes in Win10 - is that correct? > Anyone any ideas? > > Sebastian > > > > importQtQuick2.7 > importQtQuick.Controls1.4asQQC14 > importQtQuick.Controls2.1 > importde.herrdiel.classintouch.classintouch22.0 > importQtQuick.Window2.2 > importQtQuick.Layouts1.3 > importQtQuick.Dialogs1.2 > importQtQuick.Dialogs1.1asOLDDIALOGS > > > > The stacktrace: > 1   WTF::OSAllocator::reserveUncommitted OSAllocatorWin.cpp           > 48   0x2e904ec2 > 2   WTF::PageReservation::reserve PageReservation.h            107  > 0x2e882a7e > 3   QV4::MemorySegment::MemorySegment qv4mm.cpp                    > 123  0x2e882a7e > 4   QV4::ChunkAllocator::allocate qv4mm.cpp                    257  > 0x2e882a7e > 5   QV4::BlockAllocator::allocate qv4mm.cpp                    695  > 0x2e882e2d > 6   QV4::MemoryManager::allocData qv4mm.cpp                    920  > 0x2e8862d6 > 7   QV4::MemoryManager::allocManaged > qv4mm_p.h                    223  0x2e916f93 > 8   QV4::ExecutionContext::newCallContext qv4context.cpp               > 69   0x2e916f93 > 9   QV4::ExecutionContext::call qv4context.cpp               269  > 0x2e91ac5b > 10  QV4::ScriptFunction::call qv4functionobject.cpp        411  > 0x2e94512c > 11  QV4::Object::call qv4object_p.h                445  0x2e9a9bf7 > 12  QV4::Runtime::method_callProperty qv4runtime.cpp               > 1104 0x2e9a9bf7 > 13  QV4::Moth::VME::run qv4vme_moth.cpp              600  0x2e99cb6b > 14  QV4::Moth::VME::exec qv4vme_moth.cpp              976  0x2e99f630 > 15  QV4::ExecutionContext::call qv4context.cpp               274  > 0x2e91af16 > 16  QQmlJavaScriptExpression::evaluate qqmljavascriptexpression.cpp > 225  0x2ea2535e > 17  QQmlNonbindingBinding::doUpdate qqmlbinding.cpp              207  > 0x2eab6c70 > 18  QQmlBinding::update qqmlbinding.cpp              168  0x2ea2fc5f > 19  QQmlBinding::expressionChanged qqmlbinding.cpp              484  > 0x2ea2fe05 > 20  QQmlJavaScriptExpressionGuard_callback > qqmljavascriptexpression.cpp 490  0x2ea24e67 > > Crashes with the CRASH(); function/macro here: > > void*OSAllocator::reserveUncommitted(size_tbytes,Usage,boolwritable,boolexecutable) > > { > void*result=VirtualAlloc(0,bytes,MEM_RESERVE,protection(writable,executable)); > if(!result) > CRASH(); > returnresult; > } > > * Qt 5.10.0 MinGW / 32bit Debug > * Windows Version 10.0.16299 Build 16299, 64 bit > * Qt Creator 4.2.1, > * Three Monitors. > > > > > -- > http://www.classintouch.de - Tablet-Software für Lehrer > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -- http://www.classintouch.de - Tablet-Software für Lehrer -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: FileDialogTest.zip Type: application/x-zip-compressed Size: 2001 bytes Desc: not available URL: From igor.mironchik at gmail.com Sun Apr 15 16:35:10 2018 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Sun, 15 Apr 2018 17:35:10 +0300 Subject: [Interest] resizable QTextEdit In-Reply-To: <26743358.crTkmrpuH8@notebook> References: <507878632.l3FgfH1HEP@notebook> <26743358.crTkmrpuH8@notebook> Message-ID: Hi, As a possible solution: #include #include #include #include #include #include #include #include #include #include class Text; class Corner     :    public QWidget { public:     Corner( Text * parent );     virtual ~Corner();     QSize sizeHint() const Q_DECL_OVERRIDE; protected:     void paintEvent( QPaintEvent * ) Q_DECL_OVERRIDE;     void mousePressEvent( QMouseEvent * e ) Q_DECL_OVERRIDE;     void mouseReleaseEvent( QMouseEvent * e ) Q_DECL_OVERRIDE;     void mouseMoveEvent( QMouseEvent * e ) Q_DECL_OVERRIDE; private:     Text * m_toResize;     QPoint m_pos;     bool m_pressed; }; class Text     :    public QTextEdit { public:     Text( QWidget * parent, QLayout * layout );     virtual ~Text();     void addSize( const QSize & size );     QSize sizeHint() const Q_DECL_OVERRIDE; protected:     void resizeEvent( QResizeEvent * e ) Q_DECL_OVERRIDE; private:     Corner * m_corner;     QSize m_size;     QLayout * m_layout; }; Corner::Corner( Text * parent )     :    QWidget( parent )     ,    m_toResize( parent )     ,    m_pressed( false ) { } Corner::~Corner() { } QSize Corner::sizeHint() const {     return QSize( 10, 10 ); } void Corner::paintEvent( QPaintEvent * ) {     QPainter p( this );     p.setPen( Qt::red );     p.setBrush( Qt::red );     p.drawRect( rect() ); } void Corner::mousePressEvent( QMouseEvent * e ) {     if( e->button() == Qt::LeftButton )     {         m_pos = e->pos();         m_pressed = true;     }     e->accept(); } void Corner::mouseReleaseEvent( QMouseEvent * e ) {     if( e->button() == Qt::LeftButton )         m_pressed = false;     e->accept(); } void Corner::mouseMoveEvent( QMouseEvent * e ) {     if( m_pressed )     {         const QPoint delta = e->pos() - m_pos;         m_toResize->addSize( QSize( delta.x(), delta.y() ) );     }     e->accept(); } Text::Text( QWidget * parent, QLayout * layout )     :    QTextEdit( parent )     ,    m_corner( new Corner( this ) )     ,    m_size( QTextEdit::sizeHint() )     ,    m_layout( layout ) {     m_corner->move( width() - m_corner->width(),         height() - m_corner->height() ); } Text::~Text() { } void Text::addSize( const QSize & size ) {     setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed );     m_size = QSize( m_size.width(), m_size.height() + size.height() );     updateGeometry(); } QSize Text::sizeHint() const {     return m_size; } void Text::resizeEvent( QResizeEvent * e ) {     m_corner->move( e->size().width() - m_corner->width(),         e->size().height() - m_corner->height() );     m_size = e->size();     e->accept(); } class Form     :    public QWidget { public:     Form()     {         QVBoxLayout * v = new QVBoxLayout( this );         QFrame * f = new QFrame( this );         f->setFrameStyle( QFrame::Panel | QFrame::Sunken );         QHBoxLayout * h = new QHBoxLayout( f );         v->addWidget( f );         QLabel * label = new QLabel( "Resizeable Text Field", f );         h->addWidget( label );         Text * text = new Text( f, v );         h->addWidget( text );         QSpacerItem * s = new QSpacerItem( 10, 10, QSizePolicy::Fixed,             QSizePolicy::Expanding );         v->addItem( s );         resize( 800, 800 );     }     virtual ~Form()     {     } }; int main( int argc, char ** argv ) {     QApplication app( argc, argv );     Form f;     f.show();     return app.exec(); } On 15.04.2018 11:53, Alexander Semke wrote: > On Freitag, 13. April 2018 10:22:14 CEST Igor Mironchik wrote: >> Something like this? >> [...] > Thanks Igor, I've got the idea. The resize works fine now but I have the > problem with the layout of the parent widget being not updated. My text edit > widget is embedded into a QFrame with a vertical layout. After the manual > resize I need the layout(s) and the sizes/positions of this frame and of all > the other widgets frame's parent to be adjusted to the new size of the text > edit. > > https://imgur.com/a/eV2Fj - here the height of the text edit widget was made > smaller but the QFrame widget where the text edit is placed in a vertical > layout was not resized. I'm calling frame->layout()->activate() to trigger the > recalculation but this doesn't lead to the desired effect... Do I new to > resize the frame widget here manually or are there any other methods to > update/recalculate the layout? > > From igor.mironchik at gmail.com Sun Apr 15 18:16:52 2018 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Sun, 15 Apr 2018 19:16:52 +0300 Subject: [Interest] resizable QTextEdit In-Reply-To: <26743358.crTkmrpuH8@notebook> References: <507878632.l3FgfH1HEP@notebook> <26743358.crTkmrpuH8@notebook> Message-ID: <6126a050-6f21-7e66-b3e9-0c25d76175c5@gmail.com> Hi again, If you want to be able to shrink the width too, you can do something similar to: #include #include #include #include #include #include #include #include #include #include class Text; class Corner     :    public QWidget { public:     Corner( Text * parent );     virtual ~Corner();     QSize sizeHint() const Q_DECL_OVERRIDE; protected:     void paintEvent( QPaintEvent * ) Q_DECL_OVERRIDE;     void mousePressEvent( QMouseEvent * e ) Q_DECL_OVERRIDE;     void mouseReleaseEvent( QMouseEvent * e ) Q_DECL_OVERRIDE;     void mouseMoveEvent( QMouseEvent * e ) Q_DECL_OVERRIDE; private:     Text * m_toResize;     QPoint m_pos;     bool m_pressed; }; class Text     :    public QTextEdit { public:     Text( QWidget * parent, QLayout * layout );     virtual ~Text();     void addSize( const QSize & size );     QSize sizeHint() const Q_DECL_OVERRIDE; protected:     void resizeEvent( QResizeEvent * e ) Q_DECL_OVERRIDE; private:     Corner * m_corner;     QSize m_size;     QLayout * m_layout; }; Corner::Corner( Text * parent )     :    QWidget( parent )     ,    m_toResize( parent )     ,    m_pressed( false ) { } Corner::~Corner() { } QSize Corner::sizeHint() const {     return QSize( 10, 10 ); } void Corner::paintEvent( QPaintEvent * ) {     QPainter p( this );     p.setPen( Qt::red );     p.setBrush( Qt::red );     p.drawRect( rect() ); } void Corner::mousePressEvent( QMouseEvent * e ) {     if( e->button() == Qt::LeftButton )     {         m_pos = e->pos();         m_pressed = true;     }     e->accept(); } void Corner::mouseReleaseEvent( QMouseEvent * e ) {     if( e->button() == Qt::LeftButton )         m_pressed = false;     e->accept(); } void Corner::mouseMoveEvent( QMouseEvent * e ) {     if( m_pressed )     {         const QPoint delta = e->pos() - m_pos;         m_toResize->addSize( QSize( delta.x(), delta.y() ) );     }     e->accept(); } Text::Text( QWidget * parent, QLayout * layout )     :    QTextEdit( parent )     ,    m_corner( new Corner( this ) )     ,    m_size( QTextEdit::sizeHint() )     ,    m_layout( layout ) {     m_corner->move( width() - m_corner->width(),         height() - m_corner->height() ); } Text::~Text() { } void Text::addSize( const QSize & size ) {     setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed );     m_size = QSize( m_size.width() + size.width(), m_size.height() + size.height() );     updateGeometry(); } QSize Text::sizeHint() const {     return m_size; } void Text::resizeEvent( QResizeEvent * e ) {     m_corner->move( e->size().width() - m_corner->width(),         e->size().height() - m_corner->height() );     m_size = e->size();     e->accept(); } class Form     :    public QWidget { public:     Form()     {         QVBoxLayout * v = new QVBoxLayout( this );         QFrame * f = new QFrame( this );         f->setFrameStyle( QFrame::Panel | QFrame::Sunken );         QHBoxLayout * h = new QHBoxLayout( f );         v->addWidget( f );         QLabel * label = new QLabel( "Resizeable Text Field", f );         label->setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed );         h->addWidget( label );         Text * text = new Text( f, v );         h->addWidget( text );         QSpacerItem * s = new QSpacerItem( 10, 10, QSizePolicy::Fixed,             QSizePolicy::Expanding );         v->addItem( s );         resize( 800, 800 );     }     virtual ~Form()     {     } }; int main( int argc, char ** argv ) {     QApplication app( argc, argv );     Form f;     f.show();     return app.exec(); } On 15.04.2018 11:53, Alexander Semke wrote: > On Freitag, 13. April 2018 10:22:14 CEST Igor Mironchik wrote: >> Something like this? >> [...] > Thanks Igor, I've got the idea. The resize works fine now but I have the > problem with the layout of the parent widget being not updated. My text edit > widget is embedded into a QFrame with a vertical layout. After the manual > resize I need the layout(s) and the sizes/positions of this frame and of all > the other widgets frame's parent to be adjusted to the new size of the text > edit. > > https://imgur.com/a/eV2Fj - here the height of the text edit widget was made > smaller but the QFrame widget where the text edit is placed in a vertical > layout was not resized. I'm calling frame->layout()->activate() to trigger the > recalculation but this doesn't lead to the desired effect... Do I new to > resize the frame widget here manually or are there any other methods to > update/recalculate the layout? > > From alexander.semke at web.de Sun Apr 15 18:30:20 2018 From: alexander.semke at web.de (Alexander Semke) Date: Sun, 15 Apr 2018 18:30:20 +0200 Subject: [Interest] resizable QTextEdit In-Reply-To: References: <507878632.l3FgfH1HEP@notebook> <26743358.crTkmrpuH8@notebook> Message-ID: <2429079.A516sDkASK@notebook> Hi Igor, > As a possible solution: > [...] Works now. I pushed a modified version of your code to our repository in https://cgit.kde.org/labplot.git/commit/? id=1cacf9f095b5e850baa58584b071986fbfe790fb The only problem now is that the entered text is not shown in TextEdit with this new class. The text changes are accepted, but nothing is shown. Any idea here? Regards, Alexander From alexander.semke at web.de Sun Apr 15 18:31:20 2018 From: alexander.semke at web.de (Alexander Semke) Date: Sun, 15 Apr 2018 18:31:20 +0200 Subject: [Interest] resizable QTextEdit In-Reply-To: <3b0c29ff-d289-9e2b-2a14-9c98898fd057@rightsoft.com.au> References: <507878632.l3FgfH1HEP@notebook> <26743358.crTkmrpuH8@notebook> <3b0c29ff-d289-9e2b-2a14-9c98898fd057@rightsoft.com.au> Message-ID: <4787167.GleiXhnhVX@notebook> Hi Tony, > Does layout::invalidate before activate help? no, this somehow completely blocked the resize... Calling updateGeometry() solved this problem. Regards, Alexander From igor.mironchik at gmail.com Sun Apr 15 18:59:56 2018 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Sun, 15 Apr 2018 19:59:56 +0300 Subject: [Interest] resizable QTextEdit In-Reply-To: <2429079.A516sDkASK@notebook> References: <507878632.l3FgfH1HEP@notebook> <26743358.crTkmrpuH8@notebook> <2429079.A516sDkASK@notebook> Message-ID: <0cdd1c1d-5ea2-d329-adda-ff9af068ce66@gmail.com> Hi, #include #include #include #include #include #include #include #include #include #include class Resizable { public:     Resizable()     {     }     virtual ~Resizable()     {     }     virtual void addSize( const QSize & size ) = 0; protected:     QSize m_size; }; class Corner     :    public QWidget { public:     Corner( Resizable * resizable, QWidget * parent )         :    QWidget( parent )         ,    m_toResize( resizable )         ,    m_pressed( false )     {         resize( sizeHint() );     }     virtual ~Corner()     {     }     QSize sizeHint() const Q_DECL_OVERRIDE     {         return QSize( 10, 10 );     } protected:     void paintEvent( QPaintEvent * ) Q_DECL_OVERRIDE     {         QPainter p( this );         p.setPen( Qt::red );         p.setBrush( Qt::red );         p.drawRect( rect() );     }     void mousePressEvent( QMouseEvent * e ) Q_DECL_OVERRIDE     {         if( e->button() == Qt::LeftButton )         {             m_pos = e->pos();             m_pressed = true;         }         e->accept();     }     void mouseReleaseEvent( QMouseEvent * e ) Q_DECL_OVERRIDE     {         if( e->button() == Qt::LeftButton )             m_pressed = false;         e->accept();     }     void mouseMoveEvent( QMouseEvent * e ) Q_DECL_OVERRIDE     {         if( m_pressed )         {             const QPoint delta = e->pos() - m_pos;             m_toResize->addSize( QSize( delta.x(), delta.y() ) );         }         e->accept();     } private:     Resizable * m_toResize;     QPoint m_pos;     bool m_pressed; }; class Text     :    public QTextEdit     ,    public Resizable { public:     Text( QWidget * parent )         :    QTextEdit( parent )         ,    m_corner( new Corner( this, this ) )         ,    m_size( QTextEdit::sizeHint() )     {         m_corner->move( width() - m_corner->width(),             height() - m_corner->height() );     }     virtual ~Text()     {     }     void addSize( const QSize & size ) Q_DECL_OVERRIDE     {         setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed );         m_size += size;         updateGeometry();     }     QSize sizeHint() const Q_DECL_OVERRIDE     {         return m_size;     } protected:     void resizeEvent( QResizeEvent * e ) Q_DECL_OVERRIDE     {         QTextEdit::resizeEvent( e );         m_corner->move( e->size().width() - m_corner->width(),             e->size().height() - m_corner->height() );         m_size = e->size();         e->accept();     } private:     Corner * m_corner;     QSize m_size; }; class Form     :    public QWidget { public:     Form()     {         QVBoxLayout * v = new QVBoxLayout( this );         QFrame * f = new QFrame( this );         f->setFrameStyle( QFrame::Panel | QFrame::Sunken );         QHBoxLayout * h = new QHBoxLayout( f );         v->addWidget( f );         QLabel * label = new QLabel( "Resizable Text Field", f );         label->setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed );         h->addWidget( label );         Text * text = new Text( f );         h->addWidget( text );         QSpacerItem * s = new QSpacerItem( 10, 10, QSizePolicy::Fixed,             QSizePolicy::Expanding );         v->addItem( s );         resize( 800, 800 );     }     virtual ~Form()     {     } }; int main( int argc, char ** argv ) {     QApplication app( argc, argv );     Form f;     f.show();     return app.exec(); } On 15.04.2018 19:30, Alexander Semke wrote: > Hi Igor, > >> As a possible solution: >> [...] > Works now. I pushed a modified version of your code to our repository in > https://cgit.kde.org/labplot.git/commit/? > id=1cacf9f095b5e850baa58584b071986fbfe790fb > > > The only problem now is that the entered text is not shown in TextEdit with > this new class. The text changes are accepted, but nothing is shown. Any idea > here? > > > Regards, > Alexander > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest From igor.mironchik at gmail.com Sun Apr 15 19:08:14 2018 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Sun, 15 Apr 2018 20:08:14 +0300 Subject: [Interest] resizable QTextEdit In-Reply-To: <2429079.A516sDkASK@notebook> References: <507878632.l3FgfH1HEP@notebook> <26743358.crTkmrpuH8@notebook> <2429079.A516sDkASK@notebook> Message-ID: <1fea118d-ef9c-10c9-c2d7-ba41098cdf60@gmail.com> Hi, On 15.04.2018 19:30, Alexander Semke wrote: > Hi Igor, > >> As a possible solution: >> [...] > Works now. I pushed a modified version of your code to our repository in > https://cgit.kde.org/labplot.git/commit/? > id=1cacf9f095b5e850baa58584b071986fbfe790fb > > > The only problem now is that the entered text is not shown in TextEdit with > this new class. The text changes are accepted, but nothing is shown. Any idea > here? The problem was in Text::resizeEvent(). I forgot to invoke base implementation, i.e. QTextEdit::resizeEvent(). > > > Regards, > Alexander > > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest From alexander.semke at web.de Sun Apr 15 19:12:36 2018 From: alexander.semke at web.de (Alexander Semke) Date: Sun, 15 Apr 2018 19:12:36 +0200 Subject: [Interest] resizable QTextEdit In-Reply-To: <1fea118d-ef9c-10c9-c2d7-ba41098cdf60@gmail.com> References: <507878632.l3FgfH1HEP@notebook> <2429079.A516sDkASK@notebook> <1fea118d-ef9c-10c9-c2d7-ba41098cdf60@gmail.com> Message-ID: <7905734.ZAAp2JnnzQ@notebook> On Sonntag, 15. April 2018 19:08:14 CEST Igor Mironchik wrote: > > The only problem now is that the entered text is not shown in TextEdit > > with > > this new class. The text changes are accepted, but nothing is shown. Any > > idea here? > > The problem was in Text::resizeEvent(). I forgot to invoke base > implementation, i.e. QTextEdit::resizeEvent(). This fixes the problem, thanks! -- Alexander From private at bernhard-lindner.de Mon Apr 16 15:57:06 2018 From: private at bernhard-lindner.de (Bernhard Lindner) Date: Mon, 16 Apr 2018 15:57:06 +0200 Subject: [Interest] Qt cross plattform installer, offline configuration Message-ID: <1523887026.13893.28.camel@bernhard-lindner.de> Hi! I am currently reviewing different ways of creating cross plattform installers for Qt applications (Windows and Linux mainly). The installers shall work in a classical way, i.e. they shall: 1. work completely offline 2. install no maintenance tool 3. support installing and removing the application 4. be able to do an offline update by running a newer installer 5. work without additional RTEs (like Java) I consider this a very basic configuration. Still it seems that the Qt Installer Framework is unable to provide 2. and 4. At least from what I read in the documentation, in the Qt bug tracker and in the web, such configuration isn't supported. Maybe that information is not up-to-date. It seems hard to believe that such a basic configuration should be a problem. Regarding the maintenance tool, there seems to be no opt-out config switch. Regarding offline-upgrade, the installers seem to refuse installing into existing application folders. Is it correct that the above isn't officially supported by the Qt IF? -- Regards, Bernhard -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: This is a digitally signed message part URL: From Maurice.Kalinowski at qt.io Mon Apr 16 17:18:47 2018 From: Maurice.Kalinowski at qt.io (Maurice Kalinowski) Date: Mon, 16 Apr 2018 15:18:47 +0000 Subject: [Interest] Qt cross plattform installer, offline configuration In-Reply-To: <1523887026.13893.28.camel@bernhard-lindner.de> References: <1523887026.13893.28.camel@bernhard-lindner.de> Message-ID: > -----Ursprüngliche Nachricht----- > Von: Interest Im > Auftrag von Bernhard Lindner > Gesendet: Monday, April 16, 2018 3:57 PM > An: interest at qt-project.org > Betreff: [Interest] Qt cross plattform installer, offline configuration > > Hi! > > I am currently reviewing different ways of creating cross plattform installers for > Qt applications (Windows and Linux mainly). > > The installers shall work in a classical way, i.e. they shall: > 1. work completely offline > 2. install no maintenance tool > 3. support installing and removing the application 4. be able to do an offline > update by running a newer installer 5. work without additional RTEs (like Java) > > I consider this a very basic configuration. Still it seems that the Qt Installer > Framework is unable to provide 2. and 4. > > At least from what I read in the documentation, in the Qt bug tracker and in > the web, such configuration isn't supported. > Maybe that information is not up-to-date. It seems hard to believe that such a > basic configuration should be a problem. > [Kalinowski Maurice] How do you want to "remove the application" without any type of application? In its simplest format, that is what the maintenance tool does. You can also call in "uninstall" if that is all you want it to do. In regards to 4, that is possible with the Installer Framework, but I remember this to be an undocumented feature. I suggest to check the source code for that, specifically where the update location / repository is specified. That can be a folder on your local disk. Rejecting to install into an existing directory is a default setting, I do not fully remember whether there is an option to disable that. BR, Maurice From private at bernhard-lindner.de Mon Apr 16 18:19:18 2018 From: private at bernhard-lindner.de (Bernhard Lindner) Date: Mon, 16 Apr 2018 18:19:18 +0200 Subject: [Interest] Qt cross plattform installer, offline configuration In-Reply-To: References: <1523887026.13893.28.camel@bernhard-lindner.de> Message-ID: <1523895558.13893.52.camel@bernhard-lindner.de> Hi! > How do you want to "remove the application" without any type of > application? In its simplest format, that is what the maintenance > tool does. You can also call in "uninstall" if that is all you want > it to do. Well, the installer itself should provide the function for removal/uninstall. If the installer doesn't find an existing installation it should provide Install operation only. If it finds an existing installationen, it should provide uninstall operation. If it finds an outdated installation it should provide Update operation. I know Maintenance tool does this, however I would like to avoid the installation of additional maintenance tool. I would prefer the old- school way... implementing the maintenance and deplayoment features in the installer and the application. > In regards to 4, that is possible with the Installer Framework, but I > remember this to be an undocumented feature. I suggest to check the > source code for that, specifically where the update location / > repository is specified. That can be a folder on your local disk. So the Maintenance tool would take the application from the local disk? Interesting idea. But how to put the application to the disk after installer has been started?  Also the maintenance tool would still be installed (but with a useless update function) wouldn't it? > Rejecting to install into an existing directory is a default setting, > I do not fully remember whether there is an option to disable that. What a pitty. Anyway, how can an offline update work without that feature? -- Regards, Bernhard -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: This is a digitally signed message part URL: From roland at logikalsolutions.com Tue Apr 17 02:16:43 2018 From: roland at logikalsolutions.com (Roland Hughes) Date: Mon, 16 Apr 2018 19:16:43 -0500 Subject: [Interest] USB support Message-ID: <2dbbbb15-dce8-eb19-6579-71dd9e810bb8@logikalsolutions.com> All, I know the answer may well be RTFD, but, has raw USB communications been more integrated or are the libusb examples from 2008 "current"? Thanks, Roland -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From thiago.macieira at intel.com Tue Apr 17 07:03:24 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Mon, 16 Apr 2018 22:03:24 -0700 Subject: [Interest] USB support In-Reply-To: <2dbbbb15-dce8-eb19-6579-71dd9e810bb8@logikalsolutions.com> References: <2dbbbb15-dce8-eb19-6579-71dd9e810bb8@logikalsolutions.com> Message-ID: <1885413.nOHoIrS9oR@tjmaciei-mobl1> On Monday, 16 April 2018 17:16:43 PDT Roland Hughes wrote: > All, > > I know the answer may well be RTFD, but, has raw USB communications been > more integrated or are the libusb examples from 2008 "current"? Nothing changed since 2008. You need to run as root anyway, so it's not a functionality you should expect to see in Qt any time soon. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From hamish at risingsoftware.com Tue Apr 17 12:33:12 2018 From: hamish at risingsoftware.com (Hamish Moffatt) Date: Tue, 17 Apr 2018 20:33:12 +1000 Subject: [Interest] Singleton application Message-ID: Is there any support built-in for making an application a singleton (ie you can't launch multiple instances), or does anyone have a recipe? I'd actually like a second launch to signal the first, passing on any parameters, much like the web browsers do. (eg link clicked from an application creates new tab in existing browser instance.). I need this to work on Windows and Mac. Hamish From asmaloney at gmail.com Tue Apr 17 12:36:17 2018 From: asmaloney at gmail.com (Andy) Date: Tue, 17 Apr 2018 06:36:17 -0400 Subject: [Interest] [Qt3D] Mixing Quick3D and C++ nodes In-Reply-To: References: Message-ID: Didn't get any response, so trying again. If I'm doing this incorrectly - how would I use QML for creating framegraphs and swap them into my QRenderSettings in C++? Thank you. --- Andy Maloney // https://asmaloney.com twitter ~ @asmaloney On Sun, Apr 8, 2018 at 1:57 PM, Andy wrote: > I want to move my framegraph from C++ to QML. My first step is to > reproduce what's already happening with the forward renderer. > > If I use a QQmlAspectEngine, should I be able to just swap out parts of > the node hierarchy for Quick3D nodes while leaving other parts C++? > > For example, here is the normal tree with a forward renderer & it works: > > Debug: Qt3DRender::QRenderSettings:: (:0, (null)) > Debug: Qt3DRender::QRenderCapture:: (:0, (null)) > Debug: Qt3DExtras::QForwardRenderer::Forward Renderer (:0, > (null)) > Debug: Qt3DRender::QRenderSurfaceSelector:: (:0, (null)) > Debug: Qt3DRender::QViewport:: (:0, (null)) > Debug: Qt3DRender::QCameraSelector:: (:0, (null)) > Debug: Qt3DRender::QClearBuffers:: (:0, (null)) > Debug: Qt3DRender::QFrustumCulling:: (:0, > (null)) > Debug: Qt3DRender::QFilterKey:: (:0, (null)) > > Then I switch out the C++ for the QML (and use setContextProperty() to > point at my C++ camera): > > Debug: Qt3DRender::QRenderSettings:: (:0, (null)) > Debug: Qt3DRender::QRenderCapture:: (:0, (null)) > Debug: Qt3DRender::Render::Quick::Quick3DTechniqueFilter:: > (:0, (null)) > Debug: Qt3DCore::Quick::Quick3DNodeV9:: (:0, (null)) > Debug: Qt3DRender::QRenderSurfaceSelector:: (:0, (null)) > Debug: Qt3DCore::Quick::Quick3DNodeV9:: (:0, (null)) > Debug: Qt3DRender::Render::Quick::Quick3DViewport:: > (:0, (null)) > Debug: Qt3DCore::Quick::Quick3DNodeV9:: (:0, > (null)) > Debug: Qt3DCore::Quick::Quick3DNode:: (:0, > (null)) [Note: this is the CameraSelector/camera] > Debug: Qt3DCore::Quick::Quick3DNode:: (:0, > (null)) > Debug: Qt3DRender::QClearBuffers:: (:0, (null)) > Debug: Qt3DCore::Quick::Quick3DNodeV9:: > (:0, (null)) > Debug: Qt3DRender::QFrustumCulling:: (:0, > (null)) > Debug: Qt3DRender::Render::Quick::Quick3DRenderPassFilter:: > (:0, (null)) > Debug: Qt3DRender::Render::Quick::Quick3DRenderPassFilter:: > (:0, (null)) > Debug: Qt3DRender::QFilterKey:: (:0, (null)) > > This doesn't work - doesn't render anything - am I supposed to be able to > do this? If so is there anything else I'm supposed to do to tell the engine > to use both? > > (I'm using Qt 5.10.1 on macOS.) > > Thank you for any insights. > > --- > Andy Maloney // https://asmaloney.com > twitter ~ @asmaloney > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From nikolai at nand.bg Tue Apr 17 12:42:32 2018 From: nikolai at nand.bg (Nikolai Tasev) Date: Tue, 17 Apr 2018 13:42:32 +0300 Subject: [Interest] Singleton application In-Reply-To: References: Message-ID: <8b8f8fbd-70fa-ddd3-84a2-9e98d68ec679@nand.bg> Hi Hamish, There was a qt-solutions class for this QSingleApplication but I think it disappeared in Qt5. I don't remember being able to pass anything to the first started process. Doing a google search gave me this derivative https://github.com/itay-grudev/SingleApplication Best Regards Nikolai Tasev On 4/17/2018 1:33 PM, Hamish Moffatt wrote: > Is there any support built-in for making an application a singleton > (ie you can't launch multiple instances), or does anyone have a recipe? > > I'd actually like a second launch to signal the first, passing on any > parameters, much like the web browsers do. (eg link clicked from an > application creates new tab in existing browser instance.). > > I need this to work on Windows and Mac. > > > Hamish > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > From giuseppe.dangelo at kdab.com Tue Apr 17 13:07:39 2018 From: giuseppe.dangelo at kdab.com (Giuseppe D'Angelo) Date: Tue, 17 Apr 2018 13:07:39 +0200 Subject: [Interest] Singleton application In-Reply-To: <8b8f8fbd-70fa-ddd3-84a2-9e98d68ec679@nand.bg> References: <8b8f8fbd-70fa-ddd3-84a2-9e98d68ec679@nand.bg> Message-ID: <68d4d80f-5bcb-7874-8a2d-1a3697c8ff28@kdab.com> Hello, On 17/04/18 12:42, Nikolai Tasev wrote: > There was a qt-solutions class for this QSingleApplication but I think > it disappeared in Qt5. I don't remember being able to pass anything to > the first started process. > Doing a google search gave me this derivative > https://github.com/itay-grudev/SingleApplication There's some work in progress to revive that in Qt itself, see > https://codereview.qt-project.org/#/c/187126/ The patch is not done yet but with a bit of luck it may land in Qt 5.12. Hope this helps, -- Giuseppe D'Angelo | giuseppe.dangelo at kdab.com | Senior Software Engineer KDAB (France) S.A.S., a KDAB Group company Tel. France +33 (0)4 90 84 08 53, http://www.kdab.com KDAB - The Qt, C++ and OpenGL Experts -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4007 bytes Desc: S/MIME Cryptographic Signature URL: From samuel.gaist at edeltech.ch Tue Apr 17 14:26:24 2018 From: samuel.gaist at edeltech.ch (Samuel Gaist) Date: Tue, 17 Apr 2018 14:26:24 +0200 Subject: [Interest] Singleton application In-Reply-To: References: Message-ID: <6AA962D5-C018-4200-9764-F61CCC00678F@edeltech.ch> > On 17 Apr 2018, at 12:33, Hamish Moffatt wrote: > > Is there any support built-in for making an application a singleton (ie you can't launch multiple instances), or does anyone have a recipe? > > I'd actually like a second launch to signal the first, passing on any parameters, much like the web browsers do. (eg link clicked from an application creates new tab in existing browser instance.). > > I need this to work on Windows and Mac. > > > Hamish > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest Hi, Just in case, the qtsolution module is available at http://code.qt.io/cgit/qt-solutions/qt-solutions.git/ with build fixes for Qt 5. The QtSingleApplication module is working with Qt 5. However it doesn’t provide support for QGuiApplication but it’s not hard to add it if needed. Cheers Samuel -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: Message signed with OpenPGP URL: From william.crocker at analog.com Tue Apr 17 16:08:30 2018 From: william.crocker at analog.com (Bill Crocker) Date: Tue, 17 Apr 2018 10:08:30 -0400 Subject: [Interest] QSettings problem. Message-ID: <5AD5FFDE.1080502@analog.com> Hello: I have several users which are experiencing a problem using my app, which uses QSettings. It appears that sometimes the underlying settings configuration file is does not appear to exist and the QSettings system resets back to the beginning of time, loosing all settings. All of my users run on virtual machines and have home directories across NFS on Netapp based file servers. We experienced this problem many years ago with non-Qt apps. You call the 'C' library open function and it behaves as if the file does not exists. Investigation showed that in many cases, the file really did exist and was completely readable. The solution (as stupid as it sounds) was to stat() (sys/stat.h) a file which did not appear to exist and then try to open it again. In all cases, if the file really does exist, it will then open. FILE *fd = fopen(file_name); if( ! fd ) { /* int sz = */ file_size(file_name); // file_size uses stat() fd = fopen(file_name); } Problem solved in my other apps. Rhetorical: Is this a Netapp issue, Is this an NFS issue. Is this an issue with how we are using Netapp, NFS, Virtual machines... There are too many people to blame and too many opportunities for finger pointing. It was not practical to pursue any of that. Dear Qt: It is not a perfect world. So, how do I fix my QSettings problem. Thanks. Bill From roland at logikalsolutions.com Tue Apr 17 16:39:26 2018 From: roland at logikalsolutions.com (Roland Hughes) Date: Tue, 17 Apr 2018 09:39:26 -0500 Subject: [Interest] USB support In-Reply-To: References: Message-ID: <336b9c07-8ea2-6f69-ecec-cdebfdc08976@logikalsolutions.com> On 04/17/2018 09:15 AM, Thiago Macieira wrote: > On Monday, 16 April 2018 17:16:43 PDT Roland Hughes wrote: >> All, >> >> I know the answer may well be RTFD, but, has raw USB communications been >> more integrated or are the libusb examples from 2008 "current"? > Nothing changed since 2008. You need to run as root anyway, so it's not a > functionality you should expect to see in Qt any time soon. Interesting. I don't see any mention of needing to be root here: http://www.dreamincode.net/forums/topic/148707-introduction-to-using-libusb-10/ And the current "official" site http://libusb.info It is user-mode: No special privilege or elevation is required for the application to communicate with a device. Of course, root, for an embedded system, isn't much of an issue. One would think that being a member of plugdev would give you USB access much like being a member of dialout gives you access to serial port. It does appear there should be some kind of support already there if one built the webengine roland at roland-I5-HP-Compaq-8300-Elite-SFF-PC:/$ sudo find -iname libusb ./home/roland/qt5.7.1/qt-everywhere-opensource-src-5.7.1/qtwebengine/src/3rdparty/chromium/third_party/libusb ./home/roland/qt5.7.1/qt-everywhere-opensource-src-5.7.1/qtwebengine/src/3rdparty/chromium/third_party/libusb/src/libusb Not sure if that is still around in 5.xx or 6.x but 5.7.1 appears to have included libusb 1.0.17 /* This file is parsed by m4 and windres and RC.EXE so please keep it simple. */ #include "version_nano.h" #ifndef LIBUSB_MAJOR #define LIBUSB_MAJOR 1 #endif #ifndef LIBUSB_MINOR #define LIBUSB_MINOR 0 #endif #ifndef LIBUSB_MICRO #define LIBUSB_MICRO 17 #endif #ifndef LIBUSB_NANO #define LIBUSB_NANO 0 #endif /* LIBUSB_RC is the release candidate suffix. Should normally be empty. */ #ifndef LIBUSB_RC #define LIBUSB_RC "" #endif ah https://github.com/libusb/libusb/wiki/FAQ#Can_I_run_libusb_applications_on_Linux_without_root_privilege Can I run libusb applications on Linux without root privilege? Yes. The standard solution is to use udev rules. Here are some links to udev related websites. * udev homepage * Debian's udev overview * Writing udev rules * Proper place to ask questions about udev rules Should prove to be an interesting experiment. I imagine a few dozen people have written their own QObject based wrapper class for that library but getting code contributed is monumentally impossible so they are all one-offs. -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From thiago.macieira at intel.com Tue Apr 17 17:35:41 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Tue, 17 Apr 2018 08:35:41 -0700 Subject: [Interest] QSettings problem. In-Reply-To: <5AD5FFDE.1080502@analog.com> References: <5AD5FFDE.1080502@analog.com> Message-ID: <2295702.zjeMvU5Rp8@tjmaciei-mobl1> On Tuesday, 17 April 2018 07:08:30 PDT Bill Crocker wrote: > Rhetorical: Is this a Netapp issue, Is this an NFS issue. Is this an > issue with how we are using Netapp, NFS, Virtual machines... > There are too many people to blame and too many opportunities for finger > pointing. It was not practical to pursue any of that. > > Dear Qt: It is not a perfect world. > > So, how do I fix my QSettings problem. Fix your filesystem. Qt is not going to be the only case that will fail with this. Stat-before-open is usually frowned upon and avoided if it can be avoided, since it allows introducing TOCTOU types of errors and, worse, security issues. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From john at wavemetrics.com Tue Apr 17 19:51:15 2018 From: john at wavemetrics.com (John Weeks) Date: Tue, 17 Apr 2018 10:51:15 -0700 Subject: [Interest] Singleton application In-Reply-To: <6AA962D5-C018-4200-9764-F61CCC00678F@edeltech.ch> References: <6AA962D5-C018-4200-9764-F61CCC00678F@edeltech.ch> Message-ID: We derive our application from QtSingleApplication (it derives from QApplication). We acquired the code some time ago, no doubt URLs have changed since then... We are presently using Qt 5.9.5. I had compile errors when I first downloaded it, described in https://bugreports.qt.io/browse/QTSOLBUG-171. I see this in my bug report: I cloned it from http://qt.gitorious.org/qt-solutions August 6, 2013. Five years later it's still working for us. -John Weeks > On Apr 17, 2018, at 5:26 AM, Samuel Gaist wrote: > > >> On 17 Apr 2018, at 12:33, Hamish Moffatt wrote: >> >> Is there any support built-in for making an application a singleton (ie you can't launch multiple instances), or does anyone have a recipe? >> >> I'd actually like a second launch to signal the first, passing on any parameters, much like the web browsers do. (eg link clicked from an application creates new tab in existing browser instance.). >> >> I need this to work on Windows and Mac. >> >> >> Hamish >> >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest > > > Hi, > > Just in case, the qtsolution module is available at http://code.qt.io/cgit/qt-solutions/qt-solutions.git/ with build fixes for Qt 5. > > The QtSingleApplication module is working with Qt 5. However it doesn’t provide support for QGuiApplication but it’s not hard to add it if needed. > > Cheers > Samuel > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest From 1baldgeek at gmail.com Tue Apr 17 20:00:09 2018 From: 1baldgeek at gmail.com (Dan Riegsecker) Date: Tue, 17 Apr 2018 14:00:09 -0400 Subject: [Interest] Singleton application In-Reply-To: References: <6AA962D5-C018-4200-9764-F61CCC00678F@edeltech.ch> Message-ID: Have a look at SingleApplication on GitHub. https://github.com/itay-grudev/SingleApplication Thanks, Dan On Tue, Apr 17, 2018 at 1:51 PM, John Weeks wrote: > We derive our application from QtSingleApplication (it derives from > QApplication). We acquired the code some time ago, no doubt URLs have > changed since then... We are presently using Qt 5.9.5. I had compile errors > when I first downloaded it, described in https://bugreports.qt.io/ > browse/QTSOLBUG-171. I see this in my bug report: > > I cloned it from http://qt.gitorious.org/qt-solutions August 6, 2013. > > Five years later it's still working for us. > > -John Weeks > > > On Apr 17, 2018, at 5:26 AM, Samuel Gaist > wrote: > > > > > >> On 17 Apr 2018, at 12:33, Hamish Moffatt > wrote: > >> > >> Is there any support built-in for making an application a singleton (ie > you can't launch multiple instances), or does anyone have a recipe? > >> > >> I'd actually like a second launch to signal the first, passing on any > parameters, much like the web browsers do. (eg link clicked from an > application creates new tab in existing browser instance.). > >> > >> I need this to work on Windows and Mac. > >> > >> > >> Hamish > >> > >> _______________________________________________ > >> Interest mailing list > >> Interest at qt-project.org > >> http://lists.qt-project.org/mailman/listinfo/interest > > > > > > Hi, > > > > Just in case, the qtsolution module is available at > http://code.qt.io/cgit/qt-solutions/qt-solutions.git/ with build fixes > for Qt 5. > > > > The QtSingleApplication module is working with Qt 5. However it doesn’t > provide support for QGuiApplication but it’s not hard to add it if needed. > > > > Cheers > > Samuel > > _______________________________________________ > > 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 Tue Apr 17 20:19:41 2018 From: jhihn at gmx.com (Jason H) Date: Tue, 17 Apr 2018 20:19:41 +0200 Subject: [Interest] QSettings problem. In-Reply-To: <5AD5FFDE.1080502@analog.com> References: <5AD5FFDE.1080502@analog.com> Message-ID: The way I solve slow-disk oriented issues is with atomic operations. They dirty little hack I use is to write to a file then remove & rename, which is about as atomic as you can get. Watch out that your temp location and your running location are on the same partition, else it downgrades to a copy operation. This would only help if you're reading partially written files. It would not surprise me if the issue is too many files open on your file server. Perhaps the reason fopen() fails but stat() works is because one uses a file descriptor and the other doesn't? > Sent: Tuesday, April 17, 2018 at 10:08 AM > From: "Bill Crocker" > To: "interest at qt-project.org" > Subject: [Interest] QSettings problem. > > Hello: > > I have several users which are experiencing a problem > using my app, which uses QSettings. > > It appears that sometimes the underlying settings configuration > file is does not appear to exist and the QSettings system resets > back to the beginning of time, loosing all settings. > > All of my users run on virtual machines and have home directories > across NFS on Netapp based file servers. > > We experienced this problem many years ago with non-Qt apps. > > You call the 'C' library open function > and it behaves as if the file does not exists. > Investigation showed that in many cases, the file really did exist > and was completely readable. > > The solution (as stupid as it sounds) was to stat() (sys/stat.h) a file > which did not appear to exist and then try to open it again. > In all cases, if the file really does exist, it will then open. > > FILE *fd = fopen(file_name); > if( ! fd ) { > /* int sz = */ file_size(file_name); // file_size uses stat() > fd = fopen(file_name); > } > > Problem solved in my other apps. > > Rhetorical: Is this a Netapp issue, Is this an NFS issue. Is this an > issue with how we are using Netapp, NFS, Virtual machines... > There are too many people to blame and too many opportunities for finger pointing. > It was not practical to pursue any of that. > > Dear Qt: It is not a perfect world. > > So, how do I fix my QSettings problem. > > Thanks. > > Bill > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > From godboutj at amotus.ca Wed Apr 18 00:43:56 2018 From: godboutj at amotus.ca (=?iso-8859-1?Q?J=E9r=F4me_Godbout?=) Date: Tue, 17 Apr 2018 22:43:56 +0000 Subject: [Interest] QtCreator Debugger not breaking into C++ Message-ID: Debugger not breaking into C++ for Android project (both under OS X and Windows): For some reason I don't get, if I display the modules panel when debugging, I stop the debugger, then I use contextual menu on modules windows and click Load Symbols for All Modules and run again the breakpoints are activated no problems. How does one avoid doing this or make the symbols load by default (the debug info is clearly generated, since the breakpoints work after that and I can step into my code. What can prevent the symbols from loading into debug session? Is there an option somewhere that I must specify to automatically load symbols when staring debug session? [1515684621069_logo.png] Jérôme Godbout 2992 chemin Sainte-Foy Quebec, Canada G1X1P6 tel: +1 (581) 777-0050 email: godboutj at amotus.ca web: www.amotus-solutions.com -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Outlook-1515684621.png Type: image/png Size: 15038 bytes Desc: Outlook-1515684621.png URL: From konrad at silmor.de Wed Apr 18 11:32:56 2018 From: konrad at silmor.de (Konrad Rosenbaum) Date: Wed, 18 Apr 2018 11:32:56 +0200 Subject: [Interest] USB support In-Reply-To: <336b9c07-8ea2-6f69-ecec-cdebfdc08976@logikalsolutions.com> References: <336b9c07-8ea2-6f69-ecec-cdebfdc08976@logikalsolutions.com> Message-ID: <31ebeb3db2889a035e35dfdc7f1cdd96.squirrel@squirrel.six.silmor.de> Hi, On Tue, April 17, 2018 16:39, Roland Hughes wrote: > On 04/17/2018 09:15 AM, Thiago Macieira wrote: >> On Monday, 16 April 2018 17:16:43 PDT Roland Hughes wrote: >>> I know the answer may well be RTFD, but, has raw USB communications >>> been >>> more integrated or are the libusb examples from 2008 "current"? >> Nothing changed since 2008. You need to run as root anyway, so it's not >> a >> functionality you should expect to see in Qt any time soon. > Interesting. > > I don't see any mention of needing to be root here: > And the current "official" site http://libusb.info > It is user-mode: No special privilege or elevation is required for the > application to communicate with a device. You have 2 options: a) be root, b) setup a udev rule to make the USB device accessible to other users. I leave the task of guessing which one is recommended and which one happens most often in practice up to you as a practice. ;-) > Of course, root, for an embedded system, isn't much of an issue. Yes, it is. You can destroy the device as root. UIs or complicated calculations should never run as root. > One > would think that being a member of plugdev would give you USB access > much like being a member of dialout gives you access to serial port. One would think. But one would often be wrong. > It does appear there should be some kind of support already there if one > built the webengine Just because WebEngine uses it does not mean you get a public API from there. It actually means there is potential trouble since you may be running with 2 instances of libusb. > Can I run libusb applications on Linux without root privilege? > > Yes. > The standard solution is to use udev rules. Here are some links to udev > related websites. Correct. It is pretty easy, once you've read a few of those files. > Should prove to be an interesting experiment. I imagine a few dozen > people have written their own QObject based wrapper class for that > library but getting code contributed is monumentally impossible so they > are all one-offs. ...and they are likely very project dependent. Konrad From isaiah.norton at gmail.com Wed Apr 18 16:39:38 2018 From: isaiah.norton at gmail.com (Isaiah Norton) Date: Wed, 18 Apr 2018 10:39:38 -0400 Subject: [Interest] Option for ./configure to fail when missing webengine prerequisites? Message-ID: Hi. I would like to have ./configure fail when prerequisites for webengine are not found. This is on Ubuntu 16.04. Currently I am using: ./configure -release -opensource -confirm-license -c++std c++11 \ -nomake examples -nomake tests -no-rpath -silent qtwebengine was missing from the resulting build, apparently having been skipped during configure because I was missing some set of libraries. I've tried `-make webengine`, `-make qtwebengine` and some other guesses, to try to force webengine as an essential module, but those options don't exist. How do I make configure error out when webengine *won't* be built? (ps: I found what I needed for the dependency issue... But what I want is to provide a model `./configure` command line that will fail-fast for our end users, so that they don't build a Qt library that is missing webengine -- a dependency for our application. Seems like homebrew has had the same problem: https://github.com/Homebrew/homebrew-core/pull/ 2087#issuecomment-231960871) Thanks, Isaiah -------------- next part -------------- An HTML attachment was scrubbed... URL: From thiago.macieira at intel.com Wed Apr 18 17:05:44 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Wed, 18 Apr 2018 08:05:44 -0700 Subject: [Interest] Option for ./configure to fail when missing webengine prerequisites? In-Reply-To: References: Message-ID: <1952934.vMKLYOUEss@tjmaciei-mobl1> On Wednesday, 18 April 2018 07:39:38 PDT Isaiah Norton wrote: > How do I make configure error out when webengine *won't* be built? There's no such option. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From roland at logikalsolutions.com Wed Apr 18 18:42:49 2018 From: roland at logikalsolutions.com (Roland Hughes) Date: Wed, 18 Apr 2018 11:42:49 -0500 Subject: [Interest] QtCreator oddity Message-ID: All, KDE Neon all updates applied. QtCreator 4.4.1  Qt 5.9.3 from repos. Also installed libusb packages from repos. roland at roland-I5-HP-Compaq-8300-Elite-SFF-PC:~$ ls /usr/include/libusb-1.0/ libusb.h When typing in the editor and compiling, libusb.h is not found. Other headers from other directories in /usr/include are found, but not libusb.h. If I force QtCreator to look at it via INCLUDEPATH +=/usr/include/libusb-1.0 in the .pro file, all is well. I assume there is a bug when it comes to directories with "." in the name. Just passing this along. -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From annulen at yandex.ru Wed Apr 18 18:52:16 2018 From: annulen at yandex.ru (Konstantin Tokarev) Date: Wed, 18 Apr 2018 19:52:16 +0300 Subject: [Interest] QtCreator oddity In-Reply-To: References: Message-ID: <608521524070336@web38j.yandex.ru> 18.04.2018, 19:43, "Roland Hughes" : > All, > > KDE Neon all updates applied. QtCreator 4.4.1  Qt 5.9.3 from repos. Also installed libusb packages from repos. > > roland at roland-I5-HP-Compaq-8300-Elite-SFF-PC:~$ ls /usr/include/libusb-1.0/ > > libusb.h > > When typing in the editor and compiling, libusb.h is not found. Other headers from other directories in /usr/include are found, but not libusb.h. If I force QtCreator to look at it via > > INCLUDEPATH +=/usr/include/libusb-1.0 > > in the .pro file, all is well. I assume there is a bug when it comes to directories with "." in the name. Just passing this along. This is expected behavior. Unlike /usr/include, /usr/include/libusb-1.0 is not in default search path of compiler, so you have to add it explicitly > > -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com > , > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest --  Regards, Konstantin From roland at logikalsolutions.com Wed Apr 18 19:03:45 2018 From: roland at logikalsolutions.com (Roland Hughes) Date: Wed, 18 Apr 2018 12:03:45 -0500 Subject: [Interest] QtCreator oddity In-Reply-To: <608521524070336@web38j.yandex.ru> References: <608521524070336@web38j.yandex.ru> Message-ID: <52f7545e-8749-cb10-7928-b0b242c0bbde@logikalsolutions.com> On 04/18/2018 11:52 AM, Konstantin Tokarev wrote: > > 18.04.2018, 19:43, "Roland Hughes" : >> All, >> >> KDE Neon all updates applied. QtCreator 4.4.1  Qt 5.9.3 from repos. Also installed libusb packages from repos. >> >> roland at roland-I5-HP-Compaq-8300-Elite-SFF-PC:~$ ls /usr/include/libusb-1.0/ >> >> libusb.h >> >> When typing in the editor and compiling, libusb.h is not found. Other headers from other directories in /usr/include are found, but not libusb.h. If I force QtCreator to look at it via >> >> INCLUDEPATH +=/usr/include/libusb-1.0 >> >> in the .pro file, all is well. I assume there is a bug when it comes to directories with "." in the name. Just passing this along. > This is expected behavior. Unlike /usr/include, /usr/include/libusb-1.0 is not in default search path of compiler, so you have to add it explicitly > I would buy that argument if postgresql and all of the other directories under /usr/include didn't work just fine. Either their packages add an entry where the compiler suddenly knows about them _or_ the directory tree under /usr/include is "walked." To test this theory I did the following: removed INCLUDEPATH from .pro file and saved cd /usr/include dir aa sudo mkdir aa sudo cp libusb-1.0/*.h aa Now typing #include From annulen at yandex.ru Wed Apr 18 19:18:05 2018 From: annulen at yandex.ru (Konstantin Tokarev) Date: Wed, 18 Apr 2018 20:18:05 +0300 Subject: [Interest] QtCreator oddity In-Reply-To: <52f7545e-8749-cb10-7928-b0b242c0bbde@logikalsolutions.com> References: <608521524070336@web38j.yandex.ru> <52f7545e-8749-cb10-7928-b0b242c0bbde@logikalsolutions.com> Message-ID: <1290821524071885@web22j.yandex.ru> 18.04.2018, 20:03, "Roland Hughes" : > On 04/18/2018 11:52 AM, Konstantin Tokarev wrote: >> 18.04.2018, 19:43, "Roland Hughes" : >>> All, KDE Neon all updates applied. QtCreator 4.4.1  Qt 5.9.3 from repos. Also installed libusb packages from repos. roland at roland-I5-HP-Compaq-8300-Elite-SFF-PC:~$ ls /usr/include/libusb-1.0/ libusb.h When typing in the editor and compiling, libusb.h is not found. Other headers from other directories in /usr/include are found, but not libusb.h. If I force QtCreator to look at it via INCLUDEPATH +=/usr/include/libusb-1.0 in the .pro file, all is well. I assume there is a bug when it comes to directories with "." in the name. Just passing this along. >> >> This is expected behavior. Unlike /usr/include, /usr/include/libusb-1.0 is not in default search path of compiler, so you have to add it explicitly > I would buy that argument if postgresql and all of the other directories under /usr/include didn't work just fine. Either their packages add an entry where the compiler suddenly knows about them _or_ the directory tree under /usr/include is "walked." Indeed, it seems like "libusb-1.0" entry is missing from autocomplete list when one starts typing #include Feel free to create a bug report on this > > To test this theory I did the following: > removed INCLUDEPATH from .pro file and saved > cd /usr/include > dir aa > sudo mkdir aa > sudo cp libusb-1.0/*.h aa > > Now typing > > #include > brings up the aa/ completion entry and libusb.h is found under it. > > This is a manually entered directory. To further test I did the following > > sudo mkdir a.a > sudo cp libusb-1.0/*.h a.a > dir > roland at roland-I5-HP-Compaq-8300-Elite-SFF-PC:/usr/include$ dir a.a > libusb.h > > typing #include > There appears to be a problem walking the directory tree when a directory name includes the "." > > Roland > > -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com --  Regards, Konstantin From roland at logikalsolutions.com Wed Apr 18 19:56:57 2018 From: roland at logikalsolutions.com (Roland Hughes) Date: Wed, 18 Apr 2018 12:56:57 -0500 Subject: [Interest] QtCreator oddity In-Reply-To: <1290821524071885@web22j.yandex.ru> References: <608521524070336@web38j.yandex.ru> <52f7545e-8749-cb10-7928-b0b242c0bbde@logikalsolutions.com> <1290821524071885@web22j.yandex.ru> Message-ID: On 04/18/2018 12:18 PM, Konstantin Tokarev wrote: > > 18.04.2018, 20:03, "Roland Hughes" : >> On 04/18/2018 11:52 AM, Konstantin Tokarev wrote: >>> 18.04.2018, 19:43, "Roland Hughes" : >>>> All, KDE Neon all updates applied. QtCreator 4.4.1  Qt 5.9.3 from repos. Also installed libusb packages from repos. roland at roland-I5-HP-Compaq-8300-Elite-SFF-PC:~$ ls /usr/include/libusb-1.0/ libusb.h When typing in the editor and compiling, libusb.h is not found. Other headers from other directories in /usr/include are found, but not libusb.h. If I force QtCreator to look at it via INCLUDEPATH +=/usr/include/libusb-1.0 in the .pro file, all is well. I assume there is a bug when it comes to directories with "." in the name. Just passing this along. >>> This is expected behavior. Unlike /usr/include, /usr/include/libusb-1.0 is not in default search path of compiler, so you have to add it explicitly >> I would buy that argument if postgresql and all of the other directories under /usr/include didn't work just fine. Either their packages add an entry where the compiler suddenly knows about them _or_ the directory tree under /usr/include is "walked." > Indeed, it seems like "libusb-1.0" entry is missing from autocomplete list when one starts typing > > #include > > Feel free to create a bug report on this > Yes, someone should report it as a bug. Your proposed solution doesn't allow the IDE to fully utilize the header. Current work arounds are to force the path in the .pro file or copy the header to a directory without a "." in the name. -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From thiago.macieira at intel.com Thu Apr 19 10:01:38 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Thu, 19 Apr 2018 01:01:38 -0700 Subject: [Interest] QtCreator oddity In-Reply-To: <1290821524071885@web22j.yandex.ru> References: <52f7545e-8749-cb10-7928-b0b242c0bbde@logikalsolutions.com> <1290821524071885@web22j.yandex.ru> Message-ID: <3923184.p44lCnvFAk@tjmaciei-mobl1> On Wednesday, 18 April 2018 10:18:05 PDT Konstantin Tokarev wrote: > #include DO NOT write that. The correct line for libusb is: #include If that file is not in your default search path, then add it to INCLUDEPATH or via pkg-config. PKGCONFIG += libusb-1.0 -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From nikita.cherniy at ibeo-as.com Thu Apr 19 11:06:54 2018 From: nikita.cherniy at ibeo-as.com (Nikita Cherniy) Date: Thu, 19 Apr 2018 09:06:54 +0000 Subject: [Interest] [Qt-Vulkan] Need a possibility to share not only VkInstance between QVulkanWindow but VkDevice as well. Message-ID: Hello, In our application we're using multiple windows for displaying a 3D content. The content should be the same but rendered differently. But each window have it's own physical and logical Vulkan devices which makes impossible to create a buffer which can be used by several windows. The example of where this is necessary is a dynamic geometry which needs to be sent to the gpu each frame. Now I have to create two buffers (in case of 2 windows), map them twice and send data twice. Best regards -- Nikita Cherniy -------------- next part -------------- An HTML attachment was scrubbed... URL: From smurphy at walbro.com Fri Apr 20 01:51:29 2018 From: smurphy at walbro.com (Murphy, Sean) Date: Thu, 19 Apr 2018 23:51:29 +0000 Subject: [Interest] QTableWidget::setCellWidget() overrides widget's palette? Message-ID: <548d2865c98943b788dbfb9998f6ce7e@walbro.com> I'm attempting to create a data view that plots sample data from different data sources using a QwtPlot embedded in a QTableWidget and I'm having a little trouble getting the plot's palette to hold after calling QTableWidget::setCellWidget. So the idea is one data source per row, with a plot and then some statistical data (min, max, mean, and standard deviation for now). I whipped up some sample code, and it works so far - I'm getting the plots inserted into the correct column of the table. The problem is that plot's palette isn't coming out the way I want it. I've attached a screenshot of what the my dataPlot class (which inherits from QwtPlot) looks like both when it's not embedded in a table cell (the upper half of the application), and what it looks like when it's in the table cell (lower half). It appears the color of the QwtPlotCurve's pen remains intact when putting plots in cells, but the plot canvas' background color is somehow getting over written. Any ideas on how to fix it? I've also attached the code. You'll need to download and compile Qwt (https://sourceforge.net/projects/qwt/files/qwt/6.1.3/) to attempt to build/run it, but I'm guessing that the issue would hold for any widget that is embedded into a QTableWidget's cell? I'm using: Qt 5.9.1 Qwt 6.1.3 Windows 7, 64 bit Sean This message has been scanned for malware by Forcepoint. www.forcepoint.com -------------- next part -------------- A non-text attachment was scrubbed... Name: 2018-04-19 19_36_39-Qwt CellWidget Test.png Type: image/png Size: 42319 bytes Desc: 2018-04-19 19_36_39-Qwt CellWidget Test.png URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: qwt_cellWidget_Test.zip Type: application/x-zip-compressed Size: 5678 bytes Desc: qwt_cellWidget_Test.zip URL: From elvstone at gmail.com Fri Apr 20 08:45:15 2018 From: elvstone at gmail.com (Elvis Stansvik) Date: Fri, 20 Apr 2018 08:45:15 +0200 Subject: [Interest] QTableWidget::setCellWidget() overrides widget's palette? In-Reply-To: <548d2865c98943b788dbfb9998f6ce7e@walbro.com> References: <548d2865c98943b788dbfb9998f6ce7e@walbro.com> Message-ID: Probably not your problem, but have you tried setAutoFillBackground(true) on your plot? I have that in one of my Qwt apps. Elvis Den 20 apr. 2018 1:51 fm skrev "Murphy, Sean" : > I'm attempting to create a data view that plots sample data from different > data sources using a QwtPlot embedded in a QTableWidget and I'm having a > little trouble getting the plot's palette to hold after calling > QTableWidget::setCellWidget. So the idea is one data source per row, with a > plot and then some statistical data (min, max, mean, and standard deviation > for now). I whipped up some sample code, and it works so far - I'm getting > the plots inserted into the correct column of the table. The problem is > that plot's palette isn't coming out the way I want it. > > I've attached a screenshot of what the my dataPlot class (which inherits > from QwtPlot) looks like both when it's not embedded in a table cell (the > upper half of the application), and what it looks like when it's in the > table cell (lower half). It appears the color of the QwtPlotCurve's pen > remains intact when putting plots in cells, but the plot canvas' background > color is somehow getting over written. Any ideas on how to fix it? > > I've also attached the code. You'll need to download and compile Qwt ( > https://sourceforge.net/projects/qwt/files/qwt/6.1.3/) to attempt to > build/run it, but I'm guessing that the issue would hold for any widget > that is embedded into a QTableWidget's cell? > > I'm using: > Qt 5.9.1 > Qwt 6.1.3 > Windows 7, 64 bit > > Sean > > > This message has been scanned for malware by Forcepoint. > www.forcepoint.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 danagnostak at gmail.com Fri Apr 20 13:33:00 2018 From: danagnostak at gmail.com (Dimitrios Anagnostakis) Date: Fri, 20 Apr 2018 12:33:00 +0100 Subject: [Interest] [interest] Problem with building basic shapes example Message-ID: Hi all, I've just installed the Qt 5.10.1 and tried to build and run the basic shapes example with some staff of Qt 3D but it's crashing returning the error: [image: 0_1524219866843_23cfdab8-bc9f-4d5f-8e8b-8b7fe4903c32-image.png] Previously I had version 5.9.1 and there was no problem. For building I use MSVC2015 64bit. see details below: [image: 0_1524220074121_539c7385-c471-46b4-8543-18a42eb7ad70-image.png] Please if you have any ideas for help, I would appreciate it very much. -------------- next part -------------- An HTML attachment was scrubbed... URL: From smurphy at walbro.com Fri Apr 20 14:07:18 2018 From: smurphy at walbro.com (Murphy, Sean) Date: Fri, 20 Apr 2018 12:07:18 +0000 Subject: [Interest] QTableWidget::setCellWidget() overrides widget's palette? In-Reply-To: References: <548d2865c98943b788dbfb9998f6ce7e@walbro.com> Message-ID: <82bdacf486094b0483509c4bae93c00d@walbro.com> > Probably not your problem, but have you tried setAutoFillBackground(true) on your plot? I have that in one of my Qwt apps. I think I did. I played around a lot with the following functions, but it's possible I didn't hit the right combination in the right location QTableWidget::setAutoFillBackground(true); QwtPlot::setAutoFillBackground(true); QwtPlot::setCanvasBackground(QBrush(QColor(50,50,50))); QwtPlot::canvas()->setAutoFilleBackground(true); But the issue only comes up with the plots that are embedded into the table. The standalone plot has the color palette I want, and the palette is being set in the plot class' constructor, so it should be the same palette for all 3 plots. Sean This message has been scanned for malware by Forcepoint. www.forcepoint.com From roland at logikalsolutions.com Fri Apr 20 14:19:40 2018 From: roland at logikalsolutions.com (Roland Hughes) Date: Fri, 20 Apr 2018 07:19:40 -0500 Subject: [Interest] QtCreator oddity In-Reply-To: References: Message-ID: On 04/20/2018 06:40 AM, Thiago Macieira wrote: > On Wednesday, 18 April 2018 10:18:05 PDT Konstantin Tokarev wrote: >> #include > DO NOT write that. The correct line for libusb is: > > #include > > If that file is not in your default search path, then add it to INCLUDEPATH or > via pkg-config. > > PKGCONFIG += libusb-1.0 The problem isn't the default search path. The problem is QtCreator cannot handle directories with a "." in their name underneath /usr/include. One has to force it in with INCLUDEPATH +=/usr/include/libusb-1.0 By default, everything under /usr/include should be found and, if the directory doesn't have a . in the name it is. -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From annulen at yandex.ru Fri Apr 20 14:55:26 2018 From: annulen at yandex.ru (Konstantin Tokarev) Date: Fri, 20 Apr 2018 15:55:26 +0300 Subject: [Interest] QtCreator oddity References: Message-ID: <4158941524228926@web2g.yandex.ru> 20.04.2018, 15:19, "Roland Hughes" : > On 04/20/2018 06:40 AM, Thiago Macieira wrote: >> On Wednesday, 18 April 2018 10:18:05 PDT Konstantin Tokarev wrote: >>> #include >> >> DO NOT write that. The correct line for libusb is: #include If that file is not in your default search path, then add it to INCLUDEPATH or via pkg-config. PKGCONFIG += libusb-1.0 > The problem isn't the default search path. The problem is QtCreator cannot handle directories with a "." in their name underneath /usr/include. One has to force it in with > > INCLUDEPATH +=/usr/include/libusb-1.0 There is no force here. You cannot #include unless compiler is provided with -I/usr/include/libusb-1.0 option instructing it to look in this directory. > > By default, everything under /usr/include should be found and, if the directory doesn't have a . in the name it is. > > -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com > , > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest --  Regards, Konstantin From roland at logikalsolutions.com Fri Apr 20 15:00:56 2018 From: roland at logikalsolutions.com (Roland Hughes) Date: Fri, 20 Apr 2018 08:00:56 -0500 Subject: [Interest] QtCreator oddity In-Reply-To: <4158941524228926@web2g.yandex.ru> References: <4158941524228926@web2g.yandex.ru> Message-ID: <6cd18569-24bc-aa94-7570-da94f03ef897@logikalsolutions.com> On 04/20/2018 07:55 AM, Konstantin Tokarev wrote: > > 20.04.2018, 15:19, "Roland Hughes" : >> On 04/20/2018 06:40 AM, Thiago Macieira wrote: >>> On Wednesday, 18 April 2018 10:18:05 PDT Konstantin Tokarev wrote: >>>> #include >>> DO NOT write that. The correct line for libusb is: #include If that file is not in your default search path, then add it to INCLUDEPATH or via pkg-config. PKGCONFIG += libusb-1.0 >> The problem isn't the default search path. The problem is QtCreator cannot handle directories with a "." in their name underneath /usr/include. One has to force it in with >> >> INCLUDEPATH +=/usr/include/libusb-1.0 > There is no force here. You cannot #include unless compiler is provided with -I/usr/include/libusb-1.0 option instructing it to look in this directory. > >> By default, everything under /usr/include should be found and, if the directory doesn't have a . in the name it is. >> >> -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com >> , >> >> Yes, there is a force here. Having to inform the environment about a directory underneath /usr/include is a force. By design all directories in that tree are searched. This is a bug. -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com From annulen at yandex.ru Fri Apr 20 15:04:43 2018 From: annulen at yandex.ru (Konstantin Tokarev) Date: Fri, 20 Apr 2018 16:04:43 +0300 Subject: [Interest] QtCreator oddity In-Reply-To: <6cd18569-24bc-aa94-7570-da94f03ef897@logikalsolutions.com> References: <4158941524228926@web2g.yandex.ru> <6cd18569-24bc-aa94-7570-da94f03ef897@logikalsolutions.com> Message-ID: <4210291524229483@web2g.yandex.ru> 20.04.2018, 16:01, "Roland Hughes" : > On 04/20/2018 07:55 AM, Konstantin Tokarev wrote: >>  20.04.2018, 15:19, "Roland Hughes" : >>>  On 04/20/2018 06:40 AM, Thiago Macieira wrote: >>>>  On Wednesday, 18 April 2018 10:18:05 PDT Konstantin Tokarev wrote: >>>>>  #include >>>>  DO NOT write that. The correct line for libusb is: #include If that file is not in your default search path, then add it to INCLUDEPATH or via pkg-config. PKGCONFIG += libusb-1.0 >>>  The problem isn't the default search path. The problem is QtCreator cannot handle directories with a "." in their name underneath /usr/include. One has to force it in with >>> >>>  INCLUDEPATH +=/usr/include/libusb-1.0 >>  There is no force here. You cannot #include unless compiler is provided with -I/usr/include/libusb-1.0 option instructing it to look in this directory. >> >>>  By default, everything under /usr/include should be found and, if the directory doesn't have a . in the name it is. >>> >>>  -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com >>>  , > > Yes, there is a force here. Having to inform the environment about a > directory underneath /usr/include is a force. By design all directories > in that tree are searched. Your understanding is wrong. Please read documentation of your compiler more carefully. > > This is a bug. > > -- > Roland Hughes, President > Logikal Solutions > (630)-205-1593 > > http://www.theminimumyouneedtoknow.com > http://www.infiniteexposure.net > http://www.johnsmith-book.com > http://www.logikalblog.com > http://www.interestingauthors.com/blog > http://lesedi.us/ > http://onedollarcontentstore.com -- Regards, Konstantin From christian.kandeler at qt.io Fri Apr 20 15:18:21 2018 From: christian.kandeler at qt.io (Christian Kandeler) Date: Fri, 20 Apr 2018 15:18:21 +0200 Subject: [Interest] QtCreator oddity In-Reply-To: <6cd18569-24bc-aa94-7570-da94f03ef897@logikalsolutions.com> References: <4158941524228926@web2g.yandex.ru> <6cd18569-24bc-aa94-7570-da94f03ef897@logikalsolutions.com> Message-ID: <20180420151821.0d827790@ckandeler-archlinux> On Fri, 20 Apr 2018 08:00:56 -0500 Roland Hughes wrote: > Yes, there is a force here. Having to inform the environment about a > directory underneath /usr/include is a force. By design all directories > in that tree are searched. What makes you think that? Christian From danagnostak at gmail.com Fri Apr 20 15:21:34 2018 From: danagnostak at gmail.com (Dimitris Anagnostakis) Date: Fri, 20 Apr 2018 14:21:34 +0100 Subject: [Interest] [interest] Problem with building basic shapes example Message-ID: <000001d3d8aa$836dd6d0$8a498470$@gmail.com> Hi all, I've just installed the Qt 5.10.1 and tried to build and run the basic shapes example with some staff of Qt 3D but it's crashing returning the error: Previously I had version 5.9.1 and there was no problem. For building I use MSVC2015 64bit. see details below: Please if you have any ideas for help, I would appreciate it very much. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.png Type: image/png Size: 9814 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image002.png Type: image/png Size: 34734 bytes Desc: not available URL: From thiago.macieira at intel.com Fri Apr 20 17:10:44 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Fri, 20 Apr 2018 08:10:44 -0700 Subject: [Interest] QtCreator oddity In-Reply-To: References: Message-ID: <7078980.nGvZ6QCoB0@tjmaciei-mobl1> On Friday, 20 April 2018 05:19:40 PDT Roland Hughes wrote: > > DO NOT write that. The correct line for libusb is: > > > > #include > > > > If that file is not in your default search path, then add it to > > INCLUDEPATH or via pkg-config. > > > > PKGCONFIG += libusb-1.0 > > The problem isn't the default search path. Yes, it is. You MUST choose one of the two solutions I gave above, or something that indirectly leads to them. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From elvstone at gmail.com Fri Apr 20 21:06:14 2018 From: elvstone at gmail.com (Elvis Stansvik) Date: Fri, 20 Apr 2018 21:06:14 +0200 Subject: [Interest] QTableWidget::setCellWidget() overrides widget's palette? In-Reply-To: <82bdacf486094b0483509c4bae93c00d@walbro.com> References: <548d2865c98943b788dbfb9998f6ce7e@walbro.com> <82bdacf486094b0483509c4bae93c00d@walbro.com> Message-ID: 2018-04-20 14:07 GMT+02:00 Murphy, Sean : >> Probably not your problem, but have you tried setAutoFillBackground(true) on your plot? I have that in one of my Qwt apps. > > I think I did. I played around a lot with the following functions, but it's possible I didn't hit the right combination in the right location > QTableWidget::setAutoFillBackground(true); > QwtPlot::setAutoFillBackground(true); > QwtPlot::setCanvasBackground(QBrush(QColor(50,50,50))); > QwtPlot::canvas()->setAutoFilleBackground(true); > > But the issue only comes up with the plots that are embedded into the table. The standalone plot has the color palette I want, and > the palette is being set in the plot class' constructor, so it should be the same palette for all 3 plots. Yea, didn't think that was it. One ugly workaround I found that seems to work: auto palette = canvas()->palette(); palette.setBrush(QPalette::Base, QBrush(QColor(50,50,50))); canvas()->setPalette(palette); Instead of setCanvasBackground(QBrush(QColor(50,50,50))); Still don't understand why that won't work though. Elvis > > Sean > > > > > > This message has been scanned for malware by Forcepoint. www.forcepoint.com From roland at logikalsolutions.com Fri Apr 20 21:17:06 2018 From: roland at logikalsolutions.com (Roland Hughes) Date: Fri, 20 Apr 2018 14:17:06 -0500 Subject: [Interest] QtCreator oddity In-Reply-To: <4210291524229483@web2g.yandex.ru> References: <4158941524228926@web2g.yandex.ru> <6cd18569-24bc-aa94-7570-da94f03ef897@logikalsolutions.com> <4210291524229483@web2g.yandex.ru> Message-ID: <26c517dd-5e0b-3a28-8171-c8988177f831@logikalsolutions.com> On 04/20/2018 08:04 AM, Konstantin Tokarev wrote: > > 20.04.2018, 16:01, "Roland Hughes" : >> On 04/20/2018 07:55 AM, Konstantin Tokarev wrote: >>>  20.04.2018, 15:19, "Roland Hughes" : >>>>  On 04/20/2018 06:40 AM, Thiago Macieira wrote: >>>>>  On Wednesday, 18 April 2018 10:18:05 PDT Konstantin Tokarev wrote: >>>>>>  #include >>>>>  DO NOT write that. The correct line for libusb is: #include If that file is not in your default search path, then add it to INCLUDEPATH or via pkg-config. PKGCONFIG += libusb-1.0 >>>>  The problem isn't the default search path. The problem is QtCreator cannot handle directories with a "." in their name underneath /usr/include. One has to force it in with >>>> >>>>  INCLUDEPATH +=/usr/include/libusb-1.0 >>>  There is no force here. You cannot #include unless compiler is provided with -I/usr/include/libusb-1.0 option instructing it to look in this directory. >>> >>>>  By default, everything under /usr/include should be found and, if the directory doesn't have a . in the name it is. >>>> >>>>  -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com >>>>  , >> Yes, there is a force here. Having to inform the environment about a >> directory underneath /usr/include is a force. By design all directories >> in that tree are searched. > Your understanding is wrong. Please read documentation of your compiler more carefully. > My understanding is completely correct and the test posted in this thread proved it. Manually creating aa directory under /usr/include had aa show up in QtCreator. Manually creating a.a does not appear in QtCreator. The directory gets walked. This is ___NOT___ a compiler problem. I'm talking about QtCreator being unable to find the include files. I can compile a non-qt program from the command line just fine. Please consider the previous evidence before firing off an unfounded response. -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com From roland at logikalsolutions.com Fri Apr 20 21:28:01 2018 From: roland at logikalsolutions.com (Roland Hughes) Date: Fri, 20 Apr 2018 14:28:01 -0500 Subject: [Interest] QtCreator oddity In-Reply-To: References: Message-ID: On 04/20/2018 08:28 AM, Christian Kandeler wrote: >> Yes, there is a force here. Having to inform the environment about a >> directory underneath /usr/include is a force. By design all directories >> in that tree are searched. > What makes you think that? > > > Christian 30+ years in IT and the test posted earlier in this thread. I'm just typing this in from memory as I'm not in my office. cd /usr/include mkdir aa mkdir a.a cd aa copy  /usr/include/libusb...whatever/libusb.h . cd ../a.a copy  /usr/include/libusb...whatever/libusb.h . No go into your QtCreator and in a .cpp file start typing #include From elvstone at gmail.com Fri Apr 20 21:28:30 2018 From: elvstone at gmail.com (Elvis Stansvik) Date: Fri, 20 Apr 2018 21:28:30 +0200 Subject: [Interest] QtCreator oddity In-Reply-To: <26c517dd-5e0b-3a28-8171-c8988177f831@logikalsolutions.com> References: <4158941524228926@web2g.yandex.ru> <6cd18569-24bc-aa94-7570-da94f03ef897@logikalsolutions.com> <4210291524229483@web2g.yandex.ru> <26c517dd-5e0b-3a28-8171-c8988177f831@logikalsolutions.com> Message-ID: 2018-04-20 21:17 GMT+02:00 Roland Hughes : > > > On 04/20/2018 08:04 AM, Konstantin Tokarev wrote: >> >> >> 20.04.2018, 16:01, "Roland Hughes" : >>> >>> On 04/20/2018 07:55 AM, Konstantin Tokarev wrote: >>>> >>>> 20.04.2018, 15:19, "Roland Hughes" : >>>>> >>>>> On 04/20/2018 06:40 AM, Thiago Macieira wrote: >>>>>> >>>>>> On Wednesday, 18 April 2018 10:18:05 PDT Konstantin Tokarev wrote: >>>>>>> >>>>>>> #include >>>>>> >>>>>> DO NOT write that. The correct line for libusb is: #include >>>>>> If that file is not in your default search path, then add it to >>>>>> INCLUDEPATH or via pkg-config. PKGCONFIG += libusb-1.0 >>>>> >>>>> The problem isn't the default search path. The problem is QtCreator >>>>> cannot handle directories with a "." in their name underneath /usr/include. >>>>> One has to force it in with >>>>> >>>>> INCLUDEPATH +=/usr/include/libusb-1.0 >>>> >>>> There is no force here. You cannot #include unless compiler >>>> is provided with -I/usr/include/libusb-1.0 option instructing it to look in >>>> this directory. >>>> >>>>> By default, everything under /usr/include should be found and, if the >>>>> directory doesn't have a . in the name it is. >>>>> >>>>> -- Roland Hughes, President Logikal Solutions (630)-205-1593 >>>>> http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net >>>>> http://www.johnsmith-book.com http://www.logikalblog.com >>>>> http://www.interestingauthors.com/blog http://lesedi.us/ >>>>> http://onedollarcontentstore.com >>>>> , >>> >>> Yes, there is a force here. Having to inform the environment about a >>> directory underneath /usr/include is a force. By design all directories >>> in that tree are searched. >> >> Your understanding is wrong. Please read documentation of your compiler >> more carefully. >> > My understanding is completely correct and the test posted in this thread > proved it. Manually creating aa directory under /usr/include had aa show up > in QtCreator. Manually creating a.a does not appear in QtCreator. > > The directory gets walked. > > This is ___NOT___ a compiler problem. I'm talking about QtCreator being > unable to find the include files. I can compile a non-qt program from the > command line just fine. > > Please consider the previous evidence before firing off an unfounded > response. Roland, I think when you said in your original mail that the problem occurred "When typing in the editor and compiling", everyone though you meant you were getting compilation errors (so not just an auto-completion issue). If this is only about auto-completion in Qt Creator, then I think this whole thread could have been much shorter. Cheers, Elvis > > -- > Roland Hughes, President > Logikal Solutions > (630)-205-1593 > > http://www.theminimumyouneedtoknow.com > http://www.infiniteexposure.net > http://www.johnsmith-book.com > http://www.logikalblog.com > http://www.interestingauthors.com/blog > http://lesedi.us/ > http://onedollarcontentstore.com > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest From elvstone at gmail.com Fri Apr 20 21:34:54 2018 From: elvstone at gmail.com (Elvis Stansvik) Date: Fri, 20 Apr 2018 21:34:54 +0200 Subject: [Interest] QtCreator oddity In-Reply-To: References: <4158941524228926@web2g.yandex.ru> <6cd18569-24bc-aa94-7570-da94f03ef897@logikalsolutions.com> <4210291524229483@web2g.yandex.ru> <26c517dd-5e0b-3a28-8171-c8988177f831@logikalsolutions.com> Message-ID: 2018-04-20 21:28 GMT+02:00 Elvis Stansvik : > 2018-04-20 21:17 GMT+02:00 Roland Hughes : >> >> >> On 04/20/2018 08:04 AM, Konstantin Tokarev wrote: >>> >>> >>> 20.04.2018, 16:01, "Roland Hughes" : >>>> >>>> On 04/20/2018 07:55 AM, Konstantin Tokarev wrote: >>>>> >>>>> 20.04.2018, 15:19, "Roland Hughes" : >>>>>> >>>>>> On 04/20/2018 06:40 AM, Thiago Macieira wrote: >>>>>>> >>>>>>> On Wednesday, 18 April 2018 10:18:05 PDT Konstantin Tokarev wrote: >>>>>>>> >>>>>>>> #include >>>>>>> >>>>>>> DO NOT write that. The correct line for libusb is: #include >>>>>>> If that file is not in your default search path, then add it to >>>>>>> INCLUDEPATH or via pkg-config. PKGCONFIG += libusb-1.0 >>>>>> >>>>>> The problem isn't the default search path. The problem is QtCreator >>>>>> cannot handle directories with a "." in their name underneath /usr/include. >>>>>> One has to force it in with >>>>>> >>>>>> INCLUDEPATH +=/usr/include/libusb-1.0 >>>>> >>>>> There is no force here. You cannot #include unless compiler >>>>> is provided with -I/usr/include/libusb-1.0 option instructing it to look in >>>>> this directory. >>>>> >>>>>> By default, everything under /usr/include should be found and, if the >>>>>> directory doesn't have a . in the name it is. >>>>>> >>>>>> -- Roland Hughes, President Logikal Solutions (630)-205-1593 >>>>>> http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net >>>>>> http://www.johnsmith-book.com http://www.logikalblog.com >>>>>> http://www.interestingauthors.com/blog http://lesedi.us/ >>>>>> http://onedollarcontentstore.com >>>>>> , >>>> >>>> Yes, there is a force here. Having to inform the environment about a >>>> directory underneath /usr/include is a force. By design all directories >>>> in that tree are searched. >>> >>> Your understanding is wrong. Please read documentation of your compiler >>> more carefully. >>> >> My understanding is completely correct and the test posted in this thread >> proved it. Manually creating aa directory under /usr/include had aa show up >> in QtCreator. Manually creating a.a does not appear in QtCreator. >> >> The directory gets walked. >> >> This is ___NOT___ a compiler problem. I'm talking about QtCreator being >> unable to find the include files. I can compile a non-qt program from the >> command line just fine. >> >> Please consider the previous evidence before firing off an unfounded >> response. > > Roland, I think when you said in your original mail that the problem > occurred "When typing in the editor and compiling", everyone though > you meant you were getting compilation errors (so not just an > auto-completion issue). > > If this is only about auto-completion in Qt Creator, then I think this > whole thread could have been much shorter. And what I meant by that is that I don't think anyone is disputing your claim that Qt Creators auto-completion alg is recursing, and that it has an issue (which you found). The problem is you also said "and compiling", making everyone think that you were getting compilation errors (that the header wasn't found during compilation). If I understand you correctly, that is not the case, and this is simply a Qt Creator bug? Elvis > > Cheers, > Elvis > >> >> -- >> Roland Hughes, President >> Logikal Solutions >> (630)-205-1593 >> >> http://www.theminimumyouneedtoknow.com >> http://www.infiniteexposure.net >> http://www.johnsmith-book.com >> http://www.logikalblog.com >> http://www.interestingauthors.com/blog >> http://lesedi.us/ >> http://onedollarcontentstore.com >> >> _______________________________________________ >> Interest mailing list >> Interest at qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest From smurphy at walbro.com Sat Apr 21 00:52:38 2018 From: smurphy at walbro.com (Murphy, Sean) Date: Fri, 20 Apr 2018 22:52:38 +0000 Subject: [Interest] QTableWidget::setCellWidget() overrides widget's palette? In-Reply-To: References: <548d2865c98943b788dbfb9998f6ce7e@walbro.com> <82bdacf486094b0483509c4bae93c00d@walbro.com> Message-ID: <7bb1c7a2bdc94c9aa0a804597fd8e0d0@walbro.com> > > But the issue only comes up with the plots that are embedded into the > table. The standalone plot has the color palette I want, and > > the palette is being set in the plot class' constructor, so it should be the > same palette for all 3 plots. > > Yea, didn't think that was it. > > One ugly workaround I found that seems to work: > > auto palette = canvas()->palette(); > palette.setBrush(QPalette::Base, QBrush(QColor(50,50,50))); > canvas()->setPalette(palette); Thanks so much for finding that solution! After my last email, I had tried setting it with QPalette::Window, but didn't try Base. > Instead of > > setCanvasBackground(QBrush(QColor(50,50,50))); > > Still don't understand why that won't work though. I don't either, but at this point it works the way I want it to, so that's good enough for me! Thanks again, Sean This message has been scanned for malware by Forcepoint. www.forcepoint.com From thiago.macieira at intel.com Sat Apr 21 00:58:22 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Fri, 20 Apr 2018 15:58:22 -0700 Subject: [Interest] QtCreator oddity In-Reply-To: <26c517dd-5e0b-3a28-8171-c8988177f831@logikalsolutions.com> References: <4210291524229483@web2g.yandex.ru> <26c517dd-5e0b-3a28-8171-c8988177f831@logikalsolutions.com> Message-ID: <2114169.8OL3uuqtyX@tjmaciei-mobl1> On Friday, 20 April 2018 12:17:06 PDT Roland Hughes wrote: > My understanding is completely correct and the test posted in this > thread proved it. Manually creating aa directory under /usr/include had > aa show up in QtCreator. Manually creating a.a does not appear in QtCreator. That may be, but the correct fix for the problem with libusb-1.0 is to not try to type the directory with the '.' in the first place. Which is probably why no one else had noticed this: because the problem only shows when you write incorrect code in the first place. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From elvstone at gmail.com Sat Apr 21 11:03:38 2018 From: elvstone at gmail.com (Elvis Stansvik) Date: Sat, 21 Apr 2018 11:03:38 +0200 Subject: [Interest] QTableWidget::setCellWidget() overrides widget's palette? In-Reply-To: <7bb1c7a2bdc94c9aa0a804597fd8e0d0@walbro.com> References: <548d2865c98943b788dbfb9998f6ce7e@walbro.com> <82bdacf486094b0483509c4bae93c00d@walbro.com> <7bb1c7a2bdc94c9aa0a804597fd8e0d0@walbro.com> Message-ID: 2018-04-21 0:52 GMT+02:00 Murphy, Sean : >> > But the issue only comes up with the plots that are embedded into the >> table. The standalone plot has the color palette I want, and >> > the palette is being set in the plot class' constructor, so it should be the >> same palette for all 3 plots. >> >> Yea, didn't think that was it. >> >> One ugly workaround I found that seems to work: >> >> auto palette = canvas()->palette(); >> palette.setBrush(QPalette::Base, QBrush(QColor(50,50,50))); >> canvas()->setPalette(palette); > > Thanks so much for finding that solution! After my last email, I had tried > setting it with QPalette::Window, but didn't try Base. No problem. Setting QPalette::Window is exactly what Qwt's setCanvasBackground does btw. I guess something within Qt is re-setting that on the cell widget, but didn't dig deeper to find out. Elvis > >> Instead of >> >> setCanvasBackground(QBrush(QColor(50,50,50))); >> >> Still don't understand why that won't work though. > > I don't either, but at this point it works the way I want it to, so that's good enough > for me! > > Thanks again, > Sean > > > This message has been scanned for malware by Forcepoint. www.forcepoint.com > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest From vperetokin at gmail.com Sun Apr 22 16:30:29 2018 From: vperetokin at gmail.com (Vadim Peretokin) Date: Sun, 22 Apr 2018 14:30:29 +0000 Subject: [Interest] Faster QXmlStreamWriter? Message-ID: I'm looking at optimizing an applications save performance - it is too slow right now and causes too much of a freeze. We're using QXmlStreamWriter, here's the implementation . Profiling suggests that Qt's write element / attribute method is too slow ( screenshot , results attached). Is there anything I can do it speed it up? I tried giving it a QBuffer instead of a QFile, but the difference was marginal. A lot of time seems to be spent resizing the buffer, and unfortunately there doesn't seem to be a way to pre-set the QBuffer size to something reasonable to begin with. Anyone have tips? -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: result.csv Type: text/csv Size: 5188 bytes Desc: not available URL: From giuseppe.dangelo at kdab.com Sun Apr 22 16:53:07 2018 From: giuseppe.dangelo at kdab.com (Giuseppe D'Angelo) Date: Sun, 22 Apr 2018 16:53:07 +0200 Subject: [Interest] Faster QXmlStreamWriter? In-Reply-To: References: Message-ID: <66973960-6105-c628-eaf2-26b96ff5898b@kdab.com> Il 22/04/2018 16:30, Vadim Peretokin ha scritto: > A lot of time seems to be spent resizing the buffer, and unfortunately > there doesn't seem to be a way to pre-set the QBuffer size to something > reasonable to begin with. > > Anyone have tips? Didn't check the actual code, but you can always resize a QBuffer internal bytearray: QBuffer b; b.buffer().resize(1234); // or reserve() HTH, -- Giuseppe D'Angelo | giuseppe.dangelo at kdab.com | Senior Software Engineer KDAB (France) S.A.S., a KDAB Group company Tel. France +33 (0)4 90 84 08 53, http://www.kdab.com KDAB - The Qt, C++ and OpenGL Experts -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4007 bytes Desc: Firma crittografica S/MIME URL: From vperetokin at gmail.com Mon Apr 23 07:15:48 2018 From: vperetokin at gmail.com (Vadim Peretokin) Date: Mon, 23 Apr 2018 05:15:48 +0000 Subject: [Interest] Faster QXmlStreamWriter? In-Reply-To: <66973960-6105-c628-eaf2-26b96ff5898b@kdab.com> References: <66973960-6105-c628-eaf2-26b96ff5898b@kdab.com> Message-ID: Thanks! That helped remove the resize operation from the profiling data, but QBuffer::writeData is still there, and the overall time didn't change much. Is there anything else I can look at, or is this a dead end then - requires a different serialization solution altogether (a lot of work)? On Sun, Apr 22, 2018 at 4:53 PM Giuseppe D'Angelo wrote: > Il 22/04/2018 16:30, Vadim Peretokin ha scritto: > > A lot of time seems to be spent resizing the buffer, and unfortunately > > there doesn't seem to be a way to pre-set the QBuffer size to something > > reasonable to begin with. > > > > Anyone have tips? > > Didn't check the actual code, but you can always resize a QBuffer > internal bytearray: > > QBuffer b; > b.buffer().resize(1234); // or reserve() > > HTH, > > -- > Giuseppe D'Angelo | giuseppe.dangelo at kdab.com | Senior Software Engineer > KDAB (France) S.A.S., a KDAB Group company > Tel. France +33 (0)4 90 84 08 53 <+33%204%2090%2084%2008%2053>, > http://www.kdab.com > KDAB - The Qt, C++ and OpenGL Experts > > _______________________________________________ > 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: with 500kb preallocated.csv Type: text/csv Size: 12876 bytes Desc: not available URL: From thiago.macieira at intel.com Mon Apr 23 08:32:02 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Sun, 22 Apr 2018 23:32:02 -0700 Subject: [Interest] Faster QXmlStreamWriter? In-Reply-To: References: <66973960-6105-c628-eaf2-26b96ff5898b@kdab.com> Message-ID: <2915932.amMORncFTN@tjmaciei-mobl1> On Sunday, 22 April 2018 22:15:48 PDT Vadim Peretokin wrote: > Thanks! That helped remove the resize operation from the profiling data, > but QBuffer::writeData is still there, and the overall time didn't change > much. > > Is there anything else I can look at, or is this a dead end then - requires > a different serialization solution altogether (a lot of work)? Correct, QBuffer is not optimised for speed. I ran into that while developing QCborStreamWriter. The solution was to bypass it for speed. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From christian.kandeler at qt.io Mon Apr 23 09:08:28 2018 From: christian.kandeler at qt.io (Christian Kandeler) Date: Mon, 23 Apr 2018 09:08:28 +0200 Subject: [Interest] QtCreator oddity In-Reply-To: References: Message-ID: <20180423090828.00bd3b3e@ckandeler-archlinux> On Fri, 20 Apr 2018 14:28:01 -0500 Roland Hughes wrote: > On 04/20/2018 08:28 AM, Christian Kandeler wrote: > >> Yes, there is a force here. Having to inform the environment about a > >> directory underneath /usr/include is a force. By design all directories > >> in that tree are searched. > > What makes you think that? > > > > > > Christian > 30+ years in IT and the test posted earlier in this thread. I'm just > typing this in from memory as I'm not in my office. > > cd /usr/include > mkdir aa > mkdir a.a > cd aa > copy  /usr/include/libusb...whatever/libusb.h . > cd ../a.a > copy  /usr/include/libusb...whatever/libusb.h . > > No go into your QtCreator and in a .cpp file start typing > > #include > What shows up? aa but not a.a > Go ahead and hit enter, what shows up? libusb.h (or whatever you named > the .h file. That's unrelated to your original claim that header files in subdirectories of /usr/include are magically found by compilers. From jesus.fernandez at qt.io Mon Apr 23 11:55:19 2018 From: jesus.fernandez at qt.io (Jesus Fernandez) Date: Mon, 23 Apr 2018 09:55:19 +0000 Subject: [Interest] WebGL platform and audio In-Reply-To: References: Message-ID: Hi Glen, There is no plan ATM to support audio. You could add a suggestion to the Qt bug tracker to request it. Best regards, Jesús ________________________________ From: Interest on behalf of Glen Mabey Sent: Friday, April 13, 2018 22:33 To: interest at qt-project.org Subject: [Interest] WebGL platform and audio Hello, I'm using 5.10.1 for a very simple QML application that also instantiates a QAudioOutput instance and sends data to it. Not too surprisingly, the audio comes out on the machine running the executable and not the one running the webbrowser. I see that there is some concept of basic audio playback in WebGL, but don't know anything more than that: https://docs.unity3d.com/Manual/webgl-audio.html [https://unity3d.com/files/images/ogimg.jpg] Unity - Manual: Using Audio In WebGL docs.unity3d.com Audio in WebGL is done differently then on all other platforms. On other platforms we use FMOD internally to supply audio playback and mixing. Since the WebGL platform does not support threads, we need to use a different implementation, which is internally based on the Web Audio API, which lets the ... Is that the expected behavior for the Qt webgl platform? Any prospect of that changing soon? Thank you -- Glen _______________________________________________ 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 ev.mipt at gmail.com Mon Apr 23 12:40:39 2018 From: ev.mipt at gmail.com (Oleg Evseev) Date: Mon, 23 Apr 2018 13:40:39 +0300 Subject: [Interest] Connecting Signals to Methods Message-ID: Hi all, Is there a way to connect signal to function using the connect() method in javascript QML with Qt::UniqueConnection type? --- With regards, Oleg. -------------- next part -------------- An HTML attachment was scrubbed... URL: From roland at logikalsolutions.com Mon Apr 23 14:17:56 2018 From: roland at logikalsolutions.com (Roland Hughes) Date: Mon, 23 Apr 2018 07:17:56 -0500 Subject: [Interest] QtCreator oddity In-Reply-To: References: Message-ID: <365af231-d095-947c-d4d9-1c81b91c42ea@logikalsolutions.com> On 04/23/2018 02:15 AM, Thiago Macieira wrote: > On Friday, 20 April 2018 05:19:40 PDT Roland Hughes wrote: >>> DO NOT write that. The correct line for libusb is: >>> >>> #include >>> >>> If that file is not in your default search path, then add it to >>> INCLUDEPATH or via pkg-config. >>> >>> PKGCONFIG += libusb-1.0 >> The problem isn't the default search path. > Yes, it is. You MUST choose one of the two solutions I gave above, or > something that indirectly leads to them. No, it is not. Conduct the experiment yourself. It's a ___bug___ in QtCreator which does not allow it to process include directories containing a "." in the name. -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From roland at logikalsolutions.com Mon Apr 23 14:32:14 2018 From: roland at logikalsolutions.com (Roland Hughes) Date: Mon, 23 Apr 2018 07:32:14 -0500 Subject: [Interest] QtCreator oddity In-Reply-To: References: <4158941524228926@web2g.yandex.ru> <6cd18569-24bc-aa94-7570-da94f03ef897@logikalsolutions.com> <4210291524229483@web2g.yandex.ru> <26c517dd-5e0b-3a28-8171-c8988177f831@logikalsolutions.com> Message-ID: On 04/20/2018 02:28 PM, Elvis Stansvik wrote: > > Roland, I think when you said in your original mail that the problem > occurred "When typing in the editor and compiling", everyone though > you meant you were getting compilation errors (so not just an > auto-completion issue). > > If this is only about auto-completion in Qt Creator, then I think this > whole thread could have been much shorter. > > In Qt it is both an auto-completion and a compilation issue. With other tools things are just fine. -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From roland at logikalsolutions.com Mon Apr 23 15:33:59 2018 From: roland at logikalsolutions.com (Roland Hughes) Date: Mon, 23 Apr 2018 08:33:59 -0500 Subject: [Interest] Interest Digest, Vol 79, Issue 17 In-Reply-To: References: Message-ID: <60f9fa52-2973-282a-bd14-4f0b9b08301b@logikalsolutions.com> On 04/23/2018 02:15 AM, Thiago Macieira wrote: > On Friday, 20 April 2018 12:17:06 PDT Roland Hughes wrote: >> My understanding is completely correct and the test posted in this >> thread proved it. Manually creating aa directory under /usr/include had >> aa show up in QtCreator. Manually creating a.a does not appear in QtCreator. > That may be, but the correct fix for the problem with libusb-1.0 is to not try > to type the directory with the '.' in the first place. Which is probably why > no one else had noticed this: because the problem only shows when you write > incorrect code in the first place. Wow Thiago! I can't believe you just uttered that. Caffeine withdrawl? Under DOS and the worthless GUI DOS called Windows which nobody uses, all directories were required to have a ".dir" extension. The feeble file system of the day could only identify them this way. This convention was stolen from early real computers running real operating systems solving real business problems, not cheesey x86 stuff. RSTS/E, RSX-11, RT-11, MVS, 0S/360 (bit fuzzy on the name for primary System 36 OS) and several others of blessed memory, there was a physical limitation of 6.3 for file names. Physical because we were paying $5000 for a 1.2MEG removable platter which a low wage computer operator could drop or otherwise bang around not only rendering it useless, but, taking out the drive it was put in. Once we managed to stack multiple platters on a spindle without killing the drives in minutes we started to have removable packs containing 5 & 10 MEG. An inconceivable amount of storage in the day. File systems were expanded to support 8.3 naming. When Bill Gates was stealing sh*t and committing a plethora of other crimes to create his empire, he stole this 8.3 thing. Real computers with real operating systems and real CPUs and real professionals realized this "naming convention," which is all it was, created a highly insecure situation. Changing a .DIR to a .FOR on many systems made it not-a-directory. Sometimes renaming it back got you everything and other times whatever directory structure was under it was lost. It really depended on whether someone opened the "file" in a text editor and saved on their way out. New file systems were created which did not rely on naming conventions. At least on the real computers with real operating systems and real CPUs. All of the attributes were kept elsewhere in the file system. This meant that __any__ file name could be a directory and __any__ file name could be hidden. None of this hokey-arse "." in front. That's a legacy from the PDP era. The new file systems which allowed any name to be a directory dramatically increased security and functionality. It allowed for multiple versions of the same package (such as a database) to run at the same time on the same real computer. This meant, if your ERP package needed Oracle V5 and your WMS needed Oracle V6 and your inventory forecasting package needed Oracle V7 they could all run on the same real computer without crashing into each other allowing your company all the time they needed to migrate the custom ERP and WMS code to the later version. Life was good. The hobby chip world started putting dots in their versions.  This happened early on with hobby operating systems like Windows 3.1. Pretty soon packages were having dot releases as well. It didn't matter to the real world until this hobby stuff started creeping into the data center. The real world had real versioning methodologies ___and___ file versioning. The hobby world not so much. Inevitably the hobby world had a really cruel lesson taught to them. In the real world they don't just throw everything out and start over because someone thinks it would be cool. In the real world, the real computers running real packages are there to do a job and nothing more. They are a necessary burden which is only upgraded out of need. They exist to keep assembly line A producing product B whose inventory is managed in warehouse C after it receives orders from package D which are then sent to truck loading package E for shipping once accounting package F okays the payment. Replacing/upgrading one single component in such a delicate dance can have catastrophic ripple effects. This has lead to the necessity of being able to run multiple versions of the same package on the same machine without them causing problems for each other. On OpenVMS we have application level logical name tables. Each version creates its own uniquely named table. Every logical name in there is the same as the other versions, but they all point to different files and directories. On lesser platforms they only have symbols and environment variables without any way of grouping them. I forget what IBM does on their big iron, but they have a way of partitioning this off as well. On a Debian based Linux distro type the following: cd / sudo find -iname "*.*" -type d You will see lots of stuff which looks like this: ./usr/share/groff/1.22.3 ./usr/share/gettext-0.19.7 ./usr/include/python3.5m ./usr/include/llvm-c-3.8 ./usr/include/clang/3.8.0 ./usr/include/clang/3.8 ./usr/include/python2.7 ./usr/include/llvm-3.8 ./usr/include/a.a ./usr/include/libusb-1.0 ./usr/src/linux-headers-4.13.0-38 ./usr/src/linux-headers-4.13.0-37-generic ./usr/src/linux-headers-4.13.0-37-generic/.tmp_versions ./usr/src/linux-headers-4.13.0-37 ./usr/src/linux-headers-4.4.0-119 ./usr/src/linux-headers-4.4.0-119/zfs/etc/modules-load.d ./usr/src/linux-headers-4.4.0-119/zfs/etc/init.d ./usr/src/linux-headers-4.4.0-119/zfs/contrib/bash_completion.d ./usr/src/linux-headers-4.4.0-119/zfs/udev/rules.d ./usr/src/linux-headers-4.4.0-119/ubuntu/opennsl/OpenNSL/sdk-6.5.10-gpl-modules ./usr/src/linux-headers-4.13.0-38-generic ./usr/src/linux-headers-4.13.0-38-generic/.tmp_versions ./usr/src/linux-headers-4.4.0-119-generic ./usr/src/linux-headers-4.4.0-119-generic/.tmp_versions ./usr/src/virtualbox-5.1.34 Directories with "." in the name due to the version numbering system in place and the need to partition off multiple versions from one another and the .d directories which exist because of a legacy convention. Over the decades the hobby platform has gotten more and more software along with more processing power. Once it pushed its way into the data center it had to adapt to the real world. This meant a method of partitioning off multiple versions of things which must run simultaneously. For over a decade IBM's biggest iron had an exclusive feature. One gigantic machine could be partitioned to appear as 4+ different computers all running different versions of MVS. They might even have been able to run different versions of other IBM operating systems. I don't remember. Didn't spend a lot of time in that world. Over the past decade or so the hobby world got virtualbox, hyper-v and other tools which aren't quite the same, but are close enough for many things to provide that feature. This allowed them to push further into the data center to run the software which makes the thing then helps it get sold. Eventually the hokey little "if it starts with a . it's a hidden file" convention will also have to go away, just like .dir did because it is a security problem which malware (or stupidity) can exploit. -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From gmabey at swri.org Mon Apr 23 17:58:36 2018 From: gmabey at swri.org (Glen Mabey) Date: Mon, 23 Apr 2018 15:58:36 +0000 Subject: [Interest] WebGL platform and audio In-Reply-To: References: , Message-ID: Jesus, Thanks for your reply. I've followed your suggestion and created an issue. Anyone monitoring this thread should be able to vote for it here: https://bugreports.qt.io/browse/QTBUG-67896 Thank you, Glen ________________________________ From: Jesus Fernandez [jesus.fernandez at qt.io] Sent: Monday, April 23, 2018 4:55 AM To: Glen Mabey; interest at qt-project.org Subject: Re: WebGL platform and audio Hi Glen, There is no plan ATM to support audio. You could add a suggestion to the Qt bug tracker to request it. Best regards, Jesús ________________________________ From: Interest on behalf of Glen Mabey Sent: Friday, April 13, 2018 22:33 To: interest at qt-project.org Subject: [Interest] WebGL platform and audio Hello, I'm using 5.10.1 for a very simple QML application that also instantiates a QAudioOutput instance and sends data to it. Not too surprisingly, the audio comes out on the machine running the executable and not the one running the webbrowser. I see that there is some concept of basic audio playback in WebGL, but don't know anything more than that: https://docs.unity3d.com/Manual/webgl-audio.html Is that the expected behavior for the Qt webgl platform? Any prospect of that changing soon? Thank you -- Glen _______________________________________________ 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 Mon Apr 23 18:22:31 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Mon, 23 Apr 2018 09:22:31 -0700 Subject: [Interest] Interest Digest, Vol 79, Issue 17 In-Reply-To: <60f9fa52-2973-282a-bd14-4f0b9b08301b@logikalsolutions.com> References: <60f9fa52-2973-282a-bd14-4f0b9b08301b@logikalsolutions.com> Message-ID: <9875705.KlIdrutGkp@tjmaciei-mobl1> On Monday, 23 April 2018 06:33:59 PDT Roland Hughes wrote: > > That may be, but the correct fix for the problem with libusb-1.0 is to not > > try to type the directory with the '.' in the first place. Which is > > probably why no one else had noticed this: because the problem only shows > > when you write incorrect code in the first place. > > Wow Thiago! I can't believe you just uttered that. Caffeine withdrawl? [rant cut] > On a Debian based Linux distro type the following: > cd / > sudo find -iname "*.*" -type d > > You will see lots of stuff which looks like this: [all non /usr/include results cut] > ./usr/include/a.a > > ./usr/include/libusb-1.0 You've got two results here. One is that which we discussed. The other is the one you tested, so it's not a real example. > Directories with "." in the name due to the version numbering system in > place and the need to partition off multiple versions from one another > and the .d directories which exist because of a legacy convention. You're completely missing the point. I'm not saying directories with dots don't exist. I am saying that they don't occur in almost any libraries' #include statements. The reason why no one caught this issue in Qt Creator is that it's extremely rare or non-existent in the real world. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From till.oliver.knoll at gmail.com Mon Apr 23 18:52:35 2018 From: till.oliver.knoll at gmail.com (Till Oliver Knoll) Date: Mon, 23 Apr 2018 18:52:35 +0200 Subject: [Interest] [Very OT] Re: WebGL platform and audio In-Reply-To: References: Message-ID: <9FBD87B5-D71B-4934-8B0B-293765C4D793@gmail.com> > Am 23.04.2018 um 17:58 schrieb Glen Mabey : > > Jesus, > > Thanks for your reply. I've followed your suggestion and created an issue. Anyone monitoring this thread should be able to vote for it here: > > https://bugreports.qt.io/browse/QTBUG-67896 „... he audio comes out on the machine running the executable and not the one running the webbrowser.“ Ha! I just had to imagine a „Qt server“ serving Doom, and lots of players playing without sound in their browser... leaving the administrator wondering where all that chainsaw screaming, shouting, growling and shooting comes from: „What‘s all that noise coming from my server room all of a sudden?!“ ;) Cheers, Oliver -------------- next part -------------- An HTML attachment was scrubbed... URL: From vperetokin at gmail.com Tue Apr 24 07:02:20 2018 From: vperetokin at gmail.com (Vadim Peretokin) Date: Tue, 24 Apr 2018 05:02:20 +0000 Subject: [Interest] Faster QXmlStreamWriter? In-Reply-To: <2915932.amMORncFTN@tjmaciei-mobl1> References: <66973960-6105-c628-eaf2-26b96ff5898b@kdab.com> <2915932.amMORncFTN@tjmaciei-mobl1> Message-ID: On Mon, Apr 23, 2018 at 8:32 AM Thiago Macieira wrote: > On Sunday, 22 April 2018 22:15:48 PDT Vadim Peretokin wrote: > > Thanks! That helped remove the resize operation from the profiling data, > > but QBuffer::writeData is still there, and the overall time didn't change > > much. > > > > Is there anything else I can look at, or is this a dead end then - > requires > > a different serialization solution altogether (a lot of work)? > > Correct, QBuffer is not optimised for speed. I ran into that while > developing > QCborStreamWriter. The solution was to bypass it for speed. > > OK, that's a pity. I'll look into using pugixml instead, and if anyone else knows a faster XML serializer, I'd he happy to hear about it. -------------- next part -------------- An HTML attachment was scrubbed... URL: From hamish at risingsoftware.com Tue Apr 24 07:34:20 2018 From: hamish at risingsoftware.com (Hamish Moffatt) Date: Tue, 24 Apr 2018 15:34:20 +1000 Subject: [Interest] Use Qt release DLLs while debugging application Message-ID: <844a990d-70df-401e-9cfb-0dc66fd6fc3f@risingsoftware.com> This must be an FAQ, but can I use the Qt release mode DLLs while running my application compiled for debug? (In Visual Studio 2015, Qt 5.8). I looked through the mkspecs and it doesn't seem possible. The qtPlatformTargetSuffix function defined in qt_functions.prf always adds the d suffix when compiling for debug. I ask because I'm not debugging Qt, and the XML parsing in Qt5Xml seems to be horrendously slow in debug mode. It's using 45% of my total CPU time, versus 11% in release mode. I'm not actively debugging anything remotely related to XML but this is killing debug time for me. Hamish From thiago.macieira at intel.com Tue Apr 24 07:24:13 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Mon, 23 Apr 2018 22:24:13 -0700 Subject: [Interest] Faster QXmlStreamWriter? In-Reply-To: References: <2915932.amMORncFTN@tjmaciei-mobl1> Message-ID: <37266430.b4y5yXrP63@tjmaciei-mobl1> On Monday, 23 April 2018 22:02:20 PDT Vadim Peretokin wrote: > > Correct, QBuffer is not optimised for speed. I ran into that while > > developing > > QCborStreamWriter. The solution was to bypass it for speed. > > OK, that's a pity. I'll look into using pugixml instead, and if anyone else > knows a faster XML serializer, I'd he happy to hear about it. Any chance you can choose a different serialisation format? -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From alex at golks.de Tue Apr 24 08:10:15 2018 From: alex at golks.de (alexander golks) Date: Tue, 24 Apr 2018 08:10:15 +0200 Subject: [Interest] Faster QXmlStreamWriter? In-Reply-To: References: <66973960-6105-c628-eaf2-26b96ff5898b@kdab.com> <2915932.amMORncFTN@tjmaciei-mobl1> Message-ID: <20180424081015.6df50404@gollum2.gollum.uni.cx> Am Tue, 24 Apr 2018 05:02:20 +0000 schrieb Vadim Peretokin : > On Mon, Apr 23, 2018 at 8:32 AM Thiago Macieira > wrote: > > > On Sunday, 22 April 2018 22:15:48 PDT Vadim Peretokin wrote: > > > Thanks! That helped remove the resize operation from the profiling data, > > > but QBuffer::writeData is still there, and the overall time didn't change > > > much. > > > > > > Is there anything else I can look at, or is this a dead end then - > > requires > > > a different serialization solution altogether (a lot of work)? > > > > Correct, QBuffer is not optimised for speed. I ran into that while > > developing > > QCborStreamWriter. The solution was to bypass it for speed. > > > > > OK, that's a pity. I'll look into using pugixml instead, and if anyone else > knows a faster XML serializer, I'd he happy to hear about it. we had good experiences in using tinyxml2 as replacement for qxml. don't know if this works for you for serializing, too. we had to extend a bit to beeing able to clone and deep compare XMLNodes, but it works great. alex -- /* * printk ("scsi%d : Oh no Mr. Bill!\n", host->host_no); * linux-2.6.6/drivers/scsi/53c7xx.c */ From vperetokin at gmail.com Tue Apr 24 10:39:56 2018 From: vperetokin at gmail.com (Vadim Peretokin) Date: Tue, 24 Apr 2018 08:39:56 +0000 Subject: [Interest] Faster QXmlStreamWriter? In-Reply-To: <37266430.b4y5yXrP63@tjmaciei-mobl1> References: <2915932.amMORncFTN@tjmaciei-mobl1> <37266430.b4y5yXrP63@tjmaciei-mobl1> Message-ID: On Tue, Apr 24, 2018 at 8:14 AM Thiago Macieira wrote: > On Monday, 23 April 2018 22:02:20 PDT Vadim Peretokin wrote: > > > Correct, QBuffer is not optimised for speed. I ran into that while > > > developing > > > QCborStreamWriter. The solution was to bypass it for speed. > > > > OK, that's a pity. I'll look into using pugixml instead, and if anyone > else > > knows a faster XML serializer, I'd he happy to hear about it. > > Any chance you can choose a different serialisation format? > > We're thinking on the consequences of that - if pugixml isn't fast enough still, will look at a different format. Recommendations welcome! :) -------------- next part -------------- An HTML attachment was scrubbed... URL: From jhihn at gmx.com Tue Apr 24 16:36:20 2018 From: jhihn at gmx.com (Jason H) Date: Tue, 24 Apr 2018 16:36:20 +0200 Subject: [Interest] Faster QXmlStreamWriter? In-Reply-To: References: <2915932.amMORncFTN@tjmaciei-mobl1> <37266430.b4y5yXrP63@tjmaciei-mobl1> Message-ID: An HTML attachment was scrubbed... URL: From annulen at yandex.ru Tue Apr 24 16:39:08 2018 From: annulen at yandex.ru (Konstantin Tokarev) Date: Tue, 24 Apr 2018 17:39:08 +0300 Subject: [Interest] Faster QXmlStreamWriter? In-Reply-To: References: <2915932.amMORncFTN@tjmaciei-mobl1> <37266430.b4y5yXrP63@tjmaciei-mobl1> Message-ID: <12916801524580748@web42j.yandex.ru> 24.04.2018, 11:40, "Vadim Peretokin" : > On Tue, Apr 24, 2018 at 8:14 AM Thiago Macieira wrote: >> On Monday, 23 April 2018 22:02:20 PDT Vadim Peretokin wrote: >>> > Correct, QBuffer is not optimised for speed. I ran into that while >>> > developing >>> > QCborStreamWriter. The solution was to bypass it for speed. >>> >>> OK, that's a pity. I'll look into using pugixml instead, and if anyone else >>> knows a faster XML serializer, I'd he happy to hear about it. >> >> Any chance you can choose a different serialisation format? > > We're thinking on the consequences of that - if pugixml isn't fast enough still, will look at a different format. Recommendations welcome! :) If your serialized data is intended to be read by Qt applications only, QDataStream may be a good choice > , > > _______________________________________________ > Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest --  Regards, Konstantin From thiago.macieira at intel.com Tue Apr 24 17:52:53 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Tue, 24 Apr 2018 08:52:53 -0700 Subject: [Interest] Faster QXmlStreamWriter? In-Reply-To: <12916801524580748@web42j.yandex.ru> References: <12916801524580748@web42j.yandex.ru> Message-ID: <2541354.R559aBQJkG@tjmaciei-mobl1> On Tuesday, 24 April 2018 07:39:08 PDT Konstantin Tokarev wrote: > 24.04.2018, 11:40, "Vadim Peretokin" : > > On Tue, Apr 24, 2018 at 8:14 AM Thiago Macieira wrote: > >> On Monday, 23 April 2018 22:02:20 PDT Vadim Peretokin wrote: > >>> > Correct, QBuffer is not optimised for speed. I ran into that while > >>> > developing > >>> > QCborStreamWriter. The solution was to bypass it for speed. > >>> > >>> OK, that's a pity. I'll look into using pugixml instead, and if anyone > >>> else > >>> knows a faster XML serializer, I'd he happy to hear about it. > >> > >> Any chance you can choose a different serialisation format? > > > > We're thinking on the consequences of that - if pugixml isn't fast enough > > still, will look at a different format. Recommendations welcome! :) > If your serialized data is intended to be read by Qt applications only, > QDataStream may be a good choice Also slow. Binary QJsonDocument is the fastest, followed closely by QCborValue (new in 5.12). -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From thiago.macieira at intel.com Tue Apr 24 18:10:42 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Tue, 24 Apr 2018 09:10:42 -0700 Subject: [Interest] Faster QXmlStreamWriter? In-Reply-To: <2541354.R559aBQJkG@tjmaciei-mobl1> References: <12916801524580748@web42j.yandex.ru> <2541354.R559aBQJkG@tjmaciei-mobl1> Message-ID: <26368315.lDtHqCHCCx@tjmaciei-mobl1> On Tuesday, 24 April 2018 08:52:53 PDT Thiago Macieira wrote: > > If your serialized data is intended to be read by Qt applications only, > > QDataStream may be a good choice > > Also slow. > > Binary QJsonDocument is the fastest, followed closely by QCborValue (new in > 5.12). Followed by regular text-form JSON. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From julien.cugniere at gmail.com Tue Apr 24 18:39:37 2018 From: julien.cugniere at gmail.com (=?UTF-8?Q?Julien_Cugni=C3=A8re?=) Date: Tue, 24 Apr 2018 18:39:37 +0200 Subject: [Interest] Faster QXmlStreamWriter? In-Reply-To: <2541354.R559aBQJkG@tjmaciei-mobl1> References: <12916801524580748@web42j.yandex.ru> <2541354.R559aBQJkG@tjmaciei-mobl1> Message-ID: 2018-04-24 17:52 GMT+02:00 Thiago Macieira : > On Tuesday, 24 April 2018 07:39:08 PDT Konstantin Tokarev wrote: >> If your serialized data is intended to be read by Qt applications only, >> QDataStream may be a good choice > > Also slow. > > Binary QJsonDocument is the fastest, followed closely by QCborValue (new in > 5.12). Out of curiosity, what makes QDataStream slow? From your other comment on QBuffer, it sounds like it might be related to the QIODevice interface. Does that mean it's impossible to get best performance through QIODevice, because of some design flaw? Or is there something else that makes QDataStream and QBuffer slow? From thiago.macieira at intel.com Tue Apr 24 19:49:29 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Tue, 24 Apr 2018 10:49:29 -0700 Subject: [Interest] Faster QXmlStreamWriter? In-Reply-To: References: <2541354.R559aBQJkG@tjmaciei-mobl1> Message-ID: <1988086.zKyeHLF9xY@tjmaciei-mobl1> On Tuesday, 24 April 2018 09:39:37 PDT Julien Cugnière wrote: > 2018-04-24 17:52 GMT+02:00 Thiago Macieira : > > On Tuesday, 24 April 2018 07:39:08 PDT Konstantin Tokarev wrote: > >> If your serialized data is intended to be read by Qt applications only, > >> QDataStream may be a good choice > > > > Also slow. > > > > Binary QJsonDocument is the fastest, followed closely by QCborValue (new > > in > > 5.12). > > Out of curiosity, what makes QDataStream slow? From your other comment > on QBuffer, it sounds like it might be related to the QIODevice > interface. Does that mean it's impossible to get best performance > through QIODevice, because of some design flaw? Or is there something > else that makes QDataStream and QBuffer slow? I benchmarked the full result, but didn't investigate what makes QDataStream slow. But it suffers from the same problem that QXmlStreamWriter does: it uses a QBuffer to write to a QDataStream (see [1] and [2]). QCborStreamWriter does the same, actually -- I've only fixed QCborStreamReader to bypass it. QDataStream's format is also quite big, storing all QStrings as UTF-16 with a 4-byte length prefix. So "Hello World" takes 4 + 2*11 = 26 bytes, whereas in CBOR it takes 1 + 11. The larger format could mean we reallocate more often and that causes delays. Another issue is that QDataStream tries to store all integers in big endian, unless you tell it otherwise. Since most machines are little-endian, that's a waste of CPU cycles, as you're doing the endian conversion twice, for little gain, however fast it is. Finally, yes, QIODevice is not designed for performance. It's quite slow and there's little we can do about it. There have been a lot of behind-the-scenes improvements, by way of smarter buffering and sharing of more code between the main QIODevice classes (QFile, QProcess, QTcpSocket, QNetworkReply implementations). QBuffer is usually forgotten in that. Still, the main problem is QIODevice's *design* and we're unable to change it. [1] https://code.woboq.org/qt5/qtbase/src/corelib/serialization/ qdatastream.cpp.html#_ZN11QDataStreamC1EP10QByteArray6QFlagsIN9QIODevice12OpenModeFlagEE [2] https://code.woboq.org/qt5/qtbase/src/corelib/serialization/ qdatastream.cpp.html#_ZN11QDataStreamC1ERK10QByteArray -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From gunnar.roth at gmx.de Tue Apr 24 21:57:23 2018 From: gunnar.roth at gmx.de (Gunnar Roth) Date: Tue, 24 Apr 2018 19:57:23 +0000 Subject: [Interest] Use Qt release DLLs while debugging application In-Reply-To: <844a990d-70df-401e-9cfb-0dc66fd6fc3f@risingsoftware.com> References: <844a990d-70df-401e-9cfb-0dc66fd6fc3f@risingsoftware.com> Message-ID: I would recommend setting the /Zo option for enhanced debugging information in your application release build. ( is default in vs 2017). Alternatively you can change disable your optimisation in release build with /Od. you CANNOT use a qt application debug build with Qt realease dlls, because that will crash , due to using a mix of release and debug c-runtime dlls, which have different memory allocators. The debug c runtime will allocate extra bytes for debugging purposes, which the release allocator does not know of. So it crashes if you allocate with the debug allocator and delete with the release allocator or vice versa. Regards, Gunnar Roth ------ Original Message ------ From: "Hamish Moffatt" To: "interest at qt-project.org" Sent: 24/04/2018 07:34:20 Subject: [Interest] Use Qt release DLLs while debugging application >This must be an FAQ, but can I use the Qt release mode DLLs while >running my application compiled for debug? (In Visual Studio 2015, Qt >5.8). > >I looked through the mkspecs and it doesn't seem possible. The >qtPlatformTargetSuffix function defined in qt_functions.prf always adds >the d suffix when compiling for debug. > > >I ask because I'm not debugging Qt, and the XML parsing in Qt5Xml seems >to be horrendously slow in debug mode. It's using 45% of my total CPU >time, versus 11% in release mode. I'm not actively debugging anything >remotely related to XML but this is killing debug time for me. > > >Hamish > >_______________________________________________ >Interest mailing list >Interest at qt-project.org >http://lists.qt-project.org/mailman/listinfo/interest From thiago.macieira at intel.com Tue Apr 24 22:34:48 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Tue, 24 Apr 2018 13:34:48 -0700 Subject: [Interest] Use Qt release DLLs while debugging application In-Reply-To: <844a990d-70df-401e-9cfb-0dc66fd6fc3f@risingsoftware.com> References: <844a990d-70df-401e-9cfb-0dc66fd6fc3f@risingsoftware.com> Message-ID: <6279385.D1fVQQxWiB@tjmaciei-mobl1> On Monday, 23 April 2018 22:34:20 PDT Hamish Moffatt wrote: > This must be an FAQ, but can I use the Qt release mode DLLs while > running my application compiled for debug? (In Visual Studio 2015, Qt 5.8). > > I looked through the mkspecs and it doesn't seem possible. The > qtPlatformTargetSuffix function defined in qt_functions.prf always adds > the d suffix when compiling for debug. > > > I ask because I'm not debugging Qt, and the XML parsing in Qt5Xml seems > to be horrendously slow in debug mode. It's using 45% of my total CPU > time, versus 11% in release mode. I'm not actively debugging anything > remotely related to XML but this is killing debug time for me. You can't do that because of Microsoft (see Gunnar's reply). But you can recompile the debug library with optimisation enabled. Or you can compile your release binary without optimisations and with debug symbols. Exercise left to the reader. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From rainer_wiesenfarth at trimble.com Wed Apr 25 07:35:00 2018 From: rainer_wiesenfarth at trimble.com (Rainer Wiesenfarth) Date: Wed, 25 Apr 2018 07:35:00 +0200 Subject: [Interest] Use Qt release DLLs while debugging application In-Reply-To: <6279385.D1fVQQxWiB@tjmaciei-mobl1> References: <844a990d-70df-401e-9cfb-0dc66fd6fc3f@risingsoftware.com> <6279385.D1fVQQxWiB@tjmaciei-mobl1> Message-ID: On Tue, Apr 24, 2018 at 10:34 PM, Thiago Macieira wrote: > On Monday, 23 April 2018 22:34:20 PDT Hamish Moffatt wrote: > > This must be an FAQ, but can I use the Qt release mode DLLs while > > running my application compiled for debug? (In Visual Studio 2015, Qt > 5.8). > > > ​[...] > > > You can't do that because of Microsoft (see Gunnar's reply). > ​[...] > ​This is only half the truth: *You can, if* you are interested in the debug code of your application only, but not in the one of Qt and the C runtime. If you use the release version of Qt, you have to make sure that you link with the same runtime, i.e. you use /MD (Mulit-threaded DLL) for your debug build instead of /MDd (Multi-threaded Debug DLL). ​Note: You have to make sure that any other library you link against is using the same C runtime​ Note: I have no idea how to configure this using QMake (we use hand-crafted .vcxproj and .props) ​Cheers, Rainer​ -- Software Engineer | Trimble Imaging Division Rotebühlstraße 81 | 70178 Stuttgart | Germany Office +49 711 22881 0 | Fax +49 711 22881 11 http://www.trimble.com/imaging/ | http://www.inpho.de/ Trimble Germany GmbH, Am Prime Parc 11, 65479 Raunheim Eingetragen beim Amtsgericht Darmstadt unter HRB 83893, Geschäftsführer: Dr. Frank Heimberg, Jürgen Kesper -------------- next part -------------- An HTML attachment was scrubbed... URL: From fromqt at tungware.se Wed Apr 25 07:42:29 2018 From: fromqt at tungware.se (Henry Skoglund) Date: Wed, 25 Apr 2018 07:42:29 +0200 Subject: [Interest] Use Qt release DLLs while debugging application In-Reply-To: References: <844a990d-70df-401e-9cfb-0dc66fd6fc3f@risingsoftware.com> <6279385.D1fVQQxWiB@tjmaciei-mobl1> Message-ID: <26d0b89b-aa9d-4200-eb34-9da5b905c3dd@tungware.se> On 2018-04-25 07:35, Rainer Wiesenfarth wrote: > *You can, if* you are interested in the debug code of your application > only, but not in the one of Qt and the C runtime. > > If you use the release version of Qt, you have to make sure that you > link with the same runtime, i.e. you use /MD (Mulit-threaded DLL) for > your debug build instead of /MDd (Multi-threaded Debug DLL). > > ​Note: You have to make sure that any other library you link against is > using the same C runtime​ > Note: I have no idea how to configure this using QMake (we use > hand-crafted .vcxproj and .props) > > ​Cheers, Rainer​ Morning, just want to add, qDebug() output works fine in Release builds also. I.e. just printf()-style debugging but sometimes that's all you need. Rgrds Henry From Maurice.Kalinowski at qt.io Wed Apr 25 07:46:43 2018 From: Maurice.Kalinowski at qt.io (Maurice Kalinowski) Date: Wed, 25 Apr 2018 05:46:43 +0000 Subject: [Interest] Faster QXmlStreamWriter? In-Reply-To: <1988086.zKyeHLF9xY@tjmaciei-mobl1> References: <2541354.R559aBQJkG@tjmaciei-mobl1> <1988086.zKyeHLF9xY@tjmaciei-mobl1> Message-ID: > On Tuesday, 24 April 2018 09:39:37 PDT Julien Cugnière wrote: > > 2018-04-24 17:52 GMT+02:00 Thiago Macieira : > > > On Tuesday, 24 April 2018 07:39:08 PDT Konstantin Tokarev wrote: > > >> If your serialized data is intended to be read by Qt applications > > >> only, QDataStream may be a good choice > > > > > > Also slow. > > > > > > Binary QJsonDocument is the fastest, followed closely by QCborValue > > > (new in 5.12). > > > > Out of curiosity, what makes QDataStream slow? From your other > comment > > on QBuffer, it sounds like it might be related to the QIODevice > > interface. Does that mean it's impossible to get best performance > > through QIODevice, because of some design flaw? Or is there something > > else that makes QDataStream and QBuffer slow? > > I benchmarked the full result, but didn't investigate what makes > QDataStream slow. But it suffers from the same problem that > QXmlStreamWriter does: it uses a QBuffer to write to a QDataStream (see [1] > and [2]). QCborStreamWriter does the same, actually -- I've only fixed > QCborStreamReader to bypass it. > [Maurice Kalinowski] Hey, Would you still have these benchmarks somewhere? I am currently playing around with various serialization ways as well, and so far came to different conclusions. Probably because of using different means, but would still like to see how you approached it for plain text json. BR, Maurice From alex at golks.de Wed Apr 25 07:48:03 2018 From: alex at golks.de (alexander golks) Date: Wed, 25 Apr 2018 07:48:03 +0200 Subject: [Interest] Faster QXmlStreamWriter? In-Reply-To: <2541354.R559aBQJkG@tjmaciei-mobl1> References: <12916801524580748@web42j.yandex.ru> <2541354.R559aBQJkG@tjmaciei-mobl1> Message-ID: <20180425074803.6b2ccd75@gollum2.gollum.uni.cx> Am Tue, 24 Apr 2018 08:52:53 -0700 schrieb Thiago Macieira : > On Tuesday, 24 April 2018 07:39:08 PDT Konstantin Tokarev wrote: > > 24.04.2018, 11:40, "Vadim Peretokin" : > > > On Tue, Apr 24, 2018 at 8:14 AM Thiago Macieira > wrote: > > >> On Monday, 23 April 2018 22:02:20 PDT Vadim Peretokin wrote: > > >>> > Correct, QBuffer is not optimised for speed. I ran into that while > > >>> > developing > > >>> > QCborStreamWriter. The solution was to bypass it for speed. > > >>> > > >>> OK, that's a pity. I'll look into using pugixml instead, and if anyone > > >>> else > > >>> knows a faster XML serializer, I'd he happy to hear about it. > > >> > > >> Any chance you can choose a different serialisation format? > > > > > > We're thinking on the consequences of that - if pugixml isn't fast enough > > > still, will look at a different format. Recommendations welcome! :) > > If your serialized data is intended to be read by Qt applications only, > > QDataStream may be a good choice > > Also slow. > > Binary QJsonDocument is the fastest, followed closely by QCborValue (new in > 5.12). > when using QJsonDocument you may/should pay attention to QtQTBUG-47629: QJsonObject size maximum length 128MB https://bugreports.qt.io/browse/QTBUG-47629 -- /* */* Only Sun can take such nice parts and fuck up the programming interface * * like this. Good job guys... * *\/ * linux-2.6.6/drivers/net/sunhme.c */ From thiago.macieira at intel.com Wed Apr 25 08:25:11 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Tue, 24 Apr 2018 23:25:11 -0700 Subject: [Interest] Use Qt release DLLs while debugging application In-Reply-To: References: <844a990d-70df-401e-9cfb-0dc66fd6fc3f@risingsoftware.com> <6279385.D1fVQQxWiB@tjmaciei-mobl1> Message-ID: <3696767.S8flfB1OST@tjmaciei-mobl1> On Tuesday, 24 April 2018 22:35:00 PDT Rainer Wiesenfarth wrote: > ​Note: You have to make sure that any other library you link against is > using the same C runtime​ And that's exactly the problem. With MSVC, the definition of "debug" and "release" can take one of two meanings: optimised or not versus the runtime it's linking against. By default, people build non-optimised code (/Od) with debugging symbols (/Zi) against the debug runtime (/MDd). But you can compile optimised code (/O2) against the debug runtime (/MDd) and you can compile non- optimised code with debugging symbols (/Od /Zi) against the release runtime (/MD). -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From thiago.macieira at intel.com Wed Apr 25 08:36:15 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Tue, 24 Apr 2018 23:36:15 -0700 Subject: [Interest] Faster QXmlStreamWriter? In-Reply-To: References: <1988086.zKyeHLF9xY@tjmaciei-mobl1> Message-ID: <6548662.hLJ5BNc6ou@tjmaciei-mobl1> On Tuesday, 24 April 2018 22:46:43 PDT Maurice Kalinowski wrote: > > On Tuesday, 24 April 2018 09:39:37 PDT Julien Cugnière wrote: > > > 2018-04-24 17:52 GMT+02:00 Thiago Macieira : > > > > On Tuesday, 24 April 2018 07:39:08 PDT Konstantin Tokarev wrote: > > > >> If your serialized data is intended to be read by Qt applications > > > >> only, QDataStream may be a good choice > > > > > > > > Also slow. > > > > > > > > Binary QJsonDocument is the fastest, followed closely by QCborValue > > > > (new in 5.12). > > > > > > Out of curiosity, what makes QDataStream slow? From your other > > > > comment > > > > > on QBuffer, it sounds like it might be related to the QIODevice > > > interface. Does that mean it's impossible to get best performance > > > through QIODevice, because of some design flaw? Or is there something > > > else that makes QDataStream and QBuffer slow? > > > > I benchmarked the full result, but didn't investigate what makes > > QDataStream slow. But it suffers from the same problem that > > QXmlStreamWriter does: it uses a QBuffer to write to a QDataStream (see > > [1] > > and [2]). QCborStreamWriter does the same, actually -- I've only fixed > > QCborStreamReader to bypass it. > > [Maurice Kalinowski] > > Hey, > > Would you still have these benchmarks somewhere? I am currently playing > around with various serialization ways as well, and so far came to > different conclusions. Probably because of using different means, but would > still like to see how you approached it for plain text json. I posted to dev in the CBOR thread a few months ago. Basically, the procedure was: 1) find a large-ish JSON file as a test seed 2) make it bigger (replicate it 100x or more in an array) -- I used something like 60 MB in binary JSON form, which is just about half the maximum 3) use the examples/corelib/serialization/convert tool[1] to convert to other formats 4) use the same tool with the "null" output to benchmark reading[2] 5) use the tool with binary JSON as source to benchmark writing I basically benchmarked using Linux's perf. The stat subcommand for overall timings, but using perf record + perf annotate to analyse where the issues were. [1] https://codereview.qt-project.org/217410. The tool should work for all other formats right now if you just remove "cborconverter.cpp" from the .pro file. [2] I modified main.cpp to read and write using QBuffer instead of QFile to minimise the cost of QIODevice. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From thiago.macieira at intel.com Wed Apr 25 08:43:11 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Tue, 24 Apr 2018 23:43:11 -0700 Subject: [Interest] Faster QXmlStreamWriter? In-Reply-To: <20180425074803.6b2ccd75@gollum2.gollum.uni.cx> References: <2541354.R559aBQJkG@tjmaciei-mobl1> <20180425074803.6b2ccd75@gollum2.gollum.uni.cx> Message-ID: <2329295.61W2rLc9k5@tjmaciei-mobl1> On Tuesday, 24 April 2018 22:48:03 PDT alexander golks wrote: > when using QJsonDocument you may/should pay attention to QtQTBUG-47629: > QJsonObject size maximum length 128MB > https://bugreports.qt.io/browse/QTBUG-47629 That's one of the reasons I'm adding CBOR support. The new implementation scales much better than the binary JSON memory and on-disk format and has no such limitation. Plus it's a standardised format, defined by the IETF and used several new IoT protocols. Since it uses QVector internally, it's currently limited to 2 GB vectors per level, so each CBOR array can contain at most 2^31 / 16 = 2^27 elements. But that's on each level: each element can be an array of 2^27 elements again. Maps are limited to half that, so 2^26. There's also a limit on the total size of strings in a map or array. The code was carefully written so that in Qt 6, when we switch to 64-bit size types for Qt containers, the limitations disappear. And better: since CBOR is a full superset of JSON, the backend can be used to hold JSON too. So Qt 6 QJsonDocument & family will have the 128 MB limit removed, at the expense of the binary JSON format requiring parsing. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From thiago.macieira at intel.com Wed Apr 25 09:10:36 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Wed, 25 Apr 2018 00:10:36 -0700 Subject: [Interest] Faster QXmlStreamWriter? In-Reply-To: <6548662.hLJ5BNc6ou@tjmaciei-mobl1> References: <6548662.hLJ5BNc6ou@tjmaciei-mobl1> Message-ID: <4463163.NigIkzgtUN@tjmaciei-mobl1> On Tuesday, 24 April 2018 23:36:15 PDT Thiago Macieira wrote: > 3) use the examples/corelib/serialization/convert tool[1] to > convert to other formats > 4) use the same tool with the "null" output to benchmark reading[2] > 5) use the tool with binary JSON as source to benchmark writing Attached is a sample shell session of how to use the tool and what it can do. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center -------------- next part -------------- $ #### Help options $ ./convert --help Usage: ./convert [options] [source] [destination] Qt file format conversion tool Options: -h, --help Displays this help. -I, --input-format Select the input format for the input file. Available formats: auto, binary-json, cbor, datastream, json, text, xml -O, --output-format Select the output format for the output file. Available formats: auto, binary-json, cbor, cbor-dump, datastream, datastream-dump, json, null, text, xml -o, --option Format-specific options. Use --format-options to find out what options are available. --format-options Prints the list of valid options for --option for the converter format . Arguments: [source] File to read from (stdin if none) [destination] File to write to (stdout if none) $ ./convert --format-options cbor The following options are available for format 'cbor': convert-float-to-int=yes|no Write integers instead of floating point, if no loss of precision occurs on conversion. float16=yes|always|no Write using half-precision floating point. If 'always', won't check for loss of precision. float32=yes|always|no Write using single-precision floating point. If 'always', won't check for loss of precision. signature=yes|no Prepend the CBOR signature to the file output. $ ./convert --format-options json The following options are available for format 'json': compact=no|yes Use compact JSON form. tjmaciei at tjmaciei-mobl1 ~/obj/qt/qt5/qtbase/examples/corelib/serialization/convert $ ./convert --format-options datastream The following options are available for format 'datastream': byteorder=host|big|little Byte order to use. version= QDataStream version (default: Qt 5.0). $ ./convert --format-options xml The following options are available for format 'xml': compact=no|yes Use compact XML form. $ #### Let's play with the tool. Get some JSON data then use the tool to convert $ qtplugininfo --full-json $QTOBJDIR/plugins/imageformats/libqgif.so | tee /tmp/data.json { "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface", "MetaData": { "Keys": [ "gif" ], "MimeTypes": [ "image/gif" ] }, "className": "QGifPlugin", "debug": true, "version": 330496 } $ ./convert /tmp/data.json { "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface", "MetaData": { "Keys": [ "gif" ], "MimeTypes": [ "image/gif" ] }, "className": "QGifPlugin", "debug": true, "version": 330496 } $ ./convert -o compact=yes /tmp/data.json {"IID":"org.qt-project.Qt.QImageIOHandlerFactoryInterface","MetaData":{"Keys":["gif"],"MimeTypes":["image/gif"]},"className":"QGifPlugin","debug":true,"version":330496} $ ./convert -O text /tmp/data.json IID => org.qt-project.Qt.QImageIOHandlerFactoryInterface MetaData => Keys => gif MimeTypes => image/gif className => QGifPlugin debug => true version => 330496 $ ./convert -O datastream-dump /tmp/data.json Map { QVariant(QString, "IID") => QVariant(QString, "org.qt-project.Qt.QImageIOHandlerFactoryInterface"), QVariant(QString, "MetaData") => Map { QVariant(QString, "Keys") => List [ QVariant(QString, "gif") ], QVariant(QString, "MimeTypes") => List [ QVariant(QString, "image/gif") ] }, QVariant(QString, "className") => QVariant(QString, "QGifPlugin"), QVariant(QString, "debug") => QVariant(bool, true), QVariant(QString, "version") => QVariant(double, 330496) } $ ./convert -O xml /tmp/data.json true 330496 $ ### Convert so some other formats: $ ./convert -O binary-json /tmp/data.json /tmp/data.bjson $ ./convert -O cbor /tmp/data.json /tmp/data.cbor $ ./convert -o compact=yes -O xml /tmp/data.json /tmp/data.xml $ ./convert -o byteorder=host -O datastream /tmp/data.json /tmp/data.ds $ v /tmp/data.* -rw-r--r-- 1 tjmaciei users 276 abr 24 23:53 /tmp/data.bjson -rw-r--r-- 1 tjmaciei users 141 abr 24 23:53 /tmp/data.cbor -rw-r--r-- 1 tjmaciei users 168 abr 25 00:07 /tmp/data.compact-json -rw-r--r-- 1 tjmaciei users 359 abr 24 23:58 /tmp/data.ds -rw-r--r-- 1 tjmaciei users 269 abr 24 23:51 /tmp/data.json -rw-r--r-- 1 tjmaciei users 825 abr 25 00:06 /tmp/data.xml $ file /tmp/data.* /tmp/data.bjson: data /tmp/data.cbor: Concise Binary Object Representation (CBOR) container (array) (map) /tmp/data.compact-json: ASCII text, with no line terminators /tmp/data.ds: data /tmp/data.json: ASCII text /tmp/data.xml: XML 1.0 document, ASCII text, with very long lines $ ./convert /tmp/data.bjson { "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface", "MetaData": { "Keys": [ "gif" ], "MimeTypes": [ "image/gif" ] }, "className": "QGifPlugin", "debug": true, "version": 330496 } $ ./convert /tmp/data.cbor { "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface", "MetaData": { "Keys": [ "gif" ], "MimeTypes": [ "image/gif" ] }, "className": "QGifPlugin", "debug": true, "version": 330496 } $ ./convert /tmp/data.ds Map { QVariant(QString, "IID") => QVariant(QString, "org.qt-project.Qt.QImageIOHandlerFactoryInterface"), QVariant(QString, "MetaData") => Map { QVariant(QString, "Keys") => List [ QVariant(QString, "gif") ], QVariant(QString, "MimeTypes") => List [ QVariant(QString, "image/gif") ] }, QVariant(QString, "className") => QVariant(QString, "QGifPlugin"), QVariant(QString, "debug") => QVariant(bool, true), QVariant(QString, "version") => QVariant(double, 330496) } $ ### XML reading is broken $ ./convert /tmp/data.xml 1:176: Invalid XML Characters ''. $ ./convert -O text /tmp/data.cbor IID => org.qt-project.Qt.QImageIOHandlerFactoryInterface MetaData => Keys => gif MimeTypes => image/gif className => QGifPlugin debug => true version => 330496 $ ./convert -O datastream-dump /tmp/data.cbor Map { QVariant(QString, "IID") => QVariant(QString, "org.qt-project.Qt.QImageIOHandlerFactoryInterface"), QVariant(QString, "MetaData") => Map { QVariant(QString, "Keys") => List [ QVariant(QString, "gif") ], QVariant(QString, "MimeTypes") => List [ QVariant(QString, "image/gif") ] }, QVariant(QString, "className") => QVariant(QString, "QGifPlugin"), QVariant(QString, "debug") => QVariant(bool, true), QVariant(QString, "version") => QVariant(qlonglong, 330496) } $ #### Dumps of the binary files $ ../cbordump/cbordump --annotated /tmp/data.cbor d9 d9 f7 # Tag 55799 (Self-describe CBOR; see Section 2.4.5 [RFC7049]) a5 # Map length 5 63 # Text string length 3 49 49 44 # "IID" 78 31 # Text string length 49 6f 72 67 2e 71 74 2d 70 72 6f 6a 65 63 74 # "org.qt-project" 2e 51 74 2e 51 49 6d 61 67 65 49 4f 48 61 # ".Qt.QImageIOHa" 6e 64 6c 65 72 46 61 63 74 6f 72 79 49 6e # "ndlerFactoryIn" 74 65 72 66 61 63 65 # "terface" 68 # Text string length 8 4d 65 74 61 44 61 74 61 # "MetaData" a2 # Map length 2 64 # Text string length 4 4b 65 79 73 # "Keys" 81 # Array length 1 63 # Text string length 3 67 69 66 # "gif" 69 # Text string length 9 4d 69 6d 65 54 79 70 65 73 # "MimeTypes" 81 # Array length 1 69 # Text string length 9 69 6d 61 67 65 2f 67 69 66 # "image/gif" 69 # Text string length 9 63 6c 61 73 73 4e 61 6d 65 # "className" 6a # Text string length 10 51 47 69 66 50 6c 75 67 69 6e # "QGifPlugin" 65 # Text string length 5 64 65 62 75 67 # "debug" f5 # Simple Type true 67 # Text string length 7 76 65 72 73 69 6f 6e # "version" 1a 00 05 0b 00 # Unsigned integer 0x50b00 $ xxd /tmp/data.bjson 00000000: 7162 6a73 0100 0000 0c01 0000 0b00 0000 qbjs............ 00000010: f800 0000 1b03 0000 0300 4949 4400 0000 ..........IID... 00000020: 3100 6f72 672e 7174 2d70 726f 6a65 6374 1.org.qt-project 00000030: 2e51 742e 5149 6d61 6765 494f 4861 6e64 .Qt.QImageIOHand 00000040: 6c65 7246 6163 746f 7279 496e 7465 7266 lerFactoryInterf 00000050: 6163 6500 950b 0000 0800 4d65 7461 4461 ace.......MetaDa 00000060: 7461 0000 6400 0000 0500 0000 5c00 0000 ta..d.......\... 00000070: 1403 0000 0400 4b65 7973 0000 1800 0000 ......Keys...... 00000080: 0200 0000 1400 0000 0300 6769 6600 0000 ..........gif... 00000090: 8b01 0000 1408 0000 0900 4d69 6d65 5479 ..........MimeTy 000000a0: 7065 7300 1c00 0000 0200 0000 1800 0000 pes............. 000000b0: 0900 696d 6167 652f 6769 6600 8b01 0000 ..image/gif..... 000000c0: 0c00 0000 3000 0000 1b1a 0000 0900 636c ....0.........cl 000000d0: 6173 734e 616d 6500 0a00 5147 6966 506c assName...QGifPl 000000e0: 7567 696e 3100 0000 0500 6465 6275 6700 ugin1.....debug. 000000f0: 1a60 a100 0700 7665 7273 696f 6e00 0000 .`....version... 00000100: 0c00 0000 4c00 0000 c000 0000 dc00 0000 ....L........... 00000110: e800 0000 .... $ xxd /tmp/data.ds 00000000: 7164 736c 0d00 0000 0800 0000 0005 0000 qdsl............ 00000010: 000e 0000 0076 0065 0072 0073 0069 006f .....v.e.r.s.i.o 00000020: 006e 0006 0000 0000 0000 0000 002c 1441 .n...........,.A 00000030: 0a00 0000 6400 6500 6200 7500 6700 0100 ....d.e.b.u.g... 00000040: 0000 0001 1200 0000 6300 6c00 6100 7300 ........c.l.a.s. 00000050: 7300 4e00 6100 6d00 6500 0a00 0000 0014 s.N.a.m.e....... 00000060: 0000 0051 0047 0069 0066 0050 006c 0075 ...Q.G.i.f.P.l.u 00000070: 0067 0069 006e 0010 0000 004d 0065 0074 .g.i.n.....M.e.t 00000080: 0061 0044 0061 0074 0061 0008 0000 0000 .a.D.a.t.a...... 00000090: 0200 0000 1200 0000 4d00 6900 6d00 6500 ........M.i.m.e. 000000a0: 5400 7900 7000 6500 7300 0900 0000 0001 T.y.p.e.s....... 000000b0: 0000 000a 0000 0000 1200 0000 6900 6d00 ............i.m. 000000c0: 6100 6700 6500 2f00 6700 6900 6600 0800 a.g.e./.g.i.f... 000000d0: 0000 4b00 6500 7900 7300 0900 0000 0001 ..K.e.y.s....... 000000e0: 0000 000a 0000 0000 0600 0000 6700 6900 ............g.i. 000000f0: 6600 0600 0000 4900 4900 4400 0a00 0000 f.....I.I.D..... 00000100: 0062 0000 006f 0072 0067 002e 0071 0074 .b...o.r.g...q.t 00000110: 002d 0070 0072 006f 006a 0065 0063 0074 .-.p.r.o.j.e.c.t 00000120: 002e 0051 0074 002e 0051 0049 006d 0061 ...Q.t...Q.I.m.a 00000130: 0067 0065 0049 004f 0048 0061 006e 0064 .g.e.I.O.H.a.n.d 00000140: 006c 0065 0072 0046 0061 0063 0074 006f .l.e.r.F.a.c.t.o 00000150: 0072 0079 0049 006e 0074 0065 0072 0066 .r.y.I.n.t.e.r.f 00000160: 0061 0063 0065 00 .a.c.e. From theoriginalgri at gmail.com Wed Apr 25 12:53:25 2018 From: theoriginalgri at gmail.com (Christoph Keller) Date: Wed, 25 Apr 2018 12:53:25 +0200 Subject: [Interest] Unable to run QtQuick TestCase from qrc resources Message-ID: Hello, is there a way to run the QtQuick TestCases from qrc resources? Running them from the file system works as as expected but setting the source path to ":/" leads to the TestCase being loaded but it cannot find other imports (in the same directory). I've attached an example which always outputs: file::/tst_TestItem.qml:4:1: TestItem is not a type TestItem { ^ Christoph -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: importtest.zip Type: application/zip Size: 3218 bytes Desc: not available URL: From igor.mironchik at gmail.com Wed Apr 25 14:19:46 2018 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Wed, 25 Apr 2018 15:19:46 +0300 Subject: [Interest] Unable to run QtQuick TestCase from qrc resources In-Reply-To: References: Message-ID: <209661bf-546c-2d27-d241-fc08a61d3f76@gmail.com> Hi, Try qrc:/ as prefix... On 25.04.2018 13:53, Christoph Keller wrote: > > Hello, > > is there a way to run the QtQuick TestCases from qrc resources? > Running them from the file system works as as expected but setting the > source path to ":/" leads to the TestCase being loaded but it cannot > find other imports (in the same directory). > > I've attached an example which always outputs: > > file::/tst_TestItem.qml:4:1: TestItem is not a type > > TestItem { > > ^ > > Christoph > > > > _______________________________________________ > 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 Wed Apr 25 14:41:58 2018 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Wed, 25 Apr 2018 15:41:58 +0300 Subject: [Interest] Unable to run QtQuick TestCase from qrc resources In-Reply-To: <209661bf-546c-2d27-d241-fc08a61d3f76@gmail.com> References: <209661bf-546c-2d27-d241-fc08a61d3f76@gmail.com> Message-ID: <87266b90-7962-e1e8-f481-41969aaf6e21@gmail.com> Hi, On 25.04.2018 15:19, Igor Mironchik wrote: > > Hi, > > Try qrc:/ as prefix... > Will not work too... Does qrc:/ supported by Qt Quick Test at all? Seems that no... > > On 25.04.2018 13:53, Christoph Keller wrote: >> >> Hello, >> >> is there a way to run the QtQuick TestCases from qrc resources? >> Running them from the file system works as as expected but setting >> the source path to ":/" leads to the TestCase being loaded but it >> cannot find other imports (in the same directory). >> >> I've attached an example which always outputs: >> >> file::/tst_TestItem.qml:4:1: TestItem is not a type >> >> TestItem { >> >> ^ >> >> Christoph >> >> >> >> _______________________________________________ >> 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 theoriginalgri at gmail.com Wed Apr 25 15:16:35 2018 From: theoriginalgri at gmail.com (Christoph Keller) Date: Wed, 25 Apr 2018 15:16:35 +0200 Subject: [Interest] Unable to run QtQuick TestCase from qrc resources In-Reply-To: <87266b90-7962-e1e8-f481-41969aaf6e21@gmail.com> References: <209661bf-546c-2d27-d241-fc08a61d3f76@gmail.com> <87266b90-7962-e1e8-f481-41969aaf6e21@gmail.com> Message-ID: <6a11c53b-8b39-35da-f34a-b59a5d4d621b@gmail.com> They should, at least the source of the framework sets the path to ":/" on Android: https://github.com/qt/qtdeclarative/blob/5.11/src/qmltest/quicktest.cpp#L422 The same applies for the sourcePath property on all platforms: https://github.com/qt/qtdeclarative/blob/5.11/src/qmltest/quicktest.cpp#L536 My tst_TestItem.qml is loaded, but it can't find the normal QtQuick Item it should test. Christoph On 25.04.18 14:41, Igor Mironchik wrote: > > Hi, > > > On 25.04.2018 15:19, Igor Mironchik wrote: >> >> Hi, >> >> Try qrc:/ as prefix... >> > > Will not work too... Does qrc:/ supported by Qt Quick Test at all? > Seems that no... > >> >> On 25.04.2018 13:53, Christoph Keller wrote: >>> >>> Hello, >>> >>> is there a way to run the QtQuick TestCases from qrc resources? >>> Running them from the file system works as as expected but setting >>> the source path to ":/" leads to the TestCase being loaded but it >>> cannot find other imports (in the same directory). >>> >>> I've attached an example which always outputs: >>> >>> file::/tst_TestItem.qml:4:1: TestItem is not a type >>> >>> TestItem { >>> >>> ^ >>> >>> Christoph >>> >>> >>> >>> _______________________________________________ >>> 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 roland at logikalsolutions.com Wed Apr 25 15:53:26 2018 From: roland at logikalsolutions.com (Roland Hughes) Date: Wed, 25 Apr 2018 08:53:26 -0500 Subject: [Interest] Interest Digest, Vol 79, Issue 19 In-Reply-To: References: Message-ID: On 04/25/2018 08:24 AM, Thiago Macieira wrote: > Another issue is that QDataStream tries to store all integers in big endian, > unless you tell it otherwise. Since most machines are little-endian, that's a > waste of CPU cycles, as you're doing the endian conversion twice, for little > gain, however fast it is. Be gentle and tread lightly here. Don't just take an x86 view of the world when considering this change. Having gray in the hair and a long time in the field has me recalling a reason behind that. Many embedded Qt projects were creating devices which fed data via hook or crook back to IBM, Amdahl, Prime, PowerPC based, etc. While Amdahl and Prime have ceased production they are still in the field and still being fed. https://www.indeed.com/viewjob?jk=f0ccbd43e9217ed2&q=amdahl&tk=1cbugjg1f1a4o2lk&from=web&vjs=3 Unisys was little-endian but the COBOL compiler had USAGE IS COMP clauses which would import/use big-endian format. One of the few which had that. Most everyone else had to use FORTRAN or role their own special COBOL libraries. Yes, most of the systems catching the output were COBOL. It still is the largest "production" language in the world by application size and base. What I'm trying to tell you is there was and still is a legitimate reason to have a QDataStream which can write big-endian. Don't just rip it out. Make it some kind of settable boolean flag in the class. There is no way to know just how many of these things are still out there and are still being developed. Most were in the world of defense contractor/military -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From rbehm at hushmail.com Wed Apr 25 16:05:18 2018 From: rbehm at hushmail.com (Reinhardt Behm) Date: Wed, 25 Apr 2018 22:05:18 +0800 Subject: [Interest] Interest Digest, Vol 79, Issue 19 In-Reply-To: References: Message-ID: <2b6606b8138759ed6aa65dd343b9b04d@smtp.hushmail.com> On Wednesday 25 April 2018 08:53:26 Roland Hughes wrote: > On 04/25/2018 08:24 AM, Thiago Macieira wrote: > > Another issue is that QDataStream tries to store all integers in big > > endian, unless you tell it otherwise. Since most machines are > > little-endian, that's a waste of CPU cycles, as you're doing the endian > > conversion twice, for little gain, however fast it is. > > Be gentle and tread lightly here. Don't just take an x86 view of the > world when considering this change. Having gray in the hair and a long > time in the field has me recalling a reason behind that. Many embedded > Qt projects were creating devices which fed data via hook or crook back > to IBM, Amdahl, Prime, PowerPC based, etc. While Amdahl and Prime have > ceased production they are still in the field and still being fed. > > https://www.indeed.com/viewjob?jk=f0ccbd43e9217ed2&q=amdahl&tk=1cbugjg1f1a4o > 2lk&from=web&vjs=3 > > Unisys was little-endian but the COBOL compiler had USAGE IS COMP > clauses which would import/use big-endian format. One of the few which > had that. Most everyone else had to use FORTRAN or role their own > special COBOL libraries. Yes, most of the systems catching the output > were COBOL. It still is the largest "production" language in the world > by application size and base. > > What I'm trying to tell you is there was and still is a legitimate > reason to have a QDataStream which can write big-endian. Don't just rip > it out. Make it some kind of settable boolean flag in the class. There > is no way to know just how many of these things are still out there and > are still being developed. Most were in the world of defense > contractor/military It is not only that big iron. There many small controllers to which e.g. my Qt-applications are talking. Here I have both endian types. -- Best Regards Reinhardt Behm From igor.mironchik at gmail.com Wed Apr 25 16:08:01 2018 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Wed, 25 Apr 2018 17:08:01 +0300 Subject: [Interest] Unable to run QtQuick TestCase from qrc resources In-Reply-To: <6a11c53b-8b39-35da-f34a-b59a5d4d621b@gmail.com> References: <209661bf-546c-2d27-d241-fc08a61d3f76@gmail.com> <87266b90-7962-e1e8-f481-41969aaf6e21@gmail.com> <6a11c53b-8b39-35da-f34a-b59a5d4d621b@gmail.com> Message-ID: <46ee539d-c560-8784-ff74-00da11ed5ac5@gmail.com> Hi, if (path.startsWith(QLatin1String(":/")))             view.setSource(QUrl(QLatin1String("qrc:") + path.midRef(2))); Bug is here... path.midRef(1) should be or QLatin1String("qrc:/") On 25.04.2018 16:16, Christoph Keller wrote: > > They should, at least the source of the framework sets the path to > ":/" on Android: > https://github.com/qt/qtdeclarative/blob/5.11/src/qmltest/quicktest.cpp#L422 > > The same applies for the sourcePath property on all platforms: > https://github.com/qt/qtdeclarative/blob/5.11/src/qmltest/quicktest.cpp#L536 > > My tst_TestItem.qml is loaded, but it can't find the normal QtQuick > Item it should test. > > Christoph > > > On 25.04.18 14:41, Igor Mironchik wrote: >> >> Hi, >> >> >> On 25.04.2018 15:19, Igor Mironchik wrote: >>> >>> Hi, >>> >>> Try qrc:/ as prefix... >>> >> >> Will not work too... Does qrc:/ supported by Qt Quick Test at all? >> Seems that no... >> >>> >>> On 25.04.2018 13:53, Christoph Keller wrote: >>>> >>>> Hello, >>>> >>>> is there a way to run the QtQuick TestCases from qrc resources? >>>> Running them from the file system works as as expected but setting >>>> the source path to ":/" leads to the TestCase being loaded but it >>>> cannot find other imports (in the same directory). >>>> >>>> I've attached an example which always outputs: >>>> >>>> file::/tst_TestItem.qml:4:1: TestItem is not a type >>>> >>>> TestItem { >>>> >>>> ^ >>>> >>>> Christoph >>>> >>>> >>>> >>>> _______________________________________________ >>>> 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 annulen at yandex.ru Wed Apr 25 16:13:18 2018 From: annulen at yandex.ru (Konstantin Tokarev) Date: Wed, 25 Apr 2018 17:13:18 +0300 Subject: [Interest] Faster QXmlStreamWriter? In-Reply-To: <2329295.61W2rLc9k5@tjmaciei-mobl1> References: <2541354.R559aBQJkG@tjmaciei-mobl1> <20180425074803.6b2ccd75@gollum2.gollum.uni.cx> <2329295.61W2rLc9k5@tjmaciei-mobl1> Message-ID: <588751524665598@web5j.yandex.ru> 25.04.2018, 09:43, "Thiago Macieira" : > So Qt 6 QJsonDocument & family will have the 128 MB limit > removed, at the expense of the binary JSON format requiring parsing. That's sad, as we lose the single solution inside Qt for serialization without parsing > > -- > 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 -- Regards, Konstantin From theoriginalgri at gmail.com Wed Apr 25 16:59:25 2018 From: theoriginalgri at gmail.com (Christoph Keller) Date: Wed, 25 Apr 2018 16:59:25 +0200 Subject: [Interest] Unable to run QtQuick TestCase from qrc resources In-Reply-To: <46ee539d-c560-8784-ff74-00da11ed5ac5@gmail.com> References: <209661bf-546c-2d27-d241-fc08a61d3f76@gmail.com> <87266b90-7962-e1e8-f481-41969aaf6e21@gmail.com> <6a11c53b-8b39-35da-f34a-b59a5d4d621b@gmail.com> <46ee539d-c560-8784-ff74-00da11ed5ac5@gmail.com> Message-ID: <14b58940-bc87-5569-eaa2-826bb82219f9@gmail.com> You're right, that line looks wrong indeed. I've got a Qt version to debug now. I don't come that for, already exists at the TestCaseCollector (https://github.com/qt/qtdeclarative/blob/5.11/src/qmltest/quicktest.cpp#L493). Internally this creates QQmlComponent and I can reproduce the error with: >     QGuiApplication app(argc, argv); > >     QFileInfo fileInfo(":/tst_TestItem.qml"); > >     QQmlEngine engine; >     QQmlComponent component(&engine, fileInfo.absoluteFilePath()); >     QList errors = component.errors(); > >     for(const QQmlError &error : errors) { >         qWarning() << error.toString(); >     } > >     Q_ASSERT(errors.isEmpty()); fileIinfo.absoluteFilePath() resolves to ":/tst_TestItem.qml" which fails to load. If manually changed to "qrc:/tst_TestItem.qml", it succeeds loading. It seems the replacement from ":/" to "qrc:" like in the line you found needs to be applied in TestCaseCollector, too. Christoph On 25.04.18 16:08, Igor Mironchik wrote: > > Hi, > > if (path.startsWith(QLatin1String(":/"))) >             view.setSource(QUrl(QLatin1String("qrc:") + path.midRef(2))); > > > Bug is here... path.midRef(1) should be > > or > > QLatin1String("qrc:/") > > > On 25.04.2018 16:16, Christoph Keller wrote: >> >> They should, at least the source of the framework sets the path to >> ":/" on Android: >> https://github.com/qt/qtdeclarative/blob/5.11/src/qmltest/quicktest.cpp#L422 >> >> The same applies for the sourcePath property on all platforms: >> https://github.com/qt/qtdeclarative/blob/5.11/src/qmltest/quicktest.cpp#L536 >> >> My tst_TestItem.qml is loaded, but it can't find the normal QtQuick >> Item it should test. >> >> Christoph >> >> >> On 25.04.18 14:41, Igor Mironchik wrote: >>> >>> Hi, >>> >>> >>> On 25.04.2018 15:19, Igor Mironchik wrote: >>>> >>>> Hi, >>>> >>>> Try qrc:/ as prefix... >>>> >>> >>> Will not work too... Does qrc:/ supported by Qt Quick Test at all? >>> Seems that no... >>> >>>> >>>> On 25.04.2018 13:53, Christoph Keller wrote: >>>>> >>>>> Hello, >>>>> >>>>> is there a way to run the QtQuick TestCases from qrc resources? >>>>> Running them from the file system works as as expected but setting >>>>> the source path to ":/" leads to the TestCase being loaded but it >>>>> cannot find other imports (in the same directory). >>>>> >>>>> I've attached an example which always outputs: >>>>> >>>>> file::/tst_TestItem.qml:4:1: TestItem is not a type >>>>> >>>>> TestItem { >>>>> >>>>> ^ >>>>> >>>>> Christoph >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> 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 Wed Apr 25 17:09:24 2018 From: igor.mironchik at gmail.com (Igor Mironchik) Date: Wed, 25 Apr 2018 18:09:24 +0300 Subject: [Interest] Unable to run QtQuick TestCase from qrc resources In-Reply-To: <14b58940-bc87-5569-eaa2-826bb82219f9@gmail.com> References: <209661bf-546c-2d27-d241-fc08a61d3f76@gmail.com> <87266b90-7962-e1e8-f481-41969aaf6e21@gmail.com> <6a11c53b-8b39-35da-f34a-b59a5d4d621b@gmail.com> <46ee539d-c560-8784-ff74-00da11ed5ac5@gmail.com> <14b58940-bc87-5569-eaa2-826bb82219f9@gmail.com> Message-ID: Hi, You are right too. This should be done too. On 25.04.2018 17:59, Christoph Keller wrote: > You're right, that line looks wrong indeed. > > I've got a Qt version to debug now. I don't come that for, already > exists at the TestCaseCollector > (https://github.com/qt/qtdeclarative/blob/5.11/src/qmltest/quicktest.cpp#L493). > > Internally this creates QQmlComponent and I can reproduce the error with: >>     QGuiApplication app(argc, argv); >> >>     QFileInfo fileInfo(":/tst_TestItem.qml"); >> >>     QQmlEngine engine; >>     QQmlComponent component(&engine, fileInfo.absoluteFilePath()); >>     QList errors = component.errors(); >> >>     for(const QQmlError &error : errors) { >>         qWarning() << error.toString(); >>     } >> >>     Q_ASSERT(errors.isEmpty()); > fileIinfo.absoluteFilePath() resolves to ":/tst_TestItem.qml" which > fails to load. > > If manually changed to "qrc:/tst_TestItem.qml", it succeeds loading. > > It seems the replacement from ":/" to "qrc:" like in the line you > found needs to be applied in TestCaseCollector, too. > > Christoph > > On 25.04.18 16:08, Igor Mironchik wrote: >> >> Hi, >> >> if (path.startsWith(QLatin1String(":/"))) >>             view.setSource(QUrl(QLatin1String("qrc:") + path.midRef(2))); >> >> >> Bug is here... path.midRef(1) should be >> >> or >> >> QLatin1String("qrc:/") >> >> >> On 25.04.2018 16:16, Christoph Keller wrote: >>> >>> They should, at least the source of the framework sets the path to >>> ":/" on Android: >>> https://github.com/qt/qtdeclarative/blob/5.11/src/qmltest/quicktest.cpp#L422 >>> >>> The same applies for the sourcePath property on all platforms: >>> https://github.com/qt/qtdeclarative/blob/5.11/src/qmltest/quicktest.cpp#L536 >>> >>> My tst_TestItem.qml is loaded, but it can't find the normal QtQuick >>> Item it should test. >>> >>> Christoph >>> >>> >>> On 25.04.18 14:41, Igor Mironchik wrote: >>>> >>>> Hi, >>>> >>>> >>>> On 25.04.2018 15:19, Igor Mironchik wrote: >>>>> >>>>> Hi, >>>>> >>>>> Try qrc:/ as prefix... >>>>> >>>> >>>> Will not work too... Does qrc:/ supported by Qt Quick Test at all? >>>> Seems that no... >>>> >>>>> >>>>> On 25.04.2018 13:53, Christoph Keller wrote: >>>>>> >>>>>> Hello, >>>>>> >>>>>> is there a way to run the QtQuick TestCases from qrc resources? >>>>>> Running them from the file system works as as expected but >>>>>> setting the source path to ":/" leads to the TestCase being >>>>>> loaded but it cannot find other imports (in the same directory). >>>>>> >>>>>> I've attached an example which always outputs: >>>>>> >>>>>> file::/tst_TestItem.qml:4:1: TestItem is not a type >>>>>> >>>>>> TestItem { >>>>>> >>>>>> ^ >>>>>> >>>>>> Christoph >>>>>> >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> 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 andre.hartmann at iseg-hv.de Wed Apr 25 17:14:54 2018 From: andre.hartmann at iseg-hv.de (=?UTF-8?Q?Andr=c3=a9_Hartmann?=) Date: Wed, 25 Apr 2018 17:14:54 +0200 Subject: [Interest] Unable to run QtQuick TestCase from qrc resources In-Reply-To: <46ee539d-c560-8784-ff74-00da11ed5ac5@gmail.com> References: <209661bf-546c-2d27-d241-fc08a61d3f76@gmail.com> <87266b90-7962-e1e8-f481-41969aaf6e21@gmail.com> <6a11c53b-8b39-35da-f34a-b59a5d4d621b@gmail.com> <46ee539d-c560-8784-ff74-00da11ed5ac5@gmail.com> Message-ID: Hi Igor, Am 25.04.2018 um 16:08 schrieb Igor Mironchik: > Hi, > > if (path.startsWith(QLatin1String(":/"))) >             view.setSource(QUrl(QLatin1String("qrc:") + path.midRef(2))); > > > Bug is here... path.midRef(1) should be > > or > > QLatin1String("qrc:/") Do you want to provide a fix? :) André > > > On 25.04.2018 16:16, Christoph Keller wrote: >> >> They should, at least the source of the framework sets the path to >> ":/" on Android: >> https://github.com/qt/qtdeclarative/blob/5.11/src/qmltest/quicktest.cpp#L422 >> >> The same applies for the sourcePath property on all platforms: >> https://github.com/qt/qtdeclarative/blob/5.11/src/qmltest/quicktest.cpp#L536 >> >> My tst_TestItem.qml is loaded, but it can't find the normal QtQuick >> Item it should test. >> >> Christoph >> >> >> On 25.04.18 14:41, Igor Mironchik wrote: >>> >>> Hi, >>> >>> >>> On 25.04.2018 15:19, Igor Mironchik wrote: >>>> >>>> Hi, >>>> >>>> Try qrc:/ as prefix... >>>> >>> >>> Will not work too... Does qrc:/ supported by Qt Quick Test at all? >>> Seems that no... >>> >>>> >>>> On 25.04.2018 13:53, Christoph Keller wrote: >>>>> >>>>> Hello, >>>>> >>>>> is there a way to run the QtQuick TestCases from qrc resources? >>>>> Running them from the file system works as as expected but setting >>>>> the source path to ":/" leads to the TestCase being loaded but it >>>>> cannot find other imports (in the same directory). >>>>> >>>>> I've attached an example which always outputs: >>>>> >>>>> file::/tst_TestItem.qml:4:1: TestItem is not a type >>>>> >>>>> TestItem { >>>>> >>>>> ^ >>>>> >>>>> Christoph >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> 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 > -- Dipl.-Ing. (FH) André Hartmann Softwareentwicklung / Software Development E-Mail: andre.hartmann at iseg-hv.de | Tel: +49 351 26996-43 | Fax: +49 351 26996-21 iseg Spezialelektronik GmbH - HIGH VOLTAGE. EXACTLY. iseg-hv.de | iseg-hv.com | download.iseg-hv.com Bautzner Landstr. 23, 01454 Radeberg / Rossendorf, Germany Geschäftsführer / Managing directors: Dr. Frank Gleisberg, Dr. Joachim Pöthig Amtsgericht / Lower district court: Dresden HRB 16250 Umsatzsteuer-Id: / VAT-ID: DE812508942 News / Information https://iseg-hv.com/en/products/control#isegControl2 isegControl2 - Unified Control Software https://iseg-hv.com/en/products/detail/EHS EHS FLEX - Customize and keep the price https://iseg-hv.com/en/products/detail/EHS EHS STACK - Perfect for GEM Detectors https://iseg-hv.com/files/iseg-high-voltage-power-supplies.pdf NEW! Product catalog 2017 / 2018 released https://iseg-hv.com/en/products/detail/NHR NHR - NIM HV-Supply with reversible polarity Links https://www.linkedin.com/company/12726924 iseg on LINKEDIN | Let's stay connected! https://www.youtube.com/channel/UC5AL-ZgOqSim_1gYNnndyzQ iseg on YOUTUBE | Tutorials and more ... https://www.twitter.com/iseg_hv iseg on TWITTER | please follow! https://iseg-hv.com/files/iseg-high-voltage-power-supplies.pdf iseg CATALOG | download product catalog as PDF http://download.iseg-hv.com/ iseg DOWNLOADS | manuals, software, firmware and more... Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail ist nicht gestattet. This e-mail 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 copying, disclosure or distribution of the material in this e-mail is strictly forbidden. From theoriginalgri at gmail.com Wed Apr 25 17:20:42 2018 From: theoriginalgri at gmail.com (Christoph Keller) Date: Wed, 25 Apr 2018 17:20:42 +0200 Subject: [Interest] Unable to run QtQuick TestCase from qrc resources In-Reply-To: References: <209661bf-546c-2d27-d241-fc08a61d3f76@gmail.com> <87266b90-7962-e1e8-f481-41969aaf6e21@gmail.com> <6a11c53b-8b39-35da-f34a-b59a5d4d621b@gmail.com> <46ee539d-c560-8784-ff74-00da11ed5ac5@gmail.com> Message-ID: <6c1e2256-b8df-9a3a-b05b-e4675578afd4@gmail.com> I have patched both blocks in the 5.11 branch: https://codereview.qt-project.org/#/c/227495/ On 25.04.18 17:14, André Hartmann wrote: > Hi Igor, > > Am 25.04.2018 um 16:08 schrieb Igor Mironchik: >> Hi, >> >> if (path.startsWith(QLatin1String(":/"))) >>              view.setSource(QUrl(QLatin1String("qrc:") + >> path.midRef(2))); >> >> >> Bug is here... path.midRef(1) should be >> >> or >> >> QLatin1String("qrc:/") > > Do you want to provide a fix? :) > > André > >> >> >> On 25.04.2018 16:16, Christoph Keller wrote: >>> >>> They should, at least the source of the framework sets the path to >>> ":/" on Android: >>> https://github.com/qt/qtdeclarative/blob/5.11/src/qmltest/quicktest.cpp#L422 >>> >>> The same applies for the sourcePath property on all platforms: >>> https://github.com/qt/qtdeclarative/blob/5.11/src/qmltest/quicktest.cpp#L536 >>> >>> >>> My tst_TestItem.qml is loaded, but it can't find the normal QtQuick >>> Item it should test. >>> >>> Christoph >>> >>> >>> On 25.04.18 14:41, Igor Mironchik wrote: >>>> >>>> Hi, >>>> >>>> >>>> On 25.04.2018 15:19, Igor Mironchik wrote: >>>>> >>>>> Hi, >>>>> >>>>> Try qrc:/ as prefix... >>>>> >>>> >>>> Will not work too... Does qrc:/ supported by Qt Quick Test at all? >>>> Seems that no... >>>> >>>>> >>>>> On 25.04.2018 13:53, Christoph Keller wrote: >>>>>> >>>>>> Hello, >>>>>> >>>>>> is there a way to run the QtQuick TestCases from qrc resources? >>>>>> Running them from the file system works as as expected but >>>>>> setting the source path to ":/" leads to the TestCase being >>>>>> loaded but it cannot find other imports (in the same directory). >>>>>> >>>>>> I've attached an example which always outputs: >>>>>> >>>>>> file::/tst_TestItem.qml:4:1: TestItem is not a type >>>>>> >>>>>> TestItem { >>>>>> >>>>>> ^ >>>>>> >>>>>> Christoph >>>>>> >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> 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 >> > > From thiago.macieira at intel.com Wed Apr 25 17:45:41 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Wed, 25 Apr 2018 08:45:41 -0700 Subject: [Interest] Faster QXmlStreamWriter? In-Reply-To: <588751524665598@web5j.yandex.ru> References: <2329295.61W2rLc9k5@tjmaciei-mobl1> <588751524665598@web5j.yandex.ru> Message-ID: <2391177.ANj6l7ROQH@tjmaciei-mobl1> On Wednesday, 25 April 2018 07:13:18 PDT Konstantin Tokarev wrote: > 25.04.2018, 09:43, "Thiago Macieira" : > > So Qt 6 QJsonDocument & family will have the 128 MB limit > > removed, at the expense of the binary JSON format requiring parsing. > > That's sad, as we lose the single solution inside Qt for serialization > without parsing That was going to happen anyway, because of the 128 MB size limit. If we did nothing else, we'd create a new format with a much expanded size limit, which means the current format would need to be parsed and converted. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From thiago.macieira at intel.com Wed Apr 25 17:48:25 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Wed, 25 Apr 2018 08:48:25 -0700 Subject: [Interest] Interest Digest, Vol 79, Issue 19 In-Reply-To: References: Message-ID: <2694165.k9kcBUKKyk@tjmaciei-mobl1> On Wednesday, 25 April 2018 06:53:26 PDT Roland Hughes wrote: > What I'm trying to tell you is there was and still is a legitimate > reason to have a QDataStream which can write big-endian. Don't just rip > it out. Make it some kind of settable boolean flag in the class. There > is no way to know just how many of these things are still out there and > are still being developed. Most were in the world of defense > contractor/military I never claimed it isn't. In fact, there is a flag to set the endianness. When I said "most machines are little-endian", I was referring to machines Qt runs on and, therefore, would use QDataStream. The fact that the default is big endian is short-sighted. It should default to little-endian. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From thiago.macieira at intel.com Wed Apr 25 18:02:55 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Wed, 25 Apr 2018 09:02:55 -0700 Subject: [Interest] Faster QXmlStreamWriter? In-Reply-To: <2391177.ANj6l7ROQH@tjmaciei-mobl1> References: <588751524665598@web5j.yandex.ru> <2391177.ANj6l7ROQH@tjmaciei-mobl1> Message-ID: <1839894.BnFBH5R7up@tjmaciei-mobl1> On Wednesday, 25 April 2018 08:45:41 PDT Thiago Macieira wrote: > On Wednesday, 25 April 2018 07:13:18 PDT Konstantin Tokarev wrote: > > 25.04.2018, 09:43, "Thiago Macieira" : > > > So Qt 6 QJsonDocument & family will have the 128 MB limit > > > removed, at the expense of the binary JSON format requiring parsing. > > > > That's sad, as we lose the single solution inside Qt for serialization > > without parsing > > That was going to happen anyway, because of the 128 MB size limit. If we did > nothing else, we'd create a new format with a much expanded size limit, > which means the current format would need to be parsed and converted. By the way, QJsonDocument::fromBinaryData does still perform a correctness check, to make sure it won't crash later reading corrupt data. You can skip this step and then loading your data is extremely fast. Here are my numbers comparing loading that 60+ MB file in both binary JSON format (with validation) and CBOR: Binary JSON: 69,844846 task-clock:u (msec) 196.906.259 cycles:u 422.255.714 instructions:u [There's no readAll(); 70.2% of the time is spent inside QJsonPrivate::Object::isValid] JSON: 255,809132 task-clock:u (msec) 771.771.000 cycles:u 2.690.966.058 instructions:u [80.2% inside QJsonPrivate::Parser::parseValue, 58.7% inside QJsonPrivate::Parser::parseString and 16.3% inside QUtf8Functions::fromUtf8] CBOR: 239,059121 task-clock:u (msec) 562.474.857 cycles:u 1.431.590.428 instructions:u [71.6% inside QCborValue::fromCbor, 65.0% inside QCborContainerPrivate::decodeStringFromCbor, 25.5% inside QCborStreamReader::readStringChunk plus 12.6% inside QUtf8::isValidUtf8] So it's just under 4x slower, but we're still talking about consuming over 250 MB/s of data. PS: YMMV, especially if you don't use CPU-optimised UTF-8 methods like I do. You need to compile your own Qt to get those. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From annulen at yandex.ru Wed Apr 25 18:55:55 2018 From: annulen at yandex.ru (Konstantin Tokarev) Date: Wed, 25 Apr 2018 19:55:55 +0300 Subject: [Interest] Faster QXmlStreamWriter? In-Reply-To: <1839894.BnFBH5R7up@tjmaciei-mobl1> References: <588751524665598@web5j.yandex.ru> <2391177.ANj6l7ROQH@tjmaciei-mobl1> <1839894.BnFBH5R7up@tjmaciei-mobl1> Message-ID: <1258681524675355@web1o.yandex.ru> 25.04.2018, 19:08, "Thiago Macieira" : > On Wednesday, 25 April 2018 08:45:41 PDT Thiago Macieira wrote: >>  On Wednesday, 25 April 2018 07:13:18 PDT Konstantin Tokarev wrote: >>  > 25.04.2018, 09:43, "Thiago Macieira" : >>  > > So Qt 6 QJsonDocument & family will have the 128 MB limit >>  > > removed, at the expense of the binary JSON format requiring parsing. >>  > >>  > That's sad, as we lose the single solution inside Qt for serialization >>  > without parsing >> >>  That was going to happen anyway, because of the 128 MB size limit. If we did >>  nothing else, we'd create a new format with a much expanded size limit, >>  which means the current format would need to be parsed and converted. > > By the way, QJsonDocument::fromBinaryData does still perform a correctness > check, to make sure it won't crash later reading corrupt data. You can skip > this step and then loading your data is extremely fast. For example, QtWebChannel implementations in QtWebKit and QtWebEngine use QJsonDocument as a wire format for exchanging data between processes, of course validation is skept because producer and consumer are reliable. > > Here are my numbers comparing loading that 60+ MB file in both binary JSON > format (with validation) and CBOR: > > Binary JSON: >          69,844846 task-clock:u (msec) >        196.906.259 cycles:u >        422.255.714 instructions:u > [There's no readAll(); 70.2% of the time is spent inside > QJsonPrivate::Object::isValid] > > JSON: >         255,809132 task-clock:u (msec) >        771.771.000 cycles:u >      2.690.966.058 instructions:u > [80.2% inside QJsonPrivate::Parser::parseValue, 58.7% inside > QJsonPrivate::Parser::parseString and 16.3% inside QUtf8Functions::fromUtf8] > > CBOR: >         239,059121 task-clock:u (msec) >        562.474.857 cycles:u >      1.431.590.428 instructions:u > [71.6% inside QCborValue::fromCbor, 65.0% inside > QCborContainerPrivate::decodeStringFromCbor, 25.5% inside > QCborStreamReader::readStringChunk plus 12.6% inside QUtf8::isValidUtf8] > > So it's just under 4x slower, but we're still talking about consuming over > 250 MB/s of data. > > PS: YMMV, especially if you don't use CPU-optimised UTF-8 methods like I do. > You need to compile your own Qt to get those. > > -- > 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 -- Regards, Konstantin From jhihn at gmx.com Thu Apr 26 10:27:59 2018 From: jhihn at gmx.com (Jason H) Date: Thu, 26 Apr 2018 10:27:59 +0200 Subject: [Interest] Interest Digest, Vol 79, Issue 19 In-Reply-To: <2694165.k9kcBUKKyk@tjmaciei-mobl1> References: <2694165.k9kcBUKKyk@tjmaciei-mobl1> Message-ID: > Sent: Wednesday, April 25, 2018 at 5:48 PM > From: "Thiago Macieira" > To: interest at qt-project.org > Subject: Re: [Interest] Interest Digest, Vol 79, Issue 19 > > On Wednesday, 25 April 2018 06:53:26 PDT Roland Hughes wrote: > > What I'm trying to tell you is there was and still is a legitimate > > reason to have a QDataStream which can write big-endian. Don't just rip > > it out. Make it some kind of settable boolean flag in the class. There > > is no way to know just how many of these things are still out there and > > are still being developed. Most were in the world of defense > > contractor/military > > I never claimed it isn't. In fact, there is a flag to set the endianness. > > When I said "most machines are little-endian", I was referring to machines Qt > runs on and, therefore, would use QDataStream. The fact that the default is > big endian is short-sighted. It should default to little-endian. Nah. Big endian is the way to go. Just because one company made little endian prevelant isn't good enough. Network byte order is big endian, and when looking at hex dumps, the bytes appear in the order that you expect to see them... Which is why I think the big endian deadline was chosen. You're sending data with QDataStream, network byte order is the right order. The bits keep getting more significant, right to left, rather than zig zagging right to left then over to the right for the next byte. From ulf.hermann at qt.io Thu Apr 26 10:37:04 2018 From: ulf.hermann at qt.io (Ulf Hermann) Date: Thu, 26 Apr 2018 10:37:04 +0200 Subject: [Interest] Interest Digest, Vol 79, Issue 19 In-Reply-To: <2694165.k9kcBUKKyk@tjmaciei-mobl1> References: <2694165.k9kcBUKKyk@tjmaciei-mobl1> Message-ID: > When I said "most machines are little-endian", I was referring to machines Qt > runs on and, therefore, would use QDataStream. The fact that the default is > big endian is short-sighted. It should default to little-endian. We could change the default. All it takes is a new QDataStream::Version, isn't it? (And whoever prefers big endian can then still setByteOrder() on the data stream). Ulf From roland at logikalsolutions.com Thu Apr 26 14:38:24 2018 From: roland at logikalsolutions.com (Roland Hughes) Date: Thu, 26 Apr 2018 07:38:24 -0500 Subject: [Interest] Interest Digest, Vol 79, Issue 20 In-Reply-To: References: Message-ID: On 04/26/2018 03:44 AM, Thiago Macieira wrote: > On Wednesday, 25 April 2018 06:53:26 PDT Roland Hughes wrote: >> What I'm trying to tell you is there was and still is a legitimate >> reason to have a QDataStream which can write big-endian. Don't just rip >> it out. Make it some kind of settable boolean flag in the class. There >> is no way to know just how many of these things are still out there and >> are still being developed. Most were in the world of defense >> contractor/military > I never claimed it isn't. In fact, there is a flag to set the endianness. > > When I said "most machines are little-endian", I was referring to machines Qt > runs on and, therefore, would use QDataStream. The fact that the default is > big endian is short-sighted. It should default to little-endian. No. Taking a disposable chip's view of the world is short sighted and completely invalidates the historical reason for the class. It was created to feed real computers which operate in Big-Endian. Read up on seismic testing or stuff happening with the Super Colliding Super Conductor. In the case of SCSC many thousands of disposable chip "sensors" running an application to pick up one or a few certain readings are streaming that stuff back to the only box which can handle them, big iron. IBM was never the fastest computationally, but when it comes to data throughput to/from disk they are a 14" city water main and their nearest competitor is happy the one day per week they achieve being a fire hose. Here's a delightful little book about oil well drilling. I've read mine many times. http://iliosresources.com/downloads/come-drill-a-well-in-my-backyard/ In today's world "Big Oil" uses satellites to identify "potential" places with oil reserves. For anything above water they then go through the long, arduous journey of getting permits to do seismic testing. Such testing involves drilling thousands of shot-holes (depending on the size of the potential reserve). Some have actual shots put in them with a blast sensor built using a disposable chip behind them to control/ensure/measure the blast. (Dry fires happen and the test analysis software has to be made aware of it.) A large percentage of these sensors will simply be lost, hence the need for disposable chips. They used to use Z-80, then for years INTEL x86 was the ultimate throw away chip. Now it is moving to ARM since you can get a Raspberry Pi for $15 or less when bought in 100 quantities. Don't assume the class was created for use within the world of the disposable chip. That particular class was designed so Qt on disposable chips could provide real computers an actual service. Oh, here's a wee bit to add. No company or person is allowed to _own_ seismic data. There is an industry standard format where binary data is big-endian. Upon request, for a nominal media and shipping fee, if you have it you have to provide it to whoever asks. Geologically and environmentally, we don't want 100+ companies drilling 1000+ shot-holes in the exact same county. What you are allowed to own is the analysis software you develop. Do NOT change the default behavior of that class. It wasn't written for use on an iDiot Phone. It's design was and still is far reaching. Had it not existed, Qt would have had a dramatically shorter growth arc, possibly not surviving long enough to make it onto iDiot Phones. Changing the default behavior of the class would be viciously short sighted. Sorry, I don't mean to sound insulting, but, in this particular case you are a grain of sand on the beach trying to remove the ocean because it gets you wet. -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From jhihn at gmx.com Thu Apr 26 16:21:01 2018 From: jhihn at gmx.com (Jason H) Date: Thu, 26 Apr 2018 16:21:01 +0200 Subject: [Interest] Interest Digest, Vol 79, Issue 20 In-Reply-To: References: Message-ID: An HTML attachment was scrubbed... URL: From jhihn at gmx.com Thu Apr 26 16:23:26 2018 From: jhihn at gmx.com (Jason H) Date: Thu, 26 Apr 2018 16:23:26 +0200 Subject: [Interest] Interest Digest, Vol 79, Issue 19 In-Reply-To: References: <2694165.k9kcBUKKyk@tjmaciei-mobl1> Message-ID: > Sent: Thursday, April 26, 2018 at 4:37 AM > From: "Ulf Hermann" > To: interest at qt-project.org > Subject: Re: [Interest] Interest Digest, Vol 79, Issue 19 > > > When I said "most machines are little-endian", I was referring to machines Qt > > runs on and, therefore, would use QDataStream. The fact that the default is > > big endian is short-sighted. It should default to little-endian. > > We could change the default. All it takes is a new QDataStream::Version, isn't it? (And whoever prefers big endian can then still setByteOrder() on the data stream). Again, I mention Google Protobuf, why don't we add Google Protobuf support to Qt? From chinander at gmail.com Thu Apr 26 16:32:46 2018 From: chinander at gmail.com (Mike Chinander) Date: Thu, 26 Apr 2018 09:32:46 -0500 Subject: [Interest] Interest Digest, Vol 79, Issue 20 In-Reply-To: References: Message-ID: Has the Superconducting Super Collider been revived? On Thu, Apr 26, 2018 at 7:38 AM, Roland Hughes wrote: Read up on seismic testing or stuff happening with the Super Colliding > Super Conductor. In the case of SCSC many thousands of disposable chip > "sensors" running an application to pick up one or a few certain readings > are streaming that stuff back to the only box which can handle them, big > iron. IBM was never the fastest computationally, but when it comes to data > throughput to/from disk they are a 14" city water main and their nearest > competitor is happy the one day per week they achieve being a fire hose. > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jhihn at gmx.com Thu Apr 26 16:38:52 2018 From: jhihn at gmx.com (Jason H) Date: Thu, 26 Apr 2018 16:38:52 +0200 Subject: [Interest] Interest Digest, Vol 79, Issue 20 In-Reply-To: References: Message-ID: An HTML attachment was scrubbed... URL: From thiago.macieira at intel.com Thu Apr 26 17:59:37 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Thu, 26 Apr 2018 08:59:37 -0700 Subject: [Interest] Interest Digest, Vol 79, Issue 19 In-Reply-To: References: <2694165.k9kcBUKKyk@tjmaciei-mobl1> Message-ID: <9027826.Ksk30cXII6@tjmaciei-mobl1> On Thursday, 26 April 2018 01:27:59 PDT Jason H wrote: > Nah. Big endian is the way to go. Just because one company made little > endian prevelant isn't good enough. Network byte order is big endian, and > when looking at hex dumps, the bytes appear in the order that you expect to > see them... Which is why I think the big endian deadline was chosen. You're > sending data with QDataStream, network byte order is the right order. The > bits keep getting more significant, right to left, rather than zig zagging > right to left then over to the right for the next byte. I'll insert around your text and assume you meant it. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From thiago.macieira at intel.com Thu Apr 26 18:01:23 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Thu, 26 Apr 2018 09:01:23 -0700 Subject: [Interest] Interest Digest, Vol 79, Issue 19 In-Reply-To: References: <2694165.k9kcBUKKyk@tjmaciei-mobl1> Message-ID: <2035892.kZlWAs9sDT@tjmaciei-mobl1> On Thursday, 26 April 2018 01:37:04 PDT Ulf Hermann wrote: > > When I said "most machines are little-endian", I was referring to machines > > Qt runs on and, therefore, would use QDataStream. The fact that the > > default is big endian is short-sighted. It should default to > > little-endian. > > We could change the default. All it takes is a new QDataStream::Version, > isn't it? (And whoever prefers big endian can then still setByteOrder() on > the data stream). We could, but it would make the code cumbersome, because someone could call setByteOrder() before setVersion(). We'd need to keep the byte order as a tri- state and then apply the default only if the user didn t set it. At this point, I'm thinking long-term we should think of whether we should deprecate QDataStream or whether the discussion we had on basing it on CBOR makes more sense. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From thiago.macieira at intel.com Thu Apr 26 18:02:56 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Thu, 26 Apr 2018 09:02:56 -0700 Subject: [Interest] Interest Digest, Vol 79, Issue 19 In-Reply-To: References: Message-ID: <21182790.aChlmIFCs0@tjmaciei-mobl1> On Thursday, 26 April 2018 07:23:26 PDT Jason H wrote: > Again, I mention Google Protobuf, why don't we add Google Protobuf support > to Qt? Does Protobuf has code to send QStrings and QVariant? No? Then it doesn't add more value than any other marshalling format out there that doesn't support Qt. QDataStream's unique value is that it can send almost all Qt types by itself. If we're going to take a protocol that doesn't support Qt types yet, the current decision is made: it's CBOR. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From roland at logikalsolutions.com Thu Apr 26 21:41:28 2018 From: roland at logikalsolutions.com (Roland Hughes) Date: Thu, 26 Apr 2018 14:41:28 -0500 Subject: [Interest] Interest Digest, Vol 79, Issue 20 In-Reply-To: References: Message-ID: On 04/26/2018 09:21 AM, Jason H wrote: > 1. Roland, can you not use a yellow background? I use the yellow background to read because it is easier on my eyes. Did not know Thunderbird was transmitting it as well. I never see it on the list. > 2. All the "real" computers are dead. Either you're bi-endian (PPC, > ARM) or little endian (x86), or extinct. The real computers are still out there, still being made, and still running critical systems. > 3. Network byte order, and that the dumps put the bytes in the right > order are the only arguement need to be made ;-). Otherwise you might > as well redefine web hex colors to be BGRA "Ain't no body got time for > that!" No. That class was created to serve a specific purpose WHICH STILL EXISTS TODAY. Focusing on a hobby platform is viciously ill-advised. > *Sent:* Thursday, April 26, 2018 at 8:38 AM > *From:* "Roland Hughes" > *To:* interest at qt-project.org > *Subject:* Re: [Interest] Interest Digest, Vol 79, Issue 20 > > On 04/26/2018 03:44 AM, Thiago Macieira wrote: > > > > On Wednesday, 25 April 2018 06:53:26 PDT Roland Hughes wrote: > > What I'm trying to tell you is there was and still is a legitimate > reason to have a QDataStream which can write big-endian. Don't just rip > it out. Make it some kind of settable boolean flag in the class. There > is no way to know just how many of these things are still out there and > are still being developed. Most were in the world of defense > contractor/military > > I never claimed it isn't. In fact, there is a flag to set the endianness. > > When I said "most machines are little-endian", I was referring to machines Qt > runs on and, therefore, would use QDataStream. The fact that the default is > big endian is short-sighted. It should default to little-endian. > > No. Taking a disposable chip's view of the world is short sighted and > completely invalidates the historical reason for the class. It was > created to feed real computers which operate in Big-Endian. > > Read up on seismic testing or stuff happening with the Super Colliding > Super Conductor. In the case of SCSC many thousands of disposable chip > "sensors" running an application to pick up one or a few certain > readings are streaming that stuff back to the only box which can > handle them, big iron. IBM was never the fastest computationally, but > when it comes to data throughput to/from disk they are a 14" city > water main and their nearest competitor is happy the one day per week > they achieve being a fire hose. > > Here's a delightful little book about oil well drilling. I've read > mine many times. > http://iliosresources.com/downloads/come-drill-a-well-in-my-backyard/ > > In today's world "Big Oil" uses satellites to identify "potential" > places with oil reserves. For anything above water they then go > through the long, arduous journey of getting permits to do seismic > testing. Such testing involves drilling thousands of shot-holes > (depending on the size of the potential reserve). Some have actual > shots put in them with a blast sensor built using a disposable chip > behind them to control/ensure/measure the blast. (Dry fires happen and > the test analysis software has to be made aware of it.) A large > percentage of these sensors will simply be lost, hence the need for > disposable chips. They used to use Z-80, then for years INTEL x86 was > the ultimate throw away chip. Now it is moving to ARM since you can > get a Raspberry Pi for $15 or less when bought in 100 quantities. > > Don't assume the class was created for use within the world of the > disposable chip. > > That particular class was designed so Qt on disposable chips could > provide real computers an actual service. > > Oh, here's a wee bit to add. > > No company or person is allowed to _own_ seismic data. There is an > industry standard format where binary data is big-endian. Upon > request, for a nominal media and shipping fee, if you have it you have > to provide it to whoever asks. Geologically and environmentally, we > don't want 100+ companies drilling 1000+ shot-holes in the exact same > county. What you are allowed to own is the analysis software you develop. > > Do NOT change the default behavior of that class. It wasn't written > for use on an iDiot Phone. It's design was and still is far reaching. > Had it not existed, Qt would have had a dramatically shorter growth > arc, possibly not surviving long enough to make it onto iDiot Phones. > Changing the default behavior of the class would be viciously short > sighted. > > Sorry, I don't mean to sound insulting, but, in this particular case > you are a grain of sand on the beach trying to remove the ocean > because it gets you wet. > -- > Roland Hughes, President > Logikal Solutions > (630)-205-1593 > > http://www.theminimumyouneedtoknow.com > http://www.infiniteexposure.net > http://www.johnsmith-book.com > http://www.logikalblog.com > http://www.interestingauthors.com/blog > http://lesedi.us/ > http://onedollarcontentstore.com > _______________________________________________ Interest mailing list > Interest at qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From roland at logikalsolutions.com Thu Apr 26 22:11:56 2018 From: roland at logikalsolutions.com (Roland Hughes) Date: Thu, 26 Apr 2018 15:11:56 -0500 Subject: [Interest] Interest Digest, Vol 79, Issue 20 In-Reply-To: References: Message-ID: On 04/26/2018 09:21 AM, Jason H wrote: > 1. Roland, can you not use a yellow background? > 2. All the "real" computers are dead. Either you're bi-endian (PPC, > ARM) or little endian (x86), or extinct. > 3. Network byte order, and that the dumps put the bytes in the right > order are the only arguement need to be made ;-). Otherwise you might > as well redefine web hex colors to be BGRA "Ain't no body got time for > that!" Here are a few links for you. Keep in mind, I don't even like IBM, but their hardware still exists for a reason and the class now potentially getting dumbed down for hobby chip use was originally designed to communicate with these monsters. https://www.fool.com/investing/general/2016/04/27/dont-worry-about-ibms-mainframe-sales-collapse.aspx The z13 mainframe, launched in January 2015, can process 2.5 billion transactions each day, the equivalent of 100 Cyber Mondays, according to IBM. https://en.wikipedia.org/wiki/Linux_on_z_Systems Linux on z is big-endian And machine learning is providing even more avenues for "sensor" type devices with disposable chips running small Qt based applications to feed data back to these beasts. https://www.youtube.com/watch?v=2V0_Vc18mP0 There are an awful lot of "small" companies building stuff for this and the augmented reality market which need that class to stay as it is with support for Big-Endian. Tweak it to better support the disposable chip market and you will create another fork like the large medical device companies now maintaining their own forks of Qt 3 and Qt 4.8 because they were abandoned. I actually like a quote from here: https://www.ibm.com/us-en/marketplace/z14/details#product-header-top IBM z14 delivers 99.999 percent application availability and powerful disaster recovery capabilities. Some client installations have run for over a decade without a second of downtime! Can't get that from hobby chips. -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From jars121 at gmail.com Thu Apr 26 23:09:27 2018 From: jars121 at gmail.com (James Ross-Smith) Date: Thu, 26 Apr 2018 21:09:27 +0000 Subject: [Interest] ASSERT: "isDetached()" with multithreaded QVectors Message-ID: Morning all, I make use of multiple (10+) QVectors in my multithreaded embedded application, and I'm currently trying to troubleshoot and resolve the following assertion: ASSERT: "isDetached()" in file /opt/.../include/QtCore/qvector.h, line 386 Aborted >From an initial discussion on the Qt forum, it would appear that mutliple threads are trying to modify a QVector at the same time, with one thread trying to modify a QVector which is already detached. Is that a correct interpretation? Responders on the Qt forum recommended I posted to the mailing list, as further clarification regarding this particular assertion is better suited to the more detailed understanding within the mailing list community. Is there a way for me to determine which QVector or line of code is causing the assertion? Further to that point, is there a generally recommended approach to using QVectors in multithreaded applications? I've been told to use QMutex, and have now implemented QMutexLockers but haven't had any success, as I'm really not sure which QVector and/or from where the issue originates. My other consideration was to not use QVectors, instead using dedicated variables, rather than a QVector of variables. i.e. currently I have valueVector = [value1, value2, value3], which could be replaced with value1, value2 and value3 variables. My only issue with this approach is I'm not sure how to modify the variable values with a variable identifier like you can with a QVector. i.e. valueVector[1] = value2. I'm not sure how I would do that if I passed 'n = 1' to a function, and wanted to modify value2. value(n+1) = x etc. Any guidance on this issue would be greatly appreciated! Cheers, Jamie -------------- next part -------------- An HTML attachment was scrubbed... URL: From thiago.macieira at intel.com Fri Apr 27 00:56:02 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Thu, 26 Apr 2018 15:56:02 -0700 Subject: [Interest] ASSERT: "isDetached()" with multithreaded QVectors In-Reply-To: References: Message-ID: <3136559.bZWf6yknau@tjmaciei-mobl1> On Thursday, 26 April 2018 14:09:27 PDT James Ross-Smith wrote: > From an initial discussion on the Qt forum, it would appear that mutliple > threads are trying to modify a QVector at the same time, with one thread > trying to modify a QVector which is already detached. Is that a correct > interpretation? Treat a QVector and QString like you would treat an int: only one thread can write to it at a time, though multiple threads can read from it at the same time (provided none are writing). If you have multiple threads writing, add a mutex or a QReadWriteLock around it. > Is there a way for me to determine which QVector or line of code is causing > the assertion? Sure, the core dump you got when this crash happened points to one of the faulty threads. That thread is writing to the vector. The problem is finding out the other thread. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From thiago.macieira at intel.com Fri Apr 27 21:17:59 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Fri, 27 Apr 2018 12:17:59 -0700 Subject: [Interest] [Development] Qt library link errors under Windows In-Reply-To: <1631061524849112@web57o.yandex.ru> References: <1631061524849112@web57o.yandex.ru> Message-ID: <1974559.9RNg519nYO@tjmaciei-mobl1> Hello Aleksey None of your questions looks like problems in Qt itself, so I've taken the liberty of replying to the interest mailing list (discussion about *using* Qt). On Friday, 27 April 2018 10:11:52 PDT Aleksey Kontsevich wrote: > mydialog.obj:-1: error: LNK2001: unresolved external symbol > "struct QMetaObject const MyLibrary::staticMetaObject" > (?staticMetaObject at MyLibrary@@3UQMetaObject@@B) Make sure that: 1) class MyLibrary is in a header file 2) that header file is listed in the library's .pro file HEADERS line 3) moc was run in the header and the resulting output was compiled 4) your definition contains an export macro: class MY_LIBRARY_EXPORT MyLibrary : .... 5) said macro is __declspec(dllexport) when compiling the library and __declspec(dllimport) when linking the library. This is "Windows DLL Basics" and you need to learn it. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From hamish at risingsoftware.com Sat Apr 28 05:21:07 2018 From: hamish at risingsoftware.com (Hamish Moffatt) Date: Sat, 28 Apr 2018 13:21:07 +1000 Subject: [Interest] Faster QXmlStreamWriter? In-Reply-To: <2541354.R559aBQJkG@tjmaciei-mobl1> References: <12916801524580748@web42j.yandex.ru> <2541354.R559aBQJkG@tjmaciei-mobl1> Message-ID: <8534d511-c71e-e1be-4f3c-295c180cca8e@risingsoftware.com> On 25/04/18 01:52, Thiago Macieira wrote: > Binary QJsonDocument is the fastest, followed closely by QCborValue > (new in > 5.12). > Is compatibility guaranteed on binary QJsonDocument between Qt versions? Can I safely exchange data both ways between current Qt 5.8 and future 5.x versions? Hamish From thiago.macieira at intel.com Sat Apr 28 05:54:39 2018 From: thiago.macieira at intel.com (Thiago Macieira) Date: Fri, 27 Apr 2018 20:54:39 -0700 Subject: [Interest] Faster QXmlStreamWriter? In-Reply-To: <8534d511-c71e-e1be-4f3c-295c180cca8e@risingsoftware.com> References: <2541354.R559aBQJkG@tjmaciei-mobl1> <8534d511-c71e-e1be-4f3c-295c180cca8e@risingsoftware.com> Message-ID: <3393239.Dt11irBhfi@tjmaciei-mobl1> On Friday, 27 April 2018 20:21:07 PDT Hamish Moffatt wrote: > On 25/04/18 01:52, Thiago Macieira wrote: > > Binary QJsonDocument is the fastest, followed closely by QCborValue > > (new in > > 5.12). > > Is compatibility guaranteed on binary QJsonDocument between Qt versions? Yes. > Can I safely exchange data both ways between current Qt 5.8 and future > 5.x versions? Yes. But as indicated in this thread, this may not be the fastest method in the future. We need to fix the 128 MB size limit, which means the current format will be parsed into something different. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center From gunnar.roth at gmx.de Sun Apr 29 22:58:02 2018 From: gunnar.roth at gmx.de (Gunnar Roth) Date: Sun, 29 Apr 2018 20:58:02 +0000 Subject: [Interest] Faster QXmlStreamWriter? In-Reply-To: <1839894.BnFBH5R7up@tjmaciei-mobl1> References: <588751524665598@web5j.yandex.ru> <2391177.ANj6l7ROQH@tjmaciei-mobl1> <1839894.BnFBH5R7up@tjmaciei-mobl1> Message-ID: >Hi Thiago > >PS: YMMV, especially if you don't use CPU-optimised UTF-8 methods like >I do. >You need to compile your own Qt to get those. > Could you please give more information about this? I thought sse2 code for utf8 is enabled by default at least in 64 bit build. What do I miss here? Regards, Gunnar Roth > From lukadriel at gmail.com Mon Apr 30 17:49:59 2018 From: lukadriel at gmail.com (Lawliet Arudjin) Date: Tue, 1 May 2018 00:49:59 +0900 Subject: [Interest] Qt3D Animation C++ Message-ID: Hello everyone I am new on this mailing list. My name is Adriel and I am currently studying programming. I have recently started playing with the Qt Framework 3D Module. I however was unable to find any good example for animation in C++ most of them being in QML. I am trying to apply an animation I imported from blender( simple cube translation) using the Qt3d animation exporter blender plugin. I however don't know how to handle it. I tried using a QAnimationClipLoader and a QClipAnimator but to be honest I am going basically blind in this. I tried asking on the forum without much success. I was then advised to contact this mailing list. Can anyone help me ? -------------- next part -------------- An HTML attachment was scrubbed... URL: From roland at logikalsolutions.com Mon Apr 30 23:47:40 2018 From: roland at logikalsolutions.com (Roland Hughes) Date: Mon, 30 Apr 2018 16:47:40 -0500 Subject: [Interest] Interest Digest, Vol 79, Issue 21 In-Reply-To: References: Message-ID: <318994a0-9b93-8bd0-65d9-edf40fe0942b@logikalsolutions.com> > On Thursday, 26 April 2018 01:27:59 PDT Jason H wrote: >> Nah. Big endian is the way to go. Just because one company made little >> endian prevelant isn't good enough. Network byte order is big endian, and >> when looking at hex dumps, the bytes appear in the order that you expect to >> see them... Which is why I think the big endian deadline was chosen. You're >> sending data with QDataStream, network byte order is the right order. The >> bits keep getting more significant, right to left, rather than zig zagging >> right to left then over to the right for the next byte. You can be as sarcastic as you want viewing the world from the throw away x86 hobby chip grain of sand on the beach. And no, one little company, especially if you mean INTEL didn't make little-endian popular. https://en.wikipedia.org/wiki/Endianness When Intel developed the8008 microprocessor for Datapoint, they used little-endian for compatibility. However, as Intel was unable to deliver the 8008 in time, Datapoint used amedium scale integration equivalent, http://www.columbia.edu/cu/computinghistory/pdp10.html The Digital Equipment Corporation PDP-10 (1964-1983) is one of the most influential computers in history in more ways than can be listed here. It was the foundation of the DECsystem-10 and the DECSYSTEM-20 and ran a variety of operating systems including TOPS-10, ITS, WAITS, TYMCOM-X, TENEX, and TOPS-20. It was the first widely used timesharing system. It was the basis of the ARPANET (now Internet). It was the platform upon which many of today's popular applications were first developed including EMACS, TeX, ISPELL (the first spell-checker), and Kermit. The big iron of the day, DEC-10, DEC-20 and IBM all used big-endian to achieve massive throughput. When DEC started making smaller PDP-11 machines they went to mixed-endian and dramatically reduced performance. While the 11/44 was a massive seller and still exists under the hoods of many other devices today, it was sloooow compared to the big boxes. VAX hardware went little-endian to be more compatible with all of the knock-off midrange computers and and the wanna-be dual floppy computers. It suffered profusely from I/O throughput as a result. We won't discuss what happened when the Alpha chip was being "second sourced" at INTEL. For whatever reason the highest throughput machines have always been and continue to be big-endian. Don't confuse "throughput" with some rigged count of numerical calculations. Throughput is the ability to read-calculate-store complete transactions. https://www.symmetrymagazine.org/article/april-2014/ten-things-you-might-not-know-about-particle-accelerators There are more than 30,000 accelerators in operation around the world. Tiny wanna-be computers get built into sensors placed around these things and they transfer back to big-endian machines for serious throughput. The simple act of gathering sensor data and packetizing it can easily exceed the throw-away chip's capability so adding more workload to it cannot really be considered. -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From roland at logikalsolutions.com Mon Apr 30 23:56:36 2018 From: roland at logikalsolutions.com (Roland Hughes) Date: Mon, 30 Apr 2018 16:56:36 -0500 Subject: [Interest] Interest Digest, Vol 79, Issue 21 In-Reply-To: References: Message-ID: <19b1a4f0-0b4c-826c-61b4-3f9098b4b956@logikalsolutions.com> On 04/30/2018 10:57 AM, Mike Chinander wrote: > Has the Superconducting Super Collider been revived? Not for general academic purposes. There has been no news about the site since a chemical company which does a lot of research purchased it. https://en.wikipedia.org/wiki/Superconducting_Super_Collider Chemical company Magnablend bought the property and facilities in 2012, against some opposition from the local community. Even the official tour never said what they did with the actual SSC, just the property above ground. https://businessfacilities.com/2013/08/magnablend-reopens-former-superconducting-super-collider-facility-in-waxahachie-tx/ -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog http://lesedi.us/ http://onedollarcontentstore.com -------------- next part -------------- An HTML attachment was scrubbed... URL: