yacreader/YACReaderLibrary/yacreader_comics_views_manager.h
Igor Kushnir 8a54100804 Library: allow configuring a shortcut to focus comics view
Focusing the current comics view allows to use keyboard arrow keys to
choose among the visible comics.

The shortcut for this new action should not be a single character
without modifiers because it won't work when the search line has focus.

The Qt::FocusReason parameter in ComicsView::focusComicsNavigation()
allows to reuse this function for other keyboard navigation features.
For instance the search line can transfer focus to comics navigation
when the user presses Return or Enter key. In this case
Qt::OtherFocusReason can be used (an application-specific reason).
2021-03-13 15:08:33 +02:00

78 lines
1.8 KiB
C++

#ifndef YACREADERCOMICSVIEWSMANAGER_H
#define YACREADERCOMICSVIEWSMANAGER_H
#include <QtWidgets>
#include "yacreader_global_gui.h"
class LibraryWindow;
class ComicsView;
class ClassicComicsView;
class GridComicsView;
class InfoComicsView;
class ComicsViewTransition;
class EmptyFolderWidget;
class EmptyLabelWidget;
class EmptySpecialListWidget;
class EmptyReadingListWidget;
class NoSearchResultsWidget;
using namespace YACReader;
class YACReaderComicsViewsManager : public QObject
{
Q_OBJECT
public:
explicit YACReaderComicsViewsManager(QSettings *settings, LibraryWindow *parent = nullptr);
QWidget *containerWidget();
ComicsView *comicsView;
ComicsViewTransition *comicsViewTransition;
EmptyFolderWidget *emptyFolderWidget;
EmptyLabelWidget *emptyLabelWidget;
EmptySpecialListWidget *emptySpecialList;
EmptyReadingListWidget *emptyReadingList;
NoSearchResultsWidget *noSearchResultsWidget;
void updateCurrentComicView();
protected:
QStackedWidget *comicsViewStack;
LibraryWindow *libraryWindow;
ComicsViewStatus comicsViewStatus;
ClassicComicsView *classicComicsView;
GridComicsView *gridComicsView;
InfoComicsView *infoComicsView;
signals:
public slots:
void toggleComicsView();
void focusComicsViewViaShortcut();
void showComicsView();
void showEmptyFolderView();
void showEmptyLabelView();
void showEmptySpecialList();
void showEmptyReadingListWidget();
void showNoSearchResultsView();
protected slots:
void showComicsViewTransition();
void _toggleComicsView();
void disconnectComicsViewConnections(ComicsView *widget);
void doComicsViewConnections();
void switchToComicsView(ComicsView *from, ComicsView *to);
};
#endif // COMICSVIEWSMANAGER_H