def __init__(self, repoagent, pats, opts, parent=None): QDialog.__init__(self, parent) self.setWindowIcon(qtlib.geticon('hg-status')) layout = QVBoxLayout() layout.setContentsMargins(0, 0, 0, 0) self.setLayout(layout) toplayout = QVBoxLayout() toplayout.setContentsMargins(10, 10, 10, 0) self.stwidget = StatusWidget(repoagent, pats, opts, self, checkable=False) toplayout.addWidget(self.stwidget, 1) layout.addLayout(toplayout) self.statusbar = cmdui.ThgStatusBar(self) layout.addWidget(self.statusbar) self.stwidget.showMessage.connect(self.statusbar.showMessage) self.stwidget.progress.connect(self.statusbar.progress) self.stwidget.titleTextChanged.connect(self.setWindowTitle) self.stwidget.linkActivated.connect(self.linkActivated) self._subdialogs = qtlib.DialogKeeper(StatusDialog._createSubDialog, parent=self) self.setWindowTitle(self.stwidget.getTitle()) self.setWindowFlags(Qt.Window) self.loadSettings() qtlib.newshortcutsforstdkey(QKeySequence.Refresh, self, self.stwidget.refreshWctx) QTimer.singleShot(0, self.stwidget.refreshWctx)
def __init__(self, repo, parent, *pats): QDialog.__init__(self, parent) self.repo = repo self.pats = pats self.thread = None self.setWindowTitle( _('Detect Copies/Renames in %s') % repo.displayname) self.setWindowIcon(qtlib.geticon('detect_rename')) self.setWindowFlags(Qt.Window) layout = QVBoxLayout() layout.setContentsMargins(*(2, ) * 4) self.setLayout(layout) # vsplit for top & diff vsplit = QSplitter(Qt.Horizontal) utframe = QFrame(vsplit) matchframe = QFrame(vsplit) utvbox = QVBoxLayout() utvbox.setContentsMargins(*(2, ) * 4) utframe.setLayout(utvbox) matchvbox = QVBoxLayout() matchvbox.setContentsMargins(*(2, ) * 4) matchframe.setLayout(matchvbox) hsplit = QSplitter(Qt.Vertical) layout.addWidget(hsplit) hsplit.addWidget(vsplit) utheader = QHBoxLayout() utvbox.addLayout(utheader) utlbl = QLabel(_('<b>Unrevisioned Files</b>')) utheader.addWidget(utlbl) self.refreshBtn = tb = QToolButton() tb.setToolTip(_('Refresh file list')) tb.setIcon(qtlib.geticon('view-refresh')) tb.clicked.connect(self.refresh) utheader.addWidget(tb) self.unrevlist = QListWidget() self.unrevlist.setSelectionMode(QAbstractItemView.ExtendedSelection) utvbox.addWidget(self.unrevlist) simhbox = QHBoxLayout() utvbox.addLayout(simhbox) lbl = QLabel() slider = QSlider(Qt.Horizontal) slider.setRange(0, 100) slider.setTickInterval(10) slider.setPageStep(10) slider.setTickPosition(QSlider.TicksBelow) slider.changefunc = lambda v: lbl.setText( _('Min Similarity: %d%%') % v) slider.valueChanged.connect(slider.changefunc) self.simslider = slider lbl.setBuddy(slider) simhbox.addWidget(lbl) simhbox.addWidget(slider, 1) buthbox = QHBoxLayout() utvbox.addLayout(buthbox) copycheck = QCheckBox(_('Only consider deleted files')) copycheck.setToolTip( _('Uncheck to consider all revisioned files ' 'for copy sources')) copycheck.setChecked(True) findrenames = QPushButton(_('Find Renames')) findrenames.setToolTip(_('Find copy and/or rename sources')) findrenames.setEnabled(False) findrenames.clicked.connect(self.findRenames) buthbox.addWidget(copycheck) buthbox.addStretch(1) buthbox.addWidget(findrenames) self.findbtn, self.copycheck = findrenames, copycheck matchlbl = QLabel(_('<b>Candidate Matches</b>')) matchvbox.addWidget(matchlbl) matchtv = QTreeView() matchtv.setSelectionMode(QTreeView.ExtendedSelection) matchtv.setItemsExpandable(False) matchtv.setRootIsDecorated(False) matchtv.setModel(MatchModel()) matchtv.setSortingEnabled(True) matchtv.selectionModel().selectionChanged.connect(self.showDiff) buthbox = QHBoxLayout() matchbtn = QPushButton(_('Accept All Matches')) matchbtn.clicked.connect(self.acceptMatch) matchbtn.setEnabled(False) buthbox.addStretch(1) buthbox.addWidget(matchbtn) matchvbox.addWidget(matchtv) matchvbox.addLayout(buthbox) self.matchtv, self.matchbtn = matchtv, matchbtn def matchselect(s, d): count = len(matchtv.selectedIndexes()) if count: self.matchbtn.setText(_('Accept Selected Matches')) else: self.matchbtn.setText(_('Accept All Matches')) selmodel = matchtv.selectionModel() selmodel.selectionChanged.connect(matchselect) sp = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) sp.setHorizontalStretch(1) matchframe.setSizePolicy(sp) diffframe = QFrame(hsplit) diffvbox = QVBoxLayout() diffvbox.setContentsMargins(*(2, ) * 4) diffframe.setLayout(diffvbox) difflabel = QLabel(_('<b>Differences from Source to Dest</b>')) diffvbox.addWidget(difflabel) difftb = QTextBrowser() difftb.document().setDefaultStyleSheet(qtlib.thgstylesheet) diffvbox.addWidget(difftb) self.difftb = difftb self.stbar = cmdui.ThgStatusBar() layout.addWidget(self.stbar) s = QSettings() self.restoreGeometry(s.value('guess/geom').toByteArray()) hsplit.restoreState(s.value('guess/hsplit-state').toByteArray()) vsplit.restoreState(s.value('guess/vsplit-state').toByteArray()) slider.setValue(s.value('guess/simslider').toInt()[0] or 50) self.vsplit, self.hsplit = vsplit, hsplit QTimer.singleShot(0, self.refresh)
def __init__(self, repo, parent): QDialog.__init__(self, parent) self.setWindowFlags(Qt.Window) self.setWindowIcon(qtlib.geticon('shelve')) self.repo = repo self.shelves = [] self.patches = [] layout = QVBoxLayout() layout.setContentsMargins(2, 2, 2, 2) layout.setSpacing(0) self.setLayout(layout) self.tbarhbox = hbox = QHBoxLayout() hbox.setContentsMargins(0, 0, 0, 0) hbox.setSpacing(0) self.layout().addLayout(self.tbarhbox) self.splitter = QSplitter(self) self.splitter.setOrientation(Qt.Horizontal) self.splitter.setChildrenCollapsible(False) self.splitter.setObjectName('splitter') self.layout().addWidget(self.splitter, 1) aframe = QFrame(self.splitter) avbox = QVBoxLayout() avbox.setSpacing(2) avbox.setMargin(2) avbox.setContentsMargins(2, 2, 2, 2) aframe.setLayout(avbox) ahbox = QHBoxLayout() ahbox.setSpacing(2) ahbox.setMargin(2) ahbox.setContentsMargins(2, 2, 2, 2) avbox.addLayout(ahbox) self.comboa = QComboBox(self) self.comboa.currentIndexChanged.connect(self.comboAChanged) self.clearShelfButtonA = QPushButton(_('Clear')) self.clearShelfButtonA.setToolTip(_('Clear the current shelf file')) self.clearShelfButtonA.clicked.connect(self.clearShelfA) self.delShelfButtonA = QPushButton(_('Delete')) self.delShelfButtonA.setToolTip(_('Delete the current shelf file')) self.delShelfButtonA.clicked.connect(self.deleteShelfA) ahbox.addWidget(self.comboa, 1) ahbox.addWidget(self.clearShelfButtonA) ahbox.addWidget(self.delShelfButtonA) self.browsea = chunks.ChunksWidget(repo, self, True) self.browsea.splitter.splitterMoved.connect(self.linkSplitters) self.browsea.linkActivated.connect(self.linkActivated) self.browsea.showMessage.connect(self.showMessage) avbox.addWidget(self.browsea) bframe = QFrame(self.splitter) bvbox = QVBoxLayout() bvbox.setSpacing(2) bvbox.setMargin(2) bvbox.setContentsMargins(2, 2, 2, 2) bframe.setLayout(bvbox) bhbox = QHBoxLayout() bhbox.setSpacing(2) bhbox.setMargin(2) bhbox.setContentsMargins(2, 2, 2, 2) bvbox.addLayout(bhbox) self.combob = QComboBox(self) self.combob.currentIndexChanged.connect(self.comboBChanged) self.clearShelfButtonB = QPushButton(_('Clear')) self.clearShelfButtonB.setToolTip(_('Clear the current shelf file')) self.clearShelfButtonB.clicked.connect(self.clearShelfB) self.delShelfButtonB = QPushButton(_('Delete')) self.delShelfButtonB.setToolTip(_('Delete the current shelf file')) self.delShelfButtonB.clicked.connect(self.deleteShelfB) bhbox.addWidget(self.combob, 1) bhbox.addWidget(self.clearShelfButtonB) bhbox.addWidget(self.delShelfButtonB) self.browseb = chunks.ChunksWidget(repo, self, True) self.browseb.splitter.splitterMoved.connect(self.linkSplitters) self.browseb.linkActivated.connect(self.linkActivated) self.browseb.showMessage.connect(self.showMessage) bvbox.addWidget(self.browseb) self.lefttbar = QToolBar(_('Left Toolbar'), objectName='lefttbar') self.lefttbar.setStyleSheet(qtlib.tbstylesheet) self.tbarhbox.addWidget(self.lefttbar) self.deletea = a = QAction(_('Delete selected chunks'), self) self.deletea.triggered.connect(self.browsea.deleteSelectedChunks) a.setIcon(qtlib.geticon('thg-shelve-delete-left')) self.lefttbar.addAction(self.deletea) self.allright = a = QAction(_('Move all files right'), self) self.allright.triggered.connect(self.moveFilesRight) a.setIcon(qtlib.geticon('thg-shelve-move-right-all')) self.lefttbar.addAction(self.allright) self.fileright = a = QAction(_('Move selected file right'), self) self.fileright.triggered.connect(self.moveFileRight) a.setIcon(qtlib.geticon('thg-shelve-move-right-file')) self.lefttbar.addAction(self.fileright) self.editfilea = a = QAction(_('Edit file'), self) a.setIcon(qtlib.geticon('edit-find')) self.lefttbar.addAction(self.editfilea) self.chunksright = a = QAction(_('Move selected chunks right'), self) self.chunksright.triggered.connect(self.moveChunksRight) a.setIcon(qtlib.geticon('thg-shelve-move-right-chunks')) self.lefttbar.addAction(self.chunksright) self.rbar = QToolBar(_('Refresh Toolbar'), objectName='rbar') self.rbar.setStyleSheet(qtlib.tbstylesheet) self.tbarhbox.addStretch(1) self.tbarhbox.addWidget(self.rbar) self.refreshAction = a = QAction(_('Refresh'), self) a.setIcon(qtlib.geticon('view-refresh')) a.setShortcuts(QKeySequence.Refresh) a.triggered.connect(self.refreshCombos) self.rbar.addAction(self.refreshAction) self.actionNew = a = QAction(_('New Shelf'), self) a.setIcon(qtlib.geticon('document-new')) a.triggered.connect(self.newShelfPressed) self.rbar.addAction(self.actionNew) self.righttbar = QToolBar(_('Right Toolbar'), objectName='righttbar') self.righttbar.setStyleSheet(qtlib.tbstylesheet) self.tbarhbox.addStretch(1) self.tbarhbox.addWidget(self.righttbar) self.chunksleft = a = QAction(_('Move selected chunks left'), self) self.chunksleft.triggered.connect(self.moveChunksLeft) a.setIcon(qtlib.geticon('thg-shelve-move-left-chunks')) self.righttbar.addAction(self.chunksleft) self.editfileb = a = QAction(_('Edit file'), self) a.setIcon(qtlib.geticon('edit-find')) self.righttbar.addAction(self.editfileb) self.fileleft = a = QAction(_('Move selected file left'), self) self.fileleft.triggered.connect(self.moveFileLeft) a.setIcon(qtlib.geticon('thg-shelve-move-left-file')) self.righttbar.addAction(self.fileleft) self.allleft = a = QAction(_('Move all files left'), self) self.allleft.triggered.connect(self.moveFilesLeft) a.setIcon(qtlib.geticon('thg-shelve-move-left-all')) self.righttbar.addAction(self.allleft) self.deleteb = a = QAction(_('Delete selected chunks'), self) self.deleteb.triggered.connect(self.browseb.deleteSelectedChunks) a.setIcon(qtlib.geticon('thg-shelve-delete-right')) self.righttbar.addAction(self.deleteb) self.editfilea.triggered.connect(self.browsea.editCurrentFile) self.editfileb.triggered.connect(self.browseb.editCurrentFile) self.browsea.chunksSelected.connect(self.chunksright.setEnabled) self.browsea.chunksSelected.connect(self.deletea.setEnabled) self.browsea.fileSelected.connect(self.fileright.setEnabled) self.browsea.fileSelected.connect(self.editfilea.setEnabled) self.browsea.fileModified.connect(self.refreshCombos) self.browsea.fileModelEmpty.connect(self.allright.setDisabled) self.browseb.chunksSelected.connect(self.chunksleft.setEnabled) self.browseb.chunksSelected.connect(self.deleteb.setEnabled) self.browseb.fileSelected.connect(self.fileleft.setEnabled) self.browseb.fileSelected.connect(self.editfileb.setEnabled) self.browseb.fileModified.connect(self.refreshCombos) self.browseb.fileModelEmpty.connect(self.allleft.setDisabled) self.statusbar = cmdui.ThgStatusBar(self) self.layout().addWidget(self.statusbar) self.showMessage( _('Backup copies of modified files can be found ' 'in .hg/Trashcan/')) self.refreshCombos() repo.repositoryChanged.connect(self.refreshCombos) self.setWindowTitle(_('TortoiseHg Shelve - %s') % repo.displayname) self.restoreSettings()
def __init__(self, repo, parent=None): QDialog.__init__(self, parent) self.repo = repo # Since the revset dialot belongs to a repository, we display # the repository name in the dialog title self.setWindowTitle(_('Revision Set Query') + ' - ' + repo.displayname) self.setWindowFlags(Qt.Window) layout = QVBoxLayout() layout.setMargin(0) layout.setContentsMargins(*(4, ) * 4) self.setLayout(layout) logical = _logical ancestry = _ancestry if 'hgsubversion' in repo.extensions(): logical = list(logical) + [ ('fromsvn()', _('all revisions converted from subversion')), ] ancestry = list(ancestry) + [ ('svnrev(rev)', _('changeset which represents converted svn revision')), ] self.stbar = cmdui.ThgStatusBar(self) self.stbar.setSizeGripEnabled(False) self.stbar.lbl.setOpenExternalLinks(True) self.showMessage.connect(self.stbar.showMessage) self.progress.connect(self.stbar.progress) hbox = QHBoxLayout() hbox.setContentsMargins(*(0, ) * 4) cgb = QGroupBox(_('Common sets')) cgb.setLayout(QVBoxLayout()) cgb.layout().setContentsMargins(*(2, ) * 4) def setCommonHelp(row): self.stbar.showMessage(self.clw._help[row]) self.clw = QListWidget(self) self.clw.addItems([x for x, y in _common]) self.clw._help = [y for x, y in _common] self.clw.currentRowChanged.connect(setCommonHelp) cgb.layout().addWidget(self.clw) hbox.addWidget(cgb) fgb = QGroupBox(_('File pattern sets')) fgb.setLayout(QVBoxLayout()) fgb.layout().setContentsMargins(*(2, ) * 4) def setFileHelp(row): self.stbar.showMessage(self.flw._help[row]) self.flw = QListWidget(self) self.flw.addItems([x for x, y in _filepatterns]) self.flw._help = [y for x, y in _filepatterns] self.flw.currentRowChanged.connect(setFileHelp) fgb.layout().addWidget(self.flw) hbox.addWidget(fgb) agb = QGroupBox(_('Set Ancestry')) agb.setLayout(QVBoxLayout()) agb.layout().setContentsMargins(*(2, ) * 4) def setAncHelp(row): self.stbar.showMessage(self.alw._help[row]) self.alw = QListWidget(self) self.alw.addItems([x for x, y in ancestry]) self.alw._help = [y for x, y in ancestry] self.alw.currentRowChanged.connect(setAncHelp) agb.layout().addWidget(self.alw) hbox.addWidget(agb) lgb = QGroupBox(_('Set Logic')) lgb.setLayout(QVBoxLayout()) lgb.layout().setContentsMargins(*(2, ) * 4) def setManipHelp(row): self.stbar.showMessage(self.llw._help[row]) self.llw = QListWidget(self) self.llw.addItems([x for x, y in logical]) self.llw._help = [y for x, y in logical] self.llw.currentRowChanged.connect(setManipHelp) lgb.layout().addWidget(self.llw) hbox.addWidget(lgb) # Clicking on one listwidget should clear selection of the others listwidgets = (self.clw, self.flw, self.alw, self.llw) for w in listwidgets: w.currentItemChanged.connect(self.currentItemChanged) #w.itemActivated.connect(self.returnPressed) for w2 in listwidgets: if w is not w2: w.itemClicked.connect(w2.clearSelection) layout.addLayout(hbox, 1) self.entry = RevsetEntry(self) self.entry.addCompletions(logical, ancestry, _filepatterns, _common) self.entry.returnPressed.connect(self.returnPressed) layout.addWidget(self.entry, 0) txt = _('<a href="http://www.selenic.com/mercurial/hg.1.html#revsets">' 'help revsets</a>') helpLabel = QLabel(txt) helpLabel.setOpenExternalLinks(True) self.stbar.addPermanentWidget(helpLabel) layout.addWidget(self.stbar, 0) QShortcut(QKeySequence('Return'), self, self.returnPressed) QShortcut(QKeySequence('Escape'), self, self.reject) self.refreshing = None
def __init__(self, repoagent, parent, **opts): QWidget.__init__(self, parent) self._repoagent = repoagent repo = repoagent.rawRepo() self.opts = opts self.refreshing = False self.finishfunc = None layout = QVBoxLayout() layout.setSpacing(4) self.setLayout(layout) b = QPushButton(_('QRefresh')) f = b.font() f.setWeight(QFont.Bold) b.setFont(f) self.qnewOrRefreshBtn = b self.qqueueBtn = QPushButton(_('Queues')) # top toolbar tbarhbox = QHBoxLayout() tbarhbox.setSpacing(5) self.layout().addLayout(tbarhbox, 0) self.revisionOrCommitBtn = QPushButton() self.queueCombo = QComboBox() self.queueCombo.activated['QString'].connect(self.qqueueActivate) self.optionsBtn = QPushButton(_('Options')) self.msgSelectCombo = PatchMessageCombo(self) tbarhbox.addWidget(self.revisionOrCommitBtn) tbarhbox.addWidget(self.queueCombo) tbarhbox.addWidget(self.optionsBtn) tbarhbox.addWidget(self.qqueueBtn) tbarhbox.addWidget(self.msgSelectCombo, 1) tbarhbox.addWidget(self.qnewOrRefreshBtn) # main area consists of a two-way horizontal splitter self.splitter = splitter = QSplitter() self.layout().addWidget(splitter, 1) splitter.setOrientation(Qt.Horizontal) splitter.setChildrenCollapsible(True) splitter.setObjectName('splitter') self.filesFrame = QFrame(splitter) # Files Frame layout = QVBoxLayout() layout.setSpacing(5) layout.setContentsMargins(0, 0, 0, 0) self.filesFrame.setLayout(layout) mtbarhbox = QHBoxLayout() mtbarhbox.setSpacing(8) layout.addLayout(mtbarhbox, 0) mtbarhbox.setContentsMargins(0, 0, 0, 0) self.newCheckBox = QCheckBox(_('New Patch')) self.patchNameLE = mqutil.getPatchNameLineEdit() mtbarhbox.addWidget(self.newCheckBox) mtbarhbox.addWidget(self.patchNameLE, 1) self.messageEditor = messageentry.MessageEntry(self) self.messageEditor.installEventFilter( qscilib.KeyPressInterceptor(self)) self.messageEditor.refresh(repo) self.stwidget = status.StatusWidget(repoagent, None, opts, self) self.stwidget.runCustomCommandRequested.connect( self.runCustomCommandRequested) self.fileview = self.stwidget.fileview self.fileview.showMessage.connect(self.showMessage) self.fileview.setContext(repo[None]) self.fileview.shelveToolExited.connect(self.reload) layout.addWidget(self.stwidget) # Message and diff vb2 = QVBoxLayout() vb2.setSpacing(0) vb2.setContentsMargins(0, 0, 0, 0) w = QWidget() w.setLayout(vb2) splitter.addWidget(w) self.vsplitter = vsplitter = QSplitter() vsplitter.setOrientation(Qt.Vertical) vb2.addWidget(vsplitter) vsplitter.addWidget(self.messageEditor) vsplitter.addWidget(self.stwidget.docf) # Command runner and connections... self.cmd = cmdui.Runner(not parent, self) self.cmd.output.connect(self.output) self.cmd.makeLogVisible.connect(self.makeLogVisible) self.cmd.progress.connect(self.progress) self.cmd.commandFinished.connect(self.onCommandFinished) self.qqueueBtn.clicked.connect(self.launchQQueueTool) self.optionsBtn.clicked.connect(self.launchOptionsDialog) self.revisionOrCommitBtn.clicked.connect(self.qinitOrCommit) self.msgSelectCombo.activated.connect(self.onMessageSelected) self.newCheckBox.toggled.connect(self.onNewModeToggled) self.qnewOrRefreshBtn.clicked.connect(self.onQNewOrQRefresh) QShortcut(QKeySequence('Ctrl+Return'), self, self.onQNewOrQRefresh) QShortcut(QKeySequence('Ctrl+Enter'), self, self.onQNewOrQRefresh) self._repoagent.configChanged.connect(self.onConfigChanged) self._repoagent.repositoryChanged.connect(self.reload) self.setAcceptDrops(True) if parent: self.layout().setContentsMargins(2, 2, 2, 2) else: self.layout().setContentsMargins(0, 0, 0, 0) self.setWindowTitle(_('TortoiseHg Patch Queue')) self.statusbar = cmdui.ThgStatusBar(self) self.layout().addWidget(self.statusbar) self.progress.connect(self.statusbar.progress) self.showMessage.connect(self.statusbar.showMessage) qtlib.newshortcutsforstdkey(QKeySequence.Refresh, self, self.reload) self.resize(850, 550) self.loadConfigs() QTimer.singleShot(0, self.reload)
def __init__(self, repo, command, pats, parent): QDialog.__init__(self, parent) self.setWindowFlags(Qt.Window) self.pats = pats self.repo = repo os.chdir(repo.root) # Handle rm alias if command == 'rm': command = 'remove' self.command = command self.setWindowTitle(_('%s - hg %s') % (repo.displayname, command)) self.setWindowIcon(qtlib.geticon(ICONS[command])) layout = QVBoxLayout() layout.setMargin(0) self.setLayout(layout) toplayout = QVBoxLayout() toplayout.setContentsMargins(5, 5, 5, 0) layout.addLayout(toplayout) hbox = QHBoxLayout() lbl = QLabel(LABELS[command][0]) slbl = QLabel() hbox.addWidget(lbl) hbox.addStretch(1) hbox.addWidget(slbl) self.status_label = slbl toplayout.addLayout(hbox) types = { 'add' : 'I?', 'forget' : 'MAR!C', 'revert' : 'MAR!', 'remove' : 'MAR!CI?', } filetypes = types[self.command] checktypes = { 'add' : '?', 'forget' : '', 'revert' : 'MAR!', 'remove' : '', } defcheck = checktypes[self.command] opts = {} for s, val in status.statusTypes.iteritems(): opts[val.name] = s in filetypes opts['checkall'] = True # pre-check all matching files stwidget = status.StatusWidget(repo, pats, opts, self, defcheck=defcheck) toplayout.addWidget(stwidget, 1) hbox = QHBoxLayout() if self.command == 'revert': ## no backup checkbox chk = QCheckBox(_('Do not save backup files (*.orig)')) elif self.command == 'remove': ## force checkbox chk = QCheckBox(_('Force removal of modified files (--force)')) else: chk = None if chk: self.chk = chk hbox.addWidget(chk) self.statusbar = cmdui.ThgStatusBar(self) stwidget.showMessage.connect(self.statusbar.showMessage) self.cmd = cmd = cmdui.Runner(True, self) cmd.commandStarted.connect(self.commandStarted) cmd.commandFinished.connect(self.commandFinished) cmd.progress.connect(self.statusbar.progress) BB = QDialogButtonBox bb = QDialogButtonBox(BB.Ok|BB.Close) bb.accepted.connect(self.accept) bb.rejected.connect(self.reject) bb.button(BB.Ok).setDefault(True) bb.button(BB.Ok).setText(LABELS[command][1]) hbox.addStretch() hbox.addWidget(bb) toplayout.addLayout(hbox) self.bb = bb if self.command == 'add': if 'largefiles' in self.repo.extensions(): self.addLfilesButton = QPushButton(_('Add &Largefiles')) else: self.addLfilesButton = None if self.addLfilesButton: self.addLfilesButton.clicked.connect(self.addLfiles) bb.addButton(self.addLfilesButton, BB.ActionRole) layout.addWidget(self.statusbar) s = QSettings() stwidget.loadSettings(s, 'quickop') self.restoreGeometry(s.value('quickop/geom').toByteArray()) if hasattr(self, 'chk'): if self.command == 'revert': self.chk.setChecked(s.value('quickop/nobackup', True).toBool()) elif self.command == 'remove': self.chk.setChecked(s.value('quickop/forceremove', False).toBool()) self.stwidget = stwidget self.stwidget.refreshWctx() QShortcut(QKeySequence('Ctrl+Return'), self, self.accept) QShortcut(QKeySequence('Ctrl+Enter'), self, self.accept) qtlib.newshortcutsforstdkey(QKeySequence.Refresh, self, self.stwidget.refreshWctx) QShortcut(QKeySequence('Escape'), self, self.reject)