mirror of
https://github.com/YACReader/yacreader
synced 2025-07-18 21:14:33 -04:00
Create wrappers for the search edit and the main toolbar.
So we can hide native implementations from classes using these elements.
This commit is contained in:
committed by
Luis Ángel San Martín
parent
00f8adfa54
commit
655cdc619e
@ -146,7 +146,9 @@ HEADERS += comic_flow.h \
|
||||
yacreader_comic_info_helper.h \
|
||||
db/reading_list.h \
|
||||
current_comic_view_helper.h \
|
||||
theme.h
|
||||
theme.h \
|
||||
yacreader_library_toolbar.h \
|
||||
yacreader_library_search_edit.h
|
||||
|
||||
!CONFIG(no_opengl) {
|
||||
HEADERS += ../common/gl/yacreader_flow_gl.h
|
||||
@ -219,7 +221,9 @@ SOURCES += comic_flow.cpp \
|
||||
yacreader_comic_info_helper.cpp\
|
||||
db/reading_list.cpp \
|
||||
current_comic_view_helper.cpp \
|
||||
theme.cpp
|
||||
theme.cpp \
|
||||
yacreader_library_toolbar.cpp \
|
||||
yacreader_library_search_edit.cpp
|
||||
|
||||
!CONFIG(no_opengl) {
|
||||
SOURCES += ../common/gl/yacreader_flow_gl.cpp
|
||||
|
72
YACReaderLibrary/yacreader_library_search_edit.cpp
Normal file
72
YACReaderLibrary/yacreader_library_search_edit.cpp
Normal file
@ -0,0 +1,72 @@
|
||||
#include "yacreader_library_search_edit.h"
|
||||
|
||||
#ifdef Q_OS_MAC
|
||||
YACReaderLibrarySearchEdit::YACReaderLibrarySearchEdit(YACReaderMacOSXSearchLineEdit *searchEdit)
|
||||
:macosSearchEdit(searchEdit), defaultSearchEdit(nullptr)
|
||||
{
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
YACReaderLibrarySearchEdit::YACReaderLibrarySearchEdit(YACReaderSearchLineEdit *searchEdit)
|
||||
:defaultSearchEdit(searchEdit)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void YACReaderLibrarySearchEdit::clear()
|
||||
{
|
||||
if (defaultSearchEdit != nullptr) {
|
||||
defaultSearchEdit->clear();
|
||||
} else {
|
||||
#ifdef Q_OS_MAC
|
||||
macosSearchEdit->clear();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
void YACReaderLibrarySearchEdit::clearText()
|
||||
{
|
||||
if (defaultSearchEdit != nullptr) {
|
||||
defaultSearchEdit->clearText();
|
||||
} else {
|
||||
#ifdef Q_OS_MAC
|
||||
macosSearchEdit->clearText();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
void YACReaderLibrarySearchEdit::setDisabled(bool disabled)
|
||||
{
|
||||
if (defaultSearchEdit != nullptr) {
|
||||
defaultSearchEdit->setDisabled(disabled);
|
||||
} else {
|
||||
#ifdef Q_OS_MAC
|
||||
macosSearchEdit->setDisabled(disabled);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
void YACReaderLibrarySearchEdit::setEnabled(bool enabled)
|
||||
{
|
||||
if (defaultSearchEdit != nullptr) {
|
||||
defaultSearchEdit->setEnabled(enabled);
|
||||
} else {
|
||||
#ifdef Q_OS_MAC
|
||||
macosSearchEdit->setEnabled(enabled);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
QString YACReaderLibrarySearchEdit::text()
|
||||
{
|
||||
if (defaultSearchEdit != nullptr) {
|
||||
return defaultSearchEdit->text();
|
||||
} else {
|
||||
#ifdef Q_OS_MAC
|
||||
return macosSearchEdit->text();
|
||||
#endif
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
39
YACReaderLibrary/yacreader_library_search_edit.h
Normal file
39
YACReaderLibrary/yacreader_library_search_edit.h
Normal file
@ -0,0 +1,39 @@
|
||||
#ifndef YACREADER_LIBRARY_SEARCH_EDIT_H
|
||||
#define YACREADER_LIBRARY_SEARCH_EDIT_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
#include "yacreader_global.h"
|
||||
|
||||
#include "yacreader_search_line_edit.h"
|
||||
|
||||
#ifdef Q_OS_MAC
|
||||
#include "yacreader_macosx_toolbar.h"
|
||||
#endif
|
||||
|
||||
class YACReaderLibrarySearchEdit: public QObject
|
||||
{
|
||||
public:
|
||||
#ifdef Q_OS_MAC
|
||||
YACReaderLibrarySearchEdit(YACReaderMacOSXSearchLineEdit *searchEdit);
|
||||
#endif
|
||||
YACReaderLibrarySearchEdit(YACReaderSearchLineEdit *searchEdit);
|
||||
|
||||
public slots:
|
||||
void clear();
|
||||
void clearText();
|
||||
void setDisabled(bool disabled);
|
||||
void setEnabled(bool enabled);
|
||||
QString text();
|
||||
|
||||
signals:
|
||||
void filterChanged(const YACReader::SearchModifiers, QString);
|
||||
|
||||
private:
|
||||
#ifdef Q_OS_MAC
|
||||
YACReaderMacOSXSearchLineEdit *macosSearchEdit;
|
||||
#endif
|
||||
YACReaderSearchLineEdit *defaultSearchEdit;
|
||||
};
|
||||
|
||||
#endif // YACREADER_LIBRARY_SEARCH_EDIT_H
|
155
YACReaderLibrary/yacreader_library_toolbar.cpp
Normal file
155
YACReaderLibrary/yacreader_library_toolbar.cpp
Normal file
@ -0,0 +1,155 @@
|
||||
#include "yacreader_library_toolbar.h"
|
||||
|
||||
#include "shortcuts_manager.h"
|
||||
#include "yacreader_library_search_edit.h"
|
||||
#include "yacreader_global_gui.h"
|
||||
|
||||
using namespace YACReader;
|
||||
|
||||
YACReaderLibraryToolbar::YACReaderLibraryToolbar(QMainWindow *mainWindow, bool isMacosNative, bool useNativeFullScreen, QSettings *settings)
|
||||
:QObject(mainWindow), mainWindow(mainWindow), isMacosNative(isMacosNative), useNativeFullScreen(useNativeFullScreen), settings(settings)
|
||||
{
|
||||
backAction = new QAction(mainWindow);
|
||||
QIcon icoBackButton;
|
||||
icoBackButton.addFile(":/images/main_toolbar/back.png",QSize(), QIcon::Normal);
|
||||
//icoBackButton.addPixmap(QPixmap(":/images/main_toolbar/back_disabled.png"), QIcon::Disabled);
|
||||
backAction->setData(BACK_ACTION_YL);
|
||||
backAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(BACK_ACTION_YL));
|
||||
backAction->setIcon(icoBackButton);
|
||||
backAction->setDisabled(true);
|
||||
|
||||
forwardAction = new QAction(mainWindow);
|
||||
QIcon icoFordwardButton;
|
||||
icoFordwardButton.addFile(":/images/main_toolbar/forward.png", QSize(), QIcon::Normal);
|
||||
//icoFordwardButton.addPixmap(QPixmap(":/images/main_toolbar/forward_disabled.png"), QIcon::Disabled);
|
||||
forwardAction->setData(FORWARD_ACTION_YL);
|
||||
forwardAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(FORWARD_ACTION_YL));
|
||||
forwardAction->setIcon(icoFordwardButton);
|
||||
forwardAction->setDisabled(true);
|
||||
|
||||
optionsAction = new QAction(mainWindow);
|
||||
optionsAction->setToolTip(tr("Show options dialog"));
|
||||
optionsAction->setData(OPTIONS_ACTION_YL);
|
||||
optionsAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(OPTIONS_ACTION_YL));
|
||||
QIcon icoSettingsButton;
|
||||
icoSettingsButton.addFile(":/images/main_toolbar/settings.png", QSize(), QIcon::Normal);
|
||||
optionsAction->setIcon(icoSettingsButton);
|
||||
|
||||
serverConfigAction = new QAction(mainWindow);
|
||||
serverConfigAction->setToolTip(tr("Show comics server options dialog"));
|
||||
serverConfigAction->setData(SERVER_CONFIG_ACTION_YL);
|
||||
serverConfigAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(SERVER_CONFIG_ACTION_YL));
|
||||
QIcon icoServerButton;
|
||||
icoServerButton.addFile(":/images/main_toolbar/server.png", QSize(), QIcon::Normal);
|
||||
serverConfigAction->setIcon(icoServerButton);
|
||||
|
||||
toggleComicsViewAction = new QAction(tr("Change between comics views"),mainWindow);
|
||||
toggleComicsViewAction->setToolTip(tr("Change between comics views"));
|
||||
QIcon icoViewsButton;
|
||||
|
||||
if(!settings->contains(COMICS_VIEW_STATUS) || settings->value(COMICS_VIEW_STATUS) == Flow)
|
||||
icoViewsButton.addFile(":/images/main_toolbar/grid.png", QSize(), QIcon::Normal);
|
||||
else if(settings->value(COMICS_VIEW_STATUS) == Grid)
|
||||
icoViewsButton.addFile(":/images/main_toolbar/info.png", QSize(), QIcon::Normal);
|
||||
else
|
||||
icoViewsButton.addFile(":/images/main_toolbar/flow.png", QSize(), QIcon::Normal);
|
||||
|
||||
toggleComicsViewAction->setData(TOGGLE_COMICS_VIEW_ACTION_YL);
|
||||
toggleComicsViewAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(TOGGLE_COMICS_VIEW_ACTION_YL));
|
||||
toggleComicsViewAction->setIcon(icoViewsButton);
|
||||
|
||||
helpAboutAction = new QAction(mainWindow);
|
||||
helpAboutAction->setToolTip(tr("Help, About YACReader"));
|
||||
helpAboutAction->setData(HELP_ABOUT_ACTION_YL);
|
||||
helpAboutAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(HELP_ABOUT_ACTION_YL));
|
||||
QIcon icoHelpButton;
|
||||
icoHelpButton.addFile(":/images/main_toolbar/help.png",QSize(), QIcon::Normal);
|
||||
helpAboutAction->setIcon(icoHelpButton);
|
||||
|
||||
if (!useNativeFullScreen) {
|
||||
toggleFullScreenAction = new QAction(tr("Fullscreen mode on/off"),mainWindow);
|
||||
toggleFullScreenAction->setToolTip(tr("Fullscreen mode on/off"));
|
||||
toggleFullScreenAction->setData(TOGGLE_FULL_SCREEN_ACTION_YL);
|
||||
toggleFullScreenAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(TOGGLE_FULL_SCREEN_ACTION_YL));
|
||||
QIcon icoFullscreenButton;
|
||||
icoFullscreenButton.addPixmap(QPixmap(":/images/main_toolbar/fullscreen.png"), QIcon::Normal);
|
||||
toggleFullScreenAction->setIcon(icoFullscreenButton);
|
||||
}
|
||||
|
||||
if (isMacosNative) {
|
||||
#ifdef Q_OS_MAC
|
||||
macosxToolbar = new YACReaderMacOSXToolbar(mainWindow);
|
||||
|
||||
macosxToolbar->addAction(backAction);
|
||||
macosxToolbar->addAction(forwardAction);
|
||||
|
||||
macosxToolbar->addSpace(10);
|
||||
|
||||
macosxToolbar->addAction(serverConfigAction);
|
||||
|
||||
macosxToolbar->addAction(optionsAction);
|
||||
macosxToolbar->addAction(helpAboutAction);
|
||||
|
||||
macosxToolbar->addSpace(10);
|
||||
|
||||
macosxToolbar->addAction(toggleComicsViewAction);
|
||||
|
||||
macosxToolbar->addStretch();
|
||||
|
||||
auto actualSearchEdit = macosxToolbar->addSearchEdit();
|
||||
searchEdit = new YACReaderLibrarySearchEdit(actualSearchEdit);
|
||||
|
||||
macosxToolbar->attachToWindow(mainWindow->windowHandle());
|
||||
#endif
|
||||
} else {
|
||||
defaultToolbar = new YACReaderMainToolBar(mainWindow);
|
||||
auto actualSearchEdit = new YACReaderSearchLineEdit();
|
||||
searchEdit = new YACReaderLibrarySearchEdit(actualSearchEdit);
|
||||
|
||||
defaultToolbar->backButton->setDefaultAction(backAction);
|
||||
defaultToolbar->forwardButton->setDefaultAction(forwardAction);
|
||||
defaultToolbar->settingsButton->setDefaultAction(optionsAction);
|
||||
defaultToolbar->serverButton->setDefaultAction(serverConfigAction);
|
||||
defaultToolbar->helpButton->setDefaultAction(helpAboutAction);
|
||||
defaultToolbar->toggleComicsViewButton->setDefaultAction(toggleComicsViewAction);
|
||||
defaultToolbar->fullscreenButton->setDefaultAction(toggleFullScreenAction);
|
||||
|
||||
defaultToolbar->setSearchWidget(actualSearchEdit);
|
||||
}
|
||||
}
|
||||
|
||||
void YACReaderLibraryToolbar::show()
|
||||
{
|
||||
if (isMacosNative) {
|
||||
#ifdef Q_OS_MAC
|
||||
macosxToolbar->show();
|
||||
#endif
|
||||
} else {
|
||||
defaultToolbar->show();
|
||||
}
|
||||
}
|
||||
|
||||
void YACReaderLibraryToolbar::hide()
|
||||
{
|
||||
if (isMacosNative) {
|
||||
#ifdef Q_OS_MAC
|
||||
macosxToolbar->hide();
|
||||
#endif
|
||||
} else {
|
||||
defaultToolbar->hide();
|
||||
}
|
||||
}
|
||||
|
||||
void YACReaderLibraryToolbar::updateViewSelectorIcon(const QIcon &icon)
|
||||
{
|
||||
#ifdef Q_OS_MAC
|
||||
macosxToolbar->updateViewSelectorIcon(icon);
|
||||
#endif
|
||||
}
|
||||
|
||||
void YACReaderLibraryToolbar::setDisabled(bool disabled)
|
||||
{
|
||||
if (defaultToolbar != nullptr) {
|
||||
defaultToolbar->setDisabled(disabled);
|
||||
}
|
||||
}
|
55
YACReaderLibrary/yacreader_library_toolbar.h
Normal file
55
YACReaderLibrary/yacreader_library_toolbar.h
Normal file
@ -0,0 +1,55 @@
|
||||
#ifndef YACREADER_LIBRARY_TOOLBAR_H
|
||||
#define YACREADER_LIBRARY_TOOLBAR_H
|
||||
|
||||
#include <QtWidgets>
|
||||
|
||||
#include "yacreader_main_toolbar.h"
|
||||
#ifdef Q_OS_MAC
|
||||
#include "yacreader_macosx_toolbar.h"
|
||||
#endif
|
||||
|
||||
#include "yacreader_library_search_edit.h"
|
||||
|
||||
class YACReaderLibraryToolbar: public QObject
|
||||
{
|
||||
public:
|
||||
YACReaderLibraryToolbar(QMainWindow *mainWindow, bool isMacosNative, bool useNativeFullScreen, QSettings *settings);
|
||||
|
||||
QWidget * widget() { return defaultToolbar; }
|
||||
|
||||
QAction * backAction;
|
||||
QAction * forwardAction;
|
||||
|
||||
QAction * optionsAction;
|
||||
QAction * serverConfigAction;
|
||||
QAction * toggleComicsViewAction;
|
||||
|
||||
QAction * helpAboutAction;
|
||||
|
||||
QAction * toggleFullScreenAction = nullptr;
|
||||
|
||||
YACReaderLibrarySearchEdit *searchEdit;
|
||||
public slots:
|
||||
void show();
|
||||
void hide();
|
||||
|
||||
void updateViewSelectorIcon(const QIcon &icon);
|
||||
|
||||
void setDisabled(bool disabled);
|
||||
|
||||
private:
|
||||
QMainWindow *mainWindow;
|
||||
bool isMacosNative;
|
||||
bool useNativeFullScreen;
|
||||
QSettings * settings;
|
||||
|
||||
#ifdef Q_OS_MAC
|
||||
YACReaderMacOSXToolbar *macosxToolbar;
|
||||
#endif
|
||||
|
||||
YACReaderMainToolBar *defaultToolbar = nullptr;
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif // YACREADER_LIBRARY_TOOLBAR_H
|
Reference in New Issue
Block a user