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
Сохранить