示例#1
0
文件: logWidget.py 项目: sinhnn/ssh
    def initLogFileChooser(self):
        layout = QHBoxLayout()

        self.comboBox = QComboBox(self)
        for f in self.watchFiles:
            self.comboBox.addItem(f)
        self.comboBox.setFixedWidth(200)
        self.comboBox.currentTextChanged.connect(self.refreshLog)
        self.currentLogFile = self.watchFiles[0]

        self.lineNumbWidget = QLineEdit()
        self.lineNumbWidget.setMaximumWidth(100)
        label = QLabel("NumberLine")
        self.fullLog = QCheckBox("FullLog", self)
        self.fullLog.stateChanged.connect(self.refreshLog)

        self.errors = QCheckBox("Error", self)
        self.today = QCheckBox("Today", self)
        self.today.setCheckState(Qt.Checked)
        self.errors.stateChanged.connect(self.refreshLog)
        self.today.stateChanged.connect(self.refreshLog)

        layout.addWidget(self.comboBox)
        layout.addWidget(self.lineNumbWidget, Qt.AlignRight)
        layout.addWidget(label)
        layout.addWidget(self.errors)
        layout.addWidget(self.today)
        layout.addWidget(self.fullLog)
        layout.addSpacerItem(
            QSpacerItem(10, 0, QtWidgets.QSizePolicy.Expanding,
                        QtWidgets.QSizePolicy.Expanding))
        # layout.addSpacing(100)
        self.layout.addLayout(layout)
示例#2
0
class SearchLineEdit(QLineEdit):
    """创建一个可自定义图片的输入框。"""
    def __init__(self, parent=None):
        super(SearchLineEdit, self).__init__()
        self.setObjectName("SearchLine")
        self.parent = parent
        self.setMinimumSize(218, 20)
        with open('QSS/searchLine.qss', 'r') as f:
            self.setStyleSheet(f.read())

        self.button = QPushButton(self)
        self.button.setMaximumSize(13, 13)
        self.button.setCursor(QCursor(Qt.PointingHandCursor))

        self.setTextMargins(3, 0, 19, 0)

        self.spaceItem = QSpacerItem(150, 10, QSizePolicy.Expanding)

        self.mainLayout = QHBoxLayout()
        self.mainLayout.addSpacerItem(self.spaceItem)
        # self.mainLayout.addStretch(1)
        self.mainLayout.addWidget(self.button)
        self.mainLayout.addSpacing(10)
        self.mainLayout.setContentsMargins(0, 0, 0, 0)
        self.setLayout(self.mainLayout)
    
    def setButtonSlot(self, funcName):
        self.button.clicked.connect(funcName)
    def AddTableAreaButtons(self, page_layout):
        from PyQt5.QtWidgets import QHBoxLayout, QVBoxLayout, QSpacerItem

        self.new_summary_button = QPushButton('New Summary')
        self.new_summary_button.clicked.connect(self.on_new_summary_clicked)

        self.load_summary_button = QPushButton('Load Summary')
        self.load_summary_button.clicked.connect(self.on_load_summary_clicked)

        self.save_summary_button = QPushButton('Save Summary')
        self.save_summary_button.clicked.connect(self.on_save_summary_clicked)

        self.export_summary_button = QPushButton('Export Summary')
        self.export_summary_button.clicked.connect(self.export_summary_clicked)

        button_layout = QHBoxLayout()
        button_layout.addWidget(self.new_summary_button)
        button_layout.addWidget(self.load_summary_button)
        button_layout.addSpacerItem(QSpacerItem(self.width() / 2.3, 0))
        button_layout.addWidget(self.export_summary_button)
        button_layout.addWidget(self.save_summary_button)

        page_layout.addLayout(button_layout)

        return page_layout
示例#4
0
    def show_pulsantiera(self):
        # Layout interni utilizzati per l'allineamento dei tre pulsanti
        layout_pulsanti = QHBoxLayout()
        layout_pulsanti.setAlignment(Qt.AlignCenter)

        # Configurazione del pulsante Indietro
        pulsante_indietro = QPushButton("INDIETRO")
        pulsante_indietro.setFont(QFont('Times New Roman', 18, 100, True))
        pulsante_indietro.setFixedSize(250, 100)
        pulsante_indietro.setStyleSheet("background-color: orange")
        pulsante_indietro.clicked.connect(self.indietro)

        # Configurazione del pulsante Prenota
        pulsante_prenota = QPushButton("PRENOTA")
        pulsante_prenota.setFont(QFont('Times New Roman', 18, 100, True))
        pulsante_prenota.setFixedSize(250, 100)
        pulsante_prenota.setStyleSheet("background-color: orange")
        pulsante_prenota.clicked.connect(self.call_selezione_giorni)

        # Inserimento e allineamento dei tre pulsanti del layout globale
        layout_pulsanti.addWidget(pulsante_prenota)
        layout_pulsanti.addSpacerItem(
            QSpacerItem(50, 0, QSizePolicy.Fixed, QSizePolicy.Fixed))
        layout_pulsanti.addWidget(pulsante_indietro)
        self.layout_verticale.addLayout(layout_pulsanti)
    def __init__(self, suggested, parent=None):
        super(PythonDetectDialog, self).__init__(parent, Qt.Dialog)
        self.setMaximumSize(QSize(0, 0))
        self.setWindowTitle("Configure Python Path")

        vbox = QVBoxLayout(self)
        msg_str = ("We have detected that you are using "
                   "Windows,\nplease choose the proper "
                   "Python application for you:")
        lblMessage = QLabel(self.tr(msg_str))
        vbox.addWidget(lblMessage)

        self.listPaths = QListWidget()
        self.listPaths.setSelectionMode(QListWidget.SingleSelection)
        vbox.addWidget(self.listPaths)

        hbox = QHBoxLayout()
        hbox.addSpacerItem(QSpacerItem(1, 0, QSizePolicy.Expanding))
        btnCancel = QPushButton(self.tr("Cancel"))
        btnAccept = QPushButton(self.tr("Accept"))
        hbox.addWidget(btnCancel)
        hbox.addWidget(btnAccept)
        vbox.addLayout(hbox)

        btnAccept.clicked['bool'].connect(self._set_python_path)
        btnCancel.clicked['bool'].connect(self.close)

        for path in suggested:
            self.listPaths.addItem(path)
        self.listPaths.setCurrentRow(0)
示例#6
0
class FuncMenu(QWidget):
    def __init__(self):
        super(FuncMenu, self).__init__()
        self.__init_ui()

    def __init_ui(self):
        style_sheet = """
        QPushButton {
            border:none;
            padding: 5px 15px;
            height: 25px;
            font-size:14px;
            font-weight: bold;
        }
        QPushButton:hover{
            background-color: rgb(200, 200, 200)
        }
        """
        # 支持qss设置背景
        self.setAttribute(Qt.WA_StyledBackground, True)
        self.layout = QHBoxLayout(margin=0)
        self.setStyleSheet(style_sheet)
        self.setLayout(self.layout)

    def addMenu(self, menu):
        if not isinstance(menu, QPushButton):
            return
        self.layout.addWidget(menu)

    def addSpacer(self):
        self.layout.addSpacerItem(
            QSpacerItem(40, 10, QSizePolicy.Expanding, QSizePolicy.Minimum))
示例#7
0
    def initMainUi(self):
        role_names = self.parentApplet.dataSelectionApplet.topLevelOperator.DatasetRoles.value
        self.list_widgets = []
        
        # Create a tab for each role
        for role_index, role_name in enumerate(role_names):
            select_button = QPushButton("Select " + role_name + " Files...", 
                                        clicked=partial(self.select_files, role_index) )
            clear_button = QPushButton("Clear " + role_name + " Files",
                                       clicked=partial(self.clear_files, role_index) )
            button_layout = QHBoxLayout()
            button_layout.addWidget(select_button)
            button_layout.addSpacerItem( QSpacerItem(0,0,hPolicy=QSizePolicy.Expanding) )
            button_layout.addWidget(clear_button)
            button_layout.setContentsMargins(0, 0, 0, 0)
            
            button_layout_widget = QWidget()
            button_layout_widget.setLayout(button_layout)
            button_layout_widget.setSizePolicy( QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Maximum) )

            list_widget = QListWidget(parent=self)
            list_widget.setSizePolicy( QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) )
            self.list_widgets.append( list_widget )

            tab_layout = QVBoxLayout()
            tab_layout.setContentsMargins(0, 0, 0, 0)
            tab_layout.addWidget( button_layout_widget )
            tab_layout.addWidget( list_widget )
            
            layout_widget = QWidget(parent=self)
            layout_widget.setLayout(tab_layout)
            self.addTab(layout_widget, role_name)
示例#8
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        layout = QHBoxLayout()

        pm_plus = QIcon('imgs/plus.png')
        self.newButton = QPushButton()
        self.newButton.setToolTip("New Link")
        self.newButton.setIcon(pm_plus)
        self.newButton.clicked.connect(self.new_button_clicked)

        pm_plus_more = QIcon('imgs/plus-list.png')
        self.newMoreButton = QPushButton()
        self.newMoreButton.setToolTip("New Link (bulk)")
        self.newMoreButton.setIcon(pm_plus_more)
        self.newMoreButton.clicked.connect(self.new_button_clicked_bulk)

        layout.addWidget(self.newButton)
        layout.addWidget(self.newMoreButton)
        layout.addSpacerItem(
            QSpacerItem(0, 0, QtWidgets.QSizePolicy.MinimumExpanding,
                        QtWidgets.QSizePolicy.Minimum))

        pm_nuke = QIcon('imgs/nuke.png')
        self.clearButton = QPushButton()
        self.clearButton.setToolTip("Remove All Links")
        self.clearButton.setIcon(pm_nuke)
        self.clearButton.clicked.connect(self.nuke_button_clicked)
        layout.addWidget(self.clearButton)

        self.setLayout(layout)
示例#9
0
    def add_display_options_ui_elements(self):
        """
        method used to add the display options to the gui
        Returns:
             None
        """
        options_layout = QHBoxLayout()

        self.limit_view.setToolTip("When checked only show parse type files")
        self.limit_view.toggled.connect(self.toggle_limit_view)
        self.limit_view.toggled.connect(self.get_files_from_selected_folder)

        self.limit_type.setDisabled(True)
        self.limit_type.setMaximumWidth(77)
        self.limit_type.editingFinished.connect(self.check_limit_type)
        self.limit_type.textEdited.connect(self.get_files_from_selected_folder)

        self.search_text.setDisabled(True)
        self.search.toggled.connect(self.toggle_search)
        self.search.toggled.connect(self.get_files_from_selected_folder)
        self.search_text.editingFinished.connect(self.check_search_str)
        self.search_text.textEdited.connect(
            self.get_files_from_selected_folder)
        options_layout.addWidget(self.limit_view)
        options_layout.addWidget(self.limit_type)
        options_layout.addSpacerItem(QSpacerItem(20, 5))
        options_layout.addWidget(self.search)
        options_layout.addWidget(self.search_text)
        options_layout.addStretch(1)

        # ADD options_layout TO self.main_layout
        self.main_layout.addLayout(options_layout)
示例#10
0
    def __init__(self, parent):
        super(SchemesManagerWidget, self).__init__(parent, Qt.Dialog)
        self.setWindowTitle(translations.TR_EDITOR_SCHEMES)
        self.resize(700, 500)

        vbox = QVBoxLayout(self)
        self._tabs = QTabWidget()
        vbox.addWidget(self._tabs)
        # Footer
        hbox = QHBoxLayout()
        btn_close = QPushButton(self.tr('Close'))
        btnReload = QPushButton(self.tr("Reload"))
        hbox.addWidget(btn_close)
        hbox.addSpacerItem(QSpacerItem(1, 0, QSizePolicy.Expanding))
        hbox.addWidget(btnReload)
        vbox.addLayout(hbox)
        self.overlay = ui_tools.Overlay(self)
        self.overlay.show()

        self._schemes = []
        self._loading = True
        self.downloadItems = []

        #Load Themes with Thread
        #self.connect(btnReload, SIGNAL("clicked()"), self._reload_themes)
        btnReload.clicked.connect(self._reload_themes)
        self._thread = ui_tools.ThreadExecution(self.execute_thread)
        #self.connect(self._thread, SIGNAL("finished()"), self.load_skins_data)
        self._thread.finished.connect(self.load_skins_data)
        #self.connect(btn_close, SIGNAL('clicked()'), self.close)
        btn_close.clicked.connect(self.close)
        self._reload_themes()
示例#11
0
    def setup_default_ui(self):
        self.ui.radio_button_trim.setChecked(True)
        self.ui.check_box_lkq.setChecked(True)
        self.ui.radio_button_nc.setChecked(True)

        work_centers = ['Slitting', 'DTR', 'CPurlin', 'ZPurlin']
        self.ui.combo_box_workcenter.addItems(work_centers)

        v_spacer = QSpacerItem(500, 1)

        edit_line = QLineEdit()
        edit_line.setObjectName('edit_line')
        edit_line.setText(edit_line.objectName())
        edit_line.width = 50
        self.ui.__dict__['edit_line'] = edit_line
        search_btn = QPushButton()
        search_btn.width = 50
        search_btn.setText('Search')
        hbox = QHBoxLayout()
        hbox.addSpacerItem(v_spacer)
        hbox.addWidget(edit_line)
        hbox.addWidget(search_btn)
        # bb = QPushButton('test', self.ui.verticalLayout)
        # bb.setObjectName('bb')
        self.ui.verticalLayout.addLayout(hbox)
        search_btn.clicked.connect(self.on_search_btn_clicked)
    def __init__(self, task):
        QWidget.__init__(self)

        panel = QHBoxLayout()
        self.setLayout(panel)
        panel.setContentsMargins(2, 2, 2, 2)

        self.lb_description = QLabel()
        panel.addWidget(self.lb_description)
        self.lb_description.setMaximumWidth(description_width)
        panel.addSpacerItem(QSpacerItem(1, 1, QSizePolicy.MinimumExpanding))
        self.update(task)

        font = QFont()
        font.setBold(True)
        font.setPointSize(14)

        buttons = QHBoxLayout()
        buttons.setAlignment(Qt.AlignLeft)
        self.bt_up = SIconButton('↑', font, 'Move up')
        self.bt_edit = SIconButton('✎', font, 'Edit')
        self.bt_delete = SIconButton('♻', font, 'Delete')
        self.bt_add = SIconButton('+', font, 'Add new')
        self.cb_enable = QCheckBox()
        self.cb_enable.setChecked(task['is_enabled'])
        buttons.addWidget(self.bt_up)
        buttons.addWidget(self.bt_edit)
        buttons.addWidget(self.bt_delete)
        buttons.addWidget(self.bt_add)
        buttons.addWidget(self.cb_enable)
        panel.addLayout(buttons)

        self.setLayout(panel)
示例#13
0
    def __init__(self, line: Line2D, name: str, parent):
        QWidget.__init__(self, parent)

        self.parent = parent
        self.line = line
        self.name = name

        self.color_indicator = QWidget()
        self.color_indicator.setFixedSize(24, 24)
        self.enterEvent(None)  # This sets the color

        self.visibility_toggle = QCheckBox("      ")
        self.visibility_toggle.setChecked(True)
        self.visibility_toggle.toggled.connect(self.__on_visible_check_toggled)

        self.bold_toggle = QCheckBox("      ")
        self.bold_toggle.toggled.connect(self.__on_bold_check_toggled)
        self.bold_toggle.setChecked(False)

        self.label = QLabel(self.name)

        layout = QHBoxLayout()

        layout.addWidget(self.visibility_toggle)
        layout.addWidget(self.bold_toggle)
        layout.addWidget(self.color_indicator)
        layout.addWidget(self.label)
        layout.addSpacerItem(QSpacerItem(1, 1, QSizePolicy.Expanding, QSizePolicy.Maximum))

        self.setLayout(layout)
示例#14
0
class SearchLineEdit(QLineEdit):
    """创建一个可自定义图片的输入框。"""
    def __init__(self, parent=None):
        super(SearchLineEdit, self).__init__()
        self.setObjectName("SearchLine")
        self.parent = parent
        self.setMinimumSize(218, 20)
        with open('QSS/searchLine.qss', 'r') as f:
            self.setStyleSheet(f.read())


        self.button = QPushButton(self)
        self.button.setMaximumSize(13, 13)
        self.button.clicked.connect(self.search)
        self.button.setCursor(QCursor(Qt.PointingHandCursor))

        self.setTextMargins(3, 0, 19, 0)

        self.spaceItem = QSpacerItem(150, 10, QSizePolicy.Expanding)

        self.mainLayout = QHBoxLayout()
        self.mainLayout.addSpacerItem(self.spaceItem)
        # self.mainLayout.addStretch(1)
        self.mainLayout.addWidget(self.button)
        self.mainLayout.addSpacing(10)
        self.mainLayout.setContentsMargins(0, 0, 0, 0)
        self.setLayout(self.mainLayout)
    
    def search(self):
        pass
示例#15
0
class BandLegend(QWidget):

    def __init__(self, band_display_widget: 'BandDisplayWidget'):
        QWidget.__init__(self)

        self.setWindowTitle("Band Legend")
        self.setWindowIcon(program_icon())

        self.scroll_area = QScrollArea()
        self.scroll_area.setLayout(QVBoxLayout())
        self.scroll_area.setWidgetResizable(True)
        self.widget = QWidget()
        self.scroll_area.setWidget(self.widget)
        self.widget.setLayout(QVBoxLayout())
        self.layout = QVBoxLayout()
        self.setLayout(self.layout)
        self.band_display_widget = band_display_widget
        self.layout.addWidget(self.scroll_area)
        self.setMouseTracking(True)

        self.hlayout = QHBoxLayout()
        self.hlayout.addWidget(QLabel("Visible?  "))
        self.hlayout.addWidget(QLabel("Bold?      "))
        self.hlayout.addSpacerItem(QSpacerItem(1, 1, QSizePolicy.Expanding, QSizePolicy.Preferred))
        self.widget.layout().addLayout(self.hlayout)

    def add_bands(self, bands: Dict[str, Line2D], table_name: str):
        """
        Add a set of bands for a specific line list
        """
        self.widget.layout().addWidget(LegendItem(bands, table_name, self))

    def update_plot(self):
        self.band_display_widget.update_plot()
示例#16
0
 def make_control_layout(self):
     buttonsLayout = QHBoxLayout()
     buttonsLayout.setContentsMargins(0, 0, 0, 0)
     buttonsLayout.addWidget(self.timeBox)
     buttonsLayout.addWidget(self.slowDownButton)
     buttonsLayout.addWidget(self.goBackButton)
     buttonsLayout.addWidget(self.goBack3Button)
     buttonsLayout.addWidget(self.playButton)
     buttonsLayout.addWidget(self.adv3Button)
     buttonsLayout.addWidget(self.advanceButton)
     buttonsLayout.addWidget(self.speedUpButton)
     buttonsLayout.addWidget(self.rateBox)
     cutLayout = QHBoxLayout()
     cutLayout.setContentsMargins(0, 0, 0, 0)
     cutLayout.addSpacerItem(QSpacerItem(200, 5, QSizePolicy.Minimum,
         QSizePolicy.Minimum))
     cutLayout.addWidget(self.cutButton)
     cutLayout.addSpacerItem(QSpacerItem(200, 5, QSizePolicy.Minimum,
         QSizePolicy.Minimum))
     layout = QVBoxLayout()
     layout.setContentsMargins(0, 0, 0, 0)
     layout.addWidget(self.positionSlider)
     layout.addWidget(self.hlightSliderTips)
     layout.addLayout(buttonsLayout)
     layout.addLayout(cutLayout)
     return layout
示例#17
0
    def __init__(self, parent=None):
        super().__init__(parent, Qt.WindowStaysOnTopHint)
        box = QVBoxLayout(self)
        box.setContentsMargins(0, 0, 0, 0)
        box.setSpacing(0)
        # PEP8
        self._list_pep8 = QListWidget()
        self._list_pep8.setWordWrap(True)
        self._list_pep8.setSortingEnabled(True)
        hbox = QHBoxLayout()
        hbox.setContentsMargins(5, 3, 5, 3)
        if settings.CHECK_STYLE:
            self._btn_pep8 = QPushButton("PEP8: ON")
        else:
            self._btn_pep8 = QPushButton("PEP8: OFF")
        self._pep8_label = QLabel("PEP8 Errors: %s" % 0)
        hbox.addWidget(self._pep8_label)
        hbox.addSpacerItem(QSpacerItem(1, 0, QSizePolicy.Expanding))
        hbox.addWidget(self._btn_pep8)
        box.addLayout(hbox)
        box.addWidget(self._list_pep8)

        # Connections
        self._list_pep8.clicked.connect(self.__on_pep8_item_selected)
        self._btn_pep8.clicked.connect(self._turn_on_off_pep8)
        # Register service
        IDE.register_service("tab_errors", self)
示例#18
0
class SearchLineEdit(QLineEdit):
    searchSignal = pyqtSignal(str)
    """创建一个可搜索的输入框。"""
    def __init__(self, parent=None):
        super().__init__()
        self.parent = parent
        self.setMinimumSize(218, 20)

        self.button = QPushButton(self)
        self.button.setMaximumSize(16, 16)
        self.button.setCursor(QCursor(Qt.PointingHandCursor))
        self.button.setStyleSheet(
            "QPushButton{border-image: url(icons/search.png)}")

        self.setTextMargins(3, 0, 19, 0)

        self.spaceItem = QSpacerItem(150, 10, QSizePolicy.Expanding)

        self.mainLayout = QHBoxLayout()
        self.mainLayout.addSpacerItem(self.spaceItem)
        # self.mainLayout.addStretch(1)
        self.mainLayout.addWidget(self.button)
        self.mainLayout.addSpacing(5)
        self.mainLayout.setContentsMargins(0, 0, 0, 0)
        self.setLayout(self.mainLayout)

        self.button.clicked.connect(self.sendSearchSignal)

    def sendSearchSignal(self):
        self.searchSignal.emit(self.text())
        def changeTileWidth():
            '''Change tile width (tile block size) and reset image-scene'''
            dlg = QDialog(self)
            dlg.setWindowTitle("Viewer Tile Width")
            dlg.setModal(True)
            
            spinBox = QSpinBox( parent=dlg )
            spinBox.setRange( 128, 10*1024 )
            spinBox.setValue( self.editor.imageScenes[0].tileWidth() )
                
            ctrl_layout = QHBoxLayout()
            ctrl_layout.addSpacerItem(QSpacerItem(10, 0, QSizePolicy.Expanding))
            ctrl_layout.addWidget( QLabel("Tile Width:") )
            ctrl_layout.addWidget( spinBox )

            button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel, parent=dlg)
            button_box.accepted.connect( dlg.accept )
            button_box.rejected.connect( dlg.reject )
            
            dlg_layout = QVBoxLayout()
            dlg_layout.addLayout( ctrl_layout )
            dlg_layout.addWidget( QLabel("Setting will apply current view immediately,\n"
                                         "and all other views upon restart.") )
            dlg_layout.addWidget( button_box )

            dlg.setLayout( dlg_layout )
            
            if dlg.exec_() == QDialog.Accepted:
                for s in self.editor.imageScenes:
                    if s.tileWidth != spinBox.value():
                        s.setTileWidth( spinBox.value() )
                        s.reset()
示例#20
0
        def changeTileWidth():
            """Change tile width (tile block size) and reset image-scene"""
            dlg = QDialog(self)
            dlg.setWindowTitle("Viewer Tile Width")
            dlg.setModal(True)

            spinBox = QSpinBox(parent=dlg)
            spinBox.setRange(128, 10 * 1024)
            spinBox.setValue(self.editor.imageScenes[0].tileWidth())

            ctrl_layout = QHBoxLayout()
            ctrl_layout.addSpacerItem(QSpacerItem(10, 0, QSizePolicy.Expanding))
            ctrl_layout.addWidget(QLabel("Tile Width:"))
            ctrl_layout.addWidget(spinBox)

            button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel, parent=dlg)
            button_box.accepted.connect(dlg.accept)
            button_box.rejected.connect(dlg.reject)

            dlg_layout = QVBoxLayout()
            dlg_layout.addLayout(ctrl_layout)
            dlg_layout.addWidget(
                QLabel("Setting will apply current view immediately,\n" "and all other views upon restart.")
            )
            dlg_layout.addWidget(button_box)

            dlg.setLayout(dlg_layout)

            if dlg.exec_() == QDialog.Accepted:
                for s in self.editor.imageScenes:
                    if s.tileWidth != spinBox.value():
                        s.setTileWidth(spinBox.value())
                        s.reset()
示例#21
0
    def onActivated(self):
        current_selection = self.ui.chats_list.currentText()
        msg_lst = self._connector.select_messages(current_selection)
        for msg in msg_lst:
            self.chats.append(msg)
        self.deleteItems(self.verticalLayout)
        self.progress.setVisible(True)
        for i in range(len(self.chats) - 1):
            label_name = 'q_label_{}'.format(i)
            check_name = 'q_check_box_{}'.format(i)
            label = QLabel()
            check_box = QCheckBox()
            label.setObjectName(label_name)
            check_box.setObjectName(check_name)
            sender = self.chats[i][0]
            text = self.chats[i][2]
            label.setText("{}: {}".format(sender, text))
            spaceItem = QSpacerItem(100, 10, QSizePolicy.Expanding)
            label.setWordWrap(True)
            hor_layout = QHBoxLayout()
            hor_layout.addWidget(label)
            hor_layout.addSpacerItem(spaceItem)
            hor_layout.addWidget(check_box)
            hor_layout.setContentsMargins(0, 0, 0, 0)
            check_box.clicked.connect(self.clicked_)
            self.verticalLayout.addLayout(hor_layout, 0)
            self.checks.append(check_box)
            self.labels[label_name] = label
            self.progress.setValue(100 / len(self.chats) * 0.1)

        self.progress.setVisible(False)
        self.chats.clear()
示例#22
0
class CurrencySelect(QWidget):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        # ---- Content ----
        self.layout = QHBoxLayout()
        self.layout.setSpacing(80)
        # Label
        self.label = QLabel(self.tr("Currency"))
        self.label.setFont(PreferencesLabelFont())
        self.layout.addWidget(self.label)
        # Languages buttons
        self.currency_bttns = CurrencyButtonsLayout()
        self.layout.addLayout(self.currency_bttns)
        # Spacer
        self.layout.addSpacerItem(
            QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum))

        self.setLayout(self.layout)

        # ---- Initialize ----
        self.set_initial_currency()

    def get_current_currency(self):
        for bttn in self.currency_bttns.bttns:
            if bttn.isChecked():
                return bttn.text()

    def set_initial_currency(self):
        initial_curr = confighandler.get_fiat_currency().upper()
        for bttn in self.currency_bttns.bttns:
            if bttn.text() == initial_curr:
                bttn.click()
    def __init__(self, parent):
        super(SchemesManagerWidget, self).__init__(parent, Qt.Dialog)
        self.setWindowTitle(translations.TR_EDITOR_SCHEMES)
        self.resize(700, 500)

        vbox = QVBoxLayout(self)
        self._tabs = QTabWidget()
        vbox.addWidget(self._tabs)
        # Footer
        hbox = QHBoxLayout()
        btn_close = QPushButton(self.tr('Close'))
        btnReload = QPushButton(self.tr("Reload"))
        hbox.addWidget(btn_close)
        hbox.addSpacerItem(QSpacerItem(1, 0, QSizePolicy.Expanding))
        hbox.addWidget(btnReload)
        vbox.addLayout(hbox)
        self.overlay = ui_tools.Overlay(self)
        self.overlay.show()

        self._schemes = []
        self._loading = True
        self.downloadItems = []

        #Load Themes with Thread
        btnReload.clicked['bool'].connect(self._reload_themes)
        self._thread = ui_tools.ThreadExecution(self.execute_thread)
        self._thread.finished.connect(self.load_skins_data)
        btn_close.clicked['bool'].connect(self.close)
        self._reload_themes()
示例#24
0
    def __init__(self, parent):
        QDialog.__init__(self, parent, Qt.Dialog)
        self.setWindowTitle(self.tr("Language Manager"))
        self.resize(700, 500)

        vbox = QVBoxLayout(self)
        self._tabs = QTabWidget()
        vbox.addWidget(self._tabs)
        # Footer
        hbox = QHBoxLayout()
        btn_close = QPushButton(self.tr('Close'))
        btnReload = QPushButton(self.tr("Reload"))
        hbox.addWidget(btn_close)
        hbox.addSpacerItem(QSpacerItem(1, 0, QSizePolicy.Expanding))
        hbox.addWidget(btnReload)
        vbox.addLayout(hbox)
        self.overlay = ui_tools.Overlay(self)
        self.overlay.show()

        self._languages = []
        self._loading = True
        self.downloadItems = []

        # Load Themes with Thread
        btnReload.clicked.connect(self._reload_languages)
        self._thread = ui_tools.ThreadExecution(self.execute_thread)
        self._thread.finished.connect(self.load_languages_data)
        btn_close.clicked.connect(self.close)
        self._reload_languages()
    def __init__(self, suggested, parent=None):
        super(PythonDetectDialog, self).__init__(parent, Qt.Dialog)
        self.setMaximumSize(QSize(0, 0))
        self.setWindowTitle("Configure Python Path")

        vbox = QVBoxLayout(self)

        lblMessage = QLabel(_translate("PythonDetectDialog", "We have detected that you are using " +
            "Windows,\nplease choose the proper " +
            "Python application for you:"))
        vbox.addWidget(lblMessage)

        self.listPaths = QListWidget()
        self.listPaths.setSelectionMode(QListWidget.SingleSelection)
        vbox.addWidget(self.listPaths)

        hbox = QHBoxLayout()
        hbox.addSpacerItem(QSpacerItem(1, 0, QSizePolicy.Expanding))
        btnCancel = QPushButton(_translate("PythonDetectDialog", "Cancel"))
        btnAccept = QPushButton(_translate("PythonDetectDialog", "Accept"))
        hbox.addWidget(btnCancel)
        hbox.addWidget(btnAccept)
        vbox.addLayout(hbox)

        btnAccept.clicked['bool'].connect(self._set_python_path)
        btnCancel.clicked['bool'].connect(self.close)

        for path in suggested:
            self.listPaths.addItem(path)
        self.listPaths.setCurrentRow(0)
示例#26
0
    def __init__(self,
                 listItem,
                 listView,
                 text=DEFAULT_MSG,
                 lr=True,
                 device_name="MSE",
                 ip="127.0.0.1",
                 parent_dialog=None):
        super(TextItem, self).__init__()
        self.ip = ip
        self.device_name = device_name
        self.parent_dialog = parent_dialog
        hbox = QHBoxLayout()
        text = BubbleText(listItem, listView, text, lr)
        head = LabelHead(device_name)
        head.setFixedSize(100, 50)

        if lr is not True:
            hbox.addSpacerItem(
                QSpacerItem(1, 1, QSizePolicy.Expanding,
                            QSizePolicy.Preferred))
            hbox.addWidget(text)
            hbox.addWidget(head)
        else:
            hbox.addWidget(head)
            hbox.addWidget(text)
            hbox.addSpacerItem(
                QSpacerItem(1, 1, QSizePolicy.Expanding,
                            QSizePolicy.Preferred))

        hbox.setContentsMargins(0, 0, 0, 0)
        self.setLayout(hbox)
        self.setContentsMargins(0, 0, 0, 0)
示例#27
0
class ToolWidget(QWidget):
    tool_click_signal = pyqtSignal(str)

    def __init__(self):
        super(ToolWidget, self).__init__()
        self.__init_ui()

    def __init_ui(self):
        style_sheet = """
            ToolWidget {
                background-color: rgb(240,240,240);
            }
            QPushButton{
                background-color: #FFFFFF;
                margin: 0 5px;
                padding: 3px 5px;
                font-size:12px;
            }
        """
        self.setAttribute(Qt.WA_StyledBackground, True)  # 设置了才能使用qss设置布局背景色
        self.layout = QHBoxLayout(spacing=0, margin=0)
        self.setLayout(self.layout)
        self.setStyleSheet(style_sheet)

    def addTool(self, tool):
        if not isinstance(tool, QPushButton):
            return
        self.layout.addWidget(tool, alignment=Qt.AlignTop)

    def addSpacer(self):
        self.layout.addSpacerItem(QSpacerItem(
            40, 10, QSizePolicy.Expanding, QSizePolicy.Minimum))
    def __init__(self, model, parent):
        super().__init__(parent=parent)
        self.setFixedSize(self.parent().size())
        self.model = model
        vbox = QVBoxLayout()
        vbox.setContentsMargins(0, 0, 0, 0)
        self.setLayout(vbox)
        self._matrices = []
        self.matrice_grid = QWidget(parent=self)
        reduced = self.height() - Settings.Settings.progressbar_height

        self.matrice_grid.setFixedSize(self.width(), reduced)
        self.matrice_grid.setLayout(QVBoxLayout())
        self.matrice_grid.layout().setSpacing(0)
        self.matrice_grid.setContentsMargins(0, 0, 0, 0)
        self.progress_bar = QProgressBar()
        self.progress_bar.setTextVisible(False)
        self.progress_bar.setFixedHeight(Settings.Settings.progressbar_height)
        self.progress_bar.setMaximum(1000)
        self.progress_bar.setMinimum(0)
        # self.progress_bar.setValue = self.setValue
        vbox.addWidget(self.matrice_grid)
        vbox.addWidget(self.progress_bar)
        matrices = self.model.matrices
        mat_iter = iter(matrices)
        for i in range(0, 4):  # TODO: Fix hardcoded numbers
            row = QHBoxLayout()
            row.addSpacerItem(QSpacerItem(10, 10, QSizePolicy.Expanding))
            for j in range(0, 5):  # TODO Fix hardcoded values
                self.addMatrix(row, next(mat_iter))
            row.addSpacerItem(QSpacerItem(10, 10, QSizePolicy.Expanding))
            self.matrice_grid.layout().addItem(row)
    def __init__(self, equipment_item):
        View.__init__(self)
        layout = QHBoxLayout()
        layout.setContentsMargins(5, 1, 1, 1)
        self.item = equipment_item
        self.name = equipment_item.ID
        name_layout = QVBoxLayout()
        name = QLabel(translate(equipment_item.name))
        name_layout.addWidget(name)
        self.values_layout = QVBoxLayout()
        cost_layout = QVBoxLayout()
        cost = QLabel("TODO COST")  # TODO
        cost_layout.addWidget(cost)
        layout.addLayout(name_layout)
        layout.addSpacerItem(QSpacerItem(10, 10, QSizePolicy.Expanding, QSizePolicy.Minimum))
        layout.addLayout(self.values_layout)
        layout.addLayout(cost_layout)
        checkbox_layout = QVBoxLayout()
        self.equipped_checkbox = QCheckBox()
        self.equipped_checkbox.setChecked(self.item.equipped_quantity > 0)
        self.equipped_checkbox.stateChanged.connect(lambda x: self.update_parameters("equipped", x))
        checkbox_layout.addWidget(self.equipped_checkbox)
        layout.addLayout(checkbox_layout)
        self.setLayout(layout)
        view = PropertyView(self.item.bonuses)
        self.values_layout.addWidget(view)
        # for bonus in :
        #

        self.add_header_option("Edit", self.edit)
        self.setLayout(layout)
示例#30
0
    def __init__(self,
                 listItem,
                 listView,
                 img=DEFAULT_MSG,
                 lr=True,
                 device_name=DEFAULT_HEAD,
                 ip="127.0.0.1",
                 chat_dialog=None):
        super(ImageItem, self).__init__()
        hbox = QHBoxLayout()
        self.ip = ip
        self.device_name = device_name
        self.chat_dialog = chat_dialog
        img = BubbleImage(listItem, listView, img, lr)
        head = LabelHead(device_name)
        head.setFixedSize(100, 50)

        if lr is not True:
            hbox.addSpacerItem(
                QSpacerItem(1, 1, QSizePolicy.Expanding,
                            QSizePolicy.Preferred))
            hbox.addWidget(img)
            hbox.addWidget(head)
        else:
            hbox.addWidget(head)
            hbox.addWidget(img)
            hbox.addSpacerItem(
                QSpacerItem(1, 1, QSizePolicy.Expanding,
                            QSizePolicy.Preferred))

        hbox.setContentsMargins(0, 0, 0, 0)
        self.setLayout(hbox)
        self.setContentsMargins(0, 0, 0, 0)
示例#31
0
    def create_results_summary(self):
        summary_layout = QHBoxLayout()
        back_button = QPushButton()
        back_button.setFlat(True)
        back_button.setIcon(QIcon(os.path.join(icons_path, "back.png")))
        back_button.setIconSize(QSize(24, 24))
        back_button.setCursor(QCursor(Qt.PointingHandCursor))
        back_button.clicked.connect(lambda: self.return_to_food_db_signal.emit(
            "Return to FoodDatabase"))

        self.results_label = QLabel('Found %s results for "%s"' %
                                    (len(self.search_results), self.search))
        self.results_label.setFont(QFont("Ariel", 15))

        spacer = QSpacerItem(40, 20, QSizePolicy.Expanding)

        search_bar = QLineEdit()
        search_bar.setStyleSheet("background-color:white;")
        search_bar.setPlaceholderText("Search")

        search_button = QPushButton("Search")
        search_button.setStyleSheet("background-color: #440D0F;color:white;")
        search_button.setCursor(QCursor(Qt.PointingHandCursor))
        search_button.clicked.connect(
            lambda: self.search_database(search_bar.text()))

        search_bar.returnPressed.connect(search_button.click)

        summary_layout.addWidget(back_button)
        summary_layout.addWidget(self.results_label)
        summary_layout.addSpacerItem(spacer)
        summary_layout.addWidget(search_bar)
        summary_layout.addWidget(search_button)

        return summary_layout
示例#32
0
class FileSaveLineEdit(QLineEdit):
    """创建一个可选择文件保存路径的输入框。"""
    def __init__(self, parent=None, directory="", filter='', **kwargs):
        super().__init__(**kwargs)
        self.parent = parent
        self.directory = directory
        self.filter = filter

        self.button = QPushButton(self)
        self.button.setMaximumSize(16, 16)
        self.button.setCursor(QCursor(Qt.PointingHandCursor))
        self.button.setStyleSheet(
            "QPushButton{border-image: url(icon/ellipsis.png)}")

        self.setTextMargins(3, 0, 19, 0)

        self.mainLayout = QHBoxLayout()
        # 添加空白区宽150px、高10px,宽度尽可能的缩小、放大
        self.spaceItem = QSpacerItem(150, 10, QSizePolicy.Expanding)
        self.mainLayout.addSpacerItem(self.spaceItem)
        # self.mainLayout.addStretch(1)
        self.mainLayout.addWidget(self.button)
        self.mainLayout.addSpacing(5)
        self.mainLayout.setContentsMargins(0, 0, 0, 0)
        self.setLayout(self.mainLayout)

        self.setContextMenuPolicy(Qt.NoContextMenu)
        self.button.clicked.connect(self.saveFileSelect)

    def saveFileSelect(self):
        fileName = QFileDialog.getSaveFileName(self, '', self.directory,
                                               self.filter)
        if fileName[0]:
            self.setText(fileName[0])
示例#33
0
 def __init__(self, *args, **kwargs):
     super(TitleBar, self).__init__(*args, **kwargs)
     # 支持qss设置背景
     self.setAttribute(Qt.WA_StyledBackground, True)
     self.mPos = None
     self.iconSize = 16  # 图标的默认大小
     # 设置默认背景颜色,否则由于受到父窗口的影响导致透明
     self.setAutoFillBackground(True)
     palette = self.palette()
     palette.setColor(palette.Window, QColor(240, 240, 240))
     self.setPalette(palette)
     # 布局
     layout = QHBoxLayout(self, spacing=0)
     layout.setContentsMargins(5, 0, 5, 0)
     # 窗口图标
     self.iconLabel = QLabel(self)
     #         self.iconLabel.setScaledContents(True)
     layout.addWidget(self.iconLabel)
     # 窗口标题
     self.titleLabel = QLabel(self)
     self.titleLabel.setStyleSheet('''
         QLabel {color: #dadada;}
         ''')
     self.titleLabel.setObjectName('title_text')
     self.titleLabel.setMargin(2)
     layout.addWidget(self.titleLabel)
     # 中间伸缩条
     layout.addSpacerItem(
         QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum))
     # 利用Webdings字体来显示图标
     font = self.font() or QFont()
     font.setFamily('Webdings')
     # 最小化按钮
     self.buttonMinimum = QPushButton('0',
                                      self,
                                      clicked=self.windowMinimumed.emit,
                                      font=font,
                                      objectName='buttonMinimum')
     layout.addWidget(self.buttonMinimum)
     # 最大化/还原按钮
     self.buttonMaximum = QPushButton('1',
                                      self,
                                      clicked=self.showMaximized,
                                      font=font,
                                      objectName='buttonMaximum')
     layout.addWidget(self.buttonMaximum)
     # 关闭按钮
     self.buttonClose = QPushButton('r',
                                    self,
                                    clicked=self.windowClosed.emit,
                                    font=font,
                                    objectName='buttonClose')
     layout.addWidget(self.buttonClose)
     # 初始高度
     self.setHeight()
     # 标题栏按钮没必要获取焦点,以便用键盘操作其它控件。由[email protected]添加
     self.buttonMaximum.setFocusPolicy(Qt.NoFocus)
     self.buttonMinimum.setFocusPolicy(Qt.NoFocus)
     self.buttonClose.setFocusPolicy(Qt.NoFocus)
class OzelListeMaddesi(QWidget):
    def __init__(self, ebeveyn=None):
        super(OzelListeMaddesi, self).__init__(ebeveyn)
        self.ebeveyn = ebeveyn
        kutu = QVBoxLayout()
        self.setLayout(kutu)

        self.mesaj_tipi = QLabel()
        kutu.addWidget(self.mesaj_tipi)

        self.gonderen = QLabel()
        kutu.addWidget(self.gonderen)
        self.gonderen_onay = QLabel()
        kutu.addWidget(self.gonderen_onay)

        self.mesaj = QTextEdit()
        self.mesaj.setReadOnly(True)
        kutu.addWidget(self.mesaj)

        self.alt_kutu = QHBoxLayout()
        kutu.addLayout(self.alt_kutu)
        self.tarih = QLabel()
        self.alt_kutu.addWidget(self.tarih)
        self.alt_kutu.addSpacerItem(
            QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Expanding))
        self.mesaj.setFixedHeight(125)

    def okuyucu(self):
        self.mesaj.setFixedSize(250, 125)
        self.okunma = QCheckBox()
        self.okunma.clicked.connect(self.okunma_degistir)
        self.alt_kutu.addWidget(self.okunma)

    def mesaj_id_ekle(self, mesaj_id):
        self.mesaj_id = mesaj_id

    def mesaj_tipi_ekle(self, mesaj_tipi):
        self.mesaj_tipi.setText("<b>Mesaj Tipi : </b>" + mesaj_tipi)

    def mesaj_ekle(self, mesaj):
        self.mesaj.setText(str(mesaj))

    def tarih_ekle(self, tarih):
        self.tarih.setText("<b>" + tarih + "</b>")

    def okunma_degistir(self, okunma):
        if okunma == "okunmadi":
            self.okunma.setText("okunmadı")
        elif okunma == "okundu" or self.okunma.isChecked() == True:
            self.okunma.setText("okundu")
            self.okunma.setChecked(True)
            self.okunma.setDisabled(True)
            self.ebeveyn.okunmus_mesajlar.append(self.mesaj_id)

    def gonderen_ekle(self, gonderen):
        self.gonderen.setText("<b>Gönderen : </b>" + gonderen)

    def gonderen_onay_ekle(self, gonderen_onay):
        self.gonderen_onay.setText("<b>Onay : </b>" + gonderen_onay)
示例#35
0
    def __init__(self, parent=None):
        super(_s_MiscContainer, self).__init__(parent)
        vbox = QVBoxLayout(self)
        vbox.setContentsMargins(0, 0, 0, 0)
        vbox.setSpacing(0)

        self.__toolbar = QToolBar()
        self.__toolbar.setObjectName('custom')
        hbox = QHBoxLayout()
        vbox.addLayout(hbox)

        self.stack = StackedWidget()
        vbox.addWidget(self.stack)

        self._console = console_widget.ConsoleWidget()
        self.stack.addWidget(self._console)

        self._runWidget = run_widget.RunWidget()
        self.stack.addWidget(self._runWidget)

        self._web = web_render.WebRender()
        self.stack.addWidget(self._web)

        self._findInFilesWidget = find_in_files.FindInFilesWidget(
            self.parent())
        self.stack.addWidget(self._findInFilesWidget)

        #Last Element in the Stacked widget
        self._results = results.Results(self)
        self.stack.addWidget(self._results)

        self._btnConsole = QPushButton(QIcon(resources.IMAGES['console']), '')
        self._btnConsole.setToolTip(_translate("_s_MiscContainer", "Console"))
        self._btnRun = QPushButton(QIcon(resources.IMAGES['play']), '')
        self._btnRun.setToolTip(_translate("_s_MiscContainer", "Output"))
        self._btnWeb = QPushButton(QIcon(resources.IMAGES['web']), '')
        self._btnWeb.setToolTip(_translate("_s_MiscContainer", "Web Preview"))
        self._btnFind = QPushButton(QIcon(resources.IMAGES['find']), '')
        self._btnFind.setToolTip(_translate("_s_MiscContainer", "Find in Files"))
        #Toolbar
        hbox.addWidget(self.__toolbar)
        self.__toolbar.addWidget(self._btnConsole)
        self.__toolbar.addWidget(self._btnRun)
        self.__toolbar.addWidget(self._btnWeb)
        self.__toolbar.addWidget(self._btnFind)
        self.__toolbar.addSeparator()
        hbox.addSpacerItem(QSpacerItem(1, 0, QSizePolicy.Expanding))
        btn_close = QPushButton(
            self.style().standardIcon(QStyle.SP_DialogCloseButton), '')
        btn_close.setObjectName('navigation_button')
        btn_close.setToolTip(_translate("_s_MiscContainer", 'F4: Show/Hide'))
        hbox.addWidget(btn_close)

        self._btnConsole.clicked['bool'].connect(lambda: self._item_changed(0))
        self._btnRun.clicked['bool'].connect(lambda: self._item_changed(1))
        self._btnWeb.clicked['bool'].connect(lambda: self._item_changed(2))
        self._btnFind.clicked['bool'].connect(lambda: self._item_changed(3))
        btn_close.clicked['bool'].connect(self.hide)
示例#36
0
文件: logWidget.py 项目: sinhnn/ssh
 def initOpts(self):
     layout = QHBoxLayout()
     self.errors = QCheckBox("Error", self.widget)
     self.errors.stateChanged.connect(self.refreshLog)
     layout.addWidget(self.errors)
     layout.addSpacerItem(
         QSpacerItem(10, 0, QtWidgets.QSizePolicy.Expanding,
                     QtWidgets.QSizePolicy.Expanding))
     self.layout.addLayout(layout)
     return layout
示例#37
0
    def __init__(self, parent=None):
        QDialog.__init__(self, parent, Qt.Dialog | Qt.FramelessWindowHint)
        self.setWindowTitle(self.tr("About NINJA-IDE"))
        self.setMaximumSize(QSize(0, 0))

        vbox = QVBoxLayout(self)

        # Create an icon for the Dialog
        pixmap = QPixmap(":img/icon")
        self.lblIcon = QLabel()
        self.lblIcon.setPixmap(pixmap)

        hbox = QHBoxLayout()
        hbox.addWidget(self.lblIcon)

        lblTitle = QLabel(
                '<h1>NINJA-IDE</h1>\n<i>Ninja-IDE Is Not Just Another IDE<i>')
        lblTitle.setTextFormat(Qt.RichText)
        lblTitle.setAlignment(Qt.AlignLeft)
        hbox.addWidget(lblTitle)
        vbox.addLayout(hbox)
        # Add description
        vbox.addWidget(QLabel(
self.tr("""NINJA-IDE (from: "Ninja Is Not Just Another IDE"), is a
cross-platform integrated development environment specifically
designed to build Python Applications.

NINJA-IDE provides the tools necessary to simplify the
Python software development process and handles all kinds of
situations thanks to its rich extensibility.""")))
        vbox.addWidget(QLabel(self.tr("Version: %s") % ninja_ide.__version__))
        link_ninja = QLabel(
            self.tr('Website: <a href="%s"><span style=" '
                'text-decoration: underline; color:#ff9e21;">'
                '%s</span></a>') %
                (ninja_ide.__url__, ninja_ide.__url__))
        vbox.addWidget(link_ninja)
        link_source = QLabel(
            self.tr('Source Code: <a href="%s"><span style=" '
            'text-decoration: underline; color:#ff9e21;">%s</span></a>') %
                (ninja_ide.__source__, ninja_ide.__source__))
        vbox.addWidget(link_source)

        hbox2 = QHBoxLayout()
        hbox2.addSpacerItem(QSpacerItem(1, 0, QSizePolicy.Expanding))
        btn_close = QPushButton(translations.TR_CLOSE)
        hbox2.addWidget(btn_close)
        vbox.addLayout(hbox2)

        # FIXME: setOpenExternalLinks on labels
        link_ninja.linkActivated['QString'].connect(self.link_activated)
        link_source.linkActivated['QString'].connect(self.link_activated)
        btn_close.clicked.connect(self.close)
示例#38
0
class HtmlDialog(QDialog):
    """Generate a more complex HTML Viewer dialog window, with Prin/Close Buttons"""

    def __init__(self, parent = None):
        """
        Constructor of HtmlDialog

        :param parent: dialog parent
        :return:
        """
        super().__init__(parent, QtCore.Qt.WindowTitleHint | QtCore.Qt.WindowMinMaxButtonsHint | QtCore.Qt.WindowCloseButtonHint)

        self.horzLayout = QHBoxLayout()
        self.vertLayout = QVBoxLayout()
        self.spacer = QSpacerItem(1, 1, QSizePolicy.Expanding, QSizePolicy.Fixed)

        # print button
        self.btnPrint = QPushButton(self)
        self.btnPrint.setText(translate("ReportDialog", "Print"))
        self.btnPrint.setMaximumWidth(100)
        self.btnClose = QPushButton(self)
        self.btnClose.setText(translate("ReportDialog", "Close"))
        self.btnClose.setMaximumWidth(100)

        # webview for help information
        self.wv = HtmlView(self)

        # build structure
        self.horzLayout.addWidget(self.btnPrint)
        self.horzLayout.addWidget(self.btnClose)
        self.horzLayout.addSpacerItem(self.spacer)
        self.vertLayout.insertLayout(0, self.horzLayout)
        self.vertLayout.addWidget(self.wv)

        self.setLayout(self.vertLayout)

        self.btnPrint.clicked.connect(self.wv.execpreview)
        self.btnClose.clicked.connect(self.close)

    def showHtml(self, html):
        """
        Show rendered value of ``html``

        :param html: raw html data
        """
        print(html)
        self.wv.setHtml_(html)
        self.show()
示例#39
0
    def setup_ui(self):
        """Load all the components of the ui during the install process."""
        vbox = QVBoxLayout(self)
        vbox.setContentsMargins(0, 0, 0, 0)
        vbox.setSpacing(0)

        self.__toolbar = QToolBar()
        self.__toolbar.setObjectName('custom')
        hbox = QHBoxLayout()
        vbox.addLayout(hbox)

        self.stack = StackedWidget()
        vbox.addWidget(self.stack)

        self._console = console_widget.ConsoleWidget()
        self._runWidget = run_widget.RunWidget()
        self._web = web_render.WebRender()
        self._findInFilesWidget = find_in_files.FindInFilesWidget(
            self.parent())

        # Not Configurable Shortcuts
        shortEscMisc = QShortcut(QKeySequence(Qt.Key_Escape), self)

        shortEscMisc.activated.connect(self.hide)

        #Toolbar
        hbox.addWidget(self.__toolbar)
        self.add_to_stack(self._console, ":img/console",
                          translations.TR_CONSOLE)
        self.add_to_stack(self._runWidget, ":img/play",
                          translations.TR_OUTPUT)
        self.add_to_stack(self._web, ":img/web",
                          translations.TR_WEB_PREVIEW)
        self.add_to_stack(self._findInFilesWidget, ":img/find",
                          translations.TR_FIND_IN_FILES)
        #Last Element in the Stacked widget
        self._results = results.Results(self)
        self.stack.addWidget(self._results)
        self.__toolbar.addSeparator()

        hbox.addSpacerItem(QSpacerItem(1, 0, QSizePolicy.Expanding))
        btn_close = QPushButton(
            self.style().standardIcon(QStyle.SP_DialogCloseButton), '')
        btn_close.setIconSize(QSize(24, 24))
        btn_close.setObjectName('navigation_button')
        btn_close.setToolTip('F4: ' + translations.TR_ALL_VISIBILITY)
        hbox.addWidget(btn_close)
        btn_close.clicked['bool'].connect(self.hide)
示例#40
0
    def __init__(self, project, name, actions):
        super(TabGroup, self).__init__()
        vbox = QVBoxLayout(self)
        self.actions = actions
        self.project = project
        self.ID = self.project
        self.name = name
        self.tabs = []
        self.listWidget = QListWidget()
        hbox = QHBoxLayout()
        btnExpand = QPushButton(_translate("TabGroup", "Expand this Files"))
        btnExpandAll = QPushButton(_translate("TabGroup", "Expand all Groups"))
        hbox.addWidget(btnExpandAll)
        hbox.addSpacerItem(QSpacerItem(20, 20, QSizePolicy.Expanding))
        hbox.addWidget(btnExpand)
        vbox.addLayout(hbox)
        vbox.addWidget(self.listWidget)

        btnExpand.clicked['bool'].connect(self.expand_this)
        btnExpandAll.clicked['bool'].connect(self.actions.deactivate_tabs_groups)
    def __init__(self, parent=None):
        super(NewProjectManager, self).__init__(parent, Qt.Dialog)
        self.setWindowTitle(translations.TR_NEW_PROJECT)
        self.setMinimumHeight(500)
        vbox = QVBoxLayout(self)
        vbox.addWidget(QLabel(translations.TR_CHOOSE_TEMPLATE))
        vbox.addWidget(QLabel(translations.TR_TAB_PROJECTS))

        hbox = QHBoxLayout()
        self.list_projects = QListWidget()
        self.list_projects.setProperty("wizard", True)
        hbox.addWidget(self.list_projects)

        self.list_templates = QListWidget()
        self.list_templates.setProperty("wizard", True)
        hbox.addWidget(self.list_templates)

        self.text_info = QTextBrowser()
        self.text_info.setProperty("wizard", True)
        hbox.addWidget(self.text_info)

        vbox.addLayout(hbox)

        hbox2 = QHBoxLayout()
        cancel = QPushButton(translations.TR_CANCEL)
        choose = QPushButton(translations.TR_CHOOSE)
        hbox2.addSpacerItem(QSpacerItem(1, 0, QSizePolicy.Expanding,
                            QSizePolicy.Fixed))
        hbox2.addWidget(cancel)
        hbox2.addWidget(choose)
        vbox.addLayout(hbox2)

        self.template_registry = IDE.get_service("template_registry")
        categories = self.template_registry.list_project_categories()
        for category in categories:
            self.list_projects.addItem(category)

        cancel.clicked['bool'].connect(self.close)
        choose.clicked['bool'].connect(self._start_wizard)
        self.list_projects.itemSelectionChanged.connect(self._project_selected)
        self.list_templates.itemSelectionChanged.connect(self._template_selected)
    def __init__(self, parent):
        super(ThemeEditor, self).__init__(parent, Qt.Dialog)
        vbox = QVBoxLayout(self)

        hbox = QHBoxLayout()
        self.line_name = QLineEdit()
        self.btn_save = QPushButton(translations.TR_SAVE)
        self.line_name.setPlaceholderText(getuser().capitalize() + "s_theme")
        hbox.addWidget(self.line_name)
        hbox.addWidget(self.btn_save)

        self.edit_qss = QPlainTextEdit()
        css = 'QPlainTextEdit {color: %s; background-color: %s;' \
            'selection-color: %s; selection-background-color: %s;}' \
            % (resources.CUSTOM_SCHEME.get(
                'editor-text', resources.COLOR_SCHEME['Default']),
                resources.CUSTOM_SCHEME.get(
                    'EditorBackground',
                    resources.COLOR_SCHEME['EditorBackground']),
                resources.CUSTOM_SCHEME.get(
                    'EditorSelectionColor',
                    resources.COLOR_SCHEME['EditorSelectionColor']),
                resources.CUSTOM_SCHEME.get(
                    'EditorSelectionBackground',
                    resources.COLOR_SCHEME['EditorSelectionBackground']))
        self.edit_qss.setStyleSheet(css)

        self.btn_apply = QPushButton(self.tr("Apply Style Sheet"))
        hbox2 = QHBoxLayout()
        hbox2.addSpacerItem(QSpacerItem(10, 0, QSizePolicy.Expanding,
                            QSizePolicy.Fixed))
        hbox2.addWidget(self.btn_apply)
        hbox2.addSpacerItem(QSpacerItem(10, 0, QSizePolicy.Expanding,
                            QSizePolicy.Fixed))

        vbox.addWidget(self.edit_qss)
        vbox.addLayout(hbox)
        vbox.addLayout(hbox2)

        self.btn_apply.clicked['bool'].connect(self.apply_stylesheet)
        self.btn_save.clicked['bool'].connect(self.save_stylesheet)
    def __init__(self, parent):
        super(PluginsManagerWidget, self).__init__(parent, Qt.Dialog)
        self.setWindowTitle(translations.TR_PLUGIN_MANAGER)
        self.resize(700, 600)

        vbox = QVBoxLayout(self)
        self._tabs = QTabWidget()
        vbox.addWidget(self._tabs)
        self._txt_data = QTextBrowser()
        self._txt_data.setOpenLinks(False)
        vbox.addWidget(QLabel(translations.TR_PROJECT_DESCRIPTION))
        vbox.addWidget(self._txt_data)
        # Footer
        hbox = QHBoxLayout()
        btn_close = QPushButton(translations.TR_CLOSE)
        btnReload = QPushButton(translations.TR_RELOAD)
        hbox.addWidget(btn_close)
        hbox.addSpacerItem(QSpacerItem(1, 0, QSizePolicy.Expanding))
        hbox.addWidget(btnReload)
        vbox.addLayout(hbox)
        self.overlay = ui_tools.Overlay(self)
        self.overlay.hide()

        self._oficial_available = []
        self._community_available = []
        self._locals = []
        self._updates = []
        self._loading = True
        self._requirements = {}

        btnReload.clicked['bool'].connect(self._reload_plugins)
        self.thread = ThreadLoadPlugins(self)
        self.thread.finished.connect(self._load_plugins_data)
        self.thread.plugin_downloaded.connect(self._after_download_plugin)
        self.thread.plugin_manually_installed.connect(self._after_manual_install_plugin)
        self.thread.plugin_uninstalled.connect(self._after_uninstall_plugin)
        self._txt_data.anchorClicked['const QUrl&'].connect(self._open_link)
        btn_close.clicked['bool'].connect(self.close)
        self.overlay.show()
        self._reload_plugins()
示例#44
0
    def __init__(self):
        super(MigrationWidget, self).__init__()
        self._migration = {}
        vbox = QVBoxLayout(self)
        lbl_title = QLabel(_translate("MigrationWidget", "Current code:"))
        self.current_list = QListWidget()
        lbl_suggestion = QLabel(_translate("MigrationWidget", "Suggested changes:"))
        self.suggestion = QPlainTextEdit()
        self.suggestion.setReadOnly(True)

        self.btn_apply = QPushButton(_translate("MigrationWidget", "Apply change!"))
        hbox = QHBoxLayout()
        hbox.addSpacerItem(QSpacerItem(1, 0, QSizePolicy.Expanding))
        hbox.addWidget(self.btn_apply)

        vbox.addWidget(lbl_title)
        vbox.addWidget(self.current_list)
        vbox.addWidget(lbl_suggestion)
        vbox.addWidget(self.suggestion)
        vbox.addLayout(hbox)

        self.current_list.itemClicked['QListWidgetItem*'].connect(self.load_suggestion)
        self.btn_apply.clicked['bool'].connect(self.apply_changes)
    def __init__(self, parent):
        super(ManualInstallWidget, self).__init__()
        self._parent = parent
        vbox = QVBoxLayout(self)
        form = QFormLayout()
        self._txtName = QLineEdit()
        self._txtName.setPlaceholderText('my_plugin')
        self._txtVersion = QLineEdit()
        self._txtVersion.setPlaceholderText('0.1')
        form.addRow(translations.TR_PROJECT_NAME, self._txtName)
        form.addRow(translations.TR_VERSION, self._txtVersion)
        vbox.addLayout(form)
        hPath = QHBoxLayout()
        self._txtFilePath = QLineEdit()
        self._txtFilePath.setPlaceholderText(os.path.join(
            os.path.expanduser('~'), 'full', 'path', 'to', 'plugin.zip'))
        self._btnFilePath = QPushButton(QIcon(":img/open"), '')
        self.completer, self.dirs = QCompleter(self), QDirModel(self)
        self.dirs.setFilter(QDir.AllEntries | QDir.NoDotAndDotDot)
        self.completer.setModel(self.dirs)
        self._txtFilePath.setCompleter(self.completer)
        hPath.addWidget(QLabel(translations.TR_FILENAME))
        hPath.addWidget(self._txtFilePath)
        hPath.addWidget(self._btnFilePath)
        vbox.addLayout(hPath)
        vbox.addSpacerItem(QSpacerItem(0, 1, QSizePolicy.Expanding,
            QSizePolicy.Expanding))

        hbox = QHBoxLayout()
        hbox.addSpacerItem(QSpacerItem(1, 0, QSizePolicy.Expanding))
        self._btnInstall = QPushButton(translations.TR_INSTALL)
        hbox.addWidget(self._btnInstall)
        vbox.addLayout(hbox)

        #Signals
        self._btnFilePath.clicked['bool'].connect(self._load_plugin_path)
        self._btnInstall.clicked['bool'].connect(self.install_plugin)
示例#46
0
    def __init__(self, parent=None):
        super(Preferences, self).__init__(parent, Qt.Dialog)
        self.setWindowTitle(translations.TR_PREFERENCES_TITLE)
        self.setMinimumSize(QSize(900, 600))
        vbox = QVBoxLayout(self)
        hbox = QHBoxLayout()
        vbox.setContentsMargins(0, 0, 5, 5)
        hbox.setContentsMargins(0, 0, 0, 0)
#
        self.tree = QTreeWidget()
        self.tree.header().setHidden(True)
        self.tree.setSelectionMode(QTreeWidget.SingleSelection)
        self.tree.setAnimated(True)
        self.tree.header().setHorizontalScrollMode(
            QAbstractItemView.ScrollPerPixel)
        self.tree.header().setSectionResizeMode(0, QHeaderView.ResizeToContents)
        self.tree.header().setStretchLastSection(False)
        self.tree.setFixedWidth(200)
        self.stacked = QStackedLayout()
        hbox.addWidget(self.tree)
        hbox.addLayout(self.stacked)
        vbox.addLayout(hbox)
#
        hbox_footer = QHBoxLayout()
        self._btnSave = QPushButton(translations.TR_SAVE)
        self._btnCancel = QPushButton(translations.TR_CANCEL)
        hbox_footer.addSpacerItem(QSpacerItem(1, 0, QSizePolicy.Expanding))
        hbox_footer.addWidget(self._btnCancel)
        hbox_footer.addWidget(self._btnSave)
        vbox.addLayout(hbox_footer)
#
        self.tree.itemSelectionChanged.connect(self._change_current)
        self._btnCancel.clicked['bool'].connect(self.close)
        self._btnSave.clicked['bool'].connect(self._save_preferences)
#
        self.load_ui()
        self.tree.setCurrentItem(self.tree.topLevelItem(0))
示例#47
0
    def __init__(self):
        super(ErrorsWidget, self).__init__()
        self.pep8 = None
        self._outRefresh = True

        vbox = QVBoxLayout(self)
        self.listErrors = QListWidget()
        self.listErrors.setSortingEnabled(True)
        self.listPep8 = QListWidget()
        self.listPep8.setSortingEnabled(True)
        hbox_lint = QHBoxLayout()
        if settings.FIND_ERRORS:
            self.btn_lint_activate = QPushButton(_translate("ErrorsWidget", "Lint: ON"))
        else:
            self.btn_lint_activate = QPushButton(_translate("ErrorsWidget", "Lint: OFF"))
        self.errorsLabel = QLabel(_translate("ErrorsWidget", "Static Errors: %s") % 0)
        hbox_lint.addWidget(self.errorsLabel)
        hbox_lint.addSpacerItem(QSpacerItem(1, 0, QSizePolicy.Expanding))
        hbox_lint.addWidget(self.btn_lint_activate)
        vbox.addLayout(hbox_lint)
        vbox.addWidget(self.listErrors)
        hbox_pep8 = QHBoxLayout()
        if settings.CHECK_STYLE:
            self.btn_pep8_activate = QPushButton(_translate("ErrorsWidget", "PEP8: ON"))
        else:
            self.btn_pep8_activate = QPushButton(_translate("ErrorsWidget", "PEP8: OFF"))
        self.pep8Label = QLabel(_translate("ErrorsWidget", "PEP8 Errors: %s") % 0)
        hbox_pep8.addWidget(self.pep8Label)
        hbox_pep8.addSpacerItem(QSpacerItem(1, 0, QSizePolicy.Expanding))
        hbox_pep8.addWidget(self.btn_pep8_activate)
        vbox.addLayout(hbox_pep8)
        vbox.addWidget(self.listPep8)

        self.listErrors.itemSelectionChanged.connect(self.errors_selected)
        self.listPep8.itemSelectionChanged.connect(self.pep8_selected)
        self.btn_lint_activate.clicked['bool'].connect(self.errors_selected)
        self.btn_pep8_activate.clicked['bool'].connect(self._turn_on_off_pep8)
    def __init__(self, parent):
        super(Theme, self).__init__()
        self._preferences, vbox = parent, QVBoxLayout(self)
        vbox.addWidget(QLabel(self.tr("<b>Select Theme:</b>")))
        self.list_skins = QListWidget()
        self.list_skins.setSelectionMode(QListWidget.SingleSelection)
        vbox.addWidget(self.list_skins)
        self.btn_delete = QPushButton(self.tr("Delete Theme"))
        self.btn_preview = QPushButton(self.tr("Preview Theme"))
        self.btn_create = QPushButton(self.tr("Create Theme"))
        hbox = QHBoxLayout()
        hbox.addWidget(self.btn_delete)
        hbox.addSpacerItem(QSpacerItem(10, 0, QSizePolicy.Expanding,
                           QSizePolicy.Fixed))
        hbox.addWidget(self.btn_preview)
        hbox.addWidget(self.btn_create)
        vbox.addLayout(hbox)
        self._refresh_list()

        self.btn_preview.clicked['bool'].connect(self.preview_theme)
        self.btn_delete.clicked['bool'].connect(self.delete_theme)
        self.btn_create.clicked['bool'].connect(self.create_theme)

        self._preferences.savePreferences.connect(self.save)
示例#49
0
    def __init__(self, parent=None):
        QDialog.__init__(self, parent)
        self.setWindowTitle(self.tr("Acerca de Pireal"))
        vbox = QVBoxLayout(self)
        # Banner
        banner = QLabel()
        banner.setPixmap(QPixmap(":img/icon"))
        banner.setAlignment(Qt.AlignHCenter)
        vbox.addWidget(banner)

        # Version
        lbl_version = QLabel("{0}".format(gui.__version__))
        lbl_version.setAlignment(Qt.AlignHCenter)
        font = lbl_version.font()
        font.setPointSize(10)
        lbl_version.setFont(font)
        vbox.addWidget(lbl_version)

        # Description
        description = QLabel(
            self.tr("Relational Algebra query evaluator"))
        description.setAlignment(Qt.AlignHCenter)
        font = description.font()
        font.setPointSize(13)
        description.setFont(font)
        vbox.addWidget(description)

        # Web
        web_lbl = QLabel("<a href='{0}'><span style='color: #3465a4'>"
                         "www.centaurialpha.github.io/pireal</span></a>")
        web_lbl.setOpenExternalLinks(True)
        web_lbl.setAlignment(Qt.AlignHCenter)
        vbox.addWidget(web_lbl)

        # Copyright
        copy = QLabel("<br>Copyright © 2015-{year} - "
                      "Gabriel 'gabo' Acosta".format(
                          year=datetime.today().year))
        copy.setAlignment(Qt.AlignHCenter)
        font = copy.font()
        font.setPointSize(9)
        copy.setFont(font)
        vbox.addWidget(copy)

        # License and source
        lbl_license_source = QLabel(self.tr("<br>Este software tiene licencia "
                                            "<a href='{0}'><span style"
                                            "='color: #3465a4'>GNU GPL</span>"
                                            "</a> versión 3,<br>el código "
                                            "fuente "
                                            "está disponible en <a href='{1}'>"
                                            "<span style='color: #3465a4'>"
                                            "GitHub.</span></a>".format(
                                                gui.__license__,
                                                gui.__source_code__)))
        lbl_license_source.setAlignment(Qt.AlignHCenter)
        lbl_license_source.setOpenExternalLinks(True)
        font = lbl_license_source.font()
        font.setPointSize(13)
        lbl_license_source.setFont(font)
        vbox.addWidget(lbl_license_source)

        # Buttons
        hbox = QHBoxLayout()
        hbox.addSpacerItem(QSpacerItem(0, 0, QSizePolicy.Expanding))
        btn_ok = QPushButton(self.tr("Aceptar"))
        hbox.addWidget(btn_ok)
        vbox.addLayout(hbox)

        btn_ok.clicked.connect(self.close)
    def __init__(self, parent):
        super(EditorGeneral, self).__init__()
        self._preferences, vbox = parent, QVBoxLayout(self)
        self.original_style = copy.copy(resources.CUSTOM_SCHEME)
        self.current_scheme, self._modified_editors = 'default', []
        self._font = settings.FONT

        groupBoxMini = QGroupBox(
            translations.TR_PREFERENCES_EDITOR_GENERAL_MINIMAP)
        groupBoxTypo = QGroupBox(
            translations.TR_PREFERENCES_EDITOR_GENERAL_TYPOGRAPHY)
        groupBoxScheme = QGroupBox(
            translations.TR_PREFERENCES_EDITOR_GENERAL_SCHEME)

        #Minimap
        formMini = QGridLayout(groupBoxMini)
        formMini.setContentsMargins(5, 15, 5, 5)
        self._checkShowMinimap = QCheckBox(
            translations.TR_PREFERENCES_EDITOR_GENERAL_ENABLE_MINIMAP)
        self._spinMaxOpacity = QSpinBox()
        self._spinMaxOpacity.setRange(0, 100)
        self._spinMaxOpacity.setSuffix("% Max.")
        self._spinMinOpacity = QSpinBox()
        self._spinMinOpacity.setRange(0, 100)
        self._spinMinOpacity.setSuffix("% Min.")
        self._spinSize = QSpinBox()
        self._spinSize.setMaximum(100)
        self._spinSize.setMinimum(0)
        self._spinSize.setSuffix(
            translations.TR_PREFERENCES_EDITOR_GENERAL_AREA_MINIMAP)
        formMini.addWidget(self._checkShowMinimap, 0, 1)
        formMini.addWidget(QLabel(
            translations.TR_PREFERENCES_EDITOR_GENERAL_SIZE_MINIMAP), 1, 0,
            Qt.AlignRight)
        formMini.addWidget(self._spinSize, 1, 1)
        formMini.addWidget(QLabel(
            translations.TR_PREFERENCES_EDITOR_GENERAL_OPACITY), 2, 0,
            Qt.AlignRight)
        formMini.addWidget(self._spinMinOpacity, 2, 1)
        formMini.addWidget(self._spinMaxOpacity, 2, 2)
        #Typo
        gridTypo = QGridLayout(groupBoxTypo)
        gridTypo.setContentsMargins(5, 15, 5, 5)
        self._btnEditorFont = QPushButton('')
        gridTypo.addWidget(QLabel(
            translations.TR_PREFERENCES_EDITOR_GENERAL_EDITOR_FONT), 0, 0,
            Qt.AlignRight)
        gridTypo.addWidget(self._btnEditorFont, 0, 1)
        #Scheme
        vboxScheme = QVBoxLayout(groupBoxScheme)
        vboxScheme.setContentsMargins(5, 15, 5, 5)
        self._listScheme = QListWidget()
        vboxScheme.addWidget(self._listScheme)
        hbox = QHBoxLayout()
        btnDownload = QPushButton(
            translations.TR_PREFERENCES_EDITOR_DOWNLOAD_SCHEME)
        btnDownload.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        btnDownload.clicked['bool'].connect(self._open_schemes_manager)
        hbox.addWidget(btnDownload)
        btnAdd = QPushButton(QIcon(":img/add"),
                             translations.TR_EDITOR_CREATE_SCHEME)
        btnAdd.setIconSize(QSize(16, 16))
        btnAdd.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        btnAdd.clicked['bool'].connect(self._open_schemes_designer)
        btnRemove = QPushButton(QIcon(":img/delete"),
                                translations.TR_EDITOR_REMOVE_SCHEME)
        btnRemove.setIconSize(QSize(16, 16))
        btnRemove.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        btnRemove.clicked['bool'].connect(self._remove_scheme)
        hbox.addSpacerItem(QSpacerItem(1, 0, QSizePolicy.Expanding))
        hbox.addWidget(btnAdd)
        hbox.addWidget(btnRemove)
        vboxScheme.addLayout(hbox)

        vbox.addWidget(groupBoxMini)
        vbox.addWidget(groupBoxTypo)
        vbox.addWidget(groupBoxScheme)

        #Settings
        qsettings = IDE.ninja_settings()
        qsettings.beginGroup('preferences')
        qsettings.beginGroup('editor')
        self._checkShowMinimap.setChecked(settings.SHOW_MINIMAP)
        if settings.IS_MAC_OS:
            self._spinMinOpacity.setValue(100)
            self._spinMaxOpacity.setValue(100)
            self._spinMinOpacity.setDisabled(True)
            self._spinMaxOpacity.setDisabled(True)
        else:
            self._spinMinOpacity.setValue(settings.MINIMAP_MIN_OPACITY * 100)
            self._spinMaxOpacity.setValue(settings.MINIMAP_MAX_OPACITY * 100)
        self._spinSize.setValue(settings.SIZE_PROPORTION * 100)
        btnText = ', '.join(self._font.toString().split(',')[0:2])
        self._btnEditorFont.setText(btnText)
        self._listScheme.clear()
        self._listScheme.addItem('default')
        self._schemes = json_manager.load_editor_skins()
        for item in self._schemes:
            self._listScheme.addItem(item)
        items = self._listScheme.findItems(
            qsettings.value('scheme', defaultValue='',
                            type='QString'), Qt.MatchExactly)
        if items:
            self._listScheme.setCurrentItem(items[0])
        else:
            self._listScheme.setCurrentRow(0)
        qsettings.endGroup()
        qsettings.endGroup()

        #Signals
        self._btnEditorFont.clicked['bool'].connect(self._load_editor_font)
        self._listScheme.itemSelectionChanged.connect(self._preview_style)
        self._preferences.savePreferences.connect(self.save)
示例#51
0
    def __init__(self, start_server=False):
        super(IDE, self).__init__()
        self.setWindowTitle('NINJA-IDE {Ninja-IDE Is Not Just Another IDE}')
        self.setMinimumSize(750, 500)
        QToolTip.setFont(QFont(settings.FONT.family(), 10))
        #Load the size and the position of the main window
        self.load_window_geometry()
        self.__project_to_open = 0

        IDE.__instance = self

        wid = QWidget()#adjustSize
        wid.setContentsMargins(0, 0, 0, 0)
        box = QHBoxLayout(wid)
        box.setContentsMargins(0, 0, 0, 0)
        # l1 = QLabel("Info Here")
        # l1.setObjectName("Info")
        # l1.setStyleSheet("background-color: rgb(88, 255, 85);")
        # box.addWidget(l1)
        space = QSpacerItem(10,10, QSizePolicy.Expanding)#, QSizePolicy.Maximum)
        box.addSpacerItem(space)
        l2 = QLabel("Tab Size: "+str(settings.INDENT))#int(qsettings.value('preferences/editor/indent', 4, type=int))))
        l2.setObjectName("Det1")

        font = l2.font()
        font.setPointSize(8)
        l2.setFont(font)
        box.addWidget(l2)

        box.addSpacing(50)

        l3 = QLabel("Python")
        l3.setObjectName("Det2")
        font.setPointSize(9)
        l3.setFont(font)
        box.addWidget(l3)

        box.addSpacing(30)

        status = self.statusBar()
        status.setMaximumHeight(20)
        status.addPermanentWidget(wid)
        # wid.show()
        # self.__wid = wid
        status.reformat()
        status.showMessage("Info Here")
        status.setStyleSheet("background-color: rgb(85, 85, 85);")

        #Editables
        self.__neditables = {}
        #Filesystem
        self.filesystem = nfilesystem.NVirtualFileSystem()

        #Sessions handler
        self._session = None
        #Opacity
        self.opacity = settings.MAX_OPACITY

        #ToolBar
        self.toolbar = QToolBar(self)
        if settings.IS_MAC_OS:
            self.toolbar.setIconSize(QSize(36, 36))
        else:
            self.toolbar.setIconSize(QSize(24, 24))
        self.toolbar.setToolTip(translations.TR_IDE_TOOLBAR_TOOLTIP)
        self.toolbar.setToolButtonStyle(Qt.ToolButtonIconOnly)
        # Set toggleViewAction text and tooltip
        self.toggleView = self.toolbar.toggleViewAction()
        self.toggleView.setText(translations.TR_TOOLBAR_VISIBILITY)
        self.toggleView.setToolTip(translations.TR_TOOLBAR_VISIBILITY)
        self.addToolBar(settings.TOOLBAR_AREA, self.toolbar)
        if settings.HIDE_TOOLBAR:
            self.toolbar.hide()
        #Notificator
        self.notification = notification.Notification(self)

        self.statusBar().messageChanged[str].connect(self.MessageStatusChanged.emit)

        #Plugin Manager
        # CHECK ACTIVATE PLUGINS SETTING
        #services = {
            #'editor': plugin_services.MainService(),
            #'toolbar': plugin_services.ToolbarService(self.toolbar),
            ##'menuApp': plugin_services.MenuAppService(self.pluginsMenu),
            #'menuApp': plugin_services.MenuAppService(None),
            #'explorer': plugin_services.ExplorerService(),
            #'misc': plugin_services.MiscContainerService(self.misc)}
        #serviceLocator = plugin_manager.ServiceLocator(services)
        serviceLocator = plugin_manager.ServiceLocator(None)
        self.plugin_manager = plugin_manager.PluginManager(resources.PLUGINS,
                                                           serviceLocator)
        self.plugin_manager.discover()
        #load all plugins!
        self.plugin_manager.load_all()

        #Tray Icon
        self.trayIcon = updates.TrayIconUpdates(self)
        self.trayIcon.closeTrayIcon.connect(self._close_tray_icon)
        self.trayIcon.show()

        key = Qt.Key_1
        for i in range(10):
            if settings.IS_MAC_OS:
                short = ui_tools.TabShortcuts(
                    QKeySequence(Qt.CTRL + Qt.ALT + key), self, i)
            else:
                short = ui_tools.TabShortcuts(
                    QKeySequence(Qt.ALT + key), self, i)
            key += 1
            short.activated.connect(self._change_tab_index)
        short = ui_tools.TabShortcuts(QKeySequence(Qt.ALT + Qt.Key_0), self, 10)
        short.activated.connect(self._change_tab_index)

        # Register menu categories
        IDE.register_bar_category(translations.TR_MENU_FILE, 100)
        IDE.register_bar_category(translations.TR_MENU_EDIT, 110)
        IDE.register_bar_category(translations.TR_MENU_VIEW, 120)
        IDE.register_bar_category(translations.TR_MENU_SOURCE, 130)
        IDE.register_bar_category(translations.TR_MENU_PROJECT, 140)
        IDE.register_bar_category(translations.TR_MENU_EXTENSIONS, 150)
        IDE.register_bar_category(translations.TR_MENU_ABOUT, 160)
        # Register General Menu Items
        ui_tools.install_shortcuts(self, actions.ACTIONS_GENERAL, self)

        self.register_service('ide', self)
        self.register_service('toolbar', self.toolbar)
        self.register_service('filesystem', self.filesystem)
        #Register signals connections
        connections = (
            {'target': 'main_container',
             'signal_name': 'fileSaved',#(QString)
             'slot': self.show_message},
            {'target': 'main_container',
             'signal_name': 'currentEditorChanged',#(QString)
             'slot': self.change_window_title},
            {'target': 'main_container',
             'signal_name': 'openPreferences',#()
             'slot': self.show_preferences},
            {'target': 'main_container',
             'signal_name': 'allTabsClosed',#()
             'slot': self._last_tab_closed},
            {'target': 'explorer_container',
             'signal_name': 'changeWindowTitle',#(QString)
             'slot': self.change_window_title},
            {'target': 'explorer_container',
             'signal_name': 'projectClosed',#(QString)
             'slot': self.close_project},
            )
        self.register_signals('ide', connections)
        # Central Widget MUST always exists
        self.central = IDE.get_service('central_container')
        print("self.central:", self.central)
        self.setCentralWidget(self.central)
        # Install Services
        for service_name in self.__IDESERVICES:
            self.install_service(service_name)
        IDE.__created = True
        # Place Status Bar
        main_container = IDE.get_service('main_container')
        status_bar = IDE.get_service('status_bar')
        main_container.add_status_bar(status_bar)
        # Load Menu Bar
        menu_bar = IDE.get_service('menu_bar')
        if menu_bar:
            menu_bar.load_menu(self)
            #These two are the same service, I think that's ok
            menu_bar.load_toolbar(self)

        #Start server if needed
        self.s_listener = None
        if start_server:
            self.s_listener = QLocalServer()
            self.s_listener.listen("ninja_ide")
            self.s_listener.newConnection.connect(self._process_connection)
示例#52
0
    def __init__(self, *args, **kwargs):
        super(ShortcutManagerDlg, self).__init__(*args, **kwargs)
        self.setWindowTitle("Shortcut Preferences")
        self.setMinimumWidth(500)
        self.setMinimumHeight(500)

        mgr = ShortcutManager()  # Singleton

        scrollWidget = QWidget(parent=self)
        tempLayout = QVBoxLayout(scrollWidget)
        scrollWidget.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)

        treeWidget = QTreeWidget(parent=scrollWidget)
        treeWidget.setHeaderLabels(["Action", "Shortcut"])
        treeWidget.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)
        treeWidget.setColumnWidth(0, 300)
        treeWidget.setColumnWidth(1, 50)

        action_descriptions = mgr.get_all_action_descriptions()
        target_keyseqs = mgr.get_keyseq_reversemap()

        # Create a LineEdit for each shortcut,
        # and keep track of them in a dict
        shortcutEdits = collections.OrderedDict()
        for group, targets in list(action_descriptions.items()):
            groupItem = QTreeWidgetItem(treeWidget, [group])
            for (name, description) in targets:
                edit = QLineEdit(target_keyseqs[(group, name)])
                shortcutEdits[(group, name)] = edit
                item = QTreeWidgetItem(groupItem, [description])
                item.setText(0, description)
                treeWidget.setItemWidget(item, 1, edit)

        tempLayout.addWidget(treeWidget)

        # Add ok and cancel buttons
        buttonLayout = QHBoxLayout()
        cancelButton = QPushButton("Cancel")
        cancelButton.clicked.connect(self.reject)
        okButton = QPushButton("OK")
        okButton.clicked.connect(self.accept)
        okButton.setDefault(True)
        buttonLayout.addSpacerItem(QSpacerItem(10, 0, QSizePolicy.Expanding))
        buttonLayout.addWidget(cancelButton)
        buttonLayout.addWidget(okButton)
        tempLayout.addLayout(buttonLayout)

        scroll = QScrollArea(parent=self)
        scroll.setWidget(scrollWidget)
        scroll.setWidgetResizable(True)
        scroll.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)
        dlgLayout = QVBoxLayout()
        dlgLayout.addWidget(scroll)
        self.setLayout(dlgLayout)

        # Show the window
        result = self.exec_()

        # Did the user hit 'cancel'?
        if result != QDialog.Accepted:
            return

        for (group, name), edit in list(shortcutEdits.items()):
            oldKey = target_keyseqs[(group, name)]
            newKey = str(edit.text())

            if oldKey.lower() != newKey.lower() and newKey != "":
                mgr.change_keyseq(group, name, oldKey, newKey)

        mgr.store_to_preferences()
示例#53
0
 def control_layout( label_text, widget ):
     row_layout = QHBoxLayout()
     row_layout.addWidget( QLabel(label_text) )
     row_layout.addSpacerItem( QSpacerItem(10, 0, QSizePolicy.Expanding) )
     row_layout.addWidget(widget)
     return row_layout