X-Git-Url: https://harishankar.org/repos/?p=biacv.git;a=blobdiff_plain;f=biacv_mainwindow.py;h=ec74b822d540923ec1c166ea89652a835cd82cca;hp=b33d689e544d323f742b21313dcb475aec44e5bc;hb=HEAD;hpb=f6d9890395dacdd0a56a196cb339752b471f18e8 diff --git a/biacv_mainwindow.py b/biacv_mainwindow.py index b33d689..ec74b82 100644 --- a/biacv_mainwindow.py +++ b/biacv_mainwindow.py @@ -7,10 +7,12 @@ import sys import biacv_mainwindow_ui as bui import biacv_lang as lang import biacv_data as data +import biacv_exporter as exporter class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow): def __init__ (self): PyQt4.QtGui.QMainWindow.__init__ (self) + self.show () self.setupUi (self) self.currentfile = None self.ismodified = False @@ -34,6 +36,38 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow): # call the close event self.close() + # on file export - export current document to any external format based on + # a template + def on_file_export (self): + # get the template directory + templatedir = PyQt4.QtGui.QFileDialog.getExistingDirectory (self, + lang.OPEN_TEMPLATE_TITLE) + if templatedir == "": + return + + # create a new exporter object + exp = exporter.BiaCVExporter () + + # set the document data + exp.set_data (self.get_document_data ().data) + + # set the template directory + exp.set_template_directory (unicode (templatedir.toUtf8(), "utf-8")) + + # get the output file path + outputfile = PyQt4.QtGui.QFileDialog.getSaveFileName (self, + exp.exporter_name, filter=exp.export_filter) + + if outputfile == "": + return + + + # set the output file + exp.set_output (unicode (outputfile.toUtf8(), "utf-8")) + + # carry out the export function + exp.export () + # function to open a file def on_file_open (self): # if modified, confirm @@ -45,7 +79,8 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow): return # open file dialog - openfilename = PyQt4.QtGui.QFileDialog.getOpenFileName (self, lang.OPEN_TITLE) + openfilename = PyQt4.QtGui.QFileDialog.getOpenFileName (self, lang.OPEN_TITLE, + filter = lang.BIACV_FILE_FILTER) # if no open file name then return if openfilename == "": return @@ -60,6 +95,9 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow): # set the personal information fields from document data self.set_personal_info (docdata) + # set the profile highlights + self.set_profile_highlights (docdata) + # set the educational qualifications self.set_educational_qualifications (docdata) @@ -85,7 +123,7 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow): # function to save a file as a new document def on_file_save_as (self): savefilename = PyQt4.QtGui.QFileDialog.getSaveFileName (self, - lang.SAVE_TITLE) + lang.SAVE_TITLE, filter=lang.BIACV_FILE_FILTER) # if save file name is not none if savefilename <> "": @@ -104,7 +142,7 @@ 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: savefilename = PyQt4.QtGui.QFileDialog.getSaveFileName (self, - lang.SAVE_TITLE) + lang.SAVE_TITLE, filter=lang.BIACV_FILE_FILTER) if savefilename <> "": mydata = self.get_document_data () @@ -141,6 +179,7 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow): unicode (self.area.text ().toUtf8 (), "utf-8"), unicode (self.city.text ().toUtf8 (), "utf-8"), unicode (self.areacode.text ().toUtf8 (), "utf-8"), + unicode (self.country.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"), @@ -148,6 +187,11 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow): unicode (self.email.text ().toUtf8 (), "utf-8"), maritalstatus ) + + # set the profile highlights + profile_highlights = unicode (self.profile.toPlainText ().toUtf8 (), "utf-8").splitlines () + docdata.set_profile (profile_highlights) + # get the list of educational qualifications from the treewidget education = [] i = 0 @@ -237,6 +281,15 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow): self.email.setText ("") self.areacode.setText ("") self.unspecified.setChecked (True) + self.country.setText ("") + + # function to set the profile highlights in the GUI from document data + def set_profile_highlights (self, docdata): + self.profile.setPlainText (u'\n'.join (docdata.data["profile"])) + + # function to reset profile highlights data in GUI + def reset_profile_highlights (self): + self.profile.setPlainText ("") # function to set personal information data in the GUI from document data def set_personal_info (self, docdata): @@ -253,6 +306,8 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow): self.mobilenumber.setText (docdata.data["mobile"]) self.email.setText (docdata.data["email"]) self.areacode.setText (docdata.data["areacode"]) + self.country.setText (docdata.data["country"]) + if docdata.data["maritalstatus"] is True: self.married.setChecked (True) elif docdata.data["maritalstatus"] is False: @@ -372,6 +427,7 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow): self.title.setText ("") self.reset_personal_info () + self.reset_profile_highlights () self.reset_professional_history () self.reset_educational_qualifications () self.reset_career_objectives () @@ -573,9 +629,9 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow): PyQt4.QtGui.QMessageBox.critical (self, lang.ERROR_UPDATE, lang.ERROR_REQ_MISSING) return # if currently employed in that position, leaving date is to be disabled - # and set to "current" + # and set to empty if self.currentemployment.isChecked (): - leavedatestr = "current" + leavedatestr = "" else: # if the leaving date is < join date if self.leavedate.date () < self.joindate.date (): @@ -615,9 +671,9 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow): PyQt4.QtGui.QMessageBox.critical (self, lang.ERROR_ADD, lang.ERROR_REQ_MISSING) return # if currently employed in that position, leaving date is to be disabled - # and set to "current" + # and set to "" if self.currentemployment.isChecked (): - leavedatestr = "current" + leavedatestr = "" else: # if the leaving date is < join date if self.leavedate.date () < self.joindate.date (): @@ -653,7 +709,7 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow): selitem = selitems[0] self.designation.setText (selitem.text (0)) self.joindate.setDate (PyQt4.QtCore.QDate.fromString (selitem.text(1), "dd MMM, yyyy")) - if selitem.text (2) == "current": + if selitem.text (2) == "": self.leavedate.setEnabled (False) self.currentemployment.setChecked (True) else: