Commit 94520476 by Tecnicos

Actualizado el archivo de la carpeta

parent 35d3725a
Showing with 26 additions and 19 deletions
...@@ -8,40 +8,46 @@ import 'formato.dart'; ...@@ -8,40 +8,46 @@ import 'formato.dart';
class Carpeta extends ElementoSeleccionable { class Carpeta extends ElementoSeleccionable {
final Directory _directory; final Directory _directory;
bool _incluirSubcarpetas = false; bool _incluirSubcarpetas = false;
// bool _open = false;
final List<InfoFormato> _formatos = <InfoFormato>[]; final List<InfoFormato> _formatos = <InfoFormato>[];
final _elementos = <FileSystemEntity>[]; final _elementos = <FileSystemEntity>[];
Directory get directory => _directory; Directory get directory => _directory;
List<InfoFormato> get formatos => List.unmodifiable(_formatos); List<InfoFormato> get formatos => List.unmodifiable(_formatos);
List<FileSystemEntity> get elementos => List.unmodifiable(_elementos); List<FileSystemEntity> get elementos => List.unmodifiable(_elementos);
// bool get isOpen => _open;
bool get incluyeSubcarpetas => _incluirSubcarpetas; bool get incluyeSubcarpetas => _incluirSubcarpetas;
Carpeta({required super.id, required Directory directory}): Carpeta({required super.id, required Directory directory}):
_directory = directory, _directory = directory,
super(nombre: directory.path.split('/').last, icon: const Icon(Icons.folder_outlined)) super(nombre: directory.path.split('/').last, icon: const Icon(Icons.folder_outlined))
{ {
final elementos = directory.listSync(recursive: _incluirSubcarpetas, followLinks: false); final archivos = directory.listSync(recursive: false, followLinks: false);
// Ahora mismo no funciona por tema permisos pero Diego está trabajando en ello for(var a in archivos) {
for(var fse in elementos) { Formato? f = Formato.fromExtension(a.path.split(".").last);
Formato? f = Formato.fromExtension(fse.path.split(".").last); if(f != null){
if (f != null) { final i = InfoFormato(
/* formato: f,
Creo que podríamos usar mejor _elementos que _formatos
para la construcción de las CarpetaWidget, pero no voy a
quitar _formatos para que la pagina de configuración de la
carpeta siga funcionando
*/
_formatos.add(
InfoFormato (
carpeta: this, carpeta: this,
subCarpeta: false);
if(!_formatos.contains(i)){
_formatos.add(i);
}
}
}
final subcarpeta = directory.listSync(recursive: true, followLinks: false);
for(var a in subcarpeta) {
Formato? f = Formato.fromExtension(a.path.split(".").last);
if(f != null){
final i = InfoFormato(
formato: f, formato: f,
) carpeta: this,
); subCarpeta: true);
_elementos.add(fse); if(!_formatos.contains(i)){
_formatos.add(i);
}
} }
} }
} }
/* /*
...@@ -95,11 +101,12 @@ class Carpeta extends ElementoSeleccionable { ...@@ -95,11 +101,12 @@ class Carpeta extends ElementoSeleccionable {
class InfoFormato extends Convertible { class InfoFormato extends Convertible {
final Carpeta _carpeta; final Carpeta _carpeta;
bool seleccionado; bool seleccionado;
bool subCarpeta;
Carpeta get carpeta => _carpeta; Carpeta get carpeta => _carpeta;
InfoFormato({required Formato formato, required Carpeta carpeta, InfoFormato({required Formato formato, required Carpeta carpeta,
bool? seleccionado}): bool? seleccionado, required bool this.subCarpeta}):
_carpeta = carpeta, _carpeta = carpeta,
seleccionado = seleccionado ?? false, seleccionado = seleccionado ?? false,
super( super(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment