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.



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

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



39
40
41
42
43
44
45
# File 'lib/downloadedwin.rb', line 39

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



68
69
70
# File 'lib/downloadedwin.rb', line 68

def currentGem
    gemAtRow(currentRow)
end

#filterChanged(text) ⇒ Object



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

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



60
61
62
# File 'lib/downloadedwin.rb', line 60

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

#gemAtRow(row) ⇒ Object



64
65
66
# File 'lib/downloadedwin.rb', line 64

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

#showallObject



72
73
74
75
76
# File 'lib/downloadedwin.rb', line 72

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

#updateGemList(gemList) ⇒ Object



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

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