added proper editor buttons to prj card, APP BROKEN HERE.
This commit is contained in:
@@ -1,37 +1,47 @@
|
||||
import "package:flutter/material.dart";
|
||||
import "package:prod/models/editor.dart";
|
||||
import "package:prod/models/globalModel.dart";
|
||||
import "package:prod/models/project.dart";
|
||||
import "package:provider/provider.dart";
|
||||
import "package:yaru/yaru.dart";
|
||||
|
||||
class EditorSelector extends StatelessWidget {
|
||||
const EditorSelector(this.turns, {super.key});
|
||||
const EditorSelector(this.turns, this.id, {super.key});
|
||||
final int id;
|
||||
final int turns;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Row(
|
||||
children: [
|
||||
RotatedBox(
|
||||
child: Icon(Icons.rounded_corner_rounded),
|
||||
quarterTurns: this.turns,
|
||||
),
|
||||
YaruPopupMenuButton<Editor>(
|
||||
child: Text("Nullie"),
|
||||
onSelected: (a) {
|
||||
Provider.of<GlobalModel>(context, listen: false);
|
||||
print("$a");
|
||||
},
|
||||
itemBuilder: (context) {
|
||||
return Provider.of<GlobalModel>(
|
||||
context,
|
||||
listen: false,
|
||||
).editors.map((a) {
|
||||
return PopupMenuItem<Editor>(value: a, child: Text("${a.name}"));
|
||||
}).toList();
|
||||
},
|
||||
),
|
||||
],
|
||||
GlobalModel gm = Provider.of<GlobalModel>(context);
|
||||
Project prj = gm.nthPrj(id);
|
||||
return DropdownMenu(
|
||||
enableSearch: true,
|
||||
enableFilter: true,
|
||||
initialSelection: prj.getEditor(turns),
|
||||
leadingIcon: RotatedBox(
|
||||
child: Icon(Icons.rounded_corner_rounded),
|
||||
quarterTurns: turns,
|
||||
),
|
||||
onSelected: (a) {
|
||||
print("$a");
|
||||
prj.setEditor(turns, a);
|
||||
gm.updatePrj(id, prj);
|
||||
},
|
||||
|
||||
dropdownMenuEntries: Provider.of<GlobalModel>(context).editors.map((a) {
|
||||
return DropdownMenuEntry(
|
||||
label: a.name,
|
||||
labelWidget: Column(
|
||||
crossAxisAlignment: .start,
|
||||
mainAxisAlignment: .center,
|
||||
children: [
|
||||
Text("${a.name}", style: TextStyle(fontSize: 20)),
|
||||
Text("${a.commandTemplate}", style: TextStyle(fontSize: 12)),
|
||||
],
|
||||
),
|
||||
value: a.id,
|
||||
);
|
||||
}).toList(),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
21
lib/widgets/launcherButton.dart
Normal file
21
lib/widgets/launcherButton.dart
Normal file
@@ -0,0 +1,21 @@
|
||||
import "package:flutter/material.dart";
|
||||
import "package:prod/models/editor.dart";
|
||||
import "package:prod/models/globalModel.dart";
|
||||
import "package:provider/provider.dart";
|
||||
|
||||
class LauncherButton extends StatelessWidget {
|
||||
const LauncherButton(this.eid, {super.key});
|
||||
final String? eid;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
GlobalModel gm = Provider.of<GlobalModel>(context, listen: false);
|
||||
final Editor edt = gm.nthEdt(gm.id2EdtMap[eid]!);
|
||||
return eid == null
|
||||
? Container()
|
||||
: Expanded(
|
||||
flex: 1,
|
||||
child: TextButton(child: Text("${edt.sname}"), onPressed: () {}),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@ import "package:flutter/material.dart";
|
||||
import "package:prod/models/editor.dart";
|
||||
import "package:prod/models/globalModel.dart";
|
||||
import "package:prod/models/project.dart";
|
||||
import "package:prod/widgets/launcherButton.dart";
|
||||
import "package:provider/provider.dart";
|
||||
import "package:yaru/yaru.dart";
|
||||
import "package:process_run/shell.dart";
|
||||
@@ -75,31 +76,10 @@ class ProjectCard extends StatelessWidget {
|
||||
Row(
|
||||
children: [
|
||||
Column(
|
||||
children: [
|
||||
Expanded(
|
||||
flex: 1,
|
||||
child: TextButton(child: Text("Ze"), onPressed: () {}),
|
||||
),
|
||||
Expanded(
|
||||
flex: 1,
|
||||
child: TextButton(child: Text("Ze"), onPressed: () {}),
|
||||
),
|
||||
],
|
||||
children: [LauncherButton(prj.e0), LauncherButton(prj.e1)],
|
||||
),
|
||||
Column(
|
||||
children: [
|
||||
Expanded(
|
||||
child: TextButton(child: Text("Ze"), onPressed: () {}),
|
||||
),
|
||||
true
|
||||
? Expanded(
|
||||
child: TextButton(
|
||||
child: Text("Ze"),
|
||||
onPressed: () {},
|
||||
),
|
||||
)
|
||||
: Container(),
|
||||
],
|
||||
children: [LauncherButton(prj.e2), LauncherButton(prj.e3)],
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user