Class: Idb::SnooptItSensitiveAPIWidget

Inherits:
Qt::Widget
  • Object
show all
Defined in:
lib/gui/snoop_it_sensitive_api_widget.rb

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ SnooptItSensitiveAPIWidget

Returns a new instance of SnooptItSensitiveAPIWidget.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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
# File 'lib/gui/snoop_it_sensitive_api_widget.rb', line 7

def initialize *args
  super *args

  @snoop = SnoopItWrapper.new

  @model = Qt::StandardItemModel.new

  @selection_model = Qt::ItemSelectionModel.new @model
  @selection_model.model

  @events_tab = Qt::TableView.new
  @events_tab.setModel @selection_model.model
  @events_tab.setSelectionModel(@selection_model)

  @events_tab.setSelectionBehavior(Qt::AbstractItemView::SelectRows)
  @events_tab.setEditTriggers(Qt::AbstractItemView::NoEditTriggers  )

  @start = Qt::PushButton.new "Start"
  @start.connect(SIGNAL :released) {
    @start.setEnabled(false)
    @stop.setEnabled(true)
    start_stream
  }

  @stop = Qt::PushButton.new "Stop"
  @stop.setEnabled(false)
  @stop.connect(SIGNAL :released) {
    @start.setEnabled(true)
    @stop.setEnabled(false)
    stop_stream
  }


  layout = Qt::VBoxLayout.new do |v|
    v.add_widget(@events_tab)
    v.add_widget(@start)
    v.add_widget(@stop)
  end
  setLayout(layout)



end

Instance Method Details

#resetObject



51
52
53
54
55
56
57
# File 'lib/gui/snoop_it_sensitive_api_widget.rb', line 51

def reset
  @model.clear
  @model.setHorizontalHeaderItem(0, Qt::StandardItem.new("Subject"))
  @model.setHorizontalHeaderItem(1, Qt::StandardItem.new("Expiry"))
  @model.setHorizontalHeaderItem(2, Qt::StandardItem.new("Issuer"))

end

#start_streamObject



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/gui/snoop_it_sensitive_api_widget.rb', line 59

def start_stream


  @thread = SnoopItUpdateThread.new
  @thread.connect(SIGNAL('new_events(QVariant)')) { |events|
    if not events.value.nil?
      @events_tab.blockSignals(true)
      events.value.each { |e|
        #TODO if there are many, display status
        row = parse_event e
        @model.appendRow(row)
        Qt::Application::processEvents

      }
      @events_tab.blockSignals(false)
      @events_tab.resizeColumnsToContents
      @events_tab.resizeRowsToContents
    end
  }
  @snoop.sensitiveapi_delete
  @thread.stream 'sensitiveapi_after_id'

end