Category Archives: Development

LXDE-Qt Preview

Many users have read about our recent Qt-related work in prior blog posts.
The GTK+ version of LXDE is still under development, but we did some experiments with Qt, too. Now I have some things to show you. :-)
Here is a preview screenshot for LXDE-Qt.

At the bottom of the screen is lxpanel-qt, the Qt port of lxpanel. Now it basically works, but it’s still rough and needs much polishing. Besides, there are no GUI configuration tools for it yet. Editing the xml config file manually is needed. Later there will be preferences dialogs as the old gtk+ version of lxpanel. Most of the major applets already work. However, don’t expect too much!
It’s still a work in progress and it can be better in the future.

In the middle of the screen is PCManFM-Qt, the Qt port of the PCManFM file manager. It looks very similar to the original gtk+ version. The desktop wallpaper and icons are also managed by PCManFM-Qt, just like what the gtk+ version does.
The memory usage of PCManFM-Qt is slightly higher than that of the gtk+ 2 version, but the difference is not very significant. The overall performance is similar to the original gtk+ 2 version. Now it has most of the features of the original one and is almost ready for daily use. \o/

On the right side of the screen is the new Qt-based image view, LxImage-Qt.
It’s not really a port of the original gtk+ GPicView. I regard it the successor of GPicView in the Qt world. It works better than GPicView and is as fast.

Most of the work demonstrated in the screenshot is still in our git repository and is not ready for a new stable release, but there is really much progress and LXDE-Qt is no more a plan or a concept. It’s a real project that gradually shapes.

OK, back to what most user will concern, the resource usage.
To be honest, migrating to Qt will cause mild elevation of memory usage compared to the old Gtk+ 2 version. Don’t jump to the conclusion too soon. Migrating to gtk+ 3 also causes similar increase of resource usage.
Since gtk+ 2 is no longer supported by its developer and is now being deprecated, porting to Qt is not a bad idea at the moment.
Besides, the slightly higher memory usage is still acceptable for most of the existing old machines. The real resource usage may differ a lot among different Linux distros. For example, Ubuntu-based distros running LXDE tends to use more memory than ArchLinux-based ones. So more testing and real benchmarks are needed before making a conclusion on this.

Anyway, glad to share with you what we already done. Hope that you like it. :-)
Long live LXDE!

Edited on 2013-07-04
Answer the questions in the comments of this blog entry:

  1. Cooperation with razor-qt is going on. We subscribed razor-qt google groups and discussed about possible cooperation earlier. Currently, the ported LXDE components are designed with Razor-Qt in mind. For example, PCManFM-Qt and LxImage-Qt will reads razor-qt config file when running in razor-qt session. We’ll try to keep the interchangeability between the two DEs. Further integration is also possible. Actually, I personally am running a mixed desktop with LXDE-Qt + Razor-Qt components on my laptop. Components from the both DE blends well.
  2. The version of Qt supported now is Qt 4. I’m going to skip Qt 5 and wait for Qt 5.1. Qt4 and Qt5 are compatible in many areas and porting to Qt5 should be easy in most of the cases. Unfortunately, this is not the case when you use X11-related stuff. Qt 5 removed many X11-related APIs and there are no direct equivalent methods. So the porting is not painless for desktop environments. In addition, some freedesktop.org specs are designed to work with X11 only, such as the EWMH/NETWM spec and Xsettings spec. To port to Wayland, these problems need to be solved first. Gnome and KDE guys will fix them so we can just wait. Then why Qt 5.1? Because Qt 5.1 added back the once-removed X11-related APIs. So porting from Qt 4 to Qt 5.1 should be the most smooth path. It takes time for distros to adopt Qt 5.1, though.

Please use PCManFM-Qt git version for now.

As many people know, a Qt port of PCManFM is under heavy development. Although we released PCManFM-Qt 0.1 previously, it contains some bugs and memory leaks. Most of the issues are already solved in the latest source code in our online git repository and will be available in the next release. However, the new code depends on the latest libfm 1.2, which is not released yet. Due to the small delay of libfm release, the new release for PCManFM-Qt cannot be made at the moment. Brave users who cannot wait for the final release are encouraged to try the latest git version of libfm and PCManFM-Qt to get the latest features and fixes.

Here is a short list of what’s in the latest git version (and will be in the next release):

  1. Fix several important memory leaks in version 0.1
  2. Some optimizations for memory usage and speed are done
  3. Full thumbnail support (can show thumbnails for image files and other formats with external thumbnailer installed)
  4. Extract thumbnails from EXIF data of jpeg files (via libfm 1.2)
  5. Optimize column widths of detailed list view automatically
  6. Correctly handle desktop icons when a work area is set
  7. Detects icon theme automatically according to current desktop environment. No need to set an icon theme manually in LXDE, XFCE, Gnome, and Razor-Qt.
  8. Some other small bug fixse

The current code of PCManFM-Qt in the git repo is nearly ready for daily use. The memory usage and overall performance are acceptable, too. When Andriy finishes libfm 1.2 and makes a new release, I’ll make one for PCManFM-Qt at the same time. Before that, users are encouraged to try the git version.

PCManFM-Qt:

> git clone git://pcmanfm.git.sourceforge.net/gitroot/pcmanfm/pcmanfm-qt

For compiling the latest code in git, you also need the git version of libfm and menu-cache:
> git clone git://pcmanfm.git.sourceforge.net/gitroot/pcmanfm/libfm
> git clone git://pcmanfm.git.sourceforge.net/gitroot/lxde/menu-cache

Have fun!

A Guide for Migrating from Gtk+ to Qt

Since I started learning Qt recently, I noted some issues when trying to port Gtk+ programs to Qt. There are tons of tutorials for Gtk+ and Qt, but a guide for porting is lacking. Most of the articles comparing Gtk+ and Qt did not go into detailed issues people will encounter during coding.
To help people porting their Gtk+ programs to Qt, I just started a wiki page documenting what I’ve learned so far.
Currently it provides a long table listing equivalent Qt classes for
commonly used GtkWidget classes. Since I cannot find a similar list with Google, I built one. This is useless for experts, but it’s very handy and helpful for Qt beginners who already know Gtk+. The mapping between Gtk+ and Qt classes is not yet finished, but I’ll try to make it complete soon.
I also documented things you need to know to safely mix glib/gio/GObject code with Qt. Later I’ll add docs describing how the translation systems differ.
I hope that developers interested in this topic can help edit the wiki
page to make it more complete and free from errors. It’s still a work in progress but I hope it helps someone as more and more people are using Qt and some more LXDE components *might* get Qt ports later. BTW, since Ubuntu guys is moving toward Qt, this also helps them.
Cheers!

PCManFM Qt 0.1.0 released

Hello world,
I just released PCManFM Qt file manager 0.1.0, the first Qt port of PCManFM.
The tarball is available for download from our project page.
You’ll need libfm to build it (which is included in many distros).
P.S. When running the program for the first time, please choose an icon theme from the [Edit] / [Preferences] menu. Otherwise you’ll get no file icons.
If you install the program into /usr/local, don’t forget to run “ldconfig” after installation, or libfm-qt won’t be correctly loaded by the loader.
This release contains no thumbnail support yet.
However a fully working thumbnail support is already in the git.
Because this requires some changes to the upstream libfm library,
it’s scheduled for the next release and not make public at the moment.
To turn on the desktop icon management feature, run with the command:
> pcmanfm-qt –desktop
>
Generally it’s a good idea to add this command to your session startup script.
To turn the desktop icon manager off again, do this:
> pcmanfm-qt –desktop-off
>
If you don’t want to use the desktop icons, you can still add the
command to your session startup script:
> pcmanfm-qt –daemon
>
In this way, it will becomes a background daemon. Every time you need
to open a folder with pcmanfm-qt, it can be shown “immediately”.
BTW, please don’t mail me and ask if PCManFM will shift to Qt.
The Gtk+ and Qt versions will coexist.
There will still be new releases for the Gtk+ version in the future.
The Qt port is only an alternative, not a replacement.
Thank you!
I, however, need to admit that working with Qt/C++ is much more pleasant and productive than messing with C/GObject/GTK+.
Since GTK+ 3 breaks backward compatibility a lot and it becomes more memory hungry and slower, I don’t see much advantage of GTK+ now. GTK+ 2 is lighter, but it’s no longer true for GTK+ 3. Ironically, fixing all of the broken compatibility is even harder than porting to Qt in some cases (PCManFM IMO is one of them).
So If someone is starting a whole new project and is thinking about what GUI toolkit to use, personally I might recommend Qt if you’re not targeting Gnome 3.
Update 2013-03-27:
I got some feedback about the toolkit choice above. Don’t get me wrong. I’m not saying that gtk+ is bad and did not intend to start a toolkit flame war. If you’re going to use python, C#, or other scripting language, gtk+ is still a good choice due to its mature language bindings.
Vala  is attractive initially, but after trying it in real development, you’ll see the shortcomings of this approach. Because it sometimes generates incorrect C code that still compiles, we got some really hard-to-find bugs. So we need to examine the generated C code to make sure it does things right. This takes much more time than just writing plain C code myself. Besides, the generated C code is not quite human-readable and debugging becomes a problem. Another issue that’ll hit you is the problems in the library bindings. Though there exists many vala bindings for various C library, their quality is uncertain. Finally, debugging, examing, and fixing the bindings all the time takes even more time and offsets the time saved by using Vala.
To sum up, for compiled binary programs, Qt IMHO is a good choice to consider if you don’t hate C++.

PCManFM Qt port is 85% finished now!

A picture is worth a thousands words so again let’s see the screenshot first.

PCManFM Qt with desktop manager turned on

This is the Qt port of PCManFM with desktop management feature turned on. The desktop icons and the wallpaper were painted by PCManFM-Qt, just like the gtk+ version of the original PCManFM. The new Qt port is in a pretty good shape now.
Although it’s not yet ready for production use, it’s almost there. About 85% of the planned features are finished.

What already works:
  1. Nearly all folder browsing features
  2. Change icon theme
  3. Preferences dialog (most options work)
  4. Load/save settings
  5. Single instance + dbus service
  6. Command line options
  7. Desktop icon manager: enable with “pcmanfm-qt –desktop”. You can add “pcmanfm-qt –desktop” to the startup script of your desktop environment/window manager.
  8. Change wallpapers via “Desktop Preferences” dialog
  9. Mount remote filesystems and removable devices (requires gvfs)
  10. Split into pcmanfm-qt and libfm-qt library.
  11. Install libfm-qt header files to /usr/includ/libfm-qt along with a pkgconfig file, so later libfm-qt can be used in other Qt programs
  12. Most file operations, move/copy/symlink/trash/rename, change file attributes in the file properties dialog.
  13. Basic drag and drop support (very basic)

Things which do not work or are still work in progress:

  1. Create new folders/files
  2. Edit bookmarks
  3. Auto-mount/auto-run for removable devices
  4. No thumbnail support yet. (This may require some changes of the upstream libfm library)
  5. No ABI version (libtool soname not set yet)
  6. No translations yet (Qt Linguist and the *.ts files are hard to work with and lack features I need, I consider using GNU gettext instead)
Also noted that the git repository is now moved to:
The original libfm-qt repo will be removed later.
The binary program pcmanfm-qt and the library libfm-qt.so are bundled in the same package.
Please help test and give some comments.
If anyone is interested in helping the development, patches are welcomed.
Thank you!

PCManFM 1.1.0 and libfm 1.1.0!

Double release!?
We made a poop here. First we pushed 1.0.2 of PCManFM and libfm, that was busted and needed an adjustment. At the same time we debated the version numbering things and as we had to do a new release we decided to bump the version number to hilight the fact that there are hundreds and hundreds of changes in these two releases. 1.1.0 is more like a bug fix to the 1.0.2 but also bumps the version. Happy file managing everyone =)

PCManFM

Main changes in PCManFM 1.1.0 (since 1.0.1)

  • Corrected underscores (mnemonics) on every menu and dialog.
  • Migrated to new libfm APIs for simplification.
  • Fixed GTK+ 3.0 compatibility problems. Added switch –with-gtk=N to configure script where N is GTK+ version: 2 or 3. Default is 2.
  • Added option ‘Treat backup files as hidden’ into ‘Display’ tab of the preferences dialog and ‘Use Application Startup Notify by default’ into ‘Advanced’ tab. Both have effect with libfm 1.0.2 or newer.
  • Added rintime option ‘–new-win’ to open new window instead of new tab when started with some directory name.
  • Added runtime option ‘–role’ to set WM_WINDOW_ROLE property which can be used by window manager to do arrangement of window. Works only if option ‘–new-win’ is also used.
  • Added search engine support. Works if compiled with libfm-gtk >= 1.0.2.
  • The items which cannot act (such as “Copy” when no items selected) now are disabled in menu and toolbar.

libfm

Main changes in libfm 1.1.0 (since 1.0.1)

  • Added ‘no_usb_trash’ option into config file, defaulted to 0, which defines whether skip trashing files on removable media or not. If defined to skip then files will go into “trash-unsupported” and user will be asked by fm_file_ops_job_run_with_progress() to remove them instead.
  • Added ‘no_child_non_expandable’ option into config file, defaulted to 0, which adds feature to hide expanders on non-expandable rows so no extra ‘No Sub Folder’ rows are shown. No automation on that is done still since it may be expensive sometimes.
  • Corrected underscores (mnemonics) on every menu and dialog.
  • Fixed GTK+ 3.0 compatibility problems. Libfm can be compiled with Gtk 2.18 … 3.x and Glib 2.22+ currently (if glib < 2.26 or vala < 0.13 still requires run configure –disable-actions). Added new switch to configure script –with-gtk=N where N is GTK+ generation to be used, may be either 2 or 3. Default is 2.
  • Enabled option to Unmount removable media without ejecting it.
  • Migrated menu:// support into built-in VFS. There will be support for menu editing functions later.
  • Added search engine. Supports search:// URIs and has the UI represented by API fm_launch_search_simple().
  • Full name in Icon View mode now shown in tooltip while long names are placed under icons in truncated form.
  • Added ability to change columns of view. Works only for Detailed List View in FmStandardView widget for now. Implementation for other modes and widgets will come later on demand.
  • Added a FmSortMode enumerator (similar to GtkSortType) with few modes specific fo file manager (ascending/descending is one of new modes).
  • Sorting set/get functions moved from FmFolderView into FmFolderModel. Sorting isn’t remembered by implementations of FmFolderView anymore so application should set sorting explicitly after creation of new FmFolderModel instance. Previously FmFolderView remembered it and no explicit setting was required.
  • A lot of lesser bugfixes.

Download
pcmanfm-1.1.0.tar.gz, sha1: 8c780b79d2b29bc04660c5c929e1ce314ba9a5a4
libfm-1.1.0.tar.gz, sha1: 552cc85bb50aae7d5620419694c6d566015bde10

Changelog for libfm without merges and translation commits
* c868bf3 – Release v.1.0.2.
* 9a2991c – Bump abi revision num before release.
* 5e6df27 – Make fm_bookmark* API thread-capable with help of GMutex.
* 46a674c – [#3580999]FmBookmarkItem should have reference counter.
* 07dfa37 – [#3580999]The change in bookmarks should be propagaded.
* 024fa13 – [#3580979]Don’t recurse into directory on deletion again.
* 8bf1fbb – [#3577013]Workaround on strange ExoIconView bug with GTK-3.4.2.
* af41a0c – Rename fm_folder_model_col_by_name into fm_folder_model_get_col_by_name.
* 98f99ad – Fix on workaround of menu-cache bug in menu:// VFS.
* 1ed3429 – Update on .gitignore: two generated files were missed.
* c51d537 – Replacing deprecated API fm_folder_view_sort() in libfm-demo.
* 74498dd – g_timeout_add() callbacks should contain g_source_is_destroyed() test.
* 00d414d – The ‘#include ‘ was missed in src/base/fm-file.c.
* 091c841 – [#3578780]Fix for GtkTreeView bug leading to selection reset on click.
* 7acd04c – Update for NEWS file on changes in FmFolderView sort handling.
* edc9f40 – Few definitions missed a keyword static while they were meant to be ones.
* a29d960 – Removing leftovers from old data: fm_mutex_menucache.
* dc25ba3 – Fix for fm_folder_view_sort() with type -1.
* b0241bf – Don’t set any defaults on context menu sorting.
* 51b4f7a – Sort change by folder context menu was broken.
* 97cb38a – ‘Paste’ should be visible only in context menu for single directory.
* 25938a9 – [#3576910]Corrected text size in Thumbnails View mode.
* d6e75ff – [#3568358]Changed behavior of right-click in Detailed List View.
* 7610233 – [#3572032]Removed preliminary pushing requests into ready_queue.
* a840fc6 – [#3576649]Fixed keys handling with rigth-to-left layout.
* d75fca1 – [#3576910]Reverted back text spacing in icon view.
* 9cecf78 – Added 6 more pixels to rendered text width in icon view, it looks better so.
* 9af4d83 – Implemented setting of icon view cell size according to icon size.
* 43b03fe – [#3576450]Added file gtk/fm-sortable.h missing on install.
* 21a3675 – Set anchor item if the cursor is set.
* 9706364 – Fixed double-click on ExoTreeView (see bug http://bugzilla.xfce.org/show_bug.cgi?id=6230)
* cff1a92 – Updated documentation for new column APIs.
* 877a86f – Cosmetic changes in fm-folder-model.h, fm-sortable.h, fm-standard-view.c.
* f5c79c4 – Fixed crash on pixbuf renderer which was unreferenced already.
* cf8c425 – libfm-demo now shows search window with column ‘Location’.
* 441db50 – Implemented _fm_standard_view_get_columns() internal API.
* 123b4a7 – Cosmetic change if -> switch in on_btn_pressed().
* 58436fc – Fixed possible vulnerabilities in name<->mode conversion in FmStandardView.
* dc9e3ea – Removed duplicate columns list from FmStandardView.
* f8385da – Replaced deprecated COL_FILE_* with FM_FOLDER_MODEL_COL_*.
* a159b4f – Added fm_folder_view_set_columns and fm_folder_view_get_columns APIs.
* c975f93 – Creation of default columns for Detailed View mode postponed a bit.
* a1df829 – set_sort and get_sort aren’t used in FmFolderViewInterface.
* 7ff5dcf – Changed args for fm_standard_view_set_columns, it uses GSList now.
* c66ac4f – Moved FmStandardViewColumnInfo into fm-folder-view.h.
* 72174c3 – Added model arg for fm_folder_model_col_get_title and fm_folder_model_col_is_sortable.
* b7eda03 – Renamed fm_folder_model_col_from_str into fm_folder_model_col_by_name.
* 34d9cf1 – Renamed fm_folder_model_col_to_str into fm_folder_model_col_get_name.
* 5f50a94 – Renamed FmFolderModelSortMode into FmSortMode due to fm-sortable.h.
* eb6922b – Moved FM_FOLDER_MODEL_SORT_ stuff into separate file.
* e1b4888 – Converted fm_folder_model_get_sort_mode into fm_folder_model_get_sort.
* 6f46fb8 – Renamed fm_folder_model_sort into fm_folder_model_set_sort.
* 03cda56 – Made FM_FOLDER_MODEL_SORT_ASCENDING and FM_FOLDER_MODEL_SORT_DESCENDING mutually exclusive.
* 1906c3d – Disabled FM_FOLDER_MODEL_SORT_FOLDER_FIRST flag for now.
* cca0c3c – Restored old order of FmFolderModelCol for compatibility.
* 1eff671 – Fixed invalid indexing of column_infos.
* 3fcac19 – Implement correct sorting behavior according to FmFolderModelSortMode flags.
* 1c1df3f – * Use FmFolderViewColInfo struct to store column information. * Add fm_folder_model_sort() and unify sort mode flags.
* 235f1b1 – Add some new APIs to manipulate columns of FmStandardView with detailed list mode.
* b8033a6 – Simplify conversion between some enum values and strings.
* 2cb17fe – Add GType for enums, so we can use them to do conversion between strings and values.
* 7b048c5 – Add fm_folder_model_get_column_title() and prepare for supporting FM_FOLDER_MODEL_COL_DIRNAME.
* c676bc9 – Rename FmFolderModelViewCol to FmFolderModelCol and make the enum values namespaced. Add fm_path_compare().
* 004d727 – Corrected documentation on FmDirListJob::files-found signal.
* 8277a15 – [#3575403]Added a workaround if “folder-locked” icon isn’t avilable.
* c3d2211 – [#3575354]Fixed incorrect usage of g_main_current_source() in clear_src_cache().
* 2515221 – Fixed GTK3 cell size estimations in FmCellRendererText.
* 6e533ee – A little fix over previous commit.
* 70c96a0 – [#3575130]Added support for OpenWith… on mixed selection.
* bccbd07 – Fixed incorrect cleanup of temp. appinfo file.
* dde8f30 – [#3575096]Fixed problems with “Open with…” on files of different mime types.
* a718252 – [#3574931]Fixed display of current file in progress dialog window.
* a1bab88 – [#3574926]Added missing gtk_window_set_transient_for() calls.
* 30093d4 – [#3574371]Fixed update of view on rename at remote folder.
* c428a70 – Ouch, I was too hasty in last commit. Fixing now.
* fe3bd0d – Fixed wrong ‘locked’ flag setting in FrmThumbnailTask.
* 820185a – Added support for escaped “\&” in search patterns.
* a441318 – FmPathEntry was still not always correct so fixed.
* 43cd39e – Fixed incorrect text conversions in FmPathEntry.
* 199554a – Commented out a debug message which will be annoyance otherwise.
* c7f1c87 – [#3514505]Fixed escaping of subpaths on remote URIs.
* 585a60a – Fixed infinite loop in search job.
* fb1703e – Fixed idle callbacks in multithreaded environment.
* 5f156f5 – Fixed incorrect flags usage in src/gtk/fm-thumbnail.c.
* 51ed615 – Fixed a little incorrectness in 47e062a.
* b716d03 – Fix DSO linking for tests
* bf1b55f – Fixed possible binary incompatibilities with 1.0.1.
* 47e062a – File menu: shadow ‘Paste’ if clipboard is empty.
* 4782de1 – Don’t fail on valac if compiling from dist tarball.
* fe9a9da – Implemented “max-height” property for FmCellRendererText.
* e7c78b7 – Added tooltip for icon name (closes #3572974).
* b3ca375 – Added “filter-changed” signal to FmFolderView (bouncer from FmFolderModel).
* 350d7d2 – Removed “UTF8_STRING” from list of valid targets for Paste.
* a18c4b5 – Added signal “filter-changed” for FmFolderModel.
* ffab4b1 – Fixed installation with –disable-actions (https://bugs.gentoo.org/show_bug.cgi?id=436058)
* a8ac2bd – Removed debug leftovers.
* 6df33df – Added workaround on buggy menu_cache_get_dir_from_path().
* fdb3340 – Fixed FmPathEntry completion bugs (closes #3572499 too).
* 9dd239d – One more fix (sorry!) on the same.
* f8656bd – Fixed errors from commit on fm_get_home_dir.
* 816e600 – Added gdk_threads_enter/leave into callback on_thumbnail_loaded().
* ac1a538 – Added an assertion into src/gtk/fm-thumbnail.c.
* 361b194 – Implemented fm_get_home_dir based on docs for usage of g_get_home_dir().
* 7ad80ef – Updated file libfm-sections.txt.
* a26e531 – Make vertical spacing adaptive (closes #3475655).
* 54483e4 – Removed extra unneeded variable from fm_file_info_set_from_native_file().
* 969cf8c – Fixed setting display name in fm_file_info_set_from_native_file() (closes #3105153).
* 379845f – Added support for opening files in trash; works with gvfs >= 1.13.3.
* 18662e5 – Changed internal URI format (closes #3565833).
* 3bba068 – Reverted fix in src/gtk/fm-path-entry.c, it crashes in another place.
* bc9fb54 – Macro fm_path_is_virtual() declared deprecated.
* 28b5def – Added support for Gtk+ text targets for FmDndSrc (closes #3502577).
* 5bb9bb6 – Fixed untranslateable search UI.
* 79d8d52 – Added workaround on ExoTreeView bug (closes #3570676).
* d409973 – Fixed compilation errors (closes #3570675).
* 012b942 – Fixed incorrect menu translation init.
* 7f7a949 – pot file update
* 542b6e9 – A little correction on icon setting in fm_file_info_set_from_gfileinfo()
* 19aa231 – Added back reverted test for incremental folder.
* ec45e2b – Updated POTFILES.
* 1614369 – Added search menu item into libfm-demo.
* 65258b3 – Moved search UI fm_launch_search_simple() into src/gtk/fm-gtk-file-launcher.c.
* 0825d32 – Moved search UI from pcmanfm.
* c06074a – Updated to tag 1.0.2~alpha1.
* 042a92f – Renamed fm_folder_model_refilter into fm_folder_model_apply_filters.
* 0e9283d – Remove unnecessary code.
* ad42352 – Add fm_folder_model_add_filter(), fm_folder_model_remove_filter(), and fm_folder_model_refilter(). Reimplement fm_folder_model_set_show_hidden with the new filter APIs.
* f11c205 – Reverted unwanted changes back.
* d9604ee – It works now but should be merged with ‘fm-file’ to work.
* 8af75f3 – Draft of VFS search:// – other parts are in ‘fm-file’ branch.
* 3c6ff45 – Moved fm-search-job files into vfs/fm-vfs-search.
* 8fc0813 – Fixed compilation warnings.
* 44b9b0b – Fix broken searching parameters min_mtime and max_mtime. Remove some unnecessary debug messages.
* 6a07fd0 – Change search URI parameters for min and max mtime.
* 2bc28e7 – A trivial fix.
* 35be4b0 – Slightly improve mime-type based file searching. Accept types ended with /*.
* 00ad400 – Finish file content-based search (including regexp support).
* f48e9ad – Add fm_folder_is_incremental(). Some little fixes.
* e0226d8 – Support search:// URI to perform file searching.
* 13a9fcc – Merge branch ‘master’ into search
* b54b688 – Delete unnecessary files.
* f06e36e – type search more generic
* 3ff21c8 – fixed content search; use gio type comparison
* 8f25e47 – ginputstream content reworked
* 88940ea – pcmanref/unref, utf content search
* bc05496 – cancelable content search
* a0905db – fixed cancel button; fnmatch->strstr for content;some crash fixes
* e515e1a – fixed bugs; added modified time search
* 8307c27 – fixed files-added signal
* 8114a5f – added emiting file-added
* ed17a91 – Work on UI
* 4efa864 – fixed build error, added UI work
* 41b0dbc – folder view; work on rules funcs
* ece8f38 – removed old function
* 0e57b37 – added customizable rules system
* 86252fa – schedule update, fix build problems from git
* c56f2e1 – file size checking
* 85e4f1e – case sensitive toggle
* ef8b729 – fnmatch, added fnmatch and checking types to demo
* a1db2ff – regex option and toggles in demo
* 6084f0d – improved demo; attempt mime checking; hidden and recursive toggles
* 5d6d5d0 – hidden file and recurisve toggles; FmFileSearch(Job) interface work
* 18b3b22 – error checking in job
* 209176d – error checking; work on GFileInputStream content search
* d49d104 – mmap content search
* 36dc387 – GFileInputStream content search; unref in job
* ba7223a – gfile and gfileinfo
* 8255bb7 – debuging
* cc66eef – debuging
* 53b446e – work on cli test; work on file search job; debuging
* 33476d7 – work on file search job
* 13ceca2 – added basic finalize function
* f9e2cd9 – first commit
* a0fd4bb – Added FM_CHECK_VERSION macro into fm.h file.
* c4f3375 – Fixed new warnings in configure script.
* a7e7db1 – Added workaround for g_thread_unref() crash.
* e7f4e8a – Fixed invalid menu enumeration.
* 43c3645 – Fixed incorrect resetting of fi->mime_type.
* 6944bbc – Both libfm-gtk.pc and libfm-gtk3.pc should be installed.
* bf318c7 – Don’t install HTML docs if run with –disable-gtk-doc
* 129c84e – Fixed mime-type handling in fm_file_info_set_from_gfileinfo.
* 925107e – Fixed a small portability issue.
* 347dda5 – Yet one more fix on cleanup on install.
* f5aaa6f – Fixed enumerator creation in menu:// VFS.
* 24cae06 – Fixed SIGSEGV if g_file_get_child() failed on copy op.
* 0ef157d – Added fm_run_in_default_main_context() API to fm-utils.
* bdc3c1e – Enforced menu-cache API to run in main loop context.
* 1ff49b9 – To pass only path from uri to constructor is silly so fixed.
* 4326118 – Fixed incorrect cleanup on install.
* 3cb91a6 – Corrected arg of wants_incremental: FmFile -> GFile.
* 1357593 – POTFILES update for src/vfs/fm-vfs-menu.c
* bdd088f – Removed stale ‘#include ‘.
* e014c6f – Implemented VFS for menu:// – functionality is basic as before.
* cb9cbe1 – Implemented new API fm_file_add_vfs() to register VFS.
* 1fa71e3 – Implemented new GInterface: FmFile – for VFS extentions.
* f23dde9 – Added workaround on hit test while loading view (closes #3390778).
* 0317b82 – Added support for special dirs icons (the same way as GLib does).
* 0aa6e76 – Updated rest of developers documentation.
* 94805e3 – Added missing gdk_threads_enter/leave into idle callback in fm-standard-view.
* c992ca8 – Fixed compiler warnings on libfm-demo.
* 88d4a11 – fixed few gtk-doc warnings.
* 7ee391d – Sealed details of FmPath and FmThumbnailer; updated developers documentation.
* 019062e – Sealed details of FmMimeType; updates in developers documentation.
* b39a09f – Redesigned FmNavHistory a bit.
* 825dfe8 – Enabled option to Unmount removable media (closes #3538822 and bunch of other reports).
* 0353922 – Yet one more ExoIconView rubberbanding fix.
* 9d013f8 – Fixed error in libfm-gtk3.pc.in.
* 6ea0e1f – Fixed broken multithreaded biuld.
* 55d281f – Implemented new API fm_folder_view_set_active().
* 4fbfe72 – Fixed Gtk+2 compatibility issues.
* 34d03a8 – Eliminated Gtk 3.4 compiler warnings on library.
* ee20d54 – Added option –with-gtk to configure to choose 2/3/no.
* b6d3148 – Fixed search window positioning in ExoIconView.
* 2806e2f – Fixed name of fm_file_info_get_collate_key_nocasefold() API.
* bfb0603 – Added simple versioning of installed headers path.
* 5ac7857 – Removed ‘\r’ from URI generated from path (closes #3564414).
* 92befeb – Disabled completion for paths like /usr/ (closes #3543800).
* bc60cf2 – Thumbnail generation optimized a lot.
* 40a066c – Added fm_file_info_collate_key_nocasefold() API for case-sensitive sorting.
* ec211f5 – Fixed Gtk-warning with gtk2.
* ecde497 – Fixed scrolling when compiled with Gtk+3.
* 2acc82b – Made it compilable and working with GTK+3. Scrolling doesn’t work yet.
* 8ceee2d – Updated GDK_ keys with GDK_KEY_ ones.
* 686fd3f – Fixed the rubberbanding draw in icon view (was broken by last commit).
* 04e0bf9 – Removed deprecated and sealed from gtk/exo/*.
* 7d9c129 – Moved some code from fm_folder_view_item_clicked() into fm_launch_paths().
* 9198b1e – Fixed incorrect “data-get” callback from FmStandardView.
* b3194be – Migrated FmStandardView to new API fm_dnd_dest_new_with_handlers().
* 43baef9 – Fixed incorrect calls sequence in on_drag_motion in fm-places-view.c
* 1d7738c – fm_dnd_dest_get_default_action() should alwas query sources (closes #3563001:1)
* 50255bf – Migrated FmPlacesView to new API fm_dnd_dest_new_with_handlers().
* 19b63d2 – A little cleanup in on_drag_data_get() FmDndSrc handler.
* c12523d – Some cleanup on FmDndDest handlers.
* fef73ba – Added FM_DND_*_RESERVED* numbers: don’t use them until ABI bump!
* dc806ba – Fixed incorrect sequence of removal in last commit.
* 4840a0f – Dir tree feature: hide expanders on non-expandable rows (closes #3537328).
* c293b4d – Cleanup around fm_default_dnd_src_targets.
* 1e91243 – Adding to “unsupported” was missed in commit 00dc3de
* e6ec276 – Optimization and cleanup on fm_default_dnd_dest_targets.
* f49e2c5 – Implemented an option ‘no_usb_trash’ (closes #3528099).
* 4b57942 – Updated usage of APIs that went deprecated in GLib 2.32.
* 14370dd – Corrected underscored strings everywhere.

Changelog for PCManFM without merges and translation commits
* 21fa6fc – [#3582133]Compatibility fix for GTK < 2.21.
* 7a10e54 – Release v.1.0.2.
* 7cd0d79 – Remove libtoolize from autogen.sh: the pcmanfm doesn’t use libtool.
* 1009f57 – [#3578503]The variable set_wallpaper should be freed after usage.
* 2c44bfa – [#3579666]If su_cmd failed then open preferences dialog as well.
* 08c4ba2 – [#3580592]Handle ‘Enter’ key to open desktop item.
* add1a71 – Adding file .gitignore.
* 81b5c5f – The ‘#include “gseal-gtk-compat.h”‘ was missed in src/main-win.c.
* b436896 – [#3578794]Quickfix for history dropdown menu.
* aabb312 – Apply sorting on model instead of view if compiled with libfm >= 1.0.2.
* 81638f1 – Fix for: Gtk-WARNING **: Radio group does not contain an action with value ‘-1′
* 2ae9055 – The ‘Desktop Preferences’ string appeared untranslated in desktop popup.
* a7a1dee – Fixed invalid items layout on non-first monitor.
* 9be3438 – Corrected shortkeys for Thumbnail and Compact View.
* ade5f61 – [#3577161]Fixed wrong preferences pages enum – added PREF_LAYOUT.
* 4d66939 – [#3577014]Fixed incorrect cursor restoring: was on wrong widget.
* b4f9585 – Fixed solid color desktop background set with GTK3.
* 9880c79 – Fixed invalid cast from `GtkColorButton’ to `GtkFontButton’.
* 421fb70 – Fixed one-color background filling; was broken after 1.0.1.
* 36f8e15 – Fixed untranslated key nav. window and context menu additions.
* 3ca6bd0 – Removed check for libmenu-cache, it isn’t used by PCManFM.
* db99c94 – autorun: Pass root of mounted device to launched app (#3575428)
* bc132e3 – Implemented side pane hiding.
* a906053 – Experimental implementation of option –one-screen (see #3570956).
* f9c62c1 – Fixed ShowHidden sync between context and main menus.
* c1341e4 – Added two missing tooltips.
* 91982db – Added updating menu state (disable unavailable items).
* 965fdec – Added a small info window with navigation keys (closes #3557511).
* a861bb2 – pot file update
* d289856 – Added ‘TwinPane’ unused dummy action.
* 6daaf80 – Updated to libfm fm_launch_search_simple() API.
* 45c0755 – Moved search UI files into libfm.
* f2e13d0 – Few adaptations to libfm; 1.0.2~alpha1. Search UI should be moved to libfm later.
* 3cd4c49 – Primitive support for searching files based on mtime. Polishing UI.
* 48be498 – Little adjustment of UI. Support searching based on file types and sizes.
* 5743328 – Remove generated files.
* 3ac196d – Readded filesearch.glade to data/ui/Makefile.am
* f5eb879 – Integrate work done during Google SoC 2010.
* 9d1f532 – Remove unnecessary files and integrates deliverables of GSoc 2010.
* 5226ffd – fixed missing function
* 40feae9 – type search more generic
* 81d6394 – pcmanref/unref, utf content search
* e36c873 – Popup menu for files
* 1cd2473 – cancelable content search
* 74a0509 – fixed cancel button; fnmatch->strstr for content;some crash fixes
* fb26a00 – fixed bugs; added modified time search
* d88aeab – fixed file size search
* 380ca44 – fixed potfiles.in; work on file size search ui
* 58f3e58 – Work on UI
* 608d024 – Added support for FM_CHECK_VERSION macro to be able use it.
* c5b0601 – Fixed crash on start (closes #3568625).
* 1f5f38a – Small improvements for debug mode compilation.
* e4f3eba – Fixed compilation problem with newer libfm.
* 92d36ca – Change focus to folder view after selection on side pane (closes #3531696).
* 8acbbc2 – Simplified pcmanfm_run() replacing fm_launch_files_simple with fm_launch_paths_simple.
* bc99152 – Fixed args passed to single instance.
* 86ef20e – Corrected text that is shown with –help (closes #3561697).
* 024eff7 – Added runtime option ‘–role’ (see #3453052).
* 2873a0f – Added new runtime option –new-win.
* 37236e6 – Added support for options force_startup_notify and backup_as_hidden.
* 203520a – Added configure option –with-gtk.
* c8401c0 – Made it buildable with Gtk+-3.0.
* 38459ae – Eliminated deprecated calls.
* 3f8714d – FmMainView migrated to new FmFolderView API.
* e85f73e – FmDesktop migrated to FmFolderView and Cairo APIs.
* 62e7953 – Corrected mnemonics (underscores) in dialogs and menus.
* fbce80c – Fix for left pane of pref. dialog (closes #3561700).

Infrastructure change: pootle.lxde.bsnet.se

Repost from mailing list.

“It has come to this.

tldr; pootle.lxde.bsnet.se will cease to exist in 12 hours time is offline now. new server and new URL will be available later.

At Wednesday the hosting for the current Pootle setup will end. (Thanks a bunch to RSN, the student union in Blekinge, Sweden and the Swedish University Network!)

I will turn off the services later tonight The services are offline and I did salvage the data and hopefully have stuff running tonight or something. It really depends on what obstacles I might hit during the ride. Yes I should have done this months ago but other stuff came across…

The URL for the Pootle instance will change, no doubt. Hopefully I can get a landing page at the old URL pointing out the change but I am not sure about that yet.”

UPDATES WILL FOLLOW!

PCManFM 1.0.1 and libfm 1.0.1!

PCManFM

Main changes in PCManFM 1.0.1 (since 1.0).

  • Implemented basic multi-monitor support.
  • Implemented toggling fullscreen mode via ‘F11′ key press.
  • Added tab ‘Layout’ into Preferences dialog.
  • Few lesser bugfixes.

libfm

Main changes in libfm 1.0.1 (since 1.0)

  • Fixed slowness on loading and changing of very large folders.
  • FmFolderView is converted into generic interface. Former FmFolderView is renamed into FmStandardView so APIs specific to it have changed their names and arguments. Old APIs left for compatibility reasons. New FmFolderView interface now contains methods to handle popups, keyboard and mouse gestures, including Cut/Copy/Paste operations.
  • Fixed compatibility with systems that are a bit old so have neither decent Vala compiler nor GLib 2.26.
  • Few lesser bugfixes

Download
pcmanfm-1.0.1.tar.gz, sha1: 36331ce628f6b81d64d5a8a677133555c9fbf042
libfm-1.0.1.tar.gz, sha1: 0df9084328e42b946085b4eb183078db117ada1c

Changelog for PCManFM without merges and translation commits
* d185c65 – Revert “Add a GtkHBox and GtkVBox inside right pane so later we can add other side bars as needed.” Put this in a feature branch “fileter” first.
* cc34028 – Add a GtkHBox and GtkVBox inside right pane so later we can add other side bars as needed.
* 6a9e415 – Fixed invalid sysconfdir when –prefix=/usr
* c78fba0 – Added workaround for ExoTreeView failure (see #3559255)
* 8ee5c1a – Fixed rubberbanding on desktop (closes #3561482).
* 1d8245a – Fixed forgotten reverting GIO encoding to NULL.
* 994d032 – Fixed error message on invalid IPC char a bit.
* d3de46e – removed validation of chars in IPC to allow invalid encodings to pass
* e0854cd – Fixed SIGSEGV on startup.
* e982b2e – Fixed memory leak in previous commit.
* 7f2da9d – Fixed single inst. client socket handler (closes #3527770).
* 2e20cdf – Added tab ‘Layout’ into preferences dialog.
* d0a8cb5 – Added one more hidden setting into pref dialog for future.
* 549b998 – Simplified configuration tests for more easy compiler arguments.
* 330e7e6 – Added few hidden elements into preferences dialog for future fixes.
* 6aec080 – Added test for library containig round(); thanks to Charles A Edwards.
* 96ad982 – Enforced dialog for inserted media to be above (closes #3558066).
* c4e5298 – Fix: cur_desktop was set to 0 always on startup.
* d5cbf01 – Added ‘Fullscreen’ toggle into main menu.
* 4cb6570 – Fixed shortcut creation when path contains spaces.
* 18aab7b – Added missing config.h inclusions.
* 6f316e3 – Fixed invalid detection of fm_default_dnd_dest_targets.
* f04f910 – Revert “Added configurable timeout for non-immediate config saving.”
* 3b53a34 – Added configurable timeout for non-immediate config saving.
* 1bba6c9 – Set version to 1.0.1~beta.
* 012b296 – Fixed invalid cast in init_entry().
* 98666c0 – Fixed pref.glade that has been made invalid by glade.
* cdcefd9 – Fixed invalid callback on_notebook_switch_page().
* 6e23f80 – Updated DnD to latest changes in libfm API.
* 244f9d2 – Fixed compatibility with GLib < 2.26.
* 3310f26 – Updated NEWS file.
* b53b7b3 – Implemented toggling fullscreen by ‘F11′.
* 8b85c2d – Fixed usage of SI units (closes #2964811).
* a0ac0f2 – Added config option for usage of SI units (closes #2964811).
* 3b5a3d9 – Fix for #3138596: Does not remeber window dimension after reboot
* a56a9de – Fix for #3411306: Open a folder on the wrong desktop.
* c65ba57 – Implemented multi-monitor support.

Changelog for libfm without merges and translation commits
* c867b0c – Fix incorrect marshaller used in “FmFolderView::sel-changed” signal.
* 9156919 – Fixed Cut->Paste again, now it tested to work cross-FM too.
* bb86682 – Fixed ‘Empty trash’ which ceased to work (see #3567440).
* 0730a52 – One more little fix on the same subject.
* 7d2f156 – A little doc fix.
* b7a0e2d – Macro G_DEPRECATED isn’t available on GLib < 2.32.
* db3bef2 – Don’t show folder as locked if its mode isn’t known.
* b072443 – Fix: icon_locked_folder shouldn’t be on non-folders (closes #3567440).
* a094f45 – Fix a typo – rename fm_dir_dist_job_get_files() to fm_dir_list_job_get_files().
* 7af850c – Fixed crash in FmPathEntry completion.
* 2011f3c – Optimized incorrect fm_folder_view_bounce_action() API.
* 717cc43 – Fixed validation and docs on fm_folder_view_set_active().
* 73dcdcc – Fixed Gtk-Critical via locks on GtkAccelGroup.
* 7403731 – Added fm_folder_view_set_active API – it’s required by pcmanfm…
* 082fc02 – Clipboard should not be cleared if it owned by others.
* 0d66c91 – Fix: absent focus may mean it’s FmDesktop so added check for it.
* 01fbb2d – Added one more ret=FALSE in the copy job, just in case.
* f844141 – Fixed losing the files in subdir on move errors (closes #3565792).
* d960cb1 – Added API fm_folder_view_unselect_all().
* 2692005 – Fixed invalid Cut->Paste clipboard behavior.
* 9adb644 – Added new API fm_clipboard_have_files().
* 359fe35 – ABI age bump before release.
* fbda66a – Added two config options for usage in 1.0.2.
* fcb3d11 – Fixed possible problem in src/job/fm-file-ops-job-change-attr.c.
* 74fd13a – Added few TODO comments.
* dbe546d – Corrected on_object_finalize() in docs for FmDndSrc and FmDndDest.
* fadb3f8 – Added commented out code for future optimizations.
* 158dc0b – A little documentation update for FmDndDest again.
* 3fb0d17 – GDK_ACTION_DEFAULT should not be used – fixed.
* 8b939de – Fixed crash in fm_dnd_dest_files_dropped() with empty selection.
* 6bddb07 – Added missing #include into src/glib-compat.h
* 8ae6863 – Little documentation update on FmDndDest APIs.
* 2c016b1 – Added macro fm_dnd_src_add_targets() for convenience.
* 77e9981 – Added 2 new APIs: fm_dnd_dest_new_with_handlers and fm_dnd_dest_add_targets.
* 2418f5a – Updated documentation on FmDndSrc for 1.0.1 changes.
* 611cf8d – Workaround on empty drag files list (possibly fixes #3559255:2).
* df13784 – A little optimization on “GTK_TREE_MODEL_ROW” atom usage.
* 155289f – Fixed adding bookmark by DnD to Places (was broken since 0.1.99).
* 20ea186 – If Vala requested but not found configure should fail (closes #3561872).
* 6ea762b – Fixed escaping of URI on launch (closes #3556518).
* 06aa1b6 – Fix broken C++ compatibility.
* daf102b – Fixed renaming fm-folder-exo-view.c in the po/POTFILES.in
* 4dabf8b – Fixed unportable macros in src/Makefile.
* 16a4b87 – Defaulting to copy if glib failed to determine drag target filesystem.
* 55a9544 – Fixed crash on symlink creation error.
* 1b03711 – Fixed crash in fm_app_menu_view_new() if “XDG_MENU_PREFIX” unset.
* 76eafac – Fixed invalid setting of single click in Detailed List View mode.
* fa46327 – Fix for #3559831: Right-click menu does not work with libfm git
* b1ad856 – Added condition on g_thread_init() which is deprecated in GLib >= 2.32.
* 94eae3e – Replaced deprecating AC_CHECK_LIB with AC_SEARCH_LIBS.
* 837ec6b – FmFolderExoView renamed into FmStandardView.
* 05c9fde – Removed glib-compat.h and gtk-compat.h from docs as it ought to be.
* e1e6ae2 – Added few translateable strings for future additions.
* 845103d – Added placeholder ‘CustomSortOps’ into src/gtk/fm-folder-view.c
* bd0c2da – automake 1.12: AM_PROG_AR should be before any of AC_
* 7252afd – Fixed signals accumulators and therefore descriptions.
* ff00280 – Fixed docs incompatibility with –disable-actions.
* 93d661c – Replaced g_list_free_full() which was missed in old GLib.
* 5e2c86f – Fix: g_app_info_set_as_last_used_for_type() requires GLib >= 2.27.6
* f5dd721 – quickfix for #3557764: pcmanfm-1.0 segfault in fm_file_info_is_image
* aa5566d – Fixed bad selection on right-click menu due to delayed “sel-changed” signal.
* 4eedb21 – Added Shift+F10 as menu shortcut (since we set it instead of signal).
* 67eb91f – Supressed error message when directory dragged few pixels so dropped on itself.
* a73208d – Added missing API into libfm-sections.txt file.
* 434daa9 – Fixed two settings on config save.
* 32ffc78 – Fixed slow thumbnails update (closes #3557361).
* 20e1fb6 – Implemented dropping files on desktop entry (closes #3448566).
* ceaf3ed – Set version to 1.0.1~beta.
* cb336a3 – Implemented wrapping of file name in view (closes #3436276, #3532037).
* eca482e – Fix for #3300797: Delete prompt isn’t on the first layer
* 364ea79 – Fixed leftover problems when compiled with gtk3; only src/gtk/exo/* left.
* 2fb14e3 – Fix for #3409834: Removable directory not removed if no x flag
* eb889f5 – Fixed custom application adding by full path (closes #3107434).
* 423f2c7 – Fixed user custom commandline app creation (closes #3100063).
* 9817947 – Choosen application should be set first (closes #3550143).
* aed49ac – Added minimal support for unacessible folders (closes #1893449).
* a286c4a – Fixed incorrect model unsetting in FmFolderExoView.
* 4ddf8a6 – Fix in fm_folder_view_item_clicked() without popup initialized.
* 41c81ef – Fixed wrong compatibility define.
* 1dd4c38 – Fixed wrong ShowHidden initialization in popup.
* 8b18344 – Fixed marshalling of GError for GLib < 2.26.
* 49eb765 – Added compatibility with GLib 2.22.
* 9943cbb – Adaptations for Gtk+3.0. src/gtk/exo/* still needs reworking.
* 2ea6fcf – Replaced deprecated Gtk APIs.
* 98824b4 – Fixed compilation with –disable-actions.
* 92c1cf4 – Fix on compatibility of FM_FOLDER_EXO_VIEW_MODE_IS_VALID.
* 586b02e – Fixed libfm/fm-gtk.h include file.
* 088ddcf – More fixes on developer documentation.
* 43efa7b – Updated NEWS file.
* d2f0cd5 – Disabled check for mmap since mmap isn’t used anymore.
* 04853a5 – Developers documentation update.
* 5463ad5 – Lowered glib requirement to 2.24 if built with –disable-actions.
* 9675a38 – Commented out GMODULE tests as it isn’t used currently.
* f053378 – Removed GLIB_CFLAGS and GLIB_LIBS since those never used really.
* 73399de – Added ‘backup_as_hidden’ config statement (closes #3416724).
* c889b57 – Added ‘force_startup_notify’ config statement (closes #3297912).
* cb702c7 – Fixed usage of SI units (closes #2964811).
* 7a98042 – Added option –disable-actions for systems with too old Vala.
* 10f2891 – Reverted back unwanted reset_selected() as it slows down things.
* 38f96b3 – (missed)Fix for slow deleting by “sel-update” by limiting updates speed.
* d3a3928 – Converted FmFolderView into generic interface.
* 5b44373 – Rename in preparation to FmFolderView convertation.
* 1250708 – Fix for bugs #3008979 and #3526139; rubber-banding on rows should be disabled.
* 924d2d1 – Fix for slow deleting by “sel-update” by limiting updates speed.
* 906b5c8 – Implemented hash for very large folders.
* c8d81c1 – Fix freeze on loading very large dir.

Call for review: PCManFM is almost ready for a new release

I’m here to call for a review for PCManFM as the source code in git isin quite good shape now.Many known bugs are fixed and I did much refactor to the tabbedbrowsing part and merge changes in tab-rework3 branch with master.Please help test and update translations in various distros. If things are ok, I propose a new release.

Some major changes:

  1. “Reload Folder” is available now in View menu.
  2. “Directory Tree” mode is available in side pane.
  3. Filesystem size is updated in a more correctly and efficient way.
  4. Many bugs causing crashes are fixed.
  5. Shows a warning icon in toolbar when running as “root”.
  6. Supports menu keys.

Minor changes:

  1. Fixed some memory leaks.
  2. ~ and / to move focus to location bar
  3. Improve internal structure of PCManFM.
  4. Code cleanup.

A new release as 0.9.9 is required. Please help review and test the code in git.Thanks a lot!

Directory tree is now available in PCManFM!

Everybody loves screenshot!

Directory tree in side pane was a feature in PCManFM 0.5 series, but it’s not yet implemented in the latest rewrite. Yesterday, I finished the rewrite for directory tree and added it to PCManFM. This new feature is now availble in git repository. I also added a drop-down menu to side pane to swtich between different kind of side panes. Currently there are only “Places” and “Directory Tree”. Later I plan to add more modes.

I also reworked the tabbed browsing part yesterday. Due to the limitations of GTK+, I did some dirty hacks for it to reduce resource usage. This comes at the price of less readable source code, though. After the tab-browsing rework, I fixed an old bug causing incorrect and outdated info shown in status bar so now the info in status bar is up-to-date most of the times.  Later, I’ll try to add a “Reload” button so remote filesystems without notifications on changes can be refreshed manually.

To test the latest features, grab the source code from git.

You have to install libfm first:
git://pcmanfm.git.sourceforge.net/gitroot/pcmanfm/libfm
This is the supporting library required by PCManFM.

Then install pcmanfm. Notice that the new feature is in "tab-rework" branch, not in "master"
git://pcmanfm.git.sourceforge.net/gitroot/pcmanfm/pcmanfm

If you don’t know how to compile libfm/pcmanfm from source code, read this:

http://wiki.lxde.org/en/PCManFM_build_and_setup_guide

Now, it’s time to fix the remaining bugs in the bug tracker and keep heading for 1.0 release.
Cheers!