Class: ProgrammeTableWidget

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

Overview


Defined Under Namespace

Classes: Item, Programme

Constant Summary collapse

GroupName =
"ProgrammeTable"

Instance Method Summary collapse

Constructor Details

#initializeProgrammeTableWidget




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

def initialize()
    super(0, 3)

    setHorizontalHeaderLabels(['Title', 'Category', 'Updated'])
    self.horizontalHeader.stretchLastSection = true
    self.selectionBehavior = Qt::AbstractItemView::SelectRows
    self.alternatingRowColors = true
    self.sortingEnabled = true
    sortByColumn(2, Qt::DescendingOrder )


    # Hash table : key column_0_item  => Programme entry.
    @table = Hash.new
end

Instance Method Details

#[](row) ⇒ Object

return Programme object.



72
73
74
# File 'lib/programmewin.rb', line 72

def [](row)
    @table[item(row,0)]
end

#addEntry(row, title, categories, updated, content, link) ⇒ Object



63
64
65
66
67
68
69
# File 'lib/programmewin.rb', line 63

def addEntry( row, title, categories, updated, content, link )
    entry = Programme.new(title, categories, updated, content, link)
    setItem( row, 0, entry.titleItem )
    setItem( row, 1, entry.categoriesItem )
    setItem( row, 2, entry.updatedItem )
    @table[entry.titleItem] = entry
end

#filterChanged(text) ⇒ Object



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

def filterChanged(text)
    return unless text

    regxs = text.split(/[,\s]+/).map do |w|
                /#{Regexp.escape(w.strip)}/i
    end
    rowCount.times do |r|
        i0 = item(r,0)
        i1 = item(r,1)
        i2 = item(r,2)
        txt = ((i0 && i0.text) || '') + ((i1 && i1.text) || '') + ((i2 && i2.text) || '')
        if regxs.all? do |rx| rx =~ txt end then
            showRow(r)
        else
            hideRow(r)
        end
    end
end

#readSettingsObject



107
108
109
110
# File 'lib/programmewin.rb', line 107

def readSettings
    config = $config.group(GroupName)
    horizontalHeader.restoreState(config.readEntry('Header', horizontalHeader.saveState))
end

#writeSettingsObject



102
103
104
105
# File 'lib/programmewin.rb', line 102

def writeSettings
    config = $config.group(GroupName)
    config.writeEntry('Header', horizontalHeader.saveState)
end