mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-08-06 10:18:42 +02:00
[ui] ImageGallery: add SensorDBDialog + 'rebuild intrinsics' feature
* add SensorDBDialog explaining how to add a new entry in the sensor DB and ease the access to the sensor database * enable intrinsics rebuild at user level from this dialog * MessageDialog: react to clicks on hyperlinks
This commit is contained in:
parent
6c9ed42736
commit
49e809df2b
3 changed files with 94 additions and 0 deletions
|
@ -83,17 +83,20 @@ Dialog {
|
|||
id: textLabel
|
||||
font.bold: true
|
||||
visible: text != ""
|
||||
onLinkActivated: Qt.openUrlExternally(link)
|
||||
}
|
||||
// Detailed text
|
||||
Label {
|
||||
id: detailedLabel
|
||||
text: text
|
||||
visible: text != ""
|
||||
onLinkActivated: Qt.openUrlExternally(link)
|
||||
}
|
||||
// Additional helper text
|
||||
Label {
|
||||
id: helperLabel
|
||||
visible: text != ""
|
||||
onLinkActivated: Qt.openUrlExternally(link)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -40,6 +40,13 @@ Panel {
|
|||
id: graphEditorMenu
|
||||
y: parent.height
|
||||
x: -width + parent.width
|
||||
MenuItem {
|
||||
text: "Edit Sensor Database..."
|
||||
onTriggered: {
|
||||
sensorDBDialog.open()
|
||||
}
|
||||
}
|
||||
|
||||
Menu {
|
||||
title: "Advanced"
|
||||
Action {
|
||||
|
@ -51,6 +58,14 @@ Panel {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
SensorDBDialog {
|
||||
id: sensorDBDialog
|
||||
sensorDatabase: Filepath.stringToUrl(cameraInit.attribute("sensorDatabase").value)
|
||||
readOnly: _reconstruction.computing
|
||||
onUpdateIntrinsicsRequest: _reconstruction.rebuildIntrinsics(cameraInit)
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
spacing: 4
|
||||
|
|
76
meshroom/ui/qml/ImageGallery/SensorDBDialog.qml
Normal file
76
meshroom/ui/qml/ImageGallery/SensorDBDialog.qml
Normal file
|
@ -0,0 +1,76 @@
|
|||
import QtQuick 2.9
|
||||
import QtQuick.Controls 2.3
|
||||
import QtQuick.Layouts 1.3
|
||||
|
||||
import MaterialIcons 2.2
|
||||
import Controls 1.0
|
||||
|
||||
|
||||
MessageDialog {
|
||||
id: root
|
||||
|
||||
property url sensorDatabase
|
||||
property bool readOnly: false
|
||||
|
||||
signal updateIntrinsicsRequest()
|
||||
|
||||
icon.text: MaterialIcons.camera
|
||||
icon.font.pointSize: 10
|
||||
|
||||
modal: true
|
||||
parent: Overlay.overlay
|
||||
canCopy: false
|
||||
|
||||
title: "Sensor Database"
|
||||
text: "Add missing Camera Models to the Sensor Database to improve your results."
|
||||
detailedText: "If a warning is displayed on your images, adding your Camera Model to the Sensor Database\n"+
|
||||
"can help fix it and improve your reconstruction results."
|
||||
helperText: 'To update the Sensor Database (<a href="https://github.com/alicevision/meshroom/wiki/Add-Camera-to-database">complete guide</a>):<br>' +
|
||||
' - Look for the "sensor width" in millimeters of your Camera Model<br>' +
|
||||
' - Add a new line in the Database following this pattern: Make;Model;SensorWidthInMM<br>' +
|
||||
' - Click on "' + rebuildIntrinsics.text + '" once the Database has been saved<br>' +
|
||||
' - Contribute to the <a href="https://github.com/alicevision/AliceVision/blob/develop/src/aliceVision/sensorDB/cameraSensors.db">online Database</a>'
|
||||
|
||||
ColumnLayout {
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
spacing: 2
|
||||
|
||||
Label {
|
||||
text: "Sensor Database:"
|
||||
}
|
||||
|
||||
TextField {
|
||||
id: sensorDBTextField
|
||||
Layout.fillWidth: true
|
||||
text: Filepath.normpath(sensorDatabase)
|
||||
selectByMouse: true
|
||||
readOnly: true
|
||||
}
|
||||
MaterialToolButton {
|
||||
text: MaterialIcons.assignment
|
||||
ToolTip.text: "Copy Path"
|
||||
onClicked: {
|
||||
sensorDBTextField.selectAll();
|
||||
sensorDBTextField.copy();
|
||||
ToolTip.text = "Path has been copied!"
|
||||
}
|
||||
onHoveredChanged: if(!hovered) ToolTip.text = "Copy Path"
|
||||
}
|
||||
MaterialToolButton {
|
||||
text: MaterialIcons.open_in_new
|
||||
ToolTip.text: "Open in External Editor"
|
||||
onClicked: Qt.openUrlExternally(sensorDatabase)
|
||||
}
|
||||
}
|
||||
}
|
||||
Button {
|
||||
id: rebuildIntrinsics
|
||||
text: "Update Intrinsics"
|
||||
enabled: !readOnly
|
||||
onClicked: updateIntrinsicsRequest()
|
||||
Layout.alignment: Qt.AlignCenter
|
||||
}
|
||||
standardButtons: Dialog.Close
|
||||
onAccepted: close()
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue