~noskcaj/ubuntu/utopic/libfm/merge

« back to all changes in this revision

Viewing changes to TODO

  • Committer: Bazaar Package Importer
  • Author(s): Andrew Lee (李健秋)
  • Date: 2010-04-29 03:52:06 UTC
  • Revision ID: james.westby@ubuntu.com-20100429035206-qlj1jwsfcgr5mdx3
Tags: upstream-0.1.11
Import upstream version 0.1.11

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
[High Priority]
 
2
 
 
3
* File operations: move, copy, trashing, ...
 
4
     Improve error handling.
 
5
     should provide multiple destination files for recovering trashed files.
 
6
     Check available disk size prior to moving/copying.
 
7
     Do mounting on demand.
 
8
     Calculate speed and show remaining time.
 
9
 
 
10
* Recover previously trashed files.
 
11
 
 
12
* File monitor:
 
13
     Queue files which are already processed in file operations, and send
 
14
     change notifications in timeout handlers to improve performance.
 
15
 
 
16
* Dnd
 
17
     Dnd destination, drop site handling. => Almost done
 
18
     For drag source, use file:///~/.gvfs/ rather than its original
 
19
     URL scheme to be compatible with other programs => need more survey
 
20
         => g_file_new_for_uri, and then g_file_get_path can return gvfs fuse path.
 
21
     Refuse drop if the user doesn't has access to destination dir.
 
22
     Fix incorrect drop target item of icon view mode. => done
 
23
     Fix incorrect design of 'query-info' signal.
 
24
     Implement XDS support => done, but in a quite dirty way.
 
25
 
 
26
* Thumbnails, may be cached with hash table to speed up loading.
 
27
     Need to support external thumbnailers.
 
28
     Thunar can directly load embedded thumbnail in jpeg files, we need that, too.
 
29
     Size of cell renderers and ExoIconView item size must be adjusted for Thumbnail View.
 
30
 
 
31
* Mount volumes and mount points when needed
 
32
     This already works with remote URLs.
 
33
     Need to be done for removable devices. => partially done
 
34
     Now mounting works when the user click on a volume in side pane.
 
35
     Not available yet in computer:///
 
36
 
 
37
* path resolution and canonicalization: convert ../ and ./ gracefully
 
38
     Partially done. fm_path_new_relative and fm_path_new_child handles . and ..
 
39
     Need to show canonicalized paths in location bar.
 
40
 
 
41
* FmFileMenu should provide special menu items for special paths
 
42
     For example:
 
43
     Add a "Recover" popup menu item for files in trash:///
 
44
     Provide totally different menus for items in computer:///
 
45
     Provide "Uninstall" for items in applications:/// (requires integration with package-kit)
 
46
 
 
47
* File searching utility => Subclass FmFolder and provide FmSearchFiles
 
48
     The search result can be given to a GtkTreeModel for display.
 
49
 
 
50
* Add filter to FmFolderModel, so we can only show specific files.
 
51
     The API can be compatible with GtkFileFilter used by GtkFileChooser.
 
52
     The hidden parts can be stored in model->hidden GSequence.
 
53
 
 
54
* Select destination files when copy or move is finished.
 
55
  Can use g_object_set_data to associate a FmFolderView with FmJob.
 
56
 
 
57
* Support symlink creation.
 
58
 
 
59
* Add reserved data members to structs to padding for future expansion.
 
60
 
 
61
* Use a forked version of xdg_mime included in glib/gio to do faster mime-type detection.
 
62
 
 
63
* Bug: clicking on detailed view's column to change sorting didn't update the sort sub menu in main menu.
 
64
 
 
65
* Implement our own empty trash API since delete a file in trash:/// with g_file_delete really sucks.
 
66
 
 
67
* Implement our own trash can since the one provided by gvfs really sucks!
 
68
 
 
69
* Maybe we can add a gtk+ module and register our own implementation of GtkFileChooserWidget.
 
70
 
 
71
* Handle self-mangled symlinks.
 
72
 
 
73
* Make fm_launch_paths more user-friendly so pcmanfm can use it to handle files_to_open.
 
74
 
 
75
* Refactor FmFolderView and make a separate class named FmListView, which
 
76
    encapsulate a generic composite widget combining ExoIconView and GtkTreeView.
 
77
    Then, derive FmFolderView from it.
 
78
 
 
79
 
 
80
[Medium Priority]
 
81
 
 
82
* API renaming:
 
83
     when a returned value was allocated or ref_count is increased,
 
84
     the API should use _dup_ rather than _get_.
 
85
 
 
86
     currently there are inconsistent naming convention among different
 
87
     modules. _get_for_, new_from_, _get_from_, and simply _get_ are used
 
88
     in different places where APIs have similar behaviors.
 
89
 
 
90
* API redesign: maybe abstract classes like FmBasicView or FmBasicWin were needed.
 
91
     in this way, both desktop window and folder views can have the same behavior
 
92
     through the same interface.
 
93
 
 
94
     example:
 
95
     FmBasicView
 
96
     {
 
97
         sort();
 
98
         show_hidden();
 
99
         get_popup_menu_ui();
 
100
         get_selected_files();
 
101
         select_all();
 
102
     }
 
103
 
 
104
* Better clipboard handling => almost done
 
105
     Can we be more compatible with GNOME and XFCE?
 
106
     Already compatible with KDE/Dolphin
 
107
     Partially compatible with gnome and xfce.
 
108
     Clipboard operation done by libfm doesn't seem to be noticed by
 
109
     nautilus. Cause? maybe related to clipboard monitoring?
 
110
 
 
111
* Custom actions for specific file types.
 
112
     integration with archivers is a must have, but how?
 
113
     Maybe we can use the implementation proposed by KDE.
 
114
     (Compress / Extract are now supported in another way.)
 
115
 
 
116
* GtkFileChooser style path button bar. (can take the one in gtk)
 
117
 
 
118
* Bring some fallback icons (application-x-generic and folder) along with
 
119
     the package of libfm to work without icon themes.
 
120
 
 
121
* Warn the user for insufficient disk space before file operations.
 
122
     GFileInfo:G_FILE_ATTRIBUTE_FILESYSTEM_FREE before calculating
 
123
     total size, and store this value in FmFileOpsJob.
 
124
     During calculation, if total size already exceeds free space available,
 
125
     prompt the user, and also provide an option to skip this.
 
126
 
 
127
* Support "Send To..." => Need to see how thunar does this.
 
128
 
 
129
* Auto-mounting => partially done
 
130
 
 
131
* Support mount specific filesystem encoding in the future. Now we only
 
132
     handle UTF-8 for simplicity.
 
133
     Those settings can be stored in FmConfig?
 
134
 
 
135
* Inter-process config change notifications:
 
136
     fm_config_notify should cache all notfications.
 
137
     Then, pack all changed values in a buffer and pass it to a notifier
 
138
     function set with fm_config_set_notify_hook.
 
139
     fm-gtk can use this hook to send the changed values via X11
 
140
     root window properties or dbus.
 
141
 
 
142
* Implement our own gio extension points to override some bad stuff in gio/gvfs.
 
143
     Pass highest priority value to g_io_extension_point_implement() if we're
 
144
     under LXDE might be a good idea.
 
145
 
 
146
* Add "Create New" to popup menu of folder. => partially done, quite dirty.
 
147
     ==> need refactor
 
148
 
 
149
* Show available disk space in status bar => done, but in a slightly dirty way.
 
150
     ==> need refactor
 
151
 
 
152
* While create user-custom desktop files, search for existing ones, and only
 
153
     add new mime-types to existing user-custom desktop files to prevent creating
 
154
     too many duplicated desktop files for the same app.
 
155
 
 
156
 
 
157
[Low Priority]
 
158
 
 
159
* Constraint memory usage of FmIcon cache. Periodically removed rarely
 
160
     used items might be needed.
 
161
 
 
162
* Add FmGesture to support mouse gesture. (low priority)
 
163
     Maybe this should in another lib to be used in other programs, too.
 
164
 
 
165
* Hide computer:///, network:///, and disable trash:/// if gvfs is not
 
166
     available.
 
167
 
 
168
* Implement fm_list_concat_glist to add a GList* to FmList or to convert
 
169
     a GList to FmList by fm_list_new followed by fm_list_concat_glist()
 
170
 
 
171
* Expose a set of dbus interfaces/services so other applications can call
 
172
     libfm to do file operations without being linked with it.
 
173
     Or, this should be implemented in the level of file managers, like in pcmanfm?
 
174
     If this is going to be supported, write a freedesktop.org spec for it.
 
175
 
 
176
* Display tooltips for folder items
 
177
 
 
178
* Documentation, can be done with gtk-doc
 
179
 
 
180
 
 
181
 
 
182
[Very Low Priority]
 
183
 
 
184
* Fork gvfs to make it gnome-free.
 
185
 
 
186
* Add gio extension modules to override the ones provided by gvfs.
 
187
 
 
188
* Provide a wizard to clean temporary files from the filesystem to get more
 
189
     usable disk space. => a disk cleaner is needed.
 
190
     This can be showed to the user when there is not available disk space.
 
191
 
 
192
* Periodically remove thumbnail caches
 
193
     Maybe it's a better idea to handle this in disk cleaner wizard.
 
194
 
 
195
* Enable showing .. in list view mode.
 
196
 
 
197
* Write a geany plugin to utilize the FmFolderView.
 
198
 
 
199
* Add a right pane to list all opened folders instead of using tabs.
 
200
     Quite useful for wide screen and can save taskbar space.
 
201
     Very convinient when you need to work with files in many different folders
 
202
 
 
203
* Support saving currently opened folders as a session, and the saved session
 
204
     file can be loaded later by double click on it.
 
205
     This is especially useful for developers and can be used for project management