mirror of
https://gitee.com/vnotex/vnote.git
synced 2025-07-05 05:49:53 +08:00
UnitedEntry: fix key press event
This commit is contained in:
parent
cd53eedc7f
commit
c08296bc3b
@ -181,7 +181,7 @@ void UnitedEntry::deactivateUnitedEntry()
|
||||
hide();
|
||||
}
|
||||
|
||||
void UnitedEntry::keyPressEvent(QKeyEvent *p_event)
|
||||
bool UnitedEntry::handleLineEditKeyPress(QKeyEvent *p_event)
|
||||
{
|
||||
const int key = p_event->key();
|
||||
const int modifiers = p_event->modifiers();
|
||||
@ -194,7 +194,7 @@ void UnitedEntry::keyPressEvent(QKeyEvent *p_event)
|
||||
Q_FALLTHROUGH();
|
||||
case Qt::Key_Escape:
|
||||
exitUnitedEntry();
|
||||
return;
|
||||
return true;
|
||||
|
||||
// Up/Down Ctrl+K/J to navigate to previous/next item.
|
||||
case Qt::Key_Up:
|
||||
@ -206,7 +206,7 @@ void UnitedEntry::keyPressEvent(QKeyEvent *p_event)
|
||||
} else if (m_entryListWidget && m_entryListWidget->isVisible()) {
|
||||
IUnitedEntry::handleActionCommon(act, m_entryListWidget.data());
|
||||
}
|
||||
return;
|
||||
return true;
|
||||
|
||||
case Qt::Key_K:
|
||||
act = IUnitedEntry::Action::PreviousItem;
|
||||
@ -218,8 +218,9 @@ void UnitedEntry::keyPressEvent(QKeyEvent *p_event)
|
||||
} else if (m_entryListWidget && m_entryListWidget->isVisible()) {
|
||||
IUnitedEntry::handleActionCommon(act, m_entryListWidget.data());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return;
|
||||
break;
|
||||
|
||||
case Qt::Key_Enter:
|
||||
Q_FALLTHROUGH();
|
||||
@ -227,7 +228,7 @@ void UnitedEntry::keyPressEvent(QKeyEvent *p_event)
|
||||
if (m_lastEntry) {
|
||||
m_lastEntry->handleAction(IUnitedEntry::Action::Activate);
|
||||
}
|
||||
return;
|
||||
return true;
|
||||
|
||||
case Qt::Key_E:
|
||||
if (WidgetUtils::isViControlModifier(modifiers)) {
|
||||
@ -237,8 +238,9 @@ void UnitedEntry::keyPressEvent(QKeyEvent *p_event)
|
||||
if (!entry.m_name.isEmpty()) {
|
||||
m_lineEdit->setText(entry.m_name + QLatin1Char(' '));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return;
|
||||
break;
|
||||
|
||||
case Qt::Key_F:
|
||||
if (WidgetUtils::isViControlModifier(modifiers)) {
|
||||
@ -248,8 +250,9 @@ void UnitedEntry::keyPressEvent(QKeyEvent *p_event)
|
||||
if (!entry.m_name.isEmpty()) {
|
||||
m_lineEdit->setSelection(0, entry.m_name.size());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return;
|
||||
break;
|
||||
|
||||
case Qt::Key_D:
|
||||
if (WidgetUtils::isViControlModifier(modifiers)) {
|
||||
@ -257,8 +260,9 @@ void UnitedEntry::keyPressEvent(QKeyEvent *p_event)
|
||||
if (m_lastEntry) {
|
||||
m_lastEntry->stop();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return;
|
||||
break;
|
||||
|
||||
case Qt::Key_L:
|
||||
if (WidgetUtils::isViControlModifier(modifiers)) {
|
||||
@ -266,8 +270,9 @@ void UnitedEntry::keyPressEvent(QKeyEvent *p_event)
|
||||
if (m_lastEntry) {
|
||||
m_lastEntry->handleAction(IUnitedEntry::Action::LevelUp);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return;
|
||||
break;
|
||||
|
||||
case Qt::Key_I:
|
||||
if (WidgetUtils::isViControlModifier(modifiers)) {
|
||||
@ -275,8 +280,9 @@ void UnitedEntry::keyPressEvent(QKeyEvent *p_event)
|
||||
if (m_lastEntry) {
|
||||
m_lastEntry->handleAction(IUnitedEntry::Action::ExpandCollapse);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return;
|
||||
break;
|
||||
|
||||
case Qt::Key_B:
|
||||
if (WidgetUtils::isViControlModifier(modifiers)) {
|
||||
@ -284,14 +290,15 @@ void UnitedEntry::keyPressEvent(QKeyEvent *p_event)
|
||||
if (m_lastEntry) {
|
||||
m_lastEntry->handleAction(IUnitedEntry::Action::ExpandCollapseAll);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
QFrame::keyPressEvent(p_event);
|
||||
return false;
|
||||
}
|
||||
|
||||
void UnitedEntry::clear()
|
||||
@ -432,7 +439,7 @@ void UnitedEntry::setBusy(bool p_busy)
|
||||
|
||||
bool UnitedEntry::eventFilter(QObject *p_watched, QEvent *p_event)
|
||||
{
|
||||
if (p_watched == m_popup || p_watched == m_lineEdit) {
|
||||
if (p_watched == m_popup) {
|
||||
if (p_event->type() == QEvent::KeyPress) {
|
||||
auto eve = static_cast<QKeyEvent *>(p_event);
|
||||
switch (eve->key()) {
|
||||
@ -449,6 +456,13 @@ bool UnitedEntry::eventFilter(QObject *p_watched, QEvent *p_event)
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (p_watched == m_lineEdit) {
|
||||
if (p_event->type() == QEvent::KeyPress) {
|
||||
auto eve = static_cast<QKeyEvent *>(p_event);
|
||||
if (handleLineEditKeyPress(eve)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return QFrame::eventFilter(p_watched, p_event);
|
||||
|
@ -29,8 +29,6 @@ namespace vnotex
|
||||
QAction *getTriggerAction();
|
||||
|
||||
protected:
|
||||
void keyPressEvent(QKeyEvent *p_event) Q_DECL_OVERRIDE;
|
||||
|
||||
void showEvent(QShowEvent *p_event) Q_DECL_OVERRIDE;
|
||||
|
||||
private:
|
||||
@ -69,6 +67,9 @@ namespace vnotex
|
||||
|
||||
QSize preferredSize() const;
|
||||
|
||||
// Return true if want to stop the propogation.
|
||||
bool handleLineEditKeyPress(QKeyEvent *p_event);
|
||||
|
||||
QMainWindow *m_mainWindow = nullptr;
|
||||
|
||||
LineEditWithSnippet *m_lineEdit = nullptr;
|
||||
|
Loading…
x
Reference in New Issue
Block a user