pyqttoolkit 0.8.0.post1__tar.gz → 0.8.3__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.
Files changed (138) hide show
  1. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/PKG-INFO +1 -1
  2. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/_version.py +3 -3
  3. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/models/dicttable.py +6 -3
  4. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/scripting/script_runner.py +15 -2
  5. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/services/module_service.py +8 -1
  6. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/services/tool_window_service.py +3 -2
  7. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit.egg-info/PKG-INFO +1 -1
  8. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/MANIFEST.in +0 -0
  9. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/README.md +0 -0
  10. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/__init__.py +0 -0
  11. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/application/__init__.py +0 -0
  12. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/application/application.py +0 -0
  13. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/application/garbage_collector.py +0 -0
  14. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/colors/__init__.py +0 -0
  15. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/config/__init__.py +0 -0
  16. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/config/base.py +0 -0
  17. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/config/composite.py +0 -0
  18. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/config/default.py +0 -0
  19. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/config/environment.py +0 -0
  20. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/config/multi_json_file.py +0 -0
  21. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/config/with_signal.py +0 -0
  22. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/config/with_value_changed.py +0 -0
  23. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/data/__init__.py +0 -0
  24. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/data/bits.py +0 -0
  25. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/data/cache.py +0 -0
  26. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/data/interval.py +0 -0
  27. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/data/message.py +0 -0
  28. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/data/names.py +0 -0
  29. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/datetime/__init__.py +0 -0
  30. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/datetime/datetime.py +0 -0
  31. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/datetime/qdatetime.py +0 -0
  32. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/dependencies/__init__.py +0 -0
  33. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/errors/__init__.py +0 -0
  34. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/exceptions/__init__.py +0 -0
  35. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/filesystem/__init__.py +0 -0
  36. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/logs/__init__.py +0 -0
  37. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/metadata/__init__.py +0 -0
  38. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/metadata/dataframe_metadata_manager.py +0 -0
  39. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/metadata/dict_metadata_manager.py +0 -0
  40. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/metadata/id_generator.py +0 -0
  41. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/metadata/metadata_manager_base.py +0 -0
  42. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/models/__init__.py +0 -0
  43. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/models/code_text.py +0 -0
  44. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/models/dataframetable.py +0 -0
  45. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/models/dictpropertytree.py +0 -0
  46. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/models/json_text.py +0 -0
  47. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/models/list_model.py +0 -0
  48. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/models/module.py +0 -0
  49. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/models/roles.py +0 -0
  50. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/models/series_data.py +0 -0
  51. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/models/span.py +0 -0
  52. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/models/validation.py +0 -0
  53. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/modules/__init__.py +0 -0
  54. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/modules/events/__init__.py +0 -0
  55. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/modules/events/add_signal.py +0 -0
  56. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/modules/events/module_opening.py +0 -0
  57. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/modules/events/rejectable.py +0 -0
  58. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/modules/launcher_config.py +0 -0
  59. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/modules/module.py +0 -0
  60. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/properties/__init__.py +0 -0
  61. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/properties/auto.py +0 -0
  62. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/properties/throttled.py +0 -0
  63. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/scripting/__init__.py +0 -0
  64. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/scripting/script_context.py +0 -0
  65. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/scripting/script_template.py +0 -0
  66. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/services/__init__.py +0 -0
  67. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/services/autosave.py +0 -0
  68. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/services/email.py +0 -0
  69. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/services/event_registry.py +0 -0
  70. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/services/file_dialog.py +0 -0
  71. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/services/hotkey_manager.py +0 -0
  72. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/services/link_manager.py +0 -0
  73. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/services/message_board.py +0 -0
  74. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/services/object_converter.py +0 -0
  75. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/services/project_updater.py +0 -0
  76. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/services/task_runner.py +0 -0
  77. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/services/theme_manager.py +0 -0
  78. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/viewmanagers/__init__.py +0 -0
  79. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/viewmanagers/tool.py +0 -0
  80. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/__init__.py +0 -0
  81. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/bulk_value_selector.py +0 -0
  82. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/check_box.py +0 -0
  83. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/code/__init__.py +0 -0
  84. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/code/code_edit.py +0 -0
  85. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/code/python_syntax.py +0 -0
  86. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/combo_box.py +0 -0
  87. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/count_selector.py +0 -0
  88. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/datetime.py +0 -0
  89. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/datetime_range_selector.py +0 -0
  90. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/default_text_line_edit.py +0 -0
  91. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/delegates.py +0 -0
  92. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/dtype_edit.py +0 -0
  93. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/editable_combo_box.py +0 -0
  94. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/file_selector.py +0 -0
  95. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/icon.py +0 -0
  96. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/icon_button.py +0 -0
  97. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/json_edit.py +0 -0
  98. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/labelled.py +0 -0
  99. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/layout/__init__.py +0 -0
  100. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/layout/collabsible.py +0 -0
  101. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/layout/group_box.py +0 -0
  102. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/layout/group_panel.py +0 -0
  103. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/layout/lines.py +0 -0
  104. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/layout/link.py +0 -0
  105. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/line_edit.py +0 -0
  106. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/linkable.py +0 -0
  107. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/list_view.py +0 -0
  108. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/main_window.py +0 -0
  109. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/metadata_selector.py +0 -0
  110. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/modulewindow.py +0 -0
  111. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/plot/__init__.py +0 -0
  112. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/plot/legend_control.py +0 -0
  113. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/plot/matplotlib/__init__.py +0 -0
  114. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/plot/matplotlib/base.py +0 -0
  115. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/plot/matplotlib/colorbar.py +0 -0
  116. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/plot/matplotlib/colormap.py +0 -0
  117. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/plot/matplotlib/font.py +0 -0
  118. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/plot/plot_options.py +0 -0
  119. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/plot/plot_toolbar_options.py +0 -0
  120. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/plot/size.py +0 -0
  121. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/plot/tool_type.py +0 -0
  122. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/plot/toolbar.py +0 -0
  123. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/popout.py +0 -0
  124. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/popup.py +0 -0
  125. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/property_tree.py +0 -0
  126. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/shrunk_push_button.py +0 -0
  127. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/steppable_combo_box.py +0 -0
  128. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/styleable.py +0 -0
  129. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/table.py +0 -0
  130. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/text_edit.py +0 -0
  131. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit/views/tool_window.py +0 -0
  132. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit.egg-info/SOURCES.txt +0 -0
  133. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit.egg-info/dependency_links.txt +0 -0
  134. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit.egg-info/requires.txt +0 -0
  135. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/pyqttoolkit.egg-info/top_level.txt +0 -0
  136. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/setup.cfg +0 -0
  137. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/setup.py +0 -0
  138. {pyqttoolkit-0.8.0.post1 → pyqttoolkit-0.8.3}/versioneer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyqttoolkit
3
- Version: 0.8.0.post1
3
+ Version: 0.8.3
4
4
  Summary: A toolkit for PyQt 5
5
5
  Home-page: https://github.com/BitBloomTech/pyqttoolkit
6
6
  Author: Bitbloom Ltd
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2025-02-10T10:45:17-0600",
11
+ "date": "2026-05-04T06:27:07-0600",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "c01a30f0721570aa53de3b069854c5c25e9ebdb6",
15
- "version": "0.8.0-1"
14
+ "full-revisionid": "a0aea194ad7d14e531d359a4506037536745f7e1",
15
+ "version": "0.8.3"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -61,11 +61,14 @@ class DictTableModel(QAbstractTableModel):
61
61
  value = self._value[self._ids[index.row()]].get(self.displayProperties[index.column()])
62
62
  if value is None:
63
63
  return None
64
- if role == Qt.DisplayRole and isinstance(value, float):
65
- return '{:0.2f}'.format(value)
66
- return value
64
+ return self._format_value(value, index)
67
65
  return None
68
66
 
67
+ def _format_value(self, value, index):
68
+ if isinstance(value, float):
69
+ return '{:0.2f}'.format(value)
70
+ return value
71
+
69
72
  def setData(self, index, value, role=None):
70
73
  role = role or Qt.EditRole
71
74
  if role == Qt.EditRole:
@@ -15,6 +15,7 @@
15
15
  # along with this program; if not, write to the Free Software Foundation,
16
16
  # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
17
  from contextlib import contextmanager
18
+ from functools import partial
18
19
  import re
19
20
  import builtins
20
21
  import sys
@@ -84,7 +85,19 @@ class ScriptRunner:
84
85
 
85
86
  def compile(self, script):
86
87
  return compile(script, 'code', 'exec')
87
-
88
+
89
+ def _patch_plt_show(self, module):
90
+ def plt_show_as_show_figure(plt, block=None):
91
+ # Block is not used in the context of the script runner
92
+ for no, label in zip(plt.get_fignums(), plt.get_figlabels()):
93
+ self._context.show_figure(plt.figure(no), str(label))
94
+ plt.close('all')
95
+ if module.__name__ == 'matplotlib.pyplot':
96
+ module.show = partial(plt_show_as_show_figure, module)
97
+ if module.__name__ == 'matplotlib':
98
+ module.pyplot.show = partial(plt_show_as_show_figure, module.pyplot)
99
+ return module
100
+
88
101
  def _import(self, import_function):
89
102
  def _(module_name, *args, **kwargs):
90
103
  if any(re.match(m, module_name) for m in self._disallowed_modules):
@@ -94,7 +107,7 @@ class ScriptRunner:
94
107
  module = import_function(module_name, *args, **kwargs)
95
108
  if module_name in 'importlib':
96
109
  module.import_module = self._import(importlib.import_module)
97
- return module
110
+ return self._patch_plt_show(module)
98
111
  except KeyError:
99
112
  raise ImportError('Module not found')
100
113
  return _
@@ -17,6 +17,8 @@
17
17
  """:mod:`module_service`
18
18
  The module service, creates and manages qt widget modules
19
19
  """
20
+ from os.path import basename
21
+
20
22
  from weakref import ref
21
23
  import weakref
22
24
 
@@ -114,7 +116,12 @@ class ModuleService(QObject):
114
116
 
115
117
  def _create_sub_module(self, id_):
116
118
  singleton = self._registered_modules[id_].singleton
117
- window = ModuleWindow(self._theme_manager, self._registered_modules[id_].title, singleton)
119
+ window_title = self._registered_modules[id_].title
120
+ if self._project_manager.filename:
121
+ window_title += f' - {basename(self._project_manager.filename)}'
122
+ elif self._project_updater and self._project_updater.dirty:
123
+ window_title += self.tr(' - unsaved')
124
+ window = ModuleWindow(self._theme_manager, window_title, singleton)
118
125
  window.setAttribute(Qt.WA_DeleteOnClose)
119
126
  model = self._dependency_container.resolve(
120
127
  self._registered_modules[id_].model_type,
@@ -25,8 +25,9 @@ class ToolWindowService:
25
25
  self._dependency_container = dependency_contianer
26
26
  self._active_tools = []
27
27
 
28
- def open(self, parent, model, name):
29
- view = self._dependency_container.resolve_for(type(model), QWidget, {'parent': None})
28
+ def open(self, parent, model, name, *args, extras=None):
29
+ extras = {'parent': None, **(extras or {})}
30
+ view = self._dependency_container.resolve_for(type(model), QWidget, extras, *args)
30
31
  if hasattr(model, 'showButtons'):
31
32
  show_buttons = model.showButtons
32
33
  else:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyqttoolkit
3
- Version: 0.8.0.post1
3
+ Version: 0.8.3
4
4
  Summary: A toolkit for PyQt 5
5
5
  Home-page: https://github.com/BitBloomTech/pyqttoolkit
6
6
  Author: Bitbloom Ltd
File without changes
File without changes
File without changes