comparison mercurial/hgweb.py @ 1703:41d884f741ca

fix changenav for maxchanges != 10 for maxchanges = 25 the changelog navigation had a minimum stepsize of 30; try to calculate more useful navigation steps
author Johannes Stezenbach <js@linuxtv.org>
date Mon, 06 Feb 2006 17:34:53 -0600
parents e8a3df8b62b3
children 50de0887bbcd a2316878f19d b0f6af327fd4
comparison
equal deleted inserted replaced
1702:e291d9a30bef 1703:41d884f741ca
296 yield diffblock(mdiff.unidiff(to, date1, tn, date2, f, 296 yield diffblock(mdiff.unidiff(to, date1, tn, date2, f,
297 showfunc=showfunc, ignorews=ignorews), f, tn) 297 showfunc=showfunc, ignorews=ignorews), f, tn)
298 298
299 def changelog(self, pos): 299 def changelog(self, pos):
300 def changenav(**map): 300 def changenav(**map):
301 def seq(factor=1): 301 def seq(factor, maxchanges=None):
302 yield 1 * factor 302 if maxchanges:
303 yield 3 * factor 303 yield maxchanges
304 #yield 5 * factor 304 if maxchanges >= 20 and maxchanges <= 40:
305 yield 50
306 else:
307 yield 1 * factor
308 yield 3 * factor
305 for f in seq(factor * 10): 309 for f in seq(factor * 10):
306 yield f 310 yield f
307 311
308 l = [] 312 l = []
309 for f in seq(): 313 last = 0
310 if f < self.maxchanges / 2: 314 for f in seq(1, self.maxchanges):
315 if f < self.maxchanges or f <= last:
311 continue 316 continue
312 if f > count: 317 if f > count:
313 break 318 break
319 last = f
314 r = "%d" % f 320 r = "%d" % f
315 if pos + f < count: 321 if pos + f < count:
316 l.append(("+" + r, pos + f)) 322 l.append(("+" + r, pos + f))
317 if pos - f >= 0: 323 if pos - f >= 0:
318 l.insert(0, ("-" + r, pos - f)) 324 l.insert(0, ("-" + r, pos - f))