X-Git-Url: https://harishankar.org/repos/?p=biacv.git;a=blobdiff_plain;f=biacv_mainwindow.py;fp=biacv_mainwindow.py;h=4a98c2d3167e0cda708d8686aeedf4602fcfbcb1;hp=cdb1305e4ca6419f1aec5addff973f11f9eecb97;hb=bb028ebabf00111ec146cdd64b5cb5c8563bf09b;hpb=81bc09aa468845dfc26265a59bbd512c0d2eaa07 diff --git a/biacv_mainwindow.py b/biacv_mainwindow.py index cdb1305..4a98c2d 100644 --- a/biacv_mainwindow.py +++ b/biacv_mainwindow.py @@ -12,6 +12,55 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow): self.setupUi (self) self.currentfile = None self.ismodified = False + self.setWindowTitle ("BiaCV - untitled") + + # function to open a file + def on_file_open (self): + # if modified, confirm + if self.ismodified is True: + ans = PyQt4.QtGui.QMessageBox.question (self, lang.CONFIRM, lang.CONFIRM_DISCARD_SAVE, + PyQt4.QtGui.QMessageBox.Yes, PyQt4.QtGui.QMessageBox.No) + # if no, then don't open the file + if ans <> PyQt4.QtGui.QMessageBox.Yes: + return + + # open file dialog + openfilename = PyQt4.QtGui.QFileDialog.getOpenFileName (self, lang.OPEN_TITLE) + # if no open file name then return + if openfilename == "": + return + + # load the document data from open file name + docdata = data.BiaCVData () + docdata.load_data (openfilename) + + # set the title + self.title.setText (docdata.data["title"]) + + # set the personal information fields from document data + self.set_personal_info (docdata) + + # set the educational qualifications + self.set_educational_qualifications (docdata) + + # set the professional history + self.set_professional_history (docdata) + + # set the career objectives + self.set_career_objectives (docdata) + + # set the skills list + self.set_skillsets_info (docdata) + + # set the additional information + self.set_additional_info (docdata) + + # set the current document + self.currentfile = openfilename + self.ismodified = False + + # set the window title + self.setWindowTitle ("BiaCV - " + self.currentfile) # function to save a file def on_file_save (self): @@ -21,15 +70,15 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow): # if no current file get file name from file save dialog if self.currentfile is None: - self.currentfile = PyQt4.QtGui.QFileDialog.getSaveFileName (self, + savefilename = PyQt4.QtGui.QFileDialog.getSaveFileName (self, lang.SAVE_TITLE) - if self.currentfile <> "": + if savefilename <> "": mydata = self.get_document_data () mydata.save_data (self.currentfile) self.ismodified = False - else: - self.currentfile = None + self.currentfile = savefilename + self.setWindowTitle ("BiaCV - " + self.currentfile) else: mydata = self.get_document_data () mydata.save_data (self.currentfile) @@ -156,32 +205,130 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow): self.areacode.setText ("") self.unspecified.setChecked (True) + # function to set personal information data in the GUI from document data + def set_personal_info (self, docdata): + self.nametitle.setEditText (docdata.data["nametitle"]) + self.firstname.setText (docdata.data["firstname"]) + self.lastname.setText (docdata.data["lastname"]) + self.dateofbirth.setDate (PyQt4.QtCore.QDate.fromString (docdata.data["dateofbirth"], "dd MMM, yyyy")) + self.street.setText (docdata.data["street"]) + self.area.setText (docdata.data["area"]) + self.city.setText (docdata.data["city"]) + self.countrycode_landline.setText (docdata.data["countrycode_landline"]) + self.telephone.setText (docdata.data["landline"]) + self.countrycode_mobile.setText (docdata.data["countrycode_mobile"]) + self.mobilenumber.setText (docdata.data["mobile"]) + self.email.setText (docdata.data["email"]) + self.areacode.setText (docdata.data["areacode"]) + if docdata.data["maritalstatus"] is True: + self.married.setChecked (True) + elif docdata.data["maritalstatus"] is False: + self.single.setChecked (True) + else: + self.unspecified.setChecked (True) + # function to clear professional history in the GUI def reset_professional_history (self): self.reset_profession_fields () self.professionlist.clear () + # function to set the professional history in the GUI from the document data + def set_professional_history (self, docdata): + # reset the professional history + self.reset_professional_history () + + # add the professional history items to list + for item in docdata.data["professionalhistory"]: + professionitem = PyQt4.QtGui.QTreeWidgetItem ( + [ + item["jobtitle"], + item["joindate"], + item["leavedate"], + item["organization"], + item["additionalinfo"] + ] + ) + self.professionlist.addTopLevelItem (professionitem) + # function to clear educational qualifications in the GUI def reset_educational_qualifications (self): self.reset_education_fields () self.educationlist.clear () + # function to set education qualifications in the GUI from document data + def set_educational_qualifications (self, docdata): + # reset the educational qualifications + self.reset_educational_qualifications () + + # add education items to list + for item in docdata.data["educationalqualifications"]: + educationitem = PyQt4.QtGui.QTreeWidgetItem ( + [ + item["degree"], + item["graduation"], + item["institution"], + item["university"], + item["grade"], + str (item["percentage"]) + ] + ) + self.educationlist.addTopLevelItem (educationitem) + # function to clear career objectives data in the GUI def reset_career_objectives (self): self.shorttermcareer.setPlainText ("") self.longtermgoals.setPlainText ("") + # function to set career objectives data in the GUI from document data + def set_career_objectives (self, docdata): + self.shorttermcareer.setPlainText (u'\n'.join (docdata.data["shorttermobjectives"])) + self.longtermgoals.setPlainText (u'\n'.join (docdata.data["longtermgoals"])) + # function to clear skill sets data in the GUI def reset_skillsets_info (self): self.reset_skillset_fields () self.skillslist.clear () + # function to set the skill sets data in the GUI from document data + def set_skillsets_info (self, docdata): + # clear the skill sets information + self.reset_skillsets_info () + + for item in docdata.data["skillsets"]: + skillitem = PyQt4.QtGui.QTreeWidgetItem ( + [ + item["skilltitle"], + item["skilldesc"] + ] + ) + self.skillslist.addTopLevelItem (skillitem) + + # function to clear additional information data in the GUI def reset_additional_info (self): self.reset_language_fields () self.languageslist.clear () self.additionalinformation.setPlainText ("") + # function to set additional information data in the GUI from the document data + def set_additional_info (self, docdata): + # clear the additional information + self.reset_additional_info () + + # set the languages list + for item in docdata.data["languagesknown"]: + langitem = PyQt4.QtGui.QTreeWidgetItem ( + [ + item["language"], + str (item["canspeak"]), + str (item["canreadwrite"]), + str (item["isproficient"]) + ] + ) + self.languageslist.addTopLevelItem (langitem) + + self.additionalinformation.setPlainText (docdata.data["additionalinformation"]) + # function to clear all the fields and reset them to defaults def new_document (self): # first clear the individual record fields in the tabs @@ -205,6 +352,9 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow): self.currentfile = None self.ismodified = False + # set the window title + self.setWindowTitle ("BiaCV - untitled") + # file new action is triggered def on_file_new (self): # if the previous document is modified