diff --git a/retroshare-gui/src/gui/gxs/GxsCommentDialog.ui b/retroshare-gui/src/gui/gxs/GxsCommentDialog.ui index 8b91fc8ca..7961136c0 100644 --- a/retroshare-gui/src/gui/gxs/GxsCommentDialog.ui +++ b/retroshare-gui/src/gui/gxs/GxsCommentDialog.ui @@ -13,7 +13,7 @@ <property name="windowTitle"> <string>Form</string> </property> - <layout class="QVBoxLayout" name="verticalLayout_3"> + <layout class="QVBoxLayout" name="GxsCommentDialogVLayout"> <item> <widget class="QFrame" name="postFrame"> <property name="sizePolicy"> @@ -22,7 +22,7 @@ <verstretch>0</verstretch> </sizepolicy> </property> - <layout class="QVBoxLayout" name="verticalLayout"> + <layout class="QVBoxLayout" name="postFrameVLayout"> <property name="leftMargin"> <number>9</number> </property> @@ -36,7 +36,7 @@ </widget> </item> <item> - <layout class="QHBoxLayout" name="horizontalLayout"> + <layout class="QHBoxLayout" name="toolBarHLayout"> <item> <widget class="QPushButton" name="hotSortButton"> <property name="text"> @@ -80,7 +80,7 @@ </widget> </item> <item> - <spacer name="horizontalSpacer"> + <spacer name="toolBarHSpacer"> <property name="orientation"> <enum>Qt::Horizontal</enum> </property> @@ -93,7 +93,7 @@ </spacer> </item> <item> - <widget class="QLabel" name="label_2"> + <widget class="QLabel" name="idLabel"> <property name="text"> <string>Voter ID:</string> </property> diff --git a/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.cpp b/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.cpp index 1a20c13e5..23a5327ed 100644 --- a/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.cpp +++ b/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.cpp @@ -21,13 +21,14 @@ * */ -#include <QMimeData> -#include <QTextDocument> #include <QAbstractTextDocumentLayout> #include <QApplication> +#include <QClipboard> #include <QDateTime> #include <QMenu> +#include <QMimeData> #include <QPainter> +#include <QTextDocument> #include "gui/common/RSElidedItemDelegate.h" #include "gui/gxs/GxsCommentTreeWidget.h" @@ -54,7 +55,8 @@ #define POST_COLOR_ROLE (Qt::UserRole+2) /* Images for context menu icons */ -#define IMAGE_MESSAGE ":/images/folder-draft.png" +#define IMAGE_MESSAGE ":/images/folder-draft.png" +#define IMAGE_COPY ":/images/copy.png" #define IMAGE_VOTEUP ":/images/vote_up.png" #define IMAGE_VOTEDOWN ":/images/vote_down.png" @@ -170,6 +172,7 @@ void GxsCommentTreeWidget::setCurrentCommentMsgId(QTreeWidgetItem *current, QTre if(current) { mCurrentCommentMsgId = RsGxsMessageId(current->text(PCITEM_COLUMN_MSGID).toStdString()); + mCurrentCommentText = current->text(PCITEM_COLUMN_COMMENT); } } @@ -180,6 +183,8 @@ void GxsCommentTreeWidget::customPopUpMenu(const QPoint& /*point*/) action->setDisabled(mCurrentCommentMsgId.isNull()); action = contextMnu.addAction(QIcon(IMAGE_MESSAGE), tr("Submit Comment"), this, SLOT(makeComment())); action->setDisabled(mMsgVersions.empty()); + action = contextMnu.addAction(QIcon(IMAGE_COPY), tr("Copy Comment"), this, SLOT(copyComment())); + action->setDisabled(mCurrentCommentMsgId.isNull()); contextMnu.addSeparator(); @@ -308,6 +313,14 @@ void GxsCommentTreeWidget::replyToComment() pcc.exec(); } +void GxsCommentTreeWidget::copyComment() +{ + QMimeData *mimeData = new QMimeData(); + mimeData->setHtml("<html>"+mCurrentCommentText+"</html>"); + QClipboard *clipboard = QApplication::clipboard(); + clipboard->setMimeData(mimeData, QClipboard::Clipboard); +} + void GxsCommentTreeWidget::setup(RsTokenService *token_service, RsGxsCommentService *comment_service) { mRsTokenService = token_service; diff --git a/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.h b/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.h index dcc2db991..e0cedc2f4 100644 --- a/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.h +++ b/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.h @@ -71,6 +71,8 @@ public slots: void makeComment(); void replyToComment(); + void copyComment(); + void voteUp(); void voteDown(); @@ -89,6 +91,7 @@ protected: std::set<RsGxsMessageId> mMsgVersions; RsGxsMessageId mLatestMsgId; RsGxsMessageId mCurrentCommentMsgId; + QString mCurrentCommentText; RsGxsId mVoterId; std::map<RsGxsMessageId, QTreeWidgetItem *> mLoadingMap;