Added new method to GxsGroupDialog to allow the service group dialogs to set own string for the gui elements.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@6062 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
thunder2 2013-01-07 00:00:46 +00:00
parent 6d9782217b
commit 1c7e374fcd
13 changed files with 81 additions and 70 deletions

View File

@ -23,7 +23,7 @@
#include <QMessageBox> #include <QMessageBox>
#include "GxsForumsDialog.h" #include "GxsForumsDialog.h"
#include "gxs/GxsForumGroupDialog.h" #include "gxsforums/GxsForumGroupDialog.h"
#include "gxsforums/GxsForumThreadWidget.h" #include "gxsforums/GxsForumThreadWidget.h"
#include "settings/rsharesettings.h" #include "settings/rsharesettings.h"

View File

@ -51,22 +51,29 @@ PostedGroupDialog::PostedGroupDialog(const RsPostedGroup& grp, Mode mode, QWidge
{ {
} }
QString PostedGroupDialog::serviceHeader() QString PostedGroupDialog::uiText(UiType uiType)
{ {
switch (mode()) switch (uiType)
{ {
case MODE_CREATE: case UITYPE_SERVICE_HEADER:
return tr("Create New Posted Topic"); switch (mode())
case MODE_SHOW: {
return tr("Posted Topic"); case MODE_CREATE:
case MODE_EDIT: return tr("Create New Posted Topic");
return tr("Edit Posted Topic"); case MODE_SHOW:
return tr("Posted Topic");
case MODE_EDIT:
return tr("Edit Posted Topic");
}
break;
default:
// remove compiler warnings
break;
} }
return ""; return "";
} }
QPixmap PostedGroupDialog::serviceImage() QPixmap PostedGroupDialog::serviceImage()
{ {
return QPixmap(":/images/posted_add_64.png"); return QPixmap(":/images/posted_add_64.png");

View File

@ -43,7 +43,7 @@ public:
PostedGroupDialog(const RsPostedGroup& grp, Mode mode, QWidget *parent = NULL); PostedGroupDialog(const RsPostedGroup& grp, Mode mode, QWidget *parent = NULL);
protected: protected:
virtual QString serviceHeader(); virtual QString uiText(UiType uiType);
virtual QPixmap serviceImage(); virtual QPixmap serviceImage();
bool service_CreateGroup(uint32_t &token, const RsGroupMetaData &meta); bool service_CreateGroup(uint32_t &token, const RsGroupMetaData &meta);

View File

@ -141,7 +141,6 @@ void WikiDialog::OpenOrShowAddGroupDialog()
void WikiDialog::newGroup() void WikiDialog::newGroup()
{ {
WikiGroupDialog cf(mWikiQueue, this); WikiGroupDialog cf(mWikiQueue, this);
cf.wikitype();
cf.exec (); cf.exec ();
} }

View File

@ -107,10 +107,20 @@ void GxsGroupDialog::init()
void GxsGroupDialog::showEvent(QShowEvent*) void GxsGroupDialog::showEvent(QShowEvent*)
{ {
QString header = serviceHeader(); QString header = uiText(UITYPE_SERVICE_HEADER);
ui.headerFrame->setHeaderText(header); ui.headerFrame->setHeaderText(header);
setWindowTitle(header); setWindowTitle(header);
ui.headerFrame->setHeaderImage(serviceImage()); ui.headerFrame->setHeaderImage(serviceImage());
QString text = uiText(UITYPE_KEY_SHARE_CHECKBOX);
if (!text.isEmpty()) {
ui.pubKeyShare_cb->setText(text);
}
text = uiText(UITYPE_CONTACTS_DOCK);
if (!text.isEmpty()) {
ui.contactsdockWidget->setWindowTitle(text);
}
} }
void GxsGroupDialog::initMode() void GxsGroupDialog::initMode()
@ -530,14 +540,3 @@ void GxsGroupDialog::setShareList()
this->resize(this->size().width() - ui.contactsdockWidget->size().width(), this->size().height()); this->resize(this->size().width() - ui.contactsdockWidget->size().width(), this->size().height());
} }
} }
void GxsGroupDialog::wikitype()
{
// hide logo Button/Label
ui.groupLogo->hide();
ui.addLogoButton->hide();
ui.headerFrame->setHeaderImage(QPixmap(":/images/resource-group-new_48.png")) ;
ui.pubKeyShare_cb->setText(tr("Add Wiki Moderators"));
ui.contactsdockWidget->setWindowTitle(tr("Select Wiki Moderators"));
}

View File

@ -19,7 +19,6 @@
* Boston, MA 02110-1301, USA. * Boston, MA 02110-1301, USA.
****************************************************************/ ****************************************************************/
#ifndef _GXS_GROUP_DIALOG_H #ifndef _GXS_GROUP_DIALOG_H
#define _GXS_GROUP_DIALOG_H #define _GXS_GROUP_DIALOG_H
@ -27,7 +26,6 @@
#include "util/TokenQueue.h" #include "util/TokenQueue.h"
/******** /********
* Notes: * Notes:
* *
@ -51,18 +49,16 @@ class GxsGroupExtension: public QWidget
{ {
public: public:
GxsGroupExtension() : QWidget() { return; } GxsGroupExtension() : QWidget() { return; }
}; };
/*** Group flags affect what is visually enabled that gets input into the grpMeta ***/ /*** Group flags affect what is visually enabled that gets input into the grpMeta ***/
#define GXS_GROUP_FLAGS_ICON 0x00000001 #define GXS_GROUP_FLAGS_ICON 0x00000001
#define GXS_GROUP_FLAGS_DESCRIPTION 0x00000002 #define GXS_GROUP_FLAGS_DESCRIPTION 0x00000002
#define GXS_GROUP_FLAGS_DISTRIBUTION 0x00000004 #define GXS_GROUP_FLAGS_DISTRIBUTION 0x00000004
#define GXS_GROUP_FLAGS_PUBLISHSIGN 0x00000008 #define GXS_GROUP_FLAGS_PUBLISHSIGN 0x00000008
#define GXS_GROUP_FLAGS_SHAREKEYS 0x00000010 #define GXS_GROUP_FLAGS_SHAREKEYS 0x00000010
#define GXS_GROUP_FLAGS_PERSONALSIGN 0x00000020 #define GXS_GROUP_FLAGS_PERSONALSIGN 0x00000020
#define GXS_GROUP_FLAGS_COMMENTS 0x00000040 #define GXS_GROUP_FLAGS_COMMENTS 0x00000040
#define GXS_GROUP_FLAGS_EXTRA 0x00000100 #define GXS_GROUP_FLAGS_EXTRA 0x00000100
@ -70,7 +66,6 @@ public:
/*** Default flags are used to determine privacy of group, signatures required *** /*** Default flags are used to determine privacy of group, signatures required ***
*** whether publish or id and whether comments are allowed or not ***/ *** whether publish or id and whether comments are allowed or not ***/
#define GXS_GROUP_DEFAULTS_DISTRIB_MASK 0x0000000f #define GXS_GROUP_DEFAULTS_DISTRIB_MASK 0x0000000f
#define GXS_GROUP_DEFAULTS_PUBLISH_MASK 0x000000f0 #define GXS_GROUP_DEFAULTS_PUBLISH_MASK 0x000000f0
#define GXS_GROUP_DEFAULTS_PERSONAL_MASK 0x00000f00 #define GXS_GROUP_DEFAULTS_PERSONAL_MASK 0x00000f00
@ -116,6 +111,12 @@ public:
MODE_EDIT MODE_EDIT
}; };
enum UiType {
UITYPE_SERVICE_HEADER,
UITYPE_KEY_SHARE_CHECKBOX,
UITYPE_CONTACTS_DOCK
};
public: public:
/*! /*!
@ -137,7 +138,6 @@ public:
* @param parent * @param parent
*/ */
GxsGroupDialog(const RsGroupMetaData& grpMeta, Mode mode, QWidget *parent = NULL); GxsGroupDialog(const RsGroupMetaData& grpMeta, Mode mode, QWidget *parent = NULL);
void wikitype();
uint32_t mode() { return mMode; } uint32_t mode() { return mMode; }
@ -155,7 +155,7 @@ protected slots:
protected: protected:
virtual void showEvent(QShowEvent*); virtual void showEvent(QShowEvent*);
virtual QString serviceHeader() = 0; virtual QString uiText(UiType uiType) = 0;
virtual QPixmap serviceImage() = 0; virtual QPixmap serviceImage() = 0;
/*! /*!
@ -179,7 +179,6 @@ protected:
*/ */
virtual QString getDescription(); virtual QString getDescription();
private slots: private slots:
/* actions to take.... */ /* actions to take.... */
@ -191,11 +190,8 @@ private slots:
void updateCircleOptions(); void updateCircleOptions();
private: private:
void setCircleParameters(RsGroupMetaData &meta); void setCircleParameters(RsGroupMetaData &meta);
void setGroupSignFlags(uint32_t signFlags); void setGroupSignFlags(uint32_t signFlags);
uint32_t getGroupSignFlags(); uint32_t getGroupSignFlags();
void setupDefaults(); void setupDefaults();
@ -205,7 +201,6 @@ private:
void sendShareList(std::string forumId); void sendShareList(std::string forumId);
void loadNewGroupId(const uint32_t &token); void loadNewGroupId(const uint32_t &token);
std::list<std::string> mShareList; std::list<std::string> mShareList;
QPixmap picture; QPixmap picture;
TokenQueue *mTokenQueue; TokenQueue *mTokenQueue;
@ -221,4 +216,3 @@ private:
}; };
#endif #endif

View File

@ -142,7 +142,7 @@
<item> <item>
<widget class="QCheckBox" name="pubKeyShare_cb"> <widget class="QCheckBox" name="pubKeyShare_cb">
<property name="toolTip"> <property name="toolTip">
<string>Key recipients can publish to restricted-type Wiki Group, and can view and publish for private-type channels</string> <string>Key recipients can publish to restricted-type group and can view and publish for private-type channels</string>
</property> </property>
<property name="text"> <property name="text">
<string>Share Publish Key</string> <string>Share Publish Key</string>

View File

@ -24,7 +24,7 @@
#include <retroshare/rswiki.h> #include <retroshare/rswiki.h>
#include <iostream> #include <iostream>
const uint32_t WikiCreateEnabledFlags = ( GXS_GROUP_FLAGS_ICON | const uint32_t WikiCreateEnabledFlags = ( // GXS_GROUP_FLAGS_ICON |
GXS_GROUP_FLAGS_DESCRIPTION | GXS_GROUP_FLAGS_DESCRIPTION |
GXS_GROUP_FLAGS_DISTRIBUTION | GXS_GROUP_FLAGS_DISTRIBUTION |
// GXS_GROUP_FLAGS_PUBLISHSIGN | // GXS_GROUP_FLAGS_PUBLISHSIGN |
@ -117,16 +117,28 @@ WikiGroupDialog::WikiGroupDialog(const RsWikiCollection &collection, QWidget *pa
} }
QString WikiGroupDialog::serviceHeader() QString WikiGroupDialog::uiText(UiType uiType)
{ {
switch (mode()) switch (uiType)
{ {
case MODE_CREATE: case UITYPE_SERVICE_HEADER:
return tr("Create New Wiki Group"); switch (mode())
case MODE_SHOW: {
return tr("Wiki Group"); case MODE_CREATE:
case MODE_EDIT: return tr("Create New Wiki Group");
return tr("Edit Wiki Group"); case MODE_SHOW:
return tr("Wiki Group");
case MODE_EDIT:
return tr("Edit Wiki Group");
}
break;
case UITYPE_KEY_SHARE_CHECKBOX:
return tr("Add Wiki Moderators");
case UITYPE_CONTACTS_DOCK:
return tr("Select Wiki Moderators");
default:
// remove compiler warnings
break;
} }
return ""; return "";

View File

@ -35,7 +35,7 @@ public:
WikiGroupDialog(const RsWikiCollection &collection, QWidget *parent); WikiGroupDialog(const RsWikiCollection &collection, QWidget *parent);
protected: protected:
virtual QString serviceHeader(); virtual QString uiText(UiType uiType);
virtual QPixmap serviceImage(); virtual QPixmap serviceImage();
virtual bool service_CreateGroup(uint32_t &token, const RsGroupMetaData &meta); virtual bool service_CreateGroup(uint32_t &token, const RsGroupMetaData &meta);

View File

@ -52,32 +52,35 @@ const uint32_t ForumCreateDefaultsFlags = ( GXS_GROUP_DEFAULTS_DISTRIB_PUBLIC
GXS_GROUP_DEFAULTS_COMMENTS_NO | GXS_GROUP_DEFAULTS_COMMENTS_NO |
0); 0);
GxsForumGroupDialog::GxsForumGroupDialog(TokenQueue *tokenQueue, QWidget *parent) GxsForumGroupDialog::GxsForumGroupDialog(TokenQueue *tokenQueue, QWidget *parent)
:GxsGroupDialog(tokenQueue, ForumCreateEnabledFlags, ForumCreateDefaultsFlags, parent) :GxsGroupDialog(tokenQueue, ForumCreateEnabledFlags, ForumCreateDefaultsFlags, parent)
{ {
} }
GxsForumGroupDialog::GxsForumGroupDialog(const RsGxsForumGroup &group, Mode mode, QWidget *parent) GxsForumGroupDialog::GxsForumGroupDialog(const RsGxsForumGroup &group, Mode mode, QWidget *parent)
:GxsGroupDialog(group.mMeta, mode, parent) :GxsGroupDialog(group.mMeta, mode, parent)
{ {
return;
} }
QString GxsForumGroupDialog::serviceHeader() QString GxsForumGroupDialog::uiText(UiType uiType)
{ {
switch (mode()) switch (uiType)
{ {
case MODE_CREATE: case UITYPE_SERVICE_HEADER:
return tr("Create New Forum"); switch (mode())
case MODE_SHOW: {
return tr("Forum"); case MODE_CREATE:
case MODE_EDIT: return tr("Create New Forum");
return tr("Edit Forum"); case MODE_SHOW:
return tr("Forum");
case MODE_EDIT:
return tr("Edit Forum");
}
break;
default:
// remove compiler warnings
break;
} }
return ""; return "";
} }

View File

@ -19,11 +19,10 @@
* Boston, MA 02110-1301, USA. * Boston, MA 02110-1301, USA.
****************************************************************/ ****************************************************************/
#ifndef _GXSFORUM_GROUP_DIALOG_H #ifndef _GXSFORUM_GROUP_DIALOG_H
#define _GXSFORUM_GROUP_DIALOG_H #define _GXSFORUM_GROUP_DIALOG_H
#include "GxsGroupDialog.h" #include "gui/gxs/GxsGroupDialog.h"
#include <retroshare/rsgxsforums.h> #include <retroshare/rsgxsforums.h>
class GxsForumGroupDialog : public GxsGroupDialog class GxsForumGroupDialog : public GxsGroupDialog
@ -35,10 +34,9 @@ public:
GxsForumGroupDialog(const RsGxsForumGroup &group, Mode mode, QWidget *parent); GxsForumGroupDialog(const RsGxsForumGroup &group, Mode mode, QWidget *parent);
protected: protected:
virtual QString serviceHeader(); virtual QString uiText(UiType uiType);
virtual QPixmap serviceImage(); virtual QPixmap serviceImage();
virtual bool service_CreateGroup(uint32_t &token, const RsGroupMetaData &meta); virtual bool service_CreateGroup(uint32_t &token, const RsGroupMetaData &meta);
}; };
#endif #endif

View File

@ -33,7 +33,6 @@
#include "gui/settings/rsharesettings.h" #include "gui/settings/rsharesettings.h"
#include "gui/gxs/GxsIdTreeWidgetItem.h" #include "gui/gxs/GxsIdTreeWidgetItem.h"
#include "util/HandleRichText.h" #include "util/HandleRichText.h"
#include "gui/gxs/GxsForumGroupDialog.h"
#include "CreateGxsForumMsg.h" #include "CreateGxsForumMsg.h"
#include "gui/msgs/MessageComposer.h" #include "gui/msgs/MessageComposer.h"
#include "util/DateTime.h" #include "util/DateTime.h"

View File

@ -1021,6 +1021,7 @@ circles {
gxsforums { gxsforums {
HEADERS += gui/GxsForumsDialog.h \ HEADERS += gui/GxsForumsDialog.h \
gui/gxsforums/GxsForumGroupDialog.h \
gui/gxsforums/CreateGxsForumMsg.h \ gui/gxsforums/CreateGxsForumMsg.h \
gui/gxsforums/GxsForumThreadWidget.h \ gui/gxsforums/GxsForumThreadWidget.h \
gui/gxsforums/GxsForumsFillThread.h gui/gxsforums/GxsForumsFillThread.h
@ -1030,6 +1031,7 @@ gxsforums {
gui/gxsforums/GxsForumThreadWidget.ui gui/gxsforums/GxsForumThreadWidget.ui
SOURCES += gui/GxsForumsDialog.cpp \ SOURCES += gui/GxsForumsDialog.cpp \
gui/gxsforums/GxsForumGroupDialog.cpp \
gui/gxsforums/CreateGxsForumMsg.cpp \ gui/gxsforums/CreateGxsForumMsg.cpp \
gui/gxsforums/GxsForumThreadWidget.cpp \ gui/gxsforums/GxsForumThreadWidget.cpp \
gui/gxsforums/GxsForumsFillThread.cpp gui/gxsforums/GxsForumsFillThread.cpp
@ -1070,7 +1072,6 @@ gxsgui {
HEADERS += gui/gxs/GxsGroupDialog.h \ HEADERS += gui/gxs/GxsGroupDialog.h \
gui/gxs/GxsCommentTreeWidget.h \ gui/gxs/GxsCommentTreeWidget.h \
gui/gxs/WikiGroupDialog.h \ gui/gxs/WikiGroupDialog.h \
gui/gxs/GxsForumGroupDialog.h \
gui/gxs/GxsIdChooser.h \ gui/gxs/GxsIdChooser.h \
gui/gxs/GxsIdLabel.h \ gui/gxs/GxsIdLabel.h \
gui/gxs/GxsCircleChooser.h \ gui/gxs/GxsCircleChooser.h \
@ -1088,7 +1089,6 @@ gxsgui {
SOURCES += gui/gxs/GxsGroupDialog.cpp \ SOURCES += gui/gxs/GxsGroupDialog.cpp \
gui/gxs/GxsCommentTreeWidget.cpp \ gui/gxs/GxsCommentTreeWidget.cpp \
gui/gxs/WikiGroupDialog.cpp \ gui/gxs/WikiGroupDialog.cpp \
gui/gxs/GxsForumGroupDialog.cpp \
gui/gxs/GxsIdChooser.cpp \ gui/gxs/GxsIdChooser.cpp \
gui/gxs/GxsIdLabel.cpp \ gui/gxs/GxsIdLabel.cpp \
gui/gxs/GxsCircleChooser.cpp \ gui/gxs/GxsCircleChooser.cpp \