Changeset 5291df35db36…
Parent 51c2cb07ac33…
by
Changes to 6 files · Browse files at 5291df35db36 Showing diff from parent 51c2cb07ac33 Diff from another changeset...
@@ -1014,9 +1014,12 @@ from tortoisehg.hgqt.run import qtrun
qtrun(run, ui.ui(), root=link[8:])
if link.startswith('shelve:'):
- from tortoisehg.hgqt import run
repo = self.commit.repo
- run.shelve(repo.ui, repo=repo)
+ from tortoisehg.hgqt import shelve
+ dlg = shelve.ShelveDialog(repo, self)
+ dlg.finished.connect(dlg.deleteLater)
+ dlg.exec_()
+ self.refresh()
def setButtonName(self, name):
self.bb.button(QDialogButtonBox.Ok).setText(name)
|
@@ -399,20 +399,11 @@ dlg.exec_()
self.check_status()
elif cmd == 'shelve':
- def finished():
- self.wizard().setWindowModality(Qt.ApplicationModal)
- self.wizard().setEnabled(True)
- self.shelvedlg.setWindowModality(Qt.NonModal)
- self.shelvedlg.hide()
- self.check_status()
- self.wizard().setWindowModality(Qt.NonModal)
- self.wizard().setEnabled(False)
from tortoisehg.hgqt import shelve
- self.shelvedlg = dlg = shelve.ShelveDialog(repo)
- dlg.finished.connect(finished)
- dlg.show()
- dlg.raise_()
- dlg.setWindowModality(Qt.ApplicationModal)
+ dlg = shelve.ShelveDialog(repo, self.wizard())
+ dlg.finished.connect(dlg.deleteLater)
+ dlg.exec_()
+ self.check_status()
elif cmd.startswith('discard'):
if cmd != 'discard:noconfirm':
labels = [(QMessageBox.Yes, _('&Discard')),
|
@@ -20,7 +20,7 @@ from tortoisehg.hgqt import cmdui, update, tag, backout, merge, visdiff
from tortoisehg.hgqt import archive, thgimport, thgstrip, run, purge, bookmark
from tortoisehg.hgqt import bisect, rebase, resolve, thgrepo, compress
-from tortoisehg.hgqt import qdelete, qreorder, qrename, qfold
+from tortoisehg.hgqt import qdelete, qreorder, qrename, qfold, shelve
from tortoisehg.hgqt.repofilter import RepoFilterBar
from tortoisehg.hgqt.repoview import HgRepoView
@@ -211,13 +211,10 @@
@pyqtSlot(unicode)
def _openLink(self, link):
- def launchShelve(param):
- run.shelve(self.repo.ui, repo=self.repo)
-
link = unicode(link)
handlers = {'cset': self.goto,
'subrepo': self.repoLinkClicked.emit,
- 'shelve' : launchShelve}
+ 'shelve' : self.shelve}
if ':' in link:
scheme, param = link.split(':', 1)
hdr = handlers.get(scheme)
@@ -446,8 +443,10 @@ dlg.setfilepaths(paths)
dlg.exec_()
- def shelve(self):
- run.shelve(self.repo.ui, repo=self.repo)
+ def shelve(self, arg=None):
+ dlg = shelve.ShelveDialog(self.repo, self)
+ dlg.finished.connect(dlg.deleteLater)
+ dlg.exec_()
def verify(self):
cmdline = ['--repository', self.repo.root, 'verify', '--verbose']
|
|
|
@@ -16,24 +16,33 @@ from PyQt4.QtCore import *
from PyQt4.QtGui import *
-class ShelveDialog(QMainWindow):
+class ShelveDialog(QDialog):
finished = pyqtSignal(int)
-
wdir = _('Working Directory')
- def __init__(self, repo):
- QMainWindow.__init__(self)
+ def __init__(self, repo, parent):
+ QDialog.__init__(self, parent)
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.setCentralWidget(self.splitter)
+ self.layout().addWidget(self.splitter, 1)
aframe = QFrame(self.splitter)
avbox = QVBoxLayout()
@@ -86,7 +95,7 @@ bvbox.addWidget(self.browseb)
self.rbar = QToolBar(_('Refresh Toolbar'), objectName='rbar')
- self.addToolBar(self.rbar)
+ self.tbarhbox.addWidget(self.rbar)
self.refreshAction = a = QAction(_('Refresh'), self)
a.setIcon(qtlib.geticon('reload'))
a.setShortcut(QKeySequence.Refresh)
@@ -98,7 +107,7 @@ self.rbar.addAction(self.actionNew)
self.lefttbar = QToolBar(_('Left Toolbar'), objectName='lefttbar')
- self.addToolBar(self.lefttbar)
+ self.tbarhbox.addWidget(self.lefttbar)
self.deletea = a = QAction(_('Deleted selected chunks'), self)
self.deletea.triggered.connect(self.browsea.deleteSelectedChunks)
a.setIcon(qtlib.geticon('delfilesleft'))
@@ -120,7 +129,8 @@ self.lefttbar.addAction(self.chunksright)
self.righttbar = QToolBar(_('Right Toolbar'), objectName='righttbar')
- self.addToolBar(self.righttbar)
+ 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('chunk2left'))
@@ -158,7 +168,7 @@ self.browseb.fileModelEmpty.connect(self.allleft.setDisabled)
self.statusbar = cmdui.ThgStatusBar(self)
- self.setStatusBar(self.statusbar)
+ self.layout().addWidget(self.statusbar)
self.refreshCombos()
repo.repositoryChanged.connect(self.refreshCombos)
@@ -380,29 +390,20 @@ s = QSettings()
wb = "shelve/"
s.setValue(wb + 'geometry', self.saveGeometry())
- s.setValue(wb + 'windowState', self.saveState())
s.setValue(wb + 'filesplitter', self.browsea.splitter.saveState())
def restoreSettings(self):
s = QSettings()
wb = "shelve/"
self.restoreGeometry(s.value(wb + 'geometry').toByteArray())
- self.restoreState(s.value(wb + 'windowState').toByteArray())
self.browsea.splitter.restoreState(
s.value(wb + 'filesplitter').toByteArray())
self.browseb.splitter.restoreState(
s.value(wb + 'filesplitter').toByteArray())
- def safeToExit(self):
- return True
-
def closeEvent(self, event):
- if not self.safeToExit():
- event.ignore()
- else:
- self.storeSettings()
- # mimic QDialog exit
- self.finished.emit(0)
+ self.storeSettings()
+ super(ShelveDialog, self).closeEvent(event)
def run(ui, *pats, **opts):
if 'repo' in opts:
@@ -411,4 +412,4 @@ from tortoisehg.util import paths
from tortoisehg.hgqt import thgrepo
repo = thgrepo.repository(ui, path=paths.find_root())
- return ShelveDialog(repo)
+ return ShelveDialog(repo, None)
|
@@ -702,8 +702,11 @@ link = unicode(link)
repo = self.stwidget.repo
if link.startswith('shelve:'):
- from tortoisehg.hgqt import run
- run.shelve(repo.ui, repo=repo)
+ from tortoisehg.hgqt import shelve
+ dlg = shelve.ShelveDialog(self.stwidget.repo, self)
+ dlg.finished.connect(dlg.deleteLater)
+ dlg.exec_()
+ self.stwidget.refreshWctx()
def keyPressEvent(self, event):
if event.matches(QKeySequence.Refresh):
|
@@ -250,18 +250,10 @@ if buttons['discard'] == clicked:
cmdline.append('--clean')
elif buttons['shelve'] == clicked:
- def finished():
- self.setWindowModality(Qt.ApplicationModal)
- self.shelvedlg.setWindowModality(Qt.NonModal)
- self.shelvedlg.hide()
- self.update()
from tortoisehg.hgqt import shelve
- self.shelvedlg = dlg = shelve.ShelveDialog(self.repo)
- dlg.finished.connect(finished)
- dlg.show()
- dlg.raise_()
- dlg.setWindowModality(Qt.ApplicationModal)
- self.setWindowModality(Qt.NonModal)
+ dlg = shelve.ShelveDialog(self.repo, self)
+ dlg.finished.connect(dlg.deleteLater)
+ dlg.exec_()
return
elif buttons['merge'] == clicked:
pass # no args
|
Loading...