6 """ |
6 """ |
7 Module implementing a dialog to enter data for an image markup. |
7 Module implementing a dialog to enter data for an image markup. |
8 """ |
8 """ |
9 |
9 |
10 import contextlib |
10 import contextlib |
|
11 import enum |
11 |
12 |
12 from PyQt6.QtCore import QSize, pyqtSlot |
13 from PyQt6.QtCore import QSize, pyqtSlot |
13 from PyQt6.QtGui import QImage, QImageReader |
14 from PyQt6.QtGui import QImage, QImageReader |
14 from PyQt6.QtWidgets import QDialog, QDialogButtonBox |
15 from PyQt6.QtWidgets import QDialog, QDialogButtonBox |
15 |
16 |
16 from eric7.EricWidgets.EricPathPicker import EricPathPickerModes |
17 from eric7.EricWidgets.EricPathPicker import EricPathPickerModes |
17 |
18 |
18 from .Ui_ImageMarkupDialog import Ui_ImageMarkupDialog |
19 from .Ui_ImageMarkupDialog import Ui_ImageMarkupDialog |
19 |
20 |
20 |
21 |
|
22 class ImageMarkupMode(enum.Enum): |
|
23 """ |
|
24 Class defining the image markup modes. |
|
25 """ |
|
26 |
|
27 Html = 0 |
|
28 MarkDown = 1 |
|
29 Rest = 2 |
|
30 |
|
31 |
21 class ImageMarkupDialog(QDialog, Ui_ImageMarkupDialog): |
32 class ImageMarkupDialog(QDialog, Ui_ImageMarkupDialog): |
22 """ |
33 """ |
23 Class implementing a dialog to enter data for an image markup. |
34 Class implementing a dialog to enter data for an image markup. |
24 """ |
35 """ |
25 |
|
26 # TODO: change this to an enum |
|
27 HtmlMode = 0 |
|
28 MarkDownMode = 1 |
|
29 RestMode = 2 |
|
30 |
36 |
31 def __init__(self, mode, parent=None): |
37 def __init__(self, mode, parent=None): |
32 """ |
38 """ |
33 Constructor |
39 Constructor |
34 |
40 |
38 @type QWidget |
44 @type QWidget |
39 """ |
45 """ |
40 super().__init__(parent) |
46 super().__init__(parent) |
41 self.setupUi(self) |
47 self.setupUi(self) |
42 |
48 |
43 if mode == ImageMarkupDialog.MarkDownMode: |
49 if mode == ImageMarkupMode.MarkDown: |
44 self.sizeCheckBox.setEnabled(False) |
50 self.sizeCheckBox.setEnabled(False) |
45 self.aspectRatioCheckBox.setEnabled(False) |
51 self.aspectRatioCheckBox.setEnabled(False) |
46 self.widthSpinBox.setEnabled(False) |
52 self.widthSpinBox.setEnabled(False) |
47 self.heightSpinBox.setEnabled(False) |
53 self.heightSpinBox.setEnabled(False) |
48 elif mode == ImageMarkupDialog.RestMode: |
54 elif mode == ImageMarkupMode.Rest: |
49 self.titleEdit.setEnabled(False) |
55 self.titleEdit.setEnabled(False) |
50 |
56 |
51 self.__mode = mode |
57 self.__mode = mode |
52 self.__originalImageSize = QSize() |
58 self.__originalImageSize = QSize() |
53 |
59 |
103 def __updateOkButton(self): |
109 def __updateOkButton(self): |
104 """ |
110 """ |
105 Private slot to set the state of the OK button. |
111 Private slot to set the state of the OK button. |
106 """ |
112 """ |
107 enable = bool(self.imagePicker.text()) |
113 enable = bool(self.imagePicker.text()) |
108 if self.__mode == ImageMarkupDialog.MarkDownMode: |
114 if self.__mode == ImageMarkupMode.MarkDown: |
109 enable = enable and bool(self.altTextEdit.text()) |
115 enable = enable and bool(self.altTextEdit.text()) |
110 |
116 |
111 self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setEnabled(enable) |
117 self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setEnabled(enable) |
112 |
118 |
113 @pyqtSlot(str) |
119 @pyqtSlot(str) |