10 Commits

Author SHA1 Message Date
b964fdc77f chore: update release info to 1.0.0 2025-05-01 22:07:42 +08:00
d6d2703c93 chore: ensure could get correct locale on macOS 2025-04-28 00:51:17 +08:00
c6068ba23d fix: qmake build FTBFS 2025-04-26 17:23:56 +08:00
fbdd858fbd chore: merge Qt translations into app translations as well 2025-04-26 17:02:24 +08:00
8333f17199 chore(CI): add portable mode to qmake build
Resolve https://github.com/BLumia/pineapple-pictures/issues/148

This change is sponsored by @EdgarHartel.
2025-04-11 12:54:29 +08:00
30eb06cba7 chore: make use of the showMessageAndExit api in Qt 6.9 2025-04-09 19:24:27 +08:00
0a45cd7c22 chore: add the ability to know if it's the first loaded user media
This could make it easier to allow set “Keep Transform” mode at
start-up.

This change is sponsored by @EdgarHartel.

Related: https://github.com/BLumia/pineapple-pictures/issues/146#issuecomment-2778192785
2025-04-08 23:19:02 +08:00
fc417b30e5 chore(CI): bump msvc build AOM and libavif version 2025-04-04 17:35:59 +08:00
8568f6d4ef i18n: Translations update from Hosted Weblate (#145)
* Translated using Weblate (Dutch)

Currently translated at 100.0% (163 of 163 strings)

Translation: pineapple-pictures/Application
Translate-URL: https://hosted.weblate.org/projects/pineapple-pictures/application/nl/

* Translated using Weblate (Italian)

Currently translated at 100.0% (163 of 163 strings)

Translation: pineapple-pictures/Application
Translate-URL: https://hosted.weblate.org/projects/pineapple-pictures/application/it/

---------

Co-authored-by: Heimen Stoffels <vistausss@fastmail.com>
Co-authored-by: albanobattistella <albano_battistella@hotmail.com>
2025-04-04 17:16:16 +08:00
8832c2daa9 chore(CI): bump Qt version to Qt 6.9.0 2025-04-02 19:39:20 +08:00
13 changed files with 142 additions and 46 deletions

View File

@ -12,7 +12,7 @@ jobs:
- name: Install Qt - name: Install Qt
uses: jurplel/install-qt-action@v4 uses: jurplel/install-qt-action@v4
with: with:
version: '6.8.3' version: '6.9.0'
modules: 'qtimageformats' modules: 'qtimageformats'
- name: Install Conan and Dependencies - name: Install Conan and Dependencies
id: conan id: conan

View File

@ -8,7 +8,7 @@ jobs:
strategy: strategy:
matrix: matrix:
include: include:
- qt_ver: '6.8.3' - qt_ver: '6.9.0'
vs: '2022' vs: '2022'
aqt_arch: 'win64_msvc2022_64' aqt_arch: 'win64_msvc2022_64'
msvc_arch: 'x64' msvc_arch: 'x64'
@ -44,7 +44,7 @@ jobs:
strategy: strategy:
matrix: matrix:
include: include:
- qt_ver: '6.8.3' - qt_ver: '6.9.0'
vs: '2022' vs: '2022'
aqt_arch: 'win64_msvc2022_64' aqt_arch: 'win64_msvc2022_64'
msvc_arch: 'x64' msvc_arch: 'x64'
@ -71,44 +71,52 @@ jobs:
:: ------ dep ------ :: ------ dep ------
set CMAKE_PREFIX_PATH=%PWD%/dependencies_bin set CMAKE_PREFIX_PATH=%PWD%/dependencies_bin
mkdir dependencies_src mkdir dependencies_src
:: ===== exiv2 ===== echo ::group::===== exiv2 =====
curl -fsSL -o exiv2_bin.zip https://github.com/Exiv2/exiv2/releases/download/v0.28.3/exiv2-0.28.3-2019msvc64.zip curl -fsSL -o exiv2_bin.zip https://github.com/Exiv2/exiv2/releases/download/v0.28.3/exiv2-0.28.3-2019msvc64.zip
7z x exiv2_bin.zip -y 7z x exiv2_bin.zip -y
ren .\exiv2-0.28.3-2019msvc64 dependencies_bin ren .\exiv2-0.28.3-2019msvc64 dependencies_bin
:: ===== zlib ===== echo ::endgroup::
echo ::group::===== zlib =====
curl -fsSL -o zlib_src.zip https://zlib.net/zlib131.zip curl -fsSL -o zlib_src.zip https://zlib.net/zlib131.zip
7z x zlib_src.zip -y -o"dependencies_src" 7z x zlib_src.zip -y -o"dependencies_src"
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 curl -fsSL -o expat_src.zip https://github.com/libexpat/libexpat/archive/R_2_6_2.zip
:: ===== AOM for libavif AVI decoding support ===== echo ::endgroup::
git clone -q -b v3.10.0 --depth 1 https://aomedia.googlesource.com/aom dependencies_src/aom 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
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
:: ===== libavif ===== echo ::endgroup::
curl -fsSL -o libavif-v1_1_1.zip https://github.com/AOMediaCodec/libavif/archive/v1.1.1.zip echo ::group::===== libavif =====
7z x libavif-v1_1_1.zip -y -o"dependencies_src" curl -fsSL -o libavif-v1_2_1.zip https://github.com/AOMediaCodec/libavif/archive/v1.2.1.zip
ren .\dependencies_src\libavif-1.1.1 libavif || goto :error 7z x libavif-v1_2_1.zip -y -o"dependencies_src"
cmake ./dependencies_src/libavif -Bbuild_dependencies/libavif -DCMAKE_INSTALL_PREFIX="dependencies_bin" -DAVIF_CODEC_AOM=ON -DAVIF_LOCAL_LIBYUV=ON ren .\dependencies_src\libavif-1.2.1 libavif || goto :error
cmake ./dependencies_src/libavif -Bbuild_dependencies/libavif -DCMAKE_INSTALL_PREFIX="dependencies_bin" -DAVIF_CODEC_AOM=ON -DAVIF_LIBYUV=LOCAL
cmake --build build_dependencies/libavif --config Release --target=install || goto :error cmake --build build_dependencies/libavif --config Release --target=install || goto :error
:: ===== expat ===== echo ::endgroup::
echo ::group::===== expat =====
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_6_2 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
:: ===== ECM ===== echo ::endgroup::
echo ::group::===== ECM =====
git clone -q https://invent.kde.org/frameworks/extra-cmake-modules.git dependencies_src/extra-cmake-modules git clone -q https://invent.kde.org/frameworks/extra-cmake-modules.git dependencies_src/extra-cmake-modules
cmake .\dependencies_src\extra-cmake-modules -Bbuild_dependencies/extra-cmake-modules -DCMAKE_INSTALL_PREFIX="dependencies_bin" -DBUILD_TESTING=OFF || goto :error cmake .\dependencies_src\extra-cmake-modules -Bbuild_dependencies/extra-cmake-modules -DCMAKE_INSTALL_PREFIX="dependencies_bin" -DBUILD_TESTING=OFF || goto :error
cmake --build build_dependencies/extra-cmake-modules --config Release --target=install || goto :error cmake --build build_dependencies/extra-cmake-modules --config Release --target=install || goto :error
:: ===== KArchive ===== echo ::endgroup::
echo ::group::===== KArchive =====
git clone -q https://invent.kde.org/frameworks/karchive.git dependencies_src/karchive git clone -q https://invent.kde.org/frameworks/karchive.git dependencies_src/karchive
cmake .\dependencies_src\karchive -Bbuild_dependencies/karchive -DWITH_LIBZSTD=OFF -DWITH_BZIP2=OFF -DWITH_LIBLZMA=OFF -DCMAKE_INSTALL_PREFIX="dependencies_bin" || goto :error cmake .\dependencies_src\karchive -Bbuild_dependencies/karchive -DWITH_LIBZSTD=OFF -DWITH_BZIP2=OFF -DWITH_LIBLZMA=OFF -DCMAKE_INSTALL_PREFIX="dependencies_bin" || goto :error
cmake --build build_dependencies/karchive --config Release --target=install || goto :error cmake --build build_dependencies/karchive --config Release --target=install || goto :error
:: ===== KImageFormats ===== echo ::endgroup::
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 -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::
:: ------ app ------ :: ------ app ------
cmake -Bbuild . -DCMAKE_INSTALL_PREFIX="%PWD%\build\" cmake -Bbuild . -DCMAKE_INSTALL_PREFIX="%PWD%\build\"
cmake --build build --config Release cmake --build build --config Release

View File

@ -4,7 +4,7 @@
cmake_minimum_required(VERSION 3.16) cmake_minimum_required(VERSION 3.16)
project(pineapple-pictures VERSION 0.9.2) # don't forget to update NEWS file and AppStream metadata. project(pineapple-pictures VERSION 1.0.0) # don't forget to update NEWS file and AppStream metadata.
include(GNUInstallDirs) include(GNUInstallDirs)
include(FeatureSummary) include(FeatureSummary)
@ -118,10 +118,16 @@ add_executable (${EXE_NAME}
) )
if (${QT_VERSION_MAJOR} EQUAL "6") if (${QT_VERSION_MAJOR} EQUAL "6")
set(ADD_TRANSLATIONS_ADDITIONAL_ARGS)
if (Qt6_VERSION VERSION_GREATER_EQUAL "6.9.0")
set(ADD_TRANSLATIONS_ADDITIONAL_ARGS MERGE_QT_TRANSLATIONS)
endif()
if (TRANSLATION_RESOURCE_EMBEDDING) if (TRANSLATION_RESOURCE_EMBEDDING)
qt_add_translations(${EXE_NAME} TS_FILES ${PPIC_TS_FILES}) qt_add_translations(${EXE_NAME} ${ADD_TRANSLATIONS_ADDITIONAL_ARGS} TS_FILES ${PPIC_TS_FILES})
else() else()
qt_add_translations(${EXE_NAME} TS_FILES ${PPIC_TS_FILES} QM_FILES_OUTPUT_VARIABLE PPIC_QM_FILES) qt_add_translations(${EXE_NAME} ${ADD_TRANSLATIONS_ADDITIONAL_ARGS} TS_FILES ${PPIC_TS_FILES} QM_FILES_OUTPUT_VARIABLE PPIC_QM_FILES)
endif() endif()
else() else()
qt_create_translation(PPIC_QM_FILES ${PPIC_CPP_FILES_FOR_I18N} ${PPIC_TS_FILES}) qt_create_translation(PPIC_QM_FILES ${PPIC_CPP_FILES_FOR_I18N} ${PPIC_TS_FILES})

22
NEWS
View File

@ -1,3 +1,23 @@
Version 1.0.0
~~~~~~~~~~~~~
Released: 2025-05-03
Features:
* Support enforce windowed mode on start-up
* Reload image automatically when current image gets updated
Bugfixes:
* Refer to the right exiv2 CMake module so it can be found on Linux
* Display correct text language on macOS
Miscellaneous:
* Use native text for shortcut editor's label
* Display native commandline message when possible
* Merge Qt translations into app applications as well
Contributors:
Heimen Stoffels, albanobattistella, mmahhi
Version 0.9.2 Version 0.9.2
~~~~~~~~~~~~~ ~~~~~~~~~~~~~
Released: 2025-03-05 Released: 2025-03-05
@ -123,7 +143,7 @@ Version 0.7.1
Released: 2023-07-08 Released: 2023-07-08
Features: Features:
* TIF and TIFF format files in the same folder will now be automatedly added to the gallery * TIF and TIFF format files in the same folder will now be automatically added to the gallery
* Built-in window resizing now also supports Linux desktop. (macOS might also works as well) * Built-in window resizing now also supports Linux desktop. (macOS might also works as well)
Bugfixes: Bugfixes:

View File

@ -118,7 +118,7 @@ qreal GraphicsView::scaleFactor() const
void GraphicsView::resetTransform() void GraphicsView::resetTransform()
{ {
if (!m_avoidResetTransform) { if (!shouldAvoidTransform()) {
QGraphicsView::resetTransform(); QGraphicsView::resetTransform();
} }
} }
@ -196,7 +196,7 @@ void GraphicsView::fitByOrientation(Qt::Orientation ori, bool scaleDownOnly)
void GraphicsView::displayScene() void GraphicsView::displayScene()
{ {
if (m_avoidResetTransform) { if (shouldAvoidTransform()) {
emit navigatorViewRequired(!isThingSmallerThanWindowWith(transform()), transform()); emit navigatorViewRequired(!isThingSmallerThanWindowWith(transform()), transform());
return; return;
} }
@ -206,6 +206,7 @@ void GraphicsView::displayScene()
} }
m_enableFitInView = true; m_enableFitInView = true;
m_firstUserMediaLoaded = true;
} }
bool GraphicsView::isSceneBiggerThanView() const bool GraphicsView::isSceneBiggerThanView() const
@ -365,3 +366,8 @@ void GraphicsView::applyTransformationModeByScaleFactor()
scene()->trySetTransformationMode(Qt::FastTransformation, this->scaleFactor()); scene()->trySetTransformationMode(Qt::FastTransformation, this->scaleFactor());
} }
} }
bool GraphicsView::shouldAvoidTransform() const
{
return m_firstUserMediaLoaded && m_avoidResetTransform;
}

View File

@ -64,6 +64,8 @@ private:
void setCheckerboardEnabled(bool enabled, bool invertColor = false); void setCheckerboardEnabled(bool enabled, bool invertColor = false);
void applyTransformationModeByScaleFactor(); void applyTransformationModeByScaleFactor();
inline bool shouldAvoidTransform() const;
// Consider switch to 3 state for "no fit", "always fit" and "fit when view is smaller"? // Consider switch to 3 state for "no fit", "always fit" and "fit when view is smaller"?
// ... or even more? e.g. "fit/snap width" things... // ... or even more? e.g. "fit/snap width" things...
// Currently it's "no fit" when it's false and "fit when view is smaller" when it's true. // Currently it's "no fit" when it's false and "fit when view is smaller" when it's true.
@ -71,6 +73,7 @@ private:
bool m_avoidResetTransform = false; bool m_avoidResetTransform = false;
bool m_checkerboardEnabled = false; bool m_checkerboardEnabled = false;
bool m_useLightCheckerboard = false; bool m_useLightCheckerboard = false;
bool m_firstUserMediaLoaded = false;
}; };
#endif // GRAPHICSVIEW_H #endif // GRAPHICSVIEW_H

View File

@ -52,8 +52,13 @@ int main(int argc, char *argv[])
parser.process(a); parser.process(a);
if (parser.isSet(supportedImageFormats)) { if (parser.isSet(supportedImageFormats)) {
#if QT_VERSION < QT_VERSION_CHECK(6, 9, 0)
fputs(qPrintable(MainWindow::supportedImageFormats().join(QChar('\n'))), stdout); fputs(qPrintable(MainWindow::supportedImageFormats().join(QChar('\n'))), stdout);
::exit(EXIT_SUCCESS); ::exit(EXIT_SUCCESS);
#else
QCommandLineParser::showMessageAndExit(QCommandLineParser::MessageType::Information,
MainWindow::supportedImageFormats().join(QChar('\n')));
#endif
} }
MainWindow w; MainWindow w;

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS> <!DOCTYPE TS>
<TS version="2.1"> <TS version="2.1" language="en_US">
<context> <context>
<name>AboutDialog</name> <name>AboutDialog</name>
<message> <message>

View File

@ -789,7 +789,7 @@
<message> <message>
<location filename="../settingsdialog.cpp" line="90"/> <location filename="../settingsdialog.cpp" line="90"/>
<source>Windowed</source> <source>Windowed</source>
<translation type="unfinished"></translation> <translation>Finestrato</translation>
</message> </message>
<message> <message>
<location filename="../settingsdialog.cpp" line="94"/> <location filename="../settingsdialog.cpp" line="94"/>

View File

@ -236,17 +236,17 @@
<message> <message>
<location filename="../mainwindow.cpp" line="754"/> <location filename="../mainwindow.cpp" line="754"/>
<source>Image From Clipboard</source> <source>Image From Clipboard</source>
<translation type="unfinished"></translation> <translation>Afbeelding van klembord</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="772"/> <location filename="../mainwindow.cpp" line="772"/>
<source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source> <source>Are you sure you want to move &quot;%1&quot; to recycle bin?</source>
<translation type="unfinished"></translation> <translation>Weet u zeker dat u %1 naar de prullenbak wilt verplaatsen?</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="777"/> <location filename="../mainwindow.cpp" line="777"/>
<source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source> <source>Move to trash failed, it might caused by file permission issue, file system limitation, or platform limitation.</source>
<translation type="unfinished"></translation> <translation>Het bestand kan niet naar de prullenbak worden verplaatst, mogelijk door een rechtenprobleem of systeembeperking.</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="114"/> <location filename="../actionmanager.cpp" line="114"/>
@ -295,12 +295,12 @@
<message> <message>
<location filename="../actionmanager.cpp" line="108"/> <location filename="../actionmanager.cpp" line="108"/>
<source>Pause/Resume Animation</source> <source>Pause/Resume Animation</source>
<translation type="unfinished"></translation> <translation>Animatie pauzeren/hervatten</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="109"/> <location filename="../actionmanager.cpp" line="109"/>
<source>Animation Go to Next Frame</source> <source>Animation Go to Next Frame</source>
<translation type="unfinished"></translation> <translation>Ga naar volgend animatieframe</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="111"/> <location filename="../actionmanager.cpp" line="111"/>
@ -310,12 +310,12 @@
<message> <message>
<location filename="../actionmanager.cpp" line="112"/> <location filename="../actionmanager.cpp" line="112"/>
<source>Fit to view</source> <source>Fit to view</source>
<translation type="unfinished"></translation> <translation>Inpassen</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="113"/> <location filename="../actionmanager.cpp" line="113"/>
<source>Fit to width</source> <source>Fit to width</source>
<translation type="unfinished"></translation> <translation>Aanpassen aan breedte</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="116"/> <location filename="../actionmanager.cpp" line="116"/>
@ -350,7 +350,7 @@
<message> <message>
<location filename="../actionmanager.cpp" line="103"/> <location filename="../actionmanager.cpp" line="103"/>
<source>Rotate left</source> <source>Rotate left</source>
<translation type="unfinished"></translation> <translation>Naar links draaien</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="105"/> <location filename="../actionmanager.cpp" line="105"/>
@ -366,7 +366,7 @@
<location filename="../mainwindow.cpp" line="771"/> <location filename="../mainwindow.cpp" line="771"/>
<location filename="../actionmanager.cpp" line="117"/> <location filename="../actionmanager.cpp" line="117"/>
<source>Move to Trash</source> <source>Move to Trash</source>
<translation type="unfinished"></translation> <translation>Verplaatsen naar prullenbak</translation>
</message> </message>
<message> <message>
<location filename="../actionmanager.cpp" line="121"/> <location filename="../actionmanager.cpp" line="121"/>
@ -728,27 +728,27 @@
<message> <message>
<location filename="../settingsdialog.cpp" line="37"/> <location filename="../settingsdialog.cpp" line="37"/>
<source>Options</source> <source>Options</source>
<translation type="unfinished"></translation> <translation>Opties</translation>
</message> </message>
<message> <message>
<location filename="../settingsdialog.cpp" line="49"/> <location filename="../settingsdialog.cpp" line="49"/>
<source>Shortcuts</source> <source>Shortcuts</source>
<translation type="unfinished"></translation> <translation>Sneltoetsen</translation>
</message> </message>
<message> <message>
<location filename="../settingsdialog.cpp" line="59"/> <location filename="../settingsdialog.cpp" line="59"/>
<source>Editing shortcuts for action &quot;%1&quot;:</source> <source>Editing shortcuts for action &quot;%1&quot;:</source>
<translation type="unfinished"></translation> <translation>Bewerken van sneltoetsen voor actie %1:</translation>
</message> </message>
<message> <message>
<location filename="../settingsdialog.cpp" line="68"/> <location filename="../settingsdialog.cpp" line="68"/>
<source>Failed to set shortcuts</source> <source>Failed to set shortcuts</source>
<translation type="unfinished"></translation> <translation>Instellen mislukt</translation>
</message> </message>
<message> <message>
<location filename="../settingsdialog.cpp" line="69"/> <location filename="../settingsdialog.cpp" line="69"/>
<source>Please check if shortcuts are duplicated with existing shortcuts.</source> <source>Please check if shortcuts are duplicated with existing shortcuts.</source>
<translation type="unfinished"></translation> <translation>Controleer of de gekozen sneltoetsen niet al in gebruik zijn.</translation>
</message> </message>
<message> <message>
<location filename="../settingsdialog.cpp" line="76"/> <location filename="../settingsdialog.cpp" line="76"/>
@ -768,7 +768,7 @@
<message> <message>
<location filename="../settingsdialog.cpp" line="79"/> <location filename="../settingsdialog.cpp" line="79"/>
<source>Toggle fullscreen</source> <source>Toggle fullscreen</source>
<translation type="unfinished"></translation> <translation>Schermvullende weergave aan/uit</translation>
</message> </message>
<message> <message>
<location filename="../settingsdialog.cpp" line="83"/> <location filename="../settingsdialog.cpp" line="83"/>
@ -793,7 +793,7 @@
<message> <message>
<location filename="../settingsdialog.cpp" line="90"/> <location filename="../settingsdialog.cpp" line="90"/>
<source>Windowed</source> <source>Windowed</source>
<translation type="unfinished"></translation> <translation>Venster</translation>
</message> </message>
<message> <message>
<location filename="../settingsdialog.cpp" line="94"/> <location filename="../settingsdialog.cpp" line="94"/>
@ -827,7 +827,7 @@
<message> <message>
<location filename="../settingsdialog.cpp" line="121"/> <location filename="../settingsdialog.cpp" line="121"/>
<source>Use light-color checkerboard</source> <source>Use light-color checkerboard</source>
<translation type="unfinished"></translation> <translation>Licht schaakbordpatroon gebruiken</translation>
</message> </message>
<message> <message>
<location filename="../settingsdialog.cpp" line="122"/> <location filename="../settingsdialog.cpp" line="122"/>
@ -855,7 +855,7 @@
<message> <message>
<location filename="../shortcutedit.cpp" line="111"/> <location filename="../shortcutedit.cpp" line="111"/>
<source>No shortcuts</source> <source>No shortcuts</source>
<translation type="unfinished"></translation> <translation>Geen sneltoetsen</translation>
</message> </message>
</context> </context>
<context> <context>
@ -863,7 +863,7 @@
<message> <message>
<location filename="../shortcutedit.cpp" line="77"/> <location filename="../shortcutedit.cpp" line="77"/>
<source>Shortcut #%1</source> <source>Shortcut #%1</source>
<translation type="unfinished"></translation> <translation>Sneltoets #%1</translation>
</message> </message>
</context> </context>
<context> <context>
@ -876,7 +876,7 @@
<message> <message>
<location filename="../main.cpp" line="46"/> <location filename="../main.cpp" line="46"/>
<source>List supported image format suffixes, and quit program.</source> <source>List supported image format suffixes, and quit program.</source>
<translation type="unfinished"></translation> <translation>Toon een lijst met ondersteunde afbeeldingsformaten en sluit af.</translation>
</message> </message>
<message> <message>
<location filename="../main.cpp" line="50"/> <location filename="../main.cpp" line="50"/>

View File

@ -30,6 +30,28 @@
<true/> <true/>
<key>NSHumanReadableCopyright</key> <key>NSHumanReadableCopyright</key>
<string>${MACOSX_BUNDLE_COPYRIGHT}</string> <string>${MACOSX_BUNDLE_COPYRIGHT}</string>
<!-- FIXME: this list can't be automatically generated by Qt's CMake API, don't know why. -->
<key>CFBundleLocalizations</key>
<array>
<string>en</string>
<string>ca</string>
<string>de</string>
<string>es</string>
<string>fr</string>
<string>id</string>
<string>it</string>
<string>ja</string>
<string>ko</string>
<string>nb_NO</string>
<string>nl</string>
<string>pa_PK</string>
<string>ru</string>
<string>si</string>
<string>ta</string>
<string>tr</string>
<string>uk</string>
<string>zh_CN</string>
</array>
<key>CFBundleDocumentTypes</key> <key>CFBundleDocumentTypes</key>
<array> <array>
<!-- JPEG --> <!-- JPEG -->

View File

@ -80,6 +80,28 @@
</screenshot> </screenshot>
</screenshots> </screenshots>
<releases> <releases>
<release type="stable" version="1.0.0" date="2025-05-03T00:00:00Z">
<description>
<p>This release adds the following features:</p>
<ul>
<li>Support enforce windowed mode on start-up</li>
<li>Reload image automatically when current image gets updated</li>
</ul>
<p>This release fixes the following bugs:</p>
<ul>
<li>Refer to the right exiv2 CMake module so it can be found on Linux</li>
<li>Display correct text language on macOS</li>
</ul>
<p>This release includes the following changes:</p>
<ul>
<li>Use native text for shortcut editor's label</li>
<li>Display native commandline message when possible</li>
<li>Merge Qt translations into app applications as well</li>
</ul>
<p>With contributions from:</p>
<p>Heimen Stoffels, albanobattistella, mmahhi</p>
</description>
</release>
<release type="stable" version="0.9.2" date="2025-03-05T00:00:00Z"> <release type="stable" version="0.9.2" date="2025-03-05T00:00:00Z">
<description> <description>
<p>This release fixes the following bug:</p> <p>This release fixes the following bug:</p>
@ -210,7 +232,7 @@
<description> <description>
<p>This release adds the following features:</p> <p>This release adds the following features:</p>
<ul> <ul>
<li>TIF and TIFF format files in the same folder will now be automatedly added to the gallery</li> <li>TIF and TIFF format files in the same folder will now be automatically added to the gallery</li>
<li>Built-in window resizing now also supports Linux desktop. (macOS might also works as well)</li> <li>Built-in window resizing now also supports Linux desktop. (macOS might also works as well)</li>
</ul> </ul>
<p>This release fixes the following bugs:</p> <p>This release fixes the following bugs:</p>

View File

@ -9,6 +9,10 @@ TARGET = ppic
TEMPLATE = app TEMPLATE = app
DEFINES += PPIC_VERSION_STRING=\\\"x.y.z\\\" DEFINES += PPIC_VERSION_STRING=\\\"x.y.z\\\"
win32 {
DEFINES += FLAG_PORTABLE_MODE_SUPPORT=1
}
# The following define makes your compiler emit warnings if you use # The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings # any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the # depend on your compiler). Please consult the documentation of the
@ -64,7 +68,7 @@ HEADERS += \
app/fileopeneventhandler.h app/fileopeneventhandler.h
TRANSLATIONS = \ TRANSLATIONS = \
app/translations/PineapplePictures.ts \ app/translations/PineapplePictures_en.ts \
app/translations/PineapplePictures_zh_CN.ts \ app/translations/PineapplePictures_zh_CN.ts \
app/translations/PineapplePictures_de.ts \ app/translations/PineapplePictures_de.ts \
app/translations/PineapplePictures_es.ts \ app/translations/PineapplePictures_es.ts \