parent
3cd7be99cd
commit
03098b7354
13 changed files with 211 additions and 150 deletions
|
@ -1,11 +1,14 @@
|
|||
import QtQuick 2.0
|
||||
import QtQuick 2.5
|
||||
import Sailfish.Silica 1.0
|
||||
import QtQml.Models 2.2
|
||||
|
||||
DelegateModel {
|
||||
id: noteListModel
|
||||
property string searchText: ""
|
||||
property bool favoritesOnTop
|
||||
property string sortBy
|
||||
property bool showSeparator
|
||||
property int previewLineCount
|
||||
|
||||
onSearchTextChanged: reload()
|
||||
onSortByChanged: reload()
|
||||
|
@ -16,13 +19,13 @@ DelegateModel {
|
|||
reload()
|
||||
}
|
||||
onNoteCreated: {
|
||||
console.log("New note created:" + id)
|
||||
console.log("New note created: " + id)
|
||||
}
|
||||
onNoteRemoved: {
|
||||
console.log("Note removed:" + id)
|
||||
console.log("Note removed: " + id)
|
||||
}
|
||||
onNoteChanged: {
|
||||
console.log("Note changed:" + id)
|
||||
console.log("Note changed: " + id)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -44,15 +47,42 @@ DelegateModel {
|
|||
name: "unsorted"
|
||||
includeByDefault: true
|
||||
onChanged: {
|
||||
switch(appSettings.sortBy) {
|
||||
switch(sortBy) {
|
||||
case "date":
|
||||
noteListModel.sort(function(left, right) { return left.modified > right.modified })
|
||||
noteListModel.sort(function(left, right) {
|
||||
if (favoritesOnTop) {
|
||||
if (left.favorite === right.favorite)
|
||||
return left.modified > right.modified
|
||||
else
|
||||
return left.favorite
|
||||
}
|
||||
else
|
||||
return left.modified > right.modified
|
||||
})
|
||||
break
|
||||
case "category":
|
||||
noteListModel.sort(function(left, right) { return left.category < right.category })
|
||||
noteListModel.sort(function(left, right) {
|
||||
if (favoritesOnTop) {
|
||||
if (left.favorite === right.favorite)
|
||||
return left.category < right.category
|
||||
else
|
||||
return left.favorite
|
||||
}
|
||||
else
|
||||
return left.category < right.category
|
||||
})
|
||||
break
|
||||
case "title":
|
||||
noteListModel.sort(function(left, right) { return left.title < right.title })
|
||||
noteListModel.sort(function(left, right) {
|
||||
if (favoritesOnTop) {
|
||||
if (left.favorite === right.favorite)
|
||||
return left.title < right.title
|
||||
else
|
||||
return left.favorite
|
||||
}
|
||||
else
|
||||
return left.title < right.title
|
||||
})
|
||||
break
|
||||
default:
|
||||
setGroups(0, unsortedItems.count, "items")
|
||||
|
@ -93,7 +123,7 @@ DelegateModel {
|
|||
item.groups = "items"
|
||||
items.move(item.itemsIndex, index)
|
||||
}
|
||||
else {
|
||||
else if (searchText !== "") {
|
||||
item.groups = "search"
|
||||
}
|
||||
}
|
||||
|
@ -124,7 +154,7 @@ DelegateModel {
|
|||
width: parent.width
|
||||
color: Theme.primaryColor
|
||||
anchors.top: titleLabel.top
|
||||
visible: appSettings.showSeparator && index !== 0
|
||||
visible: showSeparator && index !== 0
|
||||
}
|
||||
|
||||
IconButton {
|
||||
|
@ -160,7 +190,7 @@ DelegateModel {
|
|||
color: "transparent"
|
||||
border.color: Theme.highlightColor
|
||||
radius: height / 4
|
||||
visible: appSettings.sortBy !== "category" && categoryLabel.text.length > 0
|
||||
visible: sortBy !== "category" && categoryLabel.text.length > 0
|
||||
Label {
|
||||
id: categoryLabel
|
||||
anchors.centerIn: parent
|
||||
|
@ -182,8 +212,8 @@ DelegateModel {
|
|||
textFormat: Text.PlainText
|
||||
wrapMode: Text.Wrap
|
||||
elide: Text.ElideRight
|
||||
maximumLineCount: appSettings.previewLineCount > 0 ? appSettings.previewLineCount : 1
|
||||
visible: appSettings.previewLineCount > 0
|
||||
maximumLineCount: previewLineCount > 0 ? previewLineCount : 1
|
||||
visible: previewLineCount > 0
|
||||
color: note.highlighted ? Theme.secondaryHighlightColor : Theme.secondaryColor
|
||||
function parseText (preText) {
|
||||
var lines = preText.split('\n')
|
||||
|
|
|
@ -4,15 +4,6 @@ import Nemo.Configuration 1.0
|
|||
|
||||
Item {
|
||||
property string uuid
|
||||
property string name
|
||||
property url server
|
||||
property url url
|
||||
property string version: "v0.2"
|
||||
property string username
|
||||
property string password
|
||||
property date update
|
||||
property bool unsecureConnection
|
||||
property bool unencryptedConnection
|
||||
|
||||
property var model: ListModel { }
|
||||
property var categories: [ ]
|
||||
|
@ -27,50 +18,15 @@ Item {
|
|||
signal noteRemoved(int id)
|
||||
signal noteChanged(int id)
|
||||
|
||||
Component.onCompleted: {
|
||||
refreshConfig()
|
||||
}
|
||||
|
||||
onStatusChanged: {
|
||||
console.log("Network status: " + statusText + " (" + status + ")")
|
||||
}
|
||||
onUuidChanged: {
|
||||
account.setValue("uuid", uuid)
|
||||
onUuidChanged: console.log("Account : " + uuid)
|
||||
account.path = "/apps/harbour-nextcloudnotes/accounts/" + uuid
|
||||
refreshConfig()
|
||||
model.clear()
|
||||
appSettings.currentAccount = uuid
|
||||
}
|
||||
onNameChanged: account.setValue("name", name)
|
||||
onServerChanged: account.setValue("server", server)
|
||||
onUsernameChanged: account.setValue("username", username)
|
||||
onPasswordChanged: account.setValue("password", password)
|
||||
onUpdateChanged: account.setValue("update", update)
|
||||
onUnsecureConnectionChanged: {
|
||||
account.setValue("unsecureConnection", unsecureConnection)
|
||||
ssl.checkCert = !unsecureConnection
|
||||
}
|
||||
onUnencryptedConnectionChanged: account.setValue("unencryptedConnection", unencryptedConnection)
|
||||
|
||||
ConfigurationGroup {
|
||||
id: account
|
||||
path: "/apps/harbour-nextcloudnotes/accounts/" + uuid
|
||||
onValuesChanged: refreshConfig()
|
||||
}
|
||||
|
||||
function refreshConfig() {
|
||||
account.sync()
|
||||
name = account.value("name", "", String)
|
||||
server = account.value("server", "", String)
|
||||
url = server + "/index.php/apps/notes/api/" + version + "/notes"
|
||||
username = account.value("username", "", String)
|
||||
password = account.value("password", "", String)
|
||||
update = account.value("update", "", Date)
|
||||
unsecureConnection = account.value("unsecureConnection", false, Boolean)
|
||||
unencryptedConnection = account.value("unencryptedConnection", false, Boolean)
|
||||
}
|
||||
|
||||
function clear() {
|
||||
model.clear()
|
||||
account.clear()
|
||||
|
@ -79,7 +35,7 @@ Item {
|
|||
function apiCall(method, data) {
|
||||
jobsRunning++
|
||||
|
||||
var endpoint = url
|
||||
var endpoint = account.server + "/index.php/apps/notes/api/" + account.version + "/notes"
|
||||
if (data) {
|
||||
if (method === "POST" || method === "PUT") {
|
||||
addToModel(data)
|
||||
|
@ -100,7 +56,7 @@ Item {
|
|||
apiReq.setRequestHeader('User-Agent', 'SailfishOS/harbour-nextcloudnotes')
|
||||
apiReq.setRequestHeader('OCS-APIRequest', 'true')
|
||||
apiReq.setRequestHeader("Content-Type", "application/json")
|
||||
apiReq.setRequestHeader("Authorization", "Basic " + Qt.btoa(username + ":" + password))
|
||||
apiReq.setRequestHeader("Authorization", "Basic " + Qt.btoa(account.username + ":" + account.password))
|
||||
apiReq.withCredentials = true
|
||||
apiReq.timeout = 5000
|
||||
apiReq.onreadystatechange = function() {
|
||||
|
@ -108,6 +64,7 @@ Item {
|
|||
statusText = apiReq.statusText
|
||||
status = apiReq.status
|
||||
if (apiReq.status === 200) {
|
||||
//console.log(apiReq.responseText)
|
||||
var json = JSON.parse(apiReq.responseText)
|
||||
switch(method) {
|
||||
case "GET":
|
||||
|
@ -117,7 +74,7 @@ Item {
|
|||
for (var element in json) {
|
||||
addToModel(json[element])
|
||||
}
|
||||
update = new Date()
|
||||
account.update = new Date()
|
||||
}
|
||||
else {
|
||||
console.log("Received a single note via API: " + endpoint)
|
||||
|
@ -128,8 +85,8 @@ Item {
|
|||
console.log("Created a note via API: " + endpoint)
|
||||
addToModel(json)
|
||||
pageStack.push(Qt.resolvedUrl("../pages/NotePage.qml"), { note: json } )
|
||||
pageStack.completeAnimation()
|
||||
pageStack.navigateForward()
|
||||
//pageStack.completeAnimation()
|
||||
//pageStack.navigateForward()
|
||||
break
|
||||
case "PUT":
|
||||
console.log("Updated a note via API: " + endpoint)
|
||||
|
@ -226,7 +183,9 @@ Item {
|
|||
dict.category !== data.category ||
|
||||
dict.content !== data.content ||
|
||||
dict.favorite !== data.favorite) {
|
||||
if (data.modified)
|
||||
model.remove(i)
|
||||
model.insert(i, data)
|
||||
/*if (data.modified)
|
||||
model.setProperty(i, "modified", data.modified)
|
||||
if (data.title)
|
||||
model.setProperty(i, "title", data.title)
|
||||
|
@ -238,7 +197,7 @@ Item {
|
|||
model.setProperty(i, "favorite", data.favorite)
|
||||
if (data.date)
|
||||
model.setProperty(i, "date", data.date)
|
||||
|
||||
*/
|
||||
noteChanged(data.id)
|
||||
}
|
||||
dataAdded = true
|
||||
|
|
|
@ -15,6 +15,21 @@ ApplicationWindow
|
|||
defaultValue: [ ]
|
||||
}
|
||||
|
||||
ConfigurationGroup {
|
||||
id: account
|
||||
//path: "/apps/harbour-nextcloudnotes/accounts/" + appSettings.currentAccount
|
||||
property string name: value("name", "", String)
|
||||
property url server: value("server", "", String)
|
||||
property string version: value("version", "v0.2", String)
|
||||
property string username: value("username", "", String)
|
||||
property string password: account.value("password", "", String)
|
||||
property bool unsecureConnection: account.value("unsecureConnection", false, Boolean)
|
||||
property bool unencryptedConnection: account.value("unencryptedConnection", false, Boolean)
|
||||
property date update: value("update", "", Date)
|
||||
onValuesChanged: console.log("A property of the current account has changed")
|
||||
//onUnsecureConnectionChanged: ssl.checkCert = !unsecureConnection
|
||||
}
|
||||
|
||||
ConfigurationGroup {
|
||||
id: appSettings
|
||||
path: "/apps/harbour-nextcloudnotes/settings"
|
||||
|
@ -23,10 +38,11 @@ ApplicationWindow
|
|||
property var accountIDs: value("accountIDs", [ ])
|
||||
property int autoSyncInterval: value("autoSyncInterval", 0)
|
||||
property int previewLineCount: value("previewLineCount", 4)
|
||||
property string sortBy: value("sortBy", "date")
|
||||
property bool showSeparator: value("showSeparator", false)
|
||||
property bool useMonoFont: value("useMonoFont", false)
|
||||
property bool useCapitalX: value("useCapitalX", false)
|
||||
property bool favoritesOnTop: value("favoritesOnTop", true, Boolean)
|
||||
property string sortBy: value("sortBy", "date", Date)
|
||||
property bool showSeparator: value("showSeparator", false, Boolean)
|
||||
property bool useMonoFont: value("useMonoFont", false, Boolean)
|
||||
property bool useCapitalX: value("useCapitalX", false, Boolean)
|
||||
|
||||
onCurrentAccountChanged: api.uuid = currentAccount
|
||||
|
||||
|
@ -69,7 +85,7 @@ ApplicationWindow
|
|||
|
||||
SslConfiguration {
|
||||
id: ssl
|
||||
checkCert: true
|
||||
checkCert: !account.unsecureConnection
|
||||
}
|
||||
|
||||
Timer {
|
||||
|
@ -96,6 +112,15 @@ ApplicationWindow
|
|||
uuid: appSettings.currentAccount
|
||||
}
|
||||
|
||||
NoteDelegateModel {
|
||||
id: noteListModel
|
||||
model: api.model
|
||||
favoritesOnTop: appSettings.favoritesOnTop
|
||||
sortBy: appSettings.sortBy
|
||||
showSeparator: appSettings.showSeparator
|
||||
previewLineCount: appSettings.previewLineCount
|
||||
}
|
||||
|
||||
initialPage: Component { NotesPage { } }
|
||||
cover: Qt.resolvedUrl("cover/CoverPage.qml")
|
||||
allowedOrientations: defaultAllowedOrientations
|
||||
|
|
|
@ -16,8 +16,9 @@ Dialog {
|
|||
serverField.text = value("server", "https://", String)
|
||||
usernameField.text = value("username", "", String)
|
||||
passwordField.text = value("password", "", String)
|
||||
unsecureConnectionTextSwitch.checked = value("unencryptedConnection", false, Boolean)
|
||||
unencryptedConnectionTextSwitch.checked = value("allowUnencryptedConnection", false, Boolean)
|
||||
unsecureConnectionTextSwitch.checked = value("unsecureConnection", false, Boolean)
|
||||
unencryptedConnectionTextSwitch.checked = value("unencryptedConnection", false, Boolean)
|
||||
nameField.text === "" ? nameField.focus = true : (serverField.text === "https://" ? serverField.focus = true : (usernameField.text === "" ? usernameField.focus = true : (passwordField.text === "" ? passwordField.focus = true : passwordField.focus = false)))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -28,7 +29,7 @@ Dialog {
|
|||
account.setValue("username", usernameField.text)
|
||||
account.setValue("password", passwordField.text)
|
||||
account.setValue("unsecureConnection", unsecureConnectionTextSwitch.checked)
|
||||
account.setValue("allowUnencryptedConnection", unencryptedConnectionTextSwitch.checked)
|
||||
account.setValue("unencryptedConnection", unencryptedConnectionTextSwitch.checked)
|
||||
account.sync()
|
||||
api.uuid = accountId
|
||||
}
|
||||
|
@ -58,9 +59,8 @@ Dialog {
|
|||
|
||||
TextField {
|
||||
id: nameField
|
||||
focus: true
|
||||
width: parent.width
|
||||
text: account.value("name", "", String)
|
||||
//text: account.value("name", "", String)
|
||||
placeholderText: qsTr("Account name")
|
||||
label: placeholderText
|
||||
errorHighlight: text.length === 0// && focus === true
|
||||
|
@ -75,7 +75,7 @@ Dialog {
|
|||
property var encryptedRegEx: /^https:\/\/(((www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b|((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))))([-a-zA-Z0-9@:%_\+.~#?&//=]*)$/
|
||||
property var unencryptedRegEx : /^https?:\/\/(((www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b|((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))))([-a-zA-Z0-9@:%_\+.~#?&//=]*)$/
|
||||
width: parent.width
|
||||
text: account.value("server", "https://", String)
|
||||
//text: account.value("server", "https://", String)
|
||||
placeholderText: qsTr("Nextcloud server")
|
||||
label: placeholderText + " " + qsTr("(starting with \"https://\")")
|
||||
inputMethodHints: Qt.ImhUrlCharactersOnly
|
||||
|
@ -89,7 +89,7 @@ Dialog {
|
|||
TextField {
|
||||
id: usernameField
|
||||
width: parent.width
|
||||
text: account.value("name", "", String)
|
||||
//text: account.value("name", "", String)
|
||||
placeholderText: qsTr("Username")
|
||||
label: placeholderText
|
||||
inputMethodHints: Qt.ImhNoPredictiveText | Qt.ImhNoAutoUppercase
|
||||
|
@ -102,7 +102,7 @@ Dialog {
|
|||
PasswordField {
|
||||
id: passwordField
|
||||
width: parent.width
|
||||
text: account.value("password", "", String)
|
||||
//text: account.value("password", "", String)
|
||||
placeholderText: qsTr("Password")
|
||||
label: placeholderText
|
||||
errorHighlight: text.length === 0// && focus === true
|
||||
|
@ -125,14 +125,14 @@ Dialog {
|
|||
id: unsecureConnectionTextSwitch
|
||||
text: qsTr("Do not check certificates")
|
||||
description: qsTr("Enable this option to allow selfsigned certificates")
|
||||
checked: account.value("allowUnencryptedConnection", false, Boolean)
|
||||
//checked: account.value("allowUnencryptedConnection", false, Boolean)
|
||||
}
|
||||
TextSwitch {
|
||||
id: unencryptedConnectionTextSwitch
|
||||
automaticCheck: false
|
||||
text: qsTr("Allow unencrypted connections")
|
||||
description: qsTr("")
|
||||
checked: account.value("allowUnencryptedConnection", false, Boolean)
|
||||
//checked: account.value("unencryptedConnection", false, Boolean)
|
||||
onClicked: {
|
||||
if (checked) {
|
||||
checked = false
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import "../js/showdown-1.9.0/dist/showdown.js" as ShowDown
|
||||
import QtQuick 2.4
|
||||
import QtQuick 2.5
|
||||
import Sailfish.Silica 1.0
|
||||
import "../js/showdown-1.9.0/dist/showdown.js" as ShowDown
|
||||
|
||||
Dialog {
|
||||
id: noteDialog
|
||||
|
@ -76,13 +76,13 @@ Dialog {
|
|||
convertedText = convertedText.replace(/<del>(.*)<\/del>/gmi, function(match, p1) { return "<s>" + p1 + "</s>" })
|
||||
convertedText = convertedText.replace(/<hr \/>/gmi, "<p><img width=\"" + contentLabel.width + "\" height=\"1\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAPSURBVHjaYvr//z9AgAEABgYDACuJdK0AAAAASUVORK5CYII=\" /></p>")
|
||||
contentLabel.text = "<style>\n" +
|
||||
"ul,ol,table,img { margin: " + Theme.paddingLarge + "px 0px; }\n" +
|
||||
"p,ul,ol,table,img { margin: " + Theme.paddingLarge + "px 0px; }\n" +
|
||||
"a:link { color: " + Theme.primaryColor + "; }\n" +
|
||||
"a.checkbox { text-decoration: none; padding: " + Theme.paddingSmall + "px; display: inline-block; }\n" +
|
||||
"li.tasklist { font-size:large; margin: " + Theme.paddingMedium + "px 0px; }\n" +
|
||||
"table { border-color: " + Theme.secondaryColor + "; }\n" +
|
||||
"</style>\n" + convertedText
|
||||
if (debug) console.log(contentLabel.text)
|
||||
//if (debug) console.log(contentLabel.text)
|
||||
}
|
||||
|
||||
SilicaFlickable {
|
||||
|
|
|
@ -43,8 +43,8 @@ Page {
|
|||
MenuLabel {
|
||||
visible: appSettings.currentAccount.length > 0
|
||||
text: qsTr("Last update") + ": " + (
|
||||
new Date(api.update).valueOf() !== 0 ?
|
||||
new Date(api.update).toLocaleString(Qt.locale(), Locale.ShortFormat) :
|
||||
new Date(account.update).valueOf() !== 0 ?
|
||||
new Date(account.update).toLocaleString(Qt.locale(), Locale.ShortFormat) :
|
||||
qsTr("never"))
|
||||
}
|
||||
}
|
||||
|
@ -54,8 +54,8 @@ Page {
|
|||
SearchField {
|
||||
id: searchField
|
||||
width: parent.width
|
||||
enabled: appSettings.accountIDs.count > 0
|
||||
placeholderText: api.name.length > 0 ? api.name : qsTr("Nextcloud Notes")
|
||||
enabled: appSettings.accountIDs.length > 0
|
||||
placeholderText: account.name.length > 0 ? account.name : qsTr("Nextcloud Notes")
|
||||
EnterKey.iconSource: "image://theme/icon-m-enter-close"
|
||||
EnterKey.onClicked: focus = false
|
||||
onTextChanged: noteListModel.searchText = text
|
||||
|
@ -64,12 +64,12 @@ Page {
|
|||
id: description
|
||||
x: Theme.horizontalPageMargin
|
||||
width: parent.width - 2*x
|
||||
visible: appSettings.accountIDs.count > 0
|
||||
visible: text.length > 1
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.bottomMargin: Theme.paddingMedium
|
||||
color: Theme.secondaryHighlightColor
|
||||
font.pixelSize: Theme.fontSizeSmall
|
||||
text: api.username + "@" + api.server
|
||||
text: account.username + "@" + account.server
|
||||
}
|
||||
BusyIndicator {
|
||||
anchors.verticalCenter: searchField.verticalCenter
|
||||
|
@ -82,11 +82,7 @@ Page {
|
|||
|
||||
currentIndex: -1
|
||||
|
||||
model: NoteDelegateModel {
|
||||
id: noteListModel
|
||||
model: api.model
|
||||
sortBy: appSettings.sortBy
|
||||
}
|
||||
model: noteListModel
|
||||
|
||||
section.property: appSettings.sortBy
|
||||
section.criteria: appSettings.sortBy === "title" ? ViewSection.FirstCharacter : ViewSection.FullString
|
||||
|
|
|
@ -166,6 +166,12 @@ Page {
|
|||
appSettings.sortBy = sortByRepeater.model[currentIndex]
|
||||
}
|
||||
}
|
||||
TextSwitch {
|
||||
text: qsTr("Favorites on top")
|
||||
description: qsTr("Show notes marked as favorite above the others")
|
||||
checked: appSettings.favoritesOnTop
|
||||
onCheckedChanged: appSettings.favoritesOnTop = checked
|
||||
}
|
||||
TextSwitch {
|
||||
text: qsTr("Show separator")
|
||||
description: qsTr("Show a separator line between the notes")
|
||||
|
|
|
@ -12,6 +12,10 @@
|
|||
# * date Author's Name <author's email> version-release
|
||||
# - Summary of changes
|
||||
|
||||
* Thu Dec 27 2018 Scharel Clemens <harbour-nextcloudnotes@scharel.name> 0.2-10
|
||||
- Implemented #24: "Option to show favorite notes on the top of the list"
|
||||
- Implemented #32: "Allow selfsigned SSL certificates" (not tested!)
|
||||
|
||||
* Wed Dec 26 2018 Scharel Clemens <harbour-nextcloudnotes@scharel.name> 0.2-9
|
||||
- Improved workaround for #40
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ Name: harbour-nextcloudnotes
|
|||
%{?qtc_builddir:%define _builddir %qtc_builddir}
|
||||
Summary: Nextcloud Notes
|
||||
Version: 0.2
|
||||
Release: 8
|
||||
Release: 10
|
||||
Group: Applications/Editors
|
||||
License: MIT
|
||||
URL: https://github.com/scharel/harbour-nextcloudnotes
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Name: harbour-nextcloudnotes
|
||||
Summary: Nextcloud Notes
|
||||
Version: 0.2
|
||||
Release: 8
|
||||
Release: 10
|
||||
# The contents of the Group field should be one of the groups listed here:
|
||||
# https://github.com/mer-tools/spectacle/blob/master/data/GROUPS
|
||||
Group: Applications/Editors
|
||||
|
|
|
@ -437,6 +437,14 @@
|
|||
<source>Congratulation you found the Answer to the Ultimate Question of Life, The Universe, and Everything!</source>
|
||||
<translation>Glückwunsch, du hast die Antwort auf die Frage nach dem Leben, dem Universum und dem ganzen Rest gefunden!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Favorites on top</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show notes marked as favorite above the others</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SyntaxPage</name>
|
||||
|
|
|
@ -89,6 +89,10 @@
|
|||
<source>Modified</source>
|
||||
<translation>Ändrad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No content</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GPLLicense</name>
|
||||
|
@ -143,6 +147,14 @@
|
|||
<source>Allow unencrypted connections</source>
|
||||
<translation>Tillåt okrypterade anslutningar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Do not check certificates</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enable this option to allow selfsigned certificates</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MITLicense</name>
|
||||
|
@ -151,6 +163,21 @@
|
|||
<translation>MIT License</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NoteDelegateModel</name>
|
||||
<message>
|
||||
<source>Modified</source>
|
||||
<translation type="unfinished">Ändrad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete</source>
|
||||
<translation type="unfinished">Ta bort</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Deleting note</source>
|
||||
<translation type="unfinished">Tar bort anteckning</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NotePage</name>
|
||||
<message>
|
||||
|
@ -204,6 +231,10 @@
|
|||
<source>Yesterday</source>
|
||||
<translation>I går</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unable to connect</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>NotesPage</name>
|
||||
|
@ -231,18 +262,6 @@
|
|||
<source>never</source>
|
||||
<translation>aldrig</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Modified</source>
|
||||
<translation>Ändrad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete</source>
|
||||
<translation>Ta bort</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Deleting note</source>
|
||||
<translation>Tar bort anteckning</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No account yet</source>
|
||||
<translation>Inget konto ännu</translation>
|
||||
|
@ -275,6 +294,10 @@
|
|||
<source>Open the settings to configure your Nextcloud accounts</source>
|
||||
<translation>Öppna inställningarna för att konfigurera dina Nextcloud-konton</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Nextcloud Notes</source>
|
||||
<translation type="unfinished">Nextcloud Notes</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsPage</name>
|
||||
|
@ -414,6 +437,14 @@
|
|||
<source>Congratulation you found the Answer to the Ultimate Question of Life, The Universe, and Everything!</source>
|
||||
<translation>Grattulerar! Du har funnit svaret på den ultimata frågan om livet, universum och allt!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Favorites on top</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show notes marked as favorite above the others</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SyntaxPage</name>
|
||||
|
@ -546,24 +577,16 @@
|
|||
<translation>I de flesta fall, lämnas HTML-taggar orörda i utdatadokumentet.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tables aren't part of the core Markdown spec, but they are part of GFM and Showdown supports them by turning on the option tables.
|
||||
|
||||
Colons can be used to align columns.
|
||||
|
||||
In the new version, the outer pipes (|) are optional, matching GFM spec.
|
||||
|
||||
You also don't need to make the raw Markdown line up prettily.
|
||||
|
||||
<source>Tables aren't part of the core Markdown spec, but they are part of GFM and Showdown supports them by turning on the option tables.
|
||||
|
||||
Colons can be used to align columns.
|
||||
|
||||
In the new version, the outer pipes (|) are optional, matching GFM spec.
|
||||
|
||||
You also don't need to make the raw Markdown line up prettily.
|
||||
|
||||
You can also use other markdown syntax inside them.</source>
|
||||
<translation>Tabeller är inte en del av kärnan i Markdown, men de är en del av GFM, och Showdown stödjer dem genom att aktivera alternativet tabeller.
|
||||
|
||||
Kolon kan användas för att justera kolumner.
|
||||
|
||||
I den nya versionen är de yttre vertikalstrecken (|) valfria, matchande GFM spec.
|
||||
|
||||
Du behöver inte heller göra RAW markdown-linjen vackert.
|
||||
|
||||
Du kan också använda andra markdown-syntax inuti dem.</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
|
|
@ -125,12 +125,12 @@
|
|||
<context>
|
||||
<name>LoginDialog</name>
|
||||
<message>
|
||||
<location filename="../qml/pages/LoginDialog.qml" line="49"/>
|
||||
<location filename="../qml/pages/LoginDialog.qml" line="50"/>
|
||||
<source>Login</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/pages/LoginDialog.qml" line="49"/>
|
||||
<location filename="../qml/pages/LoginDialog.qml" line="50"/>
|
||||
<source>Save</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -201,17 +201,17 @@
|
|||
<context>
|
||||
<name>NoteDelegateModel</name>
|
||||
<message>
|
||||
<location filename="../qml/components/NoteDelegateModel.qml" line="201"/>
|
||||
<location filename="../qml/components/NoteDelegateModel.qml" line="231"/>
|
||||
<source>Modified</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/components/NoteDelegateModel.qml" line="204"/>
|
||||
<location filename="../qml/components/NoteDelegateModel.qml" line="234"/>
|
||||
<source>Delete</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/components/NoteDelegateModel.qml" line="206"/>
|
||||
<location filename="../qml/components/NoteDelegateModel.qml" line="236"/>
|
||||
<source>Deleting note</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -272,17 +272,17 @@
|
|||
<context>
|
||||
<name>NotesApi</name>
|
||||
<message>
|
||||
<location filename="../qml/components/NotesApi.qml" line="148"/>
|
||||
<location filename="../qml/components/NotesApi.qml" line="118"/>
|
||||
<source>Unable to connect</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/components/NotesApi.qml" line="284"/>
|
||||
<location filename="../qml/components/NotesApi.qml" line="256"/>
|
||||
<source>Today</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/components/NotesApi.qml" line="286"/>
|
||||
<location filename="../qml/components/NotesApi.qml" line="258"/>
|
||||
<source>Yesterday</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -325,42 +325,42 @@
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/pages/NotesPage.qml" line="108"/>
|
||||
<location filename="../qml/pages/NotesPage.qml" line="104"/>
|
||||
<source>No account yet</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/pages/NotesPage.qml" line="109"/>
|
||||
<location filename="../qml/pages/NotesPage.qml" line="105"/>
|
||||
<source>Got to the settings to add an account</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/pages/NotesPage.qml" line="115"/>
|
||||
<location filename="../qml/pages/NotesPage.qml" line="111"/>
|
||||
<source>No notes yet</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/pages/NotesPage.qml" line="116"/>
|
||||
<location filename="../qml/pages/NotesPage.qml" line="112"/>
|
||||
<source>Pull down to add a note</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/pages/NotesPage.qml" line="122"/>
|
||||
<location filename="../qml/pages/NotesPage.qml" line="118"/>
|
||||
<source>No result</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/pages/NotesPage.qml" line="123"/>
|
||||
<location filename="../qml/pages/NotesPage.qml" line="119"/>
|
||||
<source>Try another query</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/pages/NotesPage.qml" line="129"/>
|
||||
<location filename="../qml/pages/NotesPage.qml" line="125"/>
|
||||
<source>An error occurred</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/pages/NotesPage.qml" line="140"/>
|
||||
<location filename="../qml/pages/NotesPage.qml" line="136"/>
|
||||
<source>Open the settings to configure your Nextcloud accounts</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -467,6 +467,16 @@
|
|||
<source>Appearance</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/pages/SettingsPage.qml" line="170"/>
|
||||
<source>Favorites on top</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/pages/SettingsPage.qml" line="171"/>
|
||||
<source>Show notes marked as favorite above the others</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/pages/SettingsPage.qml" line="147"/>
|
||||
<source>Last edited</source>
|
||||
|
@ -493,47 +503,47 @@
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/pages/SettingsPage.qml" line="170"/>
|
||||
<location filename="../qml/pages/SettingsPage.qml" line="176"/>
|
||||
<source>Show separator</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/pages/SettingsPage.qml" line="171"/>
|
||||
<location filename="../qml/pages/SettingsPage.qml" line="177"/>
|
||||
<source>Show a separator line between the notes</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/pages/SettingsPage.qml" line="181"/>
|
||||
<location filename="../qml/pages/SettingsPage.qml" line="187"/>
|
||||
<source>lines</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/pages/SettingsPage.qml" line="182"/>
|
||||
<location filename="../qml/pages/SettingsPage.qml" line="188"/>
|
||||
<source>Number of lines in the preview</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/pages/SettingsPage.qml" line="187"/>
|
||||
<location filename="../qml/pages/SettingsPage.qml" line="193"/>
|
||||
<source>Editing</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/pages/SettingsPage.qml" line="190"/>
|
||||
<location filename="../qml/pages/SettingsPage.qml" line="196"/>
|
||||
<source>Monospaced font</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/pages/SettingsPage.qml" line="191"/>
|
||||
<location filename="../qml/pages/SettingsPage.qml" line="197"/>
|
||||
<source>Use a monospeced font to edit a note</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/pages/SettingsPage.qml" line="196"/>
|
||||
<location filename="../qml/pages/SettingsPage.qml" line="202"/>
|
||||
<source>Capital 'X' in checkboxes</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/pages/SettingsPage.qml" line="197"/>
|
||||
<location filename="../qml/pages/SettingsPage.qml" line="203"/>
|
||||
<source>For interoperability with other apps such as Joplin</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
|
Loading…
Reference in a new issue