Added callback to toggleRead()

Regards #119
This commit is contained in:
Michael Käufl 2014-10-30 15:14:55 +01:00
parent 8ae36d16dc
commit 6ede751916
3 changed files with 41 additions and 20 deletions

View file

@ -227,12 +227,18 @@ Page {
feedItems.togglePublished()
rss = !rss
} }
ToolIcon {
iconSource: "../resources/ic_"+(unread?"unread":"read")+".png"
iconSource: "../resources/ic_"
+ (unread ? "unread" : "read") + ".png"
onClicked: {
feedItems.toggleRead()
unread = !unread
} }
feedItems.toggleRead(function(successful, errorMessage, state) {
unread = state
// TODO make use of errorMessage
})
}
}
ToolIcon {
iconId: "toolbar-next"
visible: nextId !== false

View file

@ -173,22 +173,30 @@ ListModel {
})
}
function toggleRead() {
/**
* Toggle unread/read of currently selected item.
* @param {function} A callback function with parameters boolean (indicating
* success), string (an optional error message) and boolean (true if
* unread; false if read).
*/
function toggleRead(callback) {
var ttrss = rootWindow.getTTRSS()
var sel = root.selectedIndex
var m = getSelectedItem()
ttrss.updateFeedUnread(m.id, !m.unread, function(successful, errorMessage) {
var index = root.selectedIndex
var item = getSelectedItem()
var newState = !item.unread
ttrss.updateFeedUnread(item.id, newState, function(successful,
errorMessage) {
if (successful) {
var newState = !m.unread
root.setProperty(sel, "unread", newState)
if (!rootWindow.showAll) {
root.continuation += newState ? +1 : -1
}
root.itemUnreadChanged(m)
root.setProperty(index, "unread", newState)
root.itemUnreadChanged(item)
}
// TODO Add a callback to toogleRead() which can be used to display
// errorMessage.
callback(successful, errorMessage, item.unread)
})
}

View file

@ -205,15 +205,20 @@ Page {
marked = !marked
}
}
IconButton {
id: unreadSwitch
icon.source: "qrc:///images/ic_"+(unread?"unread":"read")+".png"
//checked: unread
icon.source: "qrc:///images/ic_"
+ (unread ? "unread" : "read") + ".png"
onClicked: {
feedItemModel.toggleRead()
unread = !unread
feedItemModel.toggleRead(function(successful, errorMessage,
state) {
unread = state
// TODO make use of errorMessage
})
}
}
IconButton {
icon.source: "image://theme/icon-m-next"
enabled: nextId !== false
@ -315,7 +320,6 @@ Page {
marked = data.marked
//markedSwitch.checked = marked
unread = data.unread
//unreadSwitch.checked = unread
rss = data.rss
//rssSwitch.checked = rss
@ -323,8 +327,11 @@ Page {
nextId = feedItemModel.hasNext()
if (settings.autoMarkRead && unread) {
feedItemModel.toggleRead()
unread = !unread
feedItemModel.toggleRead(function(successful, errorMessage,
state) {
unread = state
// TODO make use of errorMessage
})
}
}
}