Re: Gio::FileMonitor::signal_changed()
- From: Kjell Ahlstedt <kjellahlstedt gmail com>
- To: Phil Wolff <pwolff centurylink net>
- Cc: "gtkmm-list gnome org" <gtkmm-list gnome org>
- Subject: Re: Gio::FileMonitor::signal_changed()
- Date: Thu, 28 Dec 2017 20:15:35 +0100
I get the same results in Ubuntu 17.10. other_file is nullptr if a file
is moved into or out of the monitored directory. I don't know how to
interpret "if supported by the backend". Perhaps the backend in our case
doesn't give any information about what happens outside the monitored
directory. This is something you should ask on a gtk+ list, probably
gtk-app-devel-list. The documentation of signal_changed(), like most
documentation of glibmm classes, is copied from glib, and slightly
modified for C++.
Kjell
On 2017-11-18 22:17, Phil Wolff wrote:
From the Gio::FileMonitor::signal_changed() documentation:
"If using FILE_MONITOR_WATCH_MOVES on a directory monitor, and the
information is available (and if supported by the backend), event_type
may be FILE_MONITOR_EVENT_RENAMED, FILE_MONITOR_EVENT_MOVED_IN or
FILE_MONITOR_EVENT_MOVED_OUT."
I'm using Ubuntu 17.04 (glibmm-2.4 version 2.50.0) on an EXT4 file
system, and I obtain the FileMonitor using the
FILE_MONITOR_WATCH_MOVES flag. My callback receives all three of these
event types, so presumably the information *is* available and supported.
More from the docs:
"In all cases file will be a child of the monitored directory. For
renames, file will be the old name and other_file is the new name. For
'moved in' events, file is the name of the file that appeared and
other_file is the old name that it was moved from (in another
directory). For 'moved out' events, file is the name of the file that
used to be in this directory and other_file is the name of the file at
its new location."
My callback gets a non-null other_file *only* on a rename; other_file
is always null for either of the "moved" events. That's not the
behavior described above, but it does match what the docs say about
the deprecated Gio::FILE_MONITOR_SEND_MOVED flag (which I am *not*
using):
"If using the deprecated flag FILE_MONITOR_SEND_MOVED flag and
event_type is FILE_MONITOR_EVENT_MOVED, file will be set to a File
containing the old path, and other_file will be set to a File
containing the new path.
"In all the other cases, other_file will be set to #nullptr."
There's obviously a problem here, but it's not clear to me where it lies.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]