Compare commits
12 Commits
2a30cc0dd3
...
0436dfab39
Author | SHA1 | Date | |
---|---|---|---|
0436dfab39 | |||
|
87ed730891 | ||
85d6762828 | |||
a6360d5e66 | |||
a217ce9ee8 | |||
9fe3aca774 | |||
c636b14af8 | |||
f8587020d7 | |||
495ff31518 | |||
|
2671b6061d | ||
d52f22c0de | |||
471f6b9f32 |
2
.github/FUNDING.yml
vendored
Normal file
2
.github/FUNDING.yml
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ko_fi: blumia
|
||||||
|
custom: ["https://blumia.itch.io/pineapple-pictures"]
|
26
.github/workflows/ubuntu.yml
vendored
26
.github/workflows/ubuntu.yml
vendored
|
@ -4,9 +4,7 @@ on: [push, pull_request]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
ubuntu-22-04-build:
|
ubuntu-22-04-build:
|
||||||
|
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Get build dept.
|
- name: Get build dept.
|
||||||
|
@ -28,3 +26,27 @@ jobs:
|
||||||
with:
|
with:
|
||||||
name: ubuntu-22.04-deb-package
|
name: ubuntu-22.04-deb-package
|
||||||
path: build/*.deb
|
path: build/*.deb
|
||||||
|
|
||||||
|
ubuntu-24-04-build:
|
||||||
|
runs-on: ubuntu-24.04
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Get build dept.
|
||||||
|
run: |
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install cmake qt6-base-dev qt6-svg-dev qt6-tools-dev libexiv2-dev
|
||||||
|
- name: Build it
|
||||||
|
run: |
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake ../ -DPREFER_QT_5=OFF
|
||||||
|
make
|
||||||
|
cpack -G DEB
|
||||||
|
- name: Try install it
|
||||||
|
run: |
|
||||||
|
cd build
|
||||||
|
sudo apt install ./*.deb
|
||||||
|
- uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: ubuntu-24.04-deb-package
|
||||||
|
path: build/*.deb
|
||||||
|
|
47
.github/workflows/windows.yml
vendored
47
.github/workflows/windows.yml
vendored
|
@ -3,14 +3,14 @@ name: Windows CI
|
||||||
on: [push, pull_request]
|
on: [push, pull_request]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
msvc-build:
|
msvc-qmake-build:
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
vs: ['2019']
|
vs: ['2022']
|
||||||
msvc_arch: ['x64']
|
msvc_arch: ['x64']
|
||||||
|
|
||||||
runs-on: windows-2019
|
runs-on: windows-2022
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
@ -18,7 +18,7 @@ jobs:
|
||||||
uses: jurplel/install-qt-action@v3
|
uses: jurplel/install-qt-action@v3
|
||||||
with:
|
with:
|
||||||
arch: 'win64_msvc2019_64'
|
arch: 'win64_msvc2019_64'
|
||||||
version: '5.15.2'
|
version: '6.7.2'
|
||||||
- name: Build
|
- name: Build
|
||||||
shell: cmd
|
shell: cmd
|
||||||
run: |
|
run: |
|
||||||
|
@ -28,3 +28,42 @@ jobs:
|
||||||
call %VCVARS% ${{ matrix.msvc_arch }}
|
call %VCVARS% ${{ matrix.msvc_arch }}
|
||||||
qmake pineapple-pictures.pro
|
qmake pineapple-pictures.pro
|
||||||
nmake
|
nmake
|
||||||
|
nmake clean
|
||||||
|
windeployqt --verbose=2 --no-quick-import --no-translations --no-opengl-sw --no-system-d3d-compiler --skip-plugin-types tls,networkinformation release\ppic.exe
|
||||||
|
- uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: windows-msvc2022-qt6.7.2-qmake-package
|
||||||
|
path: release/*
|
||||||
|
|
||||||
|
msvc-cmake-build:
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
vs: ['2022']
|
||||||
|
msvc_arch: ['x64']
|
||||||
|
|
||||||
|
runs-on: windows-2022
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Install Qt
|
||||||
|
uses: jurplel/install-qt-action@v3
|
||||||
|
with:
|
||||||
|
arch: 'win64_msvc2019_64'
|
||||||
|
version: '6.5.3'
|
||||||
|
- name: Build
|
||||||
|
shell: cmd
|
||||||
|
run: |
|
||||||
|
set PWD=%cd%
|
||||||
|
set VS=${{ matrix.vs }}
|
||||||
|
set VCVARS="C:\Program Files (x86)\Microsoft Visual Studio\%VS%\Enterprise\VC\Auxiliary\Build\vcvarsall.bat"
|
||||||
|
if not exist %VCVARS% set VCVARS="C:\Program Files\Microsoft Visual Studio\%VS%\Enterprise\VC\Auxiliary\Build\vcvarsall.bat"
|
||||||
|
call %VCVARS% ${{ matrix.msvc_arch }}
|
||||||
|
cmake -Bbuild . -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="%PWD%\build\"
|
||||||
|
cmake --build build --config Release
|
||||||
|
cmake --build build --config Release --target=install
|
||||||
|
windeployqt --verbose=2 --no-quick-import --no-translations --no-opengl-sw --no-system-d3d-compiler --skip-plugin-types tls,networkinformation build\bin\ppic.exe
|
||||||
|
- uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: windows-msvc2022-qt6.5.3-cmake-package
|
||||||
|
path: build/bin/*
|
||||||
|
|
|
@ -6,8 +6,6 @@ cmake_minimum_required (VERSION 3.9.5)
|
||||||
|
|
||||||
project (pineapple-pictures)
|
project (pineapple-pictures)
|
||||||
|
|
||||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake)
|
|
||||||
|
|
||||||
include (GNUInstallDirs)
|
include (GNUInstallDirs)
|
||||||
include (FeatureSummary)
|
include (FeatureSummary)
|
||||||
|
|
||||||
|
@ -41,8 +39,8 @@ if (${QT_VERSION_MAJOR} EQUAL "6")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (EXIV2_METADATA_SUPPORT)
|
if (EXIV2_METADATA_SUPPORT)
|
||||||
find_package(LibExiv2)
|
find_package(Exiv2)
|
||||||
set_package_properties(LibExiv2 PROPERTIES
|
set_package_properties(Exiv2 PROPERTIES
|
||||||
URL "https://www.exiv2.org"
|
URL "https://www.exiv2.org"
|
||||||
DESCRIPTION "image metadata support"
|
DESCRIPTION "image metadata support"
|
||||||
TYPE OPTIONAL
|
TYPE OPTIONAL
|
||||||
|
@ -50,7 +48,6 @@ if (EXIV2_METADATA_SUPPORT)
|
||||||
)
|
)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
#LibExiv2_FOUND
|
|
||||||
set (PPIC_CPP_FILES
|
set (PPIC_CPP_FILES
|
||||||
app/main.cpp
|
app/main.cpp
|
||||||
app/framelesswindow.cpp
|
app/framelesswindow.cpp
|
||||||
|
@ -115,7 +112,11 @@ add_executable (${EXE_NAME} WIN32
|
||||||
${PPIC_RC_FILES}
|
${PPIC_RC_FILES}
|
||||||
)
|
)
|
||||||
|
|
||||||
qt_create_translation(PPIC_QM_FILES ${PPIC_CPP_FILES_FOR_I18N} ${PPIC_TS_FILES})
|
if (${QT_VERSION_MAJOR} EQUAL "6")
|
||||||
|
qt_add_translations(${EXE_NAME} TS_FILES ${PPIC_TS_FILES} QM_FILES_OUTPUT_VARIABLE PPIC_QM_FILES)
|
||||||
|
else()
|
||||||
|
qt_create_translation(PPIC_QM_FILES ${PPIC_CPP_FILES_FOR_I18N} ${PPIC_TS_FILES})
|
||||||
|
endif()
|
||||||
|
|
||||||
target_sources(${EXE_NAME} PRIVATE ${PPIC_QM_FILES})
|
target_sources(${EXE_NAME} PRIVATE ${PPIC_QM_FILES})
|
||||||
|
|
||||||
|
@ -124,17 +125,16 @@ if (${QT_VERSION_MAJOR} EQUAL "6")
|
||||||
target_link_libraries (${EXE_NAME} Qt::SvgWidgets)
|
target_link_libraries (${EXE_NAME} Qt::SvgWidgets)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (LibExiv2_FOUND)
|
if (Exiv2_FOUND)
|
||||||
message(INFO ${LibExiv2_INCLUDE_DIRS})
|
if(NOT TARGET Exiv2::exiv2lib AND TARGET exiv2lib)
|
||||||
target_include_directories(${EXE_NAME}
|
# for exiv2 0.27.x
|
||||||
PRIVATE
|
add_library(Exiv2::exiv2lib ALIAS exiv2lib)
|
||||||
${LibExiv2_INCLUDE_DIRS}
|
endif()
|
||||||
)
|
|
||||||
target_link_libraries (${EXE_NAME}
|
target_link_libraries (${EXE_NAME}
|
||||||
LibExiv2::LibExiv2
|
Exiv2::exiv2lib
|
||||||
)
|
)
|
||||||
target_compile_definitions(${EXE_NAME} PRIVATE
|
target_compile_definitions(${EXE_NAME} PRIVATE
|
||||||
HAVE_EXIV2_VERSION="${LibExiv2_VERSION}"
|
HAVE_EXIV2_VERSION="${Exiv2_VERSION}"
|
||||||
)
|
)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
@ -264,7 +264,7 @@ elseif (APPLE)
|
||||||
# ...
|
# ...
|
||||||
elseif (UNIX)
|
elseif (UNIX)
|
||||||
set (CPACK_SYSTEM_NAME "${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
|
set (CPACK_SYSTEM_NAME "${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
|
||||||
set (CPACK_DEBIAN_PACKAGE_SHILIBDEPS ON)
|
set (CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
|
||||||
set (CPACK_DEBIAN_PACKAGE_RECOMMENDS "kimageformat-plugins")
|
set (CPACK_DEBIAN_PACKAGE_RECOMMENDS "kimageformat-plugins")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
Copyright (c) <year> <owner>.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
|
||||||
|
|
||||||
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
|
||||||
|
|
||||||
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
10
NEWS
10
NEWS
|
@ -1,3 +1,13 @@
|
||||||
|
Version 0.8.0
|
||||||
|
~~~~~~~~~~~~~
|
||||||
|
Released: 2024-06-29
|
||||||
|
|
||||||
|
Features:
|
||||||
|
* Support move image file to trash
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
albanobattistella, mmahhi, gallegonovato, Oğuz Ersen
|
||||||
|
|
||||||
Version 0.7.4
|
Version 0.7.4
|
||||||
~~~~~~~~~~~~~
|
~~~~~~~~~~~~~
|
||||||
Released: 2024-04-04
|
Released: 2024-04-04
|
||||||
|
|
|
@ -35,7 +35,7 @@ Pineapple Pictures is a lightweight image viewer that allows you view JPEG, PNG,
|
||||||
Current state, we need:
|
Current state, we need:
|
||||||
|
|
||||||
- `cmake`: as the build system.
|
- `cmake`: as the build system.
|
||||||
- `qt5` with `qt5-svg` and `qt5-tools`: since the app is using Qt.
|
- `qt6` with `qt6-svg` and `qt6-tools`: since the app is using Qt.
|
||||||
- `libexiv2`: able to display more image metadata. (optional, but recommended)
|
- `libexiv2`: able to display more image metadata. (optional, but recommended)
|
||||||
|
|
||||||
Then we can build it with any proper c++ compiler like g++ or msvc.
|
Then we can build it with any proper c++ compiler like g++ or msvc.
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
当前状态,我们需要先确保如下依赖可用:
|
当前状态,我们需要先确保如下依赖可用:
|
||||||
|
|
||||||
- `cmake`: 我们所使用的构建系统
|
- `cmake`: 我们所使用的构建系统
|
||||||
- 包含 `qt5-svg` 与 `qt5-tools` 组件的 `qt5`: 此应用基于 Qt
|
- 包含 `qt6-svg` 与 `qt6-tools` 组件的 `qt6`: 此应用基于 Qt
|
||||||
- `libexiv2`: 用以获取和显示更多的图像元信息(可选,推荐)
|
- `libexiv2`: 用以获取和显示更多的图像元信息(可选,推荐)
|
||||||
|
|
||||||
然后我们就可以使用任何常规的 c++ 编译器如 g++ 或 msvc 来进行构建了
|
然后我们就可以使用任何常规的 c++ 编译器如 g++ 或 msvc 来进行构建了
|
||||||
|
|
|
@ -66,7 +66,7 @@ AboutDialog::AboutDialog(QWidget *parent)
|
||||||
|
|
||||||
QFile translaterHtml(":/plain/translators.html");
|
QFile translaterHtml(":/plain/translators.html");
|
||||||
bool canOpenFile = translaterHtml.open(QIODevice::ReadOnly);
|
bool canOpenFile = translaterHtml.open(QIODevice::ReadOnly);
|
||||||
const QByteArray & translatorList = canOpenFile ? translaterHtml.readAll() : "";
|
const QByteArray & translatorList = canOpenFile ? translaterHtml.readAll() : QByteArrayLiteral("");
|
||||||
|
|
||||||
const QStringList specialThanksStr {
|
const QStringList specialThanksStr {
|
||||||
QStringLiteral("<h1 align='center'>%1</h1><a href='%2'>%3</a><p>%4</p>").arg(
|
QStringLiteral("<h1 align='center'>%1</h1><a href='%2'>%3</a><p>%4</p>").arg(
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
#include <QGraphicsItem>
|
#include <QGraphicsItem>
|
||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
#include <QGraphicsSvgItem>
|
#include <QGraphicsSvgItem>
|
||||||
|
#include <QSvgRenderer>
|
||||||
#include <QMovie>
|
#include <QMovie>
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
|
|
||||||
|
@ -116,7 +117,16 @@ void GraphicsScene::showText(const QString &text)
|
||||||
void GraphicsScene::showSvg(const QString &filepath)
|
void GraphicsScene::showSvg(const QString &filepath)
|
||||||
{
|
{
|
||||||
this->clear();
|
this->clear();
|
||||||
QGraphicsSvgItem * svgItem = new QGraphicsSvgItem(filepath);
|
QGraphicsSvgItem * svgItem = new QGraphicsSvgItem();
|
||||||
|
QSvgRenderer * render = new QSvgRenderer(svgItem);
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0)
|
||||||
|
// Qt 6.7.0's SVG support is terrible caused by huge memory usage, see QTBUG-124287
|
||||||
|
// Qt 6.7.1's is somewhat better, memory issue seems fixed, but still laggy when zoom in
|
||||||
|
// Anyway let's disable it for now.
|
||||||
|
render->setOptions(QtSvg::Tiny12FeaturesOnly);
|
||||||
|
#endif // QT_VERSION >= QT_VERSION_CHECK(6, 7, 0)
|
||||||
|
render->load(filepath);
|
||||||
|
svgItem->setSharedRenderer(render);
|
||||||
this->addItem(svgItem);
|
this->addItem(svgItem);
|
||||||
m_theThing = svgItem;
|
m_theThing = svgItem;
|
||||||
this->setSceneRect(m_theThing->boundingRect());
|
this->setSceneRect(m_theThing->boundingRect());
|
||||||
|
|
|
@ -228,12 +228,12 @@
|
||||||
<message>
|
<message>
|
||||||
<location filename="../mainwindow.cpp" line="737"/>
|
<location filename="../mainwindow.cpp" line="737"/>
|
||||||
<source>Are you sure you want to move "%1" to recycle bin?</source>
|
<source>Are you sure you want to move "%1" to recycle bin?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>¿Estás seguro de que quieres mover "%1" a la papelera de reciclaje?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../mainwindow.cpp" line="742"/>
|
<location filename="../mainwindow.cpp" line="742"/>
|
||||||
<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>Mover a la papelera ha fallado, puede deberse a un problema con los permisos de los archivos, una limitación del sistema de archivos o una limitación de la plataforma.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../actionmanager.cpp" line="106"/>
|
<location filename="../actionmanager.cpp" line="106"/>
|
||||||
|
@ -328,7 +328,7 @@
|
||||||
<location filename="../actionmanager.cpp" line="109"/>
|
<location filename="../actionmanager.cpp" line="109"/>
|
||||||
<location filename="../mainwindow.cpp" line="736"/>
|
<location filename="../mainwindow.cpp" line="736"/>
|
||||||
<source>Move to Trash</source>
|
<source>Move to Trash</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Mover a la papelera</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../actionmanager.cpp" line="113"/>
|
<location filename="../actionmanager.cpp" line="113"/>
|
||||||
|
|
|
@ -224,12 +224,12 @@
|
||||||
<message>
|
<message>
|
||||||
<location filename="../mainwindow.cpp" line="737"/>
|
<location filename="../mainwindow.cpp" line="737"/>
|
||||||
<source>Are you sure you want to move "%1" to recycle bin?</source>
|
<source>Are you sure you want to move "%1" to recycle bin?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Sei sicuro di voler spostare "%1" nel cestino?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../mainwindow.cpp" line="742"/>
|
<location filename="../mainwindow.cpp" line="742"/>
|
||||||
<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>Lo spostamento nel cestino non è riuscito, potrebbe essere causato da un problema di autorizzazione del file, da una limitazione del file system o da una limitazione della piattaforma.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../actionmanager.cpp" line="106"/>
|
<location filename="../actionmanager.cpp" line="106"/>
|
||||||
|
@ -324,7 +324,7 @@
|
||||||
<location filename="../actionmanager.cpp" line="109"/>
|
<location filename="../actionmanager.cpp" line="109"/>
|
||||||
<location filename="../mainwindow.cpp" line="736"/>
|
<location filename="../mainwindow.cpp" line="736"/>
|
||||||
<source>Move to Trash</source>
|
<source>Move to Trash</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Sposta nel cestino</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../actionmanager.cpp" line="113"/>
|
<location filename="../actionmanager.cpp" line="113"/>
|
||||||
|
|
|
@ -228,12 +228,12 @@
|
||||||
<message>
|
<message>
|
||||||
<location filename="../mainwindow.cpp" line="737"/>
|
<location filename="../mainwindow.cpp" line="737"/>
|
||||||
<source>Are you sure you want to move "%1" to recycle bin?</source>
|
<source>Are you sure you want to move "%1" to recycle bin?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>"%1" ögesini geri dönüşüm kutusuna taşımak istediğinizden emin misiniz?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../mainwindow.cpp" line="742"/>
|
<location filename="../mainwindow.cpp" line="742"/>
|
||||||
<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>Çöp kutusuna taşıma başarısız oldu, dosya izin sorunu, dosya sistemi sınırlaması veya platform sınırlamasından kaynaklanıyor olabilir.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../actionmanager.cpp" line="106"/>
|
<location filename="../actionmanager.cpp" line="106"/>
|
||||||
|
@ -328,7 +328,7 @@
|
||||||
<location filename="../actionmanager.cpp" line="109"/>
|
<location filename="../actionmanager.cpp" line="109"/>
|
||||||
<location filename="../mainwindow.cpp" line="736"/>
|
<location filename="../mainwindow.cpp" line="736"/>
|
||||||
<source>Move to Trash</source>
|
<source>Move to Trash</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Çöp Kutusuna Taşı</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../actionmanager.cpp" line="113"/>
|
<location filename="../actionmanager.cpp" line="113"/>
|
||||||
|
|
|
@ -8,8 +8,8 @@ environment:
|
||||||
LIBEXIV2: C:\projects\exiv2
|
LIBEXIV2: C:\projects\exiv2
|
||||||
PPKG: C:\projects\ppkg
|
PPKG: C:\projects\ppkg
|
||||||
matrix:
|
matrix:
|
||||||
- job_name: mingw_64_qt6_5
|
- job_name: mingw_64_qt6_7
|
||||||
QTDIR: C:\Qt\6.5\mingw_64
|
QTDIR: C:\Qt\6.7\mingw_64
|
||||||
MINGW64: C:\Qt\Tools\mingw1120_64
|
MINGW64: C:\Qt\Tools\mingw1120_64
|
||||||
KF_BRANCH: master
|
KF_BRANCH: master
|
||||||
EXIV2_VERSION: "0.28.2"
|
EXIV2_VERSION: "0.28.2"
|
||||||
|
@ -41,7 +41,7 @@ install:
|
||||||
build_script:
|
build_script:
|
||||||
# prepare
|
# prepare
|
||||||
- mkdir 3rdparty
|
- mkdir 3rdparty
|
||||||
- cinst ninja
|
- choco install ninja
|
||||||
- cd %PPKG%
|
- cd %PPKG%
|
||||||
- curl -fsSL -o ppkg.exe https://github.com/BLumia/pineapple-package-manager/releases/latest/download/ppkg.exe
|
- curl -fsSL -o ppkg.exe https://github.com/BLumia/pineapple-package-manager/releases/latest/download/ppkg.exe
|
||||||
- cd %APPVEYOR_BUILD_FOLDER%
|
- cd %APPVEYOR_BUILD_FOLDER%
|
||||||
|
@ -132,7 +132,7 @@ build_script:
|
||||||
# finally...
|
# finally...
|
||||||
- mkdir build
|
- mkdir build
|
||||||
- cd build
|
- cd build
|
||||||
- cmake .. -G "Ninja" %PPIC_CMAKE_OPTIONS% -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX='%cd%'
|
- cmake .. -G "Ninja" %PPIC_CMAKE_OPTIONS% -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=%CMAKE_INSTALL_PREFIX% -DCMAKE_INSTALL_PREFIX='%cd%'
|
||||||
- cmake --build . --config Release
|
- cmake --build . --config Release
|
||||||
- cmake --build . --config Release --target install/strip
|
- cmake --build . --config Release --target install/strip
|
||||||
# fixme: I don't know how to NOT make the binary installed to the ./bin/ folder...
|
# fixme: I don't know how to NOT make the binary installed to the ./bin/ folder...
|
||||||
|
|
|
@ -1,96 +0,0 @@
|
||||||
#.rst:
|
|
||||||
# FindLibExiv2
|
|
||||||
# ------------
|
|
||||||
#
|
|
||||||
# Try to find the Exiv2 library.
|
|
||||||
#
|
|
||||||
# This will define the following variables:
|
|
||||||
#
|
|
||||||
# ``LibExiv2_FOUND``
|
|
||||||
# True if (the requested version of) Exiv2 is available
|
|
||||||
#
|
|
||||||
# ``LibExiv2_VERSION``
|
|
||||||
# The version of Exiv2
|
|
||||||
#
|
|
||||||
# ``LibExiv2_INCLUDE_DIRS``
|
|
||||||
# The include dirs of Exiv2 for use with target_include_directories()
|
|
||||||
#
|
|
||||||
# ``LibExiv2_LIBRARIES``
|
|
||||||
# The Exiv2 library for use with target_link_libraries().
|
|
||||||
# This can be passed to target_link_libraries() instead of
|
|
||||||
# the ``LibExiv2::LibExiv2`` target
|
|
||||||
#
|
|
||||||
# If ``LibExiv2_FOUND`` is TRUE, it will also define the following imported
|
|
||||||
# target:
|
|
||||||
#
|
|
||||||
# ``LibExiv2::LibExiv2``
|
|
||||||
# The Exiv2 library
|
|
||||||
#
|
|
||||||
# In general we recommend using the imported target, as it is easier to use.
|
|
||||||
# Bear in mind, however, that if the target is in the link interface of an
|
|
||||||
# exported library, it must be made available by the package config file.
|
|
||||||
#
|
|
||||||
# Since 5.53.0.
|
|
||||||
#
|
|
||||||
#=============================================================================
|
|
||||||
# SPDX-FileCopyrightText: 2018 Christophe Giboudeaux <christophe@krop.fr>
|
|
||||||
# SPDX-FileCopyrightText: 2010 Alexander Neundorf <neundorf@kde.org>
|
|
||||||
# SPDX-FileCopyrightText: 2008 Gilles Caulier <caulier.gilles@gmail.com>
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
#=============================================================================
|
|
||||||
|
|
||||||
find_package(PkgConfig QUIET)
|
|
||||||
pkg_check_modules(PC_EXIV2 QUIET exiv2)
|
|
||||||
|
|
||||||
find_path(LibExiv2_INCLUDE_DIRS NAMES exiv2/exif.hpp
|
|
||||||
HINTS ${PC_EXIV2_INCLUDEDIR}
|
|
||||||
)
|
|
||||||
|
|
||||||
find_library(LibExiv2_LIBRARIES NAMES exiv2 libexiv2
|
|
||||||
HINTS ${PC_EXIV2_LIBRARY_DIRS}
|
|
||||||
)
|
|
||||||
|
|
||||||
set(LibExiv2_VERSION ${PC_EXIV2_VERSION})
|
|
||||||
|
|
||||||
if(NOT LibExiv2_VERSION AND DEFINED LibExiv2_INCLUDE_DIRS)
|
|
||||||
# With exiv >= 0.27, the version #defines are in exv_conf.h instead of version.hpp
|
|
||||||
foreach(_exiv2_version_file "version.hpp" "exv_conf.h")
|
|
||||||
if(EXISTS "${LibExiv2_INCLUDE_DIRS}/exiv2/${_exiv2_version_file}")
|
|
||||||
file(READ "${LibExiv2_INCLUDE_DIRS}/exiv2/${_exiv2_version_file}" _exiv_version_file_content)
|
|
||||||
string(REGEX MATCH "#define EXIV2_MAJOR_VERSION[ ]+\\([0-9]+\\)" EXIV2_MAJOR_VERSION_MATCH ${_exiv_version_file_content})
|
|
||||||
string(REGEX MATCH "#define EXIV2_MINOR_VERSION[ ]+\\([0-9]+\\)" EXIV2_MINOR_VERSION_MATCH ${_exiv_version_file_content})
|
|
||||||
string(REGEX MATCH "#define EXIV2_PATCH_VERSION[ ]+\\([0-9]+\\)" EXIV2_PATCH_VERSION_MATCH ${_exiv_version_file_content})
|
|
||||||
if(EXIV2_MAJOR_VERSION_MATCH)
|
|
||||||
string(REGEX REPLACE ".*_MAJOR_VERSION[ ]+\\((.*)\\)" "\\1" EXIV2_MAJOR_VERSION ${EXIV2_MAJOR_VERSION_MATCH})
|
|
||||||
string(REGEX REPLACE ".*_MINOR_VERSION[ ]+\\((.*)\\)" "\\1" EXIV2_MINOR_VERSION ${EXIV2_MINOR_VERSION_MATCH})
|
|
||||||
string(REGEX REPLACE ".*_PATCH_VERSION[ ]+\\((.*)\\)" "\\1" EXIV2_PATCH_VERSION ${EXIV2_PATCH_VERSION_MATCH})
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
set(LibExiv2_VERSION "${EXIV2_MAJOR_VERSION}.${EXIV2_MINOR_VERSION}.${EXIV2_PATCH_VERSION}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
include(FindPackageHandleStandardArgs)
|
|
||||||
find_package_handle_standard_args(LibExiv2
|
|
||||||
FOUND_VAR LibExiv2_FOUND
|
|
||||||
REQUIRED_VARS LibExiv2_LIBRARIES LibExiv2_INCLUDE_DIRS
|
|
||||||
VERSION_VAR LibExiv2_VERSION
|
|
||||||
)
|
|
||||||
|
|
||||||
mark_as_advanced(LibExiv2_INCLUDE_DIRS LibExiv2_LIBRARIES)
|
|
||||||
|
|
||||||
if(LibExiv2_FOUND AND NOT TARGET LibExiv2::LibExiv2)
|
|
||||||
add_library(LibExiv2::LibExiv2 UNKNOWN IMPORTED)
|
|
||||||
set_target_properties(LibExiv2::LibExiv2 PROPERTIES
|
|
||||||
IMPORTED_LOCATION "${LibExiv2_LIBRARIES}"
|
|
||||||
INTERFACE_INCLUDE_DIRECTORIES "${LibExiv2_INCLUDE_DIRS}"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
include(FeatureSummary)
|
|
||||||
set_package_properties(LibExiv2 PROPERTIES
|
|
||||||
URL "https://www.exiv2.org"
|
|
||||||
DESCRIPTION "Image metadata support"
|
|
||||||
)
|
|
|
@ -2,12 +2,14 @@
|
||||||
<component type="desktop-application">
|
<component type="desktop-application">
|
||||||
<id>net.blumia.pineapple-pictures</id>
|
<id>net.blumia.pineapple-pictures</id>
|
||||||
<name>Pineapple Pictures</name>
|
<name>Pineapple Pictures</name>
|
||||||
|
<name xml:lang="es">Pineapple Pictures</name>
|
||||||
<name xml:lang="ja">Pineapple Pictures</name>
|
<name xml:lang="ja">Pineapple Pictures</name>
|
||||||
<name xml:lang="nl">Pineapple Afbeeldingen</name>
|
<name xml:lang="nl">Pineapple Afbeeldingen</name>
|
||||||
<name xml:lang="ru">Pineapple Pictures</name>
|
<name xml:lang="ru">Pineapple Pictures</name>
|
||||||
<name xml:lang="uk">Pineapple Pictures</name>
|
<name xml:lang="uk">Pineapple Pictures</name>
|
||||||
<name xml:lang="zh-CN">菠萝看图</name>
|
<name xml:lang="zh-CN">菠萝看图</name>
|
||||||
<summary>Image Viewer</summary>
|
<summary>Image Viewer</summary>
|
||||||
|
<summary xml:lang="es">Visor de imágenes</summary>
|
||||||
<summary xml:lang="ja">画像ビューアー</summary>
|
<summary xml:lang="ja">画像ビューアー</summary>
|
||||||
<summary xml:lang="nl">Afbeeldingsweergave</summary>
|
<summary xml:lang="nl">Afbeeldingsweergave</summary>
|
||||||
<summary xml:lang="ru">Просмотр изображений</summary>
|
<summary xml:lang="ru">Просмотр изображений</summary>
|
||||||
|
@ -17,6 +19,7 @@
|
||||||
<project_license>MIT</project_license>
|
<project_license>MIT</project_license>
|
||||||
<description>
|
<description>
|
||||||
<p>Pineapple Pictures is a lightweight and easy-to-use image viewer that comes with a handy navigation thumbnail when zoom-in, and doesn't contain any image management support.</p>
|
<p>Pineapple Pictures is a lightweight and easy-to-use image viewer that comes with a handy navigation thumbnail when zoom-in, and doesn't contain any image management support.</p>
|
||||||
|
<p xml:lang="es">Pineapple Pictures es un visor de imágenes ligero y fácil de usar que viene con una práctica miniatura de navegación al hacer zoom, y no contiene ningún soporte de gestión de imágenes.</p>
|
||||||
<p xml:lang="ja">Pineapple Picturesは、ズームイン時に便利なナビゲーションサムネイルを備えた軽量で使いやすい画像ビューアです。画像管理のサポートは含まれていません。</p>
|
<p xml:lang="ja">Pineapple Picturesは、ズームイン時に便利なナビゲーションサムネイルを備えた軽量で使いやすい画像ビューアです。画像管理のサポートは含まれていません。</p>
|
||||||
<p xml:lang="nl">Pineapple Afbeeldingen is een licht en eenvoudig te gebruiken afbeeldingsweergaveprogramma met miniatuurnavigatie na inzoomen. Het programma heeft echter geen fotobeheermogelijkheid.</p>
|
<p xml:lang="nl">Pineapple Afbeeldingen is een licht en eenvoudig te gebruiken afbeeldingsweergaveprogramma met miniatuurnavigatie na inzoomen. Het programma heeft echter geen fotobeheermogelijkheid.</p>
|
||||||
<p xml:lang="ru">Pineapple Pictures - это легкий и простой в использовании просмотрщик изображений, оснащенный удобной навигацией по миниатюрам при увеличении масштаба и не содержащий никакой поддержки управления изображениями.</p>
|
<p xml:lang="ru">Pineapple Pictures - это легкий и простой в использовании просмотрщик изображений, оснащенный удобной навигацией по миниатюрам при увеличении масштаба и не содержащий никакой поддержки управления изображениями.</p>
|
||||||
|
@ -41,6 +44,7 @@
|
||||||
<screenshots>
|
<screenshots>
|
||||||
<screenshot type="default">
|
<screenshot type="default">
|
||||||
<caption>Main window when an image file is loaded</caption>
|
<caption>Main window when an image file is loaded</caption>
|
||||||
|
<caption xml:lang="es">Ventana principal cuando se carga un archivo de imagen</caption>
|
||||||
<caption xml:lang="ja">画像ファイル読み込み時のメインウィンドウ</caption>
|
<caption xml:lang="ja">画像ファイル読み込み時のメインウィンドウ</caption>
|
||||||
<caption xml:lang="nl">Hoofdvenster na het laden van een afbeelding</caption>
|
<caption xml:lang="nl">Hoofdvenster na het laden van een afbeelding</caption>
|
||||||
<caption xml:lang="ru">Основное окно после загрузки файла изображения</caption>
|
<caption xml:lang="ru">Основное окно после загрузки файла изображения</caption>
|
||||||
|
@ -50,6 +54,7 @@
|
||||||
</screenshot>
|
</screenshot>
|
||||||
<screenshot>
|
<screenshot>
|
||||||
<caption>Zooming in a raster image</caption>
|
<caption>Zooming in a raster image</caption>
|
||||||
|
<caption xml:lang="es">Ampliar una imagen rasterizada</caption>
|
||||||
<caption xml:lang="ja">ラスター画像の拡大</caption>
|
<caption xml:lang="ja">ラスター画像の拡大</caption>
|
||||||
<caption xml:lang="nl">Inzoomen op een roosterafbeelding</caption>
|
<caption xml:lang="nl">Inzoomen op een roosterafbeelding</caption>
|
||||||
<caption xml:lang="ru">Масштабирование растрового изображения</caption>
|
<caption xml:lang="ru">Масштабирование растрового изображения</caption>
|
||||||
|
@ -59,6 +64,7 @@
|
||||||
</screenshot>
|
</screenshot>
|
||||||
<screenshot>
|
<screenshot>
|
||||||
<caption>Zooming in a vector image</caption>
|
<caption>Zooming in a vector image</caption>
|
||||||
|
<caption xml:lang="es">Ampliar una imagen vectorial</caption>
|
||||||
<caption xml:lang="ja">ベクター画像の拡大</caption>
|
<caption xml:lang="ja">ベクター画像の拡大</caption>
|
||||||
<caption xml:lang="nl">Inzoomen op een vectorafbeelding</caption>
|
<caption xml:lang="nl">Inzoomen op een vectorafbeelding</caption>
|
||||||
<caption xml:lang="ru">Масштабирование векторного изображения</caption>
|
<caption xml:lang="ru">Масштабирование векторного изображения</caption>
|
||||||
|
@ -68,6 +74,16 @@
|
||||||
</screenshot>
|
</screenshot>
|
||||||
</screenshots>
|
</screenshots>
|
||||||
<releases>
|
<releases>
|
||||||
|
<release type="stable" version="0.8.0" date="2024-06-29T00:00:00Z">
|
||||||
|
<description>
|
||||||
|
<p>This release adds the following feature:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Support move image file to trash</li>
|
||||||
|
</ul>
|
||||||
|
<p>With contributions from:</p>
|
||||||
|
<p>albanobattistella, mmahhi, gallegonovato, Oğuz Ersen</p>
|
||||||
|
</description>
|
||||||
|
</release>
|
||||||
<release type="stable" version="0.7.4" date="2024-04-04T00:00:00Z">
|
<release type="stable" version="0.7.4" date="2024-04-04T00:00:00Z">
|
||||||
<description>
|
<description>
|
||||||
<p>This release adds the following feature:</p>
|
<p>This release adds the following feature:</p>
|
||||||
|
|
55
dist/appstream/po/net.blumia.pineapple-pictures.metainfo.es.po
vendored
Normal file
55
dist/appstream/po/net.blumia.pineapple-pictures.metainfo.es.po
vendored
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"POT-Creation-Date: 2023-08-22 18:49中国标准时间\n"
|
||||||
|
"PO-Revision-Date: 2024-04-19 17:07+0000\n"
|
||||||
|
"Last-Translator: gallegonovato <fran-carro@hotmail.es>\n"
|
||||||
|
"Language-Team: Spanish <https://hosted.weblate.org/projects/pineapple-"
|
||||||
|
"pictures/appstream-metadata/es/>\n"
|
||||||
|
"Language: es\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
|
"X-Generator: Weblate 5.5-dev\n"
|
||||||
|
|
||||||
|
#. (itstool) path: component/name
|
||||||
|
#: net.blumia.pineapple-pictures.metainfo.xml:7
|
||||||
|
msgid "Pineapple Pictures"
|
||||||
|
msgstr "Pineapple Pictures"
|
||||||
|
|
||||||
|
#. (itstool) path: component/summary
|
||||||
|
#: net.blumia.pineapple-pictures.metainfo.xml:9
|
||||||
|
msgid "Image Viewer"
|
||||||
|
msgstr "Visor de imágenes"
|
||||||
|
|
||||||
|
#. (itstool) path: description/p
|
||||||
|
#: net.blumia.pineapple-pictures.metainfo.xml:12
|
||||||
|
msgid ""
|
||||||
|
"Pineapple Pictures is a lightweight and easy-to-use image viewer that comes "
|
||||||
|
"with a handy navigation thumbnail when zoom-in, and doesn't contain any "
|
||||||
|
"image management support."
|
||||||
|
msgstr ""
|
||||||
|
"Pineapple Pictures es un visor de imágenes ligero y fácil de usar que viene "
|
||||||
|
"con una práctica miniatura de navegación al hacer zoom, y no contiene ningún "
|
||||||
|
"soporte de gestión de imágenes."
|
||||||
|
|
||||||
|
#. (itstool) path: screenshot/caption
|
||||||
|
#: net.blumia.pineapple-pictures.metainfo.xml:17
|
||||||
|
msgid "Main window when an image file is loaded"
|
||||||
|
msgstr "Ventana principal cuando se carga un archivo de imagen"
|
||||||
|
|
||||||
|
#. (itstool) path: screenshot/caption
|
||||||
|
#: net.blumia.pineapple-pictures.metainfo.xml:22
|
||||||
|
msgid "Zooming in a raster image"
|
||||||
|
msgstr "Ampliar una imagen rasterizada"
|
||||||
|
|
||||||
|
#. (itstool) path: screenshot/caption
|
||||||
|
#: net.blumia.pineapple-pictures.metainfo.xml:27
|
||||||
|
msgid "Zooming in a vector image"
|
||||||
|
msgstr "Ampliar una imagen vectorial"
|
||||||
|
|
||||||
|
#. (itstool) path: component/developer_name
|
||||||
|
#: net.blumia.pineapple-pictures.metainfo.xml:34
|
||||||
|
msgid "Gary (BLumia) Wang et al."
|
||||||
|
msgstr "Gary (BLumia) Wang et al."
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-FileCopyrightText: 2022 Gary Wang <wzc782970009@gmail.com>
|
# SPDX-FileCopyrightText: 2024 Gary Wang <git@blumia.net>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ DEFINES += QT_DEPRECATED_WARNINGS
|
||||||
# You can also select to disable deprecated APIs only up to a certain version of Qt.
|
# You can also select to disable deprecated APIs only up to a certain version of Qt.
|
||||||
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||||
|
|
||||||
CONFIG += c++11 lrelease embed_translations
|
CONFIG += c++17 lrelease embed_translations
|
||||||
|
|
||||||
SOURCES += \
|
SOURCES += \
|
||||||
app/aboutdialog.cpp \
|
app/aboutdialog.cpp \
|
||||||
|
@ -85,7 +85,7 @@ RC_ICONS = assets/icons/app-icon.ico
|
||||||
# Windows only, for rc file (we're not going to use the .rc file in this repo)
|
# Windows only, for rc file (we're not going to use the .rc file in this repo)
|
||||||
QMAKE_TARGET_PRODUCT = Pineapple Pictures
|
QMAKE_TARGET_PRODUCT = Pineapple Pictures
|
||||||
QMAKE_TARGET_DESCRIPTION = Pineapple Pictures - Image Viewer
|
QMAKE_TARGET_DESCRIPTION = Pineapple Pictures - Image Viewer
|
||||||
QMAKE_TARGET_COPYRIGHT = MIT/Expat License - Copyright (C) 2020 Gary Wang
|
QMAKE_TARGET_COPYRIGHT = MIT/Expat License - Copyright (C) 2024 Gary Wang
|
||||||
|
|
||||||
# MSVC only, since QMake doesn't have a CMAKE_CXX_STANDARD_LIBRARIES or cpp_winlibs similar thing
|
# MSVC only, since QMake doesn't have a CMAKE_CXX_STANDARD_LIBRARIES or cpp_winlibs similar thing
|
||||||
win32-msvc* {
|
win32-msvc* {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user