diff options
Diffstat (limited to 'silx/gui/plot/ImageStack.py')
-rw-r--r-- | silx/gui/plot/ImageStack.py | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/silx/gui/plot/ImageStack.py b/silx/gui/plot/ImageStack.py index c620d6d..3b652ca 100644 --- a/silx/gui/plot/ImageStack.py +++ b/silx/gui/plot/ImageStack.py @@ -150,7 +150,10 @@ class UrlList(qt.QWidget): self._listWidget.addItems(url_names) def _notifyCurrentUrlChanged(self, current, previous): - self.sigCurrentUrlChanged.emit(current.text()) + if current is None: + pass + else: + self.sigCurrentUrlChanged.emit(current.text()) def setUrl(self, url: DataUrl) -> None: assert isinstance(url, DataUrl) @@ -163,6 +166,9 @@ class UrlList(qt.QWidget): self._listWidget.setCurrentItem(item) self.sigCurrentUrlChanged.emit(item.text()) + def clear(self): + self._listWidget.clear() + class _ToggleableUrlSelectionTable(qt.QWidget): @@ -214,6 +220,9 @@ class _ToggleableUrlSelectionTable(qt.QWidget): def _propagateSignal(self, url): self.sigCurrentUrlChanged.emit(url) + def clear(self): + self._urlsTable.clear() + class UrlLoader(qt.QThread): """ @@ -326,6 +335,8 @@ class ImageStack(qt.QMainWindow): self._urlData = OrderedDict({}) self._current_url = None self._plot.clear() + self._urlsTable.clear() + self._slider.setMaximum(-1) def _preFetch(self, urls: list) -> None: """Pre-fetch the given urls if necessary @@ -414,14 +425,16 @@ class ImageStack(qt.QMainWindow): self._urlsTable.blockSignals(old_url_table) old_slider = self._slider.blockSignals(True) + self._slider.setMinimum(0) self._slider.setMaximum(len(self._urls) - 1) self._slider.blockSignals(old_slider) if self.getCurrentUrl() in self._urls: self.setCurrentUrl(self.getCurrentUrl()) else: - first_url = self._urls[list(self._urls.keys())[0]] - self.setCurrentUrl(first_url) + if len(self._urls.keys()) > 0: + first_url = self._urls[list(self._urls.keys())[0]] + self.setCurrentUrl(first_url) def getUrls(self) -> tuple: """ @@ -516,7 +529,11 @@ class ImageStack(qt.QMainWindow): :param index: url to be displayed :type: int """ - if index >= len(self._urls): + if index < 0: + return + if self._urls is None: + return + elif index >= len(self._urls): raise ValueError('requested index out of bounds') else: return self.setCurrentUrl(self._urls[index]) |