Initialcommit, not yet for use!
This commit is contained in:
parent
f9dea46777
commit
4b9a83cfb8
18 changed files with 672 additions and 0 deletions
12
harbour-nextcloud-notes.desktop
Normal file
12
harbour-nextcloud-notes.desktop
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Type=Application
|
||||||
|
X-Nemo-Application-Type=silica-qt5
|
||||||
|
Icon=harbour-nextcloud-notes
|
||||||
|
Exec=harbour-nextcloud-notes
|
||||||
|
Name=harbour-nextcloud-notes
|
||||||
|
# translation example:
|
||||||
|
# your app name in German locale (de)
|
||||||
|
#
|
||||||
|
# Remember to comment out the following line, if you do not want to use
|
||||||
|
# a different app name in German locale (de).
|
||||||
|
Name[de]=harbour-nextcloud-notes
|
42
harbour-nextcloud-notes.pro
Normal file
42
harbour-nextcloud-notes.pro
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
# NOTICE:
|
||||||
|
#
|
||||||
|
# Application name defined in TARGET has a corresponding QML filename.
|
||||||
|
# If name defined in TARGET is changed, the following needs to be done
|
||||||
|
# to match new name:
|
||||||
|
# - corresponding QML filename must be changed
|
||||||
|
# - desktop icon filename must be changed
|
||||||
|
# - desktop filename must be changed
|
||||||
|
# - icon definition filename in desktop file must be changed
|
||||||
|
# - translation filenames have to be changed
|
||||||
|
|
||||||
|
# The name of your application
|
||||||
|
TARGET = harbour-nextcloud-notes
|
||||||
|
|
||||||
|
CONFIG += sailfishapp
|
||||||
|
|
||||||
|
SOURCES += src/harbour-nextcloud-notes.cpp
|
||||||
|
|
||||||
|
DISTFILES += qml/harbour-nextcloud-notes.qml \
|
||||||
|
qml/cover/CoverPage.qml \
|
||||||
|
qml/pages/FirstPage.qml \
|
||||||
|
rpm/harbour-nextcloud-notes.changes.in \
|
||||||
|
rpm/harbour-nextcloud-notes.changes.run.in \
|
||||||
|
rpm/harbour-nextcloud-notes.spec \
|
||||||
|
rpm/harbour-nextcloud-notes.yaml \
|
||||||
|
translations/*.ts \
|
||||||
|
harbour-nextcloud-notes.desktop \
|
||||||
|
qml/pages/NotePage.qml
|
||||||
|
|
||||||
|
SAILFISHAPP_ICONS = 86x86 108x108 128x128 172x172
|
||||||
|
|
||||||
|
# to disable building translations every time, comment out the
|
||||||
|
# following CONFIG line
|
||||||
|
CONFIG += sailfishapp_i18n
|
||||||
|
|
||||||
|
# German translation is enabled as an example. If you aren't
|
||||||
|
# planning to localize your app, remember to comment out the
|
||||||
|
# following TRANSLATIONS line. And also do not forget to
|
||||||
|
# modify the localized app name in the the .desktop file.
|
||||||
|
TRANSLATIONS += translations/harbour-nextcloud-notes-de.ts
|
||||||
|
|
||||||
|
HEADERS +=
|
BIN
icons/108x108/harbour-nextcloud-notes.png
Normal file
BIN
icons/108x108/harbour-nextcloud-notes.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.3 KiB |
BIN
icons/128x128/harbour-nextcloud-notes.png
Normal file
BIN
icons/128x128/harbour-nextcloud-notes.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.8 KiB |
BIN
icons/172x172/harbour-nextcloud-notes.png
Normal file
BIN
icons/172x172/harbour-nextcloud-notes.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
BIN
icons/86x86/harbour-nextcloud-notes.png
Normal file
BIN
icons/86x86/harbour-nextcloud-notes.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.7 KiB |
22
qml/cover/CoverPage.qml
Normal file
22
qml/cover/CoverPage.qml
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
import QtQuick 2.0
|
||||||
|
import Sailfish.Silica 1.0
|
||||||
|
|
||||||
|
CoverBackground {
|
||||||
|
Label {
|
||||||
|
id: label
|
||||||
|
anchors.centerIn: parent
|
||||||
|
text: qsTr("My Cover")
|
||||||
|
}
|
||||||
|
|
||||||
|
CoverActionList {
|
||||||
|
id: coverAction
|
||||||
|
|
||||||
|
CoverAction {
|
||||||
|
iconSource: "image://theme/icon-cover-next"
|
||||||
|
}
|
||||||
|
|
||||||
|
CoverAction {
|
||||||
|
iconSource: "image://theme/icon-cover-pause"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
32
qml/harbour-nextcloud-notes.qml
Normal file
32
qml/harbour-nextcloud-notes.qml
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
import QtQuick 2.0
|
||||||
|
import Sailfish.Silica 1.0
|
||||||
|
import Nemo.Configuration 1.0
|
||||||
|
import "pages"
|
||||||
|
|
||||||
|
ApplicationWindow
|
||||||
|
{
|
||||||
|
id: appWindow
|
||||||
|
|
||||||
|
ConfigurationGroup {
|
||||||
|
id: appSettings
|
||||||
|
path: "/apps/harbour-nextcloud-notes/settings"
|
||||||
|
property string lastUpdate: qsTr("never")
|
||||||
|
property url nextcloudServer: "https://cloud.scharel.name"
|
||||||
|
property string username: "scharel"
|
||||||
|
property string password: ""
|
||||||
|
}
|
||||||
|
|
||||||
|
property var notesModel: JSONListModel {
|
||||||
|
url: appSettings.nextcloudServer + "/index.php/apps/notes/api/v0.2/notes"
|
||||||
|
name: "notes"
|
||||||
|
saveFile: false
|
||||||
|
}
|
||||||
|
Connections {
|
||||||
|
target: notesModel
|
||||||
|
onLastUpdateChanged: appSettings.lastUpdate = notesModel.lastUpdate
|
||||||
|
}
|
||||||
|
|
||||||
|
initialPage: Component { FirstPage { } }
|
||||||
|
cover: Qt.resolvedUrl("cover/CoverPage.qml")
|
||||||
|
allowedOrientations: defaultAllowedOrientations
|
||||||
|
}
|
130
qml/pages/FirstPage.qml
Normal file
130
qml/pages/FirstPage.qml
Normal file
|
@ -0,0 +1,130 @@
|
||||||
|
import QtQuick 2.0
|
||||||
|
import Sailfish.Silica 1.0
|
||||||
|
//import harbour.nextcloudnotes 0.1
|
||||||
|
|
||||||
|
Page {
|
||||||
|
id: page
|
||||||
|
|
||||||
|
SilicaListView {
|
||||||
|
id: notesList
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
PullDownMenu {
|
||||||
|
busy: notesModel.busy
|
||||||
|
MenuItem {
|
||||||
|
text: qsTr("Settings")
|
||||||
|
onClicked: pageStack.push(Qt.resolvedUrl("Settings.qml"))
|
||||||
|
}
|
||||||
|
MenuItem {
|
||||||
|
text: qsTr("Add note")
|
||||||
|
onClicked: console.log("Add note")
|
||||||
|
}
|
||||||
|
MenuLabel {
|
||||||
|
text: qsTr("Last update") + ": " + appSettings.lastUpdate
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
header: SearchField {
|
||||||
|
width: parent.width
|
||||||
|
placeholderText: qsTr("Nextcloud Notes")
|
||||||
|
onTextChanged: notesModel.search(text.toLowerCase())
|
||||||
|
|
||||||
|
EnterKey.iconSource: "image://theme/icon-m-enter-close"
|
||||||
|
EnterKey.onClicked: focus = false
|
||||||
|
enabled: notesModel.json.length > 0
|
||||||
|
}
|
||||||
|
|
||||||
|
currentIndex: -1
|
||||||
|
Component.onCompleted: notesModel.update()
|
||||||
|
|
||||||
|
model: notesModel
|
||||||
|
|
||||||
|
delegate: ListItem {
|
||||||
|
id: note
|
||||||
|
contentHeight: Theme.itemSizeMedium
|
||||||
|
|
||||||
|
onClicked: {
|
||||||
|
pageStack.push(Qt.resolvedUrl("NotePage.qml"),
|
||||||
|
{id: id,
|
||||||
|
etag: etag,
|
||||||
|
modified: modified,
|
||||||
|
title: title,
|
||||||
|
category: category,
|
||||||
|
favorite: favorite,
|
||||||
|
content: content,
|
||||||
|
error: error,
|
||||||
|
errorMessage: errorMessage})
|
||||||
|
}
|
||||||
|
|
||||||
|
IconButton {
|
||||||
|
id: isFavoriteIcon
|
||||||
|
x: Theme.horizontalPageMargin
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
width: Theme.iconSizeMedium
|
||||||
|
icon.source: (favorite ? "image://theme/icon-m-favorite-selected?" : "image://theme/icon-m-favorite?") +
|
||||||
|
(note.highlighted ? Theme.secondaryHighlightColor : Theme.secondaryColor)
|
||||||
|
onClicked: {
|
||||||
|
console.log("Toggle favorite")
|
||||||
|
favorite = !favorite
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Label {
|
||||||
|
id: titleLabel
|
||||||
|
anchors.left: isFavoriteIcon.right
|
||||||
|
anchors.leftMargin: Theme.paddingSmall
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.bottom: parent.verticalCenter
|
||||||
|
text: title
|
||||||
|
truncationMode: TruncationMode.Fade
|
||||||
|
color: note.highlighted ? Theme.highlightColor : Theme.primaryColor
|
||||||
|
}
|
||||||
|
|
||||||
|
Label {
|
||||||
|
id: modifiedLabel
|
||||||
|
anchors.left: isFavoriteIcon.right
|
||||||
|
anchors.leftMargin: Theme.paddingSmall
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.top: parent.verticalCenter
|
||||||
|
text: new Date(modified * 1000).toLocaleDateString()
|
||||||
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
|
color: note.highlighted ? Theme.highlightColor : Theme.primaryColor
|
||||||
|
}
|
||||||
|
|
||||||
|
menu: ContextMenu {
|
||||||
|
Text {
|
||||||
|
id: descriptionText
|
||||||
|
width: parent.width - 2*Theme.horizontalPageMargin
|
||||||
|
height: contentHeight + Theme.paddingMedium
|
||||||
|
x: Theme.horizontalPageMargin
|
||||||
|
wrapMode: Text.Wrap
|
||||||
|
color: Theme.highlightColor
|
||||||
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
|
maximumLineCount: 5
|
||||||
|
text: content
|
||||||
|
}
|
||||||
|
MenuItem {
|
||||||
|
text: qsTr("Delete")
|
||||||
|
onClicked: console.log("Delete note")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
section.property: "category"
|
||||||
|
section.criteria: ViewSection.FullString
|
||||||
|
section.labelPositioning: ViewSection.InlineLabels
|
||||||
|
section.delegate: SectionHeader {
|
||||||
|
text: section.empty ? qsTr("No category") : section
|
||||||
|
}
|
||||||
|
|
||||||
|
BusyIndicator {
|
||||||
|
id: busyIndicator
|
||||||
|
anchors.centerIn: parent
|
||||||
|
size: BusyIndicatorSize.Large
|
||||||
|
visible: notesList.count === 0
|
||||||
|
running: visible
|
||||||
|
}
|
||||||
|
|
||||||
|
VerticalScrollDecorator { flickable: notesList }
|
||||||
|
}
|
||||||
|
}
|
117
qml/pages/JSONListModel.qml
Normal file
117
qml/pages/JSONListModel.qml
Normal file
|
@ -0,0 +1,117 @@
|
||||||
|
import QtQuick 2.0
|
||||||
|
import Sailfish.Silica 1.0
|
||||||
|
import Nemo.Configuration 1.0
|
||||||
|
|
||||||
|
ListModel {
|
||||||
|
property url url
|
||||||
|
property string json
|
||||||
|
property string name
|
||||||
|
property string file: StandardPaths.data + "/" + name + ".json"
|
||||||
|
property bool saveFile: false
|
||||||
|
property bool busy: false
|
||||||
|
property int status: 200
|
||||||
|
property date lastUpdate: new Date(0)
|
||||||
|
|
||||||
|
onJsonChanged: refresh()
|
||||||
|
|
||||||
|
function flush() {
|
||||||
|
json = ""
|
||||||
|
var filePut = new XMLHttpRequest
|
||||||
|
filePut.open("PUT", file)
|
||||||
|
filePut.send(json)
|
||||||
|
clear()
|
||||||
|
lastUpdate = new Date(0)
|
||||||
|
status = 200
|
||||||
|
}
|
||||||
|
|
||||||
|
function refresh() {
|
||||||
|
search("")
|
||||||
|
}
|
||||||
|
|
||||||
|
function search(query) {
|
||||||
|
clear()
|
||||||
|
var elements = parseJson()
|
||||||
|
for (var element in elements) {
|
||||||
|
elements[element].section = ""
|
||||||
|
var match = false
|
||||||
|
for (var child in elements[element]) {
|
||||||
|
if (elements[element][child]) {
|
||||||
|
match = (elements[element][child].toString().toLowerCase().indexOf(query) >= 0) || match
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (query === "" || match)
|
||||||
|
append(elements[element])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseJson() {
|
||||||
|
var elements = JSON.parse(json)
|
||||||
|
if (elements === null) {
|
||||||
|
console.log("Error parsing " + name + "-JSON")
|
||||||
|
elements = ""
|
||||||
|
json = ""
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
clear()
|
||||||
|
return elements
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function update() {
|
||||||
|
busy = true
|
||||||
|
var apiReq = new XMLHttpRequest
|
||||||
|
apiReq.open("GET", url, true)//, appSettings.username, appSettings.password)
|
||||||
|
apiReq.setRequestHeader('User-Agent', 'SailfishOS/harbour-lidderbuch')
|
||||||
|
apiReq.setRequestHeader('OCS-APIRequest', 'true')
|
||||||
|
apiReq.setRequestHeader("Authorization", "Basic " + Qt.btoa(appSettings.username + ":" + appSettings.password))
|
||||||
|
apiReq.onreadystatechange = function() {
|
||||||
|
if (apiReq.readyState === XMLHttpRequest.DONE) {
|
||||||
|
if (apiReq.status === 200) {
|
||||||
|
console.log("Successfully loaded " + url)
|
||||||
|
json = apiReq.responseText
|
||||||
|
//console.log(json)
|
||||||
|
if (saveFile) {
|
||||||
|
var filePut = new XMLHttpRequest
|
||||||
|
filePut.open("PUT", file)
|
||||||
|
filePut.send(json)
|
||||||
|
}
|
||||||
|
lastUpdate = new Date()
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
console.log("Error loading " + url + " - " + apiReq.status)
|
||||||
|
//lastUpdate = new Date(0)
|
||||||
|
}
|
||||||
|
status = apiReq.status
|
||||||
|
busy = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
apiReq.send()
|
||||||
|
}
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
if (saveFile) {
|
||||||
|
if (name === "") {
|
||||||
|
saveFile = false
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
busy = true
|
||||||
|
var fileReq = new XMLHttpRequest
|
||||||
|
fileReq.open("GET", file)
|
||||||
|
fileReq.onreadystatechange = function() {
|
||||||
|
if (fileReq.readyState === XMLHttpRequest.DONE) {
|
||||||
|
if (fileReq.responseText === "") {
|
||||||
|
update()
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
console.log("Loaded " + name + " from local JSON file")
|
||||||
|
json = fileReq.responseText
|
||||||
|
busy = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fileReq.send()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
44
qml/pages/NotePage.qml
Normal file
44
qml/pages/NotePage.qml
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
import QtQuick 2.0
|
||||||
|
import Sailfish.Silica 1.0
|
||||||
|
|
||||||
|
Page {
|
||||||
|
id: page
|
||||||
|
|
||||||
|
property int id
|
||||||
|
property string etag
|
||||||
|
property date modified
|
||||||
|
property string title
|
||||||
|
property string category
|
||||||
|
property bool favorite
|
||||||
|
property string content
|
||||||
|
property bool error
|
||||||
|
property string errorMessage
|
||||||
|
|
||||||
|
|
||||||
|
// The effective value will be restricted by ApplicationWindow.allowedOrientations
|
||||||
|
allowedOrientations: Orientation.All
|
||||||
|
|
||||||
|
SilicaFlickable {
|
||||||
|
id: flickable
|
||||||
|
anchors.fill: parent
|
||||||
|
contentHeight: column.height
|
||||||
|
|
||||||
|
Column {
|
||||||
|
id: column
|
||||||
|
//x: Theme.horizontalPageMargin
|
||||||
|
width: parent.width// - 2*x
|
||||||
|
|
||||||
|
PageHeader {
|
||||||
|
title: page.title
|
||||||
|
}
|
||||||
|
|
||||||
|
TextArea {
|
||||||
|
id: note
|
||||||
|
width: parent.width
|
||||||
|
readOnly: true
|
||||||
|
text: page.content
|
||||||
|
}
|
||||||
|
}
|
||||||
|
VerticalScrollDecorator {}
|
||||||
|
}
|
||||||
|
}
|
18
rpm/harbour-nextcloud-notes.changes.in
Normal file
18
rpm/harbour-nextcloud-notes.changes.in
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
# Rename this file as harbour-nextcloud-notes.changes to include changelog
|
||||||
|
# entries in your RPM file.
|
||||||
|
#
|
||||||
|
# Add new changelog entries following the format below.
|
||||||
|
# Add newest entries to the top of the list.
|
||||||
|
# Separate entries from eachother with a blank line.
|
||||||
|
#
|
||||||
|
# Alternatively, if your changelog is automatically generated (e.g. with
|
||||||
|
# the git-change-log command provided with Sailfish OS SDK), create a
|
||||||
|
# harbour-nextcloud-notes.changes.run script to let mb2 run the required commands for you.
|
||||||
|
|
||||||
|
# * date Author's Name <author's email> version-release
|
||||||
|
# - Summary of changes
|
||||||
|
|
||||||
|
* Sun Apr 13 2014 Jack Tar <jack.tar@example.com> 0.0.1-1
|
||||||
|
- Scrubbed the deck
|
||||||
|
- Hoisted the sails
|
||||||
|
|
25
rpm/harbour-nextcloud-notes.changes.run.in
Normal file
25
rpm/harbour-nextcloud-notes.changes.run.in
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Rename this file as harbour-nextcloud-notes.changes.run to let mb2 automatically
|
||||||
|
# generate changelog from well formatted Git commit messages and tag
|
||||||
|
# annotations.
|
||||||
|
|
||||||
|
git-change-log
|
||||||
|
|
||||||
|
# Here are some basic examples how to change from the default behavior. Run
|
||||||
|
# git-change-log --help inside the Sailfish OS SDK chroot or build engine to
|
||||||
|
# learn all the options git-change-log accepts.
|
||||||
|
|
||||||
|
# Use a subset of tags
|
||||||
|
#git-change-log --tags refs/tags/my-prefix/*
|
||||||
|
|
||||||
|
# Group entries by minor revision, suppress headlines for patch-level revisions
|
||||||
|
#git-change-log --dense '/[0-9]\+\.[0-9\+$'
|
||||||
|
|
||||||
|
# Trim very old changes
|
||||||
|
#git-change-log --since 2014-04-01
|
||||||
|
#echo '[ Some changelog entries trimmed for brevity ]'
|
||||||
|
|
||||||
|
# Use the subjects (first lines) of tag annotations when no entry would be
|
||||||
|
# included for a revision otherwise
|
||||||
|
#git-change-log --auto-add-annotations
|
71
rpm/harbour-nextcloud-notes.spec
Normal file
71
rpm/harbour-nextcloud-notes.spec
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
#
|
||||||
|
# Do NOT Edit the Auto-generated Part!
|
||||||
|
# Generated by: spectacle version 0.27
|
||||||
|
#
|
||||||
|
|
||||||
|
Name: harbour-nextcloud-notes
|
||||||
|
|
||||||
|
# >> macros
|
||||||
|
# << macros
|
||||||
|
|
||||||
|
%{!?qtc_qmake:%define qtc_qmake %qmake}
|
||||||
|
%{!?qtc_qmake5:%define qtc_qmake5 %qmake5}
|
||||||
|
%{!?qtc_make:%define qtc_make make}
|
||||||
|
%{?qtc_builddir:%define _builddir %qtc_builddir}
|
||||||
|
Summary: Nextcloud Notes
|
||||||
|
Version: 0.1
|
||||||
|
Release: 1
|
||||||
|
Group: Qt/Qt
|
||||||
|
License: LICENSE
|
||||||
|
URL: http://example.org/
|
||||||
|
Source0: %{name}-%{version}.tar.bz2
|
||||||
|
Source100: harbour-nextcloud-notes.yaml
|
||||||
|
Requires: sailfishsilica-qt5 >= 0.10.9
|
||||||
|
BuildRequires: pkgconfig(sailfishapp) >= 1.0.2
|
||||||
|
BuildRequires: pkgconfig(Qt5Core)
|
||||||
|
BuildRequires: pkgconfig(Qt5Qml)
|
||||||
|
BuildRequires: pkgconfig(Qt5Quick)
|
||||||
|
BuildRequires: desktop-file-utils
|
||||||
|
|
||||||
|
%description
|
||||||
|
Short description of my Sailfish OS Application
|
||||||
|
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q -n %{name}-%{version}
|
||||||
|
|
||||||
|
# >> setup
|
||||||
|
# << setup
|
||||||
|
|
||||||
|
%build
|
||||||
|
# >> build pre
|
||||||
|
# << build pre
|
||||||
|
|
||||||
|
%qtc_qmake5
|
||||||
|
|
||||||
|
%qtc_make %{?_smp_mflags}
|
||||||
|
|
||||||
|
# >> build post
|
||||||
|
# << build post
|
||||||
|
|
||||||
|
%install
|
||||||
|
rm -rf %{buildroot}
|
||||||
|
# >> install pre
|
||||||
|
# << install pre
|
||||||
|
%qmake5_install
|
||||||
|
|
||||||
|
# >> install post
|
||||||
|
# << install post
|
||||||
|
|
||||||
|
desktop-file-install --delete-original \
|
||||||
|
--dir %{buildroot}%{_datadir}/applications \
|
||||||
|
%{buildroot}%{_datadir}/applications/*.desktop
|
||||||
|
|
||||||
|
%files
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%{_bindir}
|
||||||
|
%{_datadir}/%{name}
|
||||||
|
%{_datadir}/applications/%{name}.desktop
|
||||||
|
%{_datadir}/icons/hicolor/*/apps/%{name}.png
|
||||||
|
# >> files
|
||||||
|
# << files
|
45
rpm/harbour-nextcloud-notes.yaml
Normal file
45
rpm/harbour-nextcloud-notes.yaml
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
Name: harbour-nextcloud-notes
|
||||||
|
Summary: Nextcloud Notes
|
||||||
|
Version: 0.1
|
||||||
|
Release: 1
|
||||||
|
# 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: Qt/Qt
|
||||||
|
URL: http://example.org/
|
||||||
|
License: LICENSE
|
||||||
|
# This must be generated before uploading a package to a remote build service.
|
||||||
|
# Usually this line does not need to be modified.
|
||||||
|
Sources:
|
||||||
|
- '%{name}-%{version}.tar.bz2'
|
||||||
|
Description: |
|
||||||
|
Short description of my Sailfish OS Application
|
||||||
|
Configure: none
|
||||||
|
# The qtc5 builder inserts macros to allow QtCreator to have fine
|
||||||
|
# control over qmake/make execution
|
||||||
|
Builder: qtc5
|
||||||
|
|
||||||
|
# This section specifies build dependencies that are resolved using pkgconfig.
|
||||||
|
# This is the preferred way of specifying build dependencies for your package.
|
||||||
|
PkgConfigBR:
|
||||||
|
- sailfishapp >= 1.0.2
|
||||||
|
- Qt5Core
|
||||||
|
- Qt5Qml
|
||||||
|
- Qt5Quick
|
||||||
|
|
||||||
|
# Build dependencies without a pkgconfig setup can be listed here
|
||||||
|
# PkgBR:
|
||||||
|
# - package-needed-to-build
|
||||||
|
|
||||||
|
# Runtime dependencies which are not automatically detected
|
||||||
|
Requires:
|
||||||
|
- sailfishsilica-qt5 >= 0.10.9
|
||||||
|
|
||||||
|
# All installed files
|
||||||
|
Files:
|
||||||
|
- '%{_bindir}'
|
||||||
|
- '%{_datadir}/%{name}'
|
||||||
|
- '%{_datadir}/applications/%{name}.desktop'
|
||||||
|
- '%{_datadir}/icons/hicolor/*/apps/%{name}.png'
|
||||||
|
|
||||||
|
# For more information about yaml and what's supported in Sailfish OS
|
||||||
|
# build system, please see https://wiki.merproject.org/wiki/Spectacle
|
24
src/harbour-nextcloud-notes.cpp
Normal file
24
src/harbour-nextcloud-notes.cpp
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
#ifdef QT_QML_DEBUG
|
||||||
|
#include <QtQuick>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <sailfishapp.h>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
QGuiApplication* app = SailfishApp::application(argc, argv);
|
||||||
|
app->setApplicationDisplayName("Nextcloud Notes");
|
||||||
|
app->setApplicationName("harbour-nextcloud-notes");
|
||||||
|
app->setApplicationVersion("0.1");
|
||||||
|
app->setOrganizationDomain("https://github.com/scharel");
|
||||||
|
app->setOrganizationName("harbour-nextcloud-notes");
|
||||||
|
|
||||||
|
qDebug() << app->applicationDisplayName() << app->applicationVersion();
|
||||||
|
|
||||||
|
QQuickView* view = SailfishApp::createView();
|
||||||
|
|
||||||
|
view->setSource(SailfishApp::pathTo("qml/harbour-nextcloud-notes.qml"));
|
||||||
|
view->show();
|
||||||
|
|
||||||
|
return app->exec();
|
||||||
|
}
|
45
translations/harbour-nextcloud-notes-de.ts
Normal file
45
translations/harbour-nextcloud-notes-de.ts
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!DOCTYPE TS>
|
||||||
|
<TS version="2.1">
|
||||||
|
<context>
|
||||||
|
<name>CoverPage</name>
|
||||||
|
<message>
|
||||||
|
<source>My Cover</source>
|
||||||
|
<translation>Mein Cover</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>FirstPage</name>
|
||||||
|
<message>
|
||||||
|
<source>Settings</source>
|
||||||
|
<translation>Einstellungen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Add note</source>
|
||||||
|
<translation>Neue Notiz</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Nextcloud Notes</source>
|
||||||
|
<translation>Nextcloud Notizen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Delete</source>
|
||||||
|
<translation>Löschen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>No category</source>
|
||||||
|
<translation>Ohne Kategorie</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Last update</source>
|
||||||
|
<translation>Zuletzt aktualisiert</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>harbour-nextcloud-notes</name>
|
||||||
|
<message>
|
||||||
|
<source>never</source>
|
||||||
|
<translation>noch nie</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
|
</TS>
|
45
translations/harbour-nextcloud-notes.ts
Normal file
45
translations/harbour-nextcloud-notes.ts
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!DOCTYPE TS>
|
||||||
|
<TS version="2.1">
|
||||||
|
<context>
|
||||||
|
<name>CoverPage</name>
|
||||||
|
<message>
|
||||||
|
<source>My Cover</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>FirstPage</name>
|
||||||
|
<message>
|
||||||
|
<source>Settings</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Add note</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Nextcloud Notes</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Delete</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>No category</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Last update</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>harbour-nextcloud-notes</name>
|
||||||
|
<message>
|
||||||
|
<source>never</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
|
</TS>
|
Loading…
Reference in a new issue