Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
873 changes: 873 additions & 0 deletions dwpicker/capture.py

Large diffs are not rendered by default.

33 changes: 30 additions & 3 deletions dwpicker/designer/editor.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
from dwpicker.designer.display import DisplayOptions
from dwpicker.designer.menu import MenuWidget
from dwpicker.designer.attributes import AttributeEditor
from dwpicker.designer.viewportwidget import ViewportWidget


DIRECTION_OFFSETS = {
Expand All @@ -39,6 +40,9 @@ def __init__(self, document, parent=None):
title = "Picker editor - " + document.data['general']['name']
self.setWindowTitle(title)

self.splitter_layout = QtWidgets.QSplitter()
self.splitter_layout.setObjectName("SplitterLayout")

self.document = document
self.document.shapes_changed.connect(self.update)
self.document.general_option_changed.connect(self.generals_modified)
Expand All @@ -47,6 +51,9 @@ def __init__(self, document, parent=None):

self.display_options = DisplayOptions()

self.viewport_widget = ViewportWidget()
self.viewport_widget.addSnapshotRequested.connect(self.capture_snapshot)

self.shape_canvas = ShapeEditCanvas(
self.document, self.display_options)
self.shape_canvas.callContextMenu.connect(self.call_context_menu)
Expand All @@ -67,6 +74,7 @@ def __init__(self, document, parent=None):
self.menu.snapValuesChanged.connect(self.snap_value_changed)
self.menu.buttonLibraryRequested.connect(self.call_library)
self.menu.useSnapToggled.connect(self.use_snap)
self.menu.viewportToggled.connect(self.toggle_viewport)
method = self.shape_canvas.set_lock_background_shape
self.menu.lockBackgroundShapeToggled.connect(method)
self.menu.undoRequested.connect(self.document.undo)
Expand Down Expand Up @@ -115,18 +123,34 @@ def __init__(self, document, parent=None):
self.attribute_editor.panelDoubleClicked.connect(
self.shape_canvas.select_panel_shapes)

self.splitter_layout.addWidget(self.viewport_widget)
self.splitter_layout.addWidget(self.shape_canvas)
self.splitter_layout.setSizes([0, 1])

self.hlayout = QtWidgets.QHBoxLayout()
self.hlayout.setSizeConstraint(QtWidgets.QLayout.SetMaximumSize)
self.hlayout.setContentsMargins(0, 0, 0, 0)
self.hlayout.addWidget(self.shape_canvas)
self.hlayout.addWidget(self.splitter_layout)
self.hlayout.addWidget(self.attribute_editor)

self.vlayout = QtWidgets.QVBoxLayout(self)
self.vlayout.setObjectName("VerticalLayout")
self.vlayout.setContentsMargins(0, 0, 0, 0)
self.vlayout.setSpacing(0)
self.vlayout.addWidget(self.menu)
self.vlayout.addLayout(self.hlayout)

def toggle_viewport(self):
"""Collapse or expand the left widget"""
sizes = self.splitter_layout.sizes()
if sizes[0] > 0: # If left widget is visible
self.splitter_layout.setSizes([0, sizes[1]])
else:
self.splitter_layout.setSizes([sizes[1] // 2, sizes[1] // 2])

def capture_snapshot(self, file=None):
self.create_shape(BACKGROUND, before=True, image=True, filepath=file)

def call_library(self, point):
self.shape_library_menu.move(point)
self.shape_library_menu.show()
Expand Down Expand Up @@ -284,13 +308,16 @@ def create_library_shape(self, path):

def create_shape(
self, template, before=False, position=None, targets=None,
image=False):
image=False, filepath=None):

options = deepcopy(template)
panel = self.shape_canvas.display_options.current_panel
options['panel'] = max((panel, 0))
if image:
filename = get_image_path(self, "Select background image.")
if filepath:
filename = filepath
else:
filename = get_image_path(self, "Select background image.")
if filename:
filename = format_path(filename)
options['image.path'] = filename
Expand Down
6 changes: 6 additions & 0 deletions dwpicker/designer/menu.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ class MenuWidget(QtWidgets.QWidget):
symmetryRequested = QtCore.Signal(bool)
undoRequested = QtCore.Signal()
useSnapToggled = QtCore.Signal(bool)
viewportToggled = QtCore.Signal()

def __init__(self, display_options, parent=None):
super(MenuWidget, self).__init__(parent=parent)
Expand Down Expand Up @@ -89,6 +90,10 @@ def __init__(self, display_options, parent=None):
self.hierarchy.setChecked(state)
self.hierarchy.toggled.connect(self.toggle_hierarchy_display)

self.viewport = QtWidgets.QAction(icon('3d_axis.png'), '', self)
self.viewport.triggered.connect(self.viewportToggled.emit)
self.viewport.setToolTip('Toggle viewport')

self.snap = QtWidgets.QAction(icon('snap.png'), '', self)
self.snap.setToolTip('Snap grid enable')
self.snap.setCheckable(True)
Expand Down Expand Up @@ -202,6 +207,7 @@ def __init__(self, display_options, parent=None):
self.toolbar.addAction(self.lock_bg)
self.toolbar.addAction(self.isolate)
self.toolbar.addAction(self.hierarchy)
self.toolbar.addAction(self.viewport)
self.toolbar.addSeparator()
self.toolbar.addAction(self.snap)
self.toolbar.addWidget(self.snapx)
Expand Down
Loading