1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
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 KIO 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
KActions 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
|