-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathimagewidget.cpp
98 lines (79 loc) · 2.26 KB
/
imagewidget.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include "graphicsscene.h"
#include "imagewidget.h"
#include "ui_imagewidget.h"
#include <Common.hpp>
ImageWidget::ImageWidget( QWidget *parent ) : QWidget( parent ), ui( new Ui::ImageWidget ) {
ui->setupUi( this );
m_scene = new GraphicsScene( this );
ui->graphicsView->setScene( m_scene );
setViewBgColor( Qt::black );
QPalette p( palette( ) );
p.setColor( QPalette::Background, Qt::lightGray );
setAutoFillBackground( true );
setPalette( p );
}
ImageWidget::~ImageWidget( ) {
delete ui;
}
void ImageWidget::hideControls( ) {
ui->frameControls->hide( );
}
void ImageWidget::showControls( ) {
ui->frameControls->show( );
}
void ImageWidget::setViewBgColor( const QColor &color ) {
if( ui->graphicsView->scene( ) ) {
ui->graphicsView->scene( )->setBackgroundBrush( color );
}
}
GraphicsScene* ImageWidget::scene( ) const {
return( m_scene );
}
QGraphicsView* ImageWidget::graphicsView( ) {
return( ui->graphicsView );
}
size_t ImageWidget::viewNumber( ) const {
return( m_viewNumber );
}
void ImageWidget::setViewNumber( const size_t &viewNumber ) {
m_viewNumber = viewNumber;
}
void ImageWidget::setRange( int start, int end ) {
if( start > end ) {
throw std::invalid_argument( BIAL_ERROR( "start should be smaller than end" ) );
}
ui->spinBox->setMinimum( start );
ui->spinBox->setMaximum( end );
ui->horizontalSlider->setMinimum( start );
ui->horizontalSlider->setMaximum( end );
if( start == end ) {
ui->spinBox->setEnabled( false );
ui->horizontalSlider->setEnabled( false );
}
}
void ImageWidget::setSlice( int slice ) {
if( ui->spinBox->value( ) != slice ) {
ui->spinBox->setValue( slice );
}
if( ui->horizontalSlider->value( ) != slice ) {
ui->horizontalSlider->setValue( slice );
}
}
void ImageWidget::show( ) {
QWidget::show( );
}
void ImageWidget::on_spinBox_valueChanged( int position ) {
emit sliceChanged( m_viewNumber, position );
}
void ImageWidget::on_rotateButton_clicked( ) {
emit rotate( m_viewNumber );
}
void ImageWidget::on_horizontalSlider_valueChanged( int position ) {
emit sliceChanged( m_viewNumber, position );
}
void ImageWidget::on_flip_h_button_clicked( ) {
emit fliph( m_viewNumber );
}
void ImageWidget::on_flip_v_button_clicked( ) {
emit flipv( m_viewNumber );
}