mirror of
https://github.com/YACReader/yacreader
synced 2026-04-12 15:49:53 -04:00
Initial implementation of theming
This commit is contained in:
@ -10,6 +10,7 @@
|
||||
#include "empty_label_widget.h"
|
||||
#include "empty_special_list.h"
|
||||
#include "empty_reading_list_widget.h"
|
||||
#include "empty_folder_widget.h"
|
||||
#include "no_search_results_widget.h"
|
||||
|
||||
#include "yacreader_sidebar.h"
|
||||
@ -17,6 +18,7 @@
|
||||
//--
|
||||
#include "yacreader_search_line_edit.h"
|
||||
#include "options_dialog.h"
|
||||
#include "theme_manager.h"
|
||||
|
||||
YACReaderContentViewsManager::YACReaderContentViewsManager(QSettings *settings, LibraryWindow *parent)
|
||||
: QObject(parent), libraryWindow(parent), classicComicsView(nullptr), gridComicsView(nullptr), infoComicsView(nullptr)
|
||||
@ -50,6 +52,7 @@ YACReaderContentViewsManager::YACReaderContentViewsManager(QSettings *settings,
|
||||
comicsViewStack->addWidget(emptyLabelWidget = new EmptyLabelWidget());
|
||||
comicsViewStack->addWidget(emptySpecialList = new EmptySpecialListWidget());
|
||||
comicsViewStack->addWidget(emptyReadingList = new EmptyReadingListWidget());
|
||||
comicsViewStack->addWidget(emptyFolderWidget = new EmptyFolderWidget());
|
||||
comicsViewStack->addWidget(noSearchResultsWidget = new NoSearchResultsWidget());
|
||||
|
||||
comicsViewStack->addWidget(comicsView);
|
||||
@ -60,6 +63,8 @@ YACReaderContentViewsManager::YACReaderContentViewsManager(QSettings *settings,
|
||||
connect(folderContentView, &FolderContentView::copyComicsToCurrentFolder, libraryWindow, &LibraryWindow::copyAndImportComicsToCurrentFolder);
|
||||
connect(folderContentView, &FolderContentView::moveComicsToCurrentFolder, libraryWindow, &LibraryWindow::moveAndImportComicsToCurrentFolder);
|
||||
connect(libraryWindow->optionsDialog, &YACReaderOptionsDialog::optionsChanged, folderContentView, &FolderContentView::updateSettings);
|
||||
|
||||
initTheme(this);
|
||||
}
|
||||
|
||||
QWidget *YACReaderContentViewsManager::containerWidget()
|
||||
@ -152,6 +157,11 @@ void YACReaderContentViewsManager::showEmptyReadingListWidget()
|
||||
comicsViewStack->setCurrentWidget(emptyReadingList);
|
||||
}
|
||||
|
||||
void YACReaderContentViewsManager::showEmptyFolderWidget()
|
||||
{
|
||||
comicsViewStack->setCurrentWidget(emptyFolderWidget);
|
||||
}
|
||||
|
||||
void YACReaderContentViewsManager::showNoSearchResultsView()
|
||||
{
|
||||
comicsViewStack->setCurrentWidget(noSearchResultsWidget);
|
||||
@ -235,10 +245,11 @@ void YACReaderContentViewsManager::showComicsViewTransition()
|
||||
|
||||
void YACReaderContentViewsManager::_toggleComicsView()
|
||||
{
|
||||
const auto &mainToolbar = theme.mainToolbar;
|
||||
|
||||
switch (comicsViewStatus) {
|
||||
case Flow: {
|
||||
QIcon icoViewsButton;
|
||||
icoViewsButton.addFile(addExtensionToIconPath(":/images/main_toolbar/info"), QSize(), QIcon::Normal);
|
||||
QIcon icoViewsButton = mainToolbar.infoIcon;
|
||||
libraryWindow->actions.toggleComicsViewAction->setIcon(icoViewsButton);
|
||||
#ifdef Y_MAC_UI
|
||||
libraryWindow->libraryToolBar->updateViewSelectorIcon(icoViewsButton);
|
||||
@ -255,8 +266,7 @@ void YACReaderContentViewsManager::_toggleComicsView()
|
||||
}
|
||||
|
||||
case Grid: {
|
||||
QIcon icoViewsButton;
|
||||
icoViewsButton.addFile(addExtensionToIconPath(":/images/main_toolbar/flow"), QSize(), QIcon::Normal);
|
||||
QIcon icoViewsButton = mainToolbar.flowIcon;
|
||||
libraryWindow->actions.toggleComicsViewAction->setIcon(icoViewsButton);
|
||||
#ifdef Y_MAC_UI
|
||||
libraryWindow->libraryToolBar->updateViewSelectorIcon(icoViewsButton);
|
||||
@ -271,8 +281,7 @@ void YACReaderContentViewsManager::_toggleComicsView()
|
||||
}
|
||||
|
||||
case Info: {
|
||||
QIcon icoViewsButton;
|
||||
icoViewsButton.addFile(addExtensionToIconPath(":/images/main_toolbar/grid"), QSize(), QIcon::Normal);
|
||||
QIcon icoViewsButton = mainToolbar.gridIcon;
|
||||
libraryWindow->actions.toggleComicsViewAction->setIcon(icoViewsButton);
|
||||
#ifdef Y_MAC_UI
|
||||
libraryWindow->libraryToolBar->updateViewSelectorIcon(icoViewsButton);
|
||||
@ -292,3 +301,28 @@ void YACReaderContentViewsManager::_toggleComicsView()
|
||||
if (comicsViewStack->currentWidget() == comicsViewTransition)
|
||||
showComicsView();
|
||||
}
|
||||
|
||||
void YACReaderContentViewsManager::applyTheme(const Theme &theme)
|
||||
{
|
||||
const auto &mainToolbar = theme.mainToolbar;
|
||||
|
||||
// Update the toggle button icon based on current view status
|
||||
// The icon shows what the NEXT view will be when clicked
|
||||
QIcon icon;
|
||||
switch (comicsViewStatus) {
|
||||
case Flow:
|
||||
icon = mainToolbar.gridIcon;
|
||||
break;
|
||||
case Grid:
|
||||
icon = mainToolbar.infoIcon;
|
||||
break;
|
||||
case Info:
|
||||
icon = mainToolbar.flowIcon;
|
||||
break;
|
||||
}
|
||||
|
||||
libraryWindow->actions.toggleComicsViewAction->setIcon(icon);
|
||||
#ifdef Y_MAC_UI
|
||||
libraryWindow->libraryToolBar->updateViewSelectorIcon(icon);
|
||||
#endif
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user