def __init__(self, db, parent=None): QScrollArea.__init__(self) self.db = db self.setStyleSheet(''' QScrollArea { background-color: #2e2e2e; color: #cccccc; min-width: 250px; max-width: 250px }; ''') self.verticalScrollBar().setStyleSheet(''' QScrollBar:vertical { background: #2e2e2e; }; ''') self.editDialog = EditDialog() self.editDialog.buttonEditsSaved.connect(self.handleEditChanges) self.showButtons() self.buttons = [] self.buttonPressed.connect(self.showButtons) return
def __init__(self, *args, **kwargs): QScrollArea.__init__(self, *args, **kwargs) self.setStyleSheet(""" QScrollArea { position: absolute; border: 0; } QScrollBar:vertical { width: 8px; } QScrollBar:horizontal { height: 8px; } QScrollBar:vertical, QScrollBar:horizontal { border: none; background: none; border-radius: 0; } QScrollBar::handle:horizontal, QScrollBar::handle:vertical { background: #ff6600; border-radius: 4px; } """)
def __init__ (self, parentQWidget = None): QScrollArea.__init__(self) self.mainView = MainView(self) self.setWidget(self.mainView) self.horizontalScrollBar().valueChanged.connect(self.mainView.setPositionHor) self.verticalScrollBar().valueChanged.connect(self.mainView.setPositionVer) self.resizeEvent = self.onResize
def __init__(self, app): QScrollArea.__init__(self) self.app = app self.image = QLabel() self.image.setScaledContents(True) self.image.setMouseTracking(True) self.image.mouseMoveEvent = self.mouseMoveEvent_over_image self.image.mousePressEvent = self.mousePressEvent_over_image self.image.mouseReleaseEvent = self.mouseReleaseEvent_over_image self.zoom_factor = 1 """The current zoom factor of the image.""" self.mouse_action = 0 """The current action on mouse move. Can be *ROI*, *WINDOW* or *PAN*.""" self.last_position = None """The last position, from which mouse events were processed.""" self.setMouseTracking(True) self.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter) self.setWidget(self.image) # Hide scrollbars self.horizontalScrollBar().setStyleSheet("QScrollBar { height: 0 }") self.verticalScrollBar().setStyleSheet("QScrollBar { width: 0 }")
def __init__(self, parentQWidget=None): QScrollArea.__init__(self) self.mainView = MainView(self) self.setWidget(self.mainView) self.horizontalScrollBar().valueChanged.connect( self.mainView.setPositionHor) self.verticalScrollBar().valueChanged.connect( self.mainView.setPositionVer) self.resizeEvent = self.onResize
def __init__(self, *args, **kwargs): QScrollArea.__init__(self, *args, **kwargs) self.setWidgetResizable(True) content = QWidget(self) self.setWidget(content) lay = QVBoxLayout(content) self.label = QLabel(content) self.label.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter) self.label.setWordWrap(True) lay.addWidget(self.label)
def __init__(self, bar_frame_stacker: BarFrameStacker): """ Makes a BarFrameStackerScrollArea :param bar_frame_stacker: is a BarFrameStacker """ QScrollArea.__init__(self) self.__bar_frame_stacker = bar_frame_stacker self.setWidget(self.__bar_frame_stacker) self.setWidgetResizable(False) self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff) # 18 is an estimate for the height of the scroll bar self.setMinimumHeight(bar_frame_stacker.minimumHeight() + 18) self.setMaximumHeight(bar_frame_stacker.minimumHeight() + 18)
def __init__(self, alignment_info_list: List[AlignmentInfo]): """ Constructor :param alignment_info_list: A list of AlignmentInfos to display """ QScrollArea.__init__(self) self.__stacker = CompleteComparisonFrameStacker(alignment_info_list) self.__stacker.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) box_layout = QVBoxLayout() box_layout.addWidget(self.__stacker) self.horizontalScrollBar().setEnabled(False) self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.setLayout(box_layout) self.setWidget(self.__stacker) self.setWidgetResizable(True) self.resizeEvent = self.onResize
def __init__(self, parent, binaryView): QScrollArea.__init__(self, parent) View.__init__(self) View.setBinaryDataNavigable(self, True) self.setupView(self) # BinaryViewType self.binaryView = binaryView self.rootSelectionStart = 0 self.rootSelectionEnd = 1 self.ioRoot = None self.ioCurrent = None # top half = treeWidget + structPath self.treeWidget = MyQTreeWidget() self.treeWidget.setColumnCount(4) self.treeWidget.setHeaderLabels(['label', 'value', 'start', 'end']) self.treeWidget.itemSelectionChanged.connect(self.onTreeSelect) self.structPath = QLineEdit("root") self.structPath.setReadOnly(True) topHalf = QWidget(self) layout = QVBoxLayout() layout.addWidget(self.treeWidget) layout.addWidget(self.structPath) topHalf.setLayout(layout) # bottom half = hexWidget self.hexWidget = HexEditor(binaryView, ViewFrame.viewFrameForWidget(self), 0) # splitter = top half, bottom half self.splitter = QSplitter(self) self.splitter.setOrientation(Qt.Vertical) self.splitter.addWidget(topHalf) self.splitter.addWidget(self.hexWidget) self.setWidgetResizable(True) self.setWidget(self.splitter) self.kaitaiParse()
def __init__(self, app): QScrollArea.__init__(self) self.app = app self.wrapper = QFrame() self.wrapper.setLayout(QVBoxLayout()) self.wrapper.layout().setContentsMargins(5, 0, 0, 5) self.wrapper.layout().addStretch() self.thumbs = [] self.setSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.MinimumExpanding) # Hide horizontal scollbar self.horizontalScrollBar().setStyleSheet("QScrollBar { height: 0 }") self.setWidgetResizable(True) self.setWidget(self.wrapper)
def __init__(self, parent, binaryView): QScrollArea.__init__(self, parent) View.__init__(self) View.setBinaryDataNavigable(self, True) self.setupView(self) # input and output, Y = ROT13(X) X = binaryView.read(0, len(binaryView)) Y = codecs.encode(X.decode('utf-8'), 'rot_13').encode('utf-8') # store original binary view (X) and our translated binary view (Y) self.binaryViewX = binaryView self.binaryViewY = binaryview.BinaryView.new(Y) self.setWidgetResizable(True) self.hexWidget = HexEditor(self.binaryViewY, ViewFrame.viewFrameForWidget(self), 0) self.setWidget(self.hexWidget) # capture writes to translated binary view notification = Rot13Notification(self.binaryViewX) self.binaryViewY.register_notification(notification)
def __init__(self, subject, powermode=False): Observation.__init__(self, subject) QScrollArea.__init__(self) self.powermode = powermode self.setFrameShape(QFrame.NoFrame) self.setMinimumSize(200, 300) self.codeView = CodeView(subject) self.trackEditor = TrackEditor(self.subject, self.powermode, confirmUpdate=False) self.selectedTrackIndex = -1 self.innerLayout = QHBoxLayout() self.innerLayout.setSpacing(0) self.innerLayout.setContentsMargins(0, 0, 0, 0) self.innerLayout.setAlignment(Qt.AlignLeft) self.setAttribute(Qt.WA_StyledBackground) self.setStyleSheet(Theme.editor.style) self.setHorizontalScrollBar(ScrollBar()) self.setVerticalScrollBar(ScrollBar()) widget = QWidget() widget.setLayout(self.innerLayout) self.setWidget(widget) self.setWidgetResizable(True) self._initTip() self.setTipHidden(False) self.add_responder(events.document.Open, self.documentOpenResponder) self.add_responder(events.view.main.TrackNew, self.trackNewResponder) self.add_responder(events.view.browser.TrackNewFromTemplate, self.trackNewFromTemplateResponder) self.add_responder(events.view.track.Clicked, self.trackClickedResponder) self.add_responder(events.view.main.TrackSelectLeft, self.trackSelectLeftResponder) self.add_responder(events.view.main.TrackSelectRight, self.trackSelectRightResponder) self.add_responder(events.view.main.TrackMoveLeft, self.trackMoveLeftResponder) self.add_responder(events.view.main.TrackMoveRight, self.trackMoveRightResponder) self.add_responder(events.view.main.TrackRemove, self.trackRemoveResponder) self.add_responder(events.view.main.RowRemove, self.rowRemoveResponder) self.add_responder(events.view.track.CellSelected, self.cellSelectedResponder) self.add_responder(events.view.main.CellEvaluate, self.cellEvaluateResponder) # we evaluate row here instead of in Track to keep left-to-right # evaluation order when we move tracks self.add_responder(events.view.main.RowEvaluate, self.rowEvaluateResponder) self.add_responder(events.view.main.CellClear, self.cellClearResponder) self.add_responder(events.view.main.CellEdit, self.cellEditResponder) self.add_responder(events.view.main.TrackSetup, self.trackSetupResponder) self.add_responder(events.view.main.TrackSaveAsTemplate, self.trackSaveAsTemplateResponder) self.add_responder(events.track.TrackTemplateSaved, self.trackTemplateSavedResponder) self.add_responder(events.view.main.TrackRestartBackend, self.trackRestartBackendResponder) self.add_responder(events.view.main.BackendRestartAll, self.backendRestartAllResponder) self.add_responder(events.view.track.BackendRestart, self.trackConfirmationBackendRestartResponder)
def __init__(self, parent, data): QScrollArea.__init__(self, parent) View.__init__(self) View.setBinaryDataNavigable(self, True) self.setupView(self) self.data = data self.currentOffset = 0 self.byteView = None self.fullAnalysisButton = None self.importsWidget = None container = QWidget(self) layout = QVBoxLayout() entropyGroup = QGroupBox("Entropy", container) entropyLayout = QVBoxLayout() entropyLayout.addWidget( entropy.EntropyWidget(entropyGroup, self, self.data)) entropyGroup.setLayout(entropyLayout) layout.addWidget(entropyGroup) hdr = None try: if self.data.view_type == "PE": hdr = headers.PEHeaders(self.data) elif self.data.view_type != "Raw": hdr = headers.GenericHeaders(self.data) except: log.log_error(traceback.format_exc()) if hdr is not None: headerGroup = QGroupBox("Headers", container) headerLayout = QVBoxLayout() headerWidget = headers.HeaderWidget(headerGroup, hdr) headerLayout.addWidget(headerWidget) headerGroup.setLayout(headerLayout) layout.addWidget(headerGroup) if self.data.executable: importExportSplitter = QSplitter(Qt.Horizontal) importGroup = QGroupBox("Imports", container) importLayout = QVBoxLayout() self.importsWidget = imports.ImportsWidget(importGroup, self, self.data) importLayout.addWidget(self.importsWidget) importGroup.setLayout(importLayout) importExportSplitter.addWidget(importGroup) exportGroup = QGroupBox("Exports", container) exportLayout = QVBoxLayout() exportLayout.addWidget( exports.ExportsWidget(exportGroup, self, self.data)) exportGroup.setLayout(exportLayout) importExportSplitter.addWidget(exportGroup) layout.addWidget(importExportSplitter) if self.data.view_type != "PE": segmentsGroup = QGroupBox("Segments", container) segmentsLayout = QVBoxLayout() segmentsWidget = sections.SegmentsWidget( segmentsGroup, self.data) segmentsLayout.addWidget(segmentsWidget) segmentsGroup.setLayout(segmentsLayout) layout.addWidget(segmentsGroup) if len(segmentsWidget.segments) == 0: segmentsGroup.hide() sectionsGroup = QGroupBox("Sections", container) sectionsLayout = QVBoxLayout() sectionsWidget = sections.SectionsWidget(sectionsGroup, self.data) sectionsLayout.addWidget(sectionsWidget) sectionsGroup.setLayout(sectionsLayout) layout.addWidget(sectionsGroup) if len(sectionsWidget.sections) == 0: sectionsGroup.hide() buttonLayout = QHBoxLayout() buttonLayout.addStretch(1) self.loadDynamicButton = QPushButton("Load Dynamic Imports") self.loadDynamicButton.clicked.connect( self.importsWidget.scanDynamic) buttonLayout.addWidget(self.loadDynamicButton) self.fullAnalysisButton = QPushButton("Start Full Analysis") self.fullAnalysisButton.clicked.connect(self.startFullAnalysis) buttonLayout.addWidget(self.fullAnalysisButton) layout.addLayout(buttonLayout) layout.addStretch(1) else: self.byteView = byte.ByteView(self, self.data) layout.addWidget(self.byteView, 1) container.setLayout(layout) self.setWidgetResizable(True) self.setWidget(container) if self.fullAnalysisButton is not None and Settings().get_string( "analysis.mode", data) == "full": self.fullAnalysisButton.hide()
def __init__(self, app): QScrollArea.__init__(self) self.app = app self._reset_ui()
def __init__(self, zoomCB, clickCB, keyCB): QScrollArea.__init__(self) self.zoomCB = zoomCB self.clickCB = clickCB self.keyCB = keyCB