Update language in list
[biacv.git] / biacv_mainwindow.py
index 801928e..feaa8d3 100644 (file)
@@ -1,3 +1,4 @@
+# BiaCV
 # class for main window
 
 import PyQt4
@@ -9,6 +10,45 @@ 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, "Cannot update", "No item selected.")
+                       return
+               # check if the language string is not empty
+               if self.language.text () == "":
+                       PyQt4.QtGui.QMessageBox.critical (self, "Cannot update", "A required field is 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.")
+                       return
+               # confirm
+               ans = PyQt4.QtGui.QMessageBox.question (self, "Confirm",
+                       "Are you sure you wish to delete the selected item?",
+                       PyQt4.QtGui.QMessageBox.Yes, PyQt4.QtGui.QMessageBox.No)
+               if ans == PyQt4.QtGui.QMessageBox.Yes:
+                       for item in selitems:
+                               self.languageslist.takeTopLevelItem (self.languageslist.indexOfTopLevelItem (item))
+
+                       self.reset_language_fields ()
+
        # add a language to the list of languages known
        def on_add_lang (self):
                # check if the language is set
@@ -26,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 ("")