def data(self, index, role):
        row = index.row()
        column = index.column()

        if role == Qt.DisplayRole:
            text = "({},{})".format(row, column)
            return text
        elif role == Qt.FontRole:
            if row == 0 and column == 0:                # change font only for cell(0,0)
                my_font = QFont()
                my_font.setBold(True)
                my_font.setItalic(True)
                my_font.setUnderline(True)
                return my_font
        elif role == Qt.BackgroundRole:
            if row == 1 and column == 2:                # change background only for cell(1,2)
                my_background = QBrush(Qt.red)
                return my_background
        elif role == Qt.TextAlignmentRole:
            if row == 1 and column == 1:                # change text alignment only for cell(1,1)
                return Qt.AlignRight + Qt.AlignVCenter
        elif role == Qt.CheckStateRole:
            if row == 0 and column == 1:                # add checkbox only for cell(0,1)
                return Qt.Checked
            elif row == 0 and column == 2:              # add checkbox only for cell(0,2)
                return Qt.Unchecked

        return QVariant()                               # see http://doc.qt.io/qt-5/qvariant.html#details
    def init_ui(self):

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

        self.scan_type_label.setFont(font)

        for scan in ScanTypes:
            self.scan_type_input.addItem(scan.value)

        #self.save_unfoldded_data_check.setChecked(True)

        self.scan_title.setFont(font)

        self.scan_button.clicked.connect(self._parent.browse_file)

        self.grid_layout.addWidget(self.scan_type_label, 0, 0, 1, 2)
        self.grid_layout.addWidget(self.scan_type_input, 1, 0, 1, 2)
        self.grid_layout.addWidget(self.direct_beam_widget, 2, 0, 5, 2)

        #self.grid_layout.addWidget(self.median_filter_check, 7, 0, 1, 1)
        #self.grid_layout.addWidget(self.save_unfoldded_data_check, 7, 1, 1, 1)
        self.grid_layout.addWidget(self.scan_title, 8, 0, 1, 2)
        self.grid_layout.addWidget(self.scan_label, 9, 0, 2, 1)
        self.grid_layout.addWidget(self.scan_button, 9, 1, 2, 1)
Beispiel #3
0
 def init_editor(self):
     """"Initializes the editor widget."""
     font = QFont()
     self.tool_bar = QToolBar("Format Actions", self)
     self.cursor_position_changed.connect(self.reload_status)
     self.bold_btn = QToolButton(self)
     self.bold_btn.setText("B")
     font.setBold(True)
     self.bold_btn.setFont(font)
     font.setBold(False)
     self.bold_btn.setCheckable(True)
     self.bold_btn.clicked.connect(self.toggle_bold)
     self.tool_bar.addWidget(self.bold_btn)
     self.italic_btn = QToolButton(self)
     self.italic_btn.setText("I")
     font.setItalic(True)
     self.italic_btn.setFont(font)
     font.setItalic(False)
     self.italic_btn.setCheckable(True)
     self.italic_btn.clicked.connect(self.toggle_italic)
     self.tool_bar.addWidget(self.italic_btn)
     self.underline_btn = QToolButton(self)
     self.underline_btn.setText("U")
     font.setUnderline(True)
     self.underline_btn.setFont(font)
     font.setUnderline(False)
     self.underline_btn.setCheckable(True)
     self.underline_btn.clicked.connect(self.toggle_underline)
     self.tool_bar.addWidget(self.underline_btn)
     self.reload_status()
Beispiel #4
0
class HelpLabel(QLabel):

    def __init__(self, text, help_text):
        QLabel.__init__(self, text)
        self.help_text = help_text
        self.app = QCoreApplication.instance()
        self.font = QFont()

    def mouseReleaseEvent(self, x):
        custom_message_box(icon=QMessageBox.Information,
                           parent=self,
                           title=_('Help'),
                           text=self.help_text)

    def enterEvent(self, event):
        self.font.setUnderline(True)
        self.setFont(self.font)
        self.app.setOverrideCursor(QCursor(Qt.PointingHandCursor))
        return QLabel.enterEvent(self, event)

    def leaveEvent(self, event):
        self.font.setUnderline(False)
        self.setFont(self.font)
        self.app.setOverrideCursor(QCursor(Qt.ArrowCursor))
        return QLabel.leaveEvent(self, event)
Beispiel #5
0
    def handlePaintRequest(self,printer):
        """
            This is the backbone main function that handles all the 
            print functions PrintPreview and PrintCsv .
            This handles all the required operations like bolding the header labels
            and all the other things like moving the cursor for each cell 
            row and column wise and finally printing to document.
        :param printer: 
        :return: 
        """
        document = QTextDocument()
        cursor = QTextCursor(document)
        table = cursor.insertTable(self.tableWidget.rowCount(), self.tableWidget.columnCount())
        fm = QTextCharFormat()
        font = QFont()
        font.setBold(True)
        font.setUnderline(True)
        fm.setFont(font)
        for i in range(self.tableWidget.columnCount()):
            col = self.tableWidget.horizontalHeaderItem(i).text()
            if col is not None:
                cursor.insertText(col,fm)
            cursor.movePosition(QTextCursor.NextCell)
        for row in range(self.tableWidget.rowCount()):
            for col in range(self.tableWidget.columnCount()):
                w = self.tableWidget.cellWidget(row, col)
                it = self.tableWidget.item(row, col)
                if w is not None:
                    cursor.insertText(self.get_text_from_widget(w))
                elif it is not None:
                    cursor.insertText(it.text())
                cursor.movePosition(QTextCursor.NextCell)

        document.print_(printer)
Beispiel #6
0
class HelpLabel(QLabel):

    def __init__(self, text, help_text):
        QLabel.__init__(self, text)
        self.help_text = help_text
        self.app = QCoreApplication.instance()
        self.font = QFont()

    def mouseReleaseEvent(self, x):
        custom_message_box(icon=QMessageBox.Information,
                           parent=self,
                           title=_('Help'),
                           text=self.help_text)

    def enterEvent(self, event):
        self.font.setUnderline(True)
        self.setFont(self.font)
        self.app.setOverrideCursor(QCursor(Qt.PointingHandCursor))
        return QLabel.enterEvent(self, event)

    def leaveEvent(self, event):
        self.font.setUnderline(False)
        self.setFont(self.font)
        self.app.setOverrideCursor(QCursor(Qt.ArrowCursor))
        return QLabel.leaveEvent(self, event)
Beispiel #7
0
    def __init__(self):
        QMainWindow.__init__(self)
        # self refers to QMainWindow
        self.settings = QSettings('Peppercorn', 'Peppercorn_Note_Pad')
        self.filename = None
        self.file_open = False
        self.te_main = QTextEdit(self)
        self.setWindowTitle("Peppercorn Notepad")
        self.setGeometry(100, 100, 800, 500)
        self.setMinimumSize(200, 200)

        try:
            self.resize(self.settings.value('window size'))
            # print('sized')
            self.move(self.settings.value('window location'))
            # print('moved')
            font = QFont()
            # print('font')
            font.setFamily(self.settings.value('font family'))
            # print(str(self.settings.value('font family')))
            font.setPointSize(int(self.settings.value('font size')))
            # print(self.settings.value('font size'))
            font.setBold(eval(self.settings.value('bold')))
            # print(self.settings.value('bold'))
            font.setItalic(eval(self.settings.value('italics')))
            # print(self.settings.value('italics'))
            font.setUnderline(eval(self.settings.value('underline')))
            # print(self.settings.value('underline'))
            self.te_main.setFont(font)
        except:
            pass
        self.build_ui()
Beispiel #8
0
    def update_font_slot(self):
        font = QFont()

        is_bold = self.ui.boldCheckBox.isChecked()
        font.setBold(is_bold)
        self.current_el.is_bold = is_bold

        is_italic = self.ui.italicCheckBox.isChecked()
        font.setItalic(is_italic)
        self.current_el.is_italic = is_italic

        is_underline = self.ui.underlineCheckBox.isChecked()
        font.setUnderline(is_underline)
        self.current_el.is_underline = is_underline

        font_name = self.ui.fontComboBox.currentText()
        self.current_el.font = font_name
        font.setFamily(font_name)

        size = self.ui.sizeSpinBox.value()
        font.setPointSize(size)
        self.current_el.size = size

        self.current_w.setFont(font)
        self.current_w.adjustSize()
Beispiel #9
0
class HelpLabel(QLabel):

    def __init__(self, text, help_text):
        QLabel.__init__(self, text)
        self.app = QCoreApplication.instance()
        self.font = QFont()
        self.set_help_text(help_text)

    def set_help_text(self, help_text):
        self.help_text = help_text

    def mouseReleaseEvent(self, x):
        QMessageBox.information(self, 'Help', self.help_text)

    def enterEvent(self, event):
        self.font.setUnderline(True)
        self.setFont(self.font)
        self.app.setOverrideCursor(QCursor(Qt.PointingHandCursor))
        return QLabel.enterEvent(self, event)

    def leaveEvent(self, event):
        self.font.setUnderline(False)
        self.setFont(self.font)
        self.app.setOverrideCursor(QCursor(Qt.ArrowCursor))
        return QLabel.leaveEvent(self, event)
Beispiel #10
0
    def selectSlice(self, account):
        """
        Explodes a certaing slice that corresponds to
        an account
        """
        for slce in self.series.slices():
            if slce.label().split(' ')[0] == account:
                # Explode slice
                slce.setExploded(True)
                font = QFont()
                font.setBold(True)
                font.setWeight(QFont.ExtraBold)
                font.setUnderline(True)
                slce.setLabelFont(font)
                slce.setLabelColor(QColor("white"))
                slce.setLabelPosition(QPieSlice.LabelOutside)
            else:
                slce.setExploded(False)
                slce.setLabelFont(QFont())
                # # slce.setLabelPosition(QPieSlice.LabelInsideTangential)
                font = QFont()
                slce.setLabelColor(QColor("#3f3f39"))
                slce.setLabelFont(font)
                slce.setLabelPosition(QPieSlice.LabelInsideNormal)

        self.hideLittleSlices(selected=account)
    def data(self, index, role):
        row = index.row()
        column = index.column()

        if role == Qt.DisplayRole:
            text = "({},{})".format(row, column)
            return text
        elif role == Qt.FontRole:
            if row == 0 and column == 0:  # change font only for cell(0,0)
                my_font = QFont()
                my_font.setBold(True)
                my_font.setItalic(True)
                my_font.setUnderline(True)
                return my_font
        elif role == Qt.BackgroundRole:
            if row == 1 and column == 2:  # change background only for cell(1,2)
                my_background = QBrush(Qt.red)
                return my_background
        elif role == Qt.TextAlignmentRole:
            if row == 1 and column == 1:  # change text alignment only for cell(1,1)
                return Qt.AlignRight + Qt.AlignVCenter
        elif role == Qt.CheckStateRole:
            if row == 0 and column == 1:  # add checkbox only for cell(0,1)
                return Qt.Checked
            elif row == 0 and column == 2:  # add checkbox only for cell(0,2)
                return Qt.Unchecked

        return QVariant()  # see http://doc.qt.io/qt-5/qvariant.html#details
Beispiel #12
0
    def initui(self):
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        # make a background picture
        label = QLabel(self)
        iurl = "https://i.imgur.com/BUimYNu.jpg"
        iurl = urlopen(iurl).read()
        image = QImage()
        image.loadFromData(iurl)
        pixmap = QPixmap(image)
        label.setPixmap(pixmap)

        # make the label
        label2 = QLabel("Click to install the required plugin:", self)
        label2.move(67, 120)
        font = QFont()
        font.setBold(1)
        font.setUnderline(1)
        font.setPointSize(23)
        label2.setFont(font)

        # make the install button
        button = QPushButton('Install', self)
        button.move(245, 240)
        button.resize(150, 80)
        font2 = QFont()
        font2.setPointSize(15)
        button.setFont(font2)
        button.clicked.connect(self.on_click1)

        self.show()
Beispiel #13
0
    def __applyMonokaiPython(self, lexerName):
        defaultFont = QFont("Roboto Mono", self.__defaultFontSize, -1, False)
        colors = [
            "#ffffff", "#888877", "#ae81ff", "#ffff88", "#ffff88", "#ff3377",
            "#ffff88", "#ffff88", "#aaff33", "#aaff47", "#ff3377", "#ffffff",
            "#888877", "#f8f8f0", "#ffe892", "#aa88ff"
        ]

        lexer = PreferencesLexer(lexerName)

        for i in range(0, 15):
            lexer.setPaper(QColor(Qt.black), i)
            lexer.setFont(defaultFont, i)
            lexer.setColor(QColor(colors[i]), i)

        # specific values now
        # comment
        defaultFont.setItalic(True)
        lexer.setFont(defaultFont, 1)
        defaultFont.setItalic(False)

        # class name
        defaultFont.setUnderline(True)
        lexer.setFont(defaultFont, 8)

        # Unclosed string
        lexer.setPaper(QColor("#f92672"), 13)
        lexer.setEolFill(True, 13)

        lexer.writeSettings(Preferences.Prefs.settings, "Scintilla")
Beispiel #14
0
    def data(self, index, role=Qt.DisplayRole):
        row, col = index.row(), index.column()
        token = self.tokens[row]
        if role == Qt.DisplayRole:
            if col == self.NAME:
                return token[col][:16] + '...'
            return token[col]

        if role == Qt.ToolTipRole:
            if col in [self.NAME, self.DETAILS]:
                return token[col]
            else:
                return None
        elif role == Qt.TextAlignmentRole and col in (self.AMOUNT,
                                                      self.SUPPLY):
            return QVariant(Qt.AlignRight | Qt.AlignVCenter)
        elif role == Qt.TextAlignmentRole and col == self.LIMITED:
            return QVariant(Qt.AlignCenter | Qt.AlignVCenter)
        elif role == Qt.ForegroundRole:
            if col == self.NAME:
                return QVariant(QColor(Qt.blue))
        elif role == Qt.FontRole and col in [self.AMOUNT, self.SUPPLY]:
            font = QFont("RobotoCondensed-Light", 9)
            return QVariant(font)
        elif role == Qt.FontRole and col == self.NAME:
            font = QFont("Roboto Light", 10)
            font.setUnderline(True)
            return QVariant(font)
        return None
Beispiel #15
0
 def __init__(self,
              parent=None,
              xmlelement='QDomElement:None',
              index=0,
              edit=False):
     super().__init__(parent)
     self.element = xmlelement
     self.index = index
     self.edit = edit
     self.var_dict = dict()
     self.widget_dict = dict()
     # self.setStyleSheet("margin:2 2;")
     width = int(self.element.attribute(
         "width")) * 7 if self.element.attribute("width") else 130
     height = int(self.element.attribute(
         "height")) * 24 if self.element.attribute("height") else 24
     self.resize(width, height)
     font = QFont()
     if self.element.hasAttribute("size"):
         try:
             font.setPointSize(float(self.element.attribute("size")))
         except:
             pass
     if self.element.hasAttribute("style"):
         format = '{:03b}'.format(int(self.element.attribute("style")))
         font.setBold(True if format[0] != '0' else False)
         font.setItalic(True if format[1] != '0' else False)
         font.setUnderline(True if format[2] != '0' else False)
     self.setFont(font)
     if not edit:
         self.setEditable(False if self.element.attribute("edit", "0") ==
                          "0" else True)
     self.currentTextChanged.connect(self.on_currentTextChanged)
     self.currentIndexChanged.connect(self.on_currentIndexChanged)
class MonoFont:
    def __init__(self, name, size):
        self.font = QFont(name, size)
        self.font.setKerning(False)
        self.ascent = int(QFontMetricsF(self.font).ascent())
        self.charWidth = QFontMetricsF(self.font).width("X")
        self.charHeight = int(QFontMetricsF(self.font).height())
        self.charOffset = 0  # can introduce extra linespacing here

        self.bold = QFont(self.font)
        self.bold.setBold(True)

        self.under = QFont(self.font)
        self.under.setUnderline(True)

        # align character width properly
        if self.charWidth % 1.0 < 0.5:
            adjust = -(self.charWidth % 1.0)
        else:
            adjust = 1.0 - (self.charWidth % 1.0)

        self.charWidth += adjust
        self.font.setLetterSpacing(QFont.AbsoluteSpacing, adjust)
        self.bold.setLetterSpacing(QFont.AbsoluteSpacing, adjust)
        self.under.setLetterSpacing(QFont.AbsoluteSpacing, adjust)
Beispiel #17
0
    def __init__(self) -> None:
        super().__init__()

        self.table_widget = QTableWidget(self)
        self.table_widget.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.table_widget.setColumnCount(3)
        self.table_widget.setHorizontalHeaderLabels(["VID", "Author", "Title"])
        self.update_video_list()

        self.upload_button = QPushButton("upload")
        self.name_label = ClickLabel("1")
        font = QFont()
        font.setUnderline(True)
        self.name_label.setFont(font)

        self.hbox_layout = QHBoxLayout()
        self.hbox_layout.addWidget(self.upload_button)
        self.hbox_layout.addStretch(2)
        self.hbox_layout.addWidget(self.name_label)

        self.vbox_layout = QVBoxLayout()
        self.vbox_layout.addLayout(self.hbox_layout)
        self.vbox_layout.addWidget(self.table_widget)
        self.central_widget = QWidget()
        self.central_widget.setLayout(self.vbox_layout)
        self.setCentralWidget(self.central_widget)

        self.upload_button.pressed.connect(self.upload_video)
        self.name_label.clicked.connect(self.set_uid)
Beispiel #18
0
    def _configure_widget(self, el, widget):
        w, h = widget.geometry().width(), widget.geometry().height()
        widget.setGeometry(
            QRect(round(el.ratio_x * self.screen_w),
                  round(el.ratio_y * self.screen_h), w, h))

        font = QFont()
        font.setFamily(el.font)

        if el.color:
            utils.set_widget_stylesheet(widget, f'color: {el.color}')
        if el.size:
            font.setPointSize(el.size)
        if el.is_bold:
            font.setBold(True)
        if el.is_italic:
            font.setItalic(True)
        if el.is_underline:
            font.setUnderline(True)
        if el.shadow_blur or el.shadow_offset:
            eff = QGraphicsDropShadowEffect()
            eff.setBlurRadius(el.shadow_blur)
            eff.setOffset(el.shadow_offset)
            widget.setGraphicsEffect(eff)
        if el.shadow_offset or el.shadow_blur:
            eff = QGraphicsDropShadowEffect()
            eff.setBlurRadius(el.shadow_blur)
            eff.setOffset(el.shadow_offset)
            widget.setGraphicsEffect(eff)
        widget.setFont(font)
        widget.adjustSize()
Beispiel #19
0
    def __init__(self, parent=None, xmlelement='QDomElement:None', index=0,
                 edit=False):
        super().__init__(parent)
        self.element = xmlelement
        self.edit = edit
        self.index = index
        self.viewport().index = index
        self.var_dict = dict()
        self.widget_dict = dict()
        self.expr_value = self.element.text()
        if edit:
            self.setReadOnly(True)
            self.viewport().setEnabled(False)

        width = float(
            self.element.attribute("width")) * 7 if self.element.attribute(
            "width") else 0
        height = float(
            self.element.attribute("height")) * 24 if self.element.attribute(
            "height") else 24
        self.resize(width, height)
        font = QFont()
        if self.element.hasAttribute("size"):
            try:
                font.setPointSize(float(self.element.attribute("size")))
            except:
                pass
        if self.element.hasAttribute("style"):
            format = '{:03b}'.format(int(self.element.attribute("style")))
            font.setBold(True if format[0] != '0' else False)
            font.setItalic(True if format[1] != '0' else False)
            font.setUnderline(True if format[2] != '0' else False)
        self.setFont(font)
Beispiel #20
0
    def __init__(self, document, parent=None):
        """Create subwidgets and layout."""
        super(SingleLayerInfoPane, self).__init__(parent)
        self.document = document  # FUTURE: make this a weakref?
        min_width = 3 * 100

        # build our layer detail info display controls
        self.name_text = QLabel("")
        self.name_text.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        self.time_text = QLabel("")
        self.time_text.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        self.instrument_text = QLabel("")
        self.instrument_text.setSizePolicy(QSizePolicy.Fixed,
                                           QSizePolicy.Fixed)
        self.wavelength_text = QLabel("")
        self.wavelength_text.setSizePolicy(QSizePolicy.Fixed,
                                           QSizePolicy.Fixed)
        self.colormap_text = QLabel("")
        self.colormap_text.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        self.clims_text = QLabel("")
        self.clims_text.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        self.cmap_vis = QNoScrollWebView()
        self.cmap_vis.setFixedSize(min_width, 30)
        self.cmap_vis.page().runJavaScript(
            'document.body.style.overflow = "hidden";')
        self.composite_details = QLabel("Composite Details")
        self.composite_details.setSizePolicy(QSizePolicy.Fixed,
                                             QSizePolicy.Fixed)
        f = QFont()
        f.setUnderline(True)
        self.composite_details.setFont(f)
        self.composite_codeblock = QTextEdit()
        self.composite_codeblock.setReadOnly(True)
        self.composite_codeblock.setMinimumSize(min_width, 100)
        self.composite_codeblock.setDisabled(True)
        self.composite_codeblock.setSizePolicy(QSizePolicy.Minimum,
                                               QSizePolicy.Minimum)

        # set the layout for this widget
        # Note: add in a grid is (widget, row#, col#) or (widget, row#, col#, row_span, col_span)
        layout = QGridLayout()
        layout.setAlignment(Qt.AlignLeft)
        layout.addWidget(self.name_text, 0, 0)
        layout.addWidget(self.time_text, 1, 0)
        layout.addWidget(self.instrument_text, 2, 0)
        layout.addWidget(self.wavelength_text, 3, 0)
        layout.addWidget(self.colormap_text, 4, 0)
        layout.addWidget(self.clims_text, 5, 0)
        layout.addWidget(self.cmap_vis, 6, 0)
        layout.addWidget(self.composite_details, 7, 0)
        layout.addWidget(self.composite_codeblock, 8, 0)
        self.setLayout(layout)

        # add this widget to the scrollable parent widget
        layout = QVBoxLayout()
        layout.addWidget(self)
        self.parent().setLayout(layout)

        # clear out the display
        self.update_display()
Beispiel #21
0
    def getFontFromCmnd(self, fontinfo):
        '''
        Returns a QFont based on the information in the dictionary
        fontinfo.

        Recognized keys in the font dictionary are:
            "family": font family name (string)
            "size": text size in points (1/72 inches)
            "italic": italicize? (False/True)
            "bold": make bold? (False/True)
            "underline": underline?  (False/True)
        '''
        try:
            myfont = QFont(fontinfo["family"])
        except KeyError:
            myfont = self.__viewer.font()
        try:
            myfont.setPointSizeF(fontinfo["size"])
        except KeyError:
            pass
        try:
            myfont.setItalic(fontinfo["italic"])
        except KeyError:
            pass
        try:
            myfont.setBold(fontinfo["bold"])
        except KeyError:
            pass
        try:
            myfont.setUnderline(fontinfo["underline"])
        except KeyError:
            pass
        return myfont
    def actionUnderlined(self):

        myFont = QFont()

        myFont.setUnderline(True)

        self.textEdit.setFont(myFont)
Beispiel #23
0
def update_font(basefont,
                weight=None,
                italic=None,
                underline=None,
                pixelSize=None,
                pointSize=None):
    """
    Return a copy of `basefont` :class:`QFont` with updated properties.
    """
    font = QFont(basefont)

    if weight is not None:
        font.setWeight(weight)

    if italic is not None:
        font.setItalic(italic)

    if underline is not None:
        font.setUnderline(underline)

    if pixelSize is not None:
        font.setPixelSize(pixelSize)

    if pointSize is not None:
        font.setPointSize(pointSize)

    return font
Beispiel #24
0
 def action_underlined(self):
     myFont = QFont()
     if self.underlined.isChecked():
         myFont.setUnderline(True)
         self.ui.textEdit_message.setFont(myFont)
     else:
         myFont.setUnderline(False)
         self.ui.textEdit_message.setFont(myFont)
Beispiel #25
0
    def initUI(self, LoginUI):
        LoginUI.setObjectName("LoginUI")
        LoginUI.resize(480, 260)

        icon = QIcon()
        icon.addPixmap(QPixmap(":/images/icon.jpeg"), QIcon.Normal, QIcon.Off)
        LoginUI.setWindowIcon(icon)

        self.gridLayout_2 = QGridLayout(LoginUI)
        self.gridLayout_2.setContentsMargins(10, 10, 10, 10)
        self.gridLayout_2.setSpacing(5)
        self.gridLayout_2.setObjectName("gridLayout_2")

        self.scrollArea = QScrollArea(LoginUI)
        self.scrollArea.setWidgetResizable(True)
        self.scrollArea.setObjectName("scrollArea")
        self.scrollAreaWidgetContents = QWidget()
        self.scrollAreaWidgetContents.setGeometry(QRect(0, 0, 458, 238))
        self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")

        self.verticalLayout = QVBoxLayout(self.scrollAreaWidgetContents)
        self.verticalLayout.setObjectName("verticalLayout")

        self.Title = QLabel(self.scrollAreaWidgetContents)
        font = QFont()
        font.setPointSize(20)
        font.setUnderline(True)
        self.Title.setFont(font)
        self.Title.setAlignment(Qt.AlignCenter)
        self.Title.setObjectName("Title")
        self.verticalLayout.addWidget(self.Title)

        self.Subtitle = QLabel(self.scrollAreaWidgetContents)
        self.Subtitle.setAlignment(Qt.AlignCenter)
        self.Subtitle.setObjectName("Subtitle")
        self.verticalLayout.addWidget(self.Subtitle)

        self.usernameBox = QLineEdit(self.scrollAreaWidgetContents)
        self.usernameBox.setText("")
        self.usernameBox.setAlignment(Qt.AlignCenter)
        self.usernameBox.setObjectName("usernameBox")
        self.verticalLayout.addWidget(self.usernameBox)

        self.loginButton = QPushButton(self.scrollAreaWidgetContents)
        self.loginButton.setObjectName("loginButton")
        self.verticalLayout.addWidget(self.loginButton)

        self.infoLabel = QLabel(self.scrollAreaWidgetContents)
        self.infoLabel.setAlignment(Qt.AlignCenter)
        self.infoLabel.setStyleSheet("color: red")
        self.infoLabel.setObjectName("infoLabel")
        self.verticalLayout.addWidget(self.infoLabel)

        self.scrollArea.setWidget(self.scrollAreaWidgetContents)
        self.gridLayout_2.addWidget(self.scrollArea, 0, 0, 1, 1)

        self.retranslateUi(LoginUI)
        QMetaObject.connectSlotsByName(LoginUI)
Beispiel #26
0
    def createWidgets(self):
        font = QFont()
        font.setItalic(True)
        #font.setBold(True)
        font.setUnderline(True)
        loginfont = QFont()
        loginfont.setPointSize(13)

        self.lb1 = QLabel('账号:',self)
        self.lb1.setFixedSize(70,30)
        self.lb1.setObjectName('lb')
        self.lb2 = QLabel("密码:", self)
        self.lb2.setFixedSize(70, 30)

        self.edit1 = QLineEdit(self)
        self.edit1.setPlaceholderText("请输入账号")
        self.edit2 = QLineEdit(self)
        self.edit2.installEventFilter(self)
        self.edit2.setContextMenuPolicy(Qt.NoContextMenu)
        self.edit2.setPlaceholderText("请输入密码")
        self.edit2.setEchoMode(QLineEdit.Password)


        self.cb1 = QCheckBox('显示密码', self)
        self.cb1.stateChanged.connect(self.check)
        self.cb2 = QCheckBox('自动登录', self)
        self.login_button = QPushButton("登  录", self)
        self.login_button.setFixedSize(300,30)
        self.login_button.setFont(loginfont)
        self.login_button.clicked.connect(self.Ok)
        self.login_button.setStyleSheet('''QPushButton{
                                                height:30px;
                                                border-style: outset;
                                                border-width: 2px;
                                                border-radius: 10px;
                                                border-color: beige;
                                                background-color: #0078d7}
                                            QPushButton:hover {
                                                background-color: #0078d7;
                                                color:white;
                                                border-style: inset;}
                                            QPushButton:pressed {
                                                background: transparent;
                                                border-style: inset;}''')

        self.bt1 = QPushButton('注册账号', self)
        self.bt1.setFixedSize(80,30)
        self.bt1.setFont(font)
        self.bt1.setStyleSheet('''QPushButton{color:black;background:transparent}
                                            QPushButton:hover {color: #0078d7}
                                            QPushButton:pressed {color: #0078d7}''')
        self.bt1.clicked.connect(self.register)
        self.bt2 = QPushButton('找回密码', self)
        self.bt2.setFixedSize(80, 30)
        self.bt2.setFont(font)
        self.bt2.setStyleSheet('''QPushButton{color:black;background:transparent}
                                                    QPushButton:hover {color: #0078d7}
                                                    QPushButton:pressed {color: #0078d7}''')
Beispiel #27
0
    def __refresh_example_font(self):
        qfont = QFont(self.__font.family)
        qfont.setPixelSize(self.__font.size)
        qfont.setBold(FontStyle.bold in self.__font.style)
        qfont.setItalic(FontStyle.italic in self.__font.style)
        qfont.setStrikeOut(FontStyle.strike in self.__font.style)
        qfont.setUnderline(FontStyle.underline in self.__font.style)

        self.__example.setFont(qfont)
Beispiel #28
0
 def preview_item(self):
     item = QTableWidgetItem('Preview')
     item.setText('Preview')
     item.setForeground(QBrush(QColor(0, 0, 255)))
     link_font = QFont(item.font())
     link_font.setUnderline(True)
     item.setFont(link_font)
     item.setTextAlignment(Qt.AlignHCenter)
     return item
Beispiel #29
0
    def data(self, index, role=Qt.DisplayRole):
        if not index.isValid():
            return None

        result = None
        record = self.records[index.row()]
        if getattr(record, '_cutelog', False):
            return self.data_internal(index, record, role)
        level = self.levels[record.levelno]

        if role == Qt.DisplayRole:
            column = self.table_header[index.column()]
            result = getattr(record, column.name)
        elif role == Qt.DecorationRole:
            if self.headerData(index.column()) == 'Message':
                if record.exc_text:
                    mode = CONFIG['exception_indication']
                    should = mode in (Exc_Indication.MSG_ICON, Exc_Indication.ICON_AND_RED_BG)
                    if should:
                        result = self.parent_widget.style().standardIcon(QStyle.SP_BrowserStop)
        elif role == Qt.FontRole:
            result = None
            styles = level.styles if not self.dark_theme else level.stylesDark
            # although there is a more efficient way of doing this,
            # this is as fast as QFont(self.font)
            result = QFont(CONFIG.logger_table_font, CONFIG.logger_table_font_size)
            if styles:
                # result = QFont(self.font)
                if 'bold' in styles:
                    result.setBold(True)
                if 'italic' in styles:
                    result.setItalic(True)
                if 'underline' in styles:
                    result.setUnderline(True)
        elif role == Qt.ForegroundRole:
            if not self.dark_theme:
                result = level.fg
            else:
                result = level.fgDark
        elif role == Qt.BackgroundRole:
            if record.exc_text:
                mode = CONFIG['exception_indication']
                should = mode in (Exc_Indication.RED_BG, Exc_Indication.ICON_AND_RED_BG)
                if should:
                    if not self.dark_theme:
                        color = QColor(255, 180, 180)
                    else:
                        color = Qt.darkRed
                    result = QBrush(color, Qt.DiagCrossPattern)
                    return result
            if not self.dark_theme:
                result = level.bg
            else:
                result = level.bgDark
        elif role == SearchRole:
            result = record.message
        return result
Beispiel #30
0
    def count(self):
        """
        获取查询信息,排布在表格控件中
        增加:统计完成后在目录生成报表 fanch 2019-04-15 16:21:04
        :return:
        """
        if not (path.exists('issues.json') and path.exists('projects.json')
                and path.exists('users.json')):
            self.updatedata()
        else:
            # 打开可排序性会导致重新排列后显示数据丢失,故先关闭。重新设置数据后再打开
            self.tableWidget_taskList.setSortingEnabled(False)
            tasks = self.tasks
            statuses = self.statuses
            assignedto = self.assignedTo
            if tasks == [] or statuses == [] or assignedto == []:
                self.messagebox.information(self, '提示',
                                            '任务类型或者任务状态或者被指派人不能为空,请确认无误后再查询',
                                            QMessageBox.Ok)
            else:
                task_ids = [TRACKER_ID[i] for i in tasks]
                status_ids = [STATUS_ID[i] for i in statuses]
                log.info(
                    '要查询的条件是taskes={}, statuses={}, assigned to={}'.format(
                        tasks, statuses, assignedto))
                issues = get_some_issues(status_ids, task_ids, assignedto,
                                         field_list)
                horiheaderitems = issues[0].split('|||')  # 获取表头字段
                tasklist = [i.split('|||')
                            for i in issues[1:-1]]  # 获取任务列表,并将每个任务分离成列表
                x = len(horiheaderitems)
                y = len(tasklist)

                file = xlwt.Workbook()
                sheet = file.add_sheet('tasks')
                for i in range(len(horiheaderitems)):
                    sheet.write(0, i, horiheaderitems[i])

                self.tableWidget_taskList.setColumnCount(x)
                self.tableWidget_taskList.setRowCount(y)  # 设置表宽度和长度
                self.tableWidget_taskList.setHorizontalHeaderLabels(
                    horiheaderitems)  # 设置表头
                # 必须保证所有项跟字段具有相同的宽度
                font = QFont()
                font.setUnderline(True)
                for i in range(y):
                    for j in range(x):
                        # 按照表格坐标设置每个任务的每个元素
                        sheet.write(i + 1, j, tasklist[i][j])  # 将数据保存到对应表格中
                        item = QtWidgets.QTableWidgetItem(tasklist[i][j])
                        if j == 0:
                            item.setFont(font)
                        self.tableWidget_taskList.setItem(i, j, item)
                file.save('tasks.xls')
            self.tableWidget_taskList.setSortingEnabled(True)  # 重新打开可排序性
Beispiel #31
0
    def MainSearch(self):
        VMainSearch = QVBoxLayout()
        VSearch = QVBoxLayout()
        HSearch = QHBoxLayout()
        self.labilSearch= QLabel() 
        self.EntrySearch = QLineEdit()
        self.ButtonSearsh = QPushButton()
        
        
        font = QFont()
        font.setFamily("Segoe UI")
        font.setPointSize(18)
        self.labilSearch.setFont(font)
        self.labilSearch.setStyleSheet("color: #FFFFFF; background-color: none;")
        self.labilSearch.setAlignment(Qt.AlignCenter)
        self.labilSearch.setText(self._translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Search</span> Anime</p></body></html>"))
        
        
        font = QFont()
        font.setFamily("Segoe UI")
        font.setPointSize(13)
        font.setBold(True)
        font.setItalic(True)
        font.setUnderline(False)
        font.setWeight(75)
        font.setStrikeOut(False)
        font.setStyleStrategy(QFont.PreferDefault)
        self.ButtonSearsh.setFont(font)
        self.ButtonSearsh.setStyleSheet(" \n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 0, 0, 255), stop:1 rgba(255, 255, 255, 255));\n"
"color:rgb(77, 77, 127);\n"
"")
        self.ButtonSearsh.setText(self._translate("MainWindow", "Search"))
        
        self.EntrySearch.setFont(font)
        self.EntrySearch.setStyleSheet("background-color: rgb(45, 45, 74);")
        
        VSearch.addWidget(self.EntrySearch)
        VSearch.addWidget(self.ButtonSearsh)
        VSearch.setContentsMargins(0, 20, 0, 20)
        
        HSearch.addStretch()
        HSearch.addLayout(VSearch)
        HSearch.addStretch()
        
        VMainSearch.addWidget(self.labilSearch)
        
        VMainSearch.addLayout(HSearch)
        #VMainSearch.addStretch()

        VMainSearch.setContentsMargins(0, 20, 0, 0)
        
        
        self.VMain.addLayout(VMainSearch)
        self.VMain.addStretch()
Beispiel #32
0
 def set_fontact(self, font, sxt):
     set_font = QFont()
     set_font.setFamily(font[0])
     set_font.setPointSize(font[1])
     set_font.setBold(font[2])
     set_font.setItalic(font[3])
     set_font.setUnderline(font[4])
     if sxt == 1:
         self.con_in.setFont(set_font)
     else:
         self.con_out.setFont(set_font)
Beispiel #33
0
 def setItemTextFormat(item, f):
     font = QFont(data.font)
     if f.hasProperty(QTextFormat.ForegroundBrush):
         item.setForeground(0, f.foreground().color())
     else:
         item.setForeground(0, data.baseColors['text'])
     if f.hasProperty(QTextFormat.BackgroundBrush):
         item.setBackground(0, f.background().color())
     else:
         item.setBackground(0, QBrush())
     font.setWeight(f.fontWeight())
     font.setItalic(f.fontItalic())
     font.setUnderline(f.fontUnderline())
     item.setFont(0, font)
Beispiel #34
0
    def drawText(self, event, qp):

        text = """
        一二三一二三一二三一二三一二三一二三一二三一二三一二三一二三一二三一二三
        112233112233112233112233112233112233112233112233112233112233112233112233
        aabbccaabbccaabbccaabbccaabbccaabbccaabbccaabbccaabbccaabbccaabbccaabbcc
        1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 
        a b c a b c a b c a b c a b c a b c a b c a b c a b c a b c a b c a b c 
        """
        qp.setPen(QColor(168, 34, 3))
        family = "WenQuanYi Micro Hei Mono"
        family = "monospace"
        family = "monaco,WenQuanYi Micro Hei Mono"
        f = QFont(family, 20)
        f.setUnderline(True)
        qp.setFont(f)
        qp.drawText(event.rect(), Qt.AlignCenter, text)
Beispiel #35
0
    def __init__(self, *args):
        super(MyDragDropBox, self).__init__(*args)
        Lumberjack.info('spawning a << MyDragDropBox >>')
        print(Fore.GREEN + '--=== DRAGDROPBOX ===--')
        print(Fore.GREEN + 'Here come the inits!')
        print(Fore.GREEN + 'args: ', args)
        print(Fore.GREEN + '==--- DRAGDROPBOX ---==')

        self.verticalLayout = QVBoxLayout(self)
        self.verticalLayout.setObjectName("verticalLayout")
        self.DropLabel = QLabel(self)
        font = QFont()
        font.setPointSize(12)
        font.setBold(False)
        font.setUnderline(False)
        font.setWeight(50)
        self.DropLabel.setFont(font)
        self.DropLabel.setAlignment(Qt.AlignCenter)
        self.DropLabel.setObjectName("DropLabel")
        self.verticalLayout.addWidget(self.DropLabel)
        self.edit = False
    def data(self, index: QModelIndex, role=Qt.DisplayRole):
        i, j = index.row(), index.column()
        lbl = self.message_type[i]  # type: SimulatorProtocolLabel

        if role == Qt.DisplayRole:
            if j == 0:
                return lbl.name
            elif j == 1:
                return ProtocolLabel.DISPLAY_FORMATS[lbl.display_format_index]
            elif j == 2:
                if lbl.is_checksum_label:
                    return "Checksum"
                else:
                    return lbl.VALUE_TYPES[lbl.value_type_index]
            elif j == 3:
                if lbl.value_type_index == 0:
                    message = lbl.parent()

                    try:
                        data = message.plain_bits[lbl.start:lbl.end]
                    except IndexError:
                        return None

                    return util.convert_bits_to_string(data, lbl.display_format_index, pad_zeros=True)
                elif lbl.value_type_index == 1:
                    return "-"
                elif lbl.value_type_index == 2:
                    return lbl.formula
                elif lbl.value_type_index == 3:
                    return lbl.external_program
                elif lbl.value_type_index == 4:
                    return "Range (Decimal): " + str(lbl.random_min) + " - " + str(lbl.random_max)
        elif role == Qt.EditRole:
            if j == 0:
                return lbl.name
            elif j == 1:
                return lbl.display_format_index
            elif j == 2:
                return lbl.value_type_index
            elif j == 3:
                if lbl.value_type_index == 2:
                    return lbl.formula
                elif lbl.value_type_index == 3:
                    return lbl.external_program
                elif lbl.value_type_index == 4:
                    return [lbl.random_min, lbl.random_max]
        elif role == Qt.FontRole:
            if j == 0:
                font = QFont()
                font.setItalic(lbl.field_type is None)
                return font
            elif j == 2 and self.link_index(index):
                font = QFont()
                font.setUnderline(True)
                return font
        elif role == Qt.BackgroundColorRole:
            if j == 0:
                return constants.LABEL_COLORS[lbl.color_index]
            elif j == 3:
                if (lbl.value_type_index == 2 and
                        not self.controller.sim_expression_parser.validate_expression(lbl.formula)[0]):
                    return constants.ERROR_BG_COLOR
        elif role == Qt.TextColorRole:
            if self.link_index(index):
                return qApp.palette().link().color()
Beispiel #37
0
class GalleryLists(QListWidget):
    CREATE_LIST_TYPE = misc.CustomListItem.UserType + 1
    GALLERY_LIST_CLICKED = pyqtSignal(gallerydb.GalleryList)
    GALLERY_LIST_REMOVED = pyqtSignal()
    def __init__(self, parent):
        super().__init__(parent)
        self.gallery_list_edit = GalleryListEdit(parent.parent_widget)
        self.gallery_list_edit.hide()
        self._g_list_icon = app_constants.G_LISTS_ICON
        self._font_selected = QFont(self.font())
        self._font_selected.setBold(True)
        self._font_selected.setUnderline(True)
        self.itemDoubleClicked.connect(self._item_double_clicked)
        self.setItemDelegate(ListDelegate(self))
        self.itemDelegate().closeEditor.connect(self._add_new_list)
        self.setEditTriggers(self.NoEditTriggers)
        self.viewport().setAcceptDrops(True)
        self._in_proccess_item = None
        self.current_selected = None
        self.gallery_list_edit.apply.connect(lambda: self._item_double_clicked(self.current_selected))
        self.setup_lists()

    def dragEnterEvent(self, event):
        if event.mimeData().hasFormat("list/gallery"):
            event.acceptProposedAction()
        else:
            event.ignore()

    def dragMoveEvent(self, event):
        item = self.itemAt(event.pos())
        self.clearSelection()
        if item:
            item.setSelected(True)
        event.accept()

    def dropEvent(self, event):
        galleries = []

        galleries = pickle.loads(event.mimeData().data("list/gallery").data())

        g_list_item = self.itemAt(event.pos())
        if galleries and g_list_item:
            txt = "{} galleries".format(len(galleries)) if len(galleries) > 1 else galleries[0].title
            app_constants.NOTIF_BUBBLE.update_text(g_list_item.item.name, 'Added: {}!'.format(txt), 7)
            log_i('Added {} to {}...'.format(txt, g_list_item.item.name))
            g_list_item.item.add_gallery(galleries)

        super().dropEvent(event)


    def _add_new_list(self, lineedit=None, hint=None, gallery_list=None):
        if not self._in_proccess_item.text():
            self.takeItem(self.row(self._in_proccess_item))
            return
        new_item = self._in_proccess_item
        if not gallery_list:
            new_list = gallerydb.GalleryList(new_item.text())
            new_list.add_to_db()
        else:
            new_list = gallery_list
        new_item.item = new_list
        new_item.setIcon(self._g_list_icon)
        self.sortItems()

    def create_new_list(self, name=None, gallery_list=None):
        new_item = misc.CustomListItem()
        self._in_proccess_item = new_item
        new_item.setFlags(new_item.flags() | Qt.ItemIsEditable)
        new_item.setIcon(QIcon(app_constants.LIST_ICON))
        self.insertItem(0, new_item)
        if name:
            new_item.setText(name)
            self._add_new_list(gallery_list=gallery_list)
        else:
            self.editItem(new_item)

    def _item_double_clicked(self, item):
        if item:
            self._reset_selected()
            if item.item.filter:
                app_constants.NOTIF_BUBBLE.update_text(item.item.name, "Updating list..", 5)
                gallerydb.execute(item.item.scan, True)
            self.GALLERY_LIST_CLICKED.emit(item.item)
            item.setFont(self._font_selected)
            self.current_selected = item

    def _reset_selected(self):
        if self.current_selected:
            self.current_selected.setFont(self.font())

    def setup_lists(self):
        for g_l in app_constants.GALLERY_LISTS:
            if g_l.type == gallerydb.GalleryList.REGULAR:
                self.create_new_list(g_l.name, g_l)

    def contextMenuEvent(self, event):
        item = self.itemAt(event.pos())
        if item and item.type() != self.CREATE_LIST_TYPE:
            menu = GalleryListContextMenu(item, self)
            menu.exec_(event.globalPos())
            event.accept()
            return
        event.ignore()
Beispiel #38
0
    def setupTextActions(self):
        tb = QToolBar(self)
        tb.setWindowTitle("Format Actions")
        self.addToolBar(tb)

        menu = QMenu("F&ormat", self)
        self.menuBar().addMenu(menu)

        self.actionTextBold = QAction(
                QIcon.fromTheme('format-text-bold',
                        QIcon(rsrcPath + '/textbold.png')),
                "&Bold", self, priority=QAction.LowPriority,
                shortcut=Qt.CTRL + Qt.Key_B, triggered=self.textBold,
                checkable=True)
        bold = QFont()
        bold.setBold(True)
        self.actionTextBold.setFont(bold)
        tb.addAction(self.actionTextBold)
        menu.addAction(self.actionTextBold)

        self.actionTextItalic = QAction(
                QIcon.fromTheme('format-text-italic',
                        QIcon(rsrcPath + '/textitalic.png')),
                "&Italic", self, priority=QAction.LowPriority,
                shortcut=Qt.CTRL + Qt.Key_I, triggered=self.textItalic,
                checkable=True)
        italic = QFont()
        italic.setItalic(True)
        self.actionTextItalic.setFont(italic)
        tb.addAction(self.actionTextItalic)
        menu.addAction(self.actionTextItalic)

        self.actionTextUnderline = QAction(
                QIcon.fromTheme('format-text-underline',
                        QIcon(rsrcPath + '/textunder.png')),
                "&Underline", self, priority=QAction.LowPriority,
                shortcut=Qt.CTRL + Qt.Key_U, triggered=self.textUnderline,
                checkable=True)
        underline = QFont()
        underline.setUnderline(True)
        self.actionTextUnderline.setFont(underline)
        tb.addAction(self.actionTextUnderline)
        menu.addAction(self.actionTextUnderline)

        menu.addSeparator()

        grp = QActionGroup(self, triggered=self.textAlign)

        # Make sure the alignLeft is always left of the alignRight.
        if QApplication.isLeftToRight():
            self.actionAlignLeft = QAction(
                    QIcon.fromTheme('format-justify-left',
                            QIcon(rsrcPath + '/textleft.png')),
                    "&Left", grp)
            self.actionAlignCenter = QAction(
                    QIcon.fromTheme('format-justify-center',
                            QIcon(rsrcPath + '/textcenter.png')),
                    "C&enter", grp)
            self.actionAlignRight = QAction(
                    QIcon.fromTheme('format-justify-right',
                            QIcon(rsrcPath + '/textright.png')),
                    "&Right", grp)
        else:
            self.actionAlignRight = QAction(
                    QIcon.fromTheme('format-justify-right',
                            QIcon(rsrcPath + '/textright.png')),
                    "&Right", grp)
            self.actionAlignCenter = QAction(
                    QIcon.fromTheme('format-justify-center',
                            QIcon(rsrcPath + '/textcenter.png')),
                    "C&enter", grp)
            self.actionAlignLeft = QAction(
                    QIcon.fromTheme('format-justify-left',
                            QIcon(rsrcPath + '/textleft.png')),
                    "&Left", grp)
 
        self.actionAlignJustify = QAction(
                QIcon.fromTheme('format-justify-fill',
                        QIcon(rsrcPath + '/textjustify.png')),
                "&Justify", grp)

        self.actionAlignLeft.setShortcut(Qt.CTRL + Qt.Key_L)
        self.actionAlignLeft.setCheckable(True)
        self.actionAlignLeft.setPriority(QAction.LowPriority)

        self.actionAlignCenter.setShortcut(Qt.CTRL + Qt.Key_E)
        self.actionAlignCenter.setCheckable(True)
        self.actionAlignCenter.setPriority(QAction.LowPriority)

        self.actionAlignRight.setShortcut(Qt.CTRL + Qt.Key_R)
        self.actionAlignRight.setCheckable(True)
        self.actionAlignRight.setPriority(QAction.LowPriority)

        self.actionAlignJustify.setShortcut(Qt.CTRL + Qt.Key_J)
        self.actionAlignJustify.setCheckable(True)
        self.actionAlignJustify.setPriority(QAction.LowPriority)

        tb.addActions(grp.actions())
        menu.addActions(grp.actions())
        menu.addSeparator()

        pix = QPixmap(16, 16)
        pix.fill(Qt.black)
        self.actionTextColor = QAction(QIcon(pix), "&Color...", self,
                triggered=self.textColor)
        tb.addAction(self.actionTextColor)
        menu.addAction(self.actionTextColor)

        tb = QToolBar(self)
        tb.setAllowedAreas(Qt.TopToolBarArea | Qt.BottomToolBarArea)
        tb.setWindowTitle("Format Actions")
        self.addToolBarBreak(Qt.TopToolBarArea)
        self.addToolBar(tb)

        comboStyle = QComboBox(tb)
        tb.addWidget(comboStyle)
        comboStyle.addItem("Standard")
        comboStyle.addItem("Bullet List (Disc)")
        comboStyle.addItem("Bullet List (Circle)")
        comboStyle.addItem("Bullet List (Square)")
        comboStyle.addItem("Ordered List (Decimal)")
        comboStyle.addItem("Ordered List (Alpha lower)")
        comboStyle.addItem("Ordered List (Alpha upper)")
        comboStyle.addItem("Ordered List (Roman lower)")
        comboStyle.addItem("Ordered List (Roman upper)")
        comboStyle.activated.connect(self.textStyle)

        self.comboFont = QFontComboBox(tb)
        tb.addWidget(self.comboFont)
        self.comboFont.activated[str].connect(self.textFamily)

        self.comboSize = QComboBox(tb)
        self.comboSize.setObjectName("comboSize")
        tb.addWidget(self.comboSize)
        self.comboSize.setEditable(True)

        db = QFontDatabase()
        for size in db.standardSizes():
            self.comboSize.addItem("%s" % (size))

        self.comboSize.activated[str].connect(self.textSize)
        self.comboSize.setCurrentIndex(
                self.comboSize.findText(
                        "%s" % (QApplication.font().pointSize())))
Beispiel #39
0
class GalleryLists(QListWidget):
	CREATE_LIST_TYPE = misc.CustomListItem.UserType+1
	GALLERY_LIST_CLICKED = pyqtSignal(gallerydb.GalleryList)
	GALLERY_LIST_REMOVED = pyqtSignal()
	def __init__(self, parent):
		super().__init__(parent)
		self._g_list_icon = QIcon(app_constants.GLIST_PATH)
		self._font_selected = QFont(self.font())
		self._font_selected.setBold(True)
		self._font_selected.setUnderline(True)
		self.itemDoubleClicked.connect(self._item_double_clicked)
		self.setItemDelegate(ListDelegate(self))
		self.itemDelegate().closeEditor.connect(self._add_new_list)
		self.setEditTriggers(self.NoEditTriggers)
		self._in_proccess_item = None
		self.current_selected = None

	def _add_new_list(self, lineedit=None, hint=None, gallery_list=None):
		if not self._in_proccess_item.text():
			self.takeItem(self.row(self._in_proccess_item))
			return
		new_item = self._in_proccess_item
		if not gallery_list:
			new_list = gallerydb.GalleryList(new_item.text())
			new_list.add_to_db()
		else:
			new_list = gallery_list
		new_item.item = new_list
		new_item.setIcon(self._g_list_icon)
		self.sortItems()

	def create_new_list(self, name=None, gallery_list=None):
		new_item = misc.CustomListItem()
		self._in_proccess_item = new_item
		new_item.setFlags(new_item.flags() | Qt.ItemIsEditable)
		new_item.setIcon(QIcon(app_constants.LIST_PATH))
		self.insertItem(0, new_item)
		if name:
			new_item.setText(name)
			self._add_new_list(gallery_list=gallery_list)
		else:
			self.editItem(new_item)

	def _item_double_clicked(self, item):
		if item:
			if item.type() == self.CREATE_LIST_TYPE:
				self.create_new_list()
			else:
				self._reset_selected()
				if item.item.filter:
					gallerydb.add_method_queue(item.item.scan, True)
				self.GALLERY_LIST_CLICKED.emit(item.item)
				item.setFont(self._font_selected)
				self.current_selected = item

	def _reset_selected(self):
		if self.current_selected:
			self.current_selected.setFont(self.font())

	def setup_lists(self):
		for g_l in app_constants.GALLERY_LISTS:
			self.create_new_list(g_l.name, g_l)

	def contextMenuEvent(self, event):
		item = self.itemAt(event.pos())
		if item and item.type() != self.CREATE_LIST_TYPE:
			menu = GalleryListContextMenu(item, self)
			menu.exec_(event.globalPos())
			event.accept()
			return
		event.ignore()