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

settings: make editor a modal window

Changeset 22675d94bd25

Parent 5cafe0d9ae40

by Steve Borho

Changes to one file · Browse files at 22675d94bd25 Showing diff from parent 5cafe0d9ae40 Diff from another changeset...

 
458
459
460
461
462
463
464
465
 
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
 
 
 
 
 
 
 
 
 
 
 
 
 
589
590
591
592
 
 
 
 
 
 
 
 
593
594
 
595
596
597
598
599
 
617
618
619
620
621
622
623
624
 
458
459
460
 
 
461
462
463
 
536
537
538
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
 
 
554
555
556
557
558
559
560
561
562
 
563
564
 
565
566
567
 
585
586
587
 
 
588
589
590
@@ -458,8 +458,6 @@
  else:   combo.setEnabled(False)   self.confcombo = combo - self.editpage = None - self.editor = None     edit = QPushButton(_('Edit File'))   edit.clicked.connect(self.editClicked) @@ -538,62 +536,32 @@
  elif ret == 2:   return   - origrow = self.pageList.currentRow() - def cancelEditor(): - self.editor.clear() - self.editor.setModified(False) - self.editpage.setEnabled(False) - self.pageList.setEnabled(True) - self.confcombo.setEnabled(True) - self.editbtn.setEnabled(True) - self.reloadbtn.setEnabled(True) - self.pageList.setCurrentRow(origrow) - self.stack.setCurrentIndex(origrow) - self.refresh() - - def saveEditor(): - try: - f = util.atomictempfile(self.fn, 'w', createmode=None) - f.write(self.editor.text()) - f.rename() - except IOError, e: - qtlib.WarningMsgBox(_('Unable to write configuration file'), - str(e), parent=self) - return - cancelEditor() - - if not self.editpage: - frame = QFrame() - self.stack.addWidget(frame) - vbox = QVBoxLayout() - frame.setLayout(vbox) - editor = qsci() - editor.setBraceMatching(qsci.SloppyBraceMatch) - vbox.addWidget(editor) - BB = QDialogButtonBox - bb = QDialogButtonBox(BB.Save|BB.Cancel) - self.connect(bb, SIGNAL("accepted()"), saveEditor) - self.connect(bb, SIGNAL("rejected()"), cancelEditor) - vbox.addWidget(bb) - lexer = Qsci.QsciLexerProperties() # QsciLexerLua? - editor.setLexer(lexer) - self.editor = editor - self.editpage = frame - - self.editpage.setEnabled(True) - self.stack.setCurrentWidget(self.editpage) - self.pageList.setEnabled(False) - self.confcombo.setEnabled(False) - self.editbtn.setEnabled(False) - self.reloadbtn.setEnabled(False) + dialog = QDialog() + vbox = QVBoxLayout() + dialog.setLayout(vbox) + editor = qsci() + editor.setBraceMatching(qsci.SloppyBraceMatch) + vbox.addWidget(editor) + BB = QDialogButtonBox + bb = QDialogButtonBox(BB.Save|BB.Cancel) + self.connect(bb, SIGNAL("accepted()"), dialog, SLOT('accept()')) + self.connect(bb, SIGNAL("rejected()"), dialog, SLOT('reject()')) + vbox.addWidget(bb) + lexer = Qsci.QsciLexerProperties() # QsciLexerLua? + editor.setLexer(lexer)   try:   contents = open(self.fn, 'rb').read() - self.editor.setText(contents) - self.editor.setModified(False) + dialog.setWindowTitle(self.fn) + editor.setText(contents) + editor.setModified(False) + if dialog.exec_() == QDialog.Accepted: + f = util.atomictempfile(self.fn, 'w', createmode=None) + f.write(editor.text()) + f.rename() + self.refresh()   except EnvironmentError, e: - qtlib.WarningMsgBox(_('Unable to read config file'), + qtlib.WarningMsgBox(_('Unable to read/write config file'),   hglib.tounicode(e), parent=self) - cancelEditor()     def refresh(self, *args):   # determine target config file @@ -617,8 +585,6 @@
  widgets[row].setValue(curvalue)     def isDirty(self): - if self.editor and self.editor.isModified(): - return True   if self.readonly:   return False   for info, widgets in self.pages.values():