Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
beat
beat.editor
Commits
2addb974
Commit
2addb974
authored
Jun 18, 2019
by
Samuel GAIST
Browse files
[backend][delegates] Renamed DataformatDelegate to AssetItemDelegate
The name was wrong. Tests have been added
parent
d11b1d3f
Changes
3
Hide whitespace changes
Inline
Side-by-side
beat/editor/backend/delegates.py
View file @
2addb974
...
...
@@ -26,17 +26,23 @@
from
PyQt5.QtWidgets
import
QComboBox
from
PyQt5.QtWidgets
import
QStyledItemDelegate
from
.assetmodel
import
AssetModel
class
DataformatDelegate
(
QStyledItemDelegate
):
"""Delegate to edit dataformat entries"""
def
__init__
(
self
,
dataformat_model
,
parent
=
None
):
super
(
DataformatDelegate
,
self
).
__init__
(
parent
)
self
.
dataformat_model
=
dataformat_model
class
AssetItemDelegate
(
QStyledItemDelegate
):
"""Delegate to edit asset entries"""
def
__init__
(
self
,
asset_model
,
parent
=
None
):
super
(
AssetItemDelegate
,
self
).
__init__
(
parent
)
if
not
isinstance
(
asset_model
,
AssetModel
):
raise
TypeError
(
"Wrong model type"
)
self
.
asset_model
=
asset_model
def
createEditor
(
self
,
parent
,
options
,
index
):
"""Create a combox box with all available
data forma
ts"""
"""Create a combox box with all available
asse
ts"""
combobox
=
QComboBox
(
parent
)
combobox
.
setModel
(
self
.
dataforma
t_model
)
combobox
.
setModel
(
self
.
asse
t_model
)
return
combobox
beat/editor/test/test_delegates.py
0 → 100644
View file @
2addb974
# 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/. #
# #
###############################################################################
import
pytest
from
PyQt5.QtCore
import
QStringListModel
from
PyQt5.QtGui
import
QStandardItemModel
from
PyQt5.QtGui
import
QStandardItem
from
PyQt5.QtWidgets
import
QListView
from
PyQt5.QtWidgets
import
QComboBox
from
..backend.delegates
import
AssetItemDelegate
from
..backend.assetmodel
import
AssetModel
class
TestAssetItemDelegate
:
"""Test that the delegate provides the correct editor"""
def
test_valid_model
(
self
,
qtbot
,
test_prefix
,
asset_type
):
asset_model
=
AssetModel
()
asset_model
.
asset_type
=
asset_type
asset_model
.
prefix_path
=
test_prefix
delegate
=
AssetItemDelegate
(
asset_model
)
model
=
QStandardItemModel
(
1
,
1
)
model
.
setItem
(
0
,
0
,
QStandardItem
(
""
))
view
=
QListView
()
qtbot
.
addWidget
(
view
)
view
.
setModel
(
model
)
view
.
setItemDelegate
(
delegate
)
view
.
edit
(
model
.
index
(
0
,
0
))
widget_list
=
view
.
viewport
().
findChildren
(
QComboBox
)
assert
len
(
widget_list
)
==
1
editor
=
widget_list
[
0
]
editor_model
=
editor
.
model
()
assert
isinstance
(
editor_model
,
AssetModel
)
assert
editor_model
==
asset_model
def
test_invalid_model
(
self
,
qtbot
):
with
pytest
.
raises
(
TypeError
):
AssetItemDelegate
(
QStringListModel
())
beat/editor/widgets/protocoltemplateeditor.py
View file @
2addb974
...
...
@@ -42,7 +42,7 @@ from ..decorators import frozen
from
..backend.asset
import
AssetType
from
..backend.assetmodel
import
AssetModel
from
..backend.delegates
import
Dataformat
Delegate
from
..backend.delegates
import
AssetItem
Delegate
from
.scrollwidget
import
ScrollWidget
...
...
@@ -59,7 +59,7 @@ class SetWidget(QWidget):
super
(
SetWidget
,
self
).
__init__
(
parent
)
self
.
dataformat_model
=
dataformat_model
delegate
=
Dataformat
Delegate
(
self
.
dataformat_model
)
delegate
=
AssetItem
Delegate
(
self
.
dataformat_model
)
self
.
delete_button
=
QPushButton
(
self
.
tr
(
"-"
))
self
.
delete_button
.
setFixedSize
(
30
,
30
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment