Class: Cosmos::TabbedPlotsDataObjectEditor
- Inherits:
-
Qt::Dialog
- Object
- Qt::Dialog
- Cosmos::TabbedPlotsDataObjectEditor
- Defined in:
- lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_data_object_editor.rb
Overview
Dialog which allows the user to edit the data object
Instance Method Summary collapse
-
#execute ⇒ Object
Executes the dialog box.
-
#initialize(parent, title, data_object_types, data_object = nil) ⇒ TabbedPlotsDataObjectEditor
constructor
A new instance of TabbedPlotsDataObjectEditor.
Methods inherited from Qt::Dialog
Constructor Details
#initialize(parent, title, data_object_types, data_object = nil) ⇒ TabbedPlotsDataObjectEditor
Returns a new instance of TabbedPlotsDataObjectEditor.
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_data_object_editor.rb', line 23 def initialize(parent, title, data_object_types, data_object = nil) # Call base class constructor super(parent) setWindowTitle(title) layout = Qt::VBoxLayout.new unless data_object # Create combobox to select data object type @combobox = Qt::ComboBox.new(self) data_object_types.each {|data_object_type| @combobox.addItem(data_object_type.to_s.upcase)} @combobox.setMaxVisibleItems(data_object_types.length) @combobox.connect(SIGNAL('currentIndexChanged(int)')) { handle_data_object_type_change(data_object) } combo_layout = Qt::FormLayout.new() combo_layout.addRow('Data Object Type:', @combobox) layout.addLayout(combo_layout) # Separator before actual editing dialog sep1 = Qt::Frame.new sep1.setFrameStyle(Qt::Frame::HLine | Qt::Frame::Sunken) layout.addWidget(sep1) else setWindowTitle(title + " : #{data_object.data_object_type}") end # Create editor class for specific data object type # Defaults to data_object_types[0] if a data object was not given if data_object data_object_type = data_object.class.to_s[0..-11].downcase data_object_type = data_object_type.split('::')[-1] # Remove Cosmos:: if present else data_object_type = data_object_types[0].to_s.downcase end @editor_layout = Qt::VBoxLayout.new layout.addLayout(@editor_layout) @editor = Cosmos.require_class(data_object_type + '_data_object_editor.rb').new(self) @editor.set_data_object(data_object) @editor_layout.addWidget(@editor) # Separator before buttons sep2 = Qt::Frame.new sep2.setFrameStyle(Qt::Frame::HLine | Qt::Frame::Sunken) layout.addWidget(sep2) layout.addStretch # Create OK and Cancel buttons = Qt::PushButton.new('Ok') .setDefault(true) connect(, SIGNAL('clicked()'), self, SLOT('accept()')) = Qt::PushButton.new('Cancel') connect(, SIGNAL('clicked()'), self, SLOT('reject()')) = Qt::HBoxLayout.new() .addWidget() .addWidget() layout.addLayout() setLayout(layout) end |
Instance Method Details
#execute ⇒ Object
Executes the dialog box
83 84 85 86 87 88 89 90 91 |
# File 'lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_data_object_editor.rb', line 83 def execute return_value = nil result = exec() if result == Qt::Dialog::Accepted return_value = @editor.get_data_object end dispose() return return_value end |