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):
# 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 is not None:
+ if savefilename <> "":
mydata = self.get_document_data ()
mydata.save_data (self.currentfile)
self.ismodified = False
+ self.currentfile = savefilename
+ self.setWindowTitle ("BiaCV - " + self.currentfile)
else:
mydata = self.get_document_data ()
mydata.save_data (self.currentfile)
docdata = data.BiaCVData ()
# set the document title
- docdata.set_document_title (unicode (self.title.text (), "utf-8"))
+ docdata.set_document_title (unicode (self.title.text ().toUtf8 (), "utf-8"))
# get the marital status string from check box
if self.married.isChecked ():
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.nametitle.lineEdit ().text ().toUtf8 (), "utf-8"),
+ unicode (self.firstname.text ().toUtf8 (), "utf-8"),
+ unicode (self.lastname.text ().toUtf8 (), "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"),
+ unicode (self.street.text ().toUtf8 (), "utf-8"),
+ unicode (self.area.text ().toUtf8 (), "utf-8"),
+ unicode (self.city.text ().toUtf8 (), "utf-8"),
+ unicode (self.areacode.text ().toUtf8 (), "utf-8"),
+ unicode (self.countrycode_landline.text ().toUtf8 (), "utf-8"),
+ unicode (self.telephone.text ().toUtf8 (), "utf-8"),
+ unicode (self.countrycode_mobile.text ().toUtf8 (), "utf-8"),
+ unicode (self.mobilenumber.text ().toUtf8 (), "utf-8"),
+ unicode (self.email.text ().toUtf8 (), "utf-8"),
maritalstatus
)
# get the list of educational qualifications from the treewidget
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["degree"] = unicode (curitem.text (0).toUtf8 (), "utf-8")
+ curdict["graduation"] = unicode (curitem.text (1).toUtf8 (), "utf-8")
+ curdict["institution"] = unicode (curitem.text (2).toUtf8 (), "utf-8")
+ curdict["university"] = unicode (curitem.text (3).toUtf8 (), "utf-8")
+ curdict["grade"] = unicode (curitem.text (4).toUtf8 (), "utf-8")
curdict["percentage"] = float (curitem.text (5))
education.append (curdict)
i += 1
while i < self.professionlist.topLevelItemCount ():
curitem = self.professionlist.topLevelItem (i)
curdict = {}
- curdict["jobtitle"] = unicode (curitem.text (0), "utf-8")
+ curdict["jobtitle"] = unicode (curitem.text (0).toUtf8 (), "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")
+ curdict["organization"] = unicode (curitem.text (3).toUtf8 (), "utf-8")
+ curdict["additionalinfo"] = unicode (curitem.text (4).toUtf8 (), "utf-8")
professional.append (curdict)
i += 1
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 ()
+ shorttermobjectives = unicode (self.shorttermcareer.toPlainText ().toUtf8 (), "utf-8").splitlines ()
+ longtermgoals = unicode (self.longtermgoals.toPlainText ().toUtf8 (), "utf-8").splitlines ()
docdata.set_career_objectives (shorttermobjectives, longtermgoals)
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")
+ curdict["skilltitle"] = unicode (curitem.text (0).toUtf8 (), "utf-8")
+ curdict["skilldesc"] = unicode (curitem.text (1).toUtf8 (), "utf-8")
skills.append (curdict)
i += 1
# set the list of skills
while i < self.languageslist.topLevelItemCount ():
curitem = self.languageslist.topLevelItem (i)
curdict = {}
- curdict["language"] = unicode (curitem.text (0), "utf-8")
+ curdict["language"] = unicode (curitem.text (0).toUtf8 (), "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")
+ additionalinformation = unicode (self.additionalinformation.toPlainText ().toUtf8 (), "utf-8")
docdata.set_additional_information (langsknown, additionalinformation)
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
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