Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ Version counting is based on semantic versioning (Major.Feature.Patch)
* Add a theme editor and support for custom themes.
* Add an application language setting with a system default option in YACReader and YACReaderLibrary.

### All apps
* Add support for user-installed Qt image format plugins via the shared `plugins/imageformats` folder in the YACReader settings directory.

## 9.16.4

### YACReaderLibrary
Expand Down
1 change: 1 addition & 0 deletions YACReader/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ int main(int argc, char *argv[])

app.setApplicationName("YACReader");
app.setOrganizationName("YACReader");
YACReader::initializeSharedPluginPaths();

auto *appearanceConfig = new AppearanceConfiguration(
YACReader::getSettingsPath() + "/YACReader.ini", qApp);
Expand Down
1 change: 1 addition & 0 deletions YACReaderLibrary/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,7 @@ int main(int argc, char **argv)
app.setApplicationName("YACReaderLibrary");
app.setOrganizationName("YACReader");
app.setApplicationVersion(VERSION);
YACReader::initializeSharedPluginPaths();

// Theme initialization
auto *appearanceConfig = new AppearanceConfiguration(
Expand Down
1 change: 1 addition & 0 deletions YACReaderLibraryServer/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ int main(int argc, char **argv)

app.setApplicationName("YACReaderLibrary");
app.setOrganizationName("YACReader");
YACReader::initializeSharedPluginPaths();

QString buildNumber = ".0";

Expand Down
3 changes: 3 additions & 0 deletions common/global_info_provider.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#include "global_info_provider.h"

#include "yacreader_global.h"

#include <QImageReader>
#include <QPaintDevice>
#include <QtCore>
Expand All @@ -24,6 +26,7 @@ QString YACReader::getGlobalInfo()
text.append("\nAPP INFORMATION\n");
QString supportedImageFormats = QImageReader::supportedImageFormats().join(", ");
text.append(QString("Image formats supported: %1\n").arg(supportedImageFormats));
text.append(QString("User image plugin folder: %1\n").arg(YACReader::getImageFormatsPluginsPath()));
// append if sqlite driver is available
#ifdef YACREADER_LIBRARY
text.append(QString("SQLite driver available: %1\n").arg(QSqlDatabase::isDriverAvailable("QSQLITE") ? "yes" : "no"));
Expand Down
34 changes: 34 additions & 0 deletions common/yacreader_global.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,40 @@ QString YACReader::getSettingsPath()
return QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation);
}

QString YACReader::getCommonSettingsPath()
{
const auto organizationName = QCoreApplication::organizationName().trimmed();
const auto basePath = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation);

if (organizationName.isEmpty())
return basePath;

return QDir(basePath).filePath(organizationName);
}

QString YACReader::getCommonSettingsFilePath()
{
return QDir(getCommonSettingsPath()).filePath("YACReaderCommon.ini");
}

QString YACReader::getPluginsPath()
{
return QDir(getCommonSettingsPath()).filePath("plugins");
}

QString YACReader::getImageFormatsPluginsPath()
{
return QDir(getPluginsPath()).filePath("imageformats");
}

void YACReader::initializeSharedPluginPaths()
{
QDir().mkpath(getImageFormatsPluginsPath());

const QString pluginsPath = QDir(getPluginsPath()).absolutePath();
QCoreApplication::addLibraryPath(pluginsPath);
}

QString YACReader::colorToName(LabelColors colors)
{
switch (colors) {
Expand Down
5 changes: 5 additions & 0 deletions common/yacreader_global.h
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,11 @@ QDataStream &operator<<(QDataStream &stream, const OpenComicSource &source);
QDataStream &operator>>(QDataStream &stream, OpenComicSource &source);

QString getSettingsPath();
QString getCommonSettingsPath();
QString getCommonSettingsFilePath();
QString getPluginsPath();
QString getImageFormatsPluginsPath();
void initializeSharedPluginPaths();
QString colorToName(LabelColors colors);
QString labelColorToRGBString(LabelColors color);
QLibrary *load7zLibrary();
Expand Down
4 changes: 1 addition & 3 deletions custom_widgets/whats_new_controller.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@ YACReader::WhatsNewController::WhatsNewController() { }

void YACReader::WhatsNewController::showWhatsNewIfNeeded(QWidget *fromParent)
{
QSettings commonSettings(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) +
"/YACReader/YACReaderCommon.ini",
QSettings::IniFormat);
QSettings commonSettings(YACReader::getCommonSettingsFilePath(), QSettings::IniFormat);

if (commonSettings.value("LAST_VERSION_INSTALLED").toString() != VERSION) {
showWhatsNew(fromParent);
Expand Down
3 changes: 3 additions & 0 deletions custom_widgets/whats_new_dialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,9 @@ YACReader::WhatsNewDialog::WhatsNewDialog(QWidget *parent)
" &#8226; Add a theme editor and support for custom themes<br/>"
" &#8226; Add an application language setting with a system default option in YACReader and YACReaderLibrary<br/>"
"<br/>"
"<span style=\"font-weight:600\">All apps</span><br/>"
" &#8226; Add support for user-installed Qt image format plugins via the shared <i>plugins/imageformats</i> folder in the YACReader settings directory<br/>"
"<br/>"
"I hope you enjoy the new update. Please, if you like YACReader consider to become a patron in <a href=\"https://www.patreon.com/yacreader\" style=\"color:%1;\">Patreon</a> "
"or donate some money using <a href=\"https://www.paypal.com/donate?business=5TAMNQCDDMVP8&item_name=Support+YACReader\" style=\"color:%1;\">Pay-Pal</a> and help keeping the project alive. "
"Remember that there is an iOS version available in the <a href=\"https://apps.apple.com/app/id635717885\" style=\"color:%1;\">Apple App Store</a>, "
Expand Down
Loading