[Qt-creator] Qt Creator Community

Kevin Tanguy kofee at kofee.org
Wed Jul 28 05:34:53 CEST 2010


On Tue, 27 Jul 2010 16:51:54 -1000, Victor Sardina
<Victor.Sardina at noaa.gov> wrote:
> Kevin:
> 
> Thank you for the hint above the usage of the plugin: it works as
> intended, but only on the header files, and if you place the cursor on a
> function or object declaration.
> 

Yes, I know it's a huge limitation. It actually works on local
variables in source files but that's pretty much useless.

> As a rule I place the documentation of the code not in the header file,
> but inside the implementation file. I don't know if there exist some
> sort of convention about it based on some better supported rationale. I
> simply place comments in the implementation files, among other reasons,
> to keep the header files as clean and lean as possible, as anyone using
> a class can get an idea of the general layout of the class that way.
> This of course turns into a matter of personal preference.
> 

Lots of people do so and I understand the reason(s) but I don't for
other reasons, so I indeed started with making it working with header
files (and that's where the code of Nicolas from his cpphelper plugin
was really helpful, hence the credit I gave him).
I wanted to implement it for source files as well as you can see in the
options page but the tick box really isn't used.
I liked that idea as well:
http://lists.trolltech.com/pipermail/qt-creator/2010-February/006060.html

> You might call the code "ugly", but it works, does what you intended it
> to do, and can get much better with some work. Nobody writes a stellar
> application as a first crack at it, unless they have done something
> similar in the past, which makes it a de facto non-first-crack anyway...
> 

Indeed, and with the beautiful documentation we'll get, there will be
no more excuses ;)
Didn't check for a while the progress on this side but I will.

> The doxygen plugin actually works as you explained: as long as you place
> the cursor on a function declaration et al. inside the header file. I
> obviously needed some rest and some mojitos to clear my mind...;-)
> 
> I haven't tried the latest changes you made to the code base. Did you
> update the svn repo as yet?
> 

Didn't commit anything yet and didn't make any change to the code
anyway.
But will have to for the 2.1 branch as it doesn't compile against
current git.

> I think that having a menu option to generate all the doxygen tags at
> once turns quite useful. Of course, for that you have to write the
> function to actually parse the whole header/source file first.
> 

The main problem I see would be to detect and leave unchanged or update
existing documentation blocks, not a really simple task.

I guess we can call that a (partially) solved issue.
A Mac binary would be sweet as a direct download if you can send it to
me :)

Cheers,
Kevin

> I haven't actually perused the sources as yet, but I started to get
> curious... :-)
> 
> Greetings,
> Victor
> 
> 
> 
> On 7/27/10 9:57 AM, Kevin Tanguy wrote:
>> On Mon, 26 Jul 2010 20:37:43 -1000, Victor Sardina
>> <Victor.Sardina at noaa.gov> wrote:
>>> Hi Kevin:
>>>
>>> My apologies for not replying a little bit sooner.
>>>
>>> You have a point: I did missed your email inside the specs file: they
>>> call that either "tunel vision", or "need of a break"...:-(
>>>
>>
>> No problem², we should all rest on a beach drinking a mojito instead of
>> working anyway.
>>
>>> To get the plugin to compile and show in QtCreator I did the following:
>>>
>>> 1) Modified the project (.pro) file to reflect the location of both, the
>>> QtCreator sources and the compiled application itself, as you explain at
>>> the Trac website. As the name of the compiled application contains a
>>> space, you have to escape it inside the .pro file, namely "Qt\\
>>> Creator.app/Contents/..." (see the modified project file enclosed below).
>>>
>>> 2) Modified the destination directory (DESTDIR) as well to define where
>>> to place the compiled plugin inside the application bundle
>>>
>>> 3) Replaced all instances of "1.3.84" by "2.0.80" inside the
>>> Doxygen.pluginspec file. Before doing this QtCreator fails to load the
>>> plugin and lists all dependencies on 1.3.84 versions as missing (obvious).
>>>
>>> As this turns rather convoluted to explain, I take the liberty of
>>> encloning the modified project file at the end of this email. Of course,
>>> somebody else's settings should reflect the location of their source
>>> files and the like, but this provides at least a template of the needed
>>> changes to at least reach the "loaded plugin" stage on a Mac. With the
>>> settings below the plugin files get correctly copied into the "Qt
>>> Creator.app" application bundle without a glitch.
>>>
>>
>> Thanks for that, will fix the pro file to handle macx and x11
>> differently instead of just a generic unix handling.
>>
>>> I have a custom installation of Qt-4.7.0 (git branch 4.7) at
>>> /usr/local/Trolltech/Qt-4.7.0, and QtCreator compiled from the git
>>> repository sources (branch 2.0) as of two or three days ago.
>>>
>>
>> Just did the same, Qt git branch 4.7 from today and QtCreator git
>> branch 2.0 from today (2.0.81) and here it works as expected with rev22
>> :-/
>> (One of these times you hope something doesn't work for you as well...
>> awkward feeling)
>> So I don't see the problem as of now, it puzzles me.
>>
>>> I did try to run the plugin on the header files themselves, but to no
>>> avail: it doesn't appear to have any effect whatsoever. I guess I still
>>> missed something, but that probably reaches my incompetence level...
>>>
>>
>> Is the cursor on a class/method/function/var/enum definition when you
>> run the "create documentation" action?
>> I wanted to add a method to document everything in a file but didn't do
>> it yet.
>>
>>> I hope this helps to get the plugin working for as many people as
>>> possible in the future. I know it has a tag of "low priority", but I
>>> assure you that having to generate all the doxygen tags et al by hand
>>> turns into a royal pain in your backside after a while. I also believe
>>> that you have done a pretty good job already. I think you should give a
>>> little more credit yourself: I surely appreciate it.
>>>
>>
>> No, really, the code is ugly, but thanks anyway.
>>
>>> Your plugin, together with the astyle plugin turn into two of the things
>>> I would really like to get working across the board, meaning on Mac,
>>> Linux, and Mac (I end up having to work with all of them NIXes sooner or
>>> later). Now that I have a working Mac again (an upgrade to Snow Leopard
>>> a while back left in pretty bad shape (no backup of the backup)), I
>>> would like to try to get these tools working.
>>>
>>
>> I'll try to find and idea tonight about that and/or send you a modified
>> source file to help debugging that.
>>
>> Sorry not to be of much help yet.
>>
>> Kevin
>>
>>> Thank you for your reply,
>>> Victor
>>>
>>> #==Beginning of project file modified for Mac=========================
>>> TEMPLATE = lib
>>> TARGET = Doxygen
>>> DEFINES += DOXYGEN_LIBRARY
>>> PROVIDER = Kofee
>>>
>>> # Define QTC_SOURCE_DIR to the location of Qt Creator sources (i.e:
>>> ~/dev/qtcreator/qt-creator-src/)
>>> unix:QTC_SOURCE_DIR = /Users/vs/Downloads/Qt/qt-creator/
>>> win32:QTC_SOURCE_DIR = C:/Qt/qt-creator-20100421/
>>> IDE_SOURCE_TREE = $$QTC_SOURCE_DIR
>>>
>>> # Define QTC_BUILD_DIR to the location of Qt Creator build dir for the
>>> plugin (i.e ~/dev/qtcreator-doxygen/)
>>> unix:QTC_BUILD_DIR = /Users/vs/Downloads/Qt/qtcreatorbuild/
>>> win32:QTC_BUILD_DIR = C:/Qt/qtcreator-doxygen/
>>> IDE_BUILD_TREE = $$QTC_BUILD_DIR
>>>
>>> # Define DESTDIR to the local location of the installation of Qt creator
>>> (if local user)
>>> # or the system location if building as root
>>> DESTDIR = /Users/vs/Downloads/Qt/qtcreatorbuild/bin/Qt\\
>>> Creator.app/Contents/PlugIns/$$(PROVIDER)
>>> unix:LIBS += -L/Users/vs/Downloads/Qt/qtcreatorbuild/src/libs \
>>>     -L/Users/vs/Downloads/Qt/qtcreatorbuild/bin/Qt\\
>>> Creator.app/Contents/PlugIns/Nokia/ \
>>>     -L/usr/local/Trolltech/Qt-4.7.0/lib
>>> win32:LIBS += -LC:/Qt/qt-20100421/lib/ \
>>>     -LC:/Qt/qtcreator-build-20100421/lib/qtcreator/plugins/Nokia/ \
>>>     -LC:/Qt/qtcreator-build-20100421/lib/qtcreator/
>>> include( $$IDE_SOURCE_TREE/src/qtcreatorplugin.pri )
>>> include( $$IDE_SOURCE_TREE/src/plugins/coreplugin/coreplugin.pri )
>>> include( $$IDE_SOURCE_TREE/src/plugins/texteditor/texteditor.pri )
>>> include( $$IDE_SOURCE_TREE/src/plugins/cppeditor/cppeditor.pri )
>>> HEADERS += doxygenplugin.h \
>>>     doxygen_global.h \
>>>     doxygenconstants.h \
>>>     doxygen.h \
>>>     doxygensettings.h \
>>>     doxygensettingswidget.h \
>>>     doxygensettingsstruct.h
>>> SOURCES += doxygenplugin.cpp \
>>>     doxygen.cpp \
>>>     doxygensettings.cpp \
>>>     doxygensettingswidget.cpp \
>>>     doxygensettingsstruct.cpp
>>> FORMS += doxygensettingswidget.ui
>>> OTHER_FILES += Doxygen.pluginspec
>>> INCLUDEPATH += $$QTC_SOURCE_DIR/src \
>>>     $$QTC_SOURCE_DIR/src/plugins \
>>>     $$QTC_SOURCE_DIR/src/libs \
>>>     $$QTC_SOURCE_DIR/src/libs/cplusplus \
>>>     $$QTC_SOURCE_DIR/src/libs/extensionsystem \
>>>     $$QTC_SOURCE_DIR/src/libs/utils \
>>>     $$QTC_SOURCE_DIR/src/shared \
>>>     $$QTC_SOURCE_DIR/src/shared/cplusplus
>>>
>>> message(QTC_SOURCE_DIR = $$QTC_SOURCE_DIR)
>>> message(IDE_SOURCE_TREE = $$IDE_SOURCE_TREE)
>>> message(QTC_BUILD_DIR = $$QTC_BUILD_DIR)
>>> message(IDE_BUILD_TREE = $$IDE_BUILD_TREE)
>>> message(DESTDIR = $$DESTDIR)
>>> message(Good luck with make... :-D)
>>> #==End of project file============================================
>>>
>>> On 7/26/10 6:05 PM, Kevin Tanguy wrote:
>>>> On Mon, 26 Jul 2010 17:18:53 -1000, Victor Sardina
>>>> <Victor.Sardina at noaa.gov> wrote:
>>>>> Nicolas:
>>>>>
>>>>> I have some feedback on the Doxygen plugin, but couldn't find any way to
>>>>> contact Kofee. The project website at Trac doesn't list any obvious way
>>>>> to send him feed back. I send this using your email as starter simply
>>>>> because you mention Kofee in it, and also because Kofee mentions you as
>>>>> the "instigator" in the projects website :-).
>>>>>
>>>>
>>>> Hi Victor,
>>>>
>>>> Now you know how to contact me by email (or fill a bug).
>>>>
>>>>> I tried the Doxygen plugin on a Mac, after going around a couple of
>>>>> wrinkles with some setttings. For example, the plugin specs file lists
>>>>> dependencies on the 1.3 versions of several modules, when it should list
>>>>> "2.0.80". QtCreator finally recognized the plugin and gave it the green
>>>>> light (literally), and I can even use the Doxygen tab in the
>>>>> Preferences. I can even launch Doxygen from the added menu option after
>>>>> setting the path to the doxygen executable.
>>>>>
>>>>
>>>> You are the first person I'm aware of who compiled it for Mac, I'd like
>>>> to know what you've done to make it happen as I can't test it myself and
>>>> have very few time to bother people with that (btw my email is in the
>>>> pluginspec file). A diff or a simple listing of the modifications you've
>>>> done would be great.
>>>>
>>>>> Unfortunately, I cannot generated the Doxygen backbone tags using the
>>>>> plugin, and maybe making the plugin actually work requires some extra
>>>>> modifications other than replacement of 1.3 by 2.0.80 in the specs file?
>>>>>
>>>>
>>>> Are you trying to generate the tags in a header or a source file?
>>>> (hint: it's not supposed to work in a source file at the moment)
>>>> I'll try tomorrow to compile it with a recent Qt and creator from git
>>>> and see how it goes here. I should find where the problem lies quickly.
>>>>
>>>>> In other words, all works but the main thing that the plugin should do.
>>>>>
>>>>
>>>> Unfortunately it's quite a quick hack that I've done in a hurry and
>>>> shared in the hope it would be useful to others and could be enhanced
>>>> this way but real life really doesn't make it easy to maintain it as
>>>> qtcreator development itself is on steroids.
>>>>
>>>> Cheers
>>>>
>>>> Kevin
>>>>
>>>>> Victor
>>>>>
>>>>> On 3/7/10 7:59 AM, Nicolas Arnaud-Cormos wrote:
>>>>>> On Friday 05 March 2010 12:10:41 Peter Kümmel wrote:
>>>>>>> As Qt Creater beeing 'only' a plugin-collection,
>>>>>>> is there a overview where all Nokia and 3rd-party
>>>>>>> plugins are listet and described?
>>>>>>
>>>>>> Not that I know. I know only 3 3rd party plugins:
>>>>>> I know at least 3 3rd party plugins:
>>>>>>  * CppSupport, plugin for C++ Class View, from visual fc:
>>>>>> http://code.google.com/p/visualfc/downloads/list
>>>>>>  * Doxygen, add doxygen tags, from kofee:
>>>>>> http://dev.kofee.org/QtCreator-Doxygen/
>>>>>>  * CppHelper (add create definition action) and Macro (create/save/execute
>>>>>> macros), from me:
>>>>>> http://gitorious.org/creator-plugins
>>>>>>
>>>>>> That would be nice to have them somewhere.
>>>>>>
>>>>>>
>>>>>>> Also, is there a wiki which could be used as entry point
>>>>>>> for starting developing plugins, with documentations,
>>>>>>> example plugins, links to other howtos, and so on?
>>>>>>
>>>>>> Not that I know, you already have some documentation in the code you can
>>>>>> generate (doxygen, maybe qdoc3).
>>>>>> There's an excellent document written by Prashanth:
>>>>>> http://prashanthudupa.livejournal.com/44069.html
>>>>>> It gives you all you the information you need to start your own plugin. Also I
>>>>>> had some troubles to create a plugin that build outside the qt creator src
>>>>>> directory, you can get mine and copy whatever you need.
>>>>>>
>>>>>>
>>>>>>> When the intension of Qt Creator is to also create a
>>>>>>> community around the creater like there is around Eclipse
>>>>>>> then Nokia should spend some resources to evangelize
>>>>>>> and support such a community.
>>>>>>
>>>>>> I would love too, but don't forget that Qt Creator is young (a little more
>>>>>> than one year now). For the moment, they are trying to make it awesome for Qt
>>>>>> development, and working hard on the Qt Quick integration and also
>>>>>> maemo/symbian/whatever new plateform needed by Nokia.
>>>>>> At least that's what I'm understanding from an outside pov.
>>>>>>
>>>>>> But maybe it's at the community to create something, and not the other way
>>>>>> around. I don't usually go visit Qt Centre, but they already have a wiki and a
>>>>>> sub-forum for Qt tools (including Qt Creator).
>>>>>> At Qtfr.org, we already have a sub-forum specific to Qt Creator.
>>>>>>
>>>>>> As a plugin developer, I would also love to see a "plugin builder" tools for
>>>>>> Qt SDK. It's hard to create binaries for our plugins for a specific SDK (I
>>>>>> don't have mac, I don't use any SDK, and on Windows you need VS2008 I think).
>>>>>>
>>>>>> Hope they'll have some time after Qt 4.7 to work on the community building ;)
>>>>>>
>>>>>> Cheers,
>>>>>> Nicolas
>>>>>>
>>>>>>> (No, the gitorious wiki is not enough.)
>>>>>>>
>>>>>>> Peter
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Qt-creator mailing list
>>>>>>> Qt-creator at trolltech.com
>>>>>>> http://lists.trolltech.com/mailman/listinfo/qt-creator
>>>>>>>
>>>>>>
>>>>
>>>> _______________________________________________
>>>> Qt-creator mailing list
>>>> Qt-creator at trolltech.com
>>>> http://lists.trolltech.com/mailman/listinfo/qt-creator
>>
>> _______________________________________________
>> Qt-creator mailing list
>> Qt-creator at trolltech.com
>> http://lists.trolltech.com/mailman/listinfo/qt-creator




More information about the Qt-creator-old mailing list