phasor-handler 2.3.0__tar.gz → 3.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {phasor_handler-2.3.0/phasor_handler.egg-info → phasor_handler-3.0.0}/PKG-INFO +1 -1
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/widgets/analysis/components/circle_roi.py +15 -4
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/widgets/analysis/components/roi_list.py +2 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0/phasor_handler.egg-info}/PKG-INFO +1 -1
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/pyproject.toml +1 -1
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/CONTRIBUTING.md +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/LICENSE.md +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/MANIFEST.in +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/README.md +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/environment.yml +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/__init__.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/app.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/img/icons/chevron-down.svg +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/img/icons/chevron-up.svg +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/img/logo.ico +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/models/dir_manager.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/scripts/contrast.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/scripts/convert.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/scripts/meta_reader.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/scripts/plot.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/scripts/register.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/themes/__init__.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/themes/dark_theme.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/tools/__init__.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/tools/check_stylesheet.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/tools/misc.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/widgets/__init__.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/widgets/analysis/components/__init__.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/widgets/analysis/components/bnc.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/widgets/analysis/components/image_view.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/widgets/analysis/components/meta_info.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/widgets/analysis/components/trace_plot.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/widgets/analysis/view.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/widgets/conversion/view.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/widgets/registration/view.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/widgets/secondlevel/view.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/workers/__init__.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/workers/analysis_worker.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/workers/conversion_worker.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/workers/histogram_worker.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/workers/registration_worker.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/workers/secondlevel_worker.py +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler.egg-info/SOURCES.txt +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler.egg-info/dependency_links.txt +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler.egg-info/entry_points.txt +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler.egg-info/requires.txt +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler.egg-info/top_level.txt +0 -0
- {phasor_handler-2.3.0 → phasor_handler-3.0.0}/setup.cfg +0 -0
|
@@ -176,8 +176,9 @@ class CircleRoiTool(QObject):
|
|
|
176
176
|
img_x1 = img_x0 + (ow * scale_x)
|
|
177
177
|
img_y1 = img_y0 + (oh * scale_y)
|
|
178
178
|
|
|
179
|
-
# Update the ROI's xyxy coordinates
|
|
180
|
-
roi['xyxy'] = (img_x0, img_y0,
|
|
179
|
+
# Update the ROI's xyxy coordinates (convert to int for array slicing)
|
|
180
|
+
roi['xyxy'] = (int(round(img_x0)), int(round(img_y0)),
|
|
181
|
+
int(round(img_x1)), int(round(img_y1)))
|
|
181
182
|
|
|
182
183
|
# If this ROI has freehand points, translate them too
|
|
183
184
|
if origin.get('freehand_points'):
|
|
@@ -222,8 +223,9 @@ class CircleRoiTool(QObject):
|
|
|
222
223
|
img_x1 = img_x0 + (ow * scale_x)
|
|
223
224
|
img_y1 = img_y0 + (oh * scale_y)
|
|
224
225
|
|
|
225
|
-
# Restore original xyxy
|
|
226
|
-
roi['xyxy'] = (img_x0, img_y0,
|
|
226
|
+
# Restore original xyxy (convert to int for array slicing)
|
|
227
|
+
roi['xyxy'] = (int(round(img_x0)), int(round(img_y0)),
|
|
228
|
+
int(round(img_x1)), int(round(img_y1)))
|
|
227
229
|
|
|
228
230
|
# Restore original freehand points if they existed
|
|
229
231
|
if origin.get('freehand_points'):
|
|
@@ -468,6 +470,15 @@ class CircleRoiTool(QObject):
|
|
|
468
470
|
}
|
|
469
471
|
return True
|
|
470
472
|
|
|
473
|
+
# If multiple ROIs are selected but we clicked on a DIFFERENT ROI
|
|
474
|
+
# (not in selection) without Shift, exit multi-select and select only that ROI
|
|
475
|
+
if len(self._selected_roi_indices) > 1 and clicked_roi_index is not None and clicked_roi_index not in self._selected_roi_indices:
|
|
476
|
+
print(f"DEBUG: RightClick on ROI {clicked_roi_index} (not in selection) - exiting multi-select")
|
|
477
|
+
# Clear multi-selection and select only the clicked ROI
|
|
478
|
+
self._selected_roi_indices = [clicked_roi_index]
|
|
479
|
+
self.roiSelected.emit(clicked_roi_index)
|
|
480
|
+
return True
|
|
481
|
+
|
|
471
482
|
# Single selection mode - original behavior
|
|
472
483
|
# First, check if we're clicking on any saved ROI
|
|
473
484
|
roi_index = self._find_roi_at_point(p)
|
{phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/widgets/analysis/components/roi_list.py
RENAMED
|
@@ -1012,6 +1012,8 @@ class RoiListWidget(QWidget):
|
|
|
1012
1012
|
try:
|
|
1013
1013
|
# Select the corresponding item in the ROI list widget
|
|
1014
1014
|
if 0 <= roi_index < self.roi_list_widget.count():
|
|
1015
|
+
# Clear any existing multi-selection first to ensure single selection
|
|
1016
|
+
self.roi_list_widget.clearSelection()
|
|
1015
1017
|
self.roi_list_widget.setCurrentRow(roi_index)
|
|
1016
1018
|
print(f"Auto-selected ROI {roi_index + 1} by right-click")
|
|
1017
1019
|
except Exception as e:
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "phasor-handler"
|
|
7
|
-
version = "
|
|
7
|
+
version = "3.0.0"
|
|
8
8
|
authors = [{ name = "Josia Shemuel", email = "joshemuel@users.noreply.github.com" }]
|
|
9
9
|
description = "A PyQt6 GUI toolbox for processing two-photon phasor imaging data"
|
|
10
10
|
readme = "README.md"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/widgets/analysis/components/__init__.py
RENAMED
|
File without changes
|
{phasor_handler-2.3.0 → phasor_handler-3.0.0}/phasor_handler/widgets/analysis/components/bnc.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|