author | mickeyl <mickeyl> | 2005-05-06 20:18:58 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2005-05-06 20:18:58 (UTC) |
commit | e8bb0ef7701e6bb565dc178424687e82b12bd8ec (patch) (unidiff) | |
tree | db22a14ae11f6ec2b942b51af6def4e03d3a8f50 /libopie2 | |
parent | 8b1a64ffe497f5395544c6702225003aca293f80 (diff) | |
download | opie-e8bb0ef7701e6bb565dc178424687e82b12bd8ec.zip opie-e8bb0ef7701e6bb565dc178424687e82b12bd8ec.tar.gz opie-e8bb0ef7701e6bb565dc178424687e82b12bd8ec.tar.bz2 |
first sketch at ODirNotification class
-rw-r--r-- | libopie2/opiecore/ofilenotify.cpp | 31 | ||||
-rw-r--r-- | libopie2/opiecore/ofilenotify.h | 10 |
2 files changed, 31 insertions, 10 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 | |||
@@ -94,9 +94,4 @@ int OFileNotification::watch( const QString& path, bool sshot, OFileNotification | |||
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 | } |
@@ -105,4 +100,9 @@ int OFileNotification::watch( const QString& path, bool sshot, OFileNotification | |||
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 ); |
@@ -256,8 +256,23 @@ int ODirNotification::watch( const QString& path, bool sshot, OFileNotificationT | |||
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; | ||
273 | } | ||
261 | } | 274 | } |
262 | 275 | ||
263 | } \ No newline at end of file | 276 | } // namespace Ui |
277 | |||
278 | } // namespace Opie | ||
diff --git a/libopie2/opiecore/ofilenotify.h b/libopie2/opiecore/ofilenotify.h index 41ba84d..3eb917e 100644 --- a/libopie2/opiecore/ofilenotify.h +++ b/libopie2/opiecore/ofilenotify.h | |||
@@ -130,5 +130,5 @@ class OFileNotification : public QObject | |||
130 | * { | 130 | * { |
131 | * OApplication a( argc, argv, "File Notification Example" ); | 131 | * OApplication a( argc, argv, "File Notification Example" ); |
132 | * OFileNotification::singleShot( "/tmp/quit", &a, SLOT(quit()), Create ); | 132 | * OFileNotification::singleShot( "/tmp/quit", &a, SLOT(quit()), Access ); |
133 | * ... // create and show your widgets | 133 | * ... // create and show your widgets |
134 | * return a.exec(); | 134 | * return a.exec(); |
@@ -136,5 +136,5 @@ class OFileNotification : public QObject | |||
136 | * </pre> | 136 | * </pre> |
137 | * | 137 | * |
138 | * This sample program automatically terminates when the file "/tmp/quit" has been created. | 138 | * This sample program automatically terminates when the file "/tmp/quit" has been accessed. |
139 | * | 139 | * |
140 | * | 140 | * |
@@ -223,4 +223,10 @@ class ODirNotification : public QObject | |||
223 | **/ | 223 | **/ |
224 | int watch( const QString& path, bool sshot = false, OFileNotificationType type = Modify, int recurse = 0 ); | 224 | int watch( const QString& path, bool sshot = false, OFileNotificationType type = Modify, int recurse = 0 ); |
225 | |||
226 | signals: | ||
227 | /** | ||
228 | * This signal is emitted if an event happens of the specified type happens to the directory being watched. | ||
229 | **/ | ||
230 | void triggered( const QString& name ); | ||
225 | }; | 231 | }; |
226 | 232 | ||