CND67QtSupport
Qt Support
Team
Dev: Alexey Vladykin (AV; username: alexey_vladykin)
QA: Valeriy Soldatov (VS; username: soldatov)
Charter
Provide support for qmake-based projects to simplify development of new and existing Qt applications with NetBeans. The current manual process is described here: http://www.tsseshop.com/developer/Tutorials/HowToQtOnNetBeans/
Goals
- It should be possible to create, build, run and debug managed Qt project (application or library) with NetBeans. (Will be tested on small example project.)
- It should be possible to create Qt project from existing sources, build, run and debug it. (Existing project for this test case is TBD.)
- All standard Code Assistance features should be available while editing Qt code.
- External tools (GUI Designer, qmake, uic, moc) should be launched by NetBeans automatically when necessary.
- No configuration should be required except for specifying of Qt installation directory (in case it's non-standard).
- Supported OS: Linux, Solaris (? - which version of Qt)
- No P1 or P2 issues, P3 issues < 10.
Target:
- Supported OS: Windows
- Qt resources support (rcc, *.qrc files).
- Qt translations support (lupdate, lrelease, *.ts files).
Nice to have:
- Human-readable representation for Qt types in debugger. See http://websvn.kde.org/trunk/KDE/kdesdk/scripts/kde-devel-gdb?view=markup
- Converter from standalone qmake-based project to NetBeans-managed Qt project.
User View
User
Anyone developing new or existing Qt applications.
Issue the feature solves
Large amount of manual actions required to configure Qt application in NetBeans.
Feature overview
Create Qt project, add files, edit files (with all code assistance features), build, run, debug. The workflow is going to be very similar to standard C/C++ projects, but with support for Qt-specific file types and tools.
- Forms (*.ui files) can be created and added to project within IDE, for editing IDE launches external tool - Qt Designer.
- Simple form templates are required, and corresponding *.cpp/*.h may need to be generated
- Resources (*.qrc files) can be created and added to project within IDE, for editing IDE launches external tool - Qt Designer.
- Translations (*.ts files) can be created and added to project within IDE, for editing IDE launches external tool - Qt Linguist
- Sources are created, added to project and edited within IDE
- Qt projects (*.pro files) are created and managed by IDE automatically, there should be no need for user to edit them (but some customization is possible in project properties)
- qmake and other tools are run by IDE automatically, there should be no need for user to run them manually
See CND67UIChanges.
Limitations
- Full Qt support as described above is planned for managed projects. For projects created from existing sources some manual configuration may be required (e.g. the *.pro files need to be updated manually by user).
- Per-file code assistance configuration (macros, include directories) is impossible for Qt projects (qmake's limitation). Code assistance should be configured for the whole project.
- Qt4 has priority. Qt3 support may be limited.
Metrics
See Goals.
Test Plan
Link should be provided by QA.
Schedule
| M1 | Nov 28 | Complete planning |
|---|---|---|
| M2 | Dec 31 | Defining features implemented |
| M3 | Jan 31 | Bugs fixed and target features implemented, if possible |
Risks and dependencies
- Parts of CND that will be changed: project system (Qt project configuration and Makefile generation are different), toolchain support (need to include Qt tools).
- It's not clear how stable are Qt tool features across versions, i.e. if we'll need to handle different Qt versions differently.
Status and test results
Flash demo: qt_support_CND67QtSupport.htm
Design specifications
Unit tests
IssueZilla
Feature IZ: http://www.netbeans.org/issues/show_bug.cgi?id=135998
Status Whiteboard keyword: qtsupport

