From d8e6dfaf19c01e6c57cb55bd6c4786189375c775 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 3 Jun 2018 18:30:11 +0100 Subject: [PATCH] more projector --- openlp/core/projectors/manager.py | 40 +++++++++--------- openlp/core/ui/icons.py | 5 ++- resources/images/openlp-2.qrc | 7 --- resources/images/projector_cooldown.png | Bin 4487 -> 0 bytes resources/images/projector_error.png | Bin 4310 -> 0 bytes resources/images/projector_item_connect.png | Bin 2329 -> 0 bytes .../images/projector_item_disconnect.png | Bin 2735 -> 0 bytes resources/images/projector_off.png | Bin 3749 -> 0 bytes resources/images/projector_on.png | Bin 4266 -> 0 bytes resources/images/projector_warmup.png | Bin 4554 -> 0 bytes 10 files changed, 22 insertions(+), 30 deletions(-) delete mode 100644 resources/images/projector_cooldown.png delete mode 100644 resources/images/projector_error.png delete mode 100644 resources/images/projector_item_connect.png delete mode 100644 resources/images/projector_item_disconnect.png delete mode 100644 resources/images/projector_off.png delete mode 100644 resources/images/projector_on.png delete mode 100644 resources/images/projector_warmup.png diff --git a/openlp/core/projectors/manager.py b/openlp/core/projectors/manager.py index 7447c7c6a..cd975db02 100644 --- a/openlp/core/projectors/manager.py +++ b/openlp/core/projectors/manager.py @@ -50,25 +50,6 @@ log = logging.getLogger(__name__) log.debug('projectormanager loaded') -# Dict for matching projector status to display icon -STATUS_ICONS = { - S_NOT_CONNECTED: ':/projector/projector_item_disconnect.png', - S_CONNECTING: ':/projector/projector_item_connect.png', - S_CONNECTED: ':/projector/projector_off.png', - S_OFF: ':/projector/projector_off.png', - S_INITIALIZE: ':/projector/projector_off.png', - S_STANDBY: ':/projector/projector_off.png', - S_WARMUP: ':/projector/projector_warmup.png', - S_ON: ':/projector/projector_on.png', - S_COOLDOWN: ':/projector/projector_cooldown.png', - E_ERROR: ':/projector/projector_error.png', - E_NETWORK: ':/projector/projector_not_connected_error.png', - E_AUTHENTICATION: ':/projector/projector_not_connected_error.png', - E_UNKNOWN_SOCKET_ERROR: ':/projector/projector_not_connected_error.png', - E_NOT_CONNECTED: ':/projector/projector_not_connected_error.png' -} - - class UiProjectorManager(object): """ UI part of the Projector Manager @@ -295,6 +276,23 @@ class ProjectorManager(QtWidgets.QWidget, RegistryBase, UiProjectorManager, LogM self.projectordb = projectordb self.projector_list = [] self.source_select_form = None + # Dict for matching projector status to display icon + self.self.status_icons = { + S_NOT_CONNECTED: UiIcons().projector_disconnect, + S_CONNECTING: UiIcons().projector_connect, + S_CONNECTED: UiIcons().projector_off, + S_OFF: UiIcons().projector_off, + S_INITIALIZE: UiIcons().projector_on, + S_STANDBY: UiIcons().projector_off, + S_WARMUP: UiIcons().projector_warmup, + S_ON: UiIcons().projector_off, + S_COOLDOWN: UiIcons().projector_cooldown, + E_ERROR: UiIcons().projector_error, + E_NETWORK: ':/projector/projector_not_connected_error.png', + E_AUTHENTICATION: ':/projector/projector_not_connected_error.png', + E_UNKNOWN_SOCKET_ERROR: ':/projector/projector_not_connected_error.png', + E_NOT_CONNECTED: ':/projector/projector_not_connected_error.png' + } def bootstrap_initialise(self): """ @@ -715,7 +713,7 @@ class ProjectorManager(QtWidgets.QWidget, RegistryBase, UiProjectorManager, LogM """ item = ProjectorItem(link=self._add_projector(projector)) item.db_item = projector - item.icon = QtGui.QIcon(QtGui.QPixmap(STATUS_ICONS[S_NOT_CONNECTED])) + item.icon = QtGui.QIcon(QtGui.QPixmap(self.status_icons[S_NOT_CONNECTED])) widget = QtWidgets.QListWidgetItem(item.icon, item.link.name, self.projector_list_widget @@ -802,7 +800,7 @@ class ProjectorManager(QtWidgets.QWidget, RegistryBase, UiProjectorManager, LogM return item.status = status - item.icon = QtGui.QIcon(QtGui.QPixmap(STATUS_ICONS[status])) + item.icon = QtGui.QIcon(QtGui.QPixmap(self.status_icons[status])) log.debug('({name}) Updating icon with {code}'.format(name=item.link.name, code=STATUS_CODE[status])) item.widget.setIcon(item.icon) return self.update_icons() diff --git a/openlp/core/ui/icons.py b/openlp/core/ui/icons.py index 1d29ec6f9..2933dbb6a 100644 --- a/openlp/core/ui/icons.py +++ b/openlp/core/ui/icons.py @@ -115,9 +115,9 @@ class UiIcons(object): 'projector_cooldown': {'icon': 'fa.video', 'attr': 'blue'}, 'projector_disconnect': {'icon': 'fa.plug', 'attr': 'lightGray'}, 'projector_error': {'icon': 'fa.video', 'attr': 'red'}, - 'projector_off': {'icon': 'fa.video', 'attr': 'red'}, + 'projector_off': {'icon': 'fa.video', 'attr': 'black'}, 'projector_on': {'icon': 'fa.video', 'attr': 'green'}, - 'projector_warm': {'icon': 'fa.video', 'attr': 'yellow'}, + 'projector_warmup': {'icon': 'fa.video', 'attr': 'yellow'}, 'picture': {'icon': 'fa.picture-o'}, 'print': {'icon': 'fa.print'}, 'remote': {'icon': 'fa.rss'}, @@ -161,6 +161,7 @@ class UiIcons(object): except Exception: import sys print("Unexpected error:", sys.exc_info()) + setattr(self, key, qta.icon('fa.plus-circle', color='red')) except: setattr(self, key, qta.icon('fa.plus-circle', color='red')) diff --git a/resources/images/openlp-2.qrc b/resources/images/openlp-2.qrc index 81091d194..3ad440367 100644 --- a/resources/images/openlp-2.qrc +++ b/resources/images/openlp-2.qrc @@ -59,22 +59,15 @@ projector_connect.png projector_connect_tiled.png projector_hdmi.png - projector_cooldown.png projector_disconnect.png projector_disconnect_tiled.png - projector_error.png - projector_item_connect.png - projector_item_disconnect.png projector_not_connected_error.png - projector_off.png - projector_on.png projector_power_off.png projector_power_off_tiled.png projector_power_on.png projector_power_on_tiled.png projector_show.png projector_show_tiled.png - projector_warmup.png app_qr.svg diff --git a/resources/images/projector_cooldown.png b/resources/images/projector_cooldown.png deleted file mode 100644 index c4a4140f5567cd5cad3228214b8ea0de4b29ee74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4487 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 Z`yaLb;o(OVCQ$$Y002ovPDHLkV1g`aU+(|_ diff --git a/resources/images/projector_error.png b/resources/images/projector_error.png deleted file mode 100644 index 6cfa3e86af9631f46aaa296ddd9bb98d80ac518c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4310 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 diff --git a/resources/images/projector_off.png b/resources/images/projector_off.png deleted file mode 100644 index 88e1ccb0cf339fb992f687d5a4a23178c1c6c04d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3749 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 P00000NkvXXu0mjfT81f` diff --git a/resources/images/projector_on.png b/resources/images/projector_on.png deleted file mode 100644 index 6555c7aac7d712b32db1e4d2ddde866428d58069..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4266 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 M07*qoM6N<$g4j#*CjbBd diff --git a/resources/images/projector_warmup.png b/resources/images/projector_warmup.png deleted file mode 100644 index b692bb6faa8d308f1fc99044a07cf4f9cd81d5e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4554 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