Merge branch 'callbacks' of git://github.com/michael-k/ttrss into michael-k-callbacks
This commit is contained in:
commit
c591811c33
3 changed files with 110 additions and 53 deletions
|
|
@ -215,24 +215,42 @@ Page {
|
|||
feedItems.selectPrevious()
|
||||
showFeedItem()
|
||||
} }
|
||||
|
||||
ToolIcon {
|
||||
iconSource: "../resources/ic_star_"+(marked?"enabled":"disabled")+".png"
|
||||
iconSource: "../resources/ic_star_"
|
||||
+ (marked ? "enabled" : "disabled") + ".png"
|
||||
onClicked: {
|
||||
feedItems.toggleStar()
|
||||
marked = !marked
|
||||
} }
|
||||
feedItems.toggleStar(function(successful, errorMessage,
|
||||
state) {
|
||||
marked = state
|
||||
// TODO make use of errorMessage
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
ToolIcon {
|
||||
iconSource: "../resources/ic_rss_"+(rss?"enabled":"disabled")+".png"
|
||||
iconSource: "../resources/ic_rss_"
|
||||
+ (rss ? "enabled" : "disabled") + ".png"
|
||||
onClicked: {
|
||||
feedItems.togglePublished()
|
||||
rss = !rss
|
||||
} }
|
||||
feedItems.togglePublished(function(successful, errorMessage,
|
||||
state) {
|
||||
rss = state
|
||||
// TODO make use of errorMessage
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
|
|
|
|||
|
|
@ -173,52 +173,76 @@ 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)
|
||||
})
|
||||
}
|
||||
|
||||
function toggleStar() {
|
||||
/**
|
||||
* Toggle starred/unstarred of currently selected item.
|
||||
* @param {function} A callback function with parameters boolean (indicating
|
||||
* success), string (an optional error message) and boolean (true if
|
||||
* starred; false if unstarred).
|
||||
*/
|
||||
function toggleStar(callback) {
|
||||
var ttrss = rootWindow.getTTRSS()
|
||||
var sel = root.selectedIndex
|
||||
var m = getSelectedItem()
|
||||
ttrss.updateFeedStar(m.id, !m.marked, function(successful, errorMessage) {
|
||||
var index = root.selectedIndex
|
||||
var item = getSelectedItem()
|
||||
var newState = !item.marked
|
||||
|
||||
ttrss.updateFeedStar(item.id, newState, function(successful,
|
||||
errorMessage) {
|
||||
if (successful) {
|
||||
root.setProperty(sel, "marked", !m.marked)
|
||||
root.itemStarChanged(m)
|
||||
root.setProperty(index, "marked", newState)
|
||||
root.itemStarChanged(item)
|
||||
}
|
||||
|
||||
// TODO Add a callback to toogleStar() which can be used to display
|
||||
// errorMessage.
|
||||
callback(successful, errorMessage, item.marked)
|
||||
})
|
||||
}
|
||||
|
||||
function togglePublished() {
|
||||
/**
|
||||
* Toggle published/unpublished of currently selected item.
|
||||
* @param {function} A callback function with parameters boolean (indicating
|
||||
* success), string (an optional error message) and boolean (true if
|
||||
* published; false if unpublished).
|
||||
*/
|
||||
function togglePublished(callback) {
|
||||
var ttrss = rootWindow.getTTRSS()
|
||||
var sel = root.selectedIndex
|
||||
var m = getSelectedItem()
|
||||
ttrss.updateFeedRSS(m.id, !m.rss, function(successful, errorMessage) {
|
||||
var index = root.selectedIndex
|
||||
var item = getSelectedItem()
|
||||
var newState = !item.rss
|
||||
|
||||
ttrss.updateFeedRSS(item.id, newState, function(successful,
|
||||
errorMessage) {
|
||||
if (successful) {
|
||||
root.setProperty(sel, "rss", !m.rss)
|
||||
root.itemPublishedChanged(m)
|
||||
root.setProperty(index, "rss", newState)
|
||||
root.itemPublishedChanged(item)
|
||||
}
|
||||
|
||||
// TODO Add a callback to tooglePublished() which can be used to display
|
||||
// errorMessage.
|
||||
callback(successful, errorMessage, item.rss)
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -187,33 +187,47 @@ Page {
|
|||
//showFeedItem()
|
||||
}
|
||||
}
|
||||
|
||||
IconButton {
|
||||
id: rssSwitch
|
||||
icon.source: "qrc:///images/ic_rss_"+(rss?"enabled":"disabled")+".png"
|
||||
//checked: rss
|
||||
icon.source: "qrc:///images/ic_rss_"
|
||||
+ (rss ? "enabled" : "disabled") + ".png"
|
||||
onClicked: {
|
||||
feedItemModel.togglePublished()
|
||||
rss = !rss
|
||||
feedItemModel.togglePublished(function(successful,
|
||||
errorMessage,
|
||||
state) {
|
||||
rss = state
|
||||
// TODO make use of errorMessage
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
IconButton {
|
||||
id: markedSwitch
|
||||
icon.source: "qrc:///images/ic_star_"+(marked?"enabled":"disabled")+".png"
|
||||
//checked: marked
|
||||
icon.source: "qrc:///images/ic_star_"
|
||||
+ (marked ? "enabled" : "disabled") + ".png"
|
||||
onClicked: {
|
||||
feedItemModel.toggleStar()
|
||||
marked = !marked
|
||||
feedItemModel.toggleStar(function(successful, errorMessage,
|
||||
state) {
|
||||
marked = state
|
||||
// TODO make use of errorMessage
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
|
|
@ -313,9 +327,7 @@ Page {
|
|||
root.labels = data.labels
|
||||
note = data.note !== undefined ? data.note : ""
|
||||
marked = data.marked
|
||||
//markedSwitch.checked = marked
|
||||
unread = data.unread
|
||||
//unreadSwitch.checked = unread
|
||||
rss = data.rss
|
||||
//rssSwitch.checked = rss
|
||||
|
||||
|
|
@ -323,8 +335,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
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue