#ifndef CVVISUAL_IMAGE_CALL_TAB_HPP #define CVVISUAL_IMAGE_CALL_TAB_HPP #include <QHBoxLayout> #include <QString> #include <QPushButton> #include <QVBoxLayout> #include <QWidget> #include "call_tab.hpp" #include "../view/image_view.hpp" #include "../controller/view_controller.hpp" #include "../impl/single_image_call.hpp" namespace cvv { namespace gui { /** Single Image Call Tab. * @brief Inner part of a tab, contains an IageView. * The inner part of a tab or window * containing an ImageView. * Allows to access the help. */ class ImageCallTab : public CallTab { Q_OBJECT public: /** * @brief Short constructor named after the Call. * Initializes the ImageCallTab and names it after the associated * FilterCall. * @param call the SingleImageCall containing the information to be * visualized. */ ImageCallTab(const cvv::impl::SingleImageCall &call); /** * @brief Constructor using default view. * Short constructor.. * @param tabName. * @param call the SingleImageCall containing the information to be * visualized. * @attention might be deleted. */ ImageCallTab(const QString &tabName, const cvv::impl::SingleImageCall &call); /** * @brief get ID. * @return the ID of the CallTab. * (ID is equal to the ID of the associated call). * Overrides CallTab's getId. */ size_t getId() const override; private slots: /** * @brief Help Button clicked. * Called when the help button is clicked. */ void helpButtonClicked() const; private: /** * @brief Sets up the visible parts. * Called by the constructors. */ void createGui(); /** * @brief sets up View referred to by viewId. * @param viewId ID of the view to be set. * @throw std::out_of_range if no view named viewId was registered. */ void setView(); util::Reference<const cvv::impl::SingleImageCall> imageCall_; cvv::view::ImageView *imageView_; QPushButton *helpButton_; QHBoxLayout *hlayout_; QVBoxLayout *vlayout_; QWidget *upperBar_; }; } } // namespaces #endif