Skip to content

Commit

Permalink
Merge pull request #346 from YACReader/develop
Browse files Browse the repository at this point in the history
9.10 release
  • Loading branch information
luisangelsm committed Oct 30, 2022
2 parents 2a9a3fb + 4c2b6da commit 6cc92a2
Show file tree
Hide file tree
Showing 438 changed files with 18,554 additions and 3,534 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -45,6 +45,7 @@ Makefile*
*.xcworkspace*
*xcshareddata*
*.swp
*.qm

# Qt unit tests
target_wrapper.*
Expand Down
22 changes: 22 additions & 0 deletions CHANGELOG.md
Expand Up @@ -2,6 +2,28 @@

Version counting is based on semantic versioning (Major.Feature.Patch)

## 9.10

### YACReader
* Fixed color selection dialog appearing as a subwindow in macos.
* Better support for HDPI screens (SVG icons).

### YACReaderLibrary
* Update QtWebApp webserver to v1.8.6
* New folder content view that replaces the old `subfolders in this folder` view shown when folders don't have direct comics.
* Fixed going forward in history navigation.
* Continue Reading view that it is shown for the root folder.
* UI gets updated when YACReaderLibrary gets updates from YACReader or YACReader for iOS.
* Linux: Add fallback for dynamically loading libqrencode on distros that don't provide unversioned library symlinks
* Fixed selected folder restoration after folder updates.
* Better support for HDPI screens (SVG icons).
* Add option to delete metadata from comics.
* Importing ComicInfo.XML is now optional and disabled by default, you can change the behavior in Settings -> General.
* Add option to scan XML metadata from all the comics in a folder.

### Server
* Add webui status page (reachable by navigating to server::port/webui)

## 9.9.2

### General
Expand Down
17 changes: 11 additions & 6 deletions README.md
Expand Up @@ -21,6 +21,8 @@ This software has been developed by Luis Ángel San Martín Rodríguez
### Official releases:
[https://github.com/YACReader/yacreader/releases](https://github.com/YACReader/yacreader/releases)

[<img src="https://flathub.org/assets/badges/flathub-badge-en.png" width="100"/>](https://flathub.org/apps/details/com.yacreader.YACReader)

### As a package:

[![Packaging status](https://repology.org/badge/vertical-allrepos/yacreader.svg)](https://repology.org/metapackage/yacreader)
Expand All @@ -47,20 +49,20 @@ If you need help or have any suggestion, please, send me an e-mail.
## Contributing
If you are interested in contributing to the project the first step should be to contact me so we can plan together the best approach, you can send an e-mail or just open an issue in this repo. For small bug fixes it is usually ok to open a PR directly.

Contributions are not restricted to code, you can help the project by bringing new UI/UX ideas, designing new assets, writing manuals or tutorials, translating the apps, etc. If you are interested in DevOps, YACReader uses Azure Pipelines for CI/CD, any improvements in that area are welcome. Testing pre-releases is also really appreciated.
Contributions are not restricted to coding; you can help the project by bringing new UI/UX ideas, designing new assets, writing manuals or tutorials, translating the apps, etc. If you are interested in DevOps, YACReader uses Azure Pipelines for CI/CD, any improvements in that area are welcome. Testing pre-releases is also really appreciated.

#### Dev Setup
YACReader is developed in *c++/Qt*, so the first thing you need to do is to install a *C++* compiler or environment that supports at least *C++17* and *Qt*. In *Windows* I use *Visual Studio Community Edition 2019* as build system and in *macos* I use Xcode, but I do all the coding using *QtCreator*. The project is adding support to *Qt6* and it alreaady compiles under it but it is not ready to ship, so you need to make sure that everything works in both *Qt5* and *Qt6*, you only need to install *Qt5* for now and *CI* will check that everything builds with *Qt6*.
YACReader is developed in *c++/Qt*, so the first thing you need to do is to install a *C++* compiler or environment that supports at least *C++17* and *Qt*. In *Windows* I use *Visual Studio Community Edition 2019* as build system and in *macos* I use Xcode, but I do all the coding using *QtCreator*. The project is adding support to *Qt6* and it already compiles under it but it is not ready to ship, so you need to make sure that everything works in both *Qt5* and *Qt6*, you only need to install *Qt5* for now and *CI* will check that everything builds with *Qt6*.

The repo includes binaries for the dependencies needed for *Windows* (MSVC compiler) and *macos* (clang) but you need to configure *7zip/p7zip* dependency manually, please take a look at *compressed_archive/README_7zip.txt*.

##### Running and debuging
YACReader needs to find its dependencies at runtime, make sure that *Qt* binaries are in your *PATH* and the third party binaries are next to the executable. The best way to make sure you have all the thirdparty binaries in place is to check YACReader installation and copying the binaries in your output folder.
##### Running and debugging
YACReader needs to find its dependencies at runtime, make sure that *Qt* binaries are in your *PATH* and the third-party binaries are next to the executable. The best way to make sure you have all the third-party binaries in place is to check YACReader installation and copy the binaries in your output folder.

If you have the time and the energy, please open a PR with a script that automatizes any of these manual proceses.
If you have the time and the energy, please open a PR with a script that automatizes any of these manual processes.

#### Code Format
YACReader uses `clang-format` to ensure a common style and avoid deviances from it. CI checks this and will fail if the correct format is not used. `clang-format` needs to be called recursively in all the folders because some of them have the own `.clang-format` file, mainly to exclude changing the format in third-party libraries which are included in the source code. I recommend to configure your development tools to use `clang-format`, you can try to use it manually, but please, do it always before committing changes. I recommend using QtCreator configured properly, you can find a tutorial [here]( https://www.vikingsoftware.com/using-clang-format-with-qtcreator/).
YACReader uses `clang-format` to ensure a common style and avoid deviances from it. CI checks this and will fail if the correct format is not used. `clang-format` needs to be called recursively in all the folders because some of them have their own `.clang-format` file, mainly to exclude changing the format in third-party libraries which are included in the source code. I recommend configuring your development tools to use `clang-format`, you can try to use it manually, but please, do it always before committing changes. I recommend using QtCreator configured properly, you can find a tutorial [here]( https://www.vikingsoftware.com/using-clang-format-with-qtcreator/).

#### CI/CD
Any PR will be validated through CI, and it will not be merged if CI fails.
Expand All @@ -70,3 +72,6 @@ The base and target branch for any PR should always be `develop`.

## Donations
YACReader is free but it needs money to keep being alive, so please, if you like YACReader, visit the home page and make a donation.

## Hacktoberfest
If you are interested in YACReader, please contact me so we can discuss your next steps.
29 changes: 23 additions & 6 deletions YACReader/YACReader.pro
Expand Up @@ -171,11 +171,7 @@ include(../compressed_archive/libarchive/libarchive-wrapper.pri)
include(../shortcuts_management/shortcuts_management.pri)

RESOURCES += yacreader_images.qrc \
yacreader_files.qrc

win32:RESOURCES += yacreader_images_win.qrc
unix:!macx:RESOURCES += yacreader_images_win.qrc
macx:RESOURCES += yacreader_images_osx.qrc
yacreader_files.qrc

include(../third_party/QsLog/QsLog.pri)

Expand All @@ -197,7 +193,28 @@ TRANSLATIONS = yacreader_es.ts \
yacreader_zh_TW.ts \
yacreader_zh_HK.ts \
yacreader_it.ts \
yacreader_source.ts
yacreader_en.ts

CONFIG += lrelease

win32 {
CONFIG(release, debug|release) {
SOURCE_QM_DIR = $$OUT_PWD/release/*.qm
}
CONFIG(debug, debug|release) {
SOURCE_QM_DIR = $$OUT_PWD/debug/*.qm
}

DEPLOYMENT_OUT_QM_DIR = ../release/languages/
OUT_QM_DIR = $${DESTDIR}/languages/

QMAKE_POST_LINK += $(MKDIR) $$shell_path($${OUT_QM_DIR}) 2> NULL & \
$(COPY) $$shell_path($${SOURCE_QM_DIR}) $$shell_path($${OUT_QM_DIR}) & \
$(MKDIR) $$shell_path($${DEPLOYMENT_OUT_QM_DIR}) 2> NULL & \
$(COPY) $$shell_path($${SOURCE_QM_DIR}) $$shell_path($${DEPLOYMENT_OUT_QM_DIR})
} else {
LRELEASE_DIR = ../release/languages/
}

unix:!macx {
# set install prefix if it's empty
Expand Down
5 changes: 2 additions & 3 deletions YACReader/main.cpp
Expand Up @@ -173,11 +173,10 @@ int main(int argc, char *argv[])
logger.addDestination(std::move(fileDestination));

QTranslator translator;
QString sufix = QLocale::system().name();
#if defined Q_OS_UNIX && !defined Q_OS_MAC
translator.load(QString(DATADIR) + "/yacreader/languages/yacreader_" + sufix);
translator.load(QLocale(), "yacreader", "_", QString(DATADIR) + "/yacreader/languages");
#else
translator.load(QCoreApplication::applicationDirPath() + "/languages/yacreader_" + sufix);
translator.load(QLocale(), "yacreader", "_", "languages");
#endif
app.installTranslator(&translator);
auto mwv = new MainWindowViewer();
Expand Down

0 comments on commit 6cc92a2

Please sign in to comment.