X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fipypbx%2Fmain.py;h=626f527f6c995e6a606874f64b92bc11541ca9a6;hb=3bfd6a5c6798e23c6cb2a4dee830e8cb7db48af2;hp=2aca1403327581f506933863bd2d96acc04a4349;hpb=26aea47243185ca81f0105b25cdc4c82cfc63ce1;p=ipypbx diff --git a/src/ipypbx/main.py b/src/ipypbx/main.py index 2aca140..626f527 100644 --- a/src/ipypbx/main.py +++ b/src/ipypbx/main.py @@ -15,32 +15,66 @@ # You should have received a copy of the GNU General Public License # along with IPyPBX. If not, see . +import os import sys -from ipypbx import ui -from PyQt4 import QtCore, QtGui +from ipypbx import controllers, sql, ui +from PyQt4 import QtCore, QtGui, QtSql -class MainWindow(QtGui.QMainWindow): - def __init__(self): - QtGui.QMainWindow.__init__(self) +# Working directory path. +# NOTE: ~/.ipypbx gives an error - for some reason QT doesn't like the dot? +PREFIX = os.path.expanduser('~/.ipypbx') - self.ui = ui.Ui_MainWindow() - self.ui.setupUi(self) +# Database file name. +DB_NAME = 'ipypbx.db' -if __name__ == '__main__': - app = QtGui.QApplication(sys.argv) - locale = QtCore.QLocale.system().name() - print "Locale is", locale +def setupDb(prefix=PREFIX, dbname=DB_NAME): + """ + Setup database. + """ + created = False + # Create it if necessary. + if prefix: + if not os.path.exists(prefix): + created = True + os.mkdir(prefix, 0700) + + os.chdir(prefix) + + # Connect to SQLite database. + db = QtSql.QSqlDatabase.addDatabase("QSQLITE") + db.setDatabaseName(dbname) + + if db.open(): + if created: + for query in sql.creation_queries: + QtSql.QSqlQuery().exec_(query) + else: + QtGui.QMessageBox.warning( + None, "Fatal Error", "Database Error: %s" % db.lastError().text()) + sys.exit(1) + +def localize(): + locale = QtCore.QLocale.system().name() translator = QtCore.QTranslator() if translator.load("ipypbx_%s" % locale.toLower(), "ipypbx/locale"): - app.installTranslator(translator) - else: - print "Translation not found" + QtGui.QApplication.installTranslator(translator) + + +if __name__ == '__main__': + app = QtGui.QApplication(sys.argv) + setupDb() + main = QtGui.QMainWindow() + views = ui.Ui_MainWindow() + views.setupUi(main) + localize() + main.show() - win = MainWindow() - win.show() + connectionController = controllers.ConnectionController( + parent=main, views=views) app.exec_() +# sys.exit()