wb_diff_side_by_side_view.py 文件源码

python
阅读 45 收藏 0 点赞 0 评论 0

项目:scm-workbench 作者: barry-scott 项目源码 文件源码
def __init__( self, app, parent, title, file_left, header_left, file_right, header_right, ):
        super().__init__( app, app.debug_options.debugLogDiff, parent=parent )
        wb_tracked_qwidget.WbTrackedModeless.__init__( self )

        prefs = self.app.prefs.diff_window
        geometry = prefs.geometry

        self.setWindowTitle( title )
        icon = app.getAppQIcon()
        if icon is not None:
            self.setWindowIcon( icon )

        if geometry is not None:
            geometry = QtCore.QByteArray( geometry.encode('utf-8') )
            self.restoreGeometry( QtCore.QByteArray.fromHex( geometry ) )

        else:
            em = self.app.fontMetrics().width( 'm' )
            ex = self.app.fontMetrics().lineSpacing()
            self.resize( 130*em, 45*ex )

        self.setupToolBar()
        self.setupStatusBar( self.statusBar() )

        self.splitter = QtWidgets.QSplitter()
        self.splitter.setOrientation( QtCore.Qt.Horizontal )
        self.sash_ratio = 0.5

        self.panel_left = DiffWidget( app, self.splitter, header_left, name='left' )
        self.panel_right = DiffWidget( app, self.splitter, header_right, name='right' )

        self.panel_left.ed.setMirrorEditor( self.panel_right.ed )
        self.panel_right.ed.setMirrorEditor( self.panel_left.ed )

        self.panel_left.ed.setProcessKeyHandler( self.processKeyHandler )
        self.panel_right.ed.setProcessKeyHandler( self.processKeyHandler )

        self.splitter.addWidget( self.panel_left )
        self.splitter.addWidget( self.panel_right )

        # Create the editor and calculate all the differences
        self.processor = wb_diff_processor.DiffProcessor( self.panel_left.ed, self.panel_right.ed )
        self.diff = wb_diff_difflib.Difference( self.processor )

        self.files_ok = self.diff.filecompare( file_left, file_right )
        if not self.files_ok:
            return

        self.setChangeCounts( 0, self.processor.getChangeCount() )

        self.setCentralWidget( self.splitter )

        # start with folds collapsed
        self.actionFoldsCollapse()
        # show first diff
        self.actionDiffNext()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号