Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 317038

Summary: Add EDC formatters for QT types
Product: [Tools] CDT Reporter: David Dubrow <david.dubrow>
Component: cdt-debug-edcAssignee: David Dubrow <david.dubrow>
Status: RESOLVED WONTFIX QA Contact: Ken Ryall <ken.ryall>
Severity: normal    
Priority: P3 CC: john.cortell, ken.ryall, marc.khouzam, warren.paul
Version: 7.0Flags: david.dubrow: iplog-
ken.ryall: review+
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
bugfixes in formatter framework + some qt formatters
david.dubrow: iplog-, david.dubrow: review?
Add QVariant
david.dubrow: iplog-
QVariant and QLinkedList formatters
david.dubrow: iplog-, david.dubrow: review?
Add QMap (and QMultiMap) david.dubrow: iplog-, david.dubrow: review?

Description David Dubrow CLA 2010-06-16 08:54:30 EDT
Using EDC variable formatter framework, create formatters for most common QT types. Warren Paul searched the demo's and examples in Qt for type usage some time back. Here are the results:

QString - 2510
QObject - 799
QModelIndex - 740
QVariant - 471
QList - 463
QFile - 425
QByteArray - 293
QStringList - 266
QPixmap - 257
QImage - 253
QDir - 143
QMap - 89
QSet - 87
QDateTime - 82
QFileInfo - 71
QVector - 48
QLocale - 36
QHash - 21
QTextCodec - 18
QMultiMap - 12
Comment 1 David Dubrow CLA 2010-06-16 08:58:35 EDT
Created attachment 172035 [details]
bugfixes in formatter framework + some qt formatters

Formatters for QString (provisional impl until a bug in Dwarf reader is addressed), QByteArray, QVector, QList (incl. QStringList, etc.), QSet, QHash and QHashNode.
Comment 2 CDT Genie CLA 2010-06-16 09:23:30 EDT
*** cdt cvs genie on behalf of ddubrow ***
Bug 317038 -  Add EDC formatters for QT types - part 1

[+] QListFormatter.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc/src/org/eclipse/cdt/debug/edc/internal/formatter/qt/QListFormatter.java?root=Tools_Project&revision=1.1&view=markup
[+] QByteArrayFormatter.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc/src/org/eclipse/cdt/debug/edc/internal/formatter/qt/QByteArrayFormatter.java?root=Tools_Project&revision=1.1&view=markup
[+] QStringFormatter.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc/src/org/eclipse/cdt/debug/edc/internal/formatter/qt/QStringFormatter.java?root=Tools_Project&revision=1.1&view=markup
[+] QVectorFormatter.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc/src/org/eclipse/cdt/debug/edc/internal/formatter/qt/QVectorFormatter.java?root=Tools_Project&revision=1.1&view=markup
[+] QHashNodeFormatter.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc/src/org/eclipse/cdt/debug/edc/internal/formatter/qt/QHashNodeFormatter.java?root=Tools_Project&revision=1.1&view=markup
[+] QSetQHashFormatter.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc/src/org/eclipse/cdt/debug/edc/internal/formatter/qt/QSetQHashFormatter.java?root=Tools_Project&revision=1.1&view=markup

[*] plugin.xml 1.7 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc/plugin.xml?root=Tools_Project&r1=1.6&r2=1.7

[*] Expressions.java 1.18 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc/src/org/eclipse/cdt/debug/edc/internal/services/dsf/Expressions.java?root=Tools_Project&r1=1.17&r2=1.18

[*] AbstractCompositeFormatProvider.java 1.7 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc/src/org/eclipse/cdt/debug/edc/formatter/AbstractCompositeFormatProvider.java?root=Tools_Project&r1=1.6&r2=1.7
[*] FormatUtils.java 1.12 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc/src/org/eclipse/cdt/debug/edc/formatter/FormatUtils.java?root=Tools_Project&r1=1.11&r2=1.12
[*] DefaultArrayFormatter.java 1.6 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc/src/org/eclipse/cdt/debug/edc/formatter/DefaultArrayFormatter.java?root=Tools_Project&r1=1.5&r2=1.6
[*] DefaultCompositeFormatter.java 1.8 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc/src/org/eclipse/cdt/debug/edc/formatter/DefaultCompositeFormatter.java?root=Tools_Project&r1=1.7&r2=1.8
[*] AbstractVariableConverter.java 1.7 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc/src/org/eclipse/cdt/debug/edc/formatter/AbstractVariableConverter.java?root=Tools_Project&r1=1.6&r2=1.7

[*] TypeUtils.java 1.4 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc/src/org/eclipse/cdt/debug/edc/symbols/TypeUtils.java?root=Tools_Project&r1=1.3&r2=1.4

[*] CustomFormatDetailPane.java 1.9 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc.ui/src/org/eclipse/cdt/debug/edc/internal/ui/CustomFormatDetailPane.java?root=Tools_Project&r1=1.8&r2=1.9
[*] AbstractEDCDetailPane.java 1.4 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc.ui/src/org/eclipse/cdt/debug/edc/internal/ui/AbstractEDCDetailPane.java?root=Tools_Project&r1=1.3&r2=1.4

[*] plugin.xml 1.6.2.1 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc/plugin.xml?root=Tools_Project&r1=1.6&r2=1.6.2.1

[*] AbstractCompositeFormatProvider.java 1.6.2.1 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc/src/org/eclipse/cdt/debug/edc/formatter/AbstractCompositeFormatProvider.java?root=Tools_Project&r1=1.6&r2=1.6.2.1
[*] FormatUtils.java 1.11.2.1 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc/src/org/eclipse/cdt/debug/edc/formatter/FormatUtils.java?root=Tools_Project&r1=1.11&r2=1.11.2.1
[*] DefaultArrayFormatter.java 1.5.2.1 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc/src/org/eclipse/cdt/debug/edc/formatter/DefaultArrayFormatter.java?root=Tools_Project&r1=1.5&r2=1.5.2.1
[*] DefaultCompositeFormatter.java 1.7.2.1 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc/src/org/eclipse/cdt/debug/edc/formatter/DefaultCompositeFormatter.java?root=Tools_Project&r1=1.7&r2=1.7.2.1
[*] AbstractVariableConverter.java 1.6.2.1 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc/src/org/eclipse/cdt/debug/edc/formatter/AbstractVariableConverter.java?root=Tools_Project&r1=1.6&r2=1.6.2.1

[*] Expressions.java 1.17.2.1 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc/src/org/eclipse/cdt/debug/edc/internal/services/dsf/Expressions.java?root=Tools_Project&r1=1.17&r2=1.17.2.1

[*] TypeUtils.java 1.3.2.1 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc/src/org/eclipse/cdt/debug/edc/symbols/TypeUtils.java?root=Tools_Project&r1=1.3&r2=1.3.2.1

[*] CustomFormatDetailPane.java 1.8.2.1 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc.ui/src/org/eclipse/cdt/debug/edc/internal/ui/CustomFormatDetailPane.java?root=Tools_Project&r1=1.8&r2=1.8.2.1
[*] AbstractEDCDetailPane.java 1.3.2.1 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/edc/org.eclipse.cdt.debug.edc.ui/src/org/eclipse/cdt/debug/edc/internal/ui/AbstractEDCDetailPane.java?root=Tools_Project&r1=1.3&r2=1.3.2.1
Comment 4 David Dubrow CLA 2010-06-16 16:40:30 EDT
Created attachment 172072 [details]
Add QVariant
Comment 5 Ken Ryall CLA 2010-06-16 16:47:14 EDT
Looks good to me.
Comment 6 Marc Khouzam CLA 2010-06-17 08:35:44 EDT
Hi David, just a note that this commit broke the API tooling (missing @since tags).  I just sent a not to cdt-dev to remind people what to do.

Thanks
Comment 7 David Dubrow CLA 2010-06-17 09:42:00 EDT
(In reply to comment #6)
> Hi David, just a note that this commit broke the API tooling (missing @since
> tags).  I just sent a not to cdt-dev to remind people what to do.
> 
> Thanks

Hi Marc, 

I guess I thought that since EDC is still in a lot of flux - CDT 7.0 being an arbitrary point for the EDC code, the EDC plug-ins would be exempt from strict API checking for now. I'm more than glad to tag the changes with @since tags and update the plug-in version, but would like to hear from Ken and Warren before committing these changes.

I'm not sure how we could exempt the EDC plugins from the API checking, though. :P
Comment 8 John Cortell CLA 2010-06-17 09:50:49 EDT
(In reply to comment #7)
> Hi Marc, 
> 
> I guess I thought that since EDC is still in a lot of flux - CDT 7.0 being an
> arbitrary point for the EDC code, the EDC plug-ins would be exempt from strict
> API checking for now. I'm more than glad to tag the changes with @since tags
> and update the plug-in version, but would like to hear from Ken and Warren
> before committing these changes.
> 
> I'm not sure how we could exempt the EDC plugins from the API checking, though.
> :P

The API tooling is very useful, even for something that is in flux. Among other things, it's critical for identifying what is being exposed as API. Prior to it, such identification required proactive, manual inspection. Now, you can code away and not worry about accidentally introducing API. And that's just one of many benefits API tooling brings to the table. 

The EDC plugins are configured for API tooling and I'd give a big -1 to undoing that.
Comment 9 David Dubrow CLA 2010-06-17 10:18:45 EDT
(In reply to comment #8)
> (In reply to comment #7)
> > Hi Marc, 
> > 
> > I guess I thought that since EDC is still in a lot of flux - CDT 7.0 being an
> > arbitrary point for the EDC code, the EDC plug-ins would be exempt from strict
> > API checking for now. I'm more than glad to tag the changes with @since tags
> > and update the plug-in version, but would like to hear from Ken and Warren
> > before committing these changes.
> > 
> > I'm not sure how we could exempt the EDC plugins from the API checking, though.
> > :P
> 
> The API tooling is very useful, even for something that is in flux. Among other
> things, it's critical for identifying what is being exposed as API. Prior to
> it, such identification required proactive, manual inspection. Now, you can
> code away and not worry about accidentally introducing API. And that's just one
> of many benefits API tooling brings to the table. 
> 
> The EDC plugins are configured for API tooling and I'd give a big -1 to undoing
> that.

Btw, my recent changes that caused API tooling errors were additions to API rather than API breaks. Just wanted to make that distinction.
Comment 10 David Dubrow CLA 2010-06-18 12:10:12 EDT
Created attachment 172230 [details]
QVariant and QLinkedList formatters

Also, backed out API changes from 7.0 branch and updated bundle version to 2.0 in HEAD per CDT-dev thread.
Comment 11 David Dubrow CLA 2010-06-22 11:42:27 EDT
Created attachment 172435 [details]
Add QMap (and QMultiMap)
Comment 12 Jonah Graham CLA 2019-12-30 17:05:47 EST
This bug was assigned and targeted at a now released milestone. As that milestone has now passed, the milestone field has been cleared. If this bug has been fixed, please set the milestone to the version it was fixed in and marked the bug as resolved.
Comment 13 Jonah Graham CLA 2019-12-30 18:39:55 EST
(this is part of a batch change)

The Eclipse CDT EDC (https://wiki.eclipse.org/CDT/cdt-debug-edc) is now obsolete and has not had any active development since 2011. Therefore the still open bugs are being marked as wontfix.

The git repo for the project still exists for posterity at https://git.eclipse.org/c/cdt/org.eclipse.cdt.edc.git/