added proper editor buttons to prj card, APP BROKEN HERE.
All checks were successful
Build CI / AMD64 Build (push) Successful in 1m55s
Build CI / ARM64 Build (push) Successful in 7m8s

This commit is contained in:
2026-02-27 18:23:52 +05:30
parent 50c52b7619
commit 07f222a87e
7 changed files with 120 additions and 60 deletions

View File

@@ -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(),
);
}
}

View 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: () {}),
);
}
}

View File

@@ -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)],
),
],
),