class SubgroupTableModel
~~~~~~~~~~~~~~~~~~~~~~~~~~
Public Class Methods
new(subgroups, parent)
click to toggle source
Calls superclass method
# File lib/tmis/interface/models/subgroup_table_model.rb, line 7 def initialize(subgroups, parent) super() @subgroups = subgroups @view = parent @GroupComboBoxDelegate = GroupComboBoxDelegate.new(self) @view.setItemDelegateForColumn(1, @GroupComboBoxDelegate) end
Public Instance Methods
columnCount(parent)
click to toggle source
# File lib/tmis/interface/models/subgroup_table_model.rb, line 25 def columnCount(parent) 2 end
data(index, role = Qt::DisplayRole)
click to toggle source
# File lib/tmis/interface/models/subgroup_table_model.rb, line 29 def data(index, role = Qt::DisplayRole) subgroup = @subgroups[index.row] default = Qt::Variant.new case role when Qt::DisplayRole case index.column when 0 subgroup.number when 1 subgroup.group.try(:title) else raise "invalid column #{index.column}" end.try(:to_v) || default when Qt::EditRole case index.column when 0 subgroup.number when 1 subgroup.group_id else raise "invalid column #{index.column}" end.try(:to_v) || default else default end end
flags(index)
click to toggle source
Calls superclass method
# File lib/tmis/interface/models/subgroup_table_model.rb, line 68 def flags(index) Qt::ItemIsEditable | super(index) end
headerData(section, orientation, role = Qt::DisplayRole)
click to toggle source
# File lib/tmis/interface/models/subgroup_table_model.rb, line 56 def headerData(section, orientation, role = Qt::DisplayRole) invalid = Qt::Variant.new return invalid unless role == Qt::DisplayRole v = case orientation when Qt::Horizontal %w(Номер Группа)[section] else '' end Qt::Variant.new(v) end
insert_new()
click to toggle source
# File lib/tmis/interface/models/subgroup_table_model.rb, line 91 def insert_new @subgroups.prepend(Subgroup.new) emit layoutChanged() end
refresh()
click to toggle source
# File lib/tmis/interface/models/subgroup_table_model.rb, line 15 def refresh @subgroups = Subgroup.all @GroupComboBoxDelegate.setup emit layoutChanged() end
remove_current()
click to toggle source
# File lib/tmis/interface/models/subgroup_table_model.rb, line 96 def remove_current if @view.currentIndex.valid? @subgroups[@view.currentIndex.row].try(:destroy) @subgroups.delete_at(@view.currentIndex.row) emit layoutChanged() @view.currentIndex = createIndex(-1, -1) end end
rowCount(parent)
click to toggle source
# File lib/tmis/interface/models/subgroup_table_model.rb, line 21 def rowCount(parent) @subgroups.size end
setData(index, variant, role = Qt::EditRole)
click to toggle source
# File lib/tmis/interface/models/subgroup_table_model.rb, line 72 def setData(index, variant, role = Qt::EditRole) if index.valid? and role == Qt::EditRole subgroup = @subgroups[index.row] case index.column when 0 subgroup.number = variant.toInt when 1 subgroup.group_id = variant.toInt else raise "invalid column #{index.column}" end subgroup.save emit dataChanged(index, index) true else false end end