def save_data(self): file_name="fxmesh"+str(self.index)+".inp" scan_remove_file(file_name) out_text=[] out_text.append("#fx_start") out_text.append(str(float(self.fx_start))) out_text.append("#fx_segments") out_text.append(str(int(len(self.store)))) i=0 for line in self.store: out_text.append("#fx_segment"+str(i)+"_len") scan_item_add(file_name,out_text[len(out_text)-1],_("Part ")+str(i)+_(" period"),1) out_text.append(str(line[SEG_LENGTH])) out_text.append("#fx_segment"+str(i)+"_dfx") scan_item_add(file_name,out_text[len(out_text)-1],_("Part ")+str(i)+_(" dfx"),1) out_text.append(str(line[SEG_DFX])) out_text.append("#fx_segment"+str(i)+"_mul") scan_item_add(file_name,out_text[len(out_text)-1],_("Part ")+str(i)+_(" mul"),1) out_text.append(str(line[SEG_MUL])) i=i+1 out_text.append("#ver") out_text.append("1.0") out_text.append("#end") inp_write_lines_to_file(os.path.join(os.getcwd(),file_name),out_text) self.update_scan_tokens()
def save_data(self): file_name="fxmesh"+str(self.index)+".inp" scan_remove_file(file_name) out_text=[] out_text.append("#fx_start") out_text.append(str(float(self.fx_start))) out_text.append("#fx_segments") out_text.append(str(self.tab.rowCount())) for i in range(0,self.tab.rowCount()): out_text.append("#fx_segment"+str(i)+"_len") scan_item_add(file_name,out_text[len(out_text)-1],_("Part ")+str(i)+_(" period"),1) out_text.append(str(tab_get_value(self.tab,i, 0))) out_text.append("#fx_segment"+str(i)+"_dfx") scan_item_add(file_name,out_text[len(out_text)-1],_("Part ")+str(i)+_(" dfx"),1) out_text.append(str(tab_get_value(self.tab,i, 1))) out_text.append("#fx_segment"+str(i)+"_mul") scan_item_add(file_name,out_text[len(out_text)-1],_("Part ")+str(i)+_(" mul"),1) out_text.append(str(tab_get_value(self.tab,i, 2))) out_text.append("#ver") out_text.append("1.0") out_text.append("#end") inp_write_lines_to_file(os.path.join(os.getcwd(),file_name),out_text) self.update_scan_tokens()
def save_data(self): file_name = "fxmesh" + str(self.index) + ".inp" scan_remove_file(file_name) out_text = [] for i in range(0, self.tab.rowCount()): out_text.append("#fx_segment" + str(i) + "_start") scan_item_add(file_name, out_text[len(out_text) - 1], _("Part ") + str(i) + " " + _("start"), 1) out_text.append(str(tab_get_value(self.tab, i, 0))) out_text.append("#fx_segment" + str(i) + "_stop") scan_item_add(file_name, out_text[len(out_text) - 1], _("Part ") + str(i) + " " + _("stop"), 1) out_text.append(str(tab_get_value(self.tab, i, 1))) out_text.append("#fx_segment" + str(i) + "_points") scan_item_add(file_name, out_text[len(out_text) - 1], _("Part ") + str(i) + " " + _("points"), 1) out_text.append(str(tab_get_value(self.tab, i, 2))) out_text.append("#fx_segment" + str(i) + "_mul") scan_item_add(file_name, out_text[len(out_text) - 1], _("Part ") + str(i) + " " + _("mul"), 1) out_text.append(str(tab_get_value(self.tab, i, 3))) out_text.append("#ver") out_text.append("1.1") out_text.append("#end") inp_save(file_name, out_text) self.update_scan_tokens()
def update_scan_tokens(self): file_name="fxmesh"+str(self.index)+".inp" scan_remove_file(file_name) for i in range(0,len(self.list)): scan_item_add(file_name,"#fx_segment"+str(i)+"_len",_("Part ")+str(i)+_(" period"),1) scan_item_add(file_name,"#fx_segment"+str(i)+"_dfx",_("Part ")+str(i)+_(" dfx"),1) scan_item_add(file_name,"#fx_segment"+str(i)+"_mul",_("Part ")+str(i)+_(" mul"),1)
def epitaxy_update_scan(): global epi scan_remove_file("epitaxy.inp") for i in range(0, len(epi)): scan_item_add("epitaxy.inp", "#layer_material_file" + str(i), _("Material for ") + str(epi[i].name), 2) scan_item_add("epitaxy.inp", "#layer_width" + str(i), _("Layer width ") + str(epi[i].name), 1)
def rebuild_mat_list(self): self.material_files=[] mat=find_materials() for i in range(0,len(mat)): self.material_files.append(mat[i]) scan_remove_file(os.path.join(get_materials_path(),mat[i])) scan_item_add(os.path.join("materials",mat[i],"fit.inp"),"#wavelength_shift_alpha","Absorption spectrum wavelength shift",1) scan_item_add(os.path.join("materials",mat[i],"fit.inp"),"#n_mul","Refractive index spectrum multiplier",1) scan_item_add(os.path.join("materials",mat[i],"fit.inp"),"#alpha_mul","Absorption spectrum multiplier",1)
def update_scan_tokens(self): file_name="time_mesh_config"+str(self.index)+".inp" scan_remove_file(file_name) for i in range(0,len(self.list)): scan_item_add(file_name,"#time_segment"+str(i)+"_len",_("Part ")+str(i)+_(" period"),1) scan_item_add(file_name,"#time_segment"+str(i)+"_dt",_("Part ")+str(i)+_(" dt"),1) scan_item_add(file_name,"#time_segment"+str(i)+"_voltage_start",_("Part ")+str(i)+_(" start voltage"),1) scan_item_add(file_name,"#time_segment"+str(i)+"_voltage_stop",_("Part ")+str(i)+_(" stop voltage"),1) scan_item_add(file_name,"#time_segment"+str(i)+"_mul",_("Part ")+str(i)+_(" mul"),1) scan_item_add(file_name,"#time_segment"+str(i)+"_sun",_("Part ")+str(i)+_(" Sun"),1) scan_item_add(file_name,"#time_segment"+str(i)+"_laser",_("Part ")+str(i)+_(" CW laser"),1)
def update_scan_tokens(self): file_name = "fxmesh" + str(self.index) + ".inp" scan_remove_file(file_name) for i in range(0, len(self.list)): scan_item_add(file_name, "#fx_segment" + str(i) + "_start", _("Part ") + str(i) + " " + _("start"), 1) scan_item_add(file_name, "#fx_segment" + str(i) + "_stop", _("Part ") + str(i) + " " + _("stop"), 1) scan_item_add(file_name, "#fx_segment" + str(i) + "_points", _("Part ") + str(i) + " " + _("points"), 1) scan_item_add(file_name, "#fx_segment" + str(i) + "_mul", _("Part ") + str(i) + " " + _("mul"), 1)
def save_data(self): file_name="time_mesh_config"+str(self.index)+".inp" scan_remove_file(file_name) out_text=[] out_text.append("#start_time") out_text.append(str(float(self.start_time))) out_text.append("#fs_laser_time") out_text.append(str(float(self.fs_laser_time))) out_text.append("#time_segments") out_text.append(str(int(len(self.store)))) i=0 for line in self.store: out_text.append("#time_segment"+str(i)+"_len") scan_item_add(file_name,out_text[len(out_text)-1],_("Part ")+str(i)+_(" period"),1) out_text.append(str(line[SEG_LENGTH])) out_text.append("#time_segment"+str(i)+"_dt") scan_item_add(file_name,out_text[len(out_text)-1],_("Part ")+str(i)+_(" dt"),1) out_text.append(str(line[SEG_DT])) out_text.append("#time_segment"+str(i)+"_voltage_start") scan_item_add(file_name,out_text[len(out_text)-1],_("Part ")+str(i)+_(" start voltage"),1) out_text.append(str(line[SEG_VOLTAGE_START])) out_text.append("#time_segment"+str(i)+"_voltage_stop") scan_item_add(file_name,out_text[len(out_text)-1],_("Part ")+str(i)+_(" stop voltage"),1) out_text.append(str(line[SEG_VOLTAGE_STOP])) out_text.append("#time_segment"+str(i)+"_mul") scan_item_add(file_name,out_text[len(out_text)-1],_("Part ")+str(i)+_(" mul"),1) out_text.append(str(line[SEG_MUL])) out_text.append("#time_segment"+str(i)+"_sun") scan_item_add(file_name,out_text[len(out_text)-1],_("Part ")+str(i)+_(" sun"),1) out_text.append(str(line[SEG_SUN])) out_text.append("#time_segment"+str(i)+"_laser") scan_item_add(file_name,out_text[len(out_text)-1],_("Part ")+str(i)+_(" laser"),1) out_text.append(str(line[SEG_LASER])) i=i+1 out_text.append("#ver") out_text.append("1.1") out_text.append("#end") inp_write_lines_to_file(os.path.join(os.getcwd(),file_name),out_text) self.update_scan_tokens()
def update_scan_tokens(self): scan_remove_file(self.file_name) for i in range(0, len(self.list)): scan_item_add(self.file_name, "#time_segment" + str(i) + "_len", _("Part ") + str(i) + _(" period"), 1) scan_item_add(self.file_name, "#time_segment" + str(i) + "_dt", _("Part ") + str(i) + _(" dt"), 1) scan_item_add(self.file_name, "#time_segment" + str(i) + "_voltage_start", _("Part ") + str(i) + _(" start voltage"), 1) scan_item_add(self.file_name, "#time_segment" + str(i) + "_voltage_stop", _("Part ") + str(i) + _(" stop voltage"), 1) scan_item_add(self.file_name, "#time_segment" + str(i) + "_mul", _("Part ") + str(i) + _(" mul"), 1) scan_item_add(self.file_name, "#time_segment" + str(i) + "_sun", _("Part ") + str(i) + _(" Sun"), 1) scan_item_add(self.file_name, "#time_segment" + str(i) + "_laser", _("Part ") + str(i) + _(" CW laser"), 1)
def save_data(self): file_name="time_mesh_config"+str(self.index)+".inp" scan_remove_file(file_name) out_text=[] out_text.append("#start_time") out_text.append(str(float(self.start_time))) out_text.append("#fs_laser_time") out_text.append(str(float(self.fs_laser_time))) out_text.append("#time_segments") out_text.append(str(self.tab.rowCount())) for i in range(0,self.tab.rowCount()): out_text.append("#time_segment"+str(i)+"_len") out_text.append(str(tab_get_value(self.tab,i, 0))) out_text.append("#time_segment"+str(i)+"_dt") out_text.append(str(tab_get_value(self.tab,i, 1))) out_text.append("#time_segment"+str(i)+"_voltage_start") out_text.append(str(tab_get_value(self.tab,i, 2))) out_text.append("#time_segment"+str(i)+"_voltage_stop") out_text.append(str(tab_get_value(self.tab,i, 3))) out_text.append("#time_segment"+str(i)+"_mul") out_text.append(str(tab_get_value(self.tab,i, 4))) out_text.append("#time_segment"+str(i)+"_sun") out_text.append(str(tab_get_value(self.tab,i, 5))) out_text.append("#time_segment"+str(i)+"_laser") out_text.append(str(tab_get_value(self.tab,i, 6))) out_text.append("#ver") out_text.append("1.1") out_text.append("#end") inp_write_lines_to_file(os.path.join(os.getcwd(),file_name),out_text) self.update_scan_tokens()
def save_data(self): scan_remove_file(self.file_name) out_text = [] out_text.append("#start_time") out_text.append(str(float(self.start_time))) out_text.append("#fs_laser_time") out_text.append(str(float(self.fs_laser_time))) out_text.append("#time_segments") out_text.append(str(self.tab.rowCount())) for i in range(0, self.tab.rowCount()): out_text.append("#time_segment" + str(i) + "_len") out_text.append(str(tab_get_value(self.tab, i, 0))) out_text.append("#time_segment" + str(i) + "_dt") out_text.append(str(tab_get_value(self.tab, i, 1))) out_text.append("#time_segment" + str(i) + "_voltage_start") out_text.append(str(tab_get_value(self.tab, i, 2))) out_text.append("#time_segment" + str(i) + "_voltage_stop") out_text.append(str(tab_get_value(self.tab, i, 3))) out_text.append("#time_segment" + str(i) + "_mul") out_text.append(str(tab_get_value(self.tab, i, 4))) out_text.append("#time_segment" + str(i) + "_sun") out_text.append(str(tab_get_value(self.tab, i, 5))) out_text.append("#time_segment" + str(i) + "_laser") out_text.append(str(tab_get_value(self.tab, i, 6))) out_text.append("#ver") out_text.append("1.1") out_text.append("#end") inp_save(os.path.join(get_sim_path(), self.file_name), out_text) self.update_scan_tokens()
def init(self, filename, tab_name): self.scroll = QScrollArea() self.main_box_widget = QWidget() self.vbox = QVBoxLayout() self.hbox = QHBoxLayout() self.hbox.setAlignment(Qt.AlignTop) self.file_name = filename self.tab_name = tab_name self.tab = QGridLayout() widget = QWidget() widget.setLayout(self.tab) self.vbox.addWidget(widget) scan_remove_file(filename) self.edit_list = [] self.lines = inp_load_file(filename) if self.lines == False: error_dlg(self, _("File not found.") + " " + filename) return n = 0 pos = 0 my_token_lib = tokens() widget_number = 0 while (1): ret, pos = inp_get_next_token_array(self.lines, pos) token = ret[0] if token == "#ver": break if token == "#end": break if token.startswith("#"): show = False units = "Units" value = ret[1] result = my_token_lib.find(token) if result != False: units = result.units text_info = result.info show = True #self.set_size_request(600,-1) if show == True: description = QLabel_click() description.setText(latex_to_html(text_info)) if os.path.isfile( os.path.splitext(filename)[0] + "_" + token[1:] + ".ref"): description.setStyleSheet('color: green') description.clicked.connect( functools.partial(self.callback_ref, filename, token, description)) if result.widget == "gtkswitch": edit_box = gtkswitch() edit_box.setFixedSize(300, 25) edit_box.set_value(str2bool(value)) edit_box.changed.connect( functools.partial(self.callback_edit, filename, token, edit_box)) elif result.widget == "leftright": edit_box = leftright() edit_box.setFixedSize(300, 25) edit_box.set_value(str2bool(value)) edit_box.changed.connect( functools.partial(self.callback_edit, filename, token, edit_box)) elif result.widget == "gpvdm_select": edit_box = gpvdm_select(file_box=True) edit_box.setFixedSize(300, 25) edit_box.setText(value) edit_box.edit.textChanged.connect( functools.partial(self.callback_edit, filename, token, edit_box)) elif result.widget == "QLineEdit": edit_box = QLineEdit() edit_box.setFixedSize(300, 25) if self.editable == False: edit_box.setReadOnly(True) edit_box.setText(value) #edit_box.set_text(self.lines[pos]); edit_box.textChanged.connect( functools.partial(self.callback_edit, filename, token, edit_box)) #edit_box.show() elif result.widget == "QColorPicker": r = float(ret[1]) g = float(ret[2]) b = float(ret[3]) edit_box = QColorPicker(r, g, b) edit_box.setFixedSize(300, 25) edit_box.changed.connect( functools.partial(self.callback_edit, filename, token, edit_box)) elif result.widget == "QComboBoxLang": edit_box = QComboBoxLang() edit_box.setFixedSize(300, 25) for i in range(0, len(result.defaults)): edit_box.addItemLang(result.defaults[i][0], result.defaults[i][1]) edit_box.setValue_using_english(value) edit_box.currentIndexChanged.connect( functools.partial(self.callback_edit, filename, token, edit_box)) elif result.widget == "QParasitic": edit_box = QParasitic() edit_box.setFixedSize(300, 25) edit_box.setValue(value) edit_box.textChanged.connect( functools.partial(self.callback_edit, filename, token, edit_box)) elif result.widget == "QChangeLog": edit_box = QChangeLog() edit_box.setMinimumHeight(100) if self.editable == False: edit_box.setReadOnly(True) edit_box.setText(value) edit_box.textChanged.connect( functools.partial(self.callback_edit, filename, token, edit_box)) else: edit_box = QComboBox() edit_box.setFixedSize(300, 25) for i in range(0, len(result.defaults)): edit_box.addItem(result.defaults[i]) all_items = [ edit_box.itemText(i) for i in range(edit_box.count()) ] for i in range(0, len(all_items)): if all_items[i] == value: edit_box.setCurrentIndex(i) break edit_box.currentIndexChanged.connect( functools.partial(self.callback_edit, filename, token, edit_box)) unit = QLabel() unit.setText(latex_to_html(units)) self.tab.addWidget(description, widget_number, 0) self.tab.addWidget(edit_box, widget_number, 1) self.tab.addWidget(unit, widget_number, 2) scan_item_add(filename, token, text_info, 1) widget_number = widget_number + 1 spacer = QWidget() spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.vbox.addWidget(spacer) self.main_box_widget.setLayout(self.vbox) self.scroll.setWidget(self.main_box_widget) self.icon_widget = QWidget() self.icon_widget_vbox = QVBoxLayout() self.icon_widget.setLayout(self.icon_widget_vbox) if self.icon_file != "": self.image = QLabel() icon = QIcon_load(self.icon_file) self.image.setPixmap(icon.pixmap(icon.actualSize(QSize(32, 32)))) self.icon_widget_vbox.addWidget(self.image) spacer2 = QWidget() spacer2.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Expanding) self.icon_widget_vbox.addWidget(spacer2) self.hbox.addWidget(self.icon_widget) self.hbox.addWidget(self.scroll) self.setLayout(self.hbox)
def init(self,filename,fullname): scan_remove_file(filename) self.widget_type=[] self.file_name=filename self.edit_list=[] self.line_number=[] inp_load_file(self.lines,filename) n=0 pos=0 my_token_lib=tokens() height=27 for i in range(0, len(self.lines)/2): show=False units="Units" token=self.lines[pos] result=my_token_lib.find(token) if result!=False: units=result.units text_info=result.info show=True pos=pos+1 self.set_size_request(600,-1) if show == True : hbox=gtk.HBox() hbox.show() label = gtk.Label() label.set_size_request(400,height) label.set_markup(latex_to_pygtk_subscript(text_info)) label.set_use_markup(True) hbox.pack_start(label, False, False, padding=1) label.show() self.line_number.append(pos) if result.opt[0]=="text": edit_box=gtk.Entry(max=0) edit_box.set_text(self.lines[pos]); edit_box.connect("changed", self.callback_edit, token) edit_box.show() self.widget_type.append("edit") else: edit_box=gtk.combo_box_new_text() index=0 true_false=False if len(result.opt)==2: if result.opt[0]==_("true") and result.opt[1]==_("false"): true_false=True for i in range(0,len(result.opt)): edit_box.append_text(result.opt[i]) if true_false==False: if yes_no(self.lines[pos])==yes_no(result.opt[i]): index=i else: if str2bool(self.lines[pos])==True: index=0 else: index=1 edit_box.set_active(index); edit_box.connect("changed", self.callback_edit, token) edit_box.show() self.widget_type.append("combo") edit_box.set_size_request(300,height) self.edit_list.append(edit_box) hbox.pack_start(edit_box, False, False, padding=1) label = gtk.Label() label.set_markup(latex_to_pygtk_subscript(units)) label.set_use_markup(True) label.set_size_request(200,height) label.show() hbox.pack_start(label, False, False, padding=1) label.show() self.pack_start(hbox, False, False, padding=1) #self.add() line=1 scan_item_add(filename,token,text_info,line) n=n+1 pos=pos+1
def init(self, filename, tab_name): self.vbox = QVBoxLayout() self.file_name = filename self.tab_name = tab_name self.tab = QGridLayout() widget = QWidget() widget.setLayout(self.tab) self.vbox.addWidget(widget) scan_remove_file(filename) self.edit_list = [] inp_load_file(self.lines, filename) n = 0 pos = 0 my_token_lib = tokens() height = 27 widget_number = 0 while pos < len(self.lines): token = self.lines[pos] if token == "#ver": break if token == "#end": break if token.startswith("#"): show = False units = "Units" pos = pos + 1 value = self.lines[pos] result = my_token_lib.find(token) if result != False: units = result.units text_info = result.info show = True # self.set_size_request(600,-1) if show == True: description = QLabel() description.setText(latex_to_html(text_info)) if result.opt[0] == "switch": edit_box = gtkswitch() edit_box.set_value(str2bool(value)) edit_box.changed.connect(functools.partial(self.callback_edit, filename, token, edit_box)) elif result.opt[0] == "leftright": edit_box = leftright() edit_box.set_value(str2bool(value)) edit_box.changed.connect(functools.partial(self.callback_edit, filename, token, edit_box)) elif result.opt[0] == "text": edit_box = QLineEdit() if self.editable == False: edit_box.setReadOnly(True) edit_box.setText(value) # edit_box.set_text(self.lines[pos]); edit_box.textChanged.connect(functools.partial(self.callback_edit, filename, token, edit_box)) # edit_box.show() else: edit_box = QComboBox() for i in range(0, len(result.opt)): edit_box.addItem(result.opt[i]) all_items = [edit_box.itemText(i) for i in range(edit_box.count())] for i in range(0, len(all_items)): if all_items[i] == token: edit_box.setCurrentIndex(i) edit_box.currentIndexChanged.connect( functools.partial(self.callback_edit, filename, token, edit_box) ) edit_box.setFixedSize(300, 25) unit = QLabel() unit.setText(latex_to_html(units)) self.tab.addWidget(description, widget_number, 0) self.tab.addWidget(edit_box, widget_number, 1) self.tab.addWidget(unit, widget_number, 2) scan_item_add(filename, token, text_info, 1) widget_number = widget_number + 1 pos = pos + 1 spacer = QWidget() spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.vbox.addWidget(spacer) self.setLayout(self.vbox)