diff --git a/retroshare-gui/src/gui/Identity/IdDialog.cpp b/retroshare-gui/src/gui/Identity/IdDialog.cpp
index 2363cbf8e..5d27dcdf8 100644
--- a/retroshare-gui/src/gui/Identity/IdDialog.cpp
+++ b/retroshare-gui/src/gui/Identity/IdDialog.cpp
@@ -25,27 +25,30 @@
#include
#include "IdDialog.h"
+#include "ui_IdDialog.h"
+#include "IdEditDialog.h"
#include "gui/gxs/GxsIdDetails.h"
#include "gui/gxs/GxsIdTreeWidgetItem.h"
#include "gui/common/UIStateHelper.h"
#include "gui/chat/ChatDialog.h"
+#include "gui/settings/rsharesettings.h"
#include
-//#include //On header
#include "retroshare/rsgxsflags.h"
#include "retroshare/rsmsgs.h"
#include
+#include
/******
* #define ID_DEBUG 1
*****/
// Data Requests.
-#define IDDIALOG_IDLIST 1
-#define IDDIALOG_IDDETAILS 2
-#define IDDIALOG_REPLIST 3
-#define IDDIALOG_REFRESH 4
+#define IDDIALOG_IDLIST 1
+#define IDDIALOG_IDDETAILS 2
+#define IDDIALOG_REPLIST 3
+#define IDDIALOG_REFRESH 4
/****************************************************************
*/
@@ -68,108 +71,111 @@
#define IMAGE_EDIT ":/images/edit_16.png"
/** Constructor */
-IdDialog::IdDialog(QWidget *parent)
-: RsGxsUpdateBroadcastPage(rsIdentity, parent)
+IdDialog::IdDialog(QWidget *parent) :
+ RsGxsUpdateBroadcastPage(rsIdentity, parent),
+ ui(new Ui::IdDialog)
{
- ui.setupUi(this);
+ ui->setupUi(this);
mIdQueue = NULL;
/* Setup UI helper */
mStateHelper = new UIStateHelper(this);
- mStateHelper->addWidget(IDDIALOG_IDLIST, ui.treeWidget_IdList);
- mStateHelper->addLoadPlaceholder(IDDIALOG_IDLIST, ui.treeWidget_IdList, false);
- mStateHelper->addClear(IDDIALOG_IDLIST, ui.treeWidget_IdList);
+// mStateHelper->addWidget(IDDIALOG_IDLIST, ui->treeWidget_IdList);
+ mStateHelper->addLoadPlaceholder(IDDIALOG_IDLIST, ui->treeWidget_IdList, false);
+ mStateHelper->addClear(IDDIALOG_IDLIST, ui->treeWidget_IdList);
- mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.lineEdit_Nickname);
- mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.lineEdit_KeyId);
-// mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.lineEdit_GpgHash);
- mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.lineEdit_GpgId);
- mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.lineEdit_GpgName);
- mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.lineEdit_Type);
- mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.toolButton_Reputation);
- mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.line_RatingOverall);
- mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.line_RatingImplicit);
- mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.line_RatingOwn);
- mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.line_RatingPeers);
- mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.repModButton);
- mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.repMod_Accept);
- mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.repMod_Ban);
- mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.repMod_Negative);
- mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.repMod_Positive);
- mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.repMod_Custom);
- mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui.repMod_spinBox);
+ mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->lineEdit_Nickname);
+ mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->lineEdit_KeyId);
+// mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->lineEdit_GpgHash);
+ mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->lineEdit_GpgId);
+ mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->lineEdit_GpgName);
+ mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->lineEdit_Type);
+ mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->toolButton_Reputation);
+ mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->line_RatingOverall);
+ mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->line_RatingImplicit);
+ mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->line_RatingOwn);
+ mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->line_RatingPeers);
+ mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->repModButton);
+ mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->repMod_Accept);
+ mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->repMod_Ban);
+ mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->repMod_Negative);
+ mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->repMod_Positive);
+ mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->repMod_Custom);
+ mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->repMod_spinBox);
- mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui.lineEdit_Nickname);
- mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui.lineEdit_GpgName);
- mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui.lineEdit_KeyId);
-// mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui.lineEdit_GpgHash);
- mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui.lineEdit_GpgId);
- mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui.lineEdit_Type);
- mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui.lineEdit_GpgName);
- mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui.line_RatingOverall);
- mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui.line_RatingImplicit);
- mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui.line_RatingOwn);
- mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui.line_RatingPeers);
+ mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->lineEdit_Nickname);
+ mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->lineEdit_GpgName);
+ mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->lineEdit_KeyId);
+// mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->lineEdit_GpgHash);
+ mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->lineEdit_GpgId);
+ mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->lineEdit_Type);
+ mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->lineEdit_GpgName);
+ mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->line_RatingOverall);
+ mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->line_RatingImplicit);
+ mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->line_RatingOwn);
+ mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->line_RatingPeers);
- mStateHelper->addClear(IDDIALOG_IDDETAILS, ui.lineEdit_Nickname);
- mStateHelper->addClear(IDDIALOG_IDDETAILS, ui.lineEdit_KeyId);
-// mStateHelper->addClear(IDDIALOG_IDDETAILS, ui.lineEdit_GpgHash);
- mStateHelper->addClear(IDDIALOG_IDDETAILS, ui.lineEdit_GpgId);
- mStateHelper->addClear(IDDIALOG_IDDETAILS, ui.lineEdit_Type);
- mStateHelper->addClear(IDDIALOG_IDDETAILS, ui.lineEdit_GpgName);
- mStateHelper->addClear(IDDIALOG_IDDETAILS, ui.line_RatingOverall);
- mStateHelper->addClear(IDDIALOG_IDDETAILS, ui.line_RatingImplicit);
- mStateHelper->addClear(IDDIALOG_IDDETAILS, ui.line_RatingOwn);
- mStateHelper->addClear(IDDIALOG_IDDETAILS, ui.line_RatingPeers);
+ mStateHelper->addClear(IDDIALOG_IDDETAILS, ui->lineEdit_Nickname);
+ mStateHelper->addClear(IDDIALOG_IDDETAILS, ui->lineEdit_KeyId);
+// mStateHelper->addClear(IDDIALOG_IDDETAILS, ui->lineEdit_GpgHash);
+ mStateHelper->addClear(IDDIALOG_IDDETAILS, ui->lineEdit_GpgId);
+ mStateHelper->addClear(IDDIALOG_IDDETAILS, ui->lineEdit_Type);
+ mStateHelper->addClear(IDDIALOG_IDDETAILS, ui->lineEdit_GpgName);
+ mStateHelper->addClear(IDDIALOG_IDDETAILS, ui->line_RatingOverall);
+ mStateHelper->addClear(IDDIALOG_IDDETAILS, ui->line_RatingImplicit);
+ mStateHelper->addClear(IDDIALOG_IDDETAILS, ui->line_RatingOwn);
+ mStateHelper->addClear(IDDIALOG_IDDETAILS, ui->line_RatingPeers);
- //mStateHelper->addWidget(IDDIALOG_REPLIST, ui.treeWidget_RepList);
- //mStateHelper->addLoadPlaceholder(IDDIALOG_REPLIST, ui.treeWidget_RepList);
- //mStateHelper->addClear(IDDIALOG_REPLIST, ui.treeWidget_RepList);
+ //mStateHelper->addWidget(IDDIALOG_REPLIST, ui->treeWidget_RepList);
+ //mStateHelper->addLoadPlaceholder(IDDIALOG_REPLIST, ui->treeWidget_RepList);
+ //mStateHelper->addClear(IDDIALOG_REPLIST, ui->treeWidget_RepList);
/* Connect signals */
- connect(ui.toolButton_NewId, SIGNAL(clicked()), this, SLOT(addIdentity()));
- connect(ui.todoPushButton, SIGNAL(clicked()), this, SLOT(todo()));
- //connect(ui.toolButton_Delete, SIGNAL(clicked()), this, SLOT(removeIdentity()));
- //connect(ui.toolButton_EditId, SIGNAL(clicked()), this, SLOT(editIdentity()));
- connect(ui.removeIdentity, SIGNAL(triggered()), this, SLOT(removeIdentity()));
- connect(ui.editIdentity, SIGNAL(triggered()), this, SLOT(editIdentity()));
- connect(ui.chatIdentity, SIGNAL(triggered()), this, SLOT(chatIdentity()));
+ connect(ui->toolButton_NewId, SIGNAL(clicked()), this, SLOT(addIdentity()));
+ connect(ui->todoPushButton, SIGNAL(clicked()), this, SLOT(todo()));
+ //connect(ui->toolButton_Delete, SIGNAL(clicked()), this, SLOT(removeIdentity()));
+ //connect(ui->toolButton_EditId, SIGNAL(clicked()), this, SLOT(editIdentity()));
+ connect(ui->removeIdentity, SIGNAL(triggered()), this, SLOT(removeIdentity()));
+ connect(ui->editIdentity, SIGNAL(triggered()), this, SLOT(editIdentity()));
+ connect(ui->chatIdentity, SIGNAL(triggered()), this, SLOT(chatIdentity()));
- 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(itemSelectionChanged()), this, SLOT(updateSelection()));
+ connect(ui->treeWidget_IdList, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(IdListCustomPopupMenu(QPoint)));
- connect(ui.filterComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(filterComboBoxChanged()));
- connect(ui.filterLineEdit, SIGNAL(textChanged(QString)), this, SLOT(filterChanged(QString)));
- connect(ui.repModButton, SIGNAL(clicked()), this, SLOT(modifyReputation()));
+ connect(ui->filterComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(filterComboBoxChanged()));
+ connect(ui->filterLineEdit, SIGNAL(textChanged(QString)), this, SLOT(filterChanged(QString)));
+ connect(ui->repModButton, SIGNAL(clicked()), this, SLOT(modifyReputation()));
- ui.headerFrame->setHeaderImage(QPixmap(":/images/identity/identity_64.png"));
- ui.headerFrame->setHeaderText(tr("Identities"));
+ ui->headerFrame->setHeaderImage(QPixmap(":/images/identity/identity_64.png"));
+ ui->headerFrame->setHeaderText(tr("Identities"));
+
+ /* Initialize splitter */
+ ui->splitter->setStretchFactor(0, 1);
+ ui->splitter->setStretchFactor(1, 0);
/* Add filter types */
- ui.filterComboBox->addItem(tr("All"), RSID_FILTER_ALL);
- 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 distant nodes"), RSID_FILTER_OTHERS);
- ui.filterComboBox->addItem(tr("Anonymous"), RSID_FILTER_PSEUDONYMS);
- ui.filterComboBox->setCurrentIndex(0);
+ ui->filterComboBox->addItem(tr("All"), RSID_FILTER_ALL);
+ 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 distant nodes"), RSID_FILTER_OTHERS);
+ ui->filterComboBox->addItem(tr("Anonymous"), RSID_FILTER_PSEUDONYMS);
+ ui->filterComboBox->setCurrentIndex(0);
/* Add filter actions */
- QTreeWidgetItem *headerItem = ui.treeWidget_IdList->headerItem();
+ QTreeWidgetItem *headerItem = ui->treeWidget_IdList->headerItem();
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);
- 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*/
- QHeaderView * _idheader = ui.treeWidget_IdList->header () ;
- _idheader->resizeSection ( RSID_COL_NICKNAME, 170 );
+ 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*/
+ QHeaderView * _idheader = ui->treeWidget_IdList->header () ;
+ _idheader->resizeSection ( RSID_COL_NICKNAME, 170 );
/* Setup tree */
- ui.treeWidget_IdList->sortByColumn(RSID_COL_NICKNAME, Qt::AscendingOrder);
- ui.treeWidget_IdList->setContextMenuPolicy(Qt::CustomContextMenu) ;
-
+ ui->treeWidget_IdList->sortByColumn(RSID_COL_NICKNAME, Qt::AscendingOrder);
+ ui->treeWidget_IdList->setContextMenuPolicy(Qt::CustomContextMenu) ;
mIdQueue = new TokenQueue(rsIdentity->getTokenService(), this);
@@ -177,10 +183,10 @@ IdDialog::IdDialog(QWidget *parent)
mStateHelper->setActive(IDDIALOG_REPLIST, false);
// Hiding RepList until that part is finished.
- //ui.treeWidget_RepList->setVisible(false);
- ui.toolButton_Reputation->setVisible(false);
+ //ui->treeWidget_RepList->setVisible(false);
+ ui->toolButton_Reputation->setVisible(false);
#ifndef UNFINISHED
- ui.todoPushButton->hide() ;
+ ui->todoPushButton->hide() ;
#endif
QString hlp_str = tr(
@@ -200,22 +206,60 @@ IdDialog::IdDialog(QWidget *parent)
\
") ;
- registerHelpButton(ui.helpButton, hlp_str) ;
+ registerHelpButton(ui->helpButton, hlp_str) ;
+
+ // load settings
+ processSettings(true);
}
IdDialog::~IdDialog()
{
+ // save settings
+ processSettings(false);
+
+ delete(ui);
delete(mIdQueue);
}
void IdDialog::todo()
{
QMessageBox::information(this, "Todo",
- "Open points:"
-// "- Delete ID"
- "
- Reputation"
- "
- Load/save settings"
- "
");
+ "Open points:");
+}
+
+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()
@@ -230,25 +274,30 @@ void IdDialog::filterChanged(const QString& /*text*/)
void IdDialog::updateSelection()
{
- QTreeWidgetItem *item = ui.treeWidget_IdList->currentItem();
- RsGxsGroupId id;
+ QTreeWidgetItem *item = ui->treeWidget_IdList->currentItem();
+ RsGxsGroupId id;
- if (item)
- {
- id = RsGxsGroupId(item->text(RSID_COL_KEYID).toStdString());
+ if (item) {
+ id = RsGxsGroupId(item->text(RSID_COL_KEYID).toStdString());
}
- requestIdDetails(id);
+ if (id != mId) {
+ mId = id;
+ requestIdDetails();
+ requestRepList();
+ }
}
void IdDialog::requestIdList()
{
+ //Disable by default, will be enable by insertIdDetails()
+ ui->removeIdentity->setEnabled(false);
+ ui->editIdentity->setEnabled(false);
+
if (!mIdQueue)
return;
mStateHelper->setLoading(IDDIALOG_IDLIST, true);
- mStateHelper->setLoading(IDDIALOG_IDDETAILS, true);
- mStateHelper->setLoading(IDDIALOG_REPLIST, true);
mIdQueue->cancelActiveRequestTokens(IDDIALOG_IDLIST);
@@ -313,27 +362,20 @@ bool IdDialog::fillIdListItem(const RsGxsIdGroup& data, QTreeWidgetItem *&item,
item = new QTreeWidgetItem();
}
item->setText(RSID_COL_NICKNAME, QString::fromUtf8(data.mMeta.mGroupName.c_str()));
- 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) ;
+ item->setText(RSID_COL_KEYID, QString::fromStdString(data.mMeta.mGroupId.toStdString()));
if(isOwnId)
{
- QFont font = item->font(RSID_COL_NICKNAME) ;
- font.setWeight(QFont::Bold) ;
- item->setFont(RSID_COL_NICKNAME,font) ;
- item->setFont(RSID_COL_IDTYPE,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")) ;
+ QFont font = item->font(RSID_COL_NICKNAME) ;
+ font.setBold(true) ;
+ item->setFont(RSID_COL_NICKNAME,font) ;
+ item->setFont(RSID_COL_IDTYPE,font) ;
+ item->setFont(RSID_COL_KEYID,font) ;
+ 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))) ;
@@ -370,7 +412,7 @@ void IdDialog::insertIdList(uint32_t token)
{
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;
std::vector datavector;
@@ -382,14 +424,8 @@ void IdDialog::insertIdList(uint32_t token)
std::cerr << std::endl;
#endif
- mStateHelper->setLoading(IDDIALOG_IDDETAILS, false);
- mStateHelper->setLoading(IDDIALOG_REPLIST, false);
mStateHelper->setActive(IDDIALOG_IDLIST, false);
- mStateHelper->setActive(IDDIALOG_IDDETAILS, false);
- mStateHelper->setActive(IDDIALOG_REPLIST, false);
mStateHelper->clear(IDDIALOG_IDLIST);
- mStateHelper->clear(IDDIALOG_IDDETAILS);
- mStateHelper->clear(IDDIALOG_REPLIST);
return;
}
@@ -399,14 +435,14 @@ void IdDialog::insertIdList(uint32_t token)
RsPgpId ownPgpId = rsPeers->getGPGOwnId();
/* Update existing and remove not existing items */
- QTreeWidgetItemIterator itemIterator(ui.treeWidget_IdList);
+ QTreeWidgetItemIterator itemIterator(ui->treeWidget_IdList);
QTreeWidgetItem *item = NULL;
while ((item = *itemIterator) != NULL) {
++itemIterator;
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;
}
@@ -431,41 +467,36 @@ void IdDialog::insertIdList(uint32_t token)
item = NULL;
if (fillIdListItem(*vit, item, ownPgpId, accept))
{
- ui.treeWidget_IdList->addTopLevelItem(item);
+ ui->treeWidget_IdList->addTopLevelItem(item);
}
}
filterIds();
- // fix up buttons.
updateSelection();
}
-void IdDialog::requestIdDetails(RsGxsGroupId &id)
+void IdDialog::requestIdDetails()
{
mIdQueue->cancelActiveRequestTokens(IDDIALOG_IDDETAILS);
- if (id.isNull())
+ if (mId.isNull())
{
mStateHelper->setActive(IDDIALOG_IDDETAILS, false);
- mStateHelper->setActive(IDDIALOG_REPLIST, false);
mStateHelper->setLoading(IDDIALOG_IDDETAILS, false);
- mStateHelper->setLoading(IDDIALOG_REPLIST, false);
mStateHelper->clear(IDDIALOG_IDDETAILS);
- mStateHelper->clear(IDDIALOG_REPLIST);
return;
}
mStateHelper->setLoading(IDDIALOG_IDDETAILS, true);
- mStateHelper->setLoading(IDDIALOG_REPLIST, true);
RsTokReqOptions opts;
opts.mReqType = GXS_REQUEST_TYPE_GROUP_DATA;
uint32_t token;
- std::list groupIds;
- groupIds.push_back(id);
+ std::list groupIds;
+ groupIds.push_back(mId);
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))
{
mStateHelper->setActive(IDDIALOG_IDDETAILS, false);
- mStateHelper->setActive(IDDIALOG_REPLIST, false);
- mStateHelper->setLoading(IDDIALOG_REPLIST, false);
- mStateHelper->clear(IDDIALOG_IDDETAILS);
mStateHelper->clear(IDDIALOG_REPLIST);
- ui.lineEdit_KeyId->setText("ERROR GETTING KEY!");
+ ui->lineEdit_KeyId->setText("ERROR GETTING KEY!");
return;
}
@@ -497,12 +525,9 @@ void IdDialog::insertIdDetails(uint32_t token)
#endif
mStateHelper->setActive(IDDIALOG_IDDETAILS, false);
- mStateHelper->setActive(IDDIALOG_REPLIST, false);
- mStateHelper->setLoading(IDDIALOG_REPLIST, false);
mStateHelper->clear(IDDIALOG_IDDETAILS);
- mStateHelper->clear(IDDIALOG_REPLIST);
- ui.lineEdit_KeyId->setText("INVALID DV SIZE");
+ ui->lineEdit_KeyId->setText("INVALID DV SIZE");
return;
}
@@ -514,75 +539,75 @@ void IdDialog::insertIdDetails(uint32_t token)
/* get GPG Details from rsPeers */
RsPgpId ownPgpId = rsPeers->getGPGOwnId();
- ui.lineEdit_Nickname->setText(QString::fromUtf8(data.mMeta.mGroupName.c_str()));
- ui.lineEdit_KeyId->setText(QString::fromStdString(data.mMeta.mGroupId.toStdString()));
- //ui.lineEdit_GpgHash->setText(QString::fromStdString(data.mPgpIdHash.toStdString()));
- ui.lineEdit_GpgId->setText(QString::fromStdString(data.mPgpId.toStdString()));
+ ui->lineEdit_Nickname->setText(QString::fromUtf8(data.mMeta.mGroupName.c_str()));
+ ui->lineEdit_KeyId->setText(QString::fromStdString(data.mMeta.mGroupId.toStdString()));
+ //ui->lineEdit_GpgHash->setText(QString::fromStdString(data.mPgpIdHash.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))) ;
#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
- ui.headerFrame->setHeaderImage(pix);
+ ui->headerFrame->setHeaderImage(pix);
if (data.mPgpKnown)
{
RsPeerDetails 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
{
if (data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID)
{
- ui.lineEdit_GpgName->setText(tr("Unknown real name"));
+ ui->lineEdit_GpgName->setText(tr("Unknown real name"));
}
else
{
- ui.lineEdit_GpgName->setText(tr("Anonymous Id"));
+ ui->lineEdit_GpgName->setText(tr("Anonymous Id"));
}
}
if(data.mPgpId.isNull())
{
- ui.lineEdit_GpgId->hide() ;
- ui.lineEdit_GpgName->hide() ;
- ui.PgpId_LB->hide() ;
- ui.PgpName_LB->hide() ;
+ ui->lineEdit_GpgId->hide() ;
+ ui->lineEdit_GpgName->hide() ;
+ ui->PgpId_LB->hide() ;
+ ui->PgpName_LB->hide() ;
}
else
{
- ui.lineEdit_GpgId->show() ;
- ui.lineEdit_GpgName->show() ;
- ui.PgpId_LB->show() ;
- ui.PgpName_LB->show() ;
+ ui->lineEdit_GpgId->show() ;
+ ui->lineEdit_GpgName->show() ;
+ ui->PgpId_LB->show() ;
+ ui->PgpName_LB->show() ;
}
bool isOwnId = (data.mPgpKnown && (data.mPgpId == ownPgpId)) || (data.mMeta.mSubscribeFlags & GXS_SERV::GROUP_SUBSCRIBE_ADMIN);
if(isOwnId)
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
- 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)
{
if (data.mPgpKnown)
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
- ui.lineEdit_Type->setText(tr("Owned by 2-hops Retroshare node")) ;
+ ui->lineEdit_Type->setText(tr("Owned by 2-hops Retroshare node")) ;
else
- ui.lineEdit_Type->setText(tr("Owned by unknown Retroshare node")) ;
+ ui->lineEdit_Type->setText(tr("Owned by unknown Retroshare node")) ;
}
else
- ui.lineEdit_Type->setText(tr("Anonymous identity")) ;
+ ui->lineEdit_Type->setText(tr("Anonymous identity")) ;
// if (isOwnId)
// {
-// ui.radioButton_IdYourself->setChecked(true);
+// ui->radioButton_IdYourself->setChecked(true);
// }
// else if (data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID)
// {
@@ -590,79 +615,75 @@ void IdDialog::insertIdDetails(uint32_t token)
// {
// if (rsPeers->isGPGAccepted(data.mPgpId))
// {
-// ui.radioButton_IdFriend->setChecked(true);
+// ui->radioButton_IdFriend->setChecked(true);
// }
// else
// {
-// ui.radioButton_IdFOF->setChecked(true);
+// ui->radioButton_IdFOF->setChecked(true);
// }
// }
// else
// {
-// ui.radioButton_IdOther->setChecked(true);
+// ui->radioButton_IdOther->setChecked(true);
// }
// }
// else
// {
-// ui.radioButton_IdPseudo->setChecked(true);
+// ui->radioButton_IdPseudo->setChecked(true);
// }
if (isOwnId)
{
- mStateHelper->setWidgetEnabled(ui.toolButton_Reputation, false);
- ui.editIdentity->setEnabled(true);
- ui.removeIdentity->setEnabled(true);
- ui.chatIdentity->setEnabled(false);
+ mStateHelper->setWidgetEnabled(ui->toolButton_Reputation, false);
+ ui->editIdentity->setEnabled(true);
+ ui->removeIdentity->setEnabled(true);
+ ui->chatIdentity->setEnabled(false);
}
else
{
// No Reputation yet!
- mStateHelper->setWidgetEnabled(ui.toolButton_Reputation, /*true*/ false);
- ui.editIdentity->setEnabled(false);
- ui.removeIdentity->setEnabled(false);
- ui.chatIdentity->setEnabled(true);
+ mStateHelper->setWidgetEnabled(ui->toolButton_Reputation, /*true*/ false);
+ ui->editIdentity->setEnabled(false);
+ ui->removeIdentity->setEnabled(false);
+ ui->chatIdentity->setEnabled(true);
}
/* now fill in the reputation information */
- ui.line_RatingOverall->setText("Overall Rating TODO");
- ui.line_RatingOwn->setText("Own Rating TODO");
+ ui->line_RatingOverall->setText("Overall Rating TODO");
+ ui->line_RatingOwn->setText("Own Rating TODO");
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)
{
- ui.line_RatingImplicit->setText("+10 UnKnown PGP");
+ ui->line_RatingImplicit->setText("+10 UnKnown PGP");
}
else
{
- ui.line_RatingImplicit->setText("+5 Anon Id");
+ ui->line_RatingImplicit->setText("+5 Anon Id");
}
{
QString rating = QString::number(data.mReputation.mOverallScore);
- ui.line_RatingOverall->setText(rating);
+ ui->line_RatingOverall->setText(rating);
}
{
QString rating = QString::number(data.mReputation.mIdScore);
- ui.line_RatingImplicit->setText(rating);
+ ui->line_RatingImplicit->setText(rating);
}
{
QString rating = QString::number(data.mReputation.mOwnOpinion);
- ui.line_RatingOwn->setText(rating);
+ ui->line_RatingOwn->setText(rating);
}
{
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()
@@ -672,28 +693,28 @@ void IdDialog::modifyReputation()
std::cerr << std::endl;
#endif
- RsGxsId id(ui.lineEdit_KeyId->text().toStdString());
+ RsGxsId id(ui->lineEdit_KeyId->text().toStdString());
int mod = 0;
- if (ui.repMod_Accept->isChecked())
+ if (ui->repMod_Accept->isChecked())
{
mod += 100;
}
- else if (ui.repMod_Positive->isChecked())
+ else if (ui->repMod_Positive->isChecked())
{
mod += 10;
}
- else if (ui.repMod_Negative->isChecked())
+ else if (ui->repMod_Negative->isChecked())
{
mod += -10;
}
- else if (ui.repMod_Ban->isChecked())
+ else if (ui->repMod_Ban->isChecked())
{
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
{
@@ -727,10 +748,29 @@ void IdDialog::modifyReputation()
return;
}
-void IdDialog::updateDisplay(bool /*complete*/)
+void IdDialog::updateDisplay(bool complete)
{
/* Update identity list */
- requestIdList();
+
+ if (complete) {
+ /* Fill complete */
+ requestIdList();
+ requestIdDetails();
+ requestRepList();
+
+ return;
+ }
+
+ std::list grpIds;
+ getAllGrpIds(grpIds);
+ if (!getGrpIds().empty()) {
+ requestIdList();
+
+ if (!mId.isNull() && std::find(grpIds.begin(), grpIds.end(), mId) != grpIds.end()) {
+ requestIdDetails();
+ requestRepList();
+ }
+ }
}
void IdDialog::addIdentity()
@@ -742,7 +782,7 @@ void IdDialog::addIdentity()
void IdDialog::removeIdentity()
{
- QTreeWidgetItem *item = ui.treeWidget_IdList->currentItem();
+ QTreeWidgetItem *item = ui->treeWidget_IdList->currentItem();
if (!item)
{
#ifdef ID_DEBUG
@@ -751,30 +791,21 @@ void IdDialog::removeIdentity()
#endif
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()
{
- QTreeWidgetItem *item = ui.treeWidget_IdList->currentItem();
+ QTreeWidgetItem *item = ui->treeWidget_IdList->currentItem();
if (!item)
{
#ifdef ID_DEBUG
@@ -793,20 +824,23 @@ void IdDialog::editIdentity()
void IdDialog::filterIds()
{
- int filterColumn = ui.filterLineEdit->currentFilter();
- QString text = ui.filterLineEdit->text();
+ int filterColumn = ui->filterLineEdit->currentFilter();
+ 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);
mIdQueue->cancelActiveRequestTokens(IDDIALOG_REPLIST);
std::list groupIds;
- groupIds.push_back(aboutId);
+ groupIds.push_back(mId);
RsTokReqOptions opts;
opts.mReqType = GXS_REQUEST_TYPE_MSG_DATA;
@@ -844,7 +878,7 @@ void IdDialog::insertRepList(uint32_t token)
/* insert 4 columns */
/* friend name */
- item->setId(op.mMeta.mAuthorId, RSIDREP_COL_NAME);
+ item->setId(op.mMeta.mAuthorId, RSIDREP_COL_NAME);
/* score */
item->setText(RSIDREP_COL_OPINION, QString::number(op.getOpinion()));
@@ -855,9 +889,10 @@ void IdDialog::insertRepList(uint32_t token)
/* local reputation */
item->setText(RSIDREP_COL_REPUTATION, QString::number(op.getReputation()));
- ui.treeWidget_RepList->addTopLevelItem(item);
+ ui->treeWidget_RepList->addTopLevelItem(item);
}
#endif
+
mStateHelper->setActive(IDDIALOG_REPLIST, true);
}
@@ -876,14 +911,15 @@ void IdDialog::loadRequest(const TokenQueue * /*queue*/, const TokenRequest &req
case IDDIALOG_IDDETAILS:
insertIdDetails(req.mToken);
- break;
+ break;
case IDDIALOG_REPLIST:
insertRepList(req.mToken);
break;
case IDDIALOG_REFRESH:
- updateDisplay(true);
+// replaced by RsGxsUpdateBroadcastPage
+// updateDisplay(true);
break;
default:
std::cerr << "IdDialog::loadRequest() ERROR";
@@ -894,49 +930,45 @@ void IdDialog::loadRequest(const TokenQueue * /*queue*/, const TokenRequest &req
void IdDialog::IdListCustomPopupMenu( QPoint )
{
- //Disable by default, will be enable by insertIdDetails()
- ui.removeIdentity->setEnabled(false);
- ui.editIdentity->setEnabled(false);
+ QMenu contextMnu( this );
- QMenu contextMnu( this );
+ contextMnu.addAction(ui->editIdentity);
+ contextMnu.addAction(ui->removeIdentity);
- contextMnu.addAction(ui.editIdentity);
- contextMnu.addAction(ui.removeIdentity);
+ std::list own_identities ;
+ rsIdentity->getOwnIds(own_identities) ;
- std::list own_identities ;
- rsIdentity->getOwnIds(own_identities) ;
+ if(own_identities.size() <= 1)
+ {
+ QAction *action = contextMnu.addAction(QIcon(), tr("Chat with this peer"), this, SLOT(chatIdentity()));
- if(own_identities.size() <= 1)
- {
- QAction * action = contextMnu.addAction(QIcon(),"Chat with this peer",this,SLOT(chatIdentity()));
+ if(own_identities.empty())
+ action->setEnabled(false) ;
+ else
+ action->setData(QString::fromStdString((own_identities.front()).toStdString())) ;
+ }
+ else
+ {
+ QMenu *mnu = contextMnu.addMenu(tr("Chat with this peer as...")) ;
- if(own_identities.empty())
- action->setEnabled(false) ;
- else
- action->setData(QString::fromStdString((own_identities.front()).toStdString())) ;
- }
- else
- {
- QMenu *mnu = contextMnu.addMenu("Chat with this peer as...") ;
+ for(std::list::const_iterator it=own_identities.begin();it!=own_identities.end();++it)
+ {
+ RsIdentityDetails idd ;
+ rsIdentity->getIdDetails(*it,idd) ;
- for(std::list::const_iterator it=own_identities.begin();it!=own_identities.end();++it)
- {
- RsIdentityDetails idd ;
- rsIdentity->getIdDetails(*it,idd) ;
+ QPixmap pixmap = QPixmap::fromImage(GxsIdDetails::makeDefaultIcon(*it)) ;
- 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()));
- action->setData(QString::fromStdString((*it).toStdString())) ;
- }
- }
-
- contextMnu.exec(QCursor::pos());
+ contextMnu.exec(QCursor::pos());
}
void IdDialog::chatIdentity()
{
- QTreeWidgetItem *item = ui.treeWidget_IdList->currentItem();
+ QTreeWidgetItem *item = ui->treeWidget_IdList->currentItem();
if (!item)
{
std::cerr << "IdDialog::editIdentity() Invalid item";
@@ -944,17 +976,15 @@ void IdDialog::chatIdentity()
return;
}
- std::string keyId = item->text(RSID_COL_KEYID).toStdString();
+ std::string keyId = item->text(RSID_COL_KEYID).toStdString();
- QAction *action = qobject_cast(QObject::sender());
- if (!action)
- return ;
+ QAction *action = qobject_cast(QObject::sender());
+ if (!action)
+ return ;
- RsGxsId from_gxs_id(action->data().toString().toStdString());
- uint32_t error_code ;
+ RsGxsId from_gxs_id(action->data().toString().toStdString());
+ uint32_t 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)) ;
+ if(!rsMsgs->initiateDistantChatConnexion(RsGxsId(keyId), from_gxs_id, 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)) ;
}
-
-
diff --git a/retroshare-gui/src/gui/Identity/IdDialog.h b/retroshare-gui/src/gui/Identity/IdDialog.h
index 4e8c53bc5..d7a244209 100644
--- a/retroshare-gui/src/gui/Identity/IdDialog.h
+++ b/retroshare-gui/src/gui/Identity/IdDialog.h
@@ -25,18 +25,19 @@
#define IDENTITYDIALOG_H
#include "gui/gxs/RsGxsUpdateBroadcastPage.h"
-#include "ui_IdDialog.h"
#include
-#include