by
Changes to 15 files · Browse files at 198b2599029e Showing diff from parent b3dcc064467a aa60c11b8ae3 Diff from another changeset...
@@ -261,6 +261,7 @@ self._apis = QsciAPIs(self.msgte.lexer())
tokens = set()
for e in self.stwidget.getChecked():
+ e = hglib.tounicode(e)
tokens.add(e)
tokens.add(os.path.basename(e))
tokens.add(wfile)
|
@@ -310,6 +310,7 @@ sci.setLexer(self.lexer)
sci.setReadOnly(True)
+ sci.setUtf8(True)
lay.addWidget(sci)
# hide margin 0 (markers)
|
@@ -71,11 +71,11 @@ for act in ['diff', 'revert']:
self._actions[act].setEnabled(real or wd)
if len(ctx.parents()) == 2:
- self.actionShowAllMerge.setVisible(True)
- self.actionSecondParent.setVisible(True)
+ self.actionShowAllMerge.setEnabled(True)
+ self.actionSecondParent.setEnabled(True)
else:
- self.actionShowAllMerge.setVisible(False)
- self.actionSecondParent.setVisible(False)
+ self.actionShowAllMerge.setEnabled(False)
+ self.actionSecondParent.setEnabled(False)
def currentFile(self):
index = self.currentIndex()
@@ -216,13 +216,11 @@ _('Toggle display of all files and the direction they were merged'))
self.actionShowAllMerge.setCheckable(True)
self.actionShowAllMerge.setChecked(False)
- self.actionShowAllMerge.setVisible(False)
self.actionSecondParent = QAction(_('Other'), self)
self.actionSecondParent.setToolTip(
_('Toggle display of diffs to second (other) parent'))
self.actionSecondParent.setCheckable(True)
self.actionSecondParent.setChecked(False)
- self.actionSecondParent.setVisible(False)
self.actionSecondParent.setEnabled(False)
self._actions = {}
|
@@ -30,6 +30,8 @@ (Passed as `hg email --bundle --rev {rev}`)
"""
super(EmailDialog, self).__init__(parent)
+ self.setWindowFlags((self.windowFlags() | Qt.WindowMinimizeButtonHint)
+ & ~Qt.WindowContextHelpButtonHint)
self._repo = repo
self._outgoing = outgoing
self._outgoingrevs = outgoingrevs or []
|
@@ -13,6 +13,9 @@ <property name="windowTitle">
<string>Email</string>
</property>
+ <property name="sizeGripEnabled">
+ <bool>true</bool>
+ </property>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QTabWidget" name="main_tabs">
|
|
|
@@ -22,7 +22,7 @@
class PatchBranchWidget(QWidget):
'''
- A widget that show the patch graph and provide actions
+ A widget that show the patch graph and provide actions
for the pbranch extension
'''
output = pyqtSignal(QString, QString)
@@ -129,7 +129,7 @@
# compute model data
self.patchlistmodel.setModel(
- self.compute_model(),
+ self.compute_model(),
self.repo.changectx('.').branch() )
# restore patch selection
@@ -137,7 +137,7 @@ selinxs = self.patchlistmodel.match(
self.patchlistmodel.index(0, patchnamecol),
Qt.DisplayRole,
- selname,
+ selname,
flags = Qt.MatchExactly)
if len(selinxs) > 0:
self.patchlist.setCurrentIndex(selinxs[0])
@@ -175,7 +175,7 @@ parents = graph.deps(name)
# Node properties
- if name in dep_list:
+ if name in dep_list:
node_column = dep_list.index(name)
else:
node_column = len(dep_list)
@@ -299,11 +299,11 @@ return False
self.pnew(hglib.fromunicode(new_name))
return True
-
+
def pnew(self, patch_name):
"""
[pbranch] Execute 'pnew' command.
-
+
:param patch_name: Name of new patch-branch
"""
if self.pbranch is None:
@@ -312,7 +312,7 @@ self.pbranch.cmdnew(self.repo.ui, self.repo, patch_name)
self.repo.decrementBusyCount()
return True
-
+
def pmerge(self, patch_name=None):
"""
[pbranch] Execute 'pmerge' command.
@@ -339,14 +339,14 @@
def is_patch(self, branch_name):
""" return True if branch is a patch. This excludes root branches
- and internal diff base branches (for patches with multiple
+ and internal diff base branches (for patches with multiple
dependencies. """
return self.has_pbranch() and self.pgraph().ispatch(branch_name)
def cur_branch(self):
""" Return branch that workdir belongs to. """
return self.repo.dirstate.branch()
-
+
### internal functions ###
def update_sensitivity(self):
@@ -358,7 +358,7 @@ self.actionReapply.setEnabled(True)
self.actionPNew.setEnabled(not is_merge)
self.actionEditPGraph.setEnabled(True)
-
+
def selected_patch(self):
C_NAME = PatchBranchModel._columns.index('Name')
indexes = self.patchlist.selectedIndexes()
@@ -372,7 +372,7 @@ patchname = self.selected_patch()
if not patchname:
return
-
+
menu = QMenu(self)
def append(label, handler):
menu.addAction(label).triggered.connect(handler)
@@ -401,7 +401,7 @@ def contextMenuEvent(self, event):
if self.patchlist.geometry().contains(event.pos()):
self.show_patch_cmenu(event.globalPos())
-
+
def commandFinished(self, ret):
self.repo.decrementBusyCount()
self.refresh()
@@ -435,7 +435,7 @@ no_editor_configured =(os.environ.get("HGEDITOR") or
self.repo.ui.config("ui", "editor") or
os.environ.get("VISUAL") or
- os.environ.get("EDITOR","editor-not-configured")
+ os.environ.get("EDITOR","editor-not-configured")
== "editor-not-configured")
if no_editor_configured:
qtlib.ErrorMsgBox(_('No editor found'),
@@ -458,7 +458,7 @@ def goto_activated(self):
branch = self.selected_patch()
# TODO: Fetch list of heads of branch
- # - use a list of revs if more than one found
+ # - use a list of revs if more than one found
dlg = update.UpdateDialog(self.repo, branch, self)
dlg.output.connect(self.output)
dlg.makeLogVisible.connect(self.makeLogVisible)
@@ -535,7 +535,7 @@ Model used to list patch branches
TODO: Should be extended to list all branches
"""
- _columns = ('Graph', 'Name', 'Status', 'Title', 'Message',)
+ _columns = ['Graph', 'Name', 'Status', 'Title', 'Message',]
def __init__(self, model, wd_branch="", parent=None):
QAbstractTableModel.__init__(self, parent)
|
@@ -153,6 +153,7 @@ w.revisionSelected.connect(self.repoview.goto)
w.grepRequested.connect(self.grep)
w.showMessage.connect(self.showMessage)
+ w.updateToRevision.connect(lambda rev: self.updateToRevision())
self.logTabIndex = idx = tt.addTab(w, qtlib.geticon('hg-log'), '')
tt.setTabToolTip(idx, _("Revision details"))
|
@@ -23,6 +23,7 @@ linkActivated = pyqtSignal(unicode)
grepRequested = pyqtSignal(unicode, dict)
revisionSelected = pyqtSignal(int)
+ updateToRevision = pyqtSignal(int)
def __init__(self, repo):
QWidget.__init__(self)
@@ -61,7 +62,7 @@ # + revisiondetails_layout -----------------------------------------+
# |+ filelist_splitter ........ |
# | + tbarFileListFrame (vbox)| + cset_and_file_details_frame (vbox)|
- # | + mergeToolbar | + revpanel |
+ # | + filelistToolbar | + revpanel |
# +---------------------------+-------------------------------------+
# | + filelist | + message_splitter |
# | | :+ message |
@@ -85,8 +86,8 @@ self.filelist_splitter.setOrientation(Qt.Horizontal)
self.filelist_splitter.setChildrenCollapsible(False)
- self.mergeToolBar = QToolBar(_('Merge Toolbar'))
- self.mergeToolBar.setIconSize(QSize(16,16))
+ self.filelistToolbar = QToolBar(_('File List Toolbar'))
+ self.filelistToolbar.setIconSize(QSize(16,16))
self.filelist = HgFileListView()
self.tbarFileListFrame = QFrame(self.filelist_splitter)
@@ -100,7 +101,7 @@ vbox = QVBoxLayout()
vbox.setSpacing(0)
vbox.setMargin(0)
- vbox.addWidget(self.mergeToolBar)
+ vbox.addWidget(self.filelistToolbar)
vbox.addWidget(self.filelist)
self.tbarFileListFrame.setLayout(vbox)
@@ -176,8 +177,13 @@ self.actionActivateFileAlt.setShortcuts([Qt.ALT+Qt.Key_Return,
Qt.ALT+Qt.Key_Enter])
self.actionActivateFileAlt.triggered.connect(fileActivated)
- self.mergeToolBar.addAction(self.filelist.actionShowAllMerge)
- self.mergeToolBar.addAction(self.filelist.actionSecondParent)
+
+ self.actionUpdate = a = self.filelistToolbar.addAction(
+ geticon('hg-update'), _('Update to this revision'))
+ a.triggered.connect(lambda: self.updateToRevision.emit(self._last_rev))
+ self.filelistToolbar.addSeparator()
+ self.filelistToolbar.addAction(self.filelist.actionShowAllMerge)
+ self.filelistToolbar.addAction(self.filelist.actionSecondParent)
self.actionNextLine = QAction('Next line', self)
self.actionNextLine.setShortcut(Qt.SHIFT + Qt.Key_Down)
|
@@ -50,7 +50,7 @@ 'HideMenuOutsideRepo':
[False, THGKEY, REG_SZ, is_true, one_str, 'hidecmenu'],
PROMOTEDITEMS:
- ['commit', THGKEY, REG_SZ, noop, noop, None],
+ ['commit,workbench', THGKEY, REG_SZ, noop, noop, None],
'ShowUnversionedOverlay':
[True, OVLKEY, REG_DWORD, nonzero, one_int, 'enableUnversionedHandler'],
'ShowIgnoredOverlay':
|
@@ -75,6 +75,7 @@ self.opts = {}
self.cmenu = None
self.embedded = bool(parent)
+ self.targetargs = []
self.repo.configChanged.connect(self.configChanged)
@@ -302,7 +303,9 @@
def applyTargetOption(self, cmdline):
if self.embedded and self.targetcheckbox.isChecked():
- cmdline += self.targetargs[self.targetcombo.currentIndex()]
+ idx = self.targetcombo.currentIndex()
+ if idx != -1 and idx < len(self.targetargs):
+ cmdline += self.targetargs[idx]
return cmdline
def configChanged(self):
|
@@ -563,7 +563,7 @@ summary = lines and lines[0] or ''
if summary and len(lines) > 1:
- summary += '...'
+ summary += u' \u2026' # ellipsis ...
return summary
|
@@ -622,7 +622,7 @@ tw = self.repoTabsWidget
for idx in range(tw.count()):
rw = tw.widget(idx)
- repostosave.append(rw.repo.root)
+ repostosave.append(hglib.tounicode(rw.repo.root))
s.setValue(wb + 'openrepos', (',').join(repostosave))
def restoreSettings(self):
@@ -632,7 +632,7 @@ self.restoreState(s.value(wb + 'windowState').toByteArray())
save = s.value(wb + 'saveRepos').toBool()
self.actionSaveRepos.setChecked(save)
- for path in str(s.value(wb + 'openrepos').toString()).split(','):
+ for path in hglib.fromunicode(s.value(wb + 'openrepos').toString()).split(','):
self._openRepo(path)
# Allow repo registry to assemble itself before toggling path state
sp = s.value(wb + 'showPaths').toBool()
|
@@ -139,7 +139,7 @@ summary = lines and lines[0] or ''
if summary and len(lines) > 1:
- summary += '...'
+ summary += u' \u2026' # ellipsis ...
return summary
|
@@ -793,7 +793,7 @@ TDEBUG_TRACE("RunDialog: THG root is empty");
return;
}
- std::string hgcmd = dir + "\\thg.exe";
+ std::string hgcmd = dir + "\\thgw.exe";
WIN32_FIND_DATAA data;
HANDLE hfind = FindFirstFileA(hgcmd.c_str(), &data);
|
@@ -49,6 +49,10 @@ <File Name="libsvn_subr-1.dll" />
<File Name="libsvn_wc-1.dll" />
<File Name="libsvn_swig_py-1.dll" />
+ <?if $(var.Platform) = "x86" ?>
+ <File Name="intl3_svn.dll" />
+ <File Name="libdb44.dll" />
+ <?endif?>
<File Name="select.pyd" />
<File Name="sip.pyd" />
<File Name="unicodedata.pyd" />
|
Loading...