52
52
MediaTab is the Media settings tab in the settings dialog.
54
57
def __init__(self, parent):
61
self.iconPath = ':/media/multimedia-player.png'
62
player_translated = translate('OpenLP.PlayerTab', 'Players')
63
super(PlayerTab, self).__init__(parent, 'Players', player_translated)
58
64
self.mediaPlayers = self.media_controller.mediaPlayers
59
65
self.savedUsedPlayers = None
60
self.iconPath = u':/media/multimedia-player.png'
61
player_translated = translate('OpenLP.PlayerTab', 'Players')
62
SettingsTab.__init__(self, parent, u'Players', player_translated)
68
self.setObjectName(u'MediaTab')
71
self.setObjectName('MediaTab')
69
72
SettingsTab.setupUi(self)
70
73
self.bgColorGroupBox = QtGui.QGroupBox(self.leftColumn)
71
self.bgColorGroupBox.setObjectName(u'FontGroupBox')
74
self.bgColorGroupBox.setObjectName('FontGroupBox')
72
75
self.formLayout = QtGui.QFormLayout(self.bgColorGroupBox)
73
self.formLayout.setObjectName(u'FormLayout')
76
self.formLayout.setObjectName('FormLayout')
74
77
self.colorLayout = QtGui.QHBoxLayout()
75
78
self.backgroundColorLabel = QtGui.QLabel(self.bgColorGroupBox)
76
self.backgroundColorLabel.setObjectName(u'BackgroundColorLabel')
79
self.backgroundColorLabel.setObjectName('BackgroundColorLabel')
77
80
self.colorLayout.addWidget(self.backgroundColorLabel)
78
81
self.backgroundColorButton = QtGui.QPushButton(self.bgColorGroupBox)
79
self.backgroundColorButton.setObjectName(u'BackgroundColorButton')
82
self.backgroundColorButton.setObjectName('BackgroundColorButton')
80
83
self.colorLayout.addWidget(self.backgroundColorButton)
81
84
self.formLayout.addRow(self.colorLayout)
82
85
self.informationLabel = QtGui.QLabel(self.bgColorGroupBox)
83
self.informationLabel.setObjectName(u'InformationLabel')
86
self.informationLabel.setObjectName('InformationLabel')
84
87
self.informationLabel.setWordWrap(True)
85
88
self.formLayout.addRow(self.informationLabel)
86
89
self.leftLayout.addWidget(self.bgColorGroupBox)
88
91
self.rightColumn.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred)
89
92
self.rightLayout.addStretch()
90
93
self.mediaPlayerGroupBox = QtGui.QGroupBox(self.leftColumn)
91
self.mediaPlayerGroupBox.setObjectName(u'mediaPlayerGroupBox')
94
self.mediaPlayerGroupBox.setObjectName('mediaPlayerGroupBox')
92
95
self.mediaPlayerLayout = QtGui.QVBoxLayout(self.mediaPlayerGroupBox)
93
self.mediaPlayerLayout.setObjectName(u'mediaPlayerLayout')
96
self.mediaPlayerLayout.setObjectName('mediaPlayerLayout')
94
97
self.playerCheckBoxes = {}
95
98
self.leftLayout.addWidget(self.mediaPlayerGroupBox)
96
99
self.playerOrderGroupBox = QtGui.QGroupBox(self.leftColumn)
97
self.playerOrderGroupBox.setObjectName(u'playerOrderGroupBox')
100
self.playerOrderGroupBox.setObjectName('playerOrderGroupBox')
98
101
self.playerOrderLayout = QtGui.QHBoxLayout(self.playerOrderGroupBox)
99
self.playerOrderLayout.setObjectName(u'playerOrderLayout')
102
self.playerOrderLayout.setObjectName('playerOrderLayout')
100
103
self.playerOrderlistWidget = QtGui.QListWidget(self.playerOrderGroupBox)
101
104
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
102
105
sizePolicy.setHorizontalStretch(0)
106
109
self.playerOrderlistWidget.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
107
110
self.playerOrderlistWidget.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
108
111
self.playerOrderlistWidget.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
109
self.playerOrderlistWidget.setObjectName(u'playerOrderlistWidget')
112
self.playerOrderlistWidget.setObjectName('playerOrderlistWidget')
110
113
self.playerOrderLayout.addWidget(self.playerOrderlistWidget)
111
114
self.orderingButtonLayout = QtGui.QVBoxLayout()
112
self.orderingButtonLayout.setObjectName(u'orderingButtonLayout')
115
self.orderingButtonLayout.setObjectName('orderingButtonLayout')
113
116
self.orderingButtonLayout.addStretch(1)
114
self.orderingUpButton = create_button(self, u'orderingUpButton', role=u'up', click=self.onUpButtonClicked)
115
self.orderingDownButton = create_button(self, u'orderingDownButton', role=u'down',
117
self.orderingUpButton = create_button(self, 'orderingUpButton', role='up', click=self.onUpButtonClicked)
118
self.orderingDownButton = create_button(self, 'orderingDownButton', role='down',
116
119
click=self.onDownButtonClicked)
117
120
self.orderingButtonLayout.addWidget(self.orderingUpButton)
118
121
self.orderingButtonLayout.addWidget(self.orderingDownButton)
122
125
self.leftLayout.addStretch()
123
126
self.rightLayout.addStretch()
124
127
# Signals and slots
125
QtCore.QObject.connect(self.backgroundColorButton, QtCore.SIGNAL(u'clicked()'),
128
QtCore.QObject.connect(self.backgroundColorButton, QtCore.SIGNAL('clicked()'),
126
129
self.onbackgroundColorButtonClicked)
128
131
def retranslateUi(self):
144
147
new_color = QtGui.QColorDialog.getColor(QtGui.QColor(self.bg_color), self)
145
148
if new_color.isValid():
146
149
self.bg_color = new_color.name()
147
self.backgroundColorButton.setStyleSheet(u'background-color: %s' % self.bg_color)
150
self.backgroundColorButton.setStyleSheet('background-color: %s' % self.bg_color)
149
152
def onPlayerCheckBoxChanged(self, check_state):
166
169
self.playerOrderlistWidget.clear()
167
170
for player in self.usedPlayers:
168
if player in self.playerCheckBoxes.keys():
171
if player in list(self.playerCheckBoxes.keys()):
169
172
if len(self.usedPlayers) == 1:
170
173
# At least one media player has to stay active
171
self.playerCheckBoxes[u'%s' % player].setEnabled(False)
174
self.playerCheckBoxes['%s' % player].setEnabled(False)
173
self.playerCheckBoxes[u'%s' % player].setEnabled(True)
174
self.playerOrderlistWidget.addItem(self.mediaPlayers[unicode(player)].original_name)
176
self.playerCheckBoxes['%s' % player].setEnabled(True)
177
self.playerOrderlistWidget.addItem(self.mediaPlayers[str(player)].original_name)
176
179
def onUpButtonClicked(self):
208
211
settings = Settings()
209
212
settings.beginGroup(self.settingsSection)
210
213
self.updatePlayerList()
211
self.bg_color = settings.value(u'background color')
214
self.bg_color = settings.value('background color')
212
215
self.initial_color = self.bg_color
213
216
settings.endGroup()
214
self.backgroundColorButton.setStyleSheet(u'background-color: %s' % self.bg_color)
217
self.backgroundColorButton.setStyleSheet('background-color: %s' % self.bg_color)
220
223
player_string_changed = False
221
224
settings = Settings()
222
225
settings.beginGroup(self.settingsSection)
223
settings.setValue(u'background color', self.bg_color)
226
settings.setValue('background color', self.bg_color)
224
227
settings.endGroup()
225
228
old_players, override_player = get_media_players()
226
229
if self.usedPlayers != old_players:
229
232
player_string_changed = True
230
233
if player_string_changed:
231
234
self.service_manager.reset_supported_suffixes()
232
Receiver.send_message(u'mediaitem_media_rebuild')
233
Receiver.send_message(u'config_screen_changed')
235
Receiver.send_message('mediaitem_media_rebuild')
236
Receiver.send_message('config_screen_changed')
235
238
def postSetUp(self, postUpdate=False):
237
240
Late setup for players as the MediaController has to be initialised
240
for key, player in self.mediaPlayers.iteritems():
243
for key, player in self.mediaPlayers.items():
241
244
player = self.mediaPlayers[key]
242
245
checkbox = MediaQCheckBox(self.mediaPlayerGroupBox)
243
246
checkbox.setEnabled(player.available)
244
checkbox.setObjectName(player.name + u'CheckBox')
247
checkbox.setObjectName(player.name + 'CheckBox')
245
248
checkbox.setToolTip(player.get_info())
246
249
checkbox.setPlayerName(player.name)
247
250
self.playerCheckBoxes[player.name] = checkbox
248
QtCore.QObject.connect(checkbox, QtCore.SIGNAL(u'stateChanged(int)'), self.onPlayerCheckBoxChanged)
251
QtCore.QObject.connect(checkbox, QtCore.SIGNAL('stateChanged(int)'), self.onPlayerCheckBoxChanged)
249
252
self.mediaPlayerLayout.addWidget(checkbox)
250
253
if player.available and player.name in self.usedPlayers:
251
254
checkbox.setChecked(True)