ms-components 0.4.1__tar.gz → 0.4.2__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.
- {ms_components-0.4.1 → ms_components-0.4.2}/PKG-INFO +1 -1
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_dockwidget/widget.py +10 -1
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components.egg-info/PKG-INFO +1 -1
- ms_components-0.4.2/src/ms_components.egg-info/scm_version.json +8 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/test_dock_window.py +20 -0
- ms_components-0.4.1/src/ms_components.egg-info/scm_version.json +0 -8
- {ms_components-0.4.1 → ms_components-0.4.2}/.github/workflows/docs.yml +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/.github/workflows/publish.yml +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/.gitignore +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/LICENSE +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/MANIFEST.in +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/README.md +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/examples/tutorial_demo.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/examples/tutorial_demo.toml +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/licenses/qt-themes-LICENSE.txt +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/pyproject.toml +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/setup.cfg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/__init__.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/backdrop.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/base.qss +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/chips.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ketcher.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/listview.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_dockwidget/__init__.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_dockwidget/resources/__init__.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_dockwidget/resources/icons/__init__.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_dockwidget/resources/icons/folder.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_executors.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_monitor/__init__.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_monitor/bridge.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_monitor/cards.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_monitor/config.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_monitor/detail_panel.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_monitor/formatting.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_monitor/job_cards.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_monitor/models.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_monitor/palette.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_monitor/polling.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_monitor/widget.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_projects/__init__.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_projects/app.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_projects/backend.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_projects/browser.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_projects/scratch.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_projects/widget.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_pymol/__init__.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_pymol/icons/actions.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_pymol/icons/box.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_pymol/icons/center.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_pymol/icons/display.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_pymol/icons/hide.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_pymol/icons/hydrogens-polar.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_pymol/icons/hydrogens.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_pymol/icons/menu.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_pymol/icons/orient.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_pymol/icons/presets.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_pymol/icons/rock.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_pymol/icons/selection.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_pymol/icons/settings.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_pymol/icons/style.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_pymol/icons/zoom.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_pymol/plugins.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_pymol/scene.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_pymol/widget.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_settings/__init__.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_settings/panel.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_stepper.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/__init__.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/action_header.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/cell_delegate.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/column_panel.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/example_usage.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/filter_panel.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/icons/columns.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/icons/export.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/icons/filter.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/icons/menu.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/icons/reload.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/icons/search.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/icons/settings.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/icons/sort-asc.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/icons/sort-desc.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/icons/sort.svg +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/metric_filter_bar.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/pagination_control.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/query_builder.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/session_provider.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/smart_table_view.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/sort_panel.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/table_config.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/table_interaction.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/table_model.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/test_external_filters.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/test_toolbar.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_tutorial/__init__.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_tutorial/bindings.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_tutorial/controller.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_tutorial/models.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_tutorial/overlay.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/opengl.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/pagination.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/palettes.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/step_dialog.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/theme.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/tool_panel.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/wheel.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components.egg-info/SOURCES.txt +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components.egg-info/dependency_links.txt +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components.egg-info/requires.txt +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components.egg-info/scm_file_list.json +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components.egg-info/top_level.txt +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/conftest.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/test_app_settings.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/test_chips.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/test_executors_ui.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/test_ketcher.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/test_molsuite_monitor_bridge.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/test_molsuite_monitor_widgets.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/test_monitor_config.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/test_ms_projects_widget.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/test_opengl.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/test_progress_column.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/test_project_browser.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/test_pymol_grid.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/test_pymol_scene.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/test_pymol_toolbar.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/test_query_builder_keyset.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/test_shift_hscroll.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/test_split_button_style.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/test_step_dialog.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/test_table_interaction.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/test_table_toolbar.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/test_table_view_state.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/test_theme_contrast.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/test_tool_panel.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/tests/test_tutorial.py +0 -0
- {ms_components-0.4.1 → ms_components-0.4.2}/zensical.toml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ms_components
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.2
|
|
4
4
|
Summary: PySide6 UI components for MolSuite: smart table, project browser, job monitor, PyMOL dock, steppers.
|
|
5
5
|
Author: Mario S. Valdés-Tresanco, Mario E. Valdés-Tresanco
|
|
6
6
|
License-Expression: MIT
|
|
@@ -779,6 +779,7 @@ class DockManager:
|
|
|
779
779
|
# Standalone action buttons (no dock): a click runs a callback instead of toggling a dock.
|
|
780
780
|
# action_id -> {"region", "order", "button"}. Re-added on every _build_toolbars().
|
|
781
781
|
self.action_buttons: Dict[str, dict] = {}
|
|
782
|
+
self.action_separators: Dict[str, dict] = {} # same shape; "button" is a ToolbarSeparator
|
|
782
783
|
self.region_states: Dict[Region, RegionState] = {
|
|
783
784
|
region: RegionState(order=[], visible=[]) for region in Region
|
|
784
785
|
}
|
|
@@ -885,6 +886,14 @@ class DockManager:
|
|
|
885
886
|
self._build_toolbars()
|
|
886
887
|
return button
|
|
887
888
|
|
|
889
|
+
def add_action_separator(self, separator_id: str, *, region: Region, order: int) -> None:
|
|
890
|
+
"""A line in a toolbar region, placed by ``order`` like an action button, so it survives
|
|
891
|
+
the rebuilds a line inserted into the layout would not."""
|
|
892
|
+
if separator_id in self.action_separators:
|
|
893
|
+
raise ValueError(f"Duplicate action separator id: {separator_id}")
|
|
894
|
+
self.action_separators[separator_id] = {"region": region, "order": int(order), "button": ToolbarSeparator()}
|
|
895
|
+
self._build_toolbars()
|
|
896
|
+
|
|
888
897
|
# ── Build ────────────────────────────────────────────────────
|
|
889
898
|
|
|
890
899
|
def build(self):
|
|
@@ -1595,7 +1604,7 @@ class DockManager:
|
|
|
1595
1604
|
# dock buttons keep their (possibly drag-set) region order; standalone action
|
|
1596
1605
|
# buttons are woven in by their `order` relative to the dock entries' orders.
|
|
1597
1606
|
merged = [(entry.order, self.buttons[entry.id]) for entry in self._region_entries(region)]
|
|
1598
|
-
for action in self.action_buttons.values():
|
|
1607
|
+
for action in (*self.action_buttons.values(), *self.action_separators.values()):
|
|
1599
1608
|
if action["region"] != region:
|
|
1600
1609
|
continue
|
|
1601
1610
|
idx = next((i for i, (order, _) in enumerate(merged) if order > action["order"]), len(merged))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ms_components
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.2
|
|
4
4
|
Summary: PySide6 UI components for MolSuite: smart table, project browser, job monitor, PyMOL dock, steppers.
|
|
5
5
|
Author: Mario S. Valdés-Tresanco, Mario E. Valdés-Tresanco
|
|
6
6
|
License-Expression: MIT
|
|
@@ -154,3 +154,23 @@ def test_a_window_stays_a_window_on_double_click_and_drop(app):
|
|
|
154
154
|
|
|
155
155
|
window.close()
|
|
156
156
|
app.processEvents()
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
def test_action_separator_sits_by_order_and_survives_a_rebuild(app):
|
|
160
|
+
from ms_components.ms_dockwidget.widget import ToolbarSeparator
|
|
161
|
+
|
|
162
|
+
window = QMainWindow()
|
|
163
|
+
manager = DockManager(window)
|
|
164
|
+
manager.add_action_button("a", region=Region.BOTTOM_LEFT, order=1, on_click=lambda: None)
|
|
165
|
+
manager.add_action_button("b", region=Region.BOTTOM_LEFT, order=3, on_click=lambda: None)
|
|
166
|
+
manager.add_action_separator("line", region=Region.BOTTOM_LEFT, order=2)
|
|
167
|
+
manager.set_show_tool_names(True) # restyles every button: the separator is not one
|
|
168
|
+
manager._build_toolbars()
|
|
169
|
+
|
|
170
|
+
layout = manager.left_toolbar.layout_for_region(Region.BOTTOM_LEFT)
|
|
171
|
+
widgets = [layout.itemAt(i).widget() for i in range(layout.count())]
|
|
172
|
+
assert widgets[1] is manager.action_separators["line"]["button"]
|
|
173
|
+
assert isinstance(widgets[1], ToolbarSeparator)
|
|
174
|
+
assert widgets[0] is manager.action_buttons["a"]["button"]
|
|
175
|
+
assert widgets[2] is manager.action_buttons["b"]["button"]
|
|
176
|
+
window.close()
|
|
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
|
{ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_dockwidget/resources/__init__.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_pymol/icons/hydrogens-polar.svg
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
|
|
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
|
{ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/pagination_control.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
|
{ms_components-0.4.1 → ms_components-0.4.2}/src/ms_components/ms_table/test_external_filters.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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|