Class: Idb::CacheDbWidget
- Inherits:
-
Qt::Widget
- Object
- Qt::Widget
- Idb::CacheDbWidget
- Defined in:
- lib/gui/cache_db_widget.rb
Instance Method Summary collapse
- #clear ⇒ Object
-
#initialize(*args) ⇒ CacheDbWidget
constructor
A new instance of CacheDbWidget.
- #refresh ⇒ Object
- #setup ⇒ Object
Constructor Details
#initialize(*args) ⇒ CacheDbWidget
Returns a new instance of CacheDbWidget.
3 4 5 6 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 |
# File 'lib/gui/cache_db_widget.rb', line 3 def initialize(*args) super(*args) @refresh = Qt::PushButton.new "Refresh" @refresh.connect(SIGNAL(:released)) do refresh end @list = Qt::ListWidget.new self @list.connect(SIGNAL('itemDoubleClicked(QListWidgetItem*)')) do |item| cache_name = $selected_app.cache_file item.full_path if cache_name.nil? $log.error "File #{item.full_path} could not be downloaded. Either" \ "the file does not exist (e.g., dead symlink) or there " \ "is a permission problem." elsif RbConfig::CONFIG['host_os'] =~ /linux/ Process.spawn "'#{$settings['sqlite_editor']}' '#{cache_name}'" else Process.spawn "open -a '#{$settings['sqlite_editor']}' '#{cache_name}'" end end # "Launch app" @default_protection = DefaultProtectionClassGroupWidget.new self layout = Qt::VBoxLayout.new do |v| v.(@default_protection) v.(@list) v.(@refresh) end setLayout(layout) end |
Instance Method Details
#clear ⇒ Object
34 35 36 |
# File 'lib/gui/cache_db_widget.rb', line 34 def clear @list.clear end |
#refresh ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/gui/cache_db_widget.rb', line 47 def refresh @list.clear @list.setEnabled true @default_protection.update cache_dbs = $selected_app.find_cache_dbs cache_dbs.each do |full_path| item = PathListWidgetItem.new if $device.simulator? item.setText full_path.sub($selected_app.app_dir, '') else pc = $device.protection_class full_path if full_path.start_with? $selected_app.app_dir stripped_app_dir_path = full_path.sub($selected_app.app_dir, '') item.setText "[App Bundle]" + stripped_app_dir_path + " => " + pc.strip elsif full_path.start_with? $selected_app.data_dir stripped_data_dir_path = full_path.sub($selected_app.data_dir, '') item.setText "[Data Dir]" + stripped_data_dir_path + " => " + pc.strip end end item.full_path = full_path @list.addItem item end end |
#setup ⇒ Object
38 39 40 41 42 43 44 45 |
# File 'lib/gui/cache_db_widget.rb', line 38 def setup @list.clear @default_protection.update item = PathListWidgetItem.new item.setText "Please click 'Refresh' below to show files." @list.addItem item @list.setEnabled false end |