X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fipypbx%2Fmain.py;h=c847ad45c312f7693cbc56128eadb49a83ff23a9;hb=37a217cb0f8b14d42e77a8423f02b5d6dac145f3;hp=72d1de0f1014732d4ae5a6b2ade27ff19b28c979;hpb=15eb870fb4be0063036ffd33cb21ce06473efb0e;p=ipypbx diff --git a/src/ipypbx/main.py b/src/ipypbx/main.py index 72d1de0..c847ad4 100644 --- a/src/ipypbx/main.py +++ b/src/ipypbx/main.py @@ -17,12 +17,11 @@ 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. @@ -48,66 +47,57 @@ def setupDb(prefix=PREFIX, dbname=DB_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_()) +