Fix some bugs.
--HG-- branch : develop
This commit is contained in:
parent
46d6fcd29d
commit
d3cf15f5b8
|
@ -694,7 +694,7 @@ void MainWindow::ClosedDialog(int result)
|
||||||
// Do not check for nullptr! See issue #719.
|
// Do not check for nullptr! See issue #719.
|
||||||
ui->view->itemClicked(tool);
|
ui->view->itemClicked(tool);
|
||||||
}
|
}
|
||||||
ArrowTool();
|
ArrowTool(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -718,7 +718,7 @@ void MainWindow::ClosedDialogWithApply(int result, VMainGraphicsScene *scene)
|
||||||
vtool->DialogLinkDestroy();
|
vtool->DialogLinkDestroy();
|
||||||
connect(vtool, &DrawTool::ToolTip, this, &MainWindow::ShowToolTip);
|
connect(vtool, &DrawTool::ToolTip, this, &MainWindow::ShowToolTip);
|
||||||
}
|
}
|
||||||
ArrowTool();
|
ArrowTool(true);
|
||||||
ui->view->itemClicked(vtool);// Don't check for nullptr here
|
ui->view->itemClicked(vtool);// Don't check for nullptr here
|
||||||
// If insert not to the end of file call lite parse
|
// If insert not to the end of file call lite parse
|
||||||
if (doc->getCursor() > 0)
|
if (doc->getCursor() > 0)
|
||||||
|
@ -1131,7 +1131,7 @@ void MainWindow::ClosedDialogDuplicateDetail(int result)
|
||||||
// Do not check for nullptr! See issue #719.
|
// Do not check for nullptr! See issue #719.
|
||||||
ui->view->itemClicked(tool);
|
ui->view->itemClicked(tool);
|
||||||
}
|
}
|
||||||
ArrowTool();
|
ArrowTool(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1209,7 +1209,7 @@ void MainWindow::ClosedDialogGroup(int result)
|
||||||
qApp->getUndoStack()->push(addGroup);
|
qApp->getUndoStack()->push(addGroup);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ArrowTool();
|
ArrowTool(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1220,7 +1220,7 @@ void MainWindow::ClosedDialogPiecePath(int result)
|
||||||
{
|
{
|
||||||
VToolPiecePath::Create(dialogTool, sceneDetails, doc, pattern);
|
VToolPiecePath::Create(dialogTool, sceneDetails, doc, pattern);
|
||||||
}
|
}
|
||||||
ArrowTool();
|
ArrowTool(true);
|
||||||
doc->LiteParseTree(Document::LiteParse);
|
doc->LiteParseTree(Document::LiteParse);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1232,7 +1232,7 @@ void MainWindow::ClosedDialogPin(int result)
|
||||||
{
|
{
|
||||||
VToolPin::Create(dialogTool, doc, pattern);
|
VToolPin::Create(dialogTool, doc, pattern);
|
||||||
}
|
}
|
||||||
ArrowTool();
|
ArrowTool(true);
|
||||||
doc->LiteParseTree(Document::LiteParse);
|
doc->LiteParseTree(Document::LiteParse);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1244,7 +1244,7 @@ void MainWindow::ClosedDialogPlaceLabel(int result)
|
||||||
{
|
{
|
||||||
VToolPlaceLabel::Create(dialogTool, doc, pattern);
|
VToolPlaceLabel::Create(dialogTool, doc, pattern);
|
||||||
}
|
}
|
||||||
ArrowTool();
|
ArrowTool(true);
|
||||||
doc->LiteParseTree(Document::LiteParse);
|
doc->LiteParseTree(Document::LiteParse);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1258,7 +1258,7 @@ void MainWindow::ClosedDialogInsertNode(int result)
|
||||||
SCASSERT(dTool != nullptr)
|
SCASSERT(dTool != nullptr)
|
||||||
VToolSeamAllowance::InsertNode(dTool->GetNode(), dTool->GetPieceId(), sceneDetails, pattern, doc);
|
VToolSeamAllowance::InsertNode(dTool->GetNode(), dTool->GetPieceId(), sceneDetails, pattern, doc);
|
||||||
}
|
}
|
||||||
ArrowTool();
|
ArrowTool(true);
|
||||||
doc->LiteParseTree(Document::LiteParse);
|
doc->LiteParseTree(Document::LiteParse);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2271,49 +2271,58 @@ QT_WARNING_POP
|
||||||
/**
|
/**
|
||||||
* @brief ArrowTool enable arrow tool.
|
* @brief ArrowTool enable arrow tool.
|
||||||
*/
|
*/
|
||||||
void MainWindow::ArrowTool()
|
void MainWindow::ArrowTool(bool checked)
|
||||||
{
|
{
|
||||||
qCDebug(vMainWindow, "Arrow tool.");
|
if (checked)
|
||||||
CancelTool();
|
|
||||||
for (auto pointer : toolButtonPointerList)
|
|
||||||
{
|
{
|
||||||
pointer->setChecked(true);
|
qCDebug(vMainWindow, "Arrow tool.");
|
||||||
|
CancelTool();
|
||||||
|
for (auto pointer : toolButtonPointerList)
|
||||||
|
{
|
||||||
|
pointer->setChecked(true);
|
||||||
|
}
|
||||||
|
currentTool = Tool::Arrow;
|
||||||
|
emit EnableItemMove(true);
|
||||||
|
emit ItemsSelection(SelectionType::ByMouseRelease);
|
||||||
|
VAbstractTool::m_suppressContextMenu = false;
|
||||||
|
|
||||||
|
// Only true for rubber band selection
|
||||||
|
emit EnableLabelSelection(true);
|
||||||
|
emit EnablePointSelection(false);
|
||||||
|
emit EnableLineSelection(false);
|
||||||
|
emit EnableArcSelection(false);
|
||||||
|
emit EnableElArcSelection(false);
|
||||||
|
emit EnableSplineSelection(false);
|
||||||
|
emit EnableSplinePathSelection(false);
|
||||||
|
emit EnableNodeLabelSelection(true);
|
||||||
|
emit EnableNodePointSelection(true);
|
||||||
|
emit EnableDetailSelection(true);// Disable when done visualization details
|
||||||
|
|
||||||
|
// Hovering
|
||||||
|
emit EnableLabelHover(true);
|
||||||
|
emit EnablePointHover(true);
|
||||||
|
emit EnableLineHover(true);
|
||||||
|
emit EnableArcHover(true);
|
||||||
|
emit EnableElArcHover(true);
|
||||||
|
emit EnableSplineHover(true);
|
||||||
|
emit EnableSplinePathHover(true);
|
||||||
|
emit EnableNodeLabelHover(true);
|
||||||
|
emit EnableNodePointHover(true);
|
||||||
|
emit EnableDetailHover(true);
|
||||||
|
|
||||||
|
ui->view->AllowRubberBand(true);
|
||||||
|
ui->view->viewport()->setCursor(QCursor(Qt::ArrowCursor));
|
||||||
|
helpLabel->setText("");
|
||||||
|
ui->view->setShowToolOptions(true);
|
||||||
|
qCDebug(vMainWindow, "Enabled arrow tool.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (auto pointer : toolButtonPointerList)
|
||||||
|
{
|
||||||
|
pointer->setChecked(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
currentTool = Tool::Arrow;
|
|
||||||
emit EnableItemMove(true);
|
|
||||||
emit ItemsSelection(SelectionType::ByMouseRelease);
|
|
||||||
VAbstractTool::m_suppressContextMenu = false;
|
|
||||||
|
|
||||||
// Only true for rubber band selection
|
|
||||||
emit EnableLabelSelection(true);
|
|
||||||
emit EnablePointSelection(false);
|
|
||||||
emit EnableLineSelection(false);
|
|
||||||
emit EnableArcSelection(false);
|
|
||||||
emit EnableElArcSelection(false);
|
|
||||||
emit EnableSplineSelection(false);
|
|
||||||
emit EnableSplinePathSelection(false);
|
|
||||||
emit EnableNodeLabelSelection(true);
|
|
||||||
emit EnableNodePointSelection(true);
|
|
||||||
emit EnableDetailSelection(true);// Disable when done visualization details
|
|
||||||
|
|
||||||
// Hovering
|
|
||||||
emit EnableLabelHover(true);
|
|
||||||
emit EnablePointHover(true);
|
|
||||||
emit EnableLineHover(true);
|
|
||||||
emit EnableArcHover(true);
|
|
||||||
emit EnableElArcHover(true);
|
|
||||||
emit EnableSplineHover(true);
|
|
||||||
emit EnableSplinePathHover(true);
|
|
||||||
emit EnableNodeLabelHover(true);
|
|
||||||
emit EnableNodePointHover(true);
|
|
||||||
emit EnableDetailHover(true);
|
|
||||||
|
|
||||||
ui->view->AllowRubberBand(true);
|
|
||||||
|
|
||||||
ui->view->viewport()->unsetCursor();
|
|
||||||
helpLabel->setText("");
|
|
||||||
ui->view->setShowToolOptions(true);
|
|
||||||
qCDebug(vMainWindow, "Enabled arrow tool.");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -2326,7 +2335,7 @@ void MainWindow::keyPressEvent ( QKeyEvent * event )
|
||||||
switch (event->key())
|
switch (event->key())
|
||||||
{
|
{
|
||||||
case Qt::Key_Escape:
|
case Qt::Key_Escape:
|
||||||
ArrowTool();
|
ArrowTool(true);
|
||||||
break;
|
break;
|
||||||
case Qt::Key_Return:
|
case Qt::Key_Return:
|
||||||
case Qt::Key_Enter:
|
case Qt::Key_Enter:
|
||||||
|
@ -2387,7 +2396,7 @@ void MainWindow::ActionDraw(bool checked)
|
||||||
if (checked)
|
if (checked)
|
||||||
{
|
{
|
||||||
qCDebug(vMainWindow, "Show draw scene");
|
qCDebug(vMainWindow, "Show draw scene");
|
||||||
ArrowTool();
|
ArrowTool(true);
|
||||||
|
|
||||||
leftGoToStage->setPixmap(QPixmap("://icon/24x24/fast_forward_left_to_right_arrow.png"));
|
leftGoToStage->setPixmap(QPixmap("://icon/24x24/fast_forward_left_to_right_arrow.png"));
|
||||||
rightGoToStage->setPixmap(QPixmap("://icon/24x24/left_to_right_arrow.png"));
|
rightGoToStage->setPixmap(QPixmap("://icon/24x24/left_to_right_arrow.png"));
|
||||||
|
@ -2437,7 +2446,7 @@ void MainWindow::ActionDetails(bool checked)
|
||||||
{
|
{
|
||||||
if (checked)
|
if (checked)
|
||||||
{
|
{
|
||||||
ArrowTool();
|
ArrowTool(true);
|
||||||
|
|
||||||
if(drawMode)
|
if(drawMode)
|
||||||
{
|
{
|
||||||
|
@ -2514,7 +2523,7 @@ void MainWindow::ActionLayout(bool checked)
|
||||||
{
|
{
|
||||||
if (checked)
|
if (checked)
|
||||||
{
|
{
|
||||||
ArrowTool();
|
ArrowTool(true);
|
||||||
|
|
||||||
if(drawMode)
|
if(drawMode)
|
||||||
{
|
{
|
||||||
|
@ -2879,7 +2888,7 @@ void MainWindow::Clear()
|
||||||
qCDebug(vMainWindow, "Clearing scenes.");
|
qCDebug(vMainWindow, "Clearing scenes.");
|
||||||
sceneDraw->clear();
|
sceneDraw->clear();
|
||||||
sceneDetails->clear();
|
sceneDetails->clear();
|
||||||
ArrowTool();
|
ArrowTool(true);
|
||||||
comboBoxDraws->clear();
|
comboBoxDraws->clear();
|
||||||
ui->actionDraw->setEnabled(false);
|
ui->actionDraw->setEnabled(false);
|
||||||
ui->actionDetails->setEnabled(false);
|
ui->actionDetails->setEnabled(false);
|
||||||
|
@ -3151,7 +3160,7 @@ void MainWindow::SetEnabledGUI(bool enabled)
|
||||||
{
|
{
|
||||||
if (enabled == false)
|
if (enabled == false)
|
||||||
{
|
{
|
||||||
ArrowTool();
|
ArrowTool(true);
|
||||||
qApp->getUndoStack()->clear();
|
qApp->getUndoStack()->clear();
|
||||||
}
|
}
|
||||||
SetEnableWidgets(enabled);
|
SetEnableWidgets(enabled);
|
||||||
|
@ -3794,7 +3803,7 @@ void MainWindow::LastUsedTool()
|
||||||
{
|
{
|
||||||
pointer->setChecked(true);
|
pointer->setChecked(true);
|
||||||
}
|
}
|
||||||
ArrowTool();
|
ArrowTool(true);
|
||||||
break;
|
break;
|
||||||
case Tool::BasePoint:
|
case Tool::BasePoint:
|
||||||
case Tool::SinglePoint:
|
case Tool::SinglePoint:
|
||||||
|
@ -4912,7 +4921,7 @@ void MainWindow::ChangePP(int index, bool zoomBestFit)
|
||||||
emit RefreshHistory();
|
emit RefreshHistory();
|
||||||
if (drawMode)
|
if (drawMode)
|
||||||
{
|
{
|
||||||
ArrowTool();
|
ArrowTool(true);
|
||||||
if (zoomBestFit)
|
if (zoomBestFit)
|
||||||
{
|
{
|
||||||
ZoomFitBestCurrent();
|
ZoomFitBestCurrent();
|
||||||
|
|
|
@ -124,7 +124,7 @@ private slots:
|
||||||
void ExportLayoutAs();
|
void ExportLayoutAs();
|
||||||
void ExportDetailsAs();
|
void ExportDetailsAs();
|
||||||
|
|
||||||
void ArrowTool();
|
void ArrowTool(bool checked);
|
||||||
void ToolEndLine(bool checked);
|
void ToolEndLine(bool checked);
|
||||||
void ToolLine(bool checked);
|
void ToolLine(bool checked);
|
||||||
void ToolAlongLine(bool checked);
|
void ToolAlongLine(bool checked);
|
||||||
|
|
|
@ -210,7 +210,9 @@ VPointF *VToolCutSplinePath::CutSplinePath(qreal length, const QSharedPointer<VA
|
||||||
spl2.SetApproximationScale(splPath->GetApproximationScale());
|
spl2.SetApproximationScale(splPath->GetApproximationScale());
|
||||||
|
|
||||||
*splPath1 = new VSplinePath();
|
*splPath1 = new VSplinePath();
|
||||||
|
(*splPath1)->SetApproximationScale(splPath->GetApproximationScale());
|
||||||
*splPath2 = new VSplinePath();
|
*splPath2 = new VSplinePath();
|
||||||
|
(*splPath2)->SetApproximationScale(splPath->GetApproximationScale());
|
||||||
|
|
||||||
for (qint32 i = 0; i < points.size(); i++)
|
for (qint32 i = 0; i < points.size(); i++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -237,7 +237,7 @@ void VToolSinglePoint::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
|
||||||
{
|
{
|
||||||
if (selectionType == SelectionType::ByMouseRelease)
|
if (selectionType == SelectionType::ByMouseRelease)
|
||||||
{
|
{
|
||||||
if (event->button() == Qt::LeftButton)
|
if (event->button() == Qt::LeftButton && contains(event->pos()))
|
||||||
{
|
{
|
||||||
PointChoosed();
|
PointChoosed();
|
||||||
}
|
}
|
||||||
|
|
|
@ -141,6 +141,7 @@ VToolSeamAllowance *VToolSeamAllowance::Create(VToolSeamAllowanceInitData &initD
|
||||||
VAbstractTool::AddRecord(initData.id, Tool::Piece, initData.doc);
|
VAbstractTool::AddRecord(initData.id, Tool::Piece, initData.doc);
|
||||||
piece = new VToolSeamAllowance(initData);
|
piece = new VToolSeamAllowance(initData);
|
||||||
initData.scene->addItem(piece);
|
initData.scene->addItem(piece);
|
||||||
|
VMainGraphicsView::NewSceneRect(initData.scene, qApp->getSceneView(), piece);
|
||||||
VAbstractPattern::AddTool(initData.id, piece);
|
VAbstractPattern::AddTool(initData.id, piece);
|
||||||
}
|
}
|
||||||
//Very important to delete it. Only this tool need this special variable.
|
//Very important to delete it. Only this tool need this special variable.
|
||||||
|
@ -584,12 +585,19 @@ void VToolSeamAllowance::FullUpdateFromFile()
|
||||||
void VToolSeamAllowance::EnableToolMove(bool move)
|
void VToolSeamAllowance::EnableToolMove(bool move)
|
||||||
{
|
{
|
||||||
setFlag(QGraphicsItem::ItemIsMovable, move);
|
setFlag(QGraphicsItem::ItemIsMovable, move);
|
||||||
|
|
||||||
|
m_dataLabel->setFlag(QGraphicsItem::ItemIsMovable, move);
|
||||||
|
m_patternInfo->setFlag(QGraphicsItem::ItemIsMovable, move);
|
||||||
|
m_grainLine->setFlag(QGraphicsItem::ItemIsMovable, move);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VToolSeamAllowance::AllowHover(bool enabled)
|
void VToolSeamAllowance::AllowHover(bool enabled)
|
||||||
{
|
{
|
||||||
setAcceptHoverEvents(enabled);
|
setAcceptHoverEvents(enabled);
|
||||||
|
m_dataLabel->setAcceptHoverEvents(enabled);
|
||||||
|
m_patternInfo->setAcceptHoverEvents(enabled);
|
||||||
|
m_grainLine->setAcceptHoverEvents(enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1086,13 +1094,18 @@ void VToolSeamAllowance::mousePressEvent(QGraphicsSceneMouseEvent *event)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event->button() == Qt::LeftButton && event->type() != QEvent::GraphicsSceneMouseDoubleClick)
|
if (selectionType == SelectionType::ByMouseRelease)
|
||||||
{
|
{
|
||||||
doc->SelectedDetail(m_id);
|
event->accept();// Special for not selectable item first need to call standard mousePressEvent then accept event
|
||||||
emit ChoosedTool(m_id, SceneObject::Detail);
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (event->button() == Qt::LeftButton && event->type() != QEvent::GraphicsSceneMouseDoubleClick)
|
||||||
|
{
|
||||||
|
doc->SelectedDetail(m_id);
|
||||||
|
emit ChoosedTool(m_id, SceneObject::Detail);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
event->accept();// Special for not selectable item first need to call standard mousePressEvent then accept event
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1102,6 +1115,15 @@ void VToolSeamAllowance::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
|
||||||
{
|
{
|
||||||
SetItemOverrideCursor(this, cursorArrowOpenHand, 1, 1);
|
SetItemOverrideCursor(this, cursorArrowOpenHand, 1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (selectionType == SelectionType::ByMouseRelease)
|
||||||
|
{
|
||||||
|
if (event->button() == Qt::LeftButton && contains(event->pos()))
|
||||||
|
{
|
||||||
|
doc->SelectedDetail(m_id);
|
||||||
|
emit ChoosedTool(m_id, SceneObject::Detail);
|
||||||
|
}
|
||||||
|
}
|
||||||
QGraphicsPathItem::mouseReleaseEvent(event);
|
QGraphicsPathItem::mouseReleaseEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1112,16 +1134,6 @@ void VToolSeamAllowance::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
|
||||||
{
|
{
|
||||||
SetItemOverrideCursor(this, cursorArrowOpenHand, 1, 1);
|
SetItemOverrideCursor(this, cursorArrowOpenHand, 1, 1);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
if (QGraphicsScene *scene = this->scene())
|
|
||||||
{
|
|
||||||
if (QGraphicsView *view = scene->views().at(0))
|
|
||||||
{
|
|
||||||
setCursor(view->viewport()->cursor());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
QGraphicsPathItem::hoverEnterEvent(event);
|
QGraphicsPathItem::hoverEnterEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1258,6 +1270,8 @@ VToolSeamAllowance::VToolSeamAllowance(const VToolSeamAllowanceInitData &initDat
|
||||||
setAcceptHoverEvents(true);
|
setAcceptHoverEvents(true);
|
||||||
|
|
||||||
connect(this, &VToolSeamAllowance::ChoosedTool, m_sceneDetails, &VMainGraphicsScene::ChoosedItem);
|
connect(this, &VToolSeamAllowance::ChoosedTool, m_sceneDetails, &VMainGraphicsScene::ChoosedItem);
|
||||||
|
connect(m_sceneDetails, &VMainGraphicsScene::EnableToolMove, this, &VToolSeamAllowance::EnableToolMove);
|
||||||
|
connect(m_sceneDetails, &VMainGraphicsScene::ItemSelection, this, &VToolSeamAllowance::ToolSelectionType);
|
||||||
|
|
||||||
ConnectOutsideSignals();
|
ConnectOutsideSignals();
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,8 +76,10 @@ void VisToolCutSpline::RefreshGeometry()
|
||||||
QPointF spl2p3;
|
QPointF spl2p3;
|
||||||
const QPointF p = spl->CutSpline (length, spl1p2, spl1p3, spl2p2, spl2p3 );
|
const QPointF p = spl->CutSpline (length, spl1p2, spl1p3, spl2p2, spl2p3 );
|
||||||
|
|
||||||
const VSpline sp1 = VSpline(spl->GetP1(), spl1p2, spl1p3, VPointF(p));
|
VSpline sp1 = VSpline(spl->GetP1(), spl1p2, spl1p3, VPointF(p));
|
||||||
const VSpline sp2 = VSpline(VPointF(p), spl2p2, spl2p3, spl->GetP4());
|
sp1.SetApproximationScale(spl->GetApproximationScale());
|
||||||
|
VSpline sp2 = VSpline(VPointF(p), spl2p2, spl2p3, spl->GetP4());
|
||||||
|
sp2.SetApproximationScale(spl->GetApproximationScale());
|
||||||
|
|
||||||
DrawPoint(point, p, mainColor);
|
DrawPoint(point, p, mainColor);
|
||||||
|
|
||||||
|
|
|
@ -45,10 +45,12 @@ void VisToolDuplicateDetail::RefreshGeometry()
|
||||||
{
|
{
|
||||||
m_start = Visualization::scenePos;
|
m_start = Visualization::scenePos;
|
||||||
m_started = true;
|
m_started = true;
|
||||||
|
setPos(QPointF(piece.GetMx(), piece.GetMy()));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_diff = Visualization::scenePos - m_start;
|
m_diff = Visualization::scenePos - m_start;
|
||||||
|
m_diff = QPointF(m_diff.x() + piece.GetMx(), m_diff.y() + piece.GetMy());
|
||||||
setPos(m_diff);
|
setPos(m_diff);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -271,7 +271,8 @@ bool VGrainlineItem::IsContained(const QPointF& pt, qreal dRot, qreal &dX, qreal
|
||||||
*/
|
*/
|
||||||
void VGrainlineItem::mousePressEvent(QGraphicsSceneMouseEvent* pME)
|
void VGrainlineItem::mousePressEvent(QGraphicsSceneMouseEvent* pME)
|
||||||
{
|
{
|
||||||
if (pME->button() == Qt::LeftButton && pME->type() != QEvent::GraphicsSceneMouseDoubleClick)
|
if (pME->button() == Qt::LeftButton && pME->type() != QEvent::GraphicsSceneMouseDoubleClick
|
||||||
|
&& (flags() & QGraphicsItem::ItemIsMovable))
|
||||||
{
|
{
|
||||||
if (m_moveType == NotMovable)
|
if (m_moveType == NotMovable)
|
||||||
{
|
{
|
||||||
|
@ -457,7 +458,7 @@ void VGrainlineItem::mouseReleaseEvent(QGraphicsSceneMouseEvent* pME)
|
||||||
{
|
{
|
||||||
if (pME->button() == Qt::LeftButton)
|
if (pME->button() == Qt::LeftButton)
|
||||||
{
|
{
|
||||||
if (m_eMode == mMove || m_eMode == mRotate || m_eMode == mResize)
|
if ((m_eMode == mMove || m_eMode == mRotate || m_eMode == mResize) && (flags() & QGraphicsItem::ItemIsMovable))
|
||||||
{
|
{
|
||||||
SetItemOverrideCursor(this, cursorArrowOpenHand, 1, 1);
|
SetItemOverrideCursor(this, cursorArrowOpenHand, 1, 1);
|
||||||
}
|
}
|
||||||
|
@ -508,14 +509,22 @@ void VGrainlineItem::mouseReleaseEvent(QGraphicsSceneMouseEvent* pME)
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VGrainlineItem::hoverEnterEvent(QGraphicsSceneHoverEvent *pME)
|
void VGrainlineItem::hoverEnterEvent(QGraphicsSceneHoverEvent *pME)
|
||||||
{
|
{
|
||||||
m_penWidth = LINE_PEN_WIDTH + 1;
|
if (flags() & QGraphicsItem::ItemIsMovable)
|
||||||
|
{
|
||||||
|
SetItemOverrideCursor(this, cursorArrowOpenHand, 1, 1);
|
||||||
|
m_penWidth = LINE_PEN_WIDTH + 1;
|
||||||
|
}
|
||||||
VPieceItem::hoverEnterEvent(pME);
|
VPieceItem::hoverEnterEvent(pME);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VGrainlineItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *pME)
|
void VGrainlineItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *pME)
|
||||||
{
|
{
|
||||||
m_penWidth = LINE_PEN_WIDTH;
|
if (flags() & QGraphicsItem::ItemIsMovable)
|
||||||
|
{
|
||||||
|
setCursor(QCursor());
|
||||||
|
m_penWidth = LINE_PEN_WIDTH;
|
||||||
|
}
|
||||||
VPieceItem::hoverLeaveEvent(pME);
|
VPieceItem::hoverLeaveEvent(pME);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -289,7 +289,7 @@ void VGraphicsSimpleTextItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (selectionType == SelectionType::ByMouseRelease)
|
if (selectionType == SelectionType::ByMouseRelease && contains(event->pos()))
|
||||||
{
|
{
|
||||||
emit PointChoosed();
|
emit PointChoosed();
|
||||||
}
|
}
|
||||||
|
|
|
@ -596,9 +596,21 @@ void VMainGraphicsView::NewSceneRect(QGraphicsScene *sc, QGraphicsView *view, QG
|
||||||
//Unite two rects
|
//Unite two rects
|
||||||
sc->setSceneRect(itemsRect.united(viewRect));
|
sc->setSceneRect(itemsRect.united(viewRect));
|
||||||
}
|
}
|
||||||
else if (not sc->sceneRect().contains(item->sceneBoundingRect()))
|
else
|
||||||
{
|
{
|
||||||
sc->setSceneRect(sc->sceneRect().united(item->sceneBoundingRect()));
|
QRectF rect = item->sceneBoundingRect();
|
||||||
|
foreach(QGraphicsItem *child, item->childItems())
|
||||||
|
{
|
||||||
|
if(child->isVisible())
|
||||||
|
{
|
||||||
|
rect = rect.united(child->sceneBoundingRect());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (not sc->sceneRect().contains(rect))
|
||||||
|
{
|
||||||
|
sc->setSceneRect(sc->sceneRect().united(rect));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -116,7 +116,7 @@ void VSimpleCurve::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
|
||||||
{
|
{
|
||||||
if (selectionType == SelectionType::ByMouseRelease)
|
if (selectionType == SelectionType::ByMouseRelease)
|
||||||
{
|
{
|
||||||
if (event->button() == Qt::LeftButton)
|
if (event->button() == Qt::LeftButton && contains(event->pos()))
|
||||||
{
|
{
|
||||||
emit Choosed(id);
|
emit Choosed(id);
|
||||||
}
|
}
|
||||||
|
|
|
@ -177,7 +177,7 @@ void VSimplePoint::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
|
||||||
{
|
{
|
||||||
if (selectionType == SelectionType::ByMouseRelease)
|
if (selectionType == SelectionType::ByMouseRelease)
|
||||||
{
|
{
|
||||||
if (event->button() == Qt::LeftButton)
|
if (event->button() == Qt::LeftButton && contains(event->pos()))
|
||||||
{
|
{
|
||||||
emit Choosed(id);
|
emit Choosed(id);
|
||||||
}
|
}
|
||||||
|
|
|
@ -375,7 +375,8 @@ int VTextGraphicsItem::GetFontSize() const
|
||||||
*/
|
*/
|
||||||
void VTextGraphicsItem::mousePressEvent(QGraphicsSceneMouseEvent *pME)
|
void VTextGraphicsItem::mousePressEvent(QGraphicsSceneMouseEvent *pME)
|
||||||
{
|
{
|
||||||
if (pME->button() == Qt::LeftButton && pME->type() != QEvent::GraphicsSceneMouseDoubleClick)
|
if (pME->button() == Qt::LeftButton && pME->type() != QEvent::GraphicsSceneMouseDoubleClick
|
||||||
|
&& (flags() & QGraphicsItem::ItemIsMovable))
|
||||||
{
|
{
|
||||||
if (m_moveType == NotMovable)
|
if (m_moveType == NotMovable)
|
||||||
{
|
{
|
||||||
|
@ -455,6 +456,10 @@ void VTextGraphicsItem::mousePressEvent(QGraphicsSceneMouseEvent *pME)
|
||||||
pME->ignore();
|
pME->ignore();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pME->ignore();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -552,7 +557,7 @@ void VTextGraphicsItem::mouseReleaseEvent(QGraphicsSceneMouseEvent* pME)
|
||||||
if (pME->button() == Qt::LeftButton)
|
if (pME->button() == Qt::LeftButton)
|
||||||
{
|
{
|
||||||
// restore the cursor
|
// restore the cursor
|
||||||
if (m_eMode == mMove || m_eMode == mRotate || m_eMode == mResize)
|
if ((m_eMode == mMove || m_eMode == mRotate || m_eMode == mResize) && (flags() & QGraphicsItem::ItemIsMovable))
|
||||||
{
|
{
|
||||||
SetItemOverrideCursor(this, cursorArrowOpenHand, 1, 1);
|
SetItemOverrideCursor(this, cursorArrowOpenHand, 1, 1);
|
||||||
}
|
}
|
||||||
|
@ -620,6 +625,16 @@ void VTextGraphicsItem::hoverMoveEvent(QGraphicsSceneHoverEvent* pHE)
|
||||||
VPieceItem::hoverMoveEvent(pHE);
|
VPieceItem::hoverMoveEvent(pHE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VTextGraphicsItem::hoverEnterEvent(QGraphicsSceneHoverEvent *pME)
|
||||||
|
{
|
||||||
|
if (flags() & QGraphicsItem::ItemIsMovable)
|
||||||
|
{
|
||||||
|
SetItemOverrideCursor(this, cursorArrowOpenHand, 1, 1);
|
||||||
|
}
|
||||||
|
VPieceItem::hoverEnterEvent(pME);
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief VTextGraphicsItem::hoverLeaveEvent tries to restore normal mouse cursor
|
* @brief VTextGraphicsItem::hoverLeaveEvent tries to restore normal mouse cursor
|
||||||
|
@ -627,7 +642,10 @@ void VTextGraphicsItem::hoverMoveEvent(QGraphicsSceneHoverEvent* pHE)
|
||||||
*/
|
*/
|
||||||
void VTextGraphicsItem::hoverLeaveEvent(QGraphicsSceneHoverEvent* pHE)
|
void VTextGraphicsItem::hoverLeaveEvent(QGraphicsSceneHoverEvent* pHE)
|
||||||
{
|
{
|
||||||
setCursor(QCursor());
|
if (flags() & QGraphicsItem::ItemIsMovable)
|
||||||
|
{
|
||||||
|
setCursor(QCursor());
|
||||||
|
}
|
||||||
VPieceItem::hoverLeaveEvent(pHE);
|
VPieceItem::hoverLeaveEvent(pHE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -73,6 +73,7 @@ protected:
|
||||||
virtual void mousePressEvent(QGraphicsSceneMouseEvent* pME) Q_DECL_OVERRIDE;
|
virtual void mousePressEvent(QGraphicsSceneMouseEvent* pME) Q_DECL_OVERRIDE;
|
||||||
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent* pME) Q_DECL_OVERRIDE;
|
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent* pME) Q_DECL_OVERRIDE;
|
||||||
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent* pME) Q_DECL_OVERRIDE;
|
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent* pME) Q_DECL_OVERRIDE;
|
||||||
|
virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *pME) Q_DECL_OVERRIDE;
|
||||||
virtual void hoverMoveEvent(QGraphicsSceneHoverEvent* pHE) Q_DECL_OVERRIDE;
|
virtual void hoverMoveEvent(QGraphicsSceneHoverEvent* pHE) Q_DECL_OVERRIDE;
|
||||||
virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent* pHE) Q_DECL_OVERRIDE;
|
virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent* pHE) Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user