Rewrite ======= Here is the result of a long discussion between the tdefile developers (Carsten) and the konqueror developers (Simon and David), about the plans for more integration between tdefile and konqueror. 16/08/2000. KDirLister -----(1)---------------------> KFileView (3) <----(2)------ [Signaller] --- | | | | | | | | | | KFileIconView KFileListView (4) (5) (1) Gives items found when listing, and the key for each item (KDirLister has all the sorting code) (2) KFileView inherited classes emit requests for listing a new directory (with a bool for treeviews), and emit requests for the mimetype of a given item. If all KFileView inherited classes are QScrollViews, then it could even implement the "ask for mimetype of the visible icons first" algorithm, currently in KonqIconView. (3) KFileView, the base class for any view, knows about KFileItem, has signals for dropped(), popupMenu(list of actions provided by the view), has a QWidget * canvas() method, xOffset() and yOffset() (4) KFileIconView holds a QPtrDict to look up a QIconViewItem quickly from a given KFileItem. This will help for e.g. deleteItems and refreshItems. (5) KFileListView holds a QPtrDict to find the QListViewItem for a KFileItem. It implements different modes if we want the tree view in tdefile ? KFileChooserWidget This (base) class is the container widget that can contain any tdefileview and switch between them. It is embeddable into an application that wants a widget for choosing a file or directory. Features listing, selecting, popupmenu for switching modes, and a virtual createView( viewmode ) method, which only knows about the builtin views, in this class. It knows the current URL, has setURL(), and triggers the listing, connecting KFileView's requests to KDirLister's methods. KFileManagerWidget This class inherits from KFileChooserWidget and adds the file management operations. It uses a KFileOperations class (taken from the current KonqOperations) for all TDEIO operations, and it uses KFileUndo, taken from the KonqUndo stuff. The popupMenu method is reimplemented to add those operations to it. KFileWidget This class is the full widget that can be seen in the dialog. It has the toolbar buttons, the combo, etc. It embeds a KFileChooserWidget or a KFileManagerWidget, the latter being a specialisation of the former. The Konqueror side of things ============================ KonqFileIconView Inherits KFileIconView and adds image preview - unless we want it in KFileIconView, and the line-up-icons algorithm, etc. KonqFileListView Inherits KFileListView to add more stuff if needed. The mc-like text view could be implemented here as well, unless we want it in tdefile. Same for the tree view. KonqFileManagerWidget This class inherits KFileManagerWidget and adds the konqueror stuff, like the enableAction signal. It also reimplements createView to create the konqueror versions of the views. KonqDirPart This class inherits KParts::ReadOnlyPart, and provides a BrowserExtension. It integrates KonqFileManagerWidget as its KParts widget, and provides TDEActions for it. Important : Make sure to take kfind into account. It would be nice if it could use the same views as konqueror, to have access to all the view modes, as well as image preview, etc. Unrelated: To Add ====== Mime Mappings? Filter= ( Mime Type | shell glob list ) Mime Type -> shell glob list