Skip to content

Commit e0f4eb3

Browse files
committed
Plugins now are accessible via dictionaries
1 parent 6f76d11 commit e0f4eb3

File tree

2 files changed

+19
-11
lines changed

2 files changed

+19
-11
lines changed

pyproject.toml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,11 @@ build.hooks.vcs.version-file = "qmicroscope/_version.py"
3131

3232
[tool.hatch.build.targets.wheel]
3333
packages = ["qmicroscope"]
34+
35+
[tool.setuptools_scm]
36+
root = "."
37+
fallback_version = "0.0.0"
38+
version_scheme = "semantic"
39+
local_scheme = "node-and-date"
40+
write_to = "qmicroscope/_version.py"
41+

qmicroscope/microscope.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -61,16 +61,16 @@ def __init__(
6161
# self.timer = QTimer(self)
6262
# self.timer.timeout.connect(self.downloader.downloadData)
6363

64-
self.plugins: List[BasePlugin] = []
64+
self.plugins: Dict[str, BasePlugin] = {}
6565
for plugin_cls in self.plugin_classes:
6666
if isinstance(plugin_cls, SupportsBasePlugin):
67-
self.plugins.append(plugin_cls(self))
67+
self.plugins[plugin_cls.__name__] = plugin_cls(self)
6868
else:
6969
print(
7070
f"{plugin_cls.__name__} does not implement BasePlugin, ignoring Plugin"
7171
)
7272

73-
for plugin in self.plugins:
73+
for plugin in self.plugins.values():
7474
self.mouse_press_signal.connect(plugin.mouse_press_event)
7575
self.mouse_move_signal.connect(plugin.mouse_move_event)
7676
self.mouse_release_signal.connect(plugin.mouse_release_event)
@@ -91,17 +91,17 @@ def acquire(self, start: bool = True) -> None:
9191
self.videoThread.setUrl(self.url)
9292
self.videoThread.setFPS(self.fps)
9393
self.videoThread.start()
94-
for plugin in self.plugins:
94+
for plugin in self.plugins.values():
9595
plugin.start_plugin()
9696
elif self.videoThread.isRunning() and not start:
97-
for plugin in self.plugins:
97+
for plugin in self.plugins.values():
9898
plugin.stop_plugin()
9999
self.videoThread.stop()
100100
self.videoThread.wait(500)
101101

102102
def stop_plugins(self):
103103
"For cleaning up threads and other processes"
104-
for plugin in self.plugins:
104+
for plugin in self.plugins.values():
105105
plugin.stop_plugin()
106106

107107
def eventFilter(self, obj, event):
@@ -162,7 +162,7 @@ def contextMenuEvent(self, a0: QContextMenuEvent) -> None:
162162
config_plugins_action.triggered.connect(self._config_plugins)
163163
self.addMenuItem(config_plugins_action)
164164

165-
for plugin in self.plugins:
165+
for plugin in self.plugins.values():
166166
self.menu.addSection(plugin.name)
167167
context_menu_entry = plugin.context_menu_entry()
168168

@@ -182,7 +182,7 @@ def addMenuItem(self, item):
182182
self.menu.addMenu(item)
183183

184184
def _config_plugins(self):
185-
plugin_settings_dialog = PluginSettingsDialog(parent=self, plugins=self.plugins)
185+
plugin_settings_dialog = PluginSettingsDialog(parent=self, plugins=self.plugins.values())
186186

187187
def sizeHint(self) -> QSize:
188188
return QSize(400, 400)
@@ -195,7 +195,7 @@ def updateImageData(self, image: QImage):
195195
self.image = image
196196

197197
# Loop through plugins to process video image
198-
for plugin in self.plugins:
198+
for plugin in self.plugins.values():
199199
if plugin.updates_image:
200200
self.image = plugin.update_image_data(self.image)
201201

@@ -269,7 +269,7 @@ def readSettings(self, settings: QSettings):
269269
self.yDivs = settings.value("yDivs", 5, type=int)
270270
self.color = settings.value("color", False, type=bool)
271271

272-
for plugin in self.plugins:
272+
for plugin in self.plugins.values():
273273
settings.beginGroup(plugin.name)
274274
settings_values = {}
275275
for key in settings.allKeys():
@@ -311,7 +311,7 @@ def writeSettings(
311311
settings.setValue("scaleW", self.scale[0])
312312
settings.setValue("scaleH", self.scale[1])
313313

314-
for plugin in self.plugins:
314+
for plugin in self.plugins.values():
315315
settings.beginGroup(plugin.name)
316316
settings_values = plugin.write_settings()
317317
for key, value in settings_values.items():

0 commit comments

Comments
 (0)