mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-06-25 06:40:58 -04:00
merging
This commit is contained in:
commit
525310e5c6
11 changed files with 319 additions and 281 deletions
|
@ -14,9 +14,9 @@ StreamBase& operator <<(StreamBase& left, KeyValueReference<uint32_t> ref)
|
||||||
{
|
{
|
||||||
digit = num % 10;
|
digit = num % 10;
|
||||||
num = num / 10;
|
num = num / 10;
|
||||||
str += (char)(digit + '0');
|
str = (char)(digit + '0') + str;
|
||||||
}
|
}
|
||||||
str += (char)(num + '0');
|
str = (char)(num + '0') + str;
|
||||||
left << makeKeyValueReference(ref.key, str);
|
left << makeKeyValueReference(ref.key, str);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -1467,7 +1467,7 @@ var ChatWidget = React.createClass({
|
||||||
<ChatInfoWidget id={this.props.id}/>
|
<ChatInfoWidget id={this.props.id}/>
|
||||||
{
|
{
|
||||||
this.state.data.map(function(msg){
|
this.state.data.map(function(msg){
|
||||||
return <div key={msg.id}>{msg.send_time} {msg.author_name}: {markup(msg.msg, msg.links)}</div>;
|
return <div key={msg.id}>{new Date(msg.send_time*1000).toLocaleTimeString()} {msg.author_name}: {markup(msg.msg, msg.links)}</div>;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
<input type="text" ref="input" onKeyDown={
|
<input type="text" ref="input" onKeyDown={
|
||||||
|
|
36
libresapi/src/webui/Makefile
Normal file
36
libresapi/src/webui/Makefile
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
REACT_VERSION = 0.13.1
|
||||||
|
|
||||||
|
DISTDIR = ../webfiles
|
||||||
|
JSEXTLIBS = $(DISTDIR)/react.js $(DISTDIR)/JSXTransformer.js
|
||||||
|
JSLIBS = RsXHRConnection.js RsApi.js
|
||||||
|
HTML = index.html
|
||||||
|
JSGUI = gui.jsx
|
||||||
|
CSS = green-black.css
|
||||||
|
|
||||||
|
all: $(DISTDIR) $(JSEXTLIBS) $(addprefix $(DISTDIR)/, $(JSLIBS)) $(addprefix $(DISTDIR)/, $(HTML)) $(addprefix $(DISTDIR)/, $(JSGUI)) $(addprefix $(DISTDIR)/, $(CSS))
|
||||||
|
.PHONY: all
|
||||||
|
|
||||||
|
$(DISTDIR)/livereload: $(DISTDIR) $(JSEXTLIBS) $(addprefix $(DISTDIR)/, $(JSLIBS)) $(addprefix $(DISTDIR)/, $(HTML)) $(addprefix $(DISTDIR)/, $(JSGUI)) $(addprefix $(DISTDIR)/, $(CSS))
|
||||||
|
wget -qO- http://localhost:9090/api/v2/livereload/trigger
|
||||||
|
touch $(DISTDIR)/livereload
|
||||||
|
|
||||||
|
$(DISTDIR)/react.js:
|
||||||
|
cd $(DISTDIR) && wget --no-check-certificate --output-document react.js http://fb.me/react-$(REACT_VERSION).js
|
||||||
|
|
||||||
|
$(DISTDIR)/JSXTransformer.js:
|
||||||
|
cd $(DISTDIR) && wget --no-check-certificate --output-document JSXTransformer.js http://fb.me/JSXTransformer-$(REACT_VERSION).js
|
||||||
|
|
||||||
|
$(addprefix $(DISTDIR)/, $(JSLIBS)): $(DISTDIR)/%: %
|
||||||
|
cp $< $@
|
||||||
|
|
||||||
|
$(addprefix $(DISTDIR)/, $(HTML)): $(DISTDIR)/%: %
|
||||||
|
cp $< $@
|
||||||
|
|
||||||
|
$(addprefix $(DISTDIR)/, $(JSGUI)): $(DISTDIR)/%: %
|
||||||
|
cp $< $@
|
||||||
|
|
||||||
|
$(addprefix $(DISTDIR)/, $(CSS)): $(DISTDIR)/%: %
|
||||||
|
cp $< $@
|
||||||
|
|
||||||
|
$(DISTDIR):
|
||||||
|
mkdir $(DISTDIR)
|
|
@ -1467,7 +1467,7 @@ var ChatWidget = React.createClass({
|
||||||
<ChatInfoWidget id={this.props.id}/>
|
<ChatInfoWidget id={this.props.id}/>
|
||||||
{
|
{
|
||||||
this.state.data.map(function(msg){
|
this.state.data.map(function(msg){
|
||||||
return <div key={msg.id}>{msg.send_time} {msg.author_name}: {markup(msg.msg, msg.links)}</div>;
|
return <div key={msg.id}>{new Date(msg.send_time*1000).toLocaleTimeString()} {msg.author_name}: {markup(msg.msg, msg.links)}</div>;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
<input type="text" ref="input" onKeyDown={
|
<input type="text" ref="input" onKeyDown={
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <time.h>
|
||||||
#include "serialiser/rsbaseserial.h"
|
#include "serialiser/rsbaseserial.h"
|
||||||
#include "serialiser/rsgxsreputationitems.h"
|
#include "serialiser/rsgxsreputationitems.h"
|
||||||
|
|
||||||
|
|
|
@ -373,6 +373,7 @@ void VOIPChatWidgetHolder::addNewAudioButtonMap(const RsPeerId &peer_id)
|
||||||
.append("font-size: 12pt; color: white;")
|
.append("font-size: 12pt; color: white;")
|
||||||
.append("min-width: 128px; min-height: 24px;")
|
.append("min-width: 128px; min-height: 24px;")
|
||||||
.append("border-radius: 6px;")
|
.append("border-radius: 6px;")
|
||||||
|
.append("padding: 3px;")
|
||||||
.append("background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.67, "
|
.append("background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.67, "
|
||||||
"stop: 0 #22c70d, stop: 1 #116a06);")
|
"stop: 0 #22c70d, stop: 1 #116a06);")
|
||||||
);
|
);
|
||||||
|
@ -385,10 +386,11 @@ void VOIPChatWidgetHolder::addNewAudioButtonMap(const RsPeerId &peer_id)
|
||||||
|
|
||||||
RSButtonOnText *buttonD = mChatWidget->getNewButtonOnTextBrowser(tr("Decline Audio Call"));
|
RSButtonOnText *buttonD = mChatWidget->getNewButtonOnTextBrowser(tr("Decline Audio Call"));
|
||||||
buttonD->setToolTip(tr("Refuse audio call"));
|
buttonD->setToolTip(tr("Refuse audio call"));
|
||||||
buttonD->setStyleSheet(QString("border: 1px solid #199909;")
|
buttonD->setStyleSheet(QString("border: 1px solid #6a1106;")
|
||||||
.append("font-size: 12pt; color: white;")
|
.append("font-size: 12pt; color: white;")
|
||||||
.append("min-width: 128px; min-height: 24px;")
|
.append("min-width: 128px; min-height: 24px;")
|
||||||
.append("border-radius: 6px;")
|
.append("border-radius: 6px;")
|
||||||
|
.append("padding: 3px;")
|
||||||
.append("background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.67, "
|
.append("background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.67, "
|
||||||
"stop: 0 #c7220d, stop: 1 #6a1106);")
|
"stop: 0 #c7220d, stop: 1 #6a1106);")
|
||||||
);
|
);
|
||||||
|
@ -424,6 +426,7 @@ void VOIPChatWidgetHolder::addNewVideoButtonMap(const RsPeerId &peer_id)
|
||||||
.append("font-size: 12pt; color: white;")
|
.append("font-size: 12pt; color: white;")
|
||||||
.append("min-width: 128px; min-height: 24px;")
|
.append("min-width: 128px; min-height: 24px;")
|
||||||
.append("border-radius: 6px;")
|
.append("border-radius: 6px;")
|
||||||
|
.append("padding: 3px;")
|
||||||
.append("background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.67, "
|
.append("background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.67, "
|
||||||
"stop: 0 #22c70d, stop: 1 #116a06);")
|
"stop: 0 #22c70d, stop: 1 #116a06);")
|
||||||
);
|
);
|
||||||
|
@ -436,10 +439,11 @@ void VOIPChatWidgetHolder::addNewVideoButtonMap(const RsPeerId &peer_id)
|
||||||
|
|
||||||
RSButtonOnText *buttonD = mChatWidget->getNewButtonOnTextBrowser(tr("Decline Video Call"));
|
RSButtonOnText *buttonD = mChatWidget->getNewButtonOnTextBrowser(tr("Decline Video Call"));
|
||||||
buttonD->setToolTip(tr("Refuse video call"));
|
buttonD->setToolTip(tr("Refuse video call"));
|
||||||
buttonD->setStyleSheet(QString("border: 1px solid #199909;")
|
buttonD->setStyleSheet(QString("border: 1px solid #6a1106;")
|
||||||
.append("font-size: 12pt; color: white;")
|
.append("font-size: 12pt; color: white;")
|
||||||
.append("min-width: 128px; min-height: 24px;")
|
.append("min-width: 128px; min-height: 24px;")
|
||||||
.append("border-radius: 6px;")
|
.append("border-radius: 6px;")
|
||||||
|
.append("padding: 3px;")
|
||||||
.append("background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.67, "
|
.append("background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.67, "
|
||||||
"stop: 0 #c7220d, stop: 1 #6a1106);")
|
"stop: 0 #c7220d, stop: 1 #6a1106);")
|
||||||
);
|
);
|
||||||
|
@ -793,7 +797,7 @@ void VOIPChatWidgetHolder::replaceFullscreenWidget()
|
||||||
outputVideoDeviceFS->setGeometry(QRect(QPoint(0,0),fullScreenFrame->geometry().size()));
|
outputVideoDeviceFS->setGeometry(QRect(QPoint(0,0),fullScreenFrame->geometry().size()));
|
||||||
echoVideoDeviceFS->setGeometry(QRect(QPoint(fullScreenFrame->width(), fullScreenFrame->height()) - QPoint(320,240), QSize(320,240)));
|
echoVideoDeviceFS->setGeometry(QRect(QPoint(fullScreenFrame->width(), fullScreenFrame->height()) - QPoint(320,240), QSize(320,240)));
|
||||||
QRect toolBarFSGeo = QRect( (fullScreenFrame->width() - toolBarFS->geometry().width()) / 2
|
QRect toolBarFSGeo = QRect( (fullScreenFrame->width() - toolBarFS->geometry().width()) / 2
|
||||||
, fullScreenFrame->height() - toolBarFS->geometry().height()
|
, fullScreenFrame->height() - (toolBarFS->geometry().height() * 2)
|
||||||
, toolBarFS->geometry().width(), toolBarFS->geometry().height());
|
, toolBarFS->geometry().width(), toolBarFS->geometry().height());
|
||||||
toolBarFS->setGeometry(toolBarFSGeo);
|
toolBarFS->setGeometry(toolBarFSGeo);
|
||||||
|
|
||||||
|
@ -820,6 +824,7 @@ void VOIPChatWidgetHolder::botMouseEnterTake()
|
||||||
.append("font-size: 12pt; color: white;")
|
.append("font-size: 12pt; color: white;")
|
||||||
.append("min-width: 128px; min-height: 24px;")
|
.append("min-width: 128px; min-height: 24px;")
|
||||||
.append("border-radius: 6px;")
|
.append("border-radius: 6px;")
|
||||||
|
.append("padding: 3px;")
|
||||||
.append("background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.67, "
|
.append("background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.67, "
|
||||||
"stop: 0 #444444, stop: 1 #222222);")
|
"stop: 0 #444444, stop: 1 #222222);")
|
||||||
);
|
);
|
||||||
|
@ -831,10 +836,11 @@ void VOIPChatWidgetHolder::botMouseLeaveTake()
|
||||||
{
|
{
|
||||||
RSButtonOnText *source = qobject_cast<RSButtonOnText *>(QObject::sender());
|
RSButtonOnText *source = qobject_cast<RSButtonOnText *>(QObject::sender());
|
||||||
if (source){
|
if (source){
|
||||||
source->setStyleSheet(QString("border: 1px solid #199909;")
|
source->setStyleSheet(QString("border: 1px solid #116a06;")
|
||||||
.append("font-size: 12pt; color: white;")
|
.append("font-size: 12pt; color: white;")
|
||||||
.append("min-width: 128px; min-height: 24px;")
|
.append("min-width: 128px; min-height: 24px;")
|
||||||
.append("border-radius: 6px;")
|
.append("border-radius: 6px;")
|
||||||
|
.append("padding: 3px;")
|
||||||
.append("background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.67, "
|
.append("background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.67, "
|
||||||
"stop: 0 #22c70d, stop: 1 #116a06);")
|
"stop: 0 #22c70d, stop: 1 #116a06);")
|
||||||
);
|
);
|
||||||
|
@ -850,6 +856,7 @@ void VOIPChatWidgetHolder::botMouseEnterDecline()
|
||||||
.append("font-size: 12pt; color: white;")
|
.append("font-size: 12pt; color: white;")
|
||||||
.append("min-width: 128px; min-height: 24px;")
|
.append("min-width: 128px; min-height: 24px;")
|
||||||
.append("border-radius: 6px;")
|
.append("border-radius: 6px;")
|
||||||
|
.append("padding: 3px;")
|
||||||
.append("background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.67, "
|
.append("background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.67, "
|
||||||
"stop: 0 #444444, stop: 1 #222222);")
|
"stop: 0 #444444, stop: 1 #222222);")
|
||||||
);
|
);
|
||||||
|
@ -861,10 +868,11 @@ void VOIPChatWidgetHolder::botMouseLeaveDecline()
|
||||||
{
|
{
|
||||||
RSButtonOnText *source = qobject_cast<RSButtonOnText *>(QObject::sender());
|
RSButtonOnText *source = qobject_cast<RSButtonOnText *>(QObject::sender());
|
||||||
if (source){
|
if (source){
|
||||||
source->setStyleSheet(QString("border: 1px solid #199909;")
|
source->setStyleSheet(QString("border: 1px solid #6a1106;")
|
||||||
.append("font-size: 12pt; color: white;")
|
.append("font-size: 12pt; color: white;")
|
||||||
.append("min-width: 128px; min-height: 24px;")
|
.append("min-width: 128px; min-height: 24px;")
|
||||||
.append("border-radius: 6px;")
|
.append("border-radius: 6px;")
|
||||||
|
.append("padding: 3px;")
|
||||||
.append("background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.67, "
|
.append("background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.67, "
|
||||||
"stop: 0 #c7220d, stop: 1 #6a1106);")
|
"stop: 0 #c7220d, stop: 1 #6a1106);")
|
||||||
);
|
);
|
||||||
|
|
|
@ -32,7 +32,12 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (LIBAVUTIL_VERSION_MAJOR < 52) || ((LIBAVUTIL_VERSION_MAJOR == 52) && (LIBAVUTIL_VERSION_MINOR < 63))
|
#if (LIBAVUTIL_VERSION_MAJOR == 54) && (LIBAVUTIL_VERSION_MINOR == 3) && (LIBAVUTIL_VERSION_MICRO == 0)
|
||||||
|
//Ubuntu Vivid use other version of rational.h than GIT with LIBAVUTIL_VERSION_MICRO == 0
|
||||||
|
#define VIVID_RATIONAL_H_VERSION 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (VIVID_RATIONAL_H_VERSION) || (LIBAVUTIL_VERSION_MAJOR < 52) || ((LIBAVUTIL_VERSION_MAJOR == 52) && (LIBAVUTIL_VERSION_MINOR < 63))
|
||||||
//since https://github.com/FFmpeg/FFmpeg/commit/3532dd52c51f3d4b95f31d1b195e64a04a8aea5d
|
//since https://github.com/FFmpeg/FFmpeg/commit/3532dd52c51f3d4b95f31d1b195e64a04a8aea5d
|
||||||
static inline AVRational av_make_q(int num, int den)
|
static inline AVRational av_make_q(int num, int den)
|
||||||
{
|
{
|
||||||
|
|
|
@ -26,9 +26,11 @@
|
||||||
#include "gui/common/UIStateHelper.h"
|
#include "gui/common/UIStateHelper.h"
|
||||||
|
|
||||||
#include <retroshare/rspeers.h>
|
#include <retroshare/rspeers.h>
|
||||||
|
#include <retroshare/rsreputations.h>
|
||||||
|
|
||||||
|
// Data Requests.
|
||||||
#define IDDETAILSDIALOG_IDDETAILS 1
|
#define IDDETAILSDIALOG_IDDETAILS 1
|
||||||
|
#define IDDETAILSDIALOG_REPLIST 2
|
||||||
/******
|
/******
|
||||||
* #define ID_DEBUG 1
|
* #define ID_DEBUG 1
|
||||||
*****/
|
*****/
|
||||||
|
@ -52,18 +54,9 @@ IdDetailsDialog::IdDetailsDialog(const RsGxsGroupId& id, QWidget *parent) :
|
||||||
mStateHelper->addWidget(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_GpgName);
|
mStateHelper->addWidget(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_GpgName);
|
||||||
mStateHelper->addWidget(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_Type);
|
mStateHelper->addWidget(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_Type);
|
||||||
mStateHelper->addWidget(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_LastUsed);
|
mStateHelper->addWidget(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_LastUsed);
|
||||||
mStateHelper->addWidget(IDDETAILSDIALOG_IDDETAILS, ui->toolButton_Reputation);
|
mStateHelper->addWidget(IDDETAILSDIALOG_IDDETAILS, ui->ownOpinion_CB);
|
||||||
mStateHelper->addWidget(IDDETAILSDIALOG_IDDETAILS, ui->line_RatingOverall);
|
mStateHelper->addWidget(IDDETAILSDIALOG_IDDETAILS, ui->overallOpinion_TF);
|
||||||
mStateHelper->addWidget(IDDETAILSDIALOG_IDDETAILS, ui->line_RatingImplicit);
|
mStateHelper->addWidget(IDDETAILSDIALOG_IDDETAILS, ui->neighborNodesOpinion_TF);
|
||||||
mStateHelper->addWidget(IDDETAILSDIALOG_IDDETAILS, ui->line_RatingOwn);
|
|
||||||
mStateHelper->addWidget(IDDETAILSDIALOG_IDDETAILS, ui->line_RatingPeers);
|
|
||||||
mStateHelper->addWidget(IDDETAILSDIALOG_IDDETAILS, ui->repModButton);
|
|
||||||
mStateHelper->addWidget(IDDETAILSDIALOG_IDDETAILS, ui->repMod_Accept);
|
|
||||||
mStateHelper->addWidget(IDDETAILSDIALOG_IDDETAILS, ui->repMod_Ban);
|
|
||||||
mStateHelper->addWidget(IDDETAILSDIALOG_IDDETAILS, ui->repMod_Negative);
|
|
||||||
mStateHelper->addWidget(IDDETAILSDIALOG_IDDETAILS, ui->repMod_Positive);
|
|
||||||
mStateHelper->addWidget(IDDETAILSDIALOG_IDDETAILS, ui->repMod_Custom);
|
|
||||||
mStateHelper->addWidget(IDDETAILSDIALOG_IDDETAILS, ui->repMod_spinBox);
|
|
||||||
|
|
||||||
mStateHelper->addLoadPlaceholder(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_Nickname);
|
mStateHelper->addLoadPlaceholder(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_Nickname);
|
||||||
mStateHelper->addLoadPlaceholder(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_GpgName);
|
mStateHelper->addLoadPlaceholder(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_GpgName);
|
||||||
|
@ -72,10 +65,6 @@ IdDetailsDialog::IdDetailsDialog(const RsGxsGroupId& id, QWidget *parent) :
|
||||||
mStateHelper->addLoadPlaceholder(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_Type);
|
mStateHelper->addLoadPlaceholder(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_Type);
|
||||||
mStateHelper->addLoadPlaceholder(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_LastUsed);
|
mStateHelper->addLoadPlaceholder(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_LastUsed);
|
||||||
mStateHelper->addLoadPlaceholder(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_GpgName);
|
mStateHelper->addLoadPlaceholder(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_GpgName);
|
||||||
mStateHelper->addLoadPlaceholder(IDDETAILSDIALOG_IDDETAILS, ui->line_RatingOverall);
|
|
||||||
mStateHelper->addLoadPlaceholder(IDDETAILSDIALOG_IDDETAILS, ui->line_RatingImplicit);
|
|
||||||
mStateHelper->addLoadPlaceholder(IDDETAILSDIALOG_IDDETAILS, ui->line_RatingOwn);
|
|
||||||
mStateHelper->addLoadPlaceholder(IDDETAILSDIALOG_IDDETAILS, ui->line_RatingPeers);
|
|
||||||
|
|
||||||
mStateHelper->addClear(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_Nickname);
|
mStateHelper->addClear(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_Nickname);
|
||||||
mStateHelper->addClear(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_KeyId);
|
mStateHelper->addClear(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_KeyId);
|
||||||
|
@ -83,10 +72,8 @@ IdDetailsDialog::IdDetailsDialog(const RsGxsGroupId& id, QWidget *parent) :
|
||||||
mStateHelper->addClear(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_Type);
|
mStateHelper->addClear(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_Type);
|
||||||
mStateHelper->addClear(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_LastUsed);
|
mStateHelper->addClear(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_LastUsed);
|
||||||
mStateHelper->addClear(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_GpgName);
|
mStateHelper->addClear(IDDETAILSDIALOG_IDDETAILS, ui->lineEdit_GpgName);
|
||||||
mStateHelper->addClear(IDDETAILSDIALOG_IDDETAILS, ui->line_RatingOverall);
|
|
||||||
mStateHelper->addClear(IDDETAILSDIALOG_IDDETAILS, ui->line_RatingImplicit);
|
mStateHelper->setActive(IDDETAILSDIALOG_REPLIST, false);
|
||||||
mStateHelper->addClear(IDDETAILSDIALOG_IDDETAILS, ui->line_RatingOwn);
|
|
||||||
mStateHelper->addClear(IDDETAILSDIALOG_IDDETAILS, ui->line_RatingPeers);
|
|
||||||
|
|
||||||
/* Create token queue */
|
/* Create token queue */
|
||||||
mIdQueue = new TokenQueue(rsIdentity->getTokenService(), this);
|
mIdQueue = new TokenQueue(rsIdentity->getTokenService(), this);
|
||||||
|
@ -98,9 +85,7 @@ IdDetailsDialog::IdDetailsDialog(const RsGxsGroupId& id, QWidget *parent) :
|
||||||
|
|
||||||
//connect(ui.buttonBox, SIGNAL(accepted()), this, SLOT(changeGroup()));
|
//connect(ui.buttonBox, SIGNAL(accepted()), this, SLOT(changeGroup()));
|
||||||
connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
|
connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
|
||||||
|
connect(ui->ownOpinion_CB, SIGNAL(currentIndexChanged(int)), this, SLOT(modifyReputation()));
|
||||||
// Hiding Rep Btn until that part is finished.
|
|
||||||
ui->toolButton_Reputation->setVisible(false);
|
|
||||||
|
|
||||||
requestIdDetails();
|
requestIdDetails();
|
||||||
}
|
}
|
||||||
|
@ -141,7 +126,7 @@ void IdDetailsDialog::insertIdDetails(uint32_t token)
|
||||||
if (!rsIdentity->getGroupData(token, datavector))
|
if (!rsIdentity->getGroupData(token, datavector))
|
||||||
{
|
{
|
||||||
mStateHelper->setActive(IDDETAILSDIALOG_IDDETAILS, false);
|
mStateHelper->setActive(IDDETAILSDIALOG_IDDETAILS, false);
|
||||||
mStateHelper->clear(IDDETAILSDIALOG_IDDETAILS);
|
mStateHelper->clear(IDDETAILSDIALOG_REPLIST);
|
||||||
|
|
||||||
ui->lineEdit_KeyId->setText("ERROR GETTING KEY!");
|
ui->lineEdit_KeyId->setText("ERROR GETTING KEY!");
|
||||||
|
|
||||||
|
@ -242,79 +227,108 @@ void IdDetailsDialog::insertIdDetails(uint32_t token)
|
||||||
else
|
else
|
||||||
ui->lineEdit_Type->setText(tr("Anonymous identity")) ;
|
ui->lineEdit_Type->setText(tr("Anonymous identity")) ;
|
||||||
|
|
||||||
// if (isOwnId)
|
|
||||||
// {
|
|
||||||
// ui->radioButton_IdYourself->setChecked(true);
|
|
||||||
// }
|
|
||||||
// else if (data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID)
|
|
||||||
// {
|
|
||||||
// if (data.mPgpKnown)
|
|
||||||
// {
|
|
||||||
// if (rsPeers->isGPGAccepted(data.mPgpId))
|
|
||||||
// {
|
|
||||||
// ui->radioButton_IdFriend->setChecked(true);
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// ui->radioButton_IdFOF->setChecked(true);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// ui->radioButton_IdOther->setChecked(true);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// ui->radioButton_IdPseudo->setChecked(true);
|
|
||||||
// }
|
|
||||||
|
|
||||||
if (isOwnId)
|
if (isOwnId)
|
||||||
{
|
{
|
||||||
//mStateHelper->setWidgetEnabled(ui->toolButton_Reputation, false);
|
mStateHelper->setWidgetEnabled(ui->ownOpinion_CB, false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// No Reputation yet!
|
// No Reputation yet!
|
||||||
//mStateHelper->setWidgetEnabled(ui->toolButton_Reputation, /*true*/ false);
|
mStateHelper->setWidgetEnabled(ui->ownOpinion_CB, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* now fill in the reputation information */
|
/* now fill in the reputation information */
|
||||||
ui->line_RatingOverall->setText("Overall Rating TODO");
|
|
||||||
ui->line_RatingOwn->setText("Own Rating TODO");
|
|
||||||
|
|
||||||
|
#ifdef SUSPENDED
|
||||||
if (data.mPgpKnown)
|
if (data.mPgpKnown)
|
||||||
{
|
{
|
||||||
ui->line_RatingImplicit->setText("+50 Known PGP");
|
ui->line_RatingImplicit->setText(tr("+50 Known PGP"));
|
||||||
}
|
}
|
||||||
else if (data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID)
|
else if (data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID)
|
||||||
{
|
{
|
||||||
ui->line_RatingImplicit->setText("+10 UnKnown PGP");
|
ui->line_RatingImplicit->setText(tr("+10 UnKnown PGP"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ui->line_RatingImplicit->setText("+5 Anon Id");
|
ui->line_RatingImplicit->setText(tr("+5 Anon Id"));
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
|
||||||
QString rating = QString::number(data.mReputation.mOverallScore);
|
|
||||||
ui->line_RatingOverall->setText(rating);
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
{
|
||||||
QString rating = QString::number(data.mReputation.mIdScore);
|
QString rating = QString::number(data.mReputation.mIdScore);
|
||||||
ui->line_RatingImplicit->setText(rating);
|
ui->line_RatingImplicit->setText(rating);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
RsReputations::ReputationInfo info ;
|
||||||
|
rsReputations->getReputationInfo(RsGxsId(data.mMeta.mGroupId),info) ;
|
||||||
|
|
||||||
|
ui->neighborNodesOpinion_TF->setText(QString::number(info.mOverallReputationScore-1.0f));
|
||||||
|
|
||||||
|
ui->overallOpinion_TF->setText(QString::number(info.mOverallReputationScore-1.0f) +" ("+
|
||||||
|
((info.mAssessment == RsReputations::ASSESSMENT_OK)? tr("OK") : tr("Banned")) +")" ) ;
|
||||||
|
|
||||||
|
switch(info.mOwnOpinion)
|
||||||
{
|
{
|
||||||
QString rating = QString::number(data.mReputation.mOwnOpinion);
|
case RsReputations::OPINION_NEGATIVE: ui->ownOpinion_CB->setCurrentIndex(0); break ;
|
||||||
ui->line_RatingOwn->setText(rating);
|
case RsReputations::OPINION_NEUTRAL : ui->ownOpinion_CB->setCurrentIndex(1); break ;
|
||||||
|
case RsReputations::OPINION_POSITIVE: ui->ownOpinion_CB->setCurrentIndex(2); break ;
|
||||||
|
default:
|
||||||
|
std::cerr << "Unexpected value in own opinion: " << info.mOwnOpinion << std::endl;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IdDetailsDialog::modifyReputation()
|
||||||
{
|
{
|
||||||
QString rating = QString::number(data.mReputation.mPeerOpinion);
|
#ifdef ID_DEBUG
|
||||||
ui->line_RatingPeers->setText(rating);
|
std::cerr << "IdDialog::modifyReputation()";
|
||||||
|
std::cerr << std::endl;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
RsGxsId id(ui->lineEdit_KeyId->text().toStdString());
|
||||||
|
|
||||||
|
RsReputations::Opinion op ;
|
||||||
|
|
||||||
|
switch(ui->ownOpinion_CB->currentIndex())
|
||||||
|
{
|
||||||
|
case 0: op = RsReputations::OPINION_NEGATIVE ; break ;
|
||||||
|
case 1: op = RsReputations::OPINION_NEUTRAL ; break ;
|
||||||
|
case 2: op = RsReputations::OPINION_POSITIVE ; break ;
|
||||||
|
default:
|
||||||
|
std::cerr << "Wrong value from opinion combobox. Bug??" << std::endl;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
rsReputations->setOwnOpinion(id,op) ;
|
||||||
|
|
||||||
|
#ifdef ID_DEBUG
|
||||||
|
std::cerr << "IdDialog::modifyReputation() ID: " << id << " Mod: " << mod;
|
||||||
|
std::cerr << std::endl;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SUSPENDED
|
||||||
|
// Cyril: apparently the old reputation system was in used here. It's based on GXS data exchange, and probably not
|
||||||
|
// very efficient because of this.
|
||||||
|
|
||||||
|
uint32_t token;
|
||||||
|
if (!rsIdentity->submitOpinion(token, id, false, op))
|
||||||
|
{
|
||||||
|
#ifdef ID_DEBUG
|
||||||
|
std::cerr << "IdDialog::modifyReputation() Error submitting Opinion";
|
||||||
|
std::cerr << std::endl;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ID_DEBUG
|
||||||
|
std::cerr << "IdDialog::modifyReputation() queuingRequest(), token: " << token;
|
||||||
|
std::cerr << std::endl;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// trigger refresh when finished.
|
||||||
|
// basic / anstype are not needed.
|
||||||
|
requestIdDetails();
|
||||||
|
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void IdDetailsDialog::requestIdDetails()
|
void IdDetailsDialog::requestIdDetails()
|
||||||
|
@ -342,6 +356,32 @@ void IdDetailsDialog::requestIdDetails()
|
||||||
mIdQueue->requestGroupInfo(token, RS_TOKREQ_ANSTYPE_DATA, opts, groupIds, IDDETAILSDIALOG_IDDETAILS);
|
mIdQueue->requestGroupInfo(token, RS_TOKREQ_ANSTYPE_DATA, opts, groupIds, IDDETAILSDIALOG_IDDETAILS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IdDetailsDialog::requestRepList()
|
||||||
|
{
|
||||||
|
// Removing this for the moment.
|
||||||
|
return;
|
||||||
|
|
||||||
|
mStateHelper->setLoading(IDDETAILSDIALOG_REPLIST, true);
|
||||||
|
|
||||||
|
mIdQueue->cancelActiveRequestTokens(IDDETAILSDIALOG_REPLIST);
|
||||||
|
|
||||||
|
std::list<RsGxsGroupId> groupIds;
|
||||||
|
groupIds.push_back(mId);
|
||||||
|
|
||||||
|
RsTokReqOptions opts;
|
||||||
|
opts.mReqType = GXS_REQUEST_TYPE_MSG_DATA;
|
||||||
|
|
||||||
|
uint32_t token;
|
||||||
|
mIdQueue->requestMsgInfo(token, RS_TOKREQ_ANSTYPE_DATA, opts, groupIds, IDDETAILSDIALOG_REPLIST);
|
||||||
|
}
|
||||||
|
|
||||||
|
void IdDetailsDialog::insertRepList(uint32_t token)
|
||||||
|
{
|
||||||
|
Q_UNUSED(token)
|
||||||
|
mStateHelper->setLoading(IDDETAILSDIALOG_REPLIST, false);
|
||||||
|
mStateHelper->setActive(IDDETAILSDIALOG_REPLIST, true);
|
||||||
|
}
|
||||||
|
|
||||||
void IdDetailsDialog::loadRequest(const TokenQueue *queue, const TokenRequest &req)
|
void IdDetailsDialog::loadRequest(const TokenQueue *queue, const TokenRequest &req)
|
||||||
{
|
{
|
||||||
if (queue != mIdQueue) {
|
if (queue != mIdQueue) {
|
||||||
|
@ -359,6 +399,10 @@ void IdDetailsDialog::loadRequest(const TokenQueue *queue, const TokenRequest &r
|
||||||
insertIdDetails(req.mToken);
|
insertIdDetails(req.mToken);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case IDDETAILSDIALOG_REPLIST:
|
||||||
|
insertRepList(req.mToken);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
std::cerr << "IdDetailsDialog::loadRequest() ERROR";
|
std::cerr << "IdDetailsDialog::loadRequest() ERROR";
|
||||||
std::cerr << std::endl;
|
std::cerr << std::endl;
|
||||||
|
|
|
@ -46,10 +46,16 @@ public:
|
||||||
/* TokenResponse */
|
/* TokenResponse */
|
||||||
void loadRequest(const TokenQueue *queue, const TokenRequest &req);
|
void loadRequest(const TokenQueue *queue, const TokenRequest &req);
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void modifyReputation();
|
||||||
|
|
||||||
private :
|
private :
|
||||||
void requestIdDetails();
|
void requestIdDetails();
|
||||||
void insertIdDetails(uint32_t token);
|
void insertIdDetails(uint32_t token);
|
||||||
|
|
||||||
|
void requestRepList();
|
||||||
|
void insertRepList(uint32_t token);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
RsGxsGroupId mId;
|
RsGxsGroupId mId;
|
||||||
TokenQueue *mIdQueue;
|
TokenQueue *mIdQueue;
|
||||||
|
|
|
@ -200,25 +200,8 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="0">
|
<item row="2" column="0">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||||
<property name="leftMargin">
|
|
||||||
<number>9</number>
|
|
||||||
</property>
|
|
||||||
<property name="topMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="rightMargin">
|
|
||||||
<number>9</number>
|
|
||||||
</property>
|
|
||||||
<property name="bottomMargin">
|
|
||||||
<number>9</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
<item>
|
||||||
<widget class="QGroupBox" name="reputationGroupBox">
|
<widget class="QGroupBox" name="reputationGroupBox">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
|
@ -233,7 +216,90 @@
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
<item>
|
<item>
|
||||||
<layout class="QGridLayout" name="gridLayout_2">
|
<layout class="QGridLayout" name="gridLayout_2">
|
||||||
<item row="0" column="0">
|
<item row="2" column="1">
|
||||||
|
<widget class="QLineEdit" name="neighborNodesOpinion_TF">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>Average opinion of neighbor nodes about this identity. Negative is bad,</p><p>positive is good. Zero is neutral.</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label_6">
|
||||||
|
<property name="text">
|
||||||
|
<string>Your opinion:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="label_5">
|
||||||
|
<property name="text">
|
||||||
|
<string>Neighbor nodes:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QComboBox" name="ownOpinion_CB">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||||
|
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||||
|
p, li { white-space: pre-wrap; }
|
||||||
|
</style></head><body style=" font-family:'Sans'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||||
|
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Your own opinion about an identity rules the visibility of that identity for yourself,</p>
|
||||||
|
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">and is shared among friends. A final score is calculated according to a formula that accounts your own opinion and your friends' opinions about someone:</p>
|
||||||
|
<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||||
|
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> S = own_opinion * a + friends_opinion * (1-a)</p>
|
||||||
|
<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||||
|
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The factor 'a' depends on the type of ID. </p>
|
||||||
|
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- anonymous IDs: </p>
|
||||||
|
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- PGP-signed IDs by unknown PGP keys: a=</p>
|
||||||
|
<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||||
|
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The overall score is used in chat lobbies, forums and channels to decide on the actions to take for each specific identity:</p>
|
||||||
|
<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||||
|
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">S &lt; -0.5: Posts are not stored, nor forwarded </p>
|
||||||
|
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">S &lt; 0.2: Posts are hidden, but still transmitted</p>
|
||||||
|
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">S &lt; 0.0: </p>
|
||||||
|
<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||||
|
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The overall rating is computed in such a way that it is not possible for a single person to deterministically change someone's status at neighbor nodes.</p>
|
||||||
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="currentIndex">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Negative</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset>
|
||||||
|
<normaloff>../icons/yellow_biohazard64.png</normaloff>../icons/yellow_biohazard64.png</iconset>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Neutral</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Positive</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QLineEdit" name="overallOpinion_TF">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>Overall reputation score, accounting for yours and your friends'.</p><p>Negative is bad, positive is good. Zero is neutral. If the score is too low,</p><p>the identity is flagged as bad, and will be filtered out in forums, chat lobbies,</p><p>channels, etc.</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
<widget class="QLabel" name="label_2">
|
<widget class="QLabel" name="label_2">
|
||||||
<property name="font">
|
<property name="font">
|
||||||
<font>
|
<font>
|
||||||
|
@ -242,164 +308,23 @@
|
||||||
</font>
|
</font>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Overall</string>
|
<string>Overall:</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="1">
|
</layout>
|
||||||
<widget class="QLineEdit" name="line_RatingOverall">
|
</item>
|
||||||
<property name="readOnly">
|
</layout>
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
</layout>
|
||||||
<widget class="QLabel" name="label_11">
|
</item>
|
||||||
<property name="text">
|
</layout>
|
||||||
<string>Implicit</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="1">
|
</layout>
|
||||||
<widget class="QLineEdit" name="line_RatingImplicit">
|
|
||||||
<property name="readOnly">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0">
|
<item row="2" column="0">
|
||||||
<widget class="QLabel" name="label_6">
|
|
||||||
<property name="text">
|
|
||||||
<string>Opinion</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="1">
|
|
||||||
<widget class="QLineEdit" name="line_RatingOwn">
|
|
||||||
<property name="readOnly">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="0">
|
|
||||||
<widget class="QLabel" name="label_5">
|
|
||||||
<property name="text">
|
|
||||||
<string>Peers</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="1">
|
|
||||||
<widget class="QLineEdit" name="line_RatingPeers">
|
|
||||||
<property name="readOnly">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QToolButton" name="toolButton_Reputation">
|
|
||||||
<property name="focusPolicy">
|
|
||||||
<enum>Qt::NoFocus</enum>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Edit Reputation</string>
|
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset resource="../images.qrc">
|
|
||||||
<normaloff>:/images/edit_24.png</normaloff>:/images/edit_24.png</iconset>
|
|
||||||
</property>
|
|
||||||
<property name="iconSize">
|
|
||||||
<size>
|
|
||||||
<width>24</width>
|
|
||||||
<height>24</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="toolButtonStyle">
|
|
||||||
<enum>Qt::ToolButtonTextBesideIcon</enum>
|
|
||||||
</property>
|
|
||||||
<property name="autoRaise">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QGroupBox" name="tweakGroupBox">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="title">
|
|
||||||
<string>Tweak Opinion</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
|
||||||
<item>
|
|
||||||
<widget class="QRadioButton" name="repMod_Accept">
|
|
||||||
<property name="text">
|
|
||||||
<string>Accept (+100)</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QRadioButton" name="repMod_Positive">
|
|
||||||
<property name="text">
|
|
||||||
<string>Positive (+10)</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QRadioButton" name="repMod_Negative">
|
|
||||||
<property name="text">
|
|
||||||
<string>Negative (-10)</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QRadioButton" name="repMod_Ban">
|
|
||||||
<property name="text">
|
|
||||||
<string>Ban (-100)</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
|
||||||
<item>
|
|
||||||
<widget class="QRadioButton" name="repMod_Custom">
|
|
||||||
<property name="text">
|
|
||||||
<string>Custom</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QSpinBox" name="repMod_spinBox">
|
|
||||||
<property name="minimum">
|
|
||||||
<number>-100</number>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<number>100</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="repModButton">
|
|
||||||
<property name="text">
|
|
||||||
<string>Modify</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="0">
|
|
||||||
<spacer name="verticalSpacer">
|
<spacer name="verticalSpacer">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Vertical</enum>
|
||||||
|
@ -412,7 +337,7 @@
|
||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="0">
|
<item row="3" column="0">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||||
<property name="margin">
|
<property name="margin">
|
||||||
<number>9</number>
|
<number>9</number>
|
||||||
|
|
|
@ -252,6 +252,19 @@ border-image: url(:/images/closepressed.png)
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_2">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue