Minor: Fixed return value
[biaweb_qt.git] / main_window.py
index 02eaa8b..799fdf8 100644 (file)
@@ -25,13 +25,16 @@ class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow):
                # check with False because None is returned when no records exist
                if recs == False:
                        PyQt4.QtGui.QMessageBox.critical (self, "Error", "SQLite 3 error in getting the categories")
-                       return
+                       return False
 
                self.categories.clear ()
                for (id, name, desc, stub) in recs:
                        qrow = PyQt4.QtGui.QTreeWidgetItem ([str(id), str(name)])
                        self.categories.addTopLevelItem (qrow)
 
+               # return true when successful
+               return True
+
        # refresh the articles list
        def repopulate_articles (self, catid=None):
                recs = biaweb_db.get_articles (self.current_db, catid)
@@ -39,12 +42,14 @@ class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow):
                # check with False because None is returned when no records exist
                if recs == False:
                        PyQt4.QtGui.QMessageBox.critical (self, "Error", "SQLite 3 error in getting the articles")
-                       return
+                       return False
 
                self.articles.clear ()
                for item in recs:
                        qrow = PyQt4.QtGui.QTreeWidgetItem ([str(item[0]), str(item[1])])
                        self.articles.addTopLevelItem (qrow)
+               # return true when successful
+               return True
 
        # when the view is refreshed
        def onViewRefresh (self):
@@ -330,9 +335,21 @@ class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow):
                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 ()
+
+                       # added to check whether categories are loaded successfully or not
+                       # if not, then reset the current_db to None
+                       loaded_cats = self.repopulate_categories ()
+                       loaded_arts = self.repopulate_articles ()
+                       # if failed in loading either categories or articles (note: checking against
+                       # False and not None)
+                       if loaded_cats == False or loaded_arts == False:
+                               self.current_db = None
+                               PyQt4.QtGui.QMessageBox.critical (self, "Error",
+                                       "SQLite 3 error in loading site database. This appears to be an invalid BiaWeb database")
+                       else:
+                               # set the window title to the database
+                               self.setWindowTitle ("BiaWeb - " + self.current_db)
+
 
        # file new menu is clicked
        def onFileNew (self):
@@ -377,7 +394,7 @@ class MainWindow (PyQt4.QtGui.QMainWindow, ui_main_window.Ui_MainWindow):
        def onAbout (self):
                PyQt4.QtGui.QMessageBox.about (self, "BiaWeb Qt",
                        "<b>A static website/weblog content management system</b><br /><br />\
-Copyright (C) 2010 <a href=\"http://www.harishankar.org\">Harishankar</a><br />\
+Copyright &copy; 2010 <a href=\"http://www.harishankar.org\">Harishankar</a><br />\
 Licensed under GNU/GPL v3")
 
        # file quit is clicked