mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-01-15 09:17:28 -05:00
Allow selecting multiple rows in entry view.
This commit is contained in:
parent
5c0a83eae5
commit
28bfd39bca
@ -121,14 +121,14 @@ void MainWindow::setMenuActionState(DatabaseWidget::Mode mode)
|
||||
m_ui->actionEntryNew->setEnabled(true);
|
||||
}
|
||||
if (dbWidget->entryView()->inSearch() ||
|
||||
!dbWidget->entryView()->currentIndex().isValid()) {
|
||||
!dbWidget->entryView()->isSingleEntrySelected()) {
|
||||
m_ui->actionEntryClone->setEnabled(false);
|
||||
}
|
||||
else {
|
||||
m_ui->actionEntryClone->setEnabled(true);
|
||||
}
|
||||
|
||||
if (dbWidget->entryView()->currentIndex().isValid()) {
|
||||
if (dbWidget->entryView()->isSingleEntrySelected()) {
|
||||
m_ui->actionEntryEdit->setEnabled(true);
|
||||
m_ui->actionEntryDelete->setEnabled(true);
|
||||
}
|
||||
|
@ -39,6 +39,7 @@ EntryView::EntryView(QWidget* parent)
|
||||
setAlternatingRowColors(true);
|
||||
setDragEnabled(true);
|
||||
setSortingEnabled(true);
|
||||
setSelectionMode(QAbstractItemView::ExtendedSelection);
|
||||
|
||||
connect(this, SIGNAL(activated(QModelIndex)), SLOT(emitEntryActivated(QModelIndex)));
|
||||
connect(selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), SIGNAL(entrySelectionChanged()));
|
||||
@ -78,8 +79,13 @@ void EntryView::setModel(QAbstractItemModel* model)
|
||||
|
||||
Entry* EntryView::currentEntry()
|
||||
{
|
||||
// TODO: use selection instead of current?
|
||||
return m_model->entryFromIndex(m_sortModel->mapToSource(currentIndex()));
|
||||
QModelIndexList list = selectionModel()->selectedRows();
|
||||
if (list.size() == 1) {
|
||||
return m_model->entryFromIndex(m_sortModel->mapToSource(list.first()));
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
bool EntryView::isSingleEntrySelected()
|
||||
|
@ -42,15 +42,15 @@ public:
|
||||
public Q_SLOTS:
|
||||
void setGroup(Group* group);
|
||||
|
||||
Q_SIGNALS:
|
||||
void entryActivated(Entry* entry);
|
||||
void entrySelectionChanged();
|
||||
|
||||
private Q_SLOTS:
|
||||
void emitEntryActivated(const QModelIndex& index);
|
||||
void switchToSearch();
|
||||
void switchToView();
|
||||
|
||||
Q_SIGNALS:
|
||||
void entryActivated(Entry* entry);
|
||||
void entrySelectionChanged();
|
||||
|
||||
private:
|
||||
EntryModel* const m_model;
|
||||
QSortFilterProxyModel* const m_sortModel;
|
||||
|
Loading…
Reference in New Issue
Block a user