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 { Label {
text: title text: title
color: read ? "gray" : this.color color: read ? "gray" : "black"
font.pointSize: headLinefontSize font.pointSize: headLinefontSize
textFormat: Text.RichText textFormat: Text.RichText
wrapMode: Text.WrapAtWordBoundaryOrAnywhere wrapMode: Text.WrapAtWordBoundaryOrAnywhere

View file

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

View file

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

View file

@ -21,6 +21,7 @@ ApplicationWindow {
id: menu id: menu
server: server server: server
sidebar: sidebar sidebar: sidebar
content: content
} }
function loggedIn() { 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 content READ content CONSTANT)
Q_PROPERTY(QString excerpt READ excerpt CONSTANT) Q_PROPERTY(QString excerpt READ excerpt CONSTANT)
Q_PROPERTY(bool starred READ starred NOTIFY starredChanged) 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) Q_PROPERTY(QString jsonString READ jsonString CONSTANT)
public: public:
@ -36,7 +36,8 @@ public:
QString content() const { return mContent; } QString content() const { return mContent; }
QString excerpt() const { return mExcerpt; } QString excerpt() const { return mExcerpt; }
bool starred() const { return mStarred; } bool starred() const { return mStarred; }
bool read() const { return mRead; } bool read() { return mRead; }
void setRead(bool r);
QString jsonString() const { return mJsonString; } QString jsonString() const { return mJsonString; }
signals: signals:

View file

@ -76,6 +76,7 @@ void TinyTinyRSS::reply()
{ {
QJsonObject postJson = posts.at(i).toObject(); QJsonObject postJson = posts.at(i).toObject();
Post *post = new Post(postJson, this); Post *post = new Post(postJson, this);
connect(post, SIGNAL(readChanged(bool)), this, SLOT(onPostReadChanged(bool)));
mPosts.append(post); mPosts.append(post);
} }
@ -90,6 +91,11 @@ void TinyTinyRSS::reply()
} }
} }
void TinyTinyRSS::onPostReadChanged(bool r)
{
qDebug() << r;
}
QQmlListProperty<Post> TinyTinyRSS::posts() QQmlListProperty<Post> TinyTinyRSS::posts()
{ {
return QQmlListProperty<Post>(this, mPosts); 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 initialize(const QString serverUrl, const QString sessionId);
Q_INVOKABLE void reload(); Q_INVOKABLE void reload();
QQmlListProperty<Post> posts(); QQmlListProperty<Post> posts();
int postsCount() const; int postsCount() const;
Post *post(int) const; Post *post(int) const;
@ -30,6 +31,7 @@ signals:
private slots: private slots:
void reply(); void reply();
void onPostReadChanged(bool);
private: private:
void doOperation(QString operation, QVariantMap opts); void doOperation(QString operation, QVariantMap opts);