2013/2/19 <pcma...@gmail.com>:
What's the advantage of this approach compared to say using Solid to
enumerate volumes and mount file systems with FUSE?
This is the direction I'm taking with Hawaii file manager and should
be DE agnostic without even involving wrappers around C code.
Out of curiosity, do you know what was gvfs goal in the first place,
was FUSE so bad?
--
Out of the box experience
http://www.maui-project.org/
--
--
You received this message because you are subscribed to the Google
Groups "Razor-qt" group.
For more options, visit this group at
http://groups.google.com/group/razor-qt?hl=en
---
You received this message because you are subscribed to the Google Groups "Razor-qt" group.
To unsubscribe from this group and stop receiving emails from it, send an email to razor-qt+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
One thing that might not be relevant for Hawaii and Razor-Qt is that FUSE is,as far as I know, a Linux-only technology.
The advantages of using gio/gvfs are:
1. It has full support of "cancelable" async I/O operations. FUSE
supports multi-threading if the backends developed with FUSE implement
it. However, the operations are not cancellable.
2. Many FUSE backends are buggy and no more maintained, such as the
ones for samba.
3. FUSE lack proper UI integration. Most of the existing backends
won't show a dialog asking for username/password, but gio does.
4. gio/gvfs is actively developed and most of the backends work well
5. Using it to enumerate volumes has additional benefit. As everyone
knows, the upstream developers of udisks, upower, and u*everything
likes to break backward compatibility very much. They always enjoy
rewriting everything during every release. I don't want to waste my
time follow the insane changes and fix broken compatibility all the
times. Let them do it. I use their high level wrapper and save the
time to do more important things.
Besides, in my file manager, I wrote specialized code for local file
I/O and bypass gio/gvfs layer. So things are faster than ordinary gio
using programs.
This is the rationale behind the whole thing.
In Hawaii's case the latter part isn't that problematic since they are usingSolid which also keeps a stable interface above low-level hardware APIs.
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
Thank you.
You need the latest version of libfm.
The old version accidentally used a C++ keyword in C header file.
So that's why the code cannot compile.
pkg_check_modules(LIBFM REQUIRED
glib-2.0
gio-2.0
gio-unix-2.0
libfm
libstartup-notification-1.0
x11
)
msg = tr("Free space: %1 (Total: %2)").arg(free_str).arg(total_str);on
msg = tr("Free space: %1 (Total: %2)").arg(QString::fromLocal8Bit(free_str)).arg(QString::fromLocal8Bit(total_str));
// TODO: implement single instance
// 1. use dbus?
// 2. Try QtSingleApplication http://doc.qt.digia.com/solutions/4/qtsingleapplication/qtsingleapplication.html
P.S. The libfm is a library, so maybe libfm-qt should be library too? Qt wrapper library under libfm. But program should be called pacman-qt?
Good program, thanks.I have comments:1. Use REQUIRED' argument in the pkg_check_modulespkg_check_modules(LIBFM REQUIREDglib-2.0
gio-2.0
gio-unix-2.0
libfm
libstartup-notification-1.0
x11
)
3. In the pacmanfm.cpp I found next comment// TODO: implement single instance// 1. use dbus?// 2. Try QtSingleApplication http://doc.qt.digia.com/solutions/4/qtsingleapplication/qtsingleapplication.htmlWhy you want to have single instance for file manager?
P.S. The libfm is a library, so maybe libfm-qt should be library too? Qt wrapper library under libfm. But program should be called pacman-qt?
Thank you for the tip! I already fix them.
About single instance, I finally did it with dbus.
Single instance really helps for a file manager, especially when you
manages the desktop icons. Every new window opened will be in the same
process so all cached resources are shared. This has speed and memory
advantages.