Re: [Development] Accelerating deprecation of MSVC 2017

2019-08-20 Thread Thiago Macieira
On Tuesday, 20 August 2019 14:46:57 PDT Konstantin Tokarev wrote:
> 21.08.2019, 00:45, "Thiago Macieira" :
> > I'd like to propose we announce now that it will not be supported for Qt
> > 5.15.
> > 
> > Even if 2019 still has code generation problems.
> 
> Does it mean that you recommend using 2015 instead?

No, I recommend using 2019 because MS will fix it. 2015 is no longer supported 
in 5.13.

Note I'm talking about 5.15, so it's only going to affect people mid 2020. MS 
has something like 9 months left to fix the code gen issues.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel System Software Products



___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Accelerating deprecation of MSVC 2017

2019-08-20 Thread Konstantin Tokarev


21.08.2019, 00:45, "Thiago Macieira" :
> I'd like to propose we announce now that it will not be supported for Qt 5.15.
>
> Even if 2019 still has code generation problems. 

Does it mean that you recommend using 2015 instead?

> We should assume that MS will
> fix them soon.
>
> --
> Thiago Macieira - thiago.macieira (AT) intel.com
>   Software Architect - Intel System Software Products
>
> ___
> Development mailing list
> Development@qt-project.org
> https://lists.qt-project.org/listinfo/development

-- 
Regards,
Konstantin

___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


[Development] Accelerating deprecation of MSVC 2017

2019-08-20 Thread Thiago Macieira
I'd like to propose we announce now that it will not be supported for Qt 5.15.

Even if 2019 still has code generation problems. We should assume that MS will 
fix them soon.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel System Software Products



___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] HEADS-UP: QStringLiteral

2019-08-20 Thread Thiago Macieira
On Tuesday, 20 August 2019 14:25:27 PDT Philippe wrote:
> > There's no mutex.
> 
> On Visual Studio 2017 15.8.8, 

That's a broken compiler, a regression from 2015 and fixed on 2019. Try *any* 
other compiler and you'll see there's no mutex.

Same bug that makes static with VS 2017 crash on start.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel System Software Products



___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] HEADS-UP: QStringLiteral

2019-08-20 Thread Philippe
> There's no mutex.

On Visual Studio 2017 15.8.8, there is a mutex on the 1st call
(checked today when step tracing the assembly code).

Again, for block scope, that is:

void foo()
{
QString s = QStringLiteral("abc");
...
}

Philippe

On Tue, 20 Aug 2019 14:11:59 -0700
Thiago Macieira  wrote:

> On Tuesday, 20 August 2019 03:41:45 PDT Philippe wrote:
> > another Drawback : it causes a global mutex to be executed on first use
> > inside a block scope (c++11 static variable thread safety).
> 
> There's no mutex.
> 
> -- 
> Thiago Macieira - thiago.macieira (AT) intel.com
>   Software Architect - Intel System Software Products
> 
> 
> 
> ___
> Development mailing list
> Development@qt-project.org
> https://lists.qt-project.org/listinfo/development


___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] HEADS-UP: QStringLiteral

2019-08-20 Thread Thiago Macieira
On Tuesday, 20 August 2019 08:56:06 PDT Bogdan Vatra via Development wrote:
>   Isn't silly to have so many wrappers around a such a simple thing as
> strings?

We all wish it were simple. If it were, we would have no need for so many 
string classes, for Marc's email and even for SG16 (Unicode) to exist in the 
C++ committee.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel System Software Products



___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] HEADS-UP: QStringLiteral

2019-08-20 Thread Thiago Macieira
On Tuesday, 20 August 2019 03:41:45 PDT Philippe wrote:
> another Drawback : it causes a global mutex to be executed on first use
> inside a block scope (c++11 static variable thread safety).

There's no mutex.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel System Software Products



___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] HEADS-UP: QStringLiteral

2019-08-20 Thread Thiago Macieira
On Tuesday, 20 August 2019 03:04:12 PDT Mutz, Marc via Development wrote:
> - You can use u"..." in Qt sources unconditionally
>- converts implicitly to QStringView

And you can use UTF-8 text there[*], since all our compilers now support UTF-8 
and are configured to parse it.

[*] untested with ICC on Windows and with INTEGRITY's compiler. It's assumed 
that they do and if they don't, it's a compiler bug.
-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel System Software Products



___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] QObject enum not readable in QML with Qt 5.12.4

2019-08-20 Thread Edward Welbourne
Fabrice Mousset (20 August 2019 18:05)
> I've got this issue when qtquickcompiler is enabled!
> When I remove qtquickcompiler, it works!

Please file a bug report against the qtquickcompiler,

Eddy.
___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


[Development] QObject enum not readable in QML with Qt 5.12.4

2019-08-20 Thread Fabrice Mousset | GEOCEPT GmbH
Hi all,

I am **modernizing** our application from Qt 5.4.2 to last LTS version (Qt 
5.12.4).
I have a problem which I can't understand and needs some help.

I have declared a QQuickPaintedItem object which has an enumeration to defined 
drawing types, like this:
class TourPlayerItem : public QQuickPaintedItem
{
Q_OBJECT

public:
enum DrawType // used also for draw order!
{
DrawTypeNormal,
DrawTypeBackward,
DrawTypeWorkRegion,
DrawTypeContainerRegionSingle,
DrawTypeContainerRegionDouble,
DrawTypeOffline,
...
};
#if QT_VERSION < QT_VERSION_CHECK(5, 5, 0)
Q_ENUMS(DrawType)
#else
Q_ENUM(DrawType)
#endif
...
}

This class is registered to be accessible from QML:
qmlRegisterType("com.Geocept.Tour", 1, 0, "GCTourPlayer");

In QML, this class is used like this:
GCTourPlayer {
id: tourPlayerTrace 
anchors.fill: parent
drawTypes: [
DrawType { type: GCTourPlayer. DrawTypeBackward; color: 
'#D9004D9E' },
DrawType { type: GCTourPlayer.DrawTypeSubSections; color: 
'#E67814A0' }
]
}

When I do this, I've got always '0' for type (color value is working well).
When I replace "GCTourPlayer.DrawTypeBackward " and 
"GCTourPlayer.DrawTypeSubSections" with corresponding integer value, type is 
set with excepted value.

This works without any problem with Qt 5.4.2.

Do I something wrong?

Thanks for any helps

Best regards

Fabrice
___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] HEADS-UP: QStringLiteral

2019-08-20 Thread Bogdan Vatra via Development
Hi,

  Isn't silly to have so many wrappers around a such a simple thing as 
strings? All the major frameworks out there (i.e. Java, C#) they have a single 
String which does all the magic.

  In Qt we have: QString, lost of QString::fromXXX, QLatin1String, 
QStringLiteral, QStringView, QByteArray (which si a castrated version of 
QString for some kind of utf-8 strings) and of course a few QByteArray::from. 
You might think using QString{u"myString"} will save you from all these 
madness and to save a few CPU ticks, well, you have tot think again, 
QString{u"myString"} isn't working!
  Is it that hard to have *A* single String for UTF-16 and *A* single one for 
UTF-8? Ot at least A single String class and *A* single sting wrapper for each 
UTF?

Cheers,
BogDan.



În ziua de marți, 20 august 2019, la 13:04:12 EEST, Mutz, Marc via Development 
a scris:
> Hi,
> 
> In light of a recent attempt to re-introduce QStringLiteral, relacing
> QLatin1String, I'd like to remind everyone that QStringLiteral has a lot
> of drawbacks and should not be used unless it saves a memory allocation.
> 
> Drawbacks include:
> 
> - doubled storage requirements (2 bytes/char) over a L1/US-ASCII string
> - unsharability with C strings (each QStringLiteral contains a new
> lambda, lambdas have unique types, static data in token-for-token
> identical lambdas is duplicated, merging these violates the standard)
> - introduction of QString dtor calls (cannot be optimized away)
> 
> Anti-patterns include: Using QStringLiteral in
> 
> - comparisons (includes relational operators, indexOf, contains)
> - composition (QStringBuilder, append, prepend, arg() (now partly
> available on QStringView and QLatin1String, too)
> - lookup and, I believe, even insertion, in JSON and soon CBOR classes
> - debug statements (we prefer debug code to be compact, not fast)
> - arguments to any other function overloaded QStringView or
> QLatin1String
> 
> Alternatives to QStringLiteral:
> 
> - u"..." (→ QStringView)
> - QLatin1String
> 
> Please take note of the following recent developments:
> 
> - arg(string, , string) ("multiArg") is available now on QL1S and
> QStringView
>- number formatting isn't, yet
> - You can use u"..." in Qt sources unconditionally
>- converts implicitly to QStringView
> - To convert QString → QStringView, prefer qToStringViewIgnoringNull()
> when you don't need to distinguish between the null and the empty state.
> It saves a branch.
> 
> Please help spreading this knowledge in review and your own work.
> 
> Thanks,
> Marc
> 
> ___
> Development mailing list
> Development@qt-project.org
> https://lists.qt-project.org/listinfo/development



___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Updating holdover API from Qt 1 times

2019-08-20 Thread Matthew Woehlke
On 17/08/2019 00.13, Sze Howe Koh wrote:
>  QLabel returns some CoW types by-pointer as a legacy from Qt 1 times [1]:
> 
> QPixmap *QLabel::pixmap() const;
> QPixture *QLabel::pixmap() const;

Does this allow one to obtain the internal pixmap and modify it in-place
without then calling setPixmap? If so, note that changing these to
return by value represents a non-trivial change to the API. (Although,
perhaps that's a change we *want*...)

> 3) Pick one of the options above, but go one step further and use
> std::optional (C++17) instead of returning null objects.

Ugh... I'm with Kevin; I think this doesn't make sense and adds a level
of indirection for no good reason that will only make the API's harder
to use.

Please choose based on what produces the best API in the end, not the
least porting effort. Otherwise we are just trading one sub-optimal API
for another.

-- 
Matthew
___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


[Development] Qt 6 and C++17, slicing and dicing a master plan for it

2019-08-20 Thread Ville Voutilainen
I and Kari Oikarinen created an epic, some user stories, and further 
some sub-tasks what needs to be done related to C++17 usage in Qt 6.
The link to the epic, under from which you can navigate to the more 
detailed levels, is here:

https://bugreports.qt.io/browse/QTBUG-77477

Feedback, comments, suggestions etc. are welcome. We will most probably 
need to add much more 'meat' to the library-facility parts.
___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


[Development] Maintainers, your action needed: Qt 5.12.5 changes files

2019-08-20 Thread Jani Heikkinen
Hi,

Initial ones here: 
https://codereview.qt-project.org/q/message:%2522Add+changes+file+for+Qt+5.12.5%2522

Maintainers, please do needed modifications & make sure changes will be 
approved during this week.

br,
Jani Heikkinen
Release Manager
___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] HEADS-UP: QStringLiteral

2019-08-20 Thread Philippe
another Drawback : it causes a global mutex to be executed on first use
inside a block scope (c++11 static variable thread safety).

Philippe

On Tue, 20 Aug 2019 12:04:12 +0200
"Mutz, Marc via Development"  wrote:

> Hi,
> 
> In light of a recent attempt to re-introduce QStringLiteral, relacing 
> QLatin1String, I'd like to remind everyone that QStringLiteral has a lot 
> of drawbacks and should not be used unless it saves a memory allocation.
> 
> Drawbacks include:
> 
> - doubled storage requirements (2 bytes/char) over a L1/US-ASCII string
> - unsharability with C strings (each QStringLiteral contains a new 
> lambda, lambdas have unique types, static data in token-for-token 
> identical lambdas is duplicated, merging these violates the standard)
> - introduction of QString dtor calls (cannot be optimized away)
> 
> Anti-patterns include: Using QStringLiteral in
> 
> - comparisons (includes relational operators, indexOf, contains)
> - composition (QStringBuilder, append, prepend, arg() (now partly 
> available on QStringView and QLatin1String, too)
> - lookup and, I believe, even insertion, in JSON and soon CBOR classes
> - debug statements (we prefer debug code to be compact, not fast)
> - arguments to any other function overloaded QStringView or 
> QLatin1String
> 
> Alternatives to QStringLiteral:
> 
> - u"..." (? QStringView)
> - QLatin1String
> 
> Please take note of the following recent developments:
> 
> - arg(string, , string) ("multiArg") is available now on QL1S and 
> QStringView
>- number formatting isn't, yet
> - You can use u"..." in Qt sources unconditionally
>- converts implicitly to QStringView
> - To convert QString ? QStringView, prefer qToStringViewIgnoringNull() 
> when you don't need to distinguish between the null and the empty state. 
> It saves a branch.
> 
> Please help spreading this knowledge in review and your own work.
> 
> Thanks,
> Marc
> 
> ___
> Development mailing list
> Development@qt-project.org
> https://lists.qt-project.org/listinfo/development


___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


[Development] HEADS-UP: QStringLiteral

2019-08-20 Thread Mutz, Marc via Development

Hi,

In light of a recent attempt to re-introduce QStringLiteral, relacing 
QLatin1String, I'd like to remind everyone that QStringLiteral has a lot 
of drawbacks and should not be used unless it saves a memory allocation.


Drawbacks include:

- doubled storage requirements (2 bytes/char) over a L1/US-ASCII string
- unsharability with C strings (each QStringLiteral contains a new 
lambda, lambdas have unique types, static data in token-for-token 
identical lambdas is duplicated, merging these violates the standard)

- introduction of QString dtor calls (cannot be optimized away)

Anti-patterns include: Using QStringLiteral in

- comparisons (includes relational operators, indexOf, contains)
- composition (QStringBuilder, append, prepend, arg() (now partly 
available on QStringView and QLatin1String, too)

- lookup and, I believe, even insertion, in JSON and soon CBOR classes
- debug statements (we prefer debug code to be compact, not fast)
- arguments to any other function overloaded QStringView or 
QLatin1String


Alternatives to QStringLiteral:

- u"..." (→ QStringView)
- QLatin1String

Please take note of the following recent developments:

- arg(string, , string) ("multiArg") is available now on QL1S and 
QStringView

  - number formatting isn't, yet
- You can use u"..." in Qt sources unconditionally
  - converts implicitly to QStringView
- To convert QString → QStringView, prefer qToStringViewIgnoringNull() 
when you don't need to distinguish between the null and the empty state. 
It saves a branch.


Please help spreading this knowledge in review and your own work.

Thanks,
Marc

___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] NTLM Issue with Qt-5.12 LTS

2019-08-20 Thread coroberti .
On Mon, Aug 19, 2019 at 1:04 PM Volker Hilsheimer
 wrote:
>
> On 19 Aug 2019, at 11:41, coroberti .  wrote:
>
> Hi,
> Could be this issue be given a priority since it's a regression
> and strikes deployments of Qt-5.12 LTS on Windows?
>
> https://bugreports.qt.io/browse/QTBUG-44096
>
>
>
> Hey Robert (and others),
>
> could you help with verifying the proposed fix in
>
> https://codereview.qt-project.org/c/qt/qtbase/+/265900
>
> FWIW, from the report it doesn’t seem to be regression within Qt 5; the 
> report is originally against Qt 5.4, at least.
>
> Cheers,
> Volker
>

Hi Volker,
It appeared, however, that my server side has been changed by admin,
and I cannot reproduce the original issue.

I've applied the patch and tried.
The good news it that there was no any badness introduced.

Sorry, but it seems that somebody else with an appropriate setup is required
to make the positive verification.

Sorry for the buzz.

Kind regards,
Robert
___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Repo request for Qt Quick 3D module

2019-08-20 Thread Paul Wicking
Repository has been created as requested.

- Paul

From: Development  on behalf of Andy 
Nichols 
Date: Wednesday, 14 August 2019 at 12:24
To: "development@qt-project.org" 
Subject: [Development] Repo request for Qt Quick 3D module

Hello everyone,
 
As The Qt Company announced today on our blog, we have been working on creating 
a unified graphics story for our 2D and 3D Qt Quick API's and tooling. Part of 
this story is introducing a new module and API for defining 3D content in Qt 
Quick.
 
https://blog.qt.io/blog/2019/08/14/introducing-qt-quick-3d-high-level-3d-api-qt-quick/
 
repo name: qtquick3d
name: Qt Quick 3D
responsible person: me (Andy Nichols)
 
The code is currently hosted here: https://git.qt.io/annichol/qtquick3d
 
This code represents the effort to start the process of integrating 3D content 
into Qt Quick's rendering, bound by the limitations of binary compatibility in 
Qt Declarative.  The current code works against the Qt 5.12 LTS, and is a 
approximation of what we are trying to achieve as a whole.  For Qt 6 we are 
planning to further integrate with the existing Qt Quick Scenegraph 
infrastructure so that more APIs can be shared (for example QSGTexture, 
QSGGeometry), as well as making it easier to have QQuickItem based components 
rendered in spatial contexts.
 
There is a valid concern that this is yet another 3D solution for Qt, being 
that we currently are offering both Qt3D and Qt 3D Studio as supported 
solutions.  As stated in the blog post, this isn't a replacement of Qt3D, as 
Qt3D is a low level API for creating 3D runtimes.  With regard to Qt 3D Studio, 
this project is an evolution of that offering.  Qt 3D Studio has the issue that 
the runtime it ships with overlaps very much so with Qt Quicks offering, while 
still leaving a lot of gaps in functionality that Qt Quick already provides. 
Rather than continuing to try and fill those gaps and fragment our HMI story 
further, we would rather extend Qt Quick to support a high level 3D API that Qt 
3D Studio tries to provide. So with Qt Quick 3D we functionally have a QML API 
for using the features of Qt 3D Studio, while simultaneously enabling us to 
unify our tooling story for Qt Design Studio. 
 
Our goal is to reduce the amount of things we are working on in parallel, and 
focus our efforts on extending the functionality of Qt Quick. This goes 
hand-in-hand with the modernization of Qt Quick with the QtRHI work.
 
We would like to provide a tech-preview of this module along with 5.14.0 and 
continue to develop the project further out in the open.  
 
Regards,
Andy Nichols

___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development