first steps to mark read
This commit is contained in:
parent
74d5236408
commit
ddb54f398c
8 changed files with 27 additions and 4 deletions
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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")
|
||||||
|
|
1
main.qml
1
main.qml
|
@ -21,6 +21,7 @@ ApplicationWindow {
|
||||||
id: menu
|
id: menu
|
||||||
server: server
|
server: server
|
||||||
sidebar: sidebar
|
sidebar: sidebar
|
||||||
|
content: content
|
||||||
}
|
}
|
||||||
|
|
||||||
function loggedIn() {
|
function loggedIn() {
|
||||||
|
|
5
post.cpp
5
post.cpp
|
@ -34,3 +34,8 @@ Post::~Post()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Post::setRead(bool r)
|
||||||
|
{
|
||||||
|
mRead = r;
|
||||||
|
emit readChanged(mRead);
|
||||||
|
}
|
||||||
|
|
5
post.h
5
post.h
|
@ -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:
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue