Build Packages / Unit tests (push) Successful in 49m15s
Build Packages / build:windows:nocuda (push) Successful in 18m5s
Build Packages / build:windows:cuda (push) Successful in 20m26s
Build Packages / build:viewer-tgz:cpu (push) Successful in 7m17s
Build Packages / build:viewer-tgz:cuda (push) Successful in 8m15s
Build Packages / build:rugnux-tgz (x86_64) (push) Successful in 6m57s
Build Packages / build:rugnux:windows (push) Successful in 10m56s
Build Packages / build:rugnux:aarch64 (cross) (push) Successful in 5m0s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 10m21s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 8m22s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 11m49s
Build Packages / build:rpm (rocky8) (push) Successful in 11m57s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 9m5s
Build Packages / XDS test (neggia plugin) (push) Successful in 5m45s
Build Packages / Generate python client (push) Successful in 10s
Build Packages / Build documentation (push) Successful in 36s
Build Packages / Create release (push) Skipped
Build Packages / XDS test (JFJoch plugin) (push) Failing after 3h12m36s
Build Packages / XDS test (durin plugin) (push) Failing after 3h12m38s
Build Packages / DIALS test (push) Failing after 3h12m40s
Build Packages / build:rpm (ubuntu2204) (push) Failing after 3h12m42s
Build Packages / build:rpm (rocky9) (push) Failing after 3h12m44s
Build Packages / build:rpm (rocky9_sls9) (push) Failing after 3h12m46s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Failing after 3h12m48s
Build Packages / build:rpm (rocky9_nocuda) (push) Failing after 3h12m50s
Six changes to the desktop viewer, all in what it shows and what it is called: - The left-hand reprocessing panel is titled "Processing" (it sits next to "File manager"); the jobs panel that held that name is "Jobs". - The file manager lists *.cbf beside the HDF5 datasets. A CBF is one frame per file and opening any of them opens its sweep, which is what the File > Open dialog already did. - Image statistics: collection time, detector distance, beam centre and wavelength were in the dataset row's tooltip, where a number nobody hovers over is a number nobody reads. They are rows of their own, in the order a person asks for them - what the dataset is, how it was collected, then what this image contains. Source/instrument and sample are bold like every other value. The B-factor row is gone. - A "Spots + background" plot: spot count on the left axis, background per pixel on the right, since a common scale would flatten one of them. The axis labels take the colour of their line - a legend costs exactly the vertical room those labels need at this dock height. It is what a live (HTTP) connection selects by default, until the user picks something else. - Expanding the powder-calibration section no longer widens the settings panel past the space it has. Two buttons side by side cannot be narrower than both their labels, and a combo is never narrower than its longest entry - a 40-character cell in the calibrant list set the minimum width of the whole dock. One button per row, the cell in a tooltip, and both combos allowed to elide. - The grid/per-image toggles both rebuild the metric selector now. The grid button did not, so leaving per-image mode through it left the per-image plot types listed - X-ray fluorescence offered as a metric of a grid scan - and their values were then read as per-dataset metrics. Each mode also remembers its own selection instead of carrying an index across two unrelated lists. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011oVDk7aukYqfPZBLHn5nGg
44 lines
1.5 KiB
C++
44 lines
1.5 KiB
C++
// SPDX-FileCopyrightText: 2026 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
|
|
// SPDX-License-Identifier: GPL-3.0-only
|
|
|
|
#pragma once
|
|
|
|
#include <QWidget>
|
|
#include <QFileSystemModel>
|
|
#include <QSortFilterProxyModel>
|
|
|
|
class QLineEdit;
|
|
class QTreeView;
|
|
class QModelIndex;
|
|
|
|
// Left-side dock alternative to the Processing (reprocessing settings) panel: a directory tree rooted at a
|
|
// configurable data root, filtered down to subdirectories and *_master.h5 / *_process.h5 / *.cbf
|
|
// files, for browsing to and opening a dataset without caring about reprocessing. Backed by QFileSystemModel,
|
|
// which only lists a directory once it is expanded - so a root with hundreds of sibling directories
|
|
// (e.g. an SLS beamline's /sls/mx/data/) costs one readdir at each level actually opened, never a
|
|
// recursive scan of the whole tree.
|
|
class JFJochViewerFileBrowser : public QWidget {
|
|
Q_OBJECT
|
|
|
|
QLineEdit *root_edit_;
|
|
QLineEdit *filter_edit_;
|
|
QTreeView *tree_;
|
|
QFileSystemModel *model_;
|
|
QSortFilterProxyModel *proxy_;
|
|
|
|
void SetRoot(const QString &path);
|
|
[[nodiscard]] static QString DefaultRoot();
|
|
|
|
private slots:
|
|
void onBrowseClicked();
|
|
void onRootEditingFinished();
|
|
void onDoubleClicked(const QModelIndex &index);
|
|
|
|
signals:
|
|
// Mirrors JFJochViewerMenu::fileOpenSelected, so the window wires it to LoadFile the same way.
|
|
void openDataset(const QString &filename, qint64 image_number, qint64 summation, bool retry);
|
|
|
|
public:
|
|
explicit JFJochViewerFileBrowser(QWidget *parent = nullptr);
|
|
};
|