예제 #1
0
    def create_ui_raw(self):

        self.setMinimumWidth(260)
        self.setMinimumHeight(40)

        self.main_layout = QtGui.QHBoxLayout(self)
        self.main_layout.setContentsMargins(0, 0, 0, 0)
        self.main_layout.setSpacing(0)

        self.text_area = QtGui.QTextBrowser()
        self.text_area.setMinimumWidth(40)
        self.text_area.setOpenExternalLinks(True)
        self.text_area.setFrameShape(QtGui.QFrame.NoFrame)
        self.text_area.setHorizontalScrollBarPolicy(
            QtCore.Qt.ScrollBarAlwaysOff)
        self.text_area.setTextInteractionFlags(
            QtCore.Qt.LinksAccessibleByMouse
            | QtCore.Qt.TextSelectableByKeyboard
            | QtCore.Qt.TextSelectableByMouse
            | QtCore.Qt.LinksAccessibleByMouse
            | QtCore.Qt.LinksAccessibleByKeyboard)

        self.user_icon_widget = Ui_userIconWidget(self.login)

        self.user_icon_layout = QtGui.QVBoxLayout()
        self.user_icon_layout.setContentsMargins(0, 0, 0, 0)
        self.user_icon_layout.setSpacing(0)
        spacerItem = QtGui.QSpacerItem(0, 0, QtGui.QSizePolicy.Minimum,
                                       QtGui.QSizePolicy.Expanding)
        self.user_icon_layout.addItem(spacerItem)
        self.user_icon_layout.addWidget(self.user_icon_widget)

        if self.message_type == 'in':
            self.main_layout.addLayout(self.user_icon_layout)
            self.main_layout.addWidget(self.text_area)
            spacerItem = QtGui.QSpacerItem(0, 0, QtGui.QSizePolicy.Expanding,
                                           QtGui.QSizePolicy.Minimum)
            self.main_layout.addItem(spacerItem)

            self.main_layout.setStretch(0, 0)
            self.main_layout.setStretch(1, 0)
            self.main_layout.setStretch(2, 1)

        if self.message_type == 'out':
            spacerItem = QtGui.QSpacerItem(0, 0, QtGui.QSizePolicy.Expanding,
                                           QtGui.QSizePolicy.Minimum)
            self.main_layout.addItem(spacerItem)
            self.main_layout.addWidget(self.text_area)
            self.main_layout.addLayout(self.user_icon_layout)
            self.main_layout.setStretch(0, 1)
            self.main_layout.setStretch(1, 0)
            self.main_layout.setStretch(2, 0)

        self.overlay_widget = QtGui.QWidget(self.text_area)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred,
                                       QtGui.QSizePolicy.Preferred)
        self.overlay_widget.setSizePolicy(sizePolicy)

        self.overlay_layout = QtGui.QGridLayout(self.overlay_widget)
        self.overlay_layout.setSpacing(0)
        self.overlay_layout.setContentsMargins(0, 0, 0, 0)

        self.overlay_widget.setLayout(self.overlay_layout)

        self.user_label = QtGui.QLabel()
        self.user_label.setStyleSheet(
            'QLabel {padding-left: 8px; font-size: 10pt; color: grey;}')

        self.overlay_layout.addWidget(self.user_label, 0, 0, 1, 1)
        corner = QtGui.QWidget()
        corner.setFixedSize(34, 34)
        self.overlay_layout.addWidget(corner, 0, 1, 1, 1)
        spacerItem = QtGui.QSpacerItem(0, 0, QtGui.QSizePolicy.Minimum,
                                       QtGui.QSizePolicy.Expanding)
        self.overlay_layout.addItem(spacerItem, 1, 0, 1, 2)

        self.date_label = QtGui.QLabel()
        self.date_label.enterEvent = self.date_label_enter_event
        self.date_label.leaveEvent = self.date_label_leave_event
        self.date_label.setAlignment(QtCore.Qt.AlignRight
                                     | QtCore.Qt.AlignTrailing
                                     | QtCore.Qt.AlignVCenter)
        self.date_label.setStyleSheet(
            'QLabel {padding-right: 8px; padding-bottom: 8px; font-size: 10pt; color: grey;}'
        )
        self.overlay_layout.addWidget(self.date_label, 2, 0, 1, 2)

        self.overlay_widget.raise_()
예제 #2
0
    def create_ui_raw(self):

        self.setObjectName('messageWidget')
        self.setMinimumWidth(300)
        self.setMinimumHeight(40)

        self.main_layout = QtGui.QHBoxLayout(self)
        self.main_layout.setContentsMargins(0, 0, 0, 0)
        self.main_layout.setSpacing(0)

        self.message_layout = QtGui.QVBoxLayout()
        self.message_layout.setContentsMargins(0, 0, 0, 0)
        self.message_layout.setSpacing(0)

        self.attachments_layout = QtGui.QVBoxLayout()
        self.attachments_layout.setAlignment(QtCore.Qt.AlignLeft)
        self.attachments_layout.setContentsMargins(9, 0, 9, 10)
        self.attachments_layout.setSpacing(10)

        self.message_frame = QtGui.QFrame()
        self.message_frame.setLayout(self.message_layout)
        self.message_frame.setObjectName('message_frame')
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred,
                                       QtGui.QSizePolicy.Preferred)
        self.message_frame.setSizePolicy(sizePolicy)

        self.text_area = QtGui.QTextBrowser()
        self.text_area.setMinimumWidth(300)
        self.text_area.setOpenExternalLinks(True)
        self.text_area.setFrameShape(QtGui.QFrame.NoFrame)
        self.text_area.setHorizontalScrollBarPolicy(
            QtCore.Qt.ScrollBarAlwaysOff)
        self.text_area.setTextInteractionFlags(
            QtCore.Qt.LinksAccessibleByMouse
            | QtCore.Qt.TextSelectableByKeyboard
            | QtCore.Qt.TextSelectableByMouse
            | QtCore.Qt.LinksAccessibleByMouse
            | QtCore.Qt.LinksAccessibleByKeyboard)

        self.message_layout.addWidget(self.text_area)
        self.message_layout.addLayout(self.attachments_layout)

        self.user_icon_widget = Ui_userIconWidget(self.login)

        self.user_icon_layout = QtGui.QVBoxLayout()
        self.user_icon_layout.setContentsMargins(0, 0, 0, 0)
        self.user_icon_layout.setSpacing(0)
        spacerItem = QtGui.QSpacerItem(0, 0, QtGui.QSizePolicy.Minimum,
                                       QtGui.QSizePolicy.Expanding)
        self.user_icon_layout.addItem(spacerItem)
        self.user_icon_layout.addWidget(self.user_icon_widget)

        if self.message_type == 'in':
            self.main_layout.addLayout(self.user_icon_layout)
            self.main_layout.addWidget(self.message_frame)
            spacerItem = QtGui.QSpacerItem(0, 0, QtGui.QSizePolicy.Expanding,
                                           QtGui.QSizePolicy.Minimum)
            self.main_layout.addItem(spacerItem)

            self.main_layout.setStretch(0, 0)
            self.main_layout.setStretch(1, 0)
            self.main_layout.setStretch(2, 1)

        if self.message_type == 'out':
            spacerItem = QtGui.QSpacerItem(0, 0, QtGui.QSizePolicy.Expanding,
                                           QtGui.QSizePolicy.Minimum)
            self.main_layout.addItem(spacerItem)
            self.main_layout.addWidget(self.message_frame)
            self.main_layout.addLayout(self.user_icon_layout)
            self.main_layout.setStretch(0, 1)
            self.main_layout.setStretch(1, 0)
            self.main_layout.setStretch(2, 0)

        self.overlay_widget = QtGui.QWidget(self.message_frame)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred,
                                       QtGui.QSizePolicy.Preferred)
        self.overlay_widget.setSizePolicy(sizePolicy)

        self.overlay_layout = QtGui.QGridLayout(self.overlay_widget)
        self.overlay_layout.setSpacing(0)
        self.overlay_layout.setContentsMargins(0, 0, 0, 0)

        self.overlay_widget.setLayout(self.overlay_layout)

        self.user_label = QtGui.QLabel()
        self.user_label.setStyleSheet(
            'QLabel {padding-left: 8px; font-size: 10pt; color: grey;}')

        self.overlay_layout.addWidget(self.user_label, 0, 0, 1, 1)
        self.message_options_button = StyledToolButton(size='small')
        self.message_options_button.setParent(self.message_frame)
        self.message_options_button.setIcon(
            gf.get_icon('dots-vertical', icons_set='mdi', scale_factor=1.2))
        self.overlay_layout.addWidget(self.message_options_button, 0, 1, 1, 1)

        spacerItem = QtGui.QSpacerItem(0, 0, QtGui.QSizePolicy.Minimum,
                                       QtGui.QSizePolicy.Expanding)
        self.overlay_layout.addItem(spacerItem, 1, 0, 1, 2)

        self.date_label = QtGui.QLabel()
        self.date_label.enterEvent = self.date_label_enter_event
        self.date_label.leaveEvent = self.date_label_leave_event
        self.date_label.setAlignment(QtCore.Qt.AlignRight
                                     | QtCore.Qt.AlignTrailing
                                     | QtCore.Qt.AlignVCenter)
        self.date_label.setStyleSheet(
            'QLabel {padding-right: 8px; padding-bottom: 8px; font-size: 10pt; color: grey;}'
        )
        self.overlay_layout.addWidget(self.date_label, 2, 0, 1, 2)

        self.overlay_widget.raise_()