mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-05-03 14:45:12 -04:00
IdDialog:
- optimized fill - fixed utf8 issue - added new strings to translation - added load/save of ui state - fixed splitter resize - fixed sensitive state of menu items in context menu Updated english translation git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@7791 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
dff43792b6
commit
e5f0e6fcc7
4 changed files with 355 additions and 344 deletions
|
@ -25,27 +25,30 @@
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
|
|
||||||
#include "IdDialog.h"
|
#include "IdDialog.h"
|
||||||
|
#include "ui_IdDialog.h"
|
||||||
|
#include "IdEditDialog.h"
|
||||||
#include "gui/gxs/GxsIdDetails.h"
|
#include "gui/gxs/GxsIdDetails.h"
|
||||||
#include "gui/gxs/GxsIdTreeWidgetItem.h"
|
#include "gui/gxs/GxsIdTreeWidgetItem.h"
|
||||||
#include "gui/common/UIStateHelper.h"
|
#include "gui/common/UIStateHelper.h"
|
||||||
#include "gui/chat/ChatDialog.h"
|
#include "gui/chat/ChatDialog.h"
|
||||||
|
#include "gui/settings/rsharesettings.h"
|
||||||
|
|
||||||
#include <retroshare/rspeers.h>
|
#include <retroshare/rspeers.h>
|
||||||
//#include <retroshare/rsidentity.h> //On header
|
|
||||||
#include "retroshare/rsgxsflags.h"
|
#include "retroshare/rsgxsflags.h"
|
||||||
#include "retroshare/rsmsgs.h"
|
#include "retroshare/rsmsgs.h"
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <algorithm>
|
||||||
|
|
||||||
/******
|
/******
|
||||||
* #define ID_DEBUG 1
|
* #define ID_DEBUG 1
|
||||||
*****/
|
*****/
|
||||||
|
|
||||||
// Data Requests.
|
// Data Requests.
|
||||||
#define IDDIALOG_IDLIST 1
|
#define IDDIALOG_IDLIST 1
|
||||||
#define IDDIALOG_IDDETAILS 2
|
#define IDDIALOG_IDDETAILS 2
|
||||||
#define IDDIALOG_REPLIST 3
|
#define IDDIALOG_REPLIST 3
|
||||||
#define IDDIALOG_REFRESH 4
|
#define IDDIALOG_REFRESH 4
|
||||||
|
|
||||||
/****************************************************************
|
/****************************************************************
|
||||||
*/
|
*/
|
||||||
|
@ -68,108 +71,111 @@
|
||||||
#define IMAGE_EDIT ":/images/edit_16.png"
|
#define IMAGE_EDIT ":/images/edit_16.png"
|
||||||
|
|
||||||
/** Constructor */
|
/** Constructor */
|
||||||
IdDialog::IdDialog(QWidget *parent)
|
IdDialog::IdDialog(QWidget *parent) :
|
||||||
: RsGxsUpdateBroadcastPage(rsIdentity, parent)
|
RsGxsUpdateBroadcastPage(rsIdentity, parent),
|
||||||
|
ui(new Ui::IdDialog)
|
||||||
{
|
{
|
||||||
ui.setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
mIdQueue = NULL;
|
mIdQueue = NULL;
|
||||||
|
|
||||||
/* Setup UI helper */
|
/* Setup UI helper */
|
||||||
mStateHelper = new UIStateHelper(this);
|
mStateHelper = new UIStateHelper(this);
|
||||||
mStateHelper->addWidget(IDDIALOG_IDLIST, ui.treeWidget_IdList);
|
// mStateHelper->addWidget(IDDIALOG_IDLIST, ui->treeWidget_IdList);
|
||||||
mStateHelper->addLoadPlaceholder(IDDIALOG_IDLIST, ui.treeWidget_IdList, false);
|
mStateHelper->addLoadPlaceholder(IDDIALOG_IDLIST, ui->treeWidget_IdList, false);
|
||||||
mStateHelper->addClear(IDDIALOG_IDLIST, ui.treeWidget_IdList);
|
mStateHelper->addClear(IDDIALOG_IDLIST, ui->treeWidget_IdList);
|
||||||
|
|
||||||
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.lineEdit_Nickname);
|
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->lineEdit_Nickname);
|
||||||
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.lineEdit_KeyId);
|
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->lineEdit_KeyId);
|
||||||
// mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.lineEdit_GpgHash);
|
// mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->lineEdit_GpgHash);
|
||||||
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.lineEdit_GpgId);
|
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->lineEdit_GpgId);
|
||||||
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.lineEdit_GpgName);
|
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->lineEdit_GpgName);
|
||||||
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.lineEdit_Type);
|
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->lineEdit_Type);
|
||||||
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.toolButton_Reputation);
|
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->toolButton_Reputation);
|
||||||
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.line_RatingOverall);
|
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->line_RatingOverall);
|
||||||
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.line_RatingImplicit);
|
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->line_RatingImplicit);
|
||||||
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.line_RatingOwn);
|
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->line_RatingOwn);
|
||||||
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.line_RatingPeers);
|
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->line_RatingPeers);
|
||||||
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.repModButton);
|
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->repModButton);
|
||||||
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.repMod_Accept);
|
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->repMod_Accept);
|
||||||
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.repMod_Ban);
|
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->repMod_Ban);
|
||||||
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.repMod_Negative);
|
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->repMod_Negative);
|
||||||
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.repMod_Positive);
|
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->repMod_Positive);
|
||||||
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.repMod_Custom);
|
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->repMod_Custom);
|
||||||
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.repMod_spinBox);
|
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->repMod_spinBox);
|
||||||
|
|
||||||
mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui.lineEdit_Nickname);
|
mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->lineEdit_Nickname);
|
||||||
mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui.lineEdit_GpgName);
|
mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->lineEdit_GpgName);
|
||||||
mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui.lineEdit_KeyId);
|
mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->lineEdit_KeyId);
|
||||||
// mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui.lineEdit_GpgHash);
|
// mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->lineEdit_GpgHash);
|
||||||
mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui.lineEdit_GpgId);
|
mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->lineEdit_GpgId);
|
||||||
mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui.lineEdit_Type);
|
mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->lineEdit_Type);
|
||||||
mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui.lineEdit_GpgName);
|
mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->lineEdit_GpgName);
|
||||||
mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui.line_RatingOverall);
|
mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->line_RatingOverall);
|
||||||
mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui.line_RatingImplicit);
|
mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->line_RatingImplicit);
|
||||||
mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui.line_RatingOwn);
|
mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->line_RatingOwn);
|
||||||
mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui.line_RatingPeers);
|
mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->line_RatingPeers);
|
||||||
|
|
||||||
mStateHelper->addClear(IDDIALOG_IDDETAILS, ui.lineEdit_Nickname);
|
mStateHelper->addClear(IDDIALOG_IDDETAILS, ui->lineEdit_Nickname);
|
||||||
mStateHelper->addClear(IDDIALOG_IDDETAILS, ui.lineEdit_KeyId);
|
mStateHelper->addClear(IDDIALOG_IDDETAILS, ui->lineEdit_KeyId);
|
||||||
// mStateHelper->addClear(IDDIALOG_IDDETAILS, ui.lineEdit_GpgHash);
|
// mStateHelper->addClear(IDDIALOG_IDDETAILS, ui->lineEdit_GpgHash);
|
||||||
mStateHelper->addClear(IDDIALOG_IDDETAILS, ui.lineEdit_GpgId);
|
mStateHelper->addClear(IDDIALOG_IDDETAILS, ui->lineEdit_GpgId);
|
||||||
mStateHelper->addClear(IDDIALOG_IDDETAILS, ui.lineEdit_Type);
|
mStateHelper->addClear(IDDIALOG_IDDETAILS, ui->lineEdit_Type);
|
||||||
mStateHelper->addClear(IDDIALOG_IDDETAILS, ui.lineEdit_GpgName);
|
mStateHelper->addClear(IDDIALOG_IDDETAILS, ui->lineEdit_GpgName);
|
||||||
mStateHelper->addClear(IDDIALOG_IDDETAILS, ui.line_RatingOverall);
|
mStateHelper->addClear(IDDIALOG_IDDETAILS, ui->line_RatingOverall);
|
||||||
mStateHelper->addClear(IDDIALOG_IDDETAILS, ui.line_RatingImplicit);
|
mStateHelper->addClear(IDDIALOG_IDDETAILS, ui->line_RatingImplicit);
|
||||||
mStateHelper->addClear(IDDIALOG_IDDETAILS, ui.line_RatingOwn);
|
mStateHelper->addClear(IDDIALOG_IDDETAILS, ui->line_RatingOwn);
|
||||||
mStateHelper->addClear(IDDIALOG_IDDETAILS, ui.line_RatingPeers);
|
mStateHelper->addClear(IDDIALOG_IDDETAILS, ui->line_RatingPeers);
|
||||||
|
|
||||||
//mStateHelper->addWidget(IDDIALOG_REPLIST, ui.treeWidget_RepList);
|
//mStateHelper->addWidget(IDDIALOG_REPLIST, ui->treeWidget_RepList);
|
||||||
//mStateHelper->addLoadPlaceholder(IDDIALOG_REPLIST, ui.treeWidget_RepList);
|
//mStateHelper->addLoadPlaceholder(IDDIALOG_REPLIST, ui->treeWidget_RepList);
|
||||||
//mStateHelper->addClear(IDDIALOG_REPLIST, ui.treeWidget_RepList);
|
//mStateHelper->addClear(IDDIALOG_REPLIST, ui->treeWidget_RepList);
|
||||||
|
|
||||||
/* Connect signals */
|
/* Connect signals */
|
||||||
connect(ui.toolButton_NewId, SIGNAL(clicked()), this, SLOT(addIdentity()));
|
connect(ui->toolButton_NewId, SIGNAL(clicked()), this, SLOT(addIdentity()));
|
||||||
connect(ui.todoPushButton, SIGNAL(clicked()), this, SLOT(todo()));
|
connect(ui->todoPushButton, SIGNAL(clicked()), this, SLOT(todo()));
|
||||||
//connect(ui.toolButton_Delete, SIGNAL(clicked()), this, SLOT(removeIdentity()));
|
//connect(ui->toolButton_Delete, SIGNAL(clicked()), this, SLOT(removeIdentity()));
|
||||||
//connect(ui.toolButton_EditId, SIGNAL(clicked()), this, SLOT(editIdentity()));
|
//connect(ui->toolButton_EditId, SIGNAL(clicked()), this, SLOT(editIdentity()));
|
||||||
connect(ui.removeIdentity, SIGNAL(triggered()), this, SLOT(removeIdentity()));
|
connect(ui->removeIdentity, SIGNAL(triggered()), this, SLOT(removeIdentity()));
|
||||||
connect(ui.editIdentity, SIGNAL(triggered()), this, SLOT(editIdentity()));
|
connect(ui->editIdentity, SIGNAL(triggered()), this, SLOT(editIdentity()));
|
||||||
connect(ui.chatIdentity, SIGNAL(triggered()), this, SLOT(chatIdentity()));
|
connect(ui->chatIdentity, SIGNAL(triggered()), this, SLOT(chatIdentity()));
|
||||||
|
|
||||||
connect(ui.treeWidget_IdList, SIGNAL(itemSelectionChanged()), this, SLOT(updateSelection()));
|
connect(ui->treeWidget_IdList, SIGNAL(itemSelectionChanged()), this, SLOT(updateSelection()));
|
||||||
connect(ui.treeWidget_IdList, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(IdListCustomPopupMenu(QPoint)));
|
connect(ui->treeWidget_IdList, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(IdListCustomPopupMenu(QPoint)));
|
||||||
|
|
||||||
connect(ui.filterComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(filterComboBoxChanged()));
|
connect(ui->filterComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(filterComboBoxChanged()));
|
||||||
connect(ui.filterLineEdit, SIGNAL(textChanged(QString)), this, SLOT(filterChanged(QString)));
|
connect(ui->filterLineEdit, SIGNAL(textChanged(QString)), this, SLOT(filterChanged(QString)));
|
||||||
connect(ui.repModButton, SIGNAL(clicked()), this, SLOT(modifyReputation()));
|
connect(ui->repModButton, SIGNAL(clicked()), this, SLOT(modifyReputation()));
|
||||||
|
|
||||||
ui.headerFrame->setHeaderImage(QPixmap(":/images/identity/identity_64.png"));
|
ui->headerFrame->setHeaderImage(QPixmap(":/images/identity/identity_64.png"));
|
||||||
ui.headerFrame->setHeaderText(tr("Identities"));
|
ui->headerFrame->setHeaderText(tr("Identities"));
|
||||||
|
|
||||||
|
/* Initialize splitter */
|
||||||
|
ui->splitter->setStretchFactor(0, 1);
|
||||||
|
ui->splitter->setStretchFactor(1, 0);
|
||||||
|
|
||||||
/* Add filter types */
|
/* Add filter types */
|
||||||
ui.filterComboBox->addItem(tr("All"), RSID_FILTER_ALL);
|
ui->filterComboBox->addItem(tr("All"), RSID_FILTER_ALL);
|
||||||
ui.filterComboBox->addItem(tr("Owned by you"), RSID_FILTER_YOURSELF);
|
ui->filterComboBox->addItem(tr("Owned by you"), RSID_FILTER_YOURSELF);
|
||||||
ui.filterComboBox->addItem(tr("Owned by neighbor nodes"), RSID_FILTER_FRIENDS);
|
ui->filterComboBox->addItem(tr("Owned by neighbor nodes"), RSID_FILTER_FRIENDS);
|
||||||
ui.filterComboBox->addItem(tr("Owned by distant nodes"), RSID_FILTER_OTHERS);
|
ui->filterComboBox->addItem(tr("Owned by distant nodes"), RSID_FILTER_OTHERS);
|
||||||
ui.filterComboBox->addItem(tr("Anonymous"), RSID_FILTER_PSEUDONYMS);
|
ui->filterComboBox->addItem(tr("Anonymous"), RSID_FILTER_PSEUDONYMS);
|
||||||
ui.filterComboBox->setCurrentIndex(0);
|
ui->filterComboBox->setCurrentIndex(0);
|
||||||
|
|
||||||
/* Add filter actions */
|
/* Add filter actions */
|
||||||
QTreeWidgetItem *headerItem = ui.treeWidget_IdList->headerItem();
|
QTreeWidgetItem *headerItem = ui->treeWidget_IdList->headerItem();
|
||||||
QString headerText = headerItem->text(RSID_COL_NICKNAME);
|
QString headerText = headerItem->text(RSID_COL_NICKNAME);
|
||||||
ui.filterLineEdit->addFilter(QIcon(), headerText, RSID_COL_NICKNAME, QString("%1 %2").arg(tr("Search"), headerText));
|
ui->filterLineEdit->addFilter(QIcon(), headerText, RSID_COL_NICKNAME, QString("%1 %2").arg(tr("Search"), headerText));
|
||||||
headerText = headerItem->text(RSID_COL_KEYID);
|
headerText = headerItem->text(RSID_COL_KEYID);
|
||||||
ui.filterLineEdit->addFilter(QIcon(), headerItem->text(RSID_COL_KEYID), RSID_COL_KEYID, QString("%1 %2").arg(tr("Search"), headerText));
|
ui->filterLineEdit->addFilter(QIcon(), headerItem->text(RSID_COL_KEYID), RSID_COL_KEYID, QString("%1 %2").arg(tr("Search"), headerText));
|
||||||
|
|
||||||
|
/* Set header resize modes and initial section sizes ID TreeView*/
|
||||||
/* Set header resize modes and initial section sizes ID TreeView*/
|
QHeaderView * _idheader = ui->treeWidget_IdList->header () ;
|
||||||
QHeaderView * _idheader = ui.treeWidget_IdList->header () ;
|
_idheader->resizeSection ( RSID_COL_NICKNAME, 170 );
|
||||||
_idheader->resizeSection ( RSID_COL_NICKNAME, 170 );
|
|
||||||
|
|
||||||
/* Setup tree */
|
/* Setup tree */
|
||||||
ui.treeWidget_IdList->sortByColumn(RSID_COL_NICKNAME, Qt::AscendingOrder);
|
ui->treeWidget_IdList->sortByColumn(RSID_COL_NICKNAME, Qt::AscendingOrder);
|
||||||
ui.treeWidget_IdList->setContextMenuPolicy(Qt::CustomContextMenu) ;
|
ui->treeWidget_IdList->setContextMenuPolicy(Qt::CustomContextMenu) ;
|
||||||
|
|
||||||
|
|
||||||
mIdQueue = new TokenQueue(rsIdentity->getTokenService(), this);
|
mIdQueue = new TokenQueue(rsIdentity->getTokenService(), this);
|
||||||
|
|
||||||
|
@ -177,10 +183,10 @@ IdDialog::IdDialog(QWidget *parent)
|
||||||
mStateHelper->setActive(IDDIALOG_REPLIST, false);
|
mStateHelper->setActive(IDDIALOG_REPLIST, false);
|
||||||
|
|
||||||
// Hiding RepList until that part is finished.
|
// Hiding RepList until that part is finished.
|
||||||
//ui.treeWidget_RepList->setVisible(false);
|
//ui->treeWidget_RepList->setVisible(false);
|
||||||
ui.toolButton_Reputation->setVisible(false);
|
ui->toolButton_Reputation->setVisible(false);
|
||||||
#ifndef UNFINISHED
|
#ifndef UNFINISHED
|
||||||
ui.todoPushButton->hide() ;
|
ui->todoPushButton->hide() ;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
QString hlp_str = tr(
|
QString hlp_str = tr(
|
||||||
|
@ -200,22 +206,60 @@ IdDialog::IdDialog(QWidget *parent)
|
||||||
</p> \
|
</p> \
|
||||||
") ;
|
") ;
|
||||||
|
|
||||||
registerHelpButton(ui.helpButton, hlp_str) ;
|
registerHelpButton(ui->helpButton, hlp_str) ;
|
||||||
|
|
||||||
|
// load settings
|
||||||
|
processSettings(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
IdDialog::~IdDialog()
|
IdDialog::~IdDialog()
|
||||||
{
|
{
|
||||||
|
// save settings
|
||||||
|
processSettings(false);
|
||||||
|
|
||||||
|
delete(ui);
|
||||||
delete(mIdQueue);
|
delete(mIdQueue);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IdDialog::todo()
|
void IdDialog::todo()
|
||||||
{
|
{
|
||||||
QMessageBox::information(this, "Todo",
|
QMessageBox::information(this, "Todo",
|
||||||
"<b>Open points:</b><ul>"
|
"<b>Open points:</b><ul>"
|
||||||
// "<li>Delete ID"
|
"<li>Reputation"
|
||||||
"<li>Reputation"
|
"</ul>");
|
||||||
"<li>Load/save settings"
|
}
|
||||||
"</ul>");
|
|
||||||
|
void IdDialog::processSettings(bool load)
|
||||||
|
{
|
||||||
|
QHeaderView *header = ui->treeWidget_IdList->header();
|
||||||
|
|
||||||
|
Settings->beginGroup("IdDialog");
|
||||||
|
|
||||||
|
if (load) {
|
||||||
|
// load settings
|
||||||
|
|
||||||
|
// filterColumn
|
||||||
|
ui->filterLineEdit->setCurrentFilter(Settings->value("filterColumn", RSID_COL_NICKNAME).toInt());
|
||||||
|
|
||||||
|
// state of thread tree
|
||||||
|
header->restoreState(Settings->value("IdList").toByteArray());
|
||||||
|
|
||||||
|
// state of splitter
|
||||||
|
ui->splitter->restoreState(Settings->value("splitter").toByteArray());
|
||||||
|
} else {
|
||||||
|
// save settings
|
||||||
|
|
||||||
|
// filterColumn
|
||||||
|
Settings->setValue("filterColumn", ui->filterLineEdit->currentFilter());
|
||||||
|
|
||||||
|
// state of thread tree
|
||||||
|
Settings->setValue("IdList", header->saveState());
|
||||||
|
|
||||||
|
// state of splitter
|
||||||
|
Settings->setValue("splitter", ui->splitter->saveState());
|
||||||
|
}
|
||||||
|
|
||||||
|
Settings->endGroup();
|
||||||
}
|
}
|
||||||
|
|
||||||
void IdDialog::filterComboBoxChanged()
|
void IdDialog::filterComboBoxChanged()
|
||||||
|
@ -230,25 +274,30 @@ void IdDialog::filterChanged(const QString& /*text*/)
|
||||||
|
|
||||||
void IdDialog::updateSelection()
|
void IdDialog::updateSelection()
|
||||||
{
|
{
|
||||||
QTreeWidgetItem *item = ui.treeWidget_IdList->currentItem();
|
QTreeWidgetItem *item = ui->treeWidget_IdList->currentItem();
|
||||||
RsGxsGroupId id;
|
RsGxsGroupId id;
|
||||||
|
|
||||||
if (item)
|
if (item) {
|
||||||
{
|
id = RsGxsGroupId(item->text(RSID_COL_KEYID).toStdString());
|
||||||
id = RsGxsGroupId(item->text(RSID_COL_KEYID).toStdString());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
requestIdDetails(id);
|
if (id != mId) {
|
||||||
|
mId = id;
|
||||||
|
requestIdDetails();
|
||||||
|
requestRepList();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void IdDialog::requestIdList()
|
void IdDialog::requestIdList()
|
||||||
{
|
{
|
||||||
|
//Disable by default, will be enable by insertIdDetails()
|
||||||
|
ui->removeIdentity->setEnabled(false);
|
||||||
|
ui->editIdentity->setEnabled(false);
|
||||||
|
|
||||||
if (!mIdQueue)
|
if (!mIdQueue)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
mStateHelper->setLoading(IDDIALOG_IDLIST, true);
|
mStateHelper->setLoading(IDDIALOG_IDLIST, true);
|
||||||
mStateHelper->setLoading(IDDIALOG_IDDETAILS, true);
|
|
||||||
mStateHelper->setLoading(IDDIALOG_REPLIST, true);
|
|
||||||
|
|
||||||
mIdQueue->cancelActiveRequestTokens(IDDIALOG_IDLIST);
|
mIdQueue->cancelActiveRequestTokens(IDDIALOG_IDLIST);
|
||||||
|
|
||||||
|
@ -313,27 +362,20 @@ bool IdDialog::fillIdListItem(const RsGxsIdGroup& data, QTreeWidgetItem *&item,
|
||||||
item = new QTreeWidgetItem();
|
item = new QTreeWidgetItem();
|
||||||
}
|
}
|
||||||
item->setText(RSID_COL_NICKNAME, QString::fromUtf8(data.mMeta.mGroupName.c_str()));
|
item->setText(RSID_COL_NICKNAME, QString::fromUtf8(data.mMeta.mGroupName.c_str()));
|
||||||
item->setText(RSID_COL_KEYID, QString::fromStdString(data.mMeta.mGroupId.toStdString()));
|
item->setText(RSID_COL_KEYID, QString::fromStdString(data.mMeta.mGroupId.toStdString()));
|
||||||
|
|
||||||
QFont font("Courier New",10,50,false);
|
|
||||||
font.setStyleHint(QFont::TypeWriter,QFont::PreferMatch);
|
|
||||||
item->setFont(RSID_COL_KEYID,font) ;
|
|
||||||
|
|
||||||
if(isOwnId)
|
if(isOwnId)
|
||||||
{
|
{
|
||||||
QFont font = item->font(RSID_COL_NICKNAME) ;
|
QFont font = item->font(RSID_COL_NICKNAME) ;
|
||||||
font.setWeight(QFont::Bold) ;
|
font.setBold(true) ;
|
||||||
item->setFont(RSID_COL_NICKNAME,font) ;
|
item->setFont(RSID_COL_NICKNAME,font) ;
|
||||||
item->setFont(RSID_COL_IDTYPE,font) ;
|
item->setFont(RSID_COL_IDTYPE,font) ;
|
||||||
|
item->setFont(RSID_COL_KEYID,font) ;
|
||||||
font = item->font(RSID_COL_KEYID) ;
|
|
||||||
font.setWeight(QFont::Bold) ;
|
|
||||||
item->setFont(RSID_COL_KEYID,font) ;
|
|
||||||
|
|
||||||
item->setToolTip(RSID_COL_NICKNAME,tr("This identity is owned by you")) ;
|
|
||||||
item->setToolTip(RSID_COL_KEYID ,tr("This identity is owned by you")) ;
|
|
||||||
item->setToolTip(RSID_COL_IDTYPE ,tr("This identity is owned by you")) ;
|
|
||||||
|
|
||||||
|
QString tooltip = tr("This identity is owned by you");
|
||||||
|
item->setToolTip(RSID_COL_NICKNAME, tooltip) ;
|
||||||
|
item->setToolTip(RSID_COL_KEYID, tooltip) ;
|
||||||
|
item->setToolTip(RSID_COL_IDTYPE, tooltip) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
QPixmap pixmap = QPixmap::fromImage(GxsIdDetails::makeDefaultIcon(RsGxsId(data.mMeta.mGroupId))) ;
|
QPixmap pixmap = QPixmap::fromImage(GxsIdDetails::makeDefaultIcon(RsGxsId(data.mMeta.mGroupId))) ;
|
||||||
|
@ -370,7 +412,7 @@ void IdDialog::insertIdList(uint32_t token)
|
||||||
{
|
{
|
||||||
mStateHelper->setLoading(IDDIALOG_IDLIST, false);
|
mStateHelper->setLoading(IDDIALOG_IDLIST, false);
|
||||||
|
|
||||||
int accept = ui.filterComboBox->itemData(ui.filterComboBox->currentIndex()).toInt();
|
int accept = ui->filterComboBox->itemData(ui->filterComboBox->currentIndex()).toInt();
|
||||||
|
|
||||||
RsGxsIdGroup data;
|
RsGxsIdGroup data;
|
||||||
std::vector<RsGxsIdGroup> datavector;
|
std::vector<RsGxsIdGroup> datavector;
|
||||||
|
@ -382,14 +424,8 @@ void IdDialog::insertIdList(uint32_t token)
|
||||||
std::cerr << std::endl;
|
std::cerr << std::endl;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
mStateHelper->setLoading(IDDIALOG_IDDETAILS, false);
|
|
||||||
mStateHelper->setLoading(IDDIALOG_REPLIST, false);
|
|
||||||
mStateHelper->setActive(IDDIALOG_IDLIST, false);
|
mStateHelper->setActive(IDDIALOG_IDLIST, false);
|
||||||
mStateHelper->setActive(IDDIALOG_IDDETAILS, false);
|
|
||||||
mStateHelper->setActive(IDDIALOG_REPLIST, false);
|
|
||||||
mStateHelper->clear(IDDIALOG_IDLIST);
|
mStateHelper->clear(IDDIALOG_IDLIST);
|
||||||
mStateHelper->clear(IDDIALOG_IDDETAILS);
|
|
||||||
mStateHelper->clear(IDDIALOG_REPLIST);
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -399,14 +435,14 @@ void IdDialog::insertIdList(uint32_t token)
|
||||||
RsPgpId ownPgpId = rsPeers->getGPGOwnId();
|
RsPgpId ownPgpId = rsPeers->getGPGOwnId();
|
||||||
|
|
||||||
/* Update existing and remove not existing items */
|
/* Update existing and remove not existing items */
|
||||||
QTreeWidgetItemIterator itemIterator(ui.treeWidget_IdList);
|
QTreeWidgetItemIterator itemIterator(ui->treeWidget_IdList);
|
||||||
QTreeWidgetItem *item = NULL;
|
QTreeWidgetItem *item = NULL;
|
||||||
while ((item = *itemIterator) != NULL) {
|
while ((item = *itemIterator) != NULL) {
|
||||||
++itemIterator;
|
++itemIterator;
|
||||||
|
|
||||||
for (vit = datavector.begin(); vit != datavector.end(); ++vit)
|
for (vit = datavector.begin(); vit != datavector.end(); ++vit)
|
||||||
{
|
{
|
||||||
if (vit->mMeta.mGroupId == RsGxsGroupId(item->text(RSID_COL_KEYID).toStdString()))
|
if (vit->mMeta.mGroupId == RsGxsGroupId(item->text(RSID_COL_KEYID).toStdString()))
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -431,41 +467,36 @@ void IdDialog::insertIdList(uint32_t token)
|
||||||
item = NULL;
|
item = NULL;
|
||||||
if (fillIdListItem(*vit, item, ownPgpId, accept))
|
if (fillIdListItem(*vit, item, ownPgpId, accept))
|
||||||
{
|
{
|
||||||
ui.treeWidget_IdList->addTopLevelItem(item);
|
ui->treeWidget_IdList->addTopLevelItem(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
filterIds();
|
filterIds();
|
||||||
|
|
||||||
// fix up buttons.
|
|
||||||
updateSelection();
|
updateSelection();
|
||||||
}
|
}
|
||||||
|
|
||||||
void IdDialog::requestIdDetails(RsGxsGroupId &id)
|
void IdDialog::requestIdDetails()
|
||||||
{
|
{
|
||||||
mIdQueue->cancelActiveRequestTokens(IDDIALOG_IDDETAILS);
|
mIdQueue->cancelActiveRequestTokens(IDDIALOG_IDDETAILS);
|
||||||
|
|
||||||
if (id.isNull())
|
if (mId.isNull())
|
||||||
{
|
{
|
||||||
mStateHelper->setActive(IDDIALOG_IDDETAILS, false);
|
mStateHelper->setActive(IDDIALOG_IDDETAILS, false);
|
||||||
mStateHelper->setActive(IDDIALOG_REPLIST, false);
|
|
||||||
mStateHelper->setLoading(IDDIALOG_IDDETAILS, false);
|
mStateHelper->setLoading(IDDIALOG_IDDETAILS, false);
|
||||||
mStateHelper->setLoading(IDDIALOG_REPLIST, false);
|
|
||||||
mStateHelper->clear(IDDIALOG_IDDETAILS);
|
mStateHelper->clear(IDDIALOG_IDDETAILS);
|
||||||
mStateHelper->clear(IDDIALOG_REPLIST);
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
mStateHelper->setLoading(IDDIALOG_IDDETAILS, true);
|
mStateHelper->setLoading(IDDIALOG_IDDETAILS, true);
|
||||||
mStateHelper->setLoading(IDDIALOG_REPLIST, true);
|
|
||||||
|
|
||||||
RsTokReqOptions opts;
|
RsTokReqOptions opts;
|
||||||
opts.mReqType = GXS_REQUEST_TYPE_GROUP_DATA;
|
opts.mReqType = GXS_REQUEST_TYPE_GROUP_DATA;
|
||||||
|
|
||||||
uint32_t token;
|
uint32_t token;
|
||||||
std::list<RsGxsGroupId> groupIds;
|
std::list<RsGxsGroupId> groupIds;
|
||||||
groupIds.push_back(id);
|
groupIds.push_back(mId);
|
||||||
|
|
||||||
mIdQueue->requestGroupInfo(token, RS_TOKREQ_ANSTYPE_DATA, opts, groupIds, IDDIALOG_IDDETAILS);
|
mIdQueue->requestGroupInfo(token, RS_TOKREQ_ANSTYPE_DATA, opts, groupIds, IDDIALOG_IDDETAILS);
|
||||||
}
|
}
|
||||||
|
@ -480,12 +511,9 @@ void IdDialog::insertIdDetails(uint32_t token)
|
||||||
if (!rsIdentity->getGroupData(token, datavector))
|
if (!rsIdentity->getGroupData(token, datavector))
|
||||||
{
|
{
|
||||||
mStateHelper->setActive(IDDIALOG_IDDETAILS, false);
|
mStateHelper->setActive(IDDIALOG_IDDETAILS, false);
|
||||||
mStateHelper->setActive(IDDIALOG_REPLIST, false);
|
|
||||||
mStateHelper->setLoading(IDDIALOG_REPLIST, false);
|
|
||||||
mStateHelper->clear(IDDIALOG_IDDETAILS);
|
|
||||||
mStateHelper->clear(IDDIALOG_REPLIST);
|
mStateHelper->clear(IDDIALOG_REPLIST);
|
||||||
|
|
||||||
ui.lineEdit_KeyId->setText("ERROR GETTING KEY!");
|
ui->lineEdit_KeyId->setText("ERROR GETTING KEY!");
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -497,12 +525,9 @@ void IdDialog::insertIdDetails(uint32_t token)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
mStateHelper->setActive(IDDIALOG_IDDETAILS, false);
|
mStateHelper->setActive(IDDIALOG_IDDETAILS, false);
|
||||||
mStateHelper->setActive(IDDIALOG_REPLIST, false);
|
|
||||||
mStateHelper->setLoading(IDDIALOG_REPLIST, false);
|
|
||||||
mStateHelper->clear(IDDIALOG_IDDETAILS);
|
mStateHelper->clear(IDDIALOG_IDDETAILS);
|
||||||
mStateHelper->clear(IDDIALOG_REPLIST);
|
|
||||||
|
|
||||||
ui.lineEdit_KeyId->setText("INVALID DV SIZE");
|
ui->lineEdit_KeyId->setText("INVALID DV SIZE");
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -514,75 +539,75 @@ void IdDialog::insertIdDetails(uint32_t token)
|
||||||
/* get GPG Details from rsPeers */
|
/* get GPG Details from rsPeers */
|
||||||
RsPgpId ownPgpId = rsPeers->getGPGOwnId();
|
RsPgpId ownPgpId = rsPeers->getGPGOwnId();
|
||||||
|
|
||||||
ui.lineEdit_Nickname->setText(QString::fromUtf8(data.mMeta.mGroupName.c_str()));
|
ui->lineEdit_Nickname->setText(QString::fromUtf8(data.mMeta.mGroupName.c_str()));
|
||||||
ui.lineEdit_KeyId->setText(QString::fromStdString(data.mMeta.mGroupId.toStdString()));
|
ui->lineEdit_KeyId->setText(QString::fromStdString(data.mMeta.mGroupId.toStdString()));
|
||||||
//ui.lineEdit_GpgHash->setText(QString::fromStdString(data.mPgpIdHash.toStdString()));
|
//ui->lineEdit_GpgHash->setText(QString::fromStdString(data.mPgpIdHash.toStdString()));
|
||||||
ui.lineEdit_GpgId->setText(QString::fromStdString(data.mPgpId.toStdString()));
|
ui->lineEdit_GpgId->setText(QString::fromStdString(data.mPgpId.toStdString()));
|
||||||
|
|
||||||
ui.headerFrame->setHeaderText(QString::fromUtf8(data.mMeta.mGroupName.c_str()));
|
ui->headerFrame->setHeaderText(QString::fromUtf8(data.mMeta.mGroupName.c_str()));
|
||||||
|
|
||||||
QPixmap pix = QPixmap::fromImage(GxsIdDetails::makeDefaultIcon(RsGxsId(data.mMeta.mGroupId))) ;
|
QPixmap pix = QPixmap::fromImage(GxsIdDetails::makeDefaultIcon(RsGxsId(data.mMeta.mGroupId))) ;
|
||||||
#ifdef ID_DEBUG
|
#ifdef ID_DEBUG
|
||||||
std::cerr << "Setting header frame image : " << pix.width() << " x " << pix.height() << std::endl;
|
std::cerr << "Setting header frame image : " << pix.width() << " x " << pix.height() << std::endl;
|
||||||
#endif
|
#endif
|
||||||
ui.headerFrame->setHeaderImage(pix);
|
ui->headerFrame->setHeaderImage(pix);
|
||||||
|
|
||||||
if (data.mPgpKnown)
|
if (data.mPgpKnown)
|
||||||
{
|
{
|
||||||
RsPeerDetails details;
|
RsPeerDetails details;
|
||||||
rsPeers->getGPGDetails(data.mPgpId, details);
|
rsPeers->getGPGDetails(data.mPgpId, details);
|
||||||
ui.lineEdit_GpgName->setText(QString::fromUtf8(details.name.c_str()));
|
ui->lineEdit_GpgName->setText(QString::fromUtf8(details.name.c_str()));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID)
|
if (data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID)
|
||||||
{
|
{
|
||||||
ui.lineEdit_GpgName->setText(tr("Unknown real name"));
|
ui->lineEdit_GpgName->setText(tr("Unknown real name"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ui.lineEdit_GpgName->setText(tr("Anonymous Id"));
|
ui->lineEdit_GpgName->setText(tr("Anonymous Id"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(data.mPgpId.isNull())
|
if(data.mPgpId.isNull())
|
||||||
{
|
{
|
||||||
ui.lineEdit_GpgId->hide() ;
|
ui->lineEdit_GpgId->hide() ;
|
||||||
ui.lineEdit_GpgName->hide() ;
|
ui->lineEdit_GpgName->hide() ;
|
||||||
ui.PgpId_LB->hide() ;
|
ui->PgpId_LB->hide() ;
|
||||||
ui.PgpName_LB->hide() ;
|
ui->PgpName_LB->hide() ;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ui.lineEdit_GpgId->show() ;
|
ui->lineEdit_GpgId->show() ;
|
||||||
ui.lineEdit_GpgName->show() ;
|
ui->lineEdit_GpgName->show() ;
|
||||||
ui.PgpId_LB->show() ;
|
ui->PgpId_LB->show() ;
|
||||||
ui.PgpName_LB->show() ;
|
ui->PgpName_LB->show() ;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool isOwnId = (data.mPgpKnown && (data.mPgpId == ownPgpId)) || (data.mMeta.mSubscribeFlags & GXS_SERV::GROUP_SUBSCRIBE_ADMIN);
|
bool isOwnId = (data.mPgpKnown && (data.mPgpId == ownPgpId)) || (data.mMeta.mSubscribeFlags & GXS_SERV::GROUP_SUBSCRIBE_ADMIN);
|
||||||
|
|
||||||
if(isOwnId)
|
if(isOwnId)
|
||||||
if (data.mPgpKnown)
|
if (data.mPgpKnown)
|
||||||
ui.lineEdit_Type->setText(tr("Identity owned by you, linked to your Retroshare node")) ;
|
ui->lineEdit_Type->setText(tr("Identity owned by you, linked to your Retroshare node")) ;
|
||||||
else
|
else
|
||||||
ui.lineEdit_Type->setText(tr("Anonymous identity, owned by you")) ;
|
ui->lineEdit_Type->setText(tr("Anonymous identity, owned by you")) ;
|
||||||
else if (data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID)
|
else if (data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID)
|
||||||
{
|
{
|
||||||
if (data.mPgpKnown)
|
if (data.mPgpKnown)
|
||||||
if (rsPeers->isGPGAccepted(data.mPgpId))
|
if (rsPeers->isGPGAccepted(data.mPgpId))
|
||||||
ui.lineEdit_Type->setText(tr("Owned by a friend Retroshare node")) ;
|
ui->lineEdit_Type->setText(tr("Owned by a friend Retroshare node")) ;
|
||||||
else
|
else
|
||||||
ui.lineEdit_Type->setText(tr("Owned by 2-hops Retroshare node")) ;
|
ui->lineEdit_Type->setText(tr("Owned by 2-hops Retroshare node")) ;
|
||||||
else
|
else
|
||||||
ui.lineEdit_Type->setText(tr("Owned by unknown Retroshare node")) ;
|
ui->lineEdit_Type->setText(tr("Owned by unknown Retroshare node")) ;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
ui.lineEdit_Type->setText(tr("Anonymous identity")) ;
|
ui->lineEdit_Type->setText(tr("Anonymous identity")) ;
|
||||||
|
|
||||||
// if (isOwnId)
|
// if (isOwnId)
|
||||||
// {
|
// {
|
||||||
// ui.radioButton_IdYourself->setChecked(true);
|
// ui->radioButton_IdYourself->setChecked(true);
|
||||||
// }
|
// }
|
||||||
// else if (data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID)
|
// else if (data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID)
|
||||||
// {
|
// {
|
||||||
|
@ -590,79 +615,75 @@ void IdDialog::insertIdDetails(uint32_t token)
|
||||||
// {
|
// {
|
||||||
// if (rsPeers->isGPGAccepted(data.mPgpId))
|
// if (rsPeers->isGPGAccepted(data.mPgpId))
|
||||||
// {
|
// {
|
||||||
// ui.radioButton_IdFriend->setChecked(true);
|
// ui->radioButton_IdFriend->setChecked(true);
|
||||||
// }
|
// }
|
||||||
// else
|
// else
|
||||||
// {
|
// {
|
||||||
// ui.radioButton_IdFOF->setChecked(true);
|
// ui->radioButton_IdFOF->setChecked(true);
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// else
|
// else
|
||||||
// {
|
// {
|
||||||
// ui.radioButton_IdOther->setChecked(true);
|
// ui->radioButton_IdOther->setChecked(true);
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// else
|
// else
|
||||||
// {
|
// {
|
||||||
// ui.radioButton_IdPseudo->setChecked(true);
|
// ui->radioButton_IdPseudo->setChecked(true);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
if (isOwnId)
|
if (isOwnId)
|
||||||
{
|
{
|
||||||
mStateHelper->setWidgetEnabled(ui.toolButton_Reputation, false);
|
mStateHelper->setWidgetEnabled(ui->toolButton_Reputation, false);
|
||||||
ui.editIdentity->setEnabled(true);
|
ui->editIdentity->setEnabled(true);
|
||||||
ui.removeIdentity->setEnabled(true);
|
ui->removeIdentity->setEnabled(true);
|
||||||
ui.chatIdentity->setEnabled(false);
|
ui->chatIdentity->setEnabled(false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// No Reputation yet!
|
// No Reputation yet!
|
||||||
mStateHelper->setWidgetEnabled(ui.toolButton_Reputation, /*true*/ false);
|
mStateHelper->setWidgetEnabled(ui->toolButton_Reputation, /*true*/ false);
|
||||||
ui.editIdentity->setEnabled(false);
|
ui->editIdentity->setEnabled(false);
|
||||||
ui.removeIdentity->setEnabled(false);
|
ui->removeIdentity->setEnabled(false);
|
||||||
ui.chatIdentity->setEnabled(true);
|
ui->chatIdentity->setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* now fill in the reputation information */
|
/* now fill in the reputation information */
|
||||||
ui.line_RatingOverall->setText("Overall Rating TODO");
|
ui->line_RatingOverall->setText("Overall Rating TODO");
|
||||||
ui.line_RatingOwn->setText("Own Rating TODO");
|
ui->line_RatingOwn->setText("Own Rating TODO");
|
||||||
|
|
||||||
if (data.mPgpKnown)
|
if (data.mPgpKnown)
|
||||||
{
|
{
|
||||||
ui.line_RatingImplicit->setText("+50 Known PGP");
|
ui->line_RatingImplicit->setText("+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("+10 UnKnown PGP");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ui.line_RatingImplicit->setText("+5 Anon Id");
|
ui->line_RatingImplicit->setText("+5 Anon Id");
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
QString rating = QString::number(data.mReputation.mOverallScore);
|
QString rating = QString::number(data.mReputation.mOverallScore);
|
||||||
ui.line_RatingOverall->setText(rating);
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
QString rating = QString::number(data.mReputation.mOwnOpinion);
|
QString rating = QString::number(data.mReputation.mOwnOpinion);
|
||||||
ui.line_RatingOwn->setText(rating);
|
ui->line_RatingOwn->setText(rating);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
QString rating = QString::number(data.mReputation.mPeerOpinion);
|
QString rating = QString::number(data.mReputation.mPeerOpinion);
|
||||||
ui.line_RatingPeers->setText(rating);
|
ui->line_RatingPeers->setText(rating);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* request network ratings */
|
|
||||||
// Removing this for the moment.
|
|
||||||
// requestRepList(data.mMeta.mGroupId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void IdDialog::modifyReputation()
|
void IdDialog::modifyReputation()
|
||||||
|
@ -672,28 +693,28 @@ void IdDialog::modifyReputation()
|
||||||
std::cerr << std::endl;
|
std::cerr << std::endl;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
RsGxsId id(ui.lineEdit_KeyId->text().toStdString());
|
RsGxsId id(ui->lineEdit_KeyId->text().toStdString());
|
||||||
|
|
||||||
int mod = 0;
|
int mod = 0;
|
||||||
if (ui.repMod_Accept->isChecked())
|
if (ui->repMod_Accept->isChecked())
|
||||||
{
|
{
|
||||||
mod += 100;
|
mod += 100;
|
||||||
}
|
}
|
||||||
else if (ui.repMod_Positive->isChecked())
|
else if (ui->repMod_Positive->isChecked())
|
||||||
{
|
{
|
||||||
mod += 10;
|
mod += 10;
|
||||||
}
|
}
|
||||||
else if (ui.repMod_Negative->isChecked())
|
else if (ui->repMod_Negative->isChecked())
|
||||||
{
|
{
|
||||||
mod += -10;
|
mod += -10;
|
||||||
}
|
}
|
||||||
else if (ui.repMod_Ban->isChecked())
|
else if (ui->repMod_Ban->isChecked())
|
||||||
{
|
{
|
||||||
mod += -100;
|
mod += -100;
|
||||||
}
|
}
|
||||||
else if (ui.repMod_Custom->isChecked())
|
else if (ui->repMod_Custom->isChecked())
|
||||||
{
|
{
|
||||||
mod += ui.repMod_spinBox->value();
|
mod += ui->repMod_spinBox->value();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -727,10 +748,29 @@ void IdDialog::modifyReputation()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void IdDialog::updateDisplay(bool /*complete*/)
|
void IdDialog::updateDisplay(bool complete)
|
||||||
{
|
{
|
||||||
/* Update identity list */
|
/* Update identity list */
|
||||||
requestIdList();
|
|
||||||
|
if (complete) {
|
||||||
|
/* Fill complete */
|
||||||
|
requestIdList();
|
||||||
|
requestIdDetails();
|
||||||
|
requestRepList();
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::list<RsGxsGroupId> grpIds;
|
||||||
|
getAllGrpIds(grpIds);
|
||||||
|
if (!getGrpIds().empty()) {
|
||||||
|
requestIdList();
|
||||||
|
|
||||||
|
if (!mId.isNull() && std::find(grpIds.begin(), grpIds.end(), mId) != grpIds.end()) {
|
||||||
|
requestIdDetails();
|
||||||
|
requestRepList();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void IdDialog::addIdentity()
|
void IdDialog::addIdentity()
|
||||||
|
@ -742,7 +782,7 @@ void IdDialog::addIdentity()
|
||||||
|
|
||||||
void IdDialog::removeIdentity()
|
void IdDialog::removeIdentity()
|
||||||
{
|
{
|
||||||
QTreeWidgetItem *item = ui.treeWidget_IdList->currentItem();
|
QTreeWidgetItem *item = ui->treeWidget_IdList->currentItem();
|
||||||
if (!item)
|
if (!item)
|
||||||
{
|
{
|
||||||
#ifdef ID_DEBUG
|
#ifdef ID_DEBUG
|
||||||
|
@ -751,30 +791,21 @@ void IdDialog::removeIdentity()
|
||||||
#endif
|
#endif
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString queryWrn;
|
|
||||||
queryWrn.clear();
|
|
||||||
queryWrn.append(tr("Do you really want to delete this Identity ?"));
|
|
||||||
|
|
||||||
if ((QMessageBox::question(this, tr("Really delete? "),queryWrn,QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes))== QMessageBox::Yes)
|
|
||||||
{
|
|
||||||
std::string keyId = item->text(RSID_COL_KEYID).toStdString();
|
|
||||||
|
|
||||||
uint32_t dummyToken = 0;
|
|
||||||
RsGxsIdGroup group;
|
|
||||||
group.mMeta.mGroupId=RsGxsGroupId(keyId);
|
|
||||||
rsIdentity->deleteIdentity(dummyToken, group);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return;
|
|
||||||
|
|
||||||
|
|
||||||
|
if ((QMessageBox::question(this, tr("Really delete? "), tr("Do you really want to delete this Identity?"), QMessageBox::Yes|QMessageBox::No, QMessageBox::No))== QMessageBox::Yes)
|
||||||
|
{
|
||||||
|
std::string keyId = item->text(RSID_COL_KEYID).toStdString();
|
||||||
|
|
||||||
|
uint32_t dummyToken = 0;
|
||||||
|
RsGxsIdGroup group;
|
||||||
|
group.mMeta.mGroupId=RsGxsGroupId(keyId);
|
||||||
|
rsIdentity->deleteIdentity(dummyToken, group);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void IdDialog::editIdentity()
|
void IdDialog::editIdentity()
|
||||||
{
|
{
|
||||||
QTreeWidgetItem *item = ui.treeWidget_IdList->currentItem();
|
QTreeWidgetItem *item = ui->treeWidget_IdList->currentItem();
|
||||||
if (!item)
|
if (!item)
|
||||||
{
|
{
|
||||||
#ifdef ID_DEBUG
|
#ifdef ID_DEBUG
|
||||||
|
@ -793,20 +824,23 @@ void IdDialog::editIdentity()
|
||||||
|
|
||||||
void IdDialog::filterIds()
|
void IdDialog::filterIds()
|
||||||
{
|
{
|
||||||
int filterColumn = ui.filterLineEdit->currentFilter();
|
int filterColumn = ui->filterLineEdit->currentFilter();
|
||||||
QString text = ui.filterLineEdit->text();
|
QString text = ui->filterLineEdit->text();
|
||||||
|
|
||||||
ui.treeWidget_IdList->filterItems(filterColumn, text);
|
ui->treeWidget_IdList->filterItems(filterColumn, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IdDialog::requestRepList(const RsGxsGroupId &aboutId)
|
void IdDialog::requestRepList()
|
||||||
{
|
{
|
||||||
|
// Removing this for the moment.
|
||||||
|
return;
|
||||||
|
|
||||||
mStateHelper->setLoading(IDDIALOG_REPLIST, true);
|
mStateHelper->setLoading(IDDIALOG_REPLIST, true);
|
||||||
|
|
||||||
mIdQueue->cancelActiveRequestTokens(IDDIALOG_REPLIST);
|
mIdQueue->cancelActiveRequestTokens(IDDIALOG_REPLIST);
|
||||||
|
|
||||||
std::list<RsGxsGroupId> groupIds;
|
std::list<RsGxsGroupId> groupIds;
|
||||||
groupIds.push_back(aboutId);
|
groupIds.push_back(mId);
|
||||||
|
|
||||||
RsTokReqOptions opts;
|
RsTokReqOptions opts;
|
||||||
opts.mReqType = GXS_REQUEST_TYPE_MSG_DATA;
|
opts.mReqType = GXS_REQUEST_TYPE_MSG_DATA;
|
||||||
|
@ -844,7 +878,7 @@ void IdDialog::insertRepList(uint32_t token)
|
||||||
/* insert 4 columns */
|
/* insert 4 columns */
|
||||||
|
|
||||||
/* friend name */
|
/* friend name */
|
||||||
item->setId(op.mMeta.mAuthorId, RSIDREP_COL_NAME);
|
item->setId(op.mMeta.mAuthorId, RSIDREP_COL_NAME);
|
||||||
|
|
||||||
/* score */
|
/* score */
|
||||||
item->setText(RSIDREP_COL_OPINION, QString::number(op.getOpinion()));
|
item->setText(RSIDREP_COL_OPINION, QString::number(op.getOpinion()));
|
||||||
|
@ -855,9 +889,10 @@ void IdDialog::insertRepList(uint32_t token)
|
||||||
/* local reputation */
|
/* local reputation */
|
||||||
item->setText(RSIDREP_COL_REPUTATION, QString::number(op.getReputation()));
|
item->setText(RSIDREP_COL_REPUTATION, QString::number(op.getReputation()));
|
||||||
|
|
||||||
ui.treeWidget_RepList->addTopLevelItem(item);
|
ui->treeWidget_RepList->addTopLevelItem(item);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
mStateHelper->setActive(IDDIALOG_REPLIST, true);
|
mStateHelper->setActive(IDDIALOG_REPLIST, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -876,14 +911,15 @@ void IdDialog::loadRequest(const TokenQueue * /*queue*/, const TokenRequest &req
|
||||||
|
|
||||||
case IDDIALOG_IDDETAILS:
|
case IDDIALOG_IDDETAILS:
|
||||||
insertIdDetails(req.mToken);
|
insertIdDetails(req.mToken);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IDDIALOG_REPLIST:
|
case IDDIALOG_REPLIST:
|
||||||
insertRepList(req.mToken);
|
insertRepList(req.mToken);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IDDIALOG_REFRESH:
|
case IDDIALOG_REFRESH:
|
||||||
updateDisplay(true);
|
// replaced by RsGxsUpdateBroadcastPage
|
||||||
|
// updateDisplay(true);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
std::cerr << "IdDialog::loadRequest() ERROR";
|
std::cerr << "IdDialog::loadRequest() ERROR";
|
||||||
|
@ -894,49 +930,45 @@ void IdDialog::loadRequest(const TokenQueue * /*queue*/, const TokenRequest &req
|
||||||
|
|
||||||
void IdDialog::IdListCustomPopupMenu( QPoint )
|
void IdDialog::IdListCustomPopupMenu( QPoint )
|
||||||
{
|
{
|
||||||
//Disable by default, will be enable by insertIdDetails()
|
QMenu contextMnu( this );
|
||||||
ui.removeIdentity->setEnabled(false);
|
|
||||||
ui.editIdentity->setEnabled(false);
|
|
||||||
|
|
||||||
QMenu contextMnu( this );
|
contextMnu.addAction(ui->editIdentity);
|
||||||
|
contextMnu.addAction(ui->removeIdentity);
|
||||||
|
|
||||||
contextMnu.addAction(ui.editIdentity);
|
std::list<RsGxsId> own_identities ;
|
||||||
contextMnu.addAction(ui.removeIdentity);
|
rsIdentity->getOwnIds(own_identities) ;
|
||||||
|
|
||||||
std::list<RsGxsId> own_identities ;
|
if(own_identities.size() <= 1)
|
||||||
rsIdentity->getOwnIds(own_identities) ;
|
{
|
||||||
|
QAction *action = contextMnu.addAction(QIcon(), tr("Chat with this peer"), this, SLOT(chatIdentity()));
|
||||||
|
|
||||||
if(own_identities.size() <= 1)
|
if(own_identities.empty())
|
||||||
{
|
action->setEnabled(false) ;
|
||||||
QAction * action = contextMnu.addAction(QIcon(),"Chat with this peer",this,SLOT(chatIdentity()));
|
else
|
||||||
|
action->setData(QString::fromStdString((own_identities.front()).toStdString())) ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
QMenu *mnu = contextMnu.addMenu(tr("Chat with this peer as...")) ;
|
||||||
|
|
||||||
if(own_identities.empty())
|
for(std::list<RsGxsId>::const_iterator it=own_identities.begin();it!=own_identities.end();++it)
|
||||||
action->setEnabled(false) ;
|
{
|
||||||
else
|
RsIdentityDetails idd ;
|
||||||
action->setData(QString::fromStdString((own_identities.front()).toStdString())) ;
|
rsIdentity->getIdDetails(*it,idd) ;
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
QMenu *mnu = contextMnu.addMenu("Chat with this peer as...") ;
|
|
||||||
|
|
||||||
for(std::list<RsGxsId>::const_iterator it=own_identities.begin();it!=own_identities.end();++it)
|
QPixmap pixmap = QPixmap::fromImage(GxsIdDetails::makeDefaultIcon(*it)) ;
|
||||||
{
|
|
||||||
RsIdentityDetails idd ;
|
|
||||||
rsIdentity->getIdDetails(*it,idd) ;
|
|
||||||
|
|
||||||
QPixmap pixmap = QPixmap::fromImage(GxsIdDetails::makeDefaultIcon(*it)) ;
|
QAction *action = mnu->addAction(QIcon(pixmap), QString("%1 (%2)").arg(QString::fromUtf8(idd.mNickname.c_str()), QString::fromStdString((*it).toStdString())), this, SLOT(chatIdentity()));
|
||||||
|
action->setData(QString::fromStdString((*it).toStdString())) ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
QAction * action = mnu->addAction(QIcon(pixmap),QString::fromStdString(idd.mNickname) + " (" + QString::fromStdString((*it).toStdString())+ ")",this,SLOT(chatIdentity()));
|
contextMnu.exec(QCursor::pos());
|
||||||
action->setData(QString::fromStdString((*it).toStdString())) ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
contextMnu.exec(QCursor::pos());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void IdDialog::chatIdentity()
|
void IdDialog::chatIdentity()
|
||||||
{
|
{
|
||||||
QTreeWidgetItem *item = ui.treeWidget_IdList->currentItem();
|
QTreeWidgetItem *item = ui->treeWidget_IdList->currentItem();
|
||||||
if (!item)
|
if (!item)
|
||||||
{
|
{
|
||||||
std::cerr << "IdDialog::editIdentity() Invalid item";
|
std::cerr << "IdDialog::editIdentity() Invalid item";
|
||||||
|
@ -944,17 +976,15 @@ void IdDialog::chatIdentity()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string keyId = item->text(RSID_COL_KEYID).toStdString();
|
std::string keyId = item->text(RSID_COL_KEYID).toStdString();
|
||||||
|
|
||||||
QAction *action = qobject_cast<QAction *>(QObject::sender());
|
QAction *action = qobject_cast<QAction *>(QObject::sender());
|
||||||
if (!action)
|
if (!action)
|
||||||
return ;
|
return ;
|
||||||
|
|
||||||
RsGxsId from_gxs_id(action->data().toString().toStdString());
|
RsGxsId from_gxs_id(action->data().toString().toStdString());
|
||||||
uint32_t error_code ;
|
uint32_t error_code ;
|
||||||
|
|
||||||
if(!rsMsgs->initiateDistantChatConnexion(RsGxsId(keyId), from_gxs_id, error_code))
|
if(!rsMsgs->initiateDistantChatConnexion(RsGxsId(keyId), from_gxs_id, error_code))
|
||||||
QMessageBox::information(NULL,"Distant chat cannot work","Distant chat refused with this peer. Error code: "+QString::number(error_code)) ;
|
QMessageBox::information(NULL, tr("Distant chat cannot work"), QString("%1 %2: %3").arg(tr("Distant chat refused with this peer.")).arg(tr("Error code")).arg(error_code)) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -25,18 +25,19 @@
|
||||||
#define IDENTITYDIALOG_H
|
#define IDENTITYDIALOG_H
|
||||||
|
|
||||||
#include "gui/gxs/RsGxsUpdateBroadcastPage.h"
|
#include "gui/gxs/RsGxsUpdateBroadcastPage.h"
|
||||||
#include "ui_IdDialog.h"
|
|
||||||
|
|
||||||
#include <retroshare/rsidentity.h>
|
#include <retroshare/rsidentity.h>
|
||||||
|
|
||||||
#include <map>
|
|
||||||
|
|
||||||
#include "gui/Identity/IdEditDialog.h"
|
|
||||||
#include "util/TokenQueue.h"
|
#include "util/TokenQueue.h"
|
||||||
|
|
||||||
#define IMAGE_IDDIALOG ":/images/identity/identities_32.png"
|
#define IMAGE_IDDIALOG ":/images/identity/identities_32.png"
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class IdDialog;
|
||||||
|
}
|
||||||
|
|
||||||
class UIStateHelper;
|
class UIStateHelper;
|
||||||
|
class QTreeWidgetItem;
|
||||||
|
|
||||||
class IdDialog : public RsGxsUpdateBroadcastPage, public TokenResponse
|
class IdDialog : public RsGxsUpdateBroadcastPage, public TokenResponse
|
||||||
{
|
{
|
||||||
|
@ -68,21 +69,23 @@ private slots:
|
||||||
|
|
||||||
void todo();
|
void todo();
|
||||||
void modifyReputation();
|
void modifyReputation();
|
||||||
|
|
||||||
/** Create the context popup menu and it's submenus */
|
/** Create the context popup menu and it's submenus */
|
||||||
void IdListCustomPopupMenu( QPoint point );
|
void IdListCustomPopupMenu( QPoint point );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void requestIdDetails(RsGxsGroupId &id);
|
void processSettings(bool load);
|
||||||
|
|
||||||
|
void requestIdDetails();
|
||||||
void insertIdDetails(uint32_t token);
|
void insertIdDetails(uint32_t token);
|
||||||
|
|
||||||
void requestIdList();
|
void requestIdList();
|
||||||
void requestIdData(std::list<RsGxsGroupId> &ids);
|
void requestIdData(std::list<RsGxsGroupId> &ids);
|
||||||
bool fillIdListItem(const RsGxsIdGroup& data, QTreeWidgetItem *&item, const RsPgpId &ownPgpId, int accept);
|
bool fillIdListItem(const RsGxsIdGroup& data, QTreeWidgetItem *&item, const RsPgpId &ownPgpId, int accept);
|
||||||
void insertIdList(uint32_t token);
|
void insertIdList(uint32_t token);
|
||||||
void filterIds();
|
void filterIds();
|
||||||
|
|
||||||
void requestRepList(const RsGxsGroupId &aboutId);
|
void requestRepList();
|
||||||
void insertRepList(uint32_t token);
|
void insertRepList(uint32_t token);
|
||||||
|
|
||||||
void requestIdEdit(std::string &id);
|
void requestIdEdit(std::string &id);
|
||||||
|
@ -92,8 +95,10 @@ private:
|
||||||
TokenQueue *mIdQueue;
|
TokenQueue *mIdQueue;
|
||||||
UIStateHelper *mStateHelper;
|
UIStateHelper *mStateHelper;
|
||||||
|
|
||||||
|
RsGxsGroupId mId;
|
||||||
|
|
||||||
/* UI - from Designer */
|
/* UI - from Designer */
|
||||||
Ui::IdDialog ui;
|
Ui::IdDialog *ui;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
#include "GxsIdChooser.h"
|
#include "GxsIdChooser.h"
|
||||||
#include "GxsIdDetails.h"
|
#include "GxsIdDetails.h"
|
||||||
#include "RsGxsUpdateBroadcastBase.h"
|
#include "RsGxsUpdateBroadcastBase.h"
|
||||||
#include "gui/Identity/IdDialog.h"
|
#include "gui/Identity/IdEditDialog.h"
|
||||||
|
|
||||||
#include <QSortFilterProxyModel>
|
#include <QSortFilterProxyModel>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
|
@ -2860,14 +2860,6 @@ p, li { white-space: pre-wrap; }
|
||||||
<source>Signed by known nodes</source>
|
<source>Signed by known nodes</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Create new Identity</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>New ID</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Edit Circle</source>
|
<source>Edit Circle</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -3091,14 +3083,6 @@ p, li { white-space: pre-wrap; }
|
||||||
<source>Generate mass data</source>
|
<source>Generate mass data</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Create new Identity</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>New ID</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Do you really want to generate %1 messages ?</source>
|
<source>Do you really want to generate %1 messages ?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -5637,6 +5621,18 @@ p, li { white-space: pre-wrap; }
|
||||||
<source>Loading</source>
|
<source>Loading</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Open File</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Play Media</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>GxsChannelPostsWidget</name>
|
<name>GxsChannelPostsWidget</name>
|
||||||
|
@ -5773,14 +5769,6 @@ p, li { white-space: pre-wrap; }
|
||||||
<source>OwnVote</source>
|
<source>OwnVote</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Create new Identity</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>New ID</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>GxsCommentTreeWidget</name>
|
<name>GxsCommentTreeWidget</name>
|
||||||
|
@ -5848,14 +5836,6 @@ p, li { white-space: pre-wrap; }
|
||||||
before you can comment</source>
|
before you can comment</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Create new Identity</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>New ID</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>GxsForumGroupDialog</name>
|
<name>GxsForumGroupDialog</name>
|
||||||
|
@ -6320,14 +6300,6 @@ before you can comment</source>
|
||||||
<source>Load Group Logo</source>
|
<source>Load Group Logo</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Create new Identity</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>New ID</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Create Forum</source>
|
<source>Create Forum</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -6414,6 +6386,10 @@ before you can comment</source>
|
||||||
<source>No Signature</source>
|
<source>No Signature</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Create new Identity</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>GxsIdDetails</name>
|
<name>GxsIdDetails</name>
|
||||||
|
@ -6816,10 +6792,6 @@ p, li { white-space: pre-wrap; }
|
||||||
<source>Launches a distant chat with this peer</source>
|
<source>Launches a distant chat with this peer</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Do you really want to delete this Identity ?</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Really delete? </source>
|
<source>Really delete? </source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -6908,6 +6880,26 @@ p, li { white-space: pre-wrap; }
|
||||||
<source>Anonymous identity</source>
|
<source>Anonymous identity</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Do you really want to delete this Identity?</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Chat with this peer as...</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Distant chat cannot work</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Distant chat refused with this peer.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Error code</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>IdEditDialog</name>
|
<name>IdEditDialog</name>
|
||||||
|
@ -9674,14 +9666,6 @@ malicious behavior of crafted plugins.</source>
|
||||||
<source>Please add a Title</source>
|
<source>Please add a Title</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Create new Identity</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>New ID</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Title</source>
|
<source>Title</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -9885,14 +9869,6 @@ malicious behavior of crafted plugins.</source>
|
||||||
<source>This Year</source>
|
<source>This Year</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Create new Identity</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>New ID</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Submit a new Post</source>
|
<source>Submit a new Post</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue