Diffstat (limited to 'libopie2/opiecore/ofilenotify.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | libopie2/opiecore/ofilenotify.cpp | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/libopie2/opiecore/ofilenotify.cpp b/libopie2/opiecore/ofilenotify.cpp index efd041a..11d4f87 100644 --- a/libopie2/opiecore/ofilenotify.cpp +++ b/libopie2/opiecore/ofilenotify.cpp | |||
@@ -93,17 +93,17 @@ int OFileNotification::watch( const QString& path, bool sshot, OFileNotification | |||
93 | return -1; | 93 | return -1; |
94 | } | 94 | } |
95 | 95 | ||
96 | if ( notification_list.isEmpty() ) | ||
97 | { | ||
98 | OFileNotification::registerEventHandler(); | ||
99 | } | ||
100 | |||
101 | return startWatching( path, sshot, type ); | 96 | return startWatching( path, sshot, type ); |
102 | } | 97 | } |
103 | 98 | ||
104 | 99 | ||
105 | int OFileNotification::startWatching( const QString& path, bool sshot, OFileNotificationType type ) | 100 | int OFileNotification::startWatching( const QString& path, bool sshot, OFileNotificationType type ) |
106 | { | 101 | { |
102 | if ( notification_list.isEmpty() ) | ||
103 | { | ||
104 | OFileNotification::registerEventHandler(); | ||
105 | } | ||
106 | |||
107 | struct inotify_watch_request iwr; | 107 | struct inotify_watch_request iwr; |
108 | ::memset( &iwr, 0, sizeof iwr ); | 108 | ::memset( &iwr, 0, sizeof iwr ); |
109 | iwr.name = const_cast<char*>( (const char*) path ); | 109 | iwr.name = const_cast<char*>( (const char*) path ); |
@@ -255,9 +255,24 @@ ODirNotification::~ODirNotification() | |||
255 | int ODirNotification::watch( const QString& path, bool sshot, OFileNotificationType type, int recurse ) | 255 | int ODirNotification::watch( const QString& path, bool sshot, OFileNotificationType type, int recurse ) |
256 | { | 256 | { |
257 | qDebug( "ODirNotification::watch( %s, %d, 0x%08x, %d )", (const char*) path, sshot, type, recurse ); | 257 | qDebug( "ODirNotification::watch( %s, %d, 0x%08x, %d )", (const char*) path, sshot, type, recurse ); |
258 | return 0; | ||
259 | } | ||
260 | 258 | ||
259 | if ( recurse == 0 ) | ||
260 | { | ||
261 | OFileNotification* fn = new OFileNotification( this, "ODirNotification delegate" ); | ||
262 | int result = fn->startWatching( path, sshot, type ); | ||
263 | if ( result != -1 ) | ||
264 | { | ||
265 | connect( fn, SIGNAL( triggered( const QString& ) ), this, SIGNAL( triggered( const QString& ) ) ); | ||
266 | return result; | ||
267 | } | ||
268 | } | ||
269 | else | ||
270 | { | ||
271 | qDebug( "ODirNotification::watch(), recursion not yet implemented... :)" ); | ||
272 | return -1; | ||
261 | } | 273 | } |
262 | |||
263 | } \ No newline at end of file | 274 | } \ No newline at end of file |
275 | |||
276 | } // namespace Ui | ||
277 | |||
278 | } // namespace Opie | ||