|
|
|
@ -28,6 +28,8 @@
@@ -28,6 +28,8 @@
|
|
|
|
|
#include "src/model/group.h" |
|
|
|
|
#include "src/model/status.h" |
|
|
|
|
#include "src/persistence/settings.h" |
|
|
|
|
#include "src/widget/categorywidget.h" |
|
|
|
|
|
|
|
|
|
#include <QDragEnterEvent> |
|
|
|
|
#include <QDragLeaveEvent> |
|
|
|
|
#include <QGridLayout> |
|
|
|
@ -263,16 +265,20 @@ void FriendListWidget::moveFriends(QLayout* layout)
@@ -263,16 +265,20 @@ void FriendListWidget::moveFriends(QLayout* layout)
|
|
|
|
|
circleWidget->moveFriendWidgets(this); |
|
|
|
|
} else if (friendWidget) { |
|
|
|
|
const Friend* contact = friendWidget->getFriend(); |
|
|
|
|
const auto activityTime = getActiveTimeFriend(contact); |
|
|
|
|
int timeIndex = static_cast<int>(getTimeBucket(activityTime)); |
|
|
|
|
|
|
|
|
|
QWidget* w = activityLayout->itemAt(timeIndex)->widget(); |
|
|
|
|
CategoryWidget* categoryWidget = qobject_cast<CategoryWidget*>(w); |
|
|
|
|
auto* categoryWidget = getTimeCategoryWidget(contact); |
|
|
|
|
categoryWidget->addFriendWidget(friendWidget, contact->getStatus()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
CategoryWidget* FriendListWidget::getTimeCategoryWidget(const Friend* frd) const |
|
|
|
|
{ |
|
|
|
|
const auto activityTime = getActiveTimeFriend(frd); |
|
|
|
|
int timeIndex = static_cast<int>(getTimeBucket(activityTime)); |
|
|
|
|
QWidget* widget = activityLayout->itemAt(timeIndex)->widget(); |
|
|
|
|
return qobject_cast<CategoryWidget*>(widget); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
FriendListWidget::Mode FriendListWidget::getMode() const |
|
|
|
|
{ |
|
|
|
|
return mode; |
|
|
|
@ -309,10 +315,7 @@ void FriendListWidget::removeFriendWidget(FriendWidget* w)
@@ -309,10 +315,7 @@ void FriendListWidget::removeFriendWidget(FriendWidget* w)
|
|
|
|
|
{ |
|
|
|
|
const Friend* contact = w->getFriend(); |
|
|
|
|
if (mode == Activity) { |
|
|
|
|
const auto activityTime = getActiveTimeFriend(contact); |
|
|
|
|
int timeIndex = static_cast<int>(getTimeBucket(activityTime)); |
|
|
|
|
QWidget* widget = activityLayout->itemAt(timeIndex)->widget(); |
|
|
|
|
CategoryWidget* categoryWidget = qobject_cast<CategoryWidget*>(widget); |
|
|
|
|
auto* categoryWidget = getTimeCategoryWidget(contact); |
|
|
|
|
categoryWidget->removeFriendWidget(w, contact->getStatus()); |
|
|
|
|
categoryWidget->setVisible(categoryWidget->hasChatrooms()); |
|
|
|
|
} else { |
|
|
|
@ -401,10 +404,7 @@ void FriendListWidget::onFriendWidgetRenamed(FriendWidget* friendWidget)
@@ -401,10 +404,7 @@ void FriendListWidget::onFriendWidgetRenamed(FriendWidget* friendWidget)
|
|
|
|
|
const Friend* contact = friendWidget->getFriend(); |
|
|
|
|
auto status = contact->getStatus(); |
|
|
|
|
if (mode == Activity) { |
|
|
|
|
const auto activityTime = getActiveTimeFriend(contact); |
|
|
|
|
int timeIndex = static_cast<int>(getTimeBucket(activityTime)); |
|
|
|
|
QWidget* widget = activityLayout->itemAt(timeIndex)->widget(); |
|
|
|
|
CategoryWidget* categoryWidget = qobject_cast<CategoryWidget*>(widget); |
|
|
|
|
auto* categoryWidget = getTimeCategoryWidget(contact); |
|
|
|
|
categoryWidget->removeFriendWidget(friendWidget, status); |
|
|
|
|
categoryWidget->addFriendWidget(friendWidget, status); |
|
|
|
|
} else { |
|
|
|
@ -473,7 +473,7 @@ void FriendListWidget::cycleContacts(GenericChatroomWidget* activeChatroomWidget
@@ -473,7 +473,7 @@ void FriendListWidget::cycleContacts(GenericChatroomWidget* activeChatroomWidget
|
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
widget = activityLayout->itemAt(index)->widget(); |
|
|
|
|
auto* widget = activityLayout->itemAt(index)->widget(); |
|
|
|
|
categoryWidget = qobject_cast<CategoryWidget*>(widget); |
|
|
|
|
|
|
|
|
|
if (categoryWidget != nullptr) { |
|
|
|
@ -627,10 +627,7 @@ void FriendListWidget::moveWidget(FriendWidget* widget, Status::Status s, bool a
@@ -627,10 +627,7 @@ void FriendListWidget::moveWidget(FriendWidget* widget, Status::Status s, bool a
|
|
|
|
|
circleWidget->addFriendWidget(widget, s); |
|
|
|
|
} else { |
|
|
|
|
const Friend* contact = widget->getFriend(); |
|
|
|
|
const auto activityTime = getActiveTimeFriend(contact); |
|
|
|
|
int timeIndex = static_cast<int>(getTimeBucket(activityTime)); |
|
|
|
|
QWidget* w = activityLayout->itemAt(timeIndex)->widget(); |
|
|
|
|
CategoryWidget* categoryWidget = qobject_cast<CategoryWidget*>(w); |
|
|
|
|
auto* categoryWidget = getTimeCategoryWidget(contact); |
|
|
|
|
categoryWidget->addFriendWidget(widget, contact->getStatus()); |
|
|
|
|
categoryWidget->show(); |
|
|
|
|
} |
|
|
|
|