Re: [Development] No SSL on iOS ?

2014-04-29 Thread Kurt Pattyn


 On 29 Apr 2014, at 00:16, Jeremy Lainé jeremy.la...@m4x.org wrote:
 
 On 04/28/2014 11:44 AM, Nichols Andy wrote:
 It is possible still in the packaged versions of Qt for iOS to make 
 connections using SSL via QNetworkAccessManager as there is a backend that 
 uses Apples crypto API, but without OpenSSL support you can’t use any of the 
 API’s in Qt that use OpenSSL directly (like QSSLSocket).
 
 Ouch I just realised that most likely means QWebSocket on iOS does not 
 support secure
 websockets!
Yes, unfortunately. QWebSockets uses QSSLSocket and hence is not supported on 
iOS.
 
 What would the best course of action be to add support for secure websockets 
 on iOS?
 
 Cheers,
 Jeremy
 
 
 ___
 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] Perceptions/Understandings of the QML language [was: Question about Qt's future]

2014-04-29 Thread Koehne Kai


 -Original Message-
 From: development-bounces+kai.koehne=digia@qt-project.org
 [mailto:development-bounces+kai.koehne=digia@qt-project.org] On
 Behalf Of Andre Ponitz
 Sent: Monday, April 28, 2014 11:34 PM
 To: Alan Alpert
 Cc: development@qt-project.org
 Subject: Re: [Development] Perceptions/Understandings of the QML language
 [was: Question about Qt's future]
 
 On Mon, Apr 28, 2014 at 11:12:47AM -0700, Alan Alpert wrote:
  Yes, I agree that more rigorous and agreed definitions would be
  helpful. It also takes time, and impedes innovation, so I'm not sure
  if we're quite mature enough to nail down QML just yet. Should be
  soon though, in the next few years.
 
 To get this straight: After five years of development the Maintainer of the 
 Qt
 Declarative module is neither able nor willing to give a simple definition of
 what QML is.

Come on Andre, ad hominem attacks do not help. I'd expect better from you as a 
Maintainer yourself (quotes added on purpose).

On to the topic: QML is what the QML parser accepts (that is, JSON like 
declarative syntax + JavaScript in certain places). No, there's no standard 
document for it (in case that's what you're after), but it has a well-defined 
grammar etc. Christian Kamm AFAIR planned a long time ago to add the grammar to 
the documentation, but I think that never was finished.

And, as always, the documentation can be improved ;)

The discussion so far was whether it makes sense to give the 'declarative' part 
alone a separate name (something we haven't done so far). I personally agree 
with Alan that it doesn't make much sense as long as the two parts are 
technically and practically inseparable. But I'm personally all for an 
experiment to come up with a more strict, declarative QML subset.

Regards

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


Re: [Development] Perceptions/Understandings of the QML language [was: Question about Qt's future]

2014-04-29 Thread Hartmann Thomas
Hi,

On Mon, Apr 28, 2014 at 2:34 PM, André Pönitz apoen...@t-online.de wrote:
 I think at least three modifications are inavoidable: For one, things that
 could be written in a declarative way but which currently are only possible
 using JavaScript, a declarative way should be added. Second, it should be
 stressed in the documentation (including the examples), that using
 inline imperative code is naughty. This can be supported by e.g. the QML
 Designer refusing to operate on such files. People can still do that, but
 would be on their own. And finally, and that's also acting as a proof that
 the first two items actually have been done, the JavaScript dependency
 should be _optional_.

Can we turn this into action points we _all_ agree on?
My personal favorites are (In no strict order):

(1) Identify non declarative parts of Qt Quick and add declarative API (e.g. 
setting states)
(2) Document that inline Java Script and mixing declarative and imperative code 
in one file has its pitfalls in big projects and creates issues for tooling. 
Explain the difference between pure declarative QML and QMLJS and the impact on 
tooling.
(3) Document that accessing ids from other .qml files without any interface 
(just relying on the fact that they are in the context) creates hard to 
maintain QML code.
(4) Writing (more) QML(JS) static analyzers that can check/enforce a proper 
strict mode for QML.
(5) Write refactoring tools that help to clean up existing code.
(6) Fix/cleanup existing demos and examples.
(7) Investigate how we can improve the interplay of QML and C++. Especially in 
C++/backend heavy projects.

As a second step the actual work has to be done of course.

Kind Regards,
Thomas Hartmann
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Perceptions/Understandings of the QML language [was: Question about Qt's future]

2014-04-29 Thread Christian Kandeler
On 04/28/2014 10:51 PM, André Pönitz wrote:
 I am tempted to suggest to reload http://www.classnamer.com/ until it
 contains Q, M, and L.

Don't waste your time. I've checked the source code and found that the 
first word will never start with a 'Q'. Maybe we should fork it?


Christian

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


[Development] Qt Contributors' Summit reminder

2014-04-29 Thread Kojo Tero
Hello,

This is a reminder for everyone who has contributed to Qt in the past year to 
request an invite to the Qt Contributors' Summit.

The event will be in Berlin, June 10-11th. It's a meeting for Qt contributors 
and developers. A time to look at where the project is and plan ahead for the 
future. A face to face meeting of the people who develop and design your 
favourite cross-platform toolkit. For more information see: 
http://qt-project.org/groups/qt-contributors-summit-2014/wiki

To request an invite use https://www.webropolsurveys.com/S/7CB14527039843C9.par

See you in Berlin to talk about where Qt is heading!
Best regards,
Tero
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Perceptions/Understandings of the QML language [was: Question about Qt's future]

2014-04-29 Thread Ziller Eike

On Apr 28, 2014, at 8:12 PM, Alan Alpert 4163654...@gmail.com wrote:

 On Mon, Apr 28, 2014 at 7:36 AM, Sze Howe Koh szehowe@gmail.com wrote:
 On 25 April 2014 18:18, Joerg Bornemann joerg.bornem...@digia.com wrote:
 On 25-Apr-14 04:21, Sze Howe Koh wrote:
 
 I consider QML and JavaScript to be different languages. JavaScript
 can be embedded into QML to extend QML's capabilities, just like how
 it can be embedded into HTML to extend HTML's capabilities.
 
 
 Yep, I hear people keep repeating the mantra QML is declarative. It's just
 QML/JS that isn't. Does that buy us anything tooling-wise? No. Because,
 even though this thought is true in essence, in practice you have to use the
 JS part.
  People throw handwritten QML files full of clever hacks at Qt Creator's
 QmlDesigner and wonder why it doesn't fully understand the magic, even
 though everything is deemed declarative (== toolable).
 
 To check if I've understood you correctly: You've found that
 classifying QML as declarative distorts developers' expectations of
 the tools?
 
 Do you think it will help if we rebrand QML as a markup language or
 a multi-paradigm language, instead of a declarative language?
 
 One of the original meanings of QML was Qt Markup Language. But markup
 implies less interactivity, and multi-paradigm implies that you need
 to read several more paragraphs to understand what it is. So while
 declarative is not strictly accurate, I feel it captures the spirit
 better (for humans, not tools. Tools should treat it as markup, and if
 there are any tools reading this I'm sorry to confuse you ;) ).
 
 Some user interface markup languages (e.g. XAML, MXML, HTML) allow
 imperative code to be embedded within declarative code.
 
 
 On 26 April 2014 23:39, André Pönitz apoen...@t-online.de wrote:
 On Fri, Apr 25, 2014 at 10:21:04AM +0800, Sze Howe Koh wrote:
 On 24 April 2014 00:35, André Pönitz apoen...@t-online.de wrote:
 On Wed, Apr 23, 2014 at 10:50:23PM +0800, Sze Howe Koh wrote:
 QML is a declarative language
 
 Are you considering sequences of JavaScript statements, especially control
 flow statements, as declarative?
 
 Andre'
 
 Of course not. :-)
 
 Right. With the obvious consequence for .qml files containing such.
 
 Within a .qml file, JavaScript is in no way an optional extension of some
 declarative QML language. QML and JavaScript are _inseparably_ tied
 together in the QML/JS hybrid contents of a .qml file.
 
 A quick grep in qtdeclarative/examples/quick/demos e.g. finds the pattern
 'if (' in 30 out of 88 .qml files. All nine examples are affected. And
 that's not just an accident, as pure declarative QML features like
 ScriptAction, or on{Triggered,Clicked,Loaded,...} handlers _require_
 immediate use of JavaScript.
 
 To clarify, I do agree with you that QML is extremely limited without
 JavaScript for its intended role in Qt Quick.
 
 It's just that the two of us had applied the label QML to different
 parts of the language framework. This is addressed at the bottom of
 this email.
 
 
 I was highlighting the fact that their declarative
 structures make QML or HTML+CSS good for describing a GUI's looks.
 This is in contrast to imperative languages like C++ or JavaScript or
 PHP -- I don't want to use any of these to describe a GUI's looks.
 
 Not wanting to use imperative languages like [...] JavaScript [...] to
 describe a GUI's look is fine with me, but how on earth is that an
 argument _in favour_ of .qml?
 
 You could have made the point declarative structures are good for GUI
 description for Qt Widget's .ui files, after all, .ui files contents
 pretty much _is_ declaring layout nesting and property values.
 
 That was not my argument.
 
 My original comment about declarativeness was in response to the
 apples-to-oranges comparison between UnrealScript and QML. [1] Marius'
 point was (I believe), Epic Games dropped UnrealScript for C++,
 therefore we too should stay with C++ instead of moving to QML. I was
 trying to say that they aren't comparable because UnrealScript is for
 scripting games while QML is for crafting GUIs. I used QML's
 declarative nature to justify my position that it is a GUI-crafting
 language.
 
 My actual argument in favour for QML was that it lets us express our
 intent much more concisely than other languages. This argument was
 made while we were on the topic of UI development efficiency, with
 Android XML+Java and the Qt Graphics View Framework as the reference
 points. [1, 2]
 
 Note also, I contended that Qt Quick can now fully replace the
 Graphics View Framework, but is not yet ready to fully replace widgets
 [2].
 
 Graphics View wasn't really made for UIs, and for it's intended use
 (multi-view MDI CAD programs?) it's still better than QtQuick. Which
 was made for UIs, so can replace Graphics View there.
 
 It's the QtQuick Controls module which should fully replace widgets.
 But I agree it's not yet ready (and anyone who complains that they'll
 still need their C++ widgets 

Re: [Development] Perceptions/Understandings of the QML language [was: Question about Qt's future]

2014-04-29 Thread Simon Hausmann
On Tuesday 29. April 2014 07.17.14 Koehne Kai wrote:
  -Original Message-
  From: development-bounces+kai.koehne=digia@qt-project.org
  [mailto:development-bounces+kai.koehne=digia@qt-project.org] On
  Behalf Of Andre Ponitz
  Sent: Monday, April 28, 2014 11:34 PM
  To: Alan Alpert
  Cc: development@qt-project.org
  Subject: Re: [Development] Perceptions/Understandings of the QML language
  [was: Question about Qt's future]
  
  On Mon, Apr 28, 2014 at 11:12:47AM -0700, Alan Alpert wrote:
   Yes, I agree that more rigorous and agreed definitions would be
   helpful. It also takes time, and impedes innovation, so I'm not sure
   if we're quite mature enough to nail down QML just yet. Should be
   soon though, in the next few years.
  
  To get this straight: After five years of development the Maintainer of
  the Qt Declarative module is neither able nor willing to give a simple
  definition of what QML is.
 
 Come on Andre, ad hominem attacks do not help. I'd expect better from you as
 a Maintainer yourself (quotes added on purpose).

I agree.

For example I decide to invest time into doing something in Qt if for example 
I had an idea myself and I'm excited about it.

If somebody else wants me to fix a bug, then my motivation for sitting down and 
spending a day or two digging deep into the code base to fix that bug is pride 
and to some extend guilt: I want our users to enjoy using Qt and if I succeed 
in relating to the feeling of that user (based on a high quality bug report 
for example), then I'm compelled to fix it.

If somebody else wants me to do something bigger that just a bug fix, then they 
need to inspire me. If they don't want to do all the work on their own, then 
they need to create excitement around their idea - they need to lead. In the 
Qt project - and many other open source projects naturally - the ability to 
inspire others is crucial in order to move things forward.

Unfortunately a substantial amount of emails in this particular email thread 
do not exactly inspire me. Hence I'm less inclined to contribute.

My suggestion is: If you'd like to change Qt in big ways, prepare yourself and 
your idea, come to the contributor summit, invite people to a discussion and 
create a movement. Excitement and inspiration is much better to get across in 
person, when you can see their face, their hands, their gestures and their 
smile.
 
 On to the topic: QML is what the QML parser accepts (that is, JSON like
 declarative syntax + JavaScript in certain places). No, there's no standard
 document for it (in case that's what you're after), but it has a
 well-defined grammar etc. Christian Kamm AFAIR planned a long time ago to
 add the grammar to the documentation, but I think that never was finished.
 
 And, as always, the documentation can be improved ;)
 
 The discussion so far was whether it makes sense to give the 'declarative'
 part alone a separate name (something we haven't done so far). I personally
 agree with Alan that it doesn't make much sense as long as the two parts
 are technically and practically inseparable. But I'm personally all for an
 experiment to come up with a more strict, declarative QML subset.

I also like the idea of such an experiment. The fact we parse QML only once 
and have full control over the JS code generation should make it much easier 
nowadays to achieve this while preserving semantics at the same time.

(Kai's approach is an example of something that inspires me :)

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


Re: [Development] Qt Contributors' Summit reminder

2014-04-29 Thread Giuseppe D'Angelo

Hi,

Il 29/04/2014 09:56, Kojo Tero ha scritto:

Hello,

This is a reminder for everyone who has contributed to Qt in the past
year to request an invite to the Qt Contributors’ Summit.


When will the invitations be sent? It's only ~40 days before the summit 
and people would need to ask for leave, organize travels, etc.


Thanks,
--
Join us Oct 6-8 at BCC Berlin for Qt Developer Days 2014!
Giuseppe D'Angelo | giuseppe.dang...@kdab.com | Software Engineer
KDAB (UK) Ltd., a KDAB Group company
Tel. UK +44-1738-450410, Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-independent software solutions



smime.p7s
Description: Firma crittografica S/MIME
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] [QIODevice]How to correctly treat/understand of the documentation?

2014-04-29 Thread Denis Shienkov
Hi Thiago,

No, it isn't. The socket notifier activates when there's buffer available
in the
kernel, not that the buffer is empty. That means something got flushed,
but it
does not indicate that everything did.

I will ask very specifically: what ioctl or fcntl do you need to enable to
get
the notification? If you don't know the answer to this, I assert that you
don't
have a tx-empty event.

Hmm.. yes, in documentation it so. But actually it event triggered when
FIFO is empty. Well, ok, it isn't important, lets skip this issue now.. :)

The behaviour of QTcpSocket on all platforms and of QProcess on Unix.

Well, thanks a lot. I will take these arguments into account and we will
think what to do farther.

UPD: Guys, many thanks

BR,
Denis






2014-04-28 20:25 GMT+04:00 Thiago Macieira thiago.macie...@intel.com:

 Em seg 28 abr 2014, às 17:04:31, Denis Shienkov escreveu:
  Hi Thiago,
 
   By the way, what is that tx-empty event?
 
  E.g., it is an signal of QSocketNotifier::activated(fd) for the Write
 type
  of notifier.

 No, it isn't. The socket notifier activates when there's buffer available
 in the
 kernel, not that the buffer is empty. That means something got flushed,
 but it
 does not indicate that everything did.

 I will ask very specifically: what ioctl or fcntl do you need to enable to
 get
 the notification? If you don't know the answer to this, I assert that you
 don't
 have a tx-empty event.

  For example, all classes using of the QPipeWriter (QProcess??,
  QLocalSocket) in Windows implement an true bytesWritten() signal. When
  the bytesWritten() is emitted after each I/O completion (at least, it got
  an numbers of transferred bytes after each completion and accumulate it).

 The Windows behaviour is only that because of either:

 a) a bug
 b) the Windows kernel keeps referring to our buffer and we can't completely
 flush it until we get the completion notification

  But on other platforms (on *nix) it isn't implemented by a similar method
  (since in principle there is no asynchronous I/O in *nix). Therefore
 there
  bytesWritten() signal is emitted without waiting for the fact of real
  sending of data. Thus, the same QProcess or QLocalSocket will behave
  differently on different platforms (I told it already in previous mails).

 This is the expected behaviour.

  So, what behavior should I take as basic for the the same as
 QTcpSocket
  and QProcess. ? Behavior of QProcess from the Windows platform, or
  behavior of QProcess from the *nix platform? :)

 The behaviour of QTcpSocket on all platforms and of QProcess on Unix.

  For me it is more pleasant, simpler, more logical, to implement a common
  behavior (for any platform) as in Windows. Because in other case, the
  bytesWritten()  loses the sense; becomes a ballast which doesn't bear the
  useful sense.

 That rests on the requirement that the behaviour you want to implement can
 be
 implemented. I have not seen any indication so far that it is possible for
 serial ports, let alone for sockets and pipes.

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

 ___
 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] Qt Contributors' Summit reminder

2014-04-29 Thread Kojo Tero
Coming right after 1st May.
(or maybe even tomorrow, if I can squeeze my schedule)

I will keep the registration open, and we will make fast decisions on late 
requests.

Tero

 -Original Message-
 From: development-bounces+tero.kojo=digia@qt-project.org
 [mailto:development-bounces+tero.kojo=digia@qt-project.org] On
 Behalf Of Giuseppe D'Angelo
 Sent: 29. huhtikuuta 2014 11:04
 To: development@qt-project.org
 Subject: Re: [Development] Qt Contributors' Summit reminder
 
 Hi,
 
 Il 29/04/2014 09:56, Kojo Tero ha scritto:
  Hello,
 
  This is a reminder for everyone who has contributed to Qt in the past
  year to request an invite to the Qt Contributors’ Summit.
 
 When will the invitations be sent? It's only ~40 days before the summit and
 people would need to ask for leave, organize travels, etc.
 
 Thanks,
 --
 Join us Oct 6-8 at BCC Berlin for Qt Developer Days 2014!
 Giuseppe D'Angelo | giuseppe.dang...@kdab.com | Software Engineer
 KDAB (UK) Ltd., a KDAB Group company Tel. UK +44-1738-450410, 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] Perceptions/Understandings of the QML language [was: Question about Qt's future]

2014-04-29 Thread Koehne Kai
 -Original Message-
 [...]
 On to the topic: QML is what the QML parser accepts (that is, JSON like
 declarative syntax + JavaScript in certain places). No, there's no standard
 document for it (in case that's what you're after), but it has a well-defined
 grammar etc. Christian Kamm AFAIR planned a long time ago to add the
 grammar to the documentation, but I think that never was finished.
 
 And, as always, the documentation can be improved ;)

https://codereview.qt-project.org/#change,84256 

is my humble attempt at it.

Regards

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


Re: [Development] Qt binaries with inlined functions

2014-04-29 Thread Dimitar Dobrev
    I don't need invisible inlines either but some of them - such as 
QModelIndex::row() - are visible. Is there any way to emit just the visible 
inlines?

    Dimitar

On Monday, April 28, 2014 4:12 PM, Thiago Macieira thiago.macie...@intel.com 
wrote:
 
Em seg 28 abr 2014, às 11:15:23, Koehne Kai escreveu:

  -Original Message-
  From: development-bounces+kai.koehne=digia@qt-project.org
  Subject: [Development] Qt binaries with inlined functions
  
      Hello all,
     
      I'd like to start a discussion about .https://bugreports.qt-  
  project.org/browse/QTBUG-32995. Please share your thoughts.
 
 To get some numbers I tried to add
 
 QMAKE_CXXFLAGS += -fkeep-inline-functions

`-fkeep-inline-functions'
     In C, emit `static' functions that are declared `inline' into the
     object file, even if the function has been inlined into all of its
     callers.  This switch does not affect functions using the `extern
     inline' extension in GNU C90.  In C++, emit any and all inline
     functions into the object file.

DO NOT pass that flag. There's no need to bloat our binaries with functions 
that cannot be called (remember, we pass -fvisibility-inlines-hidden).

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

___
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] [QIODevice]How to correctly treat/understand of the documentation?

2014-04-29 Thread Denis Shienkov
That is why I suggest that when in Unbuffered mode, write/read should
behave as their Unix counterparts in non blocking mode. If the data cannot
be written at once, then refuse to write it (or to read it).

So, means it is possible to divide on main moments for possible I/O
implementation for the serial port (the own requirements/specification of
I/O behavior):

1) Buffered mode

- reading and writing is carried out via the internal buffer of class
- data transmission should be postponed and is carried out only on events
from a notifier (when the FIFO of driver/device is ready for I/O
operation).  Similar with the current buffered QTcpSocket implementation...
- bytesWritten() signal has to be emitted after an data transmission from
the user space to kernel space (i.e. after a successful write(),
WriteFile() syscall's). Similar with the any Unix implementation of
QTcpSocket, QProcess...
- data reading is carried out automatically when FIFO is ready for reading
(by event from the read notifier). A data from the FIFO will be read into a
internal read buffer of class. Similar with the current buffered QTcpSocket
implementation...
- the readyRead() signal should be emitted after successfully automatically
reading from the FIFO into internal buffer of class.

2) Unbuffered mode

- reading and writing is carried out directly to the device, by avoiding of
the internal buffer of class
- data transmission should be directly by means of calling the ::write(),
::WriteFile() syscalls.  Similar with the current unbuffered QTcpSocket
implementation...
- bytesWritten() signal has to be emitted after an data transmission from
the user space to kernel space (i.e. after a successful write(),
WriteFile() syscall's). Similar with the any Unix implementation of
QTcpSocket, QProcess...
- data reading is carried out manually by user, when the FIFO is ready for
reading (by the readyRead() signal or something else), by means of calling
of the ::read(), ::ReadFile() syscalls. Similar with the current unbuffered
QTcpSocket implementation...
- the readyRead() signal should be emitted when the FIFO is ready to read.


This is expected behavior?

PS: I.e. we need to implement the general final option of use case, to
adhere to the concrete course. :)


BR,
Denis




2014-04-28 13:53 GMT+04:00 Carlos Duclos carlosducl...@yahoo.com:


 On Sun, Apr 27, 2014 at 01:34:52PM -0700, Thiago Macieira wrote:
  Em dom 27 abr 2014, ?s 11:08:44, Denis Shienkov escreveu:
   Here I am a little disagree. Because in Unbuffered mode, loss of data
 is
   exists. For example, in a case when the port accepts a data stream.
 And
   when the user ignores readyRead() signal, i.e do not reads nothing
 from
   port. In this case FIFO of device/driver will be overflowed, that will
   cause overrun/overflow errors, and part of stream will be lost.
 
  Doesn't happen with pipes, sockets and other devices with flow control.
 
 yeah, but serial ports can be operated without flow control. if the
 kernel does not buffer indefinitely (which seems plausible, as otherwise
 one could DoS it), data could be discarded indeed.

 That is why I suggest that when in Unbuffered mode, write/read should
 behave as their Unix counterparts in non blocking mode. If the data cannot
 be written at once, then refuse to write it (or to read it).

 Discarding data is more or less always a possibility, unless it is stopped
 by the device itself by using flow control. The moment flow control is
 disabled, buffering data will protect it for a little while until the
 buffer is full. If nobody empties the buffer, then the data will be
 discarded at some point (or the app will be killed by the OOM). And even
 using flow control, if the flow control is automatic and the data is copied
 by QtSerialPort to its own buffer, there is risk of filling that buffer if
 the buffer is not emptied. At some point a line needs to be drawn, it is
 impossible to prevent misuse in all cases. If the user of QtSerialPort
 never empties the buffers by reading from them or the buffer cannot be
 emptied because the device is never ready for writing, then we need to
 signal the error and let the user take the corrective action.

   As I wrote above, the only Windows has an true async I/O. The Unix
 has
   not this feature, he has only non-blocking approach, but it is not
 an
   async I/O. So, implementation of completion of I/O operation is
   problematic on any Unix's.  We only can judge about operation
 completion
   indirectly, e.g. for writing - wait for the Tx-empty event.
 
  By the way, what is that tx-empty event? Note that sockets and pipes
 don't
  have that, so please don't make QSerialPort use that by default. You
 can add
  an extra signal to QSerialPort to indicate this, but bytesWritten()
 must mean
  the same as QTcpSocket and QProcess.
 
 a separate signal would be redundant, as checking byteToWrite() == 0 in
 the slot called from bytesWritten() is sufficient.

 That seems indeed a good option. 

Re: [Development] new Qt5.3 RC snapshot available

2014-04-29 Thread Yang Fan
This bug still exists in
qt-opensource-mac-x64-android-ios-5.3.0-RC_2014-04-29_02-22-23-53.dmg. iOS
developing is blocked totally.


On Mon, Apr 28, 2014 at 10:20 PM, Yang Fan missd...@gmail.com wrote:

 Yes, I see the JIRA status, but I tried
 qt-opensource-mac-x64-android-ios-5.3.0-RC_2014-04-27_10-54-10-50.dmg and
 all other snapshots later than
 qt-opensource-mac-x64-android-ios-5.3.0-RC_2014-04-16_06-16-00-40.dmg, this
 issue still exists.

 Is there any auto test case to verify this kind of issues on CI?


 On Mon, Apr 28, 2014 at 10:05 PM, Simon Hausmann simon.hausm...@digia.com
  wrote:

 On Monday 28. April 2014 22.01.32 Yang Fan wrote:
  QTBUG-38526 is not resolved, it should block the release.

 It's being worked on, as you can see if you look into JIRA. The fix is
 integrating at this moment.

 Have you tested it?


 Simon

  On Mon, Apr 28, 2014 at 3:51 PM, Heikkinen Jani
 jani.heikki...@digia.comwrote:
Hi all,
  
   We have new snapshot available in
  
 http://download.qt-project.org/snapshots/qt/5.3/5.3.0-RC/2014-04-28_77/
  
   These packages aren’t yet official RC candidate packages but pretty
 close
   so please test these  verify your fixes!
  
  
  
   We are trying to put RC out during this week so please inform me
   immediately if you find something which Is blocking the release!
  
  
  
   Qt5 changes in this snapshot:
  
   https://codereview.qt-project.org/#change,84082 :
  
   Patch Set 2:
  
   * qtbase b0d996a...93c6976 (17):
Un-export QSignalBlocker: its all inline
   
Fix vcxproj generation on Windows Phone
   
QPrintEngine - Fix alpha engine state sync
   
QSqlError: Mark deprecated functiond with QT_DEPRECATED
   
Cocoa: Make Qt::Tool windows hide on deactivate
   
Android: Add unversioned_libname configuration
   
document new QTPLUGIN magic
   
Android input method fixes for SwiftKey
   
QAbstractSocket: enable read notification for unbuffered sockets
   
Dont crash on broken GIF images
   
Deprecate setSharable in Qt containers
   
QOpenGLFunctions: Compile on Mac OS 10.6
   
Update the changelog for 5.3.0
   
Document QStrings UTF-8 conversion behaviors
   
Restore handling of BOMs in QString::fromUtf8
   
doc fixes
   
deprecate import_qpa_plugin and qpa_minimal_plugin
  
   * qtdeclarative a885d10...a1eb134 (4):
Getting the render window of an offscreen window
   
V4 regalloc: fix register spill choice under high pressure.
   
Fix crash when loading QML that tries to set non-existent group
  
   properties
  
Fix parsing of JS imports from JS files
  
   * qtdoc 66ade86...2e30101 (5):
Doc: List more platforms on Building from Sources page
   
Doc: Sort Enginio link alphabetically
   
Doc: List Qt Quick Dialogs on the Qt modules page.
   
Doc: Removed the instructions to build from sources
   
Doc: Mention OpenSSL in Qt for Windows requirements
  
   * qtenginio c7531f6...0db2d18 (1):
Doc: Add QML Todo example to the list of highlighted examples
  
   * qtlocation f81aac0...2b7eebe (1):
Remove unnecessary private export macro
  
   * qtquick1 c56f5d8...96c2c1a (1):
Add 5.3 Changelog
  
   * qtquickcontrols 80c4404...cdbf664 (1):
Correct positioning for popups in QQuickWidget
  
   * qtsensors 8a0da79...43e7f32 (1):
Add QtSensor changelog for Qt 5.3.0
  
   --
   Jani Heikkinen
   Release Manager
  
   Digia Plc
   Elektroniikkatie 10, FI 90590 Oulu Finland
   Email: jani.heikki...@digia.com
   Mobile: +358-504-873-735
   Visit us at: www.digia.com
  
   | Blog http://blog.digia.com/ |
   | Twitterhttps://twitter.com/digiaonline|
  
   LinkedIn http://www.linkedin.com/company/5119 |
   YouTubehttp://www.youtube.com/digiaonline| Facebook
   http://www.facebook.com/digiaonline |
   --
   PRIVACY AND CONFIDENTIALITY NOTICE
   This message and any attachments are intended only for use by the
 named
   addressee and may contain privileged and/or confidential information.
 If
   you are not the named addressee you should not disseminate, copy or
 take
   any action in reliance on it. If you have received this message in
 error,
   please contact the sender immediately and delete the message and any
   attachments accompanying it. Digia Plc does not accept liability for
 any
   corruption, interception, amendment, tampering or viruses occurring to
   this
   message.
   --
  
  
  
   ___
   Development mailing list
   Development@qt-project.org
   http://lists.qt-project.org/mailman/listinfo/development




 --
 Regards,
 Fan Yang




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


Re: [Development] Qt binaries with inlined functions

2014-04-29 Thread Simon Hausmann
On Tuesday 29. April 2014 01.30.24 Dimitar Dobrev wrote:
 I don't need invisible inlines either but some of them - such as
 QModelIndex::row() - are visible. Is there any way to emit just the visible
 inlines?

I think the pinvoke approach of creating bindings just won't work reliably 
with C++ APIs that have inline functions then :(

But the ABI promise of Qt remains, so can't you create a library yourself that 
basically contains the inline functions you need and otherwise references the 
exported symbols from Qt? Your bindings will need to ship that library, but it 
should continue to work with newer versions of Qt. (It just needs an update 
when the inline functions change in a newer Qt version)

 On Monday, April 28, 2014 4:12 PM, Thiago Macieira
[...]
 `-fkeep-inline-functions'
  In C, emit `static' functions that are declared `inline' into the
  object file, even if the function has been inlined into all of its
  callers.  This switch does not affect functions using the `extern
  inline' extension in GNU C90.  In C++, emit any and all inline
  functions into the object file.
 
 DO NOT pass that flag. There's no need to bloat our binaries with functions
 that cannot be called (remember, we pass -fvisibility-inlines-hidden).

Ouch yeah, that makes it a no-go :)


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


Re: [Development] Qt binaries with inlined functions

2014-04-29 Thread Dimitar Dobrev
Simon,

In the description of the issue in JIRA I've pointed out why I don't like the 
solution with an additional C/C++ wrapper. In short, I would have to compile 
and pack such a lib for each OS, and then my users would have to deploy that 
different per OS lib.

I'm not sure I understand your answer to my question. Why wouldn't the P/Invoke 
approach work if I have all necessary symbols? What I'm asking is if there's 
any way to emit only the exported inlines (for example, by combining 
-fkeep-inline-functions and -fvisibility-inlines-hidden). This way I would get 
my symbols and there won't be uncallable functions in the binaries.

Dimitar

On Tuesday, April 29, 2014 1:03 PM, Simon Hausmann simon.hausm...@digia.com 
wrote:
 
On Tuesday 29. April 2014 01.30.24 Dimitar Dobrev wrote:
     I don't need invisible inlines either but some of them - such as
 QModelIndex::row() - are visible. Is there any way to emit just the visible
 inlines?

I think the pinvoke approach of creating bindings just won't work reliably 
with C++ APIs that have inline functions then :(

But the ABI promise of Qt remains, so can't you create a library yourself that 
basically contains the inline functions you need and otherwise references the 
exported symbols from Qt? Your bindings will need to ship that library, but it 
should continue to work with newer versions of Qt. (It just needs an update 
when the inline functions change in a newer Qt version)


 On Monday, April 28, 2014 4:12 PM, Thiago Macieira
[...]
 `-fkeep-inline-functions'
      In C, emit `static' functions that are declared `inline' into the
      object file, even if the function has been inlined into all of its
      callers.  This switch does not affect functions using the `extern
      inline' extension in GNU C90.  In C++, emit any and all inline
      functions into the object file.
 
 DO NOT pass that flag. There's no need to bloat our binaries with functions
 that cannot be called (remember, we pass -fvisibility-inlines-hidden).

Ouch yeah, that makes it a no-go :)


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


Re: [Development] No SSL on iOS ?

2014-04-29 Thread Sorvig Morten

On 29 Apr 2014, at 00:39, Thiago Macieira thiago.macie...@intel.com wrote:

 Em ter 29 abr 2014, às 00:16:43, Jeremy Lainé escreveu:
 On 04/28/2014 11:44 AM, Nichols Andy wrote:
 It is possible still in the packaged versions of Qt for iOS to make
 connections using SSL via QNetworkAccessManager as there is a backend
 that uses Apples crypto API, but without OpenSSL support you can’t use
 any of the API’s in Qt that use OpenSSL directly (like QSSLSocket).
 Ouch I just realised that most likely means QWebSocket on iOS does not
 support secure websockets!
 
 What would the best course of action be to add support for secure websockets
 on iOS?
 
 Probably to add a new QSslSocket backend that uses the Apple API.

QSSLSocket/QSslCertificate/QSslCipher is a relatively large API - make sure you 
are aware of the scope of the project and remember you have to maintain it :)

Another option is to skip QSslSocket and implement a direct backend for 
QWebSocket using a native API, for example the SocketRocket project.

I used this approach to implement an iOS backend for the QNAM rest API (using 
NSurlConnection).

Morten

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


Re: [Development] Qt binaries with inlined functions

2014-04-29 Thread Allan Sandfeld Jensen
On Tuesday 29 April 2014, Dimitar Dobrev wrote:
 I don't need invisible inlines either but some of them - such as
 QModelIndex::row() - are visible. Is there any way to emit just the
 visible inlines?
 
Shouldn't be needed they are emitted by default. Only static inlines are 
omitted from the final binary. Note that you need to mark the methods exported 
due to -fvisibility-inlines-hidden (or remove that flag from your build).

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


Re: [Development] Qt binaries with inlined functions

2014-04-29 Thread Dimitar Dobrev
They are not emitted. I've opened QtCore with http://www.dependencywalker.com/ 
and the only symbols I can see for QModelIndex are:

_ZNK11QModelIndex4dataEi
_ZNK11QModelIndex5childEii
_ZNK11QModelIndex5flagsEv
_ZNK11QModelIndex6parentEv
_ZNK11QModelIndex7isValidEv
_ZNK11QModelIndex7siblingEii
_ZNK11QModelIndexeqERKS_
_ZNK11QModelIndexltERKS_
_ZNK11QModelIndexneERKS_


 Members such as row() or column() are missing. I don't know about other OS-es 
but on Windows these are all symbols for that class.

 Dimitar

On Tuesday, April 29, 2014 2:17 PM, Allan Sandfeld Jensen k...@carewolf.com 
wrote:
 
On Tuesday 29 April 2014, Dimitar Dobrev wrote:

     I don't need invisible inlines either but some of them - such as
 QModelIndex::row() - are visible. Is there any way to emit just the
 visible inlines?
 
Shouldn't be needed they are emitted by default. Only static inlines are 
omitted from the final binary. Note that you need to mark the methods exported 
due to -fvisibility-inlines-hidden (or remove that flag from your build).

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


Re: [Development] No SSL on iOS ?

2014-04-29 Thread Richard Moore
On 29 April 2014 12:13, Sorvig Morten morten.sor...@digia.com wrote:

  What would the best course of action be to add support for secure
 websockets
  on iOS?
 
  Probably to add a new QSslSocket backend that uses the Apple API.

 QSSLSocket/QSslCertificate/QSslCipher is a relatively large API - make
 sure you are aware of the scope of the project and remember you have to
 maintain it :)


I actually started thinking about how a smaller API for some of this could
look. Basically with the idea being that for many applications only a
subset of the full QSslXX apis mattered. If you want me to post my notes
(such as they are) then I'm happy to do so.


 Another option is to skip QSslSocket and implement a direct backend for
 QWebSocket using a native API, for example the SocketRocket project.


I'm not sure that the design of the QWebSocket module really allows this
kind of plugability. Perhaps Kurt can comment?

Cheers

Rich.


 I used this approach to implement an iOS backend for the QNAM rest API
 (using NSurlConnection).

 Morten

 ___
 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] Qt binaries with inlined functions

2014-04-29 Thread Allan Sandfeld Jensen
On Tuesday 29 April 2014, Dimitar Dobrev wrote:
 They are not emitted. I've opened QtCore with
 http://www.dependencywalker.com/ and the only symbols I can see for
 QModelIndex are:
 
 _ZNK11QModelIndex4dataEi
 _ZNK11QModelIndex5childEii
 _ZNK11QModelIndex5flagsEv
 _ZNK11QModelIndex6parentEv
 _ZNK11QModelIndex7isValidEv
 _ZNK11QModelIndex7siblingEii
 _ZNK11QModelIndexeqERKS_
 _ZNK11QModelIndexltERKS_
 _ZNK11QModelIndexneERKS_
 
 
Interesting. Note that all of those methods are also inline, so you have some 
inlines but not others. Have you tried without -fvisibility-inlines-hidden? 
(which marks normally visible inline methods invisible unless explicitly 
declared exported).

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


Re: [Development] Qt binaries with inlined functions

2014-04-29 Thread Dimitar Dobrev
Allan, I'm not talking about a custom build at all. This whole discussion I 
started is about how to avoid one. The results you see I've obtained from the 
Qt 5.2.1 MinGW binaries as downloaded from qt-project.org.

On Tuesday, April 29, 2014 2:43 PM, Allan Sandfeld Jensen k...@carewolf.com 
wrote:
 
On Tuesday 29 April 2014, Dimitar Dobrev wrote:
 They are not emitted. I've opened QtCore with
 http://www.dependencywalker.com/ and the only symbols I can see for
 QModelIndex are:
 
 _ZNK11QModelIndex4dataEi
 _ZNK11QModelIndex5childEii
 _ZNK11QModelIndex5flagsEv
 _ZNK11QModelIndex6parentEv
 _ZNK11QModelIndex7isValidEv
 _ZNK11QModelIndex7siblingEii
 _ZNK11QModelIndexeqERKS_
 _ZNK11QModelIndexltERKS_
 _ZNK11QModelIndexneERKS_
 
 
Interesting. Note that all of those methods are also inline, so you have some 
inlines but not others. Have you tried without -fvisibility-inlines-hidden? 
(which marks normally visible inline methods invisible unless explicitly 
declared exported).


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


Re: [Development] No SSL on iOS ?

2014-04-29 Thread Sorvig Morten

On 29 Apr 2014, at 13:31, Richard Moore r...@kde.org wrote:
 
 I actually started thinking about how a smaller API for some of this could 
 look. Basically with the idea being that for many applications only a subset 
 of the full QSslXX apis mattered. If you want me to post my notes (such as 
 they are) then I'm happy to do so.

Please do.

A specific question: Currently QNetworkAccessManager::sslErrors() is not 
implemented on iOS. How much of QSslError/QSslCertificate do we need for it to 
be usable?

Morten

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


Re: [Development] Perceptions/Understandings of the QML language [was: Question about Qt's future]

2014-04-29 Thread m...@rpzdesign.com
Thomas  Tero:

There is no way that I can make it to the contributors summit, but
Thomas' message might be a important discussion pience when you arrive
in Berlin.

Related to points 5,6,7 of Thomas' message Below:

Is there a class diagram on the current code base?

This would help newbies when trying to contribute to the refactoring
strategy.

The code supporting the QML, JS, and C++ must be layered and sensibly
separated so that people can opt-in on various parts at compile/link time.

When respected people like Thiago Macieira put forth the idea that
there is no public API at the C++ level for Scene Graph and other QML
locked in design pieces, that does not smell right.

Where are the unit tests and test benches for the Qt code base?

I have not seen a script that runs the test bench/unit tests for this
large QT code base.  Anybody have insights on that?

Thanks,

Marco


On 4/28/2014 3:26 AM, Thiago Macieira wrote: Em seg 28 abr 2014, às
08:33:23, Peter Kümmel escreveu:
 ATM the problem is to get started because I don't know much about the
 current architecture of the graphic stack.
 Any hints where to start for a first hello world?

 Maybe a translation from QML to a .ui file could be a first step? That
 could work if you use QtWidgets in the QML file.
 I think we should start on top of the C/C++ part of current QMLv2
stack (if
 such a thing exists), with some handwritten widget code. Otherwise we
have
 a QPainter based system which we already have with QWidgets.

 Forget about QPainter.

 Your first step, it seems to me, would be to add the necessary C++
public API
 to QtQml so you can instantiate new items in the QML graph, then
manipulate
 their properties and bindings, as well as set new JavaScript code and
 expressions. This simply replaces the QML parser, keeping all the
benefits (and
 problems) of the QML language. In particular, it does not extricate
the JS
 interpreter and engine.

 If you want to extricate the JS engine, you probably need to move the
Scene
 Graph classes out of QtQuick and into a module that depends only on
QtGui,
 bypassing the QtQml dependency. You'll need a way to insert generic
items into
 the graph. But, at this point, I question: why don't you just use an
existing
 OpenGL scene graph, like Ogle3D?

 Once you've got the base API, you can start thinking of writing
widgets again,
 the platform look and feel. If the QtQml dependency was maintained, it
might
 be possible to reuse the code from Qt Quick Components. If not, you'll
 probably need to start from scratch.



On 4/29/2014 3:43 AM, Hartmann Thomas wrote:
 Hi,
 
 On Mon, Apr 28, 2014 at 2:34 PM, André Pönitz apoen...@t-online.de wrote:
 I think at least three modifications are inavoidable: For one, things that
 could be written in a declarative way but which currently are only possible
 using JavaScript, a declarative way should be added. Second, it should be
 stressed in the documentation (including the examples), that using
 inline imperative code is naughty. This can be supported by e.g. the QML
 Designer refusing to operate on such files. People can still do that, but
 would be on their own. And finally, and that's also acting as a proof that
 the first two items actually have been done, the JavaScript dependency
 should be _optional_.
 
 Can we turn this into action points we _all_ agree on?
 My personal favorites are (In no strict order):
 
 (1) Identify non declarative parts of Qt Quick and add declarative API (e.g. 
 setting states)
 (2) Document that inline Java Script and mixing declarative and imperative 
 code in one file has its pitfalls in big projects and creates issues for 
 tooling. Explain the difference between pure declarative QML and QMLJS and 
 the impact on tooling.
 (3) Document that accessing ids from other .qml files without any interface 
 (just relying on the fact that they are in the context) creates hard to 
 maintain QML code.
 (4) Writing (more) QML(JS) static analyzers that can check/enforce a proper 
 strict mode for QML.
 (5) Write refactoring tools that help to clean up existing code.
 (6) Fix/cleanup existing demos and examples.
 (7) Investigate how we can improve the interplay of QML and C++. Especially 
 in C++/backend heavy projects.
 
 As a second step the actual work has to be done of course.
 
 Kind Regards,
 Thomas Hartmann
 ___
 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] [QIODevice]How to correctly treat/understand of the documentation?

2014-04-29 Thread Thiago Macieira
Em ter 29 abr 2014, às 12:48:55, Denis Shienkov escreveu:
 This is expected behavior?

Yes. Except that you're referring to non-existent unbuffered modes of 
QTcpSocket and QProcess...

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

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


Re: [Development] Qt binaries with inlined functions

2014-04-29 Thread Thiago Macieira
Em ter 29 abr 2014, às 01:30:24, Dimitar Dobrev escreveu:
 I don't need invisible inlines either but some of them - such as
 QModelIndex::row() - are visible. Is there any way to emit just the visible
 inlines?

Still hidden:

$ readelf -Ws --dyn-syms libQt5Core.so.5 | c++filt| grep QModelIndex::row
 14630: 0028bdf616 FUNCLOCAL  HIDDEN12 QModelIndex::row() 
const

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] [QIODevice]How to correctly treat/understand of the documentation?

2014-04-29 Thread Denis Shienkov
2014-04-29 19:13 GMT+04:00 Denis Shienkov denis.shien...@gmail.com:

  Yes. Except that you're referring to non-existent unbuffered modes of
  QTcpSocket and QProcess...

 Ok, then what is it This code is for the new Unbuffered QTcpSocket use
 case?


 https://qt.gitorious.org/qt/qtbase/source/eb211d74cc3dbf991093ad2e799370f006de8198:src/network/socket/qabstractsocket.cpp#L2453

 :)

 BR,
 Denis



 2014-04-29 18:52 GMT+04:00 Thiago Macieira thiago.macie...@intel.com:

 Em ter 29 abr 2014, às 12:48:55, Denis Shienkov escreveu:
  This is expected behavior?

 Yes. Except that you're referring to non-existent unbuffered modes of
 QTcpSocket and QProcess...

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

 ___
 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] Qt binaries with inlined functions

2014-04-29 Thread Thiago Macieira
Em ter 29 abr 2014, às 13:43:00, Allan Sandfeld Jensen escreveu:
 On Tuesday 29 April 2014, Dimitar Dobrev wrote:
  They are not emitted. I've opened QtCore with
  http://www.dependencywalker.com/ and the only symbols I can see for
  QModelIndex are:
  
  _ZNK11QModelIndex4dataEi
  _ZNK11QModelIndex5childEii
  _ZNK11QModelIndex5flagsEv
  _ZNK11QModelIndex6parentEv
  _ZNK11QModelIndex7isValidEv
  _ZNK11QModelIndex7siblingEii
  _ZNK11QModelIndexeqERKS_
  _ZNK11QModelIndexltERKS_
  _ZNK11QModelIndexneERKS_
 
 Interesting. Note that all of those methods are also inline, so you have
 some inlines but not others. Have you tried without
 -fvisibility-inlines-hidden? (which marks normally visible inline methods
 invisible unless explicitly declared exported).

Inline functions that aren't used won't be emitted either.

You need to *use* all of them.
-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

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


Re: [Development] Qt binaries with inlined functions

2014-04-29 Thread Thiago Macieira
Em ter 29 abr 2014, às 04:45:37, Dimitar Dobrev escreveu:
 Allan, I'm not talking about a custom build at all. This whole discussion I
 started is about how to avoid one. The results you see I've obtained from
 the Qt 5.2.1 MinGW binaries as downloaded from qt-project.org.

There won't be a change to the way we build. We're already doing it the right 
way.

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

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


Re: [Development] Qt binaries with inlined functions

2014-04-29 Thread Dimitar Dobrev
I understand. Thank you all for your time. Kai, I think you can close the issue 
as Won't Fix.


Regards,
Dimitar Dobrev

On Tuesday, April 29, 2014 6:24 PM, Thiago Macieira thiago.macie...@intel.com 
wrote:
 
Em ter 29 abr 2014, às 04:45:37, Dimitar Dobrev escreveu:

 Allan, I'm not talking about a custom build at all. This whole discussion I
 started is about how to avoid one. The results you see I've obtained from
 the Qt 5.2.1 MinGW binaries as downloaded from qt-project.org.

There won't be a change to the way we build. We're already doing it the right 
way.

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

___
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] Perceptions/Understandings of the QML language [was: Question about Qt's future]

2014-04-29 Thread Rutledge Shawn

On 29 Apr 2014, at 3:34 PM, m...@rpzdesign.com wrote:

 Is there a class diagram on the current code base?

You can run doxygen on it and get the automatically-generated ones, but AFAIK 
there has never been any emphasis on doing internal documentation, only 
user-facing documentation.  I don't know all the reasons why.  For one thing we 
don't have an agreement on where to put hand-created internal docs in the git 
tree.  Probably nobody wants to put a lot of time into doing it by hand anyway, 
and it would tend to stay out of date unless it was automatically generated.  
From experience I can say that they aren't quite as useful for everyday 
reference as you would think, unless they are integrated into your workflow 
interactively instead of just being a static diagram that you hang on the wall 
(even if you could find a big enough sheet of paper for a Qt class diagram). 
And diagrams generated by static code analysis don't show all the object 
relationships that will exist at runtime.  It could be introspected at runtime 
though.

Doxygen is good at generating class diagrams, but we can't use it for all docs 
because there has been so much divergence in the feature sets that doxygen 
cannot generate our user docs.  But generating class diagrams automatically 
with some kind of tool (probably built on dot the way doxygen does it) ought 
to be doable.  (And then where would we put them…)  One big diagram would be 
too complex, but Doxygen does a good job of using just the relevant subtree on 
each doc page and letting you click to navigate docs.

Another idea is maybe Creator could have dynamically generated diagrams which 
can be used to navigate the code, the way you can do in Eclipse.  But a 
prerequisite would be better support for diagramming applications in Qt Quick 
2.  That's one of my long-term background tasks: it would be a good start to be 
able to draw connected-node diagrams by hand.  (But that in turn depends on 
having a proper path element.)  Automating it should then be doable too.

 This would help newbies when trying to contribute to the refactoring
 strategy.
 
 The code supporting the QML, JS, and C++ must be layered and sensibly
 separated so that people can opt-in on various parts at compile/link time.

I would like that too; at least the scene graph should be separable from Qt 
Quick so that other language bindings become possible. The usual answers I've 
heard to that proposal are

1) the scene graph is documented public API (it's just that there is no way to 
link it without the JS engine and the rest of QtQuick) 
http://qt-project.org/doc/qt-5/qtquick-visualcanvas-scenegraph.html

2) https://codereview.qt-project.org/#change,52682 will break that link to make 
a standalone scene graph (but the patch is out of date and doesn't apply 
cleanly nowadays).  It has been claimed the patch can't be integrated because 
it's incompatible with building the whole integrated Qt the way we usually ship 
it.  But I hope we get to a point where it can be.

3) you would lose so much functionality that it becomes uninteresting, or at 
least you have to redo a lot of work as part of the other language binding.  
Much functionality is implemented in the Qt Quick objects: input event handling 
(including gestures, since we don't have a centralized gesture recognition), 
bindings, animation etc.  At the same time, if you intend to get rid of 
baggage, you cannot do without the qtcore and qtgui modules, even if your 
application doesn't need big parts of it.  But qtgui gives you cross-platform 
windows and opengl and events, you just have to decide all over again what to 
do with the events (and from experience, this is tricky to say the least)

Nevertheless, I still think it ought to be possible to build the scene graph 
without QtQuick, just for what it's worth.

Trying to refactor and separate modules at other points to depend less on 
JavaScript will run into these issues: 

1) the JS engine would get loaded into memory anyway, because QtQuick 
increasingly depends on the JS object model.  

2) we value the efficiencies to be gained by tight coupling.  JS objects are 
more efficient than QObjects and QVariants, so we expect the coupling to become 
tighter rather than looser.

3) QML and Quick implementation details are private so they can be free to 
evolve

But can we separate the object model from the interpreter, and make a nice C++ 
API for that?  I don't know, but it seems daunting, and doing it too early 
would limit the evolution too much.  Anyway the hypothetical API would only 
give you a base on which to build applications (or alternative language 
bindings) in verbose C++ instead of clean-looking QML, and some useful 
functionality would be left behind.

(disclaimer: much of the above is personal opinion and speculation about which 
others will disagree)

 When respected people like Thiago Macieira put forth the idea that
 there is no public API at the C++ level for Scene Graph and 

Re: [Development] [QIODevice]How to correctly treat/understand of the documentation?

2014-04-29 Thread Thiago Macieira
Em ter 29 abr 2014, às 19:16:51, Denis Shienkov escreveu:
   Yes. Except that you're referring to non-existent unbuffered modes of
   QTcpSocket and QProcess...
  
  Ok, then what is it This code is for the new Unbuffered QTcpSocket use
  case?
  
  
  https://qt.gitorious.org/qt/qtbase/source/eb211d74cc3dbf991093ad2e799370f0
  06de8198:src/network/socket/qabstractsocket.cpp#L2453

It's not public API. It exists solely for QNAM and comes with the warning 
here there be dragons. :-)

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

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


Re: [Development] Qt binaries with inlined functions

2014-04-29 Thread Milian Wolff
On Monday 28 April 2014 05:37:40 Dimitar Dobrev wrote:
snip
 My problem (and, I'd say, any binding developer's) is
 that I can't tell users my binding is great, you just need to compile Qt
 yourselves because the binary downloads don't work well enough - nobody's
 going to use it.

But whoever is going to use your bindings will also have to download some 
binary for the bindings, right? So why don't you add the missing functions in 
a wrapper there and compile it alongside your bindings?

I.e. what Simon said:

 But the ABI promise of Qt remains, so can't you create a library yourself
 that basically contains the inline functions you need and otherwise
 references the exported symbols from Qt? Your bindings will need to ship
 that library, but it should continue to work with newer versions of Qt. (It
 just needs an update when the inline functions change in a newer Qt
 version)

Why does this not work for you? Note that you could even make such a wrapper 
library official and share it with other bindings. Maybe it could even become 
an official Qt module! Then eventually consumers of bindings people  would 
just need to download the additional binding-wrapper libraries and everything 
works as it should?

Bye
-- 
Qt Developer Days 2014 - October 6 - 8 at BCC, Berlin

Milian Wolff | milian.wo...@kdab.com | Software Engineer
KDAB (Deutschland) GmbHCo KG, a KDAB Group company
Tel. 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] Qt binaries with inlined functions

2014-04-29 Thread Dimitar Dobrev
I'm not sure I understand your idea about compiling alongside. The binding is 
C# so I'd have to either use C++/CLI or translate the body of the inline to C# 
and compile that. The former works only for Windows, the latter is too much 
work - essentially a C++ to C# converter. What is your suggestion?

Sharing with other bindings - now that's a great idea! I hadn't actually 
thought of the fact that such a wrapper is the same for any binding. If that 
could become a Qt module as you suggest, and presented as a binary download at 
qt-project.org, that would be great. Do you know of a tool that can generate 
such wrappers? The wrapper I used to make with my own code wasn't complete and 
when I tried to complete it, it proved quite a time-consuming task and I gave 
up for the time being. I've searched for such tools which I imagine should 
exist but I was unable to find any.


On Tuesday, April 29, 2014 6:55 PM, Milian Wolff milian.wo...@kdab.com wrote:
 
On Monday 28 April 2014 05:37:40 Dimitar Dobrev wrote:
snip

 My problem (and, I'd say, any binding developer's) is
 that I can't tell users my binding is great, you just need to compile Qt
 yourselves because the binary downloads don't work well enough - nobody's
 going to use it.

But whoever is going to use your bindings will also have to download some 
binary for the bindings, right? So why don't you add the missing functions in 
a wrapper there and compile it alongside your bindings?

I.e. what Simon said:

 But the ABI promise of Qt remains, so can't you create a library yourself
 that basically contains the inline functions you need and otherwise
 references the exported symbols from Qt? Your bindings will need to ship
 that library, but it should continue to work with newer versions of Qt. (It
 just needs an update when the inline functions change in a newer Qt
 version)

Why does this not work for you? Note that you could even make such a wrapper 
library official and share it with other bindings. Maybe it could even become 
an official Qt module! Then eventually consumers of bindings people  would 
just need to download the additional binding-wrapper libraries and everything 
works as it should?

Bye
-- 
Qt Developer Days 2014 - October 6 - 8 at BCC, Berlin

Milian Wolff | milian.wo...@kdab.com | Software Engineer
KDAB (Deutschland) GmbHCo KG, a KDAB Group company
Tel. 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___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] No SSL on iOS ?

2014-04-29 Thread Jeremy Lainé
On 04/29/2014 02:39 PM, Sorvig Morten wrote:
 This aproach looks promising. If we can get basic QSslSocket working (enough 
 for say QNAM and QWebSocket) then retiring the NSUrlConnection backend and 
 focusing on QSslSocket is a possibility.

OK I have moved my proof of concept code here:

https://github.com/jlaine/qsslsocketios

I provided a demo app : a very naive HTTPS client which fetches
https://www.google.com and dumps it to standard out.

You can run this on any OSX machine with Qt installed.

I'll start looking how hard it would be to actually integrate this into
qtbase.

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


Re: [Development] Qt binaries with inlined functions

2014-04-29 Thread Thiago Macieira
Em ter 29 abr 2014, às 09:10:39, Dimitar Dobrev escreveu:
 Sharing with other bindings - now that's a great idea! I hadn't actually
 thought of the fact that such a wrapper is the same for any binding. If
 that could become a Qt module as you suggest, and presented as a binary
 download at qt-project.org, that would be great. Do you know of a tool that
 can generate such wrappers?

Have you tried Smoke?

Or the parser that PySide uses?
-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

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


Re: [Development] Perceptions/Understandings of the QML language [was: Question about Qt's future]

2014-04-29 Thread André Pönitz
On Tue, Apr 29, 2014 at 07:43:09AM +, Hartmann Thomas wrote:
  I think at least three modifications are inavoidable: For one, things that
  could be written in a declarative way but which currently are only possible
  using JavaScript, a declarative way should be added. Second, it should be
  stressed in the documentation (including the examples), that using
  inline imperative code is naughty. This can be supported by e.g. the QML
  Designer refusing to operate on such files. People can still do that, but
  would be on their own. And finally, and that's also acting as a proof that
  the first two items actually have been done, the JavaScript dependency
  should be _optional_.
 
 Can we turn this into action points we _all_ agree on?
 My personal favorites are (In no strict order):
 
 (1) Identify non declarative parts of Qt Quick and add declarative API
 (e.g. setting states)
 (2) Document that inline Java Script and mixing declarative and
 imperative code in one file has its pitfalls in big projects and creates
 issues for tooling. Explain the difference between pure declarative QML
 and QMLJS and the impact on tooling.
 (3) Document that accessing ids from other .qml files without any
 interface (just relying on the fact that they are in the context) creates
 hard to maintain QML code.
 (4) Writing (more) QML(JS) static analyzers that can check/enforce a
 proper strict mode for QML.
 (5) Write refactoring tools that help to clean up existing code.
 (6) Fix/cleanup existing demos and examples.
 (7) Investigate how we can improve the interplay of QML and C++.
 Especially in C++/backend heavy projects.

Looks good, and realistic.

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


Re: [Development] Perceptions/Understandings of the QML language [was: Question about Qt's future]

2014-04-29 Thread Alan Alpert
On Tue, Apr 29, 2014 at 12:43 AM, Hartmann Thomas
thomas.hartm...@digia.com wrote:
 Hi,

 On Mon, Apr 28, 2014 at 2:34 PM, André Pönitz apoen...@t-online.de wrote:
 I think at least three modifications are inavoidable: For one, things that
 could be written in a declarative way but which currently are only possible
 using JavaScript, a declarative way should be added. Second, it should be
 stressed in the documentation (including the examples), that using
 inline imperative code is naughty. This can be supported by e.g. the QML
 Designer refusing to operate on such files. People can still do that, but
 would be on their own. And finally, and that's also acting as a proof that
 the first two items actually have been done, the JavaScript dependency
 should be _optional_.

 Can we turn this into action points we _all_ agree on?
 My personal favorites are (In no strict order):

 (1) Identify non declarative parts of Qt Quick and add declarative API (e.g. 
 setting states)

Agreed. This is my personal favorite ;) .

 (2) Document that inline Java Script and mixing declarative and imperative 
 code in one file has its pitfalls in big projects and creates issues for 
 tooling. Explain the difference between pure declarative QML and QMLJS and 
 the impact on tooling.

Agreed.

While I think that mixing declarative and imperative code in one file
has it's advantages in small projects, there should be a clear line
between pure declarative and toolable vs you're on your own. I'd
like to see something like .pragma declarative which defines this
line, such that if you add .pragma declarative un-toolable JS blocks
or bindings become compile errors.

 (3) Document that accessing ids from other .qml files without any interface 
 (just relying on the fact that they are in the context) creates hard to 
 maintain QML code.

Agreed (honestly, it should already be there, I guess
https://bugreports.qt-project.org/browse/QTBUG-20453 was never
finished...).

Again, we have some rough plans for a .pragma strict. Which should ban this.

 (4) Writing (more) QML(JS) static analyzers that can check/enforce a proper 
 strict mode for QML.

Agreed, see .pragma strict comments. Speaking of which, this idea
has been around for a while:
https://bugreports.qt-project.org/browse/QTBUG-30069

 (5) Write refactoring tools that help to clean up existing code.

Kinda agree. If we have the two .pragma's mentioned then this is
purely a convenience step (because they can find all cases by using
the .pragmas).

It's probably not worth writing a full refactoring tool that can turn
anything into a .pragma declarative/strict file. Just do what's
convenient to tool and users can do the rest (if they wish).

 (6) Fix/cleanup existing demos and examples.

Agreed. This is probably a good step to do in conjunction with (1), so
as to ensure that the added declarative APIs make sense. In most
cases, the added declarative APIs should make more sense even for the
primitive (non-tool) users and we can verify it here.

 (7) Investigate how we can improve the interplay of QML and C++. Especially 
 in C++/backend heavy projects.

Agreed. Known issues:
https://bugreports.qt-project.org/browse/QTBUG-33233
https://bugreports.qt-project.org/browse/QTBUG-23052
https://bugreports.qt-project.org/browse/QTBUG-19212
Can't find task: More powerful QJSEngine API so that C++
value-type-like objects can be exposed as JS objects when you want
more control at the cost of convenience
https://bugreports.qt-project.org/browse/QTBUG-21844 (in conjunction with above)

But there's probably some additional research to be done too.

 As a second step the actual work has to be done of course.

Yeah, that's always the biggest issue... Every time these discussions
come up there's no major theoretical point of contention. It's just
that the work still hasn't been done and we all like arguing.

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


Re: [Development] Qt binaries with inlined functions

2014-04-29 Thread Dimitar Dobrev
I actually use https://github.com/mono/CppSharp . It has a parser and so on but 
what I was asking for is a tool for generating wrappers. What I've been doing 
so far is: get each inlined function - get where it's invoked - include the 
header of the latter in a source file - compile that with 
-fkeep-inline-functions. Obviously this only works for inlines that happen to 
be invoked within the same module and is therefore not good. The proper way I 
am aware of to get all inlines is to generate functions that call them and 
compile the result. This latter approach turned out more time consuming than I 
had thought and that's why I've been searching for a tool to generate those 
functions.

Dimitar

 

On Tuesday, April 29, 2014 8:42 PM, Thiago Macieira thiago.macie...@intel.com 
wrote:
 
Em ter 29 abr 2014, às 09:10:39, Dimitar Dobrev escreveu:
 Sharing with other bindings - now that's a great idea! I hadn't actually
 thought of the fact that such a wrapper is the same for any binding. If
 that could become a Qt module as you suggest, and presented as a binary
 download at qt-project.org, that would be great. Do you know of a tool that
 can generate such wrappers?

Have you tried Smoke?

Or the parser that PySide uses?
-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center


___
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] Qt binaries with inlined functions

2014-04-29 Thread Thiago Macieira
Em ter 29 abr 2014 08:08:35 você escreveu:
 Thiago,
 
 Thanks for that piece. I am not that familiar with such details of C++ so
 could you please explain why the function is public but compiled with
 hidden symbols?

[with permission to reply to the list]

There are two things here at stake: 1) inline functions; 2) hidden symbols. 
Inline functions are part of the C++ language; deciding how to inline 
functions and how to export symbols is part of the specific ABI. I'm replying 
referring to the portable C++ ABI, a.k.a. the IA-64 C++ ABI. MSVC behaves 
similarly for most aspecs, but not totally. It's got some violations of the 
C++ language due to the way it does inlining, so I'm going to ignore it and 
hope its ABI dies (which won't happen).

 On Tuesday, April 29, 2014 6:03 PM, Thiago Macieira
 thiago.macie...@intel.com wrote:
 Still hidden:
 
 $ readelf -Ws --dyn-syms libQt5Core.so.5 | c++filt| grep QModelIndex::row
 14630: 0028bdf616 FUNCLOCAL  HIDDEN12 QModelIndex::row()
 const

By the way, on the above, note that it matched the symbol in the static 
symbol table, not the dynamic one:

$ readelf -W --dyn-syms libQt5Core.so | c++filt| grep QModelIndex::row
$ readelf -W --syms libQt5Core.so | c++filt| grep QModelIndex::row 
 14630: 0028bdf616 FUNCLOCAL  HIDDEN12 QModelIndex::row() 
const

The static symbol table is stripped from the library by the /usr/bin/strip 
command along with debug symbols; the dynamic symbol table stays there.

=== Inlines ===

A function is inline if it's either declared with the inline keyword or if 
its body is inside the class/struct/union body.

A function gets *inlined* if the compiler thinks it's good idea. Any function 
whose body is visible at compilation time can be inlined, even functions that 
aren't inline. What's more, functions marked inline may not get inlined if 
the compiler doesn't think it's a good idea. In particular, without 
optimisations (-O0, but also with -fno-inline), no functions are inlined.

So the question is: how does the compiler resolve that issue?

A symbol for each function that is *not* inline must always be emitted. If I 
have my sources as:

void f() { somethingElse(); }
void g() { f();}

The smart compiler will realise f() simply calls somethingElse() and will 
inline it in g()'s body. However, since the function was not declared as 
inline, the compiler will generate a full function f() and emit its symbol.

However, if the function is declared inline, the compiler need not emit it:

inline void f() { somethingElse(); }
void g() { f();}

If you inspect the .o file, you're going to see g(), but no f() for the above.

Now suppose that the compiler decides not to inline that inline function 
above, what will it do? A good example is QString's constructor: it's inline 
from qstring.h and almost every single .cpp will call it. 

Here's the interesting thing: the compiler must *always* emit the required 
code of all inline functions it used. It cannot assume that another .o will 
provide it. But we don't want to bloat the binary because of that.

The compiler will emit the function f() but it will mark it as merge at link 
time (nm shows it with type V). That way, all out-of-line copies of inline 
functions get merged at link-time.

What's more, the dynamic linker does the same again: if two functions have the 
same name, the dynamic linker will resolve to only one of the copies. That 
allows us to take address of functions in two different ELF modules and still 
compare equally.

=== Visibility ===

Now enter visibility. There are four visibility types in ELF: default, 
protected, hidden, internal. Mach-O has two visibility types: default and 
hidden. COFF-PE has three: dllimport, dllexport (protected) and none 
(hidden). There's no direct equivalent to dllimport (it's similar to 
default but not entirely). The types default and protected are visible: 
other modules can see the symbol and link to them; types hidden and internal 
are invisible: other modules do not see them at all.

When we're compiling statically, visibility does not apply. That means all the 
Q_LIBNAME_EXPORT macros expand to empty, on all platforms.

When we're compiling dynamically, we switch between Q_DECL_EXPORT (dllexport, 
default or protected) and Q_DECL_IMPORT (dllimport or default). Q_DECL_EXPORT 
is used when we're compiling the library that should contain the symbol, 
whereas Q_DECL_IMPORT should be used when just using the symbol from another 
library. The names should be self-explanatory.

We use visibility to control what symbols get exported for other libraries to 
see. We do not export private symbols and internal classes. This decreases 
dramatically the symbol table in Qt, allowing for faster link times and load 
times.

=== Visibility of inlines ===

The C++ standard requires the each function be defined only once. It's illegal 
(undefined behaviour) for a function to have two 

Re: [Development] Qt binaries with inlined functions

2014-04-29 Thread Thiago Macieira
Em ter 29 abr 2014, às 08:06:37, Thiago Macieira escreveu:
 Em ter 29 abr 2014, às 04:45:37, Dimitar Dobrev escreveu:
  Allan, I'm not talking about a custom build at all. This whole discussion
  I
  started is about how to avoid one. The results you see I've obtained from
  the Qt 5.2.1 MinGW binaries as downloaded from qt-project.org.
 
 There won't be a change to the way we build. We're already doing it the
 right way.

Here's also why we can't use -fkeep-inline-functions:

$ cat main.cpp
#include utility
#include algorithm
#include vector

$ g++ -O3 -S -o - main.cpp
.file   
.ident  GCC: (SUSE Linux) 4.8.1 20130909 [gcc-4_8-branch revision 
202388]
.section.note.GNU-stack,,@progbits

$ g++ -O3 -fkeep-inline-functions -S -o - main.cpp | wc -l
2086

This would keep every single, minor and helper inline function from the 
Standard Library. We can't do that.

On Windows, however, we could use the -fkeep-inline-dllexport, which would 
make GCC match MSVC behaviour, at the cost of bloating the libraries with code 
that is never called. I'd rather we didn't do it.

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

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


Re: [Development] Qt binaries with inlined functions

2014-04-29 Thread Dimitar Dobrev
Thiago, thank you very much for these explanations. About that option, it only 
works on Windows so it's no good either way.

About generating wrappers for inlines, if you know of a tool that can do that - 
as I mentioned earlier - it would be of great help to me.

On Tuesday, April 29, 2014 10:33 PM, Thiago Macieira 
thiago.macie...@intel.com wrote:
 
Em ter 29 abr 2014, às 08:06:37, Thiago Macieira escreveu:
 Em ter 29 abr 2014, às 04:45:37, Dimitar Dobrev escreveu:
  Allan, I'm not talking about a custom build at all. This whole discussion
  I
  started is about how to avoid one. The results you see I've obtained from
  the Qt 5.2.1 MinGW binaries as downloaded from qt-project.org.
 
 There won't be a change to the way we build. We're already doing it the
 right way.

Here's also why we can't use -fkeep-inline-functions:

$ cat main.cpp
#include utility                        
#include algorithm
#include vector

$ g++ -O3 -S -o - main.cpp
        .file   
        .ident  GCC: (SUSE Linux) 4.8.1 20130909 [gcc-4_8-branch revision 
202388]
        .section        .note.GNU-stack,,@progbits

$ g++ -O3 -fkeep-inline-functions -S -o - main.cpp | wc -l
2086

This would keep every single, minor and helper inline function from the 
Standard Library. We can't do that.

On Windows, however, we could use the -fkeep-inline-dllexport, which would 
make GCC match MSVC behaviour, at the cost of bloating the libraries with code 
that is never called. I'd rather we didn't do it.


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

___
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] GridView

2014-04-29 Thread Joshua Kolden
I get strange scrolling behavior with QML's GridView on OSX with with a 
touchpad doing the typical two finger scrolling gesture.  Click drag seems to 
be doing what two finger click drag should be.  Is this a bug or am I missing a 
step?

Also I have a large data base (orm) of image assets that I display in the grid 
view and get periodic updates from the server with ‘windows’ of data about 1000 
items long.  Any tips on segmenting ListModels to allow for continuos scrolling 
of large datasets like this?  Is it safe to just let the y displacement 
accumulate to very large numbers?

Thanks,
j

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


[Development] NO effect setAttribute(Qt::WA_X11NetWmWindowTypeDock, true) for Qt5?

2014-04-29 Thread Leslie Zhai
Hi Qt developers,

I migrated qtpanel from Qt4 to Qt5
but setAttribute(Qt::WA_X11NetWmWindowTypeDock, true) has NO effect for
Qt5 https://github.com/xiangzhai/qtpanel/blob/master/panelwindow.cpp#L138

qtpanel-qt4 snapshot
https://www.dropbox.com/s/nwebtd03fy4sght/qtpanel-qt4.png

BUT qtpanel-qt5 https://www.dropbox.com/s/dxt7z5ya26fr6ss/qtpanel-qt5.png

I need to setWindowFlags(Qt::FramelessWindowHint |
Qt::CustomizeWindowHint) to act like a dock for Qt5? but there is no
need for Qt4.

Please someone give me some advice, thanks a lot!

Regards,
Leslie Zhai xiang.z...@i-soft.com.cn
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development