loadBoard(m_boardUrl, false);
}
+// used to sort rows
enum {
Thread_Old,
Thread_Readed,
for (int i = 0, j = subjectList->rowCount(); i < j; i++) {
if (subjectList->item(i, ColumnDatUrl)->text() == datUrl.prettyUrl()) {
- switch (subjectList->item(i, ColumnMarkOrder)->text().toInt()) {
+ switch (subjectList->item(i, ColumnMark)->data(Qt::UserRole)
+ .toInt()) {
case Thread_Readed:
case Thread_Read:
m_readNum--;
->setText(QString(" %1 ").arg(speed, 0, 'f', 2));
/* set mark order */
-
+ QTableWidgetItem *item = subjectList->item(row, ColumnMark);
+ int orderValue;
if (!id) { /* old thread */
- subjectList->item(row, ColumnMarkOrder)
- ->setText(QString::number(Thread_Old));
+ orderValue = Thread_Old;
} else if (readNum > 0 && (resNum > readNum || resNum > viewPos)) {
/* There are new responses. */
- subjectList->item(row, ColumnMark)->setIcon(QIcon(SmallIcon("unread")));
+ item->setIcon(QIcon(SmallIcon("unread")));
m_unreadNum++;
- subjectList->item(row, ColumnMarkOrder)
- ->setText(QString::number(Thread_HasUnread));
+ orderValue = Thread_HasUnread;
} else if (readNum > 0) { /* Cache exists */
- subjectList->item(row, ColumnMark)->setIcon(QIcon(SmallIcon("read")));
+ item->setIcon(QIcon(SmallIcon("read")));
m_readNum++;
- subjectList->item(row, ColumnMarkOrder)
- ->setText(QString::number((viewPos > 1000)
- ? Thread_Readed : Thread_Read));
+ orderValue = (viewPos > 1000) ? Thread_Readed : Thread_Read;
} else if (since.secsTo(current) < 3600 * GlobalConfig::markTime()) {
/* new thread */
- subjectList->item(row, ColumnMark)
- ->setIcon(QIcon(SmallIcon("newthread")));
+ item->setIcon(QIcon(SmallIcon("newthread")));
m_newNum++;
- subjectList->item(row, ColumnMarkOrder)
- ->setText(QString::number(Thread_New));
+ orderValue = Thread_New;
} else { /* normal */
- subjectList->item(row, ColumnMarkOrder)
- ->setText(QString::number(Thread_Normal));
- subjectList->item(row, ColumnMark)->setIcon(QIcon());
+ item->setIcon(QIcon());
+ orderValue = Thread_Normal;
}
+ item->setData(Qt::UserRole, orderValue);
// no effect: m_unreadNum, m_readNum, m_newNum, markOrder
if (datManager.isMainThreadOpened() && resNum == readNum) {
"ColumnBoard", false },
{ I18N_NOOP2("@title:column", "Dat URL"), I18N_NOOP("DatURL"),
"ColumnDatUrl", false },
- { I18N_NOOP2("@title:column", "Mark Order"), I18N_NOOP("MarkOrder"),
- "ColumnMarkOrder", false },
{ I18N_NOOP2("@title:column", "ID Order"), I18N_NOOP("IDOrder"),
"ColumnIdOrder", false }
};
{
KMenu popup;
for (int i = ColumnBegin; i <= ColumnEnd; i++) {
- if (i != ColumnSubject && i != ColumnMarkOrder && i != ColumnIdOrder) {
+ if (i != ColumnSubject && i != ColumnIdOrder) {
KAction* action = new KAction(i18n(attribute[i].itemName), this);
action->setCheckable(true);
action->setChecked(!isSectionHidden(i));