Skip to content
This repository has been archived by the owner on Sep 16, 2020. It is now read-only.

Commit

Permalink
rename to mixer slider
Browse files Browse the repository at this point in the history
  • Loading branch information
tusooa committed Mar 29, 2019
1 parent b8fba4c commit 27df23d
Show file tree
Hide file tree
Showing 8 changed files with 45 additions and 48 deletions.
@@ -1,8 +1,8 @@
[Desktop Entry]
Type=Service
ServiceTypes=Krita/PythonPlugin
X-KDE-Library=color_slider_docker
X-Python-2-Compatible=true
X-KDE-Library=mixer_slider_docker
X-Python-2-Compatible=false
X-Krita-Manual=Manual.html
Name=Color Slider docker
Name=Mixer Slider docker
Comment=A color slider.
File renamed without changes.
Expand Up @@ -16,4 +16,4 @@
You should have received a copy of the GNU General Public License
along with Krita-docker-color-slider. If not, see <https://www.gnu.org/licenses/>.
'''
from .color_slider_docker import *
from .mixer_slider_docker import *
Expand Up @@ -56,8 +56,7 @@ def update_slider(self):
https://github.com/KDE/krita/blob/master/plugins/dockers/advancedcolorselector/kis_shade_selector_line.cpp
'''
if self.need_redraw:
patchCount = self.width()
patchWidth = 1
patch_count = self.width()
base_hsva = self.docker.managedcolor_to_qcolor(self.left_color).getHsvF()
dest_hsva = self.docker.managedcolor_to_qcolor(self.right_color).getHsvF()
diff_hsva = [(dest_hsva[i] - base_hsva[i]) for i in range(4)]
Expand All @@ -68,15 +67,15 @@ def update_slider(self):
elif diff_hsva[0] < -0.5:
diff_hsva[0] = diff_hsva[0] + 1.0

step_hsva = [x / patchCount for x in diff_hsva]
step_hsva = [x / patch_count for x in diff_hsva]

print('base: ', base_hsva)
print('dest: ', dest_hsva)
print('step: ', step_hsva)
self.slider_pixmap = QPixmap(self.width(), self.height())
painter = QPainter(self.slider_pixmap)

for i in range(patchCount):
for i in range(patch_count):
hue = base_hsva[0] + i * step_hsva[0]
while hue < 0.0:
hue += 1.0
Expand Down Expand Up @@ -115,7 +114,7 @@ def paintEvent(self, event):
def resizeEvent(self, event): # after resizing the widget, force-redraw the underlying slider
self.need_redraw = True

def adjust_pos_x(self, x):
def adjust_pos_x(self, x): # adjust the x to make it in the range of [0, width - 1]
if x < 0:
return 0
if x >= self.width():
Expand Down
Expand Up @@ -23,18 +23,18 @@
import math
from krita import *

from .color_slider_line import ColorSliderLine
from .ui_color_slider_docker import UIColorSliderDocker
from .slider_line import SliderLine
from .ui_mixer_slider_docker import UIMixerSliderDocker


class Color_Slider_Docker(DockWidget):
class MixerSliderDocker(DockWidget):
# Init the docker

def __init__(self):
super(Color_Slider_Docker, self).__init__()
super(MixerSliderDocker, self).__init__()

main_program = Krita.instance()
settings = main_program.readSetting("", "ColorSliderColors",
settings = main_program.readSetting("", "MixerSliderColors",
"RGBA,U8,sRGB-elle-V2-srgbtrc.icc,1,0.8,0.4,1," +
"RGBA,U8,sRGB-elle-V2-srgbtrc.icc,0,0,0,1") # alpha=1 == non-transparent

Expand All @@ -56,7 +56,7 @@ def __init__(self):
colors = line.split(',')
leftColor = self.parseColor(colors[0:7])
rightColor = self.parseColor(colors[7:])
widget = ColorSliderLine(leftColor, rightColor, self)
widget = SliderLine(leftColor, rightColor, self)
self.sliders.append(widget)
self.layout.addWidget(widget)

Expand All @@ -78,7 +78,7 @@ def settings_changed(self):
self.sliders = self.sliders[0:num_sliders]
elif len(self.sliders) < num_sliders:
for i in range(num_sliders - len(self.sliders)):
widget = ColorSliderLine(self.default_left_color, self.default_right_color, self)
widget = SliderLine(self.default_left_color, self.default_right_color, self)
self.sliders.append(widget)
self.layout.addWidget(widget)
self.writeSettings()
Expand All @@ -91,7 +91,7 @@ def get_color_space(self):
return ManagedColor('RGBA', 'U8', 'sRGB-elle-V2-srgbtrc.icc')

def init_ui(self):
self.ui = UIColorSliderDocker()
self.ui = UIMixerSliderDocker()
self.ui.initialize(self)

def writeSettings(self):
Expand All @@ -100,7 +100,7 @@ def writeSettings(self):
[self.color_to_settings(line.left) + ',' + self.color_to_settings(line.right)
for line in self.sliders])

main_program.writeSetting("", "ColorSliderColors", setting)
main_program.writeSetting("", "MixerSliderColors", setting)

def color_to_settings(self, managedcolor):
return ','.join([managedcolor.colorModel(),
Expand All @@ -123,4 +123,4 @@ def qcolor_to_managedcolor(self, qcolor):
def managedcolor_to_qcolor(self, managedcolor):
return managedcolor.colorForCanvas(self.canvas())

Application.addDockWidgetFactory(DockWidgetFactory("color_slider_docker", DockWidgetFactoryBase.DockRight, Color_Slider_Docker))
Application.addDockWidgetFactory(DockWidgetFactory("mixer_slider_docker", DockWidgetFactoryBase.DockRight, MixerSliderDocker))
Expand Up @@ -19,16 +19,16 @@
from PyQt5.QtWidgets import QDialog


class ColorSliderDockerDialog(QDialog):
def __init__(self, ui_color_slider, parent=None):
super(ColorSliderDockerDialog, self).__init__(parent)
class SettingsDialog(QDialog):
def __init__(self, ui_mixer_slider, parent=None):
super(SettingsDialog, self).__init__(parent)

self.ui_color_slider = ui_color_slider
self.ui_mixer_slider = ui_mixer_slider

def accept(self):
self.ui_color_slider.docker.settings_changed()
self.ui_mixer_slider.docker.settings_changed()

super(ColorSliderDockerDialog, self).accept()
super(SettingsDialog, self).accept()

def closeEvent(self, event):
event.accept()
Expand Up @@ -24,11 +24,11 @@
from .color_slider import ColorSlider


class ColorSliderBtn(QWidget):
class SliderBtn(QWidget):
clicked = pyqtSignal()

def __init__(self, parent=None):
super(ColorSliderBtn, self).__init__(parent)
super(SliderBtn, self).__init__(parent)

def set_color(self, qcolor):
self.color = qcolor
Expand All @@ -49,11 +49,11 @@ def mouseReleaseEvent(self, event):
self.clicked.emit()


class ColorSliderLine(QWidget):
class SliderLine(QWidget):
def __init__(self, left_color, right_color, docker, parent=None):
super(ColorSliderLine, self).__init__(parent)
self.left_button = ColorSliderBtn()
self.right_button = ColorSliderBtn()
super(SliderLine, self).__init__(parent)
self.left_button = SliderBtn()
self.right_button = SliderBtn()
self.docker = docker
self.color_slider = ColorSlider(docker)
self.layout = QHBoxLayout()
Expand Down Expand Up @@ -89,8 +89,6 @@ def set_color(self, pos, color):
def slot_update_left_color(self):
if self.docker.canvas() is not None:
if self.docker.canvas().view() is not None:
mc = self.docker.canvas().view().foregroundColor()
print(mc.colorModel(), mc.colorDepth(), mc.colorProfile(), mc.components())
self.set_color('left', self.docker.canvas().view().foregroundColor())
self.color_slider.value_x = 0 # set the cursor to the left-most
self.color_slider.update()
Expand Down
Expand Up @@ -21,24 +21,24 @@
from PyQt5.QtCore import Qt
import krita

from .color_slider_docker_dialog import ColorSliderDockerDialog
from .settings_dialog import SettingsDialog


class UIColorSliderDocker(object):
class UIMixerSliderDocker(object):
def __init__(self):
self.kritaInstance = krita.Krita.instance()
self.mainDialog = ColorSliderDockerDialog(self, self.kritaInstance.activeWindow().qwindow())
self.krita_instance = krita.Krita.instance()
self.main_dialog = SettingsDialog(self, self.krita_instance.activeWindow().qwindow())

self.buttonBox = QDialogButtonBox(self.mainDialog)
self.vbox = QVBoxLayout(self.mainDialog)
self.hbox = QHBoxLayout(self.mainDialog)
self.button_box = QDialogButtonBox(self.main_dialog)
self.vbox = QVBoxLayout(self.main_dialog)
self.hbox = QHBoxLayout(self.main_dialog)
self.line_edit = None

self.buttonBox.accepted.connect(self.mainDialog.accept)
self.buttonBox.rejected.connect(self.mainDialog.reject)
self.button_box.accepted.connect(self.main_dialog.accept)
self.button_box.rejected.connect(self.main_dialog.reject)

self.buttonBox.setOrientation(Qt.Horizontal)
self.buttonBox.setStandardButtons(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
self.button_box.setOrientation(Qt.Horizontal)
self.button_box.setStandardButtons(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)

def initialize(self, docker):
self.docker = docker
Expand All @@ -49,8 +49,8 @@ def initialize(self, docker):
self.line_edit.setValidator(QIntValidator(1, 8))
self.hbox.addWidget(self.line_edit)

self.vbox.addWidget(self.buttonBox)
self.vbox.addWidget(self.button_box)

self.mainDialog.show()
self.mainDialog.activateWindow()
self.mainDialog.exec_()
self.main_dialog.show()
self.main_dialog.activateWindow()
self.main_dialog.exec_()

0 comments on commit 27df23d

Please sign in to comment.