diff --git a/harbour-seaprint.pro b/harbour-seaprint.pro index 6b6ef36..e4f7fed 100644 --- a/harbour-seaprint.pro +++ b/harbour-seaprint.pro @@ -27,6 +27,7 @@ system(lrelease $$PWD/translations/*.ts) CONFIG += sailfishapp QT += svg +PKGCONFIG += mlite5 # Write version file VERSION_H = \ @@ -45,6 +46,7 @@ SOURCES += src/harbour-seaprint.cpp \ ppm2pwg/ppm2pwg.cpp \ ppm2pwg/bytestream/bytestream.cpp \ src/overrider.cpp \ + src/settings.cpp \ src/svgprovider.cpp DISTFILES += qml/harbour-seaprint.qml \ @@ -93,6 +95,7 @@ HEADERS += \ ppm2pwg/bytestream/codable.h \ src/overrider.h \ src/papersizes.h \ + src/settings.h \ src/svgprovider.h INCLUDEPATH += ppm2pwg \ diff --git a/qml/harbour-seaprint.qml b/qml/harbour-seaprint.qml index b9033d0..8eb8575 100644 --- a/qml/harbour-seaprint.qml +++ b/qml/harbour-seaprint.qml @@ -4,6 +4,7 @@ import QtQuick.LocalStorage 2.0 import Nemo.Notifications 1.0 import Nemo.Configuration 1.0 import seaprint.mimer 1.0 +import seaprint.settings 1.0 import "pages" import "components" @@ -146,10 +147,14 @@ ApplicationWindow ConfigurationValue { id: alwaysUseMediaColSetting - key: "/apps/harbour-seaprint/settings/always-use-media-col" - defaultValue: false + key: SeaPrintSettings.alwaysUseMediaColPath + defaultValue: SeaPrintSettings.alwaysUseMediaColDefault } + Component.onCompleted: + { + console.log(SeaPrintSettings.ignoreSslErrorsPath, SeaPrintSettings.ignoreSslErrorsDefault) + } } diff --git a/qml/pages/PrinterPage.qml b/qml/pages/PrinterPage.qml index 743ddd5..936e183 100644 --- a/qml/pages/PrinterPage.qml +++ b/qml/pages/PrinterPage.qml @@ -63,8 +63,7 @@ Page { console.log(JSON.stringify(jobParams)) pageStack.replace(Qt.resolvedUrl("BusyPage.qml"),{printer:printer}, PageStackAction.Immediate) - printer.print(jobParams, page.selectedFile, - alwaysUseMediaColSetting.value) + printer.print(jobParams, page.selectedFile) } } } diff --git a/rpm/harbour-seaprint.spec b/rpm/harbour-seaprint.spec index 1c37e2f..856efca 100644 --- a/rpm/harbour-seaprint.spec +++ b/rpm/harbour-seaprint.spec @@ -21,6 +21,7 @@ BuildRequires: pkgconfig(sailfishapp) >= 1.0.2 BuildRequires: pkgconfig(Qt5Core) BuildRequires: pkgconfig(Qt5Qml) BuildRequires: pkgconfig(Qt5Quick) +BuildRequires: pkgconfig(mlite5) BuildRequires: desktop-file-utils %description diff --git a/rpm/harbour-seaprint.yaml b/rpm/harbour-seaprint.yaml index a1a1106..0a85283 100644 --- a/rpm/harbour-seaprint.yaml +++ b/rpm/harbour-seaprint.yaml @@ -26,6 +26,7 @@ PkgConfigBR: - Qt5Core - Qt5Qml - Qt5Quick + - mlite5 # Build dependencies without a pkgconfig setup can be listed here # PkgBR: @@ -33,7 +34,7 @@ PkgConfigBR: # Runtime dependencies which are not automatically detected Requires: - - sailfishsilica-qt5 >= 0.10.9 + - sailfishsilica-qt5 >= 0.10.9 # All installed files Files: diff --git a/src/harbour-seaprint.cpp b/src/harbour-seaprint.cpp index e23c200..b740170 100644 --- a/src/harbour-seaprint.cpp +++ b/src/harbour-seaprint.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #define PPM2PWG_MAIN ppm2pwg_main #include @@ -39,6 +40,7 @@ int main(int argc, char *argv[]) qmlRegisterSingletonType("seaprint.ippdiscovery", 1, 0, "IppDiscovery", singletontype_provider); qmlRegisterSingletonType("seaprint.mimer", 1, 0, "Mimer", singletontype_provider); qmlRegisterSingletonType("seaprint.convertchecker", 1, 0, "ConvertChecker", singletontype_provider); + qmlRegisterSingletonType("seaprint.settings", 1, 0, "SeaPrintSettings", singletontype_provider); qmlRegisterType("seaprint.ippprinter", 1, 0, "IppPrinter"); qmlRegisterUncreatableType("seaprint.ippmsg", 1, 0, "IppMsg", "Only used to supply an enum type"); diff --git a/src/ippprinter.cpp b/src/ippprinter.cpp index fd87e1c..e079912 100644 --- a/src/ippprinter.cpp +++ b/src/ippprinter.cpp @@ -3,6 +3,7 @@ #include "mimer.h" #include "papersizes.h" #include "overrider.h" +#include "settings.h" IppPrinter::IppPrinter() { @@ -339,7 +340,7 @@ QString targetFormatIfAuto(QString documentFormat, QString mimeType, QJsonArray return documentFormat; } -void IppPrinter::print(QJsonObject attrs, QString filename, bool alwaysUseMediaCol) +void IppPrinter::print(QJsonObject attrs, QString filename) { qDebug() << "printing" << filename << attrs; @@ -372,6 +373,7 @@ void IppPrinter::print(QJsonObject attrs, QString filename, bool alwaysUseMediaC o.insert("job-name", QJsonObject {{"tag", IppMsg::NameWithoutLanguage}, {"value", fileinfo.fileName()}}); QString PaperSize = getAttrOrDefault(attrs, "media").toString(); + bool alwaysUseMediaCol = Settings::instance()->alwaysUseMediaCol(); if((attrs.contains("media-col") || alwaysUseMediaCol) && attrs.contains("media")) { diff --git a/src/ippprinter.h b/src/ippprinter.h index 99bd94f..1f60afc 100644 --- a/src/ippprinter.h +++ b/src/ippprinter.h @@ -63,7 +63,7 @@ signals: void progressChanged(); public slots: - void print(QJsonObject attrs, QString file, bool alwaysUseMediaCol); + void print(QJsonObject attrs, QString file); void onUrlChanged(); diff --git a/src/settings.cpp b/src/settings.cpp new file mode 100644 index 0000000..d088ab8 --- /dev/null +++ b/src/settings.cpp @@ -0,0 +1,52 @@ +#include "settings.h" +#include + + +Settings::Settings() : _alwaysUseMediaColSetting("/apps/harbour-seaprint/settings/always-use-media-col", this), + _ignoreSslErrorsSetting("/apps/harbour-seaprint/settings/ignore-ssl-errors", this) +{ + +} + +Settings::~Settings() { +} + +Settings* Settings::m_Instance = nullptr; + +Settings* Settings::instance() +{ + static QMutex mutex; + if (!m_Instance) + { + mutex.lock(); + + if (!m_Instance) + m_Instance = new Settings; + + mutex.unlock(); + } + + return m_Instance; +} + + +bool Settings::alwaysUseMediaCol() +{ + return _alwaysUseMediaColSetting.value(_alwaysUseMediaColDefault).toBool(); +} + +bool Settings::ignoreSslErrors() +{ + return _ignoreSslErrorsSetting.value(_ignoreSslErrorsDefault).toBool(); +} + + +QString Settings::alwaysUseMediaColPath() +{ + return _alwaysUseMediaColSetting.key(); +} + +QString Settings::ignoreSslErrorsPath() +{ + return _ignoreSslErrorsSetting.key(); +} diff --git a/src/settings.h b/src/settings.h new file mode 100644 index 0000000..e669657 --- /dev/null +++ b/src/settings.h @@ -0,0 +1,40 @@ +#ifndef SETTINGS_H +#define SETTINGS_H + +#include + +class Settings : public QObject + { + Q_OBJECT +public: + Q_PROPERTY(QString alwaysUseMediaColPath READ alwaysUseMediaColPath CONSTANT) + Q_PROPERTY(bool alwaysUseMediaColDefault MEMBER _alwaysUseMediaColDefault CONSTANT) + + Q_PROPERTY(QString ignoreSslErrorsPath READ ignoreSslErrorsPath CONSTANT) + Q_PROPERTY(bool ignoreSslErrorsDefault MEMBER _ignoreSslErrorsDefault CONSTANT) + +public: + static Settings* instance(); + + bool alwaysUseMediaCol(); + bool ignoreSslErrors(); + +private: + Settings(); + ~Settings(); + Settings(const Settings &); + Settings& operator=(const Settings &); + + static Settings* m_Instance; + + MGConfItem _alwaysUseMediaColSetting; + MGConfItem _ignoreSslErrorsSetting; + + QString alwaysUseMediaColPath(); + QString ignoreSslErrorsPath(); + + bool _alwaysUseMediaColDefault = false; + bool _ignoreSslErrorsDefault = true; +}; + +#endif // SETTINGS_H