Skip to content

Commit

Permalink
Merge pull request #390 from Capsize-Games/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
w4ffl35 authored Jan 23, 2024
2 parents 76991fb + c37c279 commit 11e6fa2
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 16 deletions.
18 changes: 10 additions & 8 deletions src/airunner/widgets/canvas_plus/canvas_plus_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
class CanvasResizeWorker(Worker):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.queue_type = "get_last_item"
self.register("canvas_resize_signal", self)
self.last_cell_count = (0, 0)

Expand All @@ -34,6 +35,8 @@ def on_canvas_resize_signal(self, data):
self.add_to_queue(data)

def handle_message(self, data:dict):
if not data:
return
settings = data["settings"]
view_size = data["view_size"]

Expand Down Expand Up @@ -77,10 +80,8 @@ def handle_message(self, data:dict):

self.emit("canvas_clear_lines_signal")

for line_data in lines_data:
self.emit("CanvasResizeWorker_response_signal", line_data)

self.emit("canvas_do_draw_signal")
#for line_data in lines_data:
self.emit("CanvasResizeWorker_response_signal", lines_data)


class CanvasPlusWidget(BaseWidget):
Expand Down Expand Up @@ -241,13 +242,14 @@ def on_image_generated_signal(self, image_data: dict):
# ))
self.add_image_to_scene(image_data["images"][0])

def on_CanvasResizeWorker_response_signal(self, line_data: tuple):
def on_CanvasResizeWorker_response_signal(self, lines_data: list):
draw_grid = self.settings["grid_settings"]["show_grid"]
print("on_CanvasResizeWorker_response_signal", draw_grid)
if not draw_grid:
return
line = self.scene.addLine(*line_data)
self.line_group.addToGroup(line)
for line_data in lines_data:
line = self.scene.addLine(*line_data)
self.line_group.addToGroup(line)
self.emit("canvas_do_draw_signal")

def on_ImageDataWorker_response_signal(self, message):
self.emit("clear_status_message_signal")
Expand Down
7 changes: 4 additions & 3 deletions src/airunner/windows/base_window.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
import os
from PyQt6.QtCore import Qt
from PyQt6.QtWidgets import QDialog
from airunner.utils import get_main_window
from airunner.mediator_mixin import MediatorMixin
from airunner.windows.main.settings_mixin import SettingsMixin


class BaseWindow(QDialog, SettingsMixin):
class BaseWindow(QDialog, SettingsMixin, MediatorMixin):
template_class_ = None
template = None
is_modal: bool = False # allow the window to be treated as a modal

def __init__(self, **kwargs):
super().__init__()
MediatorMixin.__init__(self)
SettingsMixin.__init__(self)
super().__init__()
self.do_exec = kwargs.get("exec", True)

self.set_stylesheet()
Expand Down
17 changes: 12 additions & 5 deletions src/airunner/workers/worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,11 +62,18 @@ def get_item_from_queue(self):

def get_last_item(self):
msg = None
index = self.queue.get()
msg = self.items.pop(index, None)
self.items = {}
self.queue.empty()
return msg
index = None
while not self.queue.empty():
index = self.queue.get()
if index in self.items:
break
if index in self.items:
msg = self.items.pop(index)
self.items = {}
self.queue.empty()
return msg
else:
return None

def get_next_item(self):
index = self.queue.get()
Expand Down

0 comments on commit 11e6fa2

Please sign in to comment.