Class: Cosmos::ExceptionListDialog
- Inherits:
-
Qt::Dialog
- Object
- Qt::Dialog
- Cosmos::ExceptionListDialog
- Defined in:
- lib/cosmos/gui/dialogs/exception_list_dialog.rb
Overview
Displays a list of exceptions in a dialog box. Clicking on any of the exceptions creates a new ExceptionDialog which shows the details.
Instance Method Summary collapse
-
#initialize(message, exception_list, title = 'COSMOS Exception List', parent = Qt::CoreApplication.instance.activeWindow) ⇒ ExceptionListDialog
constructor
A new instance of ExceptionListDialog.
Methods inherited from Qt::Dialog
Constructor Details
#initialize(message, exception_list, title = 'COSMOS Exception List', parent = Qt::CoreApplication.instance.activeWindow) ⇒ ExceptionListDialog
Returns a new instance of ExceptionListDialog.
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 |
# File 'lib/cosmos/gui/dialogs/exception_list_dialog.rb', line 23 def initialize(, exception_list, title = 'COSMOS Exception List', parent = Qt::CoreApplication.instance.activeWindow) super(parent) self.window_title = title layout = Qt::VBoxLayout.new self.layout = layout @exception_list = exception_list layout.addWidget(Qt::Label.new()) @list = Qt::ListWidget.new @exception_list.each_with_index do |exception, index| string = "#{index + 1}. #{exception.class} : #{exception.}" Qt::ListWidgetItem.new(tr(string), @list) end layout.addWidget(@list) @list.connect(SIGNAL('itemSelectionChanged ()')) do ExceptionDialog.new(self, @exception_list[@list.currentRow], title, false) end = Qt::PushButton.new('Ok') connect(, SIGNAL('clicked()'), self, SLOT('accept()')) layout.addWidget(, 0, Qt::AlignCenter) # Constrain the maximum size in case the list is huge setMaximumSize(800, 600) # Ideally we resize to show the entire list resize(@list.width, @list.height) self.raise exec() dispose() end |