def __init__(self, mainview, parent=None): super(DeviceTable, self).__init__(parent) self.ui = Ui_Form() self.mainview = mainview self.ui.setupUi(self) self.device_data = self.get_device_data() self.set_title("Choose an Android Device") self.ui.treeView.setEditTriggers(QtGui.QTableView.NoEditTriggers) self.ui.treeView.setAlternatingRowColors(True) self.ui.treeView.setSelectionMode(QtGui.QTableView.SingleSelection) self.ui.treeView.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows) self.ui.treeView.doubleClicked.connect(self.device_clicked) self.setup_filtering() self.show_data()
class DeviceTable(QtGui.QDialog): def __init__(self, mainview, parent=None): super(DeviceTable, self).__init__(parent) self.ui = Ui_Form() self.mainview = mainview self.ui.setupUi(self) self.device_data = self.get_device_data() self.set_title("Choose an Android Device") self.ui.treeView.setEditTriggers(QtGui.QTableView.NoEditTriggers) self.ui.treeView.setAlternatingRowColors(True) self.ui.treeView.setSelectionMode(QtGui.QTableView.SingleSelection) self.ui.treeView.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows) self.ui.treeView.doubleClicked.connect(self.device_clicked) self.setup_filtering() self.show_data() def setup_filtering(self): self.filterPatternLineEdit = self.ui.lineEdit self.filterPatternLabel = QtGui.QLabel("&Filter string pattern:") self.filterPatternLabel.setBuddy(self.filterPatternLineEdit) self.filterPatternLineEdit.textChanged.connect(self.filterRegExpChanged) self.proxyModel = QtGui.QSortFilterProxyModel() self.proxyModel.setDynamicSortFilter(True) def filterRegExpChanged(self, value): regExp = QtCore.QRegExp(value) self.stringswindow.proxyModel.setFilterRegExp(regExp) def get_device_info_model(self): device_info = self.get_device_data() self.model = QtGui.QStandardItemModel(len(device_info), 2, self) self.model.setHeaderData(0, QtCore.Qt.Horizontal, "Device Id") self.model.setHeaderData(1, QtCore.Qt.Horizontal, "Android API") row = 0 for key in device_info: self.model.setData(self.model.index(row, 0, QtCore.QModelIndex()), str(key)) self.model.setData(self.model.index(row, 1, QtCore.QModelIndex()), str(device_info[key])) row += 1 self.proxyModel.setSourceModel(self.model) self.ui.treeView.setModel(self.proxyModel) def filterRegExpChanged(self, value): regExp = QtCore.QRegExp(value) self.proxyModel.setFilterRegExp(regExp) def set_header(self,header_id,text): self.ui.treeView.setHorizontalHeaderItem(header_id,QtGui.QTableWidgetItem(text)) def show_data(self): self.get_device_info_model() def set_title(self,text): self.setWindowTitle(text) def get_device_data(self): data = {} for device in dumpey.attached_devices(): data[device] = dumpey.api_version(device) return data def device_clicked(self, mi): mi = self.proxyModel.mapToSource(mi) row = mi.row() self.device = mi.model().item(row,0).text() self.close() self.show_package_dialog(self.device, dumpey.package_list([self.device])) def show_package_dialog(self,device,package_list): package_list = package_list[device] table = PackageWindow(device,package_list,win=self.mainview) table.exec_()