Skip to content

Commit

Permalink
Merge pull request #363 from Capsize-Games/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
w4ffl35 authored Jan 11, 2024
2 parents ffb9cbb + 0bcfbe1 commit dc49604
Show file tree
Hide file tree
Showing 7 changed files with 61 additions and 60 deletions.
2 changes: 1 addition & 1 deletion src/airunner/widgets/brush/brush_container_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,5 @@ def brush(self):

def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.ui.brush_size_slider.setProperty("current_value", self.app.brush_size)
self.ui.brush_size_slider.setProperty("current_value", self.app.brush_settings["size"])
self.ui.brush_size_slider.initialize()
2 changes: 1 addition & 1 deletion src/airunner/widgets/brush/templates/brush_widget.ui
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
<string>Brush Size</string>
</property>
<property name="slider_callback" stdset="0">
<string notr="true">action_slider_changed</string>
<string notr="true">handle_value_change</string>
</property>
<property name="settings_property" stdset="0">
<string notr="true">brush_settings.size</string>
Expand Down
2 changes: 1 addition & 1 deletion src/airunner/widgets/brush/templates/brush_widget_ui.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ def setupUi(self, brush_widget):
self.brush_size_slider.setProperty("slider_page_step", 10)
self.brush_size_slider.setProperty("spinbox_single_step", 1)
self.brush_size_slider.setProperty("spinbox_page_step", 10)
self.brush_size_slider.setProperty("slider_callback", "action_slider_changed")
self.brush_size_slider.setProperty("slider_callback", "handle_value_change")
self.brush_size_slider.setProperty("settings_property", "brush_settings.size")
self.brush_size_slider.setProperty("display_as_float", False)
self.brush_size_slider.setObjectName("brush_size_slider")
Expand Down
52 changes: 38 additions & 14 deletions src/airunner/widgets/canvas_plus/canvas_plus_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
from PyQt6.QtCore import QThread, pyqtSignal
from PyQt6.QtCore import QLineF
from PyQt6.QtWidgets import QGraphicsItemGroup
from PyQt6.QtCore import QRectF, QSizeF
from PyQt6.QtGui import QPainterPath

from airunner.aihandler.logger import Logger
from airunner.cursors.circle_brush import CircleCursor
Expand Down Expand Up @@ -197,24 +199,40 @@ def mouseReleaseEvent(self, event):

class CustomScene(QGraphicsScene):
def __init__(self, parent=None):
self.app = parent.app
super().__init__(parent)
self.drawing = False
self.last_point = QPointF()
self.image = QImage(800, 600, QImage.Format.Format_ARGB32)
self.image.fill(Qt.GlobalColor.white)
self.item = QGraphicsPixmapItem(QPixmap.fromImage(self.image))
self.addItem(self.item)

def drawAt(self, position):
painter = QPainter(self.image)
print(self.app.brush_settings["size"])
painter.setPen(QPen(Qt.GlobalColor.black, self.app.brush_settings["size"], Qt.PenStyle.SolidLine, Qt.PenCapStyle.RoundCap))
painter.drawPoint(position)
painter.end()
self.item.setPixmap(QPixmap.fromImage(self.image))

def eraseAt(self, position):
painter = QPainter(self.image)
painter.setPen(QPen(Qt.GlobalColor.transparent, self.app.brush_settings["size"], Qt.PenStyle.SolidLine, Qt.PenCapStyle.RoundCap))
painter.setCompositionMode(QPainter.CompositionMode.CompositionMode_Clear)
painter.drawPoint(position)
painter.end()
self.item.setPixmap(QPixmap.fromImage(self.image))

def mousePressEvent(self, event):
if event.button() == Qt.MouseButton.LeftButton:
self.drawing = True
self.last_point = event.scenePos()
if self.app.current_tool == "brush":
self.drawAt(event.scenePos())
elif self.app.current_tool == "eraser":
self.eraseAt(event.scenePos())

def mouseMoveEvent(self, event):
if self.drawing:
new_point = event.scenePos()
self.addLine(QLineF(self.last_point, new_point), QPen(Qt.GlobalColor.red, 5))
self.last_point = new_point

def mouseReleaseEvent(self, event):
if event.button() == Qt.MouseButton.LeftButton:
self.drawing = False
if self.app.current_tool == "brush":
self.drawAt(event.scenePos())
elif self.app.current_tool == "eraser":
self.eraseAt(event.scenePos())


class CanvasPlusWidget(CanvasBaseWidget):
Expand Down Expand Up @@ -345,6 +363,12 @@ def __init__(self, *args, **kwargs):
self.app.line_width_changed_signal.connect(self.line_width_changed)
self.app.line_color_changed_signal.connect(self.line_color_changed)
self.app.canvas_color_changed_signal.connect(self.canvas_color_changed)
self.app.window_resized_signal.connect(self.window_resized)
self.canvas_container.resizeEvent = self.window_resized

def window_resized(self, event):
self.redraw_lines = True
self.do_draw()

def toggle_grid(self, val):
self.do_draw()
Expand Down Expand Up @@ -457,7 +481,7 @@ def resizeEvent(self, event):

def initialize(self):
# Create a QGraphicsScene object
self.scene = CustomScene()
self.scene = CustomScene(parent=self)

self.view = self.canvas_container
original_mouse_event = self.view.mouseMoveEvent
Expand Down
8 changes: 4 additions & 4 deletions src/airunner/widgets/generator_form/generator_form_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,9 @@ def latents_seed(self):

@latents_seed.setter
def latents_seed(self, val):
generator_settings = self.app.settings_manager.generator
generator_settings = self.app.generator_settings
generator_settings["latents_seed"] = val
self.app.settings_manager.generator = generator_settings
self.app.generator_settings = generator_settings
self.app.standard_image_panel.ui.seed_widget_latents.ui.lineEdit.setText(str(val))

@property
Expand All @@ -87,9 +87,9 @@ def seed(self):

@seed.setter
def seed(self, val):
generator_settings = self.app.settings_manager.generator
generator_settings = self.app.generator_settings
generator_settings["seed"] = val
self.app.settings_manager.generator = generator_settings
self.app.generator_settings = generator_settings
self.app.standard_image_panel.ui.seed_widget.ui.lineEdit.setText(str(val))

@property
Expand Down
15 changes: 0 additions & 15 deletions src/airunner/widgets/seed/seed_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,6 @@ class SeedWidget(BaseWidget):
widget_class_ = Ui_seed_widget
name = "seed_widget"

# def initialize(self, generator_section, generator_name):
# self.ui.lineEdit.setText(str(self.seed))
# self.app.settings_manager.generator_section = generator_section
# self.app.settings_manager.generator_name = generator_name
# self.ui.random_button.setChecked(self.app.generator_settings["random_seed"])
# self.ui.lineEdit.setEnabled(not self.app.generator_settings["random_seed"])

def update_seed(self):
self.ui.lineEdit.setText(str(self.seed))

Expand All @@ -28,11 +21,3 @@ def action_value_changed_seed(self, value):

class LatentsSeedWidget(SeedWidget):
setting_name = "generator.random_latents_seed"

# def initialize(self, generator_section, generator_name):
# self.app.settings_manager.generator_section = generator_section
# self.app.settings_manager.generator_name = generator_name
# self.ui.label.setText("Image Seed")
# self.update_seed()
# self.ui.random_button.setChecked(self.app.generator_settings["random_latents_seed"])
# self.ui.lineEdit.setEnabled(not self.app.generator_settings["random_latents_seed"])
40 changes: 16 additions & 24 deletions src/airunner/windows/main/main_window.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
from airunner.aihandler.logger import Logger as logger
from airunner.aihandler.pyqt_client import OfflineClient
from airunner.aihandler.qtvar import MessageHandlerVar
from airunner.aihandler.settings import LOG_LEVEL
from airunner.aihandler.settings import DEFAULT_BRUSH_PRIMARY_COLOR, DEFAULT_BRUSH_SECONDARY_COLOR, LOG_LEVEL
from airunner.airunner_api import AIRunnerAPI
from airunner.data.models import DEFAULT_PATHS, LLMGenerator
from airunner.filters.windows.filter_base import FilterBase
Expand Down Expand Up @@ -168,6 +168,7 @@ def add_event(self, *args, **kwargs):
image_data = pyqtSignal(dict)
load_image = pyqtSignal(str)
load_image_object = pyqtSignal(object)
window_resized_signal = pyqtSignal(object)

generator = None
_generator = None
Expand Down Expand Up @@ -269,30 +270,18 @@ def tome_sd_ratio(self):
def tome_sd_ratio(self, val):
self.application_settings.setValue("tome_sd_ratio", val)


@property
def brush_size(self):
return self.application_settings.value("brush_size", 1, type=int)

@brush_size.setter
def brush_size(self, val):
self.application_settings.setValue("brush_size", val)

@property
def brush_primary_color(self):
return self.application_settings.value("brush_primary_color", "#000000")

@brush_primary_color.setter
def brush_primary_color(self, val):
self.application_settings.setValue("brush_primary_color", val)
def brush_settings(self):
return self.application_settings.value("brush_settings", dict(
size=1,
primary_color=DEFAULT_BRUSH_PRIMARY_COLOR,
secondary_color=DEFAULT_BRUSH_SECONDARY_COLOR,
))

@property
def brush_secondary_color(self):
return self.application_settings.value("brush_secondary_color", "#ffffff")

@brush_secondary_color.setter
def brush_secondary_color(self, val):
self.application_settings.setValue("brush_secondary_color", val)
@brush_settings.setter
def brush_settings(self, val):
print("SET BRUSH_SETTINGS", val)
self.application_settings.setValue("brush_settings", val)

@property
def ai_mode(self):
Expand Down Expand Up @@ -462,6 +451,9 @@ def set_path_settings(self, key, val):
path_settings = self.path_settings
path_settings[key] = val
self.path_settings = path_settings

def resizeEvent(self, event):
self.window_resized_signal.emit(event)

@property
def resize_on_paste(self):
Expand Down Expand Up @@ -1500,7 +1492,7 @@ def handle_button_clicked(self, kwargs):
self.toggle_tool(kwargs["tool"])

def toggle_tool(self, tool):
self.settings_manager.set_value("settings.current_tool", tool)
self.current_tool = tool

def initialize_mixins(self):
#self.canvas = Canvas()
Expand Down

0 comments on commit dc49604

Please sign in to comment.