diff --git a/YACReaderLibrary/library_window.cpp b/YACReaderLibrary/library_window.cpp index 65f5a76b..3a5b67f4 100644 --- a/YACReaderLibrary/library_window.cpp +++ b/YACReaderLibrary/library_window.cpp @@ -377,6 +377,7 @@ void LibraryWindow::setUpShortcutsManagement() tmpList = QList() << backAction << forwardAction + << focusSearchLineAction << helpAboutAction << optionsAction << serverConfigAction @@ -719,6 +720,12 @@ void LibraryWindow::createActions() getInfoAction->setIcon(QIcon(":/images/comics_view_toolbar/getInfo.png")); //------------------------------------------------------------------------- + focusSearchLineAction = new QAction(tr("Focus search line"), this); + focusSearchLineAction->setData(FOCUS_SEARCH_LINE_ACTION_YL); + focusSearchLineAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(FOCUS_SEARCH_LINE_ACTION_YL)); + focusSearchLineAction->setIcon(QIcon(":/images/iconSearch.png")); + addAction(focusSearchLineAction); + showEditShortcutsAction = new QAction(tr("Edit shortcuts"), this); showEditShortcutsAction->setData(SHOW_EDIT_SHORTCUTS_ACTION_YL); showEditShortcutsAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SHOW_EDIT_SHORTCUTS_ACTION_YL)); @@ -1147,6 +1154,7 @@ void LibraryWindow::createConnections() //connect(comicsModel,SIGNAL(searchNumResults(int)),this,SLOT(checkSearchNumResults(int))); //connect(emptyFolderWidget,SIGNAL(subfolderSelected(QModelIndex,int)),this,SLOT(selectSubfolder(QModelIndex,int))); + connect(focusSearchLineAction, &QAction::triggered, searchEdit, [this] { searchEdit->setFocus(Qt::ShortcutFocusReason); }); connect(showEditShortcutsAction, SIGNAL(triggered()), editShortcutsDialog, SLOT(show())); //update folders (partial updates) diff --git a/YACReaderLibrary/library_window.h b/YACReaderLibrary/library_window.h index af9664e2..8a88f1f0 100644 --- a/YACReaderLibrary/library_window.h +++ b/YACReaderLibrary/library_window.h @@ -213,6 +213,7 @@ public: QAction *forceCoverExtractedAction; QAction *deleteComicsAction; + QAction *focusSearchLineAction; QAction *showEditShortcutsAction; QAction *updateFolderAction; diff --git a/custom_widgets/yacreader_macosx_toolbar.h b/custom_widgets/yacreader_macosx_toolbar.h index c6fe9000..b49e6e8b 100644 --- a/custom_widgets/yacreader_macosx_toolbar.h +++ b/custom_widgets/yacreader_macosx_toolbar.h @@ -12,6 +12,7 @@ class YACReaderMacOSXSearchLineEdit : public QObject Q_OBJECT public: YACReaderMacOSXSearchLineEdit(); + void setFocus(Qt::FocusReason reason); void *getNSTextField(); public slots: diff --git a/custom_widgets/yacreader_macosx_toolbar.mm b/custom_widgets/yacreader_macosx_toolbar.mm index 229e825a..3e9d786a 100644 --- a/custom_widgets/yacreader_macosx_toolbar.mm +++ b/custom_widgets/yacreader_macosx_toolbar.mm @@ -316,6 +316,12 @@ YACReaderMacOSXSearchLineEdit::YACReaderMacOSXSearchLineEdit() nstextfield = searchEdit; } +void YACReaderMacOSXSearchLineEdit::setFocus(Qt::FocusReason reason) +{ + Q_UNUSED(reason) + // TODO: implement +} + void *YACReaderMacOSXSearchLineEdit::getNSTextField() { return nstextfield; diff --git a/shortcuts_management/shortcuts_manager.cpp b/shortcuts_management/shortcuts_manager.cpp index 541e4efd..67e645e4 100644 --- a/shortcuts_management/shortcuts_manager.cpp +++ b/shortcuts_management/shortcuts_manager.cpp @@ -13,6 +13,7 @@ void ShortcutsManager::initDefaultShorcuts() { #ifdef YACREADER_LIBRARY //ACTIONS + defaultShorcuts.insert(FOCUS_SEARCH_LINE_ACTION_YL, Qt::CTRL | Qt::Key_F); defaultShorcuts.insert(CREATE_LIBRARY_ACTION_YL, Qt::Key_A); defaultShorcuts.insert(OPEN_LIBRARY_ACTION_YL, Qt::Key_O); defaultShorcuts.insert(UPDATE_LIBRARY_ACTION_YL, Qt::Key_U); diff --git a/shortcuts_management/shortcuts_manager.h b/shortcuts_management/shortcuts_manager.h index d07a926c..dbcd8eb0 100644 --- a/shortcuts_management/shortcuts_manager.h +++ b/shortcuts_management/shortcuts_manager.h @@ -75,6 +75,7 @@ public: #define DELETE_COMICS_ACTION_YL "DELETE_COMICS_ACTION_YL" #define HIDE_COMIC_VIEW_ACTION_YL "HIDE_COMIC_VIEW_ACTION_YL" #define GET_INFO_ACTION_YL "GET_INFO_ACTION_YL" +#define FOCUS_SEARCH_LINE_ACTION_YL "FOCUS_SEARCH_LINE_ACTION_YL" #define SHOW_EDIT_SHORTCUTS_ACTION_YL "SHOW_EDIT_SHORTCUTS_ACTION_YL" #define UPDATE_CURRENT_FOLDER_ACTION_YL "UPDATE_CURRENT_FOLDER_ACTION_YL" #define ADD_FOLDER_ACTION_YL "ADD_FOLDER_ACTION_YL"