forked from openlp/openlp
Position fix for d'n'd to servicelist, copied from lp:~oliwee/openlp/bug-1247025
Fixes: https://launchpad.net/bugs/1247025
This commit is contained in:
parent
d1e85ea9a1
commit
036ed94c68
@ -563,8 +563,11 @@ s
|
|||||||
self.add_to_service(replace=self.remote_triggered)
|
self.add_to_service(replace=self.remote_triggered)
|
||||||
else:
|
else:
|
||||||
items = self.list_view.selectedIndexes()
|
items = self.list_view.selectedIndexes()
|
||||||
|
drop_position = self.service_manager.get_drop_position()
|
||||||
for item in items:
|
for item in items:
|
||||||
self.add_to_service(item)
|
self.add_to_service(item, position=drop_position)
|
||||||
|
if drop_position != -1:
|
||||||
|
drop_position += 1
|
||||||
|
|
||||||
def add_to_service_remote(self, message):
|
def add_to_service_remote(self, message):
|
||||||
"""
|
"""
|
||||||
@ -574,18 +577,19 @@ s
|
|||||||
"""
|
"""
|
||||||
self.add_to_service(message[0], remote=message[1])
|
self.add_to_service(message[0], remote=message[1])
|
||||||
|
|
||||||
def add_to_service(self, item=None, replace=None, remote=False):
|
def add_to_service(self, item=None, replace=None, remote=False, position=-1):
|
||||||
"""
|
"""
|
||||||
Add this item to the current service.
|
Add this item to the current service.
|
||||||
|
|
||||||
:param item: Item to be processed
|
:param item: Item to be processed
|
||||||
:param replace: Replace the existing item
|
:param replace: Replace the existing item
|
||||||
:param remote: Triggered from remote
|
:param remote: Triggered from remote
|
||||||
|
:param position: Position to place item
|
||||||
"""
|
"""
|
||||||
service_item = self.build_service_item(item, True, remote=remote, context=ServiceItemContext.Service)
|
service_item = self.build_service_item(item, True, remote=remote, context=ServiceItemContext.Service)
|
||||||
if service_item:
|
if service_item:
|
||||||
service_item.from_plugin = False
|
service_item.from_plugin = False
|
||||||
self.service_manager.add_service_item(service_item, replace=replace)
|
self.service_manager.add_service_item(service_item, replace=replace, position=position)
|
||||||
|
|
||||||
def on_add_edit_click(self):
|
def on_add_edit_click(self):
|
||||||
"""
|
"""
|
||||||
|
@ -324,7 +324,7 @@ class ServiceManager(OpenLPMixin, RegistryMixin, QtGui.QWidget, Ui_ServiceManage
|
|||||||
self.inactive = build_icon(':/media/auto-start_inactive.png')
|
self.inactive = build_icon(':/media/auto-start_inactive.png')
|
||||||
self.service_items = []
|
self.service_items = []
|
||||||
self.suffixes = []
|
self.suffixes = []
|
||||||
self.drop_position = 0
|
self.drop_position = -1
|
||||||
self.service_id = 0
|
self.service_id = 0
|
||||||
# is a new service and has not been saved
|
# is a new service and has not been saved
|
||||||
self._modified = False
|
self._modified = False
|
||||||
@ -1377,7 +1377,8 @@ class ServiceManager(OpenLPMixin, RegistryMixin, QtGui.QWidget, Ui_ServiceManage
|
|||||||
self.live_controller.replace_service_manager_item(new_item)
|
self.live_controller.replace_service_manager_item(new_item)
|
||||||
self.set_modified()
|
self.set_modified()
|
||||||
|
|
||||||
def add_service_item(self, item, rebuild=False, expand=None, replace=False, repaint=True, selected=False):
|
def add_service_item(self, item, rebuild=False, expand=None, replace=False, repaint=True, selected=False,
|
||||||
|
position=-1):
|
||||||
"""
|
"""
|
||||||
Add a Service item to the list
|
Add a Service item to the list
|
||||||
|
|
||||||
@ -1387,11 +1388,13 @@ class ServiceManager(OpenLPMixin, RegistryMixin, QtGui.QWidget, Ui_ServiceManage
|
|||||||
:param replace: Is the service item a replacement (Default False)
|
:param replace: Is the service item a replacement (Default False)
|
||||||
:param repaint: Do we need to repaint the service item list (Default True)
|
:param repaint: Do we need to repaint the service item list (Default True)
|
||||||
:param selected: Has the item been selected (Default False)
|
:param selected: Has the item been selected (Default False)
|
||||||
|
:param position: The position where the item is dropped (Default -1)
|
||||||
"""
|
"""
|
||||||
# if not passed set to config value
|
# if not passed set to config value
|
||||||
if expand is None:
|
if expand is None:
|
||||||
expand = Settings().value('advanced/expand service item')
|
expand = Settings().value('advanced/expand service item')
|
||||||
item.from_service = True
|
item.from_service = True
|
||||||
|
self.drop_position = position
|
||||||
if replace:
|
if replace:
|
||||||
s_item, child = self.find_service_item()
|
s_item, child = self.find_service_item()
|
||||||
item.merge(self.service_items[s_item]['service_item'])
|
item.merge(self.service_items[s_item]['service_item'])
|
||||||
@ -1401,7 +1404,7 @@ class ServiceManager(OpenLPMixin, RegistryMixin, QtGui.QWidget, Ui_ServiceManage
|
|||||||
else:
|
else:
|
||||||
item.render()
|
item.render()
|
||||||
# nothing selected for dnd
|
# nothing selected for dnd
|
||||||
if self.drop_position == 0:
|
if self.drop_position == -1:
|
||||||
if isinstance(item, list):
|
if isinstance(item, list):
|
||||||
for ind_item in item:
|
for ind_item in item:
|
||||||
self.service_items.append({'service_item': ind_item,
|
self.service_items.append({'service_item': ind_item,
|
||||||
@ -1421,7 +1424,7 @@ class ServiceManager(OpenLPMixin, RegistryMixin, QtGui.QWidget, Ui_ServiceManage
|
|||||||
# if rebuilding list make sure live is fixed.
|
# if rebuilding list make sure live is fixed.
|
||||||
if rebuild:
|
if rebuild:
|
||||||
self.live_controller.replace_service_manager_item(item)
|
self.live_controller.replace_service_manager_item(item)
|
||||||
self.drop_position = 0
|
self.drop_position = -1
|
||||||
self.set_modified()
|
self.set_modified()
|
||||||
|
|
||||||
def make_preview(self):
|
def make_preview(self):
|
||||||
@ -1604,7 +1607,7 @@ class ServiceManager(OpenLPMixin, RegistryMixin, QtGui.QWidget, Ui_ServiceManage
|
|||||||
item.setSelected(True)
|
item.setSelected(True)
|
||||||
replace = True
|
replace = True
|
||||||
else:
|
else:
|
||||||
self.drop_position = self._get_parent_item_data(item)
|
self.drop_position = self._get_parent_item_data(item) - 1
|
||||||
Registry().execute('%s_add_service_item' % plugin, replace)
|
Registry().execute('%s_add_service_item' % plugin, replace)
|
||||||
|
|
||||||
def update_theme_list(self, theme_list):
|
def update_theme_list(self, theme_list):
|
||||||
@ -1666,3 +1669,9 @@ class ServiceManager(OpenLPMixin, RegistryMixin, QtGui.QWidget, Ui_ServiceManage
|
|||||||
"""
|
"""
|
||||||
setting_dialog = PrintServiceForm()
|
setting_dialog = PrintServiceForm()
|
||||||
setting_dialog.exec_()
|
setting_dialog.exec_()
|
||||||
|
|
||||||
|
def get_drop_position(self):
|
||||||
|
"""
|
||||||
|
Getter for drop_position. Used in: MediaManagerItem
|
||||||
|
"""
|
||||||
|
return self.drop_position
|
||||||
|
Loading…
Reference in New Issue
Block a user