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); }
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); }
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); }
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); }