def show_popup_bar(self): #editor = _ide.python_editor.editor #layout = _ide.python_editor.tabeditor.layout() editor = self.editor layout = self.tabeditor.layout() # first remove any previous widgets name = 'Document out of sync warning' for i in range(layout.count()): item = layout.itemAt(i) if item is None: continue widget = item.widget() if widget.objectName() != name: continue layout.removeItem(item) widget.deleteLater() popup_bar = QtWidgets.QWidget() popup_bar.setObjectName('Document out of sync warning') bar_layout = QtWidgets.QHBoxLayout(popup_bar) l = QtWidgets.QLabel() l.setText('This tab is out of sync with the autosave.') new_button = QtWidgets.QPushButton('Load into New Tab') save_button = QtWidgets.QPushButton('Save This Version') update_button = QtWidgets.QPushButton('Update From Autosave') diff_button = QtWidgets.QPushButton('Show Diff') stylesheet = """ QPushButton { background-color: #444; } QPushButton:hover { background-color: orange; } """ for b in new_button, save_button, update_button, diff_button: #b.setFlat(True) b.setStyleSheet(stylesheet) for b in l, new_button, save_button, update_button, diff_button: bar_layout.addWidget(b) layout.insertWidget(1, popup_bar) popup_bar.setMaximumHeight(0) #print popup_bar.maximumHeight() #popup_bar.setMaximumHeight(46) def anim_popup_bar(popup_bar): anim = QtCore.QPropertyAnimation( popup_bar, 'maximumHeight' ) anim.setStartValue(0) anim.setEndValue(46) anim.setDuration(400) anim.start() anim_popup_bar.anim = anim anim_popup_bar(popup_bar)
def __init__(self): QtWidgets.QTabWidget.__init__(self) self.setTabBar(TabBar(self)) self.setTabsClosable(True) self.user_cancelled_tab_close = False self.setTabShape(QtWidgets.QTabWidget.Rounded) self.tab_count = 0 self.current_index = 0 tabBar = self.tabBar() tabBar.setMovable(True) tabBar.tabMoved.connect(self.tab_restrict_move, QtCore.Qt.DirectConnection) self.setup_new_tab_btn() self.tabCloseRequested.connect(self.close_tab) self.reset_tab_signal.connect(self.reset_tabs) self.currentChanged.connect(self.widget_changed) self.setStyleSheet("QTabBar::tab { height: 24px; }") # add tab list button self.corner_button = QtWidgets.QPushButton(':') self.corner_button.setFixedSize(24, 24) self.corner_button.setStyleSheet("border: 5px solid black") self.corner_button.clicked.connect(self.show_tab_menu) self.setCornerWidget(self.corner_button, corner=QtCore.Qt.TopRightCorner)
def build_layout(self): # external editor path self.edit_path = QtWidgets.QLineEdit() self.external_editor_label = QtWidgets.QLabel('External Editor Path') self.external_editor_label.setBuddy(self.edit_path) self.layout.addWidget(self.external_editor_label) self.layout.addWidget(self.edit_path) # # change editor colours self.choose_colour_button = QtWidgets.QPushButton('Choose Colour') self.colour_dialog = QtWidgets.QColorDialog() self.choose_colour_button.clicked.connect(self.colour_dialog.show) self.layout.addWidget(self.choose_colour_button) # change editor font self.font_size = QtWidgets.QSpinBox() self.font_size.setValue(9) self.font_size_label = QtWidgets.QLabel('Choose Font Size') self.font_size_label.setBuddy(self.font_size) self.layout.addWidget(self.font_size_label) self.layout.addWidget(self.font_size)
def __init__(self, editor, tabs=None, replace=False): super(SearchPanel, self).__init__() self.setObjectName('SearchPanel') layout = QtWidgets.QGridLayout(self) self.setLayout(layout) self.editor = editor self.find = FindPalette(editor, tabs=tabs) layout.addWidget(self.find, 0, 1) self.find_button = QtWidgets.QPushButton('Find') layout.addWidget(self.find_button, 0, 2) self.previous_button = QtWidgets.QPushButton('Previous') # layout.addWidget(self.previous_button,0,2) self.tabs = tabs if tabs is not None: self.search_across_tabs_check = QtWidgets.QToolButton( checkable=True, checked=False) icon = self.style().standardIcon( QtWidgets.QStyle.SP_FileDialogContentsView) self.search_across_tabs_check.setIcon(icon) self.search_across_tabs_check.setToolTip( 'Search across all open tabs') layout.addWidget(self.search_across_tabs_check, 0, 0) self.search_across_tabs_check.clicked.connect( self.find.toggle_search_across_tabs) self.search_across_tabs_check.clicked.connect( self.change_find_across_tabs_icon) if replace: self.replace_within_selection = False self.replace_within_selection_check = QtWidgets.QToolButton( checkable=True, checked=False) self.replace_within_selection_check.setToolTip( 'Replace only within selection') layout.addWidget(self.replace_within_selection_check, 1, 0) self.replace_within_selection_check.clicked.connect( self.toggle_replace_within_selection) self.replace = EditLine(editor) layout.addWidget(self.replace, 1, 1) self.replace_button = QtWidgets.QPushButton('Replace') layout.addWidget(self.replace_button, 1, 2) self.replace_button.clicked.connect(self.find_and_replace) self.replace.ctrl_enter_signal.connect(self.find_and_replace) self.replace.escape_signal.connect(self.remove_from_tabeditor) if PREVIOUS_REPLACEMENT is not None: self.replace.setText(PREVIOUS_REPLACEMENT) self.replace.textChanged.connect(self.remember_replacement) self.setTabOrder(self.find, self.replace) self.close_button = QtWidgets.QPushButton() icon = self.style().standardIcon( QtWidgets.QStyle.SP_TitleBarCloseButton) self.close_button.setIcon(icon) self.close_button.setFlat(True) layout.addWidget(self.close_button, 0, 3) self.insert_self_in_parent() self.find.escape_signal.connect(self.remove_from_tabeditor) self.find_button.clicked.connect(self.find.find) self.previous_button.clicked.connect(self.find.find_previous) self.close_button.clicked.connect(self.close)