Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
else:
name_lines = [name]
for linenum, line in enumerate(name_lines):
h = textHeight
if tooLong and len(name_lines) > 1:
if linenum == 0:
h += h / 2
else:
h -= h / 2
words = line.split()
NotRightEdge = (
not self.options.tab_name_align == "right" and
(self.options.tab_name_align == "centre" or
item.getClosestSide(backside=backside) != CardPlot.RIGHT or
not self.options.tab_name_align == "edge"))
if wrapper == "back" and not self.options.tab_name_align == "centre":
NotRightEdge = not NotRightEdge
if NotRightEdge:
if (self.options.tab_name_align == "centre" or self.wantCentreTab(card)
or (item.getClosestSide(backside=backside) == CardPlot.CENTRE
and self.options.tab_name_align == "edge")):
w = item.tabWidth / 2 - self.nameWidth(line, fontSize) / 2
else:
w = textInset
def drawWordPiece(text, fontSize):
self.canvas.setFont(self.font_mapping['Regular'], fontSize)
if text != ' ':
self.canvas.drawString(w, h, text)
return pdfmetrics.stringWidth(text, self.font_mapping['Regular'],
self.tabIndex = self.tabIndexBack = 1 # There is only one tab, so can only use 1 for both sides
elif 1 <= self.tabIndex <= CardPlot.tabNumber:
self.tabIndexBack = CardPlot.tabNumber + 1 - self.tabIndex
else:
# For anything else, just start at 1
self.tabIndex = self.tabIndexBack = 1
# Now set the offsets and the closest edge to the tab
if self.tabIndex == 0:
# Special case for centred tabs
self.tabOffset = self.tabOffsetBack = (CardPlot.cardWidth - CardPlot.tabWidth) / 2
self.closestSide = CardPlot.CENTRE
elif CardPlot.tabNumber <= 1:
# If just one tab, then can be right, centre, or left
self.closestSide = CardPlot.tabStartSide
if CardPlot.tabStartSide == CardPlot.RIGHT:
self.tabOffset = CardPlot.cardWidth - CardPlot.tabWidth
self.tabOffsetBack = 0
elif CardPlot.tabStartSide == CardPlot.CENTRE:
self.tabOffset = (CardPlot.cardWidth - CardPlot.tabWidth) / 2
self.tabOffsetBack = (CardPlot.cardWidth - CardPlot.tabWidth) / 2
else:
# LEFT and anything else
self.tabOffset = 0
self.tabOffsetBack = CardPlot.cardWidth - CardPlot.tabWidth
else:
# More than 1 tabs
self.tabOffset = (self.tabIndex - 1) * (
(CardPlot.cardWidth - CardPlot.tabWidth) / (CardPlot.tabNumber - 1))
self.tabOffsetBack = CardPlot.cardWidth - CardPlot.tabWidth - self.tabOffset
# Set which edge is closest to the tab
# just in case the dividers need to be reordered on the page.
# By setting up first, any tab or text flipping will be correct,
# even if the divider moves around a bit on the pages.
# Drawing line type
if options.cropmarks:
if 'dot' in options.linetype.lower():
lineType = 'dot' # Allow the DOTs if requested
else:
lineType = 'no_line'
else:
lineType = options.linetype.lower()
# Starting with tabs on the left, right, or centre?
if "right" in options.tab_side:
tabSideStart = CardPlot.RIGHT # right, right-alternate, right-flip
elif "left" in options.tab_side:
tabSideStart = CardPlot.LEFT # left, left-alternate, left-flip
elif "centre" in options.tab_side:
tabSideStart = CardPlot.CENTRE # centre
elif "full" == options.tab_side:
tabSideStart = CardPlot.CENTRE # full
else:
tabSideStart = CardPlot.LEFT # catch anything else
cardWidth = options.dominionCardWidth
cardHeight = options.dominionCardHeight
# Adjust for Vertical
if options.orientation == "vertical":
cardWidth, cardHeight = cardHeight, cardWidth
def getClosestSide(self, backside=False):
# Get the closest side for this tab.
# Used when wanting text to be aligned towards the outer edge.
side = self.closestSide
if backside:
# Need to flip
if side == CardPlot.LEFT:
side = CardPlot.RIGHT
elif side == CardPlot.RIGHT:
side = CardPlot.LEFT
return side