X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Factions%2Frs_actioneditpaste.cpp;h=e52a7d171e4ad6707b50f8150377130b52cbfa48;hb=3f46c180da0806c9c263e6d87d0f1404632402da;hp=78514c34d7e80a37414a3f24a0ddf17054133e8f;hpb=16ce54abf01ca3032e42a5bb11a4afcf9014dcca;p=architektonas diff --git a/src/actions/rs_actioneditpaste.cpp b/src/actions/rs_actioneditpaste.cpp index 78514c3..e52a7d1 100644 --- a/src/actions/rs_actioneditpaste.cpp +++ b/src/actions/rs_actioneditpaste.cpp @@ -1,33 +1,23 @@ -/**************************************************************************** -** $Id: rs_actioneditpaste.cpp 1134 2004-07-13 23:26:13Z andrew $ -** -** Copyright (C) 2001-2003 RibbonSoft. All rights reserved. -** -** This file is part of the qcadlib Library project. -** -** This file may be distributed and/or modified under the terms of the -** GNU General Public License version 2 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. -** -** Licensees holding valid qcadlib Professional Edition licenses may use -** this file in accordance with the qcadlib Commercial License -** Agreement provided with the Software. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -** See http://www.ribbonsoft.com for further details. -** -** Contact info@ribbonsoft.com if any conditions of this licensing are -** not clear to you. -** -**********************************************************************/ +// rs_actioneditpaste.cpp +// +// Part of the Architektonas Project +// Originally part of QCad Community Edition by Andrew Mustun +// Extensively rewritten and refactored by James L. Hammons +// (C) 2010 Underground Software +// +// JLH = James L. Hammons +// +// Who When What +// --- ---------- ----------------------------------------------------------- +// JLH 06/04/2010 Added this text. :-) +// #include "rs_actioneditpaste.h" #include "rs_clipboard.h" +#include "rs_dialogfactory.h" #include "rs_modification.h" +#include "rs_preview.h" #include "rs_units.h" /** @@ -35,10 +25,8 @@ * * @param undo true for undo and false for redo. */ -RS_ActionEditPaste::RS_ActionEditPaste( RS_EntityContainer& container, - RS_GraphicView& graphicView) - :RS_PreviewActionInterface("Edit Paste", - container, graphicView) +RS_ActionEditPaste::RS_ActionEditPaste(RS_EntityContainer & container, RS_GraphicView & graphicView): RS_PreviewActionInterface("Edit Paste", + container, graphicView) { } @@ -46,115 +34,102 @@ RS_ActionEditPaste::~RS_ActionEditPaste() { } -QAction* RS_ActionEditPaste::createGUIAction(RS2::ActionType /*type*/, QObject* parent) -{ - //icon = QPixmap(editpaste_xpm); - QAction * action = new QAction(QIcon(":/res/editpaste2.png"), tr("&Paste"), parent); - action->setShortcut(Qt::CTRL + Qt::Key_V); -// QAction* action = new QAction(tr("Paste"), -// qPixmapFromMimeSource("editpaste2.png"), tr("&Paste"), -// Qt::CTRL+Qt::Key_V, parent); - action->setStatusTip(tr("Pastes the clipboard contents")); - return action; -} - void RS_ActionEditPaste::init(int status) { - RS_PreviewActionInterface::init(status); - //trigger(); + RS_PreviewActionInterface::init(status); + //trigger(); } void RS_ActionEditPaste::trigger() { - deleteSnapper(); - deletePreview(); - clearPreview(); + deleteSnapper(); + deletePreview(); + clearPreview(); - RS_Modification m(*container, graphicView); - m.paste(RS_PasteData(targetPoint, 1.0, 0.0, false, "")); - //std::cout << *RS_Clipboard::instance(); + RS_Modification m(*container, graphicView); + m.paste(RS_PasteData(targetPoint, 1.0, 0.0, false, "")); + //std::cout << *RS_Clipboard::instance(); - graphicView->redraw(); - finish(); + graphicView->redraw(); + finish(); } - -void RS_ActionEditPaste::mouseMoveEvent(QMouseEvent* e) { - switch (getStatus()) { - case SetTargetPoint: - targetPoint = snapPoint(e); - - deletePreview(); - clearPreview(); - preview->addAllFrom(*RS_CLIPBOARD->getGraphic()); - preview->move(targetPoint); - - if (graphic!=NULL) { +void RS_ActionEditPaste::mouseMoveEvent(QMouseEvent * e) +{ + switch (getStatus()) + { + case SetTargetPoint: + targetPoint = snapPoint(e); + + deletePreview(); + clearPreview(); + preview->addAllFrom(*RS_CLIPBOARD->getGraphic()); + preview->move(targetPoint); + + if (graphic != NULL) + { RS2::Unit sourceUnit = RS_CLIPBOARD->getGraphic()->getUnit(); RS2::Unit targetUnit = graphic->getUnit(); double f = RS_Units::convert(1.0, sourceUnit, targetUnit); - preview->scale(targetPoint, Vector(f,f)); + preview->scale(targetPoint, Vector(f, f)); } - drawPreview(); - break; + drawPreview(); + break; - default: - break; - } + default: + break; + } } - - -void RS_ActionEditPaste::mouseReleaseEvent(QMouseEvent* e) { - if (RS2::qtToRsButtonState(e->button())==RS2::LeftButton) { - RS_CoordinateEvent ce(snapPoint(e)); - coordinateEvent(&ce); - } else if (RS2::qtToRsButtonState(e->button())==RS2::RightButton) { - deleteSnapper(); - init(getStatus()-1); - } +void RS_ActionEditPaste::mouseReleaseEvent(QMouseEvent * e) +{ + if (e->button() == Qt::LeftButton) + { + Vector ce(snapPoint(e)); + coordinateEvent(&ce); + } + else if (e->button() == Qt::RightButton) + { + deleteSnapper(); + init(getStatus() - 1); + } } +void RS_ActionEditPaste::coordinateEvent(Vector * e) +{ + if (e == NULL) + return; - -void RS_ActionEditPaste::coordinateEvent(RS_CoordinateEvent* e) { - if (e==NULL) { - return; - } - - targetPoint = e->getCoordinate(); - trigger(); + targetPoint = *e; + trigger(); } - - -void RS_ActionEditPaste::updateMouseButtonHints() { - switch (getStatus()) { - case SetTargetPoint: - RS_DIALOGFACTORY->updateMouseWidget(tr("Set reference point"), - tr("Cancel")); - break; - default: - RS_DIALOGFACTORY->updateMouseWidget("", ""); - break; - } +void RS_ActionEditPaste::updateMouseButtonHints() +{ + switch (getStatus()) + { + case SetTargetPoint: + RS_DIALOGFACTORY->updateMouseWidget(tr("Set reference point"), + tr("Cancel")); + break; + + default: + RS_DIALOGFACTORY->updateMouseWidget("", ""); + break; + } } - - -void RS_ActionEditPaste::updateMouseCursor() { - graphicView->setMouseCursor(RS2::CadCursor); +void RS_ActionEditPaste::updateMouseCursor() +{ + graphicView->setMouseCursor(RS2::CadCursor); } - - -void RS_ActionEditPaste::updateToolBar() { - if (!isFinished()) { - RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarSnap); - } else { - RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarMain); - } +void RS_ActionEditPaste::updateToolBar() +{ + if (!isFinished()) + RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarSnap); + else + RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarMain); } - // EOF