[Development] QMetaTypeId and QMetaTypeId2

2012-02-09 Thread Jedrzej Nowacki
Hi,

  Does anybody know why we have separation between QMetaTypeId and 
QMetaTypeId2 classes? 

  QMetaTypeId2 delegates all operations to QMetaTypeId by default and 
qMetaTypeId() function is calling QMetaTypeId2. To make it more complex 
Q_DECLARE_METATYPE is specializing QMetaTypeId but Q_DECLARE_BUILTIN_METATYPE 
is specializing QMetTypeId2. From an user perspective it is not visible, but 
it makes implementation complex. 

  Can I merge QMetaTypeId and QMetaTypeId2?

Cheers,
  Jędrek

ps. Stats: metatype usage count: 12  which is about 2,4 per sentence.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QMetaTypeId and QMetaTypeId2

2012-02-09 Thread Thiago Macieira
On Thursday, 9 de February de 2012 10.07.16, Jedrzej Nowacki wrote:
 Hi,

   Does anybody know why we have separation between QMetaTypeId and
 QMetaTypeId2 classes?

Because the original QMetaTypeId that existed in Qt 4.0 lacked one important
feature, which Harald fixed in 4.2 or 4.3.

Before harryF's changes, the Q_DECLARE_METATYPE macro did not save the name,
so you had to include the type's name in the registration function:

qRegisterMetaTypeMyType(MyType);

This was necessary because the type's name cannot be easily gleaned from the
template parameter (I have a patch for that though, see https://codereview.qt-
project.org/#change,670 ).

   QMetaTypeId2 delegates all operations to QMetaTypeId by default and
 qMetaTypeId() function is calling QMetaTypeId2. To make it more complex
 Q_DECLARE_METATYPE is specializing QMetaTypeId but
 Q_DECLARE_BUILTIN_METATYPE is specializing QMetTypeId2. From an user
 perspective it is not visible, but it makes implementation complex.

   Can I merge QMetaTypeId and QMetaTypeId2?

Yes. Those are not public classes.

There was some Harmattan code that specialised them and broke when we made
some changes in 4.7, but touching those classes is internal API.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden


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] Changes to the Jira roles and workflow

2012-02-09 Thread Thiago Macieira
On Thursday, 9 de February de 2012 10.20.47, bradley.hug...@nokia.com wrote:
  There is call for discussion around default assignee – is it the module
  maintainer? Which tasks are up for grabs if everything new goes to the
  maintainer?
 Unassigned should be the default. When someone picks up the task, they
 should assign it to themselves. Anything else is misleading.

Agreed. As a Maintainer, I really don't want tons of tasks assigned to me and
in idle state. It would make my life difficult because I can't find the tasks I
want to work on. And it would get people screaming at me for not looking at
their tasks.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden


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] Changes to the Jira roles and workflow

2012-02-09 Thread Daniel Teske
  Default Assignee
  
  There is call for discussion around default assignee – is it the module
  maintainer? Which tasks are up for grabs if everything new goes to the
  maintainer?
 
 Unassigned should be the default. When someone picks up the task, they
 should assign it to themselves. Anything else is misleading.
I don't think the Creator team wants to change away from the current default 
assignee system for bugs in Creator, as that works pretty well for us.

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


Re: [Development] Changes to the Jira roles and workflow

2012-02-09 Thread marius.storm-olsen
On 09/02/2012 04:33, ext Thiago Macieira wrote:
 On Thursday, 9 de February de 2012 10.20.47, bradley.hug...@nokia.com
 wrote:
 There is call for discussion around default assignee – is it the
 module maintainer? Which tasks are up for grabs if everything new
 goes to the maintainer?
 Unassigned should be the default. When someone picks up the task,
 they should assign it to themselves. Anything else is misleading.

 Agreed. As a Maintainer, I really don't want tons of tasks assigned
 to me and in idle state. It would make my life difficult because I
 can't find the tasks I want to work on. And it would get people
 screaming at me for not looking at their tasks.

I think the argument against that is that Maintainers should know what 
goes on in their modules.

Assigning new tasks unassigned will not notify the maintainer about 
issues in the modules that have come up, and the maintainer will not by 
notified when someone takes a task and starts working on it.

(/me has no strong feelings either way, just highlighting the different 
view points)

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


Re: [Development] QMetaTypeId and QMetaTypeId2

2012-02-09 Thread Stephen Kelly
On Thursday, February 09, 2012 10:07:16 Jedrzej Nowacki wrote:
 Hi,
 
   Does anybody know why we have separation between QMetaTypeId and
 QMetaTypeId2 classes?
 
   QMetaTypeId2 delegates all operations to QMetaTypeId by default and
 qMetaTypeId() function is calling QMetaTypeId2. To make it more complex
 Q_DECLARE_METATYPE is specializing QMetaTypeId but
 Q_DECLARE_BUILTIN_METATYPE is specializing QMetTypeId2. From an user
 perspective it is not visible, but it makes implementation complex.
 
   Can I merge QMetaTypeId and QMetaTypeId2?

I always thought they were split so that Qt could add new built-in metatypes 
without breaking user code.

Eg, if you merge them, any user code doing:

Q_DECLARE_METATYPE(QModelIndex)

will no longer compile until that line is removed (It is a built-in metatype 
now).

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] JIRA bug management: users can't close their 'assigned' bugs.

2012-02-09 Thread marius.storm-olsen
On 06/02/2012 03:04, ext Rick Stockton wrote:
 Hi everyone, I have a number of stale bugs which need to be closed.

 When bugs are Assigned, even to Earth Domain, the original reporter
 is unable to close them. SO, for the purpose of removing bad data from
 our DB, I'm requesting help with the following bugs. I'm the
 reporter/creator of in all cases:

 https://bugreports.qt-project.org/browse/QTBUG-19793 (some work on mouse
 buttons in 4.x, which we put into 5.0 instead. Change to CLOSED/REJECTED)

Done by Shane on 06.

 https://bugreports.qt-project.org/browse/QTBUG-22642 (Qt5 mouse buttons
 in XLIB and XCB, Resolved. Fixed in Qt 5.0.0)

This is currently in Verified state, which will changed to Closed 
once released.
(See 
https://bugreports.qt-project.org/plugins/servlet/workflow/thumbnail/getThumbnail?workflowName=Qt%20Bug%20TrackingstepId=7width=fullheight=full
 
for workflow visualization)

 https://bugreports.qt-project.org/browse/QTBUG-22642 (bad idea, should
 be CLOSED/REJECTED. Note: Current assignee is Oliver Goffart, but the
 bad idea was mine ;)

The QTBUG number on this one is the same as above.


 https://bugreports.qt-project.org/browse/QTBUG-22338 (change to
 CLOSED/REJECTED).

Done by Shane on 06.

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


Re: [Development] Changes to the Jira roles and workflow

2012-02-09 Thread michael.goddard
Howdy,

Assigning new tasks unassigned will not notify the maintainer about
issues in the modules that have come up, and the maintainer will not by
notified when someone takes a task and starts working on it.

Surely this is something that JIRA could support?  Watching a component or
similar?  (also can Gerrit do this too?)

Cheers,
MichaelG

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


Re: [Development] Changes to the Jira roles and workflow

2012-02-09 Thread marius.storm-olsen
On 09/02/2012 05:41, Goddard Michael (Nokia-MP/Brisbane) wrote:
 Assigning new tasks unassigned will not notify the maintainer
 about issues in the modules that have come up, and the maintainer
 will not by notified when someone takes a task and starts working
 on it.

 Surely this is something that JIRA could support?  Watching a
 component or similar?  (also can Gerrit do this too?)

Not by default. But there is a 3rdparty pluging to allow adding Watcher 
on components:
 
https://studio.plugins.atlassian.com/wiki/display/JCWP/JIRA+Component+Watcher+Plugin

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


Re: [Development] Changes to the Jira roles and workflow

2012-02-09 Thread shane.kearns
It's easy to make a report on your personal dashboard to show issues reported 
on a given (set of) component(s).
It means polling rather than email notification, but the email notifications 
have poor signal:noise ratio.

 -Original Message-
 From: development-bounces+shane.kearns=accenture@qt-project.org
 [mailto:development-bounces+shane.kearns=accenture@qt-project.org]
 On Behalf Of marius.storm-ol...@nokia.com
 Sent: Thursday, February 09, 2012 11:47
 To: michael.godd...@nokia.com
 Cc: thiago.macie...@intel.com; development@qt-project.org
 Subject: Re: [Development] Changes to the Jira roles and workflow

 On 09/02/2012 05:41, Goddard Michael (Nokia-MP/Brisbane) wrote:
  Assigning new tasks unassigned will not notify the maintainer
  about issues in the modules that have come up, and the maintainer
  will not by notified when someone takes a task and starts working
  on it.
 
  Surely this is something that JIRA could support?  Watching a
  component or similar?  (also can Gerrit do this too?)

 Not by default. But there is a 3rdparty pluging to allow adding Watcher
 on components:

 https://studio.plugins.atlassian.com/wiki/display/JCWP/JIRA+Component+Wa
 tcher+Plugin

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



Subject to local law, communications with Accenture and its affiliates 
including telephone calls and emails (including content), may be monitored by 
our systems for the purposes of security and the assessment of internal 
compliance with Accenture policy.
__

www.accenture.com

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


Re: [Development] QMetaTypeId and QMetaTypeId2

2012-02-09 Thread Olivier Goffart
On Thursday 09 February 2012 10:42:07 Thiago Macieira wrote:
 On Thursday, 9 de February de 2012 10.07.16, Jedrzej Nowacki wrote:
  Hi,
  
Does anybody know why we have separation between QMetaTypeId and
  
  QMetaTypeId2 classes?
 
 Because the original QMetaTypeId that existed in Qt 4.0 lacked one important
 feature, which Harald fixed in 4.2 or 4.3.
 
 Before harryF's changes, the Q_DECLARE_METATYPE macro did not save the name,
 so you had to include the type's name in the registration function:
 
   qRegisterMetaTypeMyType(MyType);
 
 This was necessary because the type's name cannot be easily gleaned from the
 template parameter (I have a patch for that though, see
 https://codereview.qt- project.org/#change,670 ).

It was before my time, but I think it is totallty unrelated to that, since 
Q_DECLARE_METATYPE already registered the name in Qt 4.0 and that QMetaTypeId2 
is only used for builtin types.

I beleive it has been added so adding builting type do not conflicts with 
Q_DECLARE_METATYPE of the same type.

Indeed, in Qt 4.1, the list of supported metatype was quite small
http://doc.qt.nokia.com/4.1/qmetatype.html#Type-enum
But in Qt 4.2, where QMetaTypeId2 was added, that list has gained a lot of 
types.
Without QMetaTypeId2, customer code that would have done 
Q_DECLARE_METATYPE(QStringList) yould break


QMetaTypeId2 delegates all operations to QMetaTypeId by default and
  
  qMetaTypeId() function is calling QMetaTypeId2. To make it more complex
  Q_DECLARE_METATYPE is specializing QMetaTypeId but
  Q_DECLARE_BUILTIN_METATYPE is specializing QMetTypeId2. From an user
  perspective it is not visible, but it makes implementation complex.
  
Can I merge QMetaTypeId and QMetaTypeId2?
 
 Yes. Those are not public classes.
 
 There was some Harmattan code that specialised them and broke when we made
 some changes in 4.7, but touching those classes is internal API.


In Qt5.0 they sure can be merged.

Maybe we will need to re-add it if we decide to add buitlins metatype that 
were not builtins before. But it is less likely now that in Qt 4.1, or maybe 
we find another trick to keep it working.

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


[Development] RFC: The Future of QDoc

2012-02-09 Thread casper.vandonderen
Hello,

I am working on QDoc part-time and we have been discussing some changes that we 
would like to implement to make qdoc more future proof.
I have created a short list of the things we would like to do: 
http://developer.qt.nokia.com/wiki/Category:Tools::QDoc

It comes down to: Implement a new C++ parser, make qdoc more modular and be 
able to handle the Qt modules better with qdoc.

I am wondering if anybody has any ideas about what he/she would like qdoc to 
do, or how qdoc should evolve?

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


Re: [Development] RFC: The Future of QDoc

2012-02-09 Thread Keno Fischer
 Implement a new C++ parser

Any plans on using Clang a parser? The wiki page mentioned Qt Creator's AST,
but it seems like Qt Creator will be moving away from its own implementation
in the future, so I think that might be something to consider. Also, since
the necessary work on Clang is being done for Qt Creator anyway (I'm
thinking of things like signals/slots) it might be worth to keep qdoc in
mind when working on Clang for Qt Creator. Any thoughts?

Keno

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


Re: [Development] RFC: The Future of QDoc

2012-02-09 Thread casper.vandonderen
On 2/9/12 3:15 PM, ext Keno Fischer ke...@stanford.edu wrote:

 Implement a new C++ parser

Any plans on using Clang a parser? The wiki page mentioned Qt Creator's
AST,
but it seems like Qt Creator will be moving away from its own
implementation
in the future, so I think that might be something to consider. Also, since
the necessary work on Clang is being done for Qt Creator anyway (I'm
thinking of things like signals/slots) it might be worth to keep qdoc in
mind when working on Clang for Qt Creator. Any thoughts?

I think that QDoc will indeed use the parser from Creator (whatever that
will be, the last answer from Andre Poenitz was to use a hybrid), unless
someone comes up with other great ideas.

The problem stays that QDoc is not fully modularized (QDoc will depend on
Creator/an independent module containing the parser). But maybe that is
something we cannot circumvent (unless we let QtBase depend on Clang and
have our own parser, but that will not work on every platform I assume).

Casper

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


Re: [Development] RFC: The Future of QDoc

2012-02-09 Thread Matt Williams
On 9 February 2012 14:15, Keno Fischer ke...@stanford.edu wrote:
 Implement a new C++ parser

 Any plans on using Clang a parser? The wiki page mentioned Qt Creator's AST,
 but it seems like Qt Creator will be moving away from its own implementation
 in the future, so I think that might be something to consider. Also, since
 the necessary work on Clang is being done for Qt Creator anyway (I'm
 thinking of things like signals/slots) it might be worth to keep qdoc in
 mind when working on Clang for Qt Creator. Any thoughts?

There's also the KDevelop C++ parser. It already supports many C++11
features and run very fast. As far as I'm aware it doesn't depends on
any KDE libraries (Qt only) and already has the ability to extract
Doxygen-style comments. I don't know if there are any KDevelop people
on this list who can comment further?

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


Re: [Development] QMetaTypeId and QMetaTypeId2

2012-02-09 Thread Thiago Macieira
On Thursday, 9 de February de 2012 14.11.17, André Somers wrote:
 Not hindered by any knowledge of the internals of these classes:
 Would it be possible to make such a statement a no-op then if the type
 is already registered?

If you can find a way to do that, great.

The problem is we haven't found a way.
--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden


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] QMetaTypeId and QMetaTypeId2

2012-02-09 Thread Thiago Macieira
On Thursday, 9 de February de 2012 12.39.54, Stephen Kelly wrote:
 I always thought they were split so that Qt could add new built-in metatypes
 without breaking user code.

That's not why it was added.

 Eg, if you merge them, any user code doing:

 Q_DECLARE_METATYPE(QModelIndex)

Most types are not built-ins. They may be added by another library, like
QtDBus (that Q_DECLARE_METATYPEs a lot of types) and then there's no
protection.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden


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] QMetaTypeId and QMetaTypeId2

2012-02-09 Thread BRM
 From: Olivier Goffart oliv...@woboq.com
 On Thursday 09 February 2012 10:42:07 Thiago Macieira wrote:
  On Thursday, 9 de February de 2012 10.07.16, Jedrzej Nowacki wrote:
   Hi,
   
 Does anybody know why we have separation between QMetaTypeId and
   
   QMetaTypeId2 classes?
 
  Because the original QMetaTypeId that existed in Qt 4.0 lacked one 
 important
  feature, which Harald fixed in 4.2 or 4.3.
 
  Before harryF's changes, the Q_DECLARE_METATYPE macro did not save the 
 name,
  so you had to include the type's name in the registration function:
 
  qRegisterMetaTypeMyType(MyType);
 
  This was necessary because the type's name cannot be easily gleaned 
 from the
  template parameter (I have a patch for that though, see
  https://codereview.qt- project.org/#change,670 ).
 
 It was before my time, but I think it is totallty unrelated to that, since 
 Q_DECLARE_METATYPE already registered the name in Qt 4.0 and that 
 QMetaTypeId2 
 is only used for builtin types.
 
 I beleive it has been added so adding builting type do not conflicts with 
 Q_DECLARE_METATYPE of the same type.
 
 Indeed, in Qt 4.1, the list of supported metatype was quite small
 http://doc.qt.nokia.com/4.1/qmetatype.html#Type-enum
 But in Qt 4.2, where QMetaTypeId2 was added, that list has gained a lot of 
 types.
 Without QMetaTypeId2, customer code that would have done 
 Q_DECLARE_METATYPE(QStringList) yould break

I think this should be handled such that it won't break such that:

1. It logs that it has already been registered, and preferably where the 
extraneous registrations are coming from.
2. Any extraneous registrations are dropped (not processed aside from #1).


#1 is to help people track down registrations they don't need - or at least 
block them out so that they only occur with
Qt versions that still need them (if they need the interoperability).


 From: André Somers an...@familiesomers.nl
Op 9-2-2012 12:39, Stephen Kelly schreef: 
 
 Can I merge QMetaTypeId and QMetaTypeId2?
 
I always thought they were split so that Qt could add new built-in metatypes 
without breaking user code.
 
Eg, if you merge them, any user code doing:
 
Q_DECLARE_METATYPE(QModelIndex)
 
will no longer compile until that line is removed (It is a built-in metatype 
now).
 

 Not hindered by any knowledge of the internals of these classes:
Would it be possible to make such a statement a no-op then if the
 type is already registered?



The effect should be a no-op with the possible addition of a log message (e.g. 
qDebug()) if it is already there so that people can track down the extraneous 
cases.

That said, I'd like to see at least QAbstractSocket::SocketError registered as 
well. As it is, I typically have to register it before I can throw it through 
signals across thread boundaries.
I'd suggest that any type - especially enums and standard types - that is in a 
signal/slot in the Qt API should be registered by Qt so that a signal can be 
used with it across thread boundaries.

$0.02

Ben

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


[Development] Removal of Trolltech usages inside Qt

2012-02-09 Thread Giuseppe D'Angelo
One of the blockers of [1] (Larger changes for Qt 5) is the clean up
of Trolltech strings/namespaces/etc. inside Qt, which is actually
tracked by several bug reports [2].

That's fine, but was any consensus reached about what to change those
strings to? qt-project.org? Should any logic for fallbacks (for
settings, etc.) be present in Qt code? I'd like especially to hear
advice from the Chief Maintainer and the legal team.

Cheers,
-- 
Giuseppe D'Angelo

[1] https://bugreports.qt-project.org/browse/QTBUG-20885
[2] 
https://bugreports.qt-project.org/secure/IssueNavigator.jspa?reset=truejqlQuery=summary+~+%22Stop+using+Trolltech%22
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Removal of Trolltech usages inside Qt

2012-02-09 Thread lars.knoll
On 2/9/12 4:56 PM, ext Giuseppe D'Angelo dange...@gmail.com wrote:

One of the blockers of [1] (Larger changes for Qt 5) is the clean up
of Trolltech strings/namespaces/etc. inside Qt, which is actually
tracked by several bug reports [2].

Btw, same thing is true for 'nokia' strings and namespaces.

That's fine, but was any consensus reached about what to change those
strings to? qt-project.org? Should any logic for fallbacks (for
settings, etc.) be present in Qt code? I'd like especially to hear
advice from the Chief Maintainer and the legal team.

We should change things to qt-project.org. I've done that for IIDs to some
extent already. In most cases we will not need any fallbacks.

I'm uncertain about some identifiers in e.g. the qtdbus module, as I don't
know how this will affect interoperability between Qt 4 and Qt 5.

Cheers,
Lars

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


Re: [Development] Removal of Trolltech usages inside Qt

2012-02-09 Thread Thiago Macieira
On Thursday, 9 de February de 2012 16.04.07, lars.kn...@nokia.com wrote:
 I'm uncertain about some identifiers in e.g. the qtdbus module, as I don't
 know how this will affect interoperability between Qt 4 and Qt 5.

I'd say we're ok to change, as the default names will change already due to
QWidget - QWindow.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden


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] RFC: The Future of QDoc

2012-02-09 Thread Manuel Nickschas
On Thursday 09 February 2012 15:36:09 ext Olivier Goffart wrote:

  I am working on QDoc part-time and we have been discussing some changes
  that we would like to implement to make qdoc more future proof. I have
  created a short list of the things we would like to do:
  http://developer.qt.nokia.com/wiki/Category:Tools::QDoc
  
  It comes down to: Implement a new C++ parser, make qdoc more modular and
  be
  able to handle the Qt modules better with qdoc.
  
  I am wondering if anybody has any ideas about what he/she would like qdoc
  to do, or how qdoc should evolve?
 
 Have you thought about using doxygen or any similar tool?

Or at least make QDoc be able to parse doxygen-style comments (which also 
means it should not ignore headers, as documenting public API in a header file 
is much more common at least outside Qt than doing that in the implementation 
file...)

I'd be happy to see Qt use or at least support more standard solutions over 
homegrown ones. Since that failed for localization, maybe we can at least get 
it for documentation :)

BR,
~ Sput
-- 
Manuel Sput Nickschas | mailto: manuel.nicksc...@nokia.com |   .-.
Senior SW Engineer, Middlelayer | callto: +49 (0) 174 16 53 993  |   oo|
Nokia GmbH, MP Development  | sendto: Lise-Meitner-Str. 14   |  /`'\
Product Creation Center Ulm | 89081 Ulm, Germany | (\_;/)___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] RFC: The Future of QDoc

2012-02-09 Thread marius.storm-olsen
On 09/02/2012 10:16, ext Hugo Parente Lima wrote:
 On Thursday 09 February 2012 14:30:20 Matt Williams wrote:
 On 9 February 2012 14:15, Keno Fischerke...@stanford.edu  wrote:
 Implement a new C++ parser

 Any plans on using Clang a parser? The wiki page mentioned Qt
 Creator's AST, but it seems like Qt Creator will be moving away
 from its own implementation in the future, so I think that might
 be something to consider. Also, since the necessary work on Clang
 is being done for Qt Creator anyway (I'm thinking of things like
 signals/slots) it might be worth to keep qdoc in mind when
 working on Clang for Qt Creator. Any thoughts?

 There's also the KDevelop C++ parser. It already supports many
 C++11 features and run very fast. As far as I'm aware it doesn't
 depends on any KDE libraries (Qt only) and already has the ability
 to extract Doxygen-style comments. I don't know if there are any
 KDevelop people on this list who can comment further?

 The KDevelop parser is based on a version of Roberto's parser, last
 time I checked the sources it used few KDE utility classes like some
 smart pointers, but I see no difference in using the KDevelop or
 QtCreator parser as both are more or less the same.

QtCreators parser is a much later version of Roberto's parser, and I 
expect that it parses much faster than the KDevelop one. I'm sure 
QtCreators parser can be upgraded to also handle those new C++11 
features, and since we need to maintain it in Creator anyways, I don't 
see why it should use another parser than a one we already have intimate 
knowledge about?


 I nice ability QDoc would have is to support other output formats
 like XML or JSON, the old QDoc had this feature but it was deprecated
 and not documented at all.

 The PySide documentation is generated using the XML output of qdoc3,
 but the current version of qdoc3 doesn't support XML output anymore.

Oops. Casper, Martin any details about this, and why XML output was 
dropped? Hugo, any reason why PySide cannot use the normal output? 
Integration with other help tools?

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


Re: [Development] RFC: The Future of QDoc

2012-02-09 Thread Hugo Parente Lima
On Thursday 09 February 2012 17:56:12 marius.storm-ol...@nokia.com wrote:
 On 09/02/2012 10:16, ext Hugo Parente Lima wrote:
  On Thursday 09 February 2012 14:30:20 Matt Williams wrote:
  On 9 February 2012 14:15, Keno Fischerke...@stanford.edu  wrote:
  Implement a new C++ parser
  
  Any plans on using Clang a parser? The wiki page mentioned Qt
  Creator's AST, but it seems like Qt Creator will be moving away
  from its own implementation in the future, so I think that might
  be something to consider. Also, since the necessary work on Clang
  is being done for Qt Creator anyway (I'm thinking of things like
  signals/slots) it might be worth to keep qdoc in mind when
  working on Clang for Qt Creator. Any thoughts?
  
  There's also the KDevelop C++ parser. It already supports many
  C++11 features and run very fast. As far as I'm aware it doesn't
  depends on any KDE libraries (Qt only) and already has the ability
  to extract Doxygen-style comments. I don't know if there are any
  KDevelop people on this list who can comment further?
  
  The KDevelop parser is based on a version of Roberto's parser, last
  time I checked the sources it used few KDE utility classes like some
  smart pointers, but I see no difference in using the KDevelop or
  QtCreator parser as both are more or less the same.
 
 QtCreators parser is a much later version of Roberto's parser, and I
 expect that it parses much faster than the KDevelop one. I'm sure
 QtCreators parser can be upgraded to also handle those new C++11
 features, and since we need to maintain it in Creator anyways, I don't
 see why it should use another parser than a one we already have intimate
 knowledge about?
 
  I nice ability QDoc would have is to support other output formats
  like XML or JSON, the old QDoc had this feature but it was deprecated
  and not documented at all.
  
  The PySide documentation is generated using the XML output of qdoc3,
  but the current version of qdoc3 doesn't support XML output anymore.
 
 Oops. Casper, Martin any details about this, and why XML output was
 dropped? Hugo, any reason why PySide cannot use the normal output?
 Integration with other help tools?

XML output was dropped because it wasn't maintained and was never made public, 
it always was a private experimental thing from qdoc3.

We couldn't use the normal output because we need to modify the Qt 
documentation without touch the Qt sources, so the qdoc3 outputs XML files 
generated from Qt sources, we apply some XSLT's to change small things, then 
we transform those XML's into rst files and send them to sphinx to create the 
docs formatted in a python friendly way.

-- 
Hugo Parente Lima






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] RFC: The Future of QDoc

2012-02-09 Thread marius.storm-olsen
On 09/02/2012 10:33, ext Manuel Nickschas wrote:
 On Thursday 09 February 2012 15:36:09 ext Olivier Goffart wrote:
 I am working on QDoc part-time and we have been discussing some
 changes that we would like to implement to make qdoc more future
 proof. I have created a short list of the things we would like to
 do: http://developer.qt.nokia.com/wiki/Category:Tools::QDoc

 It comes down to: Implement a new C++ parser, make qdoc more
 modular and be able to handle the Qt modules better with qdoc.

 I am wondering if anybody has any ideas about what he/she would
 like qdoc to do, or how qdoc should evolve?

 Have you thought about using doxygen or any similar tool?

 Or at least make QDoc be able to parse doxygen-style comments (which
 also means it should not ignore headers, as documenting public API
 in a header file is much more common at least outside Qt than doing
 that in the implementation file...)

Qt puts the documentation in the sources since it's closer to the actual 
code, and thus more likely to be maintained at the same time as the code 
is changed. If the documentation is in another location, it's far more 
likely to be forgotten when updates/changes to behavior is done in the 
source code.


 I'd be happy to see Qt use or at least support more standard
 solutions over homegrown ones. Since that failed for localization,
 maybe we can at least get it for documentation :)

I think there are a few issues here:

1) Only Dimitri touches Doxygen code, and it doesn't look like 
contributions go in (at least not under the authors name). This means 
that the functionality to support Qt's extensive documentation needs to 
be implemented by Dimitri alone. Thus, Nokia's team cannot be working on 
enhancing Doxygen to get it up to par with the current output from qdoc.

2) From what I've seen of attempts to set up Doxygen, none of them have 
proven to create output quality on par with what qdoc produces. This is 
obviously due to qdoc only having 1 mission, to produce the 
documentation output that the Qt documentation team think is optimal, 
while Doxygen is a tool for a multitude of outputs. However, is does 
leave a quality gap between the documentation we want verses the 
documentation we can get out of the tool. A gap the documentation team 
would want to close, which again points to 1).

3) Transforming the documentation in Qt sources to only use current 
Doxygen syntax is VERY unlikely, at least in the Qt 5.0 time-frame.

All of the above is my personal opinion of course, and *NOT* 
representative of the Qt Documentation team, qdoc team or any other team 
in Nokia. I like Doxygen, and have used it on several occasions for my 
own personal projects; but I still feel that the output of qdoc looks 
better.

(And no, I *don't* use the inheritance charts. I think they are 
pointless, and not nice to look at. If you need them, something is 
obviously too complex in your design.)

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


Re: [Development] RFC: The Future of QDoc

2012-02-09 Thread casper.vandonderen
Hi,

   I nice ability QDoc would have is to support other output formats
   like XML or JSON, the old QDoc had this feature but it was deprecated
   and not documented at all.
  
   The PySide documentation is generated using the XML output of qdoc3,
   but the current version of qdoc3 doesn't support XML output anymore.
 
  Oops. Casper, Martin any details about this, and why XML output was
  dropped? Hugo, any reason why PySide cannot use the normal output?
  Integration with other help tools?

 XML output was dropped because it wasn't maintained and was never made public,
 it always was a private experimental thing from qdoc3.

 We couldn't use the normal output because we need to modify the Qt
 documentation without touch the Qt sources, so the qdoc3 outputs XML files
 generated from Qt sources, we apply some XSLT's to change small things, then
 we transform those XML's into rst files and send them to sphinx to create the
 docs formatted in a python friendly way.

Have you looked at the DITA XML output we generate now? It is pretty stable 
now, we tried to use it for the 4.8 DevNet release, but the output was not 
fully up to spec at that point. It is now.

You can find more information about DITA XML at 
http://docs.oasis-open.org/dita/v1.2/spec/DITA1.2-spec.html
The version of DITA Open Toolkit we are using to apply XSLTs can be found at 
https://projects.developer.nokia.com/doxygen_dita/files


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


Re: [Development] RFC: The Future of QDoc

2012-02-09 Thread casper.vandonderen
 On 09/02/2012 10:33, ext Manuel Nickschas wrote:
  On Thursday 09 February 2012 15:36:09 ext Olivier Goffart wrote:
 I am working on QDoc part-time and we have been discussing some
 changes that we would like to implement to make qdoc more future
 proof. I have created a short list of the things we would like to
 do: http://developer.qt.nokia.com/wiki/Category:Tools::QDoc

 It comes down to: Implement a new C++ parser, make qdoc more
 modular and be able to handle the Qt modules better with qdoc.

 I am wondering if anybody has any ideas about what he/she would
 like qdoc to do, or how qdoc should evolve?

 Have you thought about using doxygen or any similar tool?

 Or at least make QDoc be able to parse doxygen-style comments (which
 also means it should not ignore headers, as documenting public API
 in a header file is much more common at least outside Qt than doing
 that in the implementation file...)

 Qt puts the documentation in the sources since it's closer to the actual
 code, and thus more likely to be maintained at the same time as the code
 is changed. If the documentation is in another location, it's far more
 likely to be forgotten when updates/changes to behavior is done in the
 source code.


 I'd be happy to see Qt use or at least support more standard
 solutions over homegrown ones. Since that failed for localization,
 maybe we can at least get it for documentation :)

Just to add what I think to Marius' comments:
1. Doxygen would need some extra features, the major one being QML, but also 
being able to use index files to easily link for instance the Creator docs to 
the Qt docs.

2. Even if we would use Doxygen we would still need a fork before a release, I 
do not think we can line up releases of Doxygen with releases of Qt. And having 
a Doxygen version number like 1.7.6.2-qt-SHA1 also doesn't look too great.

I would personally not mind using Doxygen, but I do agree with the points about 
Dimitri only changing the code and the quality of Doxygen output (which you can 
of course change)

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


Re: [Development] RFC: The Future of QDoc

2012-02-09 Thread marius.storm-olsen
On 09/02/2012 12:13, ext marius.storm-ol...@nokia.com wrote:
 On 09/02/2012 10:33, ext Manuel Nickschas wrote:
 I'd be happy to see Qt use or at least support more standard
 solutions over homegrown ones. Since that failed for localization,
 maybe we can at least get it for documentation :)

 I think there are a few issues here:

 1) Only Dimitri touches Doxygen code, and it doesn't look like
 contributions go in (at least not under the authors name). This means
 that the functionality to support Qt's extensive documentation needs to
 be implemented by Dimitri alone. Thus, Nokia's team cannot be working on
 enhancing Doxygen to get it up to par with the current output from qdoc.

Btw, all purely based on 
http://doxygen.svn.sourceforge.net/viewvc/doxygen/trunk/ and committers 
I can see in the revision logs. I have not been in contact with Dimitri 
on the matter, but I do see a call to action in 
http://old.nabble.com/Doxygen-support-for-QML---td32658060.html. So 
perhaps a wrong assumption on my part.

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


Re: [Development] Importing sahumada: Can you import http://gitorious.org/qserialdevice/qserialdevice (the 2.0 branch) into playground/QtSerialPort

2012-02-09 Thread marius.storm-olsen
On 09/02/2012 13:26, ext Denis Shienkov wrote:
 Hi Marius.

 I have a few more questions (or offers):

 1) Perhaps, instead of:
 ...
 and start pushing to refs/for/2.0 to the Gerrit repo.
 ...
 done refs/for/master? Because for the main branch is gerrit master,
 and not 2.0 (or am I misunderstanding something?).

Sure, whatever you prefer. Gitorious' 2.0 branch was pushed to both 2.0 
and master, since Gerrit requires a 'master' branch. We didn't import 
the Gitorious master branch, since I think you only rebased the 2.0 
branch to avoid the commits without CLA signoff.

How you proceed, with commits in the master or 2.0 branch is up to you 
as the maintainer.


 2) It may be worth in the current repository QSerialDevice Gitorious
 marked as deprecated (well, or something like that), and instead it
 create a new one with a new name (ex. QtSerialPort), etc. The reason
 is that QSerialDevice will not reflect the inner essence, after
 integration, and will mislead the majority of public users.

Sure, I agree it's probably cleaner to do that. (Our internal sync 
script also infact requires the repositories to be named the same in 
Gerrit and in Gitorious.)


 3) Let us define - what the class name give, with prefix Qt, Q or no
 prefix? I looked at some of the projects Gerrit without CI (eg
 qtprocessmanager, qtjsonstream) and found that a all class names
 without the prefix. I also stick to this style?

See 
http://wiki.qt-project.org/Creating_a_new_module_or_tool_for_Qt#Using_the_module_name_in_application_code_and_documentation

 For Qt Add-On Modules, a C++ namespace is required to avoid class
 naming clashes with other modules in the public API. For the Qt
 Foo module the namespace would be QtFoo. Exception: in order to
 keep source compatibility with Qt 4, no namespace is required for
 former Qt 4 modules. When naming classes, the best practice is use
 simple non-prefixed class names within the C++ name space. Naming
 classes of add-ons like QMyClass is also OK.


 4) In the header of each source file, keep a reference to the
 original authors, like me, or mention only Nokia?

Nokia did not develop the code, and must not be referenced as the 
author. Copyright remains with the author.


 5) How to make an example of the structure of the project is the
 addon for QtSerialPort (in order to make the image and likeness),
 from any Addon-project? Or maybe there is a specific example of a
 good where to get the project structure for addon?

http://wiki.qt-project.org/Creating_a_new_module_or_tool_for_Qt#The_structure_of_a_new_module_repository

-- 
.marius


 08.02.2012, 22:08, marius.storm-ol...@nokia.com:
 On 2/8/12 11:59 AM, ext Denis Shienkovscap...@yandex.ru  wrote:

 Hi Marius.

 I do not understand this bit:
 --
 --
 For the other Qt repos we treat the Gitorious repo as public repo, so
 most people will clone from there. Then we regularly push from Gerrit to
 Gitorious to keep them in sync. However, we disable Merge Requests in
 Gitorious, since we want to force all contributions through the Gerrit
 system.
 --
 --

 ie I and other special/selected developers will commits/push to Gerrit,
 and then tested and approved by the pieces of code will be sent to
 Gitorious?

 Well, not more special than having a Jira/Gerrit account with an
 accepted CLA agreement :)

 For the Qt Essential modules we have a script which automatically pushes
 the latest changes to the Gitorious location. And we prefer most people to
 use those as the primary clone location, since it offloads much of the
 resource requirements from the Qt-Project infrastructure.

 What then will be a public repo address on Gitorious for get/clone other
 people a code libraries?

 It's up to you really. If you don't want to mirror it to Gitorious on a
 regular basis, you can just use the Gerrit repo as the primary location,
 though I think people will need a Jira/Gerrit account to do so? Sergio,
 can you please confirm or deny that?

 My recommendation: Keep your Gitorious repo as the primary source, and
 push the 2.0 branch from Gerrit to Gitorious whenever you feel it's stable
 enough. Then add a notice on the Gitorious project that all development is
 done at codereview.qt-project.org, and that Merge Requests in Gitorious is
 therefore disabled.

 For Qt Essentials, the init-repository script in qt5.git makes the
 Gitorious repos the 'origin', while Gerrit is the 'gerrit' remotes.

 --
 .marius



 08.02.2012, 21:37, marius.storm-ol...@nokia.com:
 You may now disable/stop using the Gitorious repo, and clone from
 Gerrit,
 and start pushing to refs/for/2.0 to the Gerrit repo. Then those will
 show
 up as review tasks for the 2.0 branch in Gerrit, and you can review it
 there.

 Basically, you may now use the Gerrit version as the 

Re: [Development] Feature freeze and Alpha

2012-02-09 Thread John Layt
On Sunday 05 Feb 2012 14:12:48 lars.kn...@nokia.com wrote:

 Is there anything that I have now forgotten that really *must* be in 5.0
 (i.e. it really can't be done in a BC/SC way for Qt 5.1)? If you have such
 an item, please speak up, otherwise I'll consider the above exception list
 as final.

Hi Lars,

Apologies for the late reply, snowed under at work this week.

I need to bring up the plan for the QLocale backend switch to ICU switch and 
whether you still want to complete that for 5.0 or not.

There are 4 must-do changes to the API to prepare for ICU/CLDR regardless of 
whether the backend switch happens in 5.0 or 5.1:

1) Change QLocale date/time format API to match ICU/CLDR features.  This is by 
necessity a source-incompatible change.

2) Change the date/time format codes to match ICU/CLDR codes.  This is by 
necessity a source and behaviour incompatible change.

3) Add a QCalendarSystem API. While not 100% necessary for 5.0, it sets up the 
API usage pattern for when ICU is introduced.

4) Change the QLocale number settings API like decimalPoint() from returning 
QChar to QString.  This is by necessity a source-incompatible change.

I have patches for most of that just about ready to go that I'll get finished 
at the KDE PIM sprint this weekend, and will post separate review emails for 
these.

Cheers!

John.

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


Re: [Development] RFC: The Future of QDoc

2012-02-09 Thread BRM
 From: casper.vandonde...@nokia.com casper.vandonde...@nokia.com

Just to add what I think to Marius' comments:
1. Doxygen would need some extra features, the major one being QML, but also 
being able to use index files to easily link for instance the Creator docs to 
the Qt docs.


Why would Doxygen need QML itself? Or do you mean it would need to be able to 
process the QML/JavaScript files to get additional documentation?


2. Even if we would use Doxygen we would still need a fork before a release, I 
do not think we can line up releases of Doxygen with releases of Qt.
 And having a Doxygen version number like 1.7.6.2-qt-SHA1 also doesn't look 
 too great.


I can understand bundling a version of Doxygen with Qt in the release - like 
many projects do for their dependencies in case those things are not on the 
platform people are building on. E.g. Subversion bundles libneon.
However, I see no issue with saying that Doxygen version x.y.z is required to 
support documentation. So why would we need to _fork_ it as opposed to simply 
bundling a version that is known to work?


Just curious,

Ben

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


Re: [Development] Platform Look and feel

2012-02-09 Thread Alan Alpert
On Fri, 10 Feb 2012 03:37:44 ext Thiago Lacerda wrote:
 Hi,
 
 Is there a way, on Qt5, to get the platform look and feel, without the
 dependency of QtWidgets using QStyle?
 Or this is a feature that needs to be discussed about or done (for 5.1
 maybe?)?
 

The plan I'm aware of for getting platform look and feel with QML is to have 
QtQuick components for every platform. Theoretically, you could dynamically 
pick the appropriate plugin at run-time and run fine as long as you stick to 
the shared sub-set of API.

But I say theoretically because I'm not aware of any plans to actually 
implement this. It's a feature that needs to be discussed about how it gets 
done (and 5.1 at the earliest it's looking like). The closest we have now is 
that the Desktop components (a labs project) tries to get hints out of QStyle 
to look native across desktop platforms.

-- 
Alan Alpert
Senior Engineer
Nokia, Qt Development Frameworks
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Changes to the Jira roles and workflow

2012-02-09 Thread Alan Alpert
On Thu, 9 Feb 2012 12:58:40 ext marius.storm-ol...@nokia.com wrote:
 Hi,

 ... 
 
 
 There is some discussion over if we should burden maintainers with Release
 Management work.
 
 There is a suggestion of a new workflow Nokia Engineer - no privileges in
 Gerrit only in Jira.

That role might be useful, but please don't call it Nokia Engineer. Even if 
we don't expect anyone to ever volunteer to do task management roles, Qt as an 
open project could grow to other companies. Calling it Task Manager or 
Issue Secretary (or something along those lines that's not a joke ;) ) will 
mitigate the risk of having to change the name again later.

 
 ...
 
 
 Default Assignee
 
 There is call for discussion around default assignee - is it the module
 maintainer? Which tasks are up for grabs if everything new goes to the
 maintainer?

The theory I was taught was that you don't use your 'tasks assigned to me' 
list as your list of your in-progress bugs. You use your 'tasks assigned to me 
and listed as in-progress' for that list. So assignment merely means If 
someone's going to look at this bug, it'll probably be this guy first. If 
you're working on a bug and don't want people to take it away, you mark it as 
in-progress. Then the tasks which are up for grabs are the ones assigned to 
the maintainer (or anyone, actually) which are not marked as 'in-progress'.

On the 'unassigned' suggestion, I think that could only work if there's an 
easy way to find the correct maintainer for a component. Currently the table 
in qt-project contains some data, which is nice, but it's just not convenient 
enough or obvious enough to work with JIRA. Default assignee has basically 
been the way people find maintainers for bug reporting (at least), if you take 
that away then something else is needed.

-- 
Alan Alpert
Senior Engineer
Nokia, Qt Development Frameworks
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Feature freeze and Alpha

2012-02-09 Thread Hans-Peter Jansen
Dear Lars,

On Thursday 09 February 2012, 21:00:40 John Layt wrote:
 On Sunday 05 Feb 2012 14:12:48 lars.kn...@nokia.com wrote:
  Is there anything that I have now forgotten that really *must* be
  in 5.0 (i.e. it really can't be done in a BC/SC way for Qt 5.1)? If
  you have such an item, please speak up, otherwise I'll consider the
  above exception list as final.

sorry for chiming in that late, but my past attempts to direct some 
perception of the audience on a long time flaw of Qt seem to have 
failed so far. Please allow me to quote myself with a historical Qt bug 
report and a post to qt5-feedback:

http://bugreports.qt.nokia.com/browse/QTBUG-277

It's about QDateEdit, QTimeEdit and QDateTimeEdit allowing to keep 
invalid dates, times and datetimes invalid (with databases, a NULL 
value of such a field usually has a special meaning (think death-day 
of still living people). Current behavior since Qt3 is: if the user 
just tabs over such a field in a (database) form, the widgets force a 
valid date/time value: leading to a value of 2000-01-01 00:00:00 for a 
QDateTimeEdit. Needless to say, that this behavior isn't desired almost 
all the time. At least, the auto completion should be controllable in 
some way. Some dates might only be valid as past or as future dates.
  
While the bug says, that QDateTime needs modifications, but didn't 
describe, which, I beg to differ. QDate and QTime _do_ allow invalid 
values. What it takes is keep invalid QDates and QTimes as long as the 
user doesn't change one value (at least) and allow the user to 
invalidate the values.  

Here's some food for implementation thoughts: how about adding some 
global boolean flag (application wide), that allows enabling invalid 
Q{Date,Time,DateTime} in their respective edit widgets. If that flag is 
enabled, change the widget behavior in a way, that 
 * tabbing over it will keep an invalid date{time}, 
 * allow to explicitely set an invalid date{time} programatically,
 * disable auto completion,
 * set an invalid date{time}, if the user presses delete, or removes all
   values with backspace, 
 * and finally add a widget property to control this behavior..

This should be possible without violating source code compatibility of 
these widgets. Sorry for not providing a patch, but being a PyQt hacker 
myself, my C++ skills are pretty rusty at best.

Anyway, I would love to see Qt5 appearing without this very flaw, and I 
bet, that a considerable amout of Qt developers will be very grateful 
for such an improvement.

Thanks in advance,
Pete

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


Re: [Development] Feature freeze and Alpha

2012-02-09 Thread Thiago Macieira
On quinta-feira, 9 de fevereiro de 2012 20.00.40, John Layt wrote:
 1) Change QLocale date/time format API to match ICU/CLDR features.  This is
 by  necessity a source-incompatible change.

 2) Change the date/time format codes to match ICU/CLDR codes.  This is by
 necessity a source and behaviour incompatible change.

Hi John

Can you explain in more detail what those source-incompatible changes would
be? How much would they affect user code?

Should we consider a compatibility API? If we do that, then you're free to
introduce the CLDR-compatible codes later in new functions without breaking
the old ones.

 3) Add a QCalendarSystem API. While not 100% necessary for 5.0, it sets up
 the  API usage pattern for when ICU is introduced.

I think we're past the time for this to go in 5.0. It can wait for 5.1,
provided the necessary adaptations for it to work are in place.

 4) Change the QLocale number settings API like decimalPoint() from
 returning  QChar to QString.  This is by necessity a source-incompatible
 change.

This one seems like a simple enough change with restricted damage. I'd
recommend doing it immediately, regardless of ICU or CLDR, provided Lars
approves it.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden


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] QLog ( Work on qDebug and friends)

2012-02-09 Thread Lincoln Ramsay
On 02/10/2012 01:16 AM, ext BRM wrote:
 That said, there may be a place for having a compile time option to
 entirely disable it too - e.g. for distributions and commercial
 (Digia) binary releases to be able to completely disable it on
 release builds.

Removing the logging statement entirely is achieved by expanding the 
macro to:
if (1) /*NOP*/; else qDebug()

Technically, you'd have to wrap the logging statement in a #ifdef/#endif 
pair to ensure it's completely removed but I think compilers can 
correctly determine that the else is never hit (due to the constant in 
the if) and so omit that code from the binary. Certainly, that code will 
never be run when the macro expands this way.

-- 
Lincoln Ramsay - Senior Software Engineer
Qt Development Frameworks, Nokia - http://qt.nokia.com/
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QLog ( Work on qDebug and friends)

2012-02-09 Thread wolfgang.beck
Hi Kai,

The controlling of the category will be done using a configuration file.
QLog contains a private class that creates a file watcher for the configuration 
file.
So not only if you start the application but during runtime as well the 
category filtering can be changed dynamically by changing the config file.
No recompiling needed with this solution.

Cheers,
 WB


-Original Message-
From: Koehne Kai (Nokia-MP/Berlin) 
Sent: Thursday, February 09, 2012 7:05 PM
To: Beck Wolfgang (Nokia-MP/Brisbane); development@qt-project.org
Subject: RE: QLog ( Work on qDebug and friends)

 -Original Message-
 From: Beck Wolfgang (Nokia-MP/Brisbane)
 Sent: Thursday, February 09, 2012 8:11 AM
 To: Koehne Kai (Nokia-MP/Berlin); development@qt-project.org
 Subject: RE: QLog ( Work on qDebug and friends)
 
 Hi Kai,


Hi Wolfgang,

 I think this was a very good idea so I've tried it but I've run into 
 one important problem.
 If I use this trick I have to call the overloaded function in QMessageLogger:
 e.g.
 1. void debug(QMessageCategory category, const char *format, ...); and 2.
 QDebug debug(QMessageCategory category);
 
 The first function is ok but the 2. one needs to return a QDebug object.
 In this case I have to do a lots of overhead e.g. function call and 
 creating object after I can check if the category should be logged or not.

 So better having a other named macro which I can do
 
 #define qLog(category) \
If(!logging_enable);\
 Else QMessageCategory().debug()

I see. You'll indeed need something like that if you want to define which 
category to log or not with the help of the macro expander.

You might still get half-way there performance wise though by giving QDebug a 
boolean active, and check for it in the various operator, e.g.

  inline QDebug operator(qint64 t){ if (!active) return *this; 
stream-ts  QString::number(t); return maybeSpace(); }

If everything is inlined, and the various overloads of operator that people 
can implement do the check too, this should mostly come down to just in a 
couple of if (false) ... being executed.

Anyhow, a more basic question I have is whether we want the filtering by 
category be done at runtime (e.g. in a central message handler), or at compile 
time (like your solution seems to be based on). Maybe there's place for both, 
but I thought the idea for the Qt libraries was to avoid the need for 
recompiles ...

Regards

Kai Koehne

 Cheers,
  WB
 
 
 -Original Message-
 From: Koehne Kai (Nokia-MP/Berlin)
 Sent: Tuesday, February 07, 2012 5:27 PM
 To: Beck Wolfgang (Nokia-MP/Brisbane); development@qt-project.org
 Subject: RE: QLog ( Work on qDebug and friends)
 
 Hi Wolfgang,
 
 how about making the category a distinct type instead?
 
 struct QMessageCategory {
   explicit QMessageCategory(const char *name); };
 
 class QMessageLogger {
void debug(const char *format, ...);
void debug(QMessageCategory category, const char *format, ...); }
 
 
 ...
 QDebugCategory debugCategory(MyApp); // You'll typically do this in 
 one place ...
 qDebug(debugCategory, hi there);
 
 
 Anyhow, you probably don't want to set the category explicitly for 
 every call in e.g. QtCore, so you can also pass it implicitly via a DEFINE:
 
 class QMessageLogger {
 QMessageLogger(const char *file, int line, const char *function, 
 const char
 *defaultCategory) {
 }
 }
 
 #define Q_DEBUG_CATEGORY  // empty default #define qDebug 
 QMessageLogger(__FILE__, __LINE__, Q_FUNC_INFO, 
 Q_DEBUG_CATEGORY).debug
 
 
 And QtCore is then compiled with
 DEFINES+=Q_DEBUG_CATEGORY=QtCore. IMO both approaches are
 complementary, passing an explicit category would overwrite the 
 Q_DEBUG_CATEGORY define.
 
 Regards
 
 Kai
 
 
 From: development-bounces+kai.koehne=nokia@qt-project.org
 [development-bounces+kai.koehne=nokia@qt-project.org] on behalf of 
 Beck Wolfgang (Nokia-MP/Brisbane)
 Sent: Tuesday, February 07, 2012 7:54 AM
 To: development@qt-project.org
 Subject: [Development] QLog ( Work on qDebug and friends)
 
 I'm working to integrade category log with QMessageLogger  Co and 
 unfortunatelly we can not use
 qDebg(category)  my message because there is already a 
 debug(const char *msg, ...) function combining with the macro #define 
 qDebug QMessageLogger(__FILE__, __LINE__, Q_FUNC_INFO).debug.
 
 So I use a new function and macro:
 QDebug debug();
 QDebug debugCategory(const char *msg);
 QDebug warning();
 QDebug warningCategory(const char *msg);
 QDebug critical();
 QDebug criticalCategory(const char *msg);
 QDebug fatalCategory(const char *msg);
 
 #define qDebugCat(category) QMessageLogger(__FILE__, __LINE__,
 Q_FUNC_INFO).debugCategory(#category)
 #define qWarningCat(category) QMessageLogger(__FILE__, __LINE__,
 Q_FUNC_INFO).warningCategory(#category)
 #define qCriticalCat(category) QMessageLogger(__FILE__, __LINE__,
 Q_FUNC_INFO).criticalCategory(#category)
 

[Development] Proposing Sergey Dubitskiy for Approver Status

2012-02-09 Thread sarah.j.smith
Hi,

I hereby propose Sergey Dubitskiy for the role of approver.

Sergey has previously worked for some months on the Multimedia Framework and 
has now turned his attention to Qt3D.

Br,
Martin.
Sarah Smith
Team Lead Qt3D
Email: sarah.j.sm...@nokia.commailto:sarah.j.sm...@nokia.com
Ph: +61448283476

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


Re: [Development] RFC: The Future of QDoc

2012-02-09 Thread Andre Somers
Op 9-2-2012 19:13, marius.storm-ol...@nokia.com schreef:
 On 09/02/2012 10:33, ext Manuel Nickschas wrote:
 On Thursday 09 February 2012 15:36:09 ext Olivier Goffart wrote:
 I am working on QDoc part-time and we have been discussing some
 changes that we would like to implement to make qdoc more future
 proof. I have created a short list of the things we would like to
 do: http://developer.qt.nokia.com/wiki/Category:Tools::QDoc

 It comes down to: Implement a new C++ parser, make qdoc more
 modular and be able to handle the Qt modules better with qdoc.

 I am wondering if anybody has any ideas about what he/she would
 like qdoc to do, or how qdoc should evolve?
 Have you thought about using doxygen or any similar tool?
 Or at least make QDoc be able to parse doxygen-style comments (which
 also means it should not ignore headers, as documenting public API
 in a header file is much more common at least outside Qt than doing
 that in the implementation file...)
 Qt puts the documentation in the sources since it's closer to the actual
 code, and thus more likely to be maintained at the same time as the code
 is changed. If the documentation is in another location, it's far more
 likely to be forgotten when updates/changes to behavior is done in the
 source code.
That only goes for code that is actually *in* the cpp files. It does not 
hold for enums, flags, inline functions and typedefs, nor does it hold 
for the many cases where the code is actually in a private class and the 
implementation contains little more than a d-doSomething().
I'm not saying that putting all documentation in the header file is 
better, but it would IMHO be better if we were able to put the 
documentation at a place were we do not need to repeat ourselves. As you 
say: that makes it less likely to be properly updated. That results in 
being able to parse both the headers *and* the sources.

For the rest, you make excellent points. If doxygen really is that 
closed, and it is currently not up to par with what Qt needs, then we 
need to stick with qdoc. However, the general idea to use what is out 
there instead of trying to maintain every part of the toolchain 
ourselves does appeal to me in general.

André

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


Re: [Development] RFC: The Future of QDoc

2012-02-09 Thread Andre Somers
Op 10-2-2012 8:07, Andre Somers schreef:
 Op 9-2-2012 19:13, marius.storm-ol...@nokia.com schreef:
 On 09/02/2012 10:33, ext Manuel Nickschas wrote:
 On Thursday 09 February 2012 15:36:09 ext Olivier Goffart wrote:
 I am working on QDoc part-time and we have been discussing some
 changes that we would like to implement to make qdoc more future
 proof. I have created a short list of the things we would like to
 do: http://developer.qt.nokia.com/wiki/Category:Tools::QDoc

 It comes down to: Implement a new C++ parser, make qdoc more
 modular and be able to handle the Qt modules better with qdoc.

 I am wondering if anybody has any ideas about what he/she would
 like qdoc to do, or how qdoc should evolve?
 Have you thought about using doxygen or any similar tool?
 Or at least make QDoc be able to parse doxygen-style comments (which
 also means it should not ignore headers, as documenting public API
 in a header file is much more common at least outside Qt than doing
 that in the implementation file...)
 Qt puts the documentation in the sources since it's closer to the actual
 code, and thus more likely to be maintained at the same time as the code
 is changed. If the documentation is in another location, it's far more
 likely to be forgotten when updates/changes to behavior is done in the
 source code.
 That only goes for code that is actually *in* the cpp files. It does not
 hold for enums, flags, inline functions and typedefs, nor does it hold
 for the many cases where the code is actually in a private class and the
 implementation contains little more than a d-doSomething().
Oh, and that is not mentioning templates either...

André

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