Konqueror Design Document
 
Author:
  David Faure, faure@kde.org
 
Last modified: 8 May 1999  

Overall design of konqueror :
=============================

The design of konqueror is based on the KParts part/mainwindow mechanism
(basically, konqueror can embed several views (parts) :
icon views, tree views, html views...)

The main(), including all the startup mechanism is in konq_main.*

The main view contains several "child views", in order to view several URLs 
at once, possibly using several modes. Each child view is a KonqChildView
 - this class implements the view-mode switching, adds the
frame header on top of the view (KonqFrameHeader), ...
The KonqChildView contains the child part, which can be :
- an icon view (KonqIconView)
- a list view / tree view (KonqListView/KonqTreeView)
- an HTML view (KHTMLPart)
- any ReadOnlyPart with or without Browserextension

Additionnally, the icon and tree view define items (one per file) :
KonqIconViewItem and KonqTreeViewItem, which both use KonqFileItem
(defines common functionality such as url, mimetype, statusbar info, dnd...).

Where to find those classes
===========================

konq_run.* : Re-implementation of KRun (see libkio) for konqueror. Treats
           HTML and directory in a special way compared to KRun and is also
	   responsible for finding appropriate view<->mimetype bindings with
	   the help of KonqPlugins.
konq_childview.* : KonqChildView, class used by KonqMainView to handle child views
konq_frame.* : KonqFrame and KonqFrameHeader (handles view-statusbar).
iconview/* : KonqIconView and KonqKfmIconViewItem, for icon views
konq_main.* : The main()
konq_mainview.* : KonqMainView, main view, one per main window
konq_plugins.* : KonqPlugins, used to parse .desktop files looking for plugins,
                 creating the approriate entries in the IMR and forcing the
		 activation of the plugin servers if they're requested.
konq_propsmainview.* : -- main view properties stuff, not sure it will remain as is --
konq_propsview.* : -- view properties stuff, not sure it will remain as is --
listview/* : KonqTreeView, KonqListView...

Libs used by konqueror
======================

kdecore, kdeui, kfile, khtml, kparts - usual stuff :)
libkio - I/O stuff, mimetypes, services, registry
libkonq - bookmarks, properties dialog, templates ("new") menu, icon view widget

