Commit 01e54c5c authored by Ronan Abhamon's avatar Ronan Abhamon

feat(src/components/codecs/CodecsModel): in progress

parent 336abb50
import QtQml.Models 2.2
import QtQuick 2.7 import QtQuick 2.7
import QtQuick.Layouts 1.3 import QtQuick.Layouts 1.3
...@@ -7,7 +8,7 @@ import Linphone.Styles 1.0 ...@@ -7,7 +8,7 @@ import Linphone.Styles 1.0
// ============================================================================= // =============================================================================
Column { Column {
property alias model: view.model property alias model: visualModel.model
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
// Header. // Header.
...@@ -72,52 +73,84 @@ Column { ...@@ -72,52 +73,84 @@ Column {
height: count * CodecsViewerStyle.attribute.height height: count * CodecsViewerStyle.attribute.height
delegate: Rectangle { model: DelegateModel {
color: 'transparent' id: visualModel
height: CodecsViewerStyle.attribute.height delegate: MouseArea {
width: parent.width id: dragArea
RowLayout { property bool held: false
anchors.fill: parent
spacing: CodecsViewerStyle.column.spacing
CodecAttribute { anchors {
Layout.preferredWidth: CodecsViewerStyle.column.mimeWidth left: parent.left
text: $codec.mime right: parent.right
} }
CodecAttribute { drag {
Layout.preferredWidth: CodecsViewerStyle.column.encoderDescriptionWidth axis: Drag.YAxis
text: $codec.encoderDescription target: held ? content : undefined
} }
CodecAttribute { height: CodecsViewerStyle.attribute.height
Layout.preferredWidth: CodecsViewerStyle.column.clockRateWidth
text: $codec.clockRate
}
CodecAttribute { onPressAndHold: held = true
Layout.preferredWidth: CodecsViewerStyle.column.bitrateWidth onReleased: held = false
text: $codec.bitrate
}
TextField { RowLayout {
Layout.preferredWidth: CodecsViewerStyle.column.recvFmtpWidth id: content
text: $codec.recvFmtp
} Drag.active: dragArea.held
Drag.source: dragArea
Drag.hotSpot.x: width / 2
Drag.hotSpot.y: height / 2
height: dragArea.height
width: dragArea.width
spacing: CodecsViewerStyle.column.spacing
CodecAttribute {
Layout.preferredWidth: CodecsViewerStyle.column.mimeWidth
text: $codec.mime
}
Switch { CodecAttribute {
checked: $codec.enabled Layout.preferredWidth: CodecsViewerStyle.column.encoderDescriptionWidth
text: $codec.encoderDescription
}
onClicked: view.model.enableCodec(index, !checked) CodecAttribute {
Layout.preferredWidth: CodecsViewerStyle.column.clockRateWidth
text: $codec.clockRate
}
CodecAttribute {
Layout.preferredWidth: CodecsViewerStyle.column.bitrateWidth
text: $codec.bitrate
}
TextField {
Layout.preferredWidth: CodecsViewerStyle.column.recvFmtpWidth
text: $codec.recvFmtp
}
Switch {
checked: $codec.enabled
onClicked: view.model.enableCodec(index, !checked)
}
} }
}
MouseArea { DropArea {
id: mouseArea anchors.fill: parent
anchors.fill: parent onEntered: {
visualModel.items.move(
drag.source.DelegateModel.itemsIndex,
dragArea.DelegateModel.itemsIndex
)
}
}
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment