quickSettingsListBuilder method
Implementation
Builder quickSettingsListBuilder() {
return Builder(
builder: (context) {
List<QuickActionItem> quickActions = QuickAction().getFromPrefs();
quickSettings = [];
for (int i = 0; i < quickActions.length; i++) {
if (opened[i] == null) {
opened[i] = false;
}
final version = quickActions[i].version.isNotEmpty
? quickActions[i].version
: '0.0.0';
final author = quickActions[i].author.isNotEmpty
? quickActions[i].author
: 'you';
quickSettings.add(Padding(
padding: const EdgeInsets.only(left: 8.0, right: 8.0, top: 8.0),
child: Column(
children: [
Expander(
initiallyExpanded: false,
header: RichText(
text: TextSpan(children: [
TextSpan(
text: quickActions[i].name,
style: TextStyle(
color: AppTheme().textColor,
),
),
TextSpan(
text: ' [v$version] ',
style: TextStyle(
color: AppTheme().textColor.withOpacity(0.5),
),
),
TextSpan(
text: '(by $author)',
style: TextStyle(
fontSize: 13.0,
color: AppTheme().color,
),
),
]),
),
trailing: Row(
children: [
IconButton(
icon: const Icon(FluentIcons.edit),
onPressed: () {
setState(() {
showInput = true;
nameController.text = quickActions[i].name;
contentController.text = quickActions[i].content;
});
},
),
IconButton(
icon: const Icon(FluentIcons.delete),
onPressed: () {
// Open remove dialog
dialog(
item: quickActions[i],
title: 'deleteinstancequestion-text'
.i18n([quickActions[i].name]),
body: 'deleteinstancebody-text'.i18n(),
submitText: 'delete-text'.i18n(),
submitInput: false,
submitStyle: ButtonStyle(
backgroundColor: ButtonState.all(Colors.red),
foregroundColor:
ButtonState.all(Colors.white),
),
onSubmit: (inputText) {
QuickAction.removeFromPrefs(quickActions[i]);
setState(() {});
});
},
),
],
),
content: SizedBox(
height: MediaQuery.of(context).size.height * 0.5,
child: SingleChildScrollView(
child: Opacity(
opacity: 0.7,
child: SizedBox(
width: MediaQuery.of(context).size.width,
child: Padding(
padding: const EdgeInsets.only(
left: 20.0, right: 20.0, bottom: 4.0),
child: SelectableText(quickActions[i].content),
)),
),
),
)),
],
),
));
}
if (quickSettings.isNotEmpty) {
return Column(children: quickSettings);
} else {
return Padding(
padding:
EdgeInsets.only(top: MediaQuery.of(context).size.height / 2.5),
child: Center(
child: Text('addquickactioninfo-text'.i18n()),
),
);
}
},
);
}