Skip to content

Commit

Permalink
fix selection handling
Browse files Browse the repository at this point in the history
  • Loading branch information
ftl committed Nov 14, 2023
1 parent 14ef328 commit 37407e7
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 16 deletions.
23 changes: 7 additions & 16 deletions ui/spotsTableView.go
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,6 @@ func (v *spotsView) updateTableEntry(entry core.BandmapEntry) {
}

func (v *spotsView) removeTableEntry(entry core.BandmapEntry) {
v.clearTableSelection()

row := v.tableRowByIndex(entry.Index)
if row == nil {
Expand All @@ -284,7 +283,7 @@ func (v *spotsView) removeTableEntry(entry core.BandmapEntry) {

func (v *spotsView) revealTableEntry(entry core.BandmapEntry) {
if !v.controller.EntryVisible(entry.Index) {
log.Printf("invisible entry not selected")
log.Printf("invisible entry #%d %s on %s not selected", entry.Index, entry.Call, entry.Band)
return
}

Expand All @@ -303,8 +302,6 @@ func (v *spotsView) revealTableEntry(entry core.BandmapEntry) {

column := v.table.GetColumn(1)
v.table.ScrollToCell(filteredPath, column, false, 0, 0)

v.clearTableSelection()
}

func (v *spotsView) refreshTable() {
Expand All @@ -315,16 +312,9 @@ func (v *spotsView) refreshTable() {
}()
}

v.clearTableSelection()

v.tableFilter.Refilter()
}

func (v *spotsView) clearTableSelection() {
selection, _ := v.table.GetSelection()
selection.UnselectAll()
}

func (v *spotsView) tableRowByIndex(index int) *gtk.TreeIter {
result, err := v.tableContent.GetIterFromString(fmt.Sprintf("%d", index))
if err != nil {
Expand All @@ -335,17 +325,18 @@ func (v *spotsView) tableRowByIndex(index int) *gtk.TreeIter {
}

func (v *spotsView) onTableSelectionChanged(selection *gtk.TreeSelection) bool {
if v.ignoreSelection {
log.Printf("table selection change ignored")
index, selected := v.getSelectedIndex(selection)
if !selected {
return true
}
selection.UnselectAll()

if v.controller == nil {
if v.ignoreSelection {
log.Printf("table selection change ignored")
return true
}

index, selected := v.getSelectedIndex(selection)
if !selected {
if v.controller == nil {
return true
}

Expand Down
3 changes: 3 additions & 0 deletions ui/spotsView.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package ui

import (
"fmt"
"log"

"github.com/gotk3/gotk3/gdk"
"github.com/gotk3/gotk3/gtk"
Expand Down Expand Up @@ -257,7 +258,9 @@ func (v *spotsView) EntryRemoved(entry core.BandmapEntry) {
}

func (v *spotsView) EntrySelected(entry core.BandmapEntry) {
log.Printf("spotsView.EntrySelected incoming: #%d %s on %s", entry.Index, entry.Call, entry.Band)
runAsync(func() {
log.Printf("spotsView.EntrySelected handled: %t #%d %s on %s", v.ignoreSelection, entry.Index, entry.Call, entry.Band)
if !v.ignoreSelection {
v.ignoreSelection = true
defer func() {
Expand Down

0 comments on commit 37407e7

Please sign in to comment.