Separate file for language strings
[biacv.git] / biacv_mainwindow.py
index 8c3b132..0f0f9ad 100644 (file)
@@ -1,7 +1,9 @@
+# BiaCV
 # class for main window
 
 import PyQt4
 import biacv_mainwindow_ui as bui
+import biacv_lang as lang
 
 class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow):
        def __init__ (self):
@@ -9,16 +11,37 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow):
                self.setupUi (self)
                self.currentfile = None
 
+       # update a language in the list of languages
+       def on_update_lang (self):
+               # get the selected language
+               selitems = self.languageslist.selectedItems ()
+               if selitems == []:
+                       PyQt4.QtGui.QMessageBox.critical (self, lang.ERROR_UPDATE, lang.ERROR_NO_SELECTION)
+                       return
+               # check if the language string is not empty
+               if self.language.text () == "":
+                       PyQt4.QtGui.QMessageBox.critical (self, lang.ERROR_UPDATE, lang.ERROR_REQ_MISSING)
+                       return
+               selitem = selitems[0]
+               selitem.setText (0, self.language.text ())
+               selitem.setText (1, str (self.canspeak.isChecked ()))
+               selitem.setText (2, str (self.canreadwrite.isChecked ()))
+               selitem.setText (3, str (self.isproficient.isChecked ()))
+
+       # selecting a language from the list of languages
+       def on_select_lang (self):
+               # set the language fields from the selected item
+               self.set_language_fields ()
+
        # delete a language from the list of languages known
        def on_delete_lang (self):
                # get selected language
                selitems = self.languageslist.selectedItems ()
                if selitems == []:
-                       PyQt4.QtGui.QMessageBox.critical (self, "Cannot delete", "No items selected.")
+                       PyQt4.QtGui.QMessageBox.critical (self, lang.ERROR_DELETE, lang.ERROR_REQ_MISSING)
                        return
                # confirm
-               ans = PyQt4.QtGui.QMessageBox.question (self, "Confirm",
-                       "Are you sure you wish to delete the selected item?",
+               ans = PyQt4.QtGui.QMessageBox.question (self, lang.CONFIRM, lang.CONFIRM_DELETE,
                        PyQt4.QtGui.QMessageBox.Yes, PyQt4.QtGui.QMessageBox.No)
                if ans == PyQt4.QtGui.QMessageBox.Yes:
                        for item in selitems:
@@ -30,7 +53,7 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow):
        def on_add_lang (self):
                # check if the language is set
                if self.language.text () == "":
-                       PyQt4.QtGui.QMessageBox.critical (self, "Cannot add", "A required field is missing.")
+                       PyQt4.QtGui.QMessageBox.critical (self, lang.ERROR_ADD, lang.ERROR_REQ_MISSING)
                        return
                langitem = PyQt4.QtGui.QTreeWidgetItem (
                                [
@@ -43,6 +66,17 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow):
                self.languageslist.addTopLevelItem (langitem)
                self.reset_language_fields ()
 
+       # set the language fields from the selected item
+       def set_language_fields (self):
+               selitems = self.languageslist.selectedItems ()
+               if selitems == []:
+                       return
+               selitem = selitems[0]
+               self.language.setText (selitem.text (0))
+               self.canspeak.setChecked (selitem.text (1) == "True")
+               self.canreadwrite.setChecked (selitem.text(2) == "True")
+               self.isproficient.setChecked (selitem.text(3) == "True")
+
        # reset the language fields
        def reset_language_fields (self):
                self.language.setText ("")
@@ -55,10 +89,10 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow):
                # get the selected item
                selitems = self.skillslist.selectedItems ()
                if selitems == []:
-                       PyQt4.QtGui.QMessageBox.critical (self, "Cannot update", "No item selected.")
+                       PyQt4.QtGui.QMessageBox.critical (self, lang.ERROR_UPDATE, lang.ERROR_NO_SELECTION)
                        return
                if self.skillsettitle.text () == "":
-                       PyQt4.QtGui.QMessageBox.critical (self, "Cannot update", "A required field is missing.")
+                       PyQt4.QtGui.QMessageBox.critical (self, lang.ERROR_UPDATE, lang.ERROR_REQ_MISSING)
                        return
                selitem = selitems[0]
 
@@ -84,11 +118,10 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow):
                # get the selected items
                selitems = self.skillslist.selectedItems ()
                if selitems == []:
-                       PyQt4.QtGui.QMessageBox.critical (self, "Cannot delete", "No items selected.")
+                       PyQt4.QtGui.QMessageBox.critical (self, lang.ERROR_DELETE, lang.ERROR_NO_SELECTION)
                        return
                # confirm
-               ans = PyQt4.QtGui.QMessageBox.question (self, "Confirm",
-                       "Are you sure you wish to delete the selected item?",
+               ans = PyQt4.QtGui.QMessageBox.question (self, lang.CONFIRM, lang.CONFIRM_DELETE,
                        PyQt4.QtGui.QMessageBox.Yes, PyQt4.QtGui.QMessageBox.No)
                # answer is yes
                if ans == PyQt4.QtGui.QMessageBox.Yes:
@@ -101,7 +134,7 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow):
        def on_add_skill (self):
                # if the skill title is blank
                if self.skillsettitle.text () == "":
-                       PyQt4.QtGui.QMessageBox.critical (self, "Cannot add", "A required field is missing.")
+                       PyQt4.QtGui.QMessageBox.critical (self, lang.ERROR_ADD, lang.ERROR_REQ_MISSING)
                        return
                skillitem = PyQt4.QtGui.QTreeWidgetItem (
                                [
@@ -122,12 +155,12 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow):
                # get the selected item
                selitems = self.professionlist.selectedItems ()
                if selitems == []:
-                       PyQt4.QtGui.QMessageBox.critical (self, "Cannot update", "No item selected.")
+                       PyQt4.QtGui.QMessageBox.critical (self, lang.ERROR_UPDATE, lang.ERROR_NO_SELECTION)
                        return
                selitem = selitems[0]
                # if designation is not set
                if self.designation.text () == "":
-                       PyQt4.QtGui.QMessageBox.critical (self, "Cannot update", "A required field is missing.")
+                       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"
@@ -136,8 +169,7 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow):
                else:
                        # if the leaving date is < join date
                        if self.leavedate.date () < self.joindate.date ():
-                               PyQt4.QtGui.QMessageBox.critical (self, "Cannot add",
-                                       "Leaving date cannot be earlier than join date.")
+                               PyQt4.QtGui.QMessageBox.critical (self, lang.ERROR_ADD, lang.ERROR_DATE)
                                return
                        leavedatestr = self.leavedate.date ().toString ("dd MMM, yyyy")
 
@@ -152,11 +184,10 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow):
                # get the selected items
                selitems = self.professionlist.selectedItems ()
                if selitems == []:
-                       PyQt4.QtGui.QMessageBox.critical (self, "Cannot delete", "No item selected.")
+                       PyQt4.QtGui.QMessageBox.critical (self, lang.ERROR_DELETE, lang.ERROR_NO_SELECTION)
                        return
                # confirm deletion
-               ans = PyQt4.QtGui.QMessageBox.question (self, "Confirm",
-                       "Are you sure you wish to delete the selected item?",
+               ans = PyQt4.QtGui.QMessageBox.question (self, lang.CONFIRM, lang.CONFIRM_DELETE,
                        PyQt4.QtGui.QMessageBox.Yes, PyQt4.QtGui.QMessageBox.No)
                # if confirmed
                if ans == PyQt4.QtGui.QMessageBox.Yes:
@@ -167,7 +198,7 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow):
        # add professional history button is clicked
        def on_add_profession (self):
                if self.designation.text () == "":
-                       PyQt4.QtGui.QMessageBox.critical (self, "Cannot add", "A required field is missing.")
+                       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"
@@ -176,8 +207,7 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow):
                else:
                        # if the leaving date is < join date
                        if self.leavedate.date () < self.joindate.date ():
-                               PyQt4.QtGui.QMessageBox.critical (self, "Cannot add",
-                                       "Leaving date cannot be earlier than join date.")
+                               PyQt4.QtGui.QMessageBox.critical (self, lang.ERROR_ADD, lang.ERROR_DATE)
                                return
                        leavedatestr = self.leavedate.date ().toString ("dd MMM, yyyy")
 
@@ -239,11 +269,10 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow):
                selitems = self.educationlist.selectedItems ()
                # if no items are selected
                if selitems == []:
-                       PyQt4.QtGui.QMessageBox.critical (self, "Cannot delete", "No items selected.")
+                       PyQt4.QtGui.QMessageBox.critical (self, lang.ERROR_DELETE, lang.ERROR_NO_SELECTION)
                # delete the items after confirmation
                else:
-                       ans = PyQt4.QtGui.QMessageBox.question (self, "Confirm",
-                               "Are you sure you wish to delete selected item?",
+                       ans = PyQt4.QtGui.QMessageBox.question (self, lang.CONFIRM, lang.CONFIRM_DELETE,
                                PyQt4.QtGui.QMessageBox.Yes, PyQt4.QtGui.QMessageBox.No)
                        if ans == PyQt4.QtGui.QMessageBox.Yes:
                                # remove the item selected
@@ -260,11 +289,11 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow):
                selitems = self.educationlist.selectedItems ()
                # if no item is selected
                if selitems == []:
-                       PyQt4.QtGui.QMessageBox.critical (self, "Cannot update", "No item selected")
+                       PyQt4.QtGui.QMessageBox.critical (self, lang.ERROR_UPDATE, lang.ERROR_NO_SELECTION)
                        return
                # if the qualification title is not set
                if self.degree_name.text () == "":
-                       PyQt4.QtGui.QMessageBox.critical (self, "Cannot update", "A required field is missing.")
+                       PyQt4.QtGui.QMessageBox.critical (self, lang.ERROR_UPDATE, lang.ERROR_REQ_MISSING)
                        return
                selitem = selitems[0]
 
@@ -279,7 +308,7 @@ class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow):
        def on_add_education (self):
                # check if the qualification title is set
                if self.degree_name.text () == "":
-                       PyQt4.QtGui.QMessageBox.critical (self, "Cannot add", "A required fields is missing.")
+                       PyQt4.QtGui.QMessageBox.critical (self, lang.ERROR_ADD, lang.ERROR_REQ_MISSING)
                        return
                educationitem = PyQt4.QtGui.QTreeWidgetItem ([
                        self.degree_name.text (),