mirror of
https://github.com/Xpl0itU/WiiUDownloader.git
synced 2025-06-01 07:48:24 -04:00
Fix selecting only 1 item
This commit is contained in:
parent
0d2507772e
commit
98c6eb923d
1 changed files with 46 additions and 40 deletions
|
@ -535,10 +535,17 @@ func (mw *MainWindow) isSelectionInQueue() bool {
|
|||
return false
|
||||
}
|
||||
|
||||
allTitlesInQueue := true
|
||||
for i := uint(0); i < selectionSelected.Length(); i++ {
|
||||
path, ok := selectionSelected.Nth(i).Data().(*gtk.TreePath)
|
||||
if !ok {
|
||||
continue
|
||||
}
|
||||
|
||||
iter, err := treeModel.GetIter(path)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
|
||||
iter, _ := treeModel.GetIterFirst()
|
||||
for iter != nil {
|
||||
inQueueVal, err := treeModel.GetValue(iter, IN_QUEUE_COLUMN)
|
||||
if err != nil {
|
||||
continue
|
||||
|
@ -549,16 +556,11 @@ func (mw *MainWindow) isSelectionInQueue() bool {
|
|||
}
|
||||
|
||||
if !isInQueue.(bool) {
|
||||
allTitlesInQueue = false
|
||||
break
|
||||
}
|
||||
|
||||
if !storeRef.IterNext(iter) {
|
||||
break
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
return allTitlesInQueue
|
||||
return true
|
||||
}
|
||||
|
||||
func (mw *MainWindow) onSelectionChanged() {
|
||||
|
@ -634,7 +636,7 @@ func (mw *MainWindow) onAddToQueueClicked() {
|
|||
addToQueue := !mw.isSelectionInQueue()
|
||||
|
||||
selectionSelected := selection.GetSelectedRows(treeModel)
|
||||
if selectionSelected == nil {
|
||||
if selectionSelected == nil || selectionSelected.Length() == 0 {
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -646,55 +648,59 @@ func (mw *MainWindow) onAddToQueueClicked() {
|
|||
|
||||
iter, _ := treeModel.GetIterFirst()
|
||||
for iter != nil {
|
||||
inQueueVal, err := treeModel.GetValue(iter, IN_QUEUE_COLUMN)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
isInQueue, err := inQueueVal.GoValue()
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
|
||||
if addToQueue != isInQueue.(bool) {
|
||||
inQueue, err := treeModel.GetValue(iter, IN_QUEUE_COLUMN)
|
||||
isSelected := selection.IterIsSelected(iter)
|
||||
if isSelected {
|
||||
inQueueVal, err := treeModel.GetValue(iter, IN_QUEUE_COLUMN)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
inQueue.SetBool(addToQueue)
|
||||
tid, err := treeModel.GetValue(iter, TITLE_ID_COLUMN)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
tidStr, err := tid.GetString()
|
||||
isInQueue, err := inQueueVal.GoValue()
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
|
||||
if addToQueue {
|
||||
name, err := treeModel.GetValue(iter, NAME_COLUMN)
|
||||
if addToQueue != isInQueue.(bool) {
|
||||
inQueueVal.SetBool(addToQueue)
|
||||
|
||||
tid, err := treeModel.GetValue(iter, TITLE_ID_COLUMN)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
nameStr, err := name.GetString()
|
||||
tidStr, err := tid.GetString()
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
mw.addToQueue(tidStr, nameStr)
|
||||
mw.addToQueueButton.SetLabel("Remove from queue")
|
||||
name.Unset()
|
||||
} else {
|
||||
mw.removeFromQueue(tidStr)
|
||||
mw.addToQueueButton.SetLabel("Add to queue")
|
||||
}
|
||||
|
||||
storeRef.SetValue(iter, IN_QUEUE_COLUMN, addToQueue)
|
||||
tid.Unset()
|
||||
if addToQueue {
|
||||
name, err := treeModel.GetValue(iter, NAME_COLUMN)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
nameStr, err := name.GetString()
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
mw.addToQueue(tidStr, nameStr)
|
||||
name.Unset()
|
||||
} else {
|
||||
mw.removeFromQueue(tidStr)
|
||||
}
|
||||
|
||||
storeRef.SetValue(iter, IN_QUEUE_COLUMN, addToQueue)
|
||||
tid.Unset()
|
||||
}
|
||||
}
|
||||
|
||||
if !storeRef.IterNext(iter) {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if addToQueue {
|
||||
mw.addToQueueButton.SetLabel("Remove from queue")
|
||||
} else {
|
||||
mw.addToQueueButton.SetLabel("Add to queue")
|
||||
}
|
||||
}
|
||||
|
||||
func (mw *MainWindow) updateTitlesInQueue() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue