Improved GxsGroupDialog for Show / Edit of Groups.

- Added Show/Edit Menu Options for all services.
 - Fixed up BUTTONBOX_OK bugs.
 - Tested name changes for all services.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@7102 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
drbob 2014-02-09 10:43:59 +00:00
parent d9e483c48a
commit d65bdca1ec
15 changed files with 408 additions and 109 deletions

View file

@ -244,18 +244,16 @@ void GxsChannelDialog::channelListCustomPopupMenu( QPoint /*point*/ )
contextMnu.addAction( subscribechannelAct );
}
QAction *channeldetailsAct = new QAction(QIcon(":/images/info16.png"), tr( "Show Channel Details" ), &contextMnu);
connect( channeldetailsAct , SIGNAL( triggered() ), this, SLOT( showChannelDetails() ) );
contextMnu.addAction( channeldetailsAct );
if (isAdmin)
{
QAction *editChannelDetailAct = new QAction(QIcon(":/images/edit_16.png"), tr("Edit Channel Details"), &contextMnu);
connect( editChannelDetailAct, SIGNAL( triggered() ), this, SLOT( editChannelDetail() ) );
contextMnu.addAction( editChannelDetailAct);
}
else
{
QAction *channeldetailsAct = new QAction(QIcon(":/images/info16.png"), tr( "Show Channel Details" ), &contextMnu);
connect( channeldetailsAct , SIGNAL( triggered() ), this, SLOT( showChannelDetails() ) );
contextMnu.addAction( channeldetailsAct );
}
if (isPublisher)
{
@ -372,10 +370,12 @@ void GxsChannelDialog::openChat(std::string /*peerId*/)
void GxsChannelDialog::editChannelDetail()
{
#if 0
EditChanDetails editUi(this, mChannelId);
editUi.exec();
#endif
if (mChannelId.empty()) {
return;
}
GxsChannelGroupDialog cf(mChannelQueue, rsGxsChannels->getTokenService(), GxsGroupDialog::MODE_EDIT, mChannelId, this);
cf.exec ();
}
void GxsChannelDialog::shareKey()
@ -799,22 +799,15 @@ void GxsChannelDialog::subscribeChannel()
void GxsChannelDialog::showChannelDetails()
{
#if 0
if (mChannelId.empty()) {
return;
}
if (mChannelId.empty()) {
return;
}
if (!rsChannels) {
return;
}
ChannelDetails channelui (this);
channelui.showDetails(mChannelId);
channelui.exec();
#endif
GxsChannelGroupDialog cf(mChannelQueue, rsGxsChannels->getTokenService(), GxsGroupDialog::MODE_SHOW, mChannelId, this);
cf.exec ();
}
void GxsChannelDialog::setAllAsReadClicked()
{
#if 0

View file

@ -62,7 +62,7 @@ GxsChannelGroupDialog::GxsChannelGroupDialog(TokenQueue *tokenQueue, QWidget *pa
{
}
GxsChannelGroupDialog::GxsChannelGroupDialog(TokenQueue *tokenExternalQueue, RsTokenService *tokenService, Mode mode, RsGxsGroupId groupId, uint32_t enableFlags, uint32_t defaultFlags, QWidget *parent)
GxsChannelGroupDialog::GxsChannelGroupDialog(TokenQueue *tokenExternalQueue, RsTokenService *tokenService, Mode mode, RsGxsGroupId groupId, QWidget *parent)
:GxsGroupDialog(tokenExternalQueue, tokenService, mode, groupId, ChannelEditEnabledFlags, ChannelEditDefaultsFlags, parent)
{
}
@ -73,18 +73,19 @@ void GxsChannelGroupDialog::initUi()
{
case MODE_CREATE:
setUiText(UITYPE_SERVICE_HEADER, tr("Create New Channel"));
setUiText(UITYPE_BUTTONBOX_OK, tr("Create Channel"));
break;
case MODE_SHOW:
setUiText(UITYPE_SERVICE_HEADER, tr("Channel"));
break;
case MODE_EDIT:
setUiText(UITYPE_SERVICE_HEADER, tr("Edit Channel"));
setUiText(UITYPE_BUTTONBOX_OK, tr("Update Channel"));
break;
}
setUiText(UITYPE_KEY_SHARE_CHECKBOX, tr("Add Channel Admins"));
setUiText(UITYPE_CONTACTS_DOCK, tr("Select Channel Admins"));
setUiText(UITYPE_BUTTONBOX_OK, tr("Create Channel"));
}
QPixmap GxsChannelGroupDialog::serviceImage()
@ -104,12 +105,46 @@ bool GxsChannelGroupDialog::service_CreateGroup(uint32_t &token, const RsGroupMe
}
bool GxsChannelGroupDialog::service_EditGroup(uint32_t &token, RsGxsGroupUpdateMeta &updateMeta)
bool GxsChannelGroupDialog::service_EditGroup(uint32_t &token,
RsGxsGroupUpdateMeta &updateMeta,
RsGroupMetaData &editedMeta)
{
std::cerr << "GxsChannelGroupDialog::service_EditGroup() UNFINISHED";
RsGxsChannelGroup grp;
grp.mMeta = editedMeta;
grp.mDescription = std::string(ui.groupDesc->toPlainText().toUtf8());
std::cerr << "GxsChannelGroupDialog::service_EditGroup() submitting changes";
std::cerr << std::endl;
return false;
rsGxsChannels->updateGroup(token, updateMeta, grp);
return true;
}
bool GxsChannelGroupDialog::service_loadGroup(uint32_t token, Mode mode, RsGroupMetaData& groupMetaData)
{
std::cerr << "GxsChannelGroupDialog::service_loadGroup(" << token << ")";
std::cerr << std::endl;
std::vector<RsGxsChannelGroup> groups;
if (!rsGxsChannels->getGroupData(token, groups))
{
std::cerr << "GxsChannelGroupDialog::service_loadGroup() Error getting GroupData";
std::cerr << std::endl;
return false;
}
if (groups.size() != 1)
{
std::cerr << "GxsChannelGroupDialog::service_loadGroup() Error Group.size() != 1";
std::cerr << std::endl;
return false;
}
std::cerr << "GxsChannelsGroupDialog::service_loadGroup() Unfinished Loading";
std::cerr << std::endl;
groupMetaData = groups[0].mMeta;
return true;
}

View file

@ -31,13 +31,16 @@ class GxsChannelGroupDialog : public GxsGroupDialog
public:
GxsChannelGroupDialog(TokenQueue *tokenQueue, QWidget *parent);
GxsChannelGroupDialog(TokenQueue *tokenExternalQueue, RsTokenService *tokenService, Mode mode, RsGxsGroupId groupId, uint32_t enableFlags, uint32_t defaultFlags, QWidget *parent = NULL);
GxsChannelGroupDialog(TokenQueue *tokenExternalQueue, RsTokenService *tokenService, Mode mode, RsGxsGroupId groupId, QWidget *parent = NULL);
protected:
virtual void initUi();
virtual QPixmap serviceImage();
virtual bool service_CreateGroup(uint32_t &token, const RsGroupMetaData &meta);
virtual bool service_EditGroup(uint32_t &token, RsGxsGroupUpdateMeta &updateMeta);
virtual bool service_loadGroup(uint32_t token, Mode mode, RsGroupMetaData& groupMetaData);
virtual bool service_EditGroup(uint32_t &token,
RsGxsGroupUpdateMeta &updateMeta,
RsGroupMetaData &editedMeta);
};