sailfish, getting somewhere
This commit is contained in:
parent
1cfee7081c
commit
d48178899c
25 changed files with 1463 additions and 33 deletions
7
harbour-ttrss.desktop
Normal file
7
harbour-ttrss.desktop
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Type=Application
|
||||||
|
X-Nemo-Application-Type=silica-qt5
|
||||||
|
Name=ttrss
|
||||||
|
Icon=harbour-ttrss
|
||||||
|
Exec=harbour-ttrss
|
||||||
|
|
||||||
60
harbour-ttrss.pro
Normal file
60
harbour-ttrss.pro
Normal file
|
|
@ -0,0 +1,60 @@
|
||||||
|
# The name of your app.
|
||||||
|
# NOTICE: name defined in TARGET has a corresponding QML filename.
|
||||||
|
# If name defined in TARGET is changed, 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
|
||||||
|
|
||||||
|
VERSION = 0.3.4
|
||||||
|
DEFINES += APP_VERSION=\\\"$$VERSION\\\"
|
||||||
|
|
||||||
|
DEFINES += Q_OS_SAILFISH
|
||||||
|
|
||||||
|
TARGET = harbour-ttrss
|
||||||
|
|
||||||
|
##CONFIG += sailfishapp
|
||||||
|
|
||||||
|
QT += quick qml
|
||||||
|
|
||||||
|
target.path = /usr/bin
|
||||||
|
INSTALLS += target
|
||||||
|
|
||||||
|
CONFIG += link_pkgconfig
|
||||||
|
PKGCONFIG += sailfishapp
|
||||||
|
INCLUDEPATH += /usr/include/sailfishapp
|
||||||
|
|
||||||
|
qml_1.files = qml/ttrss/sailfish
|
||||||
|
qml_1.path = $$INSTALL_ROOT/usr/share/$$TARGET/qml
|
||||||
|
qml_2.files = qml/ttrss/models
|
||||||
|
qml_2.path = $$INSTALL_ROOT/usr/share/$$TARGET/qml
|
||||||
|
qml_3.files = qml/ttrss/resources
|
||||||
|
qml_3.path = $$INSTALL_ROOT/usr/share/$$TARGET/qml
|
||||||
|
INSTALLS += qml_1 qml_2 qml_3
|
||||||
|
|
||||||
|
icon.files = images/$${TARGET}.png
|
||||||
|
icon.path = /usr/share/icons/hicolor/86x86/apps
|
||||||
|
INSTALLS += icon
|
||||||
|
|
||||||
|
desktop.files = harbour-ttrss.desktop
|
||||||
|
desktop.path = /usr/share/applications
|
||||||
|
INSTALLS += desktop
|
||||||
|
|
||||||
|
RESOURCES += \
|
||||||
|
harmattan.qrc
|
||||||
|
|
||||||
|
HEADERS += \
|
||||||
|
settings.hh \
|
||||||
|
# mynetworkmanager.hh \
|
||||||
|
qmlutils.hh
|
||||||
|
|
||||||
|
SOURCES += main.cpp \
|
||||||
|
settings.cpp \
|
||||||
|
# mynetworkmanager.cpp \
|
||||||
|
qmlutils.cpp
|
||||||
|
|
||||||
|
OTHER_FILES += rpm/harbour-ttrss.spec \
|
||||||
|
rpm/harbour-ttrss.yaml \
|
||||||
|
$$files(rpm/*)
|
||||||
|
|
||||||
BIN
images/harbour-ttrss.png
Normal file
BIN
images/harbour-ttrss.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8 KiB |
BIN
images/sailfish.xcf
Normal file
BIN
images/sailfish.xcf
Normal file
Binary file not shown.
66
main.cpp
66
main.cpp
|
|
@ -1,16 +1,44 @@
|
||||||
|
//Copyright Hauke Schade, 2012-2013
|
||||||
|
//
|
||||||
|
//This file is part of TTRss.
|
||||||
|
//
|
||||||
|
//TTRss is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the
|
||||||
|
//Free Software Foundation, either version 2 of the License, or (at your option) any later version.
|
||||||
|
//TTRss is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
//You should have received a copy of the GNU General Public License along with TTRss (on a Maemo/Meego system there is a copy
|
||||||
|
//in /usr/share/common-licenses. If not, see http://www.gnu.org/licenses/.
|
||||||
|
|
||||||
|
#if defined(Q_OS_SAILFISH)
|
||||||
|
#include <QGuiApplication>
|
||||||
|
#include <sailfishapp.h>
|
||||||
|
#ifdef QT_QML_DEBUG
|
||||||
|
#include <QtQuick>
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#include <QtGui/QApplication>
|
||||||
|
#include <QtDeclarative/QDeclarativeContext>
|
||||||
|
#include "qmlapplicationviewer.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <QTranslator>
|
#include <QTranslator>
|
||||||
#include <QLocale>
|
#include <QLocale>
|
||||||
#include <QtGui/QApplication>
|
|
||||||
#include <QtDeclarative/QDeclarativeContext>
|
|
||||||
#include "qmlapplicationviewer.h"
|
|
||||||
|
|
||||||
#include "settings.hh"
|
#include "settings.hh"
|
||||||
#include "mynetworkmanager.hh"
|
|
||||||
#include "qmlutils.hh"
|
#include "qmlutils.hh"
|
||||||
|
|
||||||
|
#if defined(Q_OS_SAILFISH)
|
||||||
|
#else
|
||||||
|
#include "mynetworkmanager.hh"
|
||||||
|
#endif
|
||||||
|
|
||||||
Q_DECL_EXPORT int main(int argc, char *argv[])
|
Q_DECL_EXPORT int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
#if defined(Q_OS_SAILFISH)
|
||||||
|
QGuiApplication *app = SailfishApp::application(argc, argv);
|
||||||
|
#else
|
||||||
QScopedPointer<QApplication> app(createApplication(argc, argv));
|
QScopedPointer<QApplication> app(createApplication(argc, argv));
|
||||||
|
#endif
|
||||||
|
|
||||||
app->setApplicationVersion(APP_VERSION);
|
app->setApplicationVersion(APP_VERSION);
|
||||||
app->setApplicationName("ttrss");
|
app->setApplicationName("ttrss");
|
||||||
|
|
@ -29,19 +57,33 @@ Q_DECL_EXPORT int main(int argc, char *argv[])
|
||||||
if (translator.load("qml-translation." + locale, ":/i18n"))
|
if (translator.load("qml-translation." + locale, ":/i18n"))
|
||||||
app->installTranslator(&translator);
|
app->installTranslator(&translator);
|
||||||
|
|
||||||
QmlApplicationViewer viewer;
|
#if defined(Q_OS_SAILFISH)
|
||||||
|
QQuickView* viewer = SailfishApp::createView();
|
||||||
|
#else
|
||||||
|
QmlApplicationViewer *viewer = new QmlApplicationViewer();
|
||||||
|
viewer->setOrientation(QmlApplicationViewer::ScreenOrientationAuto);
|
||||||
|
|
||||||
//QObject::connect(viewer.engine(), SIGNAL(quit()), viewer.data, SLOT(close()));
|
//QObject::connect(viewer.engine(), SIGNAL(quit()), viewer.data, SLOT(close()));
|
||||||
viewer.setNetworkAccessManagerFactory(MyNetworkManager::instance());
|
viewer->setNetworkAccessManagerFactory(MyNetworkManager::instance());
|
||||||
viewer.rootContext()->setContextProperty("network", MyNetworkManager::instance());
|
viewer->rootContext()->setContextProperty("network", MyNetworkManager::instance());
|
||||||
|
#endif
|
||||||
|
|
||||||
viewer.rootContext()->setContextProperty("APP_VERSION", APP_VERSION);
|
viewer->rootContext()->setContextProperty("APP_VERSION", APP_VERSION);
|
||||||
|
|
||||||
viewer.rootContext()->setContextProperty("QMLUtils", QMLUtils::instance());
|
viewer->rootContext()->setContextProperty("QMLUtils", QMLUtils::instance());
|
||||||
viewer.rootContext()->setContextProperty("settings", Settings::instance());
|
viewer->rootContext()->setContextProperty("settings", Settings::instance());
|
||||||
|
|
||||||
viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto);
|
#if defined(Q_OS_SAILFISH)
|
||||||
|
viewer->setSource(SailfishApp::pathTo("qml/sailfish/harbour-ttrss.qml"));
|
||||||
|
#else
|
||||||
viewer.setMainQmlFile(QLatin1String("qml/harmattan/main.qml"));
|
viewer.setMainQmlFile(QLatin1String("qml/harmattan/main.qml"));
|
||||||
viewer.showExpanded();
|
#endif
|
||||||
|
|
||||||
|
#if defined(Q_OS_SAILFISH)
|
||||||
|
viewer->show();
|
||||||
|
#else
|
||||||
|
viewer->showExpanded();
|
||||||
|
#endif
|
||||||
|
|
||||||
return app->exec();
|
return app->exec();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,16 @@
|
||||||
// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
|
//Copyright Hauke Schade, 2012-2013
|
||||||
import QtQuick 1.1
|
//
|
||||||
import com.nokia.meego 1.0
|
//This file is part of TTRss.
|
||||||
|
//
|
||||||
|
//TTRss is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the
|
||||||
|
//Free Software Foundation, either version 2 of the License, or (at your option) any later version.
|
||||||
|
//TTRss is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
//You should have received a copy of the GNU General Public License along with TTRss (on a Maemo/Meego system there is a copy
|
||||||
|
//in /usr/share/common-licenses. If not, see http://www.gnu.org/licenses/.
|
||||||
|
|
||||||
|
//import QtQuick 1.1 // harmattan
|
||||||
|
import QtQuick 2.0 // sailfish
|
||||||
|
|
||||||
ListModel {
|
ListModel {
|
||||||
id: root
|
id: root
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,8 @@
|
||||||
//You should have received a copy of the GNU General Public License along with TTRss (on a Maemo/Meego system there is a copy
|
//You should have received a copy of the GNU General Public License along with TTRss (on a Maemo/Meego system there is a copy
|
||||||
//in /usr/share/common-licenses. If not, see http://www.gnu.org/licenses/.
|
//in /usr/share/common-licenses. If not, see http://www.gnu.org/licenses/.
|
||||||
|
|
||||||
import QtQuick 1.1
|
//import QtQuick 1.1 // harmattan
|
||||||
|
import QtQuick 2.0 // sailfish
|
||||||
|
|
||||||
QtObject{
|
QtObject{
|
||||||
id: constant
|
id: constant
|
||||||
|
|
@ -1,6 +1,16 @@
|
||||||
// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
|
//Copyright Hauke Schade, 2012-2013
|
||||||
import QtQuick 1.1
|
//
|
||||||
import com.nokia.meego 1.0
|
//This file is part of TTRss.
|
||||||
|
//
|
||||||
|
//TTRss is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the
|
||||||
|
//Free Software Foundation, either version 2 of the License, or (at your option) any later version.
|
||||||
|
//TTRss is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
//You should have received a copy of the GNU General Public License along with TTRss (on a Maemo/Meego system there is a copy
|
||||||
|
//in /usr/share/common-licenses. If not, see http://www.gnu.org/licenses/.
|
||||||
|
|
||||||
|
//import QtQuick 1.1 // harmattan
|
||||||
|
import QtQuick 2.0 // sailfish
|
||||||
|
|
||||||
ListModel {
|
ListModel {
|
||||||
id: root
|
id: root
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,16 @@
|
||||||
// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
|
//Copyright Hauke Schade, 2012-2013
|
||||||
import QtQuick 1.1
|
//
|
||||||
import com.nokia.meego 1.0
|
//This file is part of TTRss.
|
||||||
|
//
|
||||||
|
//TTRss is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the
|
||||||
|
//Free Software Foundation, either version 2 of the License, or (at your option) any later version.
|
||||||
|
//TTRss is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
//You should have received a copy of the GNU General Public License along with TTRss (on a Maemo/Meego system there is a copy
|
||||||
|
//in /usr/share/common-licenses. If not, see http://www.gnu.org/licenses/.
|
||||||
|
|
||||||
|
//import QtQuick 1.1 // harmattan
|
||||||
|
import QtQuick 2.0 // sailfish
|
||||||
|
|
||||||
ListModel {
|
ListModel {
|
||||||
id: root
|
id: root
|
||||||
|
|
|
||||||
54
qml/ttrss/sailfish/cover/CoverPage.qml
Normal file
54
qml/ttrss/sailfish/cover/CoverPage.qml
Normal file
|
|
@ -0,0 +1,54 @@
|
||||||
|
/*
|
||||||
|
Copyright (C) 2013 Jolla Ltd.
|
||||||
|
Contact: Thomas Perl <thomas.perl@jollamobile.com>
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
You may use this file under the terms of BSD license as follows:
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the Jolla Ltd nor the
|
||||||
|
names of its contributors may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import QtQuick 2.0
|
||||||
|
import Sailfish.Silica 1.0
|
||||||
|
|
||||||
|
CoverBackground {
|
||||||
|
Label {
|
||||||
|
id: label
|
||||||
|
anchors.centerIn: parent
|
||||||
|
text: "My Cover"
|
||||||
|
}
|
||||||
|
|
||||||
|
CoverActionList {
|
||||||
|
id: coverAction
|
||||||
|
|
||||||
|
CoverAction {
|
||||||
|
iconSource: "image://theme/icon-cover-next"
|
||||||
|
}
|
||||||
|
|
||||||
|
CoverAction {
|
||||||
|
iconSource: "image://theme/icon-cover-pause"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
139
qml/ttrss/sailfish/harbour-ttrss.qml
Normal file
139
qml/ttrss/sailfish/harbour-ttrss.qml
Normal file
|
|
@ -0,0 +1,139 @@
|
||||||
|
/*
|
||||||
|
Copyright (C) 2013 Jolla Ltd.
|
||||||
|
Contact: Thomas Perl <thomas.perl@jollamobile.com>
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
You may use this file under the terms of BSD license as follows:
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the Jolla Ltd nor the
|
||||||
|
names of its contributors may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import QtQuick 2.0
|
||||||
|
import Sailfish.Silica 1.0
|
||||||
|
import "pages"
|
||||||
|
import "../models/tinytinyrss.js" as TTRss
|
||||||
|
import "../models" 1.0
|
||||||
|
|
||||||
|
ApplicationWindow
|
||||||
|
{
|
||||||
|
id: rootWindow
|
||||||
|
initialPage: Component { MainPage { } }
|
||||||
|
cover: Qt.resolvedUrl("cover/CoverPage.qml")
|
||||||
|
|
||||||
|
function getTTRSS() {
|
||||||
|
return TTRss;
|
||||||
|
}
|
||||||
|
|
||||||
|
property bool showAll: false
|
||||||
|
|
||||||
|
Constants{ id: constant }
|
||||||
|
|
||||||
|
CategoryModel {
|
||||||
|
id: categories
|
||||||
|
}
|
||||||
|
FeedModel {
|
||||||
|
id: feeds
|
||||||
|
|
||||||
|
onFeedUnreadChanged: {
|
||||||
|
var op = function(x) { return x - oldAmount + feed.unreadcount }
|
||||||
|
categories.updateUnreadCountForId(feed.categoryId, op)
|
||||||
|
|
||||||
|
// update the 'All Feeds' Category
|
||||||
|
categories.updateUnreadCountForId(TTRss.constants['categories']['ALL'], op)
|
||||||
|
|
||||||
|
// if there is an 'all feed items' update that aswell
|
||||||
|
if (feeds.count > 1) {
|
||||||
|
var m = feeds.get(0)
|
||||||
|
if (m.isCat) // just check to be sure
|
||||||
|
feeds.setProperty(0, "unreadcount", op(m.unreadcount))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
FeedItemModel {
|
||||||
|
id: feedItems
|
||||||
|
|
||||||
|
onItemUnreadChanged: {
|
||||||
|
var op = item.unread ?
|
||||||
|
function(x) { return x + 1 } :
|
||||||
|
function(x) { return x - 1 }
|
||||||
|
|
||||||
|
// update the feed's category
|
||||||
|
feeds.updateUnreadCountForId(item.feedId, op)
|
||||||
|
|
||||||
|
// update special for all feeditems category
|
||||||
|
categories.updateUnreadCountForId(
|
||||||
|
TTRss.constants['categories']['SPECIAL'],
|
||||||
|
op)
|
||||||
|
|
||||||
|
// if the item is new, update 'special feeds' for 'fresh articles'
|
||||||
|
// TODO
|
||||||
|
if (item.unread && false)
|
||||||
|
categories.updateUnreadCountForId(
|
||||||
|
TTRss.constants['categories']['SPECIAL'],
|
||||||
|
op)
|
||||||
|
|
||||||
|
// if item was is starred/published, update special feeds aswell
|
||||||
|
if (item.rss)
|
||||||
|
categories.updateUnreadCountForId(
|
||||||
|
TTRss.constants['categories']['SPECIAL'],
|
||||||
|
op)
|
||||||
|
if (item.marked)
|
||||||
|
categories.updateUnreadCountForId(
|
||||||
|
TTRss.constants['categories']['SPECIAL'],
|
||||||
|
op)
|
||||||
|
|
||||||
|
// maybe check if currently viewing special feeds and update published
|
||||||
|
// not nesseccary because this is updated by mark unread
|
||||||
|
}
|
||||||
|
onItemPublishedChanged: {
|
||||||
|
var op = item.rss ?
|
||||||
|
function(x) { return x + 1 } :
|
||||||
|
function(x) { return x - 1 }
|
||||||
|
|
||||||
|
// if the item is unread, update 'special feeds'
|
||||||
|
if (item.unread)
|
||||||
|
categories.updateUnreadCountForId(
|
||||||
|
TTRss.constants['categories']['SPECIAL'],
|
||||||
|
op)
|
||||||
|
|
||||||
|
// maybe check if currently viewing special feeds and update published
|
||||||
|
// not nesseccary because this is updated by mark unread
|
||||||
|
}
|
||||||
|
onItemStarChanged: {
|
||||||
|
var op = item.marked ?
|
||||||
|
function(x) { return x + 1 } :
|
||||||
|
function(x) { return x - 1 }
|
||||||
|
|
||||||
|
// if the item is unread, update 'special feeds'
|
||||||
|
if (item.unread)
|
||||||
|
categories.updateUnreadCountForId(
|
||||||
|
TTRss.constants['categories']['SPECIAL'],
|
||||||
|
op)
|
||||||
|
|
||||||
|
// maybe check if currently viewing special feeds and update starred
|
||||||
|
// not nesseccary because this is updated by mark unread
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
34
qml/ttrss/sailfish/pages/AboutItem.qml
Normal file
34
qml/ttrss/sailfish/pages/AboutItem.qml
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
//Copyright Hauke Schade, 2012-2013
|
||||||
|
//
|
||||||
|
//This file is part of TTRss.
|
||||||
|
//
|
||||||
|
//TTRss is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the
|
||||||
|
//Free Software Foundation, either version 2 of the License, or (at your option) any later version.
|
||||||
|
//TTRss is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
//You should have received a copy of the GNU General Public License along with TTRss (on a Maemo/Meego system there is a copy
|
||||||
|
//in /usr/share/common-licenses. If not, see http://www.gnu.org/licenses/.
|
||||||
|
|
||||||
|
import QtQuick 2.0
|
||||||
|
import Sailfish.Silica 1.0
|
||||||
|
|
||||||
|
MenuItem {
|
||||||
|
text: qsTr("About")
|
||||||
|
onClicked: {
|
||||||
|
var params = {
|
||||||
|
title : 'ttrss ' + APP_VERSION,
|
||||||
|
iconSource: Qt.resolvedUrl('/usr/share/icons/hicolor/86x86/apps/harbour-ttrss.png'),
|
||||||
|
// slogan : '',
|
||||||
|
donatebutton: qsTr("Buy me a beer"),
|
||||||
|
donateurl: constant.donateUrl,
|
||||||
|
text: qsTr("Author: %1").arg("Hauke Schade") + "<br/>"
|
||||||
|
+ qsTr("Thanks to:") + " "
|
||||||
|
+ "Francois Cattin, Jakub Kožíšek, Alberto Mardegan, gwmgdemj, equeim",
|
||||||
|
homepageurl: constant.sourceRepoSite,
|
||||||
|
issuetrackertext: qsTr("If you encounter bugs or have feature requests, please visit the Issue Tracker"),
|
||||||
|
issuetrackerurl: constant.issueTrackerUrl
|
||||||
|
}
|
||||||
|
|
||||||
|
pageStack.push(Qt.resolvedUrl("AboutPage.qml"), params);
|
||||||
|
}
|
||||||
|
}
|
||||||
176
qml/ttrss/sailfish/pages/AboutPage.qml
Normal file
176
qml/ttrss/sailfish/pages/AboutPage.qml
Normal file
|
|
@ -0,0 +1,176 @@
|
||||||
|
//Copyright Hauke Schade, 2012-2013
|
||||||
|
//
|
||||||
|
//This file is part of TTRss.
|
||||||
|
//
|
||||||
|
//TTRss is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the
|
||||||
|
//Free Software Foundation, either version 2 of the License, or (at your option) any later version.
|
||||||
|
//TTRss is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
//You should have received a copy of the GNU General Public License along with TTRss (on a Maemo/Meego system there is a copy
|
||||||
|
//in /usr/share/common-licenses. If not, see http://www.gnu.org/licenses/.
|
||||||
|
|
||||||
|
import QtQuick 2.0
|
||||||
|
import Sailfish.Silica 1.0
|
||||||
|
|
||||||
|
Page {
|
||||||
|
id: aboutPage
|
||||||
|
property alias iconSource: icon.source
|
||||||
|
property alias title: title.title
|
||||||
|
property alias slogan: slogan.text
|
||||||
|
|
||||||
|
property alias donatetext: donatetext.text
|
||||||
|
property alias donatebutton: donatebutton.text
|
||||||
|
property string donateurl: donate.text
|
||||||
|
|
||||||
|
property alias homepagebutton: homepagebutton.text
|
||||||
|
property string homepageurl: ''
|
||||||
|
|
||||||
|
property alias text: content.text
|
||||||
|
|
||||||
|
property alias issuetrackerbutton: issuetrackerbutton.text
|
||||||
|
property alias issuetrackertext: issuetrackertext.text
|
||||||
|
property string issuetrackerurl: ''
|
||||||
|
|
||||||
|
|
||||||
|
SilicaFlickable {
|
||||||
|
anchors.fill: parent
|
||||||
|
contentHeight: aboutContainer.height + 10
|
||||||
|
contentWidth: parent.width
|
||||||
|
|
||||||
|
PullDownMenu {
|
||||||
|
MenuItem {
|
||||||
|
text: qsTr("License")
|
||||||
|
onClicked: {
|
||||||
|
var params = {
|
||||||
|
title: qsTr("License"),
|
||||||
|
iconSource: iconSource,
|
||||||
|
text: "This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.<br>
|
||||||
|
<br>
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.<br>
|
||||||
|
<br>
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <a href=\"http://www.gnu.org/licenses/\">http://www.gnu.org/licenses/</a>."
|
||||||
|
}
|
||||||
|
pageStack.push("TextPage.qml", params)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
MenuItem {
|
||||||
|
text: qsTr("Privacy Policy")
|
||||||
|
onClicked: {
|
||||||
|
var params = {
|
||||||
|
title: qsTr("Privacy Policy"),
|
||||||
|
iconSource: iconSource,
|
||||||
|
text: "ttrss will collect the login information you give at startup and nothing more.
|
||||||
|
Your login data is stored in a configuration file on your device and nowhere else.
|
||||||
|
ttrss will only use it to establish connections to the available services and/or servers.
|
||||||
|
The login data is not given to any third party and is not used for any other purpose than the functions of ttrss.
|
||||||
|
<br><br>
|
||||||
|
If you have any questions, concerns, or comments about our privacy policy you may contact us via:<br>
|
||||||
|
<a href='mailto:cnlpete@cnlpete.de'>cnlpete@cnlpete.de</a>"
|
||||||
|
}
|
||||||
|
pageStack.push("TextPage.qml", params)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: aboutContainer
|
||||||
|
width: parent.width
|
||||||
|
height: aboutColumn.height
|
||||||
|
|
||||||
|
Column {
|
||||||
|
id: aboutColumn
|
||||||
|
|
||||||
|
anchors {
|
||||||
|
left: parent.left
|
||||||
|
top: parent.top
|
||||||
|
right: parent.right
|
||||||
|
margins: 10
|
||||||
|
}
|
||||||
|
|
||||||
|
spacing: 10
|
||||||
|
|
||||||
|
PageHeader {
|
||||||
|
id: title
|
||||||
|
}
|
||||||
|
|
||||||
|
Image {
|
||||||
|
id: icon
|
||||||
|
source: ''
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
}
|
||||||
|
|
||||||
|
Label {
|
||||||
|
id: slogan
|
||||||
|
text: ''
|
||||||
|
visible: text !== ''
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
}
|
||||||
|
|
||||||
|
Label {
|
||||||
|
id: donatetext
|
||||||
|
text: ''
|
||||||
|
visible: text !== ''
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
}
|
||||||
|
Button {
|
||||||
|
id: donatebutton
|
||||||
|
width: parent.width
|
||||||
|
text: qsTr("Donate")
|
||||||
|
visible: donateurl !== ''
|
||||||
|
onClicked: {
|
||||||
|
Qt.openUrlExternally(donateurl)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Button {
|
||||||
|
id: homepagebutton
|
||||||
|
width: parent.width
|
||||||
|
text: qsTr("Homepage")
|
||||||
|
visible: homepageurl !== ''
|
||||||
|
onClicked: {
|
||||||
|
Qt.openUrlExternally(homepageurl)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Item {
|
||||||
|
width: 1
|
||||||
|
height: 50
|
||||||
|
}
|
||||||
|
Label {
|
||||||
|
id: content
|
||||||
|
text: ''
|
||||||
|
width: aboutPage.width
|
||||||
|
wrapMode: Text.WordWrap
|
||||||
|
}
|
||||||
|
Item {
|
||||||
|
width: 1
|
||||||
|
height: 50
|
||||||
|
}
|
||||||
|
|
||||||
|
Label {
|
||||||
|
id: issuetrackertext
|
||||||
|
text: ''
|
||||||
|
visible: text !== ''
|
||||||
|
width: aboutPage.width
|
||||||
|
wrapMode: Text.WordWrap
|
||||||
|
}
|
||||||
|
Button {
|
||||||
|
id: issuetrackerbutton
|
||||||
|
width: parent.width
|
||||||
|
text: qsTr("Issuetracker")
|
||||||
|
visible: issuetrackerurl !== ''
|
||||||
|
onClicked: {
|
||||||
|
Qt.openUrlExternally(issuetrackerurl)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
62
qml/ttrss/sailfish/pages/Categories.qml
Normal file
62
qml/ttrss/sailfish/pages/Categories.qml
Normal file
|
|
@ -0,0 +1,62 @@
|
||||||
|
//Copyright Hauke Schade, 2012-2013
|
||||||
|
//
|
||||||
|
//This file is part of TTRss.
|
||||||
|
//
|
||||||
|
//TTRss is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the
|
||||||
|
//Free Software Foundation, either version 2 of the License, or (at your option) any later version.
|
||||||
|
//TTRss is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
//You should have received a copy of the GNU General Public License along with TTRss (on a Maemo/Meego system there is a copy
|
||||||
|
//in /usr/share/common-licenses. If not, see http://www.gnu.org/licenses/.
|
||||||
|
|
||||||
|
import QtQuick 2.0
|
||||||
|
import Sailfish.Silica 1.0
|
||||||
|
|
||||||
|
Page {
|
||||||
|
id: categoriesPage
|
||||||
|
|
||||||
|
SilicaListView {
|
||||||
|
id: listView
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
model: categories
|
||||||
|
|
||||||
|
PullDownMenu {
|
||||||
|
AboutItem {}
|
||||||
|
SettingsItem {}
|
||||||
|
ToggleShowAllItem {
|
||||||
|
onUpdateView: {
|
||||||
|
categories.update()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
delegate: CategoryDelegate {
|
||||||
|
onClicked: {
|
||||||
|
categories.selectedIndex = index
|
||||||
|
showCategory(model)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
header: PageHeader {
|
||||||
|
title: qsTr("Tiny Tiny RSS Reader")
|
||||||
|
}
|
||||||
|
ViewPlaceholder {
|
||||||
|
enabled: listView.count == 0
|
||||||
|
text: network.loading ?
|
||||||
|
qsTr("Loading") :
|
||||||
|
rootWindow.showAll ? qsTr("No categories to display") : qsTr("No categories have unread items")
|
||||||
|
}
|
||||||
|
ScrollDecorator {
|
||||||
|
flickable: listView
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function showCategory(categoryModel) {
|
||||||
|
if(categoryModel != null) {
|
||||||
|
pageStack.push("Feeds.qml", {
|
||||||
|
category: categoryModel
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
50
qml/ttrss/sailfish/pages/CategoryDelegate.qml
Normal file
50
qml/ttrss/sailfish/pages/CategoryDelegate.qml
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
//Copyright Hauke Schade, 2012-2013
|
||||||
|
//
|
||||||
|
//This file is part of TTRss.
|
||||||
|
//
|
||||||
|
//TTRss is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the
|
||||||
|
//Free Software Foundation, either version 2 of the License, or (at your option) any later version.
|
||||||
|
//TTRss is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
//You should have received a copy of the GNU General Public License along with TTRss (on a Maemo/Meego system there is a copy
|
||||||
|
//in /usr/share/common-licenses. If not, see http://www.gnu.org/licenses/.
|
||||||
|
|
||||||
|
import QtQuick 2.0
|
||||||
|
import Sailfish.Silica 1.0
|
||||||
|
|
||||||
|
ListItem {
|
||||||
|
id: listItem
|
||||||
|
|
||||||
|
signal clicked
|
||||||
|
property alias pressed: mouseArea.pressed
|
||||||
|
|
||||||
|
contentHeight: Theme.itemSizeMedium
|
||||||
|
width: parent.width
|
||||||
|
|
||||||
|
Label {
|
||||||
|
text: model.title
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.margins: Theme.paddingMedium
|
||||||
|
anchors.right: bubble.left
|
||||||
|
truncationMode: TruncationMode.Elide
|
||||||
|
font.weight: Font.Bold
|
||||||
|
font.pixelSize: Theme.fontSizeLarge
|
||||||
|
color: listItem.highlighted ? Theme.highlightColor : ((model.unreadcount > 0) ? Theme.primaryColor : Theme.secondaryColor)
|
||||||
|
}
|
||||||
|
Label {
|
||||||
|
id: bubble
|
||||||
|
text: model.unreadcount
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.margins: Theme.paddingMedium
|
||||||
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
|
color: listItem.highlighted ? Theme.highlightColor : ((model.unreadcount > 0) ? Theme.primaryColor : Theme.secondaryColor)
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
id: mouseArea
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: listItem.clicked()
|
||||||
|
}
|
||||||
|
}
|
||||||
89
qml/ttrss/sailfish/pages/FeedDelegate.qml
Normal file
89
qml/ttrss/sailfish/pages/FeedDelegate.qml
Normal file
|
|
@ -0,0 +1,89 @@
|
||||||
|
//Copyright Hauke Schade, 2012-2013
|
||||||
|
//
|
||||||
|
//This file is part of TTRss.
|
||||||
|
//
|
||||||
|
//TTRss is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the
|
||||||
|
//Free Software Foundation, either version 2 of the License, or (at your option) any later version.
|
||||||
|
//TTRss is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
//You should have received a copy of the GNU General Public License along with TTRss (on a Maemo/Meego system there is a copy
|
||||||
|
//in /usr/share/common-licenses. If not, see http://www.gnu.org/licenses/.
|
||||||
|
|
||||||
|
import QtQuick 2.0
|
||||||
|
import Sailfish.Silica 1.0
|
||||||
|
|
||||||
|
ListItem {
|
||||||
|
id: listItem
|
||||||
|
|
||||||
|
signal clicked
|
||||||
|
property alias pressed: mouseArea.pressed
|
||||||
|
|
||||||
|
contentHeight: Theme.itemSizeSmall
|
||||||
|
width: parent.width
|
||||||
|
menu: contextMenu
|
||||||
|
|
||||||
|
Image {
|
||||||
|
id: icon
|
||||||
|
sourceSize.height: 80
|
||||||
|
sourceSize.width: 80
|
||||||
|
asynchronous: true
|
||||||
|
width: 60
|
||||||
|
height:60
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.margins: Theme.paddingMedium
|
||||||
|
|
||||||
|
source: model.icon
|
||||||
|
onStatusChanged: {
|
||||||
|
if (status === Image.Error)
|
||||||
|
feeds.unsetIcon(index)
|
||||||
|
}
|
||||||
|
|
||||||
|
visible: settings.displayIcons && model.icon != ''
|
||||||
|
}
|
||||||
|
|
||||||
|
Label {
|
||||||
|
text: model.title
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.left: icon.visible ? icon.right : parent.left
|
||||||
|
anchors.margins: Theme.paddingMedium
|
||||||
|
anchors.right: bubble.left
|
||||||
|
truncationMode: TruncationMode.Elide
|
||||||
|
font.weight: Font.Bold
|
||||||
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
|
color: listItem.highlighted ? Theme.highlightColor : ((model.unreadcount > 0) ? Theme.primaryColor : Theme.secondaryColor)
|
||||||
|
}
|
||||||
|
Label {
|
||||||
|
id: bubble
|
||||||
|
text: model.unreadcount
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.margins: Theme.paddingMedium
|
||||||
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
|
color: listItem.highlighted ? Theme.highlightColor : ((model.unreadcount > 0) ? Theme.primaryColor : Theme.secondaryColor)
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
id: mouseArea
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: listItem.clicked()
|
||||||
|
}
|
||||||
|
|
||||||
|
Component {
|
||||||
|
id: contextMenu
|
||||||
|
ContextMenu {
|
||||||
|
MenuItem {
|
||||||
|
text: qsTr("Mark all read")
|
||||||
|
onClicked: {
|
||||||
|
feeds.catchUp()
|
||||||
|
} }
|
||||||
|
// MenuItem {
|
||||||
|
// text: qsTr("Unsubscribe")
|
||||||
|
// enabled: feedMenu.feedId >= 0
|
||||||
|
// onClicked: {
|
||||||
|
// var ttrss = rootWindow.getTTRSS()
|
||||||
|
// ttrss.unsubscribe(feedMenu.feedId, function() { feeds.update() })
|
||||||
|
// } }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
109
qml/ttrss/sailfish/pages/FeedItemDelegate.qml
Normal file
109
qml/ttrss/sailfish/pages/FeedItemDelegate.qml
Normal file
|
|
@ -0,0 +1,109 @@
|
||||||
|
//Copyright Hauke Schade, 2012-2013
|
||||||
|
//
|
||||||
|
//This file is part of TTRss.
|
||||||
|
//
|
||||||
|
//TTRss is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the
|
||||||
|
//Free Software Foundation, either version 2 of the License, or (at your option) any later version.
|
||||||
|
//TTRss is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
//You should have received a copy of the GNU General Public License along with TTRss (on a Maemo/Meego system there is a copy
|
||||||
|
//in /usr/share/common-licenses. If not, see http://www.gnu.org/licenses/.
|
||||||
|
|
||||||
|
import QtQuick 2.0
|
||||||
|
import Sailfish.Silica 1.0
|
||||||
|
|
||||||
|
ListItem {
|
||||||
|
id: listItem
|
||||||
|
|
||||||
|
signal clicked
|
||||||
|
property alias pressed: mouseArea.pressed
|
||||||
|
|
||||||
|
contentHeight: Theme.itemSizeMedium
|
||||||
|
width: parent.width
|
||||||
|
|
||||||
|
Row {
|
||||||
|
spacing: Theme.paddingMedium
|
||||||
|
anchors.fill: parent
|
||||||
|
anchors.leftMargin: icon.visible ? icon.width + Theme.paddingMedium : 0
|
||||||
|
Image {
|
||||||
|
source: "../../resources/ic_star_enabled.png"
|
||||||
|
visible: model.marked
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
opacity: 0.5
|
||||||
|
}
|
||||||
|
Image {
|
||||||
|
source: "../../resources/ic_rss_enabled.png"
|
||||||
|
visible: model.rss
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
opacity: 0.5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Row {
|
||||||
|
anchors.fill: parent
|
||||||
|
anchors.margins: Theme.paddingMedium
|
||||||
|
spacing: Theme.paddingMedium
|
||||||
|
clip: true
|
||||||
|
|
||||||
|
Image {
|
||||||
|
id: icon
|
||||||
|
sourceSize.height: 80
|
||||||
|
sourceSize.width: 80
|
||||||
|
asynchronous: true
|
||||||
|
width: 60
|
||||||
|
height: 60
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
|
||||||
|
source: feed.isCat ? model.icon : ''
|
||||||
|
|
||||||
|
visible: settings.displayIcons && model.icon != '' && feed.isCat && status == Image.Ready
|
||||||
|
}
|
||||||
|
|
||||||
|
Column {
|
||||||
|
width: parent.width
|
||||||
|
Label {
|
||||||
|
id: mainText
|
||||||
|
width: parent.width
|
||||||
|
text: model.title
|
||||||
|
font.weight: Font.Bold
|
||||||
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
|
color: listItem.highlighted ? Theme.highlightColor : ((model.unreadcount > 0) ? Theme.primaryColor : Theme.secondaryColor)
|
||||||
|
elide: Text.ElideRight
|
||||||
|
truncationMode: TruncationMode.Elide
|
||||||
|
}
|
||||||
|
|
||||||
|
Label {
|
||||||
|
id: subText
|
||||||
|
width: parent.width
|
||||||
|
text: model.subtitle
|
||||||
|
font.weight: Font.Light
|
||||||
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
|
color: listItem.highlighted ? Theme.highlightColor : ((model.unreadcount > 0) ? Theme.primaryColor : Theme.secondaryColor)
|
||||||
|
maximumLineCount: 4
|
||||||
|
elide: Text.ElideRight
|
||||||
|
truncationMode: TruncationMode.Elide
|
||||||
|
wrapMode: Text.WrapAtWordBoundaryOrAnywhere
|
||||||
|
visible: text != ""
|
||||||
|
}
|
||||||
|
// Row {
|
||||||
|
// id: myrow
|
||||||
|
// property variant mymod: model
|
||||||
|
// spacing: constant.paddingMedium
|
||||||
|
|
||||||
|
// Repeater {
|
||||||
|
// model: myrow.mymod.labels
|
||||||
|
// LabelLabel {
|
||||||
|
// label: myrow.mymod.labels.get(index)
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
id: mouseArea
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: listItem.clicked();
|
||||||
|
onPressAndHold: listItem.pressAndHold();
|
||||||
|
}
|
||||||
|
}
|
||||||
91
qml/ttrss/sailfish/pages/FeedItems.qml
Normal file
91
qml/ttrss/sailfish/pages/FeedItems.qml
Normal file
|
|
@ -0,0 +1,91 @@
|
||||||
|
//Copyright Hauke Schade, 2012-2013
|
||||||
|
//
|
||||||
|
//This file is part of TTRss.
|
||||||
|
//
|
||||||
|
//TTRss is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the
|
||||||
|
//Free Software Foundation, either version 2 of the License, or (at your option) any later version.
|
||||||
|
//TTRss is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
//You should have received a copy of the GNU General Public License along with TTRss (on a Maemo/Meego system there is a copy
|
||||||
|
//in /usr/share/common-licenses. If not, see http://www.gnu.org/licenses/.
|
||||||
|
|
||||||
|
import QtQuick 2.0
|
||||||
|
import Sailfish.Silica 1.0
|
||||||
|
|
||||||
|
Page {
|
||||||
|
id: feeditemsPage
|
||||||
|
property variant feed
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
feedItems.feed = feeditemsPage.feed
|
||||||
|
feedItems.hasMoreItems = false
|
||||||
|
feedItems.continuation = 0
|
||||||
|
feedItems.clear()
|
||||||
|
feedItems.update()
|
||||||
|
}
|
||||||
|
|
||||||
|
SilicaListView {
|
||||||
|
id: listView
|
||||||
|
anchors.fill: parent
|
||||||
|
model: feedItems
|
||||||
|
|
||||||
|
PullDownMenu {
|
||||||
|
AboutItem {}
|
||||||
|
SettingsItem {}
|
||||||
|
ToggleShowAllItem {
|
||||||
|
onUpdateView: {
|
||||||
|
feedItems.continuation = 0
|
||||||
|
feedItems.hasMoreItems = false
|
||||||
|
feedItems.clear()
|
||||||
|
feedItems.update()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
MenuItem {
|
||||||
|
text: qsTr('Mark all read')
|
||||||
|
onClicked: {
|
||||||
|
feedItems.catchUp()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
section.delegate: SectionHeader {}
|
||||||
|
section.property: "date"
|
||||||
|
|
||||||
|
delegate: FeedItemDelegate {
|
||||||
|
onClicked: {
|
||||||
|
feedItems.selectedIndex = index
|
||||||
|
pageStack.push("FeedItem.qml", { isCat: feed.isCat })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
footer: Button {
|
||||||
|
id: foot
|
||||||
|
text: qsTr("Load more")
|
||||||
|
visible: settings.feeditemsOrder === 0 && feedItems.hasMoreItems
|
||||||
|
height: settings.feeditemsOrder === 0 && feedItems.hasMoreItems ? 51 : 0
|
||||||
|
width: parent.width
|
||||||
|
onClicked: feedItems.update()
|
||||||
|
}
|
||||||
|
|
||||||
|
header: PageHeader {
|
||||||
|
title: feed.title
|
||||||
|
}
|
||||||
|
ViewPlaceholder {
|
||||||
|
enabled: listView.count == 0
|
||||||
|
text: network.loading ?
|
||||||
|
qsTr("Loading") :
|
||||||
|
rootWindow.showAll ? qsTr("No items in feed") : qsTr("No unread items in feed")
|
||||||
|
}
|
||||||
|
ScrollDecorator {
|
||||||
|
flickable: listView
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function showFeed(feedModel) {
|
||||||
|
if(feedModel != null) {
|
||||||
|
pageStack.push("FeedItems.qml", {
|
||||||
|
feed: feedModel
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
68
qml/ttrss/sailfish/pages/Feeds.qml
Normal file
68
qml/ttrss/sailfish/pages/Feeds.qml
Normal file
|
|
@ -0,0 +1,68 @@
|
||||||
|
//Copyright Hauke Schade, 2012-2013
|
||||||
|
//
|
||||||
|
//This file is part of TTRss.
|
||||||
|
//
|
||||||
|
//TTRss is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the
|
||||||
|
//Free Software Foundation, either version 2 of the License, or (at your option) any later version.
|
||||||
|
//TTRss is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
//You should have received a copy of the GNU General Public License along with TTRss (on a Maemo/Meego system there is a copy
|
||||||
|
//in /usr/share/common-licenses. If not, see http://www.gnu.org/licenses/.
|
||||||
|
|
||||||
|
import QtQuick 2.0
|
||||||
|
import Sailfish.Silica 1.0
|
||||||
|
|
||||||
|
Page {
|
||||||
|
id: feedsPage
|
||||||
|
property variant category
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
feeds.category = feedsPage.category
|
||||||
|
feeds.clear()
|
||||||
|
feeds.update()
|
||||||
|
}
|
||||||
|
|
||||||
|
SilicaListView {
|
||||||
|
id: listView
|
||||||
|
anchors.fill: parent
|
||||||
|
model: feeds
|
||||||
|
|
||||||
|
PullDownMenu {
|
||||||
|
AboutItem {}
|
||||||
|
SettingsItem {}
|
||||||
|
ToggleShowAllItem {
|
||||||
|
onUpdateView: {
|
||||||
|
feeds.update()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
delegate: FeedDelegate {
|
||||||
|
onClicked: {
|
||||||
|
feeds.selectedIndex = index
|
||||||
|
showFeed(model)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
header: PageHeader {
|
||||||
|
title: category.title
|
||||||
|
}
|
||||||
|
ViewPlaceholder {
|
||||||
|
enabled: listView.count == 0
|
||||||
|
text: network.loading ?
|
||||||
|
qsTr("Loading") :
|
||||||
|
rootWindow.showAll ? qsTr("No feeds in category") : qsTr("Category has no unread items")
|
||||||
|
}
|
||||||
|
ScrollDecorator {
|
||||||
|
flickable: listView
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function showFeed(feedModel) {
|
||||||
|
if(feedModel != null) {
|
||||||
|
pageStack.push("FeedItems.qml", {
|
||||||
|
feed: feedModel
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
204
qml/ttrss/sailfish/pages/MainPage.qml
Normal file
204
qml/ttrss/sailfish/pages/MainPage.qml
Normal file
|
|
@ -0,0 +1,204 @@
|
||||||
|
//Copyright Hauke Schade, 2012-2013
|
||||||
|
//
|
||||||
|
//This file is part of TTRss.
|
||||||
|
//
|
||||||
|
//TTRss is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the
|
||||||
|
//Free Software Foundation, either version 2 of the License, or (at your option) any later version.
|
||||||
|
//TTRss is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
//You should have received a copy of the GNU General Public License along with TTRss (on a Maemo/Meego system there is a copy
|
||||||
|
//in /usr/share/common-licenses. If not, see http://www.gnu.org/licenses/.
|
||||||
|
|
||||||
|
import QtQuick 2.0
|
||||||
|
import Sailfish.Silica 1.0
|
||||||
|
|
||||||
|
Page {
|
||||||
|
SilicaFlickable {
|
||||||
|
contentHeight: contentcontainer.height
|
||||||
|
contentWidth: parent.width
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
PullDownMenu {
|
||||||
|
AboutItem {}
|
||||||
|
SettingsItem {}
|
||||||
|
MenuItem {
|
||||||
|
text: qsTr("No Account Yet?")
|
||||||
|
onClicked: {
|
||||||
|
rootWindow.openFile(Qt.openUrlExternally("http://tt-rss.org/redmine/projects/tt-rss/wiki"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
width: parent.width
|
||||||
|
anchors.margins: Theme.paddingLarge
|
||||||
|
Column {
|
||||||
|
id: contentcontainer
|
||||||
|
width: 350
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
|
||||||
|
Image {
|
||||||
|
width: 256
|
||||||
|
height: 256
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
source: "../../resources/ttrss256.png"
|
||||||
|
|
||||||
|
anchors.bottomMargin: Theme.paddingLarge
|
||||||
|
}
|
||||||
|
|
||||||
|
Label {
|
||||||
|
id: serverLabel
|
||||||
|
text: qsTr("Server:")
|
||||||
|
width: parent.width
|
||||||
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
|
}
|
||||||
|
TextField {
|
||||||
|
id: server
|
||||||
|
text: ""
|
||||||
|
width: parent.width
|
||||||
|
// enabled: !network.loading
|
||||||
|
}
|
||||||
|
Label {
|
||||||
|
id: usernameLabel
|
||||||
|
text: qsTr("Username:")
|
||||||
|
width: parent.width
|
||||||
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
|
}
|
||||||
|
TextField {
|
||||||
|
id: username
|
||||||
|
text: ""
|
||||||
|
width: parent.width
|
||||||
|
// enabled: !network.loading
|
||||||
|
}
|
||||||
|
Label {
|
||||||
|
id: passwordLabel
|
||||||
|
text: qsTr("Password:")
|
||||||
|
width: parent.width
|
||||||
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
|
}
|
||||||
|
TextField {
|
||||||
|
id: password
|
||||||
|
echoMode: TextInput.Password
|
||||||
|
width: parent.width
|
||||||
|
// enabled: !network.loading
|
||||||
|
}
|
||||||
|
Button {
|
||||||
|
id: loginButton
|
||||||
|
text: qsTr("Login")
|
||||||
|
width: parent.width
|
||||||
|
onClicked: {
|
||||||
|
// check the servername for httpauth data and set/extract those
|
||||||
|
var httpauthregex = /(https?:\/\/)?(\w+):(\w+)@(\w.+)/
|
||||||
|
var servername = server.text
|
||||||
|
var regexres = servername.match(httpauthregex)
|
||||||
|
if (regexres !== null) {
|
||||||
|
server.text = (regexres[1]?regexres[1]:'') + regexres[4]
|
||||||
|
settings.httpauthusername = regexres[2]
|
||||||
|
settings.httpauthpassword = regexres[3]
|
||||||
|
}
|
||||||
|
|
||||||
|
settings.servername = server.text
|
||||||
|
settings.username = username.text
|
||||||
|
settings.password = password.text
|
||||||
|
|
||||||
|
startLogin();
|
||||||
|
}
|
||||||
|
// enabled: !network.loading
|
||||||
|
}
|
||||||
|
Button {
|
||||||
|
id: clearButton
|
||||||
|
text: qsTr("Clear")
|
||||||
|
width: parent.width
|
||||||
|
onClicked: {
|
||||||
|
server.text = ''
|
||||||
|
username.text = ''
|
||||||
|
password.text = ''
|
||||||
|
|
||||||
|
settings.httpauthusername = ''
|
||||||
|
settings.httpauthpassword = ''
|
||||||
|
settings.servername = server.text
|
||||||
|
settings.username = username.text
|
||||||
|
settings.password = password.text
|
||||||
|
}
|
||||||
|
// enabled: !network.loading
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BusyIndicator {
|
||||||
|
id: busyindicator1
|
||||||
|
visible: false //network.loading
|
||||||
|
running: visible
|
||||||
|
anchors {
|
||||||
|
horizontalCenter: parent.horizontalCenter
|
||||||
|
verticalCenter: parent.verticalCenter
|
||||||
|
}
|
||||||
|
size: BusyIndicatorSize.Large
|
||||||
|
}
|
||||||
|
|
||||||
|
function enableLoginBox(focus) {
|
||||||
|
if(focus) {
|
||||||
|
password.forceActiveFocus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function startLogin() {
|
||||||
|
var ttrss = rootWindow.getTTRSS();
|
||||||
|
ttrss.clearState();
|
||||||
|
ttrss.setLoginDetails(username.text, password.text, server.text);
|
||||||
|
if (settings.httpauthusername != '' && settings.httpauthpassword != '') {
|
||||||
|
ttrss.setHttpAuthInfo(settings.httpauthusername, settings.httpauthpassword);
|
||||||
|
console.log('doing http basic auth with username ' + settings.httpauthusername)
|
||||||
|
}
|
||||||
|
ttrss.login(loginSuccessfull);
|
||||||
|
}
|
||||||
|
|
||||||
|
function loginSuccessfull(retcode, text) {
|
||||||
|
if(retcode) {
|
||||||
|
//login failed....don't autlogin
|
||||||
|
settings.autologin = false
|
||||||
|
|
||||||
|
//Let the user know
|
||||||
|
// loginErrorDialog.text = text;
|
||||||
|
// loginErrorDialog.open();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
//Login succeeded, auto login next Time
|
||||||
|
settings.autologin = true
|
||||||
|
rootWindow.getTTRSS().updateConfig(configSuccessfull);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function configSuccessfull(retcode, text) {
|
||||||
|
if(retcode) {
|
||||||
|
//Let the user know
|
||||||
|
// loginErrorDialog.text = text;
|
||||||
|
// loginErrorDialog.open();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
categories.update()
|
||||||
|
//Now show the categories View
|
||||||
|
if (settings.useAllFeedsOnStartup) {
|
||||||
|
var ttrss = rootWindow.getTTRSS()
|
||||||
|
pageStack.replace("Feeds.qml", {
|
||||||
|
category: {
|
||||||
|
categoryId: ttrss.constants['categories']['ALL'],
|
||||||
|
title: constant.allFeeds,
|
||||||
|
unreadcount: 0
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
else
|
||||||
|
pageStack.replace(Qt.resolvedUrl('Categories.qml'))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
server.text = settings.servername
|
||||||
|
username.text = settings.username
|
||||||
|
password.text = settings.password
|
||||||
|
|
||||||
|
if(settings.autologin && settings.useAutologin)
|
||||||
|
startLogin();
|
||||||
|
}
|
||||||
|
}
|
||||||
20
qml/ttrss/sailfish/pages/SettingsItem.qml
Normal file
20
qml/ttrss/sailfish/pages/SettingsItem.qml
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
//Copyright Hauke Schade, 2012-2013
|
||||||
|
//
|
||||||
|
//This file is part of TTRss.
|
||||||
|
//
|
||||||
|
//TTRss is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the
|
||||||
|
//Free Software Foundation, either version 2 of the License, or (at your option) any later version.
|
||||||
|
//TTRss is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
//You should have received a copy of the GNU General Public License along with TTRss (on a Maemo/Meego system there is a copy
|
||||||
|
//in /usr/share/common-licenses. If not, see http://www.gnu.org/licenses/.
|
||||||
|
|
||||||
|
import QtQuick 2.0
|
||||||
|
import Sailfish.Silica 1.0
|
||||||
|
|
||||||
|
MenuItem {
|
||||||
|
text: qsTr("Settings")
|
||||||
|
onClicked: {
|
||||||
|
pageStack.push(Qt.resolvedUrl("Settings.qml"));
|
||||||
|
}
|
||||||
|
}
|
||||||
45
qml/ttrss/sailfish/pages/ToggleShowAllItem.qml
Normal file
45
qml/ttrss/sailfish/pages/ToggleShowAllItem.qml
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
//Copyright Hauke Schade, 2012-2013
|
||||||
|
//
|
||||||
|
//This file is part of TTRss.
|
||||||
|
//
|
||||||
|
//TTRss is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the
|
||||||
|
//Free Software Foundation, either version 2 of the License, or (at your option) any later version.
|
||||||
|
//TTRss is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
//You should have received a copy of the GNU General Public License along with TTRss (on a Maemo/Meego system there is a copy
|
||||||
|
//in /usr/share/common-licenses. If not, see http://www.gnu.org/licenses/.
|
||||||
|
|
||||||
|
import QtQuick 2.0
|
||||||
|
import Sailfish.Silica 1.0
|
||||||
|
|
||||||
|
MenuItem {
|
||||||
|
property bool showAll
|
||||||
|
property bool notInitialAssignment: false
|
||||||
|
signal updateView(bool showAll)
|
||||||
|
|
||||||
|
text: showAll ? qsTr("Show Unread Only") : qsTr("Show All")
|
||||||
|
onClicked: {
|
||||||
|
var ttrss = rootWindow.getTTRSS()
|
||||||
|
ttrss.setShowAll(!showAll)
|
||||||
|
showAll = !showAll
|
||||||
|
}
|
||||||
|
|
||||||
|
onShowAllChanged: {
|
||||||
|
// send the signal only if this is not the initial assignment
|
||||||
|
if (notInitialAssignment)
|
||||||
|
updateView(showAll)
|
||||||
|
}
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
var ttrss = rootWindow.getTTRSS()
|
||||||
|
showAll = ttrss.getShowAll()
|
||||||
|
notInitialAssignment = true
|
||||||
|
}
|
||||||
|
|
||||||
|
onVisibleChanged: {
|
||||||
|
if (visible && notInitialAssignment) {
|
||||||
|
var ttrss = rootWindow.getTTRSS()
|
||||||
|
showAll = ttrss.getShowAll()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# checksum 0x5b42 version 0x70013
|
# checksum 0xf003 version 0x90018
|
||||||
# This file was generated by the Qt Quick Application wizard of Qt Creator.
|
# This file was generated by the Qt Quick Application wizard of Qt Creator.
|
||||||
# The code below adds the QmlApplicationViewer to the project and handles the
|
# The code below adds the QmlApplicationViewer to the project and handles the
|
||||||
# activation of QML debugging.
|
# activation of QML debugging.
|
||||||
|
|
@ -22,7 +22,7 @@ contains(CONFIG,qdeclarative-boostable):contains(MEEGO_EDITION,harmattan) {
|
||||||
DEFINES += HARMATTAN_BOOSTER
|
DEFINES += HARMATTAN_BOOSTER
|
||||||
}
|
}
|
||||||
# This file was generated by an application wizard of Qt Creator.
|
# This file was generated by an application wizard of Qt Creator.
|
||||||
# The code below handles deployment to Symbian and Maemo, aswell as copying
|
# The code below handles deployment to Android and Maemo, aswell as copying
|
||||||
# of the application data to shadow build directories on desktop.
|
# of the application data to shadow build directories on desktop.
|
||||||
# It is recommended not to modify this file, since newer versions of Qt Creator
|
# It is recommended not to modify this file, since newer versions of Qt Creator
|
||||||
# may offer an updated version of it.
|
# may offer an updated version of it.
|
||||||
|
|
@ -30,7 +30,11 @@ contains(CONFIG,qdeclarative-boostable):contains(MEEGO_EDITION,harmattan) {
|
||||||
defineTest(qtcAddDeployment) {
|
defineTest(qtcAddDeployment) {
|
||||||
for(deploymentfolder, DEPLOYMENTFOLDERS) {
|
for(deploymentfolder, DEPLOYMENTFOLDERS) {
|
||||||
item = item$${deploymentfolder}
|
item = item$${deploymentfolder}
|
||||||
itemsources = $${item}.sources
|
greaterThan(QT_MAJOR_VERSION, 4) {
|
||||||
|
itemsources = $${item}.files
|
||||||
|
} else {
|
||||||
|
itemsources = $${item}.sources
|
||||||
|
}
|
||||||
$$itemsources = $$eval($${deploymentfolder}.source)
|
$$itemsources = $$eval($${deploymentfolder}.source)
|
||||||
itempath = $${item}.path
|
itempath = $${item}.path
|
||||||
$$itempath= $$eval($${deploymentfolder}.target)
|
$$itempath= $$eval($${deploymentfolder}.target)
|
||||||
|
|
@ -41,9 +45,44 @@ for(deploymentfolder, DEPLOYMENTFOLDERS) {
|
||||||
|
|
||||||
MAINPROFILEPWD = $$PWD
|
MAINPROFILEPWD = $$PWD
|
||||||
|
|
||||||
symbian {
|
android-no-sdk {
|
||||||
isEmpty(ICON):exists($${TARGET}.svg):ICON = $${TARGET}.svg
|
for(deploymentfolder, DEPLOYMENTFOLDERS) {
|
||||||
isEmpty(TARGET.EPOCHEAPSIZE):TARGET.EPOCHEAPSIZE = 0x20000 0x2000000
|
item = item$${deploymentfolder}
|
||||||
|
itemfiles = $${item}.files
|
||||||
|
$$itemfiles = $$eval($${deploymentfolder}.source)
|
||||||
|
itempath = $${item}.path
|
||||||
|
$$itempath = /data/user/qt/$$eval($${deploymentfolder}.target)
|
||||||
|
export($$itemfiles)
|
||||||
|
export($$itempath)
|
||||||
|
INSTALLS += $$item
|
||||||
|
}
|
||||||
|
|
||||||
|
target.path = /data/user/qt
|
||||||
|
|
||||||
|
export(target.path)
|
||||||
|
INSTALLS += target
|
||||||
|
} else:android {
|
||||||
|
for(deploymentfolder, DEPLOYMENTFOLDERS) {
|
||||||
|
item = item$${deploymentfolder}
|
||||||
|
itemfiles = $${item}.files
|
||||||
|
$$itemfiles = $$eval($${deploymentfolder}.source)
|
||||||
|
itempath = $${item}.path
|
||||||
|
$$itempath = /assets/$$eval($${deploymentfolder}.target)
|
||||||
|
export($$itemfiles)
|
||||||
|
export($$itempath)
|
||||||
|
INSTALLS += $$item
|
||||||
|
}
|
||||||
|
|
||||||
|
x86 {
|
||||||
|
target.path = /libs/x86
|
||||||
|
} else: armeabi-v7a {
|
||||||
|
target.path = /libs/armeabi-v7a
|
||||||
|
} else {
|
||||||
|
target.path = /libs/armeabi
|
||||||
|
}
|
||||||
|
|
||||||
|
export(target.path)
|
||||||
|
INSTALLS += target
|
||||||
} else:win32 {
|
} else:win32 {
|
||||||
copyCommand =
|
copyCommand =
|
||||||
for(deploymentfolder, DEPLOYMENTFOLDERS) {
|
for(deploymentfolder, DEPLOYMENTFOLDERS) {
|
||||||
|
|
@ -113,7 +152,11 @@ symbian {
|
||||||
QMAKE_EXTRA_TARGETS += first copydeploymentfolders
|
QMAKE_EXTRA_TARGETS += first copydeploymentfolders
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
installPrefix = /opt/$${TARGET}
|
!isEmpty(target.path) {
|
||||||
|
installPrefix = $${target.path}
|
||||||
|
} else {
|
||||||
|
installPrefix = /opt/$${TARGET}
|
||||||
|
}
|
||||||
for(deploymentfolder, DEPLOYMENTFOLDERS) {
|
for(deploymentfolder, DEPLOYMENTFOLDERS) {
|
||||||
item = item$${deploymentfolder}
|
item = item$${deploymentfolder}
|
||||||
itemfiles = $${item}.files
|
itemfiles = $${item}.files
|
||||||
|
|
@ -133,16 +176,16 @@ symbian {
|
||||||
INSTALLS += icon desktopfile
|
INSTALLS += icon desktopfile
|
||||||
}
|
}
|
||||||
|
|
||||||
target.path = $${installPrefix}/bin
|
isEmpty(target.path) {
|
||||||
export(target.path)
|
target.path = $${installPrefix}/bin
|
||||||
|
export(target.path)
|
||||||
|
}
|
||||||
INSTALLS += target
|
INSTALLS += target
|
||||||
}
|
}
|
||||||
|
|
||||||
export (ICON)
|
export (ICON)
|
||||||
export (INSTALLS)
|
export (INSTALLS)
|
||||||
export (DEPLOYMENT)
|
export (DEPLOYMENT)
|
||||||
export (TARGET.EPOCHEAPSIZE)
|
|
||||||
export (TARGET.CAPABILITY)
|
|
||||||
export (LIBS)
|
export (LIBS)
|
||||||
export (QMAKE_EXTRA_TARGETS)
|
export (QMAKE_EXTRA_TARGETS)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
75
rpm/harbour-ttrss.spec
Normal file
75
rpm/harbour-ttrss.spec
Normal file
|
|
@ -0,0 +1,75 @@
|
||||||
|
#
|
||||||
|
# Do NOT Edit the Auto-generated Part!
|
||||||
|
# Generated by: spectacle version 0.27
|
||||||
|
#
|
||||||
|
|
||||||
|
Name: harbour-ttrss
|
||||||
|
|
||||||
|
# >> 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: The Tiny Tiny RSS Reader for Sailfish
|
||||||
|
Version: 0.3.4
|
||||||
|
Release: 1
|
||||||
|
Group: Qt/Qt
|
||||||
|
License: LICENSE
|
||||||
|
URL: http://example.org/
|
||||||
|
Source0: %{name}-%{version}.tar.bz2
|
||||||
|
Source100: harbour-ttrss.yaml
|
||||||
|
Requires: sailfishsilica-qt5 >= 0.10.9
|
||||||
|
BuildRequires: pkgconfig(Qt5Quick)
|
||||||
|
BuildRequires: pkgconfig(Qt5Qml)
|
||||||
|
BuildRequires: pkgconfig(Qt5Core)
|
||||||
|
BuildRequires: pkgconfig(sailfishapp) >= 0.0.10
|
||||||
|
BuildRequires: desktop-file-utils
|
||||||
|
|
||||||
|
%description
|
||||||
|
ttrss is a Tiny Tiny RSS Reader App for the Nokia N9 smart phone, written using Qt/QML. It uses the Tiny Tiny RSS JSON API.
|
||||||
|
|
||||||
|
%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,-)
|
||||||
|
/usr/share/harbour-ttrss/qml
|
||||||
|
%{_bindir}
|
||||||
|
%{_datadir}/%{name}/qml
|
||||||
|
%{_datadir}/applications/%{name}.desktop
|
||||||
|
%{_datadir}/icons/hicolor/86x86/apps/%{name}.png
|
||||||
|
/usr/bin
|
||||||
|
/usr/share/harbour-ttrss
|
||||||
|
/usr/share/applications
|
||||||
|
/usr/share/icons/hicolor/86x86/apps
|
||||||
|
# >> files
|
||||||
|
# << files
|
||||||
31
rpm/harbour-ttrss.yaml
Normal file
31
rpm/harbour-ttrss.yaml
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
Name: harbour-ttrss
|
||||||
|
Summary: The Tiny Tiny RSS Reader for Sailfish
|
||||||
|
Version: 0.3.4
|
||||||
|
Release: 1
|
||||||
|
Group: Qt/Qt
|
||||||
|
URL: http://example.org/
|
||||||
|
License: LICENSE
|
||||||
|
Sources:
|
||||||
|
- '%{name}-%{version}.tar.bz2'
|
||||||
|
Description: |-
|
||||||
|
ttrss is a Tiny Tiny RSS Reader App for the Nokia N9 smart phone, written using Qt/QML. It uses the Tiny Tiny RSS JSON API.
|
||||||
|
Configure: none
|
||||||
|
Builder: qtc5
|
||||||
|
PkgConfigBR:
|
||||||
|
- Qt5Quick
|
||||||
|
- Qt5Qml
|
||||||
|
- Qt5Core
|
||||||
|
- sailfishapp >= 0.0.10
|
||||||
|
Requires:
|
||||||
|
- sailfishsilica-qt5 >= 0.10.9
|
||||||
|
Files:
|
||||||
|
- /usr/share/harbour-ttrss/qml
|
||||||
|
- '%{_bindir}'
|
||||||
|
- '%{_datadir}/%{name}/qml'
|
||||||
|
- '%{_datadir}/applications/%{name}.desktop'
|
||||||
|
- '%{_datadir}/icons/hicolor/86x86/apps/%{name}.png'
|
||||||
|
- /usr/bin
|
||||||
|
- /usr/share/harbour-ttrss
|
||||||
|
- /usr/share/applications
|
||||||
|
- /usr/share/icons/hicolor/86x86/apps
|
||||||
|
PkgBR: []
|
||||||
Loading…
Add table
Reference in a new issue