Source code for quick_roi_dialog

from __future__ import annotations

# from matplotlib.font_manager import json_dump
from PyQt5 import uic
from PyQt5.QtWidgets import QDialog
from PyQt5.QtWidgets import QDialogButtonBox

# from my_logger import setup_logger
# import sys
# import os
# import copy
# import json
# from typing import Union, Any
import file_manager as fm

[docs] quick_roi_dialog_file = fm.path(name="quick_roi_dialog.ui", file_type=fm.Type.UI)
UI_Quick_ROI_Dialog, _ = uic.loadUiType(quick_roi_dialog_file)
[docs] class QuickROIDialog(QDialog, UI_Quick_ROI_Dialog): def __init__(self, mainwindow): QDialog.__init__(self) UI_Quick_ROI_Dialog.__init__(self) self.setupUi(self)
[docs] self.mainwindow = mainwindow
[docs] self.parent = mainwindow
print("here") self.rdbManual.toggled.connect(self.mode_changed) self.btnResetCurrent.clicked.connect(self.gui_reset_roi_current) self.btnResetSelected.clicked.connect(self.gui_reset_roi_selected) self.btnResetAll.clicked.connect(self.gui_reset_roi_all) self.buttonBox.button(QDialogButtonBox.Apply).clicked.connect(self.accepted_callback) self.buttonBox.rejected.connect(self.rejected_callback)
[docs] self.should_trim_traces = False
[docs] def mode_changed(self): is_manual = self.rdbManual.isChecked() self.gpbManual.setEnabled(is_manual) self.gpbAuto.setEnabled(not is_manual)
[docs] def gui_reset_roi_current(self): self.reset_roi(mode="current")
[docs] def gui_reset_roi_selected(self): self.reset_roi(mode="selected")
[docs] def gui_reset_roi_all(self): self.reset_roi(mode="all")
[docs] def reset_roi(self, mode: str = "all"): if mode == "current": particles = [self.mainwindow.current_particle] elif mode == "selected": particles = self.mainwindow.get_checked_particles() elif mode == "all": particles = self.mainwindow.current_dataset.particles else: return for particle in particles: particle.roi_region = (0, particle.abstimes[-1], None) self.mainwindow.display_data()
[docs] def accepted_callback(self): particles = None if self.rdbCurrent.isChecked(): particles = [self.mainwindow.current_particle] elif self.rdbSelected.isChecked(): particles = self.mainwindow.get_checked_particles() elif self.rdbAll.isChecked(): particles = self.mainwindow.current_dataset.particles for particle in particles: if self.rdbManual.isChecked(): trimmed = particle.trim_trace( min_level_int=self.spbManual_Min_Int.value(), min_level_dwell_time=self.dsbManual_Min_Time.value(), reset_roi=self.chbReset_ROI.isChecked(), ) if trimmed is False and self.chbUncheck_If_Not_Valid.isChecked(): self.mainwindow.set_particle_check_state(particle.dataset_ind, False) self.mainwindow.lifetime_controller.test_need_roi_apply() self.mainwindow.intensity_controller.plot_all() self.close()
[docs] def rejected_callback(self): self.close()