mirror of
https://github.com/YACReader/yacreader
synced 2025-05-28 03:10:27 -04:00
163 lines
6.4 KiB
C++
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);
|
|
}
|
|
}
|