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())
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)
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())