diff --git a/viewer/CMakeLists.txt b/viewer/CMakeLists.txt index 251ce2c6..acf8a6c7 100644 --- a/viewer/CMakeLists.txt +++ b/viewer/CMakeLists.txt @@ -14,8 +14,6 @@ ADD_EXECUTABLE(jfjoch_viewer jfjoch_viewer.cpp JFJochViewerWindow.cpp JFJochView JFJochViewerImage.h JFJochImageReadingWorker.cpp JFJochImageReadingWorker.h - JFJochViewerToolbar.cpp - JFJochViewerToolbar.h JFJochViewerDatasetInfo.cpp JFJochViewerDatasetInfo.h JFJochViewerSidePanel.cpp @@ -62,6 +60,10 @@ ADD_EXECUTABLE(jfjoch_viewer jfjoch_viewer.cpp JFJochViewerWindow.cpp JFJochView JFJochViewerImageROIStatistics_Box.h JFJochViewerImageROIStatistics_Circle.cpp JFJochViewerImageROIStatistics_Circle.h + JFJochViewerToolbarImage.cpp + JFJochViewerToolbarImage.h + JFJochViewerToolbarDisplay.cpp + JFJochViewerToolbarDisplay.h ) TARGET_LINK_LIBRARIES(jfjoch_viewer Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Charts Qt6::DBus diff --git a/viewer/JFJochImageReadingWorker.cpp b/viewer/JFJochImageReadingWorker.cpp index 15349810..fd8dc25b 100644 --- a/viewer/JFJochImageReadingWorker.cpp +++ b/viewer/JFJochImageReadingWorker.cpp @@ -36,15 +36,15 @@ void JFJochImageReadingWorker::LoadFile(const QString &filename, qint64 image_nu total_images = http_reader.GetNumberOfImages(); dataset = http_reader.GetDataset(); if (image_number < 0) - emit setToolbarMode(JFJochViewerToolbar::ToolbarMode::Autoload); + emit setToolbarMode(JFJochViewerToolbarImage::ToolbarMode::Autoload); else - emit setToolbarMode(JFJochViewerToolbar::ToolbarMode::None); + emit setToolbarMode(JFJochViewerToolbarImage::ToolbarMode::None); } else { http_mode = false; file_reader.ReadFile(filename.toStdString()); total_images = file_reader.GetNumberOfImages(); dataset = file_reader.GetDataset(); - emit setToolbarMode(JFJochViewerToolbar::ToolbarMode::None); + emit setToolbarMode(JFJochViewerToolbarImage::ToolbarMode::None); } current_image.reset(); current_summation = 1; diff --git a/viewer/JFJochImageReadingWorker.h b/viewer/JFJochImageReadingWorker.h index 9eafb58d..841bec3b 100644 --- a/viewer/JFJochImageReadingWorker.h +++ b/viewer/JFJochImageReadingWorker.h @@ -10,7 +10,7 @@ #include #include -#include "JFJochViewerToolbar.h" +#include "JFJochViewerToolbarImage.h" #include "../reader/JFJochHDF5Reader.h" #include "../common/Logger.h" @@ -65,7 +65,7 @@ signals: void imageLoaded(std::shared_ptr); void imageStatsUpdated(std::shared_ptr); void imageNumberChanged(int64_t total_images, int64_t current_image); - void setToolbarMode(JFJochViewerToolbar::ToolbarMode input); + void setToolbarMode(JFJochViewerToolbarImage::ToolbarMode input); void setRings(const QVector &v); public: JFJochImageReadingWorker(const SpotFindingSettings &settings, const DiffractionExperiment& experiment, QObject *parent = nullptr); diff --git a/viewer/JFJochViewerToolbarDisplay.cpp b/viewer/JFJochViewerToolbarDisplay.cpp new file mode 100644 index 00000000..65fbb1f7 --- /dev/null +++ b/viewer/JFJochViewerToolbarDisplay.cpp @@ -0,0 +1,76 @@ +// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute +// SPDX-License-Identifier: GPL-3.0-only + +#include "JFJochViewerToolbarDisplay.h" +#include +#include "../common/ColorScale.h" + +JFJochViewerToolbarDisplay::JFJochViewerToolbarDisplay(QWidget *parent) + : QToolBar(parent) { + addWidget(new QLabel("Foreground   ")); + + foreground_slider = new SliderPlusBox(1, 65000, 1.0, 1, this, + SliderPlusBox::ScaleType::Logarithmic); + foreground_slider->setValue(10); + addWidget(foreground_slider); + auto_foreground_button = new QPushButton("Auto"); + auto_foreground_button->setCheckable(true); + auto_foreground_button->setChecked(auto_foreground); + addWidget(auto_foreground_button); + + addWidget(new QLabel("  Color map  ")); + + // Initialize QComboBox with the options + color_map_select = new QComboBox(this); + color_map_select->addItem("Viridis", static_cast(ColorScaleEnum::Viridis)); + color_map_select->addItem("Heat", static_cast(ColorScaleEnum::Heat)); + color_map_select->addItem("Indigo", static_cast(ColorScaleEnum::Indigo)); + color_map_select->addItem("B/W", static_cast(ColorScaleEnum::BW)); + color_map_select->setCurrentIndex(static_cast(ColorScaleEnum::Indigo)); + addWidget(color_map_select); + + addWidget(new QLabel("  Background   ")); + + background_slider = new SliderPlusBox(-30000, 30000, 1.0, 1, this, + SliderPlusBox::ScaleType::Linear); + background_slider->setValue(0); + addWidget(background_slider); + auto *stretch = new QWidget(this); + stretch->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); + addWidget(stretch); + + connect(foreground_slider, &SliderPlusBox::valueChanged, this, &JFJochViewerToolbarDisplay::foregroundSet); + connect(background_slider, &SliderPlusBox::valueChanged, this, &JFJochViewerToolbarDisplay::backgroundSet); + connect(color_map_select, QOverload::of(&QComboBox::currentIndexChanged), + this, &JFJochViewerToolbarDisplay::colorComboBoxSet); + connect(auto_foreground_button, &QPushButton::clicked, this, &JFJochViewerToolbarDisplay::autoForegroundButtonPressed); +} + +void JFJochViewerToolbarDisplay::foregroundSet(double val) { + if (auto_foreground) { + auto_foreground = false; + auto_foreground_button->setChecked(false); + emit setAutoForeground(false); + } + emit setForeground(static_cast(val)); +} + +void JFJochViewerToolbarDisplay::backgroundSet(double val) { + emit setBackground(static_cast(val)); +} + +void JFJochViewerToolbarDisplay::updateForeground(float val) { + QSignalBlocker blocker(foreground_slider); + foreground_slider->setValue(val); +} + +void JFJochViewerToolbarDisplay::colorComboBoxSet(int val) { + emit colorMapChanged(val); +} + + +void JFJochViewerToolbarDisplay::autoForegroundButtonPressed() { + auto_foreground = !auto_foreground; + auto_foreground_button->setChecked(auto_foreground); + emit setAutoForeground(auto_foreground); +} \ No newline at end of file diff --git a/viewer/JFJochViewerToolbarDisplay.h b/viewer/JFJochViewerToolbarDisplay.h new file mode 100644 index 00000000..35905a16 --- /dev/null +++ b/viewer/JFJochViewerToolbarDisplay.h @@ -0,0 +1,42 @@ +// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute +// SPDX-License-Identifier: GPL-3.0-only + +#ifndef JFJOCH_JFJOCHVIEWERTOOLBARDISPLAY_H +#define JFJOCH_JFJOCHVIEWERTOOLBARDISPLAY_H + +#include +#include "widgets/SliderPlusBox.h" +#include +#include + +class JFJochViewerToolbarDisplay : public QToolBar { + Q_OBJECT + + bool auto_foreground = false; + + SliderPlusBox *background_slider; + SliderPlusBox *foreground_slider; + QPushButton *auto_foreground_button; + + QComboBox *color_map_select; +public: + JFJochViewerToolbarDisplay(QWidget *parent = nullptr); + +signals: + void setForeground(float val); + void setBackground(float val); + void colorMapChanged(int val); + void setAutoForeground(bool val); + +public slots: + void updateForeground(float val); + +private slots: + void foregroundSet(double val); + void backgroundSet(double val); + void colorComboBoxSet(int val); + void autoForegroundButtonPressed(); +}; + + +#endif //JFJOCH_JFJOCHVIEWERTOOLBARDISPLAY_H diff --git a/viewer/JFJochViewerToolbar.cpp b/viewer/JFJochViewerToolbarImage.cpp similarity index 65% rename from viewer/JFJochViewerToolbar.cpp rename to viewer/JFJochViewerToolbarImage.cpp index 55e82187..7ffcfc21 100644 --- a/viewer/JFJochViewerToolbar.cpp +++ b/viewer/JFJochViewerToolbarImage.cpp @@ -1,20 +1,10 @@ // SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only -#include "JFJochViewerToolbar.h" -#include "../common/ColorScale.h" - -#include -#include -#include -#include -#include +#include "JFJochViewerToolbarImage.h" #include -#include -#include "widgets/NumericComboBox.h" - -JFJochViewerToolbar::JFJochViewerToolbar(QWidget *parent) : QToolBar(parent) { +JFJochViewerToolbarImage::JFJochViewerToolbarImage(QWidget *parent) : QToolBar(parent) { image_count_in_dataset = 0; auto title = new QLabel("Image number ", this); @@ -51,12 +41,12 @@ JFJochViewerToolbar::JFJochViewerToolbar(QWidget *parent) : QToolBar(parent) { addWidget(new QLabel(" Jump:", this)); jump = new NumericComboBox({1, 2, 5, 10, 20, 100, 500}, 1, 999, this); - connect(jump, &NumericComboBox::valueChanged, this, &JFJochViewerToolbar::setImageJump); + connect(jump, &NumericComboBox::valueChanged, this, &JFJochViewerToolbarImage::setImageJump); addWidget(jump); addWidget(new QLabel(" Sum:", this)); auto sum = new NumericComboBox({1, 2, 5, 10, 20, 50, 100}, 1, 10000, this); - connect(sum, &NumericComboBox::valueChanged, this, &JFJochViewerToolbar::setSummation); + connect(sum, &NumericComboBox::valueChanged, this, &JFJochViewerToolbarImage::setSummation); addWidget(sum); image_number_slider = new QSlider(Qt::Horizontal, this); @@ -77,59 +67,28 @@ JFJochViewerToolbar::JFJochViewerToolbar(QWidget *parent) : QToolBar(parent) { autoload_button->setCheckable(true); addWidget(autoload_button); - connect(movie_button, &QPushButton::clicked, this, &JFJochViewerToolbar::movieButtonPressed); - connect(autoload_button, &QPushButton::clicked, this, &JFJochViewerToolbar::autoloadButtonPressed); - connect(movie_timer, &QTimer::timeout, this, &JFJochViewerToolbar::movieTimerTimeout); + connect(movie_button, &QPushButton::clicked, this, &JFJochViewerToolbarImage::movieButtonPressed); + connect(autoload_button, &QPushButton::clicked, this, &JFJochViewerToolbarImage::autoloadButtonPressed); + connect(movie_timer, &QTimer::timeout, this, &JFJochViewerToolbarImage::movieTimerTimeout); auto *stretch = new QWidget(this); stretch->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); addWidget(stretch); - addSeparator(); - addWidget(new QLabel("Foreground   ")); - - foreground_slider = new SliderPlusBox(1, 30000, 1.0, 1, this, - SliderPlusBox::ScaleType::Logarithmic); - foreground_slider->setValue(10); - addWidget(foreground_slider); - auto_foreground_button = new QPushButton("Auto"); - auto_foreground_button->setCheckable(true); - auto_foreground_button->setChecked(auto_foreground); - addWidget(auto_foreground_button); - - addWidget(new QLabel("  Color map  ")); - - // Initialize QComboBox with the options - color_map_select = new QComboBox(this); - color_map_select->addItem("Viridis", static_cast(ColorScaleEnum::Viridis)); - color_map_select->addItem("Heat", static_cast(ColorScaleEnum::Heat)); - color_map_select->addItem("Indigo", static_cast(ColorScaleEnum::Indigo)); - color_map_select->addItem("B/W", static_cast(ColorScaleEnum::BW)); - color_map_select->setCurrentIndex(static_cast(ColorScaleEnum::Indigo)); - addWidget(color_map_select); - - auto *stretch_2 = new QWidget(this); - stretch_2->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); - addWidget(stretch_2); - setImageNumber(0, 0); - connect(left_button, &QPushButton::clicked, this, &JFJochViewerToolbar::leftButtonPressed); - connect(right_button, &QPushButton::clicked, this, &JFJochViewerToolbar::rightButtonPressed); - connect(leftmost_button, &QPushButton::clicked, this, &JFJochViewerToolbar::leftmostButtonPressed); - connect(rightmost_button, &QPushButton::clicked, this, &JFJochViewerToolbar::rightmostButtonPressed); + connect(left_button, &QPushButton::clicked, this, &JFJochViewerToolbarImage::leftButtonPressed); + connect(right_button, &QPushButton::clicked, this, &JFJochViewerToolbarImage::rightButtonPressed); + connect(leftmost_button, &QPushButton::clicked, this, &JFJochViewerToolbarImage::leftmostButtonPressed); + connect(rightmost_button, &QPushButton::clicked, this, &JFJochViewerToolbarImage::rightmostButtonPressed); - connect(current_image_edit, &QLineEdit::editingFinished, this, &JFJochViewerToolbar::editFinalized); - connect(image_number_slider, &QSlider::sliderPressed, this, &JFJochViewerToolbar::imageNumberSliderPressed); - connect(image_number_slider, &QSlider::sliderReleased, this, &JFJochViewerToolbar::imageNumberSliderReleased); - connect(image_number_slider, &QSlider::sliderMoved, this, &JFJochViewerToolbar::imageNumberSliderMoved); - connect(foreground_slider, &SliderPlusBox::valueChanged, this, &JFJochViewerToolbar::foregroundSet); - connect(color_map_select, QOverload::of(&QComboBox::currentIndexChanged), - this, &JFJochViewerToolbar::colorComboBoxSet); - connect(auto_foreground_button, &QPushButton::clicked, this, &JFJochViewerToolbar::autoForegroundButtonPressed); + connect(current_image_edit, &QLineEdit::editingFinished, this, &JFJochViewerToolbarImage::editFinalized); + connect(image_number_slider, &QSlider::sliderPressed, this, &JFJochViewerToolbarImage::imageNumberSliderPressed); + connect(image_number_slider, &QSlider::sliderReleased, this, &JFJochViewerToolbarImage::imageNumberSliderReleased); + connect(image_number_slider, &QSlider::sliderMoved, this, &JFJochViewerToolbarImage::imageNumberSliderMoved); } -void JFJochViewerToolbar::updateButtons() { +void JFJochViewerToolbarImage::updateButtons() { if (image_count_in_dataset > 0) { current_image_edit->setDisabled(false); current_image_edit->setText(QString::number(curr_image)); @@ -160,7 +119,7 @@ void JFJochViewerToolbar::updateButtons() { total_number_label->setText("/" + QString::number(image_count_in_dataset - 1)); } -void JFJochViewerToolbar::setImageNumber(int64_t total_images, int64_t current_image) { +void JFJochViewerToolbarImage::setImageNumber(int64_t total_images, int64_t current_image) { if (image_count_in_dataset != total_images && mode == ToolbarMode::Movie) { mode = ToolbarMode::None; updateAutoload(); @@ -171,7 +130,7 @@ void JFJochViewerToolbar::setImageNumber(int64_t total_images, int64_t current_i updateButtons(); } -void JFJochViewerToolbar::leftButtonPressed() { +void JFJochViewerToolbarImage::leftButtonPressed() { if (curr_image >= jump_value) { emit loadImage(curr_image - jump_value, sum); mode = ToolbarMode::None; @@ -179,7 +138,7 @@ void JFJochViewerToolbar::leftButtonPressed() { } } -void JFJochViewerToolbar::rightButtonPressed() { +void JFJochViewerToolbarImage::rightButtonPressed() { if (curr_image < image_count_in_dataset - jump_value) { emit loadImage(curr_image + jump_value, sum); mode = ToolbarMode::None; @@ -187,38 +146,38 @@ void JFJochViewerToolbar::rightButtonPressed() { } } -void JFJochViewerToolbar::rightmostButtonPressed() { +void JFJochViewerToolbarImage::rightmostButtonPressed() { emit loadImage(image_count_in_dataset - 1, sum); mode = ToolbarMode::None; updateAutoload(); } -void JFJochViewerToolbar::leftmostButtonPressed() { +void JFJochViewerToolbarImage::leftmostButtonPressed() { emit loadImage(0, sum); mode = ToolbarMode::None; updateAutoload(); } -void JFJochViewerToolbar::imageNumberSliderPressed() { +void JFJochViewerToolbarImage::imageNumberSliderPressed() { image_number_slider_manual = true; mode = ToolbarMode::None; updateAutoload(); } -void JFJochViewerToolbar::imageNumberSliderReleased() { +void JFJochViewerToolbarImage::imageNumberSliderReleased() { image_number_slider_manual = false; int val = image_number_slider->value(); emit loadImage(val, sum); } -void JFJochViewerToolbar::imageNumberSliderMoved(int val) { +void JFJochViewerToolbarImage::imageNumberSliderMoved(int val) { if (!image_number_slider_timer->isActive()) { emit loadImage(val, sum); image_number_slider_timer->start(300); } } -void JFJochViewerToolbar::editFinalized() { +void JFJochViewerToolbarImage::editFinalized() { bool ok; int editedValue = current_image_edit->text().toInt(&ok); @@ -229,32 +188,15 @@ void JFJochViewerToolbar::editFinalized() { } } -void JFJochViewerToolbar::foregroundSet(double val) { - if (auto_foreground) { - auto_foreground = false; - auto_foreground_button->setChecked(false); - emit setAutoForeground(false); - } - emit setForeground(static_cast(val)); -} -void JFJochViewerToolbar::updateForeground(float val) { - QSignalBlocker blocker(foreground_slider); - foreground_slider->setValue(val); -} - -void JFJochViewerToolbar::colorComboBoxSet(int val) { - emit colorMapChanged(val); -} - -void JFJochViewerToolbar::setImageJump(int val) { +void JFJochViewerToolbarImage::setImageJump(int val) { jump_value = val; updateButtons(); mode = ToolbarMode::None; updateAutoload(); } -void JFJochViewerToolbar::setSummation(int val) { +void JFJochViewerToolbarImage::setSummation(int val) { sum = val; jump_value = val; jump->setValue(val); @@ -266,7 +208,7 @@ void JFJochViewerToolbar::setSummation(int val) { updateAutoload(); } -void JFJochViewerToolbar::autoloadButtonPressed() { +void JFJochViewerToolbarImage::autoloadButtonPressed() { if (mode == ToolbarMode::Autoload) mode = ToolbarMode::None; else @@ -274,7 +216,7 @@ void JFJochViewerToolbar::autoloadButtonPressed() { updateAutoload(); } -void JFJochViewerToolbar::movieButtonPressed() { +void JFJochViewerToolbarImage::movieButtonPressed() { if (mode == ToolbarMode::Movie) mode = ToolbarMode::None; else @@ -282,7 +224,7 @@ void JFJochViewerToolbar::movieButtonPressed() { updateAutoload(); } -void JFJochViewerToolbar::movieTimerTimeout() { +void JFJochViewerToolbarImage::movieTimerTimeout() { switch (mode) { case ToolbarMode::Autoload: emit loadImage(-1, 1); @@ -299,7 +241,7 @@ void JFJochViewerToolbar::movieTimerTimeout() { } } -void JFJochViewerToolbar::updateAutoload() { +void JFJochViewerToolbarImage::updateAutoload() { switch (mode) { case ToolbarMode::None: autoload_button->setChecked(false); @@ -326,13 +268,7 @@ void JFJochViewerToolbar::updateAutoload() { } } -void JFJochViewerToolbar::setAutoloadMode(JFJochViewerToolbar::ToolbarMode input) { +void JFJochViewerToolbarImage::setAutoloadMode(JFJochViewerToolbarImage::ToolbarMode input) { mode = input; updateAutoload(); } - -void JFJochViewerToolbar::autoForegroundButtonPressed() { - auto_foreground = !auto_foreground; - auto_foreground_button->setChecked(auto_foreground); - emit setAutoForeground(auto_foreground); -} \ No newline at end of file diff --git a/viewer/JFJochViewerToolbar.h b/viewer/JFJochViewerToolbarImage.h similarity index 70% rename from viewer/JFJochViewerToolbar.h rename to viewer/JFJochViewerToolbarImage.h index 1c935429..44c19d44 100644 --- a/viewer/JFJochViewerToolbar.h +++ b/viewer/JFJochViewerToolbarImage.h @@ -1,21 +1,20 @@ // SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only -#ifndef JFJOCH_JFJOCHVIEWERTOOLBAR_H -#define JFJOCH_JFJOCHVIEWERTOOLBAR_H +#ifndef JFJOCH_JFJOCHVIEWERTOOLBARIMAGE_H +#define JFJOCH_JFJOCHVIEWERTOOLBARIMAGE_H #include #include -#include -#include #include #include -#include -#include "widgets/SliderPlusBox.h" +#include + +#include "widgets/NumberLineEdit.h" #include "widgets/NumericComboBox.h" -class JFJochViewerToolbar : public QToolBar { -Q_OBJECT +class JFJochViewerToolbarImage : public QToolBar { + Q_OBJECT public: enum class ToolbarMode {Autoload, Movie, None}; @@ -25,8 +24,6 @@ private: size_t image_count_in_dataset; int64_t curr_image; - bool auto_foreground = false; - int jump_value = 1; int sum = 1; @@ -43,11 +40,6 @@ private: QTimer *image_number_slider_timer; bool image_number_slider_manual = false; - SliderPlusBox *foreground_slider; - QPushButton *auto_foreground_button; - - QComboBox *color_map_select; - QPushButton *movie_button; QPushButton *autoload_button; @@ -60,15 +52,10 @@ private: void updateAutoload(); signals: void loadImage(int64_t number, int summation); - void setForeground(float val); - void colorMapChanged(int val); - void setAutoForeground(bool val); public: - explicit JFJochViewerToolbar(QWidget *parent = nullptr); - + explicit JFJochViewerToolbarImage(QWidget *parent = nullptr); public slots: void setImageNumber(int64_t total_images, int64_t current_image); - void updateForeground(float val); void setAutoloadMode(ToolbarMode input); private slots: void leftButtonPressed(); @@ -81,15 +68,12 @@ private slots: void imageNumberSliderMoved(int val); void imageNumberSliderReleased(); - void foregroundSet(double val); - void colorComboBoxSet(int val); void setImageJump(int val); void setSummation(int val); void movieButtonPressed(); void autoloadButtonPressed(); void movieTimerTimeout(); - void autoForegroundButtonPressed(); }; -#endif //JFJOCH_JFJOCHVIEWERTOOLBAR_H +#endif //JFJOCH_JFJOCHVIEWERTOOLBARIMAGE_H \ No newline at end of file diff --git a/viewer/JFJochViewerWindow.cpp b/viewer/JFJochViewerWindow.cpp index d5eda1d9..8fc66247 100644 --- a/viewer/JFJochViewerWindow.cpp +++ b/viewer/JFJochViewerWindow.cpp @@ -22,8 +22,11 @@ JFJochViewerWindow::JFJochViewerWindow(QWidget *parent, bool dbus, const QString menuBar = new JFJochViewerMenu(this); setMenuBar(menuBar); - toolBar = new JFJochViewerToolbar(this); - addToolBar(toolBar); + toolBarImage = new JFJochViewerToolbarImage(this); + addToolBar(toolBarImage); + + toolBarDisplay = new JFJochViewerToolbarDisplay(this); + addToolBar(toolBarDisplay); auto statusbar = new JFJochViewerStatusBar(this); setStatusBar(statusbar); @@ -150,22 +153,25 @@ JFJochViewerWindow::JFJochViewerWindow(QWidget *parent, bool dbus, const QString connect(reading_worker, &JFJochImageReadingWorker::imageStatsUpdated, side_panel, &JFJochViewerSidePanel::loadImage); - connect(reading_worker, &JFJochImageReadingWorker::imageNumberChanged, toolBar, - &JFJochViewerToolbar::setImageNumber); + connect(reading_worker, &JFJochImageReadingWorker::imageNumberChanged, toolBarImage, + &JFJochViewerToolbarImage::setImageNumber); - connect(toolBar, &JFJochViewerToolbar::loadImage, reading_worker, &JFJochImageReadingWorker::LoadImage); + connect(toolBarImage, &JFJochViewerToolbarImage::loadImage, reading_worker, &JFJochImageReadingWorker::LoadImage); - connect(toolBar, &JFJochViewerToolbar::setForeground, viewer, + connect(toolBarDisplay, &JFJochViewerToolbarDisplay::setForeground, viewer, &JFJochViewerImage::changeForeground); - connect(toolBar, &JFJochViewerToolbar::setAutoForeground, viewer, + connect(toolBarDisplay, &JFJochViewerToolbarDisplay::setBackground, viewer, + &JFJochViewerImage::changeBackground); + + connect(toolBarDisplay, &JFJochViewerToolbarDisplay::setAutoForeground, viewer, &JFJochViewerImage::setAutoForeground); - connect(toolBar, &JFJochViewerToolbar::colorMapChanged, viewer, + connect(toolBarDisplay, &JFJochViewerToolbarDisplay::colorMapChanged, viewer, &JFJochViewerImage::setColorMap); connect(viewer, &JFJochViewerImage::foregroundChanged, - toolBar, &JFJochViewerToolbar::updateForeground); + toolBarDisplay, &JFJochViewerToolbarDisplay::updateForeground); connect(viewer, &JFJochViewerImage::roiBoxUpdated, reading_worker, &JFJochImageReadingWorker::SetROIBox); @@ -234,7 +240,7 @@ JFJochViewerWindow::JFJochViewerWindow(QWidget *parent, bool dbus, const QString reading_worker, &JFJochImageReadingWorker::LoadImage); connect(reading_worker, &JFJochImageReadingWorker::setToolbarMode, - toolBar, &JFJochViewerToolbar::setAutoloadMode); + toolBarImage, &JFJochViewerToolbarImage::setAutoloadMode); connect(side_panel, &JFJochViewerSidePanel::analyze, reading_worker, &JFJochImageReadingWorker::Analyze); diff --git a/viewer/JFJochViewerWindow.h b/viewer/JFJochViewerWindow.h index cde28cd5..b3510889 100644 --- a/viewer/JFJochViewerWindow.h +++ b/viewer/JFJochViewerWindow.h @@ -7,7 +7,8 @@ #include #include "JFJochViewerMenu.h" -#include "JFJochViewerToolbar.h" +#include "JFJochViewerToolbarDisplay.h" +#include "JFJochViewerToolbarImage.h" #include "../reader/JFJochHDF5Reader.h" #include "JFJochImageReadingWorker.h" #include "JFJochViewerDatasetInfo.h" @@ -21,7 +22,9 @@ public: private: - JFJochViewerToolbar *toolBar; + JFJochViewerToolbarImage *toolBarImage; + JFJochViewerToolbarDisplay *toolBarDisplay; + JFJochViewerMenu *menuBar; JFJochViewerDatasetInfo *dataset_info; JFJochImageReadingWorker *reading_worker;