def init(self): self.setFixedSize(900, 600) self.setWindowIcon(QIcon_load("preferences-system")) self.setWindowTitle(_("Configure") + " (https://www.gpvdm.com)") self.main_vbox = QVBoxLayout() toolbar = QToolBar() toolbar.setIconSize(QSize(48, 48)) spacer = QWidget() spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) toolbar.addWidget(spacer) self.undo = QAction(QIcon_load("help"), _("Help"), self) self.undo.setStatusTip(_("Help")) self.undo.triggered.connect(self.callback_help) toolbar.addAction(self.undo) self.main_vbox.addWidget(toolbar) self.notebook = QTabWidget() css_apply(self.notebook, "tab_default.css") self.notebook.setMovable(True) self.main_vbox.addWidget(self.notebook) files = [ "math.inp", "dump.inp", "thermal.inp", "led.inp", "config.inp", "server.inp" ] description = [ _("Solver configuration"), _("Output files"), _("Thermal"), _("LED"), _("GUI configuration"), _("Server configuration") ] for i in range(0, len(files)): file_name = os.path.join(get_sim_path(), files[i]) if inp_isfile(file_name) == True: tab = tab_class() tab.init(file_name, description[i]) self.notebook.addTab(tab, description[i]) if os.path.basename(file_name) == "dump.inp": tab.changed.connect(self.callback_tab_changed) self.detailed_file_select = dump_select() self.notebook.addTab(self.detailed_file_select, _("Detailed dump control")) lang_tab = language_tab_class() self.notebook.addTab(lang_tab, _("Language")) self.setLayout(self.main_vbox)
def active_layer_edit(self, widget, path, text, model): old_text=self.model[path][COLUMN_DEVICE] self.model[path][COLUMN_DEVICE]=text if yes_no(old_text)==False and yes_no(text)==True: self.model[path][COLUMN_DOS_LAYER]=epitay_get_next_dos() self.model[path][COLUMN_PL_FILE]=epitay_get_next_pl() new_file=self.model[path][COLUMN_DOS_LAYER]+".inp" if inp_isfile(new_file)==False: inp_copy_file(new_file,"dos0.inp") new_file=self.model[path][COLUMN_PL_FILE]+".inp" if inp_isfile(new_file)==False: inp_copy_file(new_file,"pl0.inp") if yes_no(text)==False: self.model[path][COLUMN_DOS_LAYER]="none" self.model[path][COLUMN_PL_FILE]="none" self.save_model() self.refresh(True)
def layer_type_edit(self): for i in range(0,self.tab.rowCount()): if tab_get_value(self.tab,i,3).lower()=="active layer" and tab_get_value(self.tab,i,4).startswith("dos")==False: tab_set_value(self.tab,i,4,epitay_get_next_dos()) tab_set_value(self.tab,i,5,epitay_get_next_pl()) mat_dir=os.path.join(get_materials_path(),tab_get_value(self.tab,i,2)) new_file=tab_get_value(self.tab,i,4)+".inp" if inp_isfile(new_file)==False: inp_copy_file(new_file,os.path.join(mat_dir,"dos.inp")) new_file=tab_get_value(self.tab,i,5)+".inp" if inp_isfile(new_file)==False: inp_copy_file(new_file,os.path.join(mat_dir,"pl.inp")) if tab_get_value(self.tab,i,3).lower()!="active layer" and tab_get_value(self.tab,i,4).startswith("dos")==True: tab_set_value(self.tab,i,4,tab_get_value(self.tab,i,3)) tab_set_value(self.tab,i,5,"none") self.save_model() self.emit_change()
def layer_type_edit(self): for i in range(0, self.tab.rowCount()): if tab_get_value(self.tab, i, 3).lower() == "active layer" and tab_get_value( self.tab, i, 4).startswith("dos") == False: tab_set_value(self.tab, i, 4, epitay_get_next_dos()) tab_set_value(self.tab, i, 5, epitay_get_next_pl()) mat_dir = os.path.join(get_materials_path(), tab_get_value(self.tab, i, 2)) new_file = tab_get_value(self.tab, i, 4) + ".inp" if inp_isfile(new_file) == False: dos_path = os.path.join(mat_dir, "dos.inp") if os.path.isfile(dos_path) == False: dos_path = os.path.join(get_default_material_path(), "dos.inp") inp_copy_file(new_file, dos_path) new_file = tab_get_value(self.tab, i, 5) + ".inp" if inp_isfile(new_file) == False: inp_copy_file(new_file, os.path.join(mat_dir, "pl.inp")) if tab_get_value(self.tab, i, 3).lower() != "active layer" and tab_get_value( self.tab, i, 4).startswith("dos") == True: tab_set_value(self.tab, i, 4, tab_get_value(self.tab, i, 3)) tab_set_value(self.tab, i, 5, "none") if tab_get_value(self.tab, i, 3).lower() == "other": tab_set_value(self.tab, i, 4, tab_get_value(self.tab, i, 3)) if tab_get_value(self.tab, i, 3).lower() == "contact": tab_set_value(self.tab, i, 4, tab_get_value(self.tab, i, 3)) self.save_model() self.emit_change() global_object_run("dos_update") global_object_run("pl_update")
def update(self): if self.scan_window != None: del self.scan_window self.scan_window = None if self.fit_window != None: del self.fit_window self.fit_window = None self.sun.update() if inp_isfile(os.path.join(get_sim_path(), "fit.inp")) == True: self.fit.setVisible(True) else: self.fit.setVisible(False)
def init(self): self.setFixedSize(900, 600) self.setWindowIcon(icon_get("preferences-system")) self.setWindowTitle(_("Configure")+" (https://www.gpvdm.com)") self.main_vbox = QVBoxLayout() spacer = QWidget() spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.toolbar.addWidget(spacer) self.undo = QAction(icon_get("help"), _("Help"), self) self.undo.setStatusTip(_("Help")) self.undo.triggered.connect(self.callback_help) self.toolbar.addAction(self.undo) self.main_vbox.addWidget(self.toolbar) self.notebook = QTabWidget() css_apply(self.notebook,"tab_default.css") self.notebook.setMovable(True) self.main_vbox.addWidget(self.notebook) for i in range(0,len(self.files)): file_name=os.path.join(get_sim_path(),self.files[i]) if inp_isfile(file_name)==True: tab=tab_class() tab.init(file_name,self.description[i]) self.notebook.addTab(tab,self.description[i]) if os.path.basename(file_name)=="dump.inp": tab.changed.connect(self.callback_tab_changed) self.detailed_file_select=dump_select() self.notebook.addTab(self.detailed_file_select,_("Detailed dump control")) self.setLayout(self.main_vbox)
def load(self): self.clean_menu() self.last_page=0 #print "paths",os.getcwd(),get_bin_path(),(os.path.normcase(os.getcwd())!=os.path.normcase(get_bin_path())) if (os.path.exists("sim.opvdm")==True) and (os.path.normcase(os.getcwd())!=os.path.normcase(get_bin_path())): self.finished_loading=False self.progress.init() self.progress.show() self.progress.start() self.progress.set_text("Loading..") process_events() for child in self.get_children(): self.remove(child) dos_files=inp_get_token_value("device_epitaxy.inp", "#layers") self.main_tab=tab_main() self.main_tab.init() self.main_tab.show() self.append_page(self.main_tab, gtk.Label(_("Device structure"))) lines=[] pos=0 if inp_load_file(lines,"gui_config.inp")==True: pos=0 tab_number=0 tabs=(len(lines)-3)/2 print "tabs=",tabs while (1): add_to_widget=False ret,pos=inp_get_next_token_array(lines,pos) if ret[0]=="#ver": break file_name=ret[0] if file_name[0]=="#": file_name=file_name[1:] name=inp_file_to_description(file_name) if name==False: print "name not found",name break visible=bool(int(ret[1])) self.progress.set_fraction(float(tab_number)/float(tabs)) tab_number=tab_number+1 self.progress.set_text(_("Loading ")+name) process_events() if file_name=="pl0.inp": tab=pl_main() tab.init() tab.update() add_to_widget=True tab.visible=visible tab.label_name=name tab.file_name=file_name elif file_name=="epitaxy.inp": tab=dos_main() tab.init() tab.update() add_to_widget=True tab.visible=visible tab.label_name=name tab.file_name=file_name elif file_name=="lumo0.inp": tab=tab_bands() tab.update() if tab.enabled==True: add_to_widget=True tab.visible=visible tab.wow() tab.label_name=name tab.file_name=file_name elif inp_isfile(file_name)==True: add_to_widget=True tab=tab_class() tab.visible=visible tab.init(file_name,name) tab.label_name=name tab.file_name=file_name if add_to_widget==True: #print file_name,name,visible,type(tab) hbox=gtk.HBox() hbox.set_size_request(-1, 25) mytext=name if len(mytext)<10: for i in range(len(mytext),10): mytext=mytext+" " label=gtk.Label(mytext) label.set_justify(gtk.JUSTIFY_LEFT) self.connect("switch-page", self.callback_switch_page) hbox.pack_start(label, False, True, 0) button = gtk.Button() close_image = gtk.Image() close_image.set_from_file(os.path.join(get_image_file_path(),"close.png")) print os.path.join(get_image_file_path(),"close.png") close_image.show() button = gtk.Button() button.add(close_image) button.props.relief = gtk.RELIEF_NONE button.connect("clicked", self.callback_close_button,name) button.set_size_request(25, 25) button.show() hbox.pack_end(button, False, False, 0) hbox.show_all() if (visible==True): tab.show() self.append_page(tab,hbox) self.set_tab_reorderable(tab,True) self.add_to_menu(name,visible) else: print _("No gui_config.inp file found\n") #for child in self.get_children(): # print type(child) if self.terminal_widget!=None: self.terminal_widget.show() self.append_page(self.terminal_widget, gtk.Label(_("Terminal"))) self.add_welcome_page() self.finished_loading=True self.progress.stop() self.progress.set_fraction(0.0) self.goto_page("tab_main") self.set_tab_pos(gtk.POS_TOP) #self.set_current_page(1) return True else: self.add_welcome_page() self.goto_page(_("Welcome")) return False
def experiment_new_filename(): for i in range(0,20): pulse_name="pulse"+str(i)+".inp" if inp_isfile(pulse_name)==False: return i return -1
def measure_new_filename(): for i in range(0, 20): pulse_name = "measure" + str(i) + ".inp" if inp_isfile(os.path.join(get_sim_path(), pulse_name)) == False: return i return -1
def update(self): self.enabled=inp_isfile("./lumo0.inp")
def fit_new_filename(): for i in range(0, 20): pulse_name = "fit" + str(i) + ".inp" if inp_isfile(pulse_name) == False: return i return -1
def load(self): self.clean_menu() self.last_page=0 #self.setTabsClosable(True) self.setMovable(True) if (os.path.exists("sim.gpvdm")==True) and (os.path.normcase(os.getcwd())!=os.path.normcase(get_bin_path())): self.finished_loading=False #self.progress.init() #self.progress.show() #self.progress.start() #self.progress.set_text("Loading..") #process_events() self.clear() # dos_files=inp_get_token_value("device_epitaxy.inp", "#layers") widget=tab_main() self.addTab(widget,_("Device structure")) lines=[] pos=0 if inp_load_file(lines,"gui_config.inp")==True: pos=0 tab_number=0 tabs=(len(lines)-3)/2 while (1): add_to_widget=False ret,pos=inp_get_next_token_array(lines,pos) if ret[0]=="#ver": break file_name=ret[0] if file_name[0]=="#": file_name=file_name[1:] name=inp_file_to_description(file_name) if name==False: print("name not found",name) break visible=bool(int(ret[1])) #self.progress.set_fraction(float(tab_number)/float(tabs)) tab_number=tab_number+1 #self.progress.set_text(_("Loading ")+name) #process_events() if file_name=="lumo0.inp": widget=tab_bands() #tab.update() add_to_widget=True widget.visible=visible widget.label_name=name widget.file_name=file_name elif file_name=="epitaxy.inp": widget=dos_main() widget.update() add_to_widget=True widget.visible=visible widget.label_name=name widget.file_name=file_name elif file_name=="pl0.inp": widget=pl_main() widget.update() add_to_widget=True widget.visible=visible widget.label_name=name widget.file_name=file_name elif inp_isfile(file_name)==True: add_to_widget=True widget=tab_class() widget.init(file_name,name) # add_to_widget=True # tab= # tab.visible=visible # tab.init(file_name,name) # tab.label_name=name # tab.file_name=file_name if add_to_widget==True: mytext=name if len(mytext)<10: for i in range(len(mytext),10): mytext=mytext+" " self.addTab(widget,mytext) self.terminal=tab_terminal() self.terminal.init() self.addTab(self.terminal,"Terminal") self.terminal.run(os.getcwd(),get_exe_command()+" --version --html") self.add_info_page() return True self.finished_loading=True #self.progress.stop() #self.progress.set_fraction(0.0) self.goto_page("tab_main") else: self.add_info_page() self.goto_page(_("Information")) return False
def update(self): if inp_isfile(os.path.join(get_sim_path(), "sim.ref")) == True: self.paper.setVisible(True) else: self.paper.setVisible(False)
def fit_new_filename(): for i in range(0,20): pulse_name="fit"+str(i)+".inp" if inp_isfile(pulse_name)==False: return i return -1
def experiment_new_filename(): for i in range(0,20): name="fxdomain"+str(i)+".inp" if inp_isfile(name)==False: return i return -1
def experiment_new_filename(base_name): for i in range(0, 20): pulse_name = base_name + str(i) + ".inp" if inp_isfile(os.path.join(get_sim_path(), pulse_name)) == False: return i return -1
def new_filenumber(self): for i in range(0, 20): new_filename = self.base_file_name[0] + str(i) + ".inp" if inp_isfile(os.path.join(get_sim_path(), new_filename)) == False: return str(i) return False