2021-07-11 15:27:03 +03:00
|
|
|
import QtQuick 2.6
|
2019-12-01 17:40:10 +03:00
|
|
|
import Sailfish.Silica 1.0
|
2019-12-01 17:55:55 +03:00
|
|
|
import QtQuick.LocalStorage 2.0
|
|
|
|
import Nemo.Notifications 1.0
|
2020-06-07 15:28:54 +03:00
|
|
|
import Nemo.Configuration 1.0
|
2021-03-21 14:49:54 +03:00
|
|
|
import seaprint.mimer 1.0
|
2021-06-19 18:47:11 +03:00
|
|
|
import seaprint.settings 1.0
|
2021-06-19 19:16:42 +03:00
|
|
|
|
2019-12-01 17:40:10 +03:00
|
|
|
import "pages"
|
2021-02-14 16:38:35 +03:00
|
|
|
import "components"
|
2019-12-01 17:40:10 +03:00
|
|
|
|
|
|
|
ApplicationWindow
|
|
|
|
{
|
2021-02-07 16:55:20 +03:00
|
|
|
id: appWin
|
|
|
|
|
2023-02-17 23:29:12 +03:00
|
|
|
property Page _mainPage
|
|
|
|
|
2021-09-27 22:44:36 +03:00
|
|
|
property bool expectCalligra: true
|
2021-03-21 18:38:04 +03:00
|
|
|
|
2023-02-17 23:29:12 +03:00
|
|
|
|
|
|
|
function openFile(file) {
|
|
|
|
selectedFile = file
|
|
|
|
selectedFileType = Mimer.get_type(selectedFile);
|
|
|
|
if(selectedFileType == "")
|
|
|
|
{
|
|
|
|
selectedFile = ""
|
|
|
|
notifier.notify(qsTr("Unsupported document format"))
|
|
|
|
}
|
|
|
|
if(pageStack.currentPage.busyPage)
|
|
|
|
{
|
|
|
|
notifier.notify(qsTr("New file selected"))
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
pageStack.pop(appWin._mainPage, PageStackAction.Immediate)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
property string selectedFile: ""
|
|
|
|
property string selectedFileType
|
|
|
|
|
|
|
|
initialPage: Component {
|
|
|
|
FirstPage {
|
|
|
|
Component.onCompleted: appWin._mainPage = this
|
|
|
|
}
|
|
|
|
}
|
2019-12-01 17:40:10 +03:00
|
|
|
cover: Qt.resolvedUrl("cover/CoverPage.qml")
|
2020-08-06 18:34:14 +03:00
|
|
|
allowedOrientations: Orientation.All
|
2019-12-01 17:55:55 +03:00
|
|
|
|
2021-02-07 16:55:20 +03:00
|
|
|
property string busyMessage: ""
|
|
|
|
property string progress: ""
|
|
|
|
|
2021-02-14 16:38:35 +03:00
|
|
|
WifiChecker {
|
|
|
|
id: wifi
|
|
|
|
}
|
|
|
|
|
2019-12-01 17:55:55 +03:00
|
|
|
Item {
|
|
|
|
id: db
|
|
|
|
property var db_conn
|
|
|
|
|
|
|
|
Component.onCompleted: {
|
2019-12-02 22:56:06 +03:00
|
|
|
db_conn = LocalStorage.openDatabaseSync("SeaprintDB", "1.0", "Seaprint storage", 100000)
|
2019-12-01 17:55:55 +03:00
|
|
|
db_conn.transaction(function (tx) {
|
2019-12-01 22:21:36 +03:00
|
|
|
tx.executeSql('CREATE TABLE IF NOT EXISTS Favourites (ssid STRING, url STRING)');
|
2021-03-21 14:49:54 +03:00
|
|
|
tx.executeSql('CREATE TABLE IF NOT EXISTS JobSettings (uuid STRING, type STRING, data STRING)');
|
2019-12-01 17:55:55 +03:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2019-12-01 22:21:36 +03:00
|
|
|
function addFavourite(ssid, url) {
|
2019-12-13 21:59:01 +03:00
|
|
|
if(isFavourite(ssid, url))
|
|
|
|
return;
|
2019-12-01 17:55:55 +03:00
|
|
|
db_conn.transaction(function (tx) {
|
2019-12-13 21:59:01 +03:00
|
|
|
tx.executeSql('INSERT INTO Favourites VALUES(?, ?)', [ssid, url] );
|
2019-12-01 17:55:55 +03:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2019-12-01 22:21:36 +03:00
|
|
|
function getFavourites(ssid) {
|
2019-12-01 17:55:55 +03:00
|
|
|
var favs = [];
|
|
|
|
db_conn.transaction(function (tx) {
|
2019-12-01 22:21:36 +03:00
|
|
|
var res = tx.executeSql('SELECT * FROM Favourites WHERE ssid=?', [ssid]);
|
2019-12-13 21:14:50 +03:00
|
|
|
for (var i = 0; i < res.rows.length; i++) {
|
|
|
|
favs.push(res.rows.item(i).url);
|
2019-12-01 17:55:55 +03:00
|
|
|
}
|
|
|
|
});
|
|
|
|
return favs
|
|
|
|
}
|
2019-12-13 21:14:50 +03:00
|
|
|
|
|
|
|
function isFavourite(ssid, url) {
|
|
|
|
var isfav = false;
|
|
|
|
db_conn.transaction(function (tx) {
|
|
|
|
var res = tx.executeSql('SELECT * FROM Favourites WHERE ssid=? AND url=?', [ssid, url]);
|
|
|
|
if (res.rows.length > 0) {
|
|
|
|
isfav = true;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
return isfav
|
|
|
|
}
|
|
|
|
|
|
|
|
function removeFavourite(ssid, url) {
|
|
|
|
db_conn.transaction(function (tx) {
|
|
|
|
tx.executeSql('DELETE FROM Favourites WHERE ssid=? AND url=?', [ssid, url] );
|
|
|
|
});
|
|
|
|
}
|
2021-03-21 00:45:58 +03:00
|
|
|
|
2021-03-21 14:49:54 +03:00
|
|
|
function simplifyType(mimetype) {
|
2022-05-29 16:54:11 +03:00
|
|
|
if(mimetype == Mimer.SVG)
|
|
|
|
{
|
|
|
|
return {simple: "svg", translatable: qsTr("SVGs")};
|
|
|
|
}
|
|
|
|
else if(Mimer.isImage(mimetype))
|
2021-03-21 14:49:54 +03:00
|
|
|
{
|
|
|
|
return {simple: "image", translatable: qsTr("images")};
|
|
|
|
}
|
2022-05-02 22:10:03 +03:00
|
|
|
else if(mimetype == Mimer.Plaintext)
|
|
|
|
{
|
|
|
|
return {simple: "plaintext", translatable: qsTr("plaintext")};
|
|
|
|
}
|
2021-03-21 14:49:54 +03:00
|
|
|
else
|
|
|
|
{
|
|
|
|
return {simple: "document", translatable: qsTr("documents")};
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function setJobSettings(uuid, mimetype, settings) {
|
|
|
|
var type = simplifyType(mimetype).simple;
|
2021-03-21 00:45:58 +03:00
|
|
|
db_conn.transaction(function (tx) {
|
2021-03-21 14:49:54 +03:00
|
|
|
tx.executeSql('DELETE FROM JobSettings WHERE uuid=? AND type=?', [uuid, type] );
|
|
|
|
tx.executeSql('INSERT INTO JobSettings VALUES(?, ?, ?)', [uuid, type, settings] );
|
2021-03-21 00:45:58 +03:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2021-03-21 14:49:54 +03:00
|
|
|
function getJobSettings(uuid, mimetype) {
|
|
|
|
var type = simplifyType(mimetype).simple;
|
2021-03-21 00:45:58 +03:00
|
|
|
var settings = "{}";
|
|
|
|
db_conn.transaction(function (tx) {
|
2021-03-21 14:49:54 +03:00
|
|
|
var res = tx.executeSql('SELECT * FROM JobSettings WHERE uuid=? AND type=?', [uuid, type]);
|
2021-03-21 00:45:58 +03:00
|
|
|
if (res.rows.length)
|
|
|
|
{
|
|
|
|
settings = res.rows.item(0).data
|
|
|
|
}
|
|
|
|
});
|
|
|
|
return settings
|
|
|
|
}
|
|
|
|
|
2021-03-21 14:49:54 +03:00
|
|
|
function removeJobSettings(uuid, mimetype) {
|
|
|
|
var type = simplifyType(mimetype).simple;
|
2021-03-21 00:45:58 +03:00
|
|
|
db_conn.transaction(function (tx) {
|
2021-03-21 14:49:54 +03:00
|
|
|
tx.executeSql('DELETE FROM JobSettings WHERE uuid=? AND type=?', [uuid, type] );
|
2021-03-21 00:45:58 +03:00
|
|
|
});
|
|
|
|
}
|
2019-12-01 17:55:55 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
Notification {
|
|
|
|
id: notifier
|
|
|
|
|
|
|
|
expireTimeout: 4000
|
|
|
|
|
|
|
|
function notify(data) {
|
|
|
|
body = data
|
|
|
|
previewBody = data
|
|
|
|
publish()
|
|
|
|
}
|
|
|
|
}
|
2020-06-07 15:28:54 +03:00
|
|
|
|
|
|
|
ConfigurationValue
|
|
|
|
{
|
|
|
|
id: nagScreenSetting
|
|
|
|
key: "/apps/harbour-seaprint/settings/nag-screen"
|
|
|
|
defaultValue: 0
|
2021-03-21 18:38:04 +03:00
|
|
|
property int expectedValue: expectCalligra ? 2 : 1
|
2020-06-07 15:28:54 +03:00
|
|
|
}
|
2020-06-07 15:33:35 +03:00
|
|
|
|
2020-06-07 18:05:46 +03:00
|
|
|
ConfigurationValue
|
|
|
|
{
|
|
|
|
id: considerAdditionalFormatsSetting
|
|
|
|
key: "/apps/harbour-seaprint/settings/consider-additional-formats"
|
|
|
|
defaultValue: true
|
|
|
|
}
|
|
|
|
|
2021-06-19 19:16:42 +03:00
|
|
|
ConfigurationValue
|
2021-06-19 18:47:11 +03:00
|
|
|
{
|
2021-06-19 19:16:42 +03:00
|
|
|
id: ignoreSslErrorsSetting
|
|
|
|
key: SeaPrintSettings.ignoreSslErrorsPath
|
|
|
|
defaultValue: SeaPrintSettings.ignoreSslErrorsDefault
|
2021-06-19 18:47:11 +03:00
|
|
|
}
|
2020-06-21 16:49:50 +03:00
|
|
|
|
2022-01-19 22:03:19 +03:00
|
|
|
ConfigurationValue
|
|
|
|
{
|
|
|
|
id: debugLogSetting
|
|
|
|
key: SeaPrintSettings.debugLogPath
|
|
|
|
defaultValue: SeaPrintSettings.debugLogDefault
|
|
|
|
}
|
|
|
|
|
2022-05-15 22:21:32 +03:00
|
|
|
ConfigurationValue
|
|
|
|
{
|
|
|
|
id: allowExternalConnectionsSetting
|
|
|
|
key: SeaPrintSettings.allowExternalConnectionsPath
|
|
|
|
defaultValue: SeaPrintSettings.allowExternalConnectionsDefault
|
|
|
|
}
|
|
|
|
|
2019-12-01 17:40:10 +03:00
|
|
|
}
|
2019-12-01 17:55:55 +03:00
|
|
|
|