コード例 #1
0
ファイル: SubcircuitTab.py プロジェクト: rowhit/eSim
    def trackSubcircuit(self):
        """
        This function is use to keep track of all Subcircuit widget
        """
        sending_btn = self.sender()
        #print "Object Called is ",sending_btn.objectName()
        self.widgetObjCount = int(sending_btn.objectName())

        self.subfile = str(
            QtGui.QFileDialog.getExistingDirectory(self, "Open Subcircuit",
                                                   "res/SubcircuitLibrary"))
        self.reply = self.obj_validation.validateSub(
            self.subfile, self.numPorts[self.widgetObjCount - 1])
        if self.reply == "True":
            #Setting Library to Text Edit Line
            self.entry_var[self.widgetObjCount].setText(self.subfile)
            self.subName = self.subDetail[self.widgetObjCount]

            #Storing to track it during conversion

            self.obj_trac.subcircuitTrack[self.subName] = self.subfile
        elif self.reply == "PORT":
            self.msg = QtGui.QErrorMessage(self)
            self.msg.showMessage(
                "Please select a Subcircuit with correct number of ports.")
            self.msg.setWindowTitle("Error Message")
            self.msg.show()
        elif self.reply == "DIREC":
            self.msg = QtGui.QErrorMessage(self)
            self.msg.showMessage(
                "Please select a valid Subcircuit directory (Containing '.sub' file)."
            )
            self.msg.setWindowTitle("Error Message")
            self.msg.show()
コード例 #2
0
    def createProject(self):
        print "Create Project Called"
        self.workspace = self.obj_appconfig.default_workspace['workspace']
        self.projName = self.projEdit.text()
        self.projName = str(self.projName).rstrip().lstrip(
        )  #Remove leading and trailing space

        self.projDir = os.path.join(self.workspace, str(self.projName))

        print "Project Name:", self.projName
        #Validation for newProject
        if self.projName == "":
            self.reply = "NONE"
        else:
            self.reply = self.obj_validation.validateNewproj(str(self.projDir))

        #Checking Validations Response
        if self.reply == "VALID":
            print "Validated : Creating project directory"
            #create project directory
            try:
                os.mkdir(self.projDir)
                self.close()
                self.projFile = os.path.join(self.projDir,
                                             self.projName + ".proj")
                f = open(self.projFile, "w")
            except:
                print "Some Thing Wrong"
                self.msg = QtGui.QErrorMessage(self)
                self.msg.showMessage(
                    'Unable to create project. Please make sure you have write permission on '
                    + self.workspace)
                self.msg.setWindowTitle("Error Message")
            f.write("schematicFile " + self.projName + ".sch\n")
            f.close()

            #Now Change the current working project
            self.obj_appconfig.current_project['ProjectName'] = self.projDir

        elif self.reply == "CHECKEXIST":
            print "Project already exist"
            self.msg = QtGui.QErrorMessage(self)
            self.msg.showMessage(
                'The project "' + self.projName +
                '" already exist.Please select the different name or delete existing project'
            )
            self.msg.setWindowTitle("Error Message")

        elif self.reply == "CHECKNAME":
            print "Name is not proper"
            self.msg = QtGui.QErrorMessage(self)
            self.msg.showMessage(
                'The project name should not contain space between them')
            self.msg.setWindowTitle("Error Message")

        elif self.reply == "NONE":
            print "Empyt Project Name"
            self.msg = QtGui.QErrorMessage(self)
            self.msg.showMessage('The project name cannot be empty')
            self.msg.setWindowTitle("Error Message")
コード例 #3
0
ファイル: Application.py プロジェクト: rowhit/eSim
    def open_OMedit(self):
        """
        This function call ngspice to OM edit converter and then launch OM edit.
        """
        self.obj_appconfig.print_info('OM edit is called')
        self.projDir = self.obj_appconfig.current_project["ProjectName"]

        if self.projDir != None:
            if self.obj_validation.validateCirOut(self.projDir):
                self.projName = os.path.basename(self.projDir)
                self.ngspiceNetlist = os.path.join(self.projDir,
                                                   self.projName + ".cir.out")
                self.modelicaNetlist = os.path.join(self.projDir,
                                                    self.projName + ".mo")
                """
                try:
                    #Creating a command for Ngspice to Modelica converter
                    self.cmd1 = "python ../ngspicetoModelica/NgspicetoModelica.py "+self.ngspiceNetlist
                    self.obj_workThread1 = Worker.WorkerThread(self.cmd1)
                    self.obj_workThread1.start()
                    
                    
                    if self.obj_validation.validateTool("OMEdit"):
                        #Creating command to run OMEdit
                        self.cmd2 = "OMEdit "+self.modelicaNetlist
                        self.obj_workThread2 = Worker.WorkerThread(self.cmd2)
                        self.obj_workThread2.start()
                    else:
                        self.msg = QtGui.QMessageBox()
                        self.msgContent = "There was an error while opening OMEdit.<br/>\
                        Please make sure OpenModelica is installed in your system. <br/>\
                        To install it on Linux : Go to <a href=https://www.openmodelica.org/download/download-linux>OpenModelica Linux</a> and install nigthly build release.<br/>\
                        To install it on Windows : Go to <a href=https://www.openmodelica.org/download/download-windows>OpenModelica Windows</a> and install latest version.<br/>"
                        self.msg.setTextFormat(QtCore.Qt.RichText)
                        self.msg.setText(self.msgContent)
                        self.msg.setWindowTitle("Missing OpenModelica")
                        self.obj_appconfig.print_info(self.msgContent)
                        self.msg.exec_()
                                  
                except Exception as e:
                    self.msg = QtGui.QErrorMessage()
                    self.msg.showMessage('Unable to convert NgSpice netlist to Modelica netlist :'+str(e))
                    self.msg.setWindowTitle("Ngspice to Modelica conversion error")
                    self.obj_appconfig.print_error(str(e))
                """

                self.obj_Mainview.obj_dockarea.modelicaEditor(self.projDir)

            else:
                self.msg = QtGui.QErrorMessage()
                self.msg.showMessage(
                    'Current project does not contain any ngspice file. Please create ngspice file with extension .cir.out'
                )
                self.msg.setWindowTitle("Missing Ngspice netlist")
        else:
            self.msg = QtGui.QErrorMessage()
            self.msg.showMessage(
                'Please select the project first. You can either create new project or open existing project'
            )
            self.msg.setWindowTitle("Error Message")
コード例 #4
0
ファイル: SubcircuitTab.py プロジェクト: rowhit/eSim
    def trackSubcircuitWithoutButton(self, iter_value, path_value):

        self.widgetObjCount = iter_value

        self.subfile = path_value
        self.reply = self.obj_validation.validateSub(
            self.subfile, self.numPorts[self.widgetObjCount - 1])
        if self.reply == "True":
            #Setting Library to Text Edit Line
            self.entry_var[self.widgetObjCount].setText(self.subfile)
            self.subName = self.subDetail[self.widgetObjCount]

            #Storing to track it during conversion

            self.obj_trac.subcircuitTrack[self.subName] = self.subfile
        elif self.reply == "PORT":
            self.msg = QtGui.QErrorMessage(self)
            self.msg.showMessage(
                "Please select a Subcircuit with correct number of ports.")
            self.msg.setWindowTitle("Error Message")
            self.msg.show()
        elif self.reply == "DIREC":
            self.msg = QtGui.QErrorMessage(self)
            self.msg.showMessage(
                "Please select a valid Subcircuit directory (Containing '.sub' file)."
            )
            self.msg.setWindowTitle("Error Message")
            self.msg.show()
コード例 #5
0
 def open_ngspice(self):
     """
     This Function execute ngspice on current project
     """
     
     self.projDir = self.obj_appconfig.current_project["ProjectName"]
     
     if self.projDir != None:
         self.obj_Mainview.obj_dockarea.ngspiceEditor(self.projDir)
         time.sleep(2)  #Need permanent solution 
         #Calling Python Plotting
             
         try:
             self.obj_Mainview.obj_dockarea.plottingEditor()
         except Exception as e:
             self.msg = QtGui.QErrorMessage(None)
             self.msg.showMessage('Error while opening python plotting Editor. Please look at console for more details ')
             print "Exception Message:",str(e)
             self.obj_appconfig.print_error('Exception Message : ' + str(e))
             self.msg.setWindowTitle("Error Message")
                     
     else:
         self.msg = QtGui.QErrorMessage()
         self.msg.showMessage('Please select the project first. You can either create new project or open existing project')
         self.msg.setWindowTitle("Error Message")
コード例 #6
0
ファイル: consolidatepanel.py プロジェクト: maxburian/SAXS
    def startmerge(self):
        mergeok = self.checkinput()
        if mergeok == "OK":
            argu = ["mergedata", self.filename]
            result = json.loads(
                Leash.initcommand(self.app.options, argu, self.app.netconf))
            print result
            if result['result'] == "Error" or result['result'] == "ServerError":
                errormessage = QtGui.QErrorMessage(parent=self.app)
                errormessage.setWindowTitle("Server Error")
                errormessage.setMinimumSize(400, 300)
                errormessage.showMessage(result['data']["Error"])
            else:
                self.localmergetstatusthread.start()
                self.statusfield.clear()
                self.writeToStatus(
                    "\n\n******************************************")
                tempstr = str(datetime.now().strftime(
                    self.timeformat)) + ": Datamerge has started!"
                self.writeToStatus(tempstr)
                self.writeToStatus(
                    "******************************************")

                self.submitlabel.setText("Merging data!")
                self.submitbutton.setEnabled(False)
                self.app.submitbutton.setEnabled(False)
        else:
            errormessage = QtGui.QErrorMessage(parent=self.app)
            errormessage.setWindowTitle("Configuration Error")
            errormessage.setMinimumSize(400, 300)
            errormessage.showMessage(mergeok)
コード例 #7
0
    def trackSubcircuitWithoutButton(self, iter_value, path_value):
        """
        - Same as trackSubcircuit, but here the count value is passed directly
          without using any button as in `Add`
        - This is triggered only once, initally
        """

        self.widgetObjCount = iter_value

        self.subfile = path_value
        self.reply = self.obj_validation.validateSub(
            self.subfile, self.numPorts[self.widgetObjCount - 1])
        if self.reply == "True":
            # Setting Library to Text Edit Line
            self.entry_var[self.widgetObjCount].setText(self.subfile)
            self.subName = self.subDetail[self.widgetObjCount]

            # Storing to track it during conversion
            self.obj_trac.subcircuitTrack[self.subName] = self.subfile
        elif self.reply == "PORT":
            self.msg = QtGui.QErrorMessage(self)
            self.msg.setModal(True)
            self.msg.setWindowTitle("Error Message")
            self.msg.showMessage(
                "Please select a Subcircuit with correct number of ports.")
            self.msg.exec_()
        elif self.reply == "DIREC":
            self.msg = QtGui.QErrorMessage(self)
            self.msg.setModal(True)
            self.msg.setWindowTitle("Error Message")
            self.msg.showMessage(
                "Please select a valid Subcircuit directory "
                "(Containing '.sub' file).")
            self.msg.exec_()
コード例 #8
0
 def executeMemoryQuery(self):
     value = self.comboBox.currentIndex()
     execPath = os.path.abspath(
         os.path.dirname(sys.modules['__main__'].__file__))
     if value == 0:  #mem-image
         if int(self.lineEdit.text()) >= 0:
             retVal = os.popen(
                 str(execPath + os.sep + 'memAnalyzer -f ' + self.dumpFile +
                     ' -o tempOut.tmp -e ' + self.lineEdit.text() +
                     ' -d 0 -m ' + self.lineEdit_2.text() + ' -w ' +
                     self.lineEdit_6.text() + ' 2>&1'))
         else:
             retVal = os.popen(
                 str(execPath + os.sep + 'memAnalyzer -f ' + self.dumpFile +
                     ' -o tempOut.tmp -d 0 -m ' + self.lineEdit_2.text() +
                     ' -w ' + self.lineEdit_6.text() + ' 2>&1'))
         #print(str('./memAnalyzer -f ' + self.dumpFile + ' -o tempOut.tmp -e ' + self.lineEdit.text() + ' -d 0 -m ' + self.lineEdit_2.text() + ' -w ' + self.lineEdit_6.text() + ' 2>&1'))
         if retVal.readline() != '':
             errorDialog = QtGui.QErrorMessage(self.mainWin)
             errorDialog.showMessage('Error in reading the memory dump: ' +
                                     retVal.readline())
         else:
             self.textEdit.clear()
             try:
                 self.textEdit.setPlainText('\n'.join(
                     open('tempOut.tmp').readlines()))
             except Exception, e:
                 errorDialog = QtGui.QErrorMessage(self.mainWin)
                 errorDialog.showMessage(
                     'Error in reading the memory dump: ' + str(e))
コード例 #9
0
ファイル: convertSub.py プロジェクト: rowhit/eSim
 def createSub(self):
     """
     This function create command to call kicad to Ngspice converter.
     """
     print "Openinig Kicad-to-Ngspice converter from Subcircuit Module"
     self.projDir = self.obj_appconfig.current_subcircuit["SubcircuitName"]
     #Validating if current project is available or not
     if self.obj_validation.validateKicad(self.projDir):
         #Checking if project has .cir file or not
         if self.obj_validation.validateCir(self.projDir):
             #print "CIR file present"
             self.projName = os.path.basename(self.projDir)
             self.project = os.path.join(self.projDir,self.projName)
                           
             var1=self.project+".cir"
             var2="sub"
             self.obj_dockarea.kicadToNgspiceEditor(var1,var2)
         else:
             self.msg = QtGui.QErrorMessage(None)
             self.msg.showMessage('The subcircuit does not contain any Kicad netlist file for conversion.')
             self.msg.setWindowTitle("Error Message")  
     else:
         self.msg = QtGui.QErrorMessage(None)
         self.msg.showMessage('Please select the subcircuit first. You can either create new subcircuit or open existing subcircuit')
         self.msg.setWindowTitle("Error Message") 
コード例 #10
0
ファイル: newSub.py プロジェクト: rowhit/eSim
    def createSubcircuit(self, subName):
        """
        This function create Subcircuit related directories and files
        """
        self.create_schematic = subName
        #Checking if Workspace already exist or not
        self.schematic_path = (os.path.join(os.path.abspath('..'),
                                            'SubcircuitLibrary',
                                            self.create_schematic))

        #Validation for new subcircuit
        if self.schematic_path == "":
            self.reply = "NONE"
        else:
            self.reply = self.obj_validation.validateNewproj(
                str(self.schematic_path))

        #Checking Validations Response
        if self.reply == "VALID":
            print "Validated : Creating subcircuit directory"
            try:
                os.mkdir(self.schematic_path)
                self.schematic = os.path.join(self.schematic_path,
                                              self.create_schematic)
                self.cmd = "eeschema " + self.schematic + ".sch"
                self.obj_workThread = Worker.WorkerThread(self.cmd)
                self.obj_workThread.start()
                self.close()
            except:
                #print "Some Thing Went Wrong"
                self.msg = QtGui.QErrorMessage(self)
                self.msg.showMessage(
                    'Unable to create subcircuit. Please make sure you have write permission on '
                    + self.schematic_path)
                self.msg.setWindowTitle("Error Message")

            self.obj_appconfig.current_subcircuit[
                'SubcircuitName'] = self.schematic_path

        elif self.reply == "CHECKEXIST":
            #print "Project already exist"
            self.msg = QtGui.QErrorMessage(self)
            self.msg.showMessage(
                'The subcircuit "' + self.create_schematic +
                '" already exist.Please select the different name or delete existing subcircuit'
            )
            self.msg.setWindowTitle("Error Message")

        elif self.reply == "CHECKNAME":
            #print "Name is not proper"
            self.msg = QtGui.QErrorMessage(self)
            self.msg.showMessage(
                'The subcircuit name should not contain space between them')
            self.msg.setWindowTitle("Error Message")

        elif self.reply == "NONE":
            self.msg = QtGui.QErrorMessage(self)
            self.msg.showMessage('The subcircuit name cannot be empty')
            self.msg.setWindowTitle("Error Message")
コード例 #11
0
ファイル: Kicad.py プロジェクト: saurabhb17/eSim
    def openKicadToNgspice(self):
        """
        This function create command to validate and then call
        KicadToNgSPice converter from DockArea file

        @params

        @return
        """
        print("Function: Open Kicad to Ngspice Converter")

        self.projDir = self.obj_appconfig.current_project["ProjectName"]
        try:
            self.obj_appconfig.print_info(
                'Kicad to Ngspice Conversion is called')
            self.obj_appconfig.print_info('Current Project is ' + self.projDir)
        except BaseException:
            pass
        # Validating if current project is available or not
        if self.obj_validation.validateKicad(self.projDir):
            # Checking if project has .cir file or not
            if self.obj_validation.validateCir(self.projDir):
                self.projName = os.path.basename(self.projDir)
                self.project = os.path.join(self.projDir, self.projName)

                # Creating a command to run
                """
                self.cmd = ("python3  ../kicadtoNgspice/KicadtoNgspice.py "
                + "self.project+".cir ")
                self.obj_workThread = Worker.WorkerThread(self.cmd)
                self.obj_workThread.start()
                """
                var = self.project + ".cir"
                self.obj_dockarea.kicadToNgspiceEditor(var)

            else:
                self.msg = QtGui.QErrorMessage()
                self.msg.setModal(True)
                self.msg.setWindowTitle("Error Message")
                self.msg.showMessage(
                    'The project does not contain any Kicad netlist file ' +
                    'for conversion.')
                self.obj_appconfig.print_error(
                    'The project does not contain any Kicad netlist file ' +
                    'for conversion.')
                self.msg.exec_()

        else:
            self.msg = QtGui.QErrorMessage()
            self.msg.setModal(True)
            self.msg.setWindowTitle("Error Message")
            self.msg.showMessage(
                'Please select the project first. You can either ' +
                'create new project or open existing project')
            self.msg.exec_()
            self.obj_appconfig.print_warning(
                'Please select the project first. You can either ' +
                'create new project or open existing project')
コード例 #12
0
ファイル: UnitData.py プロジェクト: mashiyatz/lex-talionis
 def duplicate_current_pack(self):
     current_pack = self.current_pack(
     )  # Need to be saved since it changes within this function's for loop
     new_name, ok = QtGui.QInputDialog.getText(
         self,
         "Duplicate Group",
         'Enter name of duplicated group:',
         text=current_pack if current_pack else "")
     if ok:
         if not any(rein.pack == new_name
                    for rein in self.unit_data.reinforcements):
             counter = 0
             for idx, unit in enumerate(self.unit_data.reinforcements):
                 if unit.pack == current_pack:
                     counter += 1
                     created_unit = unit.copy()
                     created_unit.pack = new_name
                     created_unit.event_id = counter
                     created_unit.position = unit.position  # Make sure position is copied over
                     self.unit_data.add_reinforcement(created_unit)
                     self.add_unit(created_unit)
             self.window.update_view()
         else:
             # Show pop-up
             QtGui.QErrorMessage().showMessage(
                 "Must use new name for duplicated group!")
コード例 #13
0
        def __init__(self, parent=None):
            super().__init__(parent)
            # attributes
            self.setupUi(self)

            # ------- SITE DIALOG CONSTRUCTOR ARGS ----- #
            self.facade = face.Facade()
            self.dsite = SiteDialog()
            # Actions
            self.actionSiteTable.triggered.connect(self.site_display)
            # Custom Signals
            self.dsite.site_unlocks.connect(self.site_complete_enable)
            self.dsite.update_data

            # ------ SESSION DIALOG CONSTRUCTOR ARGS ----- #
            # Dialog boxes for user feedback
            self.dsession = logicsess.SessionDialog()
            self.error = QtGui.QErrorMessage()
            self.message = QtGui.QMessageBox
            # Custom signals
            self.dsession.raw_data_model.connect(self.update_data_model)
            # actions
            self.actionStart_Session.triggered.connect(self.session_display)

            self.mdiArea.addSubWindow(self.subwindow_2)
            self.mdiArea.addSubWindow(self.subwindow_1)

            metadf = read_csv(rootpath + end + 'data' + end +
                              'Cataloged_Data_Current_sorted.csv',
                              encoding='iso-8859-11')
            metamodel = view.PandasTableModel(
                metadf[['global_id', 'lter', 'title', 'site_metadata']])
            self.tblViewMeta.setModel(metamodel)
コード例 #14
0
        def __init__(self, parent=None):
            super().__init__(parent)
            self.setupUi(self)
            # Facade set up for the taxa dialog
            # box. These inputs will have been already
            # logged in the computer in order to
            # reach this phase
            self.facade = face.Facade()
            self.facade.input_register(metahandle)
            self.facade.meta_verify()
            self.facade.input_register(filehandle)
            self.facade.load_data()
            self.facade.input_register(sitehandle)
            sitelevels = self.facade._data['SITE'].drop_duplicates(
            ).values.tolist()
            self.facade.register_site_levels(sitelevels)
            self.facade.input_register(taxahandle)

            self.sitelabel = None

            # Actions
            self.btnAddsite.clicked.connect(self.submit_change)
            self.btnSaveClose.clicked.connect(self.submit_change)
            self.btnCancel.clicked.connect(self.close)

            # Update boxes/preview box
            self.message = QtGui.QMessageBox
            self.error = QtGui.QErrorMessage()
コード例 #15
0
 def Choose_File(self):
     if self.File_Selector_Box.count() == 0:
         self.slpath = QtGui.QFileDialog.getOpenFileNames(
             self, 'Choose Scanalyzer File', '', "csv (*.csv)",
             QtGui.QFileDialog.DontUseNativeDialog)
         if self.slpath:
             self.statusBar().showMessage("Scanalyzer CSV valid.")
             self.File_Selector_Box.addItems(self.slpath)
             self.Import_Data()
             self.Select_File()
     else:
         self.additional_files = QtGui.QFileDialog.getOpenFileNames(
             self, 'Choose Scanalyzer File', '', "csv (*.csv)",
             QtGui.QFileDialog.DontUseNativeDialog)
         duplicates = []
         for file in self.additional_files:
             if file in self.slpath:
                 self.additional_files.remove(file)
                 duplicates.append(file)
         if len(duplicates) > 0:
             self.Error = QtGui.QErrorMessage(self)
             self.Error.setWindowTitle('Error: Duplicate File!')
             self.Error.showMessage(
                 'A file with that name has already been loaded.')
         self.slpath.extend(self.additional_files)
         if self.slpath:
             self.statusBar().showMessage("Scanalyzer CSV's are Valid")
             self.File_Selector_Box.clear()
             self.Update_Labels()
             self.Import_Data()
コード例 #16
0
    def updateGraph(self):
        self.settings_widget.setDisabled(True)
        loading_win = LoadingWindow()

        start_date = self.start_date.dateTime().toPyDateTime()
        end_date = self.end_date.dateTime().toPyDateTime()
        new_time = [i for i in self.times if (i >= start_date and i < end_date)]
        index = self.times.index(new_time[0]), self.times.index(new_time[-1])
        new_target = self.target[index[0]:index[1]+1]
        new_predict = self.predict[index[0]:index[1]+1]

        try:
            smoothing_window = int(self.smooth_spin.value())
        except:
            error_window = QtGui.QErrorMessage(self)
            error_window.showMessage("Smoothing window must be integer value.")
        else:
            if smoothing_window > 0:
                self.canvas.updateData(
                    new_time,
                    moving_average(new_target, smoothing_window),
                    moving_average(new_predict, smoothing_window))
            else:
                self.canvas.updateData(new_time, new_target, new_predict)
            self.statusBar().showMessage("Graphing complete.", 5000)
            
        if self.anomaly_box.checkState() == QtCore.Qt.Checked:
            self.showAnomalies()
        else:
            self.canvas.clearSpans()
                
        self.canvas.fig.tight_layout()
        self.canvas.draw()
        self.settings_widget.setEnabled(True)
        loading_win.close()
コード例 #17
0
ファイル: generator.py プロジェクト: jose2190/friture
    def device_changed(self, device):
        # save current stream in case we need to restore it
        previous_stream = self.stream
        previous_device = self.device

        self.device = self.audiobackend.output_devices[device]
        self.stream = self.open_output_stream(self.device)

        self.logger.push("Trying to write to output device #%d" % (device))

        if self.test_output_stream(self.stream):
            self.logger.push("Success")
            previous_stream.close()
            success = True
        else:
            self.logger.push("Fail")
            self.stream.close()
            self.stream = previous_stream
            self.device = previous_device
            success = False

        self.settings_dialog.comboBox_outputDevice.setCurrentIndex(device)

        if not success:
            # Note: the error message is a child of the settings dialog, so that
            # that dialog remains on top when the error message is closed
            error_message = QtGui.QErrorMessage(self.settings_dialog)
            error_message.setWindowTitle("Output device error")
            error_message.showMessage(
                "Impossible to use the selected output device, reverting to the previous one"
            )
コード例 #18
0
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setupUi(self)

        # Place holders for user inputs
        self.taxalned = {}
        self.taxackbox = {}
        self.taxacreate = {}
        self.available = None
        self.null = None
        self.saved = False
        # Place holder: Data Model/ Data model view
        self.taxamodel = None
        self.viewEdit = view.PandasTableModelEdit
        # Placeholders: Data tables
        self.taxa_table = None
        # Placeholder: Director (table builder), log
        self.taxadirector = None
        self._log = None
        # Placeholder for maindata Orms
        self.taxaorms = {}
        # Actions
        self.btnTaxasubmit.clicked.connect(self.submit_change)
        self.btnSaveClose.clicked.connect(self.submit_change)
        self.btnCancel.clicked.connect(self.close)

        # Update boxes/preview box
        self.message = QtGui.QMessageBox
        self.error = QtGui.QErrorMessage()
        self.preview = prev.TablePreview()
コード例 #19
0
 def addparameters(self):
     '''
     - Called when `Add` button clicked beside QTableWidget
     - Open up dialog box to enter parameter and value accordingly
     - Validate if parameter already in list of parameters
     - Accordingly add parameter and value in modeldict as well as table
     - text1 => parameter, text2 => value
     '''
     text1, ok = QtGui.QInputDialog.getText(self, 'Parameter',
                                            'Enter Parameter')
     if ok:
         if text1 in list(self.modeldict.keys()):
             self.msg = QtGui.QErrorMessage(self)
             self.msg.setModal(True)
             self.msg.setWindowTitle("Error Message")
             self.msg.showMessage("The paramaeter " + text1 +
                                  " is already in the list")
             self.msg.exec_()
             return
         text2, ok = QtGui.QInputDialog.getText(self, 'Value',
                                                'Enter Value')
         if ok:
             currentRowCount = self.modeltable.rowCount()
             self.modeltable.insertRow(currentRowCount)
             self.modeltable.setItem(currentRowCount, 0,
                                     QTableWidgetItem(text1))
             self.modeltable.setItem(currentRowCount, 1,
                                     QTableWidgetItem(text2))
             self.modeldict[str(text1)] = str(text2)
         else:
             pass
     else:
         pass
コード例 #20
0
        def __init__(self, parent=None):
            super().__init__(parent)
            self.setupUi(self)

            # Facade set up
            self.facade = face.Facade()
            self.facade.input_register(meta_handle_1_count)
            self.facade.meta_verify()
            self.facade.input_register(file_handle_split_columns)
            self.facade.load_data()

            self.previous_click = False
            # Place holders for user inputs
            self.splitcolumnlned = {}

            # Place holder: Data Model/ Data model view
            self.splitcolumnmodel = None
            self.viewEdit = view.PandasTableModelEdit(None)
            # Placeholders: Data tables
            self.splitcolumntable = None

            # Actions
            self.btnPreview.clicked.connect(self.submit_change)
            self.btnSaveClose.clicked.connect(self.submit_change)
            self.btnCancel.clicked.connect(self.close)

            # Update boxes/preview box
            self.message = QtGui.QMessageBox
            self.error = QtGui.QErrorMessage()
            self.preview = tprev.TablePreview()
コード例 #21
0
 def set_image(self, image_file):
     self.image = QtGui.QImage(image_file)
     if self.image.width() % 16 != 0 or self.image.height() % 16 != 0:
         QtGui.QErrorMessage().showMessage("Image width and/or height is not divisible by 16!")
         return
     self.view.clear_scene()
     self.view.set_new_image(image_file)
コード例 #22
0
    def messagePost(self, publish):
        #print str(self.timeStamp.dateTime().toString('yyyy-mm-dd hh:mm:ss'))
        clist = self.categoryList.selectedItems()
        categories = []
        for item in clist:
            categories.append(str(item.text()))
        if self.commentCheckBox.checkState():
            comment = 1
        else:
            comment = 0
        #self.content = {'title':str(self.titleTxt.text()),'description':str(self.blogTxt.toHtml())[214:-14],'categories':categories,'dateCreated': str(self.timeStamp.dateTime().toString('yyyymmddThh:mm:ss')),'mt_allow_comments':comment}
        desc = str(self.blogTxt.toPlainText())
        self.content = {
            'title': str(self.titleTxt.text()),
            'description': desc,
            'categories': categories,
            'mt_allow_comments': comment
        }

        try:
            postid = self.server.metaWeblog.newPost(1, self.username,
                                                    self.password,
                                                    self.content, publish)
            qm = QtGui.QMessageBox.information(
                self, 'Done:)', 'Blog updated with postid %s' % (postid))
            self.clearAll()
        except xmlrpclib.Fault, e:
            qm = QtGui.QErrorMessage(self)
            qm.showMessage(e.faultString)
コード例 #23
0
ファイル: Application.py プロジェクト: saurabhb17/eSim
    def change_mode(self):
        """
        - This function is used for changing mode of operation for KiCad. \
        - There are three modes of operation :
            - online
            - offline
            - disable

        - If none of the KiCad tools (associated with eSim) are \
          open, then validate this mode by calling the function \
          `validate_mode` and depending on online_flag, swap \
          appropriate fp-lib-table files.
        - If any of the KiCad tools (associated with eSim) is open, \
          then ask user to close all these tools.
        - If `online_flag` is `None`, then disable this feature.

        @params

        @return
            None
        """
        if not self.obj_kicad.check_open_schematic():
            self.validate_mode()
            if self.online_flag is True:
                os.rename(
                    self.obj_appconfig.kicad_path + "/fp-lib-table",
                    self.obj_appconfig.kicad_path + "/fp-lib-table-online")
                os.rename(
                    self.obj_appconfig.kicad_path + "/fp-lib-table-offline",
                    self.obj_appconfig.kicad_path + "/fp-lib-table")
                self.switchmode.setIcon(QtGui.QIcon('images/offline.png'))
                self.switchmode.setText('<b>Go Online</b>')
                self.switchmode.setEnabled(True)
                self.online_flag = False

            elif self.online_flag is False:
                os.rename(
                    self.obj_appconfig.kicad_path + "/fp-lib-table",
                    self.obj_appconfig.kicad_path + "/fp-lib-table-offline")
                os.rename(
                    self.obj_appconfig.kicad_path + "/fp-lib-table-online",
                    self.obj_appconfig.kicad_path + "/fp-lib-table")
                self.switchmode.setIcon(QtGui.QIcon('images/online.png'))
                self.switchmode.setText('<b>Go Offline</b>')
                self.switchmode.setEnabled(True)
                self.online_flag = True

            elif self.online_flag is None:
                self.switchmode.setIcon(QtGui.QIcon('images/disable.png'))
                self.switchmode.setText(
                    '<b>Mode switching has been ' +
                    'disabled. Default mode set to offline</b>.')
                self.switchmode.setEnabled(False)
        else:
            self.msg = QtGui.QErrorMessage()
            self.msg.setWindowTitle("Error Message")
            self.msg.setModal(True)
            self.msg.showMessage('Please save and close all the Kicad ' +
                                 'windows first, then change the mode')
            self.msg.exec_()
コード例 #24
0
ファイル: ModelEditor.py プロジェクト: rowhit/eSim
 def addparameters(self):
     '''
     This function is used to add new parameter in the table
     '''
     text1, ok = QtGui.QInputDialog.getText(self, 'Parameter',
                                            'Enter Parameter')
     if ok:
         if text1 in self.modeldict.keys():
             self.msg = QtGui.QErrorMessage(self)
             self.msg.showMessage("The paramaeter " + text1 +
                                  " is already in the list")
             self.msg.setWindowTitle("Error Message")
             return
         text2, ok = QtGui.QInputDialog.getText(self, 'Value',
                                                'Enter Value')
         if ok:
             currentRowCount = self.modeltable.rowCount()
             self.modeltable.insertRow(currentRowCount)
             self.modeltable.setItem(currentRowCount, 0,
                                     QTableWidgetItem(text1))
             self.modeltable.setItem(currentRowCount, 1,
                                     QTableWidgetItem(text2))
             self.modeldict[str(text1)] = str(text2)
         else:
             pass
     else:
         pass
コード例 #25
0
ファイル: Application.py プロジェクト: saurabhb17/eSim
    def open_nghdl(self):
        """
        This function calls NGHDL option in left-tool-bar.
        It uses validateTool() method from Validation.py:

            - If 'nghdl' is present in executables list then
              it passes command 'nghdl -e' to WorkerThread class of
              Worker.py.
            - If 'nghdl' is not present, then it shows error message.
        """
        print("Function : NGHDL")
        self.obj_appconfig.print_info('NGHDL is called')

        if self.obj_validation.validateTool('nghdl'):
            self.cmd = 'nghdl -e'
            self.obj_workThread = Worker.WorkerThread(self.cmd)
            self.obj_workThread.start()
        else:
            self.msg = QtGui.QErrorMessage()
            self.msg.setModal(True)
            self.msg.setWindowTitle('NGHDL Error')
            self.msg.showMessage('Error while opening NGHDL. ' +
                                 'Please make sure it is installed')
            self.obj_appconfig.print_error('Error while opening NGHDL. ' +
                                           'Please make sure it is installed')
            self.msg.exec_()
コード例 #26
0
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setupUi(self)

        # Placeholders
        # user input for dialog box
        # logging class
        self.siteini = None
        self._log = None
        self._data = None
        self.sitelned = None

        # Placeholders:
        # Site Table from Raw data
        # and Site Table after edits
        self.site_table_data_to_upload_to_db = None
        self.sitetabledata = None
        self.sitelevels_submit_block = None
        self.sitelevels_change_block = None
        self.sitelevels_updated = None

        # Place holder for sqlalchemy Orms
        self.siteorms = {}

        # Viewer Classes (editable and not)
        self.viewEdit = view.PandasTableModelEdit
        self.view = view.PandasTableModel

        # Placeholders for data model classes for viewers:
        # Original data model
        # Database query model
        # Data model if updated from query
        self.sitetablemodel = None
        self.sitequerymodel = None
        self.querycheck = None
        self.updated_from_query_matches = False
        # User facade composed from main window
        self.facade = None
        self.lter = None

        # Table Director to build site table from
        # Builder classes
        self.sitedirector = None
        self.siteloc = {'study_site_key': None}
        self.saved = []
        # Status Message
        self.error = QtGui.QErrorMessage()
        self.message = QtGui.QMessageBox
        self.preview_validate = chg.TablePreview()
        self.preview_validate.btnAccept.clicked.connect(self.validated)
        self.preview_validate.btnCancel.clicked.connect(
            self.preview_validate.close)

        # Signals and slots
        self.btnSiteID.clicked.connect(self.submit_change)
        self.btnSaveClose.clicked.connect(self.save_close)
        self.btnSkip.clicked.connect(self.close)
        self.btnChange.clicked.connect(self.change_site_label)
        self.btnUpdate.clicked.connect(self.update_data)
        self.previous_save = False
コード例 #27
0
ファイル: Kicad.py プロジェクト: rowhit/eSim
    def openSchematic(self):
        """
        This function create command to open Kicad schematic
        """
        print "Function : Open Kicad Schematic"
        self.projDir = self.obj_appconfig.current_project["ProjectName"]
        try:
            self.obj_appconfig.print_info(
                'Kicad Schematic is called for project ' + self.projDir)
        except:
            pass
        #Validating if current project is available or not

        if self.obj_validation.validateKicad(self.projDir):
            #print "calling Kicad schematic ",self.projDir
            self.projName = os.path.basename(self.projDir)
            self.project = os.path.join(self.projDir, self.projName)

            #Creating a command to run
            self.cmd = "eeschema " + self.project + ".sch "
            self.obj_workThread = Worker.WorkerThread(self.cmd)
            self.obj_workThread.start()

        else:
            self.msg = QtGui.QErrorMessage(None)
            self.msg.showMessage(
                'Please select the project first. You can either create new project or open existing project'
            )
            self.obj_appconfig.print_warning(
                'Please select the project first. You can either create new project or open existing project'
            )
            self.msg.setWindowTitle("Error Message")
コード例 #28
0
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setupUi(self)

        self.facade = None
        self.mainini = None
        # Place holder: Data Model/ Data model view
        self.mainmodel = None
        self.viewEdit = view.PandasTableModelEdit
        self.form_entries = None

        # Placeholders: Data tables
        self.project_table = None

        # Placeholder: Director (table builder), log
        self.maindirector = None
        self._log = None

        # Actions
        self.btnPreview.clicked.connect(self.submit_change)
        self.btnSaveClose.clicked.connect(self.submit_change)
        self.btnCancel.clicked.connect(self.close)

        self.preview = tprev.TablePreview()
        self.message = QtGui.QMessageBox
        self.error = QtGui.QErrorMessage()
コード例 #29
0
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setupUi(self)
        # Facade set up for the taxa dialog
        # box. These inputs will have been already
        # logged in the computer in order to
        # reach this phase

        # Place holders for user inputs
        self.obslned = {}
        self.obsckbox = {}
        self.obsraw = {}
        self.available = None
        self.null = None
        # Place holder: Data Model/ Data model view
        self.obsmodel = None
        self.viewEdit = view.PandasTableModelEdit
        # Placeholders: Data tables
        self.obstable = None
        # Placeholder: Director (table builder), log
        self.obsdirector = None
        self._log = None
        # Placeholder for maindata Orms
        self.obsorms = {}
        # Actions
        self.btnPreview.clicked.connect(self.submit_change)
        self.btnSaveClose.clicked.connect(self.submit_change)
        self.btnCancel.clicked.connect(self.close)
        self.tablename = None
        self.table = None

        # Update boxes/preview box
        self.message = QtGui.QMessageBox
        self.error = QtGui.QErrorMessage()
        self.preview = prev.TablePreview()
コード例 #30
0
ファイル: leash2.py プロジェクト: kjuraic/SAXS
 def loadui(self,reconnectresult):
     
     self.mainWindow=super(LeashUI,self)
     self.mainWindow.setWindowTitle(self.netconf["Name"]+" SAXS Leash")
     self.appdir=os.path.dirname(__file__)+os.sep
     self.mainWindow.setWindowIcon(QtGui.QIcon(self.appdir+"icons"+os.sep+"program.png"))
     self.tab=QtGui.QTabWidget()
     self.calib=QtGui.QWidget()
     self.caliblayout=QtGui.QHBoxLayout()
     self.calib.setLayout(self.caliblayout)
     self.calibeditor=calibeditor.calibeditor(self)
     self.caliblayout.addWidget(self.calibeditor)
     self.submitlayout=QtGui.QVBoxLayout()
     self.caliblayout.addLayout(self.submitlayout)
     self.queuestatuslabel=QtGui.QLabel("No queue on server.")
     self.filestatuslabel=QtGui.QLabel("")
     self.submitbutton=QtGui.QPushButton("Start Server Queue")
     self.submitlayout.addWidget(self.queuestatuslabel)
     self.submitlayout.addWidget( self.filestatuslabel)
     self.submitlayout.addWidget(self.submitbutton)
     self.submitlayout.addStretch()
     self.tab.addTab( self.calib , "Calib")
     self.plotpanel=plotpanel.plotpanel(self.tab)
     plottab=self.tab.addTab( self.plotpanel , "Plots")
     
     
     self.histpanel=histpanel.histpanel(self)
     self.tab.addTab( self.histpanel , "History")
     self.mainWindow.setCentralWidget (self.tab  )
     self.connect(self.submitbutton,QtCore.SIGNAL('clicked()'),self.startqueue)
     self.connect(self.calibeditor.model,QtCore.SIGNAL("dataChanged(QModelIndex,QModelIndex)"),self.statusmodified)
     self.errormessage=QtGui.QErrorMessage()
     self.menue=leashmenue.menueitems(self)
     self.connect(self.calibeditor.model, QtCore.SIGNAL("fileNameChanged()"),self.updatewindowtitle)
     self.plotthread=plotdatathread.plotthread(self)
     self.connect(self.plotthread,QtCore.SIGNAL("plotdata(QString)"),self.plotpanel.plot)
     self.connect(self.plotthread,QtCore.SIGNAL("plotdata(QString)"),self.histpanel.plot)
     self.connect(self.plotthread,QtCore.SIGNAL("histupdate(QString)"),self.histpanel.timestep)
   
     
     if not  self.localserver:
         self.checkServerCalibchanged=checkServerCalibchanged.checkServerCalibChangedThread(self)
         self.connect(self.plotthread,QtCore.SIGNAL("ServerQueueTimeChanged()"),  self.checkServerCalibchanged.start)
         self.connect(self.checkServerCalibchanged,QtCore.SIGNAL("ServerQueueChanged(QString)"),self.notifyServerChange)
     if  reconnectresult and reconnectresult["result"]=="cal":
         self.calibeditor.model.loadservercalib(reconnectresult)
         self.calibeditor.reset()
         self.mainWindow.setWindowTitle(self.netconf["Name"]+" SAXS Leash: Server Calibration")
         self.setqueuesynced()
        
     elif len(self.args)>0:
         filename=self.args[0]
         self.calibeditor.model.loadfile(filename)
         self.calibeditor.reset()
         self.mainWindow.setWindowTitle(self.netconf["Name"]+" SAXS Leash: "+filename)
         self.menue.appendrecentfile(filename)
     
     self.plotthread.start()
     self.consolidatepanel=consolidatepanel.consolidatepanel(self)
     self.tab.addTab( self.consolidatepanel , "Consolidate")