the curse of loose coupling

Steven T. Hatton hattons at
Tue Jul 5 02:40:22 UTC 2005

I've returned to the task of trying to figure out how KDevelop is put 
together.  I believe I understand most of what's going on, in principle.  The 
specific area I am currently trying to understand is the Class Browser.  I 
believe that is the same as the ClassViewPart.  Looking things over has given 
me the understanding that this is implemented as a plugin.

Taking things from the top, I started reading the function main() in 
src/main.cpp.  That led me to PluginController::loadInitialPlugins() which 
took me to 
kdevelop/src/plugincontroler.h and thence to 
kdevelop/src/plugincontroler.cpp and back to

void PluginController::loadInitialPlugins()


void PluginController::loadCorePlugins()
  KTrader::OfferList coreOffers = m_engine.offers(m_profile, 
  loadPlugins( coreOffers );

void PluginController::loadGlobalPlugins( const QStringList & ignorePlugins )
  KTrader::OfferList globalOffers = m_engine.offers(m_profile, 
  loadPlugins( globalOffers, ignorePlugins );
Then back to find ProfileEngine m_engine; in

Well, that sends me to:

Which has some stuff using KTrader, which I recognize from months back as some 
kind of service advertisement mechanism.  But now I need to figure out what 
is being provided by KTrader, and how that is determined.

I was hoping to have more of this figured out before I sent this message, but 
I have to restart my mail client, and if I put it in drafts, I might forget 
to send it.

More information about the KDevelop-devel mailing list