mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2024-12-27 08:19:47 -05:00
Disable some menu actions while searching.
This commit is contained in:
parent
6b6c109903
commit
0e19b47755
@ -25,6 +25,7 @@ EntryView::EntryView(QWidget* parent)
|
||||
: QTreeView(parent)
|
||||
, m_model(new EntryModel(this))
|
||||
, m_sortModel(new QSortFilterProxyModel(this))
|
||||
, m_inSearch(false)
|
||||
{
|
||||
m_sortModel->setSourceModel(m_model);
|
||||
m_sortModel->setDynamicSortFilter(true);
|
||||
@ -58,6 +59,11 @@ void EntryView::search(QList<Entry*> entries)
|
||||
Q_EMIT entrySelectionChanged();
|
||||
}
|
||||
|
||||
bool EntryView::inSearch()
|
||||
{
|
||||
return m_inSearch;
|
||||
}
|
||||
|
||||
void EntryView::emitEntryActivated(const QModelIndex& index)
|
||||
{
|
||||
Q_EMIT entryActivated(entryFromIndex(index));
|
||||
@ -98,9 +104,11 @@ Entry* EntryView::entryFromIndex(const QModelIndex& index)
|
||||
void EntryView::switchToSearch()
|
||||
{
|
||||
showColumn(0);
|
||||
m_inSearch = true;
|
||||
}
|
||||
|
||||
void EntryView::switchToView()
|
||||
{
|
||||
hideColumn(0);
|
||||
m_inSearch = false;
|
||||
}
|
||||
|
@ -37,6 +37,7 @@ public:
|
||||
void setCurrentEntry(Entry* entry);
|
||||
Entry* entryFromIndex(const QModelIndex& index);
|
||||
void search(QList<Entry *> entries);
|
||||
bool inSearch();
|
||||
|
||||
public Q_SLOTS:
|
||||
void setGroup(Group* group);
|
||||
@ -53,6 +54,7 @@ Q_SIGNALS:
|
||||
private:
|
||||
EntryModel* const m_model;
|
||||
QSortFilterProxyModel* const m_sortModel;
|
||||
bool m_inSearch;
|
||||
};
|
||||
|
||||
#endif // KEEPASSX_ENTRYVIEW_H
|
||||
|
@ -102,8 +102,13 @@ void MainWindow::setMenuActionState(DatabaseWidget::Mode mode)
|
||||
|
||||
switch (mode) {
|
||||
case DatabaseWidget::ViewMode:
|
||||
if (dbWidget->entryView()->inSearch()) {
|
||||
m_ui->actionEntryNew->setEnabled(false);
|
||||
}
|
||||
else {
|
||||
m_ui->actionEntryNew->setEnabled(true);
|
||||
m_ui->actionGroupNew->setEnabled(true);
|
||||
}
|
||||
|
||||
if (dbWidget->entryView()->currentIndex().isValid()) {
|
||||
m_ui->actionEntryEdit->setEnabled(true);
|
||||
m_ui->actionEntryDelete->setEnabled(true);
|
||||
@ -112,14 +117,22 @@ void MainWindow::setMenuActionState(DatabaseWidget::Mode mode)
|
||||
m_ui->actionEntryEdit->setEnabled(false);
|
||||
m_ui->actionEntryDelete->setEnabled(false);
|
||||
}
|
||||
m_ui->actionGroupEdit->setEnabled(true);
|
||||
|
||||
if (dbWidget->entryView()->inSearch()) {
|
||||
m_ui->actionGroupNew->setEnabled(false);
|
||||
m_ui->actionGroupEdit->setEnabled(false);
|
||||
m_ui->actionGroupDelete->setEnabled(false);
|
||||
}
|
||||
else {
|
||||
m_ui->actionGroupNew->setEnabled(true);
|
||||
m_ui->actionGroupEdit->setEnabled(true);
|
||||
if (dbWidget->canDeleteCurrentGoup()) {
|
||||
m_ui->actionGroupDelete->setEnabled(true);
|
||||
}
|
||||
else {
|
||||
m_ui->actionGroupDelete->setEnabled(false);
|
||||
}
|
||||
}
|
||||
m_ui->actionChangeMasterKey->setEnabled(true);
|
||||
m_ui->actionChangeDatabaseSettings->setEnabled(true);
|
||||
m_ui->actionDatabaseSave->setEnabled(true);
|
||||
|
Loading…
Reference in New Issue
Block a user