Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Graphics
Okular
Commits
3a331b78
Commit
3a331b78
authored
Aug 07, 2020
by
Albert Astals Cid
Browse files
PagePainter: Don't draw Arrow/Line annotations with multipyl
Otherwise they will be transparent when they shouldn't
BUGS: 425075
parent
2c70ec41
Changes
2
Hide whitespace changes
Inline
Side-by-side
ui/pagepainter.cpp
View file @
3a331b78
...
...
@@ -1105,14 +1105,14 @@ void LineAnnotPainter::draw(QImage &image) const
void
LineAnnotPainter
::
drawMainLine
(
QImage
&
image
)
const
{
// draw the line as normalized path into image
PagePainter
::
drawShapeOnImage
(
image
,
transformPath
(
la
->
transformedLinePoints
(),
toNormalizedImage
),
la
->
lineClosed
(),
linePen
,
fillBrush
,
pageScale
,
PagePainter
::
Multiply
);
PagePainter
::
drawShapeOnImage
(
image
,
transformPath
(
la
->
transformedLinePoints
(),
toNormalizedImage
),
la
->
lineClosed
(),
linePen
,
fillBrush
,
pageScale
);
}
void
LineAnnotPainter
::
drawShortenedLine
(
double
mainSegmentLength
,
double
size
,
QImage
&
image
,
const
QTransform
&
toNormalizedPage
)
const
{
const
QTransform
combinedTransform
{
toNormalizedPage
*
toNormalizedImage
};
const
QList
<
Okular
::
NormalizedPoint
>
path
{{
shortenForArrow
(
size
,
la
->
lineStartStyle
()),
0
},
{
mainSegmentLength
-
shortenForArrow
(
size
,
la
->
lineEndStyle
()),
0
}};
PagePainter
::
drawShapeOnImage
(
image
,
transformPath
(
path
,
combinedTransform
),
la
->
lineClosed
(),
linePen
,
fillBrush
,
pageScale
,
PagePainter
::
Multiply
);
PagePainter
::
drawShapeOnImage
(
image
,
transformPath
(
path
,
combinedTransform
),
la
->
lineClosed
(),
linePen
,
fillBrush
,
pageScale
);
}
void
LineAnnotPainter
::
drawLineEnds
(
double
mainSegmentLength
,
double
size
,
QImage
&
image
,
const
QTransform
&
transform
)
const
...
...
@@ -1189,7 +1189,7 @@ void LineAnnotPainter::drawLineEndArrow(double xEndPos, double size, double flip
{
xEndPos
,
0
},
{
xEndPos
-
size
*
flipX
,
-
size
/
2.
},
};
PagePainter
::
drawShapeOnImage
(
image
,
transformPath
(
path
,
combinedTransform
),
close
,
linePen
,
fillBrush
,
pageScale
,
PagePainter
::
Multiply
);
PagePainter
::
drawShapeOnImage
(
image
,
transformPath
(
path
,
combinedTransform
),
close
,
linePen
,
fillBrush
,
pageScale
);
}
void
LineAnnotPainter
::
drawLineEndButt
(
double
xEndPos
,
double
size
,
const
QTransform
&
toNormalizedPage
,
QImage
&
image
)
const
...
...
@@ -1200,7 +1200,7 @@ void LineAnnotPainter::drawLineEndButt(double xEndPos, double size, const QTrans
{
xEndPos
,
halfSize
},
{
xEndPos
,
-
halfSize
},
};
PagePainter
::
drawShapeOnImage
(
image
,
transformPath
(
path
,
combinedTransform
),
true
,
linePen
,
fillBrush
,
pageScale
,
PagePainter
::
Multiply
);
PagePainter
::
drawShapeOnImage
(
image
,
transformPath
(
path
,
combinedTransform
),
true
,
linePen
,
fillBrush
,
pageScale
);
}
void
LineAnnotPainter
::
drawLineEndCircle
(
double
xEndPos
,
double
size
,
const
QTransform
&
toNormalizedPage
,
QImage
&
image
)
const
...
...
@@ -1216,21 +1216,21 @@ void LineAnnotPainter::drawLineEndCircle(double xEndPos, double size, const QTra
};
/* then transform bounding rect with toNormalizedImage */
PagePainter
::
drawEllipseOnImage
(
image
,
transformPath
(
path
,
toNormalizedImage
),
linePen
,
fillBrush
,
pageScale
,
PagePainter
::
Multiply
);
PagePainter
::
drawEllipseOnImage
(
image
,
transformPath
(
path
,
toNormalizedImage
),
linePen
,
fillBrush
,
pageScale
);
}
void
LineAnnotPainter
::
drawLineEndSquare
(
double
xEndPos
,
double
size
,
const
QTransform
&
toNormalizedPage
,
QImage
&
image
)
const
{
const
QTransform
combinedTransform
{
toNormalizedPage
*
toNormalizedImage
};
const
QList
<
Okular
::
NormalizedPoint
>
path
{{
xEndPos
,
size
/
2.
},
{
xEndPos
-
size
,
size
/
2.
},
{
xEndPos
-
size
,
-
size
/
2.
},
{
xEndPos
,
-
size
/
2.
}};
PagePainter
::
drawShapeOnImage
(
image
,
transformPath
(
path
,
combinedTransform
),
true
,
linePen
,
fillBrush
,
pageScale
,
PagePainter
::
Multiply
);
PagePainter
::
drawShapeOnImage
(
image
,
transformPath
(
path
,
combinedTransform
),
true
,
linePen
,
fillBrush
,
pageScale
);
}
void
LineAnnotPainter
::
drawLineEndDiamond
(
double
xEndPos
,
double
size
,
const
QTransform
&
toNormalizedPage
,
QImage
&
image
)
const
{
const
QTransform
combinedTransform
{
toNormalizedPage
*
toNormalizedImage
};
const
QList
<
Okular
::
NormalizedPoint
>
path
{{
xEndPos
,
0
},
{
xEndPos
-
size
/
2.
,
size
/
2.
},
{
xEndPos
-
size
,
0
},
{
xEndPos
-
size
/
2.
,
-
size
/
2.
}};
PagePainter
::
drawShapeOnImage
(
image
,
transformPath
(
path
,
combinedTransform
),
true
,
linePen
,
fillBrush
,
pageScale
,
PagePainter
::
Multiply
);
PagePainter
::
drawShapeOnImage
(
image
,
transformPath
(
path
,
combinedTransform
),
true
,
linePen
,
fillBrush
,
pageScale
);
}
void
LineAnnotPainter
::
drawLineEndSlash
(
double
xEndPos
,
double
size
,
const
QTransform
&
toNormalizedPage
,
QImage
&
image
)
const
...
...
@@ -1242,7 +1242,7 @@ void LineAnnotPainter::drawLineEndSlash(double xEndPos, double size, const QTran
{
xEndPos
-
xOffset
,
halfSize
},
{
xEndPos
+
xOffset
,
-
halfSize
},
};
PagePainter
::
drawShapeOnImage
(
image
,
transformPath
(
path
,
combinedTransform
),
true
,
linePen
,
fillBrush
,
pageScale
,
PagePainter
::
Multiply
);
PagePainter
::
drawShapeOnImage
(
image
,
transformPath
(
path
,
combinedTransform
),
true
,
linePen
,
fillBrush
,
pageScale
);
}
void
LineAnnotPainter
::
drawLeaderLine
(
double
xEndPos
,
QImage
&
image
,
const
QTransform
&
toNormalizedPage
)
const
...
...
@@ -1262,7 +1262,7 @@ void LineAnnotPainter::drawLeaderLine(double xEndPos, QImage &image, const QTran
path
.
append
({
xEndPos
,
0
});
}
}
PagePainter
::
drawShapeOnImage
(
image
,
transformPath
(
path
,
combinedTransform
),
false
,
linePen
,
fillBrush
,
pageScale
,
PagePainter
::
Multiply
);
PagePainter
::
drawShapeOnImage
(
image
,
transformPath
(
path
,
combinedTransform
),
false
,
linePen
,
fillBrush
,
pageScale
);
}
double
LineAnnotPainter
::
shortenForArrow
(
double
size
,
Okular
::
LineAnnotation
::
TermStyle
endStyle
)
...
...
ui/pagepainter.h
View file @
3a331b78
...
...
@@ -91,7 +91,7 @@ private:
static
void
drawShapeOnImage
(
QImage
&
image
,
const
NormalizedPath
&
normPath
,
bool
closeShape
,
const
QPen
&
pen
,
const
QBrush
&
brush
=
QBrush
(),
double
penWidthMultiplier
=
1.0
,
RasterOperation
op
=
Normal
// float antiAliasRadius = 1.0
);
static
void
drawEllipseOnImage
(
QImage
&
image
,
const
NormalizedPath
&
rect
,
const
QPen
&
pen
,
const
QBrush
&
brush
,
double
penWidthMultiplier
,
RasterOperation
op
);
static
void
drawEllipseOnImage
(
QImage
&
image
,
const
NormalizedPath
&
rect
,
const
QPen
&
pen
,
const
QBrush
&
brush
,
double
penWidthMultiplier
,
RasterOperation
op
=
Normal
);
friend
class
LineAnnotPainter
;
};
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment