summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2005-08-14 01:56:52 (UTC)
committer llornkcor <llornkcor>2005-08-14 01:56:52 (UTC)
commit11644efb6f433c5def0341b8d086804ce457d5a5 (patch) (unidiff)
tree5432a575837e77f3238aac8bdcc397586c45a21f
parent6ee18e3d11d5204ca6c8e885bc563ab34befdaec (diff)
downloadopie-11644efb6f433c5def0341b8d086804ce457d5a5.zip
opie-11644efb6f433c5def0341b8d086804ce457d5a5.tar.gz
opie-11644efb6f433c5def0341b8d086804ce457d5a5.tar.bz2
make assumption that Documents files will never be installed/written to /proc /dev /bin and similar places.. so we don't need to waste time scanning these.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/documentlist.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/core/launcher/documentlist.cpp b/core/launcher/documentlist.cpp
index fd385d6..35a5d56 100644
--- a/core/launcher/documentlist.cpp
+++ b/core/launcher/documentlist.cpp
@@ -107,33 +107,33 @@ public:
107/* 107/*
108 * scandocs will be read from Config 108 * scandocs will be read from Config
109 */ 109 */
110DocumentList::DocumentList( ServerInterface *serverGui, bool /*scanDocs*/, 110DocumentList::DocumentList( ServerInterface *serverGui, bool /*scanDocs*/,
111 QObject *parent, const char *name ) 111 QObject *parent, const char *name )
112 : QObject( parent, name ) 112 : QObject( parent, name )
113{ 113{
114 appLnkSet = new AppLnkSet( MimeType::appsFolderName() ); 114 appLnkSet = new AppLnkSet( MimeType::appsFolderName() );
115 d = new DocumentListPrivate( serverGui ); 115 d = new DocumentListPrivate( serverGui );
116 d->needToSendAllDocLinks = false; 116 d->needToSendAllDocLinks = false;
117 117
118 Config cfg( "Launcher" ); 118 Config cfg( "Launcher" );
119 cfg.setGroup( "DocTab" ); 119 cfg.setGroup( "DocTab" );
120 d->scanDocs = cfg.readBoolEntry( "Enable", true ); 120 d->scanDocs = cfg.readBoolEntry( "Enable", true );
121 odebug << "DocumentList::DocumentList() : scanDocs = " << d->scanDocs << "" << oendl; 121 odebug << "DocumentList::DocumentList() : scanDocs = " << d->scanDocs << "" << oendl;
122 122
123 QTimer::singleShot( 10, this, SLOT( startInitialScan() ) ); 123 QTimer::singleShot( 0, this, SLOT( startInitialScan() ) );
124} 124}
125 125
126void DocumentList::startInitialScan() 126void DocumentList::startInitialScan()
127{ 127{
128 reloadAppLnks(); 128 reloadAppLnks();
129 reloadDocLnks(); 129 reloadDocLnks();
130} 130}
131 131
132DocumentList::~DocumentList() 132DocumentList::~DocumentList()
133{ 133{
134 delete appLnkSet; 134 delete appLnkSet;
135 delete d; 135 delete d;
136} 136}
137 137
138 138
139void DocumentList::add( const DocLnk& doc ) 139void DocumentList::add( const DocLnk& doc )
@@ -174,33 +174,33 @@ void DocumentList::resend()
174 emit allRemoved(); 174 emit allRemoved();
175 QTimer::singleShot( 5, this, SLOT( resendWorker() ) ); 175 QTimer::singleShot( 5, this, SLOT( resendWorker() ) );
176} 176}
177 177
178 178
179void DocumentList::resendWorker() 179void DocumentList::resendWorker()
180{ 180{
181 const QList<DocLnk> &list = d->dls.children(); 181 const QList<DocLnk> &list = d->dls.children();
182 for ( QListIterator<DocLnk> it( list ); it.current(); ++it ) 182 for ( QListIterator<DocLnk> it( list ); it.current(); ++it )
183 add( *(*it) ); 183 add( *(*it) );
184 resume(); 184 resume();
185} 185}
186*/ 186*/
187 187
188void DocumentList::rescan() 188void DocumentList::rescan()
189{ 189{
190 //odebug << "rescan" << oendl; 190 owarn << "XXXXXXXXXXX rescan" << oendl;
191 pause(); 191 pause();
192 d->initialize(); 192 d->initialize();
193 resume(); 193 resume();
194} 194}
195 195
196 196
197void DocumentList::timerEvent( QTimerEvent *te ) 197void DocumentList::timerEvent( QTimerEvent *te )
198{ 198{
199 if ( te->timerId() == d->tid ) { 199 if ( te->timerId() == d->tid ) {
200 // Do 3 at a time 200 // Do 3 at a time
201 if ( d->serverGui ) 201 if ( d->serverGui )
202 d->serverGui->aboutToAddBegin(); 202 d->serverGui->aboutToAddBegin();
203 for (int i = 0; i < 3; i++ ) { 203 for (int i = 0; i < 3; i++ ) {
204 const DocLnk *lnk = d->iterate(); 204 const DocLnk *lnk = d->iterate();
205 if ( lnk ) { 205 if ( lnk ) {
206 add( *lnk ); 206 add( *lnk );
@@ -688,33 +688,35 @@ const QString DocumentListPrivate::nextFile()
688 QFileInfoList *fl = (QFileInfoList *)fil; 688 QFileInfoList *fl = (QFileInfoList *)fil;
689 unsigned int pos = listPositions[searchDepth]; 689 unsigned int pos = listPositions[searchDepth];
690 690
691 if ( pos >= fl->count() ) { 691 if ( pos >= fl->count() ) {
692 // go up a depth 692 // go up a depth
693 delete listDirs[searchDepth]; 693 delete listDirs[searchDepth];
694 listDirs[searchDepth] = 0; 694 listDirs[searchDepth] = 0;
695 lists[searchDepth] = 0; 695 lists[searchDepth] = 0;
696 listPositions[searchDepth] = 0; 696 listPositions[searchDepth] = 0;
697 searchDepth--; 697 searchDepth--;
698 } else { 698 } else {
699 const QFileInfo *fi = fl->at(pos); 699 const QFileInfo *fi = fl->at(pos);
700 listPositions[searchDepth]++; 700 listPositions[searchDepth]++;
701 QString bn = fi->fileName(); 701 QString bn = fi->fileName();
702 if ( bn[0] != '.' ) { 702 if ( bn[0] != '.' ) {
703 if ( fi->isDir() ) { 703 if ( fi->isDir() ) {
704 if ( bn != "CVS" && bn != "Qtopia" && bn != "QtPalmtop" ) { 704 if ( bn != "CVS" && bn != "Qtopia" && bn != "QtPalmtop"
705 && bn != "proc" && bn != "dev" && bn != "bin" && bn != "usr"
706 && bn != "etc" && bn != "lib" && bn != "sbin" && bn != "tmp" && bn != "var") {
705 // go down a depth 707 // go down a depth
706 QDir dir( fi->filePath() ); 708 QDir dir( fi->filePath() );
707 // odebug << "now going in to path: " << bn << "" << oendl; 709 // odebug << "now going in to path: " << bn << "" << oendl;
708 if ( !dir.exists( ".Qtopia-ignore" ) ) { 710 if ( !dir.exists( ".Qtopia-ignore" ) ) {
709 if ( searchDepth < MAX_SEARCH_DEPTH - 1) { 711 if ( searchDepth < MAX_SEARCH_DEPTH - 1) {
710 searchDepth++; 712 searchDepth++;
711 listDirs[searchDepth] = new QDir( dir ); 713 listDirs[searchDepth] = new QDir( dir );
712 lists[searchDepth] = listDirs[searchDepth]->entryInfoList(); 714 lists[searchDepth] = listDirs[searchDepth]->entryInfoList();
713 listPositions[searchDepth] = 0; 715 listPositions[searchDepth] = 0;
714 } 716 }
715 } 717 }
716 } 718 }
717 } else { 719 } else {
718 estimatedPercentScanned(); 720 estimatedPercentScanned();
719 return fl->at(pos)->filePath(); 721 return fl->at(pos)->filePath();
720 } 722 }