diff --git a/src/adapters/controllers/book_controller.cpp b/src/adapters/controllers/book_controller.cpp index a84557407..5f7effcde 100644 --- a/src/adapters/controllers/book_controller.cpp +++ b/src/adapters/controllers/book_controller.cpp @@ -155,11 +155,6 @@ void BookController::goToBookmark(const QString& uuid) } } -void BookController::setColorTheme(const QString& colorTheme) -{ - m_bookService->setColorTheme(colorTheme); -} - void BookController::followLink(const char* uri) { return m_bookService->followLink(uri); @@ -232,6 +227,17 @@ void BookController::setSearchFromStart(bool newSearchFromStart) emit searchFromStartChanged(); } +QString BookController::getColorTheme() +{ + return m_bookService->getColorTheme(); +} + +void BookController::setColorTheme(const QString& colorTheme) +{ + m_bookService->setColorTheme(colorTheme); + emit colorThemeChanged(colorTheme); +} + FilteredTOCModel* BookController::getTableOfContents() { return m_bookService->getTableOfContents(); diff --git a/src/adapters/controllers/book_controller.hpp b/src/adapters/controllers/book_controller.hpp index a7ff510ad..72ad96e5d 100644 --- a/src/adapters/controllers/book_controller.hpp +++ b/src/adapters/controllers/book_controller.hpp @@ -41,8 +41,6 @@ class ADAPTERS_EXPORT BookController : public IBookController void removeBookmark(const QString& uuid) override; void goToBookmark(const QString& uuid) override; - void setColorTheme(const QString& colorTheme) override; - void followLink(const char* uri) override; QString getFilePath() const override; @@ -63,6 +61,9 @@ class ADAPTERS_EXPORT BookController : public IBookController bool getSearchFromStart() const override; void setSearchFromStart(bool newSearchFromStart) override; + QString getColorTheme() override; + void setColorTheme(const QString& colorTheme) override; + application::core::FilteredTOCModel* getTableOfContents() override; data_models::BookmarksProxyModel* getBookmarksModel() override; diff --git a/src/adapters/interfaces/controllers/i_book_controller.hpp b/src/adapters/interfaces/controllers/i_book_controller.hpp index 70856bf26..e114935e6 100644 --- a/src/adapters/interfaces/controllers/i_book_controller.hpp +++ b/src/adapters/interfaces/controllers/i_book_controller.hpp @@ -34,6 +34,8 @@ class ADAPTERS_EXPORT IBookController : public QObject setSearchCaseSensitive NOTIFY searchCaseSensitiveChanged) Q_PROPERTY(bool searchFromStart READ getSearchFromStart WRITE setSearchFromStart NOTIFY searchFromStartChanged) + Q_PROPERTY(QString colorTheme READ getColorTheme WRITE setColorTheme NOTIFY + colorThemeChanged) public: virtual ~IBookController() noexcept = default; @@ -62,8 +64,6 @@ class ADAPTERS_EXPORT IBookController : public QObject Q_INVOKABLE virtual void removeBookmark(const QString& uuid) = 0; Q_INVOKABLE virtual void goToBookmark(const QString& uuid) = 0; - Q_INVOKABLE virtual void setColorTheme(const QString& colorTheme) = 0; - virtual void followLink(const char* uri) = 0; virtual QString getFilePath() const = 0; @@ -84,6 +84,9 @@ class ADAPTERS_EXPORT IBookController : public QObject virtual bool getSearchFromStart() const = 0; virtual void setSearchFromStart(bool newSearchFromStart) = 0; + virtual QString getColorTheme() = 0; + virtual void setColorTheme(const QString& colorTheme) = 0; + virtual application::core::FilteredTOCModel* getTableOfContents() = 0; virtual adapters::data_models::BookmarksProxyModel* getBookmarksModel() = 0; @@ -102,6 +105,7 @@ class ADAPTERS_EXPORT IBookController : public QObject void searchCaseSensitiveChanged(); void searchFromStartChanged(); void bookmarksModelChanged(); + void colorThemeChanged(const QString& colorTheme); }; } // namespace adapters diff --git a/src/application/interfaces/services/i_book_service.hpp b/src/application/interfaces/services/i_book_service.hpp index 7017cd7e6..5666b1a73 100644 --- a/src/application/interfaces/services/i_book_service.hpp +++ b/src/application/interfaces/services/i_book_service.hpp @@ -57,6 +57,7 @@ class APPLICATION_EXPORT IBookService : public QObject virtual float getZoom() const = 0; virtual void setZoom(float newZoom) = 0; + virtual QString getColorTheme() = 0; virtual void setColorTheme(const QString& colorTheme) = 0; virtual core::FilteredTOCModel* getTableOfContents() = 0; diff --git a/src/application/services/book_service.cpp b/src/application/services/book_service.cpp index cb5d97601..193029455 100644 --- a/src/application/services/book_service.cpp +++ b/src/application/services/book_service.cpp @@ -223,6 +223,12 @@ void BookService::setZoom(float newZoom) m_zoom = newZoom; } +QString BookService::getColorTheme() +{ + auto book = getBook(); + return book->getColorTheme(); +} + void BookService::setColorTheme(const QString& colorTheme) { auto book = getBook(); diff --git a/src/application/services/book_service.hpp b/src/application/services/book_service.hpp index a99ae6a6c..5bce65411 100644 --- a/src/application/services/book_service.hpp +++ b/src/application/services/book_service.hpp @@ -47,6 +47,7 @@ class BookService : public IBookService float getZoom() const override; void setZoom(float newZoom) override; + QString getColorTheme() override; void setColorTheme(const QString& colorTheme) override; core::FilteredTOCModel* getTableOfContents() override; diff --git a/src/domain/entities/book.cpp b/src/domain/entities/book.cpp index f10ff3a5d..b5dab281f 100644 --- a/src/domain/entities/book.cpp +++ b/src/domain/entities/book.cpp @@ -507,6 +507,8 @@ void Book::update(const Book& other) m_metaData.hasCover = other.hasCover(); if(m_metaData.coverPath != other.getCoverPath()) m_metaData.coverPath = other.getCoverPath(); + if(m_metaData.colorTheme != other.getColorTheme()) + m_metaData.colorTheme = other.getColorTheme(); if(!tagsAreTheSame(other.getTags())) m_tags = other.getTags(); diff --git a/src/presentation/readingPage/MDocumentView.qml b/src/presentation/readingPage/MDocumentView.qml index 148013516..7e2816e0a 100644 --- a/src/presentation/readingPage/MDocumentView.qml +++ b/src/presentation/readingPage/MDocumentView.qml @@ -141,7 +141,7 @@ Pane { bookController: BookController height: implicitHeight width: implicitWidth - colorInverted: SettingsController.appearanceSettings.PageColorMode === "Inverted" + colorInverted: BookController.colorTheme === "Inverted" includeNewLinesInCopiedText: SettingsController.behaviorSettings.IncludeNewLinesInCopiedText === "ON" anchors.horizontalCenter: if (parent != null) parent.horizontalCenter diff --git a/src/presentation/readingPage/readingToolbar/MReadingOptionsPopup.qml b/src/presentation/readingPage/readingToolbar/MReadingOptionsPopup.qml index 48a454461..e4d12e57e 100644 --- a/src/presentation/readingPage/readingToolbar/MReadingOptionsPopup.qml +++ b/src/presentation/readingPage/readingToolbar/MReadingOptionsPopup.qml @@ -127,17 +127,13 @@ Popup { onClicked: { let value = "" - let current = SettingsController.appearanceSettings.PageColorMode + let current = BookController.colorTheme if (current === "Normal") value = "Inverted" else value = "Normal" - SettingsController.setSetting( - SettingKeys.PageColorMode, value, - SettingGroups.Appearance) - - BookController.setColorTheme(value) + BookController.colorTheme = value } } diff --git a/src/presentation/translations/librum_de.ts b/src/presentation/translations/librum_de.ts index d146ed9b1..603a63e23 100644 --- a/src/presentation/translations/librum_de.ts +++ b/src/presentation/translations/librum_de.ts @@ -1474,17 +1474,17 @@ Lösche alte Bücher um Speicherplatzu freizugeben oder upgrade deinen Account.< Invers - + Sync book Buch synchronisieren - + More options Mehr Optionen - + Save Speichern diff --git a/src/presentation/translations/librum_en.ts b/src/presentation/translations/librum_en.ts index 227202935..56cd4103d 100644 --- a/src/presentation/translations/librum_en.ts +++ b/src/presentation/translations/librum_en.ts @@ -1281,17 +1281,17 @@ Delete unused books to free up space or upgrade. - + Sync book - + More options - + Save diff --git a/src/presentation/translations/librum_ru.ts b/src/presentation/translations/librum_ru.ts index 544287e11..defc6df1f 100644 --- a/src/presentation/translations/librum_ru.ts +++ b/src/presentation/translations/librum_ru.ts @@ -1407,17 +1407,17 @@ Delete unused books to free up space or upgrade. Поменять цвета - + Sync book Обновить - + More options Ещё - + Save Сохранить