lib/gui/shared_libraries_widget.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Idb
  class SharedLibrariesWidget < Qt::Widget
      def initialize *args
        super *args

        @refresh = Qt::PushButton.new "Refresh"
        @refresh.connect(SIGNAL :released) {
          refresh
        }

        @list = Qt::ListWidget.new self

        layout = Qt::VBoxLayout.new do |v|
          v.add_widget(@list)
          v.add_widget(@refresh)
        end
        setLayout(layout)
      end

      def clear
        @list.clear
      end

      def refresh
        @list.clear
        if not $selected_app.binary.nil?
          shared_lib = $selected_app.binary.shared_libraries
          if shared_lib.nil?
            item = Qt::ListWidgetItem.new
            item.setText "Error: otool required"
            @list.addItem item
            return
          end
          shared_lib.each { |lib|
            item = Qt::ListWidgetItem.new
            item.setText lib
            @list.addItem item
          }
          setEnabled(true)
        else
          setEnabled(false)
        end

      end

  end
end