Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.1:Update
kdebase4-runtime
07438391-kderuntime-nepomuk-47branch-reindexing...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 07438391-kderuntime-nepomuk-47branch-reindexing.diff of Package kdebase4-runtime
commit 074383916dfdfb2cd5cf2b5dd269715229465366 Author: Sebastian Trueg <trueg@kde.org> Date: Mon Oct 24 20:48:07 2011 +0200 Always re-index files on close after write events. This is required since mmapped files do not create modification events while being written. diff --git a/nepomuk/services/filewatch/nepomukfilewatch.cpp b/nepomuk/services/filewatch/nepomukfilewatch.cpp index 41d7de7..1ec2db3 100644 --- a/nepomuk/services/filewatch/nepomukfilewatch.cpp +++ b/nepomuk/services/filewatch/nepomukfilewatch.cpp @@ -97,13 +97,9 @@ namespace { //Only watch the strigi index folders for file creation and change. if( Nepomuk::StrigiServiceConfig::self()->shouldFolderBeIndexed( path ) ) { - modes |= KInotify::EventCreate; - modes |= KInotify::EventModify; modes |= KInotify::EventCloseWrite; } else { - modes &= (~KInotify::EventCreate); - modes &= (~KInotify::EventModify); modes &= (~KInotify::EventCloseWrite); } @@ -150,10 +146,6 @@ Nepomuk::FileWatch::FileWatch( QObject* parent, const QList<QVariant>& ) this, SLOT( slotFileMoved( QString, QString ) ) ); connect( m_dirWatch, SIGNAL( deleted( QString, bool ) ), this, SLOT( slotFileDeleted( QString, bool ) ) ); - connect( m_dirWatch, SIGNAL( created( QString ) ), - this, SLOT( slotFileCreated( QString ) ) ); - connect( m_dirWatch, SIGNAL( modified( QString ) ), - this, SLOT( slotFileModified( QString ) ) ); connect( m_dirWatch, SIGNAL( closedWrite( QString ) ), this, SLOT( slotFileClosedAfterWrite( QString ) ) ); connect( m_dirWatch, SIGNAL( watchUserLimitReached() ), @@ -200,7 +192,7 @@ void Nepomuk::FileWatch::watchFolder( const QString& path ) #ifdef BUILD_KINOTIFY if ( m_dirWatch && !m_dirWatch->watchingPath( path ) ) m_dirWatch->addWatch( path, - KInotify::WatchEvents( KInotify::EventMove|KInotify::EventDelete|KInotify::EventDeleteSelf|KInotify::EventCreate|KInotify::EventModify|KInotify::EventCloseWrite ), + KInotify::WatchEvents( KInotify::EventMove|KInotify::EventDelete|KInotify::EventDeleteSelf|KInotify::EventCloseWrite ), KInotify::WatchFlags() ); #endif } @@ -243,32 +235,11 @@ void Nepomuk::FileWatch::slotFileDeleted( const QString& urlString, bool isDir ) } -void Nepomuk::FileWatch::slotFileCreated( const QString& path ) -{ - if( StrigiServiceConfig::self()->shouldBeIndexed(path) ) { - // we only cache the file and wait until it has been closed, ie. the writing has been finished - m_modifiedFilesCache.insert(path); - } -} - - -void Nepomuk::FileWatch::slotFileModified( const QString& path ) -{ - if( StrigiServiceConfig::self()->shouldBeIndexed(path) ) { - // we only cache the file and wait until it has been closed, ie. the writing has been finished - m_modifiedFilesCache.insert(path); - } -} - - void Nepomuk::FileWatch::slotFileClosedAfterWrite( const QString& path ) { - // we only need to update the file if it has actually been modified - QSet<KUrl>::iterator it = m_modifiedFilesCache.find(path); - if(it != m_modifiedFilesCache.end()) { + if(StrigiServiceConfig::self()->shouldBeIndexed(path)) { // we do not tell the file indexer right away but wait a short while in case the file is modified very often (irc logs for example) m_fileModificationQueue->enqueueUrl( path ); - m_modifiedFilesCache.erase(it); } } diff --git a/nepomuk/services/filewatch/nepomukfilewatch.h b/nepomuk/services/filewatch/nepomukfilewatch.h index 7f0f8fb..efd8254 100644 --- a/nepomuk/services/filewatch/nepomukfilewatch.h +++ b/nepomuk/services/filewatch/nepomukfilewatch.h @@ -72,8 +72,6 @@ namespace Nepomuk { void slotFileMoved( const QString& from, const QString& to ); void slotFileDeleted( const QString& urlString, bool isDir ); void slotFilesDeleted( const QStringList& path ); - void slotFileCreated( const QString& ); - void slotFileModified( const QString& ); void slotFileClosedAfterWrite( const QString& ); void slotMovedWithoutData( const QString& ); void connectToKDirWatch(); @@ -119,9 +117,6 @@ namespace Nepomuk { RegExpCache* m_pathExcludeRegExpCache; RemovableMediaCache* m_removableMediaCache; - /// stores all the file URLs that have been modified but not closed yet - QSet<KUrl> m_modifiedFilesCache; - /// queue used to "compress" constant file modifications like downloads ActiveFileQueue* m_fileModificationQueue; };
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor