/** Constructor */ ForumMsgItem::ForumMsgItem(FeedHolder *parent, uint32_t feedId, const std::string &forumId, const std::string &postId, bool isHome) :QWidget(NULL), mParent(parent), mFeedId(feedId), mForumId(forumId), mPostId(postId), mIsHome(isHome), mIsTop(false) { /* Invoke the Qt Designer generated object setup routine */ setupUi(this); setAttribute ( Qt::WA_DeleteOnClose, true ); /* general ones */ connect( expandButton, SIGNAL( clicked( void ) ), this, SLOT( toggle ( void ) ) ); connect( clearButton, SIGNAL( clicked( void ) ), this, SLOT( removeItem ( void ) ) ); //connect( gotoButton, SIGNAL( clicked( void ) ), this, SLOT( gotoHome ( void ) ) ); /* specific ones */ connect( unsubscribeButton, SIGNAL( clicked( void ) ), this, SLOT( unsubscribeForum ( void ) ) ); connect( replyButton, SIGNAL( clicked( void ) ), this, SLOT( replyToPost ( void ) ) ); connect( sendButton, SIGNAL( clicked( ) ), this, SLOT( sendMsg() ) ); connect(NotifyQt::getInstance(), SIGNAL(peerHasNewAvatar(const QString&)), this, SLOT(updateAvatar(const QString&))); small(); updateItemStatic(); updateItem(); textEdit->hide(); sendButton->hide(); signedcheckBox->hide(); }
/** Constructor */ MsgItem::MsgItem(FeedHolder *parent, uint32_t feedId, const std::string &msgId, bool isHome) : FeedItem(NULL), mParent(parent), mFeedId(feedId), mMsgId(msgId), mIsHome(isHome) { /* Invoke the Qt Designer generated object setup routine */ setupUi(this); mCloseOnRead = true; setAttribute ( Qt::WA_DeleteOnClose, true ); /* general ones */ connect( expandButton, SIGNAL( clicked( void ) ), this, SLOT( toggle ( void ) ) ); connect( clearButton, SIGNAL( clicked( void ) ), this, SLOT( removeItem ( void ) ) ); //connect( gotoButton, SIGNAL( clicked( void ) ), this, SLOT( gotoHome ( void ) ) ); /* specific ones */ connect(NotifyQt::getInstance(), SIGNAL(messagesChanged()), this, SLOT(checkMessageReadStatus())); connect( playButton, SIGNAL( clicked( void ) ), this, SLOT( playMedia ( void ) ) ); connect( deleteButton, SIGNAL( clicked( void ) ), this, SLOT( deleteMsg ( void ) ) ); connect( replyButton, SIGNAL( clicked( void ) ), this, SLOT( replyMsg ( void ) ) ); expandFrame->hide(); updateItemStatic(); updateItem(); }
void AttachFileItem::Setup() { connect( cancelButton, SIGNAL( clicked( void ) ), this, SLOT( cancel ( void ) ) ); /* once off check - if remote, check if we have it * NB: This check might be expensive - and it'll happen often! */ #ifdef DEBUG_ITEM std::cerr << "AttachFileItem::Setup(): " << mFileName; std::cerr << std::endl; #endif if (mMode == AFI_STATE_REMOTE) { FileInfo fi; FileSearchFlags hintflags = RS_FILE_HINTS_EXTRA | RS_FILE_HINTS_LOCAL | RS_FILE_HINTS_SPEC_ONLY; /* look up path */ if (rsFiles->FileDetails(mFileHash, hintflags, fi)) { #ifdef DEBUG_ITEM std::cerr << "AttachFileItem::Setup() STATE=>Local Found File"; std::cerr << std::endl; std::cerr << "AttachFileItem::Setup() path: " << fi.path; std::cerr << std::endl; #endif mMode = AFI_STATE_LOCAL; mPath = QString::fromUtf8(fi.path.c_str()); } } updateItemStatic(); updateItem(); }
/** Constructor */ MsgItem::MsgItem(FeedHolder *parent, uint32_t feedId, std::string msgId, bool isHome) :QWidget(NULL), mParent(parent), mFeedId(feedId), mMsgId(msgId), mIsHome(isHome) { /* Invoke the Qt Designer generated object setup routine */ setupUi(this); setAttribute ( Qt::WA_DeleteOnClose, true ); /* general ones */ connect( expandButton, SIGNAL( clicked( void ) ), this, SLOT( toggle ( void ) ) ); connect( clearButton, SIGNAL( clicked( void ) ), this, SLOT( removeItem ( void ) ) ); //connect( gotoButton, SIGNAL( clicked( void ) ), this, SLOT( gotoHome ( void ) ) ); /* specific ones */ connect( playButton, SIGNAL( clicked( void ) ), this, SLOT( playMedia ( void ) ) ); connect( deleteButton, SIGNAL( clicked( void ) ), this, SLOT( deleteMsg ( void ) ) ); connect( replyButton, SIGNAL( clicked( void ) ), this, SLOT( replyMsg ( void ) ) ); connect(NotifyQt::getInstance(), SIGNAL(peerHasNewAvatar(const QString&)), this, SLOT(updateAvatar(const QString&))); small(); updateItemStatic(); updateItem(); updateAvatar(QString::fromStdString(mPeerId)); }
/** Constructor */ ChatMsgItem::ChatMsgItem(FeedHolder *parent, uint32_t feedId, const std::string &peerId, const std::string &message) :QWidget(NULL), mParent(parent), mFeedId(feedId), mPeerId(peerId) { /* Invoke the Qt Designer generated object setup routine */ setupUi(this); messageFrame->setVisible(false); sendButton->hide(); cancelButton->hide(); sendButton->setEnabled(false); /* general ones */ connect( clearButton, SIGNAL( clicked( void ) ), this, SLOT( removeItem ( void ) ) ); /* specific ones */ connect( chatButton, SIGNAL( clicked( void ) ), this, SLOT( openChat ( void ) ) ); connect( msgButton, SIGNAL( clicked( void ) ), this, SLOT( sendMsg ( void ) ) ); connect( quickmsgButton, SIGNAL( clicked( ) ), this, SLOT( togglequickmessage() ) ); connect( cancelButton, SIGNAL( clicked( ) ), this, SLOT( togglequickmessage() ) ); connect( sendButton, SIGNAL( clicked( ) ), this, SLOT( sendMessage() ) ); connect(NotifyQt::getInstance(), SIGNAL(peerHasNewAvatar(const QString&)), this, SLOT(updateAvatar(const QString&))); avatar->setId(mPeerId, false); updateItemStatic(); updateItem(); insertChat(message); }
void GxsChannelPostItem::unsubscribeChannel() { #ifdef DEBUG_ITEM std::cerr << "GxsChannelPostItem::unsubscribeChannel()"; std::cerr << std::endl; #endif unsubscribe(); updateItemStatic(); }
void ForumMsgItem::subscribeForum() { #ifdef DEBUG_ITEM std::cerr << "ForumMsgItem::subscribeForum()"; std::cerr << std::endl; #endif if (rsForums) { rsForums->forumSubscribe(mForumId, true); } updateItemStatic(); }
void ChanNewItem::subscribeChannel() { #ifdef DEBUG_ITEM std::cerr << "ChanNewItem::subscribeChannel()"; std::cerr << std::endl; #endif if (rsChannels) { rsChannels->channelSubscribe(mChanId, true, true); } updateItemStatic(); }
/** Constructor */ SecurityItem::SecurityItem(FeedHolder *parent, uint32_t feedId, std::string gpgId, std::string sslId, uint32_t type, bool isHome) :QWidget(NULL), mParent(parent), mFeedId(feedId), mSslId(sslId), mGpgId(gpgId), mType(type), mIsHome(isHome) { /* Invoke the Qt Designer generated object setup routine */ setupUi(this); messageframe->setVisible(false); sendmsgButton->setEnabled(false); quickmsgButton->setEnabled(false); chatButton->setEnabled(false); addFriendButton->setEnabled(false); removeFriendButton->setEnabled(false); removeFriendButton->hide(); peerDetailsButton->setEnabled(false); /* general ones */ connect( expandButton, SIGNAL( clicked( void ) ), this, SLOT( toggle ( void ) ) ); connect( clearButton, SIGNAL( clicked( void ) ), this, SLOT( removeItem ( void ) ) ); /* specific ones */ connect( chatButton, SIGNAL( clicked( void ) ), this, SLOT( openChat ( void ) ) ); connect( actionNew_Message, SIGNAL( triggered( ) ), this, SLOT( sendMsg ( void ) ) ); connect( quickmsgButton, SIGNAL( clicked( ) ), this, SLOT( togglequickmessage() ) ); connect( cancelButton, SIGNAL( clicked( ) ), this, SLOT( togglequickmessage() ) ); connect( sendmsgButton, SIGNAL( clicked( ) ), this, SLOT( sendMessage() ) ); connect(addFriendButton, SIGNAL(clicked()), this, SLOT(addFriend())); connect(removeFriendButton, SIGNAL(clicked()), this, SLOT(removeFriend())); connect(peerDetailsButton, SIGNAL(clicked()), this, SLOT(peerDetails())); connect(NotifyQt::getInstance(), SIGNAL(friendsChanged()), this, SLOT(updateItem())); QMenu *msgmenu = new QMenu(); msgmenu->addAction(actionNew_Message); quickmsgButton->setMenu(msgmenu); avatar->setId(mSslId, false); small(); updateItemStatic(); updateItem(); }
void GxsFeedItem::requestGroupMeta() { std::cerr << "GxsFeedItem::requestGroup()"; std::cerr << std::endl; if (!mLoadQueue) { return; } std::list<std::string> ids; ids.push_back(mGroupId); RsTokReqOptions opts; opts.mReqType = GXS_REQUEST_TYPE_GROUP_META; uint32_t token; mLoadQueue->requestGroupInfo(token, RS_TOKREQ_ANSTYPE_SUMMARY, opts, ids, GXSFEEDITEM_GROUPMETA); updateItemStatic(); }
/** Constructor */ ChanNewItem::ChanNewItem(FeedHolder *parent, uint32_t feedId, const std::string &chanId, bool isHome, bool isNew) :QWidget(NULL), mParent(parent), mFeedId(feedId), mChanId(chanId), mIsHome(isHome), mIsNew(isNew) { /* Invoke the Qt Designer generated object setup routine */ setupUi(this); setAttribute ( Qt::WA_DeleteOnClose, true ); /* general ones */ connect( expandButton, SIGNAL( clicked( void ) ), this, SLOT( toggle ( void ) ) ); connect( clearButton, SIGNAL( clicked( void ) ), this, SLOT( removeItem ( void ) ) ); /* specific ones */ connect( subscribeButton, SIGNAL( clicked( void ) ), this, SLOT( subscribeChannel ( void ) ) ); small(); updateItemStatic(); updateItem(); }
/** Constructor */ BlogMsgItem::BlogMsgItem(FeedHolder *parent, uint32_t feedId, std::string peerId, std::string msgId, bool isHome) :QWidget(NULL), mParent(parent), mFeedId(feedId), mPeerId(peerId), mMsgId(msgId), mIsHome(isHome) { /* Invoke the Qt Designer generated object setup routine */ setupUi(this); setAttribute ( Qt::WA_DeleteOnClose, true ); /* general ones */ connect( expandButton, SIGNAL( clicked( void ) ), this, SLOT( toggle ( void ) ) ); connect( clearButton, SIGNAL( clicked( void ) ), this, SLOT( removeItem ( void ) ) ); //connect( gotoButton, SIGNAL( clicked( void ) ), this, SLOT( gotoHome ( void ) ) ); /* specific ones */ connect( playButton, SIGNAL( clicked( void ) ), this, SLOT( playMedia ( void ) ) ); small(); updateItemStatic(); updateItem(); }
void SubFileItem::Setup() { connect( playButton, SIGNAL( clicked( void ) ), this, SLOT( play ( void ) ) ); connect( downloadButton, SIGNAL( clicked( void ) ), this, SLOT( download ( void ) ) ); connect( cancelButton, SIGNAL( clicked( void ) ), this, SLOT( cancel ( void ) ) ); connect( copyLinkButton, SIGNAL( clicked( void ) ), this, SLOT( copyLink ( void ) ) ); connect( saveButton, SIGNAL( clicked( void ) ), this, SLOT( save ( void ) ) ); /* once off check - if remote, check if we have it * NB: This check might be expensive - and it'll happen often! */ #ifdef DEBUG_ITEM std::cerr << "SubFileItem::Setup(): " << mFileName; std::cerr << std::endl; #endif if (mMode == SFI_STATE_REMOTE) { FileInfo fi; /* look up path */ if (rsFiles->alreadyHaveFile(mFileHash, fi)) { #ifdef DEBUG_ITEM std::cerr << "SubFileItem::Setup() STATE=>Local Found File"; std::cerr << std::endl; std::cerr << "SubFileItem::Setup() path: " << fi.path; std::cerr << std::endl; #endif mMode = SFI_STATE_LOCAL; mPath = fi.path; } } smaller(); updateItemStatic(); updateItem(); }
/** Constructor */ SecurityItem::SecurityItem(FeedHolder *parent, uint32_t feedId, const RsPgpId &gpgId, const RsPeerId &sslId, const std::string &sslCn, const std::string& ip_address,uint32_t type, bool isHome) : FeedItem(NULL), mParent(parent), mFeedId(feedId), mGpgId(gpgId), mSslId(sslId), mSslCn(sslCn), mIP(ip_address), mType(type), mIsHome(isHome) { /* Invoke the Qt Designer generated object setup routine */ setupUi(this); //quickmsgButton->hide(); chatButton->hide(); removeFriendButton->setEnabled(false); removeFriendButton->hide(); peerDetailsButton->setEnabled(false); friendRequesttoolButton->hide(); requestLabel->hide(); /* general ones */ connect( expandButton, SIGNAL( clicked( void ) ), this, SLOT( toggle ( void ) ) ); connect( clearButton, SIGNAL( clicked( void ) ), this, SLOT( removeItem ( void ) ) ); /* specific ones */ connect( chatButton, SIGNAL( clicked( void ) ), this, SLOT( openChat ( void ) ) ); //connect( quickmsgButton, SIGNAL( clicked( ) ), this, SLOT( sendMsg() ) ); connect( removeFriendButton, SIGNAL(clicked()), this, SLOT(removeFriend())); connect( peerDetailsButton, SIGNAL(clicked()), this, SLOT(peerDetails())); connect( friendRequesttoolButton, SIGNAL(clicked()), this, SLOT(friendRequest())); connect(NotifyQt::getInstance(), SIGNAL(friendsChanged()), this, SLOT(updateItem())); avatar->setId(ChatId(mSslId)); expandFrame->hide(); updateItemStatic(); updateItem(); }
void SecurityIpItem::setup() { /* Invoke the Qt Designer generated object setup routine */ ui->setupUi(this); ui->peerDetailsButton->setEnabled(false); /* general ones */ connect(ui->expandButton, SIGNAL(clicked(void)), this, SLOT(toggle(void))); connect(ui->clearButton, SIGNAL(clicked(void)), this, SLOT(removeItem(void))); /* specific ones */ connect(ui->peerDetailsButton, SIGNAL(clicked()), this, SLOT(peerDetails())); connect(ui->rsBanListButton, SIGNAL(banListChanged(QString)), this, SLOT(banIpListChanged(QString))); ui->avatar->setId(ChatId(mSslId)); ui->rsBanListButton->setMode(RsBanListToolButton::LIST_WHITELIST, RsBanListToolButton::MODE_ADD); ui->rsBanListChangedLabel->hide(); ui->expandFrame->hide(); updateItemStatic(); updateItem(); }
void AttachFileItem::updateItem() { /* fill in */ #ifdef DEBUG_ITEM std::cerr << "AttachFileItem::updateItem():" << mFileName; std::cerr << std::endl; #endif /* Extract File Details */ /* Update State if necessary */ FileInfo fi; bool stateChanged = false; int msec_rate = 1000; if ((mMode == AFI_STATE_ERROR) || (mMode == AFI_STATE_LOCAL)) { #ifdef DEBUG_ITEM std::cerr << "AttachFileItem::updateItem() STATE=Local/Error ignore"; std::cerr << std::endl; #endif /* ignore - dead file, or done */ } else if (mMode == AFI_STATE_EXTRA) { #ifdef DEBUG_ITEM std::cerr << "AttachFileItem::updateItem() STATE=Extra File"; std::cerr << std::endl; #endif /* check for file status */ if (rsFiles->ExtraFileStatus(mPath.toUtf8().constData(), fi)) { #ifdef DEBUG_ITEM std::cerr << "AttachFileItem::updateItem() STATE=>Local"; std::cerr << std::endl; #endif mMode = AFI_STATE_LOCAL; /* fill in file details */ mFileName = QString::fromUtf8(fi.fname.c_str()); mFileSize = fi.size; mFileHash = fi.hash; /* have path already! */ stateChanged = true; } } else { FileSearchFlags hintflags(0u); switch(mMode) { case AFI_STATE_REMOTE: hintflags = RS_FILE_HINTS_DOWNLOAD | RS_FILE_HINTS_SPEC_ONLY; break; case AFI_STATE_DOWNLOAD: hintflags = RS_FILE_HINTS_DOWNLOAD | RS_FILE_HINTS_SPEC_ONLY; break; case AFI_STATE_UPLOAD: hintflags = RS_FILE_HINTS_UPLOAD | RS_FILE_HINTS_SPEC_ONLY; break; } bool detailsOk = rsFiles->FileDetails(mFileHash, hintflags, fi); /* have details - see if state has changed */ switch(mMode) { case AFI_STATE_REMOTE: #ifdef DEBUG_ITEM std::cerr << "AttachFileItem::updateItem() STATE=Remote"; std::cerr << std::endl; #endif /* is it downloading? */ if (detailsOk) { #ifdef DEBUG_ITEM std::cerr << "AttachFileItem::updateItem() STATE=>Download"; std::cerr << std::endl; #endif /* downloading */ mMode = AFI_STATE_DOWNLOAD; stateChanged = true; } break; case AFI_STATE_DOWNLOAD: #ifdef DEBUG_ITEM std::cerr << "AttachFileItem::updateItem() STATE=Download"; std::cerr << std::endl; #endif if (!detailsOk) { #ifdef DEBUG_ITEM std::cerr << "AttachFileItem::updateItem() STATE=>Remote"; std::cerr << std::endl; #endif mMode = AFI_STATE_REMOTE; stateChanged = true; } else { /* has it completed? */ if (fi.avail == mFileSize) { #ifdef DEBUG_ITEM std::cerr << "AttachFileItem::updateItem() STATE=>Local"; std::cerr << std::endl; #endif /* save path */ /* update progress */ mMode = AFI_STATE_LOCAL; mPath = QString::fromUtf8(fi.path.c_str()); stateChanged = true; } progressBar->setValue(fi.avail / mDivisor); } break; case AFI_STATE_UPLOAD: #ifdef DEBUG_ITEM std::cerr << "AttachFileItem::updateItem() STATE=Upload"; std::cerr << std::endl; #endif if (detailsOk) { progressBar->setValue(fi.avail / mDivisor); } /* update progress */ break; } } /****** update based on new state ******/ if (stateChanged) { updateItemStatic(); } uint32_t repeat = 0; switch (mMode) { case AFI_STATE_ERROR: repeat = 0; break; case AFI_STATE_EXTRA: repeat = 1; msec_rate = 5000; /* slow */ break; case AFI_STATE_REMOTE: repeat = 1; msec_rate = 30000; /* very slow */ break; case AFI_STATE_DOWNLOAD: repeat = 1; msec_rate = 2000; /* should be download rate dependent */ break; case AFI_STATE_LOCAL: repeat = 0; emit fileFinished(this); hide(); // auto hide break; case AFI_STATE_UPLOAD: repeat = 1; msec_rate = 2000; /* should be download rate dependent */ break; } if (repeat) { #ifdef DEBUG_ITEM std::cerr << "AttachFileItem::updateItem() callback for update!"; std::cerr << std::endl; #endif QTimer::singleShot( msec_rate, this, SLOT(updateItem( void ) )); } }