vendor: OpenCV 5.0.0 snapshot at 755e50675d97db9b7d449d8bd6b09888646f6c6e
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
#ifndef CVVISUAL_MATCH_CALL_TAB_HPP
|
||||
#define CVVISUAL_MATCH_CALL_TAB_HPP
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include <QString>
|
||||
#include <QWidget>
|
||||
|
||||
#include "multiview_call_tab.hpp"
|
||||
#include "../view/match_view.hpp"
|
||||
#include "../impl/match_call.hpp"
|
||||
#include "../util/util.hpp"
|
||||
|
||||
namespace cvv
|
||||
{
|
||||
namespace gui
|
||||
{
|
||||
|
||||
/** Match Call Tab.
|
||||
* @brief Inner part of a tab, contains a MatchView.
|
||||
* The inner part of a tab or window
|
||||
* containing a MatchView.
|
||||
* Allows to switch views and to access the help.
|
||||
*/
|
||||
class MatchCallTab
|
||||
: public MultiViewCallTab<cvv::view::MatchView, cvv::impl::MatchCall>
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
/**
|
||||
* @brief Short constructor named after Call and using the requested View
|
||||
* from the Call or, if no or invalid request, default view.
|
||||
* Initializes the MatchCallTab with the requested or default view and names it after
|
||||
* the associated MatchCall.
|
||||
* @param matchCall - the MatchCall containing the information to be
|
||||
* visualized.
|
||||
*/
|
||||
MatchCallTab(const cvv::impl::MatchCall &matchCall)
|
||||
: MatchCallTab{
|
||||
matchCall, matchCall.requestedView()
|
||||
}
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Constructor with possibility to select view.
|
||||
* Note that the default view is still created first.
|
||||
* @param matchCall - the MatchCall containing the information to be
|
||||
* visualized.
|
||||
* @param matchViewId - ID of the View to be set up. If a view of this name does
|
||||
* not exist, the default view will be used.
|
||||
*/
|
||||
MatchCallTab(const cvv::impl::MatchCall& matchCall, const QString& matchViewId)
|
||||
: MultiViewCallTab<cvv::view::MatchView, cvv::impl::MatchCall>{
|
||||
matchCall, matchViewId, QString{ "default_match_view" }, QString{ "LineMatchView" }
|
||||
}
|
||||
{
|
||||
oldView_ = view_;
|
||||
connect(&this->viewSet, SIGNAL(signal()), this, SLOT(viewChanged()));
|
||||
}
|
||||
|
||||
~MatchCallTab()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Register the template class to the map of MatchViews.
|
||||
* View needs to offer a constructor of the form View(const
|
||||
* cvv::impl::MatchCall&, QWidget*).
|
||||
* @param name to register the class under.
|
||||
* @tparam View - Class to register.
|
||||
* @return true when the view was registered and false when the name was
|
||||
* already taken.
|
||||
*/
|
||||
template <class View> static bool registerMatchView(const QString &name)
|
||||
{
|
||||
return registerView<View>(name);
|
||||
}
|
||||
|
||||
private slots:
|
||||
|
||||
/**
|
||||
* @brief Slot called when the view has completely changed.
|
||||
*/
|
||||
void viewChanged()
|
||||
{
|
||||
if(oldView_ != nullptr)
|
||||
{
|
||||
view_->setKeyPointSelection(oldView_->getKeyPointSelection());
|
||||
view_->setMatchSelection(oldView_->getMatchSelection());
|
||||
}
|
||||
oldView_ = view_;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
/**
|
||||
* @brief usually equal to view_, but not immediately changed when view_ is changed.
|
||||
*/
|
||||
cvv::view::MatchView* oldView_;
|
||||
|
||||
};
|
||||
}
|
||||
} // namespaces
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user