// 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
+// Portions copyright (C) 2001-2003 RibbonSoft
+// Copyright (C) 2010 Underground Software
+// See the README and GPLv2 files for licensing and warranty information
//
// JLH = James L. Hammons <jlhamm@acm.org>
//
#include "qg_graphicview.h"
-#include "rs_actiondefault.h"
-#include "rs_actionzoomin.h"
-#include "rs_actionzoompan.h"
-#include "rs_actionzoomscroll.h"
-#include "rs_actionmodifydelete.h"
-#include "rs_actionselectsingle.h"
-#include "rs_dialogfactory.h"
-#include "graphicview.h"
-#include "rs_preview.h"
+#include "qg_dialogfactory.h"
+#include "actiondefault.h"
+#include "actionzoomin.h"
+#include "actionzoompan.h"
+#include "actionzoomscroll.h"
+#include "actionmodifydelete.h"
+#include "actionselectsingle.h"
+#include "cadtoolbar.h"
+#include "dialogfactory.h"
#include "drawing.h"
+#include "graphicview.h"
+#include "patternlist.h"
+#include "paintinterface.h"
+#include "preview.h"
#include "settings.h"
-#include "rs_system.h"
-#include "rs_patternlist.h"
-#include "cadtoolbar.h"
-#include "paintintf.h"
-#include "qg_dialogfactory.h"
+#include "system.h"
#define QG_SCROLLMARGIN 400
QG_GraphicView::QG_GraphicView(QWidget * parent, const char */*name*/, Qt::WindowFlags f):
QWidget(parent, f), GraphicView()//, refCount(0)
{
- RS_DEBUG->print("QG_GraphicView::QG_GraphicView(parent, name, flags)...");
+ DEBUG->print("QG_GraphicView::QG_GraphicView(parent, name, flags)...");
CommonInitialization();
}
/**
* Constructor II.
*/
-QG_GraphicView::QG_GraphicView(RS_Document * doc, QWidget * parent)
+QG_GraphicView::QG_GraphicView(Document * doc, QWidget * parent)
{
// QG_GraphicView(parent, "graphicview");
CommonInitialization();
- RS_DEBUG->print("QG_GraphicView::QG_GraphicView(doc, parent)...");
+ DEBUG->print("QG_GraphicView::QG_GraphicView(doc, parent)...");
//document = doc;
- RS_DEBUG->print(" Setting Container...");
+ DEBUG->print(" Setting Container...");
if (doc)
setContainer(doc);
- RS_DEBUG->print(" container set.");
+ DEBUG->print(" container set.");
setFactorX(4.0);
setFactorY(4.0);
setOffset(50, 50);
setBorders(10, 10, 10, 10);
if (doc)
- setDefaultAction(new RS_ActionDefault(*doc, *this));
+ setDefaultAction(new ActionDefault(*doc, *this));
}
void QG_GraphicView::CommonInitialization(void)
//hrm.
painter = NULL;
- RS_DEBUG->print("--> Setting up layout...");
+ DEBUG->print("--> Setting up layout...");
QGridLayout * layout = new QGridLayout(this);
layout->setColumnStretch(0, 1);
layout->setColumnStretch(1, 0);
A non-zero alignment indicates that the widget should not grow to fill the available space but should be sized according to sizeHint().
*/
- RS_DEBUG->print("--> Creating hScrollBar...");
+ DEBUG->print("--> Creating hScrollBar...");
// hScrollBar = new QG_ScrollBar(Qt::Horizontal, this);
hScrollBar = new QScrollBar(Qt::Horizontal, this);
// hScrollBar->setLineStep(50);
// layout->addRowSpacing(1, hScrollBar->sizeHint().height());
layout->addItem(new QSpacerItem(0, hScrollBar->sizeHint().height()), 1, 0);
- RS_DEBUG->print("--> Creating vScrollBar...");
+ DEBUG->print("--> Creating vScrollBar...");
// vScrollBar = new QG_ScrollBar(Qt::Vertical, this);
vScrollBar = new QScrollBar(Qt::Vertical, this);
// vScrollBar->setLineStep(50);
/**
* Changes the current background color of this view.
*/
-void QG_GraphicView::setBackground(const RS_Color & bg)
+void QG_GraphicView::setBackground(const Color & bg)
{
GraphicView::setBackground(bg);
*/
void QG_GraphicView::redraw()
{
- RS_DEBUG->print("QG_GraphicView::redraw begin 1");
+ DEBUG->print("QG_GraphicView::redraw begin 1");
if (simulationRunning)
return;
if (!running)
{
running = true;
- RS_DEBUG->print("QG_GraphicView::redraw begin 2");
+ DEBUG->print("QG_GraphicView::redraw begin 2");
/*
This is the only place in the entire codebase that a proper update is
// repaint(false);
update();
- RS_DEBUG->print("QG_GraphicView::redraw end 2");
+ DEBUG->print("QG_GraphicView::redraw end 2");
running = false;
}
- RS_DEBUG->print("QG_GraphicView::redraw end 1");
+ DEBUG->print("QG_GraphicView::redraw end 1");
}
void QG_GraphicView::resizeEvent(QResizeEvent * /*e*/)
{
- RS_DEBUG->print("QG_GraphicView::resizeEvent begin");
+ DEBUG->print("QG_GraphicView::resizeEvent begin");
adjustOffsetControls();
adjustZoomControls();
updateGrid();
- RS_DEBUG->print("QG_GraphicView::resizeEvent end");
+ DEBUG->print("QG_GraphicView::resizeEvent end");
}
/*
And so... We remove it.
*/
#if 0
-// Next three methods from RS_LayerListListener Interface:
-void QG_GraphicView::layerEdited(RS_Layer *)
+// Next three methods from LayerListListener Interface:
+void QG_GraphicView::layerEdited(Layer *)
{
redraw();
}
-void QG_GraphicView::layerRemoved(RS_Layer *)
+void QG_GraphicView::layerRemoved(Layer *)
{
redraw();
}
-void QG_GraphicView::layerToggled(RS_Layer *)
+void QG_GraphicView::layerToggled(Layer *)
{
redraw();
}
{
// pan zoom with middle mouse button
if (e->button() == Qt::MidButton /*|| (e->state()==Qt::LeftButton|Qt::AltButton)*/)
- setCurrentAction(new RS_ActionZoomPan(*container, *this));
+ setCurrentAction(new ActionZoomPan(*container, *this));
GraphicView::mousePressEvent(e);
QWidget::mousePressEvent(e);
void QG_GraphicView::mouseReleaseEvent(QMouseEvent * e)
{
- RS_DEBUG->print("QG_GraphicView::mouseReleaseEvent");
+ DEBUG->print("QG_GraphicView::mouseReleaseEvent");
GraphicView::mouseReleaseEvent(e);
//QWidget::mouseReleaseEvent(e);
{
if (QG_DIALOGFACTORY && QG_DIALOGFACTORY->getCadToolBar())
{
- RS_DEBUG->print("QG_GraphicView::mouseReleaseEvent: fwd to cadtoolbar");
+ DEBUG->print("QG_GraphicView::mouseReleaseEvent: fwd to cadtoolbar");
QG_DIALOGFACTORY->getCadToolBar()->mouseReleaseEvent(e);
}
}
- RS_DEBUG->print("QG_GraphicView::mouseReleaseEvent: OK");
+ DEBUG->print("QG_GraphicView::mouseReleaseEvent: OK");
}
void QG_GraphicView::mouseMoveEvent(QMouseEvent * e)
{
- //RS_DEBUG->print("QG_GraphicView::mouseMoveEvent begin");
- //QMouseEvent rsm = QG_Qt2Rs::mouseEvent(e);
-
GraphicView::mouseMoveEvent(e);
QWidget::mouseMoveEvent(e);
-
-//What kind of cacamamie crap is this???
-//#ifdef Q_OS_WIN32
-// // make sure that we can still use hotkeys and the mouse wheel
-// if (parent() != NULL)
-// ((QWidget *)parent())->setFocus();
-//#endif
-
- //RS_DEBUG->print("QG_GraphicView::mouseMoveEvent end");
}
/**
{
if (container != NULL)
{
- RS_ActionSelectSingle * a = new RS_ActionSelectSingle(*container, *this);
+ ActionSelectSingle * a = new ActionSelectSingle(*container, *this);
setCurrentAction(a);
#warning "!!! !!!"
// QMouseEvent ev(QEvent::MouseButtonRelease, e->pos(), Qt::LeftButton, Qt::LeftButton);
a->finish();
if (container->countSelected() > 0)
- setCurrentAction(new RS_ActionModifyDelete(*container, *this));
+ setCurrentAction(new ActionModifyDelete(*container, *this));
}
}
break;
*/
void QG_GraphicView::wheelEvent(QWheelEvent * e)
{
- //RS_DEBUG->print("wheel: %d", e->delta());
+ //DEBUG->print("wheel: %d", e->delta());
//printf("state: %d\n", e->state());
//printf("ctrl: %d\n", Qt::ControlButton);
}
if (scroll)
- setCurrentAction(new RS_ActionZoomScroll(direction, *container, *this));
+ setCurrentAction(new ActionZoomScroll(direction, *container, *this));
// zoom in / out:
// else if (e->state() == 0)
else if (keyState == 0)
{
if (e->delta() > 0)
- setCurrentAction(new RS_ActionZoomIn(*container, *this, RS2::In, RS2::Both, mouse));
+ setCurrentAction(new ActionZoomIn(*container, *this, RS2::In, RS2::Both, mouse));
else
- setCurrentAction(new RS_ActionZoomIn(*container, *this, RS2::Out, RS2::Both, mouse));
+ setCurrentAction(new ActionZoomIn(*container, *this, RS2::Out, RS2::Both, mouse));
}
e->accept();
}
if (scroll)
- setCurrentAction(new RS_ActionZoomScroll(direction, *container, *this));
+ setCurrentAction(new ActionZoomScroll(direction, *container, *this));
GraphicView::keyPressEvent(e);
}
running = true;
- RS_DEBUG->print("QG_GraphicView::adjustOffsetControls() begin");
+ DEBUG->print("QG_GraphicView::adjustOffsetControls() begin");
if (!container || !hScrollBar || !vScrollBar)
return;
slotHScrolled(-ox);
slotVScrolled(oy);
- RS_DEBUG->print("H min: %d / max: %d / step: %d / value: %d\n",
+ DEBUG->print("H min: %d / max: %d / step: %d / value: %d\n",
hScrollBar->minimum(), hScrollBar->maximum(), hScrollBar->pageStep(), ox);
- RS_DEBUG->print("V min: %d / max: %d / step: %d / value: %d\n",
+ DEBUG->print("V min: %d / max: %d / step: %d / value: %d\n",
vScrollBar->minimum(), vScrollBar->maximum(), vScrollBar->pageStep(), oy);
enableUpdate();
- RS_DEBUG->print("QG_GraphicView::adjustOffsetControls() end");
+ DEBUG->print("QG_GraphicView::adjustOffsetControls() end");
running = false;
}
//static int running = false;
//if (!running) {
//running = true;
- ////RS_DEBUG->print("value x: %d\n", value);
+ ////DEBUG->print("value x: %d\n", value);
if (hScrollBar->maximum() == hScrollBar->minimum())
centerOffsetX();
else
//static int running = false;
//if (!running) {
//running = true;
- ////RS_DEBUG->print("value y: %d\n", value);
+ ////DEBUG->print("value y: %d\n", value);
if (vScrollBar->maximum() == vScrollBar->minimum())
centerOffsetY();
else
*/
void QG_GraphicView::paintEvent(QPaintEvent *)
{
- RS_DEBUG->print("QG_GraphicView::paintEvent begin");
+ DEBUG->print("QG_GraphicView::paintEvent begin");
if (simulationRunning)
return;
// Qt4 handles double buffering of screen writes now, so this needs
// a rewrite.
-#warning "!!! Need to pass a valid QPainter to drawIt() !!!"
+//#warning "!!! Need to pass a valid QPainter to drawIt() !!!"
QPainter pntr(this);
pntr.setBackgroundMode(Qt::OpaqueMode);
//just may go that way...
drawIt();
- // Draw the snapper first, we want to be able to see the preview on top of
- // this...
- if (snapper.Visible())
- snapper.Draw(this, painter);
+ // Draw the snapper first, because we want to be able to see the preview on
+ // top of this...
+// if (snapper.Visible())
+// snapper.Draw(this, painter);
+ // Actually, this code can go into drawIt() instead of here...
+ if (snapperVisible)
+ DrawSnapper(painter);
if (preview.Visible())
- {
- painter->setPen(RS_Pen(RS_Color(60, 255, 80), RS2::Width00, RS2::SolidLine));
- painter->setOffset(preview.Offset());
-
- // We have to traverse the container ourselves, because RS_Container::draw()
- // uses drawEntity() instead of drawEntityPlain()...
- for(RS_Entity * e=preview.firstEntity(RS2::ResolveNone); e!=NULL;
- e = preview.nextEntity(RS2::ResolveNone))
- {
- drawEntityPlain(e);
- }
-
- painter->setOffset(Vector(0, 0));
- }
+ preview.Draw(this, painter);
delete painter;
painter = NULL;
- RS_DEBUG->print("QG_GraphicView::paintEvent end");
+ DEBUG->print("QG_GraphicView::paintEvent end");
}