Exemple #1
0
    def insert_row(self, i, enabled, src_file, src_token, src_path, dest_file,
                   dest_token, dest_path):
        self.tab.blockSignals(True)
        self.tab.insertRow(i)

        item = gtkswitch()
        item.set_value(str2bool(enabled))
        item.changed.connect(self.tab_changed)
        self.tab.setCellWidget(i, 0, item)

        item = QTableWidgetItem(src_file)
        self.tab.setItem(i, 1, item)

        item = QTableWidgetItem(src_token)
        self.tab.setItem(i, 2, item)

        self.item = gpvdm_select()
        self.item.setText(src_path)
        self.item.button.clicked.connect(self.callback_show_list_src)
        self.tab.setCellWidget(i, 3, self.item)

        item = QTableWidgetItem(dest_file)
        self.tab.setItem(i, 4, item)

        item = QTableWidgetItem(dest_token)
        self.tab.setItem(i, 5, item)

        self.item = gpvdm_select()
        self.item.setText(dest_path)
        self.item.button.clicked.connect(self.callback_show_list_dest)
        self.tab.setCellWidget(i, 6, self.item)

        self.tab.blockSignals(False)
Exemple #2
0
    def insert_row(self, i, enabled, f, t, p, v, section):
        self.tab.blockSignals(True)

        self.item = gtkswitch()
        self.item.set_value(str2bool(enabled))
        self.item.changed.connect(self.tab_changed)
        self.tab.setCellWidget(i, 0, self.item)

        item = QTableWidgetItem(f)
        self.tab.setItem(i, 1, item)

        item = QTableWidgetItem(t)
        self.tab.setItem(i, 2, item)

        self.item = gpvdm_select()
        self.item.setText(p)
        self.item.button.clicked.connect(self.callback_show_list)

        self.tab.setCellWidget(i, 3, self.item)

        item = QTableWidgetItem(v)
        self.tab.setItem(i, 4, item)

        item = QTableWidgetItem(section)
        self.tab.setItem(i, 5, item)

        self.tab.blockSignals(False)
Exemple #3
0
    def __init__(self, only_open_if_full=False):
        QWidget.__init__(self)
        self.setWindowIcon(icon_get("cache"))
        self.setMinimumSize(800, 300)
        self.cur_size = round(self.get_size())
        self.load_config()
        if only_open_if_full == True:
            if (self.cur_size / self.max_size) < 0.9:
                return
        self.setWindowTitle("Gpvdm cache editor (https://www.gpvdm.com)")
        centerPoint = QDesktopWidget().availableGeometry().center()
        qtRectangle = self.frameGeometry()
        qtRectangle.moveCenter(centerPoint)
        self.move(qtRectangle.topLeft())

        vbox = QVBoxLayout()

        self.title_text = QLabel(
            "Gpvdm cache editor:  Gpvdm uses a disk based cached to accelerate simulation, use this window to either increase the size of the cache or to clear the cache.  If you want to save disk space clear the cache, if you want fast simulations increase the size of the cache."
        )
        self.title_text.setFont(QFont('SansSerif', 15))
        #self.title_text.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        self.title_text.setWordWrap(True)
        vbox.addWidget(self.title_text)

        self.progress = gpvdm_progress()
        self.progress.setSizePolicy(QSizePolicy.Expanding,
                                    QSizePolicy.Expanding)
        self.progress.setMinimumSize(-1, 50)
        vbox.addWidget(self.progress)

        self.data_text = QLabel()
        self.data_text.setFont(QFont('SansSerif', 15))

        self.data_text.setWordWrap(True)
        vbox.addWidget(self.data_text)

        button_box = QHBoxLayout()

        spacer = QWidget()
        spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        button_box.addWidget(spacer)

        self.ignore_button = QPushButton("Close", self)
        self.ignore_button.clicked.connect(self.callback_close)
        button_box.addWidget(self.ignore_button)

        self.clear = QPushButton("Clear cache", self)
        self.clear.clicked.connect(self.callback_clear_cache)
        button_box.addWidget(self.clear)

        #spin
        spin_widget = QWidget()
        spin_widget_layout = QHBoxLayout()
        spin_widget.setLayout(spin_widget_layout)

        spin_label = QLabel(("Maximum size in Mb:"))
        spin_label.setAlignment(Qt.AlignRight | Qt.AlignVCenter)
        spin_widget_layout.addWidget(spin_label)

        self.spin = QSpinBox()
        self.spin.setMaximum(1e6)
        self.spin.setValue(self.max_size)

        spin_widget_layout.addWidget(self.spin)

        vbox.addWidget(spin_widget)
        self.spin.valueChanged.connect(self.callback_spin_edited)

        #turn off cache
        widget = QWidget()
        widget.setMinimumSize(-1, 50)
        widget_layout = QHBoxLayout()
        widget.setLayout(widget_layout)

        label = QLabel(("Cache enabled:"))
        label.setAlignment(Qt.AlignRight | Qt.AlignVCenter)
        widget_layout.addWidget(label)

        self.enable_switch = gtkswitch()
        self.enable_switch.set_value(self.enabled)
        self.enable_switch.changed.connect(self.callback_enabled)
        widget_layout.addWidget(self.enable_switch)

        vbox.addWidget(widget)

        ##

        button_box_widget = QWidget()
        button_box_widget.setLayout(button_box)
        vbox.addWidget(button_box_widget)

        self.setLayout(vbox)
        self.update_progress()
        self.show()
	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()
Exemple #5
0
    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)
Exemple #6
0
    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)