Files
Jungfraujoch/viewer/widgets/JFJochViewerFileBrowser.h
T
leonarski_fandClaude Opus 5 a7a4c28925
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
jfjoch_viewer: the inspector states the numbers it used to hide
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
2026-09-11 22:07:54 +02:00

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);
};