Find file
Fetching contributors…
Cannot retrieve contributors at this time
189 lines (133 sloc) 7.18 KB
[High Priority]
* File operations: move, copy, trashing, ...
Implement correct error handling.
Already works for FmDirListJob.
Confirm before deleting/trashing.
Rename/overwrite files appropriately when destination file
already exists. => done
should provide multiple destination files for recovering trashed files.
* Recover previously trashed files.
* File monitor:
Queue files which are already processed in file operations, and send
change notifications in timeout handlers to improve performance.
* Dnd
Dnd destination, drop site handling. => Almost done
For drag source, use file:///~/.gvfs/ rather than its original
URL scheme to be compatible with other programs => need more survey
=> g_file_new_for_uri, and then g_file_get_path can return gvfs fuse path.
Refuse drop if the user doesn't has access to destination dir.
Fix incorrect drop target item of icon view mode. => done
Fix incorrect design of 'query-info' signal.
Implement XDS support => done, but in a quite dirty way.
* Thumbnails, may be cached with hash table to speed up loading.
Need to support external thumbnailers.
Thunar can directly load embedded thumbnail in jpeg files, we need that, too.
Size of cell renderers and ExoIconView item size must be adjusted for Thumbnail View.
* Mount volumes and mount points when needed
This already works with remote URLs.
Need to be done for removable devices. => partially done
Now mounting works when the user click on a volume in side pane.
Not available yet in computer:///
* path resolution and canonicalization: convert ../ and ./ gracefully
Partially done. fm_path_new_relative and fm_path_new_child handles . and ..
Need to show canonicalized paths in location bar.
* Add "Create New" to popup menu of folder. => partially done, quite dirty.
* Show available disk space in status bar => done, but in a slightly dirty way.
* FmFileMenu should provide special menu items for special paths
For example:
Add a "Recover" popup menu item for files in trash:///
Provide totally different menus for items in computer:///
Provide "Uninstall" for items in applications:/// (requires integration with package-kit)
* File searching utility => Subclass FmFolder and provide FmSearchFiles
The search result can be given to a GtkTreeModel for display.
* Add filter to FmFolderModel, so we can only show specific files.
The API can be compatible with GtkFileFilter used by GtkFileChooser.
The hidden parts can be stored in model->hidden GSequence.
* Select destination files when copy or move is finished.
Can use g_object_set_data to associate a FmFolderView with FmJob.
* Support symlink creation.
* Keyboard shortcuts in folder view.
=> Done in pcmanfm.
* Add reserved data members to structs to padding for future expansion.
* Use a forked version of xdg_mime included in glib/gio to do faster mime-type detection.
[Medium Priority]
* API renaming:
when a returned value was allocated or ref_count is increased,
the API should use _dup_ rather than _get_.
currently there are inconsistent naming convention among different
modules. _get_for_, new_from_, _get_from_, and simply _get_ are used
in different places where APIs have similar behaviors.
* API redesign: maybe abstract classes like FmBasicView or FmBasicWin were needed.
in this way, both desktop window and folder views can have the same behavior
through the same interface.
* Better clipboard handling => almost done
Can we be more compatible with GNOME and XFCE?
Already compatible with KDE/Dolphin
Partially compatible with gnome and xfce.
Clipboard operation done by libfm doesn't seem to be noticed by
nautilus. Cause? maybe related to clipboard monitoring?
* Custom actions for specific file types.
integration with archivers is a must have, but how?
Maybe we can use the implementation proposed by KDE.
* GtkFileChooser style path button bar. (can take the one in gtk)
* Bring some fallback icons (application-x-generic and folder) along with
the package of libfm to work without icon themes.
* Warn the user for insufficient disk space before file operations.
total size, and store this value in FmFileOpsJob.
During calculation, if total size already exceeds free space available,
prompt the user, and also provide an option to skip this.
* Support "Send To..." => Need to see how thunar does this.
* Auto-mounting => partially done
* Support mount specific filesystem encoding in the future. Now we only
handle UTF-8 for simplicity.
Those settings can be stored in FmConfig?
* Inter-process config change notifications:
fm_config_notify should cache all notfications.
Then, pack all changed values in a buffer and pass it to a notifier
function set with fm_config_set_notify_hook.
fm-gtk can use this hook to send the changed values via X11
root window properties or dbus.
* Implement our own gio extension points to override some bad stuff in gio/gvfs.
Pass highest priority value to g_io_extension_point_implement() if we're
under LXDE might be a good idea.
[Low Priority]
* Constraint memory usage of FmIcon cache. Periodically removed rarely
used items might be needed.
* Add FmGesture to support mouse gesture. (low priority)
Maybe this should in another lib to be used in other programs, too.
* Hide computer:///, network:///, and disable trash:/// if gvfs is not
* Implement fm_list_concat_glist to add a GList* to FmList or to convert
a GList to FmList by fm_list_new followed by fm_list_concat_glist()
* Expose a set of dbus interfaces/services so other applications can call
libfm to do file operations without being linked with it.
Or, this should be implemented in the level of file managers, like in pcmanfm?
If this is going to be supported, write a spec for it.
* Display tooltips for folder items
* Documentation, can be done with gtk-doc
[Very Low Priority]
* Fork gvfs to make it gnome-free.
* Add gio extension modules to override the ones provided by gvfs.
* Provide a wizard to clean temporary files from the filesystem to get more
usable disk space. => a disk cleaner is needed.
This can be showed to the user when there is not available disk space.
* Periodically remove thumbnail caches
Maybe it's a better idea to handle this in disk cleaner wizard.
* Enable showing .. in list view mode.
* Write a geany plugin to utilize the FmFolderView.
* Add a right pane to list all opened folders instead of using tabs.
Quite useful for wide screen and can save taskbar space.
Very convinient when you need to work with files in many different folders
* Support saving currently opened folders as a session, and the saved session
file can be loaded later by double click on it.
This is especially useful for developers and can be used for project management