Browse Source

refactor(time): Make enum class

reviewable/pr4320/r1
Diadlo 8 years ago
parent
commit
15a385ba75
No known key found for this signature in database
GPG Key ID: 5AF9F2E29107C727
  1. 65
      src/widget/friendlistwidget.cpp

65
src/widget/friendlistwidget.cpp

@ -33,25 +33,27 @@ @@ -33,25 +33,27 @@
#include <QTimer>
#include <cassert>
enum Time : int
enum class Time
{
Today = 0,
Yesterday = 1,
ThisWeek = 2,
ThisMonth = 3,
Month1Ago = 4,
Month2Ago = 5,
Month3Ago = 6,
Month4Ago = 7,
Month5Ago = 8,
LongAgo = 9,
Never = 10
Today,
Yesterday,
ThisWeek,
ThisMonth,
Month1Ago,
Month2Ago,
Month3Ago,
Month4Ago,
Month5Ago,
LongAgo,
Never
};
static const int LAST_TIME = static_cast<int>(Time::Never);
Time getTime(const QDate& date)
{
if (date == QDate()) {
return Never;
return Time::Never;
}
QDate today = QDate::currentDate();
@ -73,7 +75,7 @@ Time getTime(const QDate& date) @@ -73,7 +75,7 @@ Time getTime(const QDate& date)
}
}
return LongAgo;
return Time::LongAgo;
}
QDate getDateFriend(Friend* contact)
@ -207,7 +209,7 @@ void FriendListWidget::setMode(Mode mode) @@ -207,7 +209,7 @@ void FriendListWidget::setMode(Mode mode)
#undef COMMENT
activityLayout = new QVBoxLayout();
for (int t = Today; t <= Never; ++t) {
for (Time t : names.keys()) {
CategoryWidget* category = new CategoryWidget(this);
category->setName(names[t]);
activityLayout->addWidget(category);
@ -256,7 +258,7 @@ void FriendListWidget::moveFriends(QLayout* layout) @@ -256,7 +258,7 @@ void FriendListWidget::moveFriends(QLayout* layout)
int friendId = friendWidget->friendId;
Friend* contact = FriendList::findFriend(friendId);
QDate activityDate = getDateFriend(contact);
Time time = getTime(activityDate);
int time = static_cast<int>(getTime(activityDate));
QWidget* w = activityLayout->itemAt(time)->widget();
CategoryWidget* categoryWidget = qobject_cast<CategoryWidget*>(w);
@ -290,9 +292,9 @@ void FriendListWidget::removeFriendWidget(FriendWidget* w) @@ -290,9 +292,9 @@ void FriendListWidget::removeFriendWidget(FriendWidget* w)
Friend* contact = FriendList::findFriend(w->friendId);
if (mode == Activity) {
QDate activityDate = getDateFriend(contact);
Time time = getTime(activityDate);
CategoryWidget* categoryWidget =
qobject_cast<CategoryWidget*>(activityLayout->itemAt(time)->widget());
int time = static_cast<int>(getTime(activityDate));
QWidget* widget = activityLayout->itemAt(time)->widget();
CategoryWidget* categoryWidget = qobject_cast<CategoryWidget*>(widget);
categoryWidget->removeFriendWidget(w, contact->getStatus());
categoryWidget->setVisible(categoryWidget->hasChatrooms());
} else {
@ -407,9 +409,9 @@ void FriendListWidget::cycleContacts(GenericChatroomWidget* activeChatroomWidget @@ -407,9 +409,9 @@ void FriendListWidget::cycleContacts(GenericChatroomWidget* activeChatroomWidget
return;
QDate activityDate = getDateFriend(FriendList::findFriend(friendWidget->friendId));
index = getTime(activityDate);
CategoryWidget* categoryWidget =
qobject_cast<CategoryWidget*>(activityLayout->itemAt(index)->widget());
index = static_cast<int>(getTime(activityDate));
QWidget* widget = activityLayout->itemAt(index)->widget();
CategoryWidget* categoryWidget = qobject_cast<CategoryWidget*>(widget);
if (categoryWidget == nullptr || categoryWidget->cycleContacts(friendWidget, forward))
return;
@ -418,16 +420,16 @@ void FriendListWidget::cycleContacts(GenericChatroomWidget* activeChatroomWidget @@ -418,16 +420,16 @@ void FriendListWidget::cycleContacts(GenericChatroomWidget* activeChatroomWidget
for (;;) {
// Bounds checking.
if (index < Today) {
index = Never;
if (index < 0) {
index = LAST_TIME;
continue;
} else if (index > Never) {
index = Today;
} else if (index > LAST_TIME) {
index = 0;
continue;
}
CategoryWidget* categoryWidget =
qobject_cast<CategoryWidget*>(activityLayout->itemAt(index)->widget());
widget = activityLayout->itemAt(index)->widget();
categoryWidget = qobject_cast<CategoryWidget*>(widget);
if (categoryWidget != nullptr) {
if (!categoryWidget->cycleContacts(forward)) {
@ -575,7 +577,7 @@ void FriendListWidget::moveWidget(FriendWidget* widget, Status s, bool add) @@ -575,7 +577,7 @@ void FriendListWidget::moveWidget(FriendWidget* widget, Status s, bool add)
} else {
Friend* contact = FriendList::findFriend(widget->friendId);
QDate activityDate = getDateFriend(contact);
Time time = getTime(activityDate);
int time = static_cast<int>(getTime(activityDate));
QWidget* w = activityLayout->itemAt(time)->widget();
CategoryWidget* categoryWidget = qobject_cast<CategoryWidget*>(w);
categoryWidget->addFriendWidget(widget, contact->getStatus());
@ -588,8 +590,9 @@ void FriendListWidget::updateActivityDate(const QDate& date) @@ -588,8 +590,9 @@ void FriendListWidget::updateActivityDate(const QDate& date)
if (mode != Activity)
return;
CategoryWidget* categoryWidget =
static_cast<CategoryWidget*>(activityLayout->itemAt(getTime(date))->widget());
int time = static_cast<int>(getTime(date));
QWidget* widget = activityLayout->itemAt(time)->widget();
CategoryWidget* categoryWidget = static_cast<CategoryWidget*>(widget);
categoryWidget->updateStatus();
categoryWidget->setVisible(categoryWidget->hasChatrooms());

Loading…
Cancel
Save