// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only #pragma once #include #include "windows/JFJochHelperWindow.h" class JFJochLicenseWindow; class QDockWidget; class JFJochViewerMenu : public QMenuBar { Q_OBJECT QAction *toggleImageWindowAction = nullptr; QAction *toggleMetadataWindowAction = nullptr; QAction *toggleSpotWindowAction = nullptr; QAction *toggleReflectionWindowAction = nullptr; QAction *toggleProcessingWindowAction = nullptr; QAction *toggleCalibrationWindowAction = nullptr; QMenu *windowMenu = nullptr; JFJochLicenseWindow *licenseWindow = nullptr; public: explicit JFJochViewerMenu(QWidget *parent = nullptr); ~JFJochViewerMenu() override = default; void AddWindowEntry(JFJochHelperWindow *window, const QString &name); // Adds a dock's show/hide toggle to the Window menu (for docked panels). void AddDockEntry(QDockWidget *dock, const QString &name); signals: void fileOpenSelected(const QString &filename, qint64 image_number, qint64 summation, bool retry); void fileCloseSelected(); void saveUserMaskTiffSelected(const QString &filename); void loadUserMaskTiffSelected(const QString &filename, bool replace); void uploadUserMaskSelected(); void clearUserMaskSelected(); void openDatasetInfo(); void imageLayoutSelected(); void processingLayoutSelected(); void resetLayoutSelected(); private slots: void aboutSelected(); void licensesSelected(); void quitSelected(); void openSelected(); void openHttpSelected(); void closeSelected(); void saveUserMaskAsTiffSelected(); void uploadUserMaskAction(); private: void openLoadUserMaskTiff(bool replace); };