import os
import sys
-from ipypbx import controllers, sql, ui
+from ipypbx import controllers, ui
from PyQt4 import QtCore, QtGui, QtSql
# Working directory path.
-# NOTE: ~/.ipypbx gives an error - for some reason QT doesn't like the dot?
PREFIX = os.path.expanduser('~/.ipypbx')
# Database file name.
if db.open():
if created:
- for query in sql.creation_queries:
- QtSql.QSqlQuery().exec_(query)
+ # Load script from local file.
+ sql_script = open(os.path.join(os.path.dirname(__file__), 'create.sql')).read()
+
+ # Split into individual queries.
+ sql_queries = sql_script.split(';')
+
+ # Execute all queries except last that is empty.
+ query = QtSql.QSqlQuery()
+ for query_string in sql_queries[:-1]:
+ query.exec_(query_string)
else:
+ # Something went horribly wrong.
QtGui.QMessageBox.warning(
None, "Fatal Error", "Database Error: %s" % db.lastError().text())
sys.exit(1)
-
+
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
+
+ locale = QtCore.QLocale.system().name()
+ translator = QtCore.QTranslator()
+
+ if translator.load("ipypbx_%s" % locale.toLower(), "ipypbx/locale"):
+ QtGui.QApplication.installTranslator(translator)
+
setupDb()
-# import pdb; pdb.set_trace()
-# runApp()
- views = ui.MainWindow()
- views.show()
-
- connectionModel = QtSql.QSqlTableModel(views)
- connectionModel.setTable('connections')
- connectionModel.setHeaderData(
- sql.Connection.id, QtCore.Qt.Horizontal,
- QtCore.QVariant('Connection_ID'))
- connectionModel.setHeaderData(
- sql.Connection.name, QtCore.Qt.Horizontal,
- QtCore.QVariant('Name'))
- connectionModel.setHeaderData(
- sql.Connection.local_ip_address, QtCore.Qt.Horizontal,
- QtCore.QVariant('Local_IP_Address'))
- connectionModel.setHeaderData(
- sql.Connection.local_port, QtCore.Qt.Horizontal,
- QtCore.QVariant('Local_Port'))
- connectionModel.setHeaderData(
- sql.Connection.freeswitch_ip_address, QtCore.Qt.Horizontal,
- QtCore.QVariant('Freeswitch_IP_Address'))
- connectionModel.setHeaderData(
- sql.Connection.freeswitch_port, QtCore.Qt.Horizontal,
- QtCore.QVariant('Freeswitch_Port'))
- connectionModel.select()
-
- views.connectionView.setModel(connectionModel)
- views.connectionView.setColumnHidden(sql.Connection.id, True)
- views.connectionView.setSelectionMode(QtGui.QTableView.SingleSelection)
- views.connectionView.setSelectionBehavior(QtGui.QTableView.SelectRows)
- views.connectionView.resizeColumnsToContents()
- views.connectionView.resizeRowsToContents()
- views.connectionView.horizontalHeader().setStretchLastSection(True)
-
-
- views.connectionData.setModel(connectionModel)
- connectionController = controllers.ConnectionController()
-
- signals_data = (
- # (self.ui.connectionList, 'currentRowChanged(int)',
- # self.connections.select),
- # (self.ui.connectionClone, 'clicked()', self.connections.clone),
- # (self.ui.connectionSave, 'clicked()', self.connections.save),
-# (views.connectionAdd, 'clicked()', connectionController.add),
- )
-
-# for sender, signal, receiver in signals_data:
-# QtCore.QObject.connect(sender, QtCore.SIGNAL(signal), receiver)
-
- app.exec_()
-# sys.exit()
+ main = QtGui.QMainWindow()
+ views = ui.Ui_MainWindow()
+ views.setupUi(main)
+ main.show()
+
+ main.controllers = []
+ for basename in ('Connection', 'SipProfile', 'Domain', 'Gateway',
+ 'Endpoint', 'Extension'):
+ main.controllers.append(getattr(
+ controllers, basename + 'Controller'
+ )(parent=main, views=views))
+
+ connection_model = main.controllers[0].model
+ connection_index = connection_model.index(0, 0)
+ first_row_id, ok = connection_model.data(
+ connection_index.sibling(0, 0)).toInt()
+
+ if ok:
+ QtCore.QObject.emit(
+ main.controllers[0].view_list.selectionModel(),
+ QtCore.SIGNAL('currentRowChanged(QModelIndex, QModelIndex)'),
+ connection_index, connection_index)
+
+
+
+ sys.exit(app.exec_())
+