CellProfiler-nightly 5.0.0.dev738__tar.gz → 5.0.0.dev780__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.
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/CellProfiler_nightly.egg-info/PKG-INFO +1 -1
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/CellProfiler_nightly.egg-info/SOURCES.txt +2 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/CellProfiler_nightly.egg-info/scm_file_list.json +2 -0
- cellprofiler_nightly-5.0.0.dev780/CellProfiler_nightly.egg-info/scm_version.json +8 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/PKG-INFO +1 -1
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/_version.py +3 -3
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/addmoduleframe.py +3 -1
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/app.py +14 -3
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/cpframe.py +35 -1
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/dialog.py +2 -2
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/errordialog.py +1 -1
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/module_view/_module_view.py +178 -1
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/pipelinecontroller.py +6 -5
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/pipelinelistview.py +8 -2
- cellprofiler_nightly-5.0.0.dev780/cellprofiler/gui/plugins_dialog/_plugins_dialog.py +333 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/measureobjectsizeshape.py +12 -11
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/splitormergeobjects.py +103 -280
- cellprofiler_nightly-5.0.0.dev780/cellprofiler/utilities/__init__.py +0 -0
- cellprofiler_nightly-5.0.0.dev738/CellProfiler_nightly.egg-info/scm_version.json +0 -8
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/CellProfiler_nightly.egg-info/dependency_links.txt +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/CellProfiler_nightly.egg-info/entry_points.txt +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/CellProfiler_nightly.egg-info/requires.txt +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/CellProfiler_nightly.egg-info/top_level.txt +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/LICENSE +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/README.md +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/__main__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/examples/ExampleFly/ExampleFly.cppipe +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/examples/ExampleFly/images/01_POS002_D.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/examples/ExampleFly/images/01_POS002_F.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/examples/ExampleFly/images/01_POS002_R.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/examples/ExampleFly/images/01_POS076_D.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/examples/ExampleFly/images/01_POS076_F.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/examples/ExampleFly/images/01_POS076_R.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/examples/ExampleFly/images/01_POS218_D.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/examples/ExampleFly/images/01_POS218_F.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/examples/ExampleFly/images/01_POS218_R.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/display_image_tools.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/display_interactive_navigation.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/display_menu_bar.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/legacy_matlab_image.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/navigation_edit_menu.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/navigation_file_menu.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/navigation_test_menu.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/navigation_window_menu.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/other_3d_identify.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/other_batch.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/other_logging.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/other_omero.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/other_plugins.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/other_shell.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/other_troubleshooting.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/other_widget_inspector.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/output_measurements.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/output_plateviewer.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/output_spreadsheets.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/pipelines_building.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/pipelines_running.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/projects_configure_images.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/projects_image_ordering.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/projects_image_sequences.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/projects_introduction.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/projects_selecting_images.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/help/why_use_cellprofiler.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/icons/CellProfiler-favicon-120.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/icons/CellProfiler-favicon-128.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/icons/CellProfiler-favicon-144.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/icons/CellProfiler-favicon-152.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/icons/CellProfiler-favicon-195.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/icons/CellProfiler-favicon-228.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/icons/CellProfiler-favicon-32.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/icons/CellProfiler-favicon-57.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/icons/CellProfiler-favicon-72.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/icons/CellProfiler-favicon-96.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/icons/CellProfiler-favicon.ico +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/icons/CellProfiler.ai +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/icons/CellProfiler.icns +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/icons/CellProfiler.ico +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/icons/CellProfiler.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/icons/CellProfiler.svg +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/icons/CellProfiler_square.svg +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/Align.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/ApplyThreshold.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/CollapseTree.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/ColorToGray.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/CorrectIlluminationApply.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/CorrectIlluminationCalculate.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/Crop.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/ExpandOrShrinkObjects.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/ExpandTree.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/GrayToColor.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/Groups_ExampleDisplayTable.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IMG_ANALYZED.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IMG_ANALYZE_16.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IMG_ANALYZE_24.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IMG_CLOSED_EYE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IMG_DISABLED.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IMG_ERROR.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IMG_EYE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IMG_GO.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IMG_GO_DIM.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IMG_IMAGE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IMG_MEASURE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IMG_OK.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IMG_PAUSE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IMG_RUN.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IMG_SLIDER.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IMG_SLIDER_ACTIVE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IMG_STOP.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IMG_TEST.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IMG_UNAVAILABLE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IMG_UPDATE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IMG_USE_INPUT.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IMG_USE_OUTPUT.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IMG_USE_SOURCE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IMG_WARN.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IdentifyPrimaryObjects_IntensityDeclumping.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IdentifyPrimaryObjects_ShapeDeclumping.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IdentifySecondaryObjects.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/IdentifyTertiaryObjects.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/Images_FilelistPanel.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/Images_FilelistPanel_Blank.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/Images_FilelistPanel_Filled.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/Images_UsingRules.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/MeasureGranularity_example.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/MeasureImageAreaOccupied.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/MeasureObjectIntensityDistribution_Edges_Centers.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/MeasureObjectIntensityDistribution_Magnitude_Phase.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/MeasureObjectSizeShape_Eccentricity.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/MeasureTexture.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/Measure_texture_3D_correspondences_1.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/Measure_texture_3D_correspondences_1_highres.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/Measure_texture_3D_correspondences_2.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/Measure_texture_3D_correspondences_2_highres.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/Metadata_ExampleDisplayTable.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/NamesAndTypes_ExampleDisplayTable.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/Tile.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/UnmixColors.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/check.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/color.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/cp_panel_schematic.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/dapi.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/delete.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/downarrow.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/eye-close.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/eye-open.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/ffwd.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/ffwddisabled.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/filter.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/folder_browse.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/folder_create.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/gear.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/gfp.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/icon_copyrights.txt +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/illumination_function.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/image_to_object_dataflow.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/image_to_object_dataflow.psd +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/mask.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/microscope-color_16.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/microscope-icon_16.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/microscope-icon_32.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/microscopes_16.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/module_add.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/module_help.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/module_movedown.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/module_moveup.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/module_remove.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/monochrome.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/movie_16.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/next.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/objects.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/pause.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/pausedisabled.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/play.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/playdisabled.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/previous.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/remove-sign.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/rewind.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/rewinddisabled.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/splash-black-text-alpha.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/splash-white-text-alpha.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/splash.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/status_pause.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/status_save.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/status_stop.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/stop.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/stopdisabled.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/structuringelement.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/thumb-down.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/thumb-up.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/unchecked.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/wantpony.wav +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/welcome_examples.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/welcome_forum.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/welcome_help.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/welcome_manual.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/welcome_new.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/welcome_pipeline.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/welcome_screen_help.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/welcome_start.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/welcome_tutorial.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/welcomescreen_forum.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/welcomescreen_manual.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/welcomescreen_tutorials.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/window_back.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/window_filesave.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/window_forward.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/window_home.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/window_pan.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/data/images/window_zoom_to_rect.png +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/_tree_checkbox_dialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/_welcome_frame.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/_workspace_model.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/artist.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/checkupdate.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/constants/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/constants/figure.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/constants/module_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/constants/preferences_dialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/constants/preferences_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/constants/workspace_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/editobjectsdlg.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/figure/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/figure/_figure.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/figure/_navigation_toolbar.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/figure/_outline_artist.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/gridrenderers.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/help/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/help/content.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/help/menu.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/help/search.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/html/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/html/configure_images_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/html/exporting_results_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/html/getting_started.html +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/html/htmlwindow.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/html/identify_features_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/html/in_app_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/html/making_measurements_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/html/running_pipeline_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/html/selecting_images_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/html/test_mode_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/html/utils.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/html/welcome.html +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/htmldialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/imagesetctrl.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/menu.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/metadatactrl.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/module_view/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/module_view/_binary_matrix_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/module_view/_data_type_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/module_view/_file_collection_display_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/module_view/_filter_panel_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/module_view/_joiner_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/module_view/_module_sizer.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/module_view/_setting_edited_event.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/module_view/_table_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/module_view/_validation_request_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/moduleview.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/namesubscriber.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/omerologin.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/parametersampleframe.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/pathlist.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/pipeline.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/plateviewer.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738/cellprofiler/gui/preferences_dialog → cellprofiler_nightly-5.0.0.dev780/cellprofiler/gui/plugins_dialog}/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/plugins_menu.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738/cellprofiler/gui/readers_dialog → cellprofiler_nightly-5.0.0.dev780/cellprofiler/gui/preferences_dialog}/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/preferences_dialog/_integer_preference.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/preferences_dialog/_preferences_dialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/preferences_view/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/preferences_view/_preferences_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/preferences_view/_progress_watcher.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738/cellprofiler/gui/utilities → cellprofiler_nightly-5.0.0.dev780/cellprofiler/gui/readers_dialog}/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/readers_dialog/_readers_dialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/regexp_editor.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/tools.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738/cellprofiler → cellprofiler_nightly-5.0.0.dev780/cellprofiler/gui}/utilities/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/utilities/figure.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/utilities/icon.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/utilities/module_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/utilities/preferences_dialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/utilities/preferences_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/utilities/workspace_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/workspace_view/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/workspace_view/_workspace_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/workspace_view/_workspace_view_figure.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/workspace_view/_workspace_view_image_row.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/workspace_view/_workspace_view_mask_row.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/workspace_view/_workspace_view_measurement_row.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/workspace_view/_workspace_view_objects_row.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/workspace_view/_workspace_view_row.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/icons/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/knime_bridge.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/misc.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/UntangleWorms.xsd +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/_help.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/calculatemath.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/calculatestatistics.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/classifyobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/closing.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/colortogray.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/combineobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/convertimagetoobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/convertobjectstoimage.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/correctilluminationapply.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/correctilluminationcalculate.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/createbatchfiles.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/crop.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/definegrid.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/dilateimage.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/dilateobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/displaydataonimage.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/displaydensityplot.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/displayhistogram.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/displayplatemap.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/displayscatterplot.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/editobjectsmanually.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/enhanceedges.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/enhanceorsuppressfeatures.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/erodeimage.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/erodeobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/expandorshrinkobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/exporttodatabase.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/exporttospreadsheet.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/fillobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/filterobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/findmaxima.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/flagimage.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/flipandrotate.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/gaussianfilter.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/graytocolor.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/identifydeadworms.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/identifyobjectsingrid.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/identifyobjectsmanually.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/identifyprimaryobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/identifysecondaryobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/identifytertiaryobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/imagemath.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/invertforprinting.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/labelimages.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/makeprojection.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/maskimage.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/maskobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/matchtemplate.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/measurecolocalization.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/measuregranularity.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/measureimageareaoccupied.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/measureimageintensity.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/measureimageoverlap.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/measureimagequality.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/measureimageskeleton.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/measureobjectintensity.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/measureobjectintensitydistribution.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/measureobjectneighbors.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/measureobjectoverlap.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/measureobjectskeleton.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/measuretexture.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/medialaxis.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/medianfilter.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/morph.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/morphologicalskeleton.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/opening.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/overlayobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/overlayoutlines.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/plugins/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/plugins/imagetemplate.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/plugins/measurementtemplate.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/plugins/segmentationtemplatewithdependencies.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/reducenoise.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/relateobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/removeholes.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/rescaleintensity.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/resize.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/resizeobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/runimagejmacro.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/savecroppedobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/saveimages.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/shrinktoobjectcenters.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/smooth.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/straightenworms.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/threshold.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/tile.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/trackobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/unmixcolors.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/untangleworms.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/modules/watershed.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/utilities/morphology.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/utilities/rules.py +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/environment.yml +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/pyproject.toml +0 -0
- {cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: CellProfiler-nightly
|
|
3
|
-
Version: 5.0.0.
|
|
3
|
+
Version: 5.0.0.dev780
|
|
4
4
|
Summary: CellProfiler is a free open-source software designed to enable biologists without training in computer vision or programming to quantitatively measure phenotypes from thousands of images automatically.
|
|
5
5
|
Author: Anne Carpenter, Thouis (Ray) Jones, Lee Kamentsky, Vebjorn Ljosa, David Logan, Mark Bray, Madison Swain-Bowden, Allen Goodman, Claire McQuinn, Alice Lucas, Callum Tromans-Coia
|
|
6
6
|
Author-email: Beth Cimini <bcimini@broadinstitute.org>, David Stirling <dstirling@glencoesoftware.com>, Nodar Gogoberidze <ngogober@broadinstitute.org>
|
|
@@ -265,6 +265,8 @@ cellprofiler/gui/module_view/_module_view.py
|
|
|
265
265
|
cellprofiler/gui/module_view/_setting_edited_event.py
|
|
266
266
|
cellprofiler/gui/module_view/_table_controller.py
|
|
267
267
|
cellprofiler/gui/module_view/_validation_request_controller.py
|
|
268
|
+
cellprofiler/gui/plugins_dialog/__init__.py
|
|
269
|
+
cellprofiler/gui/plugins_dialog/_plugins_dialog.py
|
|
268
270
|
cellprofiler/gui/preferences_dialog/__init__.py
|
|
269
271
|
cellprofiler/gui/preferences_dialog/_integer_preference.py
|
|
270
272
|
cellprofiler/gui/preferences_dialog/_preferences_dialog.py
|
|
@@ -251,6 +251,8 @@
|
|
|
251
251
|
"cellprofiler/gui/pipelinecontroller.py",
|
|
252
252
|
"cellprofiler/gui/pipelinelistview.py",
|
|
253
253
|
"cellprofiler/gui/plateviewer.py",
|
|
254
|
+
"cellprofiler/gui/plugins_dialog/__init__.py",
|
|
255
|
+
"cellprofiler/gui/plugins_dialog/_plugins_dialog.py",
|
|
254
256
|
"cellprofiler/gui/plugins_menu.py",
|
|
255
257
|
"cellprofiler/gui/preferences_dialog/__init__.py",
|
|
256
258
|
"cellprofiler/gui/preferences_dialog/_integer_preference.py",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: CellProfiler-nightly
|
|
3
|
-
Version: 5.0.0.
|
|
3
|
+
Version: 5.0.0.dev780
|
|
4
4
|
Summary: CellProfiler is a free open-source software designed to enable biologists without training in computer vision or programming to quantitatively measure phenotypes from thousands of images automatically.
|
|
5
5
|
Author: Anne Carpenter, Thouis (Ray) Jones, Lee Kamentsky, Vebjorn Ljosa, David Logan, Mark Bray, Madison Swain-Bowden, Allen Goodman, Claire McQuinn, Alice Lucas, Callum Tromans-Coia
|
|
6
6
|
Author-email: Beth Cimini <bcimini@broadinstitute.org>, David Stirling <dstirling@glencoesoftware.com>, Nodar Gogoberidze <ngogober@broadinstitute.org>
|
{cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/_version.py
RENAMED
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '5.0.0.
|
|
22
|
-
__version_tuple__ = version_tuple = (5, 0, 0, '
|
|
21
|
+
__version__ = version = '5.0.0.dev780'
|
|
22
|
+
__version_tuple__ = version_tuple = (5, 0, 0, 'dev780')
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'g47767c212'
|
|
@@ -8,6 +8,7 @@ from cellprofiler_core.utilities.core.modules import (
|
|
|
8
8
|
instantiate_module,
|
|
9
9
|
get_module_class,
|
|
10
10
|
)
|
|
11
|
+
from cellprofiler_core.utilities.core.plugins import get_module_display_name
|
|
11
12
|
|
|
12
13
|
import cellprofiler.gui
|
|
13
14
|
import cellprofiler.gui.cpframe
|
|
@@ -166,11 +167,12 @@ class AddModuleFrame(wx.Frame):
|
|
|
166
167
|
if isinstance(module.category, str)
|
|
167
168
|
else list(module.category)
|
|
168
169
|
) + ["All"]
|
|
170
|
+
display_name = get_module_display_name(module)
|
|
169
171
|
for category in categories:
|
|
170
172
|
if category not in self.__module_files:
|
|
171
173
|
self.__module_files.insert(-2, category)
|
|
172
174
|
self.__module_dict[category] = {}
|
|
173
|
-
self.__module_dict[category][
|
|
175
|
+
self.__module_dict[category][display_name] = loader
|
|
174
176
|
except Exception as e:
|
|
175
177
|
import traceback
|
|
176
178
|
import logging
|
{cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/app.py
RENAMED
|
@@ -6,6 +6,7 @@ import sys
|
|
|
6
6
|
import sentry_sdk
|
|
7
7
|
import wx
|
|
8
8
|
import wx.lib.inspection
|
|
9
|
+
from cellprofiler_core.preferences import APP_NAME
|
|
9
10
|
from cellprofiler_core.preferences import get_telemetry_prompt
|
|
10
11
|
from cellprofiler_core.preferences import get_telemetry
|
|
11
12
|
from cellprofiler_core.preferences import set_telemetry
|
|
@@ -70,9 +71,19 @@ class App(wx.App):
|
|
|
70
71
|
|
|
71
72
|
# wx.lib.inspection.InspectionTool().Show()
|
|
72
73
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
# WARN: APP_NAME also names the user data directory
|
|
75
|
+
# (cellprofiler_core.preferences.get_user_data_directory), where the
|
|
76
|
+
# official plugins live, and the user config directory
|
|
77
|
+
# (cellprofiler_core.preferences.get_user_config_directory), where the
|
|
78
|
+
# config file lives.
|
|
79
|
+
# Be careful changing this, as it will change the config file location,
|
|
80
|
+
# and where official plugins live.
|
|
81
|
+
self.SetAppName(APP_NAME)
|
|
82
|
+
self.SetAppDisplayName("{0:s} {1:s}".format(APP_NAME, cellprofiler_version))
|
|
83
|
+
# useful for Linux - e.g. window manager's "class hint"
|
|
84
|
+
self.SetClassName(APP_NAME)
|
|
85
|
+
|
|
86
|
+
self.frame = CPFrame(None, -1, APP_NAME)
|
|
76
87
|
|
|
77
88
|
self.frame.start(self.workspace_path, self.pipeline_path)
|
|
78
89
|
|
{cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/cpframe.py
RENAMED
|
@@ -40,6 +40,7 @@ from .pipelinecontroller import PipelineController
|
|
|
40
40
|
from .pipelinelistview import PipelineListView
|
|
41
41
|
from .preferences_dialog._preferences_dialog import PreferencesDialog
|
|
42
42
|
from .readers_dialog._readers_dialog import ReadersDialog
|
|
43
|
+
from .plugins_dialog._plugins_dialog import PluginsDialog
|
|
43
44
|
from .preferences_view import PreferencesView
|
|
44
45
|
from .utilities.module_view import stop_validation_queue_thread
|
|
45
46
|
|
|
@@ -119,6 +120,7 @@ ID_FIND_USAGES = wx.NewId()
|
|
|
119
120
|
|
|
120
121
|
ID_OPTIONS_PREFERENCES = wx.ID_PREFERENCES
|
|
121
122
|
ID_OPTIONS_READERS = wx.NewId()
|
|
123
|
+
ID_FILE_PLUGINS = wx.NewId()
|
|
122
124
|
ID_CHECK_NEW_VERSION = wx.NewId()
|
|
123
125
|
|
|
124
126
|
ID_DEBUG_TOGGLE = wx.NewId()
|
|
@@ -212,6 +214,7 @@ class CPFrame(wx.Frame):
|
|
|
212
214
|
#
|
|
213
215
|
# right_win
|
|
214
216
|
# Notes window
|
|
217
|
+
# plugin_warning_panel (conditional)
|
|
215
218
|
# path_module_imageset_panel
|
|
216
219
|
# path_list_sash
|
|
217
220
|
# group_box
|
|
@@ -227,6 +230,13 @@ class CPFrame(wx.Frame):
|
|
|
227
230
|
self.__notes_panel = wx.Panel(self.__right_win)
|
|
228
231
|
self.__right_win.GetSizer().Add(self.__notes_panel, 0, wx.EXPAND | wx.ALL)
|
|
229
232
|
self.__right_win.GetSizer().AddSpacer(4)
|
|
233
|
+
self.__plugin_warning_panel = wx.Panel(
|
|
234
|
+
self.__right_win, name="plugin_warning_panel"
|
|
235
|
+
)
|
|
236
|
+
self.__right_win.GetSizer().Add(
|
|
237
|
+
self.__plugin_warning_panel, 0, wx.EXPAND | wx.LEFT | wx.RIGHT
|
|
238
|
+
)
|
|
239
|
+
self.__right_win.GetSizer().AddSpacer(4)
|
|
230
240
|
self.__path_module_imageset_panel = wx.Panel(self.__right_win, name="path_module_imageset_panel")
|
|
231
241
|
self.__right_win.GetSizer().Add(
|
|
232
242
|
self.__path_module_imageset_panel, 1, wx.EXPAND | wx.ALL
|
|
@@ -450,6 +460,18 @@ class CPFrame(wx.Frame):
|
|
|
450
460
|
right_sizer = self.__right_win.GetSizer()
|
|
451
461
|
assert isinstance(right_sizer, wx.Sizer)
|
|
452
462
|
right_sizer.Show(self.__notes_panel, show)
|
|
463
|
+
# whether plugin_warning_panel itself should be shown is
|
|
464
|
+
# per-module (most modules don't get a warning at all) and is
|
|
465
|
+
# governed entirely by ModuleView.set_selection()/clear_selection(),
|
|
466
|
+
# which runs independently of this method and may well have
|
|
467
|
+
# already run *before* this call (e.g. __on_pipeline_loaded()
|
|
468
|
+
# selects the first module, then calls show_module_ui(True)) - so
|
|
469
|
+
# only ever force it off here (nothing selected => definitely no
|
|
470
|
+
# warning either), never force it on, or this would clobber
|
|
471
|
+
# whatever ModuleView correctly decided for the actual selected
|
|
472
|
+
# module with a blank, unstyled panel.
|
|
473
|
+
if not show:
|
|
474
|
+
right_sizer.Show(self.__plugin_warning_panel, False)
|
|
453
475
|
right_sizer.Show(self.__path_module_imageset_panel, show)
|
|
454
476
|
self.__right_win.Layout()
|
|
455
477
|
if show:
|
|
@@ -557,7 +579,7 @@ class CPFrame(wx.Frame):
|
|
|
557
579
|
wx.GetApp().ExitMainLoop()
|
|
558
580
|
|
|
559
581
|
def __set_properties(self):
|
|
560
|
-
self.SetTitle(
|
|
582
|
+
self.SetTitle(wx.GetApp().GetAppDisplayName())
|
|
561
583
|
self.SetSize((1024, 600))
|
|
562
584
|
|
|
563
585
|
def enable_edit_commands(self, ids):
|
|
@@ -686,6 +708,11 @@ class CPFrame(wx.Frame):
|
|
|
686
708
|
"&Preferences...",
|
|
687
709
|
"Set global application preferences",
|
|
688
710
|
)
|
|
711
|
+
self.__menu_file.Append(
|
|
712
|
+
ID_FILE_PLUGINS,
|
|
713
|
+
"&Plugins...",
|
|
714
|
+
"Manage CellProfiler plugins",
|
|
715
|
+
)
|
|
689
716
|
|
|
690
717
|
self.recent_files = wx.Menu()
|
|
691
718
|
self.recent_pipeline_files = wx.Menu()
|
|
@@ -915,6 +942,7 @@ class CPFrame(wx.Frame):
|
|
|
915
942
|
self.Bind(wx.EVT_MENU, self.__on_readers, id=ID_OPTIONS_READERS)
|
|
916
943
|
|
|
917
944
|
self.Bind(wx.EVT_MENU, self.__on_preferences, id=ID_OPTIONS_PREFERENCES)
|
|
945
|
+
self.Bind(wx.EVT_MENU, self.__on_plugins, id=ID_FILE_PLUGINS)
|
|
918
946
|
self.Bind(wx.EVT_MENU, self.__on_close_all, id=ID_WINDOW_CLOSE_ALL)
|
|
919
947
|
self.Bind(wx.EVT_MENU, self.__debug_pdb, id=ID_DEBUG_PDB)
|
|
920
948
|
self.Bind(wx.EVT_MENU, self.__on_debug_help, id=ID_DEBUG_HELP)
|
|
@@ -1071,6 +1099,11 @@ class CPFrame(wx.Frame):
|
|
|
1071
1099
|
dlg = PreferencesDialog()
|
|
1072
1100
|
dlg.Show()
|
|
1073
1101
|
|
|
1102
|
+
@staticmethod
|
|
1103
|
+
def __on_plugins(event):
|
|
1104
|
+
dlg = PluginsDialog()
|
|
1105
|
+
dlg.Show()
|
|
1106
|
+
|
|
1074
1107
|
def __on_close_all(self, event):
|
|
1075
1108
|
close_all(self)
|
|
1076
1109
|
|
|
@@ -1300,6 +1333,7 @@ class CPFrame(wx.Frame):
|
|
|
1300
1333
|
self.__workspace,
|
|
1301
1334
|
frame=self,
|
|
1302
1335
|
notes_panel=self.__notes_panel,
|
|
1336
|
+
plugin_warning_panel=self.__plugin_warning_panel,
|
|
1303
1337
|
)
|
|
1304
1338
|
self.__pipeline_controller.attach_to_module_view(self.__module_view)
|
|
1305
1339
|
self.__pipeline_list_view.attach_to_module_view(self.__module_view)
|
{cellprofiler_nightly-5.0.0.dev738 → cellprofiler_nightly-5.0.0.dev780}/cellprofiler/gui/dialog.py
RENAMED
|
@@ -10,10 +10,10 @@ class AboutDialogInfo(wx.adv.AboutDialogInfo):
|
|
|
10
10
|
super(AboutDialogInfo, self).__init__()
|
|
11
11
|
|
|
12
12
|
self.SetCopyright(
|
|
13
|
-
"Copyright © 2003 -
|
|
13
|
+
"Copyright © 2003 - 2026 Broad Institute, Inc.\nAll rights reserved."
|
|
14
14
|
)
|
|
15
15
|
|
|
16
|
-
self.SetName(
|
|
16
|
+
self.SetName(wx.GetApp().GetAppName())
|
|
17
17
|
self.SetVersion(cellprofiler_version)
|
|
18
18
|
self.SetIcon(get_cp_icon(100))
|
|
19
19
|
|
|
@@ -445,7 +445,7 @@ def display_error_message(parent, message, title, buttons=None, size=(300, 200))
|
|
|
445
445
|
sizer.Add(
|
|
446
446
|
wx.StaticBitmap(dlg, bitmap=icon),
|
|
447
447
|
0,
|
|
448
|
-
wx.
|
|
448
|
+
wx.ALIGN_TOP | wx.ALL,
|
|
449
449
|
10,
|
|
450
450
|
)
|
|
451
451
|
sizer.AddSpacer(10)
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import html
|
|
1
2
|
import logging
|
|
2
3
|
import os
|
|
3
4
|
import stat
|
|
@@ -7,6 +8,7 @@ import matplotlib.cm
|
|
|
7
8
|
import numpy
|
|
8
9
|
import wx
|
|
9
10
|
import wx.grid
|
|
11
|
+
import wx.html
|
|
10
12
|
import wx.lib.colourselect
|
|
11
13
|
import wx.lib.resizewidget
|
|
12
14
|
import wx.lib.scrolledpanel
|
|
@@ -24,6 +26,8 @@ from cellprofiler_core.preferences import get_default_colormap
|
|
|
24
26
|
from cellprofiler_core.preferences import get_default_image_directory
|
|
25
27
|
from cellprofiler_core.preferences import get_default_output_directory
|
|
26
28
|
from cellprofiler_core.preferences import get_error_color
|
|
29
|
+
from cellprofiler_core.utilities.core.plugins import get_plugin_warning_text
|
|
30
|
+
from cellprofiler_core.utilities.core.plugins import OFFICIAL_PLUGINS_URL
|
|
27
31
|
from cellprofiler_core.setting import Binary, PathListDisplay, Setting
|
|
28
32
|
from cellprofiler_core.setting import BinaryMatrix
|
|
29
33
|
from cellprofiler_core.setting import Color
|
|
@@ -113,6 +117,42 @@ from ..utilities.module_view import y_control_name
|
|
|
113
117
|
LOGGER = logging.getLogger(__name__)
|
|
114
118
|
|
|
115
119
|
|
|
120
|
+
def _wx_colour_to_hex(colour):
|
|
121
|
+
return "#%02x%02x%02x" % (colour.Red(), colour.Green(), colour.Blue())
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
def _plugin_warning_text_and_link_colours():
|
|
125
|
+
if wx.SystemSettings.GetAppearance().IsDark():
|
|
126
|
+
return wx.Colour(255, 255, 255), wx.Colour(100, 170, 255)
|
|
127
|
+
return wx.Colour(0, 0, 0), wx.Colour(0, 0, 238)
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
def _plugin_warning_html(text, background_colour, text_colour, link_colour):
|
|
131
|
+
"""HTML-escape `text` (a get_plugin_warning_text() result), turn its
|
|
132
|
+
embedded OFFICIAL_PLUGINS_URL into a real, clickable `<a href>` link, and set
|
|
133
|
+
its colors explicitly via legacy `<body bgcolor=/text=/link=>`
|
|
134
|
+
attributes.
|
|
135
|
+
|
|
136
|
+
wx.html.HtmlWindow's own default rendering (white page, black text, web
|
|
137
|
+
blue links) ignores `SetBackgroundColour()`/`SetForegroundColour()`
|
|
138
|
+
entirely - those only affect what `GetBackgroundColour()` etc. report
|
|
139
|
+
back, not what's actually painted. The only way to make the rendered
|
|
140
|
+
page itself match CellProfiler's current (possibly dark) theme is to
|
|
141
|
+
say so directly in the HTML.
|
|
142
|
+
"""
|
|
143
|
+
escaped = html.escape(text)
|
|
144
|
+
escaped_url = html.escape(OFFICIAL_PLUGINS_URL)
|
|
145
|
+
linked = escaped.replace(
|
|
146
|
+
escaped_url, f'<a href="{OFFICIAL_PLUGINS_URL}">{escaped_url}</a>'
|
|
147
|
+
)
|
|
148
|
+
body_attrs = (
|
|
149
|
+
f'bgcolor="{_wx_colour_to_hex(background_colour)}" '
|
|
150
|
+
f'text="{_wx_colour_to_hex(text_colour)}" '
|
|
151
|
+
f'link="{_wx_colour_to_hex(link_colour)}"'
|
|
152
|
+
)
|
|
153
|
+
return f"<html><body {body_attrs}>{linked}</body></html>"
|
|
154
|
+
|
|
155
|
+
|
|
116
156
|
class ModuleView:
|
|
117
157
|
"""The module view implements a view on CellProfiler.Module
|
|
118
158
|
|
|
@@ -122,18 +162,30 @@ class ModuleView:
|
|
|
122
162
|
gives the ui for editing the setting.
|
|
123
163
|
"""
|
|
124
164
|
|
|
125
|
-
def __init__(
|
|
165
|
+
def __init__(
|
|
166
|
+
self,
|
|
167
|
+
top_panel,
|
|
168
|
+
workspace,
|
|
169
|
+
frame=None,
|
|
170
|
+
notes_panel=None,
|
|
171
|
+
plugin_warning_panel=None,
|
|
172
|
+
):
|
|
126
173
|
"""Constructor
|
|
127
174
|
|
|
128
175
|
module_panel - the top-level panel used by the view
|
|
129
176
|
workspace - the current workspace
|
|
130
177
|
notes_panel - panel in which to construct the notes GUI
|
|
178
|
+
plugin_warning_panel - panel (a sibling of notes_panel, not a
|
|
179
|
+
child of it, so it shares the exact same plain background as
|
|
180
|
+
its neighbors - see make_plugin_warning_gui) in which to build
|
|
181
|
+
the plugin safety/trust warning banner
|
|
131
182
|
"""
|
|
132
183
|
pipeline = workspace.pipeline
|
|
133
184
|
self.__workspace = workspace
|
|
134
185
|
self.__module = None
|
|
135
186
|
self.refresh_pending = False
|
|
136
187
|
self.notes_panel = notes_panel
|
|
188
|
+
self.plugin_warning_panel = plugin_warning_panel
|
|
137
189
|
self.__frame = frame
|
|
138
190
|
self.top_panel = top_panel
|
|
139
191
|
background_color = get_background_color()
|
|
@@ -164,6 +216,8 @@ class ModuleView:
|
|
|
164
216
|
self.module_panel.Bind(wx.EVT_CHILD_FOCUS, self.skip_event)
|
|
165
217
|
if notes_panel is not None:
|
|
166
218
|
self.make_notes_gui()
|
|
219
|
+
if plugin_warning_panel is not None:
|
|
220
|
+
self.make_plugin_warning_gui()
|
|
167
221
|
|
|
168
222
|
self.__pipeline = pipeline
|
|
169
223
|
self.__listeners = []
|
|
@@ -212,6 +266,8 @@ class ModuleView:
|
|
|
212
266
|
self.__sizer.Reset(0)
|
|
213
267
|
if self.notes_panel is not None:
|
|
214
268
|
self.notes_panel.Hide()
|
|
269
|
+
if self.plugin_warning_panel is not None:
|
|
270
|
+
self.__set_plugin_warning(None)
|
|
215
271
|
|
|
216
272
|
def get_module_settings_label(self):
|
|
217
273
|
if self.__module is None:
|
|
@@ -298,6 +354,8 @@ class ModuleView:
|
|
|
298
354
|
self.module_notes_control.SetValue(
|
|
299
355
|
"\n".join([str(note) for note in self.__module.notes])
|
|
300
356
|
)
|
|
357
|
+
if self.plugin_warning_panel is not None:
|
|
358
|
+
self.__set_plugin_warning(get_plugin_warning_text(self.__module))
|
|
301
359
|
|
|
302
360
|
#################################
|
|
303
361
|
#
|
|
@@ -641,6 +699,125 @@ class ModuleView:
|
|
|
641
699
|
|
|
642
700
|
self.notes_panel.Bind(wx.EVT_TEXT, on_notes_changed, self.module_notes_control)
|
|
643
701
|
|
|
702
|
+
def make_plugin_warning_gui(self):
|
|
703
|
+
"""Build the plugin safety/trust warning banner inside
|
|
704
|
+
plugin_warning_panel - a sibling of notes_panel,
|
|
705
|
+
sitting between the Notes box and the Settings controls
|
|
706
|
+
|
|
707
|
+
A bound EVT_PAINT handler draws just a WARNING_COLOR border stroke
|
|
708
|
+
on top, since none of wx's built-in border styles (BORDER_SIMPLE,
|
|
709
|
+
BORDER_THEME, etc.) expose a way to set a custom border color. The
|
|
710
|
+
text itself renders via an HtmlClickableWindow, so the URL in the
|
|
711
|
+
message is a real, clickable link.
|
|
712
|
+
"""
|
|
713
|
+
from cellprofiler.gui.html.htmlwindow import HtmlClickableWindow
|
|
714
|
+
|
|
715
|
+
self.__PLUGIN_WARNING_BORDER_WIDTH = 2
|
|
716
|
+
self.__plugin_warning_full_text = None
|
|
717
|
+
self.__plugin_warning_resizing = False
|
|
718
|
+
plugin_warning_sizer = wx.BoxSizer(wx.VERTICAL)
|
|
719
|
+
self.plugin_warning_panel.SetSizer(plugin_warning_sizer)
|
|
720
|
+
self.__plugin_warning_html = HtmlClickableWindow(
|
|
721
|
+
self.plugin_warning_panel, -1, style=wx.html.HW_SCROLLBAR_NEVER
|
|
722
|
+
)
|
|
723
|
+
margin = self.__PLUGIN_WARNING_BORDER_WIDTH + 5
|
|
724
|
+
plugin_warning_sizer.Add(self.__plugin_warning_html, 0, wx.EXPAND | wx.ALL, margin)
|
|
725
|
+
self.plugin_warning_panel.Hide()
|
|
726
|
+
self.plugin_warning_panel.Bind(wx.EVT_PAINT, self.__on_plugin_warning_paint)
|
|
727
|
+
self.plugin_warning_panel.Bind(wx.EVT_SIZE, self.__on_plugin_warning_panel_size)
|
|
728
|
+
# Toggling the OS light/dark appearance *without restarting
|
|
729
|
+
# CellProfiler* leaves wx.SystemSettings' cached colors/appearance
|
|
730
|
+
# stale until wx is actually notified of the change - querying them
|
|
731
|
+
# again later, e.g. on the next module selection, can still return
|
|
732
|
+
# the old value. Re-render right when that notification arrives,
|
|
733
|
+
# rather than waiting for some unrelated later event to happen to
|
|
734
|
+
# re-query a still-possibly-stale cache.
|
|
735
|
+
self.plugin_warning_panel.Bind(
|
|
736
|
+
wx.EVT_SYS_COLOUR_CHANGED, self.__on_system_colour_changed
|
|
737
|
+
)
|
|
738
|
+
|
|
739
|
+
def __on_system_colour_changed(self, event):
|
|
740
|
+
event.Skip()
|
|
741
|
+
if self.__plugin_warning_full_text:
|
|
742
|
+
self.__set_plugin_warning(self.__plugin_warning_full_text)
|
|
743
|
+
|
|
744
|
+
def __on_plugin_warning_paint(self, event):
|
|
745
|
+
# Deliberately does not touch the background at all - that's left
|
|
746
|
+
# to wx's normal default painting, so it keeps showing whatever
|
|
747
|
+
# color this panel actually inherits from its real parent.
|
|
748
|
+
dc = wx.PaintDC(self.plugin_warning_panel)
|
|
749
|
+
border_width = self.__PLUGIN_WARNING_BORDER_WIDTH
|
|
750
|
+
dc.SetPen(wx.Pen(WARNING_COLOR, border_width))
|
|
751
|
+
dc.SetBrush(wx.TRANSPARENT_BRUSH)
|
|
752
|
+
width, height = self.plugin_warning_panel.GetClientSize()
|
|
753
|
+
inset = border_width // 2
|
|
754
|
+
dc.DrawRectangle(
|
|
755
|
+
inset, inset, max(width - border_width, 0), max(height - border_width, 0)
|
|
756
|
+
)
|
|
757
|
+
|
|
758
|
+
def __on_plugin_warning_panel_size(self, event):
|
|
759
|
+
event.Skip()
|
|
760
|
+
# HtmlWindow reflows its already-set page to its new width on its
|
|
761
|
+
# own on resize (no need to call SetPage() again) - just re-measure
|
|
762
|
+
# the now-current content height and tell the sizer about it.
|
|
763
|
+
self.__resize_plugin_warning_to_content()
|
|
764
|
+
|
|
765
|
+
def __resize_plugin_warning_to_content(self):
|
|
766
|
+
if not self.__plugin_warning_full_text:
|
|
767
|
+
return
|
|
768
|
+
# Re-entrancy guard: SetMinSize()/Layout() below can themselves
|
|
769
|
+
# trigger another EVT_SIZE on this same panel (e.g. if a scrollbar
|
|
770
|
+
# or sibling's space changes as a result) - without this, that
|
|
771
|
+
# recurses until RecursionError.
|
|
772
|
+
if self.__plugin_warning_resizing:
|
|
773
|
+
return
|
|
774
|
+
self.__plugin_warning_resizing = True
|
|
775
|
+
try:
|
|
776
|
+
control = self.__plugin_warning_html
|
|
777
|
+
width = control.GetClientSize()[0]
|
|
778
|
+
if width <= 0:
|
|
779
|
+
return
|
|
780
|
+
height = control.GetInternalRepresentation().GetHeight()
|
|
781
|
+
if control.GetMinSize() == (width, height):
|
|
782
|
+
return
|
|
783
|
+
control.SetMinSize((width, height))
|
|
784
|
+
self.plugin_warning_panel.GetParent().Layout()
|
|
785
|
+
finally:
|
|
786
|
+
self.__plugin_warning_resizing = False
|
|
787
|
+
|
|
788
|
+
def __set_plugin_warning(self, text):
|
|
789
|
+
self.__plugin_warning_full_text = text
|
|
790
|
+
if text:
|
|
791
|
+
self.plugin_warning_panel.Show()
|
|
792
|
+
# Layout *before* rendering, so the panel's width reflects its
|
|
793
|
+
# current real size rather than whatever (possibly stale/unset)
|
|
794
|
+
# size it had before this selection - then layout again after,
|
|
795
|
+
# since the content's height changes with width.
|
|
796
|
+
self.plugin_warning_panel.GetParent().Layout()
|
|
797
|
+
margin = self.__PLUGIN_WARNING_BORDER_WIDTH + 5
|
|
798
|
+
width = max(
|
|
799
|
+
self.plugin_warning_panel.GetClientSize()[0] - 2 * margin, 20
|
|
800
|
+
)
|
|
801
|
+
control = self.__plugin_warning_html
|
|
802
|
+
control.SetSize((width, 1))
|
|
803
|
+
background_colour = self.plugin_warning_panel.GetBackgroundColour()
|
|
804
|
+
text_colour, link_colour = _plugin_warning_text_and_link_colours()
|
|
805
|
+
control.SetPage(
|
|
806
|
+
_plugin_warning_html(text, background_colour, text_colour, link_colour)
|
|
807
|
+
)
|
|
808
|
+
# Also set these on the control itself: SetPage() resets them to
|
|
809
|
+
# wx.html.HtmlWindow's own defaults, and while the HTML's own
|
|
810
|
+
# bgcolor/text/link attributes above are what actually get
|
|
811
|
+
# painted, keeping GetBackgroundColour() in sync avoids a
|
|
812
|
+
# mismatched flash/edge at the control's own boundary.
|
|
813
|
+
control.SetBackgroundColour(background_colour)
|
|
814
|
+
control.SetForegroundColour(text_colour)
|
|
815
|
+
self.__resize_plugin_warning_to_content()
|
|
816
|
+
self.plugin_warning_panel.GetParent().Layout()
|
|
817
|
+
else:
|
|
818
|
+
self.plugin_warning_panel.Hide()
|
|
819
|
+
self.plugin_warning_panel.GetParent().Layout()
|
|
820
|
+
|
|
644
821
|
def make_binary_control(self, v, control_name, control):
|
|
645
822
|
"""Make a checkbox control for a Binary setting"""
|
|
646
823
|
if not control:
|
|
@@ -1678,20 +1678,21 @@ class PipelineController(object):
|
|
|
1678
1678
|
|
|
1679
1679
|
def set_title(self):
|
|
1680
1680
|
"""Set the title of the parent frame"""
|
|
1681
|
+
displayname = wx.GetApp().GetAppDisplayName()
|
|
1681
1682
|
pathname = get_current_workspace_path()
|
|
1682
1683
|
if pathname is None:
|
|
1683
|
-
self.__frame.Title =
|
|
1684
|
+
self.__frame.Title = displayname
|
|
1684
1685
|
return
|
|
1685
1686
|
path, filename = os.path.split(pathname)
|
|
1686
1687
|
if self.__dirty_workspace:
|
|
1687
|
-
self.__frame.Title = "
|
|
1688
|
-
|
|
1688
|
+
self.__frame.Title = "%s: %s* (%s)" % (
|
|
1689
|
+
displayname,
|
|
1689
1690
|
filename,
|
|
1690
1691
|
path,
|
|
1691
1692
|
)
|
|
1692
1693
|
else:
|
|
1693
|
-
self.__frame.Title = "
|
|
1694
|
-
|
|
1694
|
+
self.__frame.Title = "%s: %s (%s)" % (
|
|
1695
|
+
displayname,
|
|
1695
1696
|
filename,
|
|
1696
1697
|
path,
|
|
1697
1698
|
)
|
|
@@ -30,6 +30,7 @@ from cellprofiler_core.setting.text import Name
|
|
|
30
30
|
from cellprofiler_core.setting.subscriber import ImageListSubscriber
|
|
31
31
|
from cellprofiler_core.setting.subscriber import LabelListSubscriber
|
|
32
32
|
from cellprofiler_core.setting import Measurement
|
|
33
|
+
from cellprofiler_core.utilities.core.plugins import get_module_display_name
|
|
33
34
|
|
|
34
35
|
import cellprofiler.gui
|
|
35
36
|
import cellprofiler.gui.figure
|
|
@@ -1247,6 +1248,11 @@ class PipelineListCtrl(wx.ScrolledWindow):
|
|
|
1247
1248
|
"""The module name of the item's module"""
|
|
1248
1249
|
return self.module.module_name
|
|
1249
1250
|
|
|
1251
|
+
@property
|
|
1252
|
+
def display_name(self):
|
|
1253
|
+
"""The module name of the item's module, decorated if it's a plugin"""
|
|
1254
|
+
return get_module_display_name(self.module)
|
|
1255
|
+
|
|
1250
1256
|
def set_state(self, state, state_mask):
|
|
1251
1257
|
"""Set the item's state
|
|
1252
1258
|
|
|
@@ -1653,7 +1659,7 @@ class PipelineListCtrl(wx.ScrolledWindow):
|
|
|
1653
1659
|
x0 = self.column_width * 3 + self.slider_width + self.text_gap
|
|
1654
1660
|
max_width = 0
|
|
1655
1661
|
for i, item in enumerate(self.items):
|
|
1656
|
-
width, height, _, _ = self.GetFullTextExtent(item.
|
|
1662
|
+
width, height, _, _ = self.GetFullTextExtent(item.display_name)
|
|
1657
1663
|
max_width = max(width, max_width)
|
|
1658
1664
|
total_width = x0 + max_width + self.border * 2 + self.gap + self.text_gap
|
|
1659
1665
|
height = max((len(self.items) - 1) * self.line_height, 0)
|
|
@@ -1824,7 +1830,7 @@ class PipelineListCtrl(wx.ScrolledWindow):
|
|
|
1824
1830
|
dc.SetTextForeground(item_text_color)
|
|
1825
1831
|
|
|
1826
1832
|
dc.DrawText(
|
|
1827
|
-
item.
|
|
1833
|
+
item.display_name,
|
|
1828
1834
|
rectangle.GetLeft() + self.text_gap,
|
|
1829
1835
|
rectangle.GetTop(),
|
|
1830
1836
|
)
|