summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mainwindow.cpp2
-rw-r--r--usersdialog.cpp34
-rw-r--r--usersdialog.h4
-rw-r--r--usersdialog.ui14
4 files changed, 46 insertions, 8 deletions
diff --git a/mainwindow.cpp b/mainwindow.cpp
index d176fb28..a299a4f2 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -646,8 +646,6 @@ void MainWindow::setPassword(QString file, bool overwrite)
void MainWindow::on_addButton_clicked()
{
-
-
bool ok;
QString file = QInputDialog::getText(this, tr("New file"),
tr("New password file:"), QLineEdit::Normal,
diff --git a/usersdialog.cpp b/usersdialog.cpp
index 767c7486..0048f055 100644
--- a/usersdialog.cpp
+++ b/usersdialog.cpp
@@ -1,5 +1,6 @@
#include "usersdialog.h"
#include "ui_usersdialog.h"
+#include <QRegExp>
UsersDialog::UsersDialog(QWidget *parent) :
QDialog(parent),
@@ -28,14 +29,35 @@ void UsersDialog::itemChange(QListWidgetItem *item)
void UsersDialog::setUsers(QList<UserInfo> *users)
{
+ userList = users;
+ populateList("");
+}
+
+void UsersDialog::populateList(const QString &filter)
+{
+ QRegExp nameFilter("*"+filter+"*");
+ nameFilter.setPatternSyntax(QRegExp::Wildcard);
ui->listWidget->clear();
- if (users) {
- for (QList<UserInfo>::iterator it = users->begin(); it != users->end(); ++it) {
+ if (userList) {
+ for (QList<UserInfo>::iterator it = userList->begin(); it != userList->end(); ++it) {
UserInfo &user(*it);
- QListWidgetItem *item = new QListWidgetItem(user.name + "\n" + user.key_id, ui->listWidget);
- item->setCheckState(user.enabled ? Qt::Checked : Qt::Unchecked);
- item->setData(Qt::UserRole, QVariant::fromValue(&user));
- ui->listWidget->addItem(item);
+ if (filter.isEmpty() || nameFilter.exactMatch(user.name)) {
+ QListWidgetItem *item = new QListWidgetItem(user.name + "\n" + user.key_id, ui->listWidget);
+ item->setCheckState(user.enabled ? Qt::Checked : Qt::Unchecked);
+ item->setData(Qt::UserRole, QVariant::fromValue(&user));
+ ui->listWidget->addItem(item);
+ }
}
}
}
+
+void UsersDialog::on_clearButton_clicked()
+{
+ ui->lineEdit->clear();
+ on_lineEdit_textChanged("");
+}
+
+void UsersDialog::on_lineEdit_textChanged(const QString &filter)
+{
+ populateList(filter);
+}
diff --git a/usersdialog.h b/usersdialog.h
index 54fadfa8..c8a6970b 100644
--- a/usersdialog.h
+++ b/usersdialog.h
@@ -30,9 +30,13 @@ public:
private slots:
void itemChange(QListWidgetItem *);
+ void on_clearButton_clicked();
+ void on_lineEdit_textChanged(const QString &filter);
private:
Ui::UsersDialog *ui;
+ QList<UserInfo> *userList;
+ void populateList(const QString &filter);
};
#endif // USERSDIALOG_H
diff --git a/usersdialog.ui b/usersdialog.ui
index 232b9426..28adab02 100644
--- a/usersdialog.ui
+++ b/usersdialog.ui
@@ -38,6 +38,20 @@ Note: Existing files will not be modified and retain the old permissions until y
</widget>
</item>
<item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QLineEdit" name="lineEdit"/>
+ </item>
+ <item>
+ <widget class="QToolButton" name="clearButton">
+ <property name="text">
+ <string>X</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
<widget class="QListWidget" name="listWidget">
<property name="alternatingRowColors">
<bool>true</bool>