Update
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
from ngSkinTools2.api import PaintTool
|
||||
from ngSkinTools2.api.paint import popups
|
||||
from ngSkinTools2.api.pyside import QtCore, QtGui, QtWidgets
|
||||
from ngSkinTools2.ui import qt, widgets
|
||||
from ngSkinTools2.ui.layout import scale_multiplier
|
||||
|
||||
|
||||
def brush_settings_popup(paint):
|
||||
"""
|
||||
|
||||
:type paint: PaintTool
|
||||
"""
|
||||
window = QtWidgets.QWidget(qt.mainWindow)
|
||||
window.setWindowFlags(QtCore.Qt.Popup | QtCore.Qt.FramelessWindowHint)
|
||||
window.setAttribute(QtCore.Qt.WA_DeleteOnClose)
|
||||
|
||||
spacing = 5
|
||||
|
||||
layout = QtWidgets.QVBoxLayout()
|
||||
layout.setSpacing(spacing)
|
||||
|
||||
intensity_slider = widgets.NumberSliderGroup()
|
||||
widgets.set_paint_expo(intensity_slider, paint.paint_mode)
|
||||
intensity_slider.set_value(paint.intensity)
|
||||
|
||||
@qt.on(intensity_slider.slider.sliderReleased, intensity_slider.spinner.editingFinished)
|
||||
def close_with_slider_intensity():
|
||||
close_with_intensity(intensity_slider.value())
|
||||
|
||||
def close_with_intensity(value):
|
||||
paint.intensity = value
|
||||
window.close()
|
||||
|
||||
def create_intensity_button(intensity):
|
||||
btn = QtWidgets.QPushButton("{0:.3g}".format(intensity))
|
||||
btn.clicked.connect(lambda: close_with_intensity(intensity))
|
||||
btn.setMinimumWidth(60 * scale_multiplier)
|
||||
btn.setMinimumHeight(30 * scale_multiplier)
|
||||
return btn
|
||||
|
||||
layout.addLayout(intensity_slider.layout())
|
||||
|
||||
for values in [(0.0, 1.0), (0.25, 0.5, 0.75), (0.025, 0.05, 0.075, 0.1, 0.125)]:
|
||||
row = QtWidgets.QHBoxLayout()
|
||||
row.setSpacing(spacing)
|
||||
for v in values:
|
||||
row.addWidget(create_intensity_button(v))
|
||||
layout.addLayout(row)
|
||||
|
||||
group = QtWidgets.QGroupBox("Brush Intensity")
|
||||
group.setLayout(layout)
|
||||
|
||||
layout = QtWidgets.QVBoxLayout()
|
||||
layout.setContentsMargins(4 * scale_multiplier, 4 * scale_multiplier, 4 * scale_multiplier, 4 * scale_multiplier)
|
||||
layout.addWidget(group)
|
||||
|
||||
window.setLayout(layout)
|
||||
|
||||
window.show()
|
||||
mp = QtGui.QCursor.pos()
|
||||
window.move(mp.x() - window.size().width() / 2, mp.y() - window.size().height() / 2)
|
||||
|
||||
window.activateWindow()
|
||||
|
||||
popups.close_all()
|
||||
popups.add(window)
|
||||
Reference in New Issue
Block a user