UI functionality added to main view
[biaweb_qt.git] / main_window.py
index 5902fbc..b6cb96d 100644 (file)
@@ -14,6 +14,30 @@ class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow):
                self.setupUi (self)
                self.current_db = None
 
+       # refresh the category list
+       def repopulate_categories (self):
+               recs = biaweb_db.get_categories (self.current_db)
+               if recs == False:
+                       PyQt4.QtGui.QMessageBox.critical (self, "Error", "SQLite 3 error in getting the categories")
+                       return
+
+               self.categories.clear ()
+               for (id, name, desc, stub) in recs:
+                       qrow = PyQt4.QtGui.QTreeWidgetItem ([str(id), str(name)])
+                       self.categories.addTopLevelItem (qrow)
+
+       # refresh the articles list
+       def repopulate_articles (self, catid=None):
+               recs = biaweb_db.get_articles (self.current_db, catid)
+               if recs == False:
+                       PyQt4.QtGui.QMessageBox.critical (self, "Error", "SQLite 3 error in getting the articles")
+                       return
+
+               self.articles.clear ()
+               for item in recs:
+                       qrow = PyQt4.QtGui.QTreeWidgetItem ([str(item[0]), str(item[1])])
+                       self.articles.addTopLevelItem (qrow)
+
        # category add action
        def onCategoryAdd (self):
                # if there is no database
@@ -31,9 +55,20 @@ class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow):
                                ret = biaweb_db.create_category (self.current_db, cat_name, cat_desc, cat_stub)
                                if ret == True:
                                        PyQt4.QtGui.QMessageBox.information (self, "Success", "Category successfully created")
+                                       self.repopulate_categories ()
+                                       self.repopulate_articles ()
                                else:
                                        PyQt4.QtGui.QMessageBox.critical (self, "Error", "SQLite 3 error in creating category")
 
+       # file open menu is clicked
+       def onFileOpen (self):
+               filename = PyQt4.QtGui.QFileDialog.getOpenFileName (self, "Open Site Database")
+               if filename:
+                       self.current_db = str (filename)
+                       self.setWindowTitle ("BiaWeb - " + self.current_db)
+                       self.repopulate_categories ()
+                       self.repopulate_articles ()
+
        # file new menu is clicked
        def onFileNew (self):
                # show the site configuration dialog to get the new site details
@@ -58,6 +93,8 @@ class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow):
                                if flag == True:
                                        PyQt4.QtGui.QMessageBox.information (self, "Success",
                                                                                                                        "New site db successfully created")
+                                       self.articles.clear ()
+                                       self.categories.clear ()
                                else:
                                        PyQt4.QtGui.QMessageBox.critical (self, "Error", "System or SQLite 3 error in creating database")