OSDN Git Service
(root)
/
kita
/
kita.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
7a7dfe6
)
Fix a bug in sorting rows
author
nogu
<nogu@users.sourceforge.jp>
Thu, 11 Feb 2010 02:47:00 +0000
(11:47 +0900)
committer
nogu
<nogu@users.sourceforge.jp>
Thu, 11 Feb 2010 02:58:58 +0000
(11:58 +0900)
kita/src/boardview.cpp
patch
|
blob
|
history
kita/src/threadlistheaderview.cpp
patch
|
blob
|
history
kita/src/threadlistviewitem.cpp
patch
|
blob
|
history
kita/src/threadlistviewitem.h
patch
|
blob
|
history
diff --git
a/kita/src/boardview.cpp
b/kita/src/boardview.cpp
index
371d63b
..
69b040d
100644
(file)
--- a/
kita/src/boardview.cpp
+++ b/
kita/src/boardview.cpp
@@
-90,6
+90,7
@@
void BoardView::toggleShowOldLogs()
loadBoard(m_boardUrl, false);
}
loadBoard(m_boardUrl, false);
}
+// used to sort rows
enum {
Thread_Old,
Thread_Readed,
enum {
Thread_Old,
Thread_Readed,
@@
-214,7
+215,8
@@
void BoardView::slotUpdateSubject(const KUrl& url)
for (int i = 0, j = subjectList->rowCount(); i < j; i++) {
if (subjectList->item(i, ColumnDatUrl)->text() == datUrl.prettyUrl()) {
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--;
case Thread_Readed:
case Thread_Read:
m_readNum--;
@@
-272,34
+274,29
@@
void BoardView::updateRow(int row, const KUrl& datUrl,
->setText(QString(" %1 ").arg(speed, 0, 'f', 2));
/* set mark order */
->setText(QString(" %1 ").arg(speed, 0, 'f', 2));
/* set mark order */
-
+ QTableWidgetItem *item = subjectList->item(row, ColumnMark);
+ int orderValue;
if (!id) { /* old thread */
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. */
} 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++;
m_unreadNum++;
- subjectList->item(row, ColumnMarkOrder)
- ->setText(QString::number(Thread_HasUnread));
+ orderValue = Thread_HasUnread;
} else if (readNum > 0) { /* Cache exists */
} else if (readNum > 0) { /* Cache exists */
-
subjectList->item(row, ColumnMark)
->setIcon(QIcon(SmallIcon("read")));
+
item
->setIcon(QIcon(SmallIcon("read")));
m_readNum++;
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 */
} 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++;
m_newNum++;
- subjectList->item(row, ColumnMarkOrder)
- ->setText(QString::number(Thread_New));
+ orderValue = Thread_New;
} else { /* normal */
} 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) {
// no effect: m_unreadNum, m_readNum, m_newNum, markOrder
if (datManager.isMainThreadOpened() && resNum == readNum) {
diff --git
a/kita/src/threadlistheaderview.cpp
b/kita/src/threadlistheaderview.cpp
index
ce1cb07
..
fcd8134
100644
(file)
--- a/
kita/src/threadlistheaderview.cpp
+++ b/
kita/src/threadlistheaderview.cpp
@@
-47,8
+47,6
@@
const struct ColumnAttribute ThreadListHeaderView::attribute[] = {
"ColumnBoard", false },
{ I18N_NOOP2("@title:column", "Dat URL"), I18N_NOOP("DatURL"),
"ColumnDatUrl", false },
"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 }
};
{ I18N_NOOP2("@title:column", "ID Order"), I18N_NOOP("IDOrder"),
"ColumnIdOrder", false }
};
@@
-66,7
+64,7
@@
void ThreadListHeaderView::contextMenuEvent(QContextMenuEvent *event)
{
KMenu popup;
for (int i = ColumnBegin; i <= ColumnEnd; i++) {
{
KMenu popup;
for (int i = ColumnBegin; i <= ColumnEnd; i++) {
- if (i != ColumnSubject && i != Column
MarkOrder && i != Column
IdOrder) {
+ if (i != ColumnSubject && i != ColumnIdOrder) {
KAction* action = new KAction(i18n(attribute[i].itemName), this);
action->setCheckable(true);
action->setChecked(!isSectionHidden(i));
KAction* action = new KAction(i18n(attribute[i].itemName), this);
action->setCheckable(true);
action->setChecked(!isSectionHidden(i));
diff --git
a/kita/src/threadlistviewitem.cpp
b/kita/src/threadlistviewitem.cpp
index
fdb429f
..
80a115a
100644
(file)
--- a/
kita/src/threadlistviewitem.cpp
+++ b/
kita/src/threadlistviewitem.cpp
@@
-29,7
+29,7
@@
bool ThreadListViewItem::operator<(const QTableWidgetItem& other) const
case ColumnId:
return thisText.toInt() > otherText.toInt();
case ColumnMark:
case ColumnId:
return thisText.toInt() > otherText.toInt();
case ColumnMark:
- return
QString::localeAwareCompare(thisText, otherText) > 0
;
+ return
data(Qt::UserRole).toInt() > other.data(Qt::UserRole).toInt()
;
case ColumnSince:
return QString::localeAwareCompare(thisText, otherText) > 0;
case ColumnSpeed:
case ColumnSince:
return QString::localeAwareCompare(thisText, otherText) > 0;
case ColumnSpeed:
diff --git
a/kita/src/threadlistviewitem.h
b/kita/src/threadlistviewitem.h
index
6a932b2
..
d6eeda5
100644
(file)
--- a/
kita/src/threadlistviewitem.h
+++ b/
kita/src/threadlistviewitem.h
@@
-26,7
+26,6
@@
enum ThreadListCol {
ColumnSpeed,
ColumnBoard,
ColumnDatUrl,
ColumnSpeed,
ColumnBoard,
ColumnDatUrl,
- ColumnMarkOrder,
ColumnIdOrder,
ColumnEnd = ColumnIdOrder
};
ColumnIdOrder,
ColumnEnd = ColumnIdOrder
};