Esempio n. 1
0
    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)
Esempio n. 2
0
    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)
Esempio n. 3
0
    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)
Esempio n. 4
0
    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)