yacreader/YACReaderLibrary/yacreader_library_toolbar.cpp
2020-04-07 18:11:36 +02:00

163 lines
6.4 KiB
C++

#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(!useNativeFullScreen, 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);
}
}
void YACReaderLibraryToolbar::setTitle(const QString &title)
{
if (defaultToolbar != nullptr) {
defaultToolbar->setTitle(title);
}
}