Class: ExportGeneralTimetableDialog

Inherits:
Qt::Dialog
  • Object
show all
Defined in:
lib/tmis/interface/forms/export_general_timetable.rb

Overview

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

Instance Method Summary collapse

Constructor Details

#initialize(initial_date, parent = nil) ⇒ ExportGeneralTimetableDialog

Returns a new instance of ExportGeneralTimetableDialog.



18
19
20
21
22
23
# File 'lib/tmis/interface/forms/export_general_timetable.rb', line 18

def initialize(initial_date, parent = nil)
  super parent
  @ui = Ui::ExportGeneralTimetableDialog.new
  @ui.setup_ui self
  @ui.dateDateEdit.setDate Qt::Date.fromString(initial_date.to_s, Qt::ISODate)
end

Instance Method Details

#export(date, path) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/tmis/interface/forms/export_general_timetable.rb', line 49

def export(date, path)
  if path.exist?
    path.delete
    spreadsheet = SpreadsheetCreater.create path.to_s
  else
    spreadsheet = SpreadsheetCreater.create path.to_s
  end
  if @ui.weeklyRadioButton.isChecked
    TimetableExporter.new(spreadsheet, GeneralTimetableExportStratagy.new(date.monday..date.monday + 5)).export.save
  else
    TimetableExporter.new(spreadsheet, GeneralTimetableExportStratagy.new([date])).export.save
  end
end

#on_browsePushButton_clickedObject



25
26
27
# File 'lib/tmis/interface/forms/export_general_timetable.rb', line 25

def on_browsePushButton_clicked
  @ui.pathLineEdit.text = Qt::FileDialog::getSaveFileName(self, 'Save File', "#{Dir.home}/NewTimetable", 'XLS Spreadsheet(*.xls)')
end

#on_exportButtonBox_acceptedObject



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/tmis/interface/forms/export_general_timetable.rb', line 29

def on_exportButtonBox_accepted
  filename = @ui.pathLineEdit.text.force_encoding 'UTF-8'
  if filename.empty?
    show_message 'Выберите путь к файлу'
  else
    path = Pathname.new(filename)
    if path.dirname.writable?
      date = Date.parse @ui.dateDateEdit.date.toString(Qt::ISODate)
      export(date, path)
      close
    else
      show_message 'Файл не может быть записан!'
    end
  end
end

#on_exportButtonBox_rejectedObject



45
46
47
# File 'lib/tmis/interface/forms/export_general_timetable.rb', line 45

def on_exportButtonBox_rejected
  close
end

#show_message(text) ⇒ Object



63
64
65
66
67
# File 'lib/tmis/interface/forms/export_general_timetable.rb', line 63

def show_message(text)
  box = Qt::MessageBox.new
  box.setText text
  box.exec
end