def AreaWidgetLoader(self,DockInfo): if hasattr(self,'dockList'): for dock in self.dockList: dock.close() self.AllDockArea = {} if self.FSettings.Settings.get_setting('dockarea','advanced',format=bool): self.dockList = [] for key in DockInfo.keys(): if DockInfo[key]['active']: self.dock = QDockWidget(key) if key == 'HTTP-Authentication': self.AllDockArea[key] = dockCredsMonitor(None,DockInfo[key]) elif key == 'HTTP-Requests': self.AllDockArea[key] = dockUrlMonitor(None,DockInfo[key]) elif key == 'PumpkinProxy': self.AllDockArea[key] = dockPumpkinProxy(None, DockInfo[key]) else: self.AllDockArea[key] = dockAreaAPI(None,DockInfo[key]) self.dock.setWidget(self.AllDockArea[key]) self.dock.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.dock.setAllowedAreas(Qt.AllDockWidgetAreas) self.dock.setFeatures(QDockWidget.DockWidgetMovable | QDockWidget.DockWidgetFloatable) self.Tab_Dock.addDockWidget(Qt.LeftDockWidgetArea, self.dock) self.dockList.insert(0,self.dock) if len(self.dockList) > 1: for index in range(1, len(self.dockList) - 1): if self.dockList[index].objectName() != 'HTTP-Requests': self.Tab_Dock.tabifyDockWidget(self.dockList[index], self.dockList[index + 1]) try: self.dockList[0].raise_() except IndexError: pass self.checkDockArea.emit(self.AllDockArea)
def AreaWidgetLoader(self,DockInfo): if hasattr(self,'dockList'): for dock in self.dockList: dock.close() self.AllDockArea = {} if self.FSettings.Settings.get_setting('dockarea','advanced',format=bool): self.dockList = [] for key in DockInfo.keys(): if DockInfo[key]['active']: self.dock = QDockWidget(key) if key == 'HTTP-Authentication': self.AllDockArea[key] = dockCredsMonitor(None,DockInfo[key]) elif key == 'HTTP-Requests': self.AllDockArea[key] = dockUrlMonitor(None,DockInfo[key]) elif key == 'PumpkinProxy': self.AllDockArea[key] = dockPumpkinProxy(None, DockInfo[key]) else: self.AllDockArea[key] = dockAreaAPI(None,DockInfo[key]) self.dock.setWidget(self.AllDockArea[key]) self.dock.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.dock.setAllowedAreas(Qt.AllDockWidgetAreas) self.dock.setFeatures(QDockWidget.DockWidgetMovable | QDockWidget.DockWidgetFloatable) self.InitialMehtod.addDockWidget(Qt.LeftDockWidgetArea, self.dock) self.dockList.insert(0,self.dock) if len(self.dockList) > 1: for index in range(1, len(self.dockList) - 1): if self.dockList[index].objectName() != 'HTTP-Requests': self.InitialMehtod.tabifyDockWidget(self.dockList[index], self.dockList[index + 1]) try: self.dockList[0].raise_() except IndexError: pass self.checkDockArea.emit(self.AllDockArea)
def __init__(self,main_method,parent = None): super(PumpkinMitmproxy, self).__init__(parent) self.mainLayout = QVBoxLayout() self.config = SettingsINI(C.PUMPPROXY_INI) self.plugins = [] self.main_method = main_method self.bt_SettingsDict = {} self.check_PluginDict = {} self.search_all_ProxyPlugins() #scroll area self.scrollwidget = QWidget() self.scrollwidget.setLayout(self.mainLayout) self.scroll = QScrollArea() self.scroll.setWidgetResizable(True) self.scroll.setWidget(self.scrollwidget) # create for add dock logging self.tabcontrol = QTabWidget() self.tab1 = QWidget() self.tab2 = QWidget() self.page_1 = QVBoxLayout(self.tab1) self.page_2 = QVBoxLayout(self.tab2) self.tableLogging = dockPumpkinProxy() self.tabcontrol.addTab(self.tab1, 'Plugins') self.tabcontrol.addTab(self.tab2, 'Logging') self.TabPlugins = QTableWidget() self.TabPlugins.setColumnCount(3) self.TabPlugins.setRowCount(len(self.plugins)) self.TabPlugins.resizeRowsToContents() self.TabPlugins.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) self.TabPlugins.horizontalHeader().setStretchLastSection(True) self.TabPlugins.setSelectionBehavior(QAbstractItemView.SelectRows) self.TabPlugins.setEditTriggers(QAbstractItemView.NoEditTriggers) self.TabPlugins.verticalHeader().setVisible(False) self.TabPlugins.verticalHeader().setDefaultSectionSize(27) self.TabPlugins.setSortingEnabled(True) self.THeaders = OrderedDict([ ('Plugins',[]),('Settings',[]),('Description',[])]) self.TabPlugins.setHorizontalHeaderLabels(self.THeaders.keys()) self.TabPlugins.horizontalHeader().resizeSection(0,158) self.TabPlugins.horizontalHeader().resizeSection(1,80) # add on tab self.page_1.addWidget(self.TabPlugins) self.page_2.addWidget(self.tableLogging) # get all plugins and add into TabWidget Headers = [] for plugin in self.plugins: if plugin.ConfigParser: self.bt_SettingsDict[plugin.Name] = QPushButton('Settings') self.bt_SettingsDict[plugin.Name].clicked.connect(partial(self.setSettingsPlgins,plugin.Name)) else: self.bt_SettingsDict[plugin.Name] = QPushButton('None') self.check_PluginDict[plugin.Name] = QCheckBox(plugin.Name) self.check_PluginDict[plugin.Name].setObjectName(plugin.Name) self.check_PluginDict[plugin.Name].clicked.connect(partial(self.setPluginOption,plugin.Name)) self.THeaders['Plugins'].append(self.check_PluginDict[plugin.Name]) self.THeaders['Settings'].append({'name': plugin.Name}) self.THeaders['Description'].append(plugin.Description) for n, key in enumerate(self.THeaders.keys()): Headers.append(key) for m, item in enumerate(self.THeaders[key]): if type(item) == type(QCheckBox()): self.TabPlugins.setCellWidget(m,n,item) elif type(item) == type(dict()): self.TabPlugins.setCellWidget(m,n,self.bt_SettingsDict[item['name']]) else: item = QTableWidgetItem(item) self.TabPlugins.setItem(m, n, item) self.TabPlugins.setHorizontalHeaderLabels(self.THeaders.keys()) # check status all checkbox plugins for box in self.check_PluginDict.keys(): self.check_PluginDict[box].setChecked(self.config.get_setting('plugins',box,format=bool)) self.mainLayout.addWidget(self.tabcontrol) self.layout = QHBoxLayout() self.layout.addWidget(self.scroll) self.addLayout(self.layout)