docsetdialog.py 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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. import os
  10. # from PyQt5.QtCore import QLine
  11. from PyQt5.QtGui import QIcon, QIntValidator
  12. from PyQt5.QtWidgets import QWidget, QLabel, QDialog, QGroupBox, QDialogButtonBox, QVBoxLayout, QFormLayout, QLineEdit, QComboBox, QSpinBox, QFrame
  13. class DocsetDialog(QDialog):
  14. def __init__(self, parent):
  15. super(DocsetDialog, self).__init__(parent)
  16. self.parent = parent
  17. self.createFormGroupBox()
  18. buttonBox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
  19. buttonBox.accepted.connect(self.accept)
  20. buttonBox.rejected.connect(self.reject)
  21. mainLayout = QVBoxLayout()
  22. mainLayout.addWidget(self.formGroupBox)
  23. mainLayout.addWidget(buttonBox)
  24. self.setLayout(mainLayout)
  25. self.setWindowTitle("Doc settings")
  26. def createFormGroupBox(self):
  27. ds = self.parent.core.docsettings
  28. self.formGroupBox = QGroupBox()
  29. layout = QFormLayout()
  30. self.np = FormLineEdit(str(ds['np']),3,True)
  31. layout.addRow(QLabel("Numbers of Pages:"), self.np)
  32. #
  33. layout.addRow(Line(self))
  34. #
  35. self.pw = FormLineEdit(str(ds['pw']))
  36. layout.addRow(QLabel("Page Width (mm):"), self.pw)
  37. self.ph = FormLineEdit(str(ds['ph']))
  38. layout.addRow(QLabel("Page Height (mm):"), self.ph)
  39. #
  40. layout.addRow(Line(self))
  41. #
  42. self.mt = FormLineEdit(str(ds['mt']),3)
  43. layout.addRow(QLabel("Margin Top (mm):"), self.mt)
  44. self.mb = FormLineEdit(str(ds['mb']),3)
  45. layout.addRow(QLabel("Margin Bottom (mm):"), self.mb)
  46. self.mi = FormLineEdit(str(ds['mi']),3)
  47. layout.addRow(QLabel("Margin inner (mm):"), self.mi)
  48. self.me = FormLineEdit(str(ds['me']),3)
  49. layout.addRow(QLabel("Margin external (mm):"), self.me)
  50. #
  51. layout.addRow(Line(self))
  52. #
  53. self.cs = FormLineEdit(str(ds['cs']),3)
  54. layout.addRow(QLabel("Crop size (mm):"), self.cs)
  55. self.bs = FormLineEdit(str(ds['bs']),3)
  56. layout.addRow(QLabel("Bleed size (mm):"), self.bs)
  57. #
  58. layout.addRow(Line(self))
  59. #
  60. self.cn = FormLineEdit(str(ds['cn']),2,True)
  61. layout.addRow(QLabel("Columns number:"), self.cn)
  62. self.cg = FormLineEdit(str(ds['cg']),2)
  63. layout.addRow(QLabel("Columns gutters:"), self.cg)
  64. #
  65. self.rn = FormLineEdit(str(ds['rn']),2,True)
  66. layout.addRow(QLabel("Rows number:"), self.rn)
  67. self.rg = FormLineEdit(str(ds['rg']),2)
  68. layout.addRow(QLabel("Rows gutters:"), self.rg)
  69. #
  70. layout.addRow(Line(self))
  71. #
  72. self.lh = FormLineEdit(str(ds['lh']),2,True)
  73. layout.addRow(QLabel("Line height:"), self.lh)
  74. self.formGroupBox.setLayout(layout)
  75. class FormLineEdit(QLineEdit):
  76. def __init__(self, parent, ml=5, int=False, mw=60):
  77. super(FormLineEdit, self).__init__(parent)
  78. self.setFixedWidth(mw)
  79. self.setMaxLength(ml)
  80. if int:
  81. self.setValidator(QIntValidator())
  82. else:
  83. # TODO: set float validator
  84. self.setValidator(QIntValidator())
  85. class Line(QFrame):
  86. def __init__(self, parent):
  87. super(Line, self).__init__(parent)
  88. self.setFrameShape(QFrame.HLine)
  89. self.setFrameShadow(QFrame.Sunken)