[Qt-creator] [Qt-Creator] Documentation for plugin development

Ziller Eike Eike.Ziller at digia.com
Thu Nov 28 12:24:06 CET 2013


On Nov 28, 2013, at 10:45 AM, Falko Arps <falko.arps at gmx.de> wrote:

> On Tue, 26 Nov 2013 11:10:47 +0100
> Tobias Hunger <tobias.hunger at digia.com> wrote:
>> On 25.11.2013 23:30, Falko Arps wrote:
>>> Overall our task is to create a documentation for the
>>> development of plugins for qtcreator.
>> 
>> Great project you got yourself there:-)
> 
> Thanks^^
> 
>> Is Qt Creator actually used in your university/course? Are there
>> potential users of your work in your university? What kind of plugins
>> are they interested in?
> 
> It seems, that you've misunderstood us. Our task is to improve the
> existing documentation for the development of QtC plugins. But yes
> we have used QtC in several courses (mostly as an IDE, but we also had
> a course that dealt with Qt as a framework).
> 
>>> This includes the implementation
>>> of an example plugin and the communication with the qt-creator
>>> mailinglist.
>> 
>> Welcome to the list then! Don't forget IRC for questions though.
>> 
>>> As a first step we have looked at existing plugins
>>> and have implemented the optionspage, outputpane and navigation
>>> widget into the existing HelloWorld plugin (which already has a
>>> mode & toolsmenu).
>> 
>> Yeah, IMHO we should remove the mode: We do not want to people to
>> stuff everything into modes. We had one party cut and paste the
>> helloworld mode all over their plugin and then call the resulting
>> mess "SDK":-/
> 
> Well, we don't think that's our decision so we just added some more
> code to provide a better example plugin with more commonly used
> widgets (and did some cleanup). But at the very least we are going to
> mention that you disapprove of using "mode" ;-)
> 
>>> So now we would like to ask for any input you might have about our
>>> existing code (please see link below) and about anything we could
>>> add that you find important for such a documentation.
>> 
>> You are aware that we require a contributor license agreement for
>> contributions to Qt Creator?
> 
> No, we weren't aware of that, but that shouldn't be a problem.
> 
>> For this reason we have to follow the process encoded in our gerrit
>> code review tool at https://codereview.qt-project.org/ . Submitting
>> your change(s) there would make reviewing much simpler for us.
> 
> We thought we should finish everything before submitting it to gerrit
> instead of submitting and constantly updating the code.

So best way to get feedback is to submit to codereview (you can start your commit message with “WIP:” (work in progress) to clearly mark it as such). That way we are definitely cleared regarding copyrights etc, and can use a nice interface that we know well, to give feedback :)

Br, Eike

> link:
>>> 
> https://github.com/gs93/qt-creator/tree/plugin_documentation/src/plugins/helloworld
>> 
>> I did star that repo, but did not look further, sorry.
>> 
>> So all I can provide at this time is general comments on things that
>> are worth checking out before pushing things into gerrit/codereview.
>> 
>> * There is a git hook that runs a sanity checker that we use in
>> gerrit on commits available in the qtrepotools repository
>> (ssh://codereview.qt-project.org/qt/qtrepotools or one of its
>> mirrors).
>> 
>> Copy git_post_commit_hook and sanitize-commit from the "git-hooks"
>> into your .git/hooks directory of your QtC checkout. Then rename the
>> git_post_commit_hook to post-commit to activate it.
>> 
>> This script is fast and catches quite a few of the simple mistakes
>> you can make. If you want to contribute your changes eventually you
>> need to get them past that script anyway as gerrit runs it on every
>> commit it sees.
>> 
>> It will not run on existing commits, but you can use sanitize-commit
>> directly with the SHA of the commit you want to check.
> 
> Oh, that's really useful. We don't know if it's a problem from our side
> but we couldn't clone the repository over ssh "Connection timed
> out" (instead we cloned https://qt.gitorious.org/qt/qtrepotools).
> 
>> * Make sure to add a copyright header. Claim credit for the things
>> you did:-) Many people seem to forget that, even though we actually
>> have support for a copyright header template built right into QtC!
>> 
>> * Prefer QtC_ASSERT over Q_ASSERT (or the C equivalent). We do not
>> want Creator to crash for users due to an assert, but we do want the
>> diagnostics:-)
>> 
>> * Please make sure to follow the coding style.
>> http://doc-snapshot.qt-project.org/qtcreator-extending/coding-style.html
>> has the details. Many people seem to not like the "m_" rule for
>> member variables. There usually are lots of misplaced * and & chars
>> in newly submitted code, too.
> 
> Since we couldn't find it in the style guide: Which connect syntax
> should we use? The old Qt 4 syntax or the new Qt 5 syntax (we're
> currently using the new)?
> 
>> * Do not add needless fluff. That includes constructors/destructors
>> that are identical to the defaults, unused macros, variables,
>> functions and methods, code that is commented out/ifdef-ed out, dead
>> code that can never be reached, debug code (at least deactivate
>> that!).
>> 
>> There are also a lot of unnecessary virtual keywords in our code.
>> They make the virtual method highlighting in QtC less useful, so we
>> try to actively get rid of those ever since we added that feature.
>> Please do not add new instances of this.
>> 
>> * We *do want useful comments* that explain what the code is doing!
>> 
>> /* A function takes an int as input and returns an int */
>> int function(int a);
>> 
>> is useless as it does not contain anything that is not obvious from
>> the code already.
>> 
>> /* function will double the input value a and return the result */
>> int function(int a);
>> 
>> is useful.
>> 
>> * Give good names to your classes and methods. "function(int a)" is
>> *not* a good name:-)
>> 
>> * Make sure to keep as many symbols as possible private. I would
>> actually be surprised if you needed to export any symbols from the
>> helloworld plugin.
> 
> Yes, that would be a little bit weird, but we thought that this should
> be included into the example plugin because it's one of the first
> starting points for new developers. And thanks for the general
> information.
> 
> Best regards,
> Falko, Sven, Giuliano
> _______________________________________________
> Qt-creator mailing list
> Qt-creator at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/qt-creator

-- 
Eike Ziller, Senior Software Engineer - Digia, Qt
 
Digia Germany 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




More information about the Qt-creator mailing list