Minor changes required for running tests
[ipypbx] / src / ipypbx / main.py
index c847ad4..f0422d6 100644 (file)
@@ -57,6 +57,8 @@ def setupDb(prefix=PREFIX, dbname=DB_NAME):
             query = QtSql.QSqlQuery()
             for query_string in sql_queries[:-1]:
                 query.exec_(query_string)
+
+        return db, created
     else:
         # Something went horribly wrong.
         QtGui.QMessageBox.warning(
@@ -67,37 +69,46 @@ def setupDb(prefix=PREFIX, dbname=DB_NAME):
 if __name__ == '__main__':
     app = QtGui.QApplication(sys.argv)
 
+    # Localize UI.
     locale = QtCore.QLocale.system().name()
     translator = QtCore.QTranslator()
     
     if translator.load("ipypbx_%s" % locale.toLower(), "ipypbx/locale"):
         QtGui.QApplication.installTranslator(translator)
 
-    setupDb()
+    # Initialize main window.
+    db, created = setupDb()
     main = QtGui.QMainWindow()
     views = ui.Ui_MainWindow()
     views.setupUi(main)
     main.show()
 
-    main.controllers = []
+    # Setup controllers.
+    main.controllers = {}
     for basename in ('Connection', 'SipProfile', 'Domain', 'Gateway',
                      'Endpoint', 'Extension'):
-        main.controllers.append(getattr(
+        main.controllers[basename.lower()] = getattr(
             controllers, basename + 'Controller'
-            )(parent=main, views=views))
+            )(parent=main, views=views)
 
-    connection_model = main.controllers[0].model
+    # Select first row.
+    connection_model = main.controllers['connection'].model
     connection_index = connection_model.index(0, 0)
+
+    # Get first row index.
     first_row_id, ok = connection_model.data(
         connection_index.sibling(0, 0)).toInt()
-
-    if ok:        
+    
+    if ok:
+        # We have to explicitly emit row selection signal since previous state
+        # was unselected.
         QtCore.QObject.emit(
-            main.controllers[0].view_list.selectionModel(),
+            main.controllers['connection'].view_list.selectionModel(),
             QtCore.SIGNAL('currentRowChanged(QModelIndex, QModelIndex)'),
             connection_index, connection_index)
-    
-
 
+    # TODO: not needed anymore?
+    if created:
+        main.controllers['connection'].add()
     sys.exit(app.exec_())