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

lexers: use qtlib.getfont() and qtlib.getstyle() for text and diffs

Changeset 09421d6ee2f0

Parent f1dccd5aae78

by Steve Borho

Changes to 4 files · Browse files at 09421d6ee2f0 Showing diff from parent f1dccd5aae78 Diff from another changeset...

 
82
83
84
85
 
86
87
88
 
82
83
84
 
85
86
87
88
@@ -82,7 +82,7 @@
  data = f.read(head)   else:   data = '' # too big - lexer = get_lexer(self.filename, data) + lexer = get_lexer(self.filename, data, self.repo.ui)   if lexer:   lexer.setDefaultFont(self._font)   lexer.setFont(self._font)
 
262
263
264
265
 
266
267
268
 
262
263
264
 
265
266
267
268
@@ -262,7 +262,7 @@
  if flag == '':   return   - lexer = get_lexer(filename, data, flag) + lexer = get_lexer(filename, data, flag, self._ctx._repo.ui) # yuck   if flag == "+":   nlines = data.count('\n')   self.sci.setMarginWidth(1, str(nlines)+'0')
 
1
2
 
3
 
4
5
6
7
8
9
10
 
11
12
13
14
 
15
16
17
18
19
20
21
22
23
24
25
26
27
 
 
28
29
30
 
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
 
 
 
 
 
 
 
 
 
 
 
 
138
139
140
141
142
143
144
145
146
 
147
148
 
149
150
151
 
152
153
154
 
1
 
2
3
4
5
6
7
8
9
10
 
11
12
13
14
 
15
16
 
 
 
 
 
 
 
 
 
 
 
 
17
18
19
20
21
 
107
108
109
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
110
111
112
113
114
115
116
117
118
119
120
121
122
 
123
124
125
126
127
128
 
129
130
 
131
132
133
 
134
135
136
137
@@ -1,30 +1,21 @@
 import re -from PyQt4 import QtCore, QtGui, Qsci, uic +from PyQt4 import QtCore, QtGui, Qsci  from PyQt4.QtCore import Qt +from tortoisehg.hgqt import qtlib    class _LexerSelector(object):   _lexer = None   def match(self, filename, filedata):   return False   - def lexer(self, cfg=None): + def lexer(self, ui):   """   Return a configured instance of the lexer   """ - return self.cfg_lexer(self._lexer(), cfg) + return self.cfg_lexer(self._lexer(), ui)   - def cfg_lexer(self, lexer, cfg=None): - # TODO: get font from qtlib.getfont() - if cfg: - font = QtGui.QFont() - fontstr = cfg.getFont() - font.fromString(fontstr) - size = cfg.getFontSize() - else: - font = QtGui.QFont('Monospace') - size = 9 - - font.setPointSize(size) + def cfg_lexer(self, lexer, ui): + font = qtlib.getfont(ui, 'fontlog').font()   lexer.setFont(font, -1)   return lexer   @@ -116,39 +107,31 @@
  extensions = ()   _lexer = Qsci.QsciLexerDiff   regex = re.compile(r'^@@ [-]\d+,\d+ [+]\d+,\d+ @@$') - def cfg_lexer(self, lexer, cfg=None): - """ - Return a configured instance of the lexer - """ - if cfg: - lexer.setDefaultPaper(QtGui.QColor(cfg.getDiffBGColor())) - lexer.setColor(QtGui.QColor(cfg.getDiffFGColor()), -1) - lexer.setColor(QtGui.QColor(cfg.getDiffPlusColor()), 6) - lexer.setColor(QtGui.QColor(cfg.getDiffMinusColor()), 5) - lexer.setColor(QtGui.QColor(cfg.getDiffSectionColor()), 4) - font = QtGui.QFont() - fontstr = cfg.getFont() - font.fromString(fontstr) - size = cfg.getFontSize() - else: - font = QtGui.QFont('Monospace') - size = 9 - - font.setPointSize(size) + def cfg_lexer(self, lexer, ui): + qtlib.configstyles(ui) + #lexer.setDefaultPaper(QtGui.QColor(cfg.getDiffBGColor())) + #lexer.setColor(QtGui.QColor(cfg.getDiffFGColor()), -1) + for label, i in (('diff.inserted', 6), + ('diff.deleted', 5), + ('diff.hunk', 4)): + effect = qtlib.geteffect(label) + for e in effect.split(';'): + if e.startswith('color:'): + lexer.setColor(QtGui.QColor(e[7:]), i) + font = qtlib.getfont(ui, 'fontdiff').font()   lexer.setFont(font, -1) -   return lexer      lexers = [cls() for clsname, cls in globals().items() if not clsname.startswith('_') and isinstance(cls, type) and \   issubclass(cls, (_LexerSelector, _FilenameLexerSelector, _ScriptLexerSelector))]   -def get_lexer(filename, filedata, fileflag=None): +def get_lexer(filename, filedata, fileflag=None, ui=None):   if fileflag == "=": - return DiffLexerSelector().lexer(None) + return DiffLexerSelector().lexer(ui)   for lselector in lexers:   if lselector.match(filename, filedata): - return lselector.lexer(None) + return lselector.lexer(ui)   return None    
 
103
104
105
106
 
107
108
109
 
103
104
105
 
106
107
108
109
@@ -103,7 +103,7 @@
  data = "binary file"   else:   data = tounicode(data) - lexer = get_lexer(path, data) + lexer = get_lexer(path, data, self.repo.ui)   if lexer:   lexer.setFont(self._font)   self.textView.setLexer(lexer)