KDE/kdevelop

Adam Treat treat at kde.org
Sun Feb 5 05:39:09 UTC 2006


SVN commit 505852 by treat:

This commit has many moving parts.  I'll try to summarize:

* Add infrastructure for enabling and integrating roberto's new parser/codemodel
  with Qt4's model/view framework.
    -- KDevCodeAggregate: This is a private class that aggregates individual
       codemodel's produced by the parser using Qt4.1's new QAbstractProxyModel
    -- KDevCodeProxy: This is the public interface to the codemodel that other
       parts should use.  The class can be used as a near drop in by other
       language parts.  It inherits QSortFilterProxyModel and gives us the
       ability to have a granular view of the model's divided by file OR an
       aggregated view of all the translation unit's in memory.  It can also
       filter on the currently active file.
    -- KDevCodeDelegate: A class that language parts can subclass and use to
       provide other parts custom drawing instructions for language's codemodel.
* Hook up Roberto's preprocessor and modify the binder and parser to subclass
  KDevCodeModel which in turn subclasses KDevItemModel.  The binder has also
  been changed so that the globalnamespace is the root instead of the
  FileModelItem.
    -- The Binder adds filename and position information to the codemodel now,
       but the information isn't accurate because the preprocessor pass is not
       accounted for in the location info, and the filenames are not recorded
       by the lexer.
    -- Function declarations no longer are added by default to translationunits
       that don't have them.
    -- CodeDisplay: This is a class that manages the model's ItemDataRole for
       the parser's codemodel.  It is very inefficient at the moment since it
       generates things like signatures every time a request comes in.  This
       kind of information and more should be generated at codemodel creation
       time.  Especially since we don't modify any existing model's when
       something changes... we just create a new one and let the proxy figure
       it out.
* Replace the classview part with codeview.  This part is generic for all
  language parts and is ignorant of the underlying language.  It requests a
  proxy code model and delegate from the language part and displays the view.
  Various kinds of modes the proxy supports are available for the user as well
  as a published list of filters by the language part.

I've also changed the API's in lib/interfaces to account for these changes.
The biggest changes are in kdevlanguagesupport and parents.  Hope I haven't
missed any files...

Cheers.

CCMAIL: kdevelop-devel at kdevelop.org

 M  +4 -4      buildtools/importers/generic/kdevgenericimporter.cpp  
 M  +2 -2      languages/cpp/Makefile.am  
 M  +35 -107   languages/cpp/backgroundparser.cpp  
 M  +14 -10    languages/cpp/backgroundparser.h  
 A             languages/cpp/codedelegate.cpp   [License: LGPL (v2+)]
 A             languages/cpp/codedelegate.h   [License: LGPL (v2+)]
 A             languages/cpp/codeproxy.cpp   [License: LGPL (v2+)]
 A             languages/cpp/codeproxy.h   [License: LGPL (v2+)]
 M  +37 -20    languages/cpp/cpplanguagesupport.cpp  
 M  +11 -10    languages/cpp/cpplanguagesupport.h  
 M  +39 -23    languages/cpp/parsejob.cpp  
 M  +10 -8     languages/cpp/parsejob.h  
 M  +12 -14    languages/cpp/parser/Makefile.am  
 M  +65 -33    languages/cpp/parser/binder.cpp  
 M  +12 -2     languages/cpp/parser/binder.h  
 A             languages/cpp/parser/codedisplay.cpp   [License: LGPL (v2+)]
 A             languages/cpp/parser/codedisplay.h   [License: LGPL (v2+)]
 M  +114 -66   languages/cpp/parser/codemodel.cpp  
 M  +55 -29    languages/cpp/parser/codemodel.h  
 M  +1 -0      languages/cpp/parser/codemodel_fwd.h  
 D             languages/cpp/parser/kdevsharedptr.h  
 M  +2 -1      languages/cpp/parser/parser.h  
 D             languages/cpp/parser/rpp/Makefile  
 M  +1 -1      languages/cpp/parser/rpp/pp.h  
 M  +38 -30    languages/fake/fakesupport_part.cpp  
 M  +32 -33    languages/fake/fakesupport_part.h  
 M  +17 -29    lib/interfaces/Makefile.am  
 M  +2 -13     lib/interfaces/kdevapi.cpp  
 M  +0 -8      lib/interfaces/kdevapi.h  
 A             lib/interfaces/kdevcodeaggregate.cpp   [License: LGPL (v2+)]
 A             lib/interfaces/kdevcodeaggregate.h   [License: LGPL (v2+)]
 A             lib/interfaces/kdevcodedelegate.cpp   [License: LGPL (v2+)]
 A             lib/interfaces/kdevcodedelegate.h   [License: LGPL (v2+)]
 M  +82 -148   lib/interfaces/kdevcodemodel.cpp  
 M  +99 -73    lib/interfaces/kdevcodemodel.h  
 A             lib/interfaces/kdevcodeproxy.cpp   [License: LGPL (v2+)]
 A             lib/interfaces/kdevcodeproxy.h   [License: LGPL (v2+)]
 M  +17 -53    lib/interfaces/kdevitemmodel.cpp  
 M  +14 -38    lib/interfaces/kdevitemmodel.h  
 M  +11 -3     lib/interfaces/kdevlanguagesupport.cpp  
 M  +38 -75    lib/interfaces/kdevlanguagesupport.h  
 M  +0 -10     lib/interfaces/kdevplugin.cpp  
 M  +0 -8      lib/interfaces/kdevplugin.h  
 A             lib/interfaces/kdevsharedptr.h   [License: LGPL (v2)]
 M  +2 -13     parts/Makefile.am  
 D             parts/classview (directory)  
 A             parts/codeview (directory)  
 A             parts/codeview/Makefile.am  
 A             parts/codeview/README  
 A             parts/codeview/kdevcodeview.cpp   [License: LGPL (v2+)]
 A             parts/codeview/kdevcodeview.desktop  
 A             parts/codeview/kdevcodeview.h   [License: LGPL (v2+)]
 A             parts/codeview/kdevcodeview.rc  
 A             parts/codeview/kdevcodeview_part.cpp   [License: LGPL (v2+)]
 A             parts/codeview/kdevcodeview_part.h   [License: LGPL (v2+)]
 M  +22 -21    parts/documentview/kdevdocumentview_part.cpp  
 M  +11 -5     pics/mini/Makefile.am  
 AM            pics/mini/class.png  
 AM            pics/mini/enum.png  
 AM            pics/mini/field.png  
 AM            pics/mini/function.png  
 AM            pics/mini/namespace.png  
 AM            pics/mini/private_class.png  
 AM            pics/mini/private_enum.png  
 AM            pics/mini/private_field.png  
 AM            pics/mini/private_function.png  
 AM            pics/mini/private_struct.png  
 AM            pics/mini/private_union.png  
 AM            pics/mini/protected_class.png  
 AM            pics/mini/protected_enum.png  
 AM            pics/mini/protected_field.png  
 AM            pics/mini/protected_function.png  
 AM            pics/mini/protected_struct.png  
 AM            pics/mini/protected_union.png  
 AM            pics/mini/signal.png  
 AM            pics/mini/slot.png  
 AM            pics/mini/struct.png  
 AM            pics/mini/typedef.png  
 AM            pics/mini/union.png  
 M  +2 -1      src/Makefile.am  
 M  +0 -9      src/api.cpp  
 M  +0 -4      src/api.h  
 M  +1 -1      src/documentcontroller.cpp  
 M  +4 -4      src/profileengine/lib/profileengine.cpp  






More information about the KDevelop-devel mailing list