summaryrefslogtreecommitdiff
path: root/libopie2/opiecore/ofilenotify.cpp
Unidiff
Diffstat (limited to 'libopie2/opiecore/ofilenotify.cpp') (more/less context) (show whitespace changes)
-rw-r--r--libopie2/opiecore/ofilenotify.cpp55
1 files changed, 45 insertions, 10 deletions
diff --git a/libopie2/opiecore/ofilenotify.cpp b/libopie2/opiecore/ofilenotify.cpp
index c221e58..efd041a 100644
--- a/libopie2/opiecore/ofilenotify.cpp
+++ b/libopie2/opiecore/ofilenotify.cpp
@@ -82,4 +82,15 @@ int OFileNotification::watch( const QString& path, bool sshot, OFileNotification
82{ 82{
83 if ( QFile::exists( path ) ) 83 // check if path exists and is a regular file
84 struct stat s;
85 if ( ::stat( (const char*) path, &s ) == -1 )
84 { 86 {
87 qWarning( "OFileNotification::watch(): Can't watch '%s': %s.", (const char*) path, strerror( errno ) );
88 return -1;
89 }
90 if ( !S_ISREG( s.st_mode ) )
91 {
92 qWarning( "OFileNotification::watch(): Can't watch '%s': %s.", (const char*) path, "not a regular file" );
93 return -1;
94 }
95
85 if ( notification_list.isEmpty() ) 96 if ( notification_list.isEmpty() )
@@ -89,2 +100,8 @@ int OFileNotification::watch( const QString& path, bool sshot, OFileNotification
89 100
101 return startWatching( path, sshot, type );
102}
103
104
105int OFileNotification::startWatching( const QString& path, bool sshot, OFileNotificationType type )
106{
90 struct inotify_watch_request iwr; 107 struct inotify_watch_request iwr;
@@ -103,2 +120,3 @@ int OFileNotification::watch( const QString& path, bool sshot, OFileNotification
103 notification_list.insert( _wd, this ); 120 notification_list.insert( _wd, this );
121 _path = path;
104 _multi = !sshot; 122 _multi = !sshot;
@@ -109,8 +127,2 @@ int OFileNotification::watch( const QString& path, bool sshot, OFileNotification
109 } 127 }
110 else
111 {
112 qWarning( "OFileNotification::watch(): Can't watch '%s': %s.", (const char*) path, strerror( errno ) );
113 return -1;
114 }
115}
116 128
@@ -144,3 +156,3 @@ bool OFileNotification::activate()
144{ 156{
145 emit triggered(); 157 emit triggered( _path );
146 _signal.activate(); 158 _signal.activate();
@@ -151,3 +163,3 @@ bool OFileNotification::activate()
151 163
152void OFileNotification::singleShot( const QString& path, QObject* receiver, const char* member, OFileNotificationType type ) 164bool OFileNotification::singleShot( const QString& path, QObject* receiver, const char* member, OFileNotificationType type )
153{ 165{
@@ -155,3 +167,3 @@ void OFileNotification::singleShot( const QString& path, QObject* receiver, cons
155 ofn->_signal.connect( receiver, member ); 167 ofn->_signal.connect( receiver, member );
156 ofn->watch( path, true, type ); 168 return ofn->watch( path, true, type ) != -1;
157} 169}
@@ -220,2 +232,3 @@ void OFileNotification::unregisterEventHandler()
220{ 232{
233 if ( _sn ) delete _sn;
221 if ( OFileNotification::_fd ) 234 if ( OFileNotification::_fd )
@@ -225,4 +238,26 @@ void OFileNotification::unregisterEventHandler()
225 238
239//=================================================================================================
240// ODirNotification
241//=================================================================================================
242ODirNotification::ODirNotification( QObject* parent, const char* name )
243 :QObject( parent, name )
244{
245 qDebug( "ODirNotification::ODirNotification()" );
246}
247
248
249ODirNotification::~ODirNotification()
250{
251 qDebug( "ODirNotification::~ODirNotification()" );
252}
253
226 254
255int ODirNotification::watch( const QString& path, bool sshot, OFileNotificationType type, int recurse )
256{
257 qDebug( "ODirNotification::watch( %s, %d, 0x%08x, %d )", (const char*) path, sshot, type, recurse );
258 return 0;
227} 259}
260
261}
262
228} 263}