- when the selection is changed in the Project Tree the selection shape on canvas is deleted

- if an object is selected on Project Tree and it does not have the selection shape drawn, first click on canvas over it will draw the selection shape
This commit is contained in:
Marius Stanciu
2019-12-23 17:30:04 +02:00
parent cc303ce4f2
commit 98e246a5c4
4 changed files with 44 additions and 17 deletions

View File

@@ -8904,20 +8904,26 @@ class App(QtCore.QObject):
# create the selection box around the selected object
if self.defaults['global_selection_shape'] is True:
self.draw_selection_shape(curr_sel_obj)
curr_sel_obj.selection_shape_drawn = True
elif self.collection.get_active().options['name'] not in objects_under_the_click_list:
elif curr_sel_obj.options['name'] not in objects_under_the_click_list:
self.on_objects_selection(False)
self.delete_selection_shape()
curr_sel_obj.selection_shape_drawn = False
self.collection.set_active(objects_under_the_click_list[0])
curr_sel_obj = self.collection.get_active()
# create the selection box around the selected object
if self.defaults['global_selection_shape'] is True:
self.draw_selection_shape(curr_sel_obj)
curr_sel_obj.selection_shape_drawn = True
self.selected_message(curr_sel_obj=curr_sel_obj)
elif curr_sel_obj.selection_shape_drawn is False:
if self.defaults['global_selection_shape'] is True:
self.draw_selection_shape(curr_sel_obj)
curr_sel_obj.selection_shape_drawn = True
else:
self.on_objects_selection(False)
self.delete_selection_shape()
@@ -8932,6 +8938,7 @@ class App(QtCore.QObject):
# make active the first element of the overlapped objects list
if self.collection.get_active() is None:
self.collection.set_active(objects_under_the_click_list[0])
objects_under_the_click_list[0].selection_shape_drawn = True
name_sel_obj = self.collection.get_active().options['name']
# In case that there is a selected object but it is not in the overlapped object list
@@ -8949,9 +8956,12 @@ class App(QtCore.QObject):
curr_sel_obj = self.collection.get_active()
# delete the possible selection box around a possible selected object
self.delete_selection_shape()
curr_sel_obj.selection_shape_drawn = False
# create the selection box around the selected object
if self.defaults['global_selection_shape'] is True:
self.draw_selection_shape(curr_sel_obj)
curr_sel_obj.selection_shape_drawn = True
self.selected_message(curr_sel_obj=curr_sel_obj)
@@ -8961,6 +8971,9 @@ class App(QtCore.QObject):
# delete the possible selection box around a possible selected object
self.delete_selection_shape()
for o in self.collection.get_list():
o.selection_shape_drawn = False
# and as a convenience move the focus to the Project tab because Selected tab is now empty but
# only when working on App
if self.call_source == 'app':
@@ -12365,7 +12378,10 @@ class App(QtCore.QObject):
new_color = self.defaults['global_plot_fill']
act_name = self.sender().text().lower()
sel_obj = self.collection.get_active()
sel_obj_list = self.collection.get_selected()
if not sel_obj_list:
return
if act_name == 'red':
new_color = '#FF0000' + \
@@ -12397,22 +12413,22 @@ class App(QtCore.QObject):
new_color = str(plot_fill_color.name()) + \
str(hex(self.ui.general_defaults_form.general_gui_group.pf_color_alpha_slider.value())[2:])
if self.is_legacy is False:
new_line_color = color_variant(new_color[:7], 0.7)
sel_obj.fill_color = new_color
sel_obj.outline_color = new_line_color
new_line_color = color_variant(new_color[:7], 0.7)
sel_obj.shapes.redraw(
update_colors=(new_color, new_line_color)
)
else:
new_line_color = color_variant(new_color[:7], 0.7)
for sel_obj in sel_obj_list:
if self.is_legacy is False:
sel_obj.fill_color = new_color
sel_obj.outline_color = new_line_color
sel_obj.fill_color = new_color
sel_obj.outline_color = new_line_color
sel_obj.shapes.redraw(
update_colors=(new_color, new_line_color)
)
sel_obj.shapes.redraw(
update_colors=(new_color, new_line_color)
)
else:
sel_obj.fill_color = new_color
sel_obj.outline_color = new_line_color
sel_obj.shapes.redraw(
update_colors=(new_color, new_line_color)
)
def on_grid_snap_triggered(self, state):
if state: