X-Git-Url: https://code.agnibho.com/repo?p=ddstorm.git;a=blobdiff_plain;f=__main__.py;fp=__main__.py;h=1b430c221ab74992c142930a43b151b77ccebbe1;hp=0000000000000000000000000000000000000000;hb=49346f79fdffaccfa0a65dc0ba412311aa27a668;hpb=1071367015995fb627b2f1f41086727756ccba09 diff --git a/__main__.py b/__main__.py new file mode 100644 index 0000000..1b430c2 --- /dev/null +++ b/__main__.py @@ -0,0 +1,141 @@ +#! /usr/bin/python3 + +# DDStorm +# ------- +# Copyright (c) 2015 Agnibho Mondal +# All rights reserved + +# This file is part of DDStorm. + +# DDStorm is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# DDStorm is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with DDStorm. If not, see . + +import sys, time, subprocess +from PyQt4 import QtGui, QtCore +from _symptoms import Symptoms +from _differentials import Differentials +from ddstorm import DDStorm +from conf import Conf +from _extras import * +from const import * + +conf=False + +class Content(QtGui.QWidget): + change=QtCore.pyqtSignal() + def __init__(self): + super(Content, self).__init__() + self.dd=DDStorm(True,conf) + if(not self.dd.compiler.clean): + ret=QtGui.QMessageBox.warning(self, "Compilation Error", "Error was encountered while compiling the Knowledgebase.", "Ignore", "View Log") + if(ret==1): + x_logfile() + self.initUI() + def initUI(self): + global conf + + grid=QtGui.QGridLayout() + self.setLayout(grid) + + self.symp=Symptoms(self.dd.symptoms()) + self.symp.setFrameShape(QtGui.QFrame.StyledPanel) + self.symp.changed.connect(self.update) + + self.diff=Differentials() + self.diff.setFrameShape(QtGui.QFrame.StyledPanel) + + grid.addWidget(self.symp, 0, 0) + grid.addWidget(self.diff, 0, 1) + grid.setColumnStretch(0, 1) + grid.setColumnStretch(1, 1) + QtGui.QApplication.setStyle(QtGui.QStyleFactory.create("Cleanlooks")) + def update(self, data): + self.diff.update(self.dd.dd(data)) + self.change.emit() + +class Window(QtGui.QMainWindow): + def __init__(self): + super(Window, self).__init__() + self.initUI() + def initUI(self): + global conf + self.con=Content() + self.sett=SettingsDialog(conf) + if(conf.get("status_message")=="on"): + self.con.change.connect(self.showStatus) + + menu=self.menuBar() + menuFile=menu.addMenu("&File") + menuFile.addAction("&Save").triggered.connect(self.savefile) + menuFile.addAction("E&xit").triggered.connect(self.close) + menuEdit=menu.addMenu("&Edit") + menuEdit.addAction("&Add").triggered.connect(self.con.symp.addItem) + menuEdit.addAction("&Browse Symptoms").triggered.connect(self.con.symp.browseSymptoms) + rmAction=QtGui.QAction("&Remove", self) + rmAction.setShortcut("Delete") + rmAction.triggered.connect(self.con.symp.remove) + menuEdit.addAction(rmAction) + menuEdit.addAction("&Clear All").triggered.connect(self.con.symp.removeAll) + menuTool=menu.addMenu("&Tools") + menuTool.addAction("&Library").triggered.connect(x_lib) + menuTool.addAction("&Settings").triggered.connect(self.settings) + menuTool.addAction("&View Log").triggered.connect(x_logfile) + menuHelp=menu.addMenu("&Help") + menuHelp.addAction("&Help").triggered.connect(x_help) + menuHelp.addAction("&About").triggered.connect(self.about) + + self.setCentralWidget(self.con) + self.status=self.statusBar() + self.setGeometry(200, 200, 600, 400) + self.setWindowTitle("D/D Storm") + self.setWindowIcon(QtGui.QIcon("icons/icon.png")) + self.showMaximized() + self.con.symp.new.setFocus() + def showStatus(self): + if(self.con.symp.getList() and self.con.diff.getList()): + self.status.showMessage(str(len(self.con.diff.getList()))+" differential diagnosis for "+str(len(self.con.symp.getList()))+" symptom(s).") + else: + self.status.showMessage("") + def savefile(self): + x_save(self, self.con.symp.getList(), self.con.diff.getList()) + def settings(self): + self.sett.exec_() + def about(self): + QtGui.QMessageBox.about(self, "About", "

DDStorm

\nBrainstorm Medicine") + +def main(): + app=QtGui.QApplication(sys.argv) + + global conf + conf=Conf() + if(conf.get("clean_log")=="yes"): + open(LOG_FILE, "w").close() + if(conf.get("splash_screen")=="yes"): + ss=True + else: + ss=False + if(ss): + splash=QtGui.QSplashScreen(QtGui.QPixmap("icons/splash.png")) + splash.show() + time.sleep(0.1) + app.processEvents() + splash.showMessage("Loading...") + + w=Window() + if(ss): + splash.finish(w) + + sys.exit(app.exec_()) + +if(__name__=="__main__"): + main()