Changeset e22f93b32477…
Parent 29806eec531f…
by
Changes to 2 files · Browse files at e22f93b32477 Showing diff from parent 29806eec531f Diff from another changeset...
@@ -1210,11 +1210,11 @@ shortdesc = allexts[name]
ck = gtk.CheckButton(name, use_underline=False)
ck.connect('toggled', self.dirty_event)
+ ck.connect('toggled', self._validateextensions)
ck.connect('focus-in-event', self.set_help,
hglib.toutf(shortdesc))
col, row = i / maxrows, i % maxrows
extstable.attach(ck, col, col + 1, row, row + 1)
- self.tooltips.set_tip(ck, hglib.toutf(shortdesc))
self.extensionschecks[name] = ck
def _enabledextensions(self):
@@ -1238,6 +1238,18 @@
def refresh_extensions_frame(self):
enabledexts = self._enabledextensions()
+ for name, ck in self.extensionschecks.iteritems():
+ ck.set_active(name in enabledexts)
+
+ self._validateextensions()
+
+ def _validateextensions(self, *args):
+ enabledexts = self._enabledextensions()
+ selectedexts = set(name for name, ck
+ in self.extensionschecks.iteritems()
+ if ck.get_active())
+ invalidexts = hglib.validateextensions(selectedexts)
+
def getinival(name):
if 'extensions' not in self.ini:
return None
@@ -1257,12 +1269,17 @@ elif name in enabledexts and curval is None:
# re-disabling ext is not supported
return False
+ elif name in invalidexts and name not in selectedexts:
+ # disallow to enable bad exts, but allow to disable it
+ return False
else:
return True
+ allexts = hglib.allextensions()
for name, ck in self.extensionschecks.iteritems():
- ck.set_active(name in enabledexts)
ck.set_sensitive(changable(name))
+ self.tooltips.set_tip(ck, invalidexts.get(name)
+ or hglib.toutf(allexts[name]))
def apply_extensions_changes(self):
enabledexts = self._enabledextensions()
|
@@ -220,6 +220,22 @@ exts.update(enabledexts)
return exts
+def validateextensions(enabledexts):
+ """Report extensions which should be disabled
+
+ Returns the dict {name: message} of extensions expected to be disabled.
+ message is 'utf-8'-encoded string.
+ """
+ from tortoisehg.util.i18n import _ # avoid cyclic dependency
+ exts = {}
+ if os.name != 'posix':
+ exts['inotify'] = _('inotify is not supported on this platform')
+ if 'win32text' in enabledexts:
+ exts['eol'] = _('eol is incompatible with win32text')
+ if 'eol' in enabledexts:
+ exts['win32text'] = _('win32text is incompatible with eol')
+ return exts
+
def loadextension(ui, name):
# Between Mercurial revisions 1.2 and 1.3, extensions.load() stopped
# calling uisetup() after loading an extension. This could do
|
Loading...