Krita Source Code Documentation
Loading...
Searching...
No Matches
quick_settings_docker.quick_settings_docker.QuickSettingsDocker Class Reference
+ Inheritance diagram for quick_settings_docker.quick_settings_docker.QuickSettingsDocker:

Public Member Functions

 __init__ (self)
 
 canvasChanged (self, canvas)
 
 fillOpacityModel (self)
 
 fillSizesModel (self)
 
 setBrushFlow (self, index)
 
 setBrushOpacity (self, index)
 
 setBrushSize (self, index)
 

Public Attributes

 brushFlowModel
 
 brushFlowTableView
 
 brushOpacityModel
 
 brushOpacityTableView
 
 brushSizeModel
 
 brushSizeTableView
 
 opacityList
 
 setBrushFlow
 
 setBrushOpacity
 
 setBrushSize
 
 sizesList
 

Detailed Description

Definition at line 27 of file quick_settings_docker.py.

Constructor & Destructor Documentation

◆ __init__()

quick_settings_docker.quick_settings_docker.QuickSettingsDocker.__init__ ( self)

Definition at line 30 of file quick_settings_docker.py.

30 def __init__(self):
31 super(QuickSettingsDocker, self).__init__()
32 # make base-widget and layout
33 widget = QWidget()
34 layout = QVBoxLayout()
35 widget.setLayout(layout)
36 self.setWindowTitle(i18n("Quick Settings Docker"))
37 tabWidget = QTabWidget()
38
39 self.brushSizeTableView = QListView()
40 self.brushSizeTableView.setViewMode(QListView.ViewMode.IconMode)
41 self.brushSizeTableView.setMovement(QListView.Movement.Static)
42 self.brushSizeTableView.setResizeMode(QListView.ResizeMode.Adjust)
43 self.brushSizeTableView.setUniformItemSizes(True)
44 self.brushSizeTableView.setSelectionMode(QListView.SelectionMode.SingleSelection)
45
46 self.brushOpacityTableView = QListView()
47 self.brushOpacityTableView.setViewMode(QListView.ViewMode.IconMode)
48 self.brushOpacityTableView.setMovement(QListView.Movement.Static)
49 self.brushOpacityTableView.setResizeMode(QListView.ResizeMode.Adjust)
50 self.brushOpacityTableView.setUniformItemSizes(True)
51 self.brushOpacityTableView.setSelectionMode(QListView.SelectionMode.SingleSelection)
52
53 self.brushFlowTableView = QListView()
54 self.brushFlowTableView.setViewMode(QListView.ViewMode.IconMode)
55 self.brushFlowTableView.setMovement(QListView.Movement.Static)
56 self.brushFlowTableView.setResizeMode(QListView.ResizeMode.Adjust)
57 self.brushFlowTableView.setUniformItemSizes(True)
58 self.brushFlowTableView.setSelectionMode(QListView.SelectionMode.SingleSelection)
59
60 tabWidget.addTab(self.brushSizeTableView, i18n("Size"))
61 tabWidget.addTab(self.brushOpacityTableView, i18n("Opacity"))
62 tabWidget.addTab(self.brushFlowTableView, i18n("Flow"))
63 layout.addWidget(tabWidget)
64 self.setWidget(widget) # Add the widget to the docker.
65
66 # amount of columns in each row for all the tables.
67
68 # We want a grid with possible options to select. To do this,
69 # we'll make a ListView widget and use a standarditemmodel for
70 # the entries. The entries are filled out based on the sizes
71 # and opacity lists.
72
73 # Sizes and opacity lists. The former is half-way copied from
74 # ptsai, the latter is based on personal experience of useful
75 # opacities.
76 self.sizesList = [
77 0.7, 1.0, 1.5, 2, 2.5, 3, 3.5, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16,
78 20, 25, 30, 35, 40, 50, 60, 70, 80, 100, 120, 160, 200, 250, 300,
79 350, 400, 450, 500]
80 self.opacityList = [
81 0.1, 0.5, 1, 5, 10, 15, 20, 30, 40, 50, 60, 70, 80, 90, 100]
82 self.brushSizeModel = QStandardItemModel()
83 self.brushOpacityModel = QStandardItemModel()
84 self.brushFlowModel = QStandardItemModel()
85 self.fillSizesModel()
86 self.fillOpacityModel()
87
88 # Now we're done filling out our tables, we connect the views
89 # to the functions that'll change the settings.
90 self.brushSizeTableView.clicked.connect(self.setBrushSize)
91 self.brushOpacityTableView.clicked.connect(self.setBrushOpacity)
92 self.brushFlowTableView.clicked.connect(self.setBrushFlow)
93

References quick_settings_docker.quick_settings_docker.QuickSettingsDocker.__init__(), KisPipeBrushParasite.dim, KisSpinBoxUnitManager.dim, FlattenSpec.dim, and xcfLayer.dim.

Member Function Documentation

◆ canvasChanged()

quick_settings_docker.quick_settings_docker.QuickSettingsDocker.canvasChanged ( self,
canvas )

Definition at line 166 of file quick_settings_docker.py.

166 def canvasChanged(self, canvas):
167 pass
168

◆ fillOpacityModel()

quick_settings_docker.quick_settings_docker.QuickSettingsDocker.fillOpacityModel ( self)

Definition at line 131 of file quick_settings_docker.py.

131 def fillOpacityModel(self):
132 self.brushOpacityModel.clear()
133 self.brushFlowModel.clear()
134 for s in range(len(self.opacityList)):
135 # we're gonna iterate over our list, and make a new item
136 # for each entry.
137 item = QStandardItem()
138 item.setCheckable(False)
139 item.setEditable(False)
140 item.setDragEnabled(False)
141 item.setText(str(self.opacityList[s])+" %")
142 brushImage = QPixmap(64, 64)
143 img = QImage(64, 64, QImage.Format.Format_RGBA8888)
144 circlePainter = QPainter()
145 img.fill(Qt.GlobalColor.transparent)
146 circlePainter.begin(img)
147 brush = QBrush(Qt.BrushStyle.SolidPattern)
148 brush.setColor(
149 self.brushSizeTableView.palette().color(QPalette.ColorRole.Text))
150 circlePainter.setBrush(brush)
151 circlePainter.setPen(QPen(QBrush(Qt.GlobalColor.transparent), 0))
152 circlePainter.setOpacity(float(self.opacityList[s]) / 100.0)
153 circlePainter.drawEllipse(QPointF(32, 32), 32, 32)
154 circlePainter.end()
155 brushImage = QPixmap.fromImage(img)
156 item.setIcon(QIcon(brushImage))
157 # the flow and opacity models will use virtually the same
158 # items, but Qt would like us to make sure we understand
159 # these are not really the same items, so hence the clone.
160 itemFlow = item.clone()
161 self.brushOpacityModel.appendRow(item)
162 self.brushFlowModel.appendRow(itemFlow)
163 self.brushOpacityTableView.setModel(self.brushOpacityModel)
164 self.brushFlowTableView.setModel(self.brushFlowModel)
165
rgba palette[MAX_PALETTE]
Definition palette.c:35

References quick_settings_docker.quick_settings_docker.QuickSettingsDocker.brushFlowModel, quick_settings_docker.quick_settings_docker.QuickSettingsDocker.brushFlowTableView, quick_settings_docker.quick_settings_docker.QuickSettingsDocker.brushOpacityModel, quick_settings_docker.quick_settings_docker.QuickSettingsDocker.brushOpacityTableView, quick_settings_docker.quick_settings_docker.QuickSettingsDocker.brushSizeTableView, quick_settings_docker.quick_settings_docker.QuickSettingsDocker.opacityList, and palette.

◆ fillSizesModel()

quick_settings_docker.quick_settings_docker.QuickSettingsDocker.fillSizesModel ( self)

Definition at line 94 of file quick_settings_docker.py.

94 def fillSizesModel(self):
95 # First we empty the old model. We might wanna use this
96 # function in the future to fill it with the brushmask of the
97 # selected brush, but there's currently no API for recognising
98 # changes in the current brush nor is there a way to get its
99 # brushmask.
100 self.brushSizeModel.clear()
101 for s in range(len(self.sizesList)):
102 # we're gonna iterate over our list, and make a new item
103 # for each entry. We need to disable a bunch of stuff to
104 # make sure people won't do funny things to our entries.
105 item = QStandardItem()
106 item.setCheckable(False)
107 item.setEditable(False)
108 item.setDragEnabled(False)
109 item.setText(str(self.sizesList[s])+" px")
110 # And from here on we'll make an icon.
111 brushImage = QPixmap(64, 64)
112 img = QImage(64, 64, QImage.Format.Format_RGBA8888)
113 circlePainter = QPainter()
114 img.fill(Qt.GlobalColor.transparent)
115 circlePainter.begin(img)
116 brush = QBrush(Qt.BrushStyle.SolidPattern)
117 brush.setColor(
118 self.brushSizeTableView.palette().color(QPalette.ColorRole.Text))
119 circlePainter.setBrush(brush)
120 circlePainter.setPen(QPen(QBrush(Qt.GlobalColor.transparent), 0))
121 brushSize = max(min(self.sizesList[s], 64), 1)
122 brushSize = brushSize * 0.5
123 circlePainter.drawEllipse(QPointF(32, 32), brushSize, brushSize)
124 circlePainter.end()
125 brushImage = QPixmap.fromImage(img)
126 # now we're done with drawing the icon, so we set it on the item.
127 item.setIcon(QIcon(brushImage))
128 self.brushSizeModel.appendRow(item)
129 self.brushSizeTableView.setModel(self.brushSizeModel)
130

References quick_settings_docker.quick_settings_docker.QuickSettingsDocker.brushSizeModel, quick_settings_docker.quick_settings_docker.QuickSettingsDocker.brushSizeTableView, palette, and quick_settings_docker.quick_settings_docker.QuickSettingsDocker.sizesList.

◆ setBrushFlow()

quick_settings_docker.quick_settings_docker.QuickSettingsDocker.setBrushFlow ( self,
index )

Definition at line 186 of file quick_settings_docker.py.

186 def setBrushFlow(self, index):
187 i = index.row()
188 brushOpacity = float(self.opacityList[i]) / 100.0
189 window = Application.activeWindow()
190 if window and window.views():
191 window.views()[0].setPaintingFlow(brushOpacity)

References quick_settings_docker.quick_settings_docker.QuickSettingsDocker.opacityList.

◆ setBrushOpacity()

quick_settings_docker.quick_settings_docker.QuickSettingsDocker.setBrushOpacity ( self,
index )

Definition at line 178 of file quick_settings_docker.py.

178 def setBrushOpacity(self, index):
179 i = index.row()
180 brushOpacity = float(self.opacityList[i]) / 100.0
181 window = Application.activeWindow()
182 if window and window.views():
183 window.views()[0].setPaintingOpacity(brushOpacity)
184

References quick_settings_docker.quick_settings_docker.QuickSettingsDocker.opacityList.

◆ setBrushSize()

quick_settings_docker.quick_settings_docker.QuickSettingsDocker.setBrushSize ( self,
index )

Definition at line 170 of file quick_settings_docker.py.

170 def setBrushSize(self, index):
171 i = index.row()
172 brushSize = self.sizesList[i]
173 window = Application.activeWindow()
174 if window and window.views():
175 window.views()[0].setBrushSize(brushSize)
176

References quick_settings_docker.quick_settings_docker.QuickSettingsDocker.setBrushSize, and quick_settings_docker.quick_settings_docker.QuickSettingsDocker.sizesList.

Member Data Documentation

◆ brushFlowModel

quick_settings_docker.quick_settings_docker.QuickSettingsDocker.brushFlowModel

Definition at line 84 of file quick_settings_docker.py.

◆ brushFlowTableView

quick_settings_docker.quick_settings_docker.QuickSettingsDocker.brushFlowTableView

Definition at line 53 of file quick_settings_docker.py.

◆ brushOpacityModel

quick_settings_docker.quick_settings_docker.QuickSettingsDocker.brushOpacityModel

Definition at line 83 of file quick_settings_docker.py.

◆ brushOpacityTableView

quick_settings_docker.quick_settings_docker.QuickSettingsDocker.brushOpacityTableView

Definition at line 46 of file quick_settings_docker.py.

◆ brushSizeModel

quick_settings_docker.quick_settings_docker.QuickSettingsDocker.brushSizeModel

Definition at line 82 of file quick_settings_docker.py.

◆ brushSizeTableView

quick_settings_docker.quick_settings_docker.QuickSettingsDocker.brushSizeTableView

Definition at line 39 of file quick_settings_docker.py.

◆ opacityList

quick_settings_docker.quick_settings_docker.QuickSettingsDocker.opacityList

Definition at line 80 of file quick_settings_docker.py.

◆ setBrushFlow

quick_settings_docker.quick_settings_docker.QuickSettingsDocker.setBrushFlow

Definition at line 92 of file quick_settings_docker.py.

◆ setBrushOpacity

quick_settings_docker.quick_settings_docker.QuickSettingsDocker.setBrushOpacity

Definition at line 91 of file quick_settings_docker.py.

◆ setBrushSize

quick_settings_docker.quick_settings_docker.QuickSettingsDocker.setBrushSize

Definition at line 90 of file quick_settings_docker.py.

◆ sizesList

quick_settings_docker.quick_settings_docker.QuickSettingsDocker.sizesList

Definition at line 76 of file quick_settings_docker.py.


The documentation for this class was generated from the following file: