refactor: use html resource to replace manual html in code
This commit is contained in:
@@ -5,144 +5,86 @@
|
|||||||
#include "aboutdialog.h"
|
#include "aboutdialog.h"
|
||||||
#include "ui_aboutdialog.h"
|
#include "ui_aboutdialog.h"
|
||||||
|
|
||||||
#include <QAbstractButton>
|
|
||||||
#include <QDialogButtonBox>
|
|
||||||
#include <QTextBrowser>
|
|
||||||
#include <QTabWidget>
|
|
||||||
#include <QVBoxLayout>
|
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <QLabel>
|
|
||||||
#include <QPushButton>
|
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
|
|
||||||
using namespace Qt::Literals::StringLiterals;
|
using namespace Qt::Literals::StringLiterals;
|
||||||
|
|
||||||
|
static QString loadEmbeddedHtml(QString&& path) {
|
||||||
|
QFile htmlFile(path);
|
||||||
|
bool canOpenFile = htmlFile.open(QIODevice::ReadOnly);
|
||||||
|
QByteArray htmlRawContent = canOpenFile ? htmlFile.readAll() : QByteArrayLiteral("");
|
||||||
|
return QString::fromUtf8(htmlRawContent);
|
||||||
|
}
|
||||||
|
|
||||||
AboutDialog::AboutDialog(QWidget *parent)
|
AboutDialog::AboutDialog(QWidget *parent)
|
||||||
: QDialog(parent), ui(new Ui::AboutDialog)
|
: QDialog(parent), ui(new Ui::AboutDialog)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
setWindowFlag(Qt::WindowContextHelpButtonHint, false);
|
setWindowFlag(Qt::WindowContextHelpButtonHint, false);
|
||||||
|
|
||||||
const QStringList helpStr {
|
|
||||||
u"<p>%1</p>"_s.arg(tr("Launch application with image file path as argument to load the file.")),
|
|
||||||
u"<p>%1</p>"_s.arg(tr("Drag and drop image file onto the window is also supported.")),
|
|
||||||
u"<p>%1</p>"_s.arg(tr("None of the operations in this application will alter the pictures on disk.")),
|
|
||||||
u"<p>%1</p>"_s.arg(tr("Context menu option explanation:")),
|
|
||||||
u"<ul>"_s,
|
|
||||||
// blumia: Chain two arg() here since it seems lupdate will remove one of them if we use
|
// blumia: Chain two arg() here since it seems lupdate will remove one of them if we use
|
||||||
// the old `arg(QCoreApp::translate(), tr())` way, but it's worth to mention
|
// the old `arg(QCoreApp::translate(), tr())` way, but it's worth to mention
|
||||||
// `arg(QCoreApp::translate(), this->tr())` works, but lupdate will complain about the usage.
|
// `arg(QCoreApp::translate(), this->tr())` works, but lupdate will complain about the usage.
|
||||||
u"<li><b>%1</b>:<br/>%2</li>"_s
|
const QString HELP_HTML = loadEmbeddedHtml(u":/plain/help.html"_s)
|
||||||
.arg(QCoreApplication::translate("MainWindow", "Stay on top"))
|
.arg(tr("General Help"))
|
||||||
.arg(tr("Make window stay on top of all other windows.")),
|
.arg(tr("Launch application with image file path as argument to load the file."))
|
||||||
u"<li><b>%1</b>:<br/>%2</li>"_s
|
.arg(tr("Passing in a single image file will load all the images in that directory and start viewing from that image."))
|
||||||
.arg(QCoreApplication::translate("MainWindow", "Protected mode"))
|
.arg(tr("Passing in multiple image files lets you view them one by one."))
|
||||||
.arg(tr("Avoid close window accidentally. (eg. by double clicking the window)")),
|
.arg(tr("Drag and drop image file onto the window is also supported."))
|
||||||
u"<li><b>%1</b>:<br/>%2</li>"_s
|
.arg(tr("None of the operations in this application will alter the pictures on disk."))
|
||||||
.arg(QCoreApplication::translate("MainWindow", "Keep transformation", "The 'transformation' means the flip/rotation status that currently applied to the image view"))
|
.arg(tr("Context Menu Help"))
|
||||||
.arg(tr("Avoid resetting the zoom/rotation/flip state that was applied to the image view when switching between images.")),
|
.arg(tr("Keep transformation", "The same meaning of MainWindow's Keep transformation."))
|
||||||
u"</ul>"_s
|
.arg(tr("Avoid resetting the zoom/rotation/flip state that was applied to the image view when switching between images."));
|
||||||
};
|
|
||||||
|
|
||||||
const QStringList aboutStr {
|
const QString APP_NAME_ARG = qApp->applicationDisplayName();
|
||||||
u"<center><img width='128' height='128' src=':/icons/app-icon.svg'/><br/>"_s,
|
const QString APP_VERSION_ARG =
|
||||||
qApp->applicationDisplayName(),
|
|
||||||
(u"<br/>"_s + tr("Version: %1").arg(
|
|
||||||
#ifdef GIT_DESCRIBE_VERSION_STRING
|
#ifdef GIT_DESCRIBE_VERSION_STRING
|
||||||
GIT_DESCRIBE_VERSION_STRING
|
GIT_DESCRIBE_VERSION_STRING;
|
||||||
#else
|
#else
|
||||||
qApp->applicationVersion()
|
qApp->applicationVersion();
|
||||||
#endif // GIT_DESCRIBE_VERSION_STRING
|
#endif // GIT_DESCRIBE_VERSION_STRING
|
||||||
)),
|
const QString QT_VERSION_ARG = QT_VERSION_STR;
|
||||||
u"<hr/>"_s,
|
const QString QT_ARCH_ARG = QSysInfo::buildCpuArchitecture();
|
||||||
tr("Copyright (c) %1 %2", "%1 is year, %2 is the name of copyright holder(s)")
|
const QString ABOUT_HTML = loadEmbeddedHtml(u":/plain/about.html"_s)
|
||||||
.arg(u"2026"_s, u"<a href='https://github.com/BLumia'>@BLumia</a>"_s),
|
.arg(APP_NAME_ARG)
|
||||||
u"<br/>"_s,
|
.arg(tr("Version: %1").arg(APP_VERSION_ARG))
|
||||||
tr("Logo designed by %1").arg(u"<a href='https://github.com/Lovelyblack'>@Lovelyblack</a>"_s),
|
.arg(tr("Upstream author"))
|
||||||
u"<hr/>"_s,
|
.arg(tr("Hard fork author"))
|
||||||
tr("Built with Qt %1 (%2)").arg(QT_VERSION_STR, QSysInfo::buildCpuArchitecture()),
|
.arg(tr("Logo designer"))
|
||||||
QStringLiteral("<br/><a href='%1'>%2</a>").arg("https://github.com/BLumia/pineapple-pictures", tr("Source code")),
|
.arg(tr("Built with Qt %1 (%2)").arg(QT_VERSION_ARG).arg(QT_ARCH_ARG))
|
||||||
u"</center>"_s
|
.arg(tr("Source code"));
|
||||||
};
|
|
||||||
|
|
||||||
QFile translaterHtml(u":/plain/translators.html"_s);
|
const QString SPECIAL_THANKS_HTML = loadEmbeddedHtml(u":/plain/special-thanks.html"_s)
|
||||||
bool canOpenFile = translaterHtml.open(QIODevice::ReadOnly);
|
.arg(tr("Contributors"))
|
||||||
const QByteArray & translatorList = canOpenFile ? translaterHtml.readAll() : QByteArrayLiteral("");
|
.arg(tr("List of contributors on GitHub"))
|
||||||
|
.arg(tr("Thanks to all people who contributed to this project."))
|
||||||
|
.arg(tr("Translators"))
|
||||||
|
.arg(tr("I would like to thank the following people who volunteered to translate this application."));
|
||||||
|
|
||||||
const QStringList specialThanksStr {
|
const QString LICENSE_HTML = loadEmbeddedHtml(u":/plain/license.html"_s)
|
||||||
u"<h1 align='center'>%1</h1><a href='%2'>%3</a><p>%4</p>"_s.arg(
|
.arg(tr("License"))
|
||||||
tr("Contributors"),
|
.arg(tr("This application is released under the MIT License."))
|
||||||
u"https://github.com/BLumia/pineapple-pictures/graphs/contributors"_s,
|
.arg(tr("License Verbatim Copy"));
|
||||||
tr("List of contributors on GitHub"),
|
|
||||||
tr("Thanks to all people who contributed to this project.")
|
|
||||||
),
|
|
||||||
|
|
||||||
u"<h1 align='center'>%1</h1><p>%2</p>%3"_s.arg(
|
const QString THIRD_PARTY_LIBS_HTML = loadEmbeddedHtml(u":/plain/third-party-libs.html"_s)
|
||||||
tr("Translators"),
|
.arg(tr("Third-party Libraries"))
|
||||||
tr("I would like to thank the following people who volunteered to translate this application."),
|
.arg(tr("This application is built on the following free software libraries.", "Free as in freedom"))
|
||||||
translatorList
|
.arg(tr("Some of them are optional and might not be included with this distribution depending on the build environment."));
|
||||||
)
|
|
||||||
};
|
|
||||||
|
|
||||||
const QStringList licenseStr {
|
ui->m_helpTextEdit->setHtml(HELP_HTML);
|
||||||
u"<h1 align='center'><b>%1</b></h1>"_s.arg(tr("Your Rights")),
|
ui->m_helpTextEdit->setOpenExternalLinks(false);
|
||||||
u"<p>%1</p><p>%2</p><ul><li>%3</li><li>%4</li><li>%5</li><li>%6</li></ul>"_s.arg(
|
|
||||||
tr("%1 is released under the MIT License."), // %1
|
|
||||||
tr("This license grants people a number of freedoms:"), // %2
|
|
||||||
tr("You are free to use %1, for any purpose"), // %3
|
|
||||||
tr("You are free to distribute %1"), // %4
|
|
||||||
tr("You can study how %1 works and change it"), // %5
|
|
||||||
tr("You can distribute changed versions of %1") // %6
|
|
||||||
).arg(u"<i>%1</i>"_s),
|
|
||||||
u"<p>%1</p>"_s.arg(tr("The MIT license guarantees you this freedom. Nobody is ever permitted to take it away.")),
|
|
||||||
u"<hr/><pre>%2</pre>"_s
|
|
||||||
};
|
|
||||||
|
|
||||||
const QString mitLicense(QStringLiteral(R"(Expat/MIT License
|
ui->m_aboutTextEdit->setHtml(ABOUT_HTML);
|
||||||
|
|
||||||
Copyright © 2026 BLumia
|
|
||||||
|
|
||||||
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
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
)"));
|
|
||||||
|
|
||||||
const QStringList thirdPartyLibsStr {
|
|
||||||
u"<h1 align='center'><b>%1</b></h1>"_s.arg(tr("Third-party Libraries used by %1")),
|
|
||||||
tr("%1 is built on the following free software libraries:", "Free as in freedom"),
|
|
||||||
u"<ul>"_s,
|
|
||||||
#ifdef HAVE_EXIV2_VERSION
|
|
||||||
u"<li><a href='%1'>%2</a>: %3</li>"_s.arg("https://www.exiv2.org/", "Exiv2", "GPLv2"),
|
|
||||||
#endif // EXIV2_VERSION
|
|
||||||
u"<li><a href='%1'>%2</a>: %3</li>"_s.arg("https://www.qt.io/", "Qt", "GPLv2 + GPLv3 + LGPLv2.1 + LGPLv3"),
|
|
||||||
u"</ul>"_s
|
|
||||||
};
|
|
||||||
|
|
||||||
ui->m_helpTextEdit->setText(helpStr.join('\n'));
|
|
||||||
|
|
||||||
ui->m_aboutTextEdit->setText(aboutStr.join('\n'));
|
|
||||||
ui->m_aboutTextEdit->setOpenExternalLinks(true);
|
ui->m_aboutTextEdit->setOpenExternalLinks(true);
|
||||||
|
|
||||||
ui->m_specialThanksTextEdit->setText(specialThanksStr.join('\n'));
|
ui->m_specialThanksTextEdit->setHtml(SPECIAL_THANKS_HTML);
|
||||||
ui->m_specialThanksTextEdit->setOpenExternalLinks(true);
|
ui->m_specialThanksTextEdit->setOpenExternalLinks(true);
|
||||||
|
|
||||||
ui->m_licenseTextEdit->setText(licenseStr.join('\n').arg(qApp->applicationDisplayName(), mitLicense));
|
ui->m_licenseTextEdit->setHtml(LICENSE_HTML);
|
||||||
|
ui->m_licenseTextEdit->setOpenExternalLinks(false);
|
||||||
|
|
||||||
ui->m_3rdPartyLibsTextEdit->setText(thirdPartyLibsStr.join('\n').arg(u"<i>%1</i>"_s).arg(qApp->applicationDisplayName()));
|
ui->m_3rdPartyLibsTextEdit->setHtml(THIRD_PARTY_LIBS_HTML);
|
||||||
ui->m_3rdPartyLibsTextEdit->setOpenExternalLinks(true);
|
ui->m_3rdPartyLibsTextEdit->setOpenExternalLinks(true);
|
||||||
|
|
||||||
connect(ui->m_buttonBox, QOverload<QAbstractButton *>::of(&QDialogButtonBox::clicked), this, [this](QAbstractButton * btn){
|
connect(ui->m_buttonBox, QOverload<QAbstractButton *>::of(&QDialogButtonBox::clicked), this, [this](QAbstractButton * btn){
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ Settings::MouseWheelBehavior Settings::mouseWheelBehavior() const
|
|||||||
Settings::WindowSizeBehavior Settings::initWindowSizeBehavior() const
|
Settings::WindowSizeBehavior Settings::initWindowSizeBehavior() const
|
||||||
{
|
{
|
||||||
QString result = m_qsettings->value("init_window_size_behavior", "").toString();
|
QString result = m_qsettings->value("init_window_size_behavior", "").toString();
|
||||||
return QEnumHelper::fromString<WindowSizeBehavior>(result, WindowSizeBehavior::Maximized);
|
return QEnumHelper::fromString<WindowSizeBehavior>(result, WindowSizeBehavior::Windowed);
|
||||||
}
|
}
|
||||||
|
|
||||||
Qt::HighDpiScaleFactorRoundingPolicy Settings::hiDpiScaleFactorBehavior() const
|
Qt::HighDpiScaleFactorRoundingPolicy Settings::hiDpiScaleFactorBehavior() const
|
||||||
|
|||||||
29
assets/plain/about.html
Normal file
29
assets/plain/about.html
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
<center>
|
||||||
|
<p>
|
||||||
|
<img width='128' height='128' src=':/icons/app-icon.svg'/>
|
||||||
|
<br/>
|
||||||
|
<!-- Application name -->
|
||||||
|
<span>%1</span>
|
||||||
|
<br/>
|
||||||
|
<!-- Version info -->
|
||||||
|
<span>%2</span>
|
||||||
|
</p>
|
||||||
|
<hr/>
|
||||||
|
<p>
|
||||||
|
<!-- Upstream author and fork author -->
|
||||||
|
<span>%3</span><span>: </span><a href='https://github.com/BLumia'>@BLumia</a>
|
||||||
|
<br/>
|
||||||
|
<span>%4</span><span>: </span><a href='https://github.com/yyc12345'>@yyc12345</a>
|
||||||
|
<br/>
|
||||||
|
<!-- Icon author -->
|
||||||
|
<span>%5</span><span>: </span><a href='https://github.com/Lovelyblack'>@Lovelyblack</a>
|
||||||
|
</p>
|
||||||
|
<hr/>
|
||||||
|
<p>
|
||||||
|
<!-- Built Qt version info -->
|
||||||
|
<span>%6</span>
|
||||||
|
<br/>
|
||||||
|
<!-- Source code -->
|
||||||
|
<span>%7</span><span>: </span><a href='https://github.com/BLumia/pineapple-pictures'>GitHub</a>
|
||||||
|
</p>
|
||||||
|
</center>
|
||||||
24
assets/plain/help.html
Normal file
24
assets/plain/help.html
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<!-- General help -->
|
||||||
|
<h1 align='center'>%1</h1>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<span>%2</span>
|
||||||
|
<ul>
|
||||||
|
<li>%3</li>
|
||||||
|
<li>%4</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>%5</li>
|
||||||
|
<li>%6</li>
|
||||||
|
</ul>
|
||||||
|
<hr/>
|
||||||
|
<!-- Context menu option help -->
|
||||||
|
<h1 align='center'>%7</h1>
|
||||||
|
<!-- Context menu option list -->
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<b>%8</b><span>:</span>
|
||||||
|
<br/>
|
||||||
|
<span>%9</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
29
assets/plain/license.html
Normal file
29
assets/plain/license.html
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
<!-- License -->
|
||||||
|
<h1 align='center'><b>%1</b></h1>
|
||||||
|
<p>%2</p>
|
||||||
|
<hr/>
|
||||||
|
<!-- VErbatime license -->
|
||||||
|
<h1 align='center'><b>%3</b></h1>
|
||||||
|
<pre>
|
||||||
|
Expat/MIT License
|
||||||
|
|
||||||
|
Copyright © 2026 BLumia
|
||||||
|
|
||||||
|
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
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
</pre>
|
||||||
32
assets/plain/special-thanks.html
Normal file
32
assets/plain/special-thanks.html
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
<!-- Contributor title -->
|
||||||
|
<h1 align='center'>%1</h1>
|
||||||
|
<!-- Contributor list -->
|
||||||
|
<a href='https://github.com/BLumia/pineapple-pictures/graphs/contributors'>%2</a>
|
||||||
|
<!-- The message to thank these contributors -->
|
||||||
|
<p>%3</p>
|
||||||
|
|
||||||
|
<!-- Translator title -->
|
||||||
|
<h1 align='center'>%4</h1>
|
||||||
|
<!-- The message to thank these translators -->
|
||||||
|
<p>%5</p>
|
||||||
|
<ul>
|
||||||
|
<li><u>Catalan</u>: Toni Estévez</li>
|
||||||
|
<li><u>Chinese (Simplified)</u>: Percy Hong</li>
|
||||||
|
<li><u>Dutch</u>: Heimen Stoffels</li>
|
||||||
|
<li><u>French</u>: J. Lavoie, K. Herbert, Maxime Leroy</li>
|
||||||
|
<li><u>German</u>: K. Herbert, J. Lavoie, sal0max</li>
|
||||||
|
<li><u>Indonesian</u>: liimee, Reza Almanda</li>
|
||||||
|
<li><u>Italian</u>: albanobattistella</li>
|
||||||
|
<li><u>Japanese</u>: Black Cat, mmahhi, Percy Hong</li>
|
||||||
|
<li><u>Korean</u>: VenusGirl</li>
|
||||||
|
<li><u>Norwegian Bokmål</u>: Allan Nordhøy, ovl-1</li>
|
||||||
|
<li><u>Punjabi (Pakistan)</u>: bgo-eiu</li>
|
||||||
|
<li><u>Russian</u>: Sergey Shornikov, Artem, Andrey</li>
|
||||||
|
<li><u>Sinhala</u>: HelaBasa</li>
|
||||||
|
<li><u>Slovenian</u>: Andrej Poženel - SDT</li>
|
||||||
|
<li><u>Spanish</u>: Toni Estévez, Génesis Toxical, William(ѕ)ⁿ, gallegonovato</li>
|
||||||
|
<li><u>Tamil</u>: தமிழ்நேரம் (TamilNeram)</li>
|
||||||
|
<li><u>Turkish</u>: E-Akcaer, Oğuz Ersen, Sabri Ünal</li>
|
||||||
|
<li><u>Ukrainian</u>: Dan, volkov, Сергій</li>
|
||||||
|
<li><u>Vietnamese</u>: Loc Huynh</li>
|
||||||
|
</ul>
|
||||||
15
assets/plain/third-party-libs.html
Normal file
15
assets/plain/third-party-libs.html
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<!-- Title -->
|
||||||
|
<h1 align='center'><b>%1</b></h1>
|
||||||
|
<!-- List intro message -->
|
||||||
|
<p>%2</p>
|
||||||
|
<p>%3</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a href='https://www.qt.io/'>Qt</a><span>: </span>
|
||||||
|
<span>GPLv2 + GPLv3 + LGPLv2.1 + LGPLv3</span>
|
||||||
|
</li>
|
||||||
|
<li style="display: none;">
|
||||||
|
<a href='https://www.exiv2.org/'>Exiv2</a><span>: </span>
|
||||||
|
<span>GPLv2</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
@@ -10,6 +10,10 @@
|
|||||||
<file>icons/window-close.svg</file>
|
<file>icons/window-close.svg</file>
|
||||||
<file>icons/go-next.svg</file>
|
<file>icons/go-next.svg</file>
|
||||||
<file>icons/go-previous.svg</file>
|
<file>icons/go-previous.svg</file>
|
||||||
<file>plain/translators.html</file>
|
<file>plain/help.html</file>
|
||||||
|
<file>plain/about.html</file>
|
||||||
|
<file>plain/special-thanks.html</file>
|
||||||
|
<file>plain/license.html</file>
|
||||||
|
<file>plain/third-party-libs.html</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
|||||||
Reference in New Issue
Block a user