| 495 | } |
| 496 | |
| 497 | void GridComicsView::applyTheme(const Theme &theme) |
| 498 | { |
| 499 | QQmlContext *ctxt = view->rootContext(); |
| 500 | const auto &giv = theme.gridAndInfoView; |
| 501 | |
| 502 | // Grid colors |
| 503 | ctxt->setContextProperty("backgroundColor", giv.backgroundColor); |
| 504 | ctxt->setContextProperty("backgroundBlurOverlayColor", giv.backgroundBlurOverlayColor); |
| 505 | ctxt->setContextProperty("cellColor", giv.cellColor); |
| 506 | ctxt->setContextProperty("cellSelectedColor", giv.cellSelectedColor); |
| 507 | ctxt->setContextProperty("cellSelectedBorderColor", giv.cellSelectedBorderColor); |
| 508 | ctxt->setContextProperty("borderColor", giv.borderColor); |
| 509 | ctxt->setContextProperty("itemTitleColor", giv.itemTitleColor); |
| 510 | ctxt->setContextProperty("itemDetailsColor", giv.itemDetailsColor); |
| 511 | ctxt->setContextProperty("showDropShadow", QVariant(giv.showDropShadow)); |
| 512 | |
| 513 | // Info panel colors |
| 514 | ctxt->setContextProperty("infoBackgroundColor", giv.infoBackgroundColor); |
| 515 | ctxt->setContextProperty("infoMetadataTextColor", giv.infoMetadataTextColor); |
| 516 | ctxt->setContextProperty("infoTextColor", giv.infoTextColor); |
| 517 | |
| 518 | // Rating and favorite colors |
| 519 | ctxt->setContextProperty("ratingUnselectedColor", giv.ratingUnselectedColor); |
| 520 | ctxt->setContextProperty("ratingSelectedColor", giv.ratingSelectedColor); |
| 521 | ctxt->setContextProperty("favUncheckedColor", giv.favUncheckedColor); |
| 522 | ctxt->setContextProperty("favCheckedColor", giv.favCheckedColor); |
| 523 | ctxt->setContextProperty("readTickUncheckedColor", giv.readTickUncheckedColor); |
| 524 | ctxt->setContextProperty("readTickCheckedColor", giv.readTickCheckedColor); |
| 525 | |
| 526 | // Current comic banner |
| 527 | ctxt->setContextProperty("currentComicBackgroundColor", giv.currentComicBackgroundColor); |
| 528 | |
| 529 | // New item indicator, button colors, links, scrollbars, cover borders, shadows |
| 530 | ctxt->setContextProperty("newItemColor", giv.newItemColor); |
| 531 | ctxt->setContextProperty("buttonColor", giv.buttonColor); |
| 532 | ctxt->setContextProperty("buttonTextColor", giv.buttonTextColor); |
| 533 | ctxt->setContextProperty("themeLinkColor", giv.linkColor); |
| 534 | ctxt->setContextProperty("themeLinkColorStr", giv.linkColor.name()); |
| 535 | ctxt->setContextProperty("scrollbarColor", giv.scrollbarColor); |
| 536 | ctxt->setContextProperty("scrollbarBorderColor", giv.scrollbarBorderColor); |
| 537 | ctxt->setContextProperty("infoScrollbarColor", giv.infoScrollbarColor); |
| 538 | ctxt->setContextProperty("comicCoverBorderColor", giv.comicCoverBorderColor); |
| 539 | ctxt->setContextProperty("currentComicCoverShadowColor", giv.currentComicCoverShadowColor); |
| 540 | ctxt->setContextProperty("buttonShadowColor", giv.buttonShadowColor); |
| 541 | |
| 542 | // Update background config to apply theme cell colors |
| 543 | updateBackgroundConfig(); |
| 544 | |
| 545 | // Update show info action icon |
| 546 | showInfoAction->setIcon(theme.comicsViewToolbar.showComicInfoIcon); |
| 547 | |
| 548 | // Update zoom slider icons (if they exist - created in setToolBar) |
| 549 | if (smallZoomLabel) { |
| 550 | smallZoomLabel->setPixmap(theme.comicsViewToolbar.smallGridZoomIcon.pixmap(18, 18)); |
| 551 | } |
| 552 | if (bigZoomLabel) { |
| 553 | bigZoomLabel->setPixmap(theme.comicsViewToolbar.bigGridZoomIcon.pixmap(18, 18)); |
| 554 | } |