BachelorThesis::BachelorThesis(QWidget *parent) : QMainWindow(parent), videoReader( VideoReader::Type::CPU ), playbackSpeed( 1 ), doBackgroundSubtraction( false ), doMeanShiftFiltering( false ), blurAmount( 1 ), isMouseButtonDown( false ), isVideoPaused( true ), originalImage( 640, 480, CV_8UC4 ) { ui.setupUi(this); timer = Timer(); pipeline = new ProcessingPipeline( ); hardwareInfoDialog = new HardwareInfoDialog( this ); // passes all events for the videoLabel to this class and handles them via a eventfilter ui.videoLabel->installEventFilter( this ); ui.originalVideoLabel->installEventFilter( this ); origin = QPoint( 0, 0 ); roiSelector = new QRubberBand(QRubberBand::Rectangle, ui.videoLabel); roiSelector->setGeometry(QRect(QPoint( 0, 0 ), QPoint( 720, 576 ) ).normalized()); connect( ui.actionOpen_File, SIGNAL( triggered() ), this, SLOT( openFile() ) ); connect( ui.pushButton, SIGNAL( clicked() ), this, SLOT( startVideo() ) ); // TODO: fix this, it should only call this slot if the slider is moved by hand //connect( ui.progressBarSlider, SIGNAL( valueChanged( int) ), this, SLOT( jumpToFrame( int ) ) ); connect( ui.actionOpen_Sample, SIGNAL( triggered() ), this, SLOT( openSampleFile() ) ); connect( ui.actionHardware_Info, SIGNAL( triggered() ), this, SLOT( openHardwareInfoDialog() ) ); connect( ui.actionProcesingPipeline, SIGNAL( triggered() ), ( QObject* ) pipeline, SLOT( toggleProcessingPipelineConfigWidgetDisplay() ) ); connect( ui.actionOpticalFlowSelector, SIGNAL( triggered() ), ( QObject* ) pipeline, SLOT( toggleOpticalFlowSelectorDialog() ) ); connect( ui.actionOpen_Video_Stream, SIGNAL( triggered() ), this, SLOT( openVideoStream() ) ); }
std::string SampleChooserDialog::openSampleFile(const std::string& caption, QWidget* parent) { return openSampleFile(caption, K::File("samples"), parent); }