diff --git a/src/gui/DatabaseWidget.cpp b/src/gui/DatabaseWidget.cpp index ae1f2f6e..6348b8b0 100644 --- a/src/gui/DatabaseWidget.cpp +++ b/src/gui/DatabaseWidget.cpp @@ -141,8 +141,9 @@ DatabaseWidget::DatabaseWidget(Database* db, QWidget* parent) m_actionGroupDelete = m_menuGroup->addAction(tr("Delete group"), this, SLOT(deleteGroup())); m_actionGroupDelete->setEnabled(false); - connect(m_groupView, SIGNAL(groupChanged(Group*)), m_entryView, SLOT(setGroup(Group*))); connect(m_groupView, SIGNAL(groupChanged(Group*)), this, SLOT(clearLastGroup(Group*))); + connect(m_groupView, SIGNAL(groupChanged(Group*)), SLOT(updateGroupActions(Group*))); + connect(m_groupView, SIGNAL(groupChanged(Group*)), m_entryView, SLOT(setGroup(Group*))); connect(m_entryView, SIGNAL(entryActivated(Entry*)), SLOT(switchToEntryEdit(Entry*))); connect(m_editEntryWidget, SIGNAL(editFinished(bool)), SLOT(switchToView(bool))); connect(m_editEntryWidget, SIGNAL(historyEntryActivated(Entry*)), SLOT(switchToHistoryView(Entry*))); @@ -158,7 +159,6 @@ DatabaseWidget::DatabaseWidget(Database* db, QWidget* parent) connect(m_searchTimer, SIGNAL(timeout()), this, SLOT(search())); connect(closeAction, SIGNAL(triggered()), this, SLOT(closeSearch())); connect(m_entryView, SIGNAL(entrySelectionChanged()), SLOT(updateEntryActions())); - connect(m_groupView, SIGNAL(groupChanged(Group*)), SLOT(updateGroupActions())); setCurrentIndex(0); } @@ -596,9 +596,12 @@ void DatabaseWidget::clearLastGroup(Group* group) } } -void DatabaseWidget::updateGroupActions() +void DatabaseWidget::updateGroupActions(Group* group) { - m_actionGroupDelete->setEnabled(canDeleteCurrentGoup()); + bool inSearch = m_lastGroup; + m_actionGroupNew->setEnabled(group && !inSearch); + m_actionGroupEdit->setEnabled(group && !inSearch); + m_actionGroupDelete->setEnabled(group && !inSearch && canDeleteCurrentGoup()); } void DatabaseWidget::updateEntryActions() diff --git a/src/gui/DatabaseWidget.h b/src/gui/DatabaseWidget.h index 13f26d94..4e86473c 100644 --- a/src/gui/DatabaseWidget.h +++ b/src/gui/DatabaseWidget.h @@ -104,7 +104,7 @@ private Q_SLOTS: void startSearchTimer(); void showSearch(); void closeSearch(); - void updateGroupActions(); + void updateGroupActions(Group* group); void updateEntryActions(); void showGroupContextMenu(const QPoint& pos); void showEntryContextMenu(const QPoint& pos);