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.
8
Calculate speed and show remaining time.
10
* Recover previously trashed files.
13
Queue files which are already processed in file operations, and send
14
change notifications in timeout handlers to improve performance.
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.
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.
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:///
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.
41
* FmFileMenu should provide special menu items for special paths
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)
47
* File searching utility => Subclass FmFolder and provide FmSearchFiles
48
The search result can be given to a GtkTreeModel for display.
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.
54
* Select destination files when copy or move is finished.
55
Can use g_object_set_data to associate a FmFolderView with FmJob.
57
* Support symlink creation.
59
* Add reserved data members to structs to padding for future expansion.
61
* Use a forked version of xdg_mime included in glib/gio to do faster mime-type detection.
63
* Bug: clicking on detailed view's column to change sorting didn't update the sort sub menu in main menu.
65
* Implement our own empty trash API since delete a file in trash:/// with g_file_delete really sucks.
67
* Implement our own trash can since the one provided by gvfs really sucks!
69
* Maybe we can add a gtk+ module and register our own implementation of GtkFileChooserWidget.
71
* Handle self-mangled symlinks.
73
* Make fm_launch_paths more user-friendly so pcmanfm can use it to handle files_to_open.
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.
83
when a returned value was allocated or ref_count is increased,
84
the API should use _dup_ rather than _get_.
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.
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.
100
get_selected_files();
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?
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.)
116
* GtkFileChooser style path button bar. (can take the one in gtk)
118
* Bring some fallback icons (application-x-generic and folder) along with
119
the package of libfm to work without icon themes.
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.
127
* Support "Send To..." => Need to see how thunar does this.
129
* Auto-mounting => partially done
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?
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.
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.
146
* Add "Create New" to popup menu of folder. => partially done, quite dirty.
149
* Show available disk space in status bar => done, but in a slightly dirty way.
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.
159
* Constraint memory usage of FmIcon cache. Periodically removed rarely
160
used items might be needed.
162
* Add FmGesture to support mouse gesture. (low priority)
163
Maybe this should in another lib to be used in other programs, too.
165
* Hide computer:///, network:///, and disable trash:/// if gvfs is not
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()
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.
176
* Display tooltips for folder items
178
* Documentation, can be done with gtk-doc
184
* Fork gvfs to make it gnome-free.
186
* Add gio extension modules to override the ones provided by gvfs.
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.
192
* Periodically remove thumbnail caches
193
Maybe it's a better idea to handle this in disk cleaner wizard.
195
* Enable showing .. in list view mode.
197
* Write a geany plugin to utilize the FmFolderView.
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
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