first steps to mark read

This commit is contained in:
Jeena 2015-02-09 00:37:31 +01:00
parent 74d5236408
commit ddb54f398c
8 changed files with 27 additions and 4 deletions

View file

@ -47,7 +47,7 @@ Component {
}
Label {
text: title
color: read ? "gray" : this.color
color: read ? "gray" : "black"
font.pointSize: headLinefontSize
textFormat: Text.RichText
wrapMode: Text.WrapAtWordBoundaryOrAnywhere

View file

@ -9,6 +9,7 @@ ScrollView {
property Server server
property Content content
property Post previousPost
style: ScrollViewStyle {
transientScrollBars: true
@ -48,8 +49,13 @@ ScrollView {
}
onCurrentItemChanged: {
if(previousPost) {
previousPost.read = true;
}
item.content.post = server.posts[currentIndex]
content.flickableItem.contentY = 0
previousPost = item.content.post
}
}
}

View file

@ -5,6 +5,7 @@ MenuBar {
property bool loggedIn: false
property Server server
property Sidebar sidebar
property Content content
Menu {
title: qsTr("File")
@ -45,7 +46,8 @@ MenuBar {
MenuItem {
text: qsTr("Set &Unread")
shortcut: "U"
enabled: false
enabled: true
onTriggered: content.post.read = false
}
MenuItem {
text: qsTr("Next")

View file

@ -21,6 +21,7 @@ ApplicationWindow {
id: menu
server: server
sidebar: sidebar
content: content
}
function loggedIn() {

View file

@ -34,3 +34,8 @@ Post::~Post()
}
void Post::setRead(bool r)
{
mRead = r;
emit readChanged(mRead);
}

5
post.h
View file

@ -19,7 +19,7 @@ class Post : public QObject
Q_PROPERTY(QString content READ content CONSTANT)
Q_PROPERTY(QString excerpt READ excerpt CONSTANT)
Q_PROPERTY(bool starred READ starred NOTIFY starredChanged)
Q_PROPERTY(bool read READ read NOTIFY readChanged)
Q_PROPERTY(bool read READ read WRITE setRead NOTIFY readChanged)
Q_PROPERTY(QString jsonString READ jsonString CONSTANT)
public:
@ -36,7 +36,8 @@ public:
QString content() const { return mContent; }
QString excerpt() const { return mExcerpt; }
bool starred() const { return mStarred; }
bool read() const { return mRead; }
bool read() { return mRead; }
void setRead(bool r);
QString jsonString() const { return mJsonString; }
signals:

View file

@ -76,6 +76,7 @@ void TinyTinyRSS::reply()
{
QJsonObject postJson = posts.at(i).toObject();
Post *post = new Post(postJson, this);
connect(post, SIGNAL(readChanged(bool)), this, SLOT(onPostReadChanged(bool)));
mPosts.append(post);
}
@ -90,6 +91,11 @@ void TinyTinyRSS::reply()
}
}
void TinyTinyRSS::onPostReadChanged(bool r)
{
qDebug() << r;
}
QQmlListProperty<Post> TinyTinyRSS::posts()
{
return QQmlListProperty<Post>(this, mPosts);

View file

@ -21,6 +21,7 @@ public:
Q_INVOKABLE void initialize(const QString serverUrl, const QString sessionId);
Q_INVOKABLE void reload();
QQmlListProperty<Post> posts();
int postsCount() const;
Post *post(int) const;
@ -30,6 +31,7 @@ signals:
private slots:
void reply();
void onPostReadChanged(bool);
private:
void doOperation(QString operation, QVariantMap opts);