修正基本架构逻辑,基本实现离线功能
This commit is contained in:
@@ -1,44 +1,67 @@
|
||||
package showView
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fyne.io/fyne/v2"
|
||||
"fyne.io/fyne/v2/container"
|
||||
"fyne.io/fyne/v2/data/binding"
|
||||
"fyne.io/fyne/v2/dialog"
|
||||
"fyne.io/fyne/v2/widget"
|
||||
"github.com/atotto/clipboard"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"work_cation/cfg"
|
||||
"work_cation/models"
|
||||
)
|
||||
|
||||
func ErlangCardView(w fyne.Window, data *models.ErlangCards) fyne.CanvasObject {
|
||||
if len(data.VarName) == 0 {
|
||||
return widget.NewCard(data.Title, data.Text, widget.NewButton("复制", func() {
|
||||
cleanedText := strings.ReplaceAll(data.Template, "\r", "")
|
||||
cleanedText = strings.ReplaceAll(cleanedText, "\n", "")
|
||||
err := clipboard.WriteAll(cleanedText)
|
||||
if err != nil {
|
||||
dialog.ShowError(err, w)
|
||||
return
|
||||
}
|
||||
dialog.NewInformation("复制脚本成功", data.Template, w).Show()
|
||||
}))
|
||||
}
|
||||
txtBound := binding.NewString()
|
||||
txtBound.Set(data.Template)
|
||||
txtWid := widget.NewEntryWithData(txtBound)
|
||||
|
||||
txtWid.Wrapping = fyne.TextWrapOff
|
||||
cardButton := widget.NewButton("OPEN", func() {
|
||||
go UseErlangCard(data)
|
||||
func ErlangCardNoVarView(w fyne.Window, baseInfo *models.BaseCard) (fyne.CanvasObject, error) {
|
||||
button := widget.NewButton("复制", func() {
|
||||
// 读取类型文件数据
|
||||
infoPath := filepath.Join(cfg.T.CardDir, baseInfo.UUID, cfg.T.CardInfo)
|
||||
bytes, err := os.ReadFile(infoPath)
|
||||
if err != nil {
|
||||
dialog.ShowError(err, w)
|
||||
return
|
||||
}
|
||||
var data models.ErlangCards
|
||||
err = json.Unmarshal(bytes, &data)
|
||||
if err != nil {
|
||||
dialog.ShowError(err, w)
|
||||
return
|
||||
}
|
||||
cleanedText := strings.ReplaceAll(data.Template, "\r", "")
|
||||
cleanedText = strings.ReplaceAll(cleanedText, "\n", "")
|
||||
err = clipboard.WriteAll(cleanedText)
|
||||
if err != nil {
|
||||
dialog.ShowError(err, w)
|
||||
return
|
||||
}
|
||||
dialog.NewInformation("复制脚本成功", data.Template, w).Show()
|
||||
})
|
||||
return button, nil
|
||||
}
|
||||
|
||||
card := widget.NewCard(data.Title, data.Text, cardButton)
|
||||
|
||||
func ErlangCardView(w fyne.Window, baseInfo *models.BaseCard) (fyne.CanvasObject, error) {
|
||||
cardButton := widget.NewButton("OPEN", func() {
|
||||
// 读取类型文件数据
|
||||
infoPath := filepath.Join(cfg.T.CardDir, baseInfo.UUID, cfg.T.CardInfo)
|
||||
bytes, err := os.ReadFile(infoPath)
|
||||
if err != nil {
|
||||
dialog.ShowError(err, w)
|
||||
return
|
||||
}
|
||||
var data models.ErlangCards
|
||||
err = json.Unmarshal(bytes, &data)
|
||||
if err != nil {
|
||||
dialog.ShowError(err, w)
|
||||
return
|
||||
}
|
||||
go UseErlangCard(&data)
|
||||
})
|
||||
//image := canvas.NewImageFromResource(assets.LogoDataSR)
|
||||
//image.FillMode = canvas.ImageFillContain
|
||||
//card.SetImage(image)
|
||||
return card
|
||||
return cardButton, nil
|
||||
}
|
||||
|
||||
func UseErlangCard(data *models.ErlangCards) {
|
||||
|
||||
@@ -13,12 +13,12 @@ import (
|
||||
"work_cation/models"
|
||||
)
|
||||
|
||||
func ExecFileCardView(w fyne.Window, data *models.BaseCard) fyne.CanvasObject {
|
||||
func ExecFileCardView(w fyne.Window, data *models.BaseCard) (fyne.CanvasObject, error) {
|
||||
cardButton := widget.NewButton("启动", func() { runExecFile(data, w) })
|
||||
openDirButton := widget.NewButton("打开目录", func() { openDir(data, w) })
|
||||
|
||||
card := widget.NewCard(data.Title, data.Text, container.NewVBox(cardButton, openDirButton))
|
||||
return card
|
||||
card := container.NewVBox(cardButton, openDirButton)
|
||||
return card, nil
|
||||
}
|
||||
|
||||
func runExecFile(data *models.BaseCard, w fyne.Window) {
|
||||
|
||||
Reference in New Issue
Block a user