- Revert remove of forum settings

- Added process of description in GxsGroupDialog (forum, wiki, channel, posted)
- Show forum description in GsxForumThreadWidget when no thread is selected
- Updated some todo's

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@7277 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
thunder2 2014-04-14 22:36:10 +00:00
parent 0be1f8ee98
commit 06ef59856f
21 changed files with 467 additions and 397 deletions

View File

@ -107,12 +107,11 @@ bool PostedGroupDialog::service_CreateGroup(uint32_t &token, const RsGroupMetaDa
return true;
}
bool PostedGroupDialog::service_EditGroup(uint32_t &token,
RsGroupMetaData &editedMeta)
bool PostedGroupDialog::service_EditGroup(uint32_t &token, RsGroupMetaData &editedMeta)
{
RsPostedGroup grp;
grp.mMeta = editedMeta;
grp.mDescription = std::string(ui.groupDesc->toPlainText().toUtf8());
grp.mDescription = getDescription().toUtf8().constData();
std::cerr << "PostedGroupDialog::service_EditGroup() submitting changes";
std::cerr << std::endl;
@ -121,8 +120,7 @@ bool PostedGroupDialog::service_EditGroup(uint32_t &token,
return true;
}
bool PostedGroupDialog::service_loadGroup(uint32_t token, Mode mode, RsGroupMetaData& groupMetaData)
bool PostedGroupDialog::service_loadGroup(uint32_t token, Mode /*mode*/, RsGroupMetaData& groupMetaData, QString &description)
{
std::cerr << "PostedGroupDialog::service_loadGroup(" << token << ")";
std::cerr << std::endl;
@ -146,6 +144,7 @@ bool PostedGroupDialog::service_loadGroup(uint32_t token, Mode mode, RsGroupMeta
std::cerr << std::endl;
groupMetaData = groups[0].mMeta;
description = QString::fromUtf8(groups[0].mDescription.c_str());
return true;
}

View File

@ -39,9 +39,8 @@ protected:
virtual void initUi();
virtual QPixmap serviceImage();
virtual bool service_CreateGroup(uint32_t &token, const RsGroupMetaData &meta);
virtual bool service_loadGroup(uint32_t token, Mode mode, RsGroupMetaData& groupMetaData);
virtual bool service_EditGroup(uint32_t &token,
RsGroupMetaData &editedMeta);
virtual bool service_loadGroup(uint32_t token, Mode mode, RsGroupMetaData& groupMetaData, QString &description);
virtual bool service_EditGroup(uint32_t &token, RsGroupMetaData &editedMeta);
private:
RsPostedGroup mTopic;

View File

@ -1033,7 +1033,6 @@ void PostedListDialog::todo()
QMessageBox::information(this, "Todo",
"<b>Open points:</b><ul>"
"<li>Subreddits/tag to posts support"
"<li>Edit Topics"
"<li>Picture Support"
"</ul>");
}

View File

@ -62,8 +62,6 @@
#define WIKIDIALOG_EDITTREE_DATA 9
/* Images for TreeWidget (Copied from GxsForums.cpp) */
#define IMAGE_FOLDER ":/images/folder16.png"
#define IMAGE_FOLDERGREEN ":/images/folder_green.png"
@ -101,7 +99,6 @@ WikiDialog::WikiDialog(QWidget *parent)
connect( ui.treeWidget_Pages, SIGNAL(itemSelectionChanged()), this, SLOT(groupTreeChanged()));
// GroupTreeWidget.
connect(ui.groupTreeWidget, SIGNAL(treeCustomContextMenuRequested(QPoint)), this, SLOT(groupListCustomPopupMenu(QPoint)));
connect(ui.groupTreeWidget, SIGNAL(treeItemActivated(QString)), this, SLOT(wikiGroupChanged(QString)));
@ -123,7 +120,6 @@ WikiDialog::WikiDialog(QWidget *parent)
//Auto refresh seems not to work, temporary solution at start
insertWikiGroups();
}
void WikiDialog::checkUpdate()
@ -140,7 +136,6 @@ void WikiDialog::checkUpdate()
return;
}
void WikiDialog::OpenOrShowAddPageDialog()
{
RsGxsGroupId groupId = getSelectedGroup();
@ -165,8 +160,6 @@ void WikiDialog::OpenOrShowAddPageDialog()
mEditDialog->show();
}
void WikiDialog::OpenOrShowAddGroupDialog()
{
newGroup();
@ -179,7 +172,6 @@ void WikiDialog::OpenOrShowAddGroupDialog()
void WikiDialog::newGroup()
{
WikiGroupDialog cf(mWikiQueue, this);
cf.exec ();
}
@ -211,8 +203,6 @@ void WikiDialog::editGroupDetails()
cf.exec ();
}
void WikiDialog::OpenOrShowEditDialog()
{
RsGxsGroupId groupId;
@ -260,7 +250,6 @@ void WikiDialog::OpenOrShowRepublishDialog()
mEditDialog->setRepublishMode(origPageId);
}
void WikiDialog::groupTreeChanged()
{
/* */
@ -306,19 +295,16 @@ void WikiDialog::updateWikiPage(const RsWikiSnapshot &page)
#endif
}
void WikiDialog::clearWikiPage()
{
ui.textBrowser->setPlainText("");
}
void WikiDialog::clearGroupTree()
{
ui.treeWidget_Pages->clear();
}
#define WIKI_GROUP_COL_GROUPNAME 0
#define WIKI_GROUP_COL_GROUPID 1
@ -326,7 +312,6 @@ void WikiDialog::clearGroupTree()
#define WIKI_GROUP_COL_PAGEID 1
#define WIKI_GROUP_COL_ORIGPAGEID 2
bool WikiDialog::getSelectedPage(RsGxsGroupId &groupId, RsGxsMessageId &pageId, RsGxsMessageId &origPageId)
{
#ifdef WIKI_DEBUG
@ -361,7 +346,6 @@ bool WikiDialog::getSelectedPage(RsGxsGroupId &groupId, RsGxsMessageId &pageId,
return true;
}
const RsGxsGroupId& WikiDialog::getSelectedGroup()
{
#ifdef WIKI_DEBUG
@ -370,7 +354,6 @@ const RsGxsGroupId& WikiDialog::getSelectedGroup()
return mGroupId;
}
/************************** Request / Response *************************/
/*** Loading Main Index ***/
@ -379,7 +362,6 @@ void WikiDialog::insertWikiGroups()
requestGroupMeta();
}
void WikiDialog::requestGroupMeta()
{
std::cerr << "WikiDialog::requestGroupMeta()";
@ -392,7 +374,6 @@ void WikiDialog::requestGroupMeta()
mWikiQueue->requestGroupInfo(token, RS_TOKREQ_ANSTYPE_SUMMARY, opts, WIKIDIALOG_LISTING_GROUPMETA);
}
void WikiDialog::loadGroupMeta(const uint32_t &token)
{
std::cerr << "WikiDialog::loadGroupMeta()";
@ -418,7 +399,6 @@ void WikiDialog::loadGroupMeta(const uint32_t &token)
}
}
void WikiDialog::requestPages(const std::list<RsGxsGroupId> &groupIds)
{
std::cerr << "WikiDialog::requestPages()";
@ -431,7 +411,6 @@ void WikiDialog::requestPages(const std::list<RsGxsGroupId> &groupIds)
mWikiQueue->requestMsgInfo(token, RS_TOKREQ_ANSTYPE_DATA, opts, groupIds, WIKIDIALOG_LISTING_PAGES);
}
void WikiDialog::loadPages(const uint32_t &token)
{
std::cerr << "WikiDialog::loadPages()";
@ -440,8 +419,6 @@ void WikiDialog::loadPages(const uint32_t &token)
clearGroupTree();
clearWikiPage();
QTreeWidgetItem *groupItem = NULL;
std::vector<RsWikiSnapshot> snapshots;
std::vector<RsWikiSnapshot>::iterator vit;
if (!rsWiki->getSnapshots(token, snapshots))
@ -522,8 +499,6 @@ void WikiDialog::loadWikiPage(const uint32_t &token)
updateWikiPage(page);
}
void WikiDialog::loadRequest(const TokenQueue *queue, const TokenRequest &req)
{
std::cerr << "WikiDialog::loadRequest() UserType: " << req.mUserType;
@ -558,10 +533,6 @@ void WikiDialog::loadRequest(const TokenQueue *queue, const TokenRequest &req)
}
}
/************************** Group Widget Stuff *********************************/
@ -601,10 +572,8 @@ void WikiDialog::wikiGroupChanged(const QString &groupId)
int subscribeFlags = ui.groupTreeWidget->subscribeFlags(QString::fromStdString(mGroupId.toStdString()));
ui.toolButton_NewPage->setEnabled(IS_GROUP_ADMIN(subscribeFlags));
ui.toolButton_Republish->setEnabled(IS_GROUP_ADMIN(subscribeFlags));
}
void WikiDialog::groupListCustomPopupMenu(QPoint /*point*/)
{
@ -665,10 +634,6 @@ void WikiDialog::groupListCustomPopupMenu(QPoint /*point*/)
contextMnu.exec(QCursor::pos());
}
void WikiDialog::insertGroupsData(const std::list<RsGroupMetaData> &wikiList)
{
std::list<RsGroupMetaData>::const_iterator it;
@ -725,12 +690,10 @@ void WikiDialog::insertGroupsData(const std::list<RsGroupMetaData> &wikiList)
ui.groupTreeWidget->fillGroupItems(mSubscribedGroups, subList);
ui.groupTreeWidget->fillGroupItems(mPopularGroups, popList);
ui.groupTreeWidget->fillGroupItems(mOtherGroups, otherList);
}
void WikiDialog::GroupMetaDataToGroupItemInfo(const RsGroupMetaData &groupInfo, GroupItemInfo &groupItemInfo)
{
groupItemInfo.id = QString::fromStdString(groupInfo.mGroupId.toStdString());
groupItemInfo.name = QString::fromUtf8(groupInfo.mGroupName.c_str());
//groupItemInfo.description = QString::fromUtf8(groupInfo.forumDesc);
@ -746,6 +709,5 @@ void WikiDialog::todo()
QMessageBox::information(this, "Todo",
"<b>Open points:</b><ul>"
"<li>Auto update Group trees"
"<li>Edit Groups"
"</ul>");
}

View File

@ -162,6 +162,7 @@ void GxsGroupDialog::initMode()
requestGroup(mGrpMeta.mGroupId);
}
break;
case MODE_EDIT:
{
ui.buttonBox->setStandardButtons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
@ -172,7 +173,6 @@ void GxsGroupDialog::initMode()
}
}
void GxsGroupDialog::clearForm()
{
ui.groupName->clear();
@ -266,45 +266,27 @@ void GxsGroupDialog::setupDefaults()
}
void GxsGroupDialog::setupVisibility()
{
{
ui.groupName->setVisible(mEnabledFlags & GXS_GROUP_FLAGS_NAME);
}
{
ui.groupLogo->setVisible(mEnabledFlags & GXS_GROUP_FLAGS_ICON);
ui.addLogoButton->setVisible(mEnabledFlags & GXS_GROUP_FLAGS_ICON);
}
{
ui.groupDesc->setVisible(mEnabledFlags & GXS_GROUP_FLAGS_DESCRIPTION);
ui.groupDescLabel->setVisible(mEnabledFlags & GXS_GROUP_FLAGS_DESCRIPTION);
}
{
ui.distribGroupBox->setVisible(mEnabledFlags & GXS_GROUP_FLAGS_DISTRIBUTION);
}
{
ui.publishGroupBox->setVisible(mEnabledFlags & GXS_GROUP_FLAGS_PUBLISHSIGN);
}
{
ui.pubKeyShare_cb->setVisible(mEnabledFlags & GXS_GROUP_FLAGS_SHAREKEYS);
}
{
ui.personalGroupBox->setVisible(mEnabledFlags & GXS_GROUP_FLAGS_PERSONALSIGN);
}
{
ui.commentGroupBox->setVisible(mEnabledFlags & GXS_GROUP_FLAGS_COMMENTS);
}
{
ui.extraFrame->setVisible(mEnabledFlags & GXS_GROUP_FLAGS_EXTRA);
}
}
void GxsGroupDialog::setAllReadonly()
{
@ -316,48 +298,29 @@ void GxsGroupDialog::setAllReadonly()
mReadonlyFlags = origReadonlyFlags;
}
void GxsGroupDialog::setupReadonly()
{
{
ui.groupName->setEnabled(!(mReadonlyFlags & GXS_GROUP_FLAGS_NAME));
}
{
ui.groupLogo->setEnabled(!(mReadonlyFlags & GXS_GROUP_FLAGS_ICON));
ui.addLogoButton->setEnabled(!(mReadonlyFlags & GXS_GROUP_FLAGS_ICON));
}
{
ui.groupDesc->setEnabled(!(mReadonlyFlags & GXS_GROUP_FLAGS_DESCRIPTION));
ui.groupDescLabel->setEnabled(!(mReadonlyFlags & GXS_GROUP_FLAGS_DESCRIPTION));
}
{
ui.distribGroupBox->setEnabled(!(mReadonlyFlags & GXS_GROUP_FLAGS_DISTRIBUTION));
}
{
ui.publishGroupBox->setEnabled(!(mReadonlyFlags & GXS_GROUP_FLAGS_PUBLISHSIGN));
}
{
ui.pubKeyShare_cb->setEnabled(!(mReadonlyFlags & GXS_GROUP_FLAGS_SHAREKEYS));
}
{
ui.personalGroupBox->setEnabled(!(mReadonlyFlags & GXS_GROUP_FLAGS_PERSONALSIGN));
ui.idChooser->setEnabled(!(mReadonlyFlags & GXS_GROUP_FLAGS_PERSONALSIGN));
}
{
ui.commentGroupBox->setEnabled(!(mReadonlyFlags & GXS_GROUP_FLAGS_COMMENTS));
}
{
ui.extraFrame->setEnabled(!(mReadonlyFlags & GXS_GROUP_FLAGS_EXTRA));
}
}
void GxsGroupDialog::newGroup()
{
@ -365,10 +328,9 @@ void GxsGroupDialog::newGroup()
setupVisibility();
setupReadonly();
clearForm();
}
void GxsGroupDialog::updateFromExistingMeta()
void GxsGroupDialog::updateFromExistingMeta(const QString &description)
{
std::cerr << "void GxsGroupDialog::updateFromExistingMeta()";
std::cerr << std::endl;
@ -386,6 +348,9 @@ void GxsGroupDialog::updateFromExistingMeta()
/* setup name */
ui.groupName->setText(QString::fromUtf8(mGrpMeta.mGroupName.c_str()));
/* set description */
ui.groupDesc->setPlainText(description);
switch(mGrpMeta.mCircleType)
{
case GXS_CIRCLE_TYPE_YOUREYESONLY:
@ -405,12 +370,12 @@ void GxsGroupDialog::updateFromExistingMeta()
std::cerr << std::endl;
break;
}
ui.idChooser->loadIds(0, mGrpMeta.mAuthorId);
updateCircleOptions();
}
void GxsGroupDialog::submitGroup()
{
std::cerr << "GxsGroupDialog::submitGroup()";
@ -475,7 +440,6 @@ void GxsGroupDialog::editGroup()
close();
}
bool GxsGroupDialog::prepareGroupMetaData(RsGroupMetaData &meta)
{
std::cerr << "GxsGroupDialog::prepareGroupMetaData()";
@ -610,8 +574,6 @@ void GxsGroupDialog::setGroupSignFlags(uint32_t signFlags)
}
}
/**** Above logic is flawed, and will be removed shortly
*
*
@ -681,8 +643,6 @@ bool GxsGroupDialog::setCircleParameters(RsGroupMetaData &meta)
return true;
}
void GxsGroupDialog::cancelDialog()
{
std::cerr << "GxsGroupDialog::cancelDialog() Should Close!";
@ -711,16 +671,15 @@ QPixmap GxsGroupDialog::getLogo()
QString GxsGroupDialog::getDescription()
{
return ui.groupDesc->document()->toPlainText();
return ui.groupDesc->toPlainText();
}
/***********************************************************************************
Share Lists.
***********************************************************************************/
void GxsGroupDialog::sendShareList(std::string groupId)
void GxsGroupDialog::sendShareList(std::string /*groupId*/)
{
(void) groupId;
close();
}
@ -735,8 +694,6 @@ void GxsGroupDialog::setShareList()
}
}
/***********************************************************************************
Loading Group.
***********************************************************************************/
@ -756,28 +713,18 @@ void GxsGroupDialog::requestGroup(const RsGxsGroupId &groupId)
mInternalTokenQueue->requestGroupInfo(token, RS_TOKREQ_ANSTYPE_DATA, opts, groupIds, GXSGROUP_INTERNAL_LOADGROUP);
}
void GxsGroupDialog::loadGroup(uint32_t token)
{
std::cerr << "GxsGroupDialog::loadGroup(" << token << ")";
std::cerr << std::endl;
if (service_loadGroup(token, mMode, mGrpMeta))
QString description;
if (service_loadGroup(token, mMode, mGrpMeta, description))
{
updateFromExistingMeta();
updateFromExistingMeta(description);
}
}
bool GxsGroupDialog::service_loadGroup(uint32_t token, Mode mode, RsGroupMetaData& groupMetaData)
{
(void) mode;
(void) groupMetaData;
std::cerr << "GxsGroupDialog::service_loadGroup(" << token << ") NOT IMPLEMENTED";
std::cerr << std::endl;
return false;
}
void GxsGroupDialog::loadRequest(const TokenQueue *queue, const TokenRequest &req)
{
std::cerr << "GxsGroupDialog::loadRequest() UserType: " << req.mUserType;
@ -798,8 +745,3 @@ void GxsGroupDialog::loadRequest(const TokenQueue *queue, const TokenRequest &re
}
}
}

View File

@ -180,12 +180,11 @@ protected:
* @param token This should be set to the token retrieved
* @param meta The deriving GXS service should set their grp meta to this value
*/
virtual bool service_EditGroup(uint32_t &token,
RsGroupMetaData &editedMeta) = 0;
virtual bool service_EditGroup(uint32_t &token, RsGroupMetaData &editedMeta) = 0;
// To be overloaded by users.
// use Token to retrieve from service, fill in metaData.
virtual bool service_loadGroup(uint32_t token, Mode mode, RsGroupMetaData& groupMetaData);
virtual bool service_loadGroup(uint32_t token, Mode mode, RsGroupMetaData& groupMetaData, QString &description) = 0;
/*!
* This returns a group logo from the ui \n
@ -198,7 +197,7 @@ protected:
* This returns a group description string from the ui
* @return group description string
*/
virtual QString getDescription();
QString getDescription();
private slots:
@ -229,7 +228,7 @@ private:
// loading existing Groups.
void requestGroup(const RsGxsGroupId &groupId);
void loadGroup(uint32_t token);
void updateFromExistingMeta();
void updateFromExistingMeta(const QString &description);
bool prepareGroupMetaData(RsGroupMetaData &meta);

View File

@ -98,7 +98,7 @@ bool WikiGroupDialog::service_CreateGroup(uint32_t &token, const RsGroupMetaData
// Specific Function.
RsWikiCollection grp;
grp.mMeta = meta;
//grp.mDescription = std::string(desc.toUtf8());
grp.mDescription = getDescription().toStdString();
std::cerr << "WikiGroupDialog::service_CreateGroup() storing to Queue";
std::cerr << std::endl;
@ -107,11 +107,11 @@ bool WikiGroupDialog::service_CreateGroup(uint32_t &token, const RsGroupMetaData
return true;
}
bool WikiGroupDialog::service_EditGroup(uint32_t &token,
RsGroupMetaData &editedMeta)
bool WikiGroupDialog::service_EditGroup(uint32_t &token, RsGroupMetaData &editedMeta)
{
RsWikiCollection grp;
grp.mMeta = editedMeta;
grp.mDescription = getDescription().toStdString();
std::cerr << "WikiGroupDialog::service_EditGroup() submitting changes.";
std::cerr << std::endl;
@ -120,8 +120,7 @@ bool WikiGroupDialog::service_EditGroup(uint32_t &token,
return true;
}
bool WikiGroupDialog::service_loadGroup(uint32_t token, Mode mode, RsGroupMetaData& groupMetaData)
bool WikiGroupDialog::service_loadGroup(uint32_t token, Mode /*mode*/, RsGroupMetaData& groupMetaData, QString &description)
{
std::cerr << "WikiGroupDialog::service_loadGroup(" << token << ")";
std::cerr << std::endl;
@ -145,6 +144,7 @@ bool WikiGroupDialog::service_loadGroup(uint32_t token, Mode mode, RsGroupMetaDa
std::cerr << std::endl;
groupMetaData = groups[0].mMeta;
description = QString::fromUtf8(groups[0].mDescription.c_str());
return true;
}

View File

@ -40,9 +40,8 @@ protected:
virtual void initUi();
virtual QPixmap serviceImage();
virtual bool service_CreateGroup(uint32_t &token, const RsGroupMetaData &meta);
virtual bool service_loadGroup(uint32_t token, Mode mode, RsGroupMetaData& groupMetaData);
virtual bool service_EditGroup(uint32_t &token,
RsGroupMetaData& groupMetaData);
virtual bool service_loadGroup(uint32_t token, Mode mode, RsGroupMetaData& groupMetaData, QString &description);
virtual bool service_EditGroup(uint32_t &token, RsGroupMetaData& groupMetaData);
private:

View File

@ -130,7 +130,6 @@ void GxsChannelDialog::todo()
"<li>Restore channel keys"
"<li>Copy/navigate channel link"
"<li>Display count of unread messages"
"<li>Show/Edit channel details"
"<li>Set all as read"
"<li>Set read/unread status"
"</ul>");

View File

@ -98,19 +98,17 @@ bool GxsChannelGroupDialog::service_CreateGroup(uint32_t &token, const RsGroupMe
// Specific Function.
RsGxsChannelGroup grp;
grp.mMeta = meta;
//grp.mDescription = std::string(desc.toUtf8());
grp.mDescription = getDescription().toUtf8().constData();
rsGxsChannels->createGroup(token, grp);
return true;
}
bool GxsChannelGroupDialog::service_EditGroup(uint32_t &token,
RsGroupMetaData &editedMeta)
bool GxsChannelGroupDialog::service_EditGroup(uint32_t &token, RsGroupMetaData &editedMeta)
{
RsGxsChannelGroup grp;
grp.mMeta = editedMeta;
grp.mDescription = std::string(ui.groupDesc->toPlainText().toUtf8());
grp.mDescription = getDescription().toUtf8().constData();
std::cerr << "GxsChannelGroupDialog::service_EditGroup() submitting changes";
std::cerr << std::endl;
@ -119,8 +117,7 @@ bool GxsChannelGroupDialog::service_EditGroup(uint32_t &token,
return true;
}
bool GxsChannelGroupDialog::service_loadGroup(uint32_t token, Mode mode, RsGroupMetaData& groupMetaData)
bool GxsChannelGroupDialog::service_loadGroup(uint32_t token, Mode /*mode*/, RsGroupMetaData& groupMetaData, QString &description)
{
std::cerr << "GxsChannelGroupDialog::service_loadGroup(" << token << ")";
std::cerr << std::endl;
@ -144,6 +141,7 @@ bool GxsChannelGroupDialog::service_loadGroup(uint32_t token, Mode mode, RsGroup
std::cerr << std::endl;
groupMetaData = groups[0].mMeta;
description = QString::fromUtf8(groups[0].mDescription.c_str());
return true;
}

View File

@ -37,9 +37,8 @@ protected:
virtual void initUi();
virtual QPixmap serviceImage();
virtual bool service_CreateGroup(uint32_t &token, const RsGroupMetaData &meta);
virtual bool service_loadGroup(uint32_t token, Mode mode, RsGroupMetaData& groupMetaData);
virtual bool service_EditGroup(uint32_t &token,
RsGroupMetaData &editedMeta);
virtual bool service_loadGroup(uint32_t token, Mode mode, RsGroupMetaData& groupMetaData, QString &description);
virtual bool service_EditGroup(uint32_t &token, RsGroupMetaData &editedMeta);
};

View File

@ -99,18 +99,17 @@ bool GxsForumGroupDialog::service_CreateGroup(uint32_t &token, const RsGroupMeta
// Specific Function.
RsGxsForumGroup grp;
grp.mMeta = meta;
grp.mDescription = std::string(ui.groupDesc->toPlainText().toUtf8());
grp.mDescription = getDescription().toUtf8().constData();
rsGxsForums->createGroup(token, grp);
return true;
}
bool GxsForumGroupDialog::service_EditGroup(uint32_t &token,
RsGroupMetaData &editedMeta)
bool GxsForumGroupDialog::service_EditGroup(uint32_t &token, RsGroupMetaData &editedMeta)
{
RsGxsForumGroup grp;
grp.mMeta = editedMeta;
grp.mDescription = std::string(ui.groupDesc->toPlainText().toUtf8());
grp.mDescription = getDescription().toUtf8().constData();
std::cerr << "GxsForumGroupDialog::service_EditGroup() submitting changes";
std::cerr << std::endl;
@ -119,7 +118,7 @@ bool GxsForumGroupDialog::service_EditGroup(uint32_t &token,
return true;
}
bool GxsForumGroupDialog::service_loadGroup(uint32_t token, Mode mode, RsGroupMetaData& groupMetaData)
bool GxsForumGroupDialog::service_loadGroup(uint32_t token, Mode /*mode*/, RsGroupMetaData& groupMetaData, QString &description)
{
std::cerr << "GxsForumGroupDialog::service_loadGroup(" << token << ")";
std::cerr << std::endl;
@ -143,10 +142,7 @@ bool GxsForumGroupDialog::service_loadGroup(uint32_t token, Mode mode, RsGroupMe
std::cerr << std::endl;
groupMetaData = groups[0].mMeta;
description = QString::fromUtf8(groups[0].mDescription.c_str());
return true;
}

View File

@ -37,9 +37,8 @@ protected:
virtual void initUi();
virtual QPixmap serviceImage();
virtual bool service_CreateGroup(uint32_t &token, const RsGroupMetaData &meta);
virtual bool service_loadGroup(uint32_t token, Mode mode, RsGroupMetaData& groupMetaData);
virtual bool service_EditGroup(uint32_t &token,
RsGroupMetaData &editedMeta);
virtual bool service_loadGroup(uint32_t token, Mode mode, RsGroupMetaData& groupMetaData, QString &description);
virtual bool service_EditGroup(uint32_t &token, RsGroupMetaData &editedMeta);
};

View File

@ -910,14 +910,14 @@ void GxsForumThreadWidget::insertThreads()
}
// Get Current Forum Info... then complete insertForumThreads().
requestGroupSummary_CurrentForum(mForumId);
requestGroup_CurrentForum(mForumId);
}
void GxsForumThreadWidget::insertForumThreads(const RsGroupMetaData &fi)
void GxsForumThreadWidget::insertForumThreads(const RsGxsForumGroup &group)
{
mSubscribeFlags = fi.mSubscribeFlags;
ui->forumName->setText(QString::fromUtf8(fi.mGroupName.c_str()));
// mForumDescription = QString::fromUtf8(fi.mDescription); // not available
mSubscribeFlags = group.mMeta.mSubscribeFlags;
ui->forumName->setText(QString::fromUtf8(group.mMeta.mGroupName.c_str()));
mForumDescription = QString::fromUtf8(group.mDescription.c_str());
ui->progressBar->reset();
mStateHelper->setActive(TOKEN_TYPE_CURRENTFORUM, true);
@ -1551,7 +1551,7 @@ void GxsForumThreadWidget::createthread()
static QString buildReplyHeader(const RsMsgMetaData &meta)
{
RetroShareLink link;
//link.createMessage(meta.mAuthorId, "");
link.createMessage(meta.mAuthorId, "");
QString from = link.toHtml();
QString header = QString("<span>-----%1-----").arg(QApplication::translate("GxsForumsDialog", "Original Message"));
@ -1587,15 +1587,14 @@ void GxsForumThreadWidget::replyMessageData(const RsGxsForumMsg &msg)
return;
}
// NB: TODO REMOVE rsPeers references.
if (rsPeers->getPeerName(RsPeerId(msg.mMeta.mAuthorId)) !="")
if (!msg.mMeta.mAuthorId.isNull())
{
MessageComposer *msgDialog = MessageComposer::newMsg();
msgDialog->setTitleText(QString::fromUtf8(msg.mMeta.mMsgName.c_str()), MessageComposer::REPLY);
msgDialog->setQuotedMsg(QString::fromUtf8(msg.mMsg.c_str()), buildReplyHeader(msg.mMeta));
//msgDialog->addRecipient(MessageComposer::TO, msg.mMeta.mAuthorId, false);
msgDialog->addRecipient(MessageComposer::TO, RsPeerId(msg.mMeta.mAuthorId));
msgDialog->show();
msgDialog->activateWindow();
@ -1679,7 +1678,7 @@ bool GxsForumThreadWidget::filterItem(QTreeWidgetItem *item, const QString &text
/** Request / Response of Data ********************************/
/*********************** **** **** **** ***********************/
void GxsForumThreadWidget::requestGroupSummary_CurrentForum(const RsGxsGroupId &forumId)
void GxsForumThreadWidget::requestGroup_CurrentForum(const RsGxsGroupId &forumId)
{
ui->progressBar->reset();
mStateHelper->setLoading(TOKEN_TYPE_CURRENTFORUM, true);
@ -1687,32 +1686,31 @@ void GxsForumThreadWidget::requestGroupSummary_CurrentForum(const RsGxsGroupId &
emit forumChanged(this);
RsTokReqOptions opts;
opts.mReqType = GXS_REQUEST_TYPE_GROUP_META;
opts.mReqType = GXS_REQUEST_TYPE_GROUP_DATA;
mThreadQueue->cancelActiveRequestTokens(TOKEN_TYPE_CURRENTFORUM);
std::list<RsGxsGroupId> grpIds;
grpIds.push_back(forumId);
std::cerr << "GxsForumsDialog::requestGroupSummary_CurrentForum(" << forumId << ")";
std::cerr << "GxsForumsDialog::requestGroup_CurrentForum(" << forumId << ")";
std::cerr << std::endl;
uint32_t token;
mThreadQueue->requestGroupInfo(token, RS_TOKREQ_ANSTYPE_SUMMARY, opts, grpIds, TOKEN_TYPE_CURRENTFORUM);
mThreadQueue->requestGroupInfo(token, RS_TOKREQ_ANSTYPE_DATA, opts, grpIds, TOKEN_TYPE_CURRENTFORUM);
}
void GxsForumThreadWidget::loadGroupSummary_CurrentForum(const uint32_t &token)
void GxsForumThreadWidget::loadGroup_CurrentForum(const uint32_t &token)
{
std::cerr << "GxsForumsDialog::loadGroupSummary_CurrentForum()";
std::cerr << "GxsForumsDialog::loadGroup_CurrentForum()";
std::cerr << std::endl;
std::list<RsGroupMetaData> groupInfo;
rsGxsForums->getGroupSummary(token, groupInfo);
std::vector<RsGxsForumGroup> groups;
rsGxsForums->getGroupData(token, groups);
if (groupInfo.size() == 1)
if (groups.size() == 1)
{
RsGroupMetaData fi = groupInfo.front();
insertForumThreads(fi);
insertForumThreads(groups[0]);
}
else
{
@ -1809,7 +1807,6 @@ void GxsForumThreadWidget::requestMsgData_ReplyMessage(const RsGxsGrpMsgIdPair &
uint32_t token;
mThreadQueue->requestMsgInfo(token, RS_TOKREQ_ANSTYPE_DATA, opts, msgIds, TOKEN_TYPE_REPLY_MESSAGE);
}
void GxsForumThreadWidget::loadMsgData_ReplyMessage(const uint32_t &token)
@ -1850,7 +1847,7 @@ void GxsForumThreadWidget::loadRequest(const TokenQueue *queue, const TokenReque
switch(req.mUserType)
{
case TOKEN_TYPE_CURRENTFORUM:
loadGroupSummary_CurrentForum(req.mToken);
loadGroup_CurrentForum(req.mToken);
break;
case TOKEN_TYPE_INSERT_POST:

View File

@ -9,6 +9,7 @@ class RSTreeWidgetItemCompareRole;
class RsGxsForumMsg;
class GxsForumsFillThread;
class UIStateHelper;
class RsGxsForumGroup;
namespace Ui {
class GxsForumThreadWidget;
@ -105,7 +106,7 @@ private slots:
void fillThreadStatus(QString text);
private:
void insertForumThreads(const RsGroupMetaData &fi);
void insertForumThreads(const RsGxsForumGroup &group);
void insertPostData(const RsGxsForumMsg &msg); // Second Half.
void insertThreads();
@ -143,8 +144,8 @@ private:
unsigned int mUnreadCount;
unsigned int mNewCount;
void requestGroupSummary_CurrentForum(const RsGxsGroupId &forumId);
void loadGroupSummary_CurrentForum(const uint32_t &token);
void requestGroup_CurrentForum(const RsGxsGroupId &forumId);
void loadGroup_CurrentForum(const uint32_t &token);
void requestMsgData_InsertPost(const RsGxsGrpMsgIdPair &msgId);
void loadMsgData_InsertPost(const uint32_t &token);

View File

@ -135,8 +135,8 @@ void GxsForumsDialog::todo()
"<li>Restore forum keys"
"<li>Display AUTHD"
"<li>Copy/navigate forum link"
"<li>Display author of post"
"<li>Display count of unread messages"
"<li>Show/Edit forum details"
"<li>Don't show own posts as unread"
"<li>Remove messages"
"</ul>");

View File

@ -0,0 +1,55 @@
/****************************************************************
* RetroShare is distributed under the following license:
*
* Copyright (C) 2006, crypton
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
****************************************************************/
#include "ForumPage.h"
#include "rshare.h"
#include "rsharesettings.h"
ForumPage::ForumPage(QWidget * parent, Qt::WindowFlags flags)
: ConfigPage(parent, flags)
{
ui.setupUi(this);
setAttribute(Qt::WA_QuitOnClose, false);
}
ForumPage::~ForumPage()
{
}
/** Saves the changes on this page */
bool ForumPage::save(QString &/*errmsg*/)
{
Settings->setForumMsgSetToReadOnActivate(ui.setMsgToReadOnActivate->isChecked());
Settings->setForumExpandNewMessages(ui.expandNewMessages->isChecked());
Settings->setForumOpenAllInNewTab(ui.openAllInNewTabCheckBox->isChecked());
Settings->setForumLoadEmbeddedImages(ui.loadEmbeddedImages->isChecked());
return true;
}
/** Loads the settings for this page */
void ForumPage::load()
{
ui.setMsgToReadOnActivate->setChecked(Settings->getForumMsgSetToReadOnActivate());
ui.expandNewMessages->setChecked(Settings->getForumExpandNewMessages());
ui.openAllInNewTabCheckBox->setChecked(Settings->getForumOpenAllInNewTab());
ui.loadEmbeddedImages->setChecked(Settings->getForumLoadEmbeddedImages());
}

View File

@ -0,0 +1,50 @@
/****************************************************************
* RetroShare is distributed under the following license:
*
* Copyright (C) 2006, crypton
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
****************************************************************/
#ifndef FORUMPAGE_H
#define FORUMPAGE_H
#include <retroshare-gui/configpage.h>
#include "ui_ForumPage.h"
class ForumPage : public ConfigPage
{
Q_OBJECT
public:
ForumPage(QWidget * parent = 0, Qt::WindowFlags flags = 0);
~ForumPage();
/** Saves the changes on this page */
virtual bool save(QString &errmsg);
/** Loads the settings for this page */
virtual void load();
virtual QPixmap iconPixmap() const { return QPixmap(":/images/konversation.png") ; }
virtual QString pageName() const { return tr("Forum") ; }
virtual QString helpText() const { return ""; }
private:
Ui::ForumPage ui;
};
#endif // !FORUMPAGE_H

View File

@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ForumPage</class>
<widget class="QWidget" name="ForumPage">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>423</width>
<height>340</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Misc</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QCheckBox" name="setMsgToReadOnActivate">
<property name="text">
<string>Set message to read on activate</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="expandNewMessages">
<property name="text">
<string>Expand new messages</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QCheckBox" name="loadEmbeddedImages">
<property name="text">
<string>Load embedded images</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="2" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0">
<widget class="QGroupBox" name="gxsGroupBox">
<property name="title">
<string>New forum</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QCheckBox" name="openAllInNewTabCheckBox">
<property name="text">
<string>Open all forums in new tab</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -36,7 +36,7 @@
#include "RelayPage.h"
#include "ChatPage.h"
#include "MessagePage.h"
//#include "ForumPage.h"
#include "ForumPage.h"
#include "PluginsPage.h"
#include "ServicePermissionsPage.h"
#include "rsharesettings.h"
@ -132,7 +132,7 @@ RSettingsWin::initStackedWidget()
addPage(new NotifyPage());
addPage(new CryptoPage());
addPage(new MessagePage());
//addPage(new ForumPage());
addPage(new ForumPage());
addPage(new ChatPage());
addPage(new AppearancePage());
addPage(new SoundPage() );

View File

@ -400,6 +400,7 @@ HEADERS += rshare.h \
gui/settings/CryptoPage.h \
gui/settings/MessagePage.h \
gui/settings/NewTag.h \
gui/settings/ForumPage.h \
gui/settings/PluginsPage.h \
gui/settings/PluginItem.h \
gui/settings/AppearancePage.h \
@ -511,7 +512,6 @@ HEADERS += rshare.h \
# gui/channels/CreateChannelMsg.h \
# gui/channels/EditChanDetails.h \
# gui/channels/ChannelUserNotify.h \
# gui/settings/ForumPage.h \
FORMS += gui/StartDialog.ui \
gui/GenCertDialog.ui \
@ -561,6 +561,7 @@ FORMS += gui/StartDialog.ui \
gui/settings/CryptoPage.ui \
gui/settings/MessagePage.ui \
gui/settings/NewTag.ui \
gui/settings/ForumPage.ui \
gui/settings/PluginsPage.ui \
gui/settings/AppearancePage.ui \
gui/settings/TransferPage.ui \
@ -617,7 +618,6 @@ FORMS += gui/StartDialog.ui \
# gui/channels/EditChanDetails.ui \
# gui/feeds/ChanNewItem.ui \
# gui/feeds/ChanMsgItem.ui \
# gui/settings/ForumPage.ui \
SOURCES += main.cpp \
rshare.cpp \
@ -759,6 +759,7 @@ SOURCES += main.cpp \
gui/settings/CryptoPage.cpp \
gui/settings/MessagePage.cpp \
gui/settings/NewTag.cpp \
gui/settings/ForumPage.cpp \
gui/settings/PluginsPage.cpp \
gui/settings/PluginItem.cpp \
gui/settings/AppearancePage.cpp \
@ -825,7 +826,6 @@ SOURCES += main.cpp \
# gui/channels/ChannelUserNotify.cpp \
# gui/feeds/ChanNewItem.cpp \
# gui/feeds/ChanMsgItem.cpp \
# gui/settings/ForumPage.cpp \
RESOURCES += gui/images.qrc lang/lang.qrc gui/help/content/content.qrc