diff --git a/.github/ISSUE_TEMPLATE/1_fix-strip.md b/.github/ISSUE_TEMPLATE/1_fix-strip.md new file mode 100644 index 00000000..85f0823d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/1_fix-strip.md @@ -0,0 +1,25 @@ +--- +name: Fix strip +about: Extracting a comic strip for Daily Comics is broken +title: "[Fix strip] " +labels: 'fix strip' +--- + +**Daily Comics VERSION** (Daily Comics → [Top pulley] About): ***``*** +
+ +#### REQUIRED DATA +- Name of the strip
+ ***\*** +- Document, whose source code allows for extracting a URL to a single image of the newest, published strip by a RegEx (see next bullet point). This page may be identical to the home-page of the strip.
+ ***\*** +- An idea for a RegEx (regular expression) to do so, containing a sub-expression which exactly matches the image URL
+ ***``*** +- If such a single RegEx is not feasible, please design a JavaScript code snippet, which extracts the URL to the image of the current comic strip from the document retrieved via the URL provided in the first bullet point of this section "NECESSARY DATA". + ``` + + ``` + +#### ADDITIONAL INFORMATION +*\* + diff --git a/.github/ISSUE_TEMPLATE/2_new-strip.md b/.github/ISSUE_TEMPLATE/2_new-strip.md new file mode 100644 index 00000000..b3b608e2 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/2_new-strip.md @@ -0,0 +1,41 @@ +--- +name: New strip +about: Suggest a new comic strip for Daily Comics +title: "[New strip] " +labels: 'new strip' +--- + +**Daily Comics VERSION** (Daily Comics → [Top pulley] About): ***``*** +
+ +#### REQUIRED DATA +- Name of the strip
+ ***\*** +- Author(s)
+ ***\*** +- Home webpage
+ ***\*** +- Existing strip, which is very typical for this comic strip; *should* include the main character(s) and / or scenery of this strip
+ ***\*** +- Easily recognisable logo, icon or picture for the cover page of this + strip; *might* include either a scetch of the author(s), or the main character(s) and / or scenery of this strip
+ ***\*** + +See **[this document] ()** for details on these requirements, the image resolutions stated there are the minimal ones: Images can be easily downscaled, but up-scaling always involves a significant loss of visual quality. + +#### NECESSARY DATA +These are technically necessary to implement a new strip source in Daily Comics. +- Document, whose source code allows for extracting a URL to a single image of the newest, published strip by a RegEx (see next bullet point). This page can be identical to the home-page of the strip, which must be provided in the prior section "REQUIRED DATA".
+ ***\*** +- An idea for a RegEx (regular expression) to do so, containing a sub-expression which exactly matches the image URL
+ ***``*** +- If such a single RegEx is not feasible, please design a JavaScript code snippet, which extracts the URL to the image of the current comic strip from the document retrieved via the URL provided in the first bullet point of this section "NECESSARY DATA". + ``` + + ``` + +Also providing this necessary data lowers the time and effort it takes to implement a new strip significantly. Or provide a pull request (PR) for this new comic strip, after having read **[this guidance] ()**. + +#### ADDITIONAL INFORMATION +*\* + diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md new file mode 100644 index 00000000..7ebf0eb0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -0,0 +1,23 @@ +--- +name: Bug report +about: Report a bug for this project +title: "[Bug] " +labels: 'bug' +--- + +**SailfishOS VERSION** (Settings → About product → Build): ***``*** +
**HARDWARE** (Settings → About product → Manufacturer & Product name): ***\, \*** +
**Daily Comics VERSION** (Daily Comics → [Top pulley] About): ***``*** +
+ +#### BUG DESCRIPTION +*\* + +#### STEPS TO REPRODUCE +1. *\* +2. *\* +3. *\* + +#### ADDITIONAL INFORMATION +*\* + diff --git a/.github/ISSUE_TEMPLATE/help-form.md b/.github/ISSUE_TEMPLATE/help-form.md new file mode 100644 index 00000000..f0c25ad9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/help-form.md @@ -0,0 +1,23 @@ +--- +name: Help form +about: Questions about this project +title: "[Help] " +labels: 'question' +--- + +**SailfishOS VERSION** (Settings → About product → Build): ***``*** +
**HARDWARE** (Settings → About product → Manufacturer & Product name): ***\, \*** +
**Daily Comics VERSION** (Daily Comics → [Top pulley] About): ***``*** +
+ +#### QUESTION +*\
* + +#### STEPS TO REPRODUCE +1. *\* +2. *\* +3. *\* + +#### ADDITIONAL INFORMATION +*\* + diff --git a/.github/ISSUE_TEMPLATE/suggestion.md b/.github/ISSUE_TEMPLATE/suggestion.md new file mode 100644 index 00000000..33c7cfa4 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/suggestion.md @@ -0,0 +1,13 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: "[Suggestion] " +labels: 'feature request' +--- + +#### DESCRIPTION +*\* + +#### ADDITIONAL INFORMATION +*\* + diff --git a/.github/workflows/build-on-pull_req.yml b/.github/workflows/build-on-pull_req.yml new file mode 100644 index 00000000..cde3fa05 --- /dev/null +++ b/.github/workflows/build-on-pull_req.yml @@ -0,0 +1,62 @@ +name: CI on PRs with SDK for 2.2.0 (i486) + +env: + RELEASE: 2.2.0.29 + ARCH: i486 + # Do not wait up to the default of 10 minutes for network timeouts in a workflow which runs ca. 3 minutes. + SEGMENT_DOWNLOAD_TIMEOUT_MINS: 1 + +on: + pull_request: + branches: + - devel + - master + # Allows to run this workflow manually from the Actions tab. + workflow_dispatch: + +defaults: + run: + # Note that 'bash' provides -o pipefail, in contrast to the default (i.e., unspecified, which also uses bash) or 'sh', + # see https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsshell + shell: sh + +# Do not use concurrency in order to enforce checking every commit of a Pull Request. +# See, e.g.: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-only-cancel-in-progress-jobs-or-runs-for-the-current-workflow +#concurrency: + #group: ci-${{ github.ref_name }} + # 'false' (default) allows for two concurrent runs, one executing and one freshly enqueued; 'true' for only one; no 'concurrency:' defined for multiple. + #cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-22.04 + steps: + + - name: Checkout + uses: actions/checkout@v3 + + # Caching Docker images is not ready yet, see + # https://github.com/storeman-developers/harbour-storeman-installer/blob/devel/cache-docker-images_github-ci.md + #- name: Cache Docker images of the Sailfish-SDK + # id: cache-sdk + # uses: actions/cache@v3 + # with: + # path: $GITHUB_WORKSPACE/… + # key: cache + + - name: Prepare + run: mkdir RPMS + + - name: Build ${{ env.ARCH }} + uses: coderus/github-sfos-build@old-stable + with: + # Solely builds for i486 on 2.2.0, because of https://github.com/sailfishos-patches/patchmanager/pull/437#issuecomment-1615317003 + release: ${{ env.RELEASE }} + arch: ${{ env.ARCH }} + + - name: Upload build result + uses: actions/upload-artifact@v3 + with: + name: RPM-build-results_${{ github.base_ref }}-${{ env.ARCH }}-SFOS2.2.0+ + path: RPMS/ + diff --git a/.github/workflows/build-on-tags.yml b/.github/workflows/build-on-tags.yml new file mode 100644 index 00000000..d2febb89 --- /dev/null +++ b/.github/workflows/build-on-tags.yml @@ -0,0 +1,208 @@ +name: CI on tags (aarch64,armv7hl,i486) + +on: + push: + tags: + # '**' also matches the slash ('/'), in contrast to '*', + # see https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet + - '**' + # Allows to run this workflow manually from the Actions tab. + #workflow_dispatch: + # Rather set a new tag in the format N/X.Y.Z (e.g., 1/0.6.3) to build a release originally tagged with 0.6.3 again. + +defaults: + run: + # Note that 'bash' provides -o pipefail, in contrast to the default (i.e., unspecified, which also uses bash) or 'sh', + # see https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsshell + shell: sh + +# See, e.g.: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-only-cancel-in-progress-jobs-or-runs-for-the-current-workflow +concurrency: + group: ci-${{ github.ref_name }} + # 'false' (default) allows for two concurrent runs, one executing and one freshly enqueued; 'true' for only one; no 'concurrency:' defined for multiple. + cancel-in-progress: true + +jobs: + SDK-220: + runs-on: ubuntu-22.04 + env: + # For the available docker images, see https://github.com/CODeRUS/docker-sailfishos-platform-sdk + RELEASE: 2.2.0.29 + # Do not wait up to the default of 10 minutes for network timeouts in a workflow which runs ca. 10 minutes. + SEGMENT_DOWNLOAD_TIMEOUT_MINS: 2 + steps: + + - name: Checkout + uses: actions/checkout@v3 + + # Caching Docker images is not ready yet, see + # https://github.com/storeman-developers/harbour-storeman-installer/blob/devel/cache-docker-images_github-ci.md + #- name: Cache Docker images of the Sailfish-SDK + # id: cache-sdk + # uses: actions/cache@v3 + # with: + # path: $GITHUB_WORKSPACE/… + # key: cache + + - name: Prepare + run: mkdir RPMS + + - name: Build armv7hl on ${{ env.RELEASE }} + uses: coderus/github-sfos-build@old-stable + with: + release: ${{ env.RELEASE }} + arch: armv7hl + + - name: Build i486 on ${{ env.RELEASE }} + uses: coderus/github-sfos-build@old-stable + with: + release: ${{ env.RELEASE }} + arch: i486 + + - name: Upload build results + uses: actions/upload-artifact@v3 + with: + name: RPM-build-results_SFOS${{ env.RELEASE }}+ + path: RPMS/ + + + SDK-310: + runs-on: ubuntu-22.04 + env: + # For the available docker images, see https://github.com/CODeRUS/docker-sailfishos-platform-sdk + RELEASE: 3.1.0.12 + # Do not wait up to the default of 10 minutes for network timeouts in a workflow which runs ca. 10 minutes. + SEGMENT_DOWNLOAD_TIMEOUT_MINS: 2 + steps: + + - name: Checkout + uses: actions/checkout@v3 + + # Caching Docker images is not ready yet, see + # https://github.com/storeman-developers/harbour-storeman-installer/blob/devel/cache-docker-images_github-ci.md + #- name: Cache Docker images of the Sailfish-SDK + # id: cache-sdk + # uses: actions/cache@v3 + # with: + # path: $GITHUB_WORKSPACE/… + # key: cache + + - name: Prepare + run: mkdir RPMS + + - name: Build armv7hl on ${{ env.RELEASE }} + uses: coderus/github-sfos-build@old-stable + with: + release: ${{ env.RELEASE }} + arch: armv7hl + + - name: Build i486 on ${{ env.RELEASE }} + uses: coderus/github-sfos-build@old-stable + with: + release: ${{ env.RELEASE }} + arch: i486 + + - name: Upload build results + uses: actions/upload-artifact@v3 + with: + name: RPM-build-results_SFOS${{ env.RELEASE }}+ + path: RPMS/ + + + SDK-340_401: + runs-on: ubuntu-22.04 + env: + # For the available docker images, see https://github.com/CODeRUS/docker-sailfishos-platform-sdk + RELEASE: 3.4.0.24 + # Do not wait up to the default of 10 minutes for network timeouts in a workflow which runs ca. 10 minutes. + SEGMENT_DOWNLOAD_TIMEOUT_MINS: 2 + steps: + + - name: Checkout + uses: actions/checkout@v3 + + # Caching Docker images is not ready yet, see + # https://github.com/storeman-developers/harbour-storeman-installer/blob/devel/cache-docker-images_github-ci.md + #- name: Cache Docker images of the Sailfish-SDK + # id: cache-sdk + # uses: actions/cache@v3 + # with: + # path: $GITHUB_WORKSPACE/… + # key: cache + + - name: Prepare + run: mkdir RPMS + + - name: Build aarch64 on 4.0.1.45 + uses: coderus/github-sfos-build@old-stable + with: + release: 4.0.1.45 + arch: aarch64 + + - name: Build armv7hl on ${{ env.RELEASE }} + uses: coderus/github-sfos-build@old-stable + with: + release: ${{ env.RELEASE }} + arch: armv7hl + + - name: Build i486 on ${{ env.RELEASE }} + uses: coderus/github-sfos-build@old-stable + with: + release: ${{ env.RELEASE }} + arch: i486 + + - name: Upload build results + uses: actions/upload-artifact@v3 + with: + name: RPM-build-results_SFOS${{ env.RELEASE }}+ + path: RPMS/ + + + SDK-440: + runs-on: ubuntu-22.04 + env: + # For the available docker images, see https://github.com/CODeRUS/docker-sailfishos-platform-sdk + RELEASE: 4.4.0.68 + # Do not wait up to the default of 10 minutes for network timeouts in a workflow which runs ca. 10 minutes. + SEGMENT_DOWNLOAD_TIMEOUT_MINS: 2 + steps: + + - name: Checkout + uses: actions/checkout@v3 + + # Caching Docker images is not ready yet, see + # https://github.com/storeman-developers/harbour-storeman-installer/blob/devel/cache-docker-images_github-ci.md + #- name: Cache Docker images of the Sailfish-SDK + # id: cache-sdk + # uses: actions/cache@v3 + # with: + # path: $GITHUB_WORKSPACE/… + # key: cache + + - name: Prepare + run: mkdir RPMS + + - name: Build aarch64 on ${{ env.RELEASE }} + uses: coderus/github-sfos-build@master + with: + release: ${{ env.RELEASE }} + arch: aarch64 + + - name: Build armv7hl on ${{ env.RELEASE }} + uses: coderus/github-sfos-build@master + with: + release: ${{ env.RELEASE }} + arch: armv7hl + + - name: Build i486 on ${{ env.RELEASE }} + uses: coderus/github-sfos-build@master + with: + release: ${{ env.RELEASE }} + arch: i486 + + - name: Upload build results + uses: actions/upload-artifact@v3 + with: + name: RPM-build-results_SFOS${{ env.RELEASE }}+ + path: RPMS/ + diff --git a/.gitignore b/.gitignore index 3af9bbed..705d331b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,45 @@ -# Qt Creator project file -harbour-dailycomics.pro.user* +# C++ objects and libs +*.slo +*.lo +*.o +*.a +*.la +*.lai +*.so +*.dll +*.dylib + +# Qt-es +/.qmake.cache +/.qmake.stash +*.pro.user +*.pro.user.* +*.qbs.user +*.qbs.user.* +*.moc +moc_*.cpp +qrc_*.cpp +ui_*.h +Makefile* +*-build-* + +# QtCreator +*.autosave +*.list + +# QtCtreator Qml +*.qmlproject.user +*.qmlproject.user.* + +# Development folders +resources + +# Generated data +qml/images + +# Translation +translations/*.qm + +# Sailfish SDK binaries +RPMS +harbour-dailycomics diff --git a/.transifex/config.yml b/.transifex/config.yml new file mode 100644 index 00000000..e0ac35db --- /dev/null +++ b/.transifex/config.yml @@ -0,0 +1,12 @@ +git: + # Basic setup guide for GitHub: + # https://help.transifex.com/en/articles/6265125-github-via-transifex-ui + filters: + - filter_type: file + # All supported i18n types (hard to find): https://docs.transifex.com/formats + file_format: QT + source_language: en + source_file: translations/harbour-dailycomics.ts + # Path expression to translation files, must be quoted in single-quotes + # and must contain placeholder: + translation_files_expression: 'translations/harbour-dailycomics-.ts' diff --git a/LICENSE.txt b/LICENSE.txt index b0716c97..27a0b607 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,26 +1,28 @@ The MIT License (MIT) Source Code: -Copyright (c) 2015-2019 Damien Tardy-Panis , +Copyright (c) 2015-2019 Damien Tardy-Panis , see https://github.com/sailfishos-applications/daily-comics/commits?author=tardypad Copyright (c) 2016,2019 Haucke Schade , see https://github.com/sailfishos-applications/daily-comics/commits?author=cnlpete -Copyright (c) 2018-2020 Oleg Linkin , +Copyright (c) 2018-2020 Oleg Linkin , see https://github.com/sailfishos-applications/daily-comics/commits?author=Maledictus -and some commits as "Oleg Linkin" -Copyright (c) 2020 ichthyosaurus , +and some commits just as "Oleg Linkin" +Copyright (c) 2020 Mirian Margiani , see https://github.com/sailfishos-applications/daily-comics/commits?author=ichthyosaurus +Copyright (c) 2023 olf , +see https://github.com/sailfishos-applications/daily-comics/commits?author=Olf0 Plugins: -Copyright (c) 2015-2019 Damien Tardy-Panis , +Copyright (c) 2015-2019 Damien Tardy-Panis , see https://github.com/sailfishos-applications/daily-comics/commits?author=tardypad Copyright (c) 2018 Erik Mållberg , see https://github.com/sailfishos-applications/daily-comics/commits?author=f03el -Copyright (c) 2018-2020 Oleg Linkin , +Copyright (c) 2018-2020 Oleg Linkin , see https://github.com/sailfishos-applications/daily-comics/commits?author=Maledictus Copyright (c) 2019 Rob K , see https://github.com/sailfishos-applications/daily-comics/commits?author=cow-n-berg -and on 2019-04-19 two commits just as Rob K +and on 2019-04-19 two commits just as "Rob K" Copyright (c) 2019 caio2k , see https://github.com/sailfishos-applications/daily-comics/commits?author=caio2k Copyright (c) 2019 sthocs , @@ -31,21 +33,21 @@ Copyright (c) 2020 Joni Korhonen, see https://github.com/sailfishos-applications/daily-comics/commit/47a83f15c3c43ac189cd31ea327e98cad19addb3 Copyright (c) 2020,2023 olf , see https://github.com/sailfishos-applications/daily-comics/commits?author=Olf0 -Copyright (c) 2020,2023 olf , -see https://github.com/sailfishos-applications/daily-comics/commits?author=Olf0 -Copyright (c) 2020,2023 olf , -see https://github.com/sailfishos-applications/daily-comics/commits?author=Olf0 Translations: - [de]: Copyright (c) 2016,2019 Haucke Schade , see https://github.com/sailfishos-applications/daily-comics/commits?author=cnlpete - Copyright (c) 2020 ichthyosaurus , + Copyright (c) 2020 Mirian Margiani , see https://github.com/sailfishos-applications/daily-comics/commits?author=ichthyosaurus - [fr]: Copyright (c) 2018,2019 lutinotmalin , see https://github.com/sailfishos-applications/daily-comics/commits?author=lutinotmalin - [sv]: Copyright (c) 2018 Erik Lundin, see https://github.com/sailfishos-applications/daily-comics/commit/dfd23fb435a846fe5776a440669d92fe2eb5c39d +Canonical references for this license: +- https://spdx.org/licenses/MIT.html +- https://opensource.org/license/mit/ + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights diff --git a/harbour-dailycomics.desktop b/harbour-dailycomics.desktop index cd8d1343..b045909e 100644 --- a/harbour-dailycomics.desktop +++ b/harbour-dailycomics.desktop @@ -5,3 +5,6 @@ Name=Daily Comics Icon=harbour-dailycomics Exec=harbour-dailycomics +[X-Sailjail] +Sandboxing=Disabled + diff --git a/qml/components/ComicInfoPanel.qml b/qml/components/ComicInfoPanel.qml index 12a39936..d35c9285 100644 --- a/qml/components/ComicInfoPanel.qml +++ b/qml/components/ComicInfoPanel.qml @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ import QtQuick 2.0 diff --git a/qml/components/ComicItem.qml b/qml/components/ComicItem.qml index 62013d65..1c74b51d 100644 --- a/qml/components/ComicItem.qml +++ b/qml/components/ComicItem.qml @@ -1,9 +1,9 @@ /** * Copyright (c) 2018-2019 Oleg Linkin - * Copyright (c) 2020 Mirian Margiani + * Copyright (c) 2020 Mirian Margiani * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ import QtQuick 2.0 diff --git a/qml/components/Constants.qml b/qml/components/Constants.qml index ee4956bf..4ff1b6ac 100644 --- a/qml/components/Constants.qml +++ b/qml/components/Constants.qml @@ -1,8 +1,9 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis - * + * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2023 olf + * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ import QtQuick 2.0 @@ -14,7 +15,7 @@ QtObject { property string maintainerMail: "maledictusdemagog@gmail.com" property string maintainerGithub: "https://github.com/Maledictus" - property url repoGithub: "https://github.com/tardypad/sailfishos-daily-comics" + property url repoGithub: "https://github.com/sailfishos-applications/daily-comics" property string mailSubjectHeader: "[SailfishOS][Daily Comics " + Qt.application.version + "] " property string mailErrorSubjectHeader: "[SailfishOS][Daily Comics " + Qt.application.version + "][Error] " diff --git a/qml/components/EndPanel.qml b/qml/components/EndPanel.qml index 8104fe84..9d1965cd 100644 --- a/qml/components/EndPanel.qml +++ b/qml/components/EndPanel.qml @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ import QtQuick 2.0 diff --git a/qml/components/ImageOverlay.qml b/qml/components/ImageOverlay.qml index 37c3cb90..53b89d6e 100644 --- a/qml/components/ImageOverlay.qml +++ b/qml/components/ImageOverlay.qml @@ -2,7 +2,7 @@ * Copyright (c) 2018-2019 Oleg Linkin * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ import QtQuick 2.0 diff --git a/qml/components/RequestContactDevRectangle.qml b/qml/components/RequestContactDevRectangle.qml index 62e3c1c7..917b25f0 100644 --- a/qml/components/RequestContactDevRectangle.qml +++ b/qml/components/RequestContactDevRectangle.qml @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ import QtQuick 2.0 diff --git a/qml/components/SettingsInfoHint.qml b/qml/components/SettingsInfoHint.qml index fc8130bb..021a9e4a 100644 --- a/qml/components/SettingsInfoHint.qml +++ b/qml/components/SettingsInfoHint.qml @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ import QtQuick 2.0 diff --git a/qml/components/SlideshowFlickHint.qml b/qml/components/SlideshowFlickHint.qml index 99f9464c..2c2ab395 100644 --- a/qml/components/SlideshowFlickHint.qml +++ b/qml/components/SlideshowFlickHint.qml @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ import QtQuick 2.0 diff --git a/qml/components/StatusRectangle.qml b/qml/components/StatusRectangle.qml index 4c58203f..f2f4d46a 100644 --- a/qml/components/StatusRectangle.qml +++ b/qml/components/StatusRectangle.qml @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ import QtQuick 2.0 diff --git a/qml/components/ZoomableImage.qml b/qml/components/ZoomableImage.qml index 4a01330d..87c59bae 100644 --- a/qml/components/ZoomableImage.qml +++ b/qml/components/ZoomableImage.qml @@ -1,10 +1,10 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * Copyright (c) 2018-2019 Oleg Linkin - * Copyright (c) 2020 Mirian Margiani + * Copyright (c) 2020 Mirian Margiani * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ import QtQuick 2.0 diff --git a/qml/cover/DefaultCover.qml b/qml/cover/DefaultCover.qml index 0011e0de..d70bf57c 100644 --- a/qml/cover/DefaultCover.qml +++ b/qml/cover/DefaultCover.qml @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ import QtQuick 2.0 diff --git a/qml/delegates/ComicsGridDelegate.qml b/qml/delegates/ComicsGridDelegate.qml index 9c78a472..4655a27d 100644 --- a/qml/delegates/ComicsGridDelegate.qml +++ b/qml/delegates/ComicsGridDelegate.qml @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ import QtQuick 2.0 diff --git a/qml/delegates/ComicsSettingsGridDelegate.qml b/qml/delegates/ComicsSettingsGridDelegate.qml index b811f9bf..401ee881 100644 --- a/qml/delegates/ComicsSettingsGridDelegate.qml +++ b/qml/delegates/ComicsSettingsGridDelegate.qml @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ import QtQuick 2.0 diff --git a/qml/harbour-dailycomics.qml b/qml/harbour-dailycomics.qml index 4ffe8a34..a2c65c0c 100644 --- a/qml/harbour-dailycomics.qml +++ b/qml/harbour-dailycomics.qml @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ import QtQuick 2.0 diff --git a/qml/pages/AboutPage.qml b/qml/pages/AboutPage.qml index 447b44e1..f164f22f 100644 --- a/qml/pages/AboutPage.qml +++ b/qml/pages/AboutPage.qml @@ -1,8 +1,11 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015-2019 Damien Tardy-Panis + * Copyright (c) 2016 Haucke Schade + * Copyright (c) 2019 Oleg Linkin + * Copyright (c) 2023 olf * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ import QtQuick 2.0 @@ -199,13 +202,13 @@ Page { id: codeLabel width: parent.width - 2*Theme.paddingLarge text: qsTr("The source code is available at -
%2 -
You can contact me for any remarks, -
bugs, feature requests, ideas,... -
-
Below are few resources to find new comics. -
Let me know as well which additional comics -
you would like to be included in the app.").arg(constants.repoGithub).arg(constants.repoGithub) + %2
+ You can contact me for any remarks, + bugs, feature requests, ideas,...
+
+ Below are few resources to find new comics.
+ Let me know as well which additional comics + you would like to be included in the app.").arg(constants.repoGithub).arg(constants.repoGithub) wrapMode: Text.WrapAtWordBoundaryOrAnywhere font.pixelSize: Theme.fontSizeExtraSmall horizontalAlignment: Text.AlignHCenter @@ -218,11 +221,11 @@ Page { id: resourcesLabel width: implicitWidth anchors.horizontalCenter: parent.horizontalCenter - text: "GoComics -
Tapastic -
Comics Kingdom -
WebToons -
Reddit webcomics" + text: "GoComics
+ Tapastic
+ Comics Kingdom
+ WebToons
+ Reddit webcomics" font.pixelSize: Theme.fontSizeExtraSmall lineHeight: 1.5 horizontalAlignment: Text.AlignLeft diff --git a/qml/pages/ComicInfoPage.qml b/qml/pages/ComicInfoPage.qml index 6bfd7cec..213c5df9 100644 --- a/qml/pages/ComicInfoPage.qml +++ b/qml/pages/ComicInfoPage.qml @@ -1,9 +1,9 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis - * Copyright (c) 2018-2019 Oleg Linkin + * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2018-2019 Oleg Linkin * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ import QtQuick 2.0 diff --git a/qml/pages/ComicPage.qml b/qml/pages/ComicPage.qml index f55fd46a..b081c96a 100644 --- a/qml/pages/ComicPage.qml +++ b/qml/pages/ComicPage.qml @@ -1,9 +1,9 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * Copyright (c) 2018-2019 Oleg Linkin * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ import QtQuick 2.0 diff --git a/qml/pages/ComicsSettingsPage.qml b/qml/pages/ComicsSettingsPage.qml index 89be7a12..038db327 100644 --- a/qml/pages/ComicsSettingsPage.qml +++ b/qml/pages/ComicsSettingsPage.qml @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ import QtQuick 2.0 diff --git a/qml/pages/FavoritesPage.qml b/qml/pages/FavoritesPage.qml index 9a4cf4f1..cc1a5566 100644 --- a/qml/pages/FavoritesPage.qml +++ b/qml/pages/FavoritesPage.qml @@ -1,8 +1,11 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015-2019 Damien Tardy-Panis + * Copyright (c) 2016 Haucke Schade + * Copyright (c) 2019 Oleg Linkin + * Copyright (c) 2023 olf * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ import QtQuick 2.0 @@ -66,22 +69,12 @@ Page { busy: favoriteComicsModel.newCount > 0 && !progressInfoBar.open MenuItem { - text: qsTr("Settings") - onClicked: pageStack.push(Qt.resolvedUrl("ComicsSettingsPage.qml")) + text: qsTr("About") + onClicked: pageStack.push(Qt.resolvedUrl("AboutPage.qml")) } MenuItem { - text: qsTr("Report problems with comics") - onClicked: { - var comicsNamesList = favoriteComicsModel.errorComicNames(); - var encodedComicsNamesList = []; - for (var i = 0; i < comicsNamesList.length; i++) { - encodedComicsNamesList.push(encodeURIComponent(comicsNamesList[i])) - } - var finalComicsList = "\"" + encodedComicsNamesList.join("\", \"") + "\"" - ExternalLinks.mail(constants.maintainerMail, constants.mailErrorSubjectHeader, - constants.mailBodyHeader + "There are problems with comics: " + finalComicsList) - } - visible: favoriteComicsModel.errorCount > 0 + text: qsTr("Settings") + onClicked: pageStack.push(Qt.resolvedUrl("ComicsSettingsPage.qml")) } MenuItem { text: favoriteComicsModel.newCount > 0 ? qsTr("Read all new comics") : qsTr("No new comic") @@ -91,15 +84,6 @@ Page { } } - PushUpMenu { - spacing: Theme.paddingLarge - - MenuItem { - text: qsTr("About") - onClicked: pageStack.push(Qt.resolvedUrl("AboutPage.qml")) - } - } - ViewPlaceholder { enabled: gridView.count == 0 text: qsTr("No comic selected") diff --git a/qml/pages/NewComicsPage.qml b/qml/pages/NewComicsPage.qml index 708772a3..ffcd057f 100644 --- a/qml/pages/NewComicsPage.qml +++ b/qml/pages/NewComicsPage.qml @@ -1,9 +1,9 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * Copyright (c) 2018-2019 Oleg Linkin * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ import QtQuick 2.0 diff --git a/qml/pages/ShareLinkPage.qml b/qml/pages/ShareLinkPage.qml index 0806f0e1..1adbf6e4 100644 --- a/qml/pages/ShareLinkPage.qml +++ b/qml/pages/ShareLinkPage.qml @@ -2,7 +2,7 @@ * Copyright (c) 2018-2019 Oleg Linkin * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ diff --git a/qml/scripts/ExternalLinks.js b/qml/scripts/ExternalLinks.js index 398ac8d7..e84b961a 100644 --- a/qml/scripts/ExternalLinks.js +++ b/qml/scripts/ExternalLinks.js @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ .pragma library diff --git a/qml/utils/ProgressInfoBar.qml b/qml/utils/ProgressInfoBar.qml index bff988f5..f40ed2ce 100644 --- a/qml/utils/ProgressInfoBar.qml +++ b/qml/utils/ProgressInfoBar.qml @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ import QtQuick 2.0 diff --git a/qml/utils/StatusOverlay.qml b/qml/utils/StatusOverlay.qml index b536508e..0b556a09 100644 --- a/qml/utils/StatusOverlay.qml +++ b/qml/utils/StatusOverlay.qml @@ -1,9 +1,9 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis - * Copyright (c) 2020 Mirian Margiani + * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2020 Mirian Margiani * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ import QtQuick 2.0 diff --git a/rpm/harbour-dailycomics.rpmlintrc b/rpm/harbour-dailycomics.rpmlintrc new file mode 100644 index 00000000..03748d07 --- /dev/null +++ b/rpm/harbour-dailycomics.rpmlintrc @@ -0,0 +1,27 @@ +# References: An exceptionally comprehensive example rpmlintrc file +# https://github.com/coreos/tectonic-rpms/blob/master/rpmlint-config +# but adheres to the old syntax, not the new TOML one: https://toml.io/en/ +# See also https://fedoraproject.org/wiki/Common_Rpmlint_issues and +# https://en.opensuse.org/openSUSE:Packaging_checks#Building_Packages_in_spite_of_errors + +# On behalf of Jolla's tar_git / SailfishOS-OBS: +# - It re-writes the DistURL, rendering it inconsistent +addFilter('invalid-url DistURL obs:') +# - It has a limited list of FLOSS-licenses, most SDPX-IDs are missing +addFilter('invalid-license') +# - It extracts strange changelog entries out of Git, if a %%changelog section is used +addFilter('incoherent-version-in-changelog') +# - It sometimes re-writes the %version-%release strings of package names, +# when referencing (only) a branch (i.e., not a git tag), for example, +# 0.5.2-1 to 0.5.2+main.20230129011931.1.g584263a-1.8.1.jolla +addFilter('filename-too-long-for-joliet') + +# On behalf of the SailfishOS:Chum metadata definition: +# - which often forces one to do +addFilter('description-line-too-long') +setBadness('description-line-too-long', 0) + +# On our own behalf: +# - Foo +# - Bar + diff --git a/rpm/harbour-dailycomics.spec b/rpm/harbour-dailycomics.spec index a653d94d..aa161bfc 100644 --- a/rpm/harbour-dailycomics.spec +++ b/rpm/harbour-dailycomics.spec @@ -1,25 +1,43 @@ -# -# Do NOT Edit the Auto-generated Part! -# Generated by: spectacle version 0.27 -# - Name: harbour-dailycomics -# >> macros -# << macros - +# These macros should already be defined in the RPMbuild environment, see: rpm --showrc %{!?qtc_qmake:%define qtc_qmake %qmake} %{!?qtc_qmake5:%define qtc_qmake5 %qmake5} %{!?qtc_make:%define qtc_make make} +%{!?qmake5_install:%define qmake5_install make install INSTALL_ROOT=%{buildroot}} %{?qtc_builddir:%define _builddir %qtc_builddir} + Summary: Daily comic strips reader -Version: 1.9.1 -Release: 1 -Group: Utilities +# The tag must adhere to semantic versioning: Among multiple other +# reasons due to its use for `qmake5` in line 107. See https://semver.org/ +Version: 1.9.95 +# The tag comprisees one of {alpha,beta,rc,release} postfixed with a +# natural number greater or equal to 1 (e.g., "beta3") and may additionally be +# postfixed with a plus character ("+"), the name of the packager and a release +# number chosen by her (e.g., "rc2+jane4"). `{alpha|beta|rc|release}` +# indicates the expected status of the software. No other identifiers shall be +# used for any published version, but for the purpose of testing infrastructure +# other nonsensual identifiers as `adud` may be used, which do *not* trigger a +# build at GitHub and OBS, when configured accordingly; mind the sorting +# (`adud` < `alpha`). For details and reasons, see +# https://github.com/storeman-developers/harbour-storeman/wiki/Git-tag-format +Release: beta1 +# The Group tag should comprise one of the groups listed here: +# https://github.com/mer-tools/spectacle/blob/master/data/GROUPS +Group: Amusements/Graphics +# Altering the `Vendor:` field breaks the update path on SailfishOS, see +# https://en.opensuse.org/SDB:Vendor_change_update#Disabling_Vendor_stickiness +#Vendor: meego License: MIT -URL: http://tardypad.me -Source0: %{name}-%{version}.tar.bz2 -Source100: harbour-dailycomics.yaml +URL: https://github.com/sailfishos-applications/daily-comics +# The "Source0:" line below requires that the value of %%{name} is also the +# project name at GitHub and the value of `%%{release}/%%{version}` is also +# the name of a correspondingly set Git tag. For details and reasons, see +# https://github.com/storeman-developers/harbour-storeman/wiki/Git-tag-format +Source0: %{url}/archive/%{release}/%{version}/%{name}-%{version}.tar.gz +# Note that the rpmlintrc file MUST be named exactly so according to +# https://en.opensuse.org/openSUSE:Packaging_checks#Building_Packages_in_spite_of_errors +Source99: %{name}.rpmlintrc Requires: sailfishsilica-qt5 >= 0.10.9 Requires: qt5-plugin-imageformat-gif BuildRequires: pkgconfig(Qt5Quick) @@ -29,48 +47,61 @@ BuildRequires: pkgconfig(sailfishapp) >= 0.0.10 BuildRequires: desktop-file-utils %description -Read every day your favorite comic strips +Read your favourite comic strips every day -%prep -%setup -q -n %{name}-%{version} - -# >> setup -# << setup +%if 0%{?_chum} +Title: Daily Comics +Type: desktop-application +Categories: + - Graphics + - Network + - 2DGraphics + - Amusement + - FileTransfer + - Qt + - Viewer +DeveloperName: Damien Tardy-Panis (tardypad), Oleg Linkin (maledictus), olf (Olf0) +Custom: + Repo: %{url} +PackageIcon: %{url}/raw/master/resources/logo.svg +Screenshots: + - %{url}/raw/master/info/screenshots/favorites.png + - %{url}/raw/master/info/screenshots/comic_bar.png + - %{url}/raw/master/info/screenshots/comic_info.png + - %{url}/raw/master/info/screenshots/image_zoom.png + - %{url}/raw/master/info/screenshots/settings.png + - %{url}/raw/master/info/screenshots/cover.png +Links: + Homepage: https://openrepos.net/content/olf/daily-comics + Help: %{url}/issues + Bugtracker: %{url}/issues + Donation: https://openrepos.net/donate +%endif -%build -# >> build pre -# << build pre +# Define (S)RPM compression sensibly, taking compatibility into account, see +# https://github.com/sailfishos-patches/patchmanager/pull/417#issuecomment-1429068156 +%define _source_payload w6.gzdio +%define _binary_payload w2.xzdio -%qtc_qmake5 \ - VERSION=%{version} +%prep +%setup -q +%build +%qtc_qmake5 VERSION=%{version} %qtc_make %{?_smp_mflags} -# >> build post -# << build post - %install -rm -rf %{buildroot} -# >> install pre -# << install pre %qmake5_install - -# >> install post +# I wonder what removing all `.directory` files is good for: find %{buildroot} -name .directory -type f -delete +# Apparently the many `cover_big.jpg` files are not used, hence deleted here: find %{buildroot}%{_datadir}/%{name}/plugins/ -name cover_big.jpg -type f -delete -# << install post - -desktop-file-install --delete-original \ - --dir %{buildroot}%{_datadir}/applications \ - %{buildroot}%{_datadir}/applications/*.desktop +desktop-file-install --delete-original --dir %{buildroot}%{_datadir}/applications \ + %{buildroot}%{_datadir}/applications/%{name}.desktop %files %defattr(-,root,root,-) -%defattr(644,root,root,-) -%attr(755,-,-) %{_bindir} -%{_bindir} +%{_bindir}/%{name} %{_datadir}/%{name} %{_datadir}/applications/%{name}.desktop %{_datadir}/icons/hicolor/*/apps/%{name}.png -# >> files -# << files diff --git a/rpm/harbour-dailycomics.yaml b/rpm/harbour-dailycomics.yaml deleted file mode 100644 index 10e2026b..00000000 --- a/rpm/harbour-dailycomics.yaml +++ /dev/null @@ -1,29 +0,0 @@ -Name: harbour-dailycomics -Summary: Daily comic strips reader -Version: 1.9.1 -Release: 1 -Group: Utilities -URL: http://tardypad.me -License: MIT -Sources: -- '%{name}-%{version}.tar.bz2' -Description: Read every day your favorite comic strips -Configure: none -Builder: qtc5 -QMakeOptions: -- VERSION=%{version} -PkgConfigBR: -- Qt5Quick -- Qt5Qml -- Qt5Core -- sailfishapp >= 0.0.10 -Requires: -- sailfishsilica-qt5 >= 0.10.9 -- qt5-plugin-imageformat-gif -Files: -- '%defattr(644,root,root,-)' -- '%attr(755,-,-) %{_bindir}' -- '%{_bindir}' -- '%{_datadir}/%{name}' -- '%{_datadir}/applications/%{name}.desktop' -- '%{_datadir}/icons/hicolor/*/apps/%{name}.png' diff --git a/src/Comic.cpp b/src/Comic.cpp index 81e07a54..2f19078b 100644 --- a/src/Comic.cpp +++ b/src/Comic.cpp @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ #include "Comic.h" diff --git a/src/Comic.h b/src/Comic.h index d31ddb83..643683e8 100644 --- a/src/Comic.h +++ b/src/Comic.h @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ #ifndef COMIC_H diff --git a/src/ComicDatabaseResource.cpp b/src/ComicDatabaseResource.cpp index 3a1d29ef..f35475c3 100644 --- a/src/ComicDatabaseResource.cpp +++ b/src/ComicDatabaseResource.cpp @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ #include "ComicDatabaseResource.h" diff --git a/src/ComicDatabaseResource.h b/src/ComicDatabaseResource.h index b45255ee..14b521b8 100644 --- a/src/ComicDatabaseResource.h +++ b/src/ComicDatabaseResource.h @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ #ifndef COMICDATABASERESOURCE_H diff --git a/src/ComicFactory.cpp b/src/ComicFactory.cpp index dc8c2e22..487738f7 100644 --- a/src/ComicFactory.cpp +++ b/src/ComicFactory.cpp @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ #include "ComicFactory.h" diff --git a/src/ComicFactory.h b/src/ComicFactory.h index 8d0406e5..c077c3a8 100644 --- a/src/ComicFactory.h +++ b/src/ComicFactory.h @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ #ifndef COMICFACTORY_H diff --git a/src/ComicPluginResource.cpp b/src/ComicPluginResource.cpp index 7721e7c8..a05c4b14 100644 --- a/src/ComicPluginResource.cpp +++ b/src/ComicPluginResource.cpp @@ -1,8 +1,8 @@ /** - * Copyright (c) 2016 Damien Tardy-Panis + * Copyright (c) 2016 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ #include "ComicPluginResource.h" diff --git a/src/ComicPluginResource.h b/src/ComicPluginResource.h index 107044e9..80f07d7b 100644 --- a/src/ComicPluginResource.h +++ b/src/ComicPluginResource.h @@ -1,8 +1,8 @@ /** - * Copyright (c) 2016 Damien Tardy-Panis + * Copyright (c) 2016 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ #ifndef COMICPLUGINRESOURCE_H diff --git a/src/ComicProxy.cpp b/src/ComicProxy.cpp index b9beba5b..a3e56507 100644 --- a/src/ComicProxy.cpp +++ b/src/ComicProxy.cpp @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ #include "ComicProxy.h" diff --git a/src/ComicProxy.h b/src/ComicProxy.h index 8fd0404e..bb0eed30 100644 --- a/src/ComicProxy.h +++ b/src/ComicProxy.h @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ #ifndef COMICPROXY_H diff --git a/src/ComicStripFileResource.cpp b/src/ComicStripFileResource.cpp index 4e25df96..b49ad641 100644 --- a/src/ComicStripFileResource.cpp +++ b/src/ComicStripFileResource.cpp @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ #include "ComicStripFileResource.h" diff --git a/src/ComicStripFileResource.h b/src/ComicStripFileResource.h index 950fd694..244c2c84 100644 --- a/src/ComicStripFileResource.h +++ b/src/ComicStripFileResource.h @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ #ifndef COMICSTRIPFILERESOURCE_H diff --git a/src/ComicsInfoUpdater.cpp b/src/ComicsInfoUpdater.cpp index 7f9a379f..6aeaf0a7 100644 --- a/src/ComicsInfoUpdater.cpp +++ b/src/ComicsInfoUpdater.cpp @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ #include "ComicsInfoUpdater.h" diff --git a/src/ComicsInfoUpdater.h b/src/ComicsInfoUpdater.h index c3235642..e0481fd3 100644 --- a/src/ComicsInfoUpdater.h +++ b/src/ComicsInfoUpdater.h @@ -2,7 +2,7 @@ * Copyright (c) 2018-2019 Oleg Linkin * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ #pragma once diff --git a/src/ComicsModel.cpp b/src/ComicsModel.cpp index 6268d1ba..87adf70d 100644 --- a/src/ComicsModel.cpp +++ b/src/ComicsModel.cpp @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ #include "ComicsModel.h" diff --git a/src/ComicsModel.h b/src/ComicsModel.h index a4044c5d..a6c9f80a 100644 --- a/src/ComicsModel.h +++ b/src/ComicsModel.h @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ #ifndef COMICSMODEL_H diff --git a/src/ComicsModelProxy.cpp b/src/ComicsModelProxy.cpp index 17ad3ba3..9114791b 100644 --- a/src/ComicsModelProxy.cpp +++ b/src/ComicsModelProxy.cpp @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ #include "ComicsModelProxy.h" diff --git a/src/ComicsModelProxy.h b/src/ComicsModelProxy.h index 615b50cd..e88e40e6 100644 --- a/src/ComicsModelProxy.h +++ b/src/ComicsModelProxy.h @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ #ifndef COMICSMODELPROXY_H diff --git a/src/FavoriteComicsModel.cpp b/src/FavoriteComicsModel.cpp index 206b5c55..98d430e3 100644 --- a/src/FavoriteComicsModel.cpp +++ b/src/FavoriteComicsModel.cpp @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ #include "FavoriteComicsModel.h" diff --git a/src/FavoriteComicsModel.h b/src/FavoriteComicsModel.h index f28b2e0d..15bca8db 100644 --- a/src/FavoriteComicsModel.h +++ b/src/FavoriteComicsModel.h @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ #ifndef FAVORITECOMICSMODEL_H diff --git a/src/Settings.cpp b/src/Settings.cpp index 8d7dbcec..ffc77bec 100644 --- a/src/Settings.cpp +++ b/src/Settings.cpp @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ #include "Settings.h" diff --git a/src/Settings.h b/src/Settings.h index 121469a5..b427fb50 100644 --- a/src/Settings.h +++ b/src/Settings.h @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ #ifndef SETTINGS_H diff --git a/src/harbour-dailycomics.cpp b/src/harbour-dailycomics.cpp index 88742eb5..ebf3c8e9 100644 --- a/src/harbour-dailycomics.cpp +++ b/src/harbour-dailycomics.cpp @@ -1,8 +1,8 @@ /** - * Copyright (c) 2015 Damien Tardy-Panis + * Copyright (c) 2015 Damien Tardy-Panis * * This file is subject to the terms and conditions defined in - * file 'LICENSE', which is part of this source code package. + * file `LICENSE.txt`, which is part of this source code package. **/ #ifdef QT_QML_DEBUG diff --git a/translations/README.md b/translations/README.md new file mode 100644 index 00000000..f8179604 --- /dev/null +++ b/translations/README.md @@ -0,0 +1,29 @@ +# Translations (l10n / i18n) + +You can help localising Daily Comics to your language using [Transifex](https://app.transifex.com/olf/daily-comics) or [Qt Linguist](https://doc.qt.io/qt-5/qtlinguist-index.html). + +Note that for Daily Comics principally translations designated with a country code only (e.g., `pt`) shall be created and maintained. Only if a complete and well maintained translation for the sole country code exists, a country specific variant with a locale will be accepted (e.g., `nl_BE`). + +[Transifex](https://app.transifex.com/olf/daily-comics) is the preferred way of submitting translations. Please do not send pull requests (PRs) with translations directly to GitHub, if you have a Transifex account. + +If you do not want to use Atlassian's Transifex, alternatives are [Qt Linguist](https://doc.qt.io/qt-5/linguist-translators.html) or to perform this manually, which is tediously and error prone, hence only suitable for small changes. The resulting changes must be submitted as a pull request. + +### Testing translations + +To compile a translation file for testing, use the `lrelease` command to convert the translation files (`.ts` files) into Qt message files (`.qm` files), either from [within Qt Linguist](https://doc.qt.io/qtcreator/creator-editor-external.html) or directly [at the command line](https://doc.qt.io/qt-5/linguist-manager.html): +``` +lrelease harbour-dailycomics.ts +``` +If you want to test your translation before publishing, you should compile it and copy the resulting `qm` file(s) to (requires root privileges) +``` + /usr/share/harbour-dailycomics/translations +``` +Daily Comics tries to automatically load a translation file according to your system locale setting. You can also run the application with a selected locale from the terminal. For example, for the Swedish language the command is: +``` +export LANG=sv; harbour-dailycomics +``` + +### Updating the source `.ts` file with source strings from source code + +Developers and release managers can use the `lupdate` process, either from [within Qt Linguist](https://doc.qt.io/qtcreator/creator-editor-external.html) or directly [at the command line](https://doc.qt.io/qt-5/linguist-manager.html) (mind to [include all files with translatable strings](https://github.com/storeman-developers/harbour-storeman/pull/431#issuecomment-1659024529), e.g., by `lupdate qml/ src/ *.desktop -ts translations/harbour-dailycomics.ts`), or tediously perform this manually, which hence is only suitable for small changes. + diff --git a/translations/harbour-dailycomics-de.ts b/translations/harbour-dailycomics-de.ts index 51171e4d..b217d6a9 100644 --- a/translations/harbour-dailycomics-de.ts +++ b/translations/harbour-dailycomics-de.ts @@ -1,6 +1,4 @@ - - - + AboutPage @@ -26,21 +24,21 @@ The source code is available at - <br/><a href='%1'>%2</a> - <br/>You can contact me for any remarks, - <br/>bugs, feature requests, ideas,... - <br/> - <br/>Below are few resources to find new comics. - <br/>Let me know as well which additional comics - <br/>you would like to be included in the app. + <a href="%1">%2</a><br /> + You can contact me for any remarks, + bugs, feature requests, ideas,...<br /> + <br /> + Below are few resources to find new comics.<br /> + Let me know as well which additional comics + you would like to be included in the app. Der Quellcode ist hier verfügbar: - <br/><a href='%1'>%2</a> - <br/>Sie können mich bei Fragen, Fehlern - <br/>Feature-Requests, Ideen usw. gerne kontaktieren. - <br/> - <br/>Unten finden Sie einige Quellen für neue Comics. - <br/>Lassen Sie mich wissen, wenn Sie sich neue Comics - <br/>in der App wünschen. + <a href="%1">%2</a><br /> + Sie können mich bei Fragen, Fehlern + Feature-Requests, Ideen usw. gerne kontaktieren.<br /> + <br /> + Unten finden Sie einige Quellen für neue Comics.<br /> + Lassen Sie mich wissen, wenn Sie sich neue Comics + in der App wünschen. @@ -155,10 +153,7 @@ %n new comic(s) - - %n neues Comic - %n neue Comics - + %n neues Comic%n neue Comics @@ -192,47 +187,42 @@ wenn das Problem weiter besteht. FavoritesPage - - Settings - Einstellungen + + About + Über - - Report problems with comics - Probleme mit den Comics melden + + Settings + Einstellungen - + Read all new comics Alle neuen Comics lesen - + No new comic Kein neues Comic - - About - Über - - - + No comic selected Kein Comic ausgewählt - + Choose your favorite comics in the settings page Wählen Sie Ihre Lieblingscomics auf der Einstellungsseite - + Remove from favorites Aus den Favoriten entfernen - + Fetching comic strips Comics werden geladen @@ -288,18 +278,12 @@ wenn das Problem weiter besteht. %n New - - %n neu - %n neue - + %n neu%n neue %n Error(s) - - %n Fehler - %n Fehler - + %n Fehler%n Fehler @@ -352,4 +336,4 @@ wenn das Problem weiter besteht. Comic kann nicht angezeigt werden - + \ No newline at end of file diff --git a/translations/harbour-dailycomics-en.ts b/translations/harbour-dailycomics-en.ts deleted file mode 100644 index 69f428c3..00000000 --- a/translations/harbour-dailycomics-en.ts +++ /dev/null @@ -1,348 +0,0 @@ - - - - - AboutPage - - - Your daily fix of your favorite comic strips - Your daily fix of your favorite comic strips - - - - version %1 - version %1 - - - - created by %1 - created by %1 - - - - maintained by %1 - - - - - The source code is available at - <br/><a href='%1'>%2</a> - <br/>You can contact me for any remarks, - <br/>bugs, feature requests, ideas,... - <br/> - <br/>Below are few resources to find new comics. - <br/>Let me know as well which additional comics - <br/>you would like to be included in the app. - - - - - Enjoy! - Enjoy! - - - - ComicInfoPage - - - Comic info - - - - - Authors - Authors - - - - Author - Author - - - - Language - Language - - - - ComicInfoPanel - - - Authors - Authors - - - - Author - Author - - - - Language - Language - - - - Go to homepage - Go to homepage - - - - ComicItem - - - Loading comic - Loading comic - - - - Can't display comic - Can't display comic - - - - Can't download comic - Can't download comic - - - - Can't extract comic - Can't extract comic - - - - Can't save comic - Can't save comic - - - - Please contact me if the problem persists. - Please contact me if the problem persists. - - - - ComicsSettingsPage - - - Save - - - - - Cancel - - - - - Clear all - Clear all - - - - Select all - Select all - - - - DefaultCover - - - %n new comic(s) - - %n new comic - %n new comics - - - - - EndPanel - - - That's all for now! - That's all for now! - - - - If you like the app, please consider supporting your favorite comic artists - If you like the app, please consider supporting your favorite comic artists - - - - Return to favorites - Return to favorites - - - - ErrorContactDevRectangle - - - Please contact me -if the problem persists. - Please contact me -if the problem persists. - - - - FavoritesPage - - - Settings - Settings - - - - Report problems with comics - Report problems with comics - - - - Read all new comics - Read all new comics - - - - No new comic - No new comic - - - - About - About - - - - No comic selected - No comic selected - - - - Choose your favorite comics in the settings page - Choose your favorite comics in the settings page - - - - Remove from favorites - Remove from favorites - - - - Fetching comic strips - Fetching comic strips - - - - ImageOverlay - - - Comic strip was saved to gallery - - - - - Unable to save comic strip to gallery - - - - - Comic strip url copied to clipboard - - - - - Unable to copy comic strip url to clipboard - - - - - LoadingIndicator - - - An error occured - An error occured - - - - Network error - Network error - - - - Parsing error - Parsing error - - - - Saving error - Saving error - - - - ProgressInfoBar - - - %n New - - %n New - %n New - - - - - %n Error(s) - - %n Error - %n Errors - - - - - RequestContactDevRectangle - - - Let me know if you're missing some of your favorite comics in this list - Let me know if you're missing some of your favorite comics in this list - - - - SettingsInfoHint - - - Hold cover to display comic info - Hold cover to display comic info - - - - ShareLinkPage - - - Share comics link - - - - - No sharing accounts available. You can add accounts in settings - - - - - SlideshowFlickHint - - - Flick to display next comic - Flick to display next comic - - - - ZoomableImage - - - Image error - Image error - - - - Can't display strip - Can't display strip - - - diff --git a/translations/harbour-dailycomics-fr.ts b/translations/harbour-dailycomics-fr.ts index 5bf83cd3..22cb311b 100644 --- a/translations/harbour-dailycomics-fr.ts +++ b/translations/harbour-dailycomics-fr.ts @@ -1,6 +1,6 @@ - + AboutPage diff --git a/translations/harbour-dailycomics-sv.ts b/translations/harbour-dailycomics-sv.ts index 6eb19317..f37a0444 100644 --- a/translations/harbour-dailycomics-sv.ts +++ b/translations/harbour-dailycomics-sv.ts @@ -1,6 +1,6 @@ - + AboutPage diff --git a/translations/harbour-dailycomics.ts b/translations/harbour-dailycomics.ts index 809d39dd..e7ffc4f9 100644 --- a/translations/harbour-dailycomics.ts +++ b/translations/harbour-dailycomics.ts @@ -1,44 +1,51 @@ - + AboutPage Your daily fix of your favorite comic strips - + Your daily fix of your favorite comic strips version %1 - + version %1 created by %1 - + created by %1 maintained by %1 - + maintained by %1 The source code is available at - <br/><a href='%1'>%2</a> - <br/>You can contact me for any remarks, - <br/>bugs, feature requests, ideas,... - <br/> - <br/>Below are few resources to find new comics. - <br/>Let me know as well which additional comics - <br/>you would like to be included in the app. - + <a href="%1">%2</a><br /> + You can contact me for any remarks, + bugs, feature requests, ideas,...<br /> + <br /> + Below are few resources to find new comics.<br /> + Let me know as well which additional comics + you would like to be included in the app. + The source code is available at + <a href="%1">%2</a><br /> + You can contact me for any remarks, + bugs, feature requests, ideas,...<br /> + <br /> + Below are few resources to find new comics.<br /> + Let me know as well which additional comics + you would like to be included in the app. Enjoy! - + Enjoy! @@ -46,22 +53,22 @@ Comic info - + Comic info Authors - + Authors Author - + Author Language - + Language @@ -69,22 +76,22 @@ Authors - + Authors Author - + Author Language - + Language Go to homepage - + Go to homepage @@ -92,32 +99,32 @@ Loading comic - + Loading comic Can't display comic - + Can't display comic Can't download comic - + Can't download comic Can't extract comic - + Can't extract comic Can't save comic - + Can't save comic Please contact me if the problem persists. - + Please contact me if the problem persists. @@ -125,22 +132,22 @@ Save - + Save Cancel - + Cancel Clear all - + Clear all Select all - + Select all @@ -148,8 +155,9 @@ %n new comic(s) - - + + %n new comic + %n new comics @@ -158,17 +166,17 @@ That's all for now! - + That's all for now! If you like the app, please consider supporting your favorite comic artists - + If you like the app, please consider supporting your favorite comic artists Return to favorites - + Return to favorites @@ -177,55 +185,51 @@ Please contact me if the problem persists. - + Please contact me +if the problem persists. FavoritesPage - - Settings - + + About + About - - Report problems with comics - + + Settings + Settings - + Read all new comics - + Read all new comics - + No new comic - + No new comic - - About - - - - + No comic selected - + No comic selected - + Choose your favorite comics in the settings page - + Choose your favorite comics in the settings page - + Remove from favorites - + Remove from favorites - + Fetching comic strips - + Fetching comic strips @@ -233,22 +237,22 @@ if the problem persists. Comic strip was saved to gallery - + Comic strip was saved to gallery Unable to save comic strip to gallery - + Unable to save comic strip to gallery Comic strip url copied to clipboard - + Comic strip url copied to clipboard Unable to copy comic strip url to clipboard - + Unable to copy comic strip url to clipboard @@ -256,22 +260,22 @@ if the problem persists. An error occured - + An error occured Network error - + Network error Parsing error - + Parsing error Saving error - + Saving error @@ -279,15 +283,17 @@ if the problem persists. %n New - - + + %n New + %n New %n Error(s) - - + + %n Error + %n Errors @@ -296,7 +302,7 @@ if the problem persists. Let me know if you're missing some of your favorite comics in this list - + Let me know if you're missing some of your favorite comics in this list @@ -304,7 +310,7 @@ if the problem persists. Hold cover to display comic info - + Hold cover to display comic info @@ -312,12 +318,12 @@ if the problem persists. Share comics link - + Share comics link No sharing accounts available. You can add accounts in settings - + No sharing accounts available. You can add accounts in settings @@ -325,7 +331,7 @@ if the problem persists. Flick to display next comic - + Flick to display next comic @@ -333,12 +339,12 @@ if the problem persists. Image error - + Image error Can't display strip - + Can't display strip