Example #1
0
void ConvertDialogTest::convert_addImage_imageNotNull()
{
    EffectsScrollArea *effectsScrollArea = convertDialog->effectsScrollArea;
    QGroupBox *imageGroupBox = effectsScrollArea->imageGroupBox;
    imageGroupBox->setChecked(true);

    QString filePath = QDir::tempPath() + QDir::separator()
            + "sir_test_convert_addImage_imageNotNull.bmp";
    effectsScrollArea->imagePathLineEdit->setText(filePath);
    effectsScrollArea->imagePositionComboBox->setCurrentIndex(MiddleTopEdge);
    QPoint imagePoint(1, 2);
    effectsScrollArea->imageXSpinBox->setValue(imagePoint.x());
    effectsScrollArea->imageYSpinBox->setValue(imagePoint.y());
    effectsScrollArea->imageXComboBox->setCurrentIndex(Percent);
    effectsScrollArea->imageYComboBox->setCurrentIndex(Percent);
    effectsScrollArea->imageOpacitySpinBox->setValue(0.5);
    effectsScrollArea->imageRotationSpinBox->setValue(40);

    QImage image(2, 3, QImage::Format_RGB32);
    image.fill(Qt::green);
    QVERIFY(image.save(filePath));

    convertDialog->convert();

    QFile file(filePath);
    QVERIFY(file.remove());

    SharedInformation *sharedInfo = convertDialog->sharedInfo;
    EffectsConfiguration conf = sharedInfo->effectsConfiguration();
    QCOMPARE(conf.getImage(), image);
    QCOMPARE(conf.getImageLoadError(), false);
    QCOMPARE(conf.getImagePosModifier(), MiddleTopEdge);
    QCOMPARE(conf.getImagePos(), imagePoint);
    QCOMPARE(conf.getImageUnitPair(), PosUnitPair(Percent, Percent));
    QCOMPARE(conf.getImageOpacity(), 0.5);
    QCOMPARE(conf.getImageRotation(), 40);
}
Example #2
0
void CCxImageCtrl::OnLButtonUp(UINT nFlags, CPoint point) 
{
	CPoint	imagePoint(point);
	
	ClientToImage(imagePoint);
	
	if(m_bCaptureWasSet&&m_hImage.IsInside(imagePoint.x,imagePoint.y))
	{
		CPoint lefttop(m_RefPoint), rightbottom(point);
		ClientToImage(lefttop);
		ClientToImage(rightbottom);

		switch(GetState()) 
		{
		case CCxImageCtrl::IS_Move:
			SetCursor(AfxGetApp()->LoadCursor(IDC_HANDCATCHCURSOR1));
			break;
		case CCxImageCtrl::IS_Crop:

			SaveImageToUndo();

			m_hImage.Crop(CRect(lefttop,rightbottom));

			//  [Tue 7/6/2004]
			//m_bCurrentImageWasSave = false;
			m_bIsSaved = false;

			Refresh();

			break;
		case CCxImageCtrl::IS_TextMove:
		case CCxImageCtrl::IS_Text:
			
			m_bIsSaved = false;

			break;
		case CCxImageCtrl::IS_Pen:
			CPoint	fromPoint(m_RefPoint), toPoint(point);
			
			ClientToImage(fromPoint);
			ClientToImage(toPoint);
			
			m_hImage.DrawLine(fromPoint.x, toPoint.x, m_hImage.GetHeight()-fromPoint.y,m_hImage.GetHeight()-toPoint.y,GetPenColor());

			//  [Tue 7/6/2004]
			//m_bCurrentImageWasSave = false;
			m_bIsSaved = false;

			break;		
		}
	}

	if(m_bCaptureWasSet)
	{
		ReleaseCapture();
		Invalidate(FALSE);
		m_bCaptureWasSet = FALSE;
	}
	
	
	CWnd::OnLButtonUp(nFlags, point);
}
Example #3
0
void CCxImageCtrl::OnMouseMove(UINT nFlags, CPoint point) 
{
	CPoint	imagePoint(point);
	
	ClientToImage(imagePoint);

	CRect clientRect;
	GetClientRect(&clientRect);
	
	if(m_hImage.IsInside(imagePoint.x,imagePoint.y) || (GetState()==CCxImageCtrl::IS_TextMove && m_bCaptureWasSet))
	{
		switch(GetState()) 
		{
		case CCxImageCtrl::IS_Move:
			if(m_bCaptureWasSet)
			{
				SCROLLINFO si	=	{0};
				
				if(m_dwWidth>clientRect.Width())
				{
					GetScrollInfo(SB_HORZ,&si);
					m_nHScrollPos = m_RefScroll.cx - point.x + m_RefPoint.x;

					if(m_nHScrollPos<si.nMin)
						m_nHScrollPos = si.nMin;
					if(m_nHScrollPos>si.nMax)
						m_nHScrollPos = si.nMax;
					
					SetScrollPos(SB_HORZ,m_RefScroll.cx - point.x + m_RefPoint.x); 
					Invalidate(FALSE);
				}
				
				if(m_dwHeight>clientRect.Height())
				{
					GetScrollInfo(SB_VERT,&si);
					m_nVScrollPos = m_RefScroll.cy - point.y + m_RefPoint.y;
					
					if(m_nVScrollPos<si.nMin)
						m_nVScrollPos = si.nMin;
					if(m_nVScrollPos>si.nMax)
						m_nVScrollPos = si.nMax;
					
					SetScrollPos(SB_VERT,m_RefScroll.cy - point.y + m_RefPoint.y); 
					Invalidate(FALSE);
				}
			}
			break;
		case CCxImageCtrl::IS_Crop:
			if(m_bCaptureWasSet)
			{
				m_CropActivePoint = point;

				ClientToImage(m_CropActivePoint);
				ImageToClient(m_CropActivePoint);
				
				Invalidate(FALSE);
			}
			break;
		case CCxImageCtrl::IS_TextMove:
			if (m_pTextComment != NULL)
			{
				if (!m_bCaptureWasSet)
				{
					if (!m_pTextComment->GetRectangle().PtInRect(imagePoint))
					{
						SetState(IS_Text);
						SetCursor(AfxGetApp()->LoadCursor(IDC_TEXTCURSOR));
					}
				}
				else
				{
					m_RefPoint = imagePoint;
					m_RefPoint.Offset(m_RefOffset);

					m_hImage.Copy(m_hImageBuffer);
					m_pTextComment->SetPosition(m_RefPoint, GetDC());

					m_pTextComment->DrawText(m_hImage, CPaintDC(GetDesktopWindow()));
					Invalidate(false);
				}
			}
			break;
		case CCxImageCtrl::IS_Text:
			if (m_pTextComment != NULL)
			{
				if (m_pTextComment->GetRectangle().PtInRect(imagePoint))
				{
					SetState(IS_TextMove);
					SetCursor(AfxGetApp()->LoadCursor(IDC_HANDCATCHCURSOR2));
					
					Invalidate(false);
				}
			}
			break;
		case CCxImageCtrl::IS_Pen:
			{
				// Draw Line 
				if(m_bCaptureWasSet)
				{
					CPoint	fromPoint(m_RefPoint), toPoint(point);
					
					ClientToImage(fromPoint);
					ClientToImage(toPoint);
					
					m_hImage.DrawLine(fromPoint.x, toPoint.x, m_hImage.GetHeight()-fromPoint.y,m_hImage.GetHeight()-toPoint.y,GetPenColor());
					
					//and remember new position [4/7/2004]
					m_RefScroll = CSize(m_nHScrollPos,m_nVScrollPos);
					m_RefPoint = point;

					Invalidate(FALSE);
				}
			}
			break;
		}
	}
	
	
	CWnd::OnMouseMove(nFlags, point);
}
Example #4
0
void CCxImageCtrl::OnLButtonDown(UINT nFlags, CPoint point) 
{
	CPoint	imagePoint(point);
	ClientToImage(imagePoint);

	CRect clientRect;
	GetClientRect(&clientRect);
	

	if(m_hImage.IsInside(imagePoint.x,imagePoint.y))
	{
		switch(GetState()) 
		{
		case CCxImageCtrl::IS_Move:
			if (m_pTextComment)
			{
				delete m_pTextComment;
				m_pTextComment = NULL;
			}
			SetCapture();
			m_bCaptureWasSet = TRUE;
			SetCursor(AfxGetApp()->LoadCursor(IDC_HANDCATCHCURSOR2));

			m_RefScroll = CSize(m_nHScrollPos,m_nVScrollPos);
			m_RefPoint = point;
			break;
		case CCxImageCtrl::IS_Crop:
			if (m_pTextComment)
			{
				delete m_pTextComment;
				m_pTextComment = NULL;
			}
			SetCapture();
			m_bCaptureWasSet = TRUE;
			SetCursor(AfxGetApp()->LoadCursor(IDC_SELECTCURSOR));

			m_RefScroll = CSize(m_nHScrollPos,m_nVScrollPos);
			m_RefPoint = point;

			ClientToImage(m_RefPoint);
			ImageToClient(m_RefPoint);
			
			break;
		case CCxImageCtrl::IS_Pen:
			if (m_pTextComment)
			{
				delete m_pTextComment;
				m_pTextComment = NULL;
			}
			SaveImageToUndo();

			SetCapture();
			m_bCaptureWasSet = TRUE;
			SetCursor(AfxGetApp()->LoadCursor(IDC_PENCURSOR));

			m_RefScroll = CSize(m_nHScrollPos,m_nVScrollPos);
			m_RefPoint = point;
			break;
		case IS_TextMove:
			SetCapture();
			m_RefOffset= m_pTextComment->GetPosition() - imagePoint;
			m_bCaptureWasSet = TRUE;
			break;
		case CCxImageCtrl::IS_Text:
			SaveImageToUndo();
			SetCapture();
			m_bCaptureWasSet = TRUE;
			SetCursor(AfxGetApp()->LoadCursor(IDC_TEXTCURSOR));

			m_RefScroll = CSize(m_nHScrollPos, m_nVScrollPos);
			m_RefPoint = imagePoint;

			CTextCommentSettings settingsDlg(this);

			settingsDlg.m_fontColor = m_TextColor;
			settingsDlg.m_fontSize = m_TextSize;
			settingsDlg.m_fontName = m_FontName;

			if(settingsDlg.DoModal()==IDOK)
			{
				m_TextColor = settingsDlg.m_fontColor;
				m_TextSize = settingsDlg.m_fontSize;
				m_FontName = settingsDlg.m_fontName;

				if (m_pTextComment) 
				{
					delete m_pTextComment;
					m_pTextComment = NULL;
				}

				m_pTextComment = new CTextComment(m_RefPoint);
				m_pTextComment->SetColor(settingsDlg.m_fontColor);
				m_pTextComment->SetText(settingsDlg.GetCommentText());
				m_pTextComment->SetFont(settingsDlg.m_Font, GetDC());

				m_hImageBuffer.Copy(m_hImage);

				m_pTextComment->DrawText(m_hImage, CPaintDC(GetDesktopWindow()));	

				Invalidate(FALSE);
			} 

			break;
		}
	}
	
	CWnd::OnLButtonDown(nFlags, point);
}