コード例 #1
0
    def loadForum(self):
        """
        loads the forum
        """
        self.apply_new_reads()
        self.clear()
        user = self.forum_user()
        if not user:
            QtWidgets.QMessageBox.warning(self, _("Sorry"), _("Anonymous browsing of the forum is not supported"))
            return
        else:
            self.browser_user_label.setText("%s %s" % (_("Browing Forum as"), user))

        self.wait()
        twidg = self.tree_widget
        posts = forum.getPosts(user, self.show_deleted_cb.isChecked())
        parentItems = {None: twidg}

        alt_bg = False
        for post in posts:
            try:
                parentItem = parentItems[post.parent_ix]
                brush = parentItem.background(0)
            except KeyError:
                parentItem = twidg
                alt_bg = not alt_bg
                brush = self.ALT_BRUSH if alt_bg else self.NORM_BRUSH
            item = QtWidgets.QTreeWidgetItem(parentItem)
            item.setText(0, post.topic)
            item.setData(0, QtCore.Qt.UserRole, post)
            item.setText(1, post.inits)
            if post.recipient:
                item.setText(2, post.recipient)
            else:
                item.setText(2, "-")

            item.setText(3, localsettings.readableDateTime(post.date))

            item.setText(4, post.briefcomment)
            if parentItem == twidg:
                item.setIcon(0, self.new_topic_button.icon())

            if post.recipient == user:
                item.setForeground(2, self.BLUE_BRUSH)
            if post.inits == user:
                item.setForeground(1, self.BLUE_BRUSH)
            post_is_read = post.ix in self.read_ids.union(self.new_read_ids)
            for i in range(5):
                item.setBackground(i, brush)
                if not post_is_read:
                    item.setFont(i, self.bold_font)
                if post.important:
                    item.setForeground(i, self.RED_BRUSH)
            parentItems[post.ix] = item

        twidg.expandAll()

        for i in range(twidg.columnCount()):
            twidg.resizeColumnToContents(i)

        self.wait(False)

        twidg.verticalScrollBar().setValue(twidg.verticalScrollBar().maximum())
コード例 #2
0
ファイル: forum_gui_module.py プロジェクト: fuinha/openmolar1
def loadForum(om_gui):
    '''
    loads the forum
    '''
    twidg = om_gui.ui.forum_treeWidget
    twidg.clear()
    twidg.setSortingEnabled(False)
    chosen = om_gui.ui.forumViewFilter_comboBox.currentText()
    GROUP_TOPICS = om_gui.ui.group_replies_radioButton.isChecked()
    #-- set the column headers (stored in another module)
    headers = forum.headers
    twidg.setHeaderLabels(headers)
    #-- get the posts
    show_closed = om_gui.ui.forum_deletedposts_checkBox.isChecked()
    if chosen != _("Everyone"):
        posts = forum.getPosts(chosen, show_closed)
    else:
        posts = forum.getPosts(None, show_closed)

    parentItems = {None: twidg}

    #--set a boolean for alternating row colours
    highlighted = True
    for post in posts:
        if GROUP_TOPICS:
            parentItem = parentItems.get(post.parent_ix, twidg)
        else:
            parentItem = twidg
        item = QtGui.QTreeWidgetItem(parentItem)
        item.setText(0, post.topic)
        item.setData(1, QtCore.Qt.DisplayRole, post.ix)
        item.setText(2, post.inits)
        if post.recipient:
            item.setText(3, post.recipient)
        else:
            item.setText(3, "-")

        d = QtCore.QDateTime(post.date)
        item.setData(4, QtCore.Qt.DisplayRole, QtCore.QVariant(d))

        item.setText(5, post.comment)
        item.setText(6, post.briefcomment)
        # item.setData(7, QtCore.Qt.DisplayRole, post.parent_ix)

        # if parentItem == twidg:
        #    highlighted = not highlighted
        #    if highlighted:
        #        bcolour = twidg.palette().base()
        #    else:
        #        bcolour = twidg.palette().alternateBase()
        # else:
        # bcolour = QtGui.QColor("red")#parentItem.background(0)

        if parentItem == twidg:
            item.setIcon(0, om_gui.ui.forumNewTopic_pushButton.icon())

        for i in range(item.columnCount()):
            # item.setBackground(i,bcolour)
            if i == 4:  # date
                if post.date > (localsettings.currentTime() -
                                datetime.timedelta(hours=36)):
                    item.setIcon(i, om_gui.ui.forumNewTopic_pushButton.icon())
                    item.setTextColor(i, QtGui.QColor("orange"))
                # TODO - put in some code to set the text for "today"
                # or yesterday etc...
        if GROUP_TOPICS:
            parentItems[post.ix] = item

    twidg.expandAll()

    twidg.setSortingEnabled(True)
    # if GROUP_TOPICS:
    #    twidg.sortByColumn(7)
    # else:
    twidg.sortByColumn(4, QtCore.Qt.AscendingOrder)

    for i in range(twidg.columnCount()):
        twidg.resizeColumnToContents(i)
    twidg.setColumnWidth(1, 0)
    twidg.setColumnWidth(5, 0)
    # twidg.setColumnWidth(7, 0)

    om_gui.ui.forumDelete_pushButton.setEnabled(False)
    om_gui.ui.forumReply_pushButton.setEnabled(False)
    om_gui.ui.forumParent_pushButton.setEnabled(False)
コード例 #3
0
ファイル: forum_widget.py プロジェクト: vomae/openmolar1
    def loadForum(self):
        '''
        loads the forum
        '''
        self.apply_new_reads()
        self.clear()
        user = self.forum_user()
        if not user:
            QtWidgets.QMessageBox.warning(
                self, _("Sorry"),
                _("Anonymous browsing of the forum is not supported"))
            return
        else:
            self.browser_user_label.setText("%s %s" %
                                            (_("Browing Forum as"), user))

        self.wait()
        twidg = self.tree_widget
        posts = forum.getPosts(user, self.show_deleted_cb.isChecked())
        parentItems = {None: twidg}

        alt_bg = False
        for post in posts:
            try:
                parentItem = parentItems[post.parent_ix]
                brush = parentItem.background(0)
            except KeyError:
                parentItem = twidg
                alt_bg = not alt_bg
                brush = self.ALT_BRUSH if alt_bg else self.NORM_BRUSH
            item = QtWidgets.QTreeWidgetItem(parentItem)
            item.setText(0, post.topic)
            item.setData(0, QtCore.Qt.UserRole, post)
            item.setText(1, post.inits)
            if post.recipient:
                item.setText(2, post.recipient)
            else:
                item.setText(2, "-")

            item.setText(3, localsettings.readableDateTime(post.date))

            item.setText(4, post.briefcomment)
            if parentItem == twidg:
                item.setIcon(0, self.new_topic_button.icon())

            if post.recipient == user:
                item.setForeground(2, self.BLUE_BRUSH)
            if post.inits == user:
                item.setForeground(1, self.BLUE_BRUSH)
            post_is_read = post.ix in self.read_ids.union(self.new_read_ids)
            for i in range(5):
                item.setBackground(i, brush)
                if not post_is_read:
                    item.setFont(i, self.bold_font)
                if post.important:
                    item.setForeground(i, self.RED_BRUSH)
            parentItems[post.ix] = item

        twidg.expandAll()

        for i in range(twidg.columnCount()):
            twidg.resizeColumnToContents(i)

        self.wait(False)

        twidg.verticalScrollBar().setValue(twidg.verticalScrollBar().maximum())