[Qt-creator] Alternative semantic-aware Python editor plugin

2016-01-13 Thread Leandro T. C. Melo
Hi everyone,

a while ago I sent an email about a multi-language engine I was
working on [1]. I've now created an actual Qt Creator plugin for it.
In addition, since Python is typically used in conjunction with C++
projects, I decided to implement Python in my engine.

I wouldn't call it production-ready yet, but I expect the editor to be
doing the basics reasonably well. If you would like to try it out,
just reserve a bit of patience to face eventual bugs.

I even made a video, the coolest one I've ever done. :-)
Unfortunately, I don't have Alessandro's charming voice and accent,
but I hope you like it:

https://youtu.be/XHrnvswtW6o

Any feedback is appreciated. But if it's a bad one, please be kind.
I've grown an emotional attachment to this project. :-)

Regards,
Leandro

[1] https://github.com/ltcmelo/uaiso
___
Qt-creator mailing list
Qt-creator@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qt-creator


Re: [Qt-creator] Use #pragma once as default instead of header guards

2016-01-13 Thread Coda Highland
On Wed, Jan 13, 2016 at 7:52 AM, Joerg Bornemann
 wrote:
> On 13-Jan-16 16:43, Coda Highland wrote:
>
>> #pragma once isn't non-standard. It's defined by the C++11
>> specification and a compliant compiler MUST support it.
>
>
> Can you show me where this is defined?
> AFAICT it is widely supported, but not part of the standard.
>

*opens up working draft* I stand corrected. I had taken a C++ class
that used N3485 as its core textbook, and that class required me to
implement #pragma once. I had misinterpreted this as a requirement of
the specification, but it was actually presented as
implementation-defined and two years later I remembered wrong.

/s/ Adam
___
Qt-creator mailing list
Qt-creator@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qt-creator


[Qt-creator] Creator crash

2016-01-13 Thread Jason H
The new 3.6 build is much better on OSX :-)

But I was opening 5.5.1's qtmultimedia.pro and got the error below.

I had just opened it for the first time, configured it for iOS/5.5.1, clang_64 
(OSX).


Process:   Qt Creator [243]
Path:  /Users/USER/*/Qt Creator.app/Contents/MacOS/Qt Creator
Identifier:org.qt-project.qtcreator
Version:   3.6.0 (3.6.0)
Code Type: X86-64 (Native)
Parent Process:??? [1]
Responsible:   Qt Creator [243]
User ID:   501

Date/Time: 2016-01-13 11:55:18.224 -0500
OS Version:Mac OS X 10.10.5 (14F27)
Report Version:11
Anonymous UUID:2461ADA1-92D0-110D-7E56-F637D2850DFF


Time Awake Since Boot: 41 seconds

Crashed Thread:0  Dispatch queue: com.apple.main-thread

Exception Type:EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:   EXC_I386_GPFLT

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   org.qt-project.QtWidgets0x000108c895a4 
QAbstractButton::isChecked() const + 4
1   libUtils.1.0.0.dylib0x000108a0cf3a 
Utils::DetailsWidget::isChecked() const + 26
2   libProjectExplorer.dylib0x000110bc8442 
ProjectExplorer::Internal::TargetSetupWidget::isKitSelected() const + 18
3   libProjectExplorer.dylib0x000110bc4e09 
ProjectExplorer::TargetSetupPage::isComplete() const + 57
4   org.qt-project.QtWidgets0x000108de1811 
QWizard::qt_metacall(QMetaObject::Call, int, void**) + 673
5   org.qt-project.QtCore   0x0001099da55d 
QMetaObject::activate(QObject*, int, int, void**) + 749
6   libProjectExplorer.dylib0x000110bcae25 
ProjectExplorer::Internal::TargetSetupPageWrapper::updateNoteText() + 1045
7   org.qt-project.QtCore   0x0001099da55d 
QMetaObject::activate(QObject*, int, int, void**) + 749
8   libProjectExplorer.dylib0x000110d46020 
ProjectExplorer::KitManager::kitUpdated(ProjectExplorer::Kit*) + 64
9   libProjectExplorer.dylib0x000110bd0e13 
ProjectExplorer::Kit::makeSticky() + 419
10  libAndroid.dylib0x000112441353 
Android::AndroidConfigurations::updateAutomaticKitList() + 5395
11  org.qt-project.QtCore   0x0001099da55d 
QMetaObject::activate(QObject*, int, int, void**) + 749
12  libQtSupport.dylib  0x000111b52b90 
QtSupport::QtVersionManager::qtVersionsChanged(QList const&, QList 
const&, QList const&) + 64
13  libQtSupport.dylib  0x000111afe61e 
QtSupport::QtVersionManager::removeVersion(QtSupport::BaseQtVersion*) + 206
14  libQmakeProjectManager.dylib0x00011356ae3d 
QmakeProjectManager::Internal::QmakeProjectImporter::cleanupKit(ProjectExplorer::Kit*)
 + 365
15  libProjectExplorer.dylib0x000110bc5ad2 
ProjectExplorer::TargetSetupPage::handleKitRemoval(ProjectExplorer::Kit*) + 34
16  org.qt-project.QtCore   0x0001099da55d 
QMetaObject::activate(QObject*, int, int, void**) + 749
17  libProjectExplorer.dylib0x000110d45fc0 
ProjectExplorer::KitManager::kitRemoved(ProjectExplorer::Kit*) + 64
18  libProjectExplorer.dylib0x000110bed62f 
ProjectExplorer::KitManager::deregisterKit(ProjectExplorer::Kit*) + 831
19  libProjectExplorer.dylib0x000110bbbf85 
ProjectExplorer::ProjectImporter::removeProject(ProjectExplorer::Kit*, QString 
const&) + 421
20  libProjectExplorer.dylib0x000110bc36e9 
ProjectExplorer::TargetSetupPage::reset() + 201
21  libProjectExplorer.dylib0x000110bc606d 
ProjectExplorer::TargetSetupPage::setupProject(ProjectExplorer::Project*) + 381
22  libProjectExplorer.dylib0x000110bcb196 
ProjectExplorer::Internal::TargetSetupPageWrapper::done() + 22
23  org.qt-project.QtCore   0x0001099da55d 
QMetaObject::activate(QObject*, int, int, void**) + 749
24  org.qt-project.QtWidgets0x000108f5edd0 
QAbstractButton::clicked(bool) + 64
25  org.qt-project.QtWidgets0x000108c8a95a 
QAbstractButton::isCheckable() const + 906
26  org.qt-project.QtWidgets0x000108c8a7b4 
QAbstractButton::isCheckable() const + 484
27  org.qt-project.QtWidgets0x000108c8b80e 
QAbstractButton::mouseReleaseEvent(QMouseEvent*) + 270
28  org.qt-project.QtWidgets0x000108be1be1 
QWidget::event(QEvent*) + 1649
29  org.qt-project.QtWidgets0x000108c8b55f 
QAbstractButton::event(QEvent*) + 175
30  org.qt-project.QtWidgets0x000108ba2726 
QApplicationPrivate::notify_helper(QObject*, QEvent*) + 294
31  org.qt-project.QtWidgets0x000108ba5dad 
QApplication::notify(QObject*, QEvent*) + 9037
32  org.qt-project.QtCore   0x0001099a7384 
QCoreApplication::notifyInternal2(QObject*, QEvent*) + 164
33  org.qt-project.QtWidgets0x000108ba3

Re: [Qt-creator] Use #pragma once as default instead of header guards

2016-01-13 Thread Hartmann Thomas
Hi,

the internet claims it is not in the standard but widely supported.

(https://msdn.microsoft.com/en-us/library/4141z1cx.aspx)
(http://stackoverflow.com/questions/23696115/is-pragma-once-part-of-the-c11-standard)

Kind Regards,
Thomas Hartmann


From: Qt-creator  on behalf of Joerg 
Bornemann 
Sent: Wednesday, January 13, 2016 4:52 PM
To: Coda Highland
Cc: qt-creator@qt-project.org
Subject: Re: [Qt-creator] Use #pragma once as default instead of header guards

On 13-Jan-16 16:43, Coda Highland wrote:

> #pragma once isn't non-standard. It's defined by the C++11
> specification and a compliant compiler MUST support it.

Can you show me where this is defined?
AFAICT it is widely supported, but not part of the standard.


Cheers,

Joerg
___
Qt-creator mailing list
Qt-creator@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qt-creator
___
Qt-creator mailing list
Qt-creator@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qt-creator


Re: [Qt-creator] Use #pragma once as default instead of header guards

2016-01-13 Thread Joerg Bornemann

On 13-Jan-16 16:43, Coda Highland wrote:


#pragma once isn't non-standard. It's defined by the C++11
specification and a compliant compiler MUST support it.


Can you show me where this is defined?
AFAICT it is widely supported, but not part of the standard.


Cheers,

Joerg
___
Qt-creator mailing list
Qt-creator@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qt-creator


Re: [Qt-creator] Use #pragma once as default instead of header guards

2016-01-13 Thread Coda Highland
On Wed, Jan 13, 2016 at 4:52 AM, Joerg Bornemann
 wrote:
> On 13-Jan-16 13:38, Ziller Eike wrote:
>
>> Let’s drop the argument about the clang code model from the discussion
>> about whether to use #pragma once or not.
>
>
> Still, as it came up, this argument raises the interesting question what
> will happen to users of the clang code model that cannot switch to
> (non-standard) pragma once for this or that reason?

#pragma once isn't non-standard. It's defined by the C++11
specification and a compliant compiler MUST support it.

The real problem with #pragma once is that most implementations rely
on filesystem identity to support it, which means that if you somehow
get to two different copies of the header file (perhaps you include it
yourself with "" and then something you include includes it with <>,
and the pathing finds separate copies) the pragma won't stop the
collision while classic header guards will.

This isn't a reason not to support the pragma, of course. But that
combined with its lack of standardization in C++03 is a reason not to
default to it in a template.

/s/ Adam
___
Qt-creator mailing list
Qt-creator@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qt-creator


Re: [Qt-creator] Use #pragma once as default instead of header guards

2016-01-13 Thread Milian Wolff
On Mittwoch, 13. Januar 2016 15:22:38 CET Nikolai Kosjar wrote:
> On 01/13/2016 01:52 PM, Joerg Bornemann wrote:
> > Still, as it came up, this argument raises the interesting question what
> > will happen to users of the clang code model that cannot switch to
> > (non-standard) pragma once for this or that reason?
> > 
> > What would it take to fix this problem? Can we work around it? Can we
> > provide an upstream fix?
> 
> A fix from Erik is pending for review at http://reviews.llvm.org/D15994
> , but so far there were no comments.
> 
> > Apart from that, I did not understand the problem at all.
> > The opening #ifndef does match the #endif, doesn't it?
> > If "matches" means "is balanced with" at least.
> 
> As far as I understand:
> 
> The preamble includes everything up to the very first declaration (not
> including it). Now the rule seems to be that a preamble is only
> generated if the preprocessor conditions are balanced *within* the
> preamble. In the given example #ifndef is in the preamble region, but
> not #endif.

If I understand correctly now, this could only happen if you try to parse the 
header as a translation unit, which it isn't. If you have a .cpp including 
that header, the #ifndef + #endif is balanced and no issues arise - or?

In KDevelop we do that - we try to find the translation unit entry point for a 
header and use that instead of the header file directly. This fixed a huge 
amount of bugs for us, also outside of the preamble afaik. Furthermore, this 
is what you usually want anyways as you then automatically update the state of 
the .cpp file as well. Furthermore, you can parse "broken" headers that way 
which depend on the include stack/state that came before it in the .cpp file.

If you don't do that already, I can only recommend you to do something like 
that.

Cheers

-- 
Milian Wolff
m...@milianw.de
http://milianw.de

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


Re: [Qt-creator] Use #pragma once as default instead of header guards

2016-01-13 Thread Nikolai Kosjar

On 01/13/2016 01:52 PM, Joerg Bornemann wrote:

Still, as it came up, this argument raises the interesting question what
will happen to users of the clang code model that cannot switch to
(non-standard) pragma once for this or that reason?

What would it take to fix this problem? Can we work around it? Can we
provide an upstream fix?


A fix from Erik is pending for review at http://reviews.llvm.org/D15994 
, but so far there were no comments.



Apart from that, I did not understand the problem at all.
The opening #ifndef does match the #endif, doesn't it?
If "matches" means "is balanced with" at least.


As far as I understand:

The preamble includes everything up to the very first declaration (not 
including it). Now the rule seems to be that a preamble is only 
generated if the preprocessor conditions are balanced *within* the 
preamble. In the given example #ifndef is in the preamble region, but 
not #endif.


Nikolai
___
Qt-creator mailing list
Qt-creator@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qt-creator


Re: [Qt-creator] Use #pragma once as default instead of header guards

2016-01-13 Thread Giuseppe D'Angelo
On Wed, Jan 13, 2016 at 1:54 PM, Hunger Tobias <
tobias.hun...@theqtcompany.com> wrote:

> I do not think #pragma once is such an item:


You don't need to remember to update it when you rename the file :)


-- 
Giuseppe D'Angelo
___
Qt-creator mailing list
Qt-creator@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qt-creator


Re: [Qt-creator] Use #pragma once as default instead of header guards

2016-01-13 Thread Milian Wolff
On Mittwoch, 13. Januar 2016 10:55:22 CET Bubke Marco wrote:
> Hello
> 
> With the clang code model there is a problem to generate a preamble file
> with header guards. Imaging a preamble file is like a automatically pre
> compiled header for the include block at the top. But there are
> limitations. One is that every ifndef has to match is #endif inside of the
> preamble but this not the case for header guards.
> 
> #ifndef HEADER_GUARD
> #define HEADER_GUARD
> #include  // this would be compiled in the preamble once
> 
> void foo()
> {
>auto bahn = nullptr;
> }
> 
> 
> #endif
> 
> We don't generate a preamble for this case because the opening ifndefs is
> not matching the endif. In that case the clang model will be very slow!
> 
> So I propose we change our wizards to utilize #pragma once and use it for
> every new file. We can change header files where we need code completion on
> demand too.
> 
> https://en.wikipedia.org/wiki/Pragma_once
> 
> Best regards, Marco

Hey Marco,

can you elaborate on this please? I haven't seen such issues in KDevelop so 
far. What do you mean by "matching endif"? The header file seems to have an 
opening #ifndef and a matching #endif.

Cheers

-- 
Milian Wolff
m...@milianw.de
http://milianw.de

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


Re: [Qt-creator] Use #pragma once as default instead of header guards

2016-01-13 Thread Hunger Tobias
On Mi, 2016-01-13 at 12:15 +, Bubke Marco wrote:
> We support it but it will be slow. It is your decision. Anyway how often do
> you need code completion in the header file. 

I agree with Christian that we should not change the coding standard to work
around problems in the code model.

> Maybe we can fix it in the future but it depends on Clang.

Good.

> Anyway I don't want to force you to anything. It was about the future. So
> #pragma once would be allowed for the people who want to use it.

No. A coding standard is supposed to help developers work with code in their
project that they are not familiar with by writing down a basic set of rules
that provide a base-line of consistency. This is only possible when everybody
follows the same set of rules. That is why we need a broad consensus on coding
style rules, with "do whatever you want" being an option only for rules that the
community is split on.

I do not think #pragma once is such an item:

 * According to Marco #pragma once is supported by all compilers we support with
Qt Creator.

 * It is less to type

 * It removes the need to come up with a long name that is unique in the project

 * It prevents unexpected results when that name is not as unique as you thought

 * It prevents unexpected results when you mistype that long name once in the
#define or #ifndef lines.

So I am in favor changing the coding style to ask developers to use #pragma once
in all new headers.

I think it will most likely even make sense to update existing headers in one
patch and be done with this change.

Best Regards,
Tobias

-- 
Tobias Hunger, Senior Software Engineer | The Qt Company
The Qt Company GmbH, Rudower Chaussee 13, D-12489 Berlin
Geschäftsführer: Mika Pälsi, Juha Varelius, Tuula Haataja Sitz der Gesellschaft:
Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 144331 B
___
Qt-creator mailing list
Qt-creator@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qt-creator


Re: [Qt-creator] Use #pragma once as default instead of header guards

2016-01-13 Thread Joerg Bornemann

On 13-Jan-16 13:38, Ziller Eike wrote:


Let’s drop the argument about the clang code model from the discussion about 
whether to use #pragma once or not.


Still, as it came up, this argument raises the interesting question what 
will happen to users of the clang code model that cannot switch to 
(non-standard) pragma once for this or that reason?


What would it take to fix this problem? Can we work around it? Can we 
provide an upstream fix?


Apart from that, I did not understand the problem at all.
The opening #ifndef does match the #endif, doesn't it?
If "matches" means "is balanced with" at least.


#pragma once seems to be supported by all compilers that we care about for 
compiling Qt Creator.
It is less to type, makes renaming classes/files much more pleasant, and is 
less error prone.

+1 from me for at least allowing to use it.


Sure, let's give users the possibility to choose between include guards 
and pragma once.



Cheers,

Joerg
___
Qt-creator mailing list
Qt-creator@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qt-creator


Re: [Qt-creator] Use #pragma once as default instead of header guards

2016-01-13 Thread Ziller Eike

Let’s drop the argument about the clang code model from the discussion about 
whether to use #pragma once or not.

#pragma once seems to be supported by all compilers that we care about for 
compiling Qt Creator.
It is less to type, makes renaming classes/files much more pleasant, and is 
less error prone.

+1 from me for at least allowing to use it.

Br, Eike


> On Jan 13, 2016, at 1:15 PM, Bubke Marco  wrote:
> 
> We support it but it will be slow. It is your decision. Anyway how often do 
> you need code completion in the header file. 
> 
> Maybe we can fix it in the future but it depends on Clang.
> 
> Anyway I don't want to force you to anything. It was about the future. So 
> #pragma once would be allowed for the people who want to use it.
> 
> 
> From: Qt-creator  on behalf of Christian 
> Kandeler 
> Sent: Wednesday, January 13, 2016 12:29 PM
> To: qt-creator@qt-project.org
> Subject: Re: [Qt-creator] Use #pragma once as default instead of header guards
> 
> On 01/13/2016 11:55 AM, Bubke Marco wrote:
>> Hello
>> 
>> With the clang code model there is a problem to generate a preamble file 
>> with header guards. Imaging a preamble file is like a automatically pre 
>> compiled header for the include block at the top. But there are limitations. 
>> One is that every ifndef has to match is #endif inside of the preamble but 
>> this not the case for header guards.
>> 
>> #ifndef HEADER_GUARD
>> #define HEADER_GUARD
>> #include  // this would be compiled in the preamble once
>> 
>> void foo()
>> {
>>auto bahn = nullptr;
>> }
>> 
>> 
>> #endif
>> 
>> We don't generate a preamble for this case because the opening ifndefs is 
>> not matching the endif. In that case the clang model will be very slow!
>> 
>> So I propose we change our wizards to utilize #pragma once and use it for 
>> every new file. We can change header files where we need code completion on 
>> demand too.
> 
> Unless I'm misunderstanding the point, you seem to suggest that people
> change their (non-broken) projects to work around problems in Creator's
> code model. This cannot possibly be the solution, can it? The code model
> needs to support users' code, not the other way around.
> 
> 
> Christian
> ___
> Qt-creator mailing list
> Qt-creator@qt-project.org
> http://lists.qt-project.org/mailman/listinfo/qt-creator
> ___
> Qt-creator mailing list
> Qt-creator@qt-project.org
> http://lists.qt-project.org/mailman/listinfo/qt-creator

-- 
Eike Ziller, Principle Software Engineer - The Qt Company GmbH
 
The Qt Company GmbH, Rudower Chaussee 13, D-12489 Berlin
Geschäftsführer: Mika Pälsi, Juha Varelius, Tuula Haataja
Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 
144331 B

___
Qt-creator mailing list
Qt-creator@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qt-creator


Re: [Qt-creator] Settings for naming conventions

2016-01-13 Thread Nikolai Kosjar

Hi again,

let me enumerate your requirements and propose something addressing those.


Requirements:

 R1. Global and per project settings
 R2. API working on those settings, converting names
 R3. Settings/API used by:
- Wizards
- Refactoring Code
- Text Editor to validate identifiers


Proposal:

Enhance CppTools::CppCodeStyleSettings with the specific C++ settings 
you need. This is fine since naming conventions are usually part of 
coding styles/rules. This does not introduces anything in the text 
editor, but uses the infrastructure that is provided by it and the 
project explorer (CppCodeStyleSettings are managed by 
CppCodeStylePreferences, which is a TextEditor::ICodeStylePreferences). 
Thus, you get R1 for free.


For R2, just introduce and export your new class in cpptools. This class 
uses CppTools::CppCodeStyleSettings.


Regarding R3:
CppCodeStyleSettings is already exported and can be used.

* Wizards - The plugins of the wizard that wants to use the settings/api 
obviously needs to depend on cpptools. Is this a problem for the wizards 
you had in mind?


* Refactoring Code - No problem since this is already in cpptools 
itself. qmljstools depends on cpptools and thus could also access the 
settings.


* Text Editor to validate identifiers - A virtual function in e.g. 
TextEditorWidget could serve this? And the specific editors have access 
to their settings.


Something along the lines could also be done for QML/JS or other 
languages (e.g. in the projects mode you can already switch the language 
for the coding style).


Would this work?


Nikolai
___
Qt-creator mailing list
Qt-creator@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qt-creator


Re: [Qt-creator] Use #pragma once as default instead of header guards

2016-01-13 Thread Bubke Marco
We support it but it will be slow. It is your decision. Anyway how often do you 
need code completion in the header file. 

Maybe we can fix it in the future but it depends on Clang.

Anyway I don't want to force you to anything. It was about the future. So 
#pragma once would be allowed for the people who want to use it.


From: Qt-creator  on behalf of Christian 
Kandeler 
Sent: Wednesday, January 13, 2016 12:29 PM
To: qt-creator@qt-project.org
Subject: Re: [Qt-creator] Use #pragma once as default instead of header guards

On 01/13/2016 11:55 AM, Bubke Marco wrote:
> Hello
>
> With the clang code model there is a problem to generate a preamble file with 
> header guards. Imaging a preamble file is like a automatically pre compiled 
> header for the include block at the top. But there are limitations. One is 
> that every ifndef has to match is #endif inside of the preamble but this not 
> the case for header guards.
>
> #ifndef HEADER_GUARD
> #define HEADER_GUARD
> #include  // this would be compiled in the preamble once
>
> void foo()
> {
> auto bahn = nullptr;
> }
>
>
> #endif
>
> We don't generate a preamble for this case because the opening ifndefs is not 
> matching the endif. In that case the clang model will be very slow!
>
> So I propose we change our wizards to utilize #pragma once and use it for 
> every new file. We can change header files where we need code completion on 
> demand too.

Unless I'm misunderstanding the point, you seem to suggest that people
change their (non-broken) projects to work around problems in Creator's
code model. This cannot possibly be the solution, can it? The code model
needs to support users' code, not the other way around.


Christian
___
Qt-creator mailing list
Qt-creator@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qt-creator
___
Qt-creator mailing list
Qt-creator@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qt-creator


Re: [Qt-creator] Use #pragma once as default instead of header guards

2016-01-13 Thread Cristian Adam
On Wed, Jan 13, 2016 at 12:29 PM, Christian Kandeler <
christian.kande...@theqtcompany.com> wrote:

> On 01/13/2016 11:55 AM, Bubke Marco wrote:
>
>> Hello
>>
>> With the clang code model there is a problem to generate a preamble file
>> with header guards. Imaging a preamble file is like a automatically pre
>> compiled header for the include block at the top. But there are
>> limitations. One is that every ifndef has to match is #endif inside of the
>> preamble but this not the case for header guards.
>>
>> #ifndef HEADER_GUARD
>> #define HEADER_GUARD
>> #include  // this would be compiled in the preamble once
>>
>> void foo()
>> {
>> auto bahn = nullptr;
>> }
>>
>>
>> #endif
>>
>> We don't generate a preamble for this case because the opening ifndefs is
>> not matching the endif. In that case the clang model will be very slow!
>>
>> So I propose we change our wizards to utilize #pragma once and use it for
>> every new file. We can change header files where we need code completion on
>> demand too.
>>
>
> Unless I'm misunderstanding the point, you seem to suggest that people
> change their (non-broken) projects to work around problems in Creator's
> code model. This cannot possibly be the solution, can it? The code model
> needs to support users' code, not the other way around.
>
>
Qt Creator could provide a fix-it for this. ;-)

What does Xcode do in the case of include guard headers? Does it create a
preamble file?

Cheers,
Cristian.
___
Qt-creator mailing list
Qt-creator@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qt-creator


Re: [Qt-creator] Use #pragma once as default instead of header guards

2016-01-13 Thread Christian Kandeler

On 01/13/2016 11:55 AM, Bubke Marco wrote:

Hello

With the clang code model there is a problem to generate a preamble file with 
header guards. Imaging a preamble file is like a automatically pre compiled 
header for the include block at the top. But there are limitations. One is that 
every ifndef has to match is #endif inside of the preamble but this not the 
case for header guards.

#ifndef HEADER_GUARD
#define HEADER_GUARD
#include  // this would be compiled in the preamble once

void foo()
{
auto bahn = nullptr;
}


#endif

We don't generate a preamble for this case because the opening ifndefs is not 
matching the endif. In that case the clang model will be very slow!

So I propose we change our wizards to utilize #pragma once and use it for every 
new file. We can change header files where we need code completion on demand 
too.


Unless I'm misunderstanding the point, you seem to suggest that people 
change their (non-broken) projects to work around problems in Creator's 
code model. This cannot possibly be the solution, can it? The code model 
needs to support users' code, not the other way around.



Christian
___
Qt-creator mailing list
Qt-creator@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qt-creator


[Qt-creator] Use #pragma once as default instead of header guards

2016-01-13 Thread Bubke Marco
Hello

With the clang code model there is a problem to generate a preamble file with 
header guards. Imaging a preamble file is like a automatically pre compiled 
header for the include block at the top. But there are limitations. One is that 
every ifndef has to match is #endif inside of the preamble but this not the 
case for header guards.

#ifndef HEADER_GUARD
#define HEADER_GUARD
#include  // this would be compiled in the preamble once

void foo()
{
   auto bahn = nullptr;
}


#endif

We don't generate a preamble for this case because the opening ifndefs is not 
matching the endif. In that case the clang model will be very slow!

So I propose we change our wizards to utilize #pragma once and use it for every 
new file. We can change header files where we need code completion on demand 
too.

https://en.wikipedia.org/wiki/Pragma_once

Best regards, Marco


___
Qt-creator mailing list
Qt-creator@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qt-creator


Re: [Qt-creator] Dev: Qt Creator 3.7 schedule

2016-01-13 Thread Hunger Tobias
On Fr, 2016-01-08 at 15:23 +0100, Jason H wrote:
> 
> > Sent: Thursday, January 07, 2016 at 7:53 AM
> > From: "Ziller Eike" 
> > To: "qt-creator@qt-project.org" 
> > Subject: [Qt-creator] Dev: Qt Creator 3.7 schedule
> > 
> > I just updated https://wiki.qt.io/Qt_Creator_Releases
> > 
> > The tentative dates for Qt Creator 3.7 are:
> > 
> > * Feature freeze w10 (~Mar 1 2016)
> > * Beta release w12 (~Mar 15 2016)
> > * String freeze w14 (~Mar 29 2016)
> > * Release candidate w16 (~Apr 12 2016)
> > * Final release w18 (~Apr 26 2016)
> 
> Is there a page that mentions what will be in it? (Subject to change until FF)

Hello Jason,

Not really. The contents entirely depends on what will be polished enough in
time for feature freeze.

Any ongoing work is discussed here or visible over at 
codereview.qt-project.org, 
so those are the best places to keep up to date with what is going on.

Best Regards,
Tobias

-- 
Tobias Hunger, Senior Software Engineer | The Qt Company
The Qt Company GmbH, Rudower Chaussee 13, D-12489 Berlin
Geschäftsführer: Mika Pälsi, Juha Varelius, Tuula Haataja Sitz der Gesellschaft:
Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 144331 B
___
Qt-creator mailing list
Qt-creator@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qt-creator