Class: Idb::KeychainWidget

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

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ KeychainWidget

Returns a new instance of KeychainWidget.



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
# File 'lib/gui/keychain_widget.rb', line 8

def initialize *args
  super *args
  @layout = Qt::GridLayout.new
  setLayout(@layout)


  @model = Qt::StandardItemModel.new

  @selection_model = Qt::ItemSelectionModel.new @model
  @selection_model.connect(SIGNAL('selectionChanged(QItemSelection,QItemSelection)')) {|x,y|
    unless x.indexes.length == 0
      row = x.indexes[0].row
      @keychain_tab_widget.set_data @keychain.entries[row]["data"]
      @keychain_tab_widget.set_vdata @keychain.entries[row]["v_Data"]
    end

  }

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

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

  @layout.addWidget @keychain_tab, 0,0


  @dump = Qt::PushButton.new "Dump Keychain"
  @layout.addWidget @dump, 2, 0

  @keychain_tab_widget = KeychainTabWidget.new
  @layout.addWidget @keychain_tab_widget, 3, 0

  @dump.connect(SIGNAL :released) {
    $device.dump_keychain
    @keychain = KeychainPlistParser.new "#{$tmp_path}/device/genp.plist"
    populate_table
  }

end

Instance Method Details

#populate_tableObject



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
# File 'lib/gui/keychain_widget.rb', line 51

def populate_table
  @keychain_tab_widget.clear
  @model.clear
  @model.setHorizontalHeaderItem(0, Qt::StandardItem.new("Access Group"))
  @model.setHorizontalHeaderItem(1, Qt::StandardItem.new("Account"))
  @model.setHorizontalHeaderItem(2, Qt::StandardItem.new("Service"))
  @model.setHorizontalHeaderItem(3, Qt::StandardItem.new("Protection"))
  @model.setHorizontalHeaderItem(4, Qt::StandardItem.new("Creation"))
  @model.setHorizontalHeaderItem(5, Qt::StandardItem.new("Modification"))


  @keychain.entries.each { |item|
    row = Array.new
    row << Qt::StandardItem.new(item['agrp'].to_s)
    row << Qt::StandardItem.new(item['acct'].to_s)
    row << Qt::StandardItem.new(item['svce'].to_s)
    row << Qt::StandardItem.new(item['protection_class'].to_s)
    row << Qt::StandardItem.new(item['cdat'].to_s)
    row << Qt::StandardItem.new(item['mdat'].to_s)
    @model.appendRow(row)
  }
  @keychain_tab.resizeColumnsToContents
  @keychain_tab.resizeRowsToContents


end