Mercurial > parpg-core
comparison src/parpg/gui/containergui.py @ 154:b96607c8be7f
Fixed bug that dropping an item onto another would not set the drag_data to the replaced item, which caused this to be lost.
author | KarstenBock@gmx.net |
---|---|
date | Thu, 06 Oct 2011 16:08:00 +0200 |
parents | 140e5e93f026 |
children | 2d671e57badb |
comparison
equal
deleted
inserted
replaced
153:2ba7c6d8f738 | 154:b96607c8be7f |
---|---|
65 # get the item that the widget is 'storing' | 65 # get the item that the widget is 'storing' |
66 data_drag.dragged_item = drag_widget.item | 66 data_drag.dragged_item = drag_widget.item |
67 # get the up and down images of the widget | 67 # get the up and down images of the widget |
68 up_image = drag_widget.up_image | 68 up_image = drag_widget.up_image |
69 down_image = drag_widget.down_image | 69 down_image = drag_widget.down_image |
70 # set the mouse cursor to be the widget's image | 70 self.setDragData(drag_widget.item, down_image, up_image, |
71 self.controller.setMouseCursor(up_image.source, down_image.source) | 71 self.container) |
72 data_drag.dragged_image = up_image.source | |
73 data_drag.dragging = True | |
74 data_drag.dragged_widget = drag_widget | |
75 data_drag.source_container = self.container | |
76 container.take_item(self.container, drag_widget.item.slot) | 72 container.take_item(self.container, drag_widget.item.slot) |
77 | 73 |
78 # after dragging the 'item', set the widgets' images | 74 # after dragging the 'item', set the widgets' images |
79 # so that it has it's default 'empty' images | 75 # so that it has it's default 'empty' images |
80 drag_widget.item = None | 76 drag_widget.item = None |
97 ## there is an item all ready occupying the slot | 93 ## there is an item all ready occupying the slot |
98 replace_item = ( | 94 replace_item = ( |
99 container.put_item(self.container, drag_item, drop_index) | 95 container.put_item(self.container, drag_item, drop_index) |
100 ) | 96 ) |
101 | 97 |
102 drop_widget.item = drag_item | |
103 self.updateImage(drop_widget) | |
104 #if there was no item the stop dragging and reset cursor | 98 #if there was no item the stop dragging and reset cursor |
105 if replace_item == None: | 99 if replace_item: |
100 up_image = drop_widget.up_image | |
101 down_image = drop_widget.down_image | |
102 self.setDragData(replace_item, down_image, up_image, | |
103 self.container) | |
104 else: | |
106 data_drag.dragging = False | 105 data_drag.dragging = False |
107 #reset the mouse cursor to the normal cursor | 106 #reset the mouse cursor to the normal cursor |
108 self.controller.resetMouseCursor() | 107 self.controller.resetMouseCursor() |
108 drop_widget.item = drag_item | |
109 self.updateImage(drop_widget) | |
109 except (container.BulkLimitError): | 110 except (container.BulkLimitError): |
110 #Do we want to notify the player why the item can't be dropped? | 111 #Do we want to notify the player why the item can't be dropped? |
111 pass | 112 pass |
112 | 113 |
113 def showContainer(self): | 114 def showContainer(self): |