Skip to content

Commit

Permalink
added copy to analysis function
Browse files Browse the repository at this point in the history
  • Loading branch information
rgerum committed Jan 17, 2024
1 parent 92f881b commit 115df69
Showing 6 changed files with 42 additions and 6 deletions.
9 changes: 8 additions & 1 deletion saenopy/gui/common/BatchEvaluate.py
Original file line number Diff line number Diff line change
@@ -76,6 +76,13 @@ def tab_changed(x):
self.tabs.currentChanged.connect(tab_changed)
pass

def set_plot_window(self, plot_window):
self.plot_window = plot_window

def get_copy_to_menu(self):
result = self.list.data[self.list.currentRow()][2]
return self.plot_window.get_copy_to_menu(result.output)

def __init__(self, parent=None):
super().__init__(parent)

@@ -88,7 +95,7 @@ def __init__(self, parent=None):
with QtShortCuts.QSplitter() as lay:
with QtShortCuts.QVBoxLayout() as layout:
layout.setContentsMargins(0, 0, 0, 0)
self.list = ListWidget(layout, add_item_button="add measurements", copy_params=True, allow_paste_callback=self.allow_paste)
self.list = ListWidget(layout, add_item_button="add measurements", copy_params=True, allow_paste_callback=self.allow_paste, copy_to_callback=self.get_copy_to_menu)
self.list.addItemClicked.connect(self.add_measurement)
self.list.signal_act_copy_clicked.connect(self.copy_params)
self.list.signal_act_paste_clicked.connect(self.paste_params)
9 changes: 8 additions & 1 deletion saenopy/gui/common/gui_classes.py
Original file line number Diff line number Diff line change
@@ -292,7 +292,8 @@ class ListWidget(QtWidgets.QListWidget):
signal_act_paths_clicked = QtCore.Signal()

data = []
def __init__(self, layout, editable=False, add_item_button=False, color_picker=False, copy_params=False, allow_paste_callback=None):
def __init__(self, layout, editable=False, add_item_button=False, color_picker=False, copy_params=False,
allow_paste_callback=None, copy_to_callback=None):
super().__init__()
layout.addWidget(self)
self.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
@@ -315,6 +316,7 @@ def __init__(self, layout, editable=False, add_item_button=False, color_picker=F
self.act_paste2 = QtWidgets.QAction(qta.icon("fa5s.paste"), "Paste Parameters to All", self)
self.act_paste2.triggered.connect(self.signal_act_paste2_clicked)
self.allow_paste_callback = allow_paste_callback
self.copy_to_callback = copy_to_callback
self.act_path = QtWidgets.QAction(qta.icon("mdi.folder-multiple-image"), "Adjust Paths", self)
self.act_path.triggered.connect(self.signal_act_paths_clicked)

@@ -379,6 +381,11 @@ def list2_context_menu(self, position):
menu.addAction(self.act_paste)
menu.addAction(self.act_paste2)
menu.addAction(self.act_path)
menu.addSeparator()
if self.copy_to_callback:
m = self.copy_to_callback()
if m:
menu.addMenu(m)

menu.addAction(self.act_delete)

24 changes: 23 additions & 1 deletion saenopy/gui/common/plot_window.py
Original file line number Diff line number Diff line change
@@ -8,6 +8,7 @@
from matplotlib import pyplot as plt
from matplotlib.backends.backend_qt import NavigationToolbar2QT as NavigationToolbar
from qtpy import QtWidgets, QtCore, QtGui
import qtawesome as qta

from saenopy.gui.common import QtShortCuts
from saenopy.gui.common.gui_classes import ListWidget, MatplotlibWidget, execute
@@ -70,9 +71,30 @@ def load_file(self, file):
def get_label(self):
return "", ""

def __init__(self, parent=None):
def get_copy_to_menu(self, filename):
menu2 = QtWidgets.QMenu("Copy to Analysis")
menu2.setIcon(qta.icon("mdi.clipboard-arrow-right-outline"))
self.copy_to_actions = []
for index, folder in enumerate(self.data_folders):
name, checked, files, color = folder
act = QtWidgets.QAction(qta.icon("fa5s.circle", options=[dict(color=color)]), name, self)
def clicked(index=index):
self.list.setCurrentRow(index)
self.add_files([filename])
self.list2.setCurrentRow(self.list2.count()-2)
act.triggered.connect(clicked)
menu2.addAction(act)
self.copy_to_actions.append(act)
menu2.addSeparator()
return menu2

def __init__(self, parent=None, batch_evluate_instance=None):
super().__init__(parent)

self.batch_evluate_instance = batch_evluate_instance
if batch_evluate_instance is not None:
self.batch_evluate_instance.set_plot_window(self)

# QSettings
self.settings = QtCore.QSettings("Saenopy", self.settings_key)

2 changes: 1 addition & 1 deletion saenopy/gui/solver/gui_solver.py
Original file line number Diff line number Diff line change
@@ -25,7 +25,7 @@ def __init__(self, parent=None):

with self.tabs.createTab("Data Analysis"):
with QtShortCuts.QHBoxLayout():
self.plotting_window = PlottingWindow(self).addToLayout()
self.plotting_window = PlottingWindow(self, self.deformations).addToLayout()


if __name__ == '__main__': # pragma: no cover
2 changes: 1 addition & 1 deletion saenopy/gui/spheroid/gui_deformation_spheroid.py
Original file line number Diff line number Diff line change
@@ -76,7 +76,7 @@ def __init__(self, parent=None):
""" """
with self.tabs.createTab("Data Analysis"):
with QtShortCuts.QHBoxLayout() as h_layout:
self.plotting_window = PlottingWindow(self)
self.plotting_window = PlottingWindow(self, self.deformations)
h_layout.addWidget(self.plotting_window)

self.description = QtWidgets.QTextEdit()
2 changes: 1 addition & 1 deletion saenopy/gui/tfm2d/gui_2d.py
Original file line number Diff line number Diff line change
@@ -25,7 +25,7 @@ def __init__(self, parent=None):

with self.tabs.createTab("Data Analysis"):
with QtShortCuts.QHBoxLayout():
self.plotting_window = PlottingWindow(self).addToLayout()
self.plotting_window = PlottingWindow(self, self.deformations).addToLayout()


if __name__ == '__main__': # pragma: no cover

0 comments on commit 115df69

Please sign in to comment.