void UserStatusUpdate::SetCommentsCount(quint64 count) { if (m_CommentsCount != count) { m_CommentsCount = count; emit commentsCountChanged(); } }
void Entry::_setCommentsCount(int tc) { _commentsCount = tc; emit commentsCountChanged(); }
void Entry::init(const QJsonObject& data) { _initBase(data); _createdAt = Tasty::parseDate(data.value("created_at").toString()); _url = data.value("entry_url").toString(); _isVotable = data.value("is_voteable").toBool(); _isFavoritable = data.value("can_favorite").toBool(Tasty::instance()->isAuthorized()); _isFavorited = data.value("is_favorited").toBool(); _isWatchable = data.value("can_watch").toBool(); _isWatched = data.value("is_watching").toBool(); _isPrivate = data.value("is_private").toBool(); _isFixed = data.value("fixed_state").toString() == "fixed"; auto fixDate = data.value("fixed_up_at").toString(); _fixedAt = QDateTime::fromString(fixDate.left(19), "yyyy-MM-ddTHH:mm:ss"); auto me = Tasty::instance()->me(); auto isMy = me && _author->id() == me->id(); _isDeletable = data.value("can_delete").toBool(isMy); _isEditable = data.value("can_edit").toBool(isMy); auto tlogData = data.value("tlog").toObject(); if (_tlog && tlogData.contains("slug")) _tlog->init(tlogData); else _tlog = new Tlog(tlogData, this); // if (data.contains("rating")) // { // if (_rating) // // else // _rating = new Rating(data.value("rating").toObject(), this); // } if (!_rating) _rating = new Rating(this); if (isLoading()) _rating->init(data.value("rating").toObject()); else _rating->setId(_id); _commentsCount = data.value("comments_count").toInt(); if (data.contains("title_truncated")) _truncatedTitle = data.value("title_truncated").toString(); else if (_truncatedTitle.isEmpty()) _truncatedTitle = Tasty::truncateHtml(_title, 100); if (data.contains("text_truncated")) _truncatedText = data.value("text_truncated").toString(); else if (_truncatedText.isEmpty()) _truncatedText = Tasty::truncateHtml(_text, 300); _source = data.value("source").toString(); // quote author delete _media; _media = _type == "video" ? new Media(data.value("iframely").toObject(), this) : nullptr; // music? // _imagePreview = data.value("preview_image").toObject(); QRegularExpression wordRe("\\s[^\\s]+\\s"); QRegularExpression tagRe("<[^>]*>"); // QRegularExpression wordRe("\\b\\w+\\b"); auto content = _title + _text; _wordCount = content.remove(tagRe).count(wordRe); _correctHtml(); pTasty->dataCache()->addEntry(sharedFromThis()); _commentsData = data.value("comments").toArray(); if (_commentsModel && _commentsModel->entryId() == _id) { _commentsModel->init(_commentsData, _commentsCount); _commentsData = QJsonArray(); } auto imageAttach = data.value("image_attachments").toArray(); delete _attachedImagesModel; _attachedImagesModel = new AttachedImagesModel(&imageAttach, this); _rating->reCalcBayes(); emit updated(); emit commentsCountChanged(); }