Skip to content

Commit

Permalink
Made books save and restore their own color theme
Browse files Browse the repository at this point in the history
  • Loading branch information
dmitr-fedorov committed Dec 7, 2023
1 parent 33dcd15 commit 85d2578
Show file tree
Hide file tree
Showing 12 changed files with 42 additions and 25 deletions.
16 changes: 11 additions & 5 deletions src/adapters/controllers/book_controller.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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();
Expand Down
5 changes: 3 additions & 2 deletions src/adapters/controllers/book_controller.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;

Expand Down
8 changes: 6 additions & 2 deletions src/adapters/interfaces/controllers/i_book_controller.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand All @@ -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;

Expand All @@ -102,6 +105,7 @@ class ADAPTERS_EXPORT IBookController : public QObject
void searchCaseSensitiveChanged();
void searchFromStartChanged();
void bookmarksModelChanged();
void colorThemeChanged(const QString& colorTheme);
};

} // namespace adapters
1 change: 1 addition & 0 deletions src/application/interfaces/services/i_book_service.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
6 changes: 6 additions & 0 deletions src/application/services/book_service.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
1 change: 1 addition & 0 deletions src/application/services/book_service.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
2 changes: 2 additions & 0 deletions src/domain/entities/book.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
2 changes: 1 addition & 1 deletion src/presentation/readingPage/MDocumentView.qml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
}

Expand Down
6 changes: 3 additions & 3 deletions src/presentation/translations/librum_de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1474,17 +1474,17 @@ Lösche alte Bücher um Speicherplatzu freizugeben oder upgrade deinen Account.<
<translation type="vanished">Invers</translation>
</message>
<message>
<location filename="../readingPage/readingToolbar/MReadingOptionsPopup.qml" line="152"/>
<location filename="../readingPage/readingToolbar/MReadingOptionsPopup.qml" line="148"/>
<source>Sync book</source>
<translation>Buch synchronisieren</translation>
</message>
<message>
<location filename="../readingPage/readingToolbar/MReadingOptionsPopup.qml" line="170"/>
<location filename="../readingPage/readingToolbar/MReadingOptionsPopup.qml" line="166"/>
<source>More options</source>
<translation>Mehr Optionen</translation>
</message>
<message>
<location filename="../readingPage/readingToolbar/MReadingOptionsPopup.qml" line="191"/>
<location filename="../readingPage/readingToolbar/MReadingOptionsPopup.qml" line="187"/>
<source>Save</source>
<translation>Speichern</translation>
</message>
Expand Down
6 changes: 3 additions & 3 deletions src/presentation/translations/librum_en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1281,17 +1281,17 @@ Delete unused books to free up space or upgrade.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../readingPage/readingToolbar/MReadingOptionsPopup.qml" line="152"/>
<location filename="../readingPage/readingToolbar/MReadingOptionsPopup.qml" line="148"/>
<source>Sync book</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../readingPage/readingToolbar/MReadingOptionsPopup.qml" line="170"/>
<location filename="../readingPage/readingToolbar/MReadingOptionsPopup.qml" line="166"/>
<source>More options</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../readingPage/readingToolbar/MReadingOptionsPopup.qml" line="191"/>
<location filename="../readingPage/readingToolbar/MReadingOptionsPopup.qml" line="187"/>
<source>Save</source>
<translation type="unfinished"></translation>
</message>
Expand Down
6 changes: 3 additions & 3 deletions src/presentation/translations/librum_ru.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1407,17 +1407,17 @@ Delete unused books to free up space or upgrade.</source>
<translation>Поменять цвета</translation>
</message>
<message>
<location filename="../readingPage/readingToolbar/MReadingOptionsPopup.qml" line="152"/>
<location filename="../readingPage/readingToolbar/MReadingOptionsPopup.qml" line="148"/>
<source>Sync book</source>
<translation>Обновить</translation>
</message>
<message>
<location filename="../readingPage/readingToolbar/MReadingOptionsPopup.qml" line="170"/>
<location filename="../readingPage/readingToolbar/MReadingOptionsPopup.qml" line="166"/>
<source>More options</source>
<translation>Ещё</translation>
</message>
<message>
<location filename="../readingPage/readingToolbar/MReadingOptionsPopup.qml" line="191"/>
<location filename="../readingPage/readingToolbar/MReadingOptionsPopup.qml" line="187"/>
<source>Save</source>
<translation>Сохранить</translation>
</message>
Expand Down

0 comments on commit 85d2578

Please sign in to comment.