Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion friture.spec
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ if platform.system() == "Windows":
a = Analysis(['main.py'],
pathex=pathex,
binaries=[],
datas= [('friture/*.qml', '.' ), ('friture/playback/*.qml', 'playback' ), ('friture/*.js', '.' )],
datas= [('friture/*.qml', '.' ), ('friture/playback/*.qml', 'playback' ), ('friture/generators/*.qml', 'generators' ), ('friture/*.js', '.' )],
hiddenimports=[],
hookspath=["installer/pyinstaller-hooks"], # our custom hooks for python-sounddevice
runtime_hooks=[],
Expand Down
63 changes: 63 additions & 0 deletions friture/DelayEstimator.qml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import QtQuick 2.15
import QtQuick.Controls 2.15

Rectangle {
id: root
required property var viewModel
required property string fixedFont

SystemPalette { id: systemPalette; colorGroup: SystemPalette.Active }
color: systemPalette.window
anchors.fill: parent

Column {
spacing: 8
anchors.fill: parent
anchors.margins: 12

Row {
spacing: 8
Label {
text: qsTr("Delay:")
font.pointSize: 14
color: systemPalette.windowText
}
Label {
text: viewModel.delay
font.pointSize: 14
font.bold: true
color: systemPalette.windowText
}
}
Row {
spacing: 8
Label {
text: qsTr("Confidence:")
color: systemPalette.windowText
}
Label {
id: correlationLabel
text: viewModel.correlation
color: systemPalette.windowText
}
}
Row {
spacing: 8
Label {
text: qsTr("Polarity:")
color: systemPalette.windowText
}
Label {
text: viewModel.polarity
font.pointSize: 14
font.bold: true
color: systemPalette.windowText
}
}
Label {
text: viewModel.channel_info
wrapMode: Text.WordWrap
color: systemPalette.windowText
}
}
}
62 changes: 62 additions & 0 deletions friture/Generator.qml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
import QtQuick.Dialogs 1.3
import QtQml 2.15
import "./generators"

Rectangle {
id: generatorRoot
required property var viewModel
required property string fixedFont

SystemPalette { id: systemPalette; colorGroup: SystemPalette.Active }
color: systemPalette.window
anchors.fill: parent

ColumnLayout {
anchors.top: parent.top
anchors.left: parent.left
spacing: 12

ComboBox {
model: viewModel.generatorNames
currentIndex: viewModel.generatorIndex
onCurrentIndexChanged: viewModel.generatorIndex = currentIndex
}

Button {
id: startStopButton
text: viewModel.isPlaying ? qsTr("Stop") : qsTr("Start")
checkable: true
checked: viewModel.isPlaying
onCheckedChanged: viewModel.isPlaying = checked
icon.source: viewModel.isPlaying ? "qrc:/images-src/stop.svg" : "qrc:/images-src/start.svg"
}

SineSettings {
viewModel: generatorRoot.viewModel.sineGenerator
visible: generatorRoot.viewModel.generatorIndex === 0
}

WhiteSettings {
viewModel: generatorRoot.viewModel.whiteGenerator
visible: generatorRoot.viewModel.generatorIndex === 1
}

PinkSettings {
viewModel: generatorRoot.viewModel.pinkGenerator
visible: generatorRoot.viewModel.generatorIndex === 2
}

SweepSettings {
viewModel: generatorRoot.viewModel.sweepGenerator
visible: generatorRoot.viewModel.generatorIndex === 3
}

BurstSettings {
viewModel: generatorRoot.viewModel.burstGenerator
visible: generatorRoot.viewModel.generatorIndex === 4
}
}
}
94 changes: 38 additions & 56 deletions friture/HistPlot.qml
Original file line number Diff line number Diff line change
Expand Up @@ -3,71 +3,53 @@ import QtQuick.Window 2.2
import QtQuick.Layouts 1.15
import QtQuick.Shapes 1.15
import Friture 1.0
import "plotItemColors.js" as PlotItemColors

Item {
id: container
property var stateId
Plot {
required property var viewModel
required property string fixedFont

SystemPalette { id: systemPalette; colorGroup: SystemPalette.Active }
scopedata: viewModel

// delay the load of the Plot until stateId has been set
Loader {
id: loader
anchors.fill: parent
}

onStateIdChanged: {
console.log("stateId changed: " + stateId)
loader.sourceComponent = plotComponent
}
Repeater {
model: scopedata.plot_items

Component {
id: plotComponent
PlotFilledCurve {
anchors.fill: parent
curve: modelData
}
}

Plot {
scopedata: Store.dock_states[container.stateId]
Item {
visible: scopedata.bar_labels_x_distance * parent.width > fontMetrics.boundingRect("100").height
anchors.fill: parent

Repeater {
model: scopedata.plot_items
FontMetrics {
id: fontMetrics
}

PlotFilledCurve {
anchors.fill: parent
curve: modelData
}
}
SystemPalette { id: systemPalette; colorGroup: SystemPalette.Active }

Repeater {
model: scopedata.barLabels

Item {
visible: scopedata.bar_labels_x_distance * parent.width > fontMetrics.boundingRect("100").height
anchors.fill: parent

FontMetrics {
id: fontMetrics
}

Repeater {
model: scopedata.barLabels

Item {
x: modelData.x * parent.width - barLabel.height / 2
y: Math.max(4, Math.min(modelData.y * parent.height + 4, parent.height - barLabel.width - 4))

// width vs. height: childrenRect doesn't take transformations into account.
// https://bugreports.qt-project.org/browse/QTBUG-38953
implicitWidth: barLabel.height
implicitHeight: barLabel.width

Text {
id: barLabel
text: modelData.unscaled_x
rotation: 270
transformOrigin: Item.Center
anchors.centerIn: parent
color: modelData.y * parent.parent.height + 4 > parent.parent.height - barLabel.width - 4 ? systemPalette.windowText : systemPalette.base
}
}
x: modelData.x * parent.width - barLabel.height / 2
y: Math.max(4, Math.min(modelData.y * parent.height + 4, parent.height - barLabel.width - 4))

// width vs. height: childrenRect doesn't take transformations into account.
// https://bugreports.qt-project.org/browse/QTBUG-38953
implicitWidth: barLabel.height
implicitHeight: barLabel.width

Text {
id: barLabel
text: modelData.unscaled_x
rotation: 270
transformOrigin: Item.Center
anchors.centerIn: parent
color: modelData.y * parent.parent.height + 4 > parent.parent.height - barLabel.width - 4 ? systemPalette.windowText : systemPalette.base
}
}
}
}
}
}
}
40 changes: 11 additions & 29 deletions friture/ImagePlot.qml
Original file line number Diff line number Diff line change
Expand Up @@ -3,37 +3,19 @@ import QtQuick.Window 2.2
import QtQuick.Layouts 1.15
import QtQuick.Shapes 1.15
import Friture 1.0
import "plotItemColors.js" as PlotItemColors

Item {
id: container
property var stateId
Plot {
required property var viewModel
required property string fixedFont

// delay the load of the Plot until stateId has been set
Loader {
id: loader
anchors.fill: parent
}

onStateIdChanged: {
console.log("stateId changed: " + stateId)
loader.sourceComponent = plotComponent
}

Component {
id: plotComponent

Plot {
scopedata: Store.dock_states[container.stateId]
scopedata: viewModel

Repeater {
model: scopedata.plot_items
Repeater {
model: scopedata.plot_items

SpectrogramItem {
anchors.fill: parent
curve: modelData
}
}
}
SpectrogramItem {
anchors.fill: parent
curve: modelData
}
}
}
}
2 changes: 1 addition & 1 deletion friture/Levels.qml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Rectangle {
property var stateId
property LevelViewModel level_view_model: Store.dock_states[stateId]

property var fixedFont
property string fixedFont

// parent here will be unset on exit
height: parent ? parent.height : 0
Expand Down
Loading