169 |
169 |
170 if( findPath().isEmpty() ){ |
170 if( findPath().isEmpty() ){ |
171 mFindThread->setLastResult( mFindResult ); |
171 mFindThread->setLastResult( mFindResult ); |
172 } |
172 } |
173 removeRows( 0, mFindResult.size() ); |
173 removeRows( 0, mFindResult.size() ); |
174 emit modelCountChanged( mFindResult.size() ); |
|
175 mFindThread->start(); |
174 mFindThread->start(); |
176 } |
175 } |
177 |
176 |
178 void FmFindResultModel::stop() |
177 void FmFindResultModel::stop() |
179 { |
178 { |
186 return mFindThread->isRunning(); |
185 return mFindThread->isRunning(); |
187 } |
186 } |
188 |
187 |
189 void FmFindResultModel::on_findThread_found( int count ) |
188 void FmFindResultModel::on_findThread_found( int count ) |
190 { |
189 { |
191 int size = mFindResult.size(); |
190 if( count > 0 ) { |
192 insertRows( mFindResult.size() - count, count ); |
191 int size = mFindResult.size(); |
|
192 insertRows( mFindResult.size() - count, count ); |
|
193 } |
193 emit modelCountChanged( mFindResult.size() ); |
194 emit modelCountChanged( mFindResult.size() ); |
194 } |
195 } |
195 |
196 |
196 bool FmFindResultModel::indexValid( const QModelIndex &index ) const |
197 bool FmFindResultModel::indexValid( const QModelIndex &index ) const |
197 { |
198 { |
248 { |
249 { |
249 Q_UNUSED( order ); |
250 Q_UNUSED( order ); |
250 |
251 |
251 // emit layoutAboutToBeChanged(); |
252 // emit layoutAboutToBeChanged(); |
252 |
253 |
|
254 QStringList lst; |
|
255 for (int i = 0; i < mFindResult.size(); ++i) |
|
256 lst.append( mFindResult.at(i) ); |
|
257 |
|
258 removeRows( 0, mFindResult.size() ); |
|
259 |
253 switch( ( SortFlag )column ) |
260 switch( ( SortFlag )column ) |
254 { |
261 { |
255 case Name: |
262 case Name: |
256 qSort( mFindResult.begin(), mFindResult.end(), caseNameLessThan ); |
263 qSort( lst.begin(), lst.end(), caseNameLessThan ); |
257 break; |
264 break; |
258 case Time: |
265 case Time: |
259 qSort( mFindResult.begin(), mFindResult.end(), caseTimeLessThan ); |
266 qSort( lst.begin(), lst.end(), caseTimeLessThan ); |
260 break; |
267 break; |
261 case Size: |
268 case Size: |
262 qSort( mFindResult.begin(), mFindResult.end(), caseSizeLessThan ); |
269 qSort( lst.begin(), lst.end(), caseSizeLessThan ); |
263 break; |
270 break; |
264 case Type: |
271 case Type: |
265 qSort( mFindResult.begin(), mFindResult.end(), caseTypeLessThan ); |
272 qSort( lst.begin(), lst.end(), caseTypeLessThan ); |
266 break; |
273 break; |
267 } |
274 } |
268 // emit layoutChanged(); |
275 |
269 emit refresh(); |
276 for (int i = 0; i < lst.count(); ++i) |
270 } |
277 mFindResult.append( lst.at(i) ); |
|
278 insertRows( 0, mFindResult.size() ); |
|
279 emit modelCountChanged( mFindResult.size() ); |
|
280 } |