X-Git-Url: https://harishankar.org/repos/?p=biacv.git;a=blobdiff_plain;f=biacv_mainwindow.py;fp=biacv_mainwindow.py;h=192ef4c2c4fb2c53073a4e4fd109981c54066b4d;hp=7d577dabf4adfb18ba194f0d73b638a485860971;hb=2ea1c764b6ce60b55bb3f44e3f8f121933b66d29;hpb=cbb2972b6b829a3c38cfac1a41ed44db29524550 diff --git a/biacv_mainwindow.py b/biacv_mainwindow.py index 7d577da..192ef4c 100644 --- a/biacv_mainwindow.py +++ b/biacv_mainwindow.py @@ -4,6 +4,7 @@ import PyQt4 import biacv_mainwindow_ui as bui import biacv_lang as lang +import biacv_data as data class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow): def __init__ (self): @@ -12,6 +13,130 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow): self.currentfile = None self.ismodified = False + # function to save a file + def on_file_save (self): + # only save modified file + if self.ismodified is False: + return + + # if no current file get file name from file save dialog + if self.currentfile is None: + self.currentfile = PyQt4.QtGui.QFileDialog.getSaveFileName (self, + lang.SAVE_TITLE) + + if self.currentfile is not None: + mydata = self.get_document_data () + mydata.save_data (self.currentfile) + self.ismodified = False + else: + mydata = self.get_document_data () + mydata.save_data (self.currentfile) + self.ismodified = False + + # function to set document data from the GUI + def get_document_data (self): + docdata = data.BiaCVData () + + # set the document title + docdata.set_document_title (unicode (self.title.text (), "utf-8")) + + # get the marital status string from check box + if self.married.isChecked (): + maritalstatus = True + elif self.single.isChecked (): + maritalstatus = False + else: + maritalstatus = None + + docdata.set_personal_info ( + unicode (self.nametitle.lineEdit ().text (), "utf-8"), + unicode (self.firstname.text (), "utf-8"), + unicode (self.lastname.text (), "utf-8"), + unicode (self.dateofbirth.date().toString ("dd MMM, yyyy"), "utf-8"), + unicode (self.street.text (), "utf-8"), + unicode (self.area.text (), "utf-8"), + unicode (self.city.text (), "utf-8"), + unicode (self.areacode.text (), "utf-8"), + unicode (self.countrycode_landline.text (), "utf-8"), + unicode (self.telephone.text (), "utf-8"), + unicode (self.countrycode_mobile.text (), "utf-8"), + unicode (self.mobilenumber.text (), "utf-8"), + unicode (self.email.text (), "utf-8"), + maritalstatus + ) + # get the list of educational qualifications from the treewidget + education = [] + i = 0 + while i < self.educationlist.topLevelItemCount (): + curitem = self.educationlist.topLevelItem (i) + curdict = {} + curdict["degree"] = unicode (curitem.text (0), "utf-8") + curdict["graduation"] = unicode (curitem.text (1), "utf-8") + curdict["institution"] = unicode (curitem.text (2), "utf-8") + curdict["university"] = unicode (curitem.text (3), "utf-8") + curdict["grade"] = unicode (curitem.text (4), "utf-8") + curdict["percentage"] = float (curitem.text (5)) + education.append (curdict) + i += 1 + + # set the educational qualifications + docdata.set_educational_qualifications (education) + + # get the list of professional history from the treewidget + professional = [] + i = 0 + while i < self.professionlist.topLevelItemCount (): + curitem = self.professionlist.topLevelItem (i) + curdict = {} + curdict["jobtitle"] = unicode (curitem.text (0), "utf-8") + curdict["joindate"] = unicode (curitem.text (1), "utf-8") + curdict["leavedate"] = unicode (curitem.text (2), "utf-8") + curdict["organization"] = unicode (curitem.text (3), "utf-8") + curdict["additionalinfo"] = unicode (curitem.text (4), "utf-8") + professional.append (curdict) + i += 1 + + # set the professional qualifications + docdata.set_professional_history (professional) + + # set the career objectives + shorttermobjectives = unicode (self.shorttermcareer.toPlainText (), "utf-8").splitlines () + longtermgoals = unicode (self.longtermgoals.toPlainText (), "utf-8").splitlines () + + docdata.set_career_objectives (shorttermobjectives, longtermgoals) + + # set the skill sets + skills = [] + i = 0 + while i < self.skillslist.topLevelItemCount (): + curitem = self.skillslist.topLevelItem (i) + curdict = {} + curdict["skilltitle"] = unicode (curitem.text (0), "utf-8") + curdict["skilldesc"] = unicode (curitem.text (1), "utf-8") + skills.append (curdict) + i += 1 + # set the list of skills + docdata.set_skillsets (skills) + + # get the list of languages + langsknown = [] + i = 0 + while i < self.languageslist.topLevelItemCount (): + curitem = self.languageslist.topLevelItem (i) + curdict = {} + curdict["language"] = unicode (curitem.text (0), "utf-8") + curdict["canspeak" ] = (curitem.text (1) == "True") + curdict["canreadwrite"] = (curitem.text (2) == "True") + curdict["isproficient"] = (curitem.text (3) == "True") + langsknown.append (curdict) + i += 1 + + additionalinformation = unicode (self.additionalinformation.toPlainText (), "utf-8") + + docdata.set_additional_information (langsknown, additionalinformation) + + return docdata + # function to reset personal information data in the GUI def reset_personal_info (self): self.nametitle.setEditText ("")