X-Git-Url: https://harishankar.org/repos/?p=resumebuilder.git;a=blobdiff_plain;f=resumebuilder.go;h=79d821f1b8b8b1e49ed25059456ba37a3299b946;hp=ab16b01a91caa064d18665c08f14d4909d89cb2b;hb=HEAD;hpb=2f8931572b346167965f37199e3835d03f985e29 diff --git a/resumebuilder.go b/resumebuilder.go index ab16b01..79d821f 100644 --- a/resumebuilder.go +++ b/resumebuilder.go @@ -3,6 +3,7 @@ package main import ( "fmt" "os" + "strconv" "github.com/gotk3/gotk3/gtk" ) @@ -25,9 +26,10 @@ type Date struct { } type Education struct { - SchoolName string - YearOfPassing int - PassPercentage float32 + Qualification string + Institution string + YearOfPassing uint + GradeOrPercentage string } type Sex int @@ -56,6 +58,18 @@ const ( } } */ +func setLineText(fieldname string, buf string) { + obj, err := ui.GetObject(fieldname) + if err != nil { + return + } + field, ok := obj.(*gtk.Entry) + if !ok { + return + } + field.SetText(buf) +} + func getLineText(fieldname string) (string, error) { obj, err := ui.GetObject(fieldname) if err != nil { @@ -146,7 +160,7 @@ func getWindow() (*gtk.Window, error) { return wnd, nil } -func LoadMain() { +func loadMain() { gtk.Init(nil) var err error ui, err = gtk.BuilderNew() @@ -162,7 +176,8 @@ func LoadMain() { ui.AddFromString(string(asset)) ui.ConnectSignals(map[string]interface{}{"SexMaleSelected": sexMaleSelected, "SexFemaleSelected": sexFemaleSelected, "SexOtherSelected": sexOtherSelected, - "SaveButtonClicked": SaveButtonClicked, "DoBSelected": doBSelected}) + "SaveButtonClicked": saveButtonClicked, "DoBSelected": doBSelected, + "AddEducationClicked": addEducationClicked}) wnd, err := getWindow() if err != nil { @@ -201,7 +216,62 @@ func doBSelected(dob *gtk.Calendar) { selecteddate.Year, selecteddate.Month, selecteddate.Day = dob.GetDate() } -func SaveButtonClicked() { +func getEducationFields() (*Education, error) { + ed := new(Education) + qual, err := getLineText("QualificationTitle") + if err != nil { + return nil, err + } + inst, err := getLineText("InstitutionName") + if err != nil { + return nil, err + } + yearp, err := getLineText("YearPassing") + if err != nil { + return nil, err + } + year, err := strconv.Atoi(yearp) + if err != nil { + return nil, err + } + gradep, err := getLineText("GradeOrPercentag") + if err != nil { + return nil, err + } + ed.Qualification = qual + ed.Institution = inst + ed.YearOfPassing = uint(year) + ed.GradeOrPercentage = gradep + + return ed, nil +} + +func addEducationClicked() { + ed, err := getEducationFields() + if err != nil { + return + } + lstore, err := ui.GetObject("EducationStore") + if err != nil { + return + } + edustore, ok := lstore.(*gtk.ListStore) + if !ok { + return + } + iter := edustore.Append() + edustore.SetValue(iter, 0, ed.Qualification) + edustore.SetValue(iter, 1, ed.Institution) + edustore.SetValue(iter, 2, ed.YearOfPassing) + edustore.SetValue(iter, 3, ed.GradeOrPercentage) + + setLineText("QualificationTitle", "") + setLineText("InstitutionName", "") + setLineText("YearPassing", "") + setLineText("GradeOrPercentag", "") +} + +func saveButtonClicked() { a, err := getBasicDetails() if err != nil { fmt.Println(err.Error()) @@ -211,5 +281,5 @@ func SaveButtonClicked() { } func main() { - LoadMain() + loadMain() }