277 @return flag indicating sub-styling support |
279 @return flag indicating sub-styling support |
278 @rtype bool |
280 @rtype bool |
279 """ |
281 """ |
280 return True |
282 return True |
281 |
283 |
|
284 def getBaseStyles(self): |
|
285 """ |
|
286 Public method to get the list of supported base styles. |
|
287 |
|
288 @return list of base styles |
|
289 @rtype list of int |
|
290 """ |
|
291 return self.baseStyles[:] |
|
292 |
|
293 def substylesCount(self, style): |
|
294 """ |
|
295 Public method to get the number of defined sub-styles. |
|
296 |
|
297 @return number of defined sub-styles |
|
298 @rtype int |
|
299 """ |
|
300 if style in self.__subStyles: |
|
301 count = len(self.__subStyles[style]) |
|
302 else: |
|
303 count = 0 |
|
304 |
|
305 return count |
|
306 |
282 def setSubstyleDescription(self, description, style, substyle): |
307 def setSubstyleDescription(self, description, style, substyle): |
283 """ |
308 """ |
284 |
309 Public method to set the description for a sub-style. |
285 """ |
310 |
|
311 @param description description to be set |
|
312 @type str |
|
313 @param style base style number |
|
314 @type int |
|
315 @param substyle sub-style number |
|
316 @type int |
|
317 """ |
|
318 if style in self.__subStyles and substyle in self.__subStyles[style]: |
|
319 self.__subStyles[style][substyle]["Description"] = description |
286 |
320 |
287 def substyleDescription(self, style, substyle): |
321 def substyleDescription(self, style, substyle): |
288 """ |
322 """ |
289 |
323 Public method to get the description of a sub-style. |
290 """ |
324 |
|
325 @param style base style number |
|
326 @type int |
|
327 @param substyle sub-style number |
|
328 @type int |
|
329 @return sub-style description |
|
330 @rtype str |
|
331 """ |
|
332 if style in self.__subStyles and substyle in self.__subStyles[style]: |
|
333 desc = self.__subStyles[style][substyle]["Description"] |
|
334 else: |
|
335 desc = "" |
|
336 |
|
337 return desc |
|
338 |
|
339 def setSubstyleWords(self, words, style, substyle): |
|
340 """ |
|
341 Public method to set the words for a sub-style. |
|
342 |
|
343 @param words words to be set separated by white-space |
|
344 @type str |
|
345 @param style base style number |
|
346 @type int |
|
347 @param substyle sub-style number |
|
348 @type int |
|
349 """ |
|
350 if style in self.__subStyles and substyle in self.__subStyles[style]: |
|
351 self.__subStyles[style][substyle]["Words"] = words |
|
352 |
|
353 def substyleWords(self, style, substyle): |
|
354 """ |
|
355 Public method to get the words of a sub-style. |
|
356 |
|
357 @param style base style number |
|
358 @type int |
|
359 @param substyle sub-style number |
|
360 @type int |
|
361 @return white-space separated word list |
|
362 @rtype str |
|
363 """ |
|
364 if style in self.__subStyles and substyle in self.__subStyles[style]: |
|
365 words = self.__subStyles[style][substyle]["Words"] |
|
366 else: |
|
367 words = "" |
|
368 |
|
369 return words |
291 |
370 |
292 def setSubstyleColor(self, color, style, substyle): |
371 def setSubstyleColor(self, color, style, substyle): |
293 """ |
372 """ |
294 |
373 Public method to set the foreground color of a sub-style. |
295 """ |
374 |
|
375 @param color foreground color to be set |
|
376 @type QColor |
|
377 @param style base style number |
|
378 @type int |
|
379 @param substyle sub-style number |
|
380 @type int |
|
381 """ |
|
382 if style in self.__subStyles and substyle in self.__subStyles[style]: |
|
383 self.__subStyles[style][substyle]["Style"]["fore"] = \ |
|
384 color.red() << 16 | color.green() << 8 | color.blue() |
296 |
385 |
297 def substyleColor(self, style, substyle): |
386 def substyleColor(self, style, substyle): |
298 """ |
387 """ |
299 |
388 Public method to get the sub-style foreground color. |
300 """ |
389 |
|
390 @param style base style number |
|
391 @type int |
|
392 @param substyle sub-style number |
|
393 @type int |
|
394 @return foreground color |
|
395 @rtype QColor |
|
396 """ |
|
397 color = self.color(style) |
|
398 |
|
399 if style in self.__subStyles and substyle in self.__subStyles[style]: |
|
400 styleData = self.__subStyles[style][substyle]["Style"] |
|
401 if "fore" in styleData: |
|
402 color = QColor( |
|
403 styleData["fore"] >> 16 & 0xff, |
|
404 styleData["fore"] >> 8 & 0xff, |
|
405 styleData["fore"] & 0xff, |
|
406 ) |
|
407 |
|
408 return color |
301 |
409 |
302 def setSubstylePaper(self, color, style, substyle): |
410 def setSubstylePaper(self, color, style, substyle): |
303 """ |
411 """ |
304 |
412 Public method to set the background color of a sub-style. |
305 """ |
413 |
|
414 @param color background color to be set |
|
415 @type QColor |
|
416 @param style base style number |
|
417 @type int |
|
418 @param substyle sub-style number |
|
419 @type int |
|
420 """ |
|
421 if style in self.__subStyles and substyle in self.__subStyles[style]: |
|
422 self.__subStyles[style][substyle]["Style"]["paper"] = \ |
|
423 color.red() << 16 | color.green() << 8 | color.blue() |
306 |
424 |
307 def substylePaper(self, style, substyle): |
425 def substylePaper(self, style, substyle): |
308 """ |
426 """ |
309 |
427 Public method to get the sub-style background color. |
310 """ |
428 |
|
429 @param style base style number |
|
430 @type int |
|
431 @param substyle sub-style number |
|
432 @type int |
|
433 @return background color |
|
434 @rtype QColor |
|
435 """ |
|
436 color = self.paper(style) |
|
437 |
|
438 if style in self.__subStyles and substyle in self.__subStyles[style]: |
|
439 styleData = self.__subStyles[style][substyle]["Style"] |
|
440 if "paper" in styleData: |
|
441 color = QColor( |
|
442 styleData["paper"] >> 16 & 0xff, |
|
443 styleData["paper"] >> 8 & 0xff, |
|
444 styleData["paper"] & 0xff, |
|
445 ) |
|
446 |
|
447 return color |
311 |
448 |
312 def setSubstyleEolFill(self, eolFill, style, substyle): |
449 def setSubstyleEolFill(self, eolFill, style, substyle): |
313 """ |
450 """ |
314 |
451 Public method to set the eolfill flag of a sub-style. |
315 """ |
452 |
|
453 @param eolFill eolfill flag to be set |
|
454 @type bool |
|
455 @param style base style number |
|
456 @type int |
|
457 @param substyle sub-style number |
|
458 @type int |
|
459 """ |
|
460 if style in self.__subStyles and substyle in self.__subStyles[style]: |
|
461 self.__subStyles[style][substyle]["Style"]["eolfill"] = \ |
|
462 eolFill |
316 |
463 |
317 def substyleEolFill(self, style, substyle): |
464 def substyleEolFill(self, style, substyle): |
318 """ |
465 """ |
319 |
466 Public method to get the eolfill flag. |
320 """ |
467 |
|
468 @param style base style number |
|
469 @type int |
|
470 @param substyle sub-style number |
|
471 @type int |
|
472 @return eolfill flag |
|
473 @rtype bool |
|
474 """ |
|
475 eolFill = self.eolFill(style) |
|
476 |
|
477 if style in self.__subStyles and substyle in self.__subStyles[style]: |
|
478 styleData = self.__subStyles[style][substyle]["Style"] |
|
479 if "eolfill" in styleData: |
|
480 eolFill = styleData["eolfill"] |
|
481 |
|
482 return eolFill |
321 |
483 |
322 def setSubstyleFont(self, font, style, substyle): |
484 def setSubstyleFont(self, font, style, substyle): |
323 """ |
485 """ |
324 |
486 Public method to set the font of a sub-style. |
325 """ |
487 |
|
488 @param font font to be set |
|
489 @type QFont |
|
490 @param style base style number |
|
491 @type int |
|
492 @param substyle sub-style number |
|
493 @type int |
|
494 """ |
|
495 if style in self.__subStyles and substyle in self.__subStyles[style]: |
|
496 self.__subStyles[style][substyle]["Style"]["font_family"] = \ |
|
497 font.family() |
|
498 self.__subStyles[style][substyle]["Style"]["font_size"] = \ |
|
499 font.pointSize() |
|
500 self.__subStyles[style][substyle]["Style"]["font_bold"] = \ |
|
501 font.bold() |
|
502 self.__subStyles[style][substyle]["Style"]["font_italic"] = \ |
|
503 font.italic() |
|
504 self.__subStyles[style][substyle]["Style"]["font_underline"] = \ |
|
505 font.underline() |
326 |
506 |
327 def substyleFont(self, style, substyle): |
507 def substyleFont(self, style, substyle): |
328 """ |
508 """ |
329 |
509 Public method to get the sub-style font. |
330 """ |
510 |
|
511 @param style base style number |
|
512 @type int |
|
513 @param substyle sub-style number |
|
514 @type int |
|
515 @return font |
|
516 @rtype QFont |
|
517 """ |
|
518 font = self.font(style) |
|
519 |
|
520 if style in self.__subStyles and substyle in self.__subStyles[style]: |
|
521 styleData = self.__subStyles[style][substyle]["Style"] |
|
522 if "font_family" in styleData: |
|
523 font.setFamily(styleData["font_family"]) |
|
524 if "font_size" in styleData: |
|
525 font.setPointSize(styleData["font_size"]) |
|
526 if "font_bold" in styleData: |
|
527 font.setBold(styleData["font_bold"]) |
|
528 if "font_italic" in styleData: |
|
529 font.setItalic(styleData["font_italic"]) |
|
530 if "font_underline" in styleData: |
|
531 font.setUnderline(styleData["font_underline"]) |
|
532 |
|
533 return font |
331 |
534 |
332 def substyleDefaultDescription(self, style, substyle): |
535 def substyleDefaultDescription(self, style, substyle): |
333 """ |
536 """ |
334 |
537 Public method to get the default description of a sub-style. |
335 """ |
538 |
|
539 @param style base style number |
|
540 @type int |
|
541 @param substyle sub-style number |
|
542 @type int |
|
543 @return sub-style default description |
|
544 @rtype str |
|
545 """ |
|
546 description = "" |
|
547 |
|
548 if style in self.defaultSubStyles and \ |
|
549 substyle in self.defaultSubStyles[style]: |
|
550 styleData = self.defaultSubStyles[style][substyle]["Style"] |
|
551 description = styleData["Description"] |
|
552 |
|
553 return description |
|
554 |
|
555 def substyleDefaultWords(self, style, substyle): |
|
556 """ |
|
557 Public method to get the default words of a sub-style. |
|
558 |
|
559 @param style base style number |
|
560 @type int |
|
561 @param substyle sub-style number |
|
562 @type int |
|
563 @return white-space separated default word list |
|
564 @rtype str |
|
565 """ |
|
566 words = "" |
|
567 |
|
568 if style in self.defaultSubStyles and \ |
|
569 substyle in self.defaultSubStyles[style]: |
|
570 styleData = self.defaultSubStyles[style][substyle]["Style"] |
|
571 words = styleData["Words"] |
|
572 |
|
573 return words |
336 |
574 |
337 def substyleDefaultColor(self, style, substyle): |
575 def substyleDefaultColor(self, style, substyle): |
338 """ |
576 """ |
339 |
577 Public method to get the sub-style default foreground color. |
340 """ |
578 |
|
579 @param style base style number |
|
580 @type int |
|
581 @param substyle sub-style number |
|
582 @type int |
|
583 @return default foreground color |
|
584 @rtype QColor |
|
585 """ |
|
586 color = self.defaultColor(style) |
|
587 |
|
588 if style in self.defaultSubStyles and \ |
|
589 substyle in self.defaultSubStyles[style]: |
|
590 styleData = self.defaultSubStyles[style][substyle]["Style"] |
|
591 if "fore" in styleData: |
|
592 color = QColor( |
|
593 styleData["fore"] >> 16 & 0xff, |
|
594 styleData["fore"] >> 8 & 0xff, |
|
595 styleData["fore"] & 0xff, |
|
596 ) |
|
597 |
|
598 return color |
341 |
599 |
342 def substyleDefaultPaper(self, style, substyle): |
600 def substyleDefaultPaper(self, style, substyle): |
343 """ |
601 """ |
344 |
602 Public method to get the sub-style default background color. |
345 """ |
603 |
|
604 @param style base style number |
|
605 @type int |
|
606 @param substyle sub-style number |
|
607 @type int |
|
608 @return default background color |
|
609 @rtype QColor |
|
610 """ |
|
611 color = self.defaultPaper(style) |
|
612 |
|
613 if style in self.defaultSubStyles and \ |
|
614 substyle in self.defaultSubStyles[style]: |
|
615 styleData = self.defaultSubStyles[style][substyle]["Style"] |
|
616 if "paper" in styleData: |
|
617 color = QColor( |
|
618 styleData["paper"] >> 16 & 0xff, |
|
619 styleData["paper"] >> 8 & 0xff, |
|
620 styleData["paper"] & 0xff, |
|
621 ) |
|
622 |
|
623 return color |
346 |
624 |
347 def substyleDefaultEolFill(self, style, substyle): |
625 def substyleDefaultEolFill(self, style, substyle): |
348 """ |
626 """ |
349 |
627 Public method to get the default eolfill flag. |
350 """ |
628 |
|
629 @param style base style number |
|
630 @type int |
|
631 @param substyle sub-style number |
|
632 @type int |
|
633 @return default eolfill flag |
|
634 @rtype bool |
|
635 """ |
|
636 eolFill = self.defaultEolFill(style) |
|
637 |
|
638 if style in self.defaultSubStyles and \ |
|
639 substyle in self.defaultSubStyles[style]: |
|
640 styleData = self.defaultSubStyles[style][substyle]["Style"] |
|
641 if "eolfill" in styleData: |
|
642 eolFill = styleData["eolfill"] |
|
643 |
|
644 return eolFill |
351 |
645 |
352 def substyleDefaultFont(self, style, substyle): |
646 def substyleDefaultFont(self, style, substyle): |
353 """ |
647 """ |
354 |
648 Public method to get the default sub-style font. |
355 """ |
649 |
|
650 @param style base style number |
|
651 @type int |
|
652 @param substyle sub-style number |
|
653 @type int |
|
654 @return default font |
|
655 @rtype QFont |
|
656 """ |
|
657 font = self.defaultFont(style) |
|
658 |
|
659 if style in self.defaultSubStyles and \ |
|
660 substyle in self.defaultSubStyles[style]: |
|
661 styleData = self.defaultSubStyles[style][substyle]["Style"] |
|
662 if "font_family" in styleData: |
|
663 font.setFamily(styleData["font_family"]) |
|
664 if "font_size" in styleData: |
|
665 font.setPointSize(styleData["font_size"]) |
|
666 if "font_bold" in styleData: |
|
667 font.setBold(styleData["font_bold"]) |
|
668 if "font_italic" in styleData: |
|
669 font.setItalic(styleData["font_italic"]) |
|
670 if "font_underline" in styleData: |
|
671 font.setUnderline(styleData["font_underline"]) |
|
672 |
|
673 return font |
|
674 |
|
675 def addSubstyle(self, style): |
|
676 """ |
|
677 Public method to add a sub-style to a given base style. |
|
678 |
|
679 @param style base style number |
|
680 @type int |
|
681 @return allocated sub-style number |
|
682 @rtype int |
|
683 """ |
|
684 # TODO: implement this |
|
685 # add empty sub-style definition |
|
686 |
|
687 def delSubstyle(self, style, substyle): |
|
688 """ |
|
689 Public method to delet a given sub-style definition. |
|
690 |
|
691 @param style base style number |
|
692 @type int |
|
693 @param substyle sub-style number |
|
694 @type int |
|
695 @return flag indicating successful deletion |
|
696 @rtype bool |
|
697 """ |
|
698 ok = False |
|
699 |
|
700 if style in self.__subStyles and substyle in self.__subStyles[style]: |
|
701 del self.__subStyles[style][substyle] |
|
702 ok = True |
|
703 |
|
704 return ok |