Class: DownloadedTable

Inherits:
Qt::TableWidget
  • Object
show all
Defined in:
lib/downloadedwin.rb

Defined Under Namespace

Classes: Item

Instance Method Summary collapse

Constructor Details

#initializeDownloadedTable

Returns a new instance of DownloadedTable.



27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/downloadedwin.rb', line 27

def initialize
    super(0,3)

    self.windowTitle = i18n('Search Result')
    setHorizontalHeaderLabels(['file name', 'directory', 'installed'])
    self.horizontalHeader.stretchLastSection = true
    self.selectionBehavior = Qt::AbstractItemView::SelectRows
    self.selectionMode = Qt::AbstractItemView::SingleSelection
    self.alternatingRowColors = true
    self.sortingEnabled = true
    sortByColumn(0, Qt::AscendingOrder)
    @fetchedGems = {}
end

Instance Method Details

#addPackage(row, fetchedGem) ⇒ Object



41
42
43
44
45
46
47
# File 'lib/downloadedwin.rb', line 41

def addPackage(row, fetchedGem)
    nameItem = Item.new(fetchedGem.fileName)
    @fetchedGems[nameItem] = fetchedGem    # 0 column item is hash key.
    setItem( row, 0, nameItem )
    setItem( row, 1, Item.new(fetchedGem.directory) )
    setItem( row, 2, Item.new(fetchedGem.installed_str) )
end

#currentGemObject



70
71
72
# File 'lib/downloadedwin.rb', line 70

def currentGem
    gemAtRow(currentRow)
end

#filterChanged(text) ⇒ Object



81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/downloadedwin.rb', line 81

def filterChanged(text)
    unless text && !text.empty?
        showall
        return
    end

    regxs = /#{Regexp.escape(text.strip)}/i
    rowCount.times do |r|
        txt = item(r,0).text.gsub(/\.gem$/, '')
        if regxs =~ txt then
            showRow(r)
        else
            hideRow(r)
        end
    end
end

#gem(item) ⇒ Object



62
63
64
# File 'lib/downloadedwin.rb', line 62

def gem(item)
    gemAtRow(item.row)
end

#gemAtRow(row) ⇒ Object



66
67
68
# File 'lib/downloadedwin.rb', line 66

def gemAtRow(row)
    @fetchedGems[item(row,0)]       # use 0 column item as hash key.
end

#showallObject



74
75
76
77
78
# File 'lib/downloadedwin.rb', line 74

def showall
    rowCount.times do |r|
        showRow(r)
    end
end

#updateGemList(gemList) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/downloadedwin.rb', line 49

def updateGemList(gemList)
    sortFlag = self.sortingEnabled
    self.sortingEnabled = false

    clearContents
    self.rowCount = gemList.length
    gemList.each_with_index do |g,r|
        addPackage(r, g)
    end

    self.sortingEnabled = sortFlag
end