mirror of
https://github.com/chris2511/xca.git
synced 2026-09-14 11:06:19 +05:00
Close #23: Improve limiting to pattern in certificate tree view
CA certificates that don't match the search pattern, but have matching childs are shown disabled with internal name.
This commit is contained in:
parent
4821a181e9
commit
331b79bd9d
@ -282,13 +282,15 @@ void db_base::deletePKI(QModelIndex idx)
|
||||
|
||||
void db_base::showItem(const QModelIndex &index)
|
||||
{
|
||||
showPki(static_cast<pki_base*>(index.internalPointer()));
|
||||
pki_base *pki = static_cast<pki_base*>(index.internalPointer());
|
||||
if (pki->isVisible() == 1)
|
||||
showPki(pki);
|
||||
}
|
||||
|
||||
void db_base::showItem(const QString name)
|
||||
{
|
||||
pki_base *pki = lookupPki<pki_base>(name.toULongLong());
|
||||
if (pki)
|
||||
if (pki && pki->isVisible() == 1)
|
||||
showPki(pki);
|
||||
}
|
||||
|
||||
@ -433,7 +435,8 @@ QVariant db_base::data(const QModelIndex &index, int role) const
|
||||
switch (role) {
|
||||
case Qt::EditRole:
|
||||
case Qt::DisplayRole:
|
||||
return item->column_data(hd);
|
||||
if (hd->id == HD_internal_name || item->isVisible() == 1)
|
||||
return item->column_data(hd);
|
||||
case Qt::DecorationRole:
|
||||
return item->getIcon(hd);
|
||||
case Qt::TextAlignmentRole:
|
||||
@ -443,7 +446,7 @@ QVariant db_base::data(const QModelIndex &index, int role) const
|
||||
case Qt::BackgroundRole:
|
||||
return item->bg_color(hd);
|
||||
case Qt::UserRole:
|
||||
return item->visible();
|
||||
return item->isVisible();
|
||||
}
|
||||
return QVariant();
|
||||
}
|
||||
@ -479,14 +482,16 @@ QVariant db_base::headerData(int section, Qt::Orientation orientation,
|
||||
Qt::ItemFlags db_base::flags(const QModelIndex &index) const
|
||||
{
|
||||
if (!index.isValid())
|
||||
return Qt::ItemIsEnabled;
|
||||
return Qt::NoItemFlags;
|
||||
|
||||
Qt::ItemFlags defaultFlags = QAbstractItemModel::flags(index);
|
||||
defaultFlags |= Qt::ItemIsDragEnabled;
|
||||
|
||||
if (index.column() == 0)
|
||||
return defaultFlags |= Qt::ItemIsEditable;
|
||||
return defaultFlags;
|
||||
Qt::ItemFlags flags = QAbstractItemModel::flags(index) |
|
||||
Qt::ItemIsDragEnabled;
|
||||
pki_base *item = static_cast<pki_base*>(index.internalPointer());
|
||||
if (item->isVisible() == 2)
|
||||
flags &= ~Qt::ItemIsEnabled;
|
||||
else if (index.column() == 0)
|
||||
flags |= Qt::ItemIsEditable;
|
||||
return flags;
|
||||
}
|
||||
|
||||
bool db_base::setData(const QModelIndex &index, const QVariant &value, int role)
|
||||
|
||||
@ -53,6 +53,21 @@ bool pki_base::visible() const
|
||||
comment.contains(limitPattern);
|
||||
}
|
||||
|
||||
bool pki_base::childVisible() const
|
||||
{
|
||||
foreach(pki_base *child, childItems)
|
||||
if (child->isVisible())
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
int pki_base::isVisible()
|
||||
{
|
||||
if (limitPattern.isEmpty())
|
||||
return 1;
|
||||
return visible() ? 1 : childVisible() ? 2 : 0;
|
||||
}
|
||||
|
||||
QString pki_base::getMsg(msg_type msg) const
|
||||
{
|
||||
return tr("Internal error: Unexpected message: %1 %2")
|
||||
|
||||
@ -153,6 +153,8 @@ class pki_base : public QObject
|
||||
virtual QVariant column_data(dbheader *hd) const;
|
||||
virtual QVariant getIcon(dbheader *hd) const;
|
||||
virtual bool visible() const;
|
||||
int isVisible();
|
||||
bool childVisible() const;
|
||||
|
||||
/* SQL management methods */
|
||||
QSqlError insertSql();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user