Пример #1
0
    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)
Пример #2
0
	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)])
Пример #3
0
 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)  #
Пример #4
0
    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)
Пример #5
0
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])
Пример #6
0
    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()
Пример #7
0
	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)
Пример #8
0
    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
Пример #9
0
	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()