/******************************************************************************* * gui/feeds/FeedItem.cpp * * * * Copyright (c) 2014, Retroshare Team * * * * This program is free software: you can redistribute it and/or modify * * it under the terms of the GNU Affero General Public License as * * published by the Free Software Foundation, either version 3 of the * * License, or (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU Affero General Public License for more details. * * * * You should have received a copy of the GNU Affero General Public License * * along with this program. If not, see . * * * *******************************************************************************/ #include #include "FeedItem.h" #include "FeedHolder.h" /** Constructor */ FeedItem::FeedItem(FeedHolder *fh, uint32_t feedId, QWidget *parent) : QWidget(parent), mHash(0),mFeedHolder(fh),mFeedId(feedId) { mWasExpanded = false; } FeedItem::~FeedItem() { } void FeedItem::expand(bool open) { if (open) { expandFill(!mWasExpanded); } doExpand(open); if (open) { mWasExpanded = true; } } uint64_t FeedItem::hash_64bits(const std::string& s) const { if(mHash == 0) mHash = hash64(s); return mHash; } uint64_t FeedItem::hash64(const std::string& s) { uint64_t hash = 0x01110bbfa09; for(uint32_t i=0;i> 3)) + s[i]*0x217898fbba7 + 0x0294379); return hash; } void FeedItem::removeItem() { #ifdef DEBUG_ITEM std::cerr << "MsgItem::removeItem()"; std::cerr << std::endl; #endif mFeedHolder->deleteFeedItem(this,0); }