|
3 | 3 | from dataclasses import dataclass, fields, field |
4 | 4 | from datetime import datetime |
5 | 5 | from enum import Enum, Flag |
6 | | -from typing import Any, Deque, NamedTuple, TYPE_CHECKING |
| 6 | +from typing import Any, NamedTuple, TYPE_CHECKING |
7 | 7 | from PyQt5.QtCore import QObject, pyqtSignal |
8 | 8 |
|
9 | 9 | from .image import Bounds, ImageCollection |
@@ -133,14 +133,12 @@ class Item(NamedTuple): |
133 | 133 | result_used = pyqtSignal(Item) |
134 | 134 | result_discarded = pyqtSignal(Item) |
135 | 135 |
|
136 | | - _entries: Deque[Job] |
137 | | - _selection: Item | None = None |
138 | | - _previous_selection: Item | None = None |
139 | | - _memory_usage = 0 # in MB |
140 | | - |
141 | 136 | def __init__(self): |
142 | 137 | super().__init__() |
143 | | - self._entries = deque() |
| 138 | + self._entries: deque[Job] = deque() |
| 139 | + self._selection: list[JobQueue.Item] = [] |
| 140 | + self._previous_selection: JobQueue.Item | None = None |
| 141 | + self._memory_usage = 0 # in MB |
144 | 142 |
|
145 | 143 | def add(self, kind: JobKind, params: JobParams): |
146 | 144 | return self.add_job(Job(None, kind, params)) |
@@ -202,14 +200,14 @@ def notify_used(self, job_id: str, index: int): |
202 | 200 | self.result_used.emit(self.Item(job_id, index)) |
203 | 201 |
|
204 | 202 | def select(self, job_id: str, index: int): |
205 | | - self.selection = self.Item(job_id, index) |
| 203 | + self.selection = [self.Item(job_id, index)] |
206 | 204 |
|
207 | 205 | def toggle_selection(self): |
208 | | - if self._selection is not None: |
209 | | - self._previous_selection = self._selection |
210 | | - self.selection = None |
| 206 | + if self._selection: |
| 207 | + self._previous_selection = self._selection[0] |
| 208 | + self.selection = [] |
211 | 209 | elif self._previous_selection is not None and self.has_item(self._previous_selection): |
212 | | - self.selection = self._previous_selection |
| 210 | + self.selection = [self._previous_selection] |
213 | 211 |
|
214 | 212 | def _discard_job(self, job: Job): |
215 | 213 | self._entries.remove(job) |
@@ -257,7 +255,7 @@ def selection(self): |
257 | 255 | return self._selection |
258 | 256 |
|
259 | 257 | @selection.setter |
260 | | - def selection(self, value: Item | None): |
| 258 | + def selection(self, value: list[Item]): |
261 | 259 | if self._selection != value: |
262 | 260 | self._selection = value |
263 | 261 | self.selection_changed.emit() |
|
0 commit comments