diff --git a/retroshare-gui/src/gui/Identity/IdDialog.cpp b/retroshare-gui/src/gui/Identity/IdDialog.cpp
index eccfd7f9a..fbe83212d 100644
--- a/retroshare-gui/src/gui/Identity/IdDialog.cpp
+++ b/retroshare-gui/src/gui/Identity/IdDialog.cpp
@@ -298,7 +298,7 @@ IdDialog::IdDialog(QWidget *parent)
connect(ui->idTreeWidget->header(), SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(headerContextMenuRequested(QPoint)));
connect(ui->filterLineEdit, SIGNAL(textChanged(QString)), this, SLOT(filterChanged(QString)));
- connect(ui->ownOpinion_CB, SIGNAL(currentIndexChanged(int)), this, SLOT(modifyReputation()));
+ //connect(ui->ownOpinion_CB, SIGNAL(currentIndexChanged(int)), this, SLOT(modifyReputation()));
connect(ui->inviteButton, SIGNAL(clicked()), this, SLOT(sendInvite()));
connect(ui->editButton, SIGNAL(clicked()), this, SLOT(editIdentity()));
@@ -388,8 +388,8 @@ IdDialog::IdDialog(QWidget *parent)
ui->toolButton_New->setMenu(menu);
/* Add filter actions */
- ui->filterLineEdit->addFilter(QIcon(), tr("Name"), RsIdentityListModel::COLUMN_THREAD_NAME, QString("%1 %2").arg(tr("Search"), tr("Search name")));
- ui->filterLineEdit->addFilter(QIcon(), tr("ID"), RsIdentityListModel::COLUMN_THREAD_ID, tr("Search ID"));
+ //ui->filterLineEdit->addFilter(QIcon(), tr("Name"), RsIdentityListModel::COLUMN_THREAD_NAME, QString("%1 %2").arg(tr("Search"), tr("Search name")));
+ //ui->filterLineEdit->addFilter(QIcon(), tr("ID"), RsIdentityListModel::COLUMN_THREAD_ID, tr("Search ID"));
/* Set initial section sizes */
QHeaderView * circlesheader = ui->treeWidget_membership->header () ;
@@ -1300,7 +1300,7 @@ void IdDialog::processSettings(bool load)
// load settings
// filterColumn
- ui->filterLineEdit->setCurrentFilter(Settings->value("filterColumn", RsIdentityListModel::COLUMN_THREAD_NAME).toInt());
+ //ui->filterLineEdit->setCurrentFilter(Settings->value("filterColumn", RsIdentityListModel::COLUMN_THREAD_NAME).toInt());
// state of splitter
ui->mainSplitter->restoreState(Settings->value("splitter").toByteArray());
@@ -1322,7 +1322,7 @@ void IdDialog::processSettings(bool load)
// save settings
// filterColumn
- Settings->setValue("filterColumn", ui->filterLineEdit->currentFilter());
+ //Settings->setValue("filterColumn", ui->filterLineEdit->currentFilter());
// state of splitter
Settings->setValue("splitter", ui->mainSplitter->saveState());
@@ -2112,20 +2112,15 @@ void IdDialog::editIdentity()
void IdDialog::filterIds()
{
- int filterColumn = ui->filterLineEdit->currentFilter();
QString text = ui->filterLineEdit->text();
- RsIdentityListModel::FilterType ft;
+ int8_t ft=0;
- switch(filterColumn)
- {
- case RsIdentityListModel::COLUMN_THREAD_ID: ft = RsIdentityListModel::FILTER_TYPE_ID;
- break;
- default:
- case RsIdentityListModel::COLUMN_THREAD_NAME: ft = RsIdentityListModel::FILTER_TYPE_NAME;
- break;
+ if(!ui->idTreeWidget->isColumnHidden(RsIdentityListModel::COLUMN_THREAD_ID)) ft |= RsIdentityListModel::FILTER_TYPE_ID;
+ if(!ui->idTreeWidget->isColumnHidden(RsIdentityListModel::COLUMN_THREAD_NAME)) ft |= RsIdentityListModel::FILTER_TYPE_NAME;
+ if(!ui->idTreeWidget->isColumnHidden(RsIdentityListModel::COLUMN_THREAD_OWNER_NAME)) ft |= RsIdentityListModel::FILTER_TYPE_OWNER_NAME;
+ if(!ui->idTreeWidget->isColumnHidden(RsIdentityListModel::COLUMN_THREAD_OWNER_ID)) ft |= RsIdentityListModel::FILTER_TYPE_OWNER_ID;
- }
mIdListModel->setFilter(ft,{ text });
}
diff --git a/retroshare-gui/src/gui/Identity/IdDialog.ui b/retroshare-gui/src/gui/Identity/IdDialog.ui
index faab8a48b..b60f24854 100644
--- a/retroshare-gui/src/gui/Identity/IdDialog.ui
+++ b/retroshare-gui/src/gui/Identity/IdDialog.ui
@@ -127,7 +127,7 @@
Qt::NoFocus
-
+
:/icons/help_64.png:/icons/help_64.png
@@ -173,7 +173,11 @@
1
-
-
+
+
+ Search...
+
+
-
@@ -1037,11 +1041,6 @@ border-image: url(:/images/closepressed.png)
-
- LineEditClear
- QLineEdit
- gui/common/LineEditClear.h
-
RSComboBox
QComboBox
@@ -1063,8 +1062,8 @@ border-image: url(:/images/closepressed.png)
idTreeWidget
-
+
diff --git a/retroshare-gui/src/gui/Identity/IdentityListModel.cpp b/retroshare-gui/src/gui/Identity/IdentityListModel.cpp
index 945b7359d..3cea16668 100644
--- a/retroshare-gui/src/gui/Identity/IdentityListModel.cpp
+++ b/retroshare-gui/src/gui/Identity/IdentityListModel.cpp
@@ -367,29 +367,25 @@ QVariant RsIdentityListModel::data(const QModelIndex &index, int role) const
bool RsIdentityListModel::passesFilter(const EntryIndex& e,int /*column*/) const
{
QString s ;
- bool passes_strings = true ;
- if(e.type == ENTRY_TYPE_IDENTITY && !mFilterStrings.empty())
- {
- switch(mFilterType)
- {
- case FILTER_TYPE_ID: s = displayRole(e,COLUMN_THREAD_ID).toString();
- break;
+ if(mFilterStrings.empty() || e.type != ENTRY_TYPE_IDENTITY)
+ return true;
- case FILTER_TYPE_NAME: s = displayRole(e,COLUMN_THREAD_NAME).toString();
- if(s.isNull())
- passes_strings = false;
- break;
- case FILTER_TYPE_NONE:
- RS_ERR("None Type for Filter.");
- };
- }
+ auto passes_strings = [&](const QString& s) -> bool {
+ bool res = true;
- if(!s.isNull())
- for(auto iter(mFilterStrings.begin()); iter != mFilterStrings.end(); ++iter)
- passes_strings = passes_strings && s.contains(*iter,Qt::CaseInsensitive);
+ for(auto iter(mFilterStrings.begin()); iter != mFilterStrings.end(); ++iter)
+ res = res && s.contains(*iter,Qt::CaseInsensitive);
- return passes_strings;
+ return res;
+ };
+
+ if((mFilterType & FilterType::FILTER_TYPE_ID) && passes_strings(displayRole(e,COLUMN_THREAD_ID ).toString())) return true;
+ if((mFilterType & FilterType::FILTER_TYPE_NAME) && passes_strings(displayRole(e,COLUMN_THREAD_NAME ).toString())) return true;
+ if((mFilterType & FilterType::FILTER_TYPE_OWNER_ID) && passes_strings(displayRole(e,COLUMN_THREAD_OWNER_ID ).toString())) return true;
+ if((mFilterType & FilterType::FILTER_TYPE_OWNER_NAME) && passes_strings(displayRole(e,COLUMN_THREAD_OWNER_NAME).toString())) return true;
+
+ return false;
}
QVariant RsIdentityListModel::filterRole(const EntryIndex& e,int column) const
@@ -406,7 +402,7 @@ uint32_t RsIdentityListModel::updateFilterStatus(ForumModelIndex /*i*/,int /*col
}
-void RsIdentityListModel::setFilter(FilterType filter_type, const QStringList& strings)
+void RsIdentityListModel::setFilter(uint8_t filter_type, const QStringList& strings)
{
#ifdef DEBUG_MODEL
std::cerr << "Setting filter to filter_type=" << int(filter_type) << " and strings to " ;
diff --git a/retroshare-gui/src/gui/Identity/IdentityListModel.h b/retroshare-gui/src/gui/Identity/IdentityListModel.h
index 518c503ab..f92949f2c 100644
--- a/retroshare-gui/src/gui/Identity/IdentityListModel.h
+++ b/retroshare-gui/src/gui/Identity/IdentityListModel.h
@@ -58,9 +58,11 @@ public:
TreePathRole = Qt::UserRole+5,
};
- enum FilterType{ FILTER_TYPE_NONE = 0x00,
- FILTER_TYPE_ID = 0x01,
- FILTER_TYPE_NAME = 0x02
+ enum FilterType{ FILTER_TYPE_NONE = 0x00,
+ FILTER_TYPE_ID = 0x01,
+ FILTER_TYPE_NAME = 0x02,
+ FILTER_TYPE_OWNER_NAME = 0x04,
+ FILTER_TYPE_OWNER_ID = 0x08
};
enum EntryType{ ENTRY_TYPE_TOP_LEVEL = 0x00,
@@ -142,7 +144,7 @@ public:
RsGxsId getIdentity(const QModelIndex&) const;
int getCategory(const QModelIndex&) const;
- void setFilter(FilterType filter_type, const QStringList& strings) ;
+ void setFilter(uint8_t filter_type, const QStringList& strings) ;
void expandItem(const QModelIndex&) ;
void collapseItem(const QModelIndex&) ;
@@ -218,7 +220,7 @@ private:
uint32_t updateFilterStatus(ForumModelIndex i,int column,const QStringList& strings);
QStringList mFilterStrings;
- FilterType mFilterType;
+ uint8_t mFilterType;
rstime_t mLastInternalDataUpdate;
rstime_t mLastNodeUpdate;;
@@ -245,3 +247,4 @@ private:
mutable QTimer *mIdentityUpdateTimer;
};
+