/
windows.go
125 lines (101 loc) · 2.14 KB
/
windows.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
package windows
import (
"gpics/base"
"gpics/base/config"
"gpics/base/git"
"log"
)
import (
"github.com/lxn/walk"
)
type MyMainWindow struct {
*walk.MainWindow
tv *MyTreeView
sv *walk.ScrollView
le *walk.LineEdit
ImageName string
DBSource map[string]int
}
func (mw *MyMainWindow) errMBox(err error) {
log.Println(err)
walk.MsgBox(mw.MainWindow, "错误提示", err.Error(), walk.MsgBoxIconError)
}
func (mw *MyMainWindow) infoMBox(msg string) {
walk.MsgBox(mw.MainWindow, "消息提示", msg, walk.MsgBoxOK)
}
func (mw *MyMainWindow) dropFiles(fps []string) {
path := walk.Resources.RootDirPath()
for _, fp := range fps {
name, err := base.CopyFile(fp, path)
if err != nil {
mw.errMBox(err)
} else if name != "" {
mw.addImageViewWidget(name, mw.sv)
if err := git.AutoCommit(); err != nil {
mw.errMBox(err)
}
}
}
}
func (mw *MyMainWindow) commit() {
if err := git.RemoteCommit(); err != nil {
mw.errMBox(err)
} else {
mw.infoMBox("提交成功!")
}
}
func (mw *MyMainWindow) addPic() {
name, err := mw.openImage()
if err != nil {
mw.errMBox(err)
}
if name != "" {
mw.addImageViewWidget(name, mw.sv)
if err := git.AutoCommit(); err != nil {
mw.errMBox(err)
}
}
}
func (mw *MyMainWindow) config() {
cf := config.NewConfig()
oldWs := cf.Workspace
cmd, err := RunConfigDialog(mw, cf)
if err != nil {
mw.errMBox(err)
return
}
if cmd == walk.DlgCmdOK {
if err := config.Save(cf); err != nil {
mw.errMBox(err)
return
}
if oldWs == cf.Workspace {
return
}
mw.ImageName = ""
if err := mw.tv.RootChanged(cf.Workspace); err != nil {
mw.errMBox(err)
}
}
}
func (mw *MyMainWindow) clickRadio() {
log.Println("textType:", mw.DBSource[base.DBTextType])
if mw.ImageName != "" {
if err := base.Copy(mw.ImageName, mw.DBSource[base.DBTextType]); err != nil {
mw.errMBox(err)
}
}
}
func OpenDir(owner walk.Form, dir string) (string, error) {
dlg := new(walk.FileDialog)
dlg.Title = "选择文件夹"
dlg.FilePath = dir
ok, err := dlg.ShowBrowseFolder(owner)
if err != nil {
return "", err
}
if !ok {
return "", err
}
return dlg.FilePath, nil
}