Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 1.9, 1.9.1, and 1.9.2

settings: show a message when extensions were changed

Changeset 72fa7f0a884c

Parent c6010afd6a0f

by Johan Samyn

Changes to one file · Browse files at 72fa7f0a884c Showing diff from parent c6010afd6a0f Diff from another changeset...

 
220
221
222
223
 
224
225
226
 
571
572
573
574
575
 
 
576
 
 
577
578
579
 
589
590
591
592
593
 
 
594
 
595
596
597
 
600
601
602
 
 
603
604
605
606
607
608
 
 
 
609
610
611
 
 
 
 
612
613
614
 
641
642
643
 
 
644
645
646
 
683
684
685
686
 
687
688
689
 
826
827
828
829
 
830
831
832
 
893
894
895
 
896
897
898
 
 
 
 
899
900
901
 
913
914
915
916
 
917
918
919
 
944
945
946
947
 
948
949
950
 
220
221
222
 
223
224
225
226
 
571
572
573
 
 
574
575
576
577
578
579
580
581
 
591
592
593
 
 
594
595
596
597
598
599
600
 
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
 
653
654
655
656
657
658
659
660
 
697
698
699
 
700
701
702
703
 
840
841
842
 
843
844
845
846
 
907
908
909
910
911
912
 
913
914
915
916
917
918
919
 
931
932
933
 
934
935
936
937
 
962
963
964
 
965
966
967
968
@@ -220,7 +220,7 @@
  return self.isChecked()     def isDirty(self): - return self.isChecked() != self.curvalue + return self.value() != self.curvalue      def genEditCombo(opts, defaults=[]): @@ -571,9 +571,11 @@
    self.conftabs = QTabWidget()   layout.addWidget(self.conftabs) - self.conftabs.addTab(SettingsForm(rcpath=util.user_rcpath(), focus=focus), - qtlib.geticon('settings_user'), + utab = SettingsForm(rcpath=util.user_rcpath(), focus=focus) + self.conftabs.addTab(utab, qtlib.geticon('settings_user'),   _("%s's global settings") % username()) + utab.extensionsChanged.connect(self.markExtensionsChanged) +   try:   if root is None:   root = paths.find_root() @@ -589,9 +591,10 @@
    if repo:   reporcpath = os.sep.join([repo.root, '.hg', 'hgrc']) - self.conftabs.addTab(SettingsForm(rcpath=reporcpath, focus=focus), - qtlib.geticon('settings_repo'), + rtab = SettingsForm(rcpath=reporcpath, focus=focus) + self.conftabs.addTab(rtab, qtlib.geticon('settings_repo'),   _('%s repository settings') % repo.displayname) + rtab.extensionsChanged.connect(self.markExtensionsChanged)     BB = QDialogButtonBox   bb = QDialogButtonBox(BB.Ok|BB.Cancel) @@ -600,15 +603,24 @@
  layout.addWidget(bb)   self.bb = bb   + self.changesInExtensions = False +   self.conftabs.setCurrentIndex(configrepo and CONF_REPO or CONF_GLOBAL)     def isDirty(self):   return util.any(self.conftabs.widget(i).isDirty()   for i in xrange(self.conftabs.count()))   + def markExtensionsChanged(self): + self.changesInExtensions = True +   def applyChanges(self):   for i in xrange(self.conftabs.count()):   self.conftabs.widget(i).applyChanges() + if self.changesInExtensions: + qtlib.InfoMsgBox(_('Settings - Extensions'), + _('Restart all TortoiseHg applications' + ' for changes to extensions to take effect.'))     def canExit(self):   if self.isDirty(): @@ -641,6 +653,8 @@
 class SettingsForm(QWidget):   """Widget for each settings file"""   + extensionsChanged = pyqtSignal() +   def __init__(self, rcpath, focus=None, parent=None):   super(SettingsForm, self).__init__(parent)   @@ -683,7 +697,7 @@
  self.pages = {}   self.stack = stack   self.pageList = pageList - self.extspagewidgets = () + self.extspagewidgets = []     desctext = QTextBrowser()   desctext.setOpenExternalLinks(True) @@ -826,7 +840,7 @@
  if name == 'extensions':   extsinfo, widgets = self.fillExtensionsFrame()   self.pages[name] = name, extsinfo, widgets - self.extspagewidgets = self.pages[name] + self.extspagewidgets = self.pages[name][2]   else:   widgets = self.fillFrame(info)   self.pages[name] = name, info, widgets @@ -893,9 +907,13 @@
  str(e), parent=self)     def applyChangesForExtensions(self): + emitChanged = False   section = 'extensions'   enabledexts = hglib.enabledextensions() - for chk in self.extspagewidgets[2]: + for chk in self.extspagewidgets: + if (not emitChanged) and chk.isDirty(): + self.extensionsChanged.emit() + emitChanged = True   key = chk.opts['label']   newvalue = chk.value()   if newvalue and (key in enabledexts): @@ -913,7 +931,7 @@
  section = 'extensions'   enabledexts = hglib.enabledextensions()   selectedexts = () - for chk in self.extspagewidgets[2]: + for chk in self.extspagewidgets:   if chk.isChecked():   selectedexts += (chk.opts['label'],)   invalidexts = hglib.validateextensions(selectedexts) @@ -944,7 +962,7 @@
  return True     allexts = hglib.allextensions() - for chk in self.extspagewidgets[2]: + for chk in self.extspagewidgets:   name = chk.opts['label']   chk.setEnabled(changable(name))   chk.setToolTip(invalidexts.get(name) or hglib.toutf(allexts[name]))