Compare commits

...
10 Commits
10 changed files with 84 additions and 13 deletions
+2 -1
View File
@@ -12,8 +12,9 @@ jobs:
- name: Install Qt - name: Install Qt
uses: jurplel/install-qt-action@v4 uses: jurplel/install-qt-action@v4
with: with:
version: '6.9.2' version: '6.10.1'
modules: 'qtimageformats' modules: 'qtimageformats'
cache: true
- name: Install Conan and Dependencies - name: Install Conan and Dependencies
id: conan id: conan
working-directory: ./ working-directory: ./
+8 -6
View File
@@ -8,7 +8,7 @@ jobs:
strategy: strategy:
matrix: matrix:
include: include:
- qt_ver: '6.9.2' - qt_ver: '6.10.1'
vs: '2022' vs: '2022'
aqt_arch: 'win64_msvc2022_64' aqt_arch: 'win64_msvc2022_64'
msvc_arch: 'x64' msvc_arch: 'x64'
@@ -23,6 +23,7 @@ jobs:
arch: ${{ matrix.aqt_arch }} arch: ${{ matrix.aqt_arch }}
version: ${{ matrix.qt_ver }} version: ${{ matrix.qt_ver }}
modules: 'qtimageformats' modules: 'qtimageformats'
cache: true
- name: Build - name: Build
shell: cmd shell: cmd
run: | run: |
@@ -44,7 +45,7 @@ jobs:
strategy: strategy:
matrix: matrix:
include: include:
- qt_ver: '6.9.2' - qt_ver: '6.10.1'
vs: '2022' vs: '2022'
aqt_arch: 'win64_msvc2022_64' aqt_arch: 'win64_msvc2022_64'
msvc_arch: 'x64' msvc_arch: 'x64'
@@ -59,6 +60,7 @@ jobs:
arch: ${{ matrix.aqt_arch }} arch: ${{ matrix.aqt_arch }}
version: ${{ matrix.qt_ver }} version: ${{ matrix.qt_ver }}
modules: 'qtimageformats' modules: 'qtimageformats'
cache: true
- name: Build - name: Build
shell: cmd shell: cmd
run: | run: |
@@ -82,10 +84,9 @@ jobs:
ren .\dependencies_src\zlib-1.3.1 zlib || goto :error ren .\dependencies_src\zlib-1.3.1 zlib || goto :error
cmake ./dependencies_src/zlib -Bbuild_dependencies/zlib -DCMAKE_INSTALL_PREFIX="dependencies_bin" || goto :error cmake ./dependencies_src/zlib -Bbuild_dependencies/zlib -DCMAKE_INSTALL_PREFIX="dependencies_bin" || goto :error
cmake --build build_dependencies/zlib --config Release --target=install || goto :error cmake --build build_dependencies/zlib --config Release --target=install || goto :error
curl -fsSL -o expat_src.zip https://github.com/libexpat/libexpat/archive/R_2_6_2.zip
echo ::endgroup:: echo ::endgroup::
echo ::group::===== AOM for libavif AVI decoding support ===== echo ::group::===== AOM for libavif AVI decoding support =====
git clone -q -b v3.12.0 --depth 1 https://aomedia.googlesource.com/aom dependencies_src/aom git clone -q -b v3.13.1 --depth 1 https://aomedia.googlesource.com/aom dependencies_src/aom
cmake ./dependencies_src/aom -Bbuild_dependencies/aom -DCMAKE_INSTALL_PREFIX="dependencies_bin" -DENABLE_DOCS=OFF -DBUILD_SHARED_LIBS=ON -DAOM_TARGET_CPU=generic -DENABLE_TESTS=OFF -DENABLE_TESTDATA=OFF -DENABLE_TOOLS=OFF -DENABLE_EXAMPLES=0 || goto :error cmake ./dependencies_src/aom -Bbuild_dependencies/aom -DCMAKE_INSTALL_PREFIX="dependencies_bin" -DENABLE_DOCS=OFF -DBUILD_SHARED_LIBS=ON -DAOM_TARGET_CPU=generic -DENABLE_TESTS=OFF -DENABLE_TESTDATA=OFF -DENABLE_TOOLS=OFF -DENABLE_EXAMPLES=0 || goto :error
cmake --build build_dependencies/aom --config Release --target=install || goto :error cmake --build build_dependencies/aom --config Release --target=install || goto :error
echo ::endgroup:: echo ::endgroup::
@@ -97,8 +98,9 @@ jobs:
cmake --build build_dependencies/libavif --config Release --target=install || goto :error cmake --build build_dependencies/libavif --config Release --target=install || goto :error
echo ::endgroup:: echo ::endgroup::
echo ::group::===== expat ===== echo ::group::===== expat =====
curl -fsSL -o expat_src.zip https://github.com/libexpat/libexpat/archive/R_2_7_3.zip
7z x expat_src.zip -y -o"dependencies_src" 7z x expat_src.zip -y -o"dependencies_src"
ren .\dependencies_src\libexpat-R_2_6_2 expat || goto :error ren .\dependencies_src\libexpat-R_2_7_3 expat || goto :error
cmake ./dependencies_src/expat/expat -Bbuild_dependencies/expat -DCMAKE_INSTALL_PREFIX="dependencies_bin" || goto :error cmake ./dependencies_src/expat/expat -Bbuild_dependencies/expat -DCMAKE_INSTALL_PREFIX="dependencies_bin" || goto :error
cmake --build build_dependencies/expat --config Release --target=install || goto :error cmake --build build_dependencies/expat --config Release --target=install || goto :error
echo ::endgroup:: echo ::endgroup::
@@ -114,7 +116,7 @@ jobs:
echo ::endgroup:: echo ::endgroup::
echo ::group::===== KImageFormats ===== echo ::group::===== KImageFormats =====
git clone -q https://invent.kde.org/frameworks/kimageformats.git dependencies_src/kimageformats git clone -q https://invent.kde.org/frameworks/kimageformats.git dependencies_src/kimageformats
cmake .\dependencies_src\kimageformats -Bbuild_dependencies/kimageformats -DKDE_INSTALL_QTPLUGINDIR=%QT_ROOT_DIR%\plugins || goto :error cmake .\dependencies_src\kimageformats -Bbuild_dependencies/kimageformats -DBUILD_TESTING=OFF -DKDE_INSTALL_QTPLUGINDIR=%QT_ROOT_DIR%\plugins || goto :error
cmake --build build_dependencies/kimageformats --config Release --target=install || goto :error cmake --build build_dependencies/kimageformats --config Release --target=install || goto :error
echo ::endgroup:: echo ::endgroup::
:: ------ app ------ :: ------ app ------
+1 -1
View File
@@ -4,7 +4,7 @@
cmake_minimum_required(VERSION 3.16) cmake_minimum_required(VERSION 3.16)
project(pineapple-pictures VERSION 1.2.0) # don't forget to update NEWS file and AppStream metadata. project(pineapple-pictures VERSION 1.2.1) # don't forget to update NEWS file and AppStream metadata.
include(GNUInstallDirs) include(GNUInstallDirs)
include(FeatureSummary) include(FeatureSummary)
+16
View File
@@ -1,3 +1,19 @@
Version 1.2.1
~~~~~~~~~~~~~
Released: 2025-11-22
Bugfixes:
* Fix incorrect color when display some CMYK images.
Miscellaneous:
* Now use Qt 6.10.1 for pre-built binary
* Update README description and AppStream metainfo
* Update translations
* Update libavif, AOM and expat version for Windows binary build
Contributors:
albanobattistella
Version 1.2.0 Version 1.2.0
~~~~~~~~~~~~~ ~~~~~~~~~~~~~
Released: 2025-09-21 Released: 2025-09-21
+11 -1
View File
@@ -25,10 +25,20 @@ Pineapple Pictures is a lightweight image viewer that allows you view JPEG, PNG,
[![Packaging status](https://repology.org/badge/vertical-allrepos/pineapple-pictures.svg?columns=4)](https://repology.org/project/pineapple-pictures/versions) [![Packaging status](https://repology.org/badge/vertical-allrepos/pineapple-pictures.svg?columns=4)](https://repology.org/project/pineapple-pictures/versions)
## Help Translation! ## Contribution
Beside feedback and code contribution, other contributions are also welcome!
### Help Translation!
[Translate this project on Weblate!](https://hosted.weblate.org/projects/pineapple-pictures/) [Translate this project on Weblate!](https://hosted.weblate.org/projects/pineapple-pictures/)
### Funding
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/blumia)
[![Afdian](https://static.afdiancdn.com/static/img/logo/logo.png)Afdian](https://afdian.com/a/BLumia)
## Build it manually: ## Build it manually:
Current state, we need: Current state, we need:
+11 -1
View File
@@ -26,10 +26,20 @@
[![打包状态](https://repology.org/badge/vertical-allrepos/pineapple-pictures.svg?columns=4)](https://repology.org/project/pineapple-pictures/versions) [![打包状态](https://repology.org/badge/vertical-allrepos/pineapple-pictures.svg?columns=4)](https://repology.org/project/pineapple-pictures/versions)
## 帮助翻译! ## 参与贡献
除了参与反馈和代码贡献外,也欢迎各种类型的贡献!
### 帮助翻译!
[在 Weblate 上帮助此项目翻译到更多语言!](https://hosted.weblate.org/projects/pineapple-pictures/) [在 Weblate 上帮助此项目翻译到更多语言!](https://hosted.weblate.org/projects/pineapple-pictures/)
### 打赏
[![Afdian](https://static.afdiancdn.com/static/img/logo/logo.png)Afdian | 爱发电](https://afdian.com/a/BLumia)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/blumia)
## 手动构建步骤: ## 手动构建步骤:
当前状态,我们需要先确保如下依赖可用: 当前状态,我们需要先确保如下依赖可用:
+2 -2
View File
@@ -1,4 +1,4 @@
// SPDX-FileCopyrightText: 2022 Gary Wang <wzc782970009@gmail.com> // SPDX-FileCopyrightText: 2025 Gary Wang <git@blumia.net>
// //
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
@@ -105,7 +105,7 @@ AboutDialog::AboutDialog(QWidget *parent)
const QString mitLicense(QStringLiteral(R"(Expat/MIT License const QString mitLicense(QStringLiteral(R"(Expat/MIT License
Copyright (c) 2025 BLumia Copyright &copy; 2025 BLumia
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal
+14
View File
@@ -8,6 +8,7 @@
#include "settings.h" #include "settings.h"
#include <QDebug> #include <QDebug>
#include <QColorSpace>
#include <QMouseEvent> #include <QMouseEvent>
#include <QScrollBar> #include <QScrollBar>
#include <QMimeData> #include <QMimeData>
@@ -53,6 +54,18 @@ void GraphicsView::showFileFromPath(const QString &filePath)
} else if (!imageReader.canRead()) { } else if (!imageReader.canRead()) {
showText(tr("Image data is invalid or currently unsupported")); showText(tr("Image data is invalid or currently unsupported"));
} else { } else {
#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
QImage && img = imageReader.read();
if (img.isNull()) {
showText(tr("Image data is invalid or currently unsupported"));
} else {
if (img.format() == QImage::Format_CMYK8888) {
img.convertToColorSpace(QColorSpace::SRgb);
}
img.setDevicePixelRatio(devicePixelRatioF());
showImage(img);
}
#else
QPixmap && pixmap = QPixmap::fromImageReader(&imageReader); QPixmap && pixmap = QPixmap::fromImageReader(&imageReader);
if (pixmap.isNull()) { if (pixmap.isNull()) {
showText(tr("Image data is invalid or currently unsupported")); showText(tr("Image data is invalid or currently unsupported"));
@@ -60,6 +73,7 @@ void GraphicsView::showFileFromPath(const QString &filePath)
pixmap.setDevicePixelRatio(devicePixelRatioF()); pixmap.setDevicePixelRatio(devicePixelRatioF());
showImage(pixmap); showImage(pixmap);
} }
#endif // QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
} }
} }
} }
+1 -1
View File
@@ -321,7 +321,7 @@
<message> <message>
<location filename="../actionmanager.cpp" line="105"/> <location filename="../actionmanager.cpp" line="105"/>
<source>Fit long image</source> <source>Fit long image</source>
<translation type="unfinished"></translation> <translation>Adatta immagine lunga</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="108"/> <location filename="../actionmanager.cpp" line="108"/>
@@ -40,6 +40,7 @@
<launchable type="desktop-id">net.blumia.pineapple-pictures.desktop</launchable> <launchable type="desktop-id">net.blumia.pineapple-pictures.desktop</launchable>
<url type="homepage">https://github.com/BLumia/pineapple-pictures</url> <url type="homepage">https://github.com/BLumia/pineapple-pictures</url>
<url type="bugtracker">https://github.com/BLumia/pineapple-pictures/issues</url> <url type="bugtracker">https://github.com/BLumia/pineapple-pictures/issues</url>
<url type="donation">https://ko-fi.com/blumia</url>
<url type="translate">https://hosted.weblate.org/projects/pineapple-pictures/</url> <url type="translate">https://hosted.weblate.org/projects/pineapple-pictures/</url>
<provides> <provides>
<binary>ppic</binary> <binary>ppic</binary>
@@ -80,6 +81,23 @@
</screenshot> </screenshot>
</screenshots> </screenshots>
<releases> <releases>
<release type="stable" version="1.2.1" date="2025-11-22T00:00:00Z">
<description>
<p>This release fixes the following bug:</p>
<ul>
<li>Fix incorrect color when display some CMYK images.</li>
</ul>
<p>This release includes the following changes:</p>
<ul>
<li>Now use Qt 6.10.1 for pre-built binary</li>
<li>Update README description and AppStream metainfo</li>
<li>Update translations</li>
<li>Update libavif, AOM and expat version for Windows binary build</li>
</ul>
<p>With contributions from:</p>
<p>albanobattistella</p>
</description>
</release>
<release type="stable" version="1.2.0" date="2025-09-21T00:00:00Z"> <release type="stable" version="1.2.0" date="2025-09-21T00:00:00Z">
<description> <description>
<p>This release adds the following features:</p> <p>This release adds the following features:</p>