docsetdialog.py 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. # @Author: Bachir Soussi Chiadmi <bach>
  4. # @Date: 23-05-2017
  5. # @Email: bachir@figureslibres.io
  6. # @Last modified by: bach
  7. # @Last modified time: 03-06-2017
  8. # @License: GPL-V3
  9. from __future__ import absolute_import, print_function, division, unicode_literals
  10. import os
  11. # from PyQt5.QtCore import QLine
  12. from PyQt5.QtGui import QIcon, QIntValidator
  13. from PyQt5.QtWidgets import QWidget, QLabel, QDialog, QGroupBox, QDialogButtonBox, QVBoxLayout, QHBoxLayout, QFormLayout, QLineEdit, QComboBox, QSpinBox, QFrame
  14. class DocsetDialog(QDialog):
  15. def __init__(self, parent):
  16. super(DocsetDialog, self).__init__(parent)
  17. self.parent = parent
  18. self.createFormGroupBox()
  19. buttonBox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
  20. buttonBox.accepted.connect(self.accept)
  21. buttonBox.rejected.connect(self.reject)
  22. mainLayout = QVBoxLayout()
  23. mainLayout.addWidget(self.formGroupBox)
  24. mainLayout.addWidget(buttonBox)
  25. self.setLayout(mainLayout)
  26. self.setWindowTitle("Document settings")
  27. def createFormGroupBox(self):
  28. ds = self.parent.core.docsettings
  29. self.formGroupBox = QWidget()
  30. vbox = QVBoxLayout()
  31. vbox.setContentsMargins(0,0,0,0)
  32. self.formGroupBox.setLayout(vbox)
  33. topGroupBox = QWidget()
  34. topformlayout = QFormLayout()
  35. topformlayout.setContentsMargins(0,0,0,0)
  36. topGroupBox.setLayout(topformlayout)
  37. vbox.addWidget(topGroupBox)
  38. colsGroupBox = QWidget()
  39. hbox = QHBoxLayout()
  40. hbox.setContentsMargins(0,0,0,0)
  41. colsGroupBox.setLayout(hbox)
  42. vbox.addWidget(colsGroupBox)
  43. leftGroupBox = QGroupBox()
  44. leftformlayout = QFormLayout()
  45. # leftformlayout.setContentsMargins(0,0,0,0)
  46. leftGroupBox.setLayout(leftformlayout)
  47. hbox.addWidget(leftGroupBox)
  48. rightGroupBox = QGroupBox()
  49. rightformlayout = QFormLayout()
  50. # rightformlayout.setContentsMargins(0,0,0,0)
  51. rightGroupBox.setLayout(rightformlayout)
  52. hbox.addWidget(rightGroupBox)
  53. # headers
  54. self.headerOdd = QLineEdit(str(ds['ho']))
  55. topformlayout.addRow(QLabel("Header odd:"), self.headerOdd)
  56. self.headerEven = QLineEdit(str(ds['he']))
  57. topformlayout.addRow(QLabel("Header even:"), self.headerEven)
  58. self.np = NumLineEdit(str(ds['np']),3,True)
  59. leftformlayout.addRow(QLabel("Numbers of Pages:"), self.np)
  60. #
  61. leftformlayout.addRow(Line(self))
  62. #
  63. self.pw = NumLineEdit(str(ds['pw']))
  64. leftformlayout.addRow(QLabel("Page Width (mm):"), self.pw)
  65. self.ph = NumLineEdit(str(ds['ph']))
  66. leftformlayout.addRow(QLabel("Page Height (mm):"), self.ph)
  67. #
  68. leftformlayout.addRow(Line(self))
  69. #
  70. self.mt = NumLineEdit(str(ds['mt']),3)
  71. leftformlayout.addRow(QLabel("Margin Top (mm):"), self.mt)
  72. self.mb = NumLineEdit(str(ds['mb']),3)
  73. leftformlayout.addRow(QLabel("Margin Bottom (mm):"), self.mb)
  74. self.mi = NumLineEdit(str(ds['mi']),3)
  75. leftformlayout.addRow(QLabel("Margin inner (mm):"), self.mi)
  76. self.me = NumLineEdit(str(ds['me']),3)
  77. leftformlayout.addRow(QLabel("Margin external (mm):"), self.me)
  78. #
  79. self.cs = NumLineEdit(str(ds['cs']),3)
  80. rightformlayout.addRow(QLabel("Crop size (mm):"), self.cs)
  81. self.bs = NumLineEdit(str(ds['bs']),3)
  82. rightformlayout.addRow(QLabel("Bleed size (mm):"), self.bs)
  83. #
  84. rightformlayout.addRow(Line(self))
  85. #
  86. self.cn = NumLineEdit(str(ds['cn']),2,True)
  87. rightformlayout.addRow(QLabel("Columns number:"), self.cn)
  88. self.cg = NumLineEdit(str(ds['cg']),2)
  89. rightformlayout.addRow(QLabel("Columns gutters:"), self.cg)
  90. #
  91. self.rn = NumLineEdit(str(ds['rn']),2,True)
  92. rightformlayout.addRow(QLabel("Rows number:"), self.rn)
  93. self.rg = NumLineEdit(str(ds['rg']),2)
  94. rightformlayout.addRow(QLabel("Rows gutters:"), self.rg)
  95. #
  96. rightformlayout.addRow(Line(self))
  97. #
  98. self.lh = NumLineEdit(str(ds['lh']),2,True)
  99. rightformlayout.addRow(QLabel("Line height:"), self.lh)
  100. # self.formGroupBox.setLayout(layout)
  101. class NumLineEdit(QLineEdit):
  102. def __init__(self, parent, ml=5, int=False, mw=60):
  103. super(NumLineEdit, self).__init__(parent)
  104. self.setFixedWidth(mw)
  105. self.setMaxLength(ml)
  106. if int:
  107. self.setValidator(QIntValidator())
  108. else:
  109. # TODO: set float validator
  110. self.setValidator(QIntValidator())
  111. class Line(QFrame):
  112. def __init__(self, parent):
  113. super(Line, self).__init__(parent)
  114. self.setFrameShape(QFrame.HLine)
  115. self.setFrameShadow(QFrame.Sunken)