class CourseTableModel

~~~~~~~~~~~~~~~~~~~~~~~~~~

Public Class Methods

new(courses, parent) click to toggle source
Calls superclass method
# File lib/tmis/interface/models/course_table_model.rb, line 7
def initialize(courses, parent)
  super()
  @courses = courses
  @view = parent
end

Public Instance Methods

columnCount(parent) click to toggle source
# File lib/tmis/interface/models/course_table_model.rb, line 22
def columnCount(parent)
  1
end
data(index, role = Qt::DisplayRole) click to toggle source
# File lib/tmis/interface/models/course_table_model.rb, line 26
def data(index, role = Qt::DisplayRole)
  invalid = Qt::Variant.new
  return invalid unless role == Qt::DisplayRole or role == Qt::EditRole
  course = @courses[index.row]
  return invalid if course.nil?
  v = case index.column
      when 0
        course.number
      else
        raise "invalid column #{index.column}"
      end || ''
  Qt::Variant.new(v)
end
flags(index) click to toggle source
Calls superclass method
# File lib/tmis/interface/models/course_table_model.rb, line 52
def flags(index)
  Qt::ItemIsEditable | super(index)
end
headerData(section, orientation, role = Qt::DisplayRole) click to toggle source
# File lib/tmis/interface/models/course_table_model.rb, line 40
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/course_table_model.rb, line 73
def insert_new
  @courses.prepend(Course.new)
  emit layoutChanged()
end
refresh() click to toggle source
# File lib/tmis/interface/models/course_table_model.rb, line 13
def refresh
  @courses = Course.all
  emit layoutChanged()
end
remove_current() click to toggle source
# File lib/tmis/interface/models/course_table_model.rb, line 78
def remove_current
  if @view.currentIndex.valid?
    @courses[@view.currentIndex.row].try(:destroy)
    @courses.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/course_table_model.rb, line 18
def rowCount(parent)
  @courses.size
end
setData(index, variant, role = Qt::EditRole) click to toggle source
# File lib/tmis/interface/models/course_table_model.rb, line 56
def setData(index, variant, role = Qt::EditRole)
  if index.valid? and role == Qt::EditRole
    course = @courses[index.row]
    case index.column
    when 0
      course.number = variant.toInt
    else
      raise "invalid column #{index.column}"
    end
    course.save
    emit dataChanged(index, index)
    true
  else
    false
  end
end