Class: GemListTable
- Defined in:
- lib/installedwin.rb
Overview
Defined Under Namespace
Classes: Item
Constant Summary collapse
- PACKAGE_NAME =
column no
0
- PACKAGE_VERSION =
1
- PACKAGE_SUMMARY =
2
- PACKAGE_ATIME =
3
Instance Method Summary collapse
-
#addPackage(row, gem) ⇒ Object
caution ! : befor call, sortingEnabled must be set false.
- #currentGem ⇒ Object
- #filterChanged(text) ⇒ Object
-
#find ⇒ Object
: number : row of found item.
- #gem(item) ⇒ Object
- #gemAtRow(row) ⇒ Object
-
#initialize(title) ⇒ GemListTable
constructor
A new instance of GemListTable.
- #showall ⇒ Object
- #updateGemList(gemList) ⇒ Object
Constructor Details
#initialize(title) ⇒ GemListTable
Returns a new instance of GemListTable.
39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/installedwin.rb', line 39 def initialize(title) super(0,4) self.windowTitle = title setHorizontalHeaderLabels(['package', 'version', 'summary', 'last access']) self.horizontalHeader.stretchLastSection = true self.selectionBehavior = Qt::AbstractItemView::SelectRows self.selectionMode = Qt::AbstractItemView::SingleSelection self.alternatingRowColors = true self.sortingEnabled = true sortByColumn(PACKAGE_NAME, Qt::AscendingOrder ) @gems = {} end |
Instance Method Details
#addPackage(row, gem) ⇒ Object
caution ! : befor call, sortingEnabled must be set false.
if sortingEnabled is on while updating table, it is very sluggish.
55 56 57 58 59 60 61 62 63 |
# File 'lib/installedwin.rb', line 55 def addPackage(row, gem) # self.sortingEnabled = false nameItem = Item.new(gem.package) @gems[nameItem] = gem # 0 column item is hash key. setItem( row, PACKAGE_NAME, nameItem ) setItem( row, PACKAGE_VERSION, Item.new(gem.version) ) setItem( row, PACKAGE_SUMMARY, Item.new(gem.summary) ) setItem( row, PACKAGE_ATIME, Item.new('') ) end |
#currentGem ⇒ Object
88 89 90 |
# File 'lib/installedwin.rb', line 88 def currentGem gemAtRow(currentRow) end |
#filterChanged(text) ⇒ Object
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/installedwin.rb', line 100 def filterChanged(text) unless text && !text.empty? showall return end regxs = /#{Regexp.escape(text.strip)}/i rowCount.times do |r| gem = gemAtRow(r) txt = [ gem.package, gem.summary, gem., gem.platform ].inject("") do |s, t| t.nil? ? s : s + t.to_s end if regxs =~ txt then showRow(r) else hideRow(r) end end end |
#find ⇒ Object
Returns : number : row of found item.
121 122 123 124 125 126 127 |
# File 'lib/installedwin.rb', line 121 def find rowCount.times do |r| i = gemAtRow(r) return r if yield i end false end |
#gem(item) ⇒ Object
80 81 82 |
# File 'lib/installedwin.rb', line 80 def gem(item) gemAtRow(item.row) end |
#gemAtRow(row) ⇒ Object
84 85 86 |
# File 'lib/installedwin.rb', line 84 def gemAtRow(row) @gems[item(row,0)] # use 0 column item as hash key. end |
#showall ⇒ Object
92 93 94 95 96 |
# File 'lib/installedwin.rb', line 92 def showall rowCount.times do |r| showRow(r) end end |
#updateGemList(gemList) ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/installedwin.rb', line 66 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 |