Ejemplo n.º 1
0
    def __init__(self, verbose=True):
        self.save_dir = os.getcwd()
        self.server = base_server()
        if verbose == True:
            self.server.pipe_to_null = False
        else:
            self.server.pipe_to_null = True

        #self.server.base_server_init(get_sim_path())
        if server_get() != False:
            self.server = server_get()
            self.server.clear_cache()

        self.epi = get_epi()
        if self.epi.loaded == False:
            self.epi.load(os.getcwd())

        self.scan = api_scan(self.server)
        #image ops
        self.Image = Image
        self.ImageFilter = ImageFilter
        self.ImageOps = ImageOps
        self.path = ""
        self.callback = None
        self.get_scan_human_labels = get_scan_human_labels()
        self.get_scan_human_labels.clear()
        self.get_scan_human_labels.populate_from_known_tokens()
        self.get_scan_human_labels.populate_from_files()
Ejemplo n.º 2
0
    def __init__(self, treeview):
        QWidget.__init__(self)
        self.dest_treeview = treeview
        self.setFixedSize(500, 700)
        self.file_name_tab_pos = 0
        self.token_tab_pos = 1
        self.path_tab_pos = 2

        self.main_vbox = QVBoxLayout()
        self.save_function = None

        self.setWindowIcon(icon_get("scan"))

        self.setWindowTitle(
            _("Select simulation parameter") + " (https://www.gpvdm.com)")

        self.tab = QTreeWidget()
        self.scan_human_labels = get_scan_human_labels()
        #self.tab.setHeaderItem("Scan items")

        self.font = QFont()
        #		self.font.setFamily('DejaVu Sans')
        #		self.font.setBold(True)
        #		self.font.setStyleHint(QFont.Monospace)
        #		self.font.setFixedPitch(True)
        self.font.setPointSize(int(20))

        self.tab.setFont(self.font)

        self.main_vbox.addWidget(self.tab)

        self.hwidget = QWidget()

        okButton = QPushButton(_("OK"))
        cancelButton = QPushButton(_("Cancel"))

        hbox = QHBoxLayout()
        hbox.addStretch(1)
        hbox.addWidget(okButton)
        hbox.addWidget(cancelButton)

        self.hwidget.setLayout(hbox)

        self.main_vbox.addWidget(self.hwidget)

        self.setLayout(self.main_vbox)

        okButton.clicked.connect(self.tree_apply_click)
        cancelButton.clicked.connect(self.close)

        #self.tab.itemSelectionChanged.connect(self.tree_apply_click)
        self.tab.header().close()
        self.update()
Ejemplo n.º 3
0
    def __init__(self):
        super(gpvdm_main_window, self).__init__()
        icon_init_db()
        #from scans_io import scans_io
        #from cal_path import get_sim_path
        #scans=scans_io(get_sim_path())
        #sims=scans.get_scan_dirs()
        #print(sims)
        #asdsa
        self.splash = splash_window()
        self.scan_human_labels = get_scan_human_labels()

        self.splash.inc_value()
        process_events()
        process_events()

        #from wiz import wiz
        #a=wiz()
        #a.exec_()

        #sys.exit()
        do_import()

        if os.path.isdir(os.path.dirname(sys.argv[0])) == False:
            error_dlg(self, _("I can't run from inside a zip file!"))
            sys.exit()

        self.splash.inc_value()
        self.splash.inc_value()

        server_init()
        self.splash.inc_value()

        self.check_sim_exists = check_sim_exists()
        self.splash.inc_value()

        self.check_sim_exists.start_thread()
        self.splash.inc_value()

        self.check_sim_exists.sim_gone.connect(self.sim_gone)
        self.splash.inc_value()

        self.my_server = server_get()
        self.my_server.init(get_sim_path())
        self.splash.inc_value()

        self.undo_list = undo_list_class()
        wpos_load()
        self.splash.inc_value()

        self.ribbon = ribbon()
        self.splash.inc_value()

        self.notebook_active_page = None
        self.setAcceptDrops(True)
        #self.setGeometry(200, 100, 1300, 600)
        self.setWindowTitle(
            "General-purpose Photovoltaic Device Model (https://www.gpvdm.com)"
        )

        self.l = lock_gui()

        #self.l.disable_all.connect(self.disable_interface)
        #self.l.enable_all.connect(self.enable_disable_buttons)

        #super(gpvdm_main_window, self).__init__(parent, QtCore.Qt.FramelessWindowHint)
        #gobject.GObject.__init__(self)

        #self.my_server.setup_gui(self.gui_sim_start)
        self.my_server.sim_started.connect(self.gui_sim_start)
        self.splash.inc_value()

        self.my_server.sim_finished.connect(self.gui_sim_stop)
        self.splash.inc_value()

        help_init()
        self.splash.inc_value()

        #help_window().help_set_help(["star.png",_("<big><b>Update available!</b></big><br>")])

        #self.show()

        if running_on_linux() == True:
            self.bus = dbus.SessionBus()
            self.bus.add_match_string_non_blocking(
                "type='signal',interface='org.my.gpvdm'")
            self.bus.add_message_filter(self.adbus)
        else:
            self.win_pipe = win_pipe()
            self.win_pipe.new_data.connect(self.win_dbus)
            self.win_pipe.start()

        self.notebook = gpvdm_notebook()
        vbox = QVBoxLayout()
        self.splash.inc_value()

        vbox.addWidget(self.ribbon)
        self.ribbon.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
        self.notebook.setSizePolicy(QSizePolicy.Expanding,
                                    QSizePolicy.Expanding)
        vbox.addWidget(self.notebook)
        wvbox = QWidget()
        self.splash.inc_value()

        wvbox.setLayout(vbox)
        self.setCentralWidget(wvbox)

        self.splash.inc_value()

        self.statusBar()

        temp_error = ver_error()
        #print(temp_error)
        if len(temp_error) > 0:
            error_dlg(self, temp_error)
            return

        self.setWindowIcon(
            QIcon(os.path.join(get_image_file_path(), "image.jpg")))
        self.splash.inc_value()

        self.show_tabs = True
        self.show_border = True

        self.ribbon.file.home_new.clicked.connect(self.callback_new)
        self.ribbon.file.home_open.clicked.connect(self.callback_open)
        self.ribbon.file.used_files_click.connect(self.load_sim)
        self.ribbon.home.undo.triggered.connect(self.callback_undo)
        self.ribbon.home.run.start_sim.connect(self.callback_simulate)
        self.splash.inc_value()

        #self.ribbon.home.stop.setEnabled(False)

        self.ribbon.home.scan.setEnabled(False)
        self.ribbon.thermal.setEnabled(False)

        self.ribbon.home.help.triggered.connect(self.callback_on_line_help)

        update_init()

        resize_window_to_be_sane(self, 0.7, 0.75)

        self.change_dir_and_refresh_interface(get_sim_path())
        self.splash.inc_value()

        #self.ribbon.home.sun.changed.connect(self.notebook.update)
        self.ribbon.setAutoFillBackground(True)
        self.splash.inc_value()
        self.show()

        help_window().show()

        self.enable_disable_buttons()

        val = inp_get_token_value(os.path.join(get_sim_path(), "config.inp"),
                                  "#use_gpvdm_local")
        if val != "false":
            if os.path.isdir(get_materials_path()) == False:
                clone_materials(get_materials_path(), get_base_material_path(),
                                "material")

            if os.path.isdir(get_emission_path()) == False:
                clone_materials(get_emission_path(), get_base_emission_path(),
                                "emission")

            if os.path.isdir(get_shape_path()) == False:
                clone_materials(get_shape_path(), get_base_shape_path(),
                                "shape")

            if os.path.isdir(get_scripts_path()) == False:
                shutil.copytree(get_base_scripts_path(),
                                get_scripts_path(),
                                symlinks=True)

            if os.path.isdir(get_spectra_path()) == False:
                clone_spectras(get_spectra_path())

        self.cache = cache(only_open_if_full=True)

        #from shape_editor import shape_editor
        #self.shape_window=shape_editor("/home/rod/gpvdm_local/shape/pedot")
        #self.shape_window.show()

        #from shape_import import shape_import
        #self.shape_import=shape_import("/home/rod/gpvdm_local/shape/pedot")
        #self.shape_import.show()
        check_lib_in_bash_rc()
Ejemplo n.º 4
0
    def __init__(self, index):
        self.index = index
        self.file_name = os.path.join(
            get_sim_path(), "time_mesh_config" + str(self.index) + ".inp")
        self.scan_human_labels = get_scan_human_labels()
        QWidget.__init__(self)
        self.main_vbox = QVBoxLayout()
        self.time = []
        self.voltage = []
        self.sun = []
        self.laser = []

        self.edit_list = []
        self.line_number = []
        self.list = []

        self.fig = Figure(figsize=(5, 4), dpi=100)
        self.canvas = FigureCanvas(self.fig)
        self.canvas.figure.patch.set_facecolor('white')

        #toolbar=QToolBar()
        #toolbar.setIconSize(QSize(48, 48))

        #nav_bar=NavigationToolbar(self.canvas,self)
        #toolbar.addWidget(nav_bar)

        #self.main_vbox.addWidget(toolbar)

        #canvas.set_size_request(500, 150)

        self.ax1 = None
        self.show_key = True

        self.main_vbox.addWidget(self.canvas)

        #self.canvas.show()

        #toolbar 2

        toolbar2 = QToolBar()
        toolbar2.setIconSize(QSize(32, 32))

        self.tb_add = QAction(icon_get("list-add"), _("Add section"), self)
        self.tb_add.triggered.connect(self.callback_add_section)
        toolbar2.addAction(self.tb_add)

        self.tb_remove = QAction(icon_get("list-remove"), _("Delete section"),
                                 self)
        self.tb_remove.triggered.connect(self.callback_remove_item)
        toolbar2.addAction(self.tb_remove)

        self.tb_move = QAction(icon_get("go-down"), _("Move down"), self)
        self.tb_move.triggered.connect(self.callback_move_down)
        toolbar2.addAction(self.tb_move)

        self.tb_move_up = QAction(icon_get("go-up"), _("Move up"), self)
        self.tb_move_up.triggered.connect(self.callback_move_up)
        toolbar2.addAction(self.tb_move_up)

        self.main_vbox.addWidget(toolbar2)

        self.tab = gpvdm_tab()
        self.tab.resizeColumnsToContents()

        self.tab.verticalHeader().setVisible(False)

        self.load_data()
        self.update_scan_tokens()

        self.build_mesh()
        self.draw_graph()

        self.tab.cellChanged.connect(self.on_cell_edited)

        self.main_vbox.addWidget(self.tab)

        w = self.width()

        #self.canvas.setMinimumSize(w, 400)

        self.tab.setMinimumSize(w, 120)

        self.setLayout(self.main_vbox)
Ejemplo n.º 5
0
    def __init__(self):
        QWidget.__init__(self)
        self.file_name = os.path.join(get_sim_path(), "fit_constraints.inp")
        self.setWindowTitle(
            _("Fit constraints window") + " - https://www.gpvdm.com")
        self.setWindowIcon(icon_get("constraints"))
        self.setFixedSize(900, 700)

        self.vbox = QVBoxLayout()

        ########################mm##########################
        toolbar_mm = QToolBar()
        toolbar_mm.setIconSize(QSize(32, 32))

        self.tb_save = QAction(icon_get("list-add"), _("Add"), self)
        self.tb_save.triggered.connect(self.callback_add_item_mm)
        toolbar_mm.addAction(self.tb_save)

        self.tb_save = QAction(icon_get("list-remove"), _("Minus"), self)
        self.tb_save.triggered.connect(self.callback_delete_item_mm)
        toolbar_mm.addAction(self.tb_save)

        self.tb_down = QAction(icon_get("go-down"), _("Move down"), self)
        self.tb_down.triggered.connect(self.on_move_down)
        toolbar_mm.addAction(self.tb_down)

        self.tb_up = QAction(icon_get("go-up"), _("Move up"), self)
        self.tb_up.triggered.connect(self.on_move_up)
        toolbar_mm.addAction(self.tb_up)

        self.vbox.addWidget(toolbar_mm)

        self.tab_mm = gpvdm_tab()
        self.tab_mm.resizeColumnsToContents()

        self.tab_mm.verticalHeader().setVisible(False)
        self.create_model_mm()

        self.tab_mm.cellChanged.connect(self.tab_changed)

        self.select_param_window_mm = select_param(self.tab_mm)
        self.select_param_window_mm.set_save_function(self.save_combo)
        self.select_param_window_mm.file_name_tab_pos = 0
        self.select_param_window_mm.token_tab_pos = 1
        self.select_param_window_mm.path_tab_pos = 2

        self.vbox.addWidget(self.tab_mm)

        #####################math##########################
        toolbar_math = QToolBar()
        toolbar_math.setIconSize(QSize(32, 32))

        self.tb_save = QAction(icon_get("list-add"), _("Add"), self)
        self.tb_save.triggered.connect(self.callback_add_item_math)
        toolbar_math.addAction(self.tb_save)

        self.tb_save = QAction(icon_get("list-remove"), _("Minus"), self)
        self.tb_save.triggered.connect(self.callback_delete_item_math)
        toolbar_math.addAction(self.tb_save)

        self.vbox.addWidget(toolbar_math)
        self.tab_math = gpvdm_tab()
        self.tab_math.resizeColumnsToContents()

        self.tab_math.verticalHeader().setVisible(False)

        self.create_model_math()

        self.tab_math.cellChanged.connect(self.tab_changed)

        self.select_param_window_math_a = select_param(self.tab_math)
        self.select_param_window_math_a.set_save_function(self.save_combo)
        self.select_param_window_math_a.file_name_tab_pos = 0
        self.select_param_window_math_a.token_tab_pos = 1
        self.select_param_window_math_a.path_tab_pos = 2

        self.select_param_window_math_b = select_param(self.tab_math)
        self.select_param_window_math_b.set_save_function(self.save_combo)
        self.select_param_window_math_b.file_name_tab_pos = 4
        self.select_param_window_math_b.token_tab_pos = 5
        self.select_param_window_math_b.path_tab_pos = 6
        self.vbox.addWidget(self.tab_math)

        self.setLayout(self.vbox)

        self.get_scan_human_labels = get_scan_human_labels()
Ejemplo n.º 6
0
	def __init__(self,my_server):
		QWidgetSavePos.__init__(self,"scan_window")
		self.myserver=my_server
		self.setMinimumSize(1000,500)
		self.setWindowTitle(_("Parameter scan - gpvdm"))
		self.setWindowIcon(icon_get("scan"))

		self.rod=[]
		self.sim_dir=get_sim_path()

		self.main_vbox = QVBoxLayout()
		self.ribbon=scan_ribbon()
		self.main_vbox.addWidget(self.ribbon)

		self.ribbon.menu_plot_fits.triggered.connect(self.callback_plot_fits)

		self.ribbon.sim_no_gen.triggered.connect(self.callback_run_simulation_nogen)

		self.ribbon.single_fit.triggered.connect(self.callback_run_single_fit)

		self.ribbon.clean_unconverged.triggered.connect(self.callback_clean_unconverged_simulation)

		self.ribbon.clean_sim_output.triggered.connect(self.callback_clean_simulation_output)

		self.ribbon.push_unconverged_to_hpc.triggered.connect(self.callback_push_unconverged_to_hpc)

		
		self.ribbon.report.triggered.connect(self.callback_report)

		self.ribbon.tb_new.triggered.connect(self.callback_new_scan)

		self.ribbon.tb_delete.triggered.connect(self.callback_delete_page)

		self.ribbon.tb_clone.triggered.connect(self.callback_clone)

		self.ribbon.tb_rename.triggered.connect(self.callback_rename)
		
		#self.ribbon.tb_simulate.start_sim.connect(self.callback_run_simulation)

		#self.ribbon.tb_build.triggered.connect(self.callback_build_scan)

		#self.ribbon.tb_rerun.triggered.connect(self.callback_scan_run)

		#self.ribbon.tb_zip.triggered.connect(self.callback_scan_archive)

		self.ribbon.tb_run_all.triggered.connect(self.callback_run_all_simulations)

		#self.ribbon.tb_plot.triggered.connect(self.callback_plot)
	
		#self.ribbon.tb_plot_time.triggered.connect(self.callback_examine)

		self.ribbon.tb_ml_build_vectors.triggered.connect(self.callback_mb_build_vectors)

		#self.ribbon.tb_notes.triggered.connect(self.callback_notes)

		self.ribbon.tb_clean.triggered.connect(self.callback_clean_all)

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


		self.notebook = QTabWidget()
		self.notebook.setTabBar(QHTabBar())
		css_apply(self.notebook,"style_h.css")

		self.notebook.setTabPosition(QTabWidget.West)
		self.notebook.setMovable(True)


		#self.main_vbox.addWidget(self.notebook)

		self.viewer=gpvdm_viewer(self.sim_dir)
		self.viewer.allow_navigation=True
		self.viewer.set_directory_view(True)
		self.viewer.set_back_arrow(False)
		self.viewer.show_only=["scan_dir"]
		self.viewer.set_multi_select()
		self.viewer.selection_changed.connect(self.callback_selection_changed)
		self.callback_selection_changed()

		self.main_vbox.addWidget(self.viewer)

		self.status_bar=QStatusBar()
		self.main_vbox.addWidget(self.status_bar)		

		
		print("!!!!!!!!!!!!>>>>>>>>>>>>>>>>>>>>>")
		get_scan_human_labels().populate_from_files()
		self.setLayout(self.main_vbox)
Ejemplo n.º 7
0
	def __init__(self,index):
		QWidget.__init__(self)

		self.index=index
		self.ax1=None
		self.show_key=True
		self.edit_list=[]
		self.line_number=[]
		self.list=[]

		self.fig = Figure(figsize=(5,4), dpi=100)
		self.canvas = FigureCanvas(self.fig)
		self.canvas.figure.patch.set_facecolor('white')

		self.get_scan_human_labels=get_scan_human_labels()

		self.main_vbox = QHBoxLayout()


		self.main_vbox.addWidget(self.canvas)
		self.canvas.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)



		#toolbar 2

		toolbar2=QToolBar()
		toolbar2.setIconSize(QSize(32, 32))

		self.tb_add = QAction(icon_get("list-add"), _("Add section"), self)
		self.tb_add.triggered.connect(self.callback_add_section)
		toolbar2.addAction(self.tb_add)

		self.tb_remove = QAction(icon_get("list-remove"), _("Delete section"), self)
		self.tb_remove.triggered.connect(self.callback_remove_item)
		toolbar2.addAction(self.tb_remove)

		self.tb_move = QAction(icon_get("go-down"), _("Move down"), self)
		self.tb_move.triggered.connect(self.callback_move_down)
		toolbar2.addAction(self.tb_move)

		self.tb_move_up = QAction(icon_get("go-up"), _("Move up"), self)
		self.tb_move_up.triggered.connect(self.callback_move_up)
		toolbar2.addAction(self.tb_move_up)

		tab_holder=QWidget()
		tab_vbox_layout= QVBoxLayout()
		tab_holder.setLayout(tab_vbox_layout)

		tab_vbox_layout.addWidget(toolbar2)

		self.tab = gpvdm_tab()
		self.tab.resizeColumnsToContents()

		self.tab.verticalHeader().setVisible(False)

		self.load_data()
		self.build_mesh()
		self.draw_graph()

		self.update_scan_tokens()

		self.tab.cellChanged.connect(self.on_cell_edited)
		self.tab.changed.connect(self.redraw_and_save)


		#self.tab.paste_callback=self.paste_action

		tab_vbox_layout.addWidget(self.tab)
		self.main_vbox.addWidget(tab_holder)

		self.setLayout(self.main_vbox)
		self.tab.menu_paste.triggered.connect(self.paste_action)
Ejemplo n.º 8
0
    def listdir(self):
        ret = []

        if self.path == "/gpvdmroot":
            itm = file_store()
            itm.file_name = "simulation_dir"
            itm.icon = "si"
            itm.display_name = _("Simulation")
            ret.append(itm)

            itm = file_store()
            itm.file_name = "home_dir"
            itm.icon = "user-home"
            itm.display_name = _("Home")
            ret.append(itm)

            if get_desktop_path() != False:
                itm = file_store()
                itm.file_name = "desktop_dir"
                itm.icon = "desktop"
                itm.display_name = _("Desktop")
                ret.append(itm)

            if get_downloads_path() != False:
                itm = file_store()
                itm.file_name = "downloads_dir"
                itm.icon = "folder-download"
                itm.display_name = _("Downloads")
                ret.append(itm)

            itm = file_store()
            itm.file_name = "gpvdm_configure"
            itm.icon = "cog"
            itm.display_name = _("Configure")
            ret.append(itm)

            for p in psutil.disk_partitions():
                name = p.mountpoint
                if running_on_linux() == True:
                    name = os.path.basename(name)

                if name == "":
                    name = "/"
                itm = file_store()
                itm.file_name = "mount_point::::" + p.mountpoint
                itm.icon = "drive-harddisk"
                itm.display_name = name
                ret.append(itm)
        elif self.path == "/gpvdmroot/gpvdm_configure":
            itm = file_store()
            itm.file_name = "gpvdm_cluster_config"
            itm.icon = "server"
            itm.display_name = _("Cluster")
            ret.append(itm)

            itm = file_store()
            itm.file_name = "gpvdm_language_config"
            itm.icon = "internet-chat"
            itm.display_name = _("Language")
            ret.append(itm)

            itm = file_store()
            itm.file_name = "gpvdm_solver_config"
            itm.icon = "accessories-calculator"
            itm.display_name = _("Solver")
            ret.append(itm)

            #itm=file_store()
            #itm.file_name="gpvdm_led_config"
            #itm.icon="oled"
            #itm.display_name=_("LED")
            #ret.append(itm)

            itm = file_store()
            itm.file_name = "gpvdm_dump_config"
            itm.icon = "hdd_custom"
            itm.display_name = _("Output files")
            ret.append(itm)

            itm = file_store()
            itm.file_name = "gpvdm_gui_config"
            itm.icon = "applications-interfacedesign"
            itm.display_name = _("GUI configuration")
            ret.append(itm)

            itm = file_store()
            itm.file_name = "gpvdm_server_config"
            itm.icon = "cpu"
            itm.display_name = _("Server")
            ret.append(itm)

            itm = file_store()
            itm.file_name = "gpvdm_key"
            itm.icon = "gnome-dialog-password"
            itm.display_name = _("License")
            ret.append(itm)

            itm = file_store()
            itm.file_name = "gpvdm_cache"
            itm.icon = "cache"
            itm.display_name = _("Cache")
            ret.append(itm)
        elif self.path.startswith(os.path.join(get_sim_path(),
                                               "parameters")) == True:
            from scan_human_labels import get_scan_human_labels
            s = get_scan_human_labels()
            s.ls_dir("/")

            itm = file_store()
            itm.file_name = "star"
            itm.icon = "star"
            itm.display_name = _("Cache")
            ret.append(itm)
        else:
            files = os.listdir(self.path)
            for f in files:
                itm = file_store()
                itm.file_name = f
                itm.isdir = os.path.isdir(os.path.join(self.path, f))
                itm.type = get_dir_type(os.path.join(self.path, f))
                if itm.type != "scan_dir":
                    ret.append(itm)

            #print(get_sim_path(),self.path)
            if get_sim_path() == self.path:
                itm = file_store()
                itm.file_name = "parameters"
                itm.type = "parameter_dir"
                itm.icon = "star"
                itm.display_name = _("parameters")
                ret.append(itm)

                scan = scans_io(get_sim_path())
                scans = scan.get_scans()
                for s in scans:
                    for i in range(0, len(ret)):
                        if ret[i].file_name == s.human_name:
                            ret.pop(i)
                            break

                    itm = file_store()
                    itm.type = "scan_dir"
                    itm.isdir = True
                    itm.file_name = os.path.basename(s.config_file)
                    itm.display_name = s.human_name
                    ret.append(itm)
        ret = sorted(ret, key=operator.attrgetter('display_name'))
        #files = sorted(files, key=operator.attrgetter('file_name'))
        return ret
Ejemplo n.º 9
0
    def __init__(self, scan_file):
        QWidget.__init__(self)
        self.notebook = QTabWidget()
        self.setWindowTitle(_("Parameter scan editor - (www.gpvdm.com)"))
        self.setWindowIcon(icon_get("scan"))

        self.main_vbox = QVBoxLayout()

        self.scan_tab_vbox = QVBoxLayout()

        self.tokens = tokens()
        self.myserver = server_get()
        self.status_bar = QStatusBar()
        self.param_list = get_scan_human_labels().list
        #self.tab_label=tab_label

        self.scan_io = scan_io()
        self.scan_io.parent_window = self
        #self.scan_io.set_path(self.scan_io.scan_dir)
        self.scan_io.load(scan_file)
        self.scan_io.make_dir()

        toolbar = QToolBar()
        toolbar.setIconSize(QSize(32, 32))

        self.tb_add = QAction(icon_get("list-add"), _("Add parameter to scan"),
                              self)
        self.tb_add.triggered.connect(self.callback_add_item)
        toolbar.addAction(self.tb_add)

        self.tb_minus = QAction(icon_get("list-remove"), _("Delete item"),
                                self)
        self.tb_minus.triggered.connect(self.callback_delete_item)
        toolbar.addAction(self.tb_minus)

        self.tb_down = QAction(icon_get("go-down"), _("Move down"), self)
        self.tb_down.triggered.connect(self.callback_move_down)
        toolbar.addAction(self.tb_down)

        self.tb_up = QAction(icon_get("go-up"), _("Move up"), self)
        self.tb_up.triggered.connect(self.callback_move_up)
        toolbar.addAction(self.tb_up)

        self.tb_command = QAction(icon_get("utilities-terminal"),
                                  _("Insert python command"), self)
        self.tb_command.triggered.connect(self.callback_insert_command)
        toolbar.addAction(self.tb_command)

        self.scan_tab_vbox.addWidget(toolbar)

        self.tab = gpvdm_tab()

        css_apply(self.notebook, "tab_default.css")
        self.notebook.setMovable(True)

        self.tab.verticalHeader().setVisible(False)

        self.tab.setColumnCount(5)
        #if enable_betafeatures()==False:
        #	self.tab.setColumnHidden(0, True)
        #	self.tab.setColumnHidden(1, True)

        self.tab.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.tab.setColumnWidth(2, 300)
        self.tab.setColumnWidth(3, 300)
        self.tab.setColumnWidth(4, 300)
        self.load()

        self.tab.cellChanged.connect(self.tab_changed)

        self.scan_tab_vbox.addWidget(self.tab)

        self.notebook.popMenu = QMenu(self)

        #self.mp_show_list=QAction(_("Select parameter to scan"), self)
        #self.mp_show_list.triggered.connect(self.callback_show_list)
        #self.popMenu.addAction(self.mp_show_list)

        self.notebook.popMenu.addSeparator()

        self.mp_delete = QAction(_("Delete item"), self)
        self.mp_delete.triggered.connect(self.callback_delete_item)
        self.notebook.popMenu.addAction(self.mp_delete)

        self.mp_copy = QAction(_("Copy"), self)
        self.mp_copy.triggered.connect(self.callback_copy_item)
        self.notebook.popMenu.addAction(self.mp_copy)

        self.mp_paste = QAction(_("Paste"), self)
        self.mp_paste.triggered.connect(self.callback_paste_item)
        self.notebook.popMenu.addAction(self.mp_paste)

        self.notebook.popMenu.addSeparator()

        self.mp_add = QAction(_("Add item"), self)
        self.mp_add.triggered.connect(self.callback_add_item)
        self.notebook.popMenu.addAction(self.mp_add)

        self.mp_down = QAction(_("Move down"), self)
        self.mp_down.triggered.connect(self.callback_move_down)
        self.notebook.popMenu.addAction(self.mp_down)

        self.mp_down = QAction(_("Move down"), self)
        self.mp_down.triggered.connect(self.callback_move_down)
        self.notebook.popMenu.addAction(self.mp_down)

        self.notebook.popMenu.addSeparator()
        self.notebook.setMinimumSize(700, 500)

        self.program_widget = QWidget()
        self.program_widget.setLayout(self.scan_tab_vbox)
        self.notebook.addTab(self.program_widget, "Commands")

        self.viewer = gpvdm_viewer(self.scan_io.scan_dir)
        self.viewer.show_back_arrow = True
        self.notebook.addTab(self.viewer, "Output")

        self.ribbon = scan_tab_ribbon()
        self.ribbon.tb_simulate.triggered.connect(self.callback_run_simulation)
        self.ribbon.tb_clean.triggered.connect(self.clean_scan_dir)
        self.ribbon.tb_plot.triggered.connect(self.callback_gen_plot_command)
        self.ribbon.tb_notes.triggered.connect(self.callback_notes)

        self.main_vbox.addWidget(self.ribbon)
        self.main_vbox.addWidget(self.notebook)

        self.main_vbox.addWidget(self.status_bar)
        self.setLayout(self.main_vbox)
        self.select_param_window = select_param(self.tab)
Ejemplo n.º 10
0
	def __init__(self):
		self.scan_human_labels=get_scan_human_labels()
		#self.scan_human_labels.dump()
		self.directory=None
		self.program_list=[]