def changed_click(self): if self.notebook.tabText(self.notebook.currentIndex()).strip() == _( "Electrical parameters"): help_window().help_set_help([ "tab.png", _("<big><b>Electrical parameters</b></big><br>Use this tab to configure the electrical parameters for the material." ) ]) self.ribbon.tb_save.setEnabled(False) self.ribbon.import_data.setEnabled(False) if self.notebook.tabText( self.notebook.currentIndex()).strip() == _("Luminescence"): help_window().help_set_help([ "tab.png", _("<big><b>Luminescence</b></big><br>Use this tab to edit the materials Luminescence." ) ]) self.ribbon.tb_save.setEnabled(False) self.ribbon.import_data.setEnabled(False) if self.notebook.tabText( self.notebook.currentIndex()).strip() == _("Absorption"): b = bibtex() if b.load(os.path.join(self.path, "mat.bib")) != False: text = b.get_text_of_token("alpha", html=True) if text != False: help_window().help_set_help([ "alpha.png", _("<big><b>Absorption</b></big><br>" + text) ]) self.ribbon.tb_save.setEnabled(True) self.ribbon.import_data.setEnabled(True) if self.notebook.tabText( self.notebook.currentIndex()).strip() == _("Refractive index"): b = bibtex() if b.load(os.path.join(self.path, "mat.bib")) != False: text = b.get_text_of_token("n", html=True) if text != False: help_window().help_set_help([ "n.png", _("<big><b>Refractive index</b></big><br>" + text) ]) self.ribbon.tb_save.setEnabled(True) self.ribbon.import_data.setEnabled(True)
def changed_click(self): if self.notebook.tabText(self.notebook.currentIndex()).strip()==_("Shape"): b=bibtex() if b.load(os.path.join(self.path,"shape.bib"))!=False: text=b.get_text() help_window().help_set_help(["shape.png",_("<big><b>Shape file</b></big><br>"+text)])
def callback_paper(self): b = bibtex() if b.load(os.path.join(get_sim_path(), "sim.bib")) == True: ref = b.get_ref("simulation") if ref != False: if r.url != "": webbrowser.open(r.url) #
def __init__(self, bib_file, token): """Pass this the file name of the file you want referenced.""" QWidgetSavePos.__init__(self, "ref_window") resize_window_to_be_sane(self, 0.5, 0.5) self.bib_file = bib_file self.token = token self.setWindowIcon(icon_get("ref")) self.setWindowTitle( _("Reference manager") + " (https://www.gpvdm.com)") self.vbox = QVBoxLayout() self.toolbar = QToolBar() self.toolbar.setIconSize(QSize(48, 48)) spacer = QWidget() spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.toolbar.addWidget(spacer) self.tb_help = QAction(icon_get("help"), _("Help"), self) self.tb_help.setStatusTip(_("Help")) self.tb_help.triggered.connect(self.callback_help) self.toolbar.addAction(self.tb_help) self.vbox.addWidget(self.toolbar) self.tab = inp_viewer() self.tab.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.vbox.addWidget(self.tab) self.button_widget = QWidget() self.button_hbox = QHBoxLayout() self.button_widget.setLayout(self.button_hbox) spacer = QWidget() spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) self.button_hbox.addWidget(spacer) self.button_close = QPushButton(_("Save")) self.button_close.clicked.connect(self.callback_save) self.button_hbox.addWidget(self.button_close) self.vbox.addWidget(self.button_widget) self.setLayout(self.vbox) self.b = bibtex() self.b.load(self.bib_file) self.item = self.b.get_ref(self.token) if self.item == False: self.item = self.b.new() self.item.token = token lines = [] for var in self.item.vars: lines.append("#ref_" + var) lines.append(getattr(self.item, var)) lines.append("#end") self.tab.populate(lines)
def language_advert(): lang=get_language() f=os.path.join(get_flag_file_path(),lang+".png") if os.path.isfile(f)==True: b=bibtex() loaded=b.load(os.path.join(get_full_desired_lang_path(),"ref.bib")) if loaded==False or r.author=="": my_help_class.help_append([f,"<big><b>"+_("gpvdm in your language!")+"</b></big><br>"+"Would you like gpvdm to be translated into your native language? If so please help with the gpvdm <a href=\"https://gpvdm.com/translation.html\">translation project.</a>"]) else: my_help_class.help_append([f,"<big><b>"+_("gpvdm translated by:")+"</b></big><br>"+r.author])
def on_selection_changed(self): self.selected = [] if len(self.selectedItems()) > 0: item = self.selectedItems()[0] if type(item) != None: obj = self.decode_name(item.text()) if obj == None: return file_name = obj.file_name self.file_path = os.path.join(self.path, file_name) for item in self.selectedItems(): self.selected.append(self.decode_name(item.text())) full_path = self.file_path if (file_name.endswith(".dat") == True): state = dat_file() get_plot_file_info(state, full_path) summary = "<big><b>" + file_name + "</b></big><br><br>" + _( "title") + ": " + state.title + "<br>" + _( "x axis" ) + ": " + state.y_label + " (" + latex_to_html( state.y_units) + ")<br>" + _( "y axis" ) + ": " + state.data_label + " (" + latex_to_html( state.data_units) + ")<br><br><big><b>" + _( "Double click to open") + "</b></big>" help_window().help_set_help(["dat_file.png", summary]) if file_name.endswith("equilibrium"): state = dat_file() get_plot_file_info(state, full_path) summary = "<big><b>" + _( "equilibrium" ) + "</b></big><br><br>" + _( "This contains the simulation output at 0V in the dark.") help_window().help_set_help(["folder.png", summary]) #if os.path.isdir(full_path)==True: if get_dir_type(full_path) == "material": summary = "<b><big>" + file_name + "</b></big><br>" ref_path = os.path.join(full_path, "mat.bib") b = bibtex() if b.load(ref_path) != False: summary = summary + b.get_text() help_window().help_set_help(["organic_material", summary]) self.selection_changed.emit()
def fill_store(self): self.materials.clear() all_files=find_materials() for fl in all_files: b=bibtex() if b.load(os.path.join(get_materials_path(),fl,"mat.bib"))!=False: text=b.get_text(html=False) if text!="": itm = QListWidgetItem(os.path.basename(fl)+" "+text) itm.setIcon(self.mat_icon) itm.setToolTip(text) self.materials.addItem(itm)
def __init__(self): QLabel.__init__(self) try: self.setWordWrap(True) self.setMinimumWidth(350) bib = bibtex() bib.load(os.path.join(get_bib_path(), "cite.bib")) number = sum(ord(c) for c in get_lock().get_uid()) % 10 if number < len(bib.refs): text = bib.refs[number].short_cite() self.setText( "<b>Please cite,</b> " + text + " when using gpvdm in your work. And any 2 other paers listed <a href=\"https://scholar.google.co.uk/citations?user=jgQqfLsAAAAJ&hl=en\">here.</a>" ) except: pass
def populate(self,lines): self.f.lines=lines n=0 pos=0 my_token_lib=tokens() widget_number=0 bib=bibtex() if self.file_name!=None: bib.load(os.path.splitext(self.file_name)[0]+".bib") while (1): token,values=self.f.get_next_token_array() if token=="#ver": break if token=="#end": break if token.startswith("#"): show=False units="Units" value=values[0] result=my_token_lib.find(token) if result!=False: #print(token,result.info) units=result.units text_info=result.info show=True if result.hidden==True: show=False if show == True : description=QLabel_click() description.setText(latex_to_html(text_info)) if self.file_name!=None: if bib.get_ref(token)!=False: description.setStyleSheet('color: green') description.clicked.connect(functools.partial(self.callback_ref,token,description)) #units widget if result.units_widget=="QLabel": unit=QLabel() unit.setText(latex_to_html(units)) elif result.units_widget=="QPushButton": unit=QPushButton() unit.setText(latex_to_html(units)) unit.setFixedSize(50, 25) #edit widget if result.widget=="gtkswitch": edit_box=gtkswitch() edit_box.setFixedSize(300, 25) edit_box.changed.connect(functools.partial(self.callback_edit,token,edit_box,unit,result)) elif result.widget=="leftright": edit_box=leftright() edit_box.setFixedSize(300, 25) edit_box.changed.connect(functools.partial(self.callback_edit,token,edit_box,unit,result)) elif result.widget=="gpvdm_select": edit_box=gpvdm_select(file_box=True) edit_box.setFixedSize(300, 25) edit_box.edit.textChanged.connect(functools.partial(self.callback_edit,token,edit_box,unit,result)) elif result.widget=="gpvdm_select_material": edit_box=gpvdm_select_material(file_box=False) edit_box.setFixedSize(300, 25) edit_box.edit.textChanged.connect(functools.partial(self.callback_edit,token,edit_box,unit,result)) elif result.widget=="gpvdm_select_emission": edit_box=gpvdm_select_emission(file_box=False) edit_box.setFixedSize(300, 25) edit_box.edit.textChanged.connect(functools.partial(self.callback_edit,token,edit_box,unit,result)) elif result.widget=="QLineEdit": edit_box=QLineEdit() edit_box.setFixedSize(300, 25) if self.editable==False: edit_box.setReadOnly(True) edit_box.textChanged.connect(functools.partial(self.callback_edit,token,edit_box,unit,result)) #edit_box.show() elif result.widget=="QColorPicker": r=float(values[0]) g=float(values[1]) b=float(values[2]) edit_box=QColorPicker(r,g,b) edit_box.setFixedSize(300, 25) edit_box.changed.connect(functools.partial(self.callback_edit,token,edit_box,unit,result)) 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.currentIndexChanged.connect(functools.partial(self.callback_edit,token,edit_box,unit,result)) elif result.widget=="QComboBoxNewtonSelect": edit_box=QComboBoxNewtonSelect() edit_box.setFixedSize(300, 25) for i in range(0,len(result.defaults)): edit_box.addItem(result.defaults[i]) edit_box.currentIndexChanged.connect(functools.partial(self.callback_edit,token,edit_box,unit,result)) elif result.widget=="QComboBoxShape": edit_box=QComboBoxShape() edit_box.setFixedSize(300, 25) edit_box.currentIndexChanged.connect(functools.partial(self.callback_edit,token,edit_box,unit,result)) elif result.widget=="QParasitic": edit_box=QParasitic() edit_box.setFixedSize(300, 25) edit_box.textChanged.connect(functools.partial(self.callback_edit,token,edit_box,unit,result)) elif result.widget=="QChangeLog": edit_box=QChangeLog(self) edit_box.setMinimumHeight(100) if self.editable==False: edit_box.setReadOnly(True) edit_box.textChanged.connect(functools.partial(self.callback_edit,token,edit_box,unit,result)) elif result.widget=="generic_switch": edit_box=generic_switch(state0=result.defaults[0][0],state1=result.defaults[1][0],state0_value=result.defaults[0][1],state1_value=result.defaults[1][1],) edit_box.setFixedSize(300, 25) if value=="exponential": unit.setEnabled(False) edit_box.changed.connect(functools.partial(self.callback_edit,token,edit_box,unit,result)) elif result.widget=="mobility_widget": edit_box=mobility_widget(electrons=result.defaults[0]) edit_box.setFixedSize(400, 25) if token=="#symmetric_mobility_e": value = [self.f.get_token(token),self.f.get_token("#mue_z"),self.f.get_token("#mue_x"),self.f.get_token("#mue_y")] if token=="#symmetric_mobility_h": value = [self.f.get_token(token),self.f.get_token("#muh_z"),self.f.get_token("#muh_x"),self.f.get_token("#muh_y")] if token=="#electrical_symmetrical_resistance": value = [self.f.get_token(token),self.f.get_token("#electrical_series_z"),self.f.get_token("#electrical_series_x"),self.f.get_token("#electrical_series_y")] edit_box.changed.connect(functools.partial(self.callback_edit,token,edit_box,unit,result)) elif result.widget=="shape_dos_switch": edit_box=shape_dos_switch() edit_box.shape_file=self.file_name edit_box.setFixedSize(300, 25) edit_box.changed.connect(functools.partial(self.callback_edit,token,edit_box,unit,result)) if value=="none": unit.setEnabled(False) else: edit_box=QComboBox() edit_box.setFixedSize(300, 25) for i in range(0,len(result.defaults)): edit_box.addItem(result.defaults[i]) edit_box.currentIndexChanged.connect(functools.partial(self.callback_edit,token,edit_box,unit,result)) widget_set_value(edit_box,value) if type(unit)==QPushButton: unit.clicked.connect(functools.partial(self.callback_unit_click,token,edit_box,unit)) a=tab_line() a.token=token a.label=description a.edit_box=edit_box a.units=unit a.widget=result.widget a.hide_on_true_token=result.hide_on_true_token a.hide_on_false_token=result.hide_on_false_token a.hide_on_token_eq=result.hide_on_token_eq self.widget_list.append(a) self.tab.addWidget(description,widget_number,0) self.tab.addWidget(edit_box,widget_number,1) self.tab.addWidget(unit,widget_number,2) widget_number=widget_number+1 self.hide_show_widgets()