Re: [Development] Abandoning the container changes

2012-07-18 Thread joao.abecasis
Hey,

I would rather we don't *rush* the container changes in, but get them up to 
snuff in a separate branch, instead. I would also like to challenge the 
assumptions I've seen repeated that probability for breakage is low and 
autotest coverage is high. It isn't and it isn't. It is very easy to break 
less-often used features and corner cases that will not get caught by 
autotests. I don't think this is acceptable for fundamentals like QVector and 
friends. 

I think it would be feasible to do a binary-only break somewhere around the 5.2 
timeframe (say, ~12 months) where we address this. Technically, this would be 
Qt 6, but user porting effort would be reduced to a recompile. The value of 
having a long lived (5 years?) binary compatible 5.x series is (IMO) low as 
there are quite often other reasons to recompile the stack.

Cheers,


João


From: development-bounces+joao.abecasis=nokia@qt-project.org 
[development-bounces+joao.abecasis=nokia@qt-project.org] on behalf of ext 
André Pönitz [andre.poen...@mathematik.tu-chemnitz.de]
Sent: 17 July 2012 23:59
To: development@qt-project.org
Subject: Re: [Development] Abandoning the container changes

On Tue, Jul 17, 2012 at 05:19:23PM +0200, Oswald Buddenhagen wrote:
 On Mon, Jul 16, 2012 at 02:52:32PM -0700, ext Thiago Macieira wrote:
  On segunda-feira, 16 de julho de 2012 21.34.10, André Pönitz
  wrote:
   On Thu, Jul 05, 2012 at 09:04:39AM +0300, Thiago Macieira
   wrote:
I think that, despite the potential benefits of the changes,
we should not apply them at this time. There are far too many
chances for breakage and it's a blatant disrespect for the
feature freeze.
  
   I assume this is meant as a verdict, not as (possibly
   temporary) state of thinking.
 
  Correct. The changes are the right thing to do, just not now.
  We'll have to live with the current containers and their overhead
  until Qt 6.
 
  That includes the fact that QListQVariant is extremely
  inefficient.

 this is absurd.

Incidentally, I agree. [Even if I lack the skill to express myself
so clearly at times ;-}]

 we said A, now we need to say B. or unsay A, which i don't think
 anyone wants.

 i for one don't believe in qt6 anytime soon. it's the do-never release
 qt5 was for years.

The suggested 4 years are 3 1/2 years too much anyway.

That's 3 1/2 years more of forcing people to re-invent the wheel when
it comes to performance-sensitive components in a Qt environment, and
it's 3 1/2 years on top of the past half decade or so where Qt containers
fail to deliver on one of the original reasons to have them at all
(portability, convenience of use, _and_ performance).

We do have the chance to fix it _now_, and we have a fairly decent
idea of how the fix looks like. The whole change is essentially
source compatible, i.e. has a low probability of breaking other
components, and it is very well covered by autotests. The chances
to be ready before the rest (Webkit Windows? Mac?) is ready for
a 5.0 release are good.

To get back on the constructive side I propose to do any of the
following, in decreasing order of desirability:

(A) Have the QString/QByteArray related bits in 5.0.

(B) Have everything in 5.0.

(C) Don't do anything for 5.0, but aim for a 6.0 instead for a 5.1
next.

(D) Don't do anything for 5.0, but allow 5.1 to be source compatiple
but binary incompatible.

(E) Don't do anything for 5.0, and provide a compile-time switch
for 5.1 to select between current and patched versions, default
to current. [This is probably the most expensive solution, but
the one that fits best to the rules]

Andre'
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Suggestion on QML portability

2012-07-18 Thread gunnar.sletta

On Jul 17, 2012, at 9:17 PM, ext Andreas Aardal Hanssen wrote:

 2012/7/17 marius.storm-ol...@nokia.com
  (2D accelerators are often bundled with GPUs and perform 2D rendering
  ops faster than GPUs, but are unusable with QML 2 / SceneGraph; see
  pvr2d).
 2D accelerators bundled with GPUs perform 2D rendering ops faster than
 GPUs? Uhmm... that sentence is conflicting in my head, unless you mean
 that you are using highly specialized boards with multiple GPUs (n*PVR)
 on them to do things really really fast in parallel.
 
 [OT]
 
 No, I really mean dedicated 2D hardware chips outperform GPUs by far. It's 
 easy to do certain common simple 2D graphics faster than most embedded GPUs I 
 know of, even using the CPU. GPUs are built for (1) 3D transformations on 
 textures, (2) vertex-heavy objects and (3) per-pixel shading operations. But 
 it's easily beat for simple 2D operations like blit (e.g., DMA), 
 filtering/scaling (e.g., FPGAs). Most mobiles / tablet UIs are 90% 2D.
 
 My point is simply that Qt 5 is best served with a painting backend for QML 2 
 that can support non-OpenGL technologies.
 

Though true that 2D blitters support the basic features needed by many UI's it 
also comes with a lot of limitations. 

They often operate on contiguous memory blocks, which need to be allocated by 
the kernel and comes which is limited in terms of what you can allocate. On 
several chips I've worked on, this is a system-wide pool, specified at 
boot-time.

They would also not support basic primitives, such as drawing rounded 
rectangles, antialiasing, free rotation, perspective transformation and 9-patch 
border images. So all of these would have to be rendered in software. This 
means a heavy mixing of CPU and accelerated drawing and we both know that 
combination does indeed suck. OpenGL is flexible enough to support what we need 
while at the same time providing us with very good performance, so it is the 
best thing we got.

If you know you are not using any of these features, then you could write your 
own renderer using the scene graph adaptation layer. A renderer that only looks 
at translate and scale transforms, maybe supports opacity and draws solid color 
boxes and pre-generated images. Text could be done using the adaptation for 
glyph nodes to render text using QPainter and then that could also be blitted 
in the renderer. This is doable today, but it would not support the full QML 
feature set, so it is not something we will invest time in.

There is also the possibility of using a software emulation library for the 
OpenGL stack to do all the rasterization in software, if there is no OpenGL 
chip. QML2 on llvmpipe beats QML1 on QPainter/raster, after all..

cheers,
Gunnar

 -- 
 Andreas Aardal Hanssen
 ___
 Development mailing list
 Development@qt-project.org
 http://lists.qt-project.org/mailman/listinfo/development

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


[Development] How to configure qt-4.8 with v8?

2012-07-18 Thread haithem rahmani
Hello,

I'm trying to configure the qt-4.8.0 to be linked against the V_, but I
didn't find any configure option
to do that.

can someone help me on that?

regards
Haithem.


-- 
*
Never say that's impossible, the word itself says I'm Possible
*
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] How to configure qt-4.8 with v8?

2012-07-18 Thread Olivier Goffart
On Wednesday 18 July 2012 09:34:51 haithem rahmani wrote:
 Hello,
 
 I'm trying to configure the qt-4.8.0 to be linked against the V_, but I
 didn't find any configure option
 to do that.
 
 can someone help me on that?

Qt 4.8 do not use V8.

Are you trying to use V8 with QtWebkit or QtScript or Qml?
There exists some experimental branches that try to, but nothing released.

If you just want to use V8 API dirrectly in yout Qt 4.8 application, you 
should just use upstream V8 dirrectly. 
(You could also try to compile the qtjsbackend repository with Qt 4.8. If that 
works, that could possibly simplify the integration with your build system)

-- 
Olivier

Woboq - Qt services and support - http://woboq.com
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-18 Thread André Pönitz
On Wed, Jul 18, 2012 at 07:06:55AM +, joao.abeca...@nokia.com wrote:
 Hey,
 
 I would rather we don't *rush* the container changes in, but get them
 up to snuff in a separate branch, instead. I would also like to
 challenge the assumptions I've seen repeated that probability for
 breakage is low and autotest coverage is high. It isn't and it isn't.
 It is very easy to break less-often used features and corner cases
 that will not get caught by autotests. I don't think this is
 acceptable for fundamentals like QVector and friends. 
 
 I think it would be feasible to do a binary-only break somewhere
 around the 5.2 timeframe (say, ~12 months) where we address this.
 Technically, this would be Qt 6, but user porting effort would be
 reduced to a recompile.

That's essentially option (D) with a somewhat longer lead time.

I think that would be ok.

 The value of having a long lived (5 years?) binary compatible 5.x
 series is (IMO) low as there are quite often other reasons to
 recompile the stack.

Right.

Andre'
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-18 Thread Marc Mutz
On Wednesday July 18 2012, joao.abeca...@nokia.com wrote:
 I think it would be feasible to do a binary-only break somewhere around the
 5.2 timeframe (say, ~12 months) where we address this. Technically, this
 would be Qt 6, but user porting effort would be reduced to a recompile. The
 value of having a long lived (5 years?) binary compatible 5.x series is
 (IMO) low as there are quite often other reasons to recompile the stack.

We don't even need to break binary compatibility. We could use inline 
namespaces to let new code see the new containers while old code uses the old 
ones. That will exclude non-C++11 compilers from seeing the more efficient 
implementations, or else from the BC guarantee. Do we care?

Thanks,
Marc

-- 
Marc Mutz marc.m...@kdab.com | Senior Software Engineer
KDAB (Deutschland) GmbH  Co.KG, a KDAB Group Company
www.kdab.com || Germany +49-30-521325470 || Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-Independent Software Solutions
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-18 Thread Oswald Buddenhagen
 On Wednesday July 18 2012, joao.abeca...@nokia.com wrote:
  I think it would be feasible to do a binary-only break somewhere around the
  5.2 timeframe (say, ~12 months) where we address this. Technically, this
  would be Qt 6, but user porting effort would be reduced to a recompile.
 
if it's qt 6, then you call it qt 6. you need to do that because of
SOVERSION requirements anyway.
but this instantly forces the question: what's the point of rushing out
5.0 now if we already know that we'll deprecate it in a year?

  The value of having a long lived (5 years?) binary compatible 5.x
  series is (IMO) low as there are quite often other reasons to
  recompile the stack.
 
every linux distributor will slaughter you for this statement.

On Wed, Jul 18, 2012 at 12:25:37PM +0200, ext Marc Mutz wrote:
 We don't even need to break binary compatibility. We could use inline 
 namespaces to let new code see the new containers while old code uses the old 
 ones.
 
and how exactly is this supposed to work?
we are not talking about changing some private implementation details,
but the publicly visible data structures which are fundamental parts of
our api+abi. even if it's somehow possible to have different classes use
different container implementations, the conversion overhead would be
ridiculous.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-18 Thread marius.storm-olsen
On 18/07/2012 02:06, ext joao.abeca...@nokia.com wrote:
 Hey,

 I would rather we don't *rush* the container changes in, but get them
 up to snuff in a separate branch, instead. I would also like to
 challenge the assumptions I've seen repeated that probability for
 breakage is low and autotest coverage is high. It isn't and it isn't.
 It is very easy to break less-often used features and corner cases
 that will not get caught by autotests. I don't think this is
 acceptable for fundamentals like QVector and friends.

 I think it would be feasible to do a binary-only break somewhere
 around the 5.2 timeframe (say, ~12 months) where we address this.
 Technically, this would be Qt 6, but user porting effort would be
 reduced to a recompile. The value of having a long lived (5 years?)
 binary compatible 5.x series is (IMO) low as there are quite often
 other reasons to recompile the stack.

If there's reasons to break BC, there's reasons for a new Major version. 
We don't circumvent the policies because is looks silly to have a new 
major version in such a short time after 5.0.

However, I can imagine there's other significant changes we'll notice 
after 5.0 which will warrant other BC-incompatible changes, and maybe 
we'd want to refactor out more of the modules from QtBase into their own 
repos? As such, we might have several valid reason for having another 
major, to quickly correct learned lessons from Qt 5, and to ensure Qt 
6 can live on for a very long time.

Still, if Qt 6 would be on the road-map then, we should aim for making 
transitioning as simple as a pure recompile. We don't _have_ to do 
significant restructuring just because we're going a new major. Simply 
saying that we need to do it because of BC issues is fine. If major 
speed improvements is a result of that, I'm sure many people would 
understand.

Anyways, several people and Thiago himself has said that now is not the 
time for such a change to our tools classes, and we should listen to 
that. I don't think you want to add them both and let the end user 
decide, as it will create a maintenance nightmare, and you will have 
applications which both use Qt 5 but are incompatible with each others 
run-time. (Some apps will demand that you use the optimized Qt5 for 
plug-ins etc.)

-- 
.marius

 Cheers,
 João

 
 From: development-bounces+joao.abecasis=nokia@qt-project.org 
 [development-bounces+joao.abecasis=nokia@qt-project.org] on behalf of ext 
 André Pönitz [andre.poen...@mathematik.tu-chemnitz.de]
 Sent: 17 July 2012 23:59
 To: development@qt-project.org
 Subject: Re: [Development] Abandoning the container changes

 On Tue, Jul 17, 2012 at 05:19:23PM +0200, Oswald Buddenhagen wrote:
 On Mon, Jul 16, 2012 at 02:52:32PM -0700, ext Thiago Macieira wrote:
 On segunda-feira, 16 de julho de 2012 21.34.10, André Pönitz
 wrote:
 On Thu, Jul 05, 2012 at 09:04:39AM +0300, Thiago Macieira
 wrote:
 I think that, despite the potential benefits of the changes,
 we should not apply them at this time. There are far too many
 chances for breakage and it's a blatant disrespect for the
 feature freeze.

 I assume this is meant as a verdict, not as (possibly
 temporary) state of thinking.

 Correct. The changes are the right thing to do, just not now.
 We'll have to live with the current containers and their overhead
 until Qt 6.

 That includes the fact that QListQVariant is extremely
 inefficient.

 this is absurd.

 Incidentally, I agree. [Even if I lack the skill to express myself
 so clearly at times ;-}]

 we said A, now we need to say B. or unsay A, which i don't think
 anyone wants.

 i for one don't believe in qt6 anytime soon. it's the do-never release
 qt5 was for years.

 The suggested 4 years are 3 1/2 years too much anyway.

 That's 3 1/2 years more of forcing people to re-invent the wheel when
 it comes to performance-sensitive components in a Qt environment, and
 it's 3 1/2 years on top of the past half decade or so where Qt containers
 fail to deliver on one of the original reasons to have them at all
 (portability, convenience of use, _and_ performance).

 We do have the chance to fix it _now_, and we have a fairly decent
 idea of how the fix looks like. The whole change is essentially
 source compatible, i.e. has a low probability of breaking other
 components, and it is very well covered by autotests. The chances
 to be ready before the rest (Webkit Windows? Mac?) is ready for
 a 5.0 release are good.

 To get back on the constructive side I propose to do any of the
 following, in decreasing order of desirability:

 (A) Have the QString/QByteArray related bits in 5.0.

 (B) Have everything in 5.0.

 (C) Don't do anything for 5.0, but aim for a 6.0 instead for a 5.1
 next.

 (D) Don't do anything for 5.0, but allow 5.1 to be source compatiple
 but binary incompatible.

 (E) Don't do anything for 5.0, and provide a compile-time switch
 for 5.1 to select between current and patched 

Re: [Development] Abandoning the container changes

2012-07-18 Thread Marc Mutz
On Wednesday July 18 2012, Oswald Buddenhagen wrote:
 On Wed, Jul 18, 2012 at 12:25:37PM +0200, ext Marc Mutz wrote:
  We don't even need to break binary compatibility. We could use inline
  namespaces to let new code see the new containers while old code uses the
  old ones.

 and how exactly is this supposed to work?
 we are not talking about changing some private implementation details,
 but the publicly visible data structures which are fundamental parts of
 our api+abi. even if it's somehow possible to have different classes use
 different container implementations, the conversion overhead would be
 ridiculous.

That's a question of how the new classes are designed. I don't see an a-priori 
reason why, say, a v50::QVector couldn't share data with a v51::QVector, esp. 
considering the flexibility that was already present in Thiago's branch. 
There will be a conversion penalty of some form, but only for applications 
that continue to use the old version (because Qt will internally use the 
newest, of course). There will also be a maintenance penalty, but we already 
pay it in the form of BC guarantees. If we used inline namespaces, we would 
trade one form of maintenance burden (keeping BC) for another (maintaining 
inline namespaces).

The question is just: which one is more work? And frankly, no-one knows, 
because there's no experience with inline namespaces (even though GCC uses 
something similar for the debug STL containers for a long time).

Thanks,
Marc

-- 
Marc Mutz marc.m...@kdab.com | Senior Software Engineer
KDAB (Deutschland) GmbH  Co.KG, a KDAB Group Company
www.kdab.com || Germany +49-30-521325470 || Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-Independent Software Solutions
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-18 Thread Olivier Goffart
On Wednesday 18 July 2012 14:00:08 Marc Mutz wrote:
 On Wednesday July 18 2012, Oswald Buddenhagen wrote:
  On Wed, Jul 18, 2012 at 12:25:37PM +0200, ext Marc Mutz wrote:
   We don't even need to break binary compatibility. We could use inline
   namespaces to let new code see the new containers while old code uses
   the
   old ones.
  
  and how exactly is this supposed to work?
  we are not talking about changing some private implementation details,
  but the publicly visible data structures which are fundamental parts of
  our api+abi. even if it's somehow possible to have different classes use
  different container implementations, the conversion overhead would be
  ridiculous.
 
 That's a question of how the new classes are designed. I don't see an
 a-priori reason why, say, a v50::QVector couldn't share data with a
 v51::QVector, esp. considering the flexibility that was already present in
 Thiago's branch. There will be a conversion penalty of some form, but only
 for applications that continue to use the old version (because Qt will
 internally use the newest, of course). There will also be a maintenance
 penalty, but we already pay it in the form of BC guarantees. If we used
 inline namespaces, we would trade one form of maintenance burden (keeping
 BC) for another (maintaining inline namespaces).
 
 The question is just: which one is more work? And frankly, no-one knows,
 because there's no experience with inline namespaces (even though GCC uses
 something similar for the debug STL containers for a long time).

We discussed namespaces long time ago already, and decided not to put Qt in a 
namespace.
The reason is that it breaks source compatibility by breaking all the forward 
declarations.

-- 
Olivier

Woboq - Qt services and support - http://woboq.com
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-18 Thread Stephen Kelly
On Wednesday, July 18, 2012 14:00:08 Marc Mutz wrote:
 The question is just: which one is more work? And frankly, no-one knows,
 because there's no experience with inline namespaces (even though GCC uses
 something similar for the debug STL containers for a long time).

I believe the llvm community libc++ uses inline namespaces, but that might not 
have the widespread use and multiple versions required to really get the 
required experience.

I don't think breaking binary compatibility in a 5.x release is a good idea. 
As was said previously, if it's Qt 6, call it Qt 6.

Thanks,

-- 
Stephen Kelly stephen.ke...@kdab.com | Software Engineer
KDAB (Deutschland) GmbH  Co.KG, a KDAB Group Company
www.kdab.com || Germany +49-30-521325470 || Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-Independent Software Solutions

signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] How to configure qt-4.8 with v8?

2012-07-18 Thread haithem rahmani
Hi Olivier,

thanks for the quick answer.

I want to build the  QtWebKit with V8?
is it possible, working?

regards
Haithem.


On Wed, Jul 18, 2012 at 11:21 AM, Olivier Goffart oliv...@woboq.com wrote:

 On Wednesday 18 July 2012 09:34:51 haithem rahmani wrote:
  Hello,
 
  I'm trying to configure the qt-4.8.0 to be linked against the V_, but I
  didn't find any configure option
  to do that.
 
  can someone help me on that?

 Qt 4.8 do not use V8.

 Are you trying to use V8 with QtWebkit or QtScript or Qml?
 There exists some experimental branches that try to, but nothing released.

 If you just want to use V8 API dirrectly in yout Qt 4.8 application, you
 should just use upstream V8 dirrectly.
 (You could also try to compile the qtjsbackend repository with Qt 4.8. If
 that
 works, that could possibly simplify the integration with your build system)

 --
 Olivier

 Woboq - Qt services and support - http://woboq.com




-- 
*
Never say that's impossible, the word itself says I'm Possible
*
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] How to configure qt-4.8 with v8?

2012-07-18 Thread Simon Hausmann
On Wednesday, July 18, 2012 03:11:37 PM ext haithem rahmani wrote:
 Hi Olivier,
 
 thanks for the quick answer.
 
 I want to build the  QtWebKit with V8?
 is it possible, working?

Nope. We had a few developments towards that but ultimately abandoned those 
efforts, largely due to the community not accepting V8 support in WebKit2.

The Qt port of WebKit will stay with JavaScriptCore at this point.


Simon

 On Wed, Jul 18, 2012 at 11:21 AM, Olivier Goffart oliv...@woboq.com wrote:
  On Wednesday 18 July 2012 09:34:51 haithem rahmani wrote:
   Hello,
   
   I'm trying to configure the qt-4.8.0 to be linked against the V_, but I
   didn't find any configure option
   to do that.
   
   can someone help me on that?
  
  Qt 4.8 do not use V8.
  
  Are you trying to use V8 with QtWebkit or QtScript or Qml?
  There exists some experimental branches that try to, but nothing released.
  
  If you just want to use V8 API dirrectly in yout Qt 4.8 application, you
  should just use upstream V8 dirrectly.
  (You could also try to compile the qtjsbackend repository with Qt 4.8. If
  that
  works, that could possibly simplify the integration with your build
  system)
  
  --
  Olivier
  
  Woboq - Qt services and support - http://woboq.com
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Behaviour change of opacity property in QtQuick 2.0

2012-07-18 Thread Kim M. Kalland
On 18.07.2012 13:47, ext Nils Jeisecke wrote:
 Hi,

 In QtQuick 1 an element with opacity == 0 is treated as invisible
 (e.g. it won't see mouse events).
 This has changed in QtQuick 2.0 which breaks existing code that
 assumes that opacity == 0 means !visible.

 This example illustrates the change. A mouse click will print:
 QtQuick 1.1: CLICKED A
 QtQuick 2.0: CLICKED B

 A workaround is to set visible: opacity  0

 Is this change intentional?

 ---

 //import QtQuick 2.0
 import QtQuick 1.1

 Rectangle {
width: 360
height: 360
MouseArea {
  anchors.fill: parent
  onClicked: console.log(CLICKED A)
}

Rectangle {
  anchors.fill: parent
  opacity: 0
  MouseArea {
anchors.fill: parent
onClicked: console.log(CLICKED B)
  }
}
 }

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

Apparently, it was intentional: QTBUG-19193, and commit 
9bf96613c1be7d4df7132a9c3c9ac1a8740f698f. It would be nice to know what 
the arguments for changing the behaviour were...

Kim

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


Re: [Development] Behaviour change of opacity property in QtQuick 2.0

2012-07-18 Thread Nils Jeisecke
 Apparently, it was intentional: QTBUG-19193, and commit
 9bf96613c1be7d4df7132a9c3c9ac1a8740f698f. It would be nice to know what
 the arguments for changing the behaviour were...

Ok, thanks. I should have checked the git log. Sorry.

However this change makes QtQuick porting even more complicated
because it can be quite hard to figure out why a mousearea that is
below some invisible popup (visible but opacity==0) no longer reacts
to clicks but to hover events...

Nils
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Behaviour change of opacity property in QtQuick 2.0

2012-07-18 Thread Rafael Brandao
I've just figured out this issue on Snowshoe.
The change is not that simple. Assuming visible: opacity  0 will make
the property rely on this binding, but other entities may change it
manually what would break that binding, and we really did that. :-(

On Wed, Jul 18, 2012 at 12:59 PM, Nils Jeisecke njeise...@saltation.dewrote:

  Apparently, it was intentional: QTBUG-19193, and commit
  9bf96613c1be7d4df7132a9c3c9ac1a8740f698f. It would be nice to know what
  the arguments for changing the behaviour were...

 Ok, thanks. I should have checked the git log. Sorry.

 However this change makes QtQuick porting even more complicated
 because it can be quite hard to figure out why a mousearea that is
 below some invisible popup (visible but opacity==0) no longer reacts
 to clicks but to hover events...

 Nils
 ___
 Development mailing list
 Development@qt-project.org
 http://lists.qt-project.org/mailman/listinfo/development




-- 
Rafael Brandao @ INdT
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-18 Thread joao.abecasis
André Pönitz wrote:
 On Wed, Jul 18, 2012 at 07:06:55AM +, joao.abeca...@nokia.com wrote:
 I think it would be feasible to do a binary-only break somewhere
 around the 5.2 timeframe (say, ~12 months) where we address this.
 Technically, this would be Qt 6, but user porting effort would be
 reduced to a recompile.
 
 That's essentially option (D) with a somewhat longer lead time.

Somewhat. If it's a binary break we should still call it Qt 6.

I'm thinking we should get 5.0 out, use 5.1 to stabilize, react to
feedback and generally (im)prove on the Qt 5 vision. Some container
changes sneaked in, but they're not what we're trying to deliver *now*.

In parallel, we actually write the container changes everyone's up in
arms about (Thiago's changes are unfinished and not-fully-published work
in progress), we review those changes, take them for a spin, kick the
hell out of those tires and then make an informed decision whether it is
worth the binary break and how to handle it, in case it is.

Besides autotests coverage, we also have no benchmarks showing
improvements. I assume we can see improvements for the inlining of size
and offset/data in iteration benchmarks, but we haven't fully explored
the impact of *growing* the size of the container itself.

Anyway, we can discuss potential options now, but we can't make any
decisions and can hardly make commitments, other than than let's do the
container changes and release them when they're ready.

Cheers,


João
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-18 Thread Charley Bay

 João spaketh:

 I think it would be feasible to do a binary-only break somewhere
  around the 5.2 timeframe (say, ~12 months) where we address this.
  Technically, this would be Qt 6, but user porting effort would be
  reduced to a recompile.



 André  respondeth:
  That's essentially option (D) with a somewhat longer lead time.


João respondeth again:

 Somewhat. If it's a binary break we should still call it Qt 6.


  I'm thinking we should get 5.0 out, use 5.1 to stabilize, react to

feedback and generally (im)prove on the Qt 5 vision. Some container
 changes sneaked in, but they're not what we're trying to deliver *now*.

 In parallel, we actually write the container changes everyone's up in
 arms about (Thiago's changes are unfinished and not-fully-published work
 in progress), we review those changes, take them for a spin, kick the
 hell out of those tires and then make an informed decision whether it is
 worth the binary break and how to handle it, in case it is.

 Besides autotests coverage, we also have no benchmarks showing
 improvements. I assume we can see improvements for the inlining of size
 and offset/data in iteration benchmarks, but we haven't fully explored
 the impact of *growing* the size of the container itself.

 Anyway, we can discuss potential options now, but we can't make any
 decisions and can hardly make commitments, other than than let's do the
 container changes and release them when they're ready.


IMHO this seems reasonable.

I view QML2 as the stabilized version of QML1 (significant technical
differences, as well as underlying implementation).  I was quite impressed
with what QML1 offered (it's a new paradigm), but I think the community
would benefit from learning-to-work with QML2 as opposed to extending their
learning curves on QML1.

I understand the value of the container-changes, and while warranted, it
doesn't seem to be the biggest part of the core-offering of Qt5, and it's
possible some of the benchmarks/changes associated with that effort might
be better understood after the C++11 Rvalue-references are better
implemented and made available through compiler vendors.

The ideal for me is that if container-changes would push the Qt release
back six months (to arbitrarily pick-a-fictitious-number), I'd rather have
a release now, and another release in six months.

I know it's been discussed before (don't want to re-open that discussion),
but I don't care about binary compatibility (I know how to recompile); and
only somewhat care about interface compatibility (adding-member-functions
seems incredibly cheap to me, I'd prefer to have the APIs mature properly
since they represent new designs); and, I'd support any
renaming/refactoring to enforce best-practice-use-models as these are
discovered when applying this new paradigm.

--charley
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-18 Thread joao.abecasis
Marius Storm-Olsen wrote:
 On 18/07/2012 02:06, ext joao.abeca...@nokia.com wrote:
 I think it would be feasible to do a binary-only break somewhere
 around the 5.2 timeframe (say, ~12 months) where we address this.
 Technically, this would be Qt 6, but user porting effort would be
 reduced to a recompile. The value of having a long lived (5 years?)
 binary compatible 5.x series is (IMO) low as there are quite often
 other reasons to recompile the stack.
 
 If there's reasons to break BC, there's reasons for a new Major
 version.  We don't circumvent the policies because is looks silly to
 have a new major version in such a short time after 5.0.

Agreed.

 However, I can imagine there's other significant changes we'll notice
 after 5.0 which will warrant other BC-incompatible changes, and maybe
 we'd want to refactor out more of the modules from QtBase into their
 own repos? As such, we might have several valid reason for having
 another major, to quickly correct learned lessons from Qt 5, and to
 ensure Qt 6 can live on for a very long time.

Yes, by all means when we notice these needed changes and have them
ready let's bundle them together and call them a release.

Let's not plan releases based on features and let's not plan to do work
based on the assumption that we're doing a binary break anyway, at
least for as long as we can avoid it.

 Still, if Qt 6 would be on the road-map then, we should aim for making
 transitioning as simple as a pure recompile. We don't _have_ to do
 significant restructuring just because we're going a new major. Simply
 saying that we need to do it because of BC issues is fine. If major
 speed improvements is a result of that, I'm sure many people would
 understand.

Agreed.

 Anyways, several people and Thiago himself has said that now is not
 the time for such a change to our tools classes, and we should listen
 to that. I don't think you want to add them both and let the end user
 decide, as it will create a maintenance nightmare, and you will have
 applications which both use Qt 5 but are incompatible with each others
 run-time. (Some apps will demand that you use the optimized Qt5 for
 plug-ins etc.)

My suggestion is not to have both variants in the common code base or to
advertise two alternative Qt 5 implementations. I'm suggesting we treat
this as feature development happening in a feature branch (reviewed,
CI-tested and all that, if feasible).

I'm also suggesting we consider the posibility of doing an earlier BC
break with stronger SC guarantees and use that if/when there's
significant value being added. Having this *possibility* at all can
encourage people to try out things, instead of waiting for a Do Never Qt
6 (tm) release and rushing half-baked features out.


João
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Behaviour change of opacity property in QtQuick 2.0

2012-07-18 Thread Alan Alpert
On Wed, 18 Jul 2012 13:47:36 ext Nils Jeisecke wrote:
 Hi,
 
 In QtQuick 1 an element with opacity == 0 is treated as invisible
 (e.g. it won't see mouse events).
 This has changed in QtQuick 2.0 which breaks existing code that
 assumes that opacity == 0 means !visible.
 
 This example illustrates the change. A mouse click will print:
 QtQuick 1.1: CLICKED A
 QtQuick 2.0: CLICKED B
 
 A workaround is to set visible: opacity  0
 
 Is this change intentional?

Yes, this was intentional. Opacity is now a purely visual property, and only 
visible is used for optimizations (such as not receiving input or being 
positioned). Sorry, this should have been listed in What's New; 
https://codereview.qt-project.org/31057 fixes this.

The reason, apart from better conceptual consistency, is that this makes 
opacity a lot easier to use and animate in some circumstances. Key edge cases 
involved wanting to fade something out but not actually lose the 'visible' 
behavior, such as collecting mouse events or being positioned by positioner 
elements. Previously the below snippet would have the green rectangle jerk 
around a lot because it was repositioned in the instant that opacity became 0 
for the blue rectangle, and again when it became non-zero.

Column {
Rectangle { color: red; width: 40; height: 40}
Rectangle 
{ 
color: blue; width: 40; height: 40
SequentialAnimation on opacity {
NumberAnimation{ from: 1; to: 0 }
NumberAnimation{ from: 0; to: 1 }
}
}
Rectangle { color: green; width: 40; height: 40}
}

You can imagine the analagous situation with a MouseArea, where its subtree is 
pulsing in opacity and if the user clicks at the wrong time then it 
inexplicably doesn't work.

--
Alan Alpert
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Abandoning the container changes

2012-07-18 Thread André Pönitz
On Wed, Jul 18, 2012 at 05:49:12PM -0600, Charley Bay wrote:
 The ideal for me is that if container-changes would push the Qt
 release back six months (to arbitrarily pick-a-fictitious-number), I'd
 rather have a release now, and another release in six months.

This was not meant to put anything on the critical path or to change the
timing of Qt 5.0 at all.

Andre'
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Behaviour change of opacity property in QtQuick 2.0

2012-07-18 Thread Alexis Menard
On Wed, Jul 18, 2012 at 10:08 PM, Alan Alpert alan.alp...@nokia.com wrote:
 On Wed, 18 Jul 2012 13:47:36 ext Nils Jeisecke wrote:
 Hi,

 In QtQuick 1 an element with opacity == 0 is treated as invisible
 (e.g. it won't see mouse events).
 This has changed in QtQuick 2.0 which breaks existing code that
 assumes that opacity == 0 means !visible.

 This example illustrates the change. A mouse click will print:
 QtQuick 1.1: CLICKED A
 QtQuick 2.0: CLICKED B

 A workaround is to set visible: opacity  0

 Is this change intentional?

 Yes, this was intentional. Opacity is now a purely visual property, and only
 visible is used for optimizations (such as not receiving input or being
 positioned). Sorry, this should have been listed in What's New;
 https://codereview.qt-project.org/31057 fixes this.

 The reason, apart from better conceptual consistency, is that this makes
 opacity a lot easier to use and animate in some circumstances. Key edge cases
 involved wanting to fade something out but not actually lose the 'visible'
 behavior, such as collecting mouse events or being positioned by positioner
 elements. Previously the below snippet would have the green rectangle jerk
 around a lot because it was repositioned in the instant that opacity became 0
 for the blue rectangle, and again when it became non-zero.

 Column {
 Rectangle { color: red; width: 40; height: 40}
 Rectangle
 {
 color: blue; width: 40; height: 40
 SequentialAnimation on opacity {
 NumberAnimation{ from: 1; to: 0 }
 NumberAnimation{ from: 0; to: 1 }
 }
 }
 Rectangle { color: green; width: 40; height: 40}
 }

 You can imagine the analagous situation with a MouseArea, where its subtree is
 pulsing in opacity and if the user clicks at the wrong time then it
 inexplicably doesn't work.

Just to point out that this is the way HTML/CSS behave. Opacity is a
purely visual property and visible (e.g. display: none for invisible)
is used to optimize away (not creating the node in the render tree).
An opacity : 0 div will receive the mouse inputs whereas a display:
none will not. Though later on I'm sure WebKit has optimization to
filter away opacity:0 element to speed up rendering but that's not
part of the discussion :).



 --
 Alan Alpert
 ___
 Development mailing list
 Development@qt-project.org
 http://lists.qt-project.org/mailman/listinfo/development



-- 
Alexis Menard (darktears)
Software Engineer
openBossa @ INdT - Instituto Nokia de Tecnologia
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Behaviour change of opacity property in QtQuick 2.0

2012-07-18 Thread Alan Alpert
On Wed, 18 Jul 2012 19:00:01 ext Rafael Brandao wrote:
 I've just figured out this issue on Snowshoe.
 The change is not that simple. Assuming visible: opacity  0 will make
 the property rely on this binding, but other entities may change it
 manually what would break that binding, and we really did that. :-(

There's a new enabled property which also prevents mouse input. It also affects 
keyboard focus, but if you aren't using keyboard focus you can bind enabled: 
opacity  0 and get effectively the same results as before.

--
Alan Alpert
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] Qt Project CI outage on 19th-20th July 2012

2012-07-18 Thread Rohan McGovern
Hi all,

Please be advised that tonight/tomorrow the Qt Project CI system
will have a temporary outage for planned maintenance of a site UPS.

The system will stop accepting new builds at:

  18:30 UTC, 19th
  20:30 CET, 19th
  04:30 AEST, 20th

The outage is estimated to last somewhere from 4-7 hours.

It is fine to stage changes in this time, but they won't make progress
until the maintenance is completed.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development