Fixed displacement of cursor symbols on different actions while zoomed

This commit is contained in:
Frans Schreuder 2013-01-08 17:50:47 +01:00
parent c658f5eb49
commit d4073cb03a
4 changed files with 150 additions and 123 deletions

View File

@ -340,11 +340,11 @@ void MouseActions::MMoveWire2(Schematic *Doc, QMouseEvent *Event)
void MouseActions::MMoveWire1(Schematic *Doc, QMouseEvent *Event)
{
//QPainter painter(Doc->viewport());
Doc->PostPaintEvent (_DotLine);
Doc->PostPaintEvent (_NotRop);
Doc->PostPaintEvent (_DotLine,0,0,0,0,0,0,true);
Doc->PostPaintEvent (_NotRop,0,0,0,0,0,0,true);
if(drawn) {
Doc->PostPaintEvent (_Line, 0, MAy3, MAx2, MAy3); // erase old
Doc->PostPaintEvent (_Line, MAx3, 0, MAx3, MAy2);
Doc->PostPaintEvent (_Line, 0, MAy3, MAx2, MAy3,0,0,true); // erase old
Doc->PostPaintEvent (_Line, MAx3, 0, MAx3, MAy2,0,0,true);
}
MAx3 = DOC_X_POS(Event->pos().x());
@ -357,8 +357,8 @@ void MouseActions::MMoveWire1(Schematic *Doc, QMouseEvent *Event)
MAy2 = Doc->visibleHeight();
drawn = true;
Doc->PostPaintEvent (_Line, 0, MAy3, MAx2, MAy3); // paint
Doc->PostPaintEvent (_Line, MAx3, 0, MAx3, MAy2);
Doc->PostPaintEvent (_Line, 0, MAy3, MAx2, MAy3, 0,0, true); // paint
Doc->PostPaintEvent (_Line, MAx3, 0, MAx3, MAy2, 0,0, true);
Doc->viewport()->update();
}
@ -532,19 +532,19 @@ void MouseActions::MMoveScrollBar(Schematic *Doc, QMouseEvent *Event)
void MouseActions::MMoveDelete(Schematic *Doc, QMouseEvent *Event)
{
//QPainter painter(Doc->viewport());
Doc->PostPaintEvent (_NotRop);
Doc->PostPaintEvent (_NotRop, 0,0,0,0,0,0,true);
if(drawn) {
Doc->PostPaintEvent (_Line, MAx3-15, MAy3-15, MAx3+15, MAy3+15); // erase old
Doc->PostPaintEvent (_Line, MAx3-15, MAy3+15, MAx3+15, MAy3-15);
Doc->PostPaintEvent (_Line, MAx3-15, MAy3-15, MAx3+15, MAy3+15,0,0,true); // erase old
Doc->PostPaintEvent (_Line, MAx3-15, MAy3+15, MAx3+15, MAy3-15,0,0,true);
}
drawn = true;
MAx3 = Event->pos().x() - Doc->contentsX();
MAy3 = Event->pos().y() - Doc->contentsY();
Doc->PostPaintEvent (_Line, MAx3-15, MAy3-15, MAx3+15, MAy3+15); // paint
Doc->PostPaintEvent (_Line, MAx3-15, MAy3+15, MAx3+15, MAy3-15);
Doc->PostPaintEvent (_Line, MAx3-15, MAy3-15, MAx3+15, MAy3+15,0,0,true); // paint
Doc->PostPaintEvent (_Line, MAx3-15, MAy3+15, MAx3+15, MAy3-15,0,0,true);
}
// -----------------------------------------------------------
@ -552,28 +552,28 @@ void MouseActions::MMoveDelete(Schematic *Doc, QMouseEvent *Event)
void MouseActions::MMoveLabel(Schematic *Doc, QMouseEvent *Event)
{
//QPainter painter(Doc->viewport());
Doc->PostPaintEvent (_NotRop, 0,0,0,0);
Doc->PostPaintEvent (_NotRop, 0,0,0,0,0,0,true);
if(drawn) {
Doc->PostPaintEvent (_Line, MAx3, MAy3, MAx3+10, MAy3-10); // erase old
Doc->PostPaintEvent (_Line, MAx3+10, MAy3-10, MAx3+20, MAy3-10);
Doc->PostPaintEvent (_Line, MAx3+10, MAy3-10, MAx3+10, MAy3-17);
Doc->PostPaintEvent (_Line, MAx3, MAy3, MAx3+10, MAy3-10,0,0,true); // erase old
Doc->PostPaintEvent (_Line, MAx3+10, MAy3-10, MAx3+20, MAy3-10,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+10, MAy3-10, MAx3+10, MAy3-17,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+12, MAy3-12, MAx3+15, MAy3-23); // "A"
Doc->PostPaintEvent (_Line, MAx3+14, MAy3-17, MAx3+17, MAy3-17);
Doc->PostPaintEvent (_Line, MAx3+19, MAy3-12, MAx3+16, MAy3-23);
Doc->PostPaintEvent (_Line, MAx3+12, MAy3-12, MAx3+15, MAy3-23,0,0,true); // "A"
Doc->PostPaintEvent (_Line, MAx3+14, MAy3-17, MAx3+17, MAy3-17,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+19, MAy3-12, MAx3+16, MAy3-23,0,0,true);
}
drawn = true;
MAx3 = Event->pos().x() - Doc->contentsX();
MAy3 = Event->pos().y() - Doc->contentsY();
Doc->PostPaintEvent (_Line, MAx3, MAy3, MAx3+10, MAy3-10); // paint new
Doc->PostPaintEvent (_Line, MAx3+10, MAy3-10, MAx3+20, MAy3-10);
Doc->PostPaintEvent (_Line, MAx3+10, MAy3-10, MAx3+10, MAy3-17);
Doc->PostPaintEvent (_Line, MAx3, MAy3, MAx3+10, MAy3-10,0,0,true); // paint new
Doc->PostPaintEvent (_Line, MAx3+10, MAy3-10, MAx3+20, MAy3-10,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+10, MAy3-10, MAx3+10, MAy3-17,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+12, MAy3-12, MAx3+15, MAy3-23); // "A"
Doc->PostPaintEvent (_Line, MAx3+14, MAy3-17, MAx3+17, MAy3-17);
Doc->PostPaintEvent (_Line, MAx3+19, MAy3-12, MAx3+16, MAy3-23);
Doc->PostPaintEvent (_Line, MAx3+12, MAy3-12, MAx3+15, MAy3-23,0,0,true); // "A"
Doc->PostPaintEvent (_Line, MAx3+14, MAy3-17, MAx3+17, MAy3-17,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+19, MAy3-12, MAx3+16, MAy3-23,0,0,true);
}
// -----------------------------------------------------------
@ -581,20 +581,20 @@ void MouseActions::MMoveLabel(Schematic *Doc, QMouseEvent *Event)
void MouseActions::MMoveMarker(Schematic *Doc, QMouseEvent *Event)
{
//QPainter painter(Doc->viewport());
Doc->PostPaintEvent (_NotRop, 0,0,0,0);
Doc->PostPaintEvent (_NotRop, 0,0,0,0,0,0,true);
if(drawn) {
Doc->PostPaintEvent (_Line, MAx3, MAy3-2, MAx3-8, MAy3-10); // erase old
Doc->PostPaintEvent (_Line, MAx3+1, MAy3-3, MAx3+8, MAy3-10);
Doc->PostPaintEvent (_Line, MAx3-7, MAy3-10, MAx3+7, MAy3-10);
Doc->PostPaintEvent (_Line, MAx3, MAy3-2, MAx3-8, MAy3-10,0,0,true); // erase old
Doc->PostPaintEvent (_Line, MAx3+1, MAy3-3, MAx3+8, MAy3-10,0,0,true);
Doc->PostPaintEvent (_Line, MAx3-7, MAy3-10, MAx3+7, MAy3-10,0,0,true);
}
drawn = true;
MAx3 = Event->pos().x() - Doc->contentsX();
MAy3 = Event->pos().y() - Doc->contentsY();
Doc->PostPaintEvent (_Line, MAx3, MAy3-2, MAx3-8, MAy3-10); // paint new
Doc->PostPaintEvent (_Line, MAx3+1, MAy3-3, MAx3+8, MAy3-10);
Doc->PostPaintEvent (_Line, MAx3-7, MAy3-10, MAx3+7, MAy3-10);
Doc->PostPaintEvent (_Line, MAx3, MAy3-2, MAx3-8, MAy3-10,0,0,true); // paint new
Doc->PostPaintEvent (_Line, MAx3+1, MAy3-3, MAx3+8, MAy3-10,0,0,true);
Doc->PostPaintEvent (_Line, MAx3-7, MAy3-10, MAx3+7, MAy3-10,0,0,true);
}
// -----------------------------------------------------------
@ -603,24 +603,24 @@ void MouseActions::MMoveMarker(Schematic *Doc, QMouseEvent *Event)
void MouseActions::MMoveMirrorY(Schematic *Doc, QMouseEvent *Event)
{
//QPainter painter(Doc->viewport());
Doc->PostPaintEvent (_NotRop, 0,0,0,0);
Doc->PostPaintEvent (_NotRop, 0,0,0,0,0,0,true);
if(drawn) {
Doc->PostPaintEvent (_Line, MAx3-11, MAy3-4, MAx3-9, MAy3-9); // erase old
Doc->PostPaintEvent (_Line, MAx3-11, MAy3-3, MAx3-6, MAy3-3);
Doc->PostPaintEvent (_Line, MAx3+11, MAy3-4, MAx3+9, MAy3-9);
Doc->PostPaintEvent (_Line, MAx3+11, MAy3-3, MAx3+6, MAy3-3);
Doc->PostPaintEvent (_Arc, MAx3-10, MAy3-8, 21, 10, 16*20, 16*140);
Doc->PostPaintEvent (_Line, MAx3-11, MAy3-4, MAx3-9, MAy3-9,0,0,true); // erase old
Doc->PostPaintEvent (_Line, MAx3-11, MAy3-3, MAx3-6, MAy3-3,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+11, MAy3-4, MAx3+9, MAy3-9,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+11, MAy3-3, MAx3+6, MAy3-3,0,0,true);
Doc->PostPaintEvent (_Arc, MAx3-10, MAy3-8, 21, 10, 16*20, 16*140,true);
}
drawn = true;
MAx3 = Event->pos().x() - Doc->contentsX();
MAy3 = Event->pos().y() - Doc->contentsY();
Doc->PostPaintEvent (_Line, MAx3-11, MAy3-4, MAx3-9, MAy3-9); // paint new
Doc->PostPaintEvent (_Line, MAx3-11, MAy3-3, MAx3-6, MAy3-3);
Doc->PostPaintEvent (_Line, MAx3+11, MAy3-4, MAx3+9, MAy3-9);
Doc->PostPaintEvent (_Line, MAx3+11, MAy3-3, MAx3+6, MAy3-3);
Doc->PostPaintEvent (_Arc, MAx3-10, MAy3-8, 21, 10, 16*20, 16*140);
Doc->PostPaintEvent (_Line, MAx3-11, MAy3-4, MAx3-9, MAy3-9,0,0,true); // paint new
Doc->PostPaintEvent (_Line, MAx3-11, MAy3-3, MAx3-6, MAy3-3,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+11, MAy3-4, MAx3+9, MAy3-9,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+11, MAy3-3, MAx3+6, MAy3-3,0,0,true);
Doc->PostPaintEvent (_Arc, MAx3-10, MAy3-8, 21, 10, 16*20, 16*140,true);
}
// -----------------------------------------------------------
@ -629,24 +629,24 @@ void MouseActions::MMoveMirrorY(Schematic *Doc, QMouseEvent *Event)
void MouseActions::MMoveMirrorX(Schematic *Doc, QMouseEvent *Event)
{
//QPainter painter(Doc->viewport());
Doc->PostPaintEvent (_NotRop, 0,0,0,0);
Doc->PostPaintEvent (_NotRop, 0,0,0,0,0,0,true);
if(drawn) {
Doc->PostPaintEvent (_Line, MAx3-4, MAy3-11, MAx3-9, MAy3-9); // erase old
Doc->PostPaintEvent (_Line, MAx3-3, MAy3-11, MAx3-3, MAy3-6);
Doc->PostPaintEvent (_Line, MAx3-4, MAy3+11, MAx3-9, MAy3+9);
Doc->PostPaintEvent (_Line, MAx3-3, MAy3+11, MAx3-3, MAy3+6);
Doc->PostPaintEvent (_Arc, MAx3-8, MAy3-10, 10, 21, 16*110, 16*140);
Doc->PostPaintEvent (_Line, MAx3-4, MAy3-11, MAx3-9, MAy3-9,0,0,true); // erase old
Doc->PostPaintEvent (_Line, MAx3-3, MAy3-11, MAx3-3, MAy3-6,0,0,true);
Doc->PostPaintEvent (_Line, MAx3-4, MAy3+11, MAx3-9, MAy3+9,0,0,true);
Doc->PostPaintEvent (_Line, MAx3-3, MAy3+11, MAx3-3, MAy3+6,0,0,true);
Doc->PostPaintEvent (_Arc, MAx3-8, MAy3-10, 10, 21, 16*110, 16*140,true);
}
drawn = true;
MAx3 = Event->pos().x() - Doc->contentsX();
MAy3 = Event->pos().y() - Doc->contentsY();
Doc->PostPaintEvent (_Line, MAx3-4, MAy3-11, MAx3-9, MAy3-9); // paint new
Doc->PostPaintEvent (_Line, MAx3-3, MAy3-11, MAx3-3, MAy3-6);
Doc->PostPaintEvent (_Line, MAx3-4, MAy3+11, MAx3-9, MAy3+9);
Doc->PostPaintEvent (_Line, MAx3-3, MAy3+11, MAx3-3, MAy3+6);
Doc->PostPaintEvent (_Arc, MAx3-8, MAy3-10, 10, 21, 16*110, 16*140);
Doc->PostPaintEvent (_Line, MAx3-4, MAy3-11, MAx3-9, MAy3-9,0,0,true); // paint new
Doc->PostPaintEvent (_Line, MAx3-3, MAy3-11, MAx3-3, MAy3-6,0,0,true);
Doc->PostPaintEvent (_Line, MAx3-4, MAy3+11, MAx3-9, MAy3+9,0,0,true);
Doc->PostPaintEvent (_Line, MAx3-3, MAy3+11, MAx3-3, MAy3+6,0,0,true);
Doc->PostPaintEvent (_Arc, MAx3-8, MAy3-10, 10, 21, 16*110, 16*140,true);
}
// -----------------------------------------------------------
@ -654,20 +654,20 @@ void MouseActions::MMoveMirrorX(Schematic *Doc, QMouseEvent *Event)
void MouseActions::MMoveRotate(Schematic *Doc, QMouseEvent *Event)
{
//QPainter painter(Doc->viewport());
Doc->PostPaintEvent (_NotRop, 0,0,0,0);
Doc->PostPaintEvent (_NotRop, 0,0,0,0,0,0,true);
if(drawn) {
Doc->PostPaintEvent (_Line, MAx3-6, MAy3+8, MAx3-6, MAy3+1); // erase old
Doc->PostPaintEvent (_Line, MAx3-7, MAy3+8, MAx3-12, MAy3+8);
Doc->PostPaintEvent (_Arc, MAx3-10, MAy3-10, 21, 21, -16*20, 16*240);
Doc->PostPaintEvent (_Line, MAx3-6, MAy3+8, MAx3-6, MAy3+1,0,0,true); // erase old
Doc->PostPaintEvent (_Line, MAx3-7, MAy3+8, MAx3-12, MAy3+8,0,0,true);
Doc->PostPaintEvent (_Arc, MAx3-10, MAy3-10, 21, 21, -16*20, 16*240,true);
}
drawn = true;
MAx3 = Event->pos().x() - Doc->contentsX();
MAy3 = Event->pos().y() - Doc->contentsY();
Doc->PostPaintEvent (_Line, MAx3-6, MAy3+8, MAx3-6, MAy3+1); // paint new
Doc->PostPaintEvent (_Line, MAx3-7, MAy3+8, MAx3-12, MAy3+8);
Doc->PostPaintEvent (_Arc, MAx3-10, MAy3-10, 21, 21, -16*20, 16*240);
Doc->PostPaintEvent (_Line, MAx3-6, MAy3+8, MAx3-6, MAy3+1,0,0,true); // paint new
Doc->PostPaintEvent (_Line, MAx3-7, MAy3+8, MAx3-12, MAy3+8,0,0,true);
Doc->PostPaintEvent (_Arc, MAx3-10, MAy3-10, 21, 21, -16*20, 16*240,true);
}
// -----------------------------------------------------------
@ -675,20 +675,20 @@ void MouseActions::MMoveRotate(Schematic *Doc, QMouseEvent *Event)
void MouseActions::MMoveActivate(Schematic *Doc, QMouseEvent *Event)
{
//QPainter painter(Doc->viewport());
Doc->PostPaintEvent (_NotRop, 0,0,0,0);
Doc->PostPaintEvent (_NotRop, 0,0,0,0,0,0,true);
if(drawn) {
Doc->PostPaintEvent (_Rect, MAx3, MAy3-9, 14, 10); // erase old
Doc->PostPaintEvent (_Line, MAx3, MAy3-9, MAx3+13, MAy3);
Doc->PostPaintEvent (_Line, MAx3, MAy3, MAx3+13, MAy3-9);
Doc->PostPaintEvent (_Rect, MAx3, MAy3-9, 14, 10, 0, 0, true); // erase old
Doc->PostPaintEvent (_Line, MAx3, MAy3-9, MAx3+13, MAy3,0, 0, true);
Doc->PostPaintEvent (_Line, MAx3, MAy3, MAx3+13, MAy3-9,0, 0, true);
}
drawn = true;
MAx3 = Event->pos().x() - Doc->contentsX();
MAy3 = Event->pos().y() - Doc->contentsY();
Doc->PostPaintEvent (_Rect, MAx3, MAy3-9, 14, 10); // paint new
Doc->PostPaintEvent (_Line, MAx3, MAy3-9, MAx3+13, MAy3);
Doc->PostPaintEvent (_Line, MAx3, MAy3, MAx3+13, MAy3-9);
Doc->PostPaintEvent (_Rect, MAx3, MAy3-9, 14, 10, 0, 0, true); // paint new
Doc->PostPaintEvent (_Line, MAx3, MAy3-9, MAx3+13, MAy3, 0, 0, true);
Doc->PostPaintEvent (_Line, MAx3, MAy3, MAx3+13, MAy3-9, 0, 0, true);
}
// -----------------------------------------------------------
@ -696,26 +696,26 @@ void MouseActions::MMoveActivate(Schematic *Doc, QMouseEvent *Event)
void MouseActions::MMoveOnGrid(Schematic *Doc, QMouseEvent *Event)
{
//QPainter painter(Doc->viewport());
Doc->PostPaintEvent (_NotRop, 0,0,0,0);
Doc->PostPaintEvent (_NotRop, 0,0,0,0,0,0,true);
if(drawn) {
Doc->PostPaintEvent (_Line, MAx3+10, MAy3+ 3, MAx3+25, MAy3+3); // erase old
Doc->PostPaintEvent (_Line, MAx3+10, MAy3+ 7, MAx3+25, MAy3+7);
Doc->PostPaintEvent (_Line, MAx3+10, MAy3+11, MAx3+25, MAy3+11);
Doc->PostPaintEvent (_Line, MAx3+13, MAy3, MAx3+13, MAy3+15);
Doc->PostPaintEvent (_Line, MAx3+17, MAy3, MAx3+17, MAy3+15);
Doc->PostPaintEvent (_Line, MAx3+21, MAy3, MAx3+21, MAy3+15);
Doc->PostPaintEvent (_Line, MAx3+10, MAy3+ 3, MAx3+25, MAy3+3,0,0,true); // erase old
Doc->PostPaintEvent (_Line, MAx3+10, MAy3+ 7, MAx3+25, MAy3+7,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+10, MAy3+11, MAx3+25, MAy3+11,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+13, MAy3, MAx3+13, MAy3+15,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+17, MAy3, MAx3+17, MAy3+15,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+21, MAy3, MAx3+21, MAy3+15,0,0,true);
}
drawn = true;
MAx3 = Event->pos().x() - Doc->contentsX();
MAy3 = Event->pos().y() - Doc->contentsY();
Doc->PostPaintEvent (_Line, MAx3+10, MAy3+ 3, MAx3+25, MAy3+3); // paint new
Doc->PostPaintEvent (_Line, MAx3+10, MAy3+ 7, MAx3+25, MAy3+7);
Doc->PostPaintEvent (_Line, MAx3+10, MAy3+11, MAx3+25, MAy3+11);
Doc->PostPaintEvent (_Line, MAx3+13, MAy3, MAx3+13, MAy3+15);
Doc->PostPaintEvent (_Line, MAx3+17, MAy3, MAx3+17, MAy3+15);
Doc->PostPaintEvent (_Line, MAx3+21, MAy3, MAx3+21, MAy3+15);
Doc->PostPaintEvent (_Line, MAx3+10, MAy3+ 3, MAx3+25, MAy3+3,0,0,true); // paint new
Doc->PostPaintEvent (_Line, MAx3+10, MAy3+ 7, MAx3+25, MAy3+7,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+10, MAy3+11, MAx3+25, MAy3+11,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+13, MAy3, MAx3+13, MAy3+15,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+17, MAy3, MAx3+17, MAy3+15,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+21, MAy3, MAx3+21, MAy3+15,0,0,true);
}
// -----------------------------------------------------------
@ -723,30 +723,30 @@ void MouseActions::MMoveOnGrid(Schematic *Doc, QMouseEvent *Event)
void MouseActions::MMoveMoveTextB(Schematic *Doc, QMouseEvent *Event)
{
//QPainter painter(Doc->viewport());
Doc->PostPaintEvent (_NotRop, 0,0,0,0);
Doc->PostPaintEvent (_NotRop, 0,0,0,0,0,0,true);
if(drawn) {
Doc->PostPaintEvent (_Line, MAx3+14, MAy3 , MAx3+16, MAy3); // erase old
Doc->PostPaintEvent (_Line, MAx3+23, MAy3 , MAx3+25, MAy3);
Doc->PostPaintEvent (_Line, MAx3+13, MAy3 , MAx3+13, MAy3+ 3);
Doc->PostPaintEvent (_Line, MAx3+13, MAy3+ 7, MAx3+13, MAy3+10);
Doc->PostPaintEvent (_Line, MAx3+14, MAy3+10, MAx3+16, MAy3+10);
Doc->PostPaintEvent (_Line, MAx3+23, MAy3+10, MAx3+25, MAy3+10);
Doc->PostPaintEvent (_Line, MAx3+26, MAy3 , MAx3+26, MAy3+ 3);
Doc->PostPaintEvent (_Line, MAx3+26, MAy3+ 7, MAx3+26, MAy3+10);
Doc->PostPaintEvent (_Line, MAx3+14, MAy3 , MAx3+16, MAy3,0,0,true); // erase old
Doc->PostPaintEvent (_Line, MAx3+23, MAy3 , MAx3+25, MAy3,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+13, MAy3 , MAx3+13, MAy3+ 3,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+13, MAy3+ 7, MAx3+13, MAy3+10,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+14, MAy3+10, MAx3+16, MAy3+10,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+23, MAy3+10, MAx3+25, MAy3+10,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+26, MAy3 , MAx3+26, MAy3+ 3,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+26, MAy3+ 7, MAx3+26, MAy3+10,0,0,true);
}
drawn = true;
MAx3 = Event->pos().x() - Doc->contentsX();
MAy3 = Event->pos().y() - Doc->contentsY();
Doc->PostPaintEvent (_Line, MAx3+14, MAy3 , MAx3+16, MAy3); // paint new
Doc->PostPaintEvent (_Line, MAx3+23, MAy3 , MAx3+25, MAy3);
Doc->PostPaintEvent (_Line, MAx3+13, MAy3 , MAx3+13, MAy3+ 3);
Doc->PostPaintEvent (_Line, MAx3+13, MAy3+ 7, MAx3+13, MAy3+10);
Doc->PostPaintEvent (_Line, MAx3+14, MAy3+10, MAx3+16, MAy3+10);
Doc->PostPaintEvent (_Line, MAx3+23, MAy3+10, MAx3+25, MAy3+10);
Doc->PostPaintEvent (_Line, MAx3+26, MAy3 , MAx3+26, MAy3+ 3);
Doc->PostPaintEvent (_Line, MAx3+26, MAy3+ 7, MAx3+26, MAy3+10);
Doc->PostPaintEvent (_Line, MAx3+14, MAy3 , MAx3+16, MAy3,0,0,true); // paint new
Doc->PostPaintEvent (_Line, MAx3+23, MAy3 , MAx3+25, MAy3,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+13, MAy3 , MAx3+13, MAy3+ 3,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+13, MAy3+ 7, MAx3+13, MAy3+10,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+14, MAy3+10, MAx3+16, MAy3+10,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+23, MAy3+10, MAx3+25, MAy3+10,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+26, MAy3 , MAx3+26, MAy3+ 3,0,0,true);
Doc->PostPaintEvent (_Line, MAx3+26, MAy3+ 7, MAx3+26, MAy3+10,0,0,true);
}
// -----------------------------------------------------------
@ -756,7 +756,7 @@ void MouseActions::MMoveMoveText(Schematic *Doc, QMouseEvent *Event)
//setPainter(Doc, &painter);
if(drawn)
Doc->PostPaintEvent (_Rect, MAx1, MAy1, MAx2, MAy2); // erase old
Doc->PostPaintEvent (_Rect, MAx1, MAy1, MAx2, MAy2,0,0,true); // erase old
drawn = true;
int newX = DOC_X_POS(Event->pos().x());
@ -766,7 +766,7 @@ void MouseActions::MMoveMoveText(Schematic *Doc, QMouseEvent *Event)
MAx3 = newX;
MAy3 = newY;
Doc->PostPaintEvent (_Rect, MAx1, MAy1, MAx2, MAy2); // paint new
Doc->PostPaintEvent (_Rect, MAx1, MAy1, MAx2, MAy2,0,0,true); // paint new
}
// -----------------------------------------------------------
@ -774,20 +774,20 @@ void MouseActions::MMoveMoveText(Schematic *Doc, QMouseEvent *Event)
void MouseActions::MMoveZoomIn(Schematic *Doc, QMouseEvent *Event)
{
//QPainter painter(Doc->viewport());
Doc->PostPaintEvent (_NotRop, 0,0,0,0);
Doc->PostPaintEvent (_NotRop, 0,0,0,0,0,0,true);
if(drawn) {
Doc->PostPaintEvent (_Line, MAx3+14, MAy3 , MAx3+22, MAy3); // erase old
Doc->PostPaintEvent (_Line, MAx3+18, MAy3-4 , MAx3+18, MAy3+4);
Doc->PostPaintEvent (_Ellipse, MAx3+12, MAy3-6, 13, 13);
Doc->PostPaintEvent (_Line, MAx3+14, MAy3 , MAx3+22, MAy3,0,0,true); // erase old
Doc->PostPaintEvent (_Line, MAx3+18, MAy3-4 , MAx3+18, MAy3+4,0,0,true);
Doc->PostPaintEvent (_Ellipse, MAx3+12, MAy3-6, 13, 13,0,0,true);
}
drawn = true;
MAx3 = Event->pos().x() - Doc->contentsX();
MAy3 = Event->pos().y() - Doc->contentsY();
Doc->PostPaintEvent (_Line, MAx3+14, MAy3 , MAx3+22, MAy3); // paint new
Doc->PostPaintEvent (_Line, MAx3+18, MAy3-4 , MAx3+18, MAy3+4);
Doc->PostPaintEvent (_Ellipse, MAx3+12, MAy3-6, 13, 13);
Doc->PostPaintEvent (_Line, MAx3+14, MAy3 , MAx3+22, MAy3,0,0,true); // paint new
Doc->PostPaintEvent (_Line, MAx3+18, MAy3-4 , MAx3+18, MAy3+4,0,0,true);
Doc->PostPaintEvent (_Ellipse, MAx3+12, MAy3-6, 13, 13,0,0,true);
Doc->viewport()->update();
}

View File

@ -99,15 +99,26 @@ function dataSet = loadQucsDataSet(dataSetFile)
end
else
if idata > 0
[val,cnt] = sscanf(line,'%f');
if cnt ~= 1
fprintf(1,'Invalid data in data set %s\n',dataSetFile);
error = 1;
break;
end
if idata > length(dataSet(idx).data)
dataSet(idx).data = [dataSet(idx).data zeros(1,10000)];
% check if number is complex
jloc = strfind(line, 'j');
if isempty(jloc)
[val,cnt] = sscanf(line,'%f');
if cnt ~= 1
error('QUCS:laoddataset:badnum','Invalid data in data set %s\n', dataSetFile);
end
else
line(jloc) = line(jloc-1);
line(jloc-1) = ' ';
[val,cnt] = sscanf(line,'%f');
if cnt ~= 2
error('QUCS:laoddataset:badnum', 'Invalid data in data set %s\n', dataSetFile);
end
val = complex(val(1), val(2));
end
% if idata > length(dataSet(idx).data)
% dataSet(idx).data = [dataSet(idx).data zeros(1,10000)];
% end
dataSet(idx).data(idata) = val;
idata = idata + 1;
end

View File

@ -478,22 +478,38 @@ void Schematic::drawContents(QPainter *p, int, int, int, int)
{
PostedPaintEvent p = PostedPaintEvents[i];
QPainter painter2(viewport());
switch(p.pe)
{
case _NotRop:
Painter.Painter->setCompositionMode(QPainter::RasterOp_SourceAndNotDestination);
if(p.PaintOnViewport)
painter2.setCompositionMode(QPainter::RasterOp_SourceAndNotDestination);
else
Painter.Painter->setCompositionMode(QPainter::RasterOp_SourceAndNotDestination);
break;
case _Rect:
Painter.drawRect(p.x1, p.y1, p.x2, p.y2);
if(p.PaintOnViewport)
painter2.drawRect(p.x1, p.y1, p.x2, p.y2);
else
Painter.drawRect(p.x1, p.y1, p.x2, p.y2);
break;
case _Line:
Painter.drawLine(p.x1, p.y1, p.x2, p.y2);
if(p.PaintOnViewport)
painter2.drawLine(p.x1, p.y1, p.x2, p.y2);
else
Painter.drawLine(p.x1, p.y1, p.x2, p.y2);
break;
case _Ellipse:
Painter.drawEllipse(p.x1, p.y1, p.x2, p.y2);
if(p.PaintOnViewport)
painter2.drawEllipse(p.x1, p.y1, p.x2, p.y2);
else
Painter.drawEllipse(p.x1, p.y1, p.x2, p.y2);
break;
case _Arc:
Painter.drawArc(p.x1, p.y1, p.x2, p.y2, p.a, p.b);
if(p.PaintOnViewport)
painter2.drawArc(p.x1, p.y1, p.x2, p.y2, p.a, p.b);
else
Painter.drawArc(p.x1, p.y1, p.x2, p.y2, p.a, p.b);
break;
case _DotLine:
Painter.Painter->setPen(Qt::DotLine);
@ -512,9 +528,9 @@ void Schematic::drawContents(QPainter *p, int, int, int, int)
}
void Schematic::PostPaintEvent (PE pe, int x1, int y1, int x2, int y2, int a, int b)
void Schematic::PostPaintEvent (PE pe, int x1, int y1, int x2, int y2, int a, int b, bool PaintOnViewport)
{
PostedPaintEvent p = {pe, x1,y1,x2,y2,a,b};
PostedPaintEvent p = {pe, x1,y1,x2,y2,a,b,PaintOnViewport};
PostedPaintEvents.push_back(p);
viewport()->update();
update();

View File

@ -52,7 +52,7 @@ struct DigSignal {
};
typedef QMap<QString, DigSignal> DigMap;
typedef enum {_NotRop, _Rect, _Line, _Ellipse, _Arc, _DotLine, _Translate, _Scale}PE;
typedef struct {PE pe; int x1; int y1;int x2;int y2;int a; int b;}PostedPaintEvent;
typedef struct {PE pe; int x1; int y1;int x2;int y2;int a; int b; bool PaintOnViewport;}PostedPaintEvent;
// subcircuit, vhdl, etc. file structure
struct SubFile {
@ -75,7 +75,7 @@ public:
void setChanged(bool, bool fillStack=false, char Op='*');
void paintGrid(ViewPainter*, int, int, int, int);
void print(QPrinter*, QPainter*, bool, bool);
void PostPaintEvent(PE pe, int x1=0, int y1=0, int x2=0, int y2=0, int a=0, int b=0);
void PostPaintEvent(PE pe, int x1=0, int y1=0, int x2=0, int y2=0, int a=0, int b=0,bool PaintOnViewport=false);
float textCorr();
void sizeOfAll(int&, int&, int&, int&);