From 455ef1dddbb9bef639e083cb41ad3d4f5227e5d0 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Mon, 20 Apr 2026 15:32:25 +0200 Subject: [PATCH 01/13] Refactor ComboBox declarations to use EaElements.ComboBox --- .../Gui/Pages/RawData/Sidebar/Basic/Groups/Binning1D.qml | 4 ++-- .../Gui/Pages/RawData/Sidebar/Basic/Groups/Binning2D.qml | 4 ++-- .../Gui/Pages/RawData/Sidebar/Basic/Groups/Binning3D.qml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Groups/Binning1D.qml b/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Groups/Binning1D.qml index 950174f..d969764 100644 --- a/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Groups/Binning1D.qml +++ b/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Groups/Binning1D.qml @@ -32,7 +32,7 @@ Grid { text: qsTr('2θ bin size') } - ComboBox { + EaElements.ComboBox { id: twoThetaBinWidthIndexSelector1D // currentIndex: 2 // model: ['0.1°', '0.25°', '0.5°', '0.75°', '1°', '2°', '5°', '10°'] // default value should be 0.5 @@ -64,7 +64,7 @@ Grid { text: qsTr('γ bin size') } - ComboBox { + EaElements.ComboBox { id: gammaBinWidthIndexSelector1D //values for gamma_bin_width_1D // model: ['1°', '2°', '5°', '10°']// default value should be 1 diff --git a/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Groups/Binning2D.qml b/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Groups/Binning2D.qml index 64243c5..88a0ef7 100644 --- a/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Groups/Binning2D.qml +++ b/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Groups/Binning2D.qml @@ -34,7 +34,7 @@ Grid { text: qsTr('2θ bin size') } - ComboBox { + EaElements.ComboBox { id: twoThetaBinWidthIndexSelector2D //values for two_theta_bin_width_2D // currentIndex: 2 @@ -66,7 +66,7 @@ Grid { text: qsTr('γ bin size') } - ComboBox { + EaElements.ComboBox { id: gammaBinWidthIndexSelector2D //values for gamma_bin_width_2D // model: ['1°', '2°', '5°', '10°'] diff --git a/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Groups/Binning3D.qml b/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Groups/Binning3D.qml index a355b3c..c680aed 100644 --- a/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Groups/Binning3D.qml +++ b/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Groups/Binning3D.qml @@ -34,7 +34,7 @@ Grid { text: qsTr('2θ bin size') } - ComboBox { + EaElements.ComboBox { id: twoThetaBinWidthIndexSelector3D //values for two_theta_bin_width_3D // currentIndex: 2 @@ -66,7 +66,7 @@ Grid { text: qsTr('γ bin size') } - ComboBox { + EaElements.ComboBox { id: gammaBinWidthIndexSelector3D //values for gamma_bin_width_3D // model: ['1°', '2°', '5°', '10°'] From d6f61c4f744e92e64f1eb1ecea54cbaff19445b4 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Mon, 20 Apr 2026 15:33:06 +0200 Subject: [PATCH 02/13] Reorder QML resource file items --- src/TextureApp.qmlproject | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/TextureApp.qmlproject b/src/TextureApp.qmlproject index 994431c..ab47ae7 100644 --- a/src/TextureApp.qmlproject +++ b/src/TextureApp.qmlproject @@ -28,13 +28,13 @@ Project { // Include Module Definition Files (qmldir), as well as .ts and .qrc // from specified directory and its subdirectories Files { - filter: "qmldir;*.ts;*.qrc;*.html;*.png" directory: "EasyTextureApp" + filter: "qmldir;*.ts;*.qrc;*.html;*.png" recursive: true } Files { - filter: "qmldir;*.ts;*.qrc;*.html" directory: "../../EasyApp/src/EasyApp" + filter: "qmldir;*.ts;*.qrc;*.html" recursive: true } } From a3092a85d0b91cf5dc44052818673fd4e7052edb Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Mon, 20 Apr 2026 15:57:05 +0200 Subject: [PATCH 03/13] Refactor layout of the Corrections page --- .../Pages/Corrections/Sidebar/Basic/Layout.qml | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/EasyTextureApp/Gui/Pages/Corrections/Sidebar/Basic/Layout.qml b/src/EasyTextureApp/Gui/Pages/Corrections/Sidebar/Basic/Layout.qml index 85ace65..71e213b 100644 --- a/src/EasyTextureApp/Gui/Pages/Corrections/Sidebar/Basic/Layout.qml +++ b/src/EasyTextureApp/Gui/Pages/Corrections/Sidebar/Basic/Layout.qml @@ -14,44 +14,39 @@ import Gui.Globals as Globals EaComponents.SideBarColumn { EaElements.GroupBox { - //enabled: false title: qsTr('Voxel calibration using ?diamond? standard') icon: 'hammer' - collapsed: false Loader { source: 'Groups/VoxelCalibration.qml' } } EaElements.GroupBox { - //enabled: false title: qsTr('Background correction using empty can measurement') icon: 'hammer' - collapsed: false Loader { source: 'Groups/EmptyCorrection.qml' } } EaElements.GroupBox { - //enabled: false title: qsTr('Detector efficiency correction using vanadium standard') icon: 'hammer' - collapsed: false Loader { source: 'Groups/VanadiumCorrection.qml' } } - // Apply corrections button - Row { - spacing: EaStyle.Sizes.fontPixelSize + EaElements.GroupBox { + collapsible: false + EaElements.SideBarButton { - id: applyCorrectionsButton text: qsTr('Apply selected corrections') wide: true - fontIcon: 'download' + fontIcon: 'check-circle' + onClicked: { console.debug(`In ${this}: Apply corrections clicked.`) } } } + } From 9f8e2337d3ff5a39ff783aa15c4a3692d29a02af Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Mon, 20 Apr 2026 15:59:17 +0200 Subject: [PATCH 04/13] Remove unused example projects from Project.qml --- .../Backends/MockQml/Project.qml | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/src/EasyTextureApp/Backends/MockQml/Project.qml b/src/EasyTextureApp/Backends/MockQml/Project.qml index 85fd8df..6588c56 100644 --- a/src/EasyTextureApp/Backends/MockQml/Project.qml +++ b/src/EasyTextureApp/Backends/MockQml/Project.qml @@ -33,26 +33,6 @@ QtObject { 'description': 'neutron, powder, simulation, POWTEX@MLZ', 'name': 'Powder-Sample (POWTEX)', 'path': '/Examples/Powder-sample/powder.json' - }, - { - 'description': 'neutrons, powder, constant wavelength, D20@ILL', - 'name': 'Co2SiO4 (D20)', - 'path': '/Examples/Co2SiO4_D20@ILL/project.cif' - }, - { - 'description': 'neutrons, powder, constant wavelength, G41@LLB', - 'name': 'Dy3Al5O12 (G41)', - 'path': '/Examples/Dy3Al5O12_G41@LLB/project.cif' - }, - { - 'description': 'neutrons, powder, constant wavelength, D1A@ILL', - 'name': 'PbSO4 (D1A)', - 'path': '/Examples/PbSO4_D1A@ILL/project.cif' - }, - { - 'description': 'neutrons, powder, constant wavelength, 3T2@LLB', - 'name': 'LaMnO3 (3T2)', - 'path': '/Examples/LaMnO3_3T2@LLB/project.cif' } ] From b2ce3d3d423124a24520dc4f4148dcb5737401ab Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Tue, 21 Apr 2026 08:45:08 +0200 Subject: [PATCH 05/13] Refactor TwoThetaSlider3D layout for improved organization --- .../Sidebar/Basic/Groups/TwoThetaSlider3D.qml | 129 ++++++++---------- 1 file changed, 56 insertions(+), 73 deletions(-) diff --git a/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Groups/TwoThetaSlider3D.qml b/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Groups/TwoThetaSlider3D.qml index ea49fb6..9f0d453 100644 --- a/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Groups/TwoThetaSlider3D.qml +++ b/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Groups/TwoThetaSlider3D.qml @@ -12,90 +12,73 @@ import EasyApp.Gui.Elements as EaElements import Gui.Globals as Globals -Grid { - rows: 2 - columnSpacing: EaStyle.Sizes.fontPixelSize - rowSpacing: EaStyle.Sizes.fontPixelSize * 0.5 - property alias sliderValue3D: slider.value - // Location - Row { - Grid { - readonly property int commonSpacing: EaStyle.Sizes.fontPixelSize * 1.5 - columns: 2 - rowSpacing: 10 - } - } +Row { + width: EaStyle.Sizes.sideBarContentWidth + spacing: EaStyle.Sizes.fontPixelSize + // Left label + EaElements.Label { + text: slider.from.toFixed(2) + '°' + } - Row { - id: slideRow - + // Slider + EaElements.Slider { + id: slider width: EaStyle.Sizes.sideBarContentWidth - height: 50 - spacing: 10 - - EaElements.Label { - id: sliderFromLabel - text: slider.from.toFixed(2) + '°' + - EaStyle.Sizes.fontPixelSize * 0.5 - 100 + height: parent.height + from: Globals.BackendWrapper.rawDataMinTwoThetaCenter3D + to: Globals.BackendWrapper.rawDataMaxTwoThetaCenter3D + stepSize: Globals.BackendWrapper.rawDataTwoThetaBinWidth3D + toolTipText: slider.value + '°' + // updates slider value only on release + live: false + // live update of slider tooltip value + onPositionChanged: { + let rawToolTipValue = from + visualPosition * (to - from) + let toolTipValue = from + Math.round((rawToolTipValue - from) / stepSize) * stepSize + toolTipText = toolTipValue.toString() + '°' } - // Slider - EaElements.Slider { - id: slider - width: EaStyle.Sizes.sideBarContentWidth - - EaStyle.Sizes.fontPixelSize * 0.5 - 100 - height: parent.height - from: Globals.BackendWrapper.rawDataMinTwoThetaCenter3D - to: Globals.BackendWrapper.rawDataMaxTwoThetaCenter3D - stepSize: Globals.BackendWrapper.rawDataTwoThetaBinWidth3D - toolTipText: slider.value + '°' - // updates slider value only on release - live: false - // live update of slider tooltip value - onPositionChanged: { - let rawToolTipValue = from + visualPosition * (to - from) - let toolTipValue = from + Math.round((rawToolTipValue - from) / stepSize) * stepSize - toolTipText = toolTipValue.toString() + '°' - } - - onValueChanged: { - Globals.BackendWrapper.rawDataTwoThetaSliderValue3D = slider.value.toFixed(2) - Globals.BackendWrapper.rawDataTwoThetaSliderValueSync = Globals.BackendWrapper.rawDataTwoThetaSliderValue3D - - if (Globals.BackendWrapper.rawDataResetTwoThetaSlider) { - // Makes sure not to update the slider while the javascript calculation is ongoing - // (on bin two theta width change). The slider will be updated on its own in as - // a result of that calculation. - if (Globals.BackendWrapper.rawDataRunJavaScriptIsOff3D) { - Globals.BackendWrapper.rawDataTwoThetaSliderIndex3D = Globals.BackendWrapper.rawDataGetTwoThetaSliderIndex3D() - Globals.BackendWrapper.rawDataTwoThetaSliderIndexSync = Globals.BackendWrapper.rawDataTwoThetaSliderIndex3D - // makes sure to update slider data only then when the object has already created a dictionary - // with data. Blocks warning on the launch of the interface, when onValueChanged signal is emitted - // due to property binding without the actual data have been loaded and changed. - if (Object.keys(Globals.References.pages.rawData.mainArea.tabSurfacePlot3d.plotData).length > 0) { - Globals.BackendWrapper.rawDataUpdateSliderPatchData3D(Globals.BackendWrapper.rawDataTwoThetaSliderIndex3D) - } + onValueChanged: { + Globals.BackendWrapper.rawDataTwoThetaSliderValue3D = slider.value.toFixed(2) + Globals.BackendWrapper.rawDataTwoThetaSliderValueSync = Globals.BackendWrapper.rawDataTwoThetaSliderValue3D + + if (Globals.BackendWrapper.rawDataResetTwoThetaSlider) { + // Makes sure not to update the slider while the javascript calculation is ongoing + // (on bin two theta width change). The slider will be updated on its own in as + // a result of that calculation. + if (Globals.BackendWrapper.rawDataRunJavaScriptIsOff3D) { + Globals.BackendWrapper.rawDataTwoThetaSliderIndex3D = Globals.BackendWrapper.rawDataGetTwoThetaSliderIndex3D() + Globals.BackendWrapper.rawDataTwoThetaSliderIndexSync = Globals.BackendWrapper.rawDataTwoThetaSliderIndex3D + // makes sure to update slider data only then when the object has already created a dictionary + // with data. Blocks warning on the launch of the interface, when onValueChanged signal is emitted + // due to property binding without the actual data have been loaded and changed. + if (Object.keys(Globals.References.pages.rawData.mainArea.tabSurfacePlot3d.plotData).length > 0) { + Globals.BackendWrapper.rawDataUpdateSliderPatchData3D(Globals.BackendWrapper.rawDataTwoThetaSliderIndex3D) } + } - if (Globals.BackendWrapper.rawDataCalculateViewsAtOnce) { - Globals.BackendWrapper.rawDataTwoThetaSliderValue1D = slider.value.toFixed(2) - Globals.References.pages.rawData.sidebar.basic.groups.binning1d.twoThetaSlider.value = slider.value.toFixed(2) - Globals.BackendWrapper.rawDataTwoThetaSliderValue2D = slider.value.toFixed(2) - Globals.References.pages.rawData.sidebar.basic.groups.binning2d.twoThetaSlider.value = slider.value.toFixed(2) - console.debug(`3D slider moved to ${Globals.BackendWrapper.rawDataTwoThetaSliderValueSync} degrees.`) - } else { - console.debug(`rawDataTwoThetaSliderValue3D was set to ${Globals.BackendWrapper.rawDataTwoThetaSliderValue3D} degrees.`) - } + if (Globals.BackendWrapper.rawDataCalculateViewsAtOnce) { + Globals.BackendWrapper.rawDataTwoThetaSliderValue1D = slider.value.toFixed(2) + Globals.References.pages.rawData.sidebar.basic.groups.binning1d.twoThetaSlider.value = slider.value.toFixed(2) + Globals.BackendWrapper.rawDataTwoThetaSliderValue2D = slider.value.toFixed(2) + Globals.References.pages.rawData.sidebar.basic.groups.binning2d.twoThetaSlider.value = slider.value.toFixed(2) + console.debug(`3D slider moved to ${Globals.BackendWrapper.rawDataTwoThetaSliderValueSync} degrees.`) + } else { + console.debug(`rawDataTwoThetaSliderValue3D was set to ${Globals.BackendWrapper.rawDataTwoThetaSliderValue3D} degrees.`) } } - - Component.onCompleted: Globals.References.pages.rawData.sidebar.basic.groups.binning3d.twoThetaSlider = slider } - EaElements.Label { - id: sliderToLabel - text: slider.to.toFixed(2) + '°' - } + Component.onCompleted: Globals.References.pages.rawData.sidebar.basic.groups.binning3d.twoThetaSlider = slider } + + + // Right label + EaElements.Label { + text: slider.to.toFixed(2) + '°' + } + } From 17be17ac55deabcace76fade65ed439d411c91b2 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Tue, 21 Apr 2026 09:06:16 +0200 Subject: [PATCH 06/13] Refactor Binning3D layout for improved organization --- .../Sidebar/Basic/Groups/Binning3D.qml | 118 ++++++++---------- 1 file changed, 55 insertions(+), 63 deletions(-) diff --git a/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Groups/Binning3D.qml b/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Groups/Binning3D.qml index c680aed..9e29a92 100644 --- a/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Groups/Binning3D.qml +++ b/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Groups/Binning3D.qml @@ -12,76 +12,68 @@ import EasyApp.Gui.Elements as EaElements import Gui.Globals as Globals -Grid { - rows: 1 - columnSpacing: EaStyle.Sizes.fontPixelSize - //rowSpacing: EaStyle.Sizes.fontPixelSize * 0.5 - - // Location - Row { - Grid { - columns: 2 - columnSpacing: EaStyle.Sizes.fontPixelSize - - Column { - width: 1/2 * EaStyle.Sizes.sideBarContentWidth - - Row { - spacing: EaStyle.Sizes.fontPixelSize - - EaElements.Label { - enabled: true - text: qsTr('2θ bin size') - } - - EaElements.ComboBox { - id: twoThetaBinWidthIndexSelector3D - //values for two_theta_bin_width_3D - // currentIndex: 2 - // model: ['0.1°', '0.25°', '0.5°', '0.75°', '1°', '2°', '5°', '10°'] - model: ['0.5°', '1°'] - currentIndex: Globals.BackendWrapper.rawDataTwoThetaBinWidthIndex3D - - onCurrentIndexChanged: { - Globals.BackendWrapper.rawDataTwoThetaBinWidthIndex3D = currentIndex - Globals.BackendWrapper.rawDataUpdateTwoThetaSliderData3D(currentIndex) - if (Globals.BackendWrapper.rawDataResetTwoThetaSlider) { - Globals.References.pages.rawData.sidebar.basic.groups.binning3d.twoThetaSlider.value = Globals.BackendWrapper.rawDataMinTwoThetaCenter3D - } - } - - Component.onCompleted: Globals.References.pages.rawData.sidebar.basic.groups.binning3d.twoThetaBinWidthIndex = twoThetaBinWidthIndexSelector3D - } - } - } +Row { + property int labelWidth: EaStyle.Sizes.fontPixelSize * 5 + property int comboboxWidth: (EaStyle.Sizes.sideBarContentWidth - 2*labelWidth - 3*spacing) / 2 + + + spacing: EaStyle.Sizes.fontPixelSize - Column { - width: 1/2 * EaStyle.Sizes.sideBarContentWidth - Row { - spacing: EaStyle.Sizes.fontPixelSize + EaElements.Label { + width: labelWidth + anchors.verticalCenter: parent.verticalCenter + horizontalAlignment: Text.AlignRight + + text: qsTr('2θ bin size') + } - EaElements.Label { - enabled: true - text: qsTr('γ bin size') - } + EaElements.ComboBox { + id: twoThetaBinWidthIndexSelector3D - EaElements.ComboBox { - id: gammaBinWidthIndexSelector3D - //values for gamma_bin_width_3D - // model: ['1°', '2°', '5°', '10°'] - model: ['1°', '2°'] - currentIndex: Globals.BackendWrapper.rawDataGammaBinWidthIndex3D + width: comboboxWidth - onCurrentIndexChanged: { - Globals.BackendWrapper.rawDataGammaBinWidthIndex3D = currentIndex - Globals.BackendWrapper.rawDataUpdateGammaBinWidth3D(currentIndex) - } + //values for two_theta_bin_width_3D + // currentIndex: 2 + // model: ['0.1°', '0.25°', '0.5°', '0.75°', '1°', '2°', '5°', '10°'] + model: ['0.5°', '1°'] + currentIndex: Globals.BackendWrapper.rawDataTwoThetaBinWidthIndex3D - Component.onCompleted: Globals.References.pages.rawData.sidebar.basic.groups.binning3d.gammaBinWidthIndex = gammaBinWidthIndexSelector3D - } - } + onCurrentIndexChanged: { + Globals.BackendWrapper.rawDataTwoThetaBinWidthIndex3D = currentIndex + Globals.BackendWrapper.rawDataUpdateTwoThetaSliderData3D(currentIndex) + if (Globals.BackendWrapper.rawDataResetTwoThetaSlider) { + Globals.References.pages.rawData.sidebar.basic.groups.binning3d.twoThetaSlider.value = Globals.BackendWrapper.rawDataMinTwoThetaCenter3D } } + + Component.onCompleted: Globals.References.pages.rawData.sidebar.basic.groups.binning3d.twoThetaBinWidthIndex = twoThetaBinWidthIndexSelector3D + } + + + EaElements.Label { + width: labelWidth + anchors.verticalCenter: parent.verticalCenter + horizontalAlignment: Text.AlignRight + + text: qsTr('γ bin size') + } + + EaElements.ComboBox { + id: gammaBinWidthIndexSelector3D + + width: comboboxWidth + + //values for gamma_bin_width_3D + // model: ['1°', '2°', '5°', '10°'] + model: ['1°', '2°'] + currentIndex: Globals.BackendWrapper.rawDataGammaBinWidthIndex3D + + onCurrentIndexChanged: { + Globals.BackendWrapper.rawDataGammaBinWidthIndex3D = currentIndex + Globals.BackendWrapper.rawDataUpdateGammaBinWidth3D(currentIndex) + } + + Component.onCompleted: Globals.References.pages.rawData.sidebar.basic.groups.binning3d.gammaBinWidthIndex = gammaBinWidthIndexSelector3D } } From 492d263c3e31a19c74b108a17790cf96f65f8e69 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Tue, 21 Apr 2026 09:16:57 +0200 Subject: [PATCH 07/13] Refactor layout of EmptyCorrection, VanadiumCorrection, and VoxelCalibration for improved organization --- .../Sidebar/Basic/Groups/EmptyCorrection.qml | 62 +++++++--------- .../Basic/Groups/VanadiumCorrection.qml | 62 +++++++--------- .../Sidebar/Basic/Groups/VoxelCalibration.qml | 71 ++++++++----------- 3 files changed, 80 insertions(+), 115 deletions(-) diff --git a/src/EasyTextureApp/Gui/Pages/Corrections/Sidebar/Basic/Groups/EmptyCorrection.qml b/src/EasyTextureApp/Gui/Pages/Corrections/Sidebar/Basic/Groups/EmptyCorrection.qml index df513c1..896d8dd 100644 --- a/src/EasyTextureApp/Gui/Pages/Corrections/Sidebar/Basic/Groups/EmptyCorrection.qml +++ b/src/EasyTextureApp/Gui/Pages/Corrections/Sidebar/Basic/Groups/EmptyCorrection.qml @@ -13,15 +13,16 @@ import EasyApp.Gui.Components as EaComponents import Gui.Globals as Globals -Grid { - rows: 2 - rowSpacing: 15 + +Column { + property int radioButtonWidth: (EaStyle.Sizes.sideBarContentWidth - spacing) / 2 + + spacing: EaStyle.Sizes.fontPixelSize / 2 Row { EaElements.RadioButton { - id: noCalibration text: qsTr('No background correction') - width: EaStyle.Sizes.fontPixelSize * 15 + width: radioButtonWidth checked: true onClicked: { @@ -30,7 +31,6 @@ Grid { } EaElements.RadioButton { - id: calibration text: qsTr('Use empty can measurement') width: EaStyle.Sizes.fontPixelSize * 15 @@ -40,45 +40,35 @@ Grid { } } - // Location - Row { - spacing: EaStyle.Sizes.fontPixelSize * 0.5 - - EaElements.Label { - id: locationLabel - text: qsTr('File') - enabled: Globals.BackendWrapper.correctionsLoadEmpty - anchors.verticalCenter: parent.verticalCenter - } - EaElements.TextField { - id: reportLocationField - placeholderText: qsTr('Enter empty can measurement filename here') - enabled: Globals.BackendWrapper.correctionsLoadEmpty + EaElements.TextField { + placeholderText: qsTr('Enter empty can measurement filename here') + enabled: Globals.BackendWrapper.correctionsLoadEmpty - width: EaStyle.Sizes.sideBarContentWidth - locationLabel.width - EaStyle.Sizes.fontPixelSize * 0.5 - rightPadding: chooseButton.width - horizontalAlignment: TextInput.AlignLeft + width: EaStyle.Sizes.sideBarContentWidth + rightPadding: chooseButton.width + horizontalAlignment: TextInput.AlignLeft - EaElements.ToolButton { - id: chooseButton + EaElements.ToolButton { + id: chooseButton - anchors.right: parent.right + anchors.right: parent.right - showBackground: false - fontIcon: 'folder-open' - ToolTip.text: qsTr('Choose empty can measurement file here') + showBackground: false + fontIcon: 'folder-open' + ToolTip.text: qsTr('Choose empty can measurement file here') - onClicked: { - console.debug(`Clicking load empty can measurement file button ::: ${this}`) - Globals.References.pages.corrections.sidebar.basic.popups.loadEmptyMeasurementFile.open() - } + onClicked: { + console.debug(`Clicking load empty can measurement file button ::: ${this}`) + Globals.References.pages.corrections.sidebar.basic.popups.loadEmptyMeasurementFile.open() + } - Loader { - source: '../Popups/LoadEmptyMeasurementFile.qml' - } + Loader { + source: '../Popups/LoadEmptyMeasurementFile.qml' } } } } + + diff --git a/src/EasyTextureApp/Gui/Pages/Corrections/Sidebar/Basic/Groups/VanadiumCorrection.qml b/src/EasyTextureApp/Gui/Pages/Corrections/Sidebar/Basic/Groups/VanadiumCorrection.qml index 623437a..29a4880 100644 --- a/src/EasyTextureApp/Gui/Pages/Corrections/Sidebar/Basic/Groups/VanadiumCorrection.qml +++ b/src/EasyTextureApp/Gui/Pages/Corrections/Sidebar/Basic/Groups/VanadiumCorrection.qml @@ -13,15 +13,15 @@ import EasyApp.Gui.Components as EaComponents import Gui.Globals as Globals -Grid { - rows: 2 - rowSpacing: 15 +Column { + property int radioButtonWidth: (EaStyle.Sizes.sideBarContentWidth - spacing) / 2 + + spacing: EaStyle.Sizes.fontPixelSize / 2 Row { EaElements.RadioButton { - id: noCalibration text: qsTr('No vanadium correction') - width: EaStyle.Sizes.fontPixelSize * 15 + width: radioButtonWidth checked: true onClicked: { @@ -32,7 +32,7 @@ Grid { EaElements.RadioButton { id: calibration text: qsTr('Use vanadium measurement') - width: EaStyle.Sizes.fontPixelSize * 15 + width: radioButtonWidth onClicked: { Globals.BackendWrapper.correctionsLoadVanadium = true @@ -40,45 +40,35 @@ Grid { } } - // Location - Row { - spacing: EaStyle.Sizes.fontPixelSize * 0.5 - - EaElements.Label { - id: locationLabel - text: qsTr('File') - enabled: Globals.BackendWrapper.correctionsLoadVanadium - anchors.verticalCenter: parent.verticalCenter - } - EaElements.TextField { - id: reportLocationField - placeholderText: qsTr('Enter vanadium measurement filename here') - enabled: Globals.BackendWrapper.correctionsLoadVanadium + EaElements.TextField { + id: reportLocationField + placeholderText: qsTr('Enter vanadium measurement filename here') + enabled: Globals.BackendWrapper.correctionsLoadVanadium - width: EaStyle.Sizes.sideBarContentWidth - locationLabel.width - EaStyle.Sizes.fontPixelSize * 0.5 - rightPadding: chooseButton.width - horizontalAlignment: TextInput.AlignLeft + width: EaStyle.Sizes.sideBarContentWidth + rightPadding: chooseButton.width + horizontalAlignment: TextInput.AlignLeft - EaElements.ToolButton { - id: chooseButton + EaElements.ToolButton { + id: chooseButton - anchors.right: parent.right + anchors.right: parent.right - showBackground: false - fontIcon: 'folder-open' - ToolTip.text: qsTr('Choose vanadium measurement file here') + showBackground: false + fontIcon: 'folder-open' + ToolTip.text: qsTr('Choose vanadium measurement file here') - onClicked: { - console.debug(`Clicking load vanadium measurement file button ::: ${this}`) - Globals.References.pages.corrections.sidebar.basic.popups.loadVanadiumMeasurementFile.open() - } + onClicked: { + console.debug(`Clicking load vanadium measurement file button ::: ${this}`) + Globals.References.pages.corrections.sidebar.basic.popups.loadVanadiumMeasurementFile.open() + } - Loader { - source: '../Popups/LoadVanadiumMeasurementFile.qml' - } + Loader { + source: '../Popups/LoadVanadiumMeasurementFile.qml' } } } + } diff --git a/src/EasyTextureApp/Gui/Pages/Corrections/Sidebar/Basic/Groups/VoxelCalibration.qml b/src/EasyTextureApp/Gui/Pages/Corrections/Sidebar/Basic/Groups/VoxelCalibration.qml index bfaece0..95d465c 100644 --- a/src/EasyTextureApp/Gui/Pages/Corrections/Sidebar/Basic/Groups/VoxelCalibration.qml +++ b/src/EasyTextureApp/Gui/Pages/Corrections/Sidebar/Basic/Groups/VoxelCalibration.qml @@ -13,72 +13,57 @@ import EasyApp.Gui.Components as EaComponents import Gui.Globals as Globals -Grid { - rows: 2 - rowSpacing: 15 +Column { + property int radioButtonWidth: (EaStyle.Sizes.sideBarContentWidth - spacing) / 2 + + spacing: EaStyle.Sizes.fontPixelSize / 2 Row { EaElements.RadioButton { - id: noCalibration text: qsTr('No voxel calibration') - width: EaStyle.Sizes.fontPixelSize * 15 + width: radioButtonWidth checked: true - onClicked: { - Globals.BackendWrapper.correctionsLoadCalibration = false - } + onClicked: Globals.BackendWrapper.correctionsLoadCalibration = false } EaElements.RadioButton { - id: calibration text: qsTr('Use voxel calibration') - width: EaStyle.Sizes.fontPixelSize * 15 + width: radioButtonWidth - onClicked: { - Globals.BackendWrapper.correctionsLoadCalibration = true - } + onClicked: Globals.BackendWrapper.correctionsLoadCalibration = true } } - // Location - Row { - spacing: EaStyle.Sizes.fontPixelSize * 0.5 - - EaElements.Label { - id: locationLabel - text: qsTr('File') - enabled: Globals.BackendWrapper.correctionsLoadCalibration - anchors.verticalCenter: parent.verticalCenter - } - EaElements.TextField { - id: reportLocationField - placeholderText: qsTr('Enter calibration filename here') - enabled: Globals.BackendWrapper.correctionsLoadCalibration + EaElements.TextField { + placeholderText: qsTr('Enter calibration filename here') + enabled: Globals.BackendWrapper.correctionsLoadCalibration - width: EaStyle.Sizes.sideBarContentWidth - locationLabel.width - EaStyle.Sizes.fontPixelSize * 0.5 - rightPadding: chooseButton.width - horizontalAlignment: TextInput.AlignLeft + width: EaStyle.Sizes.sideBarContentWidth + rightPadding: chooseButton.width + horizontalAlignment: TextInput.AlignLeft - EaElements.ToolButton { - id: chooseButton + EaElements.ToolButton { + id: chooseButton - anchors.right: parent.right + anchors.right: parent.right - showBackground: false - fontIcon: 'folder-open' - ToolTip.text: qsTr('Choose calibration file here') + showBackground: false + fontIcon: 'folder-open' + ToolTip.text: qsTr('Choose calibration file here') - onClicked: { - console.debug(`Clicking load calibration file button ::: ${this}`) - Globals.References.pages.corrections.sidebar.basic.popups.loadVortexCalibrationFile.open() - } + onClicked: { + console.debug(`Clicking load calibration file button ::: ${this}`) + Globals.References.pages.corrections.sidebar.basic.popups.loadVortexCalibrationFile.open() + } - Loader { - source: '../Popups/LoadVortexCalibrationFile.qml' - } + Loader { + source: '../Popups/LoadVortexCalibrationFile.qml' } } } } + + From c8fd45457eba81859177fd88fa33d6ab847f1eff Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Tue, 21 Apr 2026 09:25:07 +0200 Subject: [PATCH 08/13] Refactor layout of GammaSliceSelector and TwoThetaSlider for improved organization --- .../Basic/Groups/GammaSliceSelector.qml | 139 +++++++++--------- .../Sidebar/Basic/Groups/TwoThetaSlider.qml | 13 +- .../Pages/Explore/Sidebar/Basic/Layout.qml | 16 +- 3 files changed, 79 insertions(+), 89 deletions(-) diff --git a/src/EasyTextureApp/Gui/Pages/Explore/Sidebar/Basic/Groups/GammaSliceSelector.qml b/src/EasyTextureApp/Gui/Pages/Explore/Sidebar/Basic/Groups/GammaSliceSelector.qml index 6d9b269..c5b0c6e 100644 --- a/src/EasyTextureApp/Gui/Pages/Explore/Sidebar/Basic/Groups/GammaSliceSelector.qml +++ b/src/EasyTextureApp/Gui/Pages/Explore/Sidebar/Basic/Groups/GammaSliceSelector.qml @@ -11,78 +11,75 @@ import EasyApp.Gui.Components as EaComponents import Gui.Globals as Globals + Grid { - rows: 2 - rowSpacing: 30 - - Row { - Grid { - columns: 4 - columnSpacing: EaStyle.Sizes.fontPixelSize - - EaElements.RadioButton { - id: oneDegreeButton - topPadding: 0 - checked: true - text: '1°' - - onClicked: { - Globals.BackendWrapper.exploreGammaBinWidth = 1.0 - //Globals.References.pages.results.sidebar.basic.groups.slicer.value = 1 - console.debug(`In ${this}: gamma bin width 1 selected`) - } - - } - - EaElements.RadioButton { - id: twoDegreeButton - topPadding: 0 - text: '2°' - - onClicked: { - Globals.BackendWrapper.exploreGammaBinWidth = 2.0 - //Globals.References.pages.results.sidebar.basic.groups.slicer.value = 1 - console.debug(`In ${this}: gamma bin width 2 selected`) - } - - } - - EaElements.RadioButton { - id: fiveDegreeButton - topPadding: 0 - text: '5°' - enabled: false - contentItem: Text { - text: fiveDegreeButton.text - color: 'grey' - leftPadding: fiveDegreeButton.indicator.width + fiveDegreeButton.spacing - } - - onClicked: { - Globals.BackendWrapper.exploreGammaBinWidth = 5.0 - //Globals.References.pages.results.sidebar.basic.groups.slicer.value = 1 - console.debug(`In ${this}: gamma bin width 5 selected`) - } - - } - - EaElements.RadioButton { - id: tenDegreeButton - topPadding: 0 - text: '10°' - enabled: false - contentItem: Text { - text: tenDegreeButton.text - color: 'grey' - leftPadding: tenDegreeButton.indicator.width + tenDegreeButton.spacing - } - - onClicked: { - Globals.BackendWrapper.exploreGammaBinWidth = 10.0 - //Globals.References.pages.results.sidebar.basic.groups.slicer.value = 1 - console.debug(`In ${this}: gamma bin width 10 selected`) - } - } + columns: 4 + columnSpacing: EaStyle.Sizes.fontPixelSize + + EaElements.RadioButton { + id: oneDegreeButton + + checked: true + text: '1°' + + onClicked: { + Globals.BackendWrapper.exploreGammaBinWidth = 1.0 + //Globals.References.pages.results.sidebar.basic.groups.slicer.value = 1 + console.debug(`In ${this}: gamma bin width 1 selected`) + } + + } + + EaElements.RadioButton { + id: twoDegreeButton + + text: '2°' + + onClicked: { + Globals.BackendWrapper.exploreGammaBinWidth = 2.0 + //Globals.References.pages.results.sidebar.basic.groups.slicer.value = 1 + console.debug(`In ${this}: gamma bin width 2 selected`) + } + + } + + EaElements.RadioButton { + id: fiveDegreeButton + + enabled: false + text: '5°' + + contentItem: Text { + text: fiveDegreeButton.text + color: 'grey' + leftPadding: fiveDegreeButton.indicator.width + fiveDegreeButton.spacing + } + + onClicked: { + Globals.BackendWrapper.exploreGammaBinWidth = 5.0 + //Globals.References.pages.results.sidebar.basic.groups.slicer.value = 1 + console.debug(`In ${this}: gamma bin width 5 selected`) + } + + } + + EaElements.RadioButton { + id: tenDegreeButton + + enabled: false + text: '10°' + + contentItem: Text { + text: tenDegreeButton.text + color: 'grey' + leftPadding: tenDegreeButton.indicator.width + tenDegreeButton.spacing + } + + onClicked: { + Globals.BackendWrapper.exploreGammaBinWidth = 10.0 + //Globals.References.pages.results.sidebar.basic.groups.slicer.value = 1 + console.debug(`In ${this}: gamma bin width 10 selected`) } } } + diff --git a/src/EasyTextureApp/Gui/Pages/Explore/Sidebar/Basic/Groups/TwoThetaSlider.qml b/src/EasyTextureApp/Gui/Pages/Explore/Sidebar/Basic/Groups/TwoThetaSlider.qml index 8315a93..679d802 100644 --- a/src/EasyTextureApp/Gui/Pages/Explore/Sidebar/Basic/Groups/TwoThetaSlider.qml +++ b/src/EasyTextureApp/Gui/Pages/Explore/Sidebar/Basic/Groups/TwoThetaSlider.qml @@ -13,17 +13,12 @@ import Gui.Globals as Globals Row { - id: slideRow - width: EaStyle.Sizes.sideBarContentWidth - height: 50 //parent.height - - spacing: 10 - + spacing: EaStyle.Sizes.fontPixelSize + // Left label EaElements.Label { - id: sliderFromLabel - text: slider.from.toFixed(2) + '°' + text: slider.from.toFixed(2) + '°' } // Slider @@ -50,8 +45,8 @@ Row { } } + // Right label EaElements.Label { - id: sliderToLabel text: slider.to.toFixed(2) + '°' } diff --git a/src/EasyTextureApp/Gui/Pages/Explore/Sidebar/Basic/Layout.qml b/src/EasyTextureApp/Gui/Pages/Explore/Sidebar/Basic/Layout.qml index 8691a5d..50689fd 100644 --- a/src/EasyTextureApp/Gui/Pages/Explore/Sidebar/Basic/Layout.qml +++ b/src/EasyTextureApp/Gui/Pages/Explore/Sidebar/Basic/Layout.qml @@ -13,14 +13,6 @@ import Gui.Globals as Globals EaComponents.SideBarColumn { - EaElements.GroupBox { - title: qsTr('Select 2θ ring') - icon: 'microscope' - collapsible: false - - Loader { source: 'Groups/TwoThetaSlider.qml' } - } - EaElements.GroupBox { title: qsTr('Statistics') icon: 'microscope' @@ -32,9 +24,15 @@ EaComponents.SideBarColumn { EaElements.GroupBox { title: qsTr('Select γ-slice width') icon: 'arrows-alt' - collapsible: false Loader { source: 'Groups/GammaSliceSelector.qml' } } + EaElements.GroupBox { + title: qsTr('Select 2θ ring') + icon: 'microscope' + + Loader { source: 'Groups/TwoThetaSlider.qml' } + } + } From e5aa447482af642b6717ffe91a2e19401b584e80 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Tue, 21 Apr 2026 10:35:38 +0200 Subject: [PATCH 09/13] Refactor layout of DataSlicer and ExportData for improved organization --- .../Sidebar/Basic/Groups/DataSlicer.qml | 32 +++++-------------- .../Sidebar/Basic/Groups/ExportData.qml | 4 +++ .../Pages/Results/Sidebar/Basic/Layout.qml | 4 +-- 3 files changed, 13 insertions(+), 27 deletions(-) diff --git a/src/EasyTextureApp/Gui/Pages/Results/Sidebar/Basic/Groups/DataSlicer.qml b/src/EasyTextureApp/Gui/Pages/Results/Sidebar/Basic/Groups/DataSlicer.qml index 658a89a..65f583f 100644 --- a/src/EasyTextureApp/Gui/Pages/Results/Sidebar/Basic/Groups/DataSlicer.qml +++ b/src/EasyTextureApp/Gui/Pages/Results/Sidebar/Basic/Groups/DataSlicer.qml @@ -12,37 +12,21 @@ import EasyApp.Gui.Components as EaComponents import Gui.Globals as Globals -Grid{ - rows: 2 - rowSpacing: 20 - property alias sliderItem: slider +Column { + spacing: EaStyle.Sizes.fontPixelSize - Row { - - Grid { - columns: 2 - readonly property int commonSpacing: EaStyle.Sizes.fontPixelSize * 1.5 - - EaElements.Label { - text: qsTr('γ-Slice Range: ') - } - - EaElements.Label { - text: Globals.BackendWrapper.getGammaSliceRange(Globals.BackendWrapper.resultsRingIndexSliderValue) - } - } + EaElements.Label { + text: qsTr('γ-Slice Range: ') + Globals.BackendWrapper.getGammaSliceRange(Globals.BackendWrapper.resultsRingIndexSliderValue) } - Row { - id: slideRow + Row { width: EaStyle.Sizes.sideBarContentWidth - height: 50 //parent.height - spacing: 10 + spacing: EaStyle.Sizes.fontPixelSize + // Left label EaElements.Label { - id: sliderFromLabel text: slider.from } @@ -73,8 +57,8 @@ Grid{ Component.onCompleted: Globals.References.pages.results.sidebar.basic.groups.slicer = slider } + // Right label EaElements.Label { - id: sliderToLabel text: slider.to } } diff --git a/src/EasyTextureApp/Gui/Pages/Results/Sidebar/Basic/Groups/ExportData.qml b/src/EasyTextureApp/Gui/Pages/Results/Sidebar/Basic/Groups/ExportData.qml index bed739a..b9f770d 100644 --- a/src/EasyTextureApp/Gui/Pages/Results/Sidebar/Basic/Groups/ExportData.qml +++ b/src/EasyTextureApp/Gui/Pages/Results/Sidebar/Basic/Groups/ExportData.qml @@ -15,19 +15,23 @@ import Gui.Globals as Globals Column { spacing: EaStyle.Sizes.fontPixelSize + Row { EaElements.CheckBox { id: dSpacingCheckBox + text: 'd-spacing' } EaElements.CheckBox { id: twoThetaCheckBox + text: '2θ' } EaElements.CheckBox { id: twoThetaIntegratedCheckBox + text: '2θ integrated' } } diff --git a/src/EasyTextureApp/Gui/Pages/Results/Sidebar/Basic/Layout.qml b/src/EasyTextureApp/Gui/Pages/Results/Sidebar/Basic/Layout.qml index cc4bd51..40ce07e 100644 --- a/src/EasyTextureApp/Gui/Pages/Results/Sidebar/Basic/Layout.qml +++ b/src/EasyTextureApp/Gui/Pages/Results/Sidebar/Basic/Layout.qml @@ -14,7 +14,7 @@ EaComponents.SideBarColumn { EaElements.GroupBox { id: slicerGroupBox - title: Globals.BackendWrapper.resultsSelectedTabIndex === 0 ? qsTr('Slicer: d-spacing patterns') : qsTr('Slicer: 2\u03b8 patterns') + title: qsTr('Slicer') collapsible: false visible: !(Globals.BackendWrapper.resultsSelectedTabIndex === 2) icon: 'microscope' @@ -23,9 +23,7 @@ EaComponents.SideBarColumn { } EaElements.GroupBox { - //enabled: Globals.Proxies.main.project.isCreated title: qsTr('Export data') - collapsible: false icon: 'download' last: true From d5a80a38962b39cc2812e76c762ae1c9f9a7dfba Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Tue, 21 Apr 2026 10:36:36 +0200 Subject: [PATCH 10/13] Modify title of the Measurements Group --- src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Layout.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Layout.qml b/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Layout.qml index cac2d0b..c70f81f 100644 --- a/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Layout.qml +++ b/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Layout.qml @@ -14,7 +14,7 @@ import Gui.Globals as Globals EaComponents.SideBarColumn { EaElements.GroupBox { - title: qsTr('Measurement file') + title: qsTr('Measurements') icon: 'layer-group' collapsible: false From cd2f78a555a95d424d631712e7f671c1b2fe4ec5 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Tue, 21 Apr 2026 10:45:10 +0200 Subject: [PATCH 11/13] Refactor sidebar tab labels and remove unused text mode tabs --- src/EasyTextureApp/Gui/Pages/Corrections/Layout.qml | 4 ++-- src/EasyTextureApp/Gui/Pages/Explore/Layout.qml | 9 ++------- .../Gui/Pages/Explore/Sidebar/Text/Layout.qml | 12 ------------ src/EasyTextureApp/Gui/Pages/LiveView/Layout.qml | 8 +++----- .../Gui/Pages/LiveView/Sidebar/Text/Layout.qml | 12 ------------ src/EasyTextureApp/Gui/Pages/Project/Layout.qml | 8 +++----- .../Gui/Pages/Project/Sidebar/Text/Layout.qml | 12 ------------ src/EasyTextureApp/Gui/Pages/RawData/Layout.qml | 11 +++-------- .../Gui/Pages/RawData/Sidebar/Basic/Layout.qml | 2 +- .../Gui/Pages/RawData/Sidebar/Text/Layout.qml | 12 ------------ src/EasyTextureApp/Gui/Pages/Results/Layout.qml | 7 ++----- 11 files changed, 16 insertions(+), 81 deletions(-) delete mode 100644 src/EasyTextureApp/Gui/Pages/Explore/Sidebar/Text/Layout.qml delete mode 100644 src/EasyTextureApp/Gui/Pages/LiveView/Sidebar/Text/Layout.qml delete mode 100644 src/EasyTextureApp/Gui/Pages/Project/Sidebar/Text/Layout.qml delete mode 100644 src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Text/Layout.qml diff --git a/src/EasyTextureApp/Gui/Pages/Corrections/Layout.qml b/src/EasyTextureApp/Gui/Pages/Corrections/Layout.qml index 7cc6f02..832b912 100644 --- a/src/EasyTextureApp/Gui/Pages/Corrections/Layout.qml +++ b/src/EasyTextureApp/Gui/Pages/Corrections/Layout.qml @@ -31,8 +31,8 @@ EaComponents.ContentPage { sideBar: EaComponents.SideBar { tabs: [ - EaElements.TabButton { text: qsTr('Basic controls') }, - EaElements.TabButton { text: qsTr('Extra controls') } + EaElements.TabButton { text: qsTr('Basic') }, + EaElements.TabButton { text: qsTr('Extra') } ] items: [ diff --git a/src/EasyTextureApp/Gui/Pages/Explore/Layout.qml b/src/EasyTextureApp/Gui/Pages/Explore/Layout.qml index 463e8e3..30e302f 100644 --- a/src/EasyTextureApp/Gui/Pages/Explore/Layout.qml +++ b/src/EasyTextureApp/Gui/Pages/Explore/Layout.qml @@ -50,18 +50,13 @@ EaComponents.ContentPage { sideBar: EaComponents.SideBar { tabs: [ - EaElements.TabButton { text: qsTr('Basic controls') }, - EaElements.TabButton { - text: qsTr('Extra controls') - enabled: false - } - //EaElements.TabButton { text: qsTr('Text mode controls'); enabled: false } + EaElements.TabButton { text: qsTr('Basic') }, + EaElements.TabButton { text: qsTr('Extra'); enabled: false } ] items: [ Loader { source: 'Sidebar/Basic/Layout.qml' }, Loader { source: 'Sidebar/Extra/Layout.qml' } - //Loader { source: 'Sidebar/Text/Layout.qml' } ] continueButton.visible: true diff --git a/src/EasyTextureApp/Gui/Pages/Explore/Sidebar/Text/Layout.qml b/src/EasyTextureApp/Gui/Pages/Explore/Sidebar/Text/Layout.qml deleted file mode 100644 index 3c9c9d6..0000000 --- a/src/EasyTextureApp/Gui/Pages/Explore/Sidebar/Text/Layout.qml +++ /dev/null @@ -1,12 +0,0 @@ -// SPDX-FileCopyrightText: 2024 EasyApp contributors -// SPDX-License-Identifier: BSD-3-Clause -// © 2024 Contributors to the EasyApp project - -import QtQuick - -import EasyApp.Gui.Elements as EaElements -import EasyApp.Gui.Components as EaComponents - - -EaComponents.SideBarColumn {} - diff --git a/src/EasyTextureApp/Gui/Pages/LiveView/Layout.qml b/src/EasyTextureApp/Gui/Pages/LiveView/Layout.qml index 6c62997..593fd30 100644 --- a/src/EasyTextureApp/Gui/Pages/LiveView/Layout.qml +++ b/src/EasyTextureApp/Gui/Pages/LiveView/Layout.qml @@ -49,15 +49,13 @@ EaComponents.ContentPage { sideBar: EaComponents.SideBar { tabs: [ - EaElements.TabButton { text: qsTr('Basic controls') }, - EaElements.TabButton { text: qsTr('Extra controls') }, - EaElements.TabButton { text: qsTr('Text mode controls'); enabled: false } + EaElements.TabButton { text: qsTr('Basic') }, + EaElements.TabButton { text: qsTr('Extra') } ] items: [ Loader { source: 'Sidebar/Basic/Layout.qml' }, - Loader { source: 'Sidebar/Extra/Layout.qml' }, - Loader { source: 'Sidebar/Text/Layout.qml' } + Loader { source: 'Sidebar/Extra/Layout.qml' } ] continueButton.enabled: true //Globals.BackendWrapper.rawDataLoaded diff --git a/src/EasyTextureApp/Gui/Pages/LiveView/Sidebar/Text/Layout.qml b/src/EasyTextureApp/Gui/Pages/LiveView/Sidebar/Text/Layout.qml deleted file mode 100644 index 3c9c9d6..0000000 --- a/src/EasyTextureApp/Gui/Pages/LiveView/Sidebar/Text/Layout.qml +++ /dev/null @@ -1,12 +0,0 @@ -// SPDX-FileCopyrightText: 2024 EasyApp contributors -// SPDX-License-Identifier: BSD-3-Clause -// © 2024 Contributors to the EasyApp project - -import QtQuick - -import EasyApp.Gui.Elements as EaElements -import EasyApp.Gui.Components as EaComponents - - -EaComponents.SideBarColumn {} - diff --git a/src/EasyTextureApp/Gui/Pages/Project/Layout.qml b/src/EasyTextureApp/Gui/Pages/Project/Layout.qml index 22d6eca..4c67f51 100644 --- a/src/EasyTextureApp/Gui/Pages/Project/Layout.qml +++ b/src/EasyTextureApp/Gui/Pages/Project/Layout.qml @@ -31,15 +31,13 @@ EaComponents.ContentPage { sideBar: EaComponents.SideBar { tabs: [ - EaElements.TabButton { text: qsTr('Basic controls') }, - EaElements.TabButton { text: qsTr('Extra controls'); enabled: false }, - EaElements.TabButton { text: qsTr('Text mode controls'); enabled: false } + EaElements.TabButton { text: qsTr('Basic') }, + EaElements.TabButton { text: qsTr('Extra'); enabled: false } ] items: [ Loader { source: 'Sidebar/Basic/Layout.qml' }, - Loader { source: 'Sidebar/Extra/Layout.qml' }, - Loader { source: 'Sidebar/Text/Layout.qml' } + Loader { source: 'Sidebar/Extra/Layout.qml' } ] continueButton.text: Globals.BackendWrapper.projectCreated ? diff --git a/src/EasyTextureApp/Gui/Pages/Project/Sidebar/Text/Layout.qml b/src/EasyTextureApp/Gui/Pages/Project/Sidebar/Text/Layout.qml deleted file mode 100644 index 3c9c9d6..0000000 --- a/src/EasyTextureApp/Gui/Pages/Project/Sidebar/Text/Layout.qml +++ /dev/null @@ -1,12 +0,0 @@ -// SPDX-FileCopyrightText: 2024 EasyApp contributors -// SPDX-License-Identifier: BSD-3-Clause -// © 2024 Contributors to the EasyApp project - -import QtQuick - -import EasyApp.Gui.Elements as EaElements -import EasyApp.Gui.Components as EaComponents - - -EaComponents.SideBarColumn {} - diff --git a/src/EasyTextureApp/Gui/Pages/RawData/Layout.qml b/src/EasyTextureApp/Gui/Pages/RawData/Layout.qml index f288640..c09dc2e 100644 --- a/src/EasyTextureApp/Gui/Pages/RawData/Layout.qml +++ b/src/EasyTextureApp/Gui/Pages/RawData/Layout.qml @@ -152,18 +152,13 @@ EaComponents.ContentPage { sideBar: EaComponents.SideBar { tabs: [ - EaElements.TabButton { text: qsTr('Basic controls') }, - EaElements.TabButton { - text: qsTr('Extra controls') - //enabled: false - }, - EaElements.TabButton { text: qsTr('Text mode controls'); enabled: false } + EaElements.TabButton { text: qsTr('Basic') }, + EaElements.TabButton { text: qsTr('Extra') } ] items: [ Loader { source: 'Sidebar/Basic/Layout.qml' }, - Loader { source: 'Sidebar/Extra/Layout.qml' }, - Loader { source: 'Sidebar/Text/Layout.qml' } + Loader { source: 'Sidebar/Extra/Layout.qml' } ] continueButton.enabled: Globals.BackendWrapper.rawDataLoaded diff --git a/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Layout.qml b/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Layout.qml index c70f81f..1abaf6a 100644 --- a/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Layout.qml +++ b/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Basic/Layout.qml @@ -17,6 +17,7 @@ EaComponents.SideBarColumn { title: qsTr('Measurements') icon: 'layer-group' collapsible: false + last: !Globals.BackendWrapper.rawDataLoaded Loader { source: 'Groups/MeasurementFile.qml' } } @@ -26,7 +27,6 @@ EaComponents.SideBarColumn { icon: 'arrows-alt' collapsible: false visible: Globals.BackendWrapper.rawDataLoaded && Globals.BackendWrapper.rawDataSelectedTabIndex == 0 - last: false Loader { source: 'Groups/Binning3D.qml' } } diff --git a/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Text/Layout.qml b/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Text/Layout.qml deleted file mode 100644 index 3c9c9d6..0000000 --- a/src/EasyTextureApp/Gui/Pages/RawData/Sidebar/Text/Layout.qml +++ /dev/null @@ -1,12 +0,0 @@ -// SPDX-FileCopyrightText: 2024 EasyApp contributors -// SPDX-License-Identifier: BSD-3-Clause -// © 2024 Contributors to the EasyApp project - -import QtQuick - -import EasyApp.Gui.Elements as EaElements -import EasyApp.Gui.Components as EaComponents - - -EaComponents.SideBarColumn {} - diff --git a/src/EasyTextureApp/Gui/Pages/Results/Layout.qml b/src/EasyTextureApp/Gui/Pages/Results/Layout.qml index 21fe44a..5567eaa 100644 --- a/src/EasyTextureApp/Gui/Pages/Results/Layout.qml +++ b/src/EasyTextureApp/Gui/Pages/Results/Layout.qml @@ -50,11 +50,8 @@ EaComponents.ContentPage { sideBar: EaComponents.SideBar { tabs: [ - EaElements.TabButton { text: qsTr('Basic controls') }, - EaElements.TabButton { - text: qsTr('Extra controls') - enabled: false - } + EaElements.TabButton { text: qsTr('Basic') }, + EaElements.TabButton { text: qsTr('Extra'); enabled: false } ] items: [ From 6bd1e645d56ad58490e15143f8d994d8e97c6a2d Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Tue, 21 Apr 2026 10:53:29 +0200 Subject: [PATCH 12/13] Rename tab labels in RawData layout --- src/EasyTextureApp/Gui/Pages/RawData/Layout.qml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/EasyTextureApp/Gui/Pages/RawData/Layout.qml b/src/EasyTextureApp/Gui/Pages/RawData/Layout.qml index c09dc2e..fd2ffbd 100644 --- a/src/EasyTextureApp/Gui/Pages/RawData/Layout.qml +++ b/src/EasyTextureApp/Gui/Pages/RawData/Layout.qml @@ -22,7 +22,7 @@ EaComponents.ContentPage { mainView: EaComponents.MainContent { tabs: [ EaElements.TabButton { - text: qsTr('3D View: Detector Inner Surface') + text: qsTr('3D Detector View') onClicked: { Globals.BackendWrapper.rawDataSelectedTabIndex = 0 if (!Globals.BackendWrapper.rawDataCalculateViewsAtOnce) { @@ -50,7 +50,7 @@ EaComponents.ContentPage { } }, EaElements.TabButton { - text: qsTr('2D View: γ-2θ') + text: qsTr('2D View (γ-2θ)') onClicked: { Globals.BackendWrapper.rawDataSelectedTabIndex = 1 if (!Globals.BackendWrapper.rawDataCalculateViewsAtOnce) { @@ -77,7 +77,7 @@ EaComponents.ContentPage { } }, EaElements.TabButton { - text: qsTr('2D View: 2θ Rings') + text: qsTr('2θ Rings') onClicked: { Globals.BackendWrapper.rawDataSelectedTabIndex = 2 if (!Globals.BackendWrapper.rawDataCalculateViewsAtOnce) { @@ -105,7 +105,7 @@ EaComponents.ContentPage { } }, EaElements.TabButton { - text: qsTr('1D View: γ(2θ)') + text: qsTr('γ-slices') onClicked: { Globals.BackendWrapper.rawDataSelectedTabIndex = 3 if (!Globals.BackendWrapper.rawDataCalculateViewsAtOnce) { From 3655aaccd7c09f4fbff11c3cd23f51f26da2c13e Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Tue, 21 Apr 2026 10:56:35 +0200 Subject: [PATCH 13/13] =?UTF-8?q?Modify=20titles=20for=20=CE=B3-slice=20wi?= =?UTF-8?q?dth=20and=202=CE=B8=20ring=20in=20sidebar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/EasyTextureApp/Gui/Pages/Explore/Sidebar/Basic/Layout.qml | 4 ++-- .../Gui/Pages/Results/Sidebar/Basic/Groups/DataSlicer.qml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/EasyTextureApp/Gui/Pages/Explore/Sidebar/Basic/Layout.qml b/src/EasyTextureApp/Gui/Pages/Explore/Sidebar/Basic/Layout.qml index 50689fd..ac16600 100644 --- a/src/EasyTextureApp/Gui/Pages/Explore/Sidebar/Basic/Layout.qml +++ b/src/EasyTextureApp/Gui/Pages/Explore/Sidebar/Basic/Layout.qml @@ -22,14 +22,14 @@ EaComponents.SideBarColumn { } EaElements.GroupBox { - title: qsTr('Select γ-slice width') + title: qsTr('γ-slice width') icon: 'arrows-alt' Loader { source: 'Groups/GammaSliceSelector.qml' } } EaElements.GroupBox { - title: qsTr('Select 2θ ring') + title: qsTr('2θ ring') icon: 'microscope' Loader { source: 'Groups/TwoThetaSlider.qml' } diff --git a/src/EasyTextureApp/Gui/Pages/Results/Sidebar/Basic/Groups/DataSlicer.qml b/src/EasyTextureApp/Gui/Pages/Results/Sidebar/Basic/Groups/DataSlicer.qml index 65f583f..6b57eda 100644 --- a/src/EasyTextureApp/Gui/Pages/Results/Sidebar/Basic/Groups/DataSlicer.qml +++ b/src/EasyTextureApp/Gui/Pages/Results/Sidebar/Basic/Groups/DataSlicer.qml @@ -17,7 +17,7 @@ Column { EaElements.Label { - text: qsTr('γ-Slice Range: ') + Globals.BackendWrapper.getGammaSliceRange(Globals.BackendWrapper.resultsRingIndexSliderValue) + text: qsTr('γ-slice range: ') + Globals.BackendWrapper.getGammaSliceRange(Globals.BackendWrapper.resultsRingIndexSliderValue) }