| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 'use strict'; | 5 'use strict'; |
| 6 | 6 |
| 7 /** | 7 /** |
| 8 * Scanner of the entries. | 8 * Scanner of the entries. |
| 9 * @constructor | 9 * @constructor |
| 10 */ | 10 */ |
| (...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 316 entriesCallback(entries); | 316 entriesCallback(entries); |
| 317 successCallback(); | 317 successCallback(); |
| 318 }.bind(this)); | 318 }.bind(this)); |
| 319 }; | 319 }; |
| 320 | 320 |
| 321 /** | 321 /** |
| 322 * This class manages filters and determines a file should be shown or not. | 322 * This class manages filters and determines a file should be shown or not. |
| 323 * When filters are changed, a 'changed' event is fired. | 323 * When filters are changed, a 'changed' event is fired. |
| 324 * | 324 * |
| 325 * @param {MetadataCache} metadataCache Metadata cache service. | 325 * @param {MetadataCache} metadataCache Metadata cache service. |
| 326 * @param {boolean} showHidden If files starting with '.' are shown. | |
| 327 * @constructor | 326 * @constructor |
| 328 * @extends {cr.EventTarget} | 327 * @extends {cr.EventTarget} |
| 329 */ | 328 */ |
| 330 function FileFilter(metadataCache, showHidden) { | 329 function FileFilter(metadataCache) { |
| 331 /** | 330 /** |
| 332 * @type {MetadataCache} | 331 * @type {MetadataCache} |
| 333 * @private | 332 * @private |
| 334 */ | 333 */ |
| 335 this.metadataCache_ = metadataCache; | 334 this.metadataCache_ = metadataCache; |
| 336 | 335 |
| 337 /** | 336 /** |
| 338 * @type Object.<string, Function> | 337 * @type Object.<string, Function> |
| 339 * @private | 338 * @private |
| 340 */ | 339 */ |
| 341 this.filters_ = {}; | 340 this.filters_ = {}; |
| 342 this.setFilterHidden(!showHidden); | |
| 343 | 341 |
| 344 // Do not show entries marked as 'deleted'. | 342 // Do not show entries marked as 'deleted'. |
| 345 this.addFilter('deleted', function(entry) { | 343 this.addFilter('deleted', function(entry) { |
| 346 var internal = this.metadataCache_.getCached(entry, 'internal'); | 344 var internal = this.metadataCache_.getCached(entry, 'internal'); |
| 347 return !(internal && internal.deleted); | 345 return !(internal && internal.deleted); |
| 348 }.bind(this)); | 346 }.bind(this)); |
| 349 } | 347 } |
| 350 | 348 |
| 351 /* | 349 /* |
| 352 * FileFilter extends cr.EventTarget. | 350 * FileFilter extends cr.EventTarget. |
| (...skipping 12 matching lines...) Expand all Loading... |
| 365 | 363 |
| 366 /** | 364 /** |
| 367 * @param {string} name Filter identifier. | 365 * @param {string} name Filter identifier. |
| 368 */ | 366 */ |
| 369 FileFilter.prototype.removeFilter = function(name) { | 367 FileFilter.prototype.removeFilter = function(name) { |
| 370 delete this.filters_[name]; | 368 delete this.filters_[name]; |
| 371 cr.dispatchSimpleEvent(this, 'changed'); | 369 cr.dispatchSimpleEvent(this, 'changed'); |
| 372 }; | 370 }; |
| 373 | 371 |
| 374 /** | 372 /** |
| 375 * @param {boolean} value If do not show hidden files. | |
| 376 */ | |
| 377 FileFilter.prototype.setFilterHidden = function(value) { | |
| 378 if (value) { | |
| 379 this.addFilter( | |
| 380 'hidden', | |
| 381 function(entry) { return entry.name.substr(0, 1) !== '.'; } | |
| 382 ); | |
| 383 } else { | |
| 384 this.removeFilter('hidden'); | |
| 385 } | |
| 386 }; | |
| 387 | |
| 388 /** | |
| 389 * @return {boolean} If the files with names starting with "." are not shown. | |
| 390 */ | |
| 391 FileFilter.prototype.isFilterHiddenOn = function() { | |
| 392 return 'hidden' in this.filters_; | |
| 393 }; | |
| 394 | |
| 395 /** | |
| 396 * @param {Entry} entry File entry. | 373 * @param {Entry} entry File entry. |
| 397 * @return {boolean} True if the file should be shown, false otherwise. | 374 * @return {boolean} True if the file should be shown, false otherwise. |
| 398 */ | 375 */ |
| 399 FileFilter.prototype.filter = function(entry) { | 376 FileFilter.prototype.filter = function(entry) { |
| 400 for (var name in this.filters_) { | 377 for (var name in this.filters_) { |
| 401 if (!this.filters_[name](entry)) | 378 if (!this.filters_[name](entry)) |
| 402 return false; | 379 return false; |
| 403 } | 380 } |
| 404 return true; | 381 return true; |
| 405 }; | 382 }; |
| (...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 765 context, fakeDirectoryEntry, driveDirectoryEntry, query, searchType) { | 742 context, fakeDirectoryEntry, driveDirectoryEntry, query, searchType) { |
| 766 return new DirectoryContents( | 743 return new DirectoryContents( |
| 767 context, | 744 context, |
| 768 true, // Search | 745 true, // Search |
| 769 fakeDirectoryEntry, | 746 fakeDirectoryEntry, |
| 770 driveDirectoryEntry, | 747 driveDirectoryEntry, |
| 771 function() { | 748 function() { |
| 772 return new DriveMetadataSearchContentScanner(query, searchType); | 749 return new DriveMetadataSearchContentScanner(query, searchType); |
| 773 }); | 750 }); |
| 774 }; | 751 }; |
| OLD | NEW |