Skip to content

Commit 84c43e4

Browse files
authored
Merge pull request #209 from vedgy/add-focus-shortcuts
Add focus shortcuts
2 parents 06814d0 + efd9f47 commit 84c43e4

18 files changed

Lines changed: 66 additions & 16 deletions

YACReaderLibrary/classic_comics_view.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,15 @@ void ClassicComicsView::updateCurrentComicView()
258258
{
259259
}
260260

261+
void ClassicComicsView::focusComicsNavigation(Qt::FocusReason reason)
262+
{
263+
const bool comicFlowVisible = stack->currentWidget() == comicFlow && sVertical->sizes().constFirst() != 0;
264+
if (comicFlowVisible)
265+
comicFlow->setFocus(reason);
266+
else // Let the user navigate the table.
267+
tableView->setFocus(reason);
268+
}
269+
261270
void ClassicComicsView::selectAll()
262271
{
263272
tableView->selectAll();

YACReaderLibrary/classic_comics_view.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class ClassicComicsView : public ComicsView
1919
{
2020
Q_OBJECT
2121
public:
22-
ClassicComicsView(QWidget *parent = 0);
22+
explicit ClassicComicsView(QWidget *parent = nullptr);
2323
void setToolBar(QToolBar *toolBar) override;
2424
void setModel(ComicModel *model) override;
2525

@@ -32,6 +32,7 @@ class ClassicComicsView : public ComicsView
3232
void enableFilterMode(bool enabled) override;
3333
void selectIndex(int index) override;
3434
void updateCurrentComicView() override;
35+
void focusComicsNavigation(Qt::FocusReason reason) override;
3536

3637
public slots:
3738
void setCurrentIndex(const QModelIndex &index) override;

YACReaderLibrary/comics_view.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ class ComicsView : public QWidget
2929
virtual void enableFilterMode(bool enabled) = 0;
3030
virtual void selectIndex(int index) = 0;
3131
virtual void updateCurrentComicView() = 0;
32+
virtual void focusComicsNavigation(Qt::FocusReason reason) = 0;
3233

3334
public slots:
3435
virtual void updateInfoForIndex(int index);

YACReaderLibrary/comics_view_transition.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,6 @@ ComicsViewTransition::ComicsViewTransition(QWidget *parent)
2020
#endif
2121
}
2222

23-
QSize ComicsViewTransition::sizeHint()
24-
{
25-
return QSize(450, 350);
26-
}
27-
2823
void ComicsViewTransition::paintEvent(QPaintEvent *)
2924
{
3025
QPainter painter(this);

YACReaderLibrary/comics_view_transition.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ class ComicsViewTransition : public QWidget
88
Q_OBJECT
99
public:
1010
explicit ComicsViewTransition(QWidget *parent = nullptr);
11-
QSize sizeHint();
1211

1312
protected:
1413
void paintEvent(QPaintEvent *) override;

YACReaderLibrary/grid_comics_view.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -469,11 +469,6 @@ void GridComicsView::resetScroll()
469469
QMetaObject::invokeMethod(scrollView, "scrollToOrigin");
470470
}
471471

472-
QSize GridComicsView::sizeHint()
473-
{
474-
return QSize(1280, 768);
475-
}
476-
477472
QByteArray GridComicsView::getMimeDataFromSelection()
478473
{
479474
QByteArray data;
@@ -491,6 +486,11 @@ void GridComicsView::updateCurrentComicView()
491486
setCurrentComicIfNeeded();
492487
}
493488

489+
void GridComicsView::focusComicsNavigation(Qt::FocusReason reason)
490+
{
491+
view->setFocus(reason);
492+
}
493+
494494
void GridComicsView::startDrag()
495495
{
496496
auto drag = new QDrag(this);

YACReaderLibrary/grid_comics_view.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ class GridComicsView : public ComicsView
1919
{
2020
Q_OBJECT
2121
public:
22-
explicit GridComicsView(QWidget *parent = 0);
23-
virtual ~GridComicsView();
22+
explicit GridComicsView(QWidget *parent = nullptr);
23+
~GridComicsView() override;
2424
void setToolBar(QToolBar *toolBar) override;
2525
void setModel(ComicModel *model) override;
2626
void setCurrentIndex(const QModelIndex &index) override;
@@ -31,9 +31,9 @@ class GridComicsView : public ComicsView
3131
void toNormal() override;
3232
void updateConfig(QSettings *settings) override;
3333
void enableFilterMode(bool enabled) override;
34-
QSize sizeHint();
3534
QByteArray getMimeDataFromSelection();
3635
void updateCurrentComicView() override;
36+
void focusComicsNavigation(Qt::FocusReason reason) override;
3737

3838
public slots:
3939
//ComicsView

YACReaderLibrary/info_comics_view.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,11 @@ void InfoComicsView::updateCurrentComicView()
208208
{
209209
}
210210

211+
void InfoComicsView::focusComicsNavigation(Qt::FocusReason reason)
212+
{
213+
view->setFocus(reason);
214+
}
215+
211216
void InfoComicsView::setShowMarks(bool show)
212217
{
213218
QQmlContext *ctxt = view->rootContext();

YACReaderLibrary/info_comics_view.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@ class InfoComicsView : public ComicsView
2626
void enableFilterMode(bool enabled) override;
2727
void selectIndex(int index) override;
2828
void updateCurrentComicView() override;
29+
void focusComicsNavigation(Qt::FocusReason reason) override;
2930

3031
public slots:
31-
void setShowMarks(bool show);
32+
void setShowMarks(bool show) override;
3233
void selectAll() override;
3334

3435
protected slots:

YACReaderLibrary/library_window.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,8 @@ void LibraryWindow::setUpShortcutsManagement()
377377
tmpList = QList<QAction *>()
378378
<< backAction
379379
<< forwardAction
380+
<< focusSearchLineAction
381+
<< focusComicsViewAction
380382
<< helpAboutAction
381383
<< optionsAction
382384
<< serverConfigAction
@@ -719,6 +721,17 @@ void LibraryWindow::createActions()
719721
getInfoAction->setIcon(QIcon(":/images/comics_view_toolbar/getInfo.png"));
720722
//-------------------------------------------------------------------------
721723

724+
focusSearchLineAction = new QAction(tr("Focus search line"), this);
725+
focusSearchLineAction->setData(FOCUS_SEARCH_LINE_ACTION_YL);
726+
focusSearchLineAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(FOCUS_SEARCH_LINE_ACTION_YL));
727+
focusSearchLineAction->setIcon(QIcon(":/images/iconSearch.png"));
728+
addAction(focusSearchLineAction);
729+
730+
focusComicsViewAction = new QAction(tr("Focus comics view"), this);
731+
focusComicsViewAction->setData(FOCUS_COMICS_VIEW_ACTION_YL);
732+
focusComicsViewAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(FOCUS_COMICS_VIEW_ACTION_YL));
733+
addAction(focusComicsViewAction);
734+
722735
showEditShortcutsAction = new QAction(tr("Edit shortcuts"), this);
723736
showEditShortcutsAction->setData(SHOW_EDIT_SHORTCUTS_ACTION_YL);
724737
showEditShortcutsAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SHOW_EDIT_SHORTCUTS_ACTION_YL));
@@ -1147,6 +1160,9 @@ void LibraryWindow::createConnections()
11471160
//connect(comicsModel,SIGNAL(searchNumResults(int)),this,SLOT(checkSearchNumResults(int)));
11481161
//connect(emptyFolderWidget,SIGNAL(subfolderSelected(QModelIndex,int)),this,SLOT(selectSubfolder(QModelIndex,int)));
11491162

1163+
connect(focusSearchLineAction, &QAction::triggered, searchEdit, [this] { searchEdit->setFocus(Qt::ShortcutFocusReason); });
1164+
connect(focusComicsViewAction, &QAction::triggered, comicsViewsManager, &YACReaderComicsViewsManager::focusComicsViewViaShortcut);
1165+
11501166
connect(showEditShortcutsAction, SIGNAL(triggered()), editShortcutsDialog, SLOT(show()));
11511167

11521168
//update folders (partial updates)

0 commit comments

Comments
 (0)