diff --git a/beat/editor/widgets/__init__.py b/beat/editor/widgets/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..a7f33c7a0480e6c807c92a8b43df9756e5c4b54f --- /dev/null +++ b/beat/editor/widgets/__init__.py @@ -0,0 +1,24 @@ +# vim: set fileencoding=utf-8 : +############################################################################### +# # +# Copyright (c) 2019 Idiap Research Institute, http://www.idiap.ch/ # +# Contact: beat.support@idiap.ch # +# # +# This file is part of the beat.editor module of the BEAT platform. # +# # +# Commercial License Usage # +# Licensees holding valid commercial BEAT licenses may use this file in # +# accordance with the terms contained in a written agreement between you # +# and Idiap. For further information contact tto@idiap.ch # +# # +# Alternatively, this file may be used under the terms of the GNU Affero # +# Public License version 3 as published by the Free Software and appearing # +# in the file LICENSE.AGPL included in the packaging of this file. # +# The BEAT platform is distributed in the hope that it will be useful, but # +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # +# or FITNESS FOR A PARTICULAR PURPOSE. # +# # +# You should have received a copy of the GNU Affero Public License along # +# with the BEAT platform. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### diff --git a/beat/editor/widgets/assetbrowser.py b/beat/editor/widgets/assetbrowser.py new file mode 100644 index 0000000000000000000000000000000000000000..f9e739b7f2dbf7334f7ccc8eccfd10ac68de9f6e --- /dev/null +++ b/beat/editor/widgets/assetbrowser.py @@ -0,0 +1,66 @@ +# vim: set fileencoding=utf-8 : +############################################################################### +# # +# Copyright (c) 2019 Idiap Research Institute, http://www.idiap.ch/ # +# Contact: beat.support@idiap.ch # +# # +# This file is part of the beat.editor module of the BEAT platform. # +# # +# Commercial License Usage # +# Licensees holding valid commercial BEAT licenses may use this file in # +# accordance with the terms contained in a written agreement between you # +# and Idiap. For further information contact tto@idiap.ch # +# # +# Alternatively, this file may be used under the terms of the GNU Affero # +# Public License version 3 as published by the Free Software and appearing # +# in the file LICENSE.AGPL included in the packaging of this file. # +# The BEAT platform is distributed in the hope that it will be useful, but # +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # +# or FITNESS FOR A PARTICULAR PURPOSE. # +# # +# You should have received a copy of the GNU Affero Public License along # +# with the BEAT platform. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +from PyQt5.QtCore import pyqtSignal + +from PyQt5.QtWidgets import QFileSystemModel +from PyQt5.QtWidgets import QTreeView +from PyQt5.QtWidgets import QVBoxLayout +from PyQt5.QtWidgets import QWidget + + +class AssetBrowser(QWidget): + """ + Widget that will allow to browse the various assets + """ + + json_selected = pyqtSignal(["QString"]) + + def __init__(self, parent=None): + """Constructor""" + + super(AssetBrowser, self).__init__(parent) + self.filesystemModel = QFileSystemModel() + self.view = QTreeView() + self.view.setModel(self.filesystemModel) + + layout = QVBoxLayout(self) + layout.addWidget(self.view) + + self.view.doubleClicked.connect(self.__on_item_selected) + + def __on_item_selected(self, index): + """When an item is selected, emit the json_selected signal with + the corresponding JSON file path. + """ + + if self.filesystemModel.type(index).lower() == "json file": + self.json_selected.emit(self.filesystemModel.filePath(index)) + + def set_prefix_root(self, prefix_root_path): + """Sets the root path of the prefix to edit""" + + self.filesystemModel.setRootPath(prefix_root_path) + self.view.setRootIndex(self.filesystemModel.index(prefix_root_path))