refine FindAndReplace widget activation logics

This commit is contained in:
Le Tan 2021-06-03 20:30:05 +08:00
parent 1f3b00ee44
commit f80fe2629a
5 changed files with 28 additions and 2 deletions

View File

@ -50,6 +50,7 @@ namespace vnotex
AlternateTab, AlternateTab,
ActivateNextTab, ActivateNextTab,
ActivatePreviousTab, ActivatePreviousTab,
FocusContentArea,
MaxShortcut MaxShortcut
}; };
Q_ENUM(Shortcut) Q_ENUM(Shortcut)

View File

@ -43,7 +43,8 @@
"ActivateTab9" : "Ctrl+G, 9", "ActivateTab9" : "Ctrl+G, 9",
"AlternateTab" : "Ctrl+G, 0", "AlternateTab" : "Ctrl+G, 0",
"ActivateNextTab" : "Ctrl+G, N", "ActivateNextTab" : "Ctrl+G, N",
"ActivatePreviousTab" : "Ctrl+G, P" "ActivatePreviousTab" : "Ctrl+G, P",
"FocusContentArea" : "Ctrl+G, Y"
}, },
"toolbar_icon_size" : 16, "toolbar_icon_size" : 16,
"note_management" : { "note_management" : {

View File

@ -59,6 +59,7 @@ void FindAndReplaceWidget::setupUI()
titleLayout->addWidget(closeBtn); titleLayout->addWidget(closeBtn);
auto closeAct = new QAction(IconUtils::fetchIcon(iconFile), QString(), closeBtn); auto closeAct = new QAction(IconUtils::fetchIcon(iconFile), QString(), closeBtn);
closeAct->setToolTip(tr("Close"));
closeBtn->setDefaultAction(closeAct); closeBtn->setDefaultAction(closeAct);
connect(closeAct, &QAction::triggered, connect(closeAct, &QAction::triggered,
this, &FindAndReplaceWidget::close); this, &FindAndReplaceWidget::close);
@ -77,6 +78,8 @@ void FindAndReplaceWidget::setupUI()
connect(m_findLineEdit, &QLineEdit::textChanged, connect(m_findLineEdit, &QLineEdit::textChanged,
m_findTextTimer, QOverload<>::of(&QTimer::start)); m_findTextTimer, QOverload<>::of(&QTimer::start));
setFocusProxy(m_findLineEdit);
auto findNextBtn = new QPushButton(tr("Find &Next"), this); auto findNextBtn = new QPushButton(tr("Find &Next"), this);
findNextBtn->setDefault(true); findNextBtn->setDefault(true);
connect(findNextBtn, &QPushButton::clicked, connect(findNextBtn, &QPushButton::clicked,

View File

@ -813,6 +813,22 @@ void ViewArea::setupShortcuts()
}); });
} }
} }
// FocusContentArea.
{
auto shortcut = WidgetUtils::createShortcut(coreConfig.getShortcut(CoreConfig::FocusContentArea), this);
if (shortcut) {
connect(shortcut, &QShortcut::activated,
this, [this]() {
auto win = getCurrentViewWindow();
if (win) {
win->setFocus();
} else {
setFocus();
}
});
}
}
} }
bool ViewArea::close(Node *p_node, bool p_force) bool ViewArea::close(Node *p_node, bool p_force)

View File

@ -409,7 +409,12 @@ QAction *ViewWindow::addAction(QToolBar *p_toolBar, ViewWindowToolBarHelper::Act
connect(act, &QAction::triggered, connect(act, &QAction::triggered,
this, [this]() { this, [this]() {
if (findAndReplaceWidgetVisible()) { if (findAndReplaceWidgetVisible()) {
hideFindAndReplaceWidget(); const auto focusWidget = QApplication::focusWidget();
if (m_findAndReplace == focusWidget || m_findAndReplace->isAncestorOf(focusWidget)) {
hideFindAndReplaceWidget();
} else {
showFindAndReplaceWidget();
}
} else { } else {
showFindAndReplaceWidget(); showFindAndReplaceWidget();
} }