X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fwidgets%2Fqg_graphicview.cpp;h=b6d66dd9b499b133e67a6d4288d043c5d59a00d5;hb=c715d05d11ffe2913fe3465ec43d456ee9b85964;hp=e306fa608d12511c0efba712c2e0e8f7f6a82a70;hpb=c40d19f69539b4afaa2c15e7b314eb7b8c88e943;p=architektonas diff --git a/src/widgets/qg_graphicview.cpp b/src/widgets/qg_graphicview.cpp index e306fa6..b6d66dd 100644 --- a/src/widgets/qg_graphicview.cpp +++ b/src/widgets/qg_graphicview.cpp @@ -71,14 +71,14 @@ QG_GraphicView::QG_GraphicView(RS_Document * doc, QWidget * parent) void QG_GraphicView::CommonInitialization(void) { setBackground(background); - buffer = NULL; +//meh buffer = NULL; lastWidth = 0; lastHeight = 0; //hrm. painter = NULL; RS_DEBUG->print("--> Setting up layout..."); - layout = new QGridLayout(this); + QGridLayout * layout = new QGridLayout(this); layout->setColumnStretch(0, 1); layout->setColumnStretch(1, 0); layout->setColumnStretch(2, 0); @@ -183,11 +183,11 @@ QG_GraphicView::~QG_GraphicView() if (painter) delete painter; - if (buffer) - { - delete buffer; - buffer = NULL; - } +//meh if (buffer) +// { +// delete buffer; +// buffer = NULL; +// } cleanUp(); } @@ -659,7 +659,7 @@ void QG_GraphicView::adjustOffsetControls() RS_DEBUG->print("QG_GraphicView::adjustOffsetControls() begin"); - if (container == NULL || hScrollBar == NULL || vScrollBar == NULL) + if (!container || !hScrollBar || !vScrollBar) return; disableUpdate(); @@ -880,13 +880,13 @@ What's needed: } #endif -#if 1 //Note that we do drawIt() regardless here because paintEvent() clears the background //*unless* we create the window with a specific style. Depending on our draw code, we //just may go that way... drawIt(); //Need some logic here to do drawing in preview mode, since it'll be calling //update now instead of trying to do a direct draw... +#if 0 if (previewMode) { //hrm. painter->setCompositionMode(QPainter::CompositionMode_Xor); @@ -897,43 +897,39 @@ What's needed: // We'll set previewMode to false here, just because we can previewMode = false; } -#endif - - if (snapperDraw) -// if (false) +#else + if (preview.Visible()) { - snapperDraw = false; - - if (snapCoord1.valid) - { - // snap point -//This is causing segfaults in the Qt::Painter code... -//*This* is causing the segfault! -//Actually, it looks like buggy painting code in PaintInterface()... - painter->drawCircle(toGui(snapCoord1), 4); - -#if 1 - // crosshairs: - if (showCrosshairs1 == true) - { - painter->setPen(RS_Pen(RS_Color(0, 255, 255), RS2::Width00, RS2::DashLine)); - painter->drawLine(Vector(0, toGuiY(snapCoord1.y)), - Vector(getWidth(), toGuiY(snapCoord1.y))); - painter->drawLine(Vector(toGuiX(snapCoord1.x), 0), - Vector(toGuiX(snapCoord1.x), getHeight())); - } -#endif - } -#if 1 - if (snapCoord1.valid && snapCoord1 != snapSpot1) + RS_Pen oldPen = painter->getPen(); + //ick. doesn't work... +// pntr.setCompositionMode(QPainter::CompositionMode_Xor); + // One of these has GOT to work... (but NEITHER do...!) + // It's because this is the pen for the container, not the entities INSIDE... + // How do we fix that??? [by drawing the container ourselves, that's how. :-/] + painter->setPen(RS_Pen(RS_Color(60, 255, 80), RS2::Width00, RS2::SolidLine)); +// preview.setPen(RS_Pen(RS_Color(60, 255, 60), RS2::Width00, RS2::SolidLine)); + painter->setOffset(preview.Offset()); +//This is green, but in the upper left hand corner... +//painter->drawLine(Vector(15, 15), Vector(15, -15)); +//painter->drawLine(Vector(15, -15), Vector(-15, -15)); +//painter->drawLine(Vector(-15, -15), Vector(-15, 15)); +//painter->drawLine(Vector(-15, 15), Vector(15, 15)); +// drawEntityPlain(&preview); + for(RS_Entity * e=preview.firstEntity(RS2::ResolveNone); e!=NULL; + e = preview.nextEntity(RS2::ResolveNone)) { - painter->drawLine(toGui(snapSpot1) + Vector(-5, 0), toGui(snapSpot1) + Vector(-1, 4)); - painter->drawLine(toGui(snapSpot1) + Vector(0, 5), toGui(snapSpot1) + Vector(4, 1)); - painter->drawLine(toGui(snapSpot1) + Vector(5, 0), toGui(snapSpot1) + Vector(1, -4)); - painter->drawLine(toGui(snapSpot1) + Vector(0, -5), toGui(snapSpot1) + Vector(-4, -1)); +// e->setPen(RS_Pen(RS_Color(60, 255, 80), RS2::Width00, RS2::SolidLine)); + drawEntityPlain(e); } -#endif + //ick +// pntr.setCompositionMode(QPainter::CompositionMode_Source); + painter->setOffset(Vector(0, 0)); + painter->setPen(oldPen); } +#endif + + if (snapper.Visible()) + snapper.Draw(this, painter); delete painter; painter = NULL;