def addSearchFields(self, prefix, name): """ Creates and adds generic search tab. ``prefix`` The prefix of the tab, this is either ``quick`` or ``advanced``. ``name`` The translated string to display. """ if prefix == 'quick': idx = 2 else: idx = 5 tab = getattr(self, prefix + 'Tab') layout = getattr(self, prefix + 'Layout') versionLabel = QtGui.QLabel(tab) versionLabel.setObjectName(prefix + 'VersionLabel') layout.addWidget(versionLabel, idx, 0, QtCore.Qt.AlignRight) versionComboBox = create_horizontal_adjusting_combo_box(tab, prefix + 'VersionComboBox') versionLabel.setBuddy(versionComboBox) layout.addWidget(versionComboBox, idx, 1, 1, 2) secondLabel = QtGui.QLabel(tab) secondLabel.setObjectName(prefix + 'SecondLabel') layout.addWidget(secondLabel, idx + 1, 0, QtCore.Qt.AlignRight) secondComboBox = create_horizontal_adjusting_combo_box(tab, prefix + 'SecondComboBox') versionLabel.setBuddy(secondComboBox) layout.addWidget(secondComboBox, idx + 1, 1, 1, 2) styleLabel = QtGui.QLabel(tab) styleLabel.setObjectName(prefix + 'StyleLabel') layout.addWidget(styleLabel, idx + 2, 0, QtCore.Qt.AlignRight) styleComboBox = create_horizontal_adjusting_combo_box(tab, prefix + 'StyleComboBox') styleComboBox.addItems(['', '', '']) layout.addWidget(styleComboBox, idx + 2, 1, 1, 2) search_button_layout = QtGui.QHBoxLayout() search_button_layout.setObjectName(prefix + 'search_button_layout') search_button_layout.addStretch() lockButton = QtGui.QToolButton(tab) lockButton.setIcon(self.unlock_icon) lockButton.setCheckable(True) lockButton.setObjectName(prefix + 'LockButton') search_button_layout.addWidget(lockButton) searchButton = QtGui.QPushButton(tab) searchButton.setObjectName(prefix + 'SearchButton') search_button_layout.addWidget(searchButton) layout.addLayout(search_button_layout, idx + 3, 1, 1, 2) self.page_layout.addWidget(tab) tab.setVisible(False) lockButton.toggled.connect(self.onLockButtonToggled) setattr(self, prefix + 'VersionLabel', versionLabel) setattr(self, prefix + 'VersionComboBox', versionComboBox) setattr(self, prefix + 'SecondLabel', secondLabel) setattr(self, prefix + 'SecondComboBox', secondComboBox) setattr(self, prefix + 'StyleLabel', styleLabel) setattr(self, prefix + 'StyleComboBox', styleComboBox) setattr(self, prefix + 'LockButton', lockButton) setattr(self, prefix + 'SearchButtonLayout', search_button_layout) setattr(self, prefix + 'SearchButton', searchButton)
def add_end_header_bar(self): """ Adds buttons to the end of the header bar. """ # Replace backgrounds do not work at present so remove functionality. self.replace_action = self.toolbar.add_toolbar_action('replace_action', icon=':/slides/slide_blank.png', triggers=self.on_replace_click) if 'webkit' not in get_media_players()[0]: self.replace_action.setDisabled(True) self.reset_action = self.toolbar.add_toolbar_action('reset_action', icon=':/system/system_close.png', visible=False, triggers=self.on_reset_click) self.media_widget = QtGui.QWidget(self) self.media_widget.setObjectName('media_widget') self.display_layout = QtGui.QFormLayout(self.media_widget) self.display_layout.setMargin(self.display_layout.spacing()) self.display_layout.setObjectName('display_layout') self.display_type_label = QtGui.QLabel(self.media_widget) self.display_type_label.setObjectName('display_type_label') self.display_type_combo_box = create_horizontal_adjusting_combo_box( self.media_widget, 'display_type_combo_box') self.display_type_label.setBuddy(self.display_type_combo_box) self.display_layout.addRow(self.display_type_label, self.display_type_combo_box) # Add the Media widget to the page layout. self.page_layout.addWidget(self.media_widget) self.display_type_combo_box.currentIndexChanged.connect(self.override_player_changed)
def add_end_header_bar(self): """ Adds buttons to the end of the header bar. """ # Replace backgrounds do not work at present so remove functionality. self.replace_action = self.toolbar.add_toolbar_action( 'replace_action', icon=':/slides/slide_blank.png', triggers=self.on_replace_click) if 'webkit' not in get_media_players()[0]: self.replace_action.setDisabled(True) self.reset_action = self.toolbar.add_toolbar_action( 'reset_action', icon=':/system/system_close.png', visible=False, triggers=self.on_reset_click) self.media_widget = QtGui.QWidget(self) self.media_widget.setObjectName('media_widget') self.display_layout = QtGui.QFormLayout(self.media_widget) self.display_layout.setMargin(self.display_layout.spacing()) self.display_layout.setObjectName('display_layout') self.display_type_label = QtGui.QLabel(self.media_widget) self.display_type_label.setObjectName('display_type_label') self.display_type_combo_box = create_horizontal_adjusting_combo_box( self.media_widget, 'display_type_combo_box') self.display_type_label.setBuddy(self.display_type_combo_box) self.display_layout.addRow(self.display_type_label, self.display_type_combo_box) # Add the Media widget to the page layout. self.page_layout.addWidget(self.media_widget) self.display_type_combo_box.currentIndexChanged.connect( self.override_player_changed)
def test_create_horizontal_adjusting_combo_box(self): """ Test creating a horizontal adjusting combo box """ # GIVEN: A dialog dialog = QtWidgets.QDialog() # WHEN: We create the combobox combo = create_horizontal_adjusting_combo_box(dialog, 'combo1') # THEN: We should get a ComboBox self.assertIsInstance(combo, QtWidgets.QComboBox) self.assertEqual('combo1', combo.objectName()) self.assertEqual(QtWidgets.QComboBox.AdjustToMinimumContentsLength, combo.sizeAdjustPolicy())
def add_end_header_bar(self): """ Display custom media manager items for presentations. """ self.presentation_widget = QtGui.QWidget(self) self.presentation_widget.setObjectName('presentation_widget') self.display_layout = QtGui.QFormLayout(self.presentation_widget) self.display_layout.setMargin(self.display_layout.spacing()) self.display_layout.setObjectName('display_layout') self.display_type_label = QtGui.QLabel(self.presentation_widget) self.display_type_label.setObjectName('display_type_label') self.display_type_combo_box = create_horizontal_adjusting_combo_box(self.presentation_widget, 'display_type_combo_box') self.display_type_label.setBuddy(self.display_type_combo_box) self.display_layout.addRow(self.display_type_label, self.display_type_combo_box) # Add the Presentation widget to the page layout. self.page_layout.addWidget(self.presentation_widget)
def addEndHeaderBar(self): """ Display custom media manager items for presentations """ self.presentationWidget = QtGui.QWidget(self) self.presentationWidget.setObjectName(u'presentationWidget') self.displayLayout = QtGui.QFormLayout(self.presentationWidget) self.displayLayout.setMargin(self.displayLayout.spacing()) self.displayLayout.setObjectName(u'displayLayout') self.displayTypeLabel = QtGui.QLabel(self.presentationWidget) self.displayTypeLabel.setObjectName(u'displayTypeLabel') self.displayTypeComboBox = create_horizontal_adjusting_combo_box(self.presentationWidget, u'displayTypeComboBox') self.displayTypeLabel.setBuddy(self.displayTypeComboBox) self.displayLayout.addRow(self.displayTypeLabel, self.displayTypeComboBox) # Add the Presentation widget to the page layout self.pageLayout.addWidget(self.presentationWidget)
def addEndHeaderBar(self): # Replace backgrounds do not work at present so remove functionality. self.replaceAction = self.toolbar.addToolbarAction(u'replaceAction', icon=u':/slides/slide_blank.png', triggers=self.onReplaceClick) self.resetAction = self.toolbar.addToolbarAction(u'resetAction', icon=u':/system/system_close.png', visible=False, triggers=self.onResetClick) self.mediaWidget = QtGui.QWidget(self) self.mediaWidget.setObjectName(u'mediaWidget') self.displayLayout = QtGui.QFormLayout(self.mediaWidget) self.displayLayout.setMargin(self.displayLayout.spacing()) self.displayLayout.setObjectName(u'displayLayout') self.displayTypeLabel = QtGui.QLabel(self.mediaWidget) self.displayTypeLabel.setObjectName(u'displayTypeLabel') self.displayTypeComboBox = create_horizontal_adjusting_combo_box(self.mediaWidget, u'displayTypeComboBox') self.displayTypeLabel.setBuddy(self.displayTypeComboBox) self.displayLayout.addRow(self.displayTypeLabel, self.displayTypeComboBox) # Add the Media widget to the page layout self.pageLayout.addWidget(self.mediaWidget) QtCore.QObject.connect(self.displayTypeComboBox, QtCore.SIGNAL(u'currentIndexChanged (int)'), self.overridePlayerChanged)
def add_end_header_bar(self): self.search_tab_bar = QtWidgets.QTabBar(self) self.search_tab_bar.setExpanding(False) self.page_layout.addWidget(self.search_tab_bar) # Add the Search tab. self.search_tab = QtWidgets.QWidget() self.search_tab.setSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) self.search_tab_bar.addTab(translate('BiblesPlugin.MediaItem', 'Find')) self.search_layout = QtWidgets.QFormLayout(self.search_tab) self.search_edit = SearchEdit(self.search_tab, self.settings_section) self.search_layout.addRow(translate('BiblesPlugin.MediaItem', 'Find:'), self.search_edit) self.search_tab.setVisible(True) self.page_layout.addWidget(self.search_tab) # Add the Select tab. self.select_tab = QtWidgets.QWidget() self.select_tab.setSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) self.search_tab_bar.addTab(translate('BiblesPlugin.MediaItem', 'Select')) self.select_layout = QtWidgets.QFormLayout(self.select_tab) self.book_layout = QtWidgets.QHBoxLayout() self.select_book_combo_box = create_horizontal_adjusting_combo_box(self.select_tab, 'select_book_combo_box') self.book_layout.addWidget(self.select_book_combo_box) self.book_order_button = QtWidgets.QToolButton() self.book_order_button.setIcon(self.sort_icon) self.book_order_button.setCheckable(True) self.book_order_button.setToolTip(translate('BiblesPlugin.MediaItem', 'Sort bible books alphabetically.')) self.book_layout.addWidget(self.book_order_button) self.select_layout.addRow(translate('BiblesPlugin.MediaItem', 'Book:'), self.book_layout) self.verse_title_layout = QtWidgets.QHBoxLayout() self.chapter_label = QtWidgets.QLabel(self.select_tab) self.verse_title_layout.addWidget(self.chapter_label) self.verse_label = QtWidgets.QLabel(self.select_tab) self.verse_title_layout.addWidget(self.verse_label) self.select_layout.addRow('', self.verse_title_layout) self.from_layout = QtWidgets.QHBoxLayout() self.from_chapter = QtWidgets.QComboBox(self.select_tab) self.from_layout.addWidget(self.from_chapter) self.from_verse = QtWidgets.QComboBox(self.select_tab) self.from_layout.addWidget(self.from_verse) self.select_layout.addRow(translate('BiblesPlugin.MediaItem', 'From:'), self.from_layout) self.to_layout = QtWidgets.QHBoxLayout() self.to_chapter = QtWidgets.QComboBox(self.select_tab) self.to_layout.addWidget(self.to_chapter) self.to_verse = QtWidgets.QComboBox(self.select_tab) self.to_layout.addWidget(self.to_verse) self.select_layout.addRow(translate('BiblesPlugin.MediaItem', 'To:'), self.to_layout) self.select_tab.setVisible(False) self.page_layout.addWidget(self.select_tab) # General Search Opions self.options_tab = QtWidgets.QWidget() self.options_tab.setSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) self.search_tab_bar.addTab(translate('BiblesPlugin.MediaItem', 'Options')) self.general_bible_layout = QtWidgets.QFormLayout(self.options_tab) self.version_combo_box = create_horizontal_adjusting_combo_box(self, 'version_combo_box') self.general_bible_layout.addRow('{version}:'.format(version=UiStrings().Version), self.version_combo_box) self.second_combo_box = create_horizontal_adjusting_combo_box(self, 'second_combo_box') self.general_bible_layout.addRow(translate('BiblesPlugin.MediaItem', 'Second:'), self.second_combo_box) self.style_combo_box = create_horizontal_adjusting_combo_box(self, 'style_combo_box') self.style_combo_box.addItems(['', '', '']) self.general_bible_layout.addRow(UiStrings().LayoutStyle, self.style_combo_box) self.options_tab.setVisible(False) self.page_layout.addWidget(self.options_tab) # This widget is the easier way to reset the spacing of search_button_layout. (Because page_layout has had its # spacing set to 0) self.search_button_widget = QtWidgets.QWidget() self.search_button_layout = QtWidgets.QHBoxLayout(self.search_button_widget) self.search_button_layout.addStretch() # Note: If we use QPushButton instead of the QToolButton, the icon will be larger than the Lock icon. self.clear_button = QtWidgets.QPushButton() self.clear_button.setIcon(self.clear_icon) self.save_results_button = QtWidgets.QPushButton() self.save_results_button.setIcon(self.save_results_icon) self.search_button_layout.addWidget(self.clear_button) self.search_button_layout.addWidget(self.save_results_button) self.search_button = QtWidgets.QPushButton(self) self.search_button_layout.addWidget(self.search_button) self.page_layout.addWidget(self.search_button_widget) self.results_view_tab = QtWidgets.QTabBar(self) self.results_view_tab.addTab('') self.results_view_tab.addTab('') self.results_view_tab.setCurrentIndex(ResultsTab.Search) self.page_layout.addWidget(self.results_view_tab)
def add_end_header_bar(self): self.search_tab_bar = QtWidgets.QTabBar(self) self.search_tab_bar.setExpanding(False) self.page_layout.addWidget(self.search_tab_bar) # Add the Search tab. self.search_tab = QtWidgets.QWidget() self.search_tab.setSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) self.search_tab_bar.addTab(translate('BiblesPlugin.MediaItem', 'Find')) self.search_layout = QtWidgets.QFormLayout(self.search_tab) self.search_edit = SearchEdit(self.search_tab, self.settings_section) self.search_layout.addRow(translate('BiblesPlugin.MediaItem', 'Find:'), self.search_edit) self.search_tab.setVisible(True) self.page_layout.addWidget(self.search_tab) # Add the Select tab. self.select_tab = QtWidgets.QWidget() self.select_tab.setSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) self.search_tab_bar.addTab(translate('BiblesPlugin.MediaItem', 'Select')) self.select_layout = QtWidgets.QFormLayout(self.select_tab) self.book_layout = QtWidgets.QHBoxLayout() self.select_book_combo_box = create_horizontal_adjusting_combo_box(self.select_tab, 'select_book_combo_box') self.book_layout.addWidget(self.select_book_combo_box) self.book_order_button = QtWidgets.QToolButton() self.book_order_button.setIcon(self.sort_icon) self.book_order_button.setCheckable(True) self.book_order_button.setToolTip(translate('BiblesPlugin.MediaItem', 'Sort bible books alphabetically.')) self.book_layout.addWidget(self.book_order_button) self.select_layout.addRow(translate('BiblesPlugin.MediaItem', 'Book:'), self.book_layout) self.verse_title_layout = QtWidgets.QHBoxLayout() self.chapter_label = QtWidgets.QLabel(self.select_tab) self.verse_title_layout.addWidget(self.chapter_label) self.verse_label = QtWidgets.QLabel(self.select_tab) self.verse_title_layout.addWidget(self.verse_label) self.select_layout.addRow('', self.verse_title_layout) self.from_layout = QtWidgets.QHBoxLayout() self.from_chapter = QtWidgets.QComboBox(self.select_tab) self.from_layout.addWidget(self.from_chapter) self.from_verse = QtWidgets.QComboBox(self.select_tab) self.from_layout.addWidget(self.from_verse) self.select_layout.addRow(translate('BiblesPlugin.MediaItem', 'From:'), self.from_layout) self.to_layout = QtWidgets.QHBoxLayout() self.to_chapter = QtWidgets.QComboBox(self.select_tab) self.to_layout.addWidget(self.to_chapter) self.to_verse = QtWidgets.QComboBox(self.select_tab) self.to_layout.addWidget(self.to_verse) self.select_layout.addRow(translate('BiblesPlugin.MediaItem', 'To:'), self.to_layout) self.select_tab.setVisible(False) self.page_layout.addWidget(self.select_tab) # General Search Opions self.options_widget = QtWidgets.QGroupBox(translate('BiblesPlugin.MediaItem', 'Options'), self) self.general_bible_layout = QtWidgets.QFormLayout(self.options_widget) self.version_combo_box = create_horizontal_adjusting_combo_box(self, 'version_combo_box') self.general_bible_layout.addRow('{version}:'.format(version=UiStrings().Version), self.version_combo_box) self.second_combo_box = create_horizontal_adjusting_combo_box(self, 'second_combo_box') self.general_bible_layout.addRow(translate('BiblesPlugin.MediaItem', 'Second:'), self.second_combo_box) self.style_combo_box = create_horizontal_adjusting_combo_box(self, 'style_combo_box') self.style_combo_box.addItems(['', '', '']) self.general_bible_layout.addRow(UiStrings().LayoutStyle, self.style_combo_box) self.search_button_layout = QtWidgets.QHBoxLayout() self.search_button_layout.addStretch() # Note: If we use QPushButton instead of the QToolButton, the icon will be larger than the Lock icon. self.clear_button = QtWidgets.QToolButton(self) self.clear_button.setIcon(self.clear_icon) self.lock_button = QtWidgets.QToolButton(self) self.lock_button.setIcon(self.unlock_icon) self.lock_button.setCheckable(True) self.search_button_layout.addWidget(self.clear_button) self.search_button_layout.addWidget(self.lock_button) self.search_button = QtWidgets.QPushButton(self) self.search_button_layout.addWidget(self.search_button) self.general_bible_layout.addRow(self.search_button_layout) self.page_layout.addWidget(self.options_widget)
def add_end_header_bar(self): self.searchTabBar = QtGui.QTabBar(self) self.searchTabBar.setExpanding(False) self.searchTabBar.setObjectName('searchTabBar') self.page_layout.addWidget(self.searchTabBar) # Add the Quick Search tab. self.addSearchTab('quick', translate('BiblesPlugin.MediaItem', 'Quick')) self.quickSearchLabel = QtGui.QLabel(self.quickTab) self.quickSearchLabel.setObjectName('quickSearchLabel') self.quickLayout.addWidget(self.quickSearchLabel, 0, 0, QtCore.Qt.AlignRight) self.quickSearchEdit = SearchEdit(self.quickTab) self.quickSearchEdit.setSizePolicy(QtGui.QSizePolicy.Ignored, QtGui.QSizePolicy.Fixed) self.quickSearchEdit.setObjectName('quickSearchEdit') self.quickSearchLabel.setBuddy(self.quickSearchEdit) self.quickLayout.addWidget(self.quickSearchEdit, 0, 1, 1, 2) self.addSearchFields('quick', translate('BiblesPlugin.MediaItem', 'Quick')) self.quickTab.setVisible(True) # Add the Advanced Search tab. self.addSearchTab('advanced', UiStrings().Advanced) self.advancedBookLabel = QtGui.QLabel(self.advancedTab) self.advancedBookLabel.setObjectName('advancedBookLabel') self.advancedLayout.addWidget(self.advancedBookLabel, 0, 0, QtCore.Qt.AlignRight) self.advancedBookComboBox = create_horizontal_adjusting_combo_box(self.advancedTab, 'advancedBookComboBox') self.advancedBookLabel.setBuddy(self.advancedBookComboBox) self.advancedLayout.addWidget(self.advancedBookComboBox, 0, 1, 1, 2) self.advancedChapterLabel = QtGui.QLabel(self.advancedTab) self.advancedChapterLabel.setObjectName('advancedChapterLabel') self.advancedLayout.addWidget(self.advancedChapterLabel, 1, 1, 1, 2) self.advancedVerseLabel = QtGui.QLabel(self.advancedTab) self.advancedVerseLabel.setObjectName('advancedVerseLabel') self.advancedLayout.addWidget(self.advancedVerseLabel, 1, 2) self.advancedFromLabel = QtGui.QLabel(self.advancedTab) self.advancedFromLabel.setObjectName('advancedFromLabel') self.advancedLayout.addWidget(self.advancedFromLabel, 3, 0, QtCore.Qt.AlignRight) self.advancedFromChapter = QtGui.QComboBox(self.advancedTab) self.advancedFromChapter.setObjectName('advancedFromChapter') self.advancedLayout.addWidget(self.advancedFromChapter, 3, 1) self.advancedFromVerse = QtGui.QComboBox(self.advancedTab) self.advancedFromVerse.setObjectName('advancedFromVerse') self.advancedLayout.addWidget(self.advancedFromVerse, 3, 2) self.advancedToLabel = QtGui.QLabel(self.advancedTab) self.advancedToLabel.setObjectName('advancedToLabel') self.advancedLayout.addWidget(self.advancedToLabel, 4, 0, QtCore.Qt.AlignRight) self.advancedToChapter = QtGui.QComboBox(self.advancedTab) self.advancedToChapter.setObjectName('advancedToChapter') self.advancedLayout.addWidget(self.advancedToChapter, 4, 1) self.advancedToVerse = QtGui.QComboBox(self.advancedTab) self.advancedToVerse.setObjectName('advancedToVerse') self.advancedLayout.addWidget(self.advancedToVerse, 4, 2) self.addSearchFields('advanced', UiStrings().Advanced) # Combo Boxes self.quickVersionComboBox.activated.connect(self.updateAutoCompleter) self.quickSecondComboBox.activated.connect(self.updateAutoCompleter) self.advancedVersionComboBox.activated.connect(self.onAdvancedVersionComboBox) self.advancedSecondComboBox.activated.connect(self.onAdvancedSecondComboBox) self.advancedBookComboBox.activated.connect(self.onAdvancedBookComboBox) self.advancedFromChapter.activated.connect(self.onAdvancedFromChapter) self.advancedFromVerse.activated.connect(self.onAdvancedFromVerse) self.advancedToChapter.activated.connect(self.onAdvancedToChapter) QtCore.QObject.connect(self.quickSearchEdit, QtCore.SIGNAL('searchTypeChanged(int)'), self.updateAutoCompleter) self.quickVersionComboBox.activated.connect(self.updateAutoCompleter) self.quickStyleComboBox.activated.connect(self.onQuickStyleComboBoxChanged) self.advancedStyleComboBox.activated.connect(self.onAdvancedStyleComboBoxChanged) # Buttons self.advancedSearchButton.clicked.connect(self.onAdvancedSearchButton) self.quickSearchButton.clicked.connect(self.onQuickSearchButton) # Other stuff self.quickSearchEdit.returnPressed.connect(self.onQuickSearchButton) self.searchTabBar.currentChanged.connect(self.onSearchTabBarCurrentChanged)