Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Rafa Castillo Passols
/
Prototipo-Multimedia
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
94d88125
authored
May 22, 2025
by
Rafa Castillo Passols
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Primera versión de la página de ajustes
parent
d8b5d872
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
141 additions
and
16 deletions
lib/paginas/pagina_ajustes.dart
lib/paginas/pagina_principal.dart
lib/paginas/paginas.dart
lib/paginas/pagina_ajustes.dart
0 → 100644
View file @
94d88125
import
'package:flutter/material.dart'
;
class
PaginaAjustes
extends
StatefulWidget
{
static
const
opcionesModoConversion
=
<
String
>[
"Copiar"
,
"Comprimir"
,
"Preguntar siempre"
];
static
const
opcionesIncluirSubcarpetas
=
<
String
>[
"Siempre"
,
"Nunca"
];
// Si hemos elegido una carpeta entonces se tendría que mostrar
static
const
opcionesCarpetaSalida
=
<
String
>[
"Elegir"
,
"Preguntar siempre"
];
const
PaginaAjustes
({
super
.
key
});
@override
State
<
PaginaAjustes
>
createState
()
=>
_PaginaAjustesState
();
}
class
_PaginaAjustesState
extends
State
<
PaginaAjustes
>
{
// Indices de los valores seleccionados de cada opcion
int
modoConversion
=
0
;
int
incluirSubcarpeta
=
0
;
int
carpetaSalida
=
0
;
String
subtituloModoConversion
=
"Copiar / Comprimir / Preguntar siempre"
;
String
subtituloIncluirSubcarpetas
=
"Siempre / Nunca"
;
String
subtituloCarpetaSalida
=
"Preguntar siempre / Elegir"
;
@override
Widget
build
(
BuildContext
context
)
{
return
Scaffold
(
appBar:
AppBar
(
title:
const
Text
(
"Ajustes"
),
backgroundColor:
Theme
.
of
(
context
).
primaryColor
,
),
body:
ListView
(
children:
[
InkWell
(
onTap:
()
{
var
callbacks
=
<
VoidCallback
>[];
PaginaAjustes
.
opcionesModoConversion
.
asMap
().
forEach
(
(
index
,
opcion
)
=>
callbacks
.
add
(()
{
setState
(()
{
modoConversion
=
index
;});
Navigator
.
pop
(
context
);
})
);
mostrarDialogoOpciones
(
opciones:
PaginaAjustes
.
opcionesModoConversion
,
callbacks:
callbacks
,
seleccionado:
modoConversion
);
},
child:
ListTile
(
title:
const
Text
(
"Modo de conversión"
),
subtitle:
Text
(
PaginaAjustes
.
opcionesModoConversion
[
modoConversion
]),
),
),
InkWell
(
onTap:
()
{
var
callbacks
=
<
VoidCallback
>[];
PaginaAjustes
.
opcionesIncluirSubcarpetas
.
asMap
().
forEach
(
(
index
,
opcion
)
=>
callbacks
.
add
(()
{
setState
(()
{
incluirSubcarpeta
=
index
;});
Navigator
.
pop
(
context
);
})
);
mostrarDialogoOpciones
(
opciones:
PaginaAjustes
.
opcionesIncluirSubcarpetas
,
callbacks:
callbacks
,
seleccionado:
incluirSubcarpeta
);
},
child:
ListTile
(
title:
const
Text
(
"Incluir subcarpetas"
),
subtitle:
Text
(
PaginaAjustes
.
opcionesIncluirSubcarpetas
[
incluirSubcarpeta
]),
),
),
InkWell
(
onTap:
()
{
var
callbacks
=
<
VoidCallback
>[];
PaginaAjustes
.
opcionesCarpetaSalida
.
asMap
().
forEach
(
(
index
,
opcion
)
=>
callbacks
.
add
(()
{
setState
(()
{
carpetaSalida
=
index
;});
Navigator
.
pop
(
context
);
})
);
mostrarDialogoOpciones
(
opciones:
PaginaAjustes
.
opcionesCarpetaSalida
,
callbacks:
callbacks
,
seleccionado:
carpetaSalida
);
},
child:
ListTile
(
title:
const
Text
(
"Carpeta de salida"
),
subtitle:
Text
(
PaginaAjustes
.
opcionesCarpetaSalida
[
carpetaSalida
]),
),
),
InkWell
(
onTap:
()
{},
child:
ListTile
(
title:
const
Text
(
"Creadores"
),
),
),
],
),
);
}
Future
<
T
?>
mostrarDialogoOpciones
<
T
>({
required
List
<
String
>
opciones
,
required
List
<
VoidCallback
>
callbacks
,
required
int
seleccionado
})
{
var
listaOpciones
=
<
Widget
>[];
opciones
.
asMap
().
forEach
((
index
,
opcion
)
{
listaOpciones
.
add
(
ListTile
(
leading:
Radio
<
int
>(
value:
index
,
groupValue:
seleccionado
,
onChanged:
(
int
?
changed
)
{
callbacks
[
index
]();}
),
title:
Text
(
opcion
),
)
);
});
return
showDialog
(
context:
context
,
builder:
(
context
)
=>
SimpleDialog
(
children:
listaOpciones
,)
);
}
}
lib/paginas/pagina_principal.dart
View file @
94d88125
...
...
@@ -42,20 +42,9 @@ class PaginaPrincipal extends StatelessWidget {
color:
Colors
.
white
,
),
onPressed:
()
{
showDialog
(
context:
context
,
builder:
(
context
)
{
return
AlertDialog
(
content:
Text
(
'Funcionalidad a implementar'
),
actions:
[
TextButton
(
onPressed:
()
=>
Navigator
.
of
(
context
).
pop
(),
child:
const
Text
(
'CLOSE'
),
)
]
);
}
);
Navigator
.
push
(
context
,
MaterialPageRoute
(
builder:
(
context
)
=>
PaginaAjustes
()
));
}
)
]
...
...
lib/paginas/paginas.dart
View file @
94d88125
...
...
@@ -5,4 +5,5 @@ export 'pagina_fotograma.dart';
export
'pagina_metadatos.dart'
;
export
'pagina_principal.dart'
;
export
'pagina_principal_llena.dart'
;
export
'pagina_principal_vacia.dart'
;
\ No newline at end of file
export
'pagina_principal_vacia.dart'
;
export
'pagina_ajustes.dart'
;
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment